@northslopetech/altitude-ui 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +115 -1
- package/dist/index.d.ts +115 -1
- package/dist/index.js +457 -117
- package/dist/index.mjs +464 -128
- package/dist/pdf.worker.min.mjs +28 -0
- package/package.json +6 -3
package/dist/index.js
CHANGED
|
@@ -65,6 +65,7 @@ __export(index_exports, {
|
|
|
65
65
|
DatePicker: () => DatePicker,
|
|
66
66
|
Doc: () => Doc,
|
|
67
67
|
Dollar: () => Dollar,
|
|
68
|
+
Download: () => Download,
|
|
68
69
|
DropdownMenu: () => DropdownMenu,
|
|
69
70
|
DropdownMenuCheckboxItem: () => DropdownMenuCheckboxItem,
|
|
70
71
|
DropdownMenuContent: () => DropdownMenuContent,
|
|
@@ -114,9 +115,11 @@ __export(index_exports, {
|
|
|
114
115
|
MagnifyingGlass: () => MagnifyingGlass,
|
|
115
116
|
Minus: () => Minus,
|
|
116
117
|
MoreMenu: () => MoreMenu,
|
|
118
|
+
PdfViewer: () => PdfViewer,
|
|
117
119
|
Phone: () => Phone,
|
|
118
120
|
PieChart: () => PieChart,
|
|
119
121
|
Plus: () => Plus,
|
|
122
|
+
Print: () => Print,
|
|
120
123
|
QuestionCircle: () => QuestionCircle,
|
|
121
124
|
Select: () => Select,
|
|
122
125
|
SelectContent: () => SelectContent,
|
|
@@ -165,6 +168,7 @@ __export(index_exports, {
|
|
|
165
168
|
getHeatmapColor: () => getHeatmapColor,
|
|
166
169
|
getPerformanceColor: () => getPerformanceColor,
|
|
167
170
|
getSeriesColor: () => getSeriesColor,
|
|
171
|
+
initializePdfWorker: () => initializePdfWorker,
|
|
168
172
|
selectTriggerVariants: () => selectTriggerVariants,
|
|
169
173
|
tabsVariants: () => tabsVariants,
|
|
170
174
|
typographyVariants: () => typographyVariants,
|
|
@@ -1824,6 +1828,54 @@ var Logout = ({
|
|
|
1824
1828
|
]
|
|
1825
1829
|
}
|
|
1826
1830
|
);
|
|
1831
|
+
var Print = ({
|
|
1832
|
+
className,
|
|
1833
|
+
variant = "dark",
|
|
1834
|
+
...props
|
|
1835
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
1836
|
+
"svg",
|
|
1837
|
+
{
|
|
1838
|
+
width: "16",
|
|
1839
|
+
height: "16",
|
|
1840
|
+
viewBox: "0 0 16 16",
|
|
1841
|
+
fill: "none",
|
|
1842
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1843
|
+
className: cn(getVariantStyles(variant), className),
|
|
1844
|
+
...props,
|
|
1845
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
1846
|
+
"path",
|
|
1847
|
+
{
|
|
1848
|
+
d: "M12.9 5.33333H3.1C1.938 5.33333 1 6.22667 1 7.33333V11.3333H3.8V14H12.2V11.3333H15V7.33333C15 6.22667 14.062 5.33333 12.9 5.33333ZM10.8 12.6667H5.2V9.33333H10.8V12.6667ZM12.9 8C12.515 8 12.2 7.7 12.2 7.33333C12.2 6.96667 12.515 6.66667 12.9 6.66667C13.285 6.66667 13.6 6.96667 13.6 7.33333C13.6 7.7 13.285 8 12.9 8ZM12.2 2H3.8V4.66667H12.2V2Z",
|
|
1849
|
+
fill: "#161616"
|
|
1850
|
+
}
|
|
1851
|
+
)
|
|
1852
|
+
}
|
|
1853
|
+
);
|
|
1854
|
+
var Download = ({
|
|
1855
|
+
className,
|
|
1856
|
+
variant = "dark",
|
|
1857
|
+
...props
|
|
1858
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
1859
|
+
"svg",
|
|
1860
|
+
{
|
|
1861
|
+
width: "16",
|
|
1862
|
+
height: "16",
|
|
1863
|
+
viewBox: "0 0 16 16",
|
|
1864
|
+
fill: "none",
|
|
1865
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1866
|
+
className: cn(getVariantStyles(variant), className),
|
|
1867
|
+
...props,
|
|
1868
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
1869
|
+
"path",
|
|
1870
|
+
{
|
|
1871
|
+
fillRule: "evenodd",
|
|
1872
|
+
clipRule: "evenodd",
|
|
1873
|
+
d: "M8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15ZM11.1464 9.31042L8.3535 12.1033C8.15824 12.2986 7.84166 12.2986 7.6464 12.1033L4.8535 9.31042C4.53852 8.99543 4.76161 8.45686 5.20706 8.45686H6.99995V4.75C6.99995 4.19772 7.44767 3.75 7.99995 3.75C8.55224 3.75 8.99995 4.19772 8.99995 4.75V8.45686H10.7928C11.2383 8.45686 11.4614 8.99543 11.1464 9.31042Z",
|
|
1874
|
+
fill: "#161616"
|
|
1875
|
+
}
|
|
1876
|
+
)
|
|
1877
|
+
}
|
|
1878
|
+
);
|
|
1827
1879
|
|
|
1828
1880
|
// src/components/ui/select.tsx
|
|
1829
1881
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
@@ -3003,10 +3055,294 @@ var Badge = React9.forwardRef(
|
|
|
3003
3055
|
);
|
|
3004
3056
|
Badge.displayName = "Badge";
|
|
3005
3057
|
|
|
3006
|
-
// src/components/
|
|
3058
|
+
// src/components/pdf-viewer/index.tsx
|
|
3059
|
+
var React14 = __toESM(require("react"));
|
|
3060
|
+
var import_TextLayer = require("react-pdf/dist/Page/TextLayer.css");
|
|
3061
|
+
|
|
3062
|
+
// src/components/pdf-viewer/components/PdfDocument.tsx
|
|
3007
3063
|
var React10 = __toESM(require("react"));
|
|
3008
|
-
var
|
|
3064
|
+
var import_react_pdf = require("react-pdf");
|
|
3009
3065
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
3066
|
+
var PdfDocument = ({
|
|
3067
|
+
file,
|
|
3068
|
+
pageWidth,
|
|
3069
|
+
enableTextLayer,
|
|
3070
|
+
onLoadSuccess,
|
|
3071
|
+
onLoadError
|
|
3072
|
+
}) => {
|
|
3073
|
+
const [numPages, setNumPages] = React10.useState();
|
|
3074
|
+
function handleDocumentLoadSuccess({ numPages: numPages2 }) {
|
|
3075
|
+
setNumPages(numPages2);
|
|
3076
|
+
onLoadSuccess?.(numPages2);
|
|
3077
|
+
}
|
|
3078
|
+
if (!file) {
|
|
3079
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No PDF available" }) });
|
|
3080
|
+
}
|
|
3081
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
3082
|
+
import_react_pdf.Document,
|
|
3083
|
+
{
|
|
3084
|
+
file,
|
|
3085
|
+
onLoadSuccess: handleDocumentLoadSuccess,
|
|
3086
|
+
onLoadError,
|
|
3087
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "Rendering PDF..." }) }),
|
|
3088
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Typography, { variant: "body-md", className: "text-error", children: "Failed to render PDF" }) }),
|
|
3089
|
+
className: "flex flex-col items-center p-4",
|
|
3090
|
+
children: numPages && pageWidth > 0 && Array.from(new Array(numPages), (_, index) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
3091
|
+
import_react_pdf.Page,
|
|
3092
|
+
{
|
|
3093
|
+
pageNumber: index + 1,
|
|
3094
|
+
width: pageWidth,
|
|
3095
|
+
className: "mb-4 shadow-sm",
|
|
3096
|
+
renderTextLayer: enableTextLayer,
|
|
3097
|
+
renderAnnotationLayer: false
|
|
3098
|
+
},
|
|
3099
|
+
`page_${index + 1}`
|
|
3100
|
+
))
|
|
3101
|
+
}
|
|
3102
|
+
);
|
|
3103
|
+
};
|
|
3104
|
+
PdfDocument.displayName = "PdfDocument";
|
|
3105
|
+
|
|
3106
|
+
// src/components/pdf-viewer/components/PdfHeader.tsx
|
|
3107
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
3108
|
+
var PdfHeader = ({
|
|
3109
|
+
title,
|
|
3110
|
+
onDownload,
|
|
3111
|
+
onPrint
|
|
3112
|
+
}) => {
|
|
3113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-center justify-between gap-4 px-4 py-3 bg-neutral-400 border-b border-subtle", children: [
|
|
3114
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "flex-shrink min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
3115
|
+
Typography,
|
|
3116
|
+
{
|
|
3117
|
+
variant: "label-md-bold",
|
|
3118
|
+
className: "text-dark truncate",
|
|
3119
|
+
title,
|
|
3120
|
+
children: title || "Untitled Document"
|
|
3121
|
+
}
|
|
3122
|
+
) }),
|
|
3123
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-center gap-2 flex-shrink-0", children: [
|
|
3124
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
3125
|
+
"button",
|
|
3126
|
+
{
|
|
3127
|
+
onClick: onDownload,
|
|
3128
|
+
className: "p-2 hover:bg-neutral-500 rounded transition-colors",
|
|
3129
|
+
"aria-label": "Download PDF",
|
|
3130
|
+
type: "button",
|
|
3131
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Download, { variant: "dark", className: "w-5 h-5" })
|
|
3132
|
+
}
|
|
3133
|
+
),
|
|
3134
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
3135
|
+
"button",
|
|
3136
|
+
{
|
|
3137
|
+
onClick: onPrint,
|
|
3138
|
+
className: "p-2 hover:bg-neutral-500 rounded transition-colors",
|
|
3139
|
+
"aria-label": "Print PDF",
|
|
3140
|
+
type: "button",
|
|
3141
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Print, { variant: "dark", className: "w-5 h-5" })
|
|
3142
|
+
}
|
|
3143
|
+
)
|
|
3144
|
+
] })
|
|
3145
|
+
] });
|
|
3146
|
+
};
|
|
3147
|
+
PdfHeader.displayName = "PdfHeader";
|
|
3148
|
+
|
|
3149
|
+
// src/components/pdf-viewer/hooks/useContainerWidth.ts
|
|
3150
|
+
var React11 = __toESM(require("react"));
|
|
3151
|
+
function useContainerWidth(padding = 32) {
|
|
3152
|
+
const [containerWidth, setContainerWidth] = React11.useState(0);
|
|
3153
|
+
const containerRef = React11.useRef(null);
|
|
3154
|
+
const lastWidthRef = React11.useRef(0);
|
|
3155
|
+
React11.useEffect(() => {
|
|
3156
|
+
const element = containerRef.current;
|
|
3157
|
+
if (!element) return;
|
|
3158
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
3159
|
+
for (const entry of entries) {
|
|
3160
|
+
const newWidth = entry.contentRect.width - padding;
|
|
3161
|
+
if (Math.abs(newWidth - lastWidthRef.current) > 1) {
|
|
3162
|
+
lastWidthRef.current = newWidth;
|
|
3163
|
+
setContainerWidth(newWidth);
|
|
3164
|
+
}
|
|
3165
|
+
}
|
|
3166
|
+
});
|
|
3167
|
+
resizeObserver.observe(element);
|
|
3168
|
+
const initialWidth = element.offsetWidth - padding;
|
|
3169
|
+
lastWidthRef.current = initialWidth;
|
|
3170
|
+
setContainerWidth(initialWidth);
|
|
3171
|
+
return () => {
|
|
3172
|
+
resizeObserver.disconnect();
|
|
3173
|
+
};
|
|
3174
|
+
}, [padding]);
|
|
3175
|
+
return { containerWidth, containerRef };
|
|
3176
|
+
}
|
|
3177
|
+
|
|
3178
|
+
// src/components/pdf-viewer/hooks/usePdfDownload.ts
|
|
3179
|
+
var React12 = __toESM(require("react"));
|
|
3180
|
+
function usePdfDownload(file, title) {
|
|
3181
|
+
const download = React12.useCallback(async () => {
|
|
3182
|
+
if (!file) return;
|
|
3183
|
+
try {
|
|
3184
|
+
let blob;
|
|
3185
|
+
let filename;
|
|
3186
|
+
if (typeof file === "string") {
|
|
3187
|
+
const response = await fetch(file);
|
|
3188
|
+
blob = await response.blob();
|
|
3189
|
+
filename = title || "document.pdf";
|
|
3190
|
+
} else {
|
|
3191
|
+
blob = file;
|
|
3192
|
+
filename = title || file.name || "document.pdf";
|
|
3193
|
+
}
|
|
3194
|
+
const url = URL.createObjectURL(blob);
|
|
3195
|
+
const link = document.createElement("a");
|
|
3196
|
+
link.href = url;
|
|
3197
|
+
link.download = filename;
|
|
3198
|
+
link.style.display = "none";
|
|
3199
|
+
document.body.appendChild(link);
|
|
3200
|
+
link.click();
|
|
3201
|
+
setTimeout(() => {
|
|
3202
|
+
document.body.removeChild(link);
|
|
3203
|
+
URL.revokeObjectURL(url);
|
|
3204
|
+
}, 100);
|
|
3205
|
+
} catch (error) {
|
|
3206
|
+
console.error("Failed to download PDF:", error);
|
|
3207
|
+
}
|
|
3208
|
+
}, [file, title]);
|
|
3209
|
+
return download;
|
|
3210
|
+
}
|
|
3211
|
+
|
|
3212
|
+
// src/components/pdf-viewer/hooks/usePdfPrint.ts
|
|
3213
|
+
var React13 = __toESM(require("react"));
|
|
3214
|
+
function usePdfPrint(file) {
|
|
3215
|
+
const [printBlobUrl, setPrintBlobUrl] = React13.useState(null);
|
|
3216
|
+
const printFrameRef = React13.useRef(null);
|
|
3217
|
+
const preparePrint = React13.useCallback(async () => {
|
|
3218
|
+
if (!file) return;
|
|
3219
|
+
try {
|
|
3220
|
+
let blob;
|
|
3221
|
+
if (typeof file === "string") {
|
|
3222
|
+
const response = await fetch(file);
|
|
3223
|
+
blob = await response.blob();
|
|
3224
|
+
} else {
|
|
3225
|
+
blob = file;
|
|
3226
|
+
}
|
|
3227
|
+
const url = URL.createObjectURL(blob);
|
|
3228
|
+
setPrintBlobUrl(url);
|
|
3229
|
+
} catch (error) {
|
|
3230
|
+
console.error("Failed to prepare PDF for printing:", error);
|
|
3231
|
+
}
|
|
3232
|
+
}, [file]);
|
|
3233
|
+
React13.useEffect(() => {
|
|
3234
|
+
return () => {
|
|
3235
|
+
if (printBlobUrl) {
|
|
3236
|
+
URL.revokeObjectURL(printBlobUrl);
|
|
3237
|
+
}
|
|
3238
|
+
};
|
|
3239
|
+
}, [printBlobUrl]);
|
|
3240
|
+
const print = React13.useCallback(() => {
|
|
3241
|
+
if (printFrameRef.current?.contentWindow) {
|
|
3242
|
+
printFrameRef.current.contentWindow.print();
|
|
3243
|
+
}
|
|
3244
|
+
}, []);
|
|
3245
|
+
return { printFrameRef, printBlobUrl, preparePrint, print };
|
|
3246
|
+
}
|
|
3247
|
+
|
|
3248
|
+
// src/components/pdf-viewer/utils/pdfWorker.ts
|
|
3249
|
+
var import_react_pdf2 = require("react-pdf");
|
|
3250
|
+
function initializePdfWorker(workerUrl) {
|
|
3251
|
+
import_react_pdf2.pdfjs.GlobalWorkerOptions.workerSrc = workerUrl;
|
|
3252
|
+
}
|
|
3253
|
+
|
|
3254
|
+
// src/components/pdf-viewer/index.tsx
|
|
3255
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
3256
|
+
var PdfViewer = React14.forwardRef(
|
|
3257
|
+
({
|
|
3258
|
+
file,
|
|
3259
|
+
title,
|
|
3260
|
+
pageWidth,
|
|
3261
|
+
onDownload,
|
|
3262
|
+
onPrint,
|
|
3263
|
+
onLoadSuccess,
|
|
3264
|
+
onError,
|
|
3265
|
+
enableTextLayer = false,
|
|
3266
|
+
className,
|
|
3267
|
+
...props
|
|
3268
|
+
}, ref) => {
|
|
3269
|
+
const { containerWidth, containerRef } = useContainerWidth();
|
|
3270
|
+
const { printFrameRef, printBlobUrl, preparePrint, print } = usePdfPrint(file);
|
|
3271
|
+
const download = usePdfDownload(file, title);
|
|
3272
|
+
const effectiveWidth = pageWidth || containerWidth;
|
|
3273
|
+
const handleLoadSuccess = React14.useCallback(
|
|
3274
|
+
async (numPages) => {
|
|
3275
|
+
onLoadSuccess?.(numPages);
|
|
3276
|
+
await preparePrint();
|
|
3277
|
+
},
|
|
3278
|
+
[onLoadSuccess, preparePrint]
|
|
3279
|
+
);
|
|
3280
|
+
const handleDownload = React14.useCallback(() => {
|
|
3281
|
+
if (onDownload) {
|
|
3282
|
+
onDownload();
|
|
3283
|
+
return;
|
|
3284
|
+
}
|
|
3285
|
+
download();
|
|
3286
|
+
}, [onDownload, download]);
|
|
3287
|
+
const handlePrint = React14.useCallback(() => {
|
|
3288
|
+
if (onPrint) {
|
|
3289
|
+
onPrint();
|
|
3290
|
+
return;
|
|
3291
|
+
}
|
|
3292
|
+
print();
|
|
3293
|
+
}, [onPrint, print]);
|
|
3294
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
3295
|
+
"div",
|
|
3296
|
+
{
|
|
3297
|
+
ref,
|
|
3298
|
+
className: cn("h-full flex flex-col", className),
|
|
3299
|
+
...props,
|
|
3300
|
+
children: [
|
|
3301
|
+
printBlobUrl && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3302
|
+
"iframe",
|
|
3303
|
+
{
|
|
3304
|
+
ref: printFrameRef,
|
|
3305
|
+
src: printBlobUrl,
|
|
3306
|
+
style: { display: "none" },
|
|
3307
|
+
title: "PDF for printing"
|
|
3308
|
+
}
|
|
3309
|
+
),
|
|
3310
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3311
|
+
PdfHeader,
|
|
3312
|
+
{
|
|
3313
|
+
title,
|
|
3314
|
+
onDownload: handleDownload,
|
|
3315
|
+
onPrint: handlePrint
|
|
3316
|
+
}
|
|
3317
|
+
),
|
|
3318
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3319
|
+
"div",
|
|
3320
|
+
{
|
|
3321
|
+
ref: containerRef,
|
|
3322
|
+
className: "flex-1 overflow-y-auto overflow-x-hidden bg-neutral-300",
|
|
3323
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3324
|
+
PdfDocument,
|
|
3325
|
+
{
|
|
3326
|
+
file,
|
|
3327
|
+
pageWidth: effectiveWidth,
|
|
3328
|
+
enableTextLayer,
|
|
3329
|
+
onLoadSuccess: handleLoadSuccess,
|
|
3330
|
+
onLoadError: onError
|
|
3331
|
+
}
|
|
3332
|
+
)
|
|
3333
|
+
}
|
|
3334
|
+
)
|
|
3335
|
+
]
|
|
3336
|
+
}
|
|
3337
|
+
);
|
|
3338
|
+
}
|
|
3339
|
+
);
|
|
3340
|
+
PdfViewer.displayName = "PdfViewer";
|
|
3341
|
+
|
|
3342
|
+
// src/components/ui/tabs.tsx
|
|
3343
|
+
var React15 = __toESM(require("react"));
|
|
3344
|
+
var import_class_variance_authority9 = require("class-variance-authority");
|
|
3345
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
3010
3346
|
var tabsVariants = (0, import_class_variance_authority9.cva)(
|
|
3011
3347
|
"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",
|
|
3012
3348
|
{
|
|
@@ -3020,17 +3356,17 @@ var tabsVariants = (0, import_class_variance_authority9.cva)(
|
|
|
3020
3356
|
}
|
|
3021
3357
|
}
|
|
3022
3358
|
);
|
|
3023
|
-
var TabsContext =
|
|
3359
|
+
var TabsContext = React15.createContext(
|
|
3024
3360
|
void 0
|
|
3025
3361
|
);
|
|
3026
3362
|
function useTabsContext() {
|
|
3027
|
-
const context =
|
|
3363
|
+
const context = React15.useContext(TabsContext);
|
|
3028
3364
|
if (!context) {
|
|
3029
3365
|
throw new Error("Tabs components must be used within a Tabs provider");
|
|
3030
3366
|
}
|
|
3031
3367
|
return context;
|
|
3032
3368
|
}
|
|
3033
|
-
var Tabs =
|
|
3369
|
+
var Tabs = React15.forwardRef((props, ref) => {
|
|
3034
3370
|
const {
|
|
3035
3371
|
className,
|
|
3036
3372
|
value,
|
|
@@ -3039,7 +3375,7 @@ var Tabs = React10.forwardRef((props, ref) => {
|
|
|
3039
3375
|
children,
|
|
3040
3376
|
...restProps
|
|
3041
3377
|
} = props;
|
|
3042
|
-
const contextValue =
|
|
3378
|
+
const contextValue = React15.useMemo(
|
|
3043
3379
|
() => ({
|
|
3044
3380
|
activeTab: value,
|
|
3045
3381
|
setActiveTab: onValueChange,
|
|
@@ -3047,13 +3383,13 @@ var Tabs = React10.forwardRef((props, ref) => {
|
|
|
3047
3383
|
}),
|
|
3048
3384
|
[value, onValueChange, variant]
|
|
3049
3385
|
);
|
|
3050
|
-
return /* @__PURE__ */ (0,
|
|
3386
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TabsContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { ref, className: cn("w-full", className), ...restProps, children }) });
|
|
3051
3387
|
});
|
|
3052
3388
|
Tabs.displayName = "Tabs";
|
|
3053
|
-
var TabsList =
|
|
3389
|
+
var TabsList = React15.forwardRef(
|
|
3054
3390
|
(props, ref) => {
|
|
3055
3391
|
const { className, children, ...restProps } = props;
|
|
3056
|
-
return /* @__PURE__ */ (0,
|
|
3392
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3057
3393
|
"div",
|
|
3058
3394
|
{
|
|
3059
3395
|
ref,
|
|
@@ -3069,7 +3405,7 @@ TabsList.displayName = "TabsList";
|
|
|
3069
3405
|
var getTabTypographyStyles = (isActive) => ({
|
|
3070
3406
|
font: isActive ? "var(--typography-label-sm-bold)" : "var(--typography-label-sm-regular)"
|
|
3071
3407
|
});
|
|
3072
|
-
var TabsTrigger =
|
|
3408
|
+
var TabsTrigger = React15.forwardRef(
|
|
3073
3409
|
(props, ref) => {
|
|
3074
3410
|
const { className, value, disabled, style, children, ...restProps } = props;
|
|
3075
3411
|
const { activeTab, setActiveTab, variant } = useTabsContext();
|
|
@@ -3077,22 +3413,22 @@ var TabsTrigger = React10.forwardRef(
|
|
|
3077
3413
|
throw new Error("TabsTrigger must have a value prop");
|
|
3078
3414
|
}
|
|
3079
3415
|
const isActive = activeTab === value;
|
|
3080
|
-
const tokenStyles =
|
|
3416
|
+
const tokenStyles = React15.useMemo(
|
|
3081
3417
|
() => ({
|
|
3082
3418
|
...getTabTypographyStyles(isActive),
|
|
3083
3419
|
...style
|
|
3084
3420
|
}),
|
|
3085
3421
|
[isActive, style]
|
|
3086
3422
|
);
|
|
3087
|
-
const triggerClassName =
|
|
3423
|
+
const triggerClassName = React15.useMemo(
|
|
3088
3424
|
() => cn(tabsVariants({ variant }), className),
|
|
3089
3425
|
[variant, className]
|
|
3090
3426
|
);
|
|
3091
|
-
const handleClick =
|
|
3427
|
+
const handleClick = React15.useCallback(() => {
|
|
3092
3428
|
if (disabled) return;
|
|
3093
3429
|
setActiveTab(value);
|
|
3094
3430
|
}, [disabled, setActiveTab, value]);
|
|
3095
|
-
return /* @__PURE__ */ (0,
|
|
3431
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3096
3432
|
"button",
|
|
3097
3433
|
{
|
|
3098
3434
|
ref,
|
|
@@ -3106,13 +3442,13 @@ var TabsTrigger = React10.forwardRef(
|
|
|
3106
3442
|
disabled,
|
|
3107
3443
|
onClick: handleClick,
|
|
3108
3444
|
...restProps,
|
|
3109
|
-
children: /* @__PURE__ */ (0,
|
|
3445
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "pl-3 pr-6 py-2", children })
|
|
3110
3446
|
}
|
|
3111
3447
|
);
|
|
3112
3448
|
}
|
|
3113
3449
|
);
|
|
3114
3450
|
TabsTrigger.displayName = "TabsTrigger";
|
|
3115
|
-
var TabsContent =
|
|
3451
|
+
var TabsContent = React15.forwardRef(
|
|
3116
3452
|
(props, ref) => {
|
|
3117
3453
|
const { className, value, children, ...restProps } = props;
|
|
3118
3454
|
const { activeTab } = useTabsContext();
|
|
@@ -3123,7 +3459,7 @@ var TabsContent = React10.forwardRef(
|
|
|
3123
3459
|
if (!isActive) {
|
|
3124
3460
|
return null;
|
|
3125
3461
|
}
|
|
3126
|
-
return /* @__PURE__ */ (0,
|
|
3462
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3127
3463
|
"div",
|
|
3128
3464
|
{
|
|
3129
3465
|
ref,
|
|
@@ -3141,11 +3477,11 @@ var TabsContent = React10.forwardRef(
|
|
|
3141
3477
|
TabsContent.displayName = "TabsContent";
|
|
3142
3478
|
|
|
3143
3479
|
// src/components/ui/dropdown-menu.tsx
|
|
3144
|
-
var
|
|
3480
|
+
var React16 = __toESM(require("react"));
|
|
3145
3481
|
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
|
|
3146
|
-
var
|
|
3482
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
3147
3483
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
3148
|
-
var DropdownMenuTrigger =
|
|
3484
|
+
var DropdownMenuTrigger = React16.forwardRef(({ className, icon, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3149
3485
|
DropdownMenuPrimitive.Trigger,
|
|
3150
3486
|
{
|
|
3151
3487
|
ref,
|
|
@@ -3155,7 +3491,7 @@ var DropdownMenuTrigger = React11.forwardRef(({ className, icon, children, ...pr
|
|
|
3155
3491
|
),
|
|
3156
3492
|
...props,
|
|
3157
3493
|
children: [
|
|
3158
|
-
icon || /* @__PURE__ */ (0,
|
|
3494
|
+
icon || /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(MoreMenu, { className: "size-4" }),
|
|
3159
3495
|
children
|
|
3160
3496
|
]
|
|
3161
3497
|
}
|
|
@@ -3165,7 +3501,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
|
3165
3501
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
3166
3502
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
3167
3503
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
3168
|
-
var DropdownMenuSubTrigger =
|
|
3504
|
+
var DropdownMenuSubTrigger = React16.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3169
3505
|
DropdownMenuPrimitive.SubTrigger,
|
|
3170
3506
|
{
|
|
3171
3507
|
ref,
|
|
@@ -3178,12 +3514,12 @@ var DropdownMenuSubTrigger = React11.forwardRef(({ className, inset, children, .
|
|
|
3178
3514
|
...props,
|
|
3179
3515
|
children: [
|
|
3180
3516
|
children,
|
|
3181
|
-
/* @__PURE__ */ (0,
|
|
3517
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChevronRight, { className: "ml-auto" })
|
|
3182
3518
|
]
|
|
3183
3519
|
}
|
|
3184
3520
|
));
|
|
3185
3521
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
3186
|
-
var DropdownMenuSubContent =
|
|
3522
|
+
var DropdownMenuSubContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3187
3523
|
DropdownMenuPrimitive.SubContent,
|
|
3188
3524
|
{
|
|
3189
3525
|
ref,
|
|
@@ -3195,7 +3531,7 @@ var DropdownMenuSubContent = React11.forwardRef(({ className, ...props }, ref) =
|
|
|
3195
3531
|
}
|
|
3196
3532
|
));
|
|
3197
3533
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
3198
|
-
var DropdownMenuContent =
|
|
3534
|
+
var DropdownMenuContent = React16.forwardRef(({ className, sideOffset = 4, align = "end", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3199
3535
|
DropdownMenuPrimitive.Content,
|
|
3200
3536
|
{
|
|
3201
3537
|
ref,
|
|
@@ -3209,7 +3545,7 @@ var DropdownMenuContent = React11.forwardRef(({ className, sideOffset = 4, align
|
|
|
3209
3545
|
}
|
|
3210
3546
|
) }));
|
|
3211
3547
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
3212
|
-
var DropdownMenuItem =
|
|
3548
|
+
var DropdownMenuItem = React16.forwardRef(({ className, inset, style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3213
3549
|
DropdownMenuPrimitive.Item,
|
|
3214
3550
|
{
|
|
3215
3551
|
ref,
|
|
@@ -3226,7 +3562,7 @@ var DropdownMenuItem = React11.forwardRef(({ className, inset, style, ...props }
|
|
|
3226
3562
|
}
|
|
3227
3563
|
));
|
|
3228
3564
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
3229
|
-
var DropdownMenuCheckboxItem =
|
|
3565
|
+
var DropdownMenuCheckboxItem = React16.forwardRef(({ className, children, style, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3230
3566
|
DropdownMenuPrimitive.CheckboxItem,
|
|
3231
3567
|
{
|
|
3232
3568
|
ref,
|
|
@@ -3241,7 +3577,7 @@ var DropdownMenuCheckboxItem = React11.forwardRef(({ className, children, style,
|
|
|
3241
3577
|
},
|
|
3242
3578
|
...props,
|
|
3243
3579
|
children: [
|
|
3244
|
-
/* @__PURE__ */ (0,
|
|
3580
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3245
3581
|
Checkbox,
|
|
3246
3582
|
{
|
|
3247
3583
|
checked: checked === true,
|
|
@@ -3249,12 +3585,12 @@ var DropdownMenuCheckboxItem = React11.forwardRef(({ className, children, style,
|
|
|
3249
3585
|
"aria-hidden": "true"
|
|
3250
3586
|
}
|
|
3251
3587
|
),
|
|
3252
|
-
/* @__PURE__ */ (0,
|
|
3588
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "flex-1", children })
|
|
3253
3589
|
]
|
|
3254
3590
|
}
|
|
3255
3591
|
));
|
|
3256
3592
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
3257
|
-
var DropdownMenuRadioItem =
|
|
3593
|
+
var DropdownMenuRadioItem = React16.forwardRef(({ className, children, style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3258
3594
|
DropdownMenuPrimitive.RadioItem,
|
|
3259
3595
|
{
|
|
3260
3596
|
ref,
|
|
@@ -3268,13 +3604,13 @@ var DropdownMenuRadioItem = React11.forwardRef(({ className, children, style, ..
|
|
|
3268
3604
|
},
|
|
3269
3605
|
...props,
|
|
3270
3606
|
children: [
|
|
3271
|
-
/* @__PURE__ */ (0,
|
|
3607
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "h-2 w-2 rounded-full bg-current" }) }) }),
|
|
3272
3608
|
children
|
|
3273
3609
|
]
|
|
3274
3610
|
}
|
|
3275
3611
|
));
|
|
3276
3612
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
3277
|
-
var DropdownMenuLabel =
|
|
3613
|
+
var DropdownMenuLabel = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3278
3614
|
DropdownMenuPrimitive.Label,
|
|
3279
3615
|
{
|
|
3280
3616
|
ref,
|
|
@@ -3287,7 +3623,7 @@ var DropdownMenuLabel = React11.forwardRef(({ className, inset, ...props }, ref)
|
|
|
3287
3623
|
}
|
|
3288
3624
|
));
|
|
3289
3625
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
3290
|
-
var DropdownMenuSeparator =
|
|
3626
|
+
var DropdownMenuSeparator = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3291
3627
|
DropdownMenuPrimitive.Separator,
|
|
3292
3628
|
{
|
|
3293
3629
|
ref,
|
|
@@ -3300,7 +3636,7 @@ var DropdownMenuShortcut = ({
|
|
|
3300
3636
|
className,
|
|
3301
3637
|
...props
|
|
3302
3638
|
}) => {
|
|
3303
|
-
return /* @__PURE__ */ (0,
|
|
3639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3304
3640
|
"span",
|
|
3305
3641
|
{
|
|
3306
3642
|
className: cn("ml-auto text-xs tracking-widest opacity-60", className),
|
|
@@ -3311,21 +3647,21 @@ var DropdownMenuShortcut = ({
|
|
|
3311
3647
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
3312
3648
|
|
|
3313
3649
|
// src/components/ui/charts/chart-legend.tsx
|
|
3314
|
-
var
|
|
3650
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
3315
3651
|
function ChartLegend({
|
|
3316
3652
|
items,
|
|
3317
3653
|
x = 0,
|
|
3318
3654
|
y = 550,
|
|
3319
3655
|
className = ""
|
|
3320
3656
|
}) {
|
|
3321
|
-
return /* @__PURE__ */ (0,
|
|
3657
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("foreignObject", { x, y, width: "100%", height: "40", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3322
3658
|
"div",
|
|
3323
3659
|
{
|
|
3324
3660
|
className: `flex justify-center items-center gap-6 ${className}`,
|
|
3325
3661
|
style: { height: "100%" },
|
|
3326
|
-
children: items.map(({ key, color, label }) => /* @__PURE__ */ (0,
|
|
3327
|
-
/* @__PURE__ */ (0,
|
|
3328
|
-
/* @__PURE__ */ (0,
|
|
3662
|
+
children: items.map(({ key, color, label }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
3663
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "w-3 h-3", style: { backgroundColor: color } }),
|
|
3664
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Typography, { variant: "body-xs", children: label || key })
|
|
3329
3665
|
] }, key))
|
|
3330
3666
|
}
|
|
3331
3667
|
) });
|
|
@@ -3443,12 +3779,12 @@ var formatLargeNumber = (value) => {
|
|
|
3443
3779
|
};
|
|
3444
3780
|
|
|
3445
3781
|
// src/components/ui/charts/chart-labels.tsx
|
|
3446
|
-
var
|
|
3782
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
3447
3783
|
var createCustomXAxisLabel = (text, yOffset = 40) => {
|
|
3448
3784
|
const CustomXAxisLabel = ({ viewBox }) => {
|
|
3449
3785
|
if (!viewBox) return null;
|
|
3450
3786
|
const { x, y, width } = viewBox;
|
|
3451
|
-
return /* @__PURE__ */ (0,
|
|
3787
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("foreignObject", { x, y: y + yOffset, width, height: 20, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "flex justify-center w-full", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
|
|
3452
3788
|
};
|
|
3453
3789
|
CustomXAxisLabel.displayName = "CustomXAxisLabel";
|
|
3454
3790
|
return CustomXAxisLabel;
|
|
@@ -3458,7 +3794,7 @@ var createCustomYAxisLabel = (text, leftMargin) => {
|
|
|
3458
3794
|
if (!viewBox) return null;
|
|
3459
3795
|
const { x, y, height } = viewBox;
|
|
3460
3796
|
const offset = leftMargin ? leftMargin + 10 : 110;
|
|
3461
|
-
return /* @__PURE__ */ (0,
|
|
3797
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("foreignObject", { x: x - offset, y, width: 100, height, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "flex items-center justify-center h-full transform -rotate-90 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
|
|
3462
3798
|
};
|
|
3463
3799
|
CustomYAxisLabel.displayName = "CustomYAxisLabel";
|
|
3464
3800
|
return CustomYAxisLabel;
|
|
@@ -3467,14 +3803,14 @@ var createCustomYAxisRightLabel = (text) => {
|
|
|
3467
3803
|
const CustomYAxisRightLabel = ({ viewBox }) => {
|
|
3468
3804
|
if (!viewBox) return null;
|
|
3469
3805
|
const { x, y, width, height } = viewBox;
|
|
3470
|
-
return /* @__PURE__ */ (0,
|
|
3806
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("foreignObject", { x: x + width - 70, y, width: 120, height, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "flex items-center justify-center h-full transform rotate-90 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
|
|
3471
3807
|
};
|
|
3472
3808
|
CustomYAxisRightLabel.displayName = "CustomYAxisRightLabel";
|
|
3473
3809
|
return CustomYAxisRightLabel;
|
|
3474
3810
|
};
|
|
3475
3811
|
var customXAxisTick = (props) => {
|
|
3476
3812
|
const { x, y, payload } = props;
|
|
3477
|
-
return /* @__PURE__ */ (0,
|
|
3813
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3478
3814
|
"foreignObject",
|
|
3479
3815
|
{
|
|
3480
3816
|
x: -20,
|
|
@@ -3482,12 +3818,12 @@ var customXAxisTick = (props) => {
|
|
|
3482
3818
|
width: 40,
|
|
3483
3819
|
height: 20,
|
|
3484
3820
|
style: { overflow: "visible" },
|
|
3485
|
-
children: /* @__PURE__ */ (0,
|
|
3821
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3486
3822
|
"div",
|
|
3487
3823
|
{
|
|
3488
3824
|
className: "flex items-start justify-center h-full",
|
|
3489
3825
|
style: { overflow: "visible" },
|
|
3490
|
-
children: /* @__PURE__ */ (0,
|
|
3826
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3491
3827
|
Typography,
|
|
3492
3828
|
{
|
|
3493
3829
|
variant: "body-xs",
|
|
@@ -3502,7 +3838,7 @@ var customXAxisTick = (props) => {
|
|
|
3502
3838
|
};
|
|
3503
3839
|
var customXAxisTickRotated = (props) => {
|
|
3504
3840
|
const { x, y, payload } = props;
|
|
3505
|
-
return /* @__PURE__ */ (0,
|
|
3841
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3506
3842
|
"text",
|
|
3507
3843
|
{
|
|
3508
3844
|
x: 0,
|
|
@@ -3521,25 +3857,25 @@ var customYAxisTick = (props) => {
|
|
|
3521
3857
|
const { x, y, payload } = props;
|
|
3522
3858
|
const text = String(payload.value);
|
|
3523
3859
|
const estimatedWidth = Math.max(text.length * 8, 80);
|
|
3524
|
-
return /* @__PURE__ */ (0,
|
|
3860
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3525
3861
|
"foreignObject",
|
|
3526
3862
|
{
|
|
3527
3863
|
x: x - estimatedWidth + 5,
|
|
3528
3864
|
y: y - 6,
|
|
3529
3865
|
width: estimatedWidth,
|
|
3530
3866
|
height: 15,
|
|
3531
|
-
children: /* @__PURE__ */ (0,
|
|
3867
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "flex justify-end w-full", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Typography, { variant: "body-xs", className: "text-secondary", children: payload.value }) })
|
|
3532
3868
|
}
|
|
3533
3869
|
);
|
|
3534
3870
|
};
|
|
3535
3871
|
|
|
3536
3872
|
// src/components/ui/charts/chart-tooltip.tsx
|
|
3537
|
-
var
|
|
3873
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
3538
3874
|
function TooltipContainer({
|
|
3539
3875
|
children,
|
|
3540
3876
|
className = ""
|
|
3541
3877
|
}) {
|
|
3542
|
-
return /* @__PURE__ */ (0,
|
|
3878
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3543
3879
|
"div",
|
|
3544
3880
|
{
|
|
3545
3881
|
className: `bg-light border border-subtle rounded p-2.5 text-dark ${className}`,
|
|
@@ -3553,10 +3889,10 @@ function TooltipItem({
|
|
|
3553
3889
|
value,
|
|
3554
3890
|
className = ""
|
|
3555
3891
|
}) {
|
|
3556
|
-
return /* @__PURE__ */ (0,
|
|
3557
|
-
/* @__PURE__ */ (0,
|
|
3558
|
-
/* @__PURE__ */ (0,
|
|
3559
|
-
/* @__PURE__ */ (0,
|
|
3892
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
|
|
3893
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("br", {}),
|
|
3894
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Typography, { variant: "label-sm", className, children: [
|
|
3895
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3560
3896
|
"span",
|
|
3561
3897
|
{
|
|
3562
3898
|
className: "inline-block w-3 h-3 mr-1.5",
|
|
@@ -3574,9 +3910,9 @@ function GenericTooltip({
|
|
|
3574
3910
|
items,
|
|
3575
3911
|
className = ""
|
|
3576
3912
|
}) {
|
|
3577
|
-
return /* @__PURE__ */ (0,
|
|
3578
|
-
title && /* @__PURE__ */ (0,
|
|
3579
|
-
items.map((item, index) => /* @__PURE__ */ (0,
|
|
3913
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(TooltipContainer, { className, children: [
|
|
3914
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Typography, { variant: "label-sm-bold", children: title }),
|
|
3915
|
+
items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3580
3916
|
TooltipItem,
|
|
3581
3917
|
{
|
|
3582
3918
|
color: item.color,
|
|
@@ -3591,7 +3927,7 @@ function GenericTooltip({
|
|
|
3591
3927
|
// src/components/ui/charts/bar-chart.tsx
|
|
3592
3928
|
var import_react2 = require("react");
|
|
3593
3929
|
var import_recharts = require("recharts");
|
|
3594
|
-
var
|
|
3930
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
3595
3931
|
var BarChart = (0, import_react2.forwardRef)(
|
|
3596
3932
|
({
|
|
3597
3933
|
data,
|
|
@@ -3618,19 +3954,19 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
3618
3954
|
};
|
|
3619
3955
|
const defaultLegendItems = showLegend && legendItems.length === 0 ? [{ key: yAxisKey, color: barColor, label: yAxisKey }] : legendItems;
|
|
3620
3956
|
const hasData = data && data.length > 0;
|
|
3621
|
-
return /* @__PURE__ */ (0,
|
|
3957
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
3622
3958
|
"div",
|
|
3623
3959
|
{
|
|
3624
3960
|
ref,
|
|
3625
3961
|
className: `bg-light border border-subtle mx-6 ${className}`,
|
|
3626
3962
|
children: [
|
|
3627
|
-
/* @__PURE__ */ (0,
|
|
3628
|
-
/* @__PURE__ */ (0,
|
|
3963
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
|
|
3964
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3629
3965
|
import_recharts.ResponsiveContainer,
|
|
3630
3966
|
{
|
|
3631
3967
|
width: "100%",
|
|
3632
3968
|
height: CHART_CONSTANTS.STANDARD_HEIGHT,
|
|
3633
|
-
children: /* @__PURE__ */ (0,
|
|
3969
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
3634
3970
|
import_recharts.BarChart,
|
|
3635
3971
|
{
|
|
3636
3972
|
data,
|
|
@@ -3642,7 +3978,7 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
3642
3978
|
onClick: handleClick,
|
|
3643
3979
|
layout,
|
|
3644
3980
|
children: [
|
|
3645
|
-
/* @__PURE__ */ (0,
|
|
3981
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3646
3982
|
import_recharts.XAxis,
|
|
3647
3983
|
{
|
|
3648
3984
|
dataKey: xAxisKey,
|
|
@@ -3656,7 +3992,7 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
3656
3992
|
label: xAxisLabel ? createCustomXAxisLabel(xAxisLabel, 80) : void 0
|
|
3657
3993
|
}
|
|
3658
3994
|
),
|
|
3659
|
-
/* @__PURE__ */ (0,
|
|
3995
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3660
3996
|
import_recharts.YAxis,
|
|
3661
3997
|
{
|
|
3662
3998
|
axisLine: false,
|
|
@@ -3667,7 +4003,7 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
3667
4003
|
type: yAxisType
|
|
3668
4004
|
}
|
|
3669
4005
|
),
|
|
3670
|
-
/* @__PURE__ */ (0,
|
|
4006
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3671
4007
|
import_recharts.Tooltip,
|
|
3672
4008
|
{
|
|
3673
4009
|
content: ({
|
|
@@ -3676,7 +4012,7 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
3676
4012
|
label
|
|
3677
4013
|
}) => {
|
|
3678
4014
|
if (active && payload && payload.length) {
|
|
3679
|
-
return /* @__PURE__ */ (0,
|
|
4015
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3680
4016
|
GenericTooltip,
|
|
3681
4017
|
{
|
|
3682
4018
|
title: label?.toString(),
|
|
@@ -3692,7 +4028,7 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
3692
4028
|
}
|
|
3693
4029
|
}
|
|
3694
4030
|
),
|
|
3695
|
-
/* @__PURE__ */ (0,
|
|
4031
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3696
4032
|
import_recharts.Bar,
|
|
3697
4033
|
{
|
|
3698
4034
|
dataKey: barDataKey || yAxisKey,
|
|
@@ -3700,12 +4036,12 @@ var BarChart = (0, import_react2.forwardRef)(
|
|
|
3700
4036
|
name: barDataKey || yAxisKey
|
|
3701
4037
|
}
|
|
3702
4038
|
),
|
|
3703
|
-
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0,
|
|
4039
|
+
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ChartLegend, { items: defaultLegendItems })
|
|
3704
4040
|
]
|
|
3705
4041
|
}
|
|
3706
4042
|
)
|
|
3707
4043
|
}
|
|
3708
|
-
) : /* @__PURE__ */ (0,
|
|
4044
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
|
|
3709
4045
|
]
|
|
3710
4046
|
}
|
|
3711
4047
|
);
|
|
@@ -3716,7 +4052,7 @@ BarChart.displayName = "BarChart";
|
|
|
3716
4052
|
// src/components/ui/charts/line-chart.tsx
|
|
3717
4053
|
var import_react3 = require("react");
|
|
3718
4054
|
var import_recharts2 = require("recharts");
|
|
3719
|
-
var
|
|
4055
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
3720
4056
|
var LineChart = (0, import_react3.forwardRef)(
|
|
3721
4057
|
({
|
|
3722
4058
|
data,
|
|
@@ -3745,19 +4081,19 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
3745
4081
|
)
|
|
3746
4082
|
);
|
|
3747
4083
|
const hasData = data && data.length > 0;
|
|
3748
|
-
return /* @__PURE__ */ (0,
|
|
4084
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
3749
4085
|
"div",
|
|
3750
4086
|
{
|
|
3751
4087
|
ref,
|
|
3752
4088
|
className: `bg-light border border-subtle mx-6 ${className}`,
|
|
3753
4089
|
children: [
|
|
3754
|
-
/* @__PURE__ */ (0,
|
|
3755
|
-
/* @__PURE__ */ (0,
|
|
4090
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
|
|
4091
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3756
4092
|
import_recharts2.ResponsiveContainer,
|
|
3757
4093
|
{
|
|
3758
4094
|
width: "100%",
|
|
3759
4095
|
height: CHART_CONSTANTS.STANDARD_HEIGHT,
|
|
3760
|
-
children: /* @__PURE__ */ (0,
|
|
4096
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
3761
4097
|
import_recharts2.LineChart,
|
|
3762
4098
|
{
|
|
3763
4099
|
data,
|
|
@@ -3768,7 +4104,7 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
3768
4104
|
},
|
|
3769
4105
|
onClick: handleClick,
|
|
3770
4106
|
children: [
|
|
3771
|
-
/* @__PURE__ */ (0,
|
|
4107
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3772
4108
|
import_recharts2.XAxis,
|
|
3773
4109
|
{
|
|
3774
4110
|
dataKey: xAxisKey,
|
|
@@ -3780,7 +4116,7 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
3780
4116
|
label: xAxisLabel ? createCustomXAxisLabel(xAxisLabel) : void 0
|
|
3781
4117
|
}
|
|
3782
4118
|
),
|
|
3783
|
-
/* @__PURE__ */ (0,
|
|
4119
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3784
4120
|
import_recharts2.YAxis,
|
|
3785
4121
|
{
|
|
3786
4122
|
axisLine: false,
|
|
@@ -3789,7 +4125,7 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
3789
4125
|
label: yAxisLabel ? createCustomYAxisLabel(yAxisLabel, 40) : void 0
|
|
3790
4126
|
}
|
|
3791
4127
|
),
|
|
3792
|
-
/* @__PURE__ */ (0,
|
|
4128
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3793
4129
|
import_recharts2.Tooltip,
|
|
3794
4130
|
{
|
|
3795
4131
|
content: ({
|
|
@@ -3798,7 +4134,7 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
3798
4134
|
label
|
|
3799
4135
|
}) => {
|
|
3800
4136
|
if (active && payload && payload.length) {
|
|
3801
|
-
return /* @__PURE__ */ (0,
|
|
4137
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3802
4138
|
GenericTooltip,
|
|
3803
4139
|
{
|
|
3804
4140
|
title: label?.toString(),
|
|
@@ -3814,7 +4150,7 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
3814
4150
|
}
|
|
3815
4151
|
}
|
|
3816
4152
|
),
|
|
3817
|
-
series.map((s, index) => /* @__PURE__ */ (0,
|
|
4153
|
+
series.map((s, index) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3818
4154
|
import_recharts2.Line,
|
|
3819
4155
|
{
|
|
3820
4156
|
type: "monotone",
|
|
@@ -3826,12 +4162,12 @@ var LineChart = (0, import_react3.forwardRef)(
|
|
|
3826
4162
|
},
|
|
3827
4163
|
s.dataKey
|
|
3828
4164
|
)),
|
|
3829
|
-
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0,
|
|
4165
|
+
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ChartLegend, { items: defaultLegendItems })
|
|
3830
4166
|
]
|
|
3831
4167
|
}
|
|
3832
4168
|
)
|
|
3833
4169
|
}
|
|
3834
|
-
) : /* @__PURE__ */ (0,
|
|
4170
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
|
|
3835
4171
|
]
|
|
3836
4172
|
}
|
|
3837
4173
|
);
|
|
@@ -3842,7 +4178,7 @@ LineChart.displayName = "LineChart";
|
|
|
3842
4178
|
// src/components/ui/charts/pie-chart.tsx
|
|
3843
4179
|
var import_react4 = require("react");
|
|
3844
4180
|
var import_recharts3 = require("recharts");
|
|
3845
|
-
var
|
|
4181
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
3846
4182
|
var PieChart = (0, import_react4.forwardRef)(
|
|
3847
4183
|
({
|
|
3848
4184
|
data,
|
|
@@ -3870,20 +4206,20 @@ var PieChart = (0, import_react4.forwardRef)(
|
|
|
3870
4206
|
)
|
|
3871
4207
|
);
|
|
3872
4208
|
const hasData = data && data.length > 0;
|
|
3873
|
-
return /* @__PURE__ */ (0,
|
|
4209
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
3874
4210
|
"div",
|
|
3875
4211
|
{
|
|
3876
4212
|
ref,
|
|
3877
4213
|
className: `bg-light border border-subtle mx-6 ${className}`,
|
|
3878
4214
|
children: [
|
|
3879
|
-
/* @__PURE__ */ (0,
|
|
3880
|
-
/* @__PURE__ */ (0,
|
|
4215
|
+
/* @__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 }) }),
|
|
4216
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
3881
4217
|
import_recharts3.PieChart,
|
|
3882
4218
|
{
|
|
3883
4219
|
width: 600,
|
|
3884
4220
|
height: CHART_CONSTANTS.LARGE_HEIGHT,
|
|
3885
4221
|
children: [
|
|
3886
|
-
/* @__PURE__ */ (0,
|
|
4222
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3887
4223
|
import_recharts3.Pie,
|
|
3888
4224
|
{
|
|
3889
4225
|
data,
|
|
@@ -3895,7 +4231,7 @@ var PieChart = (0, import_react4.forwardRef)(
|
|
|
3895
4231
|
label: showLabels,
|
|
3896
4232
|
labelLine: false,
|
|
3897
4233
|
onClick: handleClick,
|
|
3898
|
-
children: data.map((entry, index) => /* @__PURE__ */ (0,
|
|
4234
|
+
children: data.map((entry, index) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3899
4235
|
import_recharts3.Cell,
|
|
3900
4236
|
{
|
|
3901
4237
|
fill: entry.color || getSeriesColor(index)
|
|
@@ -3904,7 +4240,7 @@ var PieChart = (0, import_react4.forwardRef)(
|
|
|
3904
4240
|
))
|
|
3905
4241
|
}
|
|
3906
4242
|
),
|
|
3907
|
-
/* @__PURE__ */ (0,
|
|
4243
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3908
4244
|
import_recharts3.Tooltip,
|
|
3909
4245
|
{
|
|
3910
4246
|
content: ({
|
|
@@ -3913,7 +4249,7 @@ var PieChart = (0, import_react4.forwardRef)(
|
|
|
3913
4249
|
}) => {
|
|
3914
4250
|
if (active && payload && payload.length && payload[0]) {
|
|
3915
4251
|
const data2 = payload[0].payload;
|
|
3916
|
-
return /* @__PURE__ */ (0,
|
|
4252
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3917
4253
|
GenericTooltip,
|
|
3918
4254
|
{
|
|
3919
4255
|
title: data2.name,
|
|
@@ -3931,10 +4267,10 @@ var PieChart = (0, import_react4.forwardRef)(
|
|
|
3931
4267
|
}
|
|
3932
4268
|
}
|
|
3933
4269
|
),
|
|
3934
|
-
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0,
|
|
4270
|
+
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ChartLegend, { items: defaultLegendItems, y: 400 })
|
|
3935
4271
|
]
|
|
3936
4272
|
}
|
|
3937
|
-
) }) : /* @__PURE__ */ (0,
|
|
4273
|
+
) }) : /* @__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" }) }) })
|
|
3938
4274
|
]
|
|
3939
4275
|
}
|
|
3940
4276
|
);
|
|
@@ -3945,7 +4281,7 @@ PieChart.displayName = "PieChart";
|
|
|
3945
4281
|
// src/components/ui/table.tsx
|
|
3946
4282
|
var import_react5 = require("react");
|
|
3947
4283
|
var import_react_table = require("@tanstack/react-table");
|
|
3948
|
-
var
|
|
4284
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
3949
4285
|
function Table({
|
|
3950
4286
|
table,
|
|
3951
4287
|
className,
|
|
@@ -3975,15 +4311,15 @@ function Table({
|
|
|
3975
4311
|
},
|
|
3976
4312
|
[table]
|
|
3977
4313
|
);
|
|
3978
|
-
return /* @__PURE__ */ (0,
|
|
3979
|
-
/* @__PURE__ */ (0,
|
|
3980
|
-
/* @__PURE__ */ (0,
|
|
4314
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { children: [
|
|
4315
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: cn("overflow-x-auto", className), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("table", { className: "min-w-full divide-y divide-border", children: [
|
|
4316
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("thead", { className: "bg-dark text-light", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("tr", { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("th", { className: "px-6 py-3 text-left", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
3981
4317
|
"div",
|
|
3982
4318
|
{
|
|
3983
4319
|
className: `flex items-center space-x-1 ${header.column.getCanSort() ? "cursor-pointer select-none" : ""}`,
|
|
3984
4320
|
onClick: header.column.getToggleSortingHandler(),
|
|
3985
4321
|
children: [
|
|
3986
|
-
/* @__PURE__ */ (0,
|
|
4322
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3987
4323
|
Typography,
|
|
3988
4324
|
{
|
|
3989
4325
|
variant: "label-xs",
|
|
@@ -3994,19 +4330,19 @@ function Table({
|
|
|
3994
4330
|
)
|
|
3995
4331
|
}
|
|
3996
4332
|
),
|
|
3997
|
-
header.column.getCanSort() && /* @__PURE__ */ (0,
|
|
3998
|
-
header.column.getIsSorted() === "asc" && /* @__PURE__ */ (0,
|
|
3999
|
-
header.column.getIsSorted() === "desc" && /* @__PURE__ */ (0,
|
|
4333
|
+
header.column.getCanSort() && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { className: "ml-1", children: [
|
|
4334
|
+
header.column.getIsSorted() === "asc" && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronUp, { className: "w-4 h-4 text-light" }),
|
|
4335
|
+
header.column.getIsSorted() === "desc" && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronDown, { className: "w-4 h-4 text-light" })
|
|
4000
4336
|
] })
|
|
4001
4337
|
]
|
|
4002
4338
|
}
|
|
4003
4339
|
) }, header.id)) }, headerGroup.id)) }),
|
|
4004
|
-
/* @__PURE__ */ (0,
|
|
4340
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("tbody", { className: "bg-light divide-y divide-border", children: table.getRowModel().rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("tr", { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Typography, { variant: "body-sm", children: (0, import_react_table.flexRender)(
|
|
4005
4341
|
cell.column.columnDef.cell,
|
|
4006
4342
|
cell.getContext()
|
|
4007
4343
|
) }) }, cell.id)) }, row.id)) })
|
|
4008
4344
|
] }) }),
|
|
4009
|
-
showPagination && /* @__PURE__ */ (0,
|
|
4345
|
+
showPagination && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
4010
4346
|
"div",
|
|
4011
4347
|
{
|
|
4012
4348
|
className: cn(
|
|
@@ -4014,9 +4350,9 @@ function Table({
|
|
|
4014
4350
|
paginationClassName
|
|
4015
4351
|
),
|
|
4016
4352
|
children: [
|
|
4017
|
-
/* @__PURE__ */ (0,
|
|
4018
|
-
/* @__PURE__ */ (0,
|
|
4019
|
-
/* @__PURE__ */ (0,
|
|
4353
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Typography, { variant: "body-sm", className: "text-secondary", children: showingText }) }),
|
|
4354
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex items-center space-x-1", children: [
|
|
4355
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4020
4356
|
Button,
|
|
4021
4357
|
{
|
|
4022
4358
|
variant: "ghost",
|
|
@@ -4024,7 +4360,7 @@ function Table({
|
|
|
4024
4360
|
onClick: handlePreviousPage,
|
|
4025
4361
|
disabled: !table.getCanPreviousPage(),
|
|
4026
4362
|
className: "p-2",
|
|
4027
|
-
children: /* @__PURE__ */ (0,
|
|
4363
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronLeft, { className: "w-4 h-4" })
|
|
4028
4364
|
}
|
|
4029
4365
|
),
|
|
4030
4366
|
Array.from(
|
|
@@ -4041,7 +4377,7 @@ function Table({
|
|
|
4041
4377
|
pageNumber = currentPage - 2 + i;
|
|
4042
4378
|
}
|
|
4043
4379
|
const isActive = pageNumber === currentPage;
|
|
4044
|
-
return /* @__PURE__ */ (0,
|
|
4380
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4045
4381
|
Button,
|
|
4046
4382
|
{
|
|
4047
4383
|
variant: isActive ? "default" : "ghost",
|
|
@@ -4054,11 +4390,11 @@ function Table({
|
|
|
4054
4390
|
);
|
|
4055
4391
|
}
|
|
4056
4392
|
),
|
|
4057
|
-
table.getPageCount() > 5 && currentPage < totalPages - 3 && /* @__PURE__ */ (0,
|
|
4058
|
-
/* @__PURE__ */ (0,
|
|
4059
|
-
/* @__PURE__ */ (0,
|
|
4393
|
+
table.getPageCount() > 5 && currentPage < totalPages - 3 && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
|
|
4394
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "px-1 text-secondary", children: "..." }),
|
|
4395
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Typography, { variant: "body-sm", className: "text-secondary", children: totalPages })
|
|
4060
4396
|
] }),
|
|
4061
|
-
/* @__PURE__ */ (0,
|
|
4397
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4062
4398
|
Button,
|
|
4063
4399
|
{
|
|
4064
4400
|
variant: "ghost",
|
|
@@ -4066,12 +4402,12 @@ function Table({
|
|
|
4066
4402
|
onClick: handleNextPage,
|
|
4067
4403
|
disabled: !table.getCanNextPage(),
|
|
4068
4404
|
className: "p-2",
|
|
4069
|
-
children: /* @__PURE__ */ (0,
|
|
4405
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronRight, { className: "w-4 h-4" })
|
|
4070
4406
|
}
|
|
4071
4407
|
)
|
|
4072
4408
|
] }),
|
|
4073
|
-
/* @__PURE__ */ (0,
|
|
4074
|
-
/* @__PURE__ */ (0,
|
|
4409
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex items-center gap-3 w-48", children: [
|
|
4410
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4075
4411
|
Typography,
|
|
4076
4412
|
{
|
|
4077
4413
|
variant: "body-sm",
|
|
@@ -4079,14 +4415,14 @@ function Table({
|
|
|
4079
4415
|
children: "Rows per page:"
|
|
4080
4416
|
}
|
|
4081
4417
|
),
|
|
4082
|
-
/* @__PURE__ */ (0,
|
|
4418
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
4083
4419
|
Select,
|
|
4084
4420
|
{
|
|
4085
4421
|
value: table.getState().pagination.pageSize.toString(),
|
|
4086
4422
|
onValueChange: handlePageSizeChange,
|
|
4087
4423
|
children: [
|
|
4088
|
-
/* @__PURE__ */ (0,
|
|
4089
|
-
/* @__PURE__ */ (0,
|
|
4424
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectTrigger, { className: "min-w-0 h-8", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectValue, {}) }),
|
|
4425
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectContent, { children: [10, 20, 50, 100].map((size) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectItem, { value: size.toString(), children: size }, size)) })
|
|
4090
4426
|
]
|
|
4091
4427
|
}
|
|
4092
4428
|
)
|
|
@@ -4133,6 +4469,7 @@ function Table({
|
|
|
4133
4469
|
DatePicker,
|
|
4134
4470
|
Doc,
|
|
4135
4471
|
Dollar,
|
|
4472
|
+
Download,
|
|
4136
4473
|
DropdownMenu,
|
|
4137
4474
|
DropdownMenuCheckboxItem,
|
|
4138
4475
|
DropdownMenuContent,
|
|
@@ -4182,9 +4519,11 @@ function Table({
|
|
|
4182
4519
|
MagnifyingGlass,
|
|
4183
4520
|
Minus,
|
|
4184
4521
|
MoreMenu,
|
|
4522
|
+
PdfViewer,
|
|
4185
4523
|
Phone,
|
|
4186
4524
|
PieChart,
|
|
4187
4525
|
Plus,
|
|
4526
|
+
Print,
|
|
4188
4527
|
QuestionCircle,
|
|
4189
4528
|
Select,
|
|
4190
4529
|
SelectContent,
|
|
@@ -4233,6 +4572,7 @@ function Table({
|
|
|
4233
4572
|
getHeatmapColor,
|
|
4234
4573
|
getPerformanceColor,
|
|
4235
4574
|
getSeriesColor,
|
|
4575
|
+
initializePdfWorker,
|
|
4236
4576
|
selectTriggerVariants,
|
|
4237
4577
|
tabsVariants,
|
|
4238
4578
|
typographyVariants,
|