@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.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/ui/tabs.tsx
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 import_class_variance_authority9 = require("class-variance-authority");
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 = React10.createContext(
3359
+ var TabsContext = React15.createContext(
3024
3360
  void 0
3025
3361
  );
3026
3362
  function useTabsContext() {
3027
- const context = React10.useContext(TabsContext);
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 = React10.forwardRef((props, ref) => {
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 = React10.useMemo(
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, import_jsx_runtime14.jsx)(TabsContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { ref, className: cn("w-full", className), ...restProps, children }) });
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 = React10.forwardRef(
3389
+ var TabsList = React15.forwardRef(
3054
3390
  (props, ref) => {
3055
3391
  const { className, children, ...restProps } = props;
3056
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
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 = React10.forwardRef(
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 = React10.useMemo(
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 = React10.useMemo(
3423
+ const triggerClassName = React15.useMemo(
3088
3424
  () => cn(tabsVariants({ variant }), className),
3089
3425
  [variant, className]
3090
3426
  );
3091
- const handleClick = React10.useCallback(() => {
3427
+ const handleClick = React15.useCallback(() => {
3092
3428
  if (disabled) return;
3093
3429
  setActiveTab(value);
3094
3430
  }, [disabled, setActiveTab, value]);
3095
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
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, import_jsx_runtime14.jsx)("span", { className: "pl-3 pr-6 py-2", children })
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 = React10.forwardRef(
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, import_jsx_runtime14.jsx)(
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 React11 = __toESM(require("react"));
3480
+ var React16 = __toESM(require("react"));
3145
3481
  var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
3146
- var import_jsx_runtime15 = require("react/jsx-runtime");
3482
+ var import_jsx_runtime18 = require("react/jsx-runtime");
3147
3483
  var DropdownMenu = DropdownMenuPrimitive.Root;
3148
- var DropdownMenuTrigger = React11.forwardRef(({ className, icon, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
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, import_jsx_runtime15.jsx)(MoreMenu, { className: "size-4" }),
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 = React11.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
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, import_jsx_runtime15.jsx)(ChevronRight, { className: "ml-auto" })
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 = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
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 = React11.forwardRef(({ className, sideOffset = 4, align = "end", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
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 = React11.forwardRef(({ className, inset, style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
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 = React11.forwardRef(({ className, children, style, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
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, import_jsx_runtime15.jsx)(
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, import_jsx_runtime15.jsx)("span", { className: "flex-1", children })
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 = React11.forwardRef(({ className, children, style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
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, import_jsx_runtime15.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "h-2 w-2 rounded-full bg-current" }) }) }),
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 = React11.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
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 = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
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, import_jsx_runtime15.jsx)(
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 import_jsx_runtime16 = require("react/jsx-runtime");
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, import_jsx_runtime16.jsx)("foreignObject", { x, y, width: "100%", height: "40", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
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, import_jsx_runtime16.jsxs)("div", { className: "flex items-center gap-2", children: [
3327
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "w-3 h-3", style: { backgroundColor: color } }),
3328
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Typography, { variant: "body-xs", children: label || key })
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 import_jsx_runtime17 = require("react/jsx-runtime");
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, import_jsx_runtime17.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("foreignObject", { x, y: y + yOffset, width, height: 20, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "flex justify-center w-full", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
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, import_jsx_runtime17.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("foreignObject", { x: x - offset, y, width: 100, height, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "flex items-center justify-center h-full transform -rotate-90 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
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, import_jsx_runtime17.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("foreignObject", { x: x + width - 70, y, width: 120, height, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "flex items-center justify-center h-full transform rotate-90 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
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, import_jsx_runtime17.jsx)("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)("div", { className: "flex justify-end w-full", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Typography, { variant: "body-xs", className: "text-secondary", children: payload.value }) })
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 import_jsx_runtime18 = require("react/jsx-runtime");
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, import_jsx_runtime18.jsx)(
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, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
3557
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("br", {}),
3558
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Typography, { variant: "label-sm", className, children: [
3559
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
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, import_jsx_runtime18.jsxs)(TooltipContainer, { className, children: [
3578
- title && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Typography, { variant: "label-sm-bold", children: title }),
3579
- items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
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 import_jsx_runtime19 = require("react/jsx-runtime");
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, import_jsx_runtime19.jsxs)(
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, import_jsx_runtime19.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
3628
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
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, import_jsx_runtime19.jsxs)(
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, import_jsx_runtime19.jsx)(
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, import_jsx_runtime19.jsx)(
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, import_jsx_runtime19.jsx)(
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, import_jsx_runtime19.jsx)(
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, import_jsx_runtime19.jsx)(
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, import_jsx_runtime19.jsx)(ChartLegend, { items: defaultLegendItems })
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, import_jsx_runtime19.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
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 import_jsx_runtime20 = require("react/jsx-runtime");
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, import_jsx_runtime20.jsxs)(
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, import_jsx_runtime20.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
3755
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
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, import_jsx_runtime20.jsxs)(
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, import_jsx_runtime20.jsx)(
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, import_jsx_runtime20.jsx)(
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, import_jsx_runtime20.jsx)(
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, import_jsx_runtime20.jsx)(
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, import_jsx_runtime20.jsx)(
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, import_jsx_runtime20.jsx)(ChartLegend, { items: defaultLegendItems })
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, import_jsx_runtime20.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
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 import_jsx_runtime21 = require("react/jsx-runtime");
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, import_jsx_runtime21.jsxs)(
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, import_jsx_runtime21.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
3880
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
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, import_jsx_runtime21.jsx)(
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, import_jsx_runtime21.jsx)(
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, import_jsx_runtime21.jsx)(
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, import_jsx_runtime21.jsx)(
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, import_jsx_runtime21.jsx)(ChartLegend, { items: defaultLegendItems, y: 400 })
4270
+ showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ChartLegend, { items: defaultLegendItems, y: 400 })
3935
4271
  ]
3936
4272
  }
3937
- ) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
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 import_jsx_runtime22 = require("react/jsx-runtime");
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, import_jsx_runtime22.jsxs)("div", { children: [
3979
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: cn("overflow-x-auto", className), children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("table", { className: "min-w-full divide-y divide-border", children: [
3980
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("thead", { className: "bg-dark text-light", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("tr", { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("th", { className: "px-6 py-3 text-left", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
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, import_jsx_runtime22.jsx)(
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, import_jsx_runtime22.jsxs)("span", { className: "ml-1", children: [
3998
- header.column.getIsSorted() === "asc" && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ChevronUp, { className: "w-4 h-4 text-light" }),
3999
- header.column.getIsSorted() === "desc" && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ChevronDown, { className: "w-4 h-4 text-light" })
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, import_jsx_runtime22.jsx)("tbody", { className: "bg-light divide-y divide-border", children: table.getRowModel().rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("tr", { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Typography, { variant: "body-sm", children: (0, import_react_table.flexRender)(
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, import_jsx_runtime22.jsxs)(
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, import_jsx_runtime22.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Typography, { variant: "body-sm", className: "text-secondary", children: showingText }) }),
4018
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center space-x-1", children: [
4019
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
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, import_jsx_runtime22.jsx)(ChevronLeft, { className: "w-4 h-4" })
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, import_jsx_runtime22.jsx)(
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, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
4058
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "px-1 text-secondary", children: "..." }),
4059
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Typography, { variant: "body-sm", className: "text-secondary", children: totalPages })
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, import_jsx_runtime22.jsx)(
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, import_jsx_runtime22.jsx)(ChevronRight, { className: "w-4 h-4" })
4405
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronRight, { className: "w-4 h-4" })
4070
4406
  }
4071
4407
  )
4072
4408
  ] }),
4073
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center gap-3 w-48", children: [
4074
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
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, import_jsx_runtime22.jsxs)(
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, import_jsx_runtime22.jsx)(SelectTrigger, { className: "min-w-0 h-8", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SelectValue, {}) }),
4089
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SelectContent, { children: [10, 20, 50, 100].map((size) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SelectItem, { value: size.toString(), children: size }, size)) })
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,