@adsgency_npm/adsgency-ads-ui 0.1.0-alpha.31 → 0.1.0-alpha.33

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.cjs CHANGED
@@ -110,6 +110,7 @@ __export(src_exports, {
110
110
  AdsInputOTPGroup: () => AdsInputOTPGroup,
111
111
  AdsInputOTPSeparator: () => AdsInputOTPSeparator,
112
112
  AdsInputOTPSlot: () => AdsInputOTPSlot,
113
+ AdsLineChart: () => AdsLineChart,
113
114
  AdsMasonry: () => AdsMasonry,
114
115
  AdsPagination: () => AdsPagination,
115
116
  AdsPaginationContent: () => AdsPaginationContent,
@@ -224,6 +225,7 @@ var adsDefaultMessages = {
224
225
  collapseRow: "Collapse row",
225
226
  expandRow: "Expand row",
226
227
  filterColumn: "Filter column",
228
+ loadingRows: "Loading table rows",
227
229
  noDataAvailable: "No data available",
228
230
  selectAllRows: "Select all rows",
229
231
  selectRow: "Select row",
@@ -274,6 +276,7 @@ var adsDefaultMessages = {
274
276
  collapseRow: "\u6536\u8D77\u884C",
275
277
  expandRow: "\u5C55\u5F00\u884C",
276
278
  filterColumn: "\u7B5B\u9009\u5217",
279
+ loadingRows: "\u6B63\u5728\u52A0\u8F7D\u8868\u683C\u884C",
277
280
  noDataAvailable: "\u6682\u65E0\u6570\u636E",
278
281
  selectAllRows: "\u9009\u62E9\u5168\u90E8\u884C",
279
282
  selectRow: "\u9009\u62E9\u884C",
@@ -832,7 +835,7 @@ var adsTextColorClassName = {
832
835
  // src/components/AdsAlertDialog/index.tsx
833
836
  var import_jsx_runtime8 = require("react/jsx-runtime");
834
837
  var overlayClassName = "fixed inset-0 z-50 bg-black/80 backdrop-blur-[2px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0";
835
- var contentClassName = "fixed left-1/2 top-1/2 z-50 grid w-[calc(100%-2rem)] max-w-[512px] -translate-x-1/2 -translate-y-1/2 gap-lg rounded-radius-lg border border-border bg-card p-xl shadow-[0px_4px_6px_-4px_rgba(0,0,0,0.1),0px_10px_15px_-3px_rgba(0,0,0,0.1)] duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]";
838
+ var contentClassName = "fixed left-1/2 top-1/2 z-50 grid w-[calc(100%-2rem)] max-w-[512px] -translate-x-1/2 -translate-y-1/2 gap-lg rounded-radius-lg border-0 bg-card p-xl shadow-[0px_4px_6px_-4px_rgba(0,0,0,0.1),0px_10px_15px_-3px_rgba(0,0,0,0.1)] duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]";
836
839
  var actionClassName = "inline-flex h-9 items-center justify-center rounded-radius-md border-0 bg-brand-gradient px-lg py-sm text-sm font-medium leading-5 tracking-normal shadow-[0px_1px_2px_rgba(0,0,0,0.1)] transition-opacity hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card disabled:pointer-events-none disabled:opacity-[0.65]";
837
840
  var cancelClassName = "inline-flex h-9 items-center justify-center rounded-radius-md border border-border bg-card px-lg py-sm text-sm font-medium leading-5 tracking-normal shadow-[0px_1px_2px_rgba(0,0,0,0.1)] transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card disabled:pointer-events-none disabled:opacity-[0.65]";
838
841
  var AlertDialog = AlertDialogPrimitive.Root;
@@ -2836,6 +2839,7 @@ AdsSkeleton.displayName = "AdsSkeleton";
2836
2839
 
2837
2840
  // src/components/AdsInput/index.tsx
2838
2841
  var React31 = __toESM(require("react"), 1);
2842
+ var import_lucide_react10 = require("lucide-react");
2839
2843
 
2840
2844
  // src/lib/adsClearButton.tsx
2841
2845
  var React30 = __toESM(require("react"), 1);
@@ -2856,12 +2860,17 @@ AdsClearButton.displayName = "AdsClearButton";
2856
2860
 
2857
2861
  // src/components/AdsInput/index.tsx
2858
2862
  var import_jsx_runtime34 = require("react/jsx-runtime");
2859
- var inputBaseClassName = "flex w-full rounded-md border border-border bg-card px-3 py-2 ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-[var(--card-foreground)] placeholder:text-[var(--muted-foreground)] focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm";
2863
+ var inputBaseClassName = "flex w-full rounded-md border border-border bg-card px-3 py-2 ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-[var(--card-foreground)] placeholder:text-[var(--muted-foreground)] focus-visible:outline-none disabled:cursor-not-allowed disabled:border-border disabled:bg-muted disabled:text-[var(--muted-foreground)] disabled:placeholder:text-[var(--muted-foreground)] disabled:opacity-100 disabled:focus-visible:border-border disabled:focus-visible:ring-0 md:text-sm";
2860
2864
  var inputSizeClasses = {
2861
2865
  sm: "h-8 text-sm leading-5",
2862
2866
  md: "h-9 text-base leading-6",
2863
2867
  lg: "h-10 text-base leading-6"
2864
2868
  };
2869
+ var fileTriggerSizeClasses = {
2870
+ sm: "h-8 px-md py-sm",
2871
+ md: "h-9 px-lg py-sm",
2872
+ lg: "h-10 px-xl py-[10px]"
2873
+ };
2865
2874
  function assignInputRef(ref, value) {
2866
2875
  if (typeof ref === "function") {
2867
2876
  ref(value);
@@ -2880,6 +2889,17 @@ function getTextInputValue(value) {
2880
2889
  }
2881
2890
  return "";
2882
2891
  }
2892
+ function renderFileTriggerIcon(icon) {
2893
+ if (!icon) {
2894
+ return null;
2895
+ }
2896
+ if (React31.isValidElement(icon)) {
2897
+ return React31.cloneElement(icon, {
2898
+ className: cn("!h-4 !w-4 h-4 w-4", icon.props.className)
2899
+ });
2900
+ }
2901
+ return icon;
2902
+ }
2883
2903
  function getInputSurfaceClassName({
2884
2904
  className,
2885
2905
  errorText,
@@ -2906,6 +2926,7 @@ var AdsInput = React31.forwardRef(
2906
2926
  descriptionPlacement = "below",
2907
2927
  emptyFileLabel,
2908
2928
  errorText,
2929
+ fileTriggerIcon = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_lucide_react10.Upload, { "aria-hidden": true, className: "h-4 w-4" }),
2909
2930
  fileTriggerLabel,
2910
2931
  helperText,
2911
2932
  id,
@@ -2946,6 +2967,7 @@ var AdsInput = React31.forwardRef(
2946
2967
  });
2947
2968
  const resolvedClearButtonLabel = clearButtonLabel ?? messages.input.clear;
2948
2969
  const resolvedFileTriggerLabel = fileTriggerLabel ?? messages.input.chooseFile;
2970
+ const resolvedFileTriggerIcon = renderFileTriggerIcon(fileTriggerIcon);
2949
2971
  const resolvedEmptyFileLabel = emptyFileLabel ?? messages.input.noFileChosen;
2950
2972
  const handleChange = React31.useCallback(
2951
2973
  (event) => {
@@ -2976,7 +2998,7 @@ var AdsInput = React31.forwardRef(
2976
2998
  const fileNameText = selectedFiles.length > 0 ? selectedFiles.join(", ") : resolvedEmptyFileLabel;
2977
2999
  const helperNode = helperText ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(AdsFieldDescription, { id: description.helperId, children: helperText }) : null;
2978
3000
  const errorNode = errorText ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(AdsFieldError, { id: description.errorId, children: errorText }) : null;
2979
- const inputNode = isFileInput ? /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "relative flex w-full min-w-0 flex-1 items-center", children: [
3001
+ const inputNode = isFileInput ? /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "group relative flex w-full min-w-0 flex-1 items-center focus-within:[&_[data-ads-file-trigger]]:ring-2 focus-within:[&_[data-ads-file-trigger]]:ring-ring focus-within:[&_[data-ads-file-trigger]]:ring-offset-2 focus-within:[&_[data-ads-file-trigger]]:ring-offset-background", children: [
2980
3002
  /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2981
3003
  Input,
2982
3004
  {
@@ -3002,20 +3024,23 @@ var AdsInput = React31.forwardRef(
3002
3024
  {
3003
3025
  "aria-hidden": "true",
3004
3026
  className: cn(
3005
- inputSurfaceClassName,
3006
- adsTextColorClassName.card,
3007
- "items-center text-sm leading-5",
3027
+ "flex w-full min-w-0 items-center gap-sm text-sm leading-5",
3008
3028
  props.disabled ? "cursor-not-allowed opacity-50" : void 0
3009
3029
  ),
3010
3030
  children: [
3011
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
3031
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
3012
3032
  "span",
3013
3033
  {
3034
+ "data-ads-file-trigger": "",
3014
3035
  className: cn(
3015
- "shrink-0 pr-sm text-sm font-medium leading-5",
3016
- adsTextColorClassName.card
3036
+ "inline-flex shrink-0 items-center justify-center gap-sm rounded-radius-md border-0 bg-primary text-sm font-medium leading-5 shadow-[0px_1px_2px_rgba(0,0,0,0.1)] transition-colors group-hover:bg-brand-primary-hover",
3037
+ fileTriggerSizeClasses[size],
3038
+ adsTextColorClassName.primary
3017
3039
  ),
3018
- children: resolvedFileTriggerLabel
3040
+ children: [
3041
+ resolvedFileTriggerIcon ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "inline-flex h-4 w-4 items-center justify-center [&>svg]:!h-4 [&>svg]:!w-4", children: resolvedFileTriggerIcon }) : null,
3042
+ resolvedFileTriggerLabel
3043
+ ]
3019
3044
  }
3020
3045
  ),
3021
3046
  /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
@@ -3306,7 +3331,7 @@ var React35 = __toESM(require("react"), 1);
3306
3331
  // src/primitives/input-otp.tsx
3307
3332
  var React34 = __toESM(require("react"), 1);
3308
3333
  var import_input_otp = require("input-otp");
3309
- var import_lucide_react10 = require("lucide-react");
3334
+ var import_lucide_react11 = require("lucide-react");
3310
3335
  var import_jsx_runtime37 = require("react/jsx-runtime");
3311
3336
  var InputOTP = React34.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3312
3337
  import_input_otp.OTPInput,
@@ -3344,7 +3369,7 @@ var InputOTPSlot = React34.forwardRef(({ index, className, ...props }, ref) => {
3344
3369
  );
3345
3370
  });
3346
3371
  InputOTPSlot.displayName = "InputOTPSlot";
3347
- var InputOTPSeparator = React34.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react10.Dot, {}) }));
3372
+ var InputOTPSeparator = React34.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react11.Dot, {}) }));
3348
3373
  InputOTPSeparator.displayName = "InputOTPSeparator";
3349
3374
 
3350
3375
  // src/components/AdsInputOTP/index.tsx
@@ -3472,11 +3497,11 @@ var React39 = __toESM(require("react"), 1);
3472
3497
 
3473
3498
  // src/components/AdsPagination/index.tsx
3474
3499
  var React37 = __toESM(require("react"), 1);
3475
- var import_lucide_react12 = require("lucide-react");
3500
+ var import_lucide_react13 = require("lucide-react");
3476
3501
 
3477
3502
  // src/primitives/pagination.tsx
3478
3503
  var React36 = __toESM(require("react"), 1);
3479
- var import_lucide_react11 = require("lucide-react");
3504
+ var import_lucide_react12 = require("lucide-react");
3480
3505
  var import_jsx_runtime39 = require("react/jsx-runtime");
3481
3506
  var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3482
3507
  "nav",
@@ -3530,7 +3555,7 @@ var PaginationPrevious = ({
3530
3555
  className: cn("gap-1 pl-2.5", className),
3531
3556
  ...props,
3532
3557
  children: [
3533
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react11.ChevronLeft, { className: "h-4 w-4" }),
3558
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react12.ChevronLeft, { className: "h-4 w-4" }),
3534
3559
  /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { children: "Previous" })
3535
3560
  ]
3536
3561
  }
@@ -3548,7 +3573,7 @@ var PaginationNext = ({
3548
3573
  ...props,
3549
3574
  children: [
3550
3575
  /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { children: "Next" }),
3551
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react11.ChevronRight, { className: "h-4 w-4" })
3576
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react12.ChevronRight, { className: "h-4 w-4" })
3552
3577
  ]
3553
3578
  }
3554
3579
  );
@@ -3563,7 +3588,7 @@ var PaginationEllipsis = ({
3563
3588
  className: cn("flex h-9 w-9 items-center justify-center", className),
3564
3589
  ...props,
3565
3590
  children: [
3566
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react11.MoreHorizontal, { className: "h-4 w-4" }),
3591
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react12.MoreHorizontal, { className: "h-4 w-4" }),
3567
3592
  /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "sr-only", children: "More pages" })
3568
3593
  ]
3569
3594
  }
@@ -3618,7 +3643,7 @@ var AdsPaginationPrevious = React37.forwardRef(({ "aria-label": ariaLabel, child
3618
3643
  ref,
3619
3644
  ...props,
3620
3645
  children: [
3621
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react12.ChevronLeft, { "aria-hidden": true, className: "h-4 w-4" }),
3646
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react13.ChevronLeft, { "aria-hidden": true, className: "h-4 w-4" }),
3622
3647
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { children: label })
3623
3648
  ]
3624
3649
  }
@@ -3638,7 +3663,7 @@ var AdsPaginationNext = React37.forwardRef(
3638
3663
  ...props,
3639
3664
  children: [
3640
3665
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { children: label }),
3641
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react12.ChevronRight, { "aria-hidden": true, className: "h-4 w-4" })
3666
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react13.ChevronRight, { "aria-hidden": true, className: "h-4 w-4" })
3642
3667
  ]
3643
3668
  }
3644
3669
  );
@@ -3662,7 +3687,7 @@ function AdsPaginationEllipsis({
3662
3687
  ),
3663
3688
  ...props,
3664
3689
  children: [
3665
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react12.MoreHorizontal, { className: "h-4 w-4" }),
3690
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react13.MoreHorizontal, { className: "h-4 w-4" }),
3666
3691
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "sr-only", children: resolvedLabel })
3667
3692
  ]
3668
3693
  }
@@ -4194,7 +4219,7 @@ function AdsDataPagination({
4194
4219
 
4195
4220
  // src/components/AdsDataTable/index.tsx
4196
4221
  var React44 = __toESM(require("react"), 1);
4197
- var import_lucide_react15 = require("lucide-react");
4222
+ var import_lucide_react16 = require("lucide-react");
4198
4223
 
4199
4224
  // src/components/AdsEmpty/index.tsx
4200
4225
  var import_class_variance_authority9 = require("class-variance-authority");
@@ -4301,7 +4326,7 @@ function AdsEmptyFooter({ className, ...props }) {
4301
4326
 
4302
4327
  // src/components/AdsTable/index.tsx
4303
4328
  var React43 = __toESM(require("react"), 1);
4304
- var import_lucide_react14 = require("lucide-react");
4329
+ var import_lucide_react15 = require("lucide-react");
4305
4330
 
4306
4331
  // src/components/AdsRadioGroup/index.tsx
4307
4332
  var React41 = __toESM(require("react"), 1);
@@ -4309,7 +4334,7 @@ var React41 = __toESM(require("react"), 1);
4309
4334
  // src/primitives/radio-group.tsx
4310
4335
  var React40 = __toESM(require("react"), 1);
4311
4336
  var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
4312
- var import_lucide_react13 = require("lucide-react");
4337
+ var import_lucide_react14 = require("lucide-react");
4313
4338
  var import_jsx_runtime44 = require("react/jsx-runtime");
4314
4339
  var RadioGroup = React40.forwardRef(({ className, ...props }, ref) => {
4315
4340
  return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
@@ -4332,7 +4357,7 @@ var RadioGroupItem = React40.forwardRef(({ className, ...props }, ref) => {
4332
4357
  className
4333
4358
  ),
4334
4359
  ...props,
4335
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react13.Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
4360
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react14.Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
4336
4361
  }
4337
4362
  );
4338
4363
  });
@@ -4736,7 +4761,7 @@ var AdsTableSortHeader = React43.forwardRef(
4736
4761
  variant: "ghost",
4737
4762
  children: [
4738
4763
  /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "truncate", children: title }),
4739
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "inline-flex h-4 w-4 items-center justify-center text-icon-muted", children: sortOrder === "ascend" ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.ChevronDown, { className: "h-4 w-4 rotate-180" }) : sortOrder === "descend" ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.ChevronDown, { className: "h-4 w-4 opacity-60" }) })
4764
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "inline-flex h-4 w-4 items-center justify-center text-icon-muted", children: sortOrder === "ascend" ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4 rotate-180" }) : sortOrder === "descend" ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4 opacity-60" }) })
4740
4765
  ]
4741
4766
  }
4742
4767
  ) });
@@ -4800,7 +4825,7 @@ var AdsTableExpandCell = React43.forwardRef(
4800
4825
  size: "sm",
4801
4826
  type: "button",
4802
4827
  variant: "ghost",
4803
- children: expanded ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.ChevronRight, { className: "h-4 w-4" })
4828
+ children: expanded ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react15.ChevronRight, { className: "h-4 w-4" })
4804
4829
  }
4805
4830
  ) }) });
4806
4831
  }
@@ -4813,18 +4838,33 @@ var SKELETON_ROW_COUNT = 4;
4813
4838
  var FLEX_WIDTH_UNIT = 160;
4814
4839
  var sizeClassNames = {
4815
4840
  small: {
4841
+ bodyHeight: 32,
4816
4842
  cell: "py-1.5 text-xs leading-4",
4843
+ headHeight: 32,
4817
4844
  head: "h-8 py-1.5 text-xs leading-4"
4818
4845
  },
4819
4846
  middle: {
4847
+ bodyHeight: 40,
4820
4848
  cell: "py-2 text-sm leading-5",
4849
+ headHeight: 40,
4821
4850
  head: "h-10 py-2 text-sm leading-5"
4822
4851
  },
4823
4852
  large: {
4853
+ bodyHeight: 48,
4824
4854
  cell: "py-3 text-base leading-6",
4855
+ headHeight: 48,
4825
4856
  head: "h-12 py-3 text-base leading-6"
4826
4857
  }
4827
4858
  };
4859
+ function getSpinnerLoadingHeight(scrollY, density) {
4860
+ if (typeof scrollY === "number") {
4861
+ return Math.max(scrollY - density.headHeight, density.bodyHeight * SKELETON_ROW_COUNT);
4862
+ }
4863
+ if (typeof scrollY === "string") {
4864
+ return `max(calc(${scrollY} - ${density.headHeight}px), ${density.bodyHeight * SKELETON_ROW_COUNT}px)`;
4865
+ }
4866
+ return density.bodyHeight * SKELETON_ROW_COUNT;
4867
+ }
4828
4868
  function getColumnKey(column, index) {
4829
4869
  if (column.key !== void 0) {
4830
4870
  return String(column.key);
@@ -5035,6 +5075,8 @@ function AdsDataTable({
5035
5075
  dataSource = [],
5036
5076
  rowKey,
5037
5077
  loading = false,
5078
+ loadingVariant = "skeleton",
5079
+ expandedRowSurface = "inset",
5038
5080
  emptyText,
5039
5081
  emptyState,
5040
5082
  rowClassName,
@@ -5133,8 +5175,14 @@ function AdsDataTable({
5133
5175
  const hasSelectionColumn = Boolean(rowSelection);
5134
5176
  const hasExpandableColumn = Boolean(expandable?.expandedRowRender);
5135
5177
  const density = sizeClassNames[size];
5178
+ const columnCount = resolvedColumns.length + Number(hasSelectionColumn) + Number(hasExpandableColumn);
5136
5179
  const paginationMode = pagination === false ? "client" : pagination.mode ?? "client";
5137
5180
  const allowsRowSelectionByClick = Boolean(rowSelection) && !suppressRowClickSelection;
5181
+ const spinnerLoadingHeight = React44.useMemo(
5182
+ () => getSpinnerLoadingHeight(scroll?.y, density),
5183
+ [density, scroll?.y]
5184
+ );
5185
+ const expandedRowContentClassName = expandedRowSurface === "plain" ? "bg-transparent p-4" : expandedRowSurface === "subtle" ? "mx-6 my-4 rounded-[20px] border border-border bg-transparent p-4" : "border-t border-border bg-popover/40 p-4";
5138
5186
  const filterValues = React44.useMemo(
5139
5187
  () => resolvedColumns.reduce((accumulator, column, index) => {
5140
5188
  const columnKey = getColumnKey(column, index);
@@ -5393,7 +5441,7 @@ function AdsDataTable({
5393
5441
  variant: "ghost",
5394
5442
  children: [
5395
5443
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "truncate", children: headerTitle }),
5396
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "inline-flex h-4 w-4 items-center justify-center text-icon-muted", children: columnSortOrder === "ascend" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4 rotate-180" }) : columnSortOrder === "descend" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4 opacity-60" }) })
5444
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "inline-flex h-4 w-4 items-center justify-center text-icon-muted", children: columnSortOrder === "ascend" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react16.ChevronDown, { className: "h-4 w-4 rotate-180" }) : columnSortOrder === "descend" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react16.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react16.ChevronDown, { className: "h-4 w-4 opacity-60" }) })
5397
5445
  ]
5398
5446
  }
5399
5447
  ) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "truncate", children: headerTitle }),
@@ -5410,7 +5458,7 @@ function AdsDataTable({
5410
5458
  size: "sm",
5411
5459
  type: "button",
5412
5460
  variant: "ghost",
5413
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react15.Filter, { className: "h-3.5 w-3.5" })
5461
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react16.Filter, { className: "h-3.5 w-3.5" })
5414
5462
  }
5415
5463
  ) }),
5416
5464
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(AdsPopoverContent, { align: "end", className: "w-64", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
@@ -5490,7 +5538,26 @@ function AdsDataTable({
5490
5538
  );
5491
5539
  })
5492
5540
  ] }) }),
5493
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(AdsTableBody, { children: loading ? Array.from({ length: SKELETON_ROW_COUNT }, (_, skeletonIndex) => /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(AdsTableRow, { children: [
5541
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(AdsTableBody, { children: loading && loadingVariant === "spinner" ? [
5542
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(AdsTableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
5543
+ AdsTableCell,
5544
+ {
5545
+ className: "p-0",
5546
+ colSpan: columnCount,
5547
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
5548
+ "div",
5549
+ {
5550
+ "aria-label": messages.table.loadingRows,
5551
+ "aria-live": "polite",
5552
+ className: "flex items-center justify-center px-6 py-8 text-foreground",
5553
+ role: "status",
5554
+ style: { minHeight: spinnerLoadingHeight },
5555
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(AdsSpinner, { size: "lg", tone: "foreground" })
5556
+ }
5557
+ )
5558
+ }
5559
+ ) }, "spinner-row")
5560
+ ] : loading ? Array.from({ length: SKELETON_ROW_COUNT }, (_, skeletonIndex) => /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(AdsTableRow, { children: [
5494
5561
  hasSelectionColumn ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(AdsTableCell, { className: "w-12 p-2", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(AdsSkeleton, { className: "h-4 w-4 rounded-[4px]" }) }) : null,
5495
5562
  hasExpandableColumn ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(AdsTableCell, { className: "w-12 p-2", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(AdsSkeleton, { className: "h-4 w-4 rounded-[4px]" }) }) : null,
5496
5563
  resolvedColumns.map((column, index) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
@@ -5593,7 +5660,7 @@ function AdsDataTable({
5593
5660
  "div",
5594
5661
  {
5595
5662
  className: cn(
5596
- "border-t border-border bg-popover/40 p-4",
5663
+ expandedRowContentClassName,
5597
5664
  classNames?.expandedRowContent
5598
5665
  ),
5599
5666
  children: expandable?.expandedRowRender?.(record, index)
@@ -5606,7 +5673,7 @@ function AdsDataTable({
5606
5673
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(AdsTableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
5607
5674
  AdsTableCell,
5608
5675
  {
5609
- colSpan: resolvedColumns.length + Number(hasSelectionColumn) + Number(hasExpandableColumn),
5676
+ colSpan: columnCount,
5610
5677
  className: cn("p-0", classNames?.emptyRowCell),
5611
5678
  children: renderedEmptyState
5612
5679
  }
@@ -5967,14 +6034,21 @@ function AdsRadialProgressChart({
5967
6034
  children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
5968
6035
  import_recharts2.RadialBarChart,
5969
6036
  {
5970
- accessibilityLayer: true,
6037
+ accessibilityLayer: false,
5971
6038
  data: chartData,
5972
6039
  endAngle: -270,
5973
6040
  innerRadius: safeSize / 2 - safeStrokeWidth,
5974
6041
  outerRadius: safeSize / 2,
5975
6042
  startAngle: 90,
5976
6043
  children: [
5977
- showTooltip && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_recharts2.Tooltip, { contentStyle: tooltipContentStyle, cursor: false }),
6044
+ showTooltip && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
6045
+ import_recharts2.Tooltip,
6046
+ {
6047
+ contentStyle: tooltipContentStyle,
6048
+ cursor: false,
6049
+ wrapperStyle: { zIndex: 1 }
6050
+ }
6051
+ ),
5978
6052
  /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
5979
6053
  import_recharts2.PolarAngleAxis,
5980
6054
  {
@@ -6006,38 +6080,265 @@ function AdsRadialProgressChart({
6006
6080
  );
6007
6081
  }
6008
6082
 
6009
- // src/components/AdsSparklineChart/index.tsx
6083
+ // src/components/AdsLineChart/index.tsx
6084
+ var React48 = __toESM(require("react"), 1);
6010
6085
  var import_recharts3 = require("recharts");
6011
-
6012
- // src/lib/chartTooltip.ts
6013
- var ISO_TIMESTAMP_PATTERN = /^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?$/;
6014
- var DEFAULT_DATE_FORMAT = "YYYY-MM-DD HH:mm:ss";
6015
- function formatChartTooltipLabel(label, dateFormat = DEFAULT_DATE_FORMAT) {
6016
- if (typeof label !== "string") {
6017
- return String(label ?? "");
6018
- }
6019
- const match = label.match(ISO_TIMESTAMP_PATTERN);
6020
- if (!match) {
6021
- return label;
6022
- }
6023
- const [year, month, day] = match[1].split("-");
6024
- const [hour, minute, second] = match[2].split(":");
6025
- return dateFormat.replace(/YYYY|MM|DD|HH|mm|ss/g, (token) => {
6026
- const values = {
6027
- YYYY: year,
6028
- MM: month,
6029
- DD: day,
6030
- HH: hour,
6031
- mm: minute,
6032
- ss: second
6086
+ var import_jsx_runtime55 = require("react/jsx-runtime");
6087
+ var DEFAULT_HEIGHT = 278;
6088
+ var DEFAULT_GRID_COLOR = "var(--border)";
6089
+ var DEFAULT_SERIES_COLORS = ["var(--chart-1)", "var(--chart-2)"];
6090
+ function getSafeHeight(height) {
6091
+ return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT;
6092
+ }
6093
+ function getSafeOpacity(opacity) {
6094
+ return Number.isFinite(opacity) && opacity !== void 0 ? Math.min(Math.max(opacity, 0), 1) : 0;
6095
+ }
6096
+ function getSafeValue(value) {
6097
+ return typeof value === "number" && Number.isFinite(value) ? Math.max(value, 0) : 0;
6098
+ }
6099
+ function getSeriesColor(series, index) {
6100
+ return series.color ?? DEFAULT_SERIES_COLORS[index] ?? "var(--chart-3)";
6101
+ }
6102
+ function getChartConfig(series) {
6103
+ return series.reduce((config, item, index) => {
6104
+ config[item.dataKey] = {
6105
+ color: getSeriesColor(item, index),
6106
+ label: item.label
6033
6107
  };
6034
- return values[token];
6108
+ return config;
6109
+ }, {});
6110
+ }
6111
+ function LineChartTooltipContent({
6112
+ active,
6113
+ label,
6114
+ payload,
6115
+ series,
6116
+ tooltipContentClassName: tooltipContentClassName2,
6117
+ tooltipFooter,
6118
+ tooltipLabelFormatter,
6119
+ tooltipValueFormatter
6120
+ }) {
6121
+ if (!active || !payload.length) {
6122
+ return null;
6123
+ }
6124
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
6125
+ "div",
6126
+ {
6127
+ className: cn(
6128
+ "min-w-[164px] rounded-radius-md border border-border bg-popover px-4 py-3 text-popover-foreground shadow-lg",
6129
+ tooltipContentClassName2
6130
+ ),
6131
+ role: "tooltip",
6132
+ children: [
6133
+ tooltipLabelFormatter && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "mb-2 text-xs font-medium text-muted-foreground", children: tooltipLabelFormatter(label) }),
6134
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "space-y-1.5", children: series.map((item, index) => {
6135
+ const entry = payload.find((payloadItem) => payloadItem.dataKey === item.dataKey);
6136
+ const value = typeof entry?.value === "number" && Number.isFinite(entry.value) ? entry.value : 0;
6137
+ const color = getSeriesColor(item, index);
6138
+ const displayLabel = item.label ?? item.dataKey;
6139
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-1.5 text-sm", children: [
6140
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { "aria-hidden": "true", className: "size-2 rounded-full", style: { backgroundColor: color } }),
6141
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-muted-foreground", children: displayLabel }),
6142
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "font-semibold text-popover-foreground", children: tooltipValueFormatter ? tooltipValueFormatter(value, item) : value })
6143
+ ] }, item.dataKey);
6144
+ }) }),
6145
+ tooltipFooter && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "mt-2 text-xs font-bold leading-[1.4]", children: tooltipFooter })
6146
+ ]
6147
+ }
6148
+ );
6149
+ }
6150
+ function AdsLineChart({
6151
+ ariaLabel,
6152
+ chartProps,
6153
+ className,
6154
+ children,
6155
+ containerProps,
6156
+ curve = "linear",
6157
+ data,
6158
+ gridColor = DEFAULT_GRID_COLOR,
6159
+ gridProps,
6160
+ height,
6161
+ referenceLine,
6162
+ series,
6163
+ showGrid = true,
6164
+ showTooltip = true,
6165
+ tooltipContent,
6166
+ tooltipContentClassName: tooltipContentClassName2,
6167
+ tooltipFooter,
6168
+ tooltipLabelFormatter,
6169
+ tooltipProps,
6170
+ tooltipValueFormatter,
6171
+ xAxis,
6172
+ xAxisProps,
6173
+ xKey,
6174
+ yAxis,
6175
+ yAxisProps
6176
+ }) {
6177
+ const [activeDataKey, setActiveDataKey] = React48.useState(null);
6178
+ const hoverHighlightDataKey = series.find((item) => item.activeColor)?.dataKey ?? null;
6179
+ const chartData = data.map((datum) => {
6180
+ const safeDatum = { ...datum, [xKey]: datum[xKey] };
6181
+ series.forEach((item) => {
6182
+ safeDatum[item.dataKey] = getSafeValue(datum[item.dataKey]);
6183
+ });
6184
+ return safeDatum;
6035
6185
  });
6186
+ const safeHeight = getSafeHeight(height);
6187
+ const chartConfig = getChartConfig(series);
6188
+ const {
6189
+ cursor: tooltipCursor,
6190
+ wrapperStyle: tooltipWrapperStyle,
6191
+ ...restTooltipProps
6192
+ } = tooltipProps ?? {};
6193
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6194
+ "div",
6195
+ {
6196
+ "aria-label": ariaLabel ?? "Line chart",
6197
+ className: cn("w-full", className),
6198
+ "data-testid": "ads-line-chart",
6199
+ role: "img",
6200
+ style: { height: safeHeight },
6201
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6202
+ ChartContainer,
6203
+ {
6204
+ "aria-hidden": "true",
6205
+ className: "h-full",
6206
+ config: chartConfig,
6207
+ height: "100%",
6208
+ ...containerProps,
6209
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
6210
+ import_recharts3.ComposedChart,
6211
+ {
6212
+ accessibilityLayer: false,
6213
+ data: chartData,
6214
+ margin: chartProps?.margin ?? { bottom: 0, left: 0, right: 0, top: 0 },
6215
+ ...chartProps,
6216
+ onMouseLeave: (...args) => {
6217
+ setActiveDataKey(null);
6218
+ chartProps?.onMouseLeave?.(...args);
6219
+ },
6220
+ onMouseMove: (...args) => {
6221
+ setActiveDataKey(hoverHighlightDataKey);
6222
+ chartProps?.onMouseMove?.(...args);
6223
+ },
6224
+ children: [
6225
+ showGrid && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6226
+ import_recharts3.CartesianGrid,
6227
+ {
6228
+ stroke: gridProps?.stroke ?? gridColor,
6229
+ strokeOpacity: gridProps?.strokeOpacity ?? 0.5,
6230
+ vertical: gridProps?.vertical ?? true,
6231
+ ...gridProps
6232
+ }
6233
+ ),
6234
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6235
+ import_recharts3.XAxis,
6236
+ {
6237
+ axisLine: xAxisProps?.axisLine ?? xAxis?.axisLine ?? false,
6238
+ dataKey: xKey,
6239
+ hide: xAxisProps?.hide ?? xAxis?.hide ?? false,
6240
+ interval: xAxisProps?.interval ?? xAxis?.interval,
6241
+ tick: xAxisProps?.tick ?? xAxis?.tick ?? true,
6242
+ tickFormatter: xAxisProps?.tickFormatter ?? xAxis?.tickFormatter,
6243
+ tickLine: xAxisProps?.tickLine ?? xAxis?.tickLine ?? false,
6244
+ tickMargin: xAxisProps?.tickMargin ?? xAxis?.tickMargin ?? 12,
6245
+ type: "category",
6246
+ ...xAxisProps
6247
+ }
6248
+ ),
6249
+ (yAxis || yAxisProps) && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6250
+ import_recharts3.YAxis,
6251
+ {
6252
+ axisLine: yAxisProps?.axisLine ?? yAxis?.axisLine ?? false,
6253
+ domain: yAxisProps?.domain ?? yAxis?.domain,
6254
+ tick: yAxisProps?.tick ?? yAxis?.tick ?? true,
6255
+ tickCount: yAxisProps?.tickCount ?? yAxis?.tickCount,
6256
+ tickFormatter: yAxisProps?.tickFormatter ?? yAxis?.tickFormatter,
6257
+ tickLine: yAxisProps?.tickLine ?? yAxis?.tickLine ?? false,
6258
+ ticks: yAxisProps?.ticks ?? yAxis?.ticks,
6259
+ width: yAxisProps?.width ?? yAxis?.width,
6260
+ ...yAxisProps
6261
+ }
6262
+ ),
6263
+ referenceLine && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6264
+ import_recharts3.ReferenceLine,
6265
+ {
6266
+ stroke: referenceLine.color ?? "var(--chart-1)",
6267
+ strokeDasharray: referenceLine.strokeDasharray ?? "2 3",
6268
+ y: referenceLine.value
6269
+ }
6270
+ ),
6271
+ showTooltip && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6272
+ import_recharts3.Tooltip,
6273
+ {
6274
+ content: tooltipContent ?? ((props) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6275
+ LineChartTooltipContent,
6276
+ {
6277
+ ...props,
6278
+ series,
6279
+ tooltipContentClassName: tooltipContentClassName2,
6280
+ tooltipFooter,
6281
+ tooltipLabelFormatter,
6282
+ tooltipValueFormatter
6283
+ }
6284
+ )),
6285
+ cursor: tooltipCursor ?? { stroke: gridColor, strokeDasharray: "2 3" },
6286
+ isAnimationActive: false,
6287
+ wrapperStyle: { zIndex: 20, ...tooltipWrapperStyle },
6288
+ ...restTooltipProps
6289
+ }
6290
+ ),
6291
+ series.map((item, index) => {
6292
+ const color = getSeriesColor(item, index);
6293
+ const opacity = getSafeOpacity(item.areaOpacity);
6294
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(React48.Fragment, { children: [
6295
+ opacity > 0 && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6296
+ import_recharts3.Area,
6297
+ {
6298
+ ...item.areaProps,
6299
+ dataKey: item.dataKey,
6300
+ fill: item.areaProps?.fill ?? color,
6301
+ fillOpacity: item.areaProps?.fillOpacity ?? opacity,
6302
+ animationDuration: item.areaProps?.animationDuration ?? 360,
6303
+ animationEasing: item.areaProps?.animationEasing ?? "ease-out",
6304
+ isAnimationActive: item.areaProps?.isAnimationActive ?? true,
6305
+ stroke: item.areaProps?.stroke ?? "none",
6306
+ type: item.areaProps?.type ?? curve
6307
+ }
6308
+ ),
6309
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6310
+ import_recharts3.Line,
6311
+ {
6312
+ ...item.lineProps,
6313
+ activeDot: item.lineProps?.activeDot ?? { r: 5 },
6314
+ animationDuration: item.lineProps?.animationDuration ?? 360,
6315
+ animationEasing: item.lineProps?.animationEasing ?? "ease-out",
6316
+ dataKey: item.dataKey,
6317
+ dot: item.lineProps?.dot ?? false,
6318
+ isAnimationActive: item.lineProps?.isAnimationActive ?? true,
6319
+ onMouseEnter: () => setActiveDataKey(item.dataKey),
6320
+ onMouseLeave: () => setActiveDataKey(null),
6321
+ stroke: activeDataKey === item.dataKey ? item.activeColor ?? "#2196f3" : item.lineProps?.stroke ?? color,
6322
+ strokeWidth: item.lineProps?.strokeWidth ?? item.strokeWidth ?? 2,
6323
+ type: item.lineProps?.type ?? curve
6324
+ }
6325
+ )
6326
+ ] }, item.dataKey);
6327
+ }),
6328
+ children
6329
+ ]
6330
+ }
6331
+ )
6332
+ }
6333
+ )
6334
+ }
6335
+ );
6036
6336
  }
6037
6337
 
6038
6338
  // src/components/AdsSparklineChart/index.tsx
6039
- var import_jsx_runtime55 = require("react/jsx-runtime");
6040
- var DEFAULT_HEIGHT = 40;
6339
+ var import_recharts4 = require("recharts");
6340
+ var import_jsx_runtime56 = require("react/jsx-runtime");
6341
+ var DEFAULT_HEIGHT2 = 40;
6041
6342
  var tooltipContentStyle2 = {
6042
6343
  backgroundColor: "var(--popover)",
6043
6344
  border: "1px solid var(--border)",
@@ -6045,19 +6346,12 @@ var tooltipContentStyle2 = {
6045
6346
  color: "var(--popover-foreground)",
6046
6347
  padding: "8px 12px"
6047
6348
  };
6048
- function getSafeHeight(height) {
6049
- return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT;
6349
+ function getSafeHeight2(height) {
6350
+ return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT2;
6050
6351
  }
6051
- function getSafeValue(value) {
6352
+ function getSafeValue2(value) {
6052
6353
  return typeof value === "number" && Number.isFinite(value) ? Math.max(value, 0) : 0;
6053
6354
  }
6054
- function getChartMargin(height, plotHeight) {
6055
- if (!Number.isFinite(plotHeight) || !plotHeight || plotHeight >= height) {
6056
- return { bottom: 1, left: 1, right: 1, top: 1 };
6057
- }
6058
- const verticalMargin = (height - Math.max(plotHeight, 1)) / 2;
6059
- return { bottom: verticalMargin, left: 1, right: 1, top: verticalMargin };
6060
- }
6061
6355
  function AdsSparklineChart({
6062
6356
  ariaLabel,
6063
6357
  className,
@@ -6065,19 +6359,16 @@ function AdsSparklineChart({
6065
6359
  data,
6066
6360
  dataKey,
6067
6361
  height,
6068
- plotHeight,
6069
6362
  showTooltip = true,
6070
- tooltipDateFormat,
6071
6363
  xKey
6072
6364
  }) {
6073
6365
  const chartData = data.map((datum) => ({
6074
6366
  ...datum,
6075
6367
  [xKey]: datum[xKey],
6076
- [dataKey]: getSafeValue(datum[dataKey])
6368
+ [dataKey]: getSafeValue2(datum[dataKey])
6077
6369
  }));
6078
- const safeHeight = getSafeHeight(height);
6079
- const chartMargin = getChartMargin(safeHeight, plotHeight);
6080
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6370
+ const safeHeight = getSafeHeight2(height);
6371
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
6081
6372
  "div",
6082
6373
  {
6083
6374
  "aria-label": ariaLabel ?? "Trend chart",
@@ -6085,36 +6376,37 @@ function AdsSparklineChart({
6085
6376
  "data-testid": "ads-sparkline-chart",
6086
6377
  role: "img",
6087
6378
  style: { height: safeHeight },
6088
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6379
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
6089
6380
  ChartContainer,
6090
6381
  {
6091
6382
  "aria-hidden": "true",
6092
6383
  className: "h-full",
6093
6384
  config: { value: { color } },
6094
6385
  height: "100%",
6095
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_recharts3.LineChart, { data: chartData, margin: chartMargin, children: [
6096
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_recharts3.XAxis, { dataKey: xKey, hide: true, type: "category" }),
6097
- showTooltip && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6098
- import_recharts3.Tooltip,
6099
- {
6100
- contentStyle: tooltipContentStyle2,
6101
- cursor: false,
6102
- labelFormatter: (label) => formatChartTooltipLabel(label, tooltipDateFormat)
6103
- }
6104
- ),
6105
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6106
- import_recharts3.Line,
6107
- {
6108
- activeDot: false,
6109
- dataKey,
6110
- dot: false,
6111
- isAnimationActive: false,
6112
- stroke: "var(--color-value)",
6113
- strokeWidth: 2,
6114
- type: "monotone"
6115
- }
6116
- )
6117
- ] })
6386
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
6387
+ import_recharts4.LineChart,
6388
+ {
6389
+ accessibilityLayer: false,
6390
+ data: chartData,
6391
+ margin: { bottom: 1, left: 1, right: 1, top: 1 },
6392
+ children: [
6393
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_recharts4.XAxis, { dataKey: xKey, hide: true, type: "category" }),
6394
+ showTooltip && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_recharts4.Tooltip, { contentStyle: tooltipContentStyle2, cursor: false }),
6395
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
6396
+ import_recharts4.Line,
6397
+ {
6398
+ activeDot: false,
6399
+ dataKey,
6400
+ dot: false,
6401
+ isAnimationActive: false,
6402
+ stroke: "var(--color-value)",
6403
+ strokeWidth: 2,
6404
+ type: "monotone"
6405
+ }
6406
+ )
6407
+ ]
6408
+ }
6409
+ )
6118
6410
  }
6119
6411
  )
6120
6412
  }
@@ -6122,20 +6414,20 @@ function AdsSparklineChart({
6122
6414
  }
6123
6415
 
6124
6416
  // src/components/AdsStackedBarChart/index.tsx
6125
- var React50 = __toESM(require("react"), 1);
6417
+ var React51 = __toESM(require("react"), 1);
6126
6418
 
6127
6419
  // src/components/AdsTooltip/index.tsx
6128
- var React49 = __toESM(require("react"), 1);
6420
+ var React50 = __toESM(require("react"), 1);
6129
6421
 
6130
6422
  // src/primitives/tooltip.tsx
6131
- var React48 = __toESM(require("react"), 1);
6423
+ var React49 = __toESM(require("react"), 1);
6132
6424
  var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
6133
- var import_jsx_runtime56 = require("react/jsx-runtime");
6425
+ var import_jsx_runtime57 = require("react/jsx-runtime");
6134
6426
  var TooltipProvider = TooltipPrimitive.Provider;
6135
- var Tooltip3 = TooltipPrimitive.Root;
6427
+ var Tooltip4 = TooltipPrimitive.Root;
6136
6428
  var TooltipTrigger = TooltipPrimitive.Trigger;
6137
6429
  var TooltipArrow = TooltipPrimitive.Arrow;
6138
- var TooltipContent = React48.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
6430
+ var TooltipContent = React49.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
6139
6431
  TooltipPrimitive.Content,
6140
6432
  {
6141
6433
  className: cn(
@@ -6150,12 +6442,12 @@ var TooltipContent = React48.forwardRef(({ className, sideOffset = 4, ...props }
6150
6442
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
6151
6443
 
6152
6444
  // src/components/AdsTooltip/index.tsx
6153
- var import_jsx_runtime57 = require("react/jsx-runtime");
6445
+ var import_jsx_runtime58 = require("react/jsx-runtime");
6154
6446
  var tooltipContentClassName = "z-50 rounded-[6px] border-0 bg-[#844fff] px-3 py-2 text-sm font-normal leading-5 text-[#fdfdfd] shadow-[0px_8px_24px_rgba(0,0,0,0.22)]";
6155
6447
  var AdsTooltipProvider = TooltipProvider;
6156
- var AdsTooltip = Tooltip3;
6448
+ var AdsTooltip = Tooltip4;
6157
6449
  var AdsTooltipTrigger = TooltipTrigger;
6158
- var AdsTooltipContent = React49.forwardRef(({ align = "center", className, sideOffset = 10, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
6450
+ var AdsTooltipContent = React50.forwardRef(({ align = "center", className, sideOffset = 10, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
6159
6451
  TooltipContent,
6160
6452
  {
6161
6453
  align,
@@ -6166,7 +6458,7 @@ var AdsTooltipContent = React49.forwardRef(({ align = "center", className, sideO
6166
6458
  }
6167
6459
  ));
6168
6460
  AdsTooltipContent.displayName = "AdsTooltipContent";
6169
- var AdsTooltipArrow = React49.forwardRef(({ className, height = 5, width = 10, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
6461
+ var AdsTooltipArrow = React50.forwardRef(({ className, height = 5, width = 10, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
6170
6462
  TooltipArrow,
6171
6463
  {
6172
6464
  className: cn("fill-[#844fff]", className),
@@ -6179,11 +6471,11 @@ var AdsTooltipArrow = React49.forwardRef(({ className, height = 5, width = 10, .
6179
6471
  AdsTooltipArrow.displayName = "AdsTooltipArrow";
6180
6472
 
6181
6473
  // src/components/AdsStackedBarChart/index.tsx
6182
- var import_jsx_runtime58 = require("react/jsx-runtime");
6183
- var DEFAULT_HEIGHT2 = 20;
6474
+ var import_jsx_runtime59 = require("react/jsx-runtime");
6475
+ var DEFAULT_HEIGHT3 = 20;
6184
6476
  var DEFAULT_SEGMENT_COLOR = "var(--chart-1)";
6185
- function getSafeHeight2(height) {
6186
- return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT2;
6477
+ function getSafeHeight3(height) {
6478
+ return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT3;
6187
6479
  }
6188
6480
  function formatPercentage(percentage) {
6189
6481
  return `${Number(percentage.toFixed(2))}%`;
@@ -6195,7 +6487,7 @@ function AdsStackedBarChart({
6195
6487
  showTooltip = true,
6196
6488
  segments
6197
6489
  }) {
6198
- const descriptionId = React50.useId();
6490
+ const descriptionId = React51.useId();
6199
6491
  const validSegments = segments.reduce((items, segment, index) => {
6200
6492
  const value = Number.isFinite(segment.value) ? Math.max(segment.value, 0) : 0;
6201
6493
  if (value > 0) {
@@ -6215,7 +6507,7 @@ function AdsStackedBarChart({
6215
6507
  const hasData = normalizedTotal > 0 && Number.isFinite(normalizedTotal);
6216
6508
  const getPercentage = (value) => value / normalizationBase / normalizedTotal * 100;
6217
6509
  const summary = hasData ? validSegments.map((segment) => `${segment.label}: ${formatPercentage(getPercentage(segment.value))}`).join(", ") : "No data";
6218
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
6510
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
6219
6511
  "div",
6220
6512
  {
6221
6513
  "aria-label": ariaLabel ?? summary,
@@ -6223,13 +6515,13 @@ function AdsStackedBarChart({
6223
6515
  className: cn("overflow-hidden rounded-full bg-muted", className),
6224
6516
  "data-testid": "ads-stacked-bar-chart",
6225
6517
  role: "img",
6226
- style: { height: getSafeHeight2(height) },
6518
+ style: { height: getSafeHeight3(height) },
6227
6519
  children: [
6228
- ariaLabel && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "sr-only", id: descriptionId, children: summary }),
6229
- hasData && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AdsTooltipProvider, { delayDuration: 100, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "flex size-full", children: validSegments.map((segment, index) => {
6520
+ ariaLabel && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "sr-only", id: descriptionId, children: summary }),
6521
+ hasData && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(AdsTooltipProvider, { delayDuration: 100, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "flex size-full", children: validSegments.map((segment, index) => {
6230
6522
  const percentage = getPercentage(segment.value);
6231
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(AdsTooltip, { children: [
6232
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AdsTooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
6523
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(AdsTooltip, { children: [
6524
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(AdsTooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6233
6525
  "div",
6234
6526
  {
6235
6527
  "aria-label": `${segment.label}: ${segment.value}`,
@@ -6239,7 +6531,7 @@ function AdsStackedBarChart({
6239
6531
  tabIndex: showTooltip ? 0 : -1
6240
6532
  }
6241
6533
  ) }),
6242
- showTooltip && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(AdsTooltipContent, { children: [
6534
+ showTooltip && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(AdsTooltipContent, { children: [
6243
6535
  segment.label,
6244
6536
  ": ",
6245
6537
  segment.value
@@ -6252,9 +6544,9 @@ function AdsStackedBarChart({
6252
6544
  }
6253
6545
 
6254
6546
  // src/components/AdsBarChart/index.tsx
6255
- var import_recharts4 = require("recharts");
6256
- var import_jsx_runtime59 = require("react/jsx-runtime");
6257
- var DEFAULT_HEIGHT3 = 160;
6547
+ var import_recharts5 = require("recharts");
6548
+ var import_jsx_runtime60 = require("react/jsx-runtime");
6549
+ var DEFAULT_HEIGHT4 = 160;
6258
6550
  var DEFAULT_HIGHLIGHT_COLOR = "var(--chart-2)";
6259
6551
  var DEFAULT_RADIUS = 4;
6260
6552
  var tooltipContentStyle3 = {
@@ -6264,13 +6556,13 @@ var tooltipContentStyle3 = {
6264
6556
  color: "var(--popover-foreground)",
6265
6557
  padding: "8px 12px"
6266
6558
  };
6267
- function getSafeHeight3(height) {
6268
- return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT3;
6559
+ function getSafeHeight4(height) {
6560
+ return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT4;
6269
6561
  }
6270
6562
  function getSafeRadius(radius) {
6271
6563
  return Number.isFinite(radius) && radius !== void 0 && radius >= 0 ? radius : DEFAULT_RADIUS;
6272
6564
  }
6273
- function getSafeValue2(value) {
6565
+ function getSafeValue3(value) {
6274
6566
  return typeof value === "number" && Number.isFinite(value) ? Math.max(value, 0) : 0;
6275
6567
  }
6276
6568
  function AdsBarChart({
@@ -6286,7 +6578,6 @@ function AdsBarChart({
6286
6578
  highlightIndex,
6287
6579
  hoverColor,
6288
6580
  showTooltip = true,
6289
- tooltipDateFormat,
6290
6581
  xAxis,
6291
6582
  xKey,
6292
6583
  yAxis
@@ -6294,12 +6585,12 @@ function AdsBarChart({
6294
6585
  const chartData = data.map((datum) => ({
6295
6586
  ...datum,
6296
6587
  [xKey]: datum[xKey],
6297
- [dataKey]: getSafeValue2(datum[dataKey])
6588
+ [dataKey]: getSafeValue3(datum[dataKey])
6298
6589
  }));
6299
- const safeHeight = getSafeHeight3(height);
6590
+ const safeHeight = getSafeHeight4(height);
6300
6591
  const safeRadius = getSafeRadius(barRadius);
6301
6592
  const safeHighlightIndex = Number.isInteger(highlightIndex) ? highlightIndex : -1;
6302
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6593
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6303
6594
  "div",
6304
6595
  {
6305
6596
  "aria-label": ariaLabel ?? "Bar chart",
@@ -6307,66 +6598,67 @@ function AdsBarChart({
6307
6598
  "data-testid": "ads-bar-chart",
6308
6599
  role: "img",
6309
6600
  style: { height: safeHeight },
6310
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6601
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6311
6602
  ChartContainer,
6312
6603
  {
6313
6604
  "aria-hidden": "true",
6314
6605
  className: "h-full",
6315
6606
  config: { value: { color } },
6316
6607
  height: "100%",
6317
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_recharts4.BarChart, { data: chartData, margin: { bottom: 0, left: 0, right: 0, top: 0 }, children: [
6318
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6319
- import_recharts4.XAxis,
6320
- {
6321
- axisLine: xAxis?.axisLine ?? false,
6322
- dataKey: xKey,
6323
- hide: xAxis?.hide ?? true,
6324
- tick: xAxis?.tick === false ? false : { fill: xAxis?.tickColor, fontSize: xAxis?.tickFontSize },
6325
- tickLine: xAxis?.tickLine ?? false,
6326
- tickMargin: xAxis?.tickMargin,
6327
- type: "category"
6328
- }
6329
- ),
6330
- yAxis && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6331
- import_recharts4.YAxis,
6332
- {
6333
- axisLine: yAxis.axisLine ?? false,
6334
- domain: yAxis.domain,
6335
- tick: yAxis.tick === false ? false : { fill: yAxis.tickColor, fontSize: yAxis.tickFontSize },
6336
- tickCount: yAxis.tickCount,
6337
- tickLine: yAxis.tickLine ?? false,
6338
- tickMargin: yAxis.tickMargin,
6339
- ticks: yAxis.ticks,
6340
- width: yAxis.width
6341
- }
6342
- ),
6343
- showTooltip && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6344
- import_recharts4.Tooltip,
6345
- {
6346
- contentStyle: tooltipContentStyle3,
6347
- cursor: { fill: "transparent" },
6348
- labelFormatter: (label) => formatChartTooltipLabel(label, tooltipDateFormat)
6349
- }
6350
- ),
6351
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6352
- import_recharts4.Bar,
6353
- {
6354
- activeBar: hoverColor ? { fill: hoverColor } : void 0,
6355
- barSize,
6356
- dataKey,
6357
- fill: "var(--color-value)",
6358
- isAnimationActive: false,
6359
- radius: safeRadius,
6360
- children: chartData.map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6361
- import_recharts4.Cell,
6608
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
6609
+ import_recharts5.BarChart,
6610
+ {
6611
+ accessibilityLayer: false,
6612
+ data: chartData,
6613
+ margin: { bottom: 0, left: 0, right: 0, top: 0 },
6614
+ children: [
6615
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6616
+ import_recharts5.XAxis,
6362
6617
  {
6363
- fill: index === safeHighlightIndex ? highlightColor ?? DEFAULT_HIGHLIGHT_COLOR : "var(--color-value)"
6364
- },
6365
- index
6366
- ))
6367
- }
6368
- )
6369
- ] })
6618
+ axisLine: xAxis?.axisLine ?? false,
6619
+ dataKey: xKey,
6620
+ hide: xAxis?.hide ?? true,
6621
+ tick: xAxis?.tick ?? true,
6622
+ tickLine: xAxis?.tickLine ?? false,
6623
+ tickMargin: xAxis?.tickMargin,
6624
+ type: "category"
6625
+ }
6626
+ ),
6627
+ yAxis && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6628
+ import_recharts5.YAxis,
6629
+ {
6630
+ axisLine: yAxis.axisLine ?? false,
6631
+ domain: yAxis.domain,
6632
+ tick: yAxis.tick ?? true,
6633
+ tickCount: yAxis.tickCount,
6634
+ tickLine: yAxis.tickLine ?? false,
6635
+ tickMargin: yAxis.tickMargin,
6636
+ ticks: yAxis.ticks,
6637
+ width: yAxis.width
6638
+ }
6639
+ ),
6640
+ showTooltip && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_recharts5.Tooltip, { contentStyle: tooltipContentStyle3, cursor: { fill: "transparent" } }),
6641
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6642
+ import_recharts5.Bar,
6643
+ {
6644
+ activeBar: hoverColor ? { fill: hoverColor } : void 0,
6645
+ barSize,
6646
+ dataKey,
6647
+ fill: "var(--color-value)",
6648
+ isAnimationActive: false,
6649
+ radius: safeRadius,
6650
+ children: chartData.map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6651
+ import_recharts5.Cell,
6652
+ {
6653
+ fill: index === safeHighlightIndex ? highlightColor ?? DEFAULT_HIGHLIGHT_COLOR : "var(--color-value)"
6654
+ },
6655
+ index
6656
+ ))
6657
+ }
6658
+ )
6659
+ ]
6660
+ }
6661
+ )
6370
6662
  }
6371
6663
  )
6372
6664
  }
@@ -6374,13 +6666,13 @@ function AdsBarChart({
6374
6666
  }
6375
6667
 
6376
6668
  // src/components/AdsSlider/index.tsx
6377
- var React52 = __toESM(require("react"), 1);
6669
+ var React53 = __toESM(require("react"), 1);
6378
6670
 
6379
6671
  // src/primitives/slider.tsx
6380
- var React51 = __toESM(require("react"), 1);
6672
+ var React52 = __toESM(require("react"), 1);
6381
6673
  var SliderPrimitive = __toESM(require("@radix-ui/react-slider"), 1);
6382
- var import_jsx_runtime60 = require("react/jsx-runtime");
6383
- var Slider = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
6674
+ var import_jsx_runtime61 = require("react/jsx-runtime");
6675
+ var Slider = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
6384
6676
  SliderPrimitive.Root,
6385
6677
  {
6386
6678
  ref,
@@ -6390,10 +6682,10 @@ var Slider = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
6390
6682
  ),
6391
6683
  ...props,
6392
6684
  children: [
6393
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
6685
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
6394
6686
  Array.from({
6395
6687
  length: Array.isArray(props.value) ? props.value.length : Array.isArray(props.defaultValue) ? props.defaultValue.length : 1
6396
- }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6688
+ }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6397
6689
  SliderPrimitive.Thumb,
6398
6690
  {
6399
6691
  className: "block h-5 w-5 rounded-full border border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"
@@ -6406,11 +6698,11 @@ var Slider = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
6406
6698
  Slider.displayName = SliderPrimitive.Root.displayName;
6407
6699
 
6408
6700
  // src/components/AdsSlider/index.tsx
6409
- var import_jsx_runtime61 = require("react/jsx-runtime");
6701
+ var import_jsx_runtime62 = require("react/jsx-runtime");
6410
6702
  var sliderBaseClassName = "py-1";
6411
- var Slider2 = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Slider, { className: cn(sliderBaseClassName, className), ref, ...props }));
6703
+ var Slider2 = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Slider, { className: cn(sliderBaseClassName, className), ref, ...props }));
6412
6704
  Slider2.displayName = "Slider";
6413
- var AdsSlider = React52.forwardRef(
6705
+ var AdsSlider = React53.forwardRef(
6414
6706
  ({
6415
6707
  className,
6416
6708
  descriptionPlacement = "above",
@@ -6425,12 +6717,12 @@ var AdsSlider = React52.forwardRef(
6425
6717
  helperText,
6426
6718
  id
6427
6719
  });
6428
- const helperNode = helperText ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(AdsFieldDescription, { id: description.helperId, children: helperText }) : null;
6429
- const errorNode = errorText ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(AdsFieldError, { id: description.errorId, children: errorText }) : null;
6430
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(AdsFieldItem, { children: [
6431
- label ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(AdsFieldLabel, { children: label }) : null,
6720
+ const helperNode = helperText ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(AdsFieldDescription, { id: description.helperId, children: helperText }) : null;
6721
+ const errorNode = errorText ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(AdsFieldError, { id: description.errorId, children: errorText }) : null;
6722
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(AdsFieldItem, { children: [
6723
+ label ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(AdsFieldLabel, { children: label }) : null,
6432
6724
  descriptionPlacement === "above" ? helperNode : null,
6433
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6725
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
6434
6726
  Slider2,
6435
6727
  {
6436
6728
  "aria-describedby": description.describedBy,
@@ -6447,13 +6739,13 @@ var AdsSlider = React52.forwardRef(
6447
6739
  AdsSlider.displayName = "AdsSlider";
6448
6740
 
6449
6741
  // src/components/AdsSwitch/index.tsx
6450
- var React54 = __toESM(require("react"), 1);
6742
+ var React55 = __toESM(require("react"), 1);
6451
6743
 
6452
6744
  // src/primitives/switch.tsx
6453
- var React53 = __toESM(require("react"), 1);
6745
+ var React54 = __toESM(require("react"), 1);
6454
6746
  var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
6455
- var import_jsx_runtime62 = require("react/jsx-runtime");
6456
- var Switch = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
6747
+ var import_jsx_runtime63 = require("react/jsx-runtime");
6748
+ var Switch = React54.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
6457
6749
  SwitchPrimitives.Root,
6458
6750
  {
6459
6751
  className: cn(
@@ -6462,7 +6754,7 @@ var Switch = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
6462
6754
  ),
6463
6755
  ...props,
6464
6756
  ref,
6465
- children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
6757
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
6466
6758
  SwitchPrimitives.Thumb,
6467
6759
  {
6468
6760
  className: cn(
@@ -6475,15 +6767,15 @@ var Switch = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
6475
6767
  Switch.displayName = SwitchPrimitives.Root.displayName;
6476
6768
 
6477
6769
  // src/components/AdsSwitch/index.tsx
6478
- var import_jsx_runtime63 = require("react/jsx-runtime");
6770
+ var import_jsx_runtime64 = require("react/jsx-runtime");
6479
6771
  var switchBaseClassName = "h-6 w-11 border border-transparent bg-muted shadow-[0px_1px_2px_rgba(0,0,0,0.1)] focus-visible:ring-[3px] focus-visible:ring-[rgba(161,161,161,0.5)] focus-visible:ring-offset-0 data-[state=checked]:bg-primary data-[state=unchecked]:bg-muted";
6480
- var Switch2 = React54.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Switch, { className: cn(switchBaseClassName, className), ref, ...props }));
6772
+ var Switch2 = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Switch, { className: cn(switchBaseClassName, className), ref, ...props }));
6481
6773
  Switch2.displayName = "Switch";
6482
- var AdsSwitch = React54.forwardRef(({ className, description, id, label, switchClassName, wrapperClassName, ...props }, ref) => {
6483
- const generatedId = React54.useId();
6774
+ var AdsSwitch = React55.forwardRef(({ className, description, id, label, switchClassName, wrapperClassName, ...props }, ref) => {
6775
+ const generatedId = React55.useId();
6484
6776
  const inputId = id ?? generatedId;
6485
6777
  if (!label) {
6486
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
6778
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6487
6779
  Switch2,
6488
6780
  {
6489
6781
  className: cn(className, switchClassName),
@@ -6493,12 +6785,12 @@ var AdsSwitch = React54.forwardRef(({ className, description, id, label, switchC
6493
6785
  }
6494
6786
  );
6495
6787
  }
6496
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("label", { className: cn("block w-full cursor-pointer", wrapperClassName), htmlFor: inputId, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex w-full items-start gap-3", children: [
6497
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1.5 pt-0.5", children: [
6498
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "text-sm font-medium leading-5 text-foreground", children: label }),
6499
- description ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(AdsFieldDescription, { className: "text-sm leading-5", children: description }) : null
6788
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("label", { className: cn("block w-full cursor-pointer", wrapperClassName), htmlFor: inputId, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex w-full items-start gap-3", children: [
6789
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1.5 pt-0.5", children: [
6790
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "text-sm font-medium leading-5 text-foreground", children: label }),
6791
+ description ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AdsFieldDescription, { className: "text-sm leading-5", children: description }) : null
6500
6792
  ] }),
6501
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
6793
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6502
6794
  Switch2,
6503
6795
  {
6504
6796
  className: cn(className, switchClassName),
@@ -6512,14 +6804,14 @@ var AdsSwitch = React54.forwardRef(({ className, description, id, label, switchC
6512
6804
  AdsSwitch.displayName = "AdsSwitch";
6513
6805
 
6514
6806
  // src/components/AdsTabs/index.tsx
6515
- var React56 = __toESM(require("react"), 1);
6807
+ var React57 = __toESM(require("react"), 1);
6516
6808
 
6517
6809
  // src/primitives/tabs.tsx
6518
- var React55 = __toESM(require("react"), 1);
6810
+ var React56 = __toESM(require("react"), 1);
6519
6811
  var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"), 1);
6520
- var import_jsx_runtime64 = require("react/jsx-runtime");
6812
+ var import_jsx_runtime65 = require("react/jsx-runtime");
6521
6813
  var Tabs = TabsPrimitive.Root;
6522
- var TabsList = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6814
+ var TabsList = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6523
6815
  TabsPrimitive.List,
6524
6816
  {
6525
6817
  className: cn("inline-flex items-center", className),
@@ -6528,7 +6820,7 @@ var TabsList = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__
6528
6820
  }
6529
6821
  ));
6530
6822
  TabsList.displayName = TabsPrimitive.List.displayName;
6531
- var TabsTrigger = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6823
+ var TabsTrigger = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6532
6824
  TabsPrimitive.Trigger,
6533
6825
  {
6534
6826
  className: cn(
@@ -6540,7 +6832,7 @@ var TabsTrigger = React55.forwardRef(({ className, ...props }, ref) => /* @__PUR
6540
6832
  }
6541
6833
  ));
6542
6834
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
6543
- var TabsContent = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6835
+ var TabsContent = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6544
6836
  TabsPrimitive.Content,
6545
6837
  {
6546
6838
  className: cn("focus-visible:outline-none", className),
@@ -6551,9 +6843,9 @@ var TabsContent = React55.forwardRef(({ className, ...props }, ref) => /* @__PUR
6551
6843
  TabsContent.displayName = TabsPrimitive.Content.displayName;
6552
6844
 
6553
6845
  // src/components/AdsTabs/index.tsx
6554
- var import_jsx_runtime65 = require("react/jsx-runtime");
6846
+ var import_jsx_runtime66 = require("react/jsx-runtime");
6555
6847
  var AdsTabs = Tabs;
6556
- var AdsTabsList = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6848
+ var AdsTabsList = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6557
6849
  TabsList,
6558
6850
  {
6559
6851
  className: cn(
@@ -6565,7 +6857,7 @@ var AdsTabsList = React56.forwardRef(({ className, ...props }, ref) => /* @__PUR
6565
6857
  }
6566
6858
  ));
6567
6859
  AdsTabsList.displayName = "AdsTabsList";
6568
- var AdsTabsTrigger = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6860
+ var AdsTabsTrigger = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6569
6861
  TabsTrigger,
6570
6862
  {
6571
6863
  className: cn(
@@ -6577,7 +6869,7 @@ var AdsTabsTrigger = React56.forwardRef(({ className, ...props }, ref) => /* @__
6577
6869
  }
6578
6870
  ));
6579
6871
  AdsTabsTrigger.displayName = "AdsTabsTrigger";
6580
- var AdsTabsContent = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6872
+ var AdsTabsContent = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6581
6873
  TabsContent,
6582
6874
  {
6583
6875
  className: cn(
@@ -6591,13 +6883,13 @@ var AdsTabsContent = React56.forwardRef(({ className, ...props }, ref) => /* @__
6591
6883
  AdsTabsContent.displayName = "AdsTabsContent";
6592
6884
 
6593
6885
  // src/components/AdsToggle/index.tsx
6594
- var React58 = __toESM(require("react"), 1);
6886
+ var React59 = __toESM(require("react"), 1);
6595
6887
 
6596
6888
  // src/primitives/toggle.tsx
6597
- var React57 = __toESM(require("react"), 1);
6889
+ var React58 = __toESM(require("react"), 1);
6598
6890
  var TogglePrimitive = __toESM(require("@radix-ui/react-toggle"), 1);
6599
- var import_jsx_runtime66 = require("react/jsx-runtime");
6600
- var Toggle = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6891
+ var import_jsx_runtime67 = require("react/jsx-runtime");
6892
+ var Toggle = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
6601
6893
  TogglePrimitive.Root,
6602
6894
  {
6603
6895
  className: cn(
@@ -6611,7 +6903,7 @@ var Toggle = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
6611
6903
  Toggle.displayName = TogglePrimitive.Root.displayName;
6612
6904
 
6613
6905
  // src/components/AdsToggle/index.tsx
6614
- var import_jsx_runtime67 = require("react/jsx-runtime");
6906
+ var import_jsx_runtime68 = require("react/jsx-runtime");
6615
6907
  var sizeClassName3 = {
6616
6908
  sm: "!h-8 px-[6px] text-sm",
6617
6909
  md: "!h-9 px-md text-sm",
@@ -6626,10 +6918,10 @@ var variantClassName = {
6626
6918
  default: "border border-transparent bg-transparent text-foreground shadow-none hover:bg-muted/70 data-[state=on]:bg-muted data-[state=on]:shadow-[0px_1px_1px_rgba(0,0,0,0.1)]",
6627
6919
  outline: "border border-border bg-transparent text-foreground shadow-none hover:bg-muted/70 data-[state=on]:border-transparent data-[state=on]:bg-muted data-[state=on]:shadow-[0px_1px_1px_rgba(0,0,0,0.1)]"
6628
6920
  };
6629
- var AdsToggle = React58.forwardRef(({ children, className, size = "md", variant = "default", ...props }, ref) => {
6630
- const childCount = React58.Children.count(children);
6631
- const isIconOnly = childCount === 1 && React58.isValidElement(children);
6632
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
6921
+ var AdsToggle = React59.forwardRef(({ children, className, size = "md", variant = "default", ...props }, ref) => {
6922
+ const childCount = React59.Children.count(children);
6923
+ const isIconOnly = childCount === 1 && React59.isValidElement(children);
6924
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
6633
6925
  Toggle,
6634
6926
  {
6635
6927
  className: cn(
@@ -6648,13 +6940,13 @@ var AdsToggle = React58.forwardRef(({ children, className, size = "md", variant
6648
6940
  AdsToggle.displayName = "AdsToggle";
6649
6941
 
6650
6942
  // src/components/AdsToggleGroup/index.tsx
6651
- var React60 = __toESM(require("react"), 1);
6943
+ var React61 = __toESM(require("react"), 1);
6652
6944
 
6653
6945
  // src/primitives/toggle-group.tsx
6654
- var React59 = __toESM(require("react"), 1);
6946
+ var React60 = __toESM(require("react"), 1);
6655
6947
  var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
6656
- var import_jsx_runtime68 = require("react/jsx-runtime");
6657
- var ToggleGroup = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
6948
+ var import_jsx_runtime69 = require("react/jsx-runtime");
6949
+ var ToggleGroup = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6658
6950
  ToggleGroupPrimitive.Root,
6659
6951
  {
6660
6952
  className: cn("inline-flex items-center justify-start", className),
@@ -6663,7 +6955,7 @@ var ToggleGroup = React59.forwardRef(({ className, ...props }, ref) => /* @__PUR
6663
6955
  }
6664
6956
  ));
6665
6957
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
6666
- var ToggleGroupItem = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
6958
+ var ToggleGroupItem = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6667
6959
  ToggleGroupPrimitive.Item,
6668
6960
  {
6669
6961
  className: cn(
@@ -6677,7 +6969,7 @@ var ToggleGroupItem = React59.forwardRef(({ className, ...props }, ref) => /* @_
6677
6969
  ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
6678
6970
 
6679
6971
  // src/components/AdsToggleGroup/index.tsx
6680
- var import_jsx_runtime69 = require("react/jsx-runtime");
6972
+ var import_jsx_runtime70 = require("react/jsx-runtime");
6681
6973
  var sizeClassName4 = {
6682
6974
  sm: "h-8 min-w-7 px-[6px] text-sm",
6683
6975
  md: "h-9 min-w-[34px] px-md text-sm",
@@ -6687,8 +6979,8 @@ var variantClassName2 = {
6687
6979
  default: "border-transparent bg-transparent text-foreground hover:bg-muted/70 data-[state=on]:bg-muted data-[state=on]:shadow-[0px_1px_1px_rgba(0,0,0,0.1)]",
6688
6980
  outline: "border border-border bg-transparent text-foreground hover:bg-muted/70 data-[state=on]:border-transparent data-[state=on]:bg-muted data-[state=on]:shadow-[0px_1px_1px_rgba(0,0,0,0.1)]"
6689
6981
  };
6690
- var AdsToggleGroupContext = React60.createContext(null);
6691
- var AdsToggleGroup = React60.forwardRef(
6982
+ var AdsToggleGroupContext = React61.createContext(null);
6983
+ var AdsToggleGroup = React61.forwardRef(
6692
6984
  ({
6693
6985
  children,
6694
6986
  className,
@@ -6696,7 +6988,7 @@ var AdsToggleGroup = React60.forwardRef(
6696
6988
  size = "md",
6697
6989
  variant = "default",
6698
6990
  ...props
6699
- }, ref) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(AdsToggleGroupContext.Provider, { value: { orientation, size, variant }, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6991
+ }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(AdsToggleGroupContext.Provider, { value: { orientation, size, variant }, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6700
6992
  ToggleGroup,
6701
6993
  {
6702
6994
  className: cn(
@@ -6712,12 +7004,12 @@ var AdsToggleGroup = React60.forwardRef(
6712
7004
  ) })
6713
7005
  );
6714
7006
  AdsToggleGroup.displayName = "AdsToggleGroup";
6715
- var AdsToggleGroupItem = React60.forwardRef(({ className, size, variant, ...props }, ref) => {
6716
- const context = React60.useContext(AdsToggleGroupContext);
7007
+ var AdsToggleGroupItem = React61.forwardRef(({ className, size, variant, ...props }, ref) => {
7008
+ const context = React61.useContext(AdsToggleGroupContext);
6717
7009
  const resolvedOrientation = context?.orientation ?? "horizontal";
6718
7010
  const resolvedSize = size ?? context?.size ?? "md";
6719
7011
  const resolvedVariant = variant ?? context?.variant ?? "default";
6720
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
7012
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6721
7013
  ToggleGroupItem,
6722
7014
  {
6723
7015
  className: cn(
@@ -6735,10 +7027,10 @@ var AdsToggleGroupItem = React60.forwardRef(({ className, size, variant, ...prop
6735
7027
  AdsToggleGroupItem.displayName = "AdsToggleGroupItem";
6736
7028
 
6737
7029
  // src/components/AdsTextarea/index.tsx
6738
- var React61 = __toESM(require("react"), 1);
6739
- var import_jsx_runtime70 = require("react/jsx-runtime");
6740
- var textareaBaseClassName = "w-full rounded-radius-md border border-border bg-card px-md py-md text-base leading-6 shadow-[0px_1px_2px_rgba(0,0,0,0.1)] placeholder:text-[var(--muted-foreground)] focus-visible:border-border-focus focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-[rgba(161,161,161,0.5)] focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50";
6741
- var AdsTextarea = React61.forwardRef(
7030
+ var React62 = __toESM(require("react"), 1);
7031
+ var import_jsx_runtime71 = require("react/jsx-runtime");
7032
+ var textareaBaseClassName = "w-full rounded-radius-md border border-border bg-card px-md py-md text-base leading-6 shadow-[0px_1px_2px_rgba(0,0,0,0.1)] placeholder:text-[var(--muted-foreground)] focus-visible:border-border-focus focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-[rgba(161,161,161,0.5)] focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:border-border disabled:bg-muted disabled:text-[var(--muted-foreground)] disabled:placeholder:text-[var(--muted-foreground)] disabled:opacity-100 disabled:focus-visible:border-border disabled:focus-visible:ring-0";
7033
+ var AdsTextarea = React62.forwardRef(
6742
7034
  ({
6743
7035
  action,
6744
7036
  className,
@@ -6757,12 +7049,12 @@ var AdsTextarea = React61.forwardRef(
6757
7049
  helperText,
6758
7050
  id
6759
7051
  });
6760
- const helperNode = helperText ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(AdsFieldDescription, { id: description.helperId, children: helperText }) : null;
6761
- const errorNode = errorText ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(AdsFieldError, { id: description.errorId, children: errorText }) : null;
6762
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(AdsFieldItem, { children: [
6763
- label ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(AdsFieldLabel, { htmlFor: description.inputId, children: label }) : null,
7052
+ const helperNode = helperText ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(AdsFieldDescription, { id: description.helperId, children: helperText }) : null;
7053
+ const errorNode = errorText ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(AdsFieldError, { id: description.errorId, children: errorText }) : null;
7054
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(AdsFieldItem, { children: [
7055
+ label ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(AdsFieldLabel, { htmlFor: description.inputId, children: label }) : null,
6764
7056
  descriptionPlacement === "above" ? helperNode : null,
6765
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
7057
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6766
7058
  Textarea,
6767
7059
  {
6768
7060
  "aria-describedby": description.describedBy,
@@ -6780,7 +7072,7 @@ var AdsTextarea = React61.forwardRef(
6780
7072
  ...props
6781
7073
  }
6782
7074
  ),
6783
- action ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "w-full [&>*]:w-full", children: action }) : null,
7075
+ action ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "w-full [&>*]:w-full", children: action }) : null,
6784
7076
  descriptionPlacement === "below" ? helperNode : null,
6785
7077
  errorNode
6786
7078
  ] });
@@ -6789,16 +7081,16 @@ var AdsTextarea = React61.forwardRef(
6789
7081
  AdsTextarea.displayName = "AdsTextarea";
6790
7082
 
6791
7083
  // src/components/AdsToast/index.tsx
6792
- var React62 = __toESM(require("react"), 1);
6793
- var import_lucide_react16 = require("lucide-react");
7084
+ var React63 = __toESM(require("react"), 1);
7085
+ var import_lucide_react17 = require("lucide-react");
6794
7086
  var import_sonner = require("sonner");
6795
- var import_jsx_runtime71 = require("react/jsx-runtime");
7087
+ var import_jsx_runtime72 = require("react/jsx-runtime");
6796
7088
  var adsToastIconMap = {
6797
- success: import_lucide_react16.CircleCheck,
6798
- info: import_lucide_react16.Info,
6799
- warning: import_lucide_react16.TriangleAlert,
6800
- error: import_lucide_react16.OctagonX,
6801
- loading: import_lucide_react16.LoaderCircle
7089
+ success: import_lucide_react17.CircleCheck,
7090
+ info: import_lucide_react17.Info,
7091
+ warning: import_lucide_react17.TriangleAlert,
7092
+ error: import_lucide_react17.OctagonX,
7093
+ loading: import_lucide_react17.LoaderCircle
6802
7094
  };
6803
7095
  function resolveToastIcon(intent, icon) {
6804
7096
  if (icon) {
@@ -6808,7 +7100,7 @@ function resolveToastIcon(intent, icon) {
6808
7100
  return null;
6809
7101
  }
6810
7102
  const Icon2 = adsToastIconMap[intent];
6811
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7103
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6812
7104
  Icon2,
6813
7105
  {
6814
7106
  "aria-hidden": true,
@@ -6821,7 +7113,7 @@ function resolveToastIcon(intent, icon) {
6821
7113
  }
6822
7114
  );
6823
7115
  }
6824
- var AdsToast = React62.forwardRef(
7116
+ var AdsToast = React63.forwardRef(
6825
7117
  ({
6826
7118
  action,
6827
7119
  className,
@@ -6832,7 +7124,7 @@ var AdsToast = React62.forwardRef(
6832
7124
  ...props
6833
7125
  }, ref) => {
6834
7126
  const resolvedIcon = resolveToastIcon(intent, icon);
6835
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
7127
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
6836
7128
  "div",
6837
7129
  {
6838
7130
  className: cn(
@@ -6847,8 +7139,8 @@ var AdsToast = React62.forwardRef(
6847
7139
  ...props,
6848
7140
  children: [
6849
7141
  resolvedIcon,
6850
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
6851
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7142
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
7143
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6852
7144
  "p",
6853
7145
  {
6854
7146
  className: cn(
@@ -6858,7 +7150,7 @@ var AdsToast = React62.forwardRef(
6858
7150
  children: title
6859
7151
  }
6860
7152
  ),
6861
- description ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7153
+ description ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6862
7154
  "p",
6863
7155
  {
6864
7156
  className: cn(
@@ -6869,7 +7161,7 @@ var AdsToast = React62.forwardRef(
6869
7161
  }
6870
7162
  ) : null
6871
7163
  ] }),
6872
- action ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7164
+ action ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6873
7165
  AdsButton,
6874
7166
  {
6875
7167
  className: "shrink-0 rounded-radius-lg",
@@ -6895,7 +7187,7 @@ function AdsToaster({
6895
7187
  ...props
6896
7188
  }) {
6897
7189
  const { messages } = useAdsI18n();
6898
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7190
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6899
7191
  import_sonner.Toaster,
6900
7192
  {
6901
7193
  closeButton: false,
@@ -6913,7 +7205,7 @@ function AdsToaster({
6913
7205
  );
6914
7206
  }
6915
7207
  function toStageNode(intent, title, options) {
6916
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7208
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6917
7209
  AdsToast,
6918
7210
  {
6919
7211
  action: options?.action,
@@ -6927,7 +7219,7 @@ function toStageNode(intent, title, options) {
6927
7219
  function showAdsToast(intent, title, options) {
6928
7220
  const { action, description, icon, ...toastOptions } = options ?? {};
6929
7221
  return import_sonner.toast.custom(
6930
- (id) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7222
+ (id) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6931
7223
  AdsToast,
6932
7224
  {
6933
7225
  action: action ? {
@@ -6981,10 +7273,10 @@ var AdsToastManager = Object.assign(
6981
7273
  );
6982
7274
 
6983
7275
  // src/components/AdsDialog/index.tsx
6984
- var React63 = __toESM(require("react"), 1);
7276
+ var React64 = __toESM(require("react"), 1);
6985
7277
  var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
6986
- var import_lucide_react17 = require("lucide-react");
6987
- var import_jsx_runtime72 = require("react/jsx-runtime");
7278
+ var import_lucide_react18 = require("lucide-react");
7279
+ var import_jsx_runtime73 = require("react/jsx-runtime");
6988
7280
  var overlayClassName2 = "fixed inset-0 z-50 bg-black/80 backdrop-blur-[2px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0";
6989
7281
  var contentClassName2 = "fixed left-1/2 top-1/2 z-50 flex max-h-[calc(100dvh-2rem)] w-[calc(100%-2rem)] max-w-[423px] -translate-x-1/2 -translate-y-1/2 flex-col gap-lg overflow-hidden rounded-radius-md border border-border bg-card p-xl shadow-[0px_4px_6px_-4px_rgba(0,0,0,0.1),0px_10px_15px_-3px_rgba(0,0,0,0.1)] duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]";
6990
7282
  var bodyClassName = "min-h-0 flex-1 overflow-y-auto overscroll-contain [scrollbar-gutter:stable]";
@@ -6992,7 +7284,7 @@ var closeButtonClassName = "absolute right-xl top-xl inline-flex h-6 w-6 items-c
6992
7284
  var Dialog = DialogPrimitive.Root;
6993
7285
  var DialogTrigger = DialogPrimitive.Trigger;
6994
7286
  var DialogPortal = DialogPrimitive.Portal;
6995
- var DialogOverlay = React63.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7287
+ var DialogOverlay = React64.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6996
7288
  DialogPrimitive.Overlay,
6997
7289
  {
6998
7290
  className: cn(overlayClassName2, className),
@@ -7001,7 +7293,7 @@ var DialogOverlay = React63.forwardRef(({ className, ...props }, ref) => /* @__P
7001
7293
  }
7002
7294
  ));
7003
7295
  DialogOverlay.displayName = "DialogOverlay";
7004
- var DialogClose = React63.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7296
+ var DialogClose = React64.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7005
7297
  DialogPrimitive.Close,
7006
7298
  {
7007
7299
  className: cn(
@@ -7015,8 +7307,8 @@ var DialogClose = React63.forwardRef(({ className, ...props }, ref) => /* @__PUR
7015
7307
  DialogClose.displayName = "DialogClose";
7016
7308
  function flattenDialogChildren(children) {
7017
7309
  const nodes = [];
7018
- React63.Children.forEach(children, (child) => {
7019
- if (React63.isValidElement(child) && child.type === React63.Fragment) {
7310
+ React64.Children.forEach(children, (child) => {
7311
+ if (React64.isValidElement(child) && child.type === React64.Fragment) {
7020
7312
  nodes.push(...flattenDialogChildren(child.props.children));
7021
7313
  return;
7022
7314
  }
@@ -7025,10 +7317,10 @@ function flattenDialogChildren(children) {
7025
7317
  return nodes;
7026
7318
  }
7027
7319
  function isDialogSlotElement(child, component) {
7028
- return React63.isValidElement(child) && child.type === component;
7320
+ return React64.isValidElement(child) && child.type === component;
7029
7321
  }
7030
- var DialogBody = React63.forwardRef(
7031
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7322
+ var DialogBody = React64.forwardRef(
7323
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7032
7324
  "div",
7033
7325
  {
7034
7326
  className: cn(bodyClassName, className),
@@ -7039,7 +7331,7 @@ var DialogBody = React63.forwardRef(
7039
7331
  )
7040
7332
  );
7041
7333
  DialogBody.displayName = "DialogBody";
7042
- var DialogContent = React63.forwardRef(
7334
+ var DialogContent = React64.forwardRef(
7043
7335
  ({
7044
7336
  children,
7045
7337
  className,
@@ -7096,9 +7388,9 @@ var DialogContent = React63.forwardRef(
7096
7388
  const looseBodyNodes = bodyNodes.filter(
7097
7389
  (child) => !isDialogSlotElement(child, DialogBody)
7098
7390
  );
7099
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(NestedDismissableLayerProvider, { coordinator: parentLayer.coordinator, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(DialogPortal, { children: [
7100
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(DialogOverlay, {}),
7101
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
7391
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(NestedDismissableLayerProvider, { coordinator: parentLayer.coordinator, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(DialogPortal, { children: [
7392
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DialogOverlay, {}),
7393
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7102
7394
  DialogPrimitive.Content,
7103
7395
  {
7104
7396
  "data-slot": "ads-dialog-content",
@@ -7114,18 +7406,18 @@ var DialogContent = React63.forwardRef(
7114
7406
  ...props,
7115
7407
  children: [
7116
7408
  headerNode,
7117
- headerNode === null && generatedHeaderNodes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(DialogHeader, { children: generatedHeaderNodes }) : null,
7409
+ headerNode === null && generatedHeaderNodes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DialogHeader, { children: generatedHeaderNodes }) : null,
7118
7410
  explicitBodyNodes.length > 0 ? explicitBodyNodes : null,
7119
- looseBodyNodes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(DialogBody, { children: looseBodyNodes }) : null,
7411
+ looseBodyNodes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DialogBody, { children: looseBodyNodes }) : null,
7120
7412
  footerNode,
7121
- !hideCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
7413
+ !hideCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7122
7414
  DialogPrimitive.Close,
7123
7415
  {
7124
7416
  "aria-label": resolvedCloseLabel,
7125
7417
  className: cn(closeButtonClassName, adsTextColorClassName.card),
7126
7418
  children: [
7127
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_lucide_react17.X, { "aria-hidden": true, className: "h-4 w-4" }),
7128
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: "sr-only", children: resolvedCloseLabel })
7419
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react18.X, { "aria-hidden": true, className: "h-4 w-4" }),
7420
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "sr-only", children: resolvedCloseLabel })
7129
7421
  ]
7130
7422
  }
7131
7423
  ) : null
@@ -7136,8 +7428,8 @@ var DialogContent = React63.forwardRef(
7136
7428
  }
7137
7429
  );
7138
7430
  DialogContent.displayName = "DialogContent";
7139
- var DialogHeader = React63.forwardRef(
7140
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7431
+ var DialogHeader = React64.forwardRef(
7432
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7141
7433
  "div",
7142
7434
  {
7143
7435
  "data-slot": "ads-dialog-header",
@@ -7148,8 +7440,8 @@ var DialogHeader = React63.forwardRef(
7148
7440
  )
7149
7441
  );
7150
7442
  DialogHeader.displayName = "DialogHeader";
7151
- var DialogFooter = React63.forwardRef(
7152
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7443
+ var DialogFooter = React64.forwardRef(
7444
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7153
7445
  "div",
7154
7446
  {
7155
7447
  "data-slot": "ads-dialog-footer",
@@ -7163,7 +7455,7 @@ var DialogFooter = React63.forwardRef(
7163
7455
  )
7164
7456
  );
7165
7457
  DialogFooter.displayName = "DialogFooter";
7166
- var DialogTitle = React63.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7458
+ var DialogTitle = React64.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7167
7459
  DialogPrimitive.Title,
7168
7460
  {
7169
7461
  className: cn(
@@ -7176,7 +7468,7 @@ var DialogTitle = React63.forwardRef(({ className, ...props }, ref) => /* @__PUR
7176
7468
  }
7177
7469
  ));
7178
7470
  DialogTitle.displayName = "DialogTitle";
7179
- var DialogDescription = React63.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7471
+ var DialogDescription = React64.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7180
7472
  DialogPrimitive.Description,
7181
7473
  {
7182
7474
  className: cn("text-sm leading-5", adsTextColorClassName.muted, className),
@@ -7199,7 +7491,7 @@ var AdsDialogDescription = DialogDescription;
7199
7491
 
7200
7492
  // src/components/AdsMasonry/index.tsx
7201
7493
  var import_masonic = require("masonic");
7202
- var import_jsx_runtime73 = require("react/jsx-runtime");
7494
+ var import_jsx_runtime74 = require("react/jsx-runtime");
7203
7495
  var DEFAULT_COLUMN_WIDTH = 240;
7204
7496
  var DEFAULT_GAP = 16;
7205
7497
  var DEFAULT_ITEM_HEIGHT_ESTIMATE = 280;
@@ -7235,7 +7527,7 @@ function AdsMasonry({
7235
7527
  { length: loadingItemCount },
7236
7528
  (_, index) => index
7237
7529
  );
7238
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7530
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7239
7531
  "div",
7240
7532
  {
7241
7533
  className: cn(
@@ -7247,20 +7539,20 @@ function AdsMasonry({
7247
7539
  const mediaHeight = LOADING_MEDIA_HEIGHT_PATTERN[index % LOADING_MEDIA_HEIGHT_PATTERN.length];
7248
7540
  const titleWidth = LOADING_TITLE_WIDTH_PATTERN[index % LOADING_TITLE_WIDTH_PATTERN.length];
7249
7541
  const bodyWidth = LOADING_BODY_WIDTH_PATTERN[index % LOADING_BODY_WIDTH_PATTERN.length];
7250
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7542
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7251
7543
  "article",
7252
7544
  {
7253
7545
  className: "overflow-hidden rounded-radius-lg border border-border bg-card shadow-showcase",
7254
7546
  "data-slot": "ads-masonry-loading-card",
7255
7547
  "data-testid": "ads-masonry-loading-card",
7256
7548
  children: [
7257
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7549
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7258
7550
  "div",
7259
7551
  {
7260
7552
  className: "border-b border-border/60 bg-surface-inset/50",
7261
7553
  "data-slot": "ads-masonry-skeleton-preview",
7262
7554
  "data-testid": "ads-masonry-skeleton-preview",
7263
- children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7555
+ children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7264
7556
  AdsSkeleton,
7265
7557
  {
7266
7558
  className: cn("w-full rounded-none", classNames?.skeleton),
@@ -7271,10 +7563,10 @@ function AdsMasonry({
7271
7563
  )
7272
7564
  }
7273
7565
  ),
7274
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex flex-col gap-4 p-lg", children: [
7275
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
7276
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex-1 space-y-2", children: [
7277
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7566
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex flex-col gap-4 p-lg", children: [
7567
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
7568
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex-1 space-y-2", children: [
7569
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7278
7570
  AdsSkeleton,
7279
7571
  {
7280
7572
  className: cn("h-3 w-16 rounded-full", classNames?.skeleton),
@@ -7282,7 +7574,7 @@ function AdsMasonry({
7282
7574
  "data-testid": "ads-masonry-skeleton"
7283
7575
  }
7284
7576
  ),
7285
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7577
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7286
7578
  AdsSkeleton,
7287
7579
  {
7288
7580
  className: cn("h-6 rounded-full", classNames?.skeleton),
@@ -7292,7 +7584,7 @@ function AdsMasonry({
7292
7584
  }
7293
7585
  )
7294
7586
  ] }),
7295
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7587
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7296
7588
  AdsSkeleton,
7297
7589
  {
7298
7590
  className: cn("h-6 w-16 rounded-full", classNames?.skeleton),
@@ -7301,7 +7593,7 @@ function AdsMasonry({
7301
7593
  }
7302
7594
  )
7303
7595
  ] }),
7304
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7596
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7305
7597
  AdsSkeleton,
7306
7598
  {
7307
7599
  className: cn("h-4 rounded-full", classNames?.skeleton),
@@ -7320,7 +7612,7 @@ function AdsMasonry({
7320
7612
  );
7321
7613
  }
7322
7614
  if (items.length === 0) {
7323
- return emptyState ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7615
+ return emptyState ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7324
7616
  "div",
7325
7617
  {
7326
7618
  className: cn(rootClassName, classNames?.empty),
@@ -7329,7 +7621,7 @@ function AdsMasonry({
7329
7621
  }
7330
7622
  ) : null;
7331
7623
  }
7332
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7624
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7333
7625
  import_masonic.Masonry,
7334
7626
  {
7335
7627
  className: rootClassName,
@@ -7341,7 +7633,7 @@ function AdsMasonry({
7341
7633
  maxColumnCount,
7342
7634
  onRender,
7343
7635
  overscanBy,
7344
- render: ({ data, index, width }) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7636
+ render: ({ data, index, width }) => /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7345
7637
  "div",
7346
7638
  {
7347
7639
  className: cn("pb-0", classNames?.item, itemClassName),
@@ -7503,6 +7795,7 @@ var designTokens = {
7503
7795
  AdsInputOTPGroup,
7504
7796
  AdsInputOTPSeparator,
7505
7797
  AdsInputOTPSlot,
7798
+ AdsLineChart,
7506
7799
  AdsMasonry,
7507
7800
  AdsPagination,
7508
7801
  AdsPaginationContent,