@northslopetech/altitude-ui 2.4.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +119 -1
- package/dist/index.d.ts +119 -1
- package/dist/index.js +611 -240
- package/dist/index.mjs +610 -256
- package/dist/tokens.css +1 -1
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -115,6 +115,7 @@ __export(index_exports, {
|
|
|
115
115
|
MagnifyingGlass: () => MagnifyingGlass,
|
|
116
116
|
Minus: () => Minus,
|
|
117
117
|
MoreMenu: () => MoreMenu,
|
|
118
|
+
Panel: () => Panel,
|
|
118
119
|
PdfViewer: () => PdfViewer,
|
|
119
120
|
Phone: () => Phone,
|
|
120
121
|
PieChart: () => PieChart,
|
|
@@ -133,6 +134,17 @@ __export(index_exports, {
|
|
|
133
134
|
SelectValue: () => SelectValue,
|
|
134
135
|
Separator: () => Separator2,
|
|
135
136
|
Share: () => Share,
|
|
137
|
+
Sidebar: () => Sidebar,
|
|
138
|
+
SidebarContent: () => SidebarContent,
|
|
139
|
+
SidebarFooter: () => SidebarFooter,
|
|
140
|
+
SidebarGroup: () => SidebarGroup,
|
|
141
|
+
SidebarGroupContent: () => SidebarGroupContent,
|
|
142
|
+
SidebarHeader: () => SidebarHeader,
|
|
143
|
+
SidebarInset: () => SidebarInset,
|
|
144
|
+
SidebarMenu: () => SidebarMenu,
|
|
145
|
+
SidebarMenuButton: () => SidebarMenuButton,
|
|
146
|
+
SidebarMenuItem: () => SidebarMenuItem,
|
|
147
|
+
SidebarProvider: () => SidebarProvider,
|
|
136
148
|
Star: () => Star,
|
|
137
149
|
Statement: () => Statement,
|
|
138
150
|
Table: () => Table,
|
|
@@ -142,8 +154,12 @@ __export(index_exports, {
|
|
|
142
154
|
TabsList: () => TabsList,
|
|
143
155
|
TabsTrigger: () => TabsTrigger,
|
|
144
156
|
Textarea: () => Textarea,
|
|
157
|
+
Tooltip: () => Tooltip,
|
|
145
158
|
TooltipContainer: () => TooltipContainer,
|
|
159
|
+
TooltipContent: () => TooltipContent,
|
|
146
160
|
TooltipItem: () => TooltipItem,
|
|
161
|
+
TooltipProvider: () => TooltipProvider,
|
|
162
|
+
TooltipTrigger: () => TooltipTrigger,
|
|
147
163
|
Trash: () => Trash,
|
|
148
164
|
Typography: () => Typography,
|
|
149
165
|
Upload: () => Upload,
|
|
@@ -172,7 +188,8 @@ __export(index_exports, {
|
|
|
172
188
|
selectTriggerVariants: () => selectTriggerVariants,
|
|
173
189
|
tabsVariants: () => tabsVariants,
|
|
174
190
|
typographyVariants: () => typographyVariants,
|
|
175
|
-
uploadVariants: () => uploadVariants
|
|
191
|
+
uploadVariants: () => uploadVariants,
|
|
192
|
+
useSidebar: () => useSidebar
|
|
176
193
|
});
|
|
177
194
|
module.exports = __toCommonJS(index_exports);
|
|
178
195
|
|
|
@@ -1876,6 +1893,29 @@ var Download = ({
|
|
|
1876
1893
|
)
|
|
1877
1894
|
}
|
|
1878
1895
|
);
|
|
1896
|
+
var Panel = ({
|
|
1897
|
+
className,
|
|
1898
|
+
variant = "dark",
|
|
1899
|
+
...props
|
|
1900
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
1901
|
+
"svg",
|
|
1902
|
+
{
|
|
1903
|
+
width: "16",
|
|
1904
|
+
height: "16",
|
|
1905
|
+
viewBox: "0 0 16 16",
|
|
1906
|
+
fill: "none",
|
|
1907
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1908
|
+
className: cn(getVariantStyles(variant), className),
|
|
1909
|
+
...props,
|
|
1910
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
1911
|
+
"path",
|
|
1912
|
+
{
|
|
1913
|
+
d: "M14 2C14.5523 2 15 2.44772 15 3V13C15 13.5523 14.5523 14 14 14H2C1.44772 14 1 13.5523 1 13V3C1 2.44772 1.44772 2 2 2H14ZM7 12H13V4H7V12ZM3 12H5V4H3V12Z",
|
|
1914
|
+
fill: "currentColor"
|
|
1915
|
+
}
|
|
1916
|
+
)
|
|
1917
|
+
}
|
|
1918
|
+
);
|
|
1879
1919
|
|
|
1880
1920
|
// src/components/ui/select.tsx
|
|
1881
1921
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
@@ -2295,15 +2335,329 @@ function FieldError({
|
|
|
2295
2335
|
);
|
|
2296
2336
|
}
|
|
2297
2337
|
|
|
2298
|
-
// src/components/ui/
|
|
2338
|
+
// src/components/ui/tooltip.tsx
|
|
2339
|
+
var React4 = __toESM(require("react"));
|
|
2340
|
+
var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"));
|
|
2341
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
2342
|
+
function TooltipProvider({
|
|
2343
|
+
delayDuration = 0,
|
|
2344
|
+
...props
|
|
2345
|
+
}) {
|
|
2346
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2347
|
+
TooltipPrimitive.Provider,
|
|
2348
|
+
{
|
|
2349
|
+
"data-slot": "tooltip-provider",
|
|
2350
|
+
delayDuration,
|
|
2351
|
+
...props
|
|
2352
|
+
}
|
|
2353
|
+
);
|
|
2354
|
+
}
|
|
2355
|
+
TooltipProvider.displayName = "TooltipProvider";
|
|
2356
|
+
function Tooltip({ delayDuration, ...props }) {
|
|
2357
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(TooltipProvider, { delayDuration, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
|
|
2358
|
+
}
|
|
2359
|
+
Tooltip.displayName = "Tooltip";
|
|
2360
|
+
var TooltipTrigger = React4.forwardRef(({ ...props }, ref) => {
|
|
2361
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2362
|
+
TooltipPrimitive.Trigger,
|
|
2363
|
+
{
|
|
2364
|
+
ref,
|
|
2365
|
+
"data-slot": "tooltip-trigger",
|
|
2366
|
+
...props
|
|
2367
|
+
}
|
|
2368
|
+
);
|
|
2369
|
+
});
|
|
2370
|
+
TooltipTrigger.displayName = "TooltipTrigger";
|
|
2371
|
+
var TooltipContent = React4.forwardRef(({ className, sideOffset = 2, children, ...props }, ref) => {
|
|
2372
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
2373
|
+
TooltipPrimitive.Content,
|
|
2374
|
+
{
|
|
2375
|
+
ref,
|
|
2376
|
+
"data-slot": "tooltip-content",
|
|
2377
|
+
sideOffset,
|
|
2378
|
+
className: cn(
|
|
2379
|
+
"bg-dark text-light animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-[var(--radix-tooltip-content-transform-origin)] flex items-start gap-2 rounded p-1.5 text-balance shadow-sm",
|
|
2380
|
+
className
|
|
2381
|
+
),
|
|
2382
|
+
...props,
|
|
2383
|
+
children: [
|
|
2384
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(TooltipPrimitive.Arrow, { className: "fill-dark", width: 10, height: 9 }),
|
|
2385
|
+
children
|
|
2386
|
+
]
|
|
2387
|
+
}
|
|
2388
|
+
) });
|
|
2389
|
+
});
|
|
2390
|
+
TooltipContent.displayName = "TooltipContent";
|
|
2391
|
+
|
|
2392
|
+
// src/components/ui/sidebar.tsx
|
|
2299
2393
|
var React5 = __toESM(require("react"));
|
|
2394
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
2395
|
+
var SIDEBAR_CONSTANTS = {
|
|
2396
|
+
WIDTH: "144px",
|
|
2397
|
+
WIDTH_ICON: "48px"
|
|
2398
|
+
};
|
|
2399
|
+
var SidebarContext = React5.createContext(null);
|
|
2400
|
+
function useSidebar() {
|
|
2401
|
+
const context = React5.useContext(SidebarContext);
|
|
2402
|
+
if (!context) {
|
|
2403
|
+
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
2404
|
+
}
|
|
2405
|
+
return context;
|
|
2406
|
+
}
|
|
2407
|
+
var SidebarProvider = React5.forwardRef(
|
|
2408
|
+
({
|
|
2409
|
+
defaultOpen = true,
|
|
2410
|
+
open: openProp,
|
|
2411
|
+
onOpenChange: setOpenProp,
|
|
2412
|
+
className,
|
|
2413
|
+
style,
|
|
2414
|
+
children,
|
|
2415
|
+
...props
|
|
2416
|
+
}, ref) => {
|
|
2417
|
+
const [_open, _setOpen] = React5.useState(defaultOpen);
|
|
2418
|
+
const open = openProp ?? _open;
|
|
2419
|
+
const setOpen = React5.useCallback(
|
|
2420
|
+
(value) => {
|
|
2421
|
+
const openState = typeof value === "function" ? value(open) : value;
|
|
2422
|
+
if (setOpenProp) {
|
|
2423
|
+
setOpenProp(openState);
|
|
2424
|
+
} else {
|
|
2425
|
+
_setOpen(openState);
|
|
2426
|
+
}
|
|
2427
|
+
},
|
|
2428
|
+
[setOpenProp, open]
|
|
2429
|
+
);
|
|
2430
|
+
const toggleSidebar = React5.useCallback(() => {
|
|
2431
|
+
return setOpen((open2) => !open2);
|
|
2432
|
+
}, [setOpen]);
|
|
2433
|
+
const state = open ? "expanded" : "collapsed";
|
|
2434
|
+
const contextValue = React5.useMemo(
|
|
2435
|
+
() => ({
|
|
2436
|
+
state,
|
|
2437
|
+
open,
|
|
2438
|
+
setOpen,
|
|
2439
|
+
toggleSidebar
|
|
2440
|
+
}),
|
|
2441
|
+
[state, open, setOpen, toggleSidebar]
|
|
2442
|
+
);
|
|
2443
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2444
|
+
"div",
|
|
2445
|
+
{
|
|
2446
|
+
style: {
|
|
2447
|
+
"--sidebar-width": SIDEBAR_CONSTANTS.WIDTH,
|
|
2448
|
+
"--sidebar-width-icon": SIDEBAR_CONSTANTS.WIDTH_ICON,
|
|
2449
|
+
...style
|
|
2450
|
+
},
|
|
2451
|
+
className: cn(
|
|
2452
|
+
"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-light",
|
|
2453
|
+
className
|
|
2454
|
+
),
|
|
2455
|
+
ref,
|
|
2456
|
+
...props,
|
|
2457
|
+
children
|
|
2458
|
+
}
|
|
2459
|
+
) });
|
|
2460
|
+
}
|
|
2461
|
+
);
|
|
2462
|
+
SidebarProvider.displayName = "SidebarProvider";
|
|
2463
|
+
var Sidebar = React5.forwardRef(
|
|
2464
|
+
({ collapsible = "icon", className, children, ...props }, ref) => {
|
|
2465
|
+
const { state } = useSidebar();
|
|
2466
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
2467
|
+
"aside",
|
|
2468
|
+
{
|
|
2469
|
+
ref,
|
|
2470
|
+
className: "group peer text-light",
|
|
2471
|
+
"data-state": state,
|
|
2472
|
+
"data-collapsible": state === "collapsed" ? collapsible : "",
|
|
2473
|
+
"aria-label": "Main navigation",
|
|
2474
|
+
"aria-expanded": state === "expanded",
|
|
2475
|
+
role: "navigation",
|
|
2476
|
+
children: [
|
|
2477
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2478
|
+
"div",
|
|
2479
|
+
{
|
|
2480
|
+
className: cn(
|
|
2481
|
+
"relative h-svh shrink-0 transition-[width] duration-200 ease-linear",
|
|
2482
|
+
"w-[var(--sidebar-width)] group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]"
|
|
2483
|
+
)
|
|
2484
|
+
}
|
|
2485
|
+
),
|
|
2486
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2487
|
+
"div",
|
|
2488
|
+
{
|
|
2489
|
+
className: cn(
|
|
2490
|
+
"fixed inset-y-0 z-10 h-svh w-[var(--sidebar-width)] transition-[left,right,width] duration-200 ease-linear flex left-0",
|
|
2491
|
+
"group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]",
|
|
2492
|
+
className
|
|
2493
|
+
),
|
|
2494
|
+
...props,
|
|
2495
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2496
|
+
"div",
|
|
2497
|
+
{
|
|
2498
|
+
"data-sidebar": "sidebar",
|
|
2499
|
+
className: "flex h-full w-full flex-col gap-8 p-4 px-2 bg-dark",
|
|
2500
|
+
children
|
|
2501
|
+
}
|
|
2502
|
+
)
|
|
2503
|
+
}
|
|
2504
|
+
)
|
|
2505
|
+
]
|
|
2506
|
+
}
|
|
2507
|
+
);
|
|
2508
|
+
}
|
|
2509
|
+
);
|
|
2510
|
+
Sidebar.displayName = "Sidebar";
|
|
2511
|
+
var SidebarInset = React5.forwardRef(
|
|
2512
|
+
({ className, ...props }, ref) => {
|
|
2513
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2514
|
+
"main",
|
|
2515
|
+
{
|
|
2516
|
+
ref,
|
|
2517
|
+
className: cn(
|
|
2518
|
+
"relative flex min-h-svh flex-1 flex-col bg-dark",
|
|
2519
|
+
className
|
|
2520
|
+
),
|
|
2521
|
+
...props
|
|
2522
|
+
}
|
|
2523
|
+
);
|
|
2524
|
+
}
|
|
2525
|
+
);
|
|
2526
|
+
SidebarInset.displayName = "SidebarInset";
|
|
2527
|
+
var SidebarHeader = React5.forwardRef(
|
|
2528
|
+
({ className, ...props }, ref) => {
|
|
2529
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2530
|
+
"div",
|
|
2531
|
+
{
|
|
2532
|
+
ref,
|
|
2533
|
+
"data-sidebar": "header",
|
|
2534
|
+
className: cn(
|
|
2535
|
+
"flex h-8 justify-between items-center shrink-0 self-stretch",
|
|
2536
|
+
"group-data-[collapsible=icon]:justify-center group-data-[collapsible=icon]:p-2",
|
|
2537
|
+
className
|
|
2538
|
+
),
|
|
2539
|
+
...props
|
|
2540
|
+
}
|
|
2541
|
+
);
|
|
2542
|
+
}
|
|
2543
|
+
);
|
|
2544
|
+
SidebarHeader.displayName = "SidebarHeader";
|
|
2545
|
+
var SidebarFooter = React5.forwardRef(
|
|
2546
|
+
({ className, ...props }, ref) => {
|
|
2547
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2548
|
+
"div",
|
|
2549
|
+
{
|
|
2550
|
+
ref,
|
|
2551
|
+
"data-sidebar": "footer",
|
|
2552
|
+
className: cn("flex flex-col gap-2", className),
|
|
2553
|
+
...props
|
|
2554
|
+
}
|
|
2555
|
+
);
|
|
2556
|
+
}
|
|
2557
|
+
);
|
|
2558
|
+
SidebarFooter.displayName = "SidebarFooter";
|
|
2559
|
+
var SidebarContent = React5.forwardRef(
|
|
2560
|
+
({ className, ...props }, ref) => {
|
|
2561
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2562
|
+
"div",
|
|
2563
|
+
{
|
|
2564
|
+
ref,
|
|
2565
|
+
"data-sidebar": "content",
|
|
2566
|
+
className: cn(
|
|
2567
|
+
"flex min-h-0 flex-1 flex-col gap-8 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
|
|
2568
|
+
className
|
|
2569
|
+
),
|
|
2570
|
+
...props
|
|
2571
|
+
}
|
|
2572
|
+
);
|
|
2573
|
+
}
|
|
2574
|
+
);
|
|
2575
|
+
SidebarContent.displayName = "SidebarContent";
|
|
2576
|
+
var SidebarGroup = React5.forwardRef(
|
|
2577
|
+
({ className, ...props }, ref) => {
|
|
2578
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2579
|
+
"div",
|
|
2580
|
+
{
|
|
2581
|
+
ref,
|
|
2582
|
+
"data-sidebar": "group",
|
|
2583
|
+
className: cn("relative flex w-full min-w-0 flex-col", className),
|
|
2584
|
+
...props
|
|
2585
|
+
}
|
|
2586
|
+
);
|
|
2587
|
+
}
|
|
2588
|
+
);
|
|
2589
|
+
SidebarGroup.displayName = "SidebarGroup";
|
|
2590
|
+
var SidebarGroupContent = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2591
|
+
"div",
|
|
2592
|
+
{
|
|
2593
|
+
ref,
|
|
2594
|
+
"data-sidebar": "group-content",
|
|
2595
|
+
className: cn("w-full text-sm", className),
|
|
2596
|
+
...props
|
|
2597
|
+
}
|
|
2598
|
+
));
|
|
2599
|
+
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
2600
|
+
var SidebarMenu = React5.forwardRef(
|
|
2601
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2602
|
+
"ul",
|
|
2603
|
+
{
|
|
2604
|
+
ref,
|
|
2605
|
+
"data-sidebar": "menu",
|
|
2606
|
+
className: cn("flex w-full min-w-0 flex-col gap-1", className),
|
|
2607
|
+
...props
|
|
2608
|
+
}
|
|
2609
|
+
)
|
|
2610
|
+
);
|
|
2611
|
+
SidebarMenu.displayName = "SidebarMenu";
|
|
2612
|
+
var SidebarMenuItem = React5.forwardRef(
|
|
2613
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2614
|
+
"li",
|
|
2615
|
+
{
|
|
2616
|
+
ref,
|
|
2617
|
+
"data-sidebar": "menu-item",
|
|
2618
|
+
className: cn("group/menu-item relative", className),
|
|
2619
|
+
...props
|
|
2620
|
+
}
|
|
2621
|
+
)
|
|
2622
|
+
);
|
|
2623
|
+
SidebarMenuItem.displayName = "SidebarMenuItem";
|
|
2624
|
+
var SidebarMenuButton = React5.forwardRef(({ isActive = false, tooltip, className, children, ...props }, ref) => {
|
|
2625
|
+
const { state } = useSidebar();
|
|
2626
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2627
|
+
"button",
|
|
2628
|
+
{
|
|
2629
|
+
ref,
|
|
2630
|
+
"data-sidebar": "menu-button",
|
|
2631
|
+
"data-active": isActive,
|
|
2632
|
+
"aria-current": isActive ? "page" : void 0,
|
|
2633
|
+
className: cn(
|
|
2634
|
+
"peer/menu-button flex w-full h-8 items-center gap-2 overflow-hidden rounded-lg p-2 text-left outline-none transition-[width,height,padding] hover:bg-white/10 data-[active=true]:bg-info data-[active=true]:hover:bg-info group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 group-data-[collapsible=icon]:!gap-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
|
|
2635
|
+
className
|
|
2636
|
+
),
|
|
2637
|
+
...props,
|
|
2638
|
+
children
|
|
2639
|
+
}
|
|
2640
|
+
);
|
|
2641
|
+
if (!tooltip || state !== "collapsed") {
|
|
2642
|
+
return button;
|
|
2643
|
+
}
|
|
2644
|
+
const tooltipProps = typeof tooltip === "string" ? { children: tooltip } : tooltip;
|
|
2645
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(Tooltip, { delayDuration: 0, children: [
|
|
2646
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TooltipTrigger, { asChild: true, children: button }),
|
|
2647
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TooltipContent, { side: "right", align: "center", ...tooltipProps })
|
|
2648
|
+
] });
|
|
2649
|
+
});
|
|
2650
|
+
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
2651
|
+
|
|
2652
|
+
// src/components/ui/date-picker.tsx
|
|
2653
|
+
var React7 = __toESM(require("react"));
|
|
2300
2654
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
|
|
2301
2655
|
|
|
2302
2656
|
// src/components/ui/input.tsx
|
|
2303
|
-
var
|
|
2304
|
-
var
|
|
2657
|
+
var React6 = __toESM(require("react"));
|
|
2658
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
2305
2659
|
var inputBaseStyles = "flex h-10 py-2 w-full border bg-light text-dark focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 transition-colors rounded-md px-3 min-w-80 placeholder:text-secondary read-only:bg-gray read-only:cursor-default read-only:border-transparent read-only:text-secondary read-only:focus-visible:border-transparent border-secondary focus-visible:border-2 focus-visible:border-strong disabled:border-secondary aria-invalid:border-error aria-invalid:focus-visible:border-error";
|
|
2306
|
-
var Input =
|
|
2660
|
+
var Input = React6.forwardRef(
|
|
2307
2661
|
({
|
|
2308
2662
|
className,
|
|
2309
2663
|
style,
|
|
@@ -2314,7 +2668,7 @@ var Input = React4.forwardRef(
|
|
|
2314
2668
|
readOnly,
|
|
2315
2669
|
...props
|
|
2316
2670
|
}, ref) => {
|
|
2317
|
-
const [internalValue, setInternalValue] =
|
|
2671
|
+
const [internalValue, setInternalValue] = React6.useState(value || "");
|
|
2318
2672
|
const isControlled = value !== void 0;
|
|
2319
2673
|
const currentValue = isControlled ? value : internalValue;
|
|
2320
2674
|
const showClear = showClearProp !== false && currentValue && currentValue.toString().length > 0 && !readOnly;
|
|
@@ -2344,8 +2698,8 @@ var Input = React4.forwardRef(
|
|
|
2344
2698
|
}
|
|
2345
2699
|
onClear?.();
|
|
2346
2700
|
};
|
|
2347
|
-
return /* @__PURE__ */ (0,
|
|
2348
|
-
/* @__PURE__ */ (0,
|
|
2701
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "relative", children: [
|
|
2702
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2349
2703
|
"input",
|
|
2350
2704
|
{
|
|
2351
2705
|
className: cn(
|
|
@@ -2361,23 +2715,23 @@ var Input = React4.forwardRef(
|
|
|
2361
2715
|
...props
|
|
2362
2716
|
}
|
|
2363
2717
|
),
|
|
2364
|
-
showClear && /* @__PURE__ */ (0,
|
|
2718
|
+
showClear && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2365
2719
|
"button",
|
|
2366
2720
|
{
|
|
2367
2721
|
type: "button",
|
|
2368
2722
|
onClick: handleClear,
|
|
2369
2723
|
className: "absolute right-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-secondary hover:text-dark transition-colors",
|
|
2370
|
-
children: /* @__PURE__ */ (0,
|
|
2724
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(X, { className: "h-4 w-4" })
|
|
2371
2725
|
}
|
|
2372
2726
|
),
|
|
2373
|
-
showLock && /* @__PURE__ */ (0,
|
|
2727
|
+
showLock && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Lock, { className: "absolute right-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-secondary" })
|
|
2374
2728
|
] });
|
|
2375
2729
|
}
|
|
2376
2730
|
);
|
|
2377
2731
|
Input.displayName = "Input";
|
|
2378
2732
|
|
|
2379
2733
|
// src/components/ui/date-picker.tsx
|
|
2380
|
-
var
|
|
2734
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
2381
2735
|
var getDayNames = () => {
|
|
2382
2736
|
const days = [];
|
|
2383
2737
|
for (let i = 0; i < 7; i++) {
|
|
@@ -2413,7 +2767,7 @@ var formatDateInput = (date) => {
|
|
|
2413
2767
|
day: "2-digit"
|
|
2414
2768
|
});
|
|
2415
2769
|
};
|
|
2416
|
-
var DatePicker =
|
|
2770
|
+
var DatePicker = React7.forwardRef(
|
|
2417
2771
|
({
|
|
2418
2772
|
value,
|
|
2419
2773
|
onValueChange,
|
|
@@ -2432,19 +2786,19 @@ var DatePicker = React5.forwardRef(
|
|
|
2432
2786
|
if (isNaN(parsed.getTime())) return void 0;
|
|
2433
2787
|
return parsed;
|
|
2434
2788
|
};
|
|
2435
|
-
const [selectedDate, setSelectedDate] =
|
|
2789
|
+
const [selectedDate, setSelectedDate] = React7.useState(
|
|
2436
2790
|
value || parseDate(defaultValue)
|
|
2437
2791
|
);
|
|
2438
|
-
const [currentMonth, setCurrentMonth] =
|
|
2792
|
+
const [currentMonth, setCurrentMonth] = React7.useState(() => {
|
|
2439
2793
|
const date = value || parseDate(defaultValue) || /* @__PURE__ */ new Date();
|
|
2440
2794
|
return new Date(date.getFullYear(), date.getMonth());
|
|
2441
2795
|
});
|
|
2442
|
-
const [open, setOpen] =
|
|
2443
|
-
const [inputValue, setInputValue] =
|
|
2796
|
+
const [open, setOpen] = React7.useState(false);
|
|
2797
|
+
const [inputValue, setInputValue] = React7.useState(() => {
|
|
2444
2798
|
const initialDate = value || parseDate(defaultValue);
|
|
2445
2799
|
return initialDate ? formatDateInput(initialDate) : "";
|
|
2446
2800
|
});
|
|
2447
|
-
|
|
2801
|
+
React7.useEffect(() => {
|
|
2448
2802
|
setSelectedDate(value);
|
|
2449
2803
|
if (value) {
|
|
2450
2804
|
setCurrentMonth(new Date(value.getFullYear(), value.getMonth()));
|
|
@@ -2455,7 +2809,7 @@ var DatePicker = React5.forwardRef(
|
|
|
2455
2809
|
setInputValue("");
|
|
2456
2810
|
}
|
|
2457
2811
|
}, [value]);
|
|
2458
|
-
|
|
2812
|
+
React7.useEffect(() => {
|
|
2459
2813
|
if (value) return;
|
|
2460
2814
|
const parsedDefault = parseDate(defaultValue);
|
|
2461
2815
|
if (!parsedDefault) return;
|
|
@@ -2578,14 +2932,14 @@ var DatePicker = React5.forwardRef(
|
|
|
2578
2932
|
const months = getMonthNames();
|
|
2579
2933
|
const dayNames = getDayNames();
|
|
2580
2934
|
const years = generateYears();
|
|
2581
|
-
return /* @__PURE__ */ (0,
|
|
2935
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
2582
2936
|
PopoverPrimitive.Root,
|
|
2583
2937
|
{
|
|
2584
2938
|
open: disabled ? false : open,
|
|
2585
2939
|
onOpenChange: disabled ? void 0 : setOpen,
|
|
2586
2940
|
children: [
|
|
2587
|
-
/* @__PURE__ */ (0,
|
|
2588
|
-
/* @__PURE__ */ (0,
|
|
2941
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "relative", children: [
|
|
2942
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2589
2943
|
Input,
|
|
2590
2944
|
{
|
|
2591
2945
|
ref,
|
|
@@ -2598,7 +2952,7 @@ var DatePicker = React5.forwardRef(
|
|
|
2598
2952
|
...props
|
|
2599
2953
|
}
|
|
2600
2954
|
),
|
|
2601
|
-
/* @__PURE__ */ (0,
|
|
2955
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(PopoverPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("button", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 hover:bg-gray rounded p-0.5 transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2602
2956
|
Calendar,
|
|
2603
2957
|
{
|
|
2604
2958
|
className: cn(
|
|
@@ -2608,7 +2962,7 @@ var DatePicker = React5.forwardRef(
|
|
|
2608
2962
|
}
|
|
2609
2963
|
) }) })
|
|
2610
2964
|
] }),
|
|
2611
|
-
/* @__PURE__ */ (0,
|
|
2965
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2612
2966
|
PopoverPrimitive.Content,
|
|
2613
2967
|
{
|
|
2614
2968
|
className: "z-50 w-80 rounded-lg border border-secondary bg-light text-dark shadow-lg animate-in fade-in-0 zoom-in-95 duration-200",
|
|
@@ -2617,51 +2971,51 @@ var DatePicker = React5.forwardRef(
|
|
|
2617
2971
|
alignOffset: -12,
|
|
2618
2972
|
side: "bottom",
|
|
2619
2973
|
sticky: "always",
|
|
2620
|
-
children: /* @__PURE__ */ (0,
|
|
2621
|
-
/* @__PURE__ */ (0,
|
|
2622
|
-
/* @__PURE__ */ (0,
|
|
2974
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "p-4", children: [
|
|
2975
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center justify-between mb-4 gap-1", children: [
|
|
2976
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2623
2977
|
"button",
|
|
2624
2978
|
{
|
|
2625
2979
|
onClick: () => handleMonthChange("prev"),
|
|
2626
2980
|
className: "p-1 hover:bg-gray rounded transition-colors flex-shrink-0",
|
|
2627
|
-
children: /* @__PURE__ */ (0,
|
|
2981
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ChevronLeft, { className: "h-4 w-4" })
|
|
2628
2982
|
}
|
|
2629
2983
|
),
|
|
2630
|
-
/* @__PURE__ */ (0,
|
|
2631
|
-
/* @__PURE__ */ (0,
|
|
2984
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex gap-1 flex-1 min-w-0", children: [
|
|
2985
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
2632
2986
|
Select,
|
|
2633
2987
|
{
|
|
2634
2988
|
value: currentMonth.getMonth().toString(),
|
|
2635
2989
|
onValueChange: handleMonthSelect,
|
|
2636
2990
|
children: [
|
|
2637
|
-
/* @__PURE__ */ (0,
|
|
2638
|
-
/* @__PURE__ */ (0,
|
|
2991
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SelectValue, {}) }),
|
|
2992
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SelectContent, { children: months.map((month, index) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SelectItem, { value: index.toString(), children: month }, month)) })
|
|
2639
2993
|
]
|
|
2640
2994
|
}
|
|
2641
2995
|
),
|
|
2642
|
-
/* @__PURE__ */ (0,
|
|
2996
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
2643
2997
|
Select,
|
|
2644
2998
|
{
|
|
2645
2999
|
value: currentMonth.getFullYear().toString(),
|
|
2646
3000
|
onValueChange: handleYearSelect,
|
|
2647
3001
|
children: [
|
|
2648
|
-
/* @__PURE__ */ (0,
|
|
2649
|
-
/* @__PURE__ */ (0,
|
|
3002
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SelectValue, {}) }),
|
|
3003
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SelectContent, { children: years.map((year) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SelectItem, { value: year.toString(), children: year }, year)) })
|
|
2650
3004
|
]
|
|
2651
3005
|
}
|
|
2652
3006
|
)
|
|
2653
3007
|
] }),
|
|
2654
|
-
/* @__PURE__ */ (0,
|
|
3008
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2655
3009
|
"button",
|
|
2656
3010
|
{
|
|
2657
3011
|
onClick: () => handleMonthChange("next"),
|
|
2658
3012
|
className: "p-1 hover:bg-gray rounded transition-colors flex-shrink-0",
|
|
2659
|
-
children: /* @__PURE__ */ (0,
|
|
3013
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ChevronRight, { className: "h-4 w-4" })
|
|
2660
3014
|
}
|
|
2661
3015
|
)
|
|
2662
3016
|
] }),
|
|
2663
|
-
/* @__PURE__ */ (0,
|
|
2664
|
-
/* @__PURE__ */ (0,
|
|
3017
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "space-y-1", children: [
|
|
3018
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: dayNames.map((day) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2665
3019
|
Typography,
|
|
2666
3020
|
{
|
|
2667
3021
|
variant: "label-xs-bold",
|
|
@@ -2671,11 +3025,11 @@ var DatePicker = React5.forwardRef(
|
|
|
2671
3025
|
},
|
|
2672
3026
|
day
|
|
2673
3027
|
)) }),
|
|
2674
|
-
/* @__PURE__ */ (0,
|
|
3028
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "grid grid-cols-7 gap-1", children: days.map((date, index) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2675
3029
|
"div",
|
|
2676
3030
|
{
|
|
2677
3031
|
className: "h-8 w-8 flex items-center justify-center",
|
|
2678
|
-
children: date && /* @__PURE__ */ (0,
|
|
3032
|
+
children: date && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2679
3033
|
"button",
|
|
2680
3034
|
{
|
|
2681
3035
|
onClick: () => handleDateSelect(date),
|
|
@@ -2689,7 +3043,7 @@ var DatePicker = React5.forwardRef(
|
|
|
2689
3043
|
isToday(date) && !isDateSelected(date) && !isDateDisabled(date) && "text-blue-600 after:content-[''] after:absolute after:bottom-1 after:left-1/2 after:-translate-x-1/2 after:w-1 after:h-1 after:bg-blue-600 after:rounded-full",
|
|
2690
3044
|
isDateDisabled(date) && "text-secondary/40 cursor-not-allowed opacity-50"
|
|
2691
3045
|
),
|
|
2692
|
-
children: /* @__PURE__ */ (0,
|
|
3046
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Typography, { variant: "label-sm", as: "span", children: date.getDate() })
|
|
2693
3047
|
}
|
|
2694
3048
|
)
|
|
2695
3049
|
},
|
|
@@ -2707,9 +3061,9 @@ var DatePicker = React5.forwardRef(
|
|
|
2707
3061
|
DatePicker.displayName = "DatePicker";
|
|
2708
3062
|
|
|
2709
3063
|
// src/components/ui/upload.tsx
|
|
2710
|
-
var
|
|
3064
|
+
var React8 = __toESM(require("react"));
|
|
2711
3065
|
var import_class_variance_authority6 = require("class-variance-authority");
|
|
2712
|
-
var
|
|
3066
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
2713
3067
|
var DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024;
|
|
2714
3068
|
var uploadVariants = (0, import_class_variance_authority6.cva)(
|
|
2715
3069
|
"relative flex flex-col items-center justify-center rounded-lg transition-all duration-200 ease-in-out overflow-hidden",
|
|
@@ -2733,7 +3087,7 @@ var uploadVariants = (0, import_class_variance_authority6.cva)(
|
|
|
2733
3087
|
}
|
|
2734
3088
|
}
|
|
2735
3089
|
);
|
|
2736
|
-
var Upload =
|
|
3090
|
+
var Upload = React8.forwardRef(
|
|
2737
3091
|
({
|
|
2738
3092
|
className,
|
|
2739
3093
|
onFileSelect,
|
|
@@ -2746,8 +3100,8 @@ var Upload = React6.forwardRef(
|
|
|
2746
3100
|
selectedFiles = [],
|
|
2747
3101
|
...props
|
|
2748
3102
|
}, ref) => {
|
|
2749
|
-
const fileInputRef =
|
|
2750
|
-
const [isDragOver, setIsDragOver] =
|
|
3103
|
+
const fileInputRef = React8.useRef(null);
|
|
3104
|
+
const [isDragOver, setIsDragOver] = React8.useState(false);
|
|
2751
3105
|
const getFileTypeDisplay = () => {
|
|
2752
3106
|
const typeMap = {
|
|
2753
3107
|
"application/pdf": "PDF",
|
|
@@ -2811,17 +3165,17 @@ var Upload = React6.forwardRef(
|
|
|
2811
3165
|
const renderContent = () => {
|
|
2812
3166
|
switch (effectiveState) {
|
|
2813
3167
|
case "error":
|
|
2814
|
-
return /* @__PURE__ */ (0,
|
|
3168
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2815
3169
|
"div",
|
|
2816
3170
|
{
|
|
2817
3171
|
className: "flex flex-col items-center text-center max-w-[289px]",
|
|
2818
3172
|
style: { gap: "32px" },
|
|
2819
3173
|
children: [
|
|
2820
|
-
/* @__PURE__ */ (0,
|
|
2821
|
-
/* @__PURE__ */ (0,
|
|
2822
|
-
/* @__PURE__ */ (0,
|
|
3174
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "space-y-4", children: [
|
|
3175
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Typography, { variant: "heading-sm", children: "Upload fail" }),
|
|
3176
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Typography, { variant: "body-md", className: "text-error", children: errorMessage })
|
|
2823
3177
|
] }),
|
|
2824
|
-
/* @__PURE__ */ (0,
|
|
3178
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2825
3179
|
Button,
|
|
2826
3180
|
{
|
|
2827
3181
|
variant: "destructive",
|
|
@@ -2835,22 +3189,22 @@ var Upload = React6.forwardRef(
|
|
|
2835
3189
|
}
|
|
2836
3190
|
);
|
|
2837
3191
|
case "uploading":
|
|
2838
|
-
return /* @__PURE__ */ (0,
|
|
3192
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2839
3193
|
"div",
|
|
2840
3194
|
{
|
|
2841
3195
|
className: "flex flex-col items-center text-center max-w-[289px]",
|
|
2842
3196
|
style: { gap: "32px" },
|
|
2843
3197
|
children: [
|
|
2844
|
-
/* @__PURE__ */ (0,
|
|
2845
|
-
/* @__PURE__ */ (0,
|
|
2846
|
-
/* @__PURE__ */ (0,
|
|
3198
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Typography, { variant: "heading-sm", className: "text-dark", children: "Uploading files" }),
|
|
3199
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "w-full max-w-[720px] space-y-2", children: [
|
|
3200
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "w-full bg-gray rounded-full h-2", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2847
3201
|
"div",
|
|
2848
3202
|
{
|
|
2849
3203
|
className: "bg-canvas-primary h-2 rounded-full transition-all duration-300 ease-in-out",
|
|
2850
3204
|
style: { width: `${progress}%` }
|
|
2851
3205
|
}
|
|
2852
3206
|
) }),
|
|
2853
|
-
/* @__PURE__ */ (0,
|
|
3207
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2854
3208
|
Typography,
|
|
2855
3209
|
{
|
|
2856
3210
|
variant: "body-sm",
|
|
@@ -2866,29 +3220,29 @@ var Upload = React6.forwardRef(
|
|
|
2866
3220
|
}
|
|
2867
3221
|
);
|
|
2868
3222
|
case "success":
|
|
2869
|
-
return /* @__PURE__ */ (0,
|
|
3223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2870
3224
|
"div",
|
|
2871
3225
|
{
|
|
2872
3226
|
className: "flex flex-col items-center text-center max-w-[289px]",
|
|
2873
3227
|
style: { gap: "32px" },
|
|
2874
|
-
children: /* @__PURE__ */ (0,
|
|
2875
|
-
/* @__PURE__ */ (0,
|
|
2876
|
-
selectedFiles.length > 0 && /* @__PURE__ */ (0,
|
|
3228
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "space-y-4", children: [
|
|
3229
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Typography, { variant: "heading-sm", className: "text-success", children: "Upload successful!" }),
|
|
3230
|
+
selectedFiles.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "text-center", children: selectedFiles.map((file, index) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Typography, { variant: "body-sm", children: file.name }, index)) })
|
|
2877
3231
|
] })
|
|
2878
3232
|
}
|
|
2879
3233
|
);
|
|
2880
3234
|
default:
|
|
2881
|
-
return /* @__PURE__ */ (0,
|
|
3235
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2882
3236
|
"div",
|
|
2883
3237
|
{
|
|
2884
3238
|
className: "flex flex-col items-center text-center max-w-[289px]",
|
|
2885
3239
|
style: { gap: "32px" },
|
|
2886
3240
|
children: [
|
|
2887
|
-
/* @__PURE__ */ (0,
|
|
2888
|
-
/* @__PURE__ */ (0,
|
|
2889
|
-
/* @__PURE__ */ (0,
|
|
3241
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "space-y-4", children: [
|
|
3242
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Typography, { variant: "heading-sm", className: "text-dark", children: "Drag & drop files here" }),
|
|
3243
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "or click to browse from your computer" })
|
|
2890
3244
|
] }),
|
|
2891
|
-
/* @__PURE__ */ (0,
|
|
3245
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2892
3246
|
Button,
|
|
2893
3247
|
{
|
|
2894
3248
|
variant: "default",
|
|
@@ -2902,10 +3256,10 @@ var Upload = React6.forwardRef(
|
|
|
2902
3256
|
children: "Choose files"
|
|
2903
3257
|
}
|
|
2904
3258
|
),
|
|
2905
|
-
/* @__PURE__ */ (0,
|
|
3259
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Typography, { variant: "body-sm", className: "text-secondary", children: [
|
|
2906
3260
|
"Supported file: ",
|
|
2907
3261
|
getFileTypeDisplay(),
|
|
2908
|
-
/* @__PURE__ */ (0,
|
|
3262
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("br", {}),
|
|
2909
3263
|
"Max: ",
|
|
2910
3264
|
Math.round(maxFileSize / 1024 / 1024),
|
|
2911
3265
|
" MB each"
|
|
@@ -2915,7 +3269,7 @@ var Upload = React6.forwardRef(
|
|
|
2915
3269
|
);
|
|
2916
3270
|
}
|
|
2917
3271
|
};
|
|
2918
|
-
return /* @__PURE__ */ (0,
|
|
3272
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2919
3273
|
"div",
|
|
2920
3274
|
{
|
|
2921
3275
|
ref,
|
|
@@ -2939,7 +3293,7 @@ var Upload = React6.forwardRef(
|
|
|
2939
3293
|
"aria-disabled": disabled,
|
|
2940
3294
|
...props,
|
|
2941
3295
|
children: [
|
|
2942
|
-
/* @__PURE__ */ (0,
|
|
3296
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2943
3297
|
"input",
|
|
2944
3298
|
{
|
|
2945
3299
|
ref: fileInputRef,
|
|
@@ -2959,34 +3313,34 @@ var Upload = React6.forwardRef(
|
|
|
2959
3313
|
Upload.displayName = "Upload";
|
|
2960
3314
|
|
|
2961
3315
|
// src/components/ui/checkbox.tsx
|
|
2962
|
-
var
|
|
3316
|
+
var React9 = __toESM(require("react"));
|
|
2963
3317
|
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
|
|
2964
3318
|
var import_class_variance_authority7 = require("class-variance-authority");
|
|
2965
|
-
var
|
|
3319
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
2966
3320
|
var checkboxVariants = (0, import_class_variance_authority7.cva)(
|
|
2967
3321
|
"peer size-4 shrink-0 rounded-[4px] border bg-light hover:bg-info-subtle transition-colors focus-visible:outline-none focus-visible:border-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=checked]:text-light [&_svg]:pointer-events-none [&_svg]:size-3 [&_svg]:shrink-0 border-strong focus-visible:border-interactive aria-invalid:border-error aria-invalid:focus-visible:border-error"
|
|
2968
3322
|
);
|
|
2969
|
-
var Checkbox =
|
|
3323
|
+
var Checkbox = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2970
3324
|
CheckboxPrimitive.Root,
|
|
2971
3325
|
{
|
|
2972
3326
|
ref,
|
|
2973
3327
|
className: cn(checkboxVariants(), className),
|
|
2974
3328
|
...props,
|
|
2975
|
-
children: /* @__PURE__ */ (0,
|
|
3329
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CheckIcon, { variant: "light", className: "size-3" }) })
|
|
2976
3330
|
}
|
|
2977
3331
|
));
|
|
2978
3332
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
2979
3333
|
|
|
2980
3334
|
// src/components/ui/textarea.tsx
|
|
2981
|
-
var
|
|
2982
|
-
var
|
|
2983
|
-
var Textarea =
|
|
3335
|
+
var React10 = __toESM(require("react"));
|
|
3336
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
3337
|
+
var Textarea = React10.forwardRef(
|
|
2984
3338
|
({ className, style, ...props }, ref) => {
|
|
2985
3339
|
const tokenStyles = {
|
|
2986
3340
|
font: "var(--typography-label-md-regular)",
|
|
2987
3341
|
...style
|
|
2988
3342
|
};
|
|
2989
|
-
return /* @__PURE__ */ (0,
|
|
3343
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
2990
3344
|
"textarea",
|
|
2991
3345
|
{
|
|
2992
3346
|
className: cn(
|
|
@@ -3003,9 +3357,9 @@ var Textarea = React8.forwardRef(
|
|
|
3003
3357
|
Textarea.displayName = "Textarea";
|
|
3004
3358
|
|
|
3005
3359
|
// src/components/ui/badge.tsx
|
|
3006
|
-
var
|
|
3360
|
+
var React11 = __toESM(require("react"));
|
|
3007
3361
|
var import_class_variance_authority8 = require("class-variance-authority");
|
|
3008
|
-
var
|
|
3362
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
3009
3363
|
var badgeVariants = (0, import_class_variance_authority8.cva)(
|
|
3010
3364
|
"inline-flex items-center justify-center gap-1 whitespace-nowrap transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
|
|
3011
3365
|
{
|
|
@@ -3028,7 +3382,7 @@ var badgeVariants = (0, import_class_variance_authority8.cva)(
|
|
|
3028
3382
|
function getBadgeTypographyStyles() {
|
|
3029
3383
|
return { font: "var(--typography-label-sm-bold)" };
|
|
3030
3384
|
}
|
|
3031
|
-
var Badge =
|
|
3385
|
+
var Badge = React11.forwardRef(
|
|
3032
3386
|
({ className, variant, style, ...props }, ref) => {
|
|
3033
3387
|
if (!variant) {
|
|
3034
3388
|
return null;
|
|
@@ -3038,7 +3392,7 @@ var Badge = React9.forwardRef(
|
|
|
3038
3392
|
...typographyStyles,
|
|
3039
3393
|
...style
|
|
3040
3394
|
};
|
|
3041
|
-
return /* @__PURE__ */ (0,
|
|
3395
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
3042
3396
|
"span",
|
|
3043
3397
|
{
|
|
3044
3398
|
className: cn(
|
|
@@ -3056,13 +3410,13 @@ var Badge = React9.forwardRef(
|
|
|
3056
3410
|
Badge.displayName = "Badge";
|
|
3057
3411
|
|
|
3058
3412
|
// src/components/pdf-viewer/index.tsx
|
|
3059
|
-
var
|
|
3413
|
+
var React16 = __toESM(require("react"));
|
|
3060
3414
|
var import_TextLayer = require("react-pdf/dist/Page/TextLayer.css");
|
|
3061
3415
|
|
|
3062
3416
|
// src/components/pdf-viewer/components/PdfDocument.tsx
|
|
3063
|
-
var
|
|
3417
|
+
var React12 = __toESM(require("react"));
|
|
3064
3418
|
var import_react_pdf = require("react-pdf");
|
|
3065
|
-
var
|
|
3419
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
3066
3420
|
var PdfDocument = ({
|
|
3067
3421
|
file,
|
|
3068
3422
|
pageWidth,
|
|
@@ -3070,24 +3424,24 @@ var PdfDocument = ({
|
|
|
3070
3424
|
onLoadSuccess,
|
|
3071
3425
|
onLoadError
|
|
3072
3426
|
}) => {
|
|
3073
|
-
const [numPages, setNumPages] =
|
|
3427
|
+
const [numPages, setNumPages] = React12.useState();
|
|
3074
3428
|
function handleDocumentLoadSuccess({ numPages: numPages2 }) {
|
|
3075
3429
|
setNumPages(numPages2);
|
|
3076
3430
|
onLoadSuccess?.(numPages2);
|
|
3077
3431
|
}
|
|
3078
3432
|
if (!file) {
|
|
3079
|
-
return /* @__PURE__ */ (0,
|
|
3433
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No PDF available" }) });
|
|
3080
3434
|
}
|
|
3081
|
-
return /* @__PURE__ */ (0,
|
|
3435
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3082
3436
|
import_react_pdf.Document,
|
|
3083
3437
|
{
|
|
3084
3438
|
file,
|
|
3085
3439
|
onLoadSuccess: handleDocumentLoadSuccess,
|
|
3086
3440
|
onLoadError,
|
|
3087
|
-
loading: /* @__PURE__ */ (0,
|
|
3088
|
-
error: /* @__PURE__ */ (0,
|
|
3441
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "Rendering PDF..." }) }),
|
|
3442
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Typography, { variant: "body-md", className: "text-error", children: "Failed to render PDF" }) }),
|
|
3089
3443
|
className: "flex flex-col items-center p-4",
|
|
3090
|
-
children: numPages && pageWidth > 0 && Array.from(new Array(numPages), (_, index) => /* @__PURE__ */ (0,
|
|
3444
|
+
children: numPages && pageWidth > 0 && Array.from(new Array(numPages), (_, index) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3091
3445
|
import_react_pdf.Page,
|
|
3092
3446
|
{
|
|
3093
3447
|
pageNumber: index + 1,
|
|
@@ -3104,14 +3458,14 @@ var PdfDocument = ({
|
|
|
3104
3458
|
PdfDocument.displayName = "PdfDocument";
|
|
3105
3459
|
|
|
3106
3460
|
// src/components/pdf-viewer/components/PdfHeader.tsx
|
|
3107
|
-
var
|
|
3461
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
3108
3462
|
var PdfHeader = ({
|
|
3109
3463
|
title,
|
|
3110
3464
|
onDownload,
|
|
3111
3465
|
onPrint
|
|
3112
3466
|
}) => {
|
|
3113
|
-
return /* @__PURE__ */ (0,
|
|
3114
|
-
/* @__PURE__ */ (0,
|
|
3467
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex items-center justify-between gap-4 px-4 py-3 bg-neutral-400 border-b border-subtle", children: [
|
|
3468
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "flex-shrink min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3115
3469
|
Typography,
|
|
3116
3470
|
{
|
|
3117
3471
|
variant: "label-md-bold",
|
|
@@ -3120,25 +3474,25 @@ var PdfHeader = ({
|
|
|
3120
3474
|
children: title || "Untitled Document"
|
|
3121
3475
|
}
|
|
3122
3476
|
) }),
|
|
3123
|
-
/* @__PURE__ */ (0,
|
|
3124
|
-
/* @__PURE__ */ (0,
|
|
3477
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex items-center gap-2 flex-shrink-0", children: [
|
|
3478
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3125
3479
|
"button",
|
|
3126
3480
|
{
|
|
3127
3481
|
onClick: onDownload,
|
|
3128
3482
|
className: "p-2 hover:bg-neutral-500 rounded transition-colors",
|
|
3129
3483
|
"aria-label": "Download PDF",
|
|
3130
3484
|
type: "button",
|
|
3131
|
-
children: /* @__PURE__ */ (0,
|
|
3485
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Download, { variant: "dark", className: "w-5 h-5" })
|
|
3132
3486
|
}
|
|
3133
3487
|
),
|
|
3134
|
-
/* @__PURE__ */ (0,
|
|
3488
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3135
3489
|
"button",
|
|
3136
3490
|
{
|
|
3137
3491
|
onClick: onPrint,
|
|
3138
3492
|
className: "p-2 hover:bg-neutral-500 rounded transition-colors",
|
|
3139
3493
|
"aria-label": "Print PDF",
|
|
3140
3494
|
type: "button",
|
|
3141
|
-
children: /* @__PURE__ */ (0,
|
|
3495
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Print, { variant: "dark", className: "w-5 h-5" })
|
|
3142
3496
|
}
|
|
3143
3497
|
)
|
|
3144
3498
|
] })
|
|
@@ -3147,12 +3501,12 @@ var PdfHeader = ({
|
|
|
3147
3501
|
PdfHeader.displayName = "PdfHeader";
|
|
3148
3502
|
|
|
3149
3503
|
// src/components/pdf-viewer/hooks/useContainerWidth.ts
|
|
3150
|
-
var
|
|
3504
|
+
var React13 = __toESM(require("react"));
|
|
3151
3505
|
function useContainerWidth(padding = 32) {
|
|
3152
|
-
const [containerWidth, setContainerWidth] =
|
|
3153
|
-
const containerRef =
|
|
3154
|
-
const lastWidthRef =
|
|
3155
|
-
|
|
3506
|
+
const [containerWidth, setContainerWidth] = React13.useState(0);
|
|
3507
|
+
const containerRef = React13.useRef(null);
|
|
3508
|
+
const lastWidthRef = React13.useRef(0);
|
|
3509
|
+
React13.useEffect(() => {
|
|
3156
3510
|
const element = containerRef.current;
|
|
3157
3511
|
if (!element) return;
|
|
3158
3512
|
const resizeObserver = new ResizeObserver((entries) => {
|
|
@@ -3176,9 +3530,9 @@ function useContainerWidth(padding = 32) {
|
|
|
3176
3530
|
}
|
|
3177
3531
|
|
|
3178
3532
|
// src/components/pdf-viewer/hooks/usePdfDownload.ts
|
|
3179
|
-
var
|
|
3533
|
+
var React14 = __toESM(require("react"));
|
|
3180
3534
|
function usePdfDownload(file, title) {
|
|
3181
|
-
const download =
|
|
3535
|
+
const download = React14.useCallback(async () => {
|
|
3182
3536
|
if (!file) return;
|
|
3183
3537
|
try {
|
|
3184
3538
|
let blob;
|
|
@@ -3210,11 +3564,11 @@ function usePdfDownload(file, title) {
|
|
|
3210
3564
|
}
|
|
3211
3565
|
|
|
3212
3566
|
// src/components/pdf-viewer/hooks/usePdfPrint.ts
|
|
3213
|
-
var
|
|
3567
|
+
var React15 = __toESM(require("react"));
|
|
3214
3568
|
function usePdfPrint(file) {
|
|
3215
|
-
const [printBlobUrl, setPrintBlobUrl] =
|
|
3216
|
-
const printFrameRef =
|
|
3217
|
-
const preparePrint =
|
|
3569
|
+
const [printBlobUrl, setPrintBlobUrl] = React15.useState(null);
|
|
3570
|
+
const printFrameRef = React15.useRef(null);
|
|
3571
|
+
const preparePrint = React15.useCallback(async () => {
|
|
3218
3572
|
if (!file) return;
|
|
3219
3573
|
try {
|
|
3220
3574
|
let blob;
|
|
@@ -3230,14 +3584,14 @@ function usePdfPrint(file) {
|
|
|
3230
3584
|
console.error("Failed to prepare PDF for printing:", error);
|
|
3231
3585
|
}
|
|
3232
3586
|
}, [file]);
|
|
3233
|
-
|
|
3587
|
+
React15.useEffect(() => {
|
|
3234
3588
|
return () => {
|
|
3235
3589
|
if (printBlobUrl) {
|
|
3236
3590
|
URL.revokeObjectURL(printBlobUrl);
|
|
3237
3591
|
}
|
|
3238
3592
|
};
|
|
3239
3593
|
}, [printBlobUrl]);
|
|
3240
|
-
const print =
|
|
3594
|
+
const print = React15.useCallback(() => {
|
|
3241
3595
|
if (printFrameRef.current?.contentWindow) {
|
|
3242
3596
|
printFrameRef.current.contentWindow.print();
|
|
3243
3597
|
}
|
|
@@ -3252,8 +3606,8 @@ function initializePdfWorker(workerUrl) {
|
|
|
3252
3606
|
}
|
|
3253
3607
|
|
|
3254
3608
|
// src/components/pdf-viewer/index.tsx
|
|
3255
|
-
var
|
|
3256
|
-
var PdfViewer =
|
|
3609
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
3610
|
+
var PdfViewer = React16.forwardRef(
|
|
3257
3611
|
({
|
|
3258
3612
|
file,
|
|
3259
3613
|
title,
|
|
@@ -3270,35 +3624,35 @@ var PdfViewer = React14.forwardRef(
|
|
|
3270
3624
|
const { printFrameRef, printBlobUrl, preparePrint, print } = usePdfPrint(file);
|
|
3271
3625
|
const download = usePdfDownload(file, title);
|
|
3272
3626
|
const effectiveWidth = pageWidth || containerWidth;
|
|
3273
|
-
const handleLoadSuccess =
|
|
3627
|
+
const handleLoadSuccess = React16.useCallback(
|
|
3274
3628
|
async (numPages) => {
|
|
3275
3629
|
onLoadSuccess?.(numPages);
|
|
3276
3630
|
await preparePrint();
|
|
3277
3631
|
},
|
|
3278
3632
|
[onLoadSuccess, preparePrint]
|
|
3279
3633
|
);
|
|
3280
|
-
const handleDownload =
|
|
3634
|
+
const handleDownload = React16.useCallback(() => {
|
|
3281
3635
|
if (onDownload) {
|
|
3282
3636
|
onDownload();
|
|
3283
3637
|
return;
|
|
3284
3638
|
}
|
|
3285
3639
|
download();
|
|
3286
3640
|
}, [onDownload, download]);
|
|
3287
|
-
const handlePrint =
|
|
3641
|
+
const handlePrint = React16.useCallback(() => {
|
|
3288
3642
|
if (onPrint) {
|
|
3289
3643
|
onPrint();
|
|
3290
3644
|
return;
|
|
3291
3645
|
}
|
|
3292
3646
|
print();
|
|
3293
3647
|
}, [onPrint, print]);
|
|
3294
|
-
return /* @__PURE__ */ (0,
|
|
3648
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3295
3649
|
"div",
|
|
3296
3650
|
{
|
|
3297
3651
|
ref,
|
|
3298
3652
|
className: cn("h-full flex flex-col", className),
|
|
3299
3653
|
...props,
|
|
3300
3654
|
children: [
|
|
3301
|
-
printBlobUrl && /* @__PURE__ */ (0,
|
|
3655
|
+
printBlobUrl && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3302
3656
|
"iframe",
|
|
3303
3657
|
{
|
|
3304
3658
|
ref: printFrameRef,
|
|
@@ -3307,7 +3661,7 @@ var PdfViewer = React14.forwardRef(
|
|
|
3307
3661
|
title: "PDF for printing"
|
|
3308
3662
|
}
|
|
3309
3663
|
),
|
|
3310
|
-
/* @__PURE__ */ (0,
|
|
3664
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3311
3665
|
PdfHeader,
|
|
3312
3666
|
{
|
|
3313
3667
|
title,
|
|
@@ -3315,12 +3669,12 @@ var PdfViewer = React14.forwardRef(
|
|
|
3315
3669
|
onPrint: handlePrint
|
|
3316
3670
|
}
|
|
3317
3671
|
),
|
|
3318
|
-
/* @__PURE__ */ (0,
|
|
3672
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3319
3673
|
"div",
|
|
3320
3674
|
{
|
|
3321
3675
|
ref: containerRef,
|
|
3322
3676
|
className: "flex-1 overflow-y-auto overflow-x-hidden bg-neutral-300",
|
|
3323
|
-
children: /* @__PURE__ */ (0,
|
|
3677
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3324
3678
|
PdfDocument,
|
|
3325
3679
|
{
|
|
3326
3680
|
file,
|
|
@@ -3340,9 +3694,9 @@ var PdfViewer = React14.forwardRef(
|
|
|
3340
3694
|
PdfViewer.displayName = "PdfViewer";
|
|
3341
3695
|
|
|
3342
3696
|
// src/components/ui/tabs.tsx
|
|
3343
|
-
var
|
|
3697
|
+
var React17 = __toESM(require("react"));
|
|
3344
3698
|
var import_class_variance_authority9 = require("class-variance-authority");
|
|
3345
|
-
var
|
|
3699
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
3346
3700
|
var tabsVariants = (0, import_class_variance_authority9.cva)(
|
|
3347
3701
|
"inline-flex items-center justify-start whitespace-nowrap transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-interactive focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 h-10",
|
|
3348
3702
|
{
|
|
@@ -3356,17 +3710,17 @@ var tabsVariants = (0, import_class_variance_authority9.cva)(
|
|
|
3356
3710
|
}
|
|
3357
3711
|
}
|
|
3358
3712
|
);
|
|
3359
|
-
var TabsContext =
|
|
3713
|
+
var TabsContext = React17.createContext(
|
|
3360
3714
|
void 0
|
|
3361
3715
|
);
|
|
3362
3716
|
function useTabsContext() {
|
|
3363
|
-
const context =
|
|
3717
|
+
const context = React17.useContext(TabsContext);
|
|
3364
3718
|
if (!context) {
|
|
3365
3719
|
throw new Error("Tabs components must be used within a Tabs provider");
|
|
3366
3720
|
}
|
|
3367
3721
|
return context;
|
|
3368
3722
|
}
|
|
3369
|
-
var Tabs =
|
|
3723
|
+
var Tabs = React17.forwardRef((props, ref) => {
|
|
3370
3724
|
const {
|
|
3371
3725
|
className,
|
|
3372
3726
|
value,
|
|
@@ -3375,7 +3729,7 @@ var Tabs = React15.forwardRef((props, ref) => {
|
|
|
3375
3729
|
children,
|
|
3376
3730
|
...restProps
|
|
3377
3731
|
} = props;
|
|
3378
|
-
const contextValue =
|
|
3732
|
+
const contextValue = React17.useMemo(
|
|
3379
3733
|
() => ({
|
|
3380
3734
|
activeTab: value,
|
|
3381
3735
|
setActiveTab: onValueChange,
|
|
@@ -3383,13 +3737,13 @@ var Tabs = React15.forwardRef((props, ref) => {
|
|
|
3383
3737
|
}),
|
|
3384
3738
|
[value, onValueChange, variant]
|
|
3385
3739
|
);
|
|
3386
|
-
return /* @__PURE__ */ (0,
|
|
3740
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TabsContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { ref, className: cn("w-full", className), ...restProps, children }) });
|
|
3387
3741
|
});
|
|
3388
3742
|
Tabs.displayName = "Tabs";
|
|
3389
|
-
var TabsList =
|
|
3743
|
+
var TabsList = React17.forwardRef(
|
|
3390
3744
|
(props, ref) => {
|
|
3391
3745
|
const { className, children, ...restProps } = props;
|
|
3392
|
-
return /* @__PURE__ */ (0,
|
|
3746
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3393
3747
|
"div",
|
|
3394
3748
|
{
|
|
3395
3749
|
ref,
|
|
@@ -3405,7 +3759,7 @@ TabsList.displayName = "TabsList";
|
|
|
3405
3759
|
var getTabTypographyStyles = (isActive) => ({
|
|
3406
3760
|
font: isActive ? "var(--typography-label-sm-bold)" : "var(--typography-label-sm-regular)"
|
|
3407
3761
|
});
|
|
3408
|
-
var TabsTrigger =
|
|
3762
|
+
var TabsTrigger = React17.forwardRef(
|
|
3409
3763
|
(props, ref) => {
|
|
3410
3764
|
const { className, value, disabled, style, children, ...restProps } = props;
|
|
3411
3765
|
const { activeTab, setActiveTab, variant } = useTabsContext();
|
|
@@ -3413,22 +3767,22 @@ var TabsTrigger = React15.forwardRef(
|
|
|
3413
3767
|
throw new Error("TabsTrigger must have a value prop");
|
|
3414
3768
|
}
|
|
3415
3769
|
const isActive = activeTab === value;
|
|
3416
|
-
const tokenStyles =
|
|
3770
|
+
const tokenStyles = React17.useMemo(
|
|
3417
3771
|
() => ({
|
|
3418
3772
|
...getTabTypographyStyles(isActive),
|
|
3419
3773
|
...style
|
|
3420
3774
|
}),
|
|
3421
3775
|
[isActive, style]
|
|
3422
3776
|
);
|
|
3423
|
-
const triggerClassName =
|
|
3777
|
+
const triggerClassName = React17.useMemo(
|
|
3424
3778
|
() => cn(tabsVariants({ variant }), className),
|
|
3425
3779
|
[variant, className]
|
|
3426
3780
|
);
|
|
3427
|
-
const handleClick =
|
|
3781
|
+
const handleClick = React17.useCallback(() => {
|
|
3428
3782
|
if (disabled) return;
|
|
3429
3783
|
setActiveTab(value);
|
|
3430
3784
|
}, [disabled, setActiveTab, value]);
|
|
3431
|
-
return /* @__PURE__ */ (0,
|
|
3785
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3432
3786
|
"button",
|
|
3433
3787
|
{
|
|
3434
3788
|
ref,
|
|
@@ -3442,13 +3796,13 @@ var TabsTrigger = React15.forwardRef(
|
|
|
3442
3796
|
disabled,
|
|
3443
3797
|
onClick: handleClick,
|
|
3444
3798
|
...restProps,
|
|
3445
|
-
children: /* @__PURE__ */ (0,
|
|
3799
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "pl-3 pr-6 py-2", children })
|
|
3446
3800
|
}
|
|
3447
3801
|
);
|
|
3448
3802
|
}
|
|
3449
3803
|
);
|
|
3450
3804
|
TabsTrigger.displayName = "TabsTrigger";
|
|
3451
|
-
var TabsContent =
|
|
3805
|
+
var TabsContent = React17.forwardRef(
|
|
3452
3806
|
(props, ref) => {
|
|
3453
3807
|
const { className, value, children, ...restProps } = props;
|
|
3454
3808
|
const { activeTab } = useTabsContext();
|
|
@@ -3459,7 +3813,7 @@ var TabsContent = React15.forwardRef(
|
|
|
3459
3813
|
if (!isActive) {
|
|
3460
3814
|
return null;
|
|
3461
3815
|
}
|
|
3462
|
-
return /* @__PURE__ */ (0,
|
|
3816
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3463
3817
|
"div",
|
|
3464
3818
|
{
|
|
3465
3819
|
ref,
|
|
@@ -3477,11 +3831,11 @@ var TabsContent = React15.forwardRef(
|
|
|
3477
3831
|
TabsContent.displayName = "TabsContent";
|
|
3478
3832
|
|
|
3479
3833
|
// src/components/ui/dropdown-menu.tsx
|
|
3480
|
-
var
|
|
3834
|
+
var React18 = __toESM(require("react"));
|
|
3481
3835
|
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
|
|
3482
|
-
var
|
|
3836
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
3483
3837
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
3484
|
-
var DropdownMenuTrigger =
|
|
3838
|
+
var DropdownMenuTrigger = React18.forwardRef(({ className, icon, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
3485
3839
|
DropdownMenuPrimitive.Trigger,
|
|
3486
3840
|
{
|
|
3487
3841
|
ref,
|
|
@@ -3491,7 +3845,7 @@ var DropdownMenuTrigger = React16.forwardRef(({ className, icon, children, ...pr
|
|
|
3491
3845
|
),
|
|
3492
3846
|
...props,
|
|
3493
3847
|
children: [
|
|
3494
|
-
icon || /* @__PURE__ */ (0,
|
|
3848
|
+
icon || /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(MoreMenu, { className: "size-4" }),
|
|
3495
3849
|
children
|
|
3496
3850
|
]
|
|
3497
3851
|
}
|
|
@@ -3501,7 +3855,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
|
3501
3855
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
3502
3856
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
3503
3857
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
3504
|
-
var DropdownMenuSubTrigger =
|
|
3858
|
+
var DropdownMenuSubTrigger = React18.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
3505
3859
|
DropdownMenuPrimitive.SubTrigger,
|
|
3506
3860
|
{
|
|
3507
3861
|
ref,
|
|
@@ -3514,12 +3868,12 @@ var DropdownMenuSubTrigger = React16.forwardRef(({ className, inset, children, .
|
|
|
3514
3868
|
...props,
|
|
3515
3869
|
children: [
|
|
3516
3870
|
children,
|
|
3517
|
-
/* @__PURE__ */ (0,
|
|
3871
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ChevronRight, { className: "ml-auto" })
|
|
3518
3872
|
]
|
|
3519
3873
|
}
|
|
3520
3874
|
));
|
|
3521
3875
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
3522
|
-
var DropdownMenuSubContent =
|
|
3876
|
+
var DropdownMenuSubContent = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3523
3877
|
DropdownMenuPrimitive.SubContent,
|
|
3524
3878
|
{
|
|
3525
3879
|
ref,
|
|
@@ -3531,7 +3885,7 @@ var DropdownMenuSubContent = React16.forwardRef(({ className, ...props }, ref) =
|
|
|
3531
3885
|
}
|
|
3532
3886
|
));
|
|
3533
3887
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
3534
|
-
var DropdownMenuContent =
|
|
3888
|
+
var DropdownMenuContent = React18.forwardRef(({ className, sideOffset = 4, align = "end", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3535
3889
|
DropdownMenuPrimitive.Content,
|
|
3536
3890
|
{
|
|
3537
3891
|
ref,
|
|
@@ -3545,7 +3899,7 @@ var DropdownMenuContent = React16.forwardRef(({ className, sideOffset = 4, align
|
|
|
3545
3899
|
}
|
|
3546
3900
|
) }));
|
|
3547
3901
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
3548
|
-
var DropdownMenuItem =
|
|
3902
|
+
var DropdownMenuItem = React18.forwardRef(({ className, inset, style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3549
3903
|
DropdownMenuPrimitive.Item,
|
|
3550
3904
|
{
|
|
3551
3905
|
ref,
|
|
@@ -3562,7 +3916,7 @@ var DropdownMenuItem = React16.forwardRef(({ className, inset, style, ...props }
|
|
|
3562
3916
|
}
|
|
3563
3917
|
));
|
|
3564
3918
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
3565
|
-
var DropdownMenuCheckboxItem =
|
|
3919
|
+
var DropdownMenuCheckboxItem = React18.forwardRef(({ className, children, style, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
3566
3920
|
DropdownMenuPrimitive.CheckboxItem,
|
|
3567
3921
|
{
|
|
3568
3922
|
ref,
|
|
@@ -3577,7 +3931,7 @@ var DropdownMenuCheckboxItem = React16.forwardRef(({ className, children, style,
|
|
|
3577
3931
|
},
|
|
3578
3932
|
...props,
|
|
3579
3933
|
children: [
|
|
3580
|
-
/* @__PURE__ */ (0,
|
|
3934
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3581
3935
|
Checkbox,
|
|
3582
3936
|
{
|
|
3583
3937
|
checked: checked === true,
|
|
@@ -3585,12 +3939,12 @@ var DropdownMenuCheckboxItem = React16.forwardRef(({ className, children, style,
|
|
|
3585
3939
|
"aria-hidden": "true"
|
|
3586
3940
|
}
|
|
3587
3941
|
),
|
|
3588
|
-
/* @__PURE__ */ (0,
|
|
3942
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "flex-1", children })
|
|
3589
3943
|
]
|
|
3590
3944
|
}
|
|
3591
3945
|
));
|
|
3592
3946
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
3593
|
-
var DropdownMenuRadioItem =
|
|
3947
|
+
var DropdownMenuRadioItem = React18.forwardRef(({ className, children, style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
3594
3948
|
DropdownMenuPrimitive.RadioItem,
|
|
3595
3949
|
{
|
|
3596
3950
|
ref,
|
|
@@ -3604,13 +3958,13 @@ var DropdownMenuRadioItem = React16.forwardRef(({ className, children, style, ..
|
|
|
3604
3958
|
},
|
|
3605
3959
|
...props,
|
|
3606
3960
|
children: [
|
|
3607
|
-
/* @__PURE__ */ (0,
|
|
3961
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "h-2 w-2 rounded-full bg-current" }) }) }),
|
|
3608
3962
|
children
|
|
3609
3963
|
]
|
|
3610
3964
|
}
|
|
3611
3965
|
));
|
|
3612
3966
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
3613
|
-
var DropdownMenuLabel =
|
|
3967
|
+
var DropdownMenuLabel = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3614
3968
|
DropdownMenuPrimitive.Label,
|
|
3615
3969
|
{
|
|
3616
3970
|
ref,
|
|
@@ -3623,7 +3977,7 @@ var DropdownMenuLabel = React16.forwardRef(({ className, inset, ...props }, ref)
|
|
|
3623
3977
|
}
|
|
3624
3978
|
));
|
|
3625
3979
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
3626
|
-
var DropdownMenuSeparator =
|
|
3980
|
+
var DropdownMenuSeparator = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3627
3981
|
DropdownMenuPrimitive.Separator,
|
|
3628
3982
|
{
|
|
3629
3983
|
ref,
|
|
@@ -3636,7 +3990,7 @@ var DropdownMenuShortcut = ({
|
|
|
3636
3990
|
className,
|
|
3637
3991
|
...props
|
|
3638
3992
|
}) => {
|
|
3639
|
-
return /* @__PURE__ */ (0,
|
|
3993
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3640
3994
|
"span",
|
|
3641
3995
|
{
|
|
3642
3996
|
className: cn("ml-auto text-xs tracking-widest opacity-60", className),
|
|
@@ -3647,21 +4001,21 @@ var DropdownMenuShortcut = ({
|
|
|
3647
4001
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
3648
4002
|
|
|
3649
4003
|
// src/components/ui/charts/chart-legend.tsx
|
|
3650
|
-
var
|
|
4004
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
3651
4005
|
function ChartLegend({
|
|
3652
4006
|
items,
|
|
3653
4007
|
x = 0,
|
|
3654
4008
|
y = 550,
|
|
3655
4009
|
className = ""
|
|
3656
4010
|
}) {
|
|
3657
|
-
return /* @__PURE__ */ (0,
|
|
4011
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("foreignObject", { x, y, width: "100%", height: "40", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3658
4012
|
"div",
|
|
3659
4013
|
{
|
|
3660
4014
|
className: `flex justify-center items-center gap-6 ${className}`,
|
|
3661
4015
|
style: { height: "100%" },
|
|
3662
|
-
children: items.map(({ key, color, label }) => /* @__PURE__ */ (0,
|
|
3663
|
-
/* @__PURE__ */ (0,
|
|
3664
|
-
/* @__PURE__ */ (0,
|
|
4016
|
+
children: items.map(({ key, color, label }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
4017
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "w-3 h-3", style: { backgroundColor: color } }),
|
|
4018
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Typography, { variant: "body-xs", children: label || key })
|
|
3665
4019
|
] }, key))
|
|
3666
4020
|
}
|
|
3667
4021
|
) });
|
|
@@ -3779,12 +4133,12 @@ var formatLargeNumber = (value) => {
|
|
|
3779
4133
|
};
|
|
3780
4134
|
|
|
3781
4135
|
// src/components/ui/charts/chart-labels.tsx
|
|
3782
|
-
var
|
|
4136
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
3783
4137
|
var createCustomXAxisLabel = (text, yOffset = 40) => {
|
|
3784
4138
|
const CustomXAxisLabel = ({ viewBox }) => {
|
|
3785
4139
|
if (!viewBox) return null;
|
|
3786
4140
|
const { x, y, width } = viewBox;
|
|
3787
|
-
return /* @__PURE__ */ (0,
|
|
4141
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("foreignObject", { x, y: y + yOffset, width, height: 20, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex justify-center w-full", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
|
|
3788
4142
|
};
|
|
3789
4143
|
CustomXAxisLabel.displayName = "CustomXAxisLabel";
|
|
3790
4144
|
return CustomXAxisLabel;
|
|
@@ -3794,7 +4148,7 @@ var createCustomYAxisLabel = (text, leftMargin) => {
|
|
|
3794
4148
|
if (!viewBox) return null;
|
|
3795
4149
|
const { x, y, height } = viewBox;
|
|
3796
4150
|
const offset = leftMargin ? leftMargin + 10 : 110;
|
|
3797
|
-
return /* @__PURE__ */ (0,
|
|
4151
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("foreignObject", { x: x - offset, y, width: 100, height, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex items-center justify-center h-full transform -rotate-90 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
|
|
3798
4152
|
};
|
|
3799
4153
|
CustomYAxisLabel.displayName = "CustomYAxisLabel";
|
|
3800
4154
|
return CustomYAxisLabel;
|
|
@@ -3803,14 +4157,14 @@ var createCustomYAxisRightLabel = (text) => {
|
|
|
3803
4157
|
const CustomYAxisRightLabel = ({ viewBox }) => {
|
|
3804
4158
|
if (!viewBox) return null;
|
|
3805
4159
|
const { x, y, width, height } = viewBox;
|
|
3806
|
-
return /* @__PURE__ */ (0,
|
|
4160
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("foreignObject", { x: x + width - 70, y, width: 120, height, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex items-center justify-center h-full transform rotate-90 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
|
|
3807
4161
|
};
|
|
3808
4162
|
CustomYAxisRightLabel.displayName = "CustomYAxisRightLabel";
|
|
3809
4163
|
return CustomYAxisRightLabel;
|
|
3810
4164
|
};
|
|
3811
4165
|
var customXAxisTick = (props) => {
|
|
3812
4166
|
const { x, y, payload } = props;
|
|
3813
|
-
return /* @__PURE__ */ (0,
|
|
4167
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3814
4168
|
"foreignObject",
|
|
3815
4169
|
{
|
|
3816
4170
|
x: -20,
|
|
@@ -3818,12 +4172,12 @@ var customXAxisTick = (props) => {
|
|
|
3818
4172
|
width: 40,
|
|
3819
4173
|
height: 20,
|
|
3820
4174
|
style: { overflow: "visible" },
|
|
3821
|
-
children: /* @__PURE__ */ (0,
|
|
4175
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3822
4176
|
"div",
|
|
3823
4177
|
{
|
|
3824
4178
|
className: "flex items-start justify-center h-full",
|
|
3825
4179
|
style: { overflow: "visible" },
|
|
3826
|
-
children: /* @__PURE__ */ (0,
|
|
4180
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3827
4181
|
Typography,
|
|
3828
4182
|
{
|
|
3829
4183
|
variant: "body-xs",
|
|
@@ -3838,7 +4192,7 @@ var customXAxisTick = (props) => {
|
|
|
3838
4192
|
};
|
|
3839
4193
|
var customXAxisTickRotated = (props) => {
|
|
3840
4194
|
const { x, y, payload } = props;
|
|
3841
|
-
return /* @__PURE__ */ (0,
|
|
4195
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3842
4196
|
"text",
|
|
3843
4197
|
{
|
|
3844
4198
|
x: 0,
|
|
@@ -3857,25 +4211,25 @@ var customYAxisTick = (props) => {
|
|
|
3857
4211
|
const { x, y, payload } = props;
|
|
3858
4212
|
const text = String(payload.value);
|
|
3859
4213
|
const estimatedWidth = Math.max(text.length * 8, 80);
|
|
3860
|
-
return /* @__PURE__ */ (0,
|
|
4214
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3861
4215
|
"foreignObject",
|
|
3862
4216
|
{
|
|
3863
4217
|
x: x - estimatedWidth + 5,
|
|
3864
4218
|
y: y - 6,
|
|
3865
4219
|
width: estimatedWidth,
|
|
3866
4220
|
height: 15,
|
|
3867
|
-
children: /* @__PURE__ */ (0,
|
|
4221
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex justify-end w-full", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Typography, { variant: "body-xs", className: "text-secondary", children: payload.value }) })
|
|
3868
4222
|
}
|
|
3869
4223
|
);
|
|
3870
4224
|
};
|
|
3871
4225
|
|
|
3872
4226
|
// src/components/ui/charts/chart-tooltip.tsx
|
|
3873
|
-
var
|
|
4227
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
3874
4228
|
function TooltipContainer({
|
|
3875
4229
|
children,
|
|
3876
4230
|
className = ""
|
|
3877
4231
|
}) {
|
|
3878
|
-
return /* @__PURE__ */ (0,
|
|
4232
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3879
4233
|
"div",
|
|
3880
4234
|
{
|
|
3881
4235
|
className: `bg-light border border-subtle rounded p-2.5 text-dark ${className}`,
|
|
@@ -3889,10 +4243,10 @@ function TooltipItem({
|
|
|
3889
4243
|
value,
|
|
3890
4244
|
className = ""
|
|
3891
4245
|
}) {
|
|
3892
|
-
return /* @__PURE__ */ (0,
|
|
3893
|
-
/* @__PURE__ */ (0,
|
|
3894
|
-
/* @__PURE__ */ (0,
|
|
3895
|
-
/* @__PURE__ */ (0,
|
|
4246
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
4247
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("br", {}),
|
|
4248
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Typography, { variant: "label-sm", className, children: [
|
|
4249
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3896
4250
|
"span",
|
|
3897
4251
|
{
|
|
3898
4252
|
className: "inline-block w-3 h-3 mr-1.5",
|
|
@@ -3910,9 +4264,9 @@ function GenericTooltip({
|
|
|
3910
4264
|
items,
|
|
3911
4265
|
className = ""
|
|
3912
4266
|
}) {
|
|
3913
|
-
return /* @__PURE__ */ (0,
|
|
3914
|
-
title && /* @__PURE__ */ (0,
|
|
3915
|
-
items.map((item, index) => /* @__PURE__ */ (0,
|
|
4267
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(TooltipContainer, { className, children: [
|
|
4268
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Typography, { variant: "label-sm-bold", children: title }),
|
|
4269
|
+
items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3916
4270
|
TooltipItem,
|
|
3917
4271
|
{
|
|
3918
4272
|
color: item.color,
|
|
@@ -3927,7 +4281,7 @@ function GenericTooltip({
|
|
|
3927
4281
|
// src/components/ui/charts/bar-chart.tsx
|
|
3928
4282
|
var import_react2 = require("react");
|
|
3929
4283
|
var import_recharts = require("recharts");
|
|
3930
|
-
var
|
|
4284
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
3931
4285
|
var BarChart = (0, import_react2.forwardRef)(
|
|
3932
4286
|
({
|
|
3933
4287
|
data,
|
|
@@ -3954,19 +4308,19 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
3954
4308
|
};
|
|
3955
4309
|
const defaultLegendItems = showLegend && legendItems.length === 0 ? [{ key: yAxisKey, color: barColor, label: yAxisKey }] : legendItems;
|
|
3956
4310
|
const hasData = data && data.length > 0;
|
|
3957
|
-
return /* @__PURE__ */ (0,
|
|
4311
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
3958
4312
|
"div",
|
|
3959
4313
|
{
|
|
3960
4314
|
ref,
|
|
3961
4315
|
className: `bg-light border border-subtle mx-6 ${className}`,
|
|
3962
4316
|
children: [
|
|
3963
|
-
/* @__PURE__ */ (0,
|
|
3964
|
-
/* @__PURE__ */ (0,
|
|
4317
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
|
|
4318
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3965
4319
|
import_recharts.ResponsiveContainer,
|
|
3966
4320
|
{
|
|
3967
4321
|
width: "100%",
|
|
3968
4322
|
height: CHART_CONSTANTS.STANDARD_HEIGHT,
|
|
3969
|
-
children: /* @__PURE__ */ (0,
|
|
4323
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
3970
4324
|
import_recharts.BarChart,
|
|
3971
4325
|
{
|
|
3972
4326
|
data,
|
|
@@ -3978,7 +4332,7 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
3978
4332
|
onClick: handleClick,
|
|
3979
4333
|
layout,
|
|
3980
4334
|
children: [
|
|
3981
|
-
/* @__PURE__ */ (0,
|
|
4335
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3982
4336
|
import_recharts.XAxis,
|
|
3983
4337
|
{
|
|
3984
4338
|
dataKey: xAxisKey,
|
|
@@ -3992,7 +4346,7 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
3992
4346
|
label: xAxisLabel ? createCustomXAxisLabel(xAxisLabel, 80) : void 0
|
|
3993
4347
|
}
|
|
3994
4348
|
),
|
|
3995
|
-
/* @__PURE__ */ (0,
|
|
4349
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3996
4350
|
import_recharts.YAxis,
|
|
3997
4351
|
{
|
|
3998
4352
|
axisLine: false,
|
|
@@ -4003,7 +4357,7 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
4003
4357
|
type: yAxisType
|
|
4004
4358
|
}
|
|
4005
4359
|
),
|
|
4006
|
-
/* @__PURE__ */ (0,
|
|
4360
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4007
4361
|
import_recharts.Tooltip,
|
|
4008
4362
|
{
|
|
4009
4363
|
content: ({
|
|
@@ -4012,7 +4366,7 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
4012
4366
|
label
|
|
4013
4367
|
}) => {
|
|
4014
4368
|
if (active && payload && payload.length) {
|
|
4015
|
-
return /* @__PURE__ */ (0,
|
|
4369
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4016
4370
|
GenericTooltip,
|
|
4017
4371
|
{
|
|
4018
4372
|
title: label?.toString(),
|
|
@@ -4028,7 +4382,7 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
4028
4382
|
}
|
|
4029
4383
|
}
|
|
4030
4384
|
),
|
|
4031
|
-
/* @__PURE__ */ (0,
|
|
4385
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4032
4386
|
import_recharts.Bar,
|
|
4033
4387
|
{
|
|
4034
4388
|
dataKey: barDataKey || yAxisKey,
|
|
@@ -4036,12 +4390,12 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
4036
4390
|
name: barDataKey || yAxisKey
|
|
4037
4391
|
}
|
|
4038
4392
|
),
|
|
4039
|
-
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0,
|
|
4393
|
+
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ChartLegend, { items: defaultLegendItems })
|
|
4040
4394
|
]
|
|
4041
4395
|
}
|
|
4042
4396
|
)
|
|
4043
4397
|
}
|
|
4044
|
-
) : /* @__PURE__ */ (0,
|
|
4398
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
|
|
4045
4399
|
]
|
|
4046
4400
|
}
|
|
4047
4401
|
);
|
|
@@ -4052,7 +4406,7 @@ BarChart.displayName = "BarChart";
|
|
|
4052
4406
|
// src/components/ui/charts/line-chart.tsx
|
|
4053
4407
|
var import_react3 = require("react");
|
|
4054
4408
|
var import_recharts2 = require("recharts");
|
|
4055
|
-
var
|
|
4409
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
4056
4410
|
var LineChart = (0, import_react3.forwardRef)(
|
|
4057
4411
|
({
|
|
4058
4412
|
data,
|
|
@@ -4081,19 +4435,19 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
4081
4435
|
)
|
|
4082
4436
|
);
|
|
4083
4437
|
const hasData = data && data.length > 0;
|
|
4084
|
-
return /* @__PURE__ */ (0,
|
|
4438
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
4085
4439
|
"div",
|
|
4086
4440
|
{
|
|
4087
4441
|
ref,
|
|
4088
4442
|
className: `bg-light border border-subtle mx-6 ${className}`,
|
|
4089
4443
|
children: [
|
|
4090
|
-
/* @__PURE__ */ (0,
|
|
4091
|
-
/* @__PURE__ */ (0,
|
|
4444
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
|
|
4445
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4092
4446
|
import_recharts2.ResponsiveContainer,
|
|
4093
4447
|
{
|
|
4094
4448
|
width: "100%",
|
|
4095
4449
|
height: CHART_CONSTANTS.STANDARD_HEIGHT,
|
|
4096
|
-
children: /* @__PURE__ */ (0,
|
|
4450
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
4097
4451
|
import_recharts2.LineChart,
|
|
4098
4452
|
{
|
|
4099
4453
|
data,
|
|
@@ -4104,7 +4458,7 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
4104
4458
|
},
|
|
4105
4459
|
onClick: handleClick,
|
|
4106
4460
|
children: [
|
|
4107
|
-
/* @__PURE__ */ (0,
|
|
4461
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4108
4462
|
import_recharts2.XAxis,
|
|
4109
4463
|
{
|
|
4110
4464
|
dataKey: xAxisKey,
|
|
@@ -4116,7 +4470,7 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
4116
4470
|
label: xAxisLabel ? createCustomXAxisLabel(xAxisLabel) : void 0
|
|
4117
4471
|
}
|
|
4118
4472
|
),
|
|
4119
|
-
/* @__PURE__ */ (0,
|
|
4473
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4120
4474
|
import_recharts2.YAxis,
|
|
4121
4475
|
{
|
|
4122
4476
|
axisLine: false,
|
|
@@ -4125,7 +4479,7 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
4125
4479
|
label: yAxisLabel ? createCustomYAxisLabel(yAxisLabel, 40) : void 0
|
|
4126
4480
|
}
|
|
4127
4481
|
),
|
|
4128
|
-
/* @__PURE__ */ (0,
|
|
4482
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4129
4483
|
import_recharts2.Tooltip,
|
|
4130
4484
|
{
|
|
4131
4485
|
content: ({
|
|
@@ -4134,7 +4488,7 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
4134
4488
|
label
|
|
4135
4489
|
}) => {
|
|
4136
4490
|
if (active && payload && payload.length) {
|
|
4137
|
-
return /* @__PURE__ */ (0,
|
|
4491
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4138
4492
|
GenericTooltip,
|
|
4139
4493
|
{
|
|
4140
4494
|
title: label?.toString(),
|
|
@@ -4150,7 +4504,7 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
4150
4504
|
}
|
|
4151
4505
|
}
|
|
4152
4506
|
),
|
|
4153
|
-
series.map((s, index) => /* @__PURE__ */ (0,
|
|
4507
|
+
series.map((s, index) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4154
4508
|
import_recharts2.Line,
|
|
4155
4509
|
{
|
|
4156
4510
|
type: "monotone",
|
|
@@ -4162,12 +4516,12 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
4162
4516
|
},
|
|
4163
4517
|
s.dataKey
|
|
4164
4518
|
)),
|
|
4165
|
-
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0,
|
|
4519
|
+
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChartLegend, { items: defaultLegendItems })
|
|
4166
4520
|
]
|
|
4167
4521
|
}
|
|
4168
4522
|
)
|
|
4169
4523
|
}
|
|
4170
|
-
) : /* @__PURE__ */ (0,
|
|
4524
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
|
|
4171
4525
|
]
|
|
4172
4526
|
}
|
|
4173
4527
|
);
|
|
@@ -4178,7 +4532,7 @@ LineChart.displayName = "LineChart";
|
|
|
4178
4532
|
// src/components/ui/charts/pie-chart.tsx
|
|
4179
4533
|
var import_react4 = require("react");
|
|
4180
4534
|
var import_recharts3 = require("recharts");
|
|
4181
|
-
var
|
|
4535
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
4182
4536
|
var PieChart = (0, import_react4.forwardRef)(
|
|
4183
4537
|
({
|
|
4184
4538
|
data,
|
|
@@ -4206,20 +4560,20 @@ var PieChart = (0, import_react4.forwardRef)(
|
|
|
4206
4560
|
)
|
|
4207
4561
|
);
|
|
4208
4562
|
const hasData = data && data.length > 0;
|
|
4209
|
-
return /* @__PURE__ */ (0,
|
|
4563
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
4210
4564
|
"div",
|
|
4211
4565
|
{
|
|
4212
4566
|
ref,
|
|
4213
4567
|
className: `bg-light border border-subtle mx-6 ${className}`,
|
|
4214
4568
|
children: [
|
|
4215
|
-
/* @__PURE__ */ (0,
|
|
4216
|
-
/* @__PURE__ */ (0,
|
|
4569
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
|
|
4570
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
4217
4571
|
import_recharts3.PieChart,
|
|
4218
4572
|
{
|
|
4219
4573
|
width: 600,
|
|
4220
4574
|
height: CHART_CONSTANTS.LARGE_HEIGHT,
|
|
4221
4575
|
children: [
|
|
4222
|
-
/* @__PURE__ */ (0,
|
|
4576
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
4223
4577
|
import_recharts3.Pie,
|
|
4224
4578
|
{
|
|
4225
4579
|
data,
|
|
@@ -4231,7 +4585,7 @@ var PieChart = (0, import_react4.forwardRef)(
|
|
|
4231
4585
|
label: showLabels,
|
|
4232
4586
|
labelLine: false,
|
|
4233
4587
|
onClick: handleClick,
|
|
4234
|
-
children: data.map((entry, index) => /* @__PURE__ */ (0,
|
|
4588
|
+
children: data.map((entry, index) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
4235
4589
|
import_recharts3.Cell,
|
|
4236
4590
|
{
|
|
4237
4591
|
fill: entry.color || getSeriesColor(index)
|
|
@@ -4240,7 +4594,7 @@ var PieChart = (0, import_react4.forwardRef)(
|
|
|
4240
4594
|
))
|
|
4241
4595
|
}
|
|
4242
4596
|
),
|
|
4243
|
-
/* @__PURE__ */ (0,
|
|
4597
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
4244
4598
|
import_recharts3.Tooltip,
|
|
4245
4599
|
{
|
|
4246
4600
|
content: ({
|
|
@@ -4249,7 +4603,7 @@ var PieChart = (0, import_react4.forwardRef)(
|
|
|
4249
4603
|
}) => {
|
|
4250
4604
|
if (active && payload && payload.length && payload[0]) {
|
|
4251
4605
|
const data2 = payload[0].payload;
|
|
4252
|
-
return /* @__PURE__ */ (0,
|
|
4606
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
4253
4607
|
GenericTooltip,
|
|
4254
4608
|
{
|
|
4255
4609
|
title: data2.name,
|
|
@@ -4267,10 +4621,10 @@ var PieChart = (0, import_react4.forwardRef)(
|
|
|
4267
4621
|
}
|
|
4268
4622
|
}
|
|
4269
4623
|
),
|
|
4270
|
-
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0,
|
|
4624
|
+
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ChartLegend, { items: defaultLegendItems, y: 400 })
|
|
4271
4625
|
]
|
|
4272
4626
|
}
|
|
4273
|
-
) }) : /* @__PURE__ */ (0,
|
|
4627
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
|
|
4274
4628
|
]
|
|
4275
4629
|
}
|
|
4276
4630
|
);
|
|
@@ -4281,7 +4635,7 @@ PieChart.displayName = "PieChart";
|
|
|
4281
4635
|
// src/components/ui/table.tsx
|
|
4282
4636
|
var import_react5 = require("react");
|
|
4283
4637
|
var import_react_table = require("@tanstack/react-table");
|
|
4284
|
-
var
|
|
4638
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
4285
4639
|
function Table({
|
|
4286
4640
|
table,
|
|
4287
4641
|
className,
|
|
@@ -4311,15 +4665,15 @@ function Table({
|
|
|
4311
4665
|
},
|
|
4312
4666
|
[table]
|
|
4313
4667
|
);
|
|
4314
|
-
return /* @__PURE__ */ (0,
|
|
4315
|
-
/* @__PURE__ */ (0,
|
|
4316
|
-
/* @__PURE__ */ (0,
|
|
4668
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { children: [
|
|
4669
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: cn("overflow-x-auto", className), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("table", { className: "min-w-full divide-y divide-border", children: [
|
|
4670
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("thead", { className: "bg-dark text-light", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("tr", { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("th", { className: "px-6 py-3 text-left", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
4317
4671
|
"div",
|
|
4318
4672
|
{
|
|
4319
4673
|
className: `flex items-center space-x-1 ${header.column.getCanSort() ? "cursor-pointer select-none" : ""}`,
|
|
4320
4674
|
onClick: header.column.getToggleSortingHandler(),
|
|
4321
4675
|
children: [
|
|
4322
|
-
/* @__PURE__ */ (0,
|
|
4676
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4323
4677
|
Typography,
|
|
4324
4678
|
{
|
|
4325
4679
|
variant: "label-xs",
|
|
@@ -4330,19 +4684,19 @@ function Table({
|
|
|
4330
4684
|
)
|
|
4331
4685
|
}
|
|
4332
4686
|
),
|
|
4333
|
-
header.column.getCanSort() && /* @__PURE__ */ (0,
|
|
4334
|
-
header.column.getIsSorted() === "asc" && /* @__PURE__ */ (0,
|
|
4335
|
-
header.column.getIsSorted() === "desc" && /* @__PURE__ */ (0,
|
|
4687
|
+
header.column.getCanSort() && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("span", { className: "ml-1", children: [
|
|
4688
|
+
header.column.getIsSorted() === "asc" && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronUp, { className: "w-4 h-4 text-light" }),
|
|
4689
|
+
header.column.getIsSorted() === "desc" && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronDown, { className: "w-4 h-4 text-light" })
|
|
4336
4690
|
] })
|
|
4337
4691
|
]
|
|
4338
4692
|
}
|
|
4339
4693
|
) }, header.id)) }, headerGroup.id)) }),
|
|
4340
|
-
/* @__PURE__ */ (0,
|
|
4694
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("tbody", { className: "bg-light divide-y divide-border", children: table.getRowModel().rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("tr", { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Typography, { variant: "body-sm", children: (0, import_react_table.flexRender)(
|
|
4341
4695
|
cell.column.columnDef.cell,
|
|
4342
4696
|
cell.getContext()
|
|
4343
4697
|
) }) }, cell.id)) }, row.id)) })
|
|
4344
4698
|
] }) }),
|
|
4345
|
-
showPagination && /* @__PURE__ */ (0,
|
|
4699
|
+
showPagination && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
4346
4700
|
"div",
|
|
4347
4701
|
{
|
|
4348
4702
|
className: cn(
|
|
@@ -4350,9 +4704,9 @@ function Table({
|
|
|
4350
4704
|
paginationClassName
|
|
4351
4705
|
),
|
|
4352
4706
|
children: [
|
|
4353
|
-
/* @__PURE__ */ (0,
|
|
4354
|
-
/* @__PURE__ */ (0,
|
|
4355
|
-
/* @__PURE__ */ (0,
|
|
4707
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Typography, { variant: "body-sm", className: "text-secondary", children: showingText }) }),
|
|
4708
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex items-center space-x-1", children: [
|
|
4709
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4356
4710
|
Button,
|
|
4357
4711
|
{
|
|
4358
4712
|
variant: "ghost",
|
|
@@ -4360,7 +4714,7 @@ function Table({
|
|
|
4360
4714
|
onClick: handlePreviousPage,
|
|
4361
4715
|
disabled: !table.getCanPreviousPage(),
|
|
4362
4716
|
className: "p-2",
|
|
4363
|
-
children: /* @__PURE__ */ (0,
|
|
4717
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronLeft, { className: "w-4 h-4" })
|
|
4364
4718
|
}
|
|
4365
4719
|
),
|
|
4366
4720
|
Array.from(
|
|
@@ -4377,7 +4731,7 @@ function Table({
|
|
|
4377
4731
|
pageNumber = currentPage - 2 + i;
|
|
4378
4732
|
}
|
|
4379
4733
|
const isActive = pageNumber === currentPage;
|
|
4380
|
-
return /* @__PURE__ */ (0,
|
|
4734
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4381
4735
|
Button,
|
|
4382
4736
|
{
|
|
4383
4737
|
variant: isActive ? "default" : "ghost",
|
|
@@ -4390,11 +4744,11 @@ function Table({
|
|
|
4390
4744
|
);
|
|
4391
4745
|
}
|
|
4392
4746
|
),
|
|
4393
|
-
table.getPageCount() > 5 && currentPage < totalPages - 3 && /* @__PURE__ */ (0,
|
|
4394
|
-
/* @__PURE__ */ (0,
|
|
4395
|
-
/* @__PURE__ */ (0,
|
|
4747
|
+
table.getPageCount() > 5 && currentPage < totalPages - 3 && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
|
|
4748
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "px-1 text-secondary", children: "..." }),
|
|
4749
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Typography, { variant: "body-sm", className: "text-secondary", children: totalPages })
|
|
4396
4750
|
] }),
|
|
4397
|
-
/* @__PURE__ */ (0,
|
|
4751
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4398
4752
|
Button,
|
|
4399
4753
|
{
|
|
4400
4754
|
variant: "ghost",
|
|
@@ -4402,12 +4756,12 @@ function Table({
|
|
|
4402
4756
|
onClick: handleNextPage,
|
|
4403
4757
|
disabled: !table.getCanNextPage(),
|
|
4404
4758
|
className: "p-2",
|
|
4405
|
-
children: /* @__PURE__ */ (0,
|
|
4759
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronRight, { className: "w-4 h-4" })
|
|
4406
4760
|
}
|
|
4407
4761
|
)
|
|
4408
4762
|
] }),
|
|
4409
|
-
/* @__PURE__ */ (0,
|
|
4410
|
-
/* @__PURE__ */ (0,
|
|
4763
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex items-center gap-3 w-48", children: [
|
|
4764
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4411
4765
|
Typography,
|
|
4412
4766
|
{
|
|
4413
4767
|
variant: "body-sm",
|
|
@@ -4415,14 +4769,14 @@ function Table({
|
|
|
4415
4769
|
children: "Rows per page:"
|
|
4416
4770
|
}
|
|
4417
4771
|
),
|
|
4418
|
-
/* @__PURE__ */ (0,
|
|
4772
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
4419
4773
|
Select,
|
|
4420
4774
|
{
|
|
4421
4775
|
value: table.getState().pagination.pageSize.toString(),
|
|
4422
4776
|
onValueChange: handlePageSizeChange,
|
|
4423
4777
|
children: [
|
|
4424
|
-
/* @__PURE__ */ (0,
|
|
4425
|
-
/* @__PURE__ */ (0,
|
|
4778
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SelectTrigger, { className: "min-w-0 h-8", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SelectValue, {}) }),
|
|
4779
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SelectContent, { children: [10, 20, 50, 100].map((size) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SelectItem, { value: size.toString(), children: size }, size)) })
|
|
4426
4780
|
]
|
|
4427
4781
|
}
|
|
4428
4782
|
)
|
|
@@ -4519,6 +4873,7 @@ function Table({
|
|
|
4519
4873
|
MagnifyingGlass,
|
|
4520
4874
|
Minus,
|
|
4521
4875
|
MoreMenu,
|
|
4876
|
+
Panel,
|
|
4522
4877
|
PdfViewer,
|
|
4523
4878
|
Phone,
|
|
4524
4879
|
PieChart,
|
|
@@ -4537,6 +4892,17 @@ function Table({
|
|
|
4537
4892
|
SelectValue,
|
|
4538
4893
|
Separator,
|
|
4539
4894
|
Share,
|
|
4895
|
+
Sidebar,
|
|
4896
|
+
SidebarContent,
|
|
4897
|
+
SidebarFooter,
|
|
4898
|
+
SidebarGroup,
|
|
4899
|
+
SidebarGroupContent,
|
|
4900
|
+
SidebarHeader,
|
|
4901
|
+
SidebarInset,
|
|
4902
|
+
SidebarMenu,
|
|
4903
|
+
SidebarMenuButton,
|
|
4904
|
+
SidebarMenuItem,
|
|
4905
|
+
SidebarProvider,
|
|
4540
4906
|
Star,
|
|
4541
4907
|
Statement,
|
|
4542
4908
|
Table,
|
|
@@ -4546,8 +4912,12 @@ function Table({
|
|
|
4546
4912
|
TabsList,
|
|
4547
4913
|
TabsTrigger,
|
|
4548
4914
|
Textarea,
|
|
4915
|
+
Tooltip,
|
|
4549
4916
|
TooltipContainer,
|
|
4917
|
+
TooltipContent,
|
|
4550
4918
|
TooltipItem,
|
|
4919
|
+
TooltipProvider,
|
|
4920
|
+
TooltipTrigger,
|
|
4551
4921
|
Trash,
|
|
4552
4922
|
Typography,
|
|
4553
4923
|
Upload,
|
|
@@ -4576,5 +4946,6 @@ function Table({
|
|
|
4576
4946
|
selectTriggerVariants,
|
|
4577
4947
|
tabsVariants,
|
|
4578
4948
|
typographyVariants,
|
|
4579
|
-
uploadVariants
|
|
4949
|
+
uploadVariants,
|
|
4950
|
+
useSidebar
|
|
4580
4951
|
});
|