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

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,249 @@ 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 chartData = data.map((datum) => {
6178
+ const safeDatum = { ...datum, [xKey]: datum[xKey] };
6179
+ series.forEach((item) => {
6180
+ safeDatum[item.dataKey] = getSafeValue(datum[item.dataKey]);
6181
+ });
6182
+ return safeDatum;
6035
6183
  });
6184
+ const safeHeight = getSafeHeight(height);
6185
+ const chartConfig = getChartConfig(series);
6186
+ const {
6187
+ cursor: tooltipCursor,
6188
+ wrapperStyle: tooltipWrapperStyle,
6189
+ ...restTooltipProps
6190
+ } = tooltipProps ?? {};
6191
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6192
+ "div",
6193
+ {
6194
+ "aria-label": ariaLabel ?? "Line chart",
6195
+ className: cn("w-full", className),
6196
+ "data-testid": "ads-line-chart",
6197
+ role: "img",
6198
+ style: { height: safeHeight },
6199
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6200
+ ChartContainer,
6201
+ {
6202
+ "aria-hidden": "true",
6203
+ className: "h-full",
6204
+ config: chartConfig,
6205
+ height: "100%",
6206
+ ...containerProps,
6207
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
6208
+ import_recharts3.ComposedChart,
6209
+ {
6210
+ accessibilityLayer: false,
6211
+ data: chartData,
6212
+ margin: chartProps?.margin ?? { bottom: 0, left: 0, right: 0, top: 0 },
6213
+ ...chartProps,
6214
+ children: [
6215
+ showGrid && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6216
+ import_recharts3.CartesianGrid,
6217
+ {
6218
+ stroke: gridProps?.stroke ?? gridColor,
6219
+ strokeOpacity: gridProps?.strokeOpacity ?? 0.5,
6220
+ vertical: gridProps?.vertical ?? true,
6221
+ ...gridProps
6222
+ }
6223
+ ),
6224
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6225
+ import_recharts3.XAxis,
6226
+ {
6227
+ axisLine: xAxisProps?.axisLine ?? xAxis?.axisLine ?? false,
6228
+ dataKey: xKey,
6229
+ hide: xAxisProps?.hide ?? xAxis?.hide ?? false,
6230
+ interval: xAxisProps?.interval ?? xAxis?.interval,
6231
+ tick: xAxisProps?.tick ?? xAxis?.tick ?? true,
6232
+ tickFormatter: xAxisProps?.tickFormatter ?? xAxis?.tickFormatter,
6233
+ tickLine: xAxisProps?.tickLine ?? xAxis?.tickLine ?? false,
6234
+ tickMargin: xAxisProps?.tickMargin ?? xAxis?.tickMargin ?? 12,
6235
+ type: "category",
6236
+ ...xAxisProps
6237
+ }
6238
+ ),
6239
+ (yAxis || yAxisProps) && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6240
+ import_recharts3.YAxis,
6241
+ {
6242
+ axisLine: yAxisProps?.axisLine ?? yAxis?.axisLine ?? false,
6243
+ domain: yAxisProps?.domain ?? yAxis?.domain,
6244
+ tick: yAxisProps?.tick ?? yAxis?.tick ?? true,
6245
+ tickCount: yAxisProps?.tickCount ?? yAxis?.tickCount,
6246
+ tickFormatter: yAxisProps?.tickFormatter ?? yAxis?.tickFormatter,
6247
+ tickLine: yAxisProps?.tickLine ?? yAxis?.tickLine ?? false,
6248
+ ticks: yAxisProps?.ticks ?? yAxis?.ticks,
6249
+ width: yAxisProps?.width ?? yAxis?.width,
6250
+ ...yAxisProps
6251
+ }
6252
+ ),
6253
+ referenceLine && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6254
+ import_recharts3.ReferenceLine,
6255
+ {
6256
+ stroke: referenceLine.color ?? "var(--chart-1)",
6257
+ strokeDasharray: referenceLine.strokeDasharray ?? "2 3",
6258
+ y: referenceLine.value
6259
+ }
6260
+ ),
6261
+ showTooltip && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6262
+ import_recharts3.Tooltip,
6263
+ {
6264
+ content: tooltipContent ?? ((props) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6265
+ LineChartTooltipContent,
6266
+ {
6267
+ ...props,
6268
+ series,
6269
+ tooltipContentClassName: tooltipContentClassName2,
6270
+ tooltipFooter,
6271
+ tooltipLabelFormatter,
6272
+ tooltipValueFormatter
6273
+ }
6274
+ )),
6275
+ cursor: tooltipCursor ?? { stroke: gridColor, strokeDasharray: "2 3" },
6276
+ isAnimationActive: false,
6277
+ wrapperStyle: { zIndex: 20, ...tooltipWrapperStyle },
6278
+ ...restTooltipProps
6279
+ }
6280
+ ),
6281
+ series.map((item, index) => {
6282
+ const color = getSeriesColor(item, index);
6283
+ const opacity = getSafeOpacity(item.areaOpacity);
6284
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(React48.Fragment, { children: [
6285
+ opacity > 0 && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6286
+ import_recharts3.Area,
6287
+ {
6288
+ ...item.areaProps,
6289
+ dataKey: item.dataKey,
6290
+ fill: item.areaProps?.fill ?? color,
6291
+ fillOpacity: item.areaProps?.fillOpacity ?? opacity,
6292
+ isAnimationActive: item.areaProps?.isAnimationActive ?? false,
6293
+ stroke: item.areaProps?.stroke ?? "none",
6294
+ type: item.areaProps?.type ?? curve
6295
+ }
6296
+ ),
6297
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6298
+ import_recharts3.Line,
6299
+ {
6300
+ ...item.lineProps,
6301
+ activeDot: item.lineProps?.activeDot ?? { r: 5 },
6302
+ dataKey: item.dataKey,
6303
+ dot: item.lineProps?.dot ?? false,
6304
+ isAnimationActive: item.lineProps?.isAnimationActive ?? false,
6305
+ stroke: item.lineProps?.stroke ?? color,
6306
+ strokeWidth: item.lineProps?.strokeWidth ?? item.strokeWidth ?? 2,
6307
+ type: item.lineProps?.type ?? curve
6308
+ }
6309
+ )
6310
+ ] }, item.dataKey);
6311
+ }),
6312
+ children
6313
+ ]
6314
+ }
6315
+ )
6316
+ }
6317
+ )
6318
+ }
6319
+ );
6036
6320
  }
6037
6321
 
6038
6322
  // src/components/AdsSparklineChart/index.tsx
6039
- var import_jsx_runtime55 = require("react/jsx-runtime");
6040
- var DEFAULT_HEIGHT = 40;
6323
+ var import_recharts4 = require("recharts");
6324
+ var import_jsx_runtime56 = require("react/jsx-runtime");
6325
+ var DEFAULT_HEIGHT2 = 40;
6041
6326
  var tooltipContentStyle2 = {
6042
6327
  backgroundColor: "var(--popover)",
6043
6328
  border: "1px solid var(--border)",
@@ -6045,19 +6330,12 @@ var tooltipContentStyle2 = {
6045
6330
  color: "var(--popover-foreground)",
6046
6331
  padding: "8px 12px"
6047
6332
  };
6048
- function getSafeHeight(height) {
6049
- return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT;
6333
+ function getSafeHeight2(height) {
6334
+ return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT2;
6050
6335
  }
6051
- function getSafeValue(value) {
6336
+ function getSafeValue2(value) {
6052
6337
  return typeof value === "number" && Number.isFinite(value) ? Math.max(value, 0) : 0;
6053
6338
  }
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
6339
  function AdsSparklineChart({
6062
6340
  ariaLabel,
6063
6341
  className,
@@ -6065,19 +6343,16 @@ function AdsSparklineChart({
6065
6343
  data,
6066
6344
  dataKey,
6067
6345
  height,
6068
- plotHeight,
6069
6346
  showTooltip = true,
6070
- tooltipDateFormat,
6071
6347
  xKey
6072
6348
  }) {
6073
6349
  const chartData = data.map((datum) => ({
6074
6350
  ...datum,
6075
6351
  [xKey]: datum[xKey],
6076
- [dataKey]: getSafeValue(datum[dataKey])
6352
+ [dataKey]: getSafeValue2(datum[dataKey])
6077
6353
  }));
6078
- const safeHeight = getSafeHeight(height);
6079
- const chartMargin = getChartMargin(safeHeight, plotHeight);
6080
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6354
+ const safeHeight = getSafeHeight2(height);
6355
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
6081
6356
  "div",
6082
6357
  {
6083
6358
  "aria-label": ariaLabel ?? "Trend chart",
@@ -6085,36 +6360,37 @@ function AdsSparklineChart({
6085
6360
  "data-testid": "ads-sparkline-chart",
6086
6361
  role: "img",
6087
6362
  style: { height: safeHeight },
6088
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6363
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
6089
6364
  ChartContainer,
6090
6365
  {
6091
6366
  "aria-hidden": "true",
6092
6367
  className: "h-full",
6093
6368
  config: { value: { color } },
6094
6369
  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
- ] })
6370
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
6371
+ import_recharts4.LineChart,
6372
+ {
6373
+ accessibilityLayer: false,
6374
+ data: chartData,
6375
+ margin: { bottom: 1, left: 1, right: 1, top: 1 },
6376
+ children: [
6377
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_recharts4.XAxis, { dataKey: xKey, hide: true, type: "category" }),
6378
+ showTooltip && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_recharts4.Tooltip, { contentStyle: tooltipContentStyle2, cursor: false }),
6379
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
6380
+ import_recharts4.Line,
6381
+ {
6382
+ activeDot: false,
6383
+ dataKey,
6384
+ dot: false,
6385
+ isAnimationActive: false,
6386
+ stroke: "var(--color-value)",
6387
+ strokeWidth: 2,
6388
+ type: "monotone"
6389
+ }
6390
+ )
6391
+ ]
6392
+ }
6393
+ )
6118
6394
  }
6119
6395
  )
6120
6396
  }
@@ -6122,20 +6398,20 @@ function AdsSparklineChart({
6122
6398
  }
6123
6399
 
6124
6400
  // src/components/AdsStackedBarChart/index.tsx
6125
- var React50 = __toESM(require("react"), 1);
6401
+ var React51 = __toESM(require("react"), 1);
6126
6402
 
6127
6403
  // src/components/AdsTooltip/index.tsx
6128
- var React49 = __toESM(require("react"), 1);
6404
+ var React50 = __toESM(require("react"), 1);
6129
6405
 
6130
6406
  // src/primitives/tooltip.tsx
6131
- var React48 = __toESM(require("react"), 1);
6407
+ var React49 = __toESM(require("react"), 1);
6132
6408
  var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
6133
- var import_jsx_runtime56 = require("react/jsx-runtime");
6409
+ var import_jsx_runtime57 = require("react/jsx-runtime");
6134
6410
  var TooltipProvider = TooltipPrimitive.Provider;
6135
- var Tooltip3 = TooltipPrimitive.Root;
6411
+ var Tooltip4 = TooltipPrimitive.Root;
6136
6412
  var TooltipTrigger = TooltipPrimitive.Trigger;
6137
6413
  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)(
6414
+ 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
6415
  TooltipPrimitive.Content,
6140
6416
  {
6141
6417
  className: cn(
@@ -6150,12 +6426,12 @@ var TooltipContent = React48.forwardRef(({ className, sideOffset = 4, ...props }
6150
6426
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
6151
6427
 
6152
6428
  // src/components/AdsTooltip/index.tsx
6153
- var import_jsx_runtime57 = require("react/jsx-runtime");
6429
+ var import_jsx_runtime58 = require("react/jsx-runtime");
6154
6430
  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
6431
  var AdsTooltipProvider = TooltipProvider;
6156
- var AdsTooltip = Tooltip3;
6432
+ var AdsTooltip = Tooltip4;
6157
6433
  var AdsTooltipTrigger = TooltipTrigger;
6158
- var AdsTooltipContent = React49.forwardRef(({ align = "center", className, sideOffset = 10, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
6434
+ var AdsTooltipContent = React50.forwardRef(({ align = "center", className, sideOffset = 10, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
6159
6435
  TooltipContent,
6160
6436
  {
6161
6437
  align,
@@ -6166,7 +6442,7 @@ var AdsTooltipContent = React49.forwardRef(({ align = "center", className, sideO
6166
6442
  }
6167
6443
  ));
6168
6444
  AdsTooltipContent.displayName = "AdsTooltipContent";
6169
- var AdsTooltipArrow = React49.forwardRef(({ className, height = 5, width = 10, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
6445
+ var AdsTooltipArrow = React50.forwardRef(({ className, height = 5, width = 10, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
6170
6446
  TooltipArrow,
6171
6447
  {
6172
6448
  className: cn("fill-[#844fff]", className),
@@ -6179,11 +6455,11 @@ var AdsTooltipArrow = React49.forwardRef(({ className, height = 5, width = 10, .
6179
6455
  AdsTooltipArrow.displayName = "AdsTooltipArrow";
6180
6456
 
6181
6457
  // src/components/AdsStackedBarChart/index.tsx
6182
- var import_jsx_runtime58 = require("react/jsx-runtime");
6183
- var DEFAULT_HEIGHT2 = 20;
6458
+ var import_jsx_runtime59 = require("react/jsx-runtime");
6459
+ var DEFAULT_HEIGHT3 = 20;
6184
6460
  var DEFAULT_SEGMENT_COLOR = "var(--chart-1)";
6185
- function getSafeHeight2(height) {
6186
- return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT2;
6461
+ function getSafeHeight3(height) {
6462
+ return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT3;
6187
6463
  }
6188
6464
  function formatPercentage(percentage) {
6189
6465
  return `${Number(percentage.toFixed(2))}%`;
@@ -6195,7 +6471,7 @@ function AdsStackedBarChart({
6195
6471
  showTooltip = true,
6196
6472
  segments
6197
6473
  }) {
6198
- const descriptionId = React50.useId();
6474
+ const descriptionId = React51.useId();
6199
6475
  const validSegments = segments.reduce((items, segment, index) => {
6200
6476
  const value = Number.isFinite(segment.value) ? Math.max(segment.value, 0) : 0;
6201
6477
  if (value > 0) {
@@ -6215,7 +6491,7 @@ function AdsStackedBarChart({
6215
6491
  const hasData = normalizedTotal > 0 && Number.isFinite(normalizedTotal);
6216
6492
  const getPercentage = (value) => value / normalizationBase / normalizedTotal * 100;
6217
6493
  const summary = hasData ? validSegments.map((segment) => `${segment.label}: ${formatPercentage(getPercentage(segment.value))}`).join(", ") : "No data";
6218
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
6494
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
6219
6495
  "div",
6220
6496
  {
6221
6497
  "aria-label": ariaLabel ?? summary,
@@ -6223,13 +6499,13 @@ function AdsStackedBarChart({
6223
6499
  className: cn("overflow-hidden rounded-full bg-muted", className),
6224
6500
  "data-testid": "ads-stacked-bar-chart",
6225
6501
  role: "img",
6226
- style: { height: getSafeHeight2(height) },
6502
+ style: { height: getSafeHeight3(height) },
6227
6503
  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) => {
6504
+ ariaLabel && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "sr-only", id: descriptionId, children: summary }),
6505
+ 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
6506
  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)(
6507
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(AdsTooltip, { children: [
6508
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(AdsTooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6233
6509
  "div",
6234
6510
  {
6235
6511
  "aria-label": `${segment.label}: ${segment.value}`,
@@ -6239,7 +6515,7 @@ function AdsStackedBarChart({
6239
6515
  tabIndex: showTooltip ? 0 : -1
6240
6516
  }
6241
6517
  ) }),
6242
- showTooltip && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(AdsTooltipContent, { children: [
6518
+ showTooltip && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(AdsTooltipContent, { children: [
6243
6519
  segment.label,
6244
6520
  ": ",
6245
6521
  segment.value
@@ -6252,9 +6528,9 @@ function AdsStackedBarChart({
6252
6528
  }
6253
6529
 
6254
6530
  // 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;
6531
+ var import_recharts5 = require("recharts");
6532
+ var import_jsx_runtime60 = require("react/jsx-runtime");
6533
+ var DEFAULT_HEIGHT4 = 160;
6258
6534
  var DEFAULT_HIGHLIGHT_COLOR = "var(--chart-2)";
6259
6535
  var DEFAULT_RADIUS = 4;
6260
6536
  var tooltipContentStyle3 = {
@@ -6264,13 +6540,13 @@ var tooltipContentStyle3 = {
6264
6540
  color: "var(--popover-foreground)",
6265
6541
  padding: "8px 12px"
6266
6542
  };
6267
- function getSafeHeight3(height) {
6268
- return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT3;
6543
+ function getSafeHeight4(height) {
6544
+ return Number.isFinite(height) && height && height > 0 ? height : DEFAULT_HEIGHT4;
6269
6545
  }
6270
6546
  function getSafeRadius(radius) {
6271
6547
  return Number.isFinite(radius) && radius !== void 0 && radius >= 0 ? radius : DEFAULT_RADIUS;
6272
6548
  }
6273
- function getSafeValue2(value) {
6549
+ function getSafeValue3(value) {
6274
6550
  return typeof value === "number" && Number.isFinite(value) ? Math.max(value, 0) : 0;
6275
6551
  }
6276
6552
  function AdsBarChart({
@@ -6286,7 +6562,6 @@ function AdsBarChart({
6286
6562
  highlightIndex,
6287
6563
  hoverColor,
6288
6564
  showTooltip = true,
6289
- tooltipDateFormat,
6290
6565
  xAxis,
6291
6566
  xKey,
6292
6567
  yAxis
@@ -6294,12 +6569,12 @@ function AdsBarChart({
6294
6569
  const chartData = data.map((datum) => ({
6295
6570
  ...datum,
6296
6571
  [xKey]: datum[xKey],
6297
- [dataKey]: getSafeValue2(datum[dataKey])
6572
+ [dataKey]: getSafeValue3(datum[dataKey])
6298
6573
  }));
6299
- const safeHeight = getSafeHeight3(height);
6574
+ const safeHeight = getSafeHeight4(height);
6300
6575
  const safeRadius = getSafeRadius(barRadius);
6301
6576
  const safeHighlightIndex = Number.isInteger(highlightIndex) ? highlightIndex : -1;
6302
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6577
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6303
6578
  "div",
6304
6579
  {
6305
6580
  "aria-label": ariaLabel ?? "Bar chart",
@@ -6307,66 +6582,67 @@ function AdsBarChart({
6307
6582
  "data-testid": "ads-bar-chart",
6308
6583
  role: "img",
6309
6584
  style: { height: safeHeight },
6310
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6585
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6311
6586
  ChartContainer,
6312
6587
  {
6313
6588
  "aria-hidden": "true",
6314
6589
  className: "h-full",
6315
6590
  config: { value: { color } },
6316
6591
  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,
6592
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
6593
+ import_recharts5.BarChart,
6594
+ {
6595
+ accessibilityLayer: false,
6596
+ data: chartData,
6597
+ margin: { bottom: 0, left: 0, right: 0, top: 0 },
6598
+ children: [
6599
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6600
+ import_recharts5.XAxis,
6362
6601
  {
6363
- fill: index === safeHighlightIndex ? highlightColor ?? DEFAULT_HIGHLIGHT_COLOR : "var(--color-value)"
6364
- },
6365
- index
6366
- ))
6367
- }
6368
- )
6369
- ] })
6602
+ axisLine: xAxis?.axisLine ?? false,
6603
+ dataKey: xKey,
6604
+ hide: xAxis?.hide ?? true,
6605
+ tick: xAxis?.tick ?? true,
6606
+ tickLine: xAxis?.tickLine ?? false,
6607
+ tickMargin: xAxis?.tickMargin,
6608
+ type: "category"
6609
+ }
6610
+ ),
6611
+ yAxis && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6612
+ import_recharts5.YAxis,
6613
+ {
6614
+ axisLine: yAxis.axisLine ?? false,
6615
+ domain: yAxis.domain,
6616
+ tick: yAxis.tick ?? true,
6617
+ tickCount: yAxis.tickCount,
6618
+ tickLine: yAxis.tickLine ?? false,
6619
+ tickMargin: yAxis.tickMargin,
6620
+ ticks: yAxis.ticks,
6621
+ width: yAxis.width
6622
+ }
6623
+ ),
6624
+ showTooltip && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_recharts5.Tooltip, { contentStyle: tooltipContentStyle3, cursor: { fill: "transparent" } }),
6625
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6626
+ import_recharts5.Bar,
6627
+ {
6628
+ activeBar: hoverColor ? { fill: hoverColor } : void 0,
6629
+ barSize,
6630
+ dataKey,
6631
+ fill: "var(--color-value)",
6632
+ isAnimationActive: false,
6633
+ radius: safeRadius,
6634
+ children: chartData.map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6635
+ import_recharts5.Cell,
6636
+ {
6637
+ fill: index === safeHighlightIndex ? highlightColor ?? DEFAULT_HIGHLIGHT_COLOR : "var(--color-value)"
6638
+ },
6639
+ index
6640
+ ))
6641
+ }
6642
+ )
6643
+ ]
6644
+ }
6645
+ )
6370
6646
  }
6371
6647
  )
6372
6648
  }
@@ -6374,13 +6650,13 @@ function AdsBarChart({
6374
6650
  }
6375
6651
 
6376
6652
  // src/components/AdsSlider/index.tsx
6377
- var React52 = __toESM(require("react"), 1);
6653
+ var React53 = __toESM(require("react"), 1);
6378
6654
 
6379
6655
  // src/primitives/slider.tsx
6380
- var React51 = __toESM(require("react"), 1);
6656
+ var React52 = __toESM(require("react"), 1);
6381
6657
  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)(
6658
+ var import_jsx_runtime61 = require("react/jsx-runtime");
6659
+ var Slider = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
6384
6660
  SliderPrimitive.Root,
6385
6661
  {
6386
6662
  ref,
@@ -6390,10 +6666,10 @@ var Slider = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
6390
6666
  ),
6391
6667
  ...props,
6392
6668
  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" }) }),
6669
+ /* @__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
6670
  Array.from({
6395
6671
  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)(
6672
+ }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6397
6673
  SliderPrimitive.Thumb,
6398
6674
  {
6399
6675
  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 +6682,11 @@ var Slider = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
6406
6682
  Slider.displayName = SliderPrimitive.Root.displayName;
6407
6683
 
6408
6684
  // src/components/AdsSlider/index.tsx
6409
- var import_jsx_runtime61 = require("react/jsx-runtime");
6685
+ var import_jsx_runtime62 = require("react/jsx-runtime");
6410
6686
  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 }));
6687
+ var Slider2 = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Slider, { className: cn(sliderBaseClassName, className), ref, ...props }));
6412
6688
  Slider2.displayName = "Slider";
6413
- var AdsSlider = React52.forwardRef(
6689
+ var AdsSlider = React53.forwardRef(
6414
6690
  ({
6415
6691
  className,
6416
6692
  descriptionPlacement = "above",
@@ -6425,12 +6701,12 @@ var AdsSlider = React52.forwardRef(
6425
6701
  helperText,
6426
6702
  id
6427
6703
  });
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,
6704
+ const helperNode = helperText ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(AdsFieldDescription, { id: description.helperId, children: helperText }) : null;
6705
+ const errorNode = errorText ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(AdsFieldError, { id: description.errorId, children: errorText }) : null;
6706
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(AdsFieldItem, { children: [
6707
+ label ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(AdsFieldLabel, { children: label }) : null,
6432
6708
  descriptionPlacement === "above" ? helperNode : null,
6433
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6709
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
6434
6710
  Slider2,
6435
6711
  {
6436
6712
  "aria-describedby": description.describedBy,
@@ -6447,13 +6723,13 @@ var AdsSlider = React52.forwardRef(
6447
6723
  AdsSlider.displayName = "AdsSlider";
6448
6724
 
6449
6725
  // src/components/AdsSwitch/index.tsx
6450
- var React54 = __toESM(require("react"), 1);
6726
+ var React55 = __toESM(require("react"), 1);
6451
6727
 
6452
6728
  // src/primitives/switch.tsx
6453
- var React53 = __toESM(require("react"), 1);
6729
+ var React54 = __toESM(require("react"), 1);
6454
6730
  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)(
6731
+ var import_jsx_runtime63 = require("react/jsx-runtime");
6732
+ var Switch = React54.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
6457
6733
  SwitchPrimitives.Root,
6458
6734
  {
6459
6735
  className: cn(
@@ -6462,7 +6738,7 @@ var Switch = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
6462
6738
  ),
6463
6739
  ...props,
6464
6740
  ref,
6465
- children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
6741
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
6466
6742
  SwitchPrimitives.Thumb,
6467
6743
  {
6468
6744
  className: cn(
@@ -6475,15 +6751,15 @@ var Switch = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
6475
6751
  Switch.displayName = SwitchPrimitives.Root.displayName;
6476
6752
 
6477
6753
  // src/components/AdsSwitch/index.tsx
6478
- var import_jsx_runtime63 = require("react/jsx-runtime");
6754
+ var import_jsx_runtime64 = require("react/jsx-runtime");
6479
6755
  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 }));
6756
+ var Switch2 = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Switch, { className: cn(switchBaseClassName, className), ref, ...props }));
6481
6757
  Switch2.displayName = "Switch";
6482
- var AdsSwitch = React54.forwardRef(({ className, description, id, label, switchClassName, wrapperClassName, ...props }, ref) => {
6483
- const generatedId = React54.useId();
6758
+ var AdsSwitch = React55.forwardRef(({ className, description, id, label, switchClassName, wrapperClassName, ...props }, ref) => {
6759
+ const generatedId = React55.useId();
6484
6760
  const inputId = id ?? generatedId;
6485
6761
  if (!label) {
6486
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
6762
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6487
6763
  Switch2,
6488
6764
  {
6489
6765
  className: cn(className, switchClassName),
@@ -6493,12 +6769,12 @@ var AdsSwitch = React54.forwardRef(({ className, description, id, label, switchC
6493
6769
  }
6494
6770
  );
6495
6771
  }
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
6772
+ 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: [
6773
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1.5 pt-0.5", children: [
6774
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "text-sm font-medium leading-5 text-foreground", children: label }),
6775
+ description ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AdsFieldDescription, { className: "text-sm leading-5", children: description }) : null
6500
6776
  ] }),
6501
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
6777
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6502
6778
  Switch2,
6503
6779
  {
6504
6780
  className: cn(className, switchClassName),
@@ -6512,14 +6788,14 @@ var AdsSwitch = React54.forwardRef(({ className, description, id, label, switchC
6512
6788
  AdsSwitch.displayName = "AdsSwitch";
6513
6789
 
6514
6790
  // src/components/AdsTabs/index.tsx
6515
- var React56 = __toESM(require("react"), 1);
6791
+ var React57 = __toESM(require("react"), 1);
6516
6792
 
6517
6793
  // src/primitives/tabs.tsx
6518
- var React55 = __toESM(require("react"), 1);
6794
+ var React56 = __toESM(require("react"), 1);
6519
6795
  var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"), 1);
6520
- var import_jsx_runtime64 = require("react/jsx-runtime");
6796
+ var import_jsx_runtime65 = require("react/jsx-runtime");
6521
6797
  var Tabs = TabsPrimitive.Root;
6522
- var TabsList = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6798
+ var TabsList = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6523
6799
  TabsPrimitive.List,
6524
6800
  {
6525
6801
  className: cn("inline-flex items-center", className),
@@ -6528,7 +6804,7 @@ var TabsList = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__
6528
6804
  }
6529
6805
  ));
6530
6806
  TabsList.displayName = TabsPrimitive.List.displayName;
6531
- var TabsTrigger = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6807
+ var TabsTrigger = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6532
6808
  TabsPrimitive.Trigger,
6533
6809
  {
6534
6810
  className: cn(
@@ -6540,7 +6816,7 @@ var TabsTrigger = React55.forwardRef(({ className, ...props }, ref) => /* @__PUR
6540
6816
  }
6541
6817
  ));
6542
6818
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
6543
- var TabsContent = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6819
+ var TabsContent = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6544
6820
  TabsPrimitive.Content,
6545
6821
  {
6546
6822
  className: cn("focus-visible:outline-none", className),
@@ -6551,9 +6827,9 @@ var TabsContent = React55.forwardRef(({ className, ...props }, ref) => /* @__PUR
6551
6827
  TabsContent.displayName = TabsPrimitive.Content.displayName;
6552
6828
 
6553
6829
  // src/components/AdsTabs/index.tsx
6554
- var import_jsx_runtime65 = require("react/jsx-runtime");
6830
+ var import_jsx_runtime66 = require("react/jsx-runtime");
6555
6831
  var AdsTabs = Tabs;
6556
- var AdsTabsList = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6832
+ var AdsTabsList = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6557
6833
  TabsList,
6558
6834
  {
6559
6835
  className: cn(
@@ -6565,7 +6841,7 @@ var AdsTabsList = React56.forwardRef(({ className, ...props }, ref) => /* @__PUR
6565
6841
  }
6566
6842
  ));
6567
6843
  AdsTabsList.displayName = "AdsTabsList";
6568
- var AdsTabsTrigger = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6844
+ var AdsTabsTrigger = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6569
6845
  TabsTrigger,
6570
6846
  {
6571
6847
  className: cn(
@@ -6577,7 +6853,7 @@ var AdsTabsTrigger = React56.forwardRef(({ className, ...props }, ref) => /* @__
6577
6853
  }
6578
6854
  ));
6579
6855
  AdsTabsTrigger.displayName = "AdsTabsTrigger";
6580
- var AdsTabsContent = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6856
+ var AdsTabsContent = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6581
6857
  TabsContent,
6582
6858
  {
6583
6859
  className: cn(
@@ -6591,13 +6867,13 @@ var AdsTabsContent = React56.forwardRef(({ className, ...props }, ref) => /* @__
6591
6867
  AdsTabsContent.displayName = "AdsTabsContent";
6592
6868
 
6593
6869
  // src/components/AdsToggle/index.tsx
6594
- var React58 = __toESM(require("react"), 1);
6870
+ var React59 = __toESM(require("react"), 1);
6595
6871
 
6596
6872
  // src/primitives/toggle.tsx
6597
- var React57 = __toESM(require("react"), 1);
6873
+ var React58 = __toESM(require("react"), 1);
6598
6874
  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)(
6875
+ var import_jsx_runtime67 = require("react/jsx-runtime");
6876
+ var Toggle = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
6601
6877
  TogglePrimitive.Root,
6602
6878
  {
6603
6879
  className: cn(
@@ -6611,7 +6887,7 @@ var Toggle = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
6611
6887
  Toggle.displayName = TogglePrimitive.Root.displayName;
6612
6888
 
6613
6889
  // src/components/AdsToggle/index.tsx
6614
- var import_jsx_runtime67 = require("react/jsx-runtime");
6890
+ var import_jsx_runtime68 = require("react/jsx-runtime");
6615
6891
  var sizeClassName3 = {
6616
6892
  sm: "!h-8 px-[6px] text-sm",
6617
6893
  md: "!h-9 px-md text-sm",
@@ -6626,10 +6902,10 @@ var variantClassName = {
6626
6902
  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
6903
  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
6904
  };
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)(
6905
+ var AdsToggle = React59.forwardRef(({ children, className, size = "md", variant = "default", ...props }, ref) => {
6906
+ const childCount = React59.Children.count(children);
6907
+ const isIconOnly = childCount === 1 && React59.isValidElement(children);
6908
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
6633
6909
  Toggle,
6634
6910
  {
6635
6911
  className: cn(
@@ -6648,13 +6924,13 @@ var AdsToggle = React58.forwardRef(({ children, className, size = "md", variant
6648
6924
  AdsToggle.displayName = "AdsToggle";
6649
6925
 
6650
6926
  // src/components/AdsToggleGroup/index.tsx
6651
- var React60 = __toESM(require("react"), 1);
6927
+ var React61 = __toESM(require("react"), 1);
6652
6928
 
6653
6929
  // src/primitives/toggle-group.tsx
6654
- var React59 = __toESM(require("react"), 1);
6930
+ var React60 = __toESM(require("react"), 1);
6655
6931
  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)(
6932
+ var import_jsx_runtime69 = require("react/jsx-runtime");
6933
+ var ToggleGroup = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6658
6934
  ToggleGroupPrimitive.Root,
6659
6935
  {
6660
6936
  className: cn("inline-flex items-center justify-start", className),
@@ -6663,7 +6939,7 @@ var ToggleGroup = React59.forwardRef(({ className, ...props }, ref) => /* @__PUR
6663
6939
  }
6664
6940
  ));
6665
6941
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
6666
- var ToggleGroupItem = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
6942
+ var ToggleGroupItem = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6667
6943
  ToggleGroupPrimitive.Item,
6668
6944
  {
6669
6945
  className: cn(
@@ -6677,7 +6953,7 @@ var ToggleGroupItem = React59.forwardRef(({ className, ...props }, ref) => /* @_
6677
6953
  ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
6678
6954
 
6679
6955
  // src/components/AdsToggleGroup/index.tsx
6680
- var import_jsx_runtime69 = require("react/jsx-runtime");
6956
+ var import_jsx_runtime70 = require("react/jsx-runtime");
6681
6957
  var sizeClassName4 = {
6682
6958
  sm: "h-8 min-w-7 px-[6px] text-sm",
6683
6959
  md: "h-9 min-w-[34px] px-md text-sm",
@@ -6687,8 +6963,8 @@ var variantClassName2 = {
6687
6963
  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
6964
  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
6965
  };
6690
- var AdsToggleGroupContext = React60.createContext(null);
6691
- var AdsToggleGroup = React60.forwardRef(
6966
+ var AdsToggleGroupContext = React61.createContext(null);
6967
+ var AdsToggleGroup = React61.forwardRef(
6692
6968
  ({
6693
6969
  children,
6694
6970
  className,
@@ -6696,7 +6972,7 @@ var AdsToggleGroup = React60.forwardRef(
6696
6972
  size = "md",
6697
6973
  variant = "default",
6698
6974
  ...props
6699
- }, ref) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(AdsToggleGroupContext.Provider, { value: { orientation, size, variant }, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6975
+ }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(AdsToggleGroupContext.Provider, { value: { orientation, size, variant }, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6700
6976
  ToggleGroup,
6701
6977
  {
6702
6978
  className: cn(
@@ -6712,12 +6988,12 @@ var AdsToggleGroup = React60.forwardRef(
6712
6988
  ) })
6713
6989
  );
6714
6990
  AdsToggleGroup.displayName = "AdsToggleGroup";
6715
- var AdsToggleGroupItem = React60.forwardRef(({ className, size, variant, ...props }, ref) => {
6716
- const context = React60.useContext(AdsToggleGroupContext);
6991
+ var AdsToggleGroupItem = React61.forwardRef(({ className, size, variant, ...props }, ref) => {
6992
+ const context = React61.useContext(AdsToggleGroupContext);
6717
6993
  const resolvedOrientation = context?.orientation ?? "horizontal";
6718
6994
  const resolvedSize = size ?? context?.size ?? "md";
6719
6995
  const resolvedVariant = variant ?? context?.variant ?? "default";
6720
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6996
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6721
6997
  ToggleGroupItem,
6722
6998
  {
6723
6999
  className: cn(
@@ -6735,10 +7011,10 @@ var AdsToggleGroupItem = React60.forwardRef(({ className, size, variant, ...prop
6735
7011
  AdsToggleGroupItem.displayName = "AdsToggleGroupItem";
6736
7012
 
6737
7013
  // 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(
7014
+ var React62 = __toESM(require("react"), 1);
7015
+ var import_jsx_runtime71 = require("react/jsx-runtime");
7016
+ 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";
7017
+ var AdsTextarea = React62.forwardRef(
6742
7018
  ({
6743
7019
  action,
6744
7020
  className,
@@ -6757,12 +7033,12 @@ var AdsTextarea = React61.forwardRef(
6757
7033
  helperText,
6758
7034
  id
6759
7035
  });
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,
7036
+ const helperNode = helperText ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(AdsFieldDescription, { id: description.helperId, children: helperText }) : null;
7037
+ const errorNode = errorText ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(AdsFieldError, { id: description.errorId, children: errorText }) : null;
7038
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(AdsFieldItem, { children: [
7039
+ label ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(AdsFieldLabel, { htmlFor: description.inputId, children: label }) : null,
6764
7040
  descriptionPlacement === "above" ? helperNode : null,
6765
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
7041
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6766
7042
  Textarea,
6767
7043
  {
6768
7044
  "aria-describedby": description.describedBy,
@@ -6780,7 +7056,7 @@ var AdsTextarea = React61.forwardRef(
6780
7056
  ...props
6781
7057
  }
6782
7058
  ),
6783
- action ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "w-full [&>*]:w-full", children: action }) : null,
7059
+ action ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "w-full [&>*]:w-full", children: action }) : null,
6784
7060
  descriptionPlacement === "below" ? helperNode : null,
6785
7061
  errorNode
6786
7062
  ] });
@@ -6789,16 +7065,16 @@ var AdsTextarea = React61.forwardRef(
6789
7065
  AdsTextarea.displayName = "AdsTextarea";
6790
7066
 
6791
7067
  // src/components/AdsToast/index.tsx
6792
- var React62 = __toESM(require("react"), 1);
6793
- var import_lucide_react16 = require("lucide-react");
7068
+ var React63 = __toESM(require("react"), 1);
7069
+ var import_lucide_react17 = require("lucide-react");
6794
7070
  var import_sonner = require("sonner");
6795
- var import_jsx_runtime71 = require("react/jsx-runtime");
7071
+ var import_jsx_runtime72 = require("react/jsx-runtime");
6796
7072
  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
7073
+ success: import_lucide_react17.CircleCheck,
7074
+ info: import_lucide_react17.Info,
7075
+ warning: import_lucide_react17.TriangleAlert,
7076
+ error: import_lucide_react17.OctagonX,
7077
+ loading: import_lucide_react17.LoaderCircle
6802
7078
  };
6803
7079
  function resolveToastIcon(intent, icon) {
6804
7080
  if (icon) {
@@ -6808,7 +7084,7 @@ function resolveToastIcon(intent, icon) {
6808
7084
  return null;
6809
7085
  }
6810
7086
  const Icon2 = adsToastIconMap[intent];
6811
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7087
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6812
7088
  Icon2,
6813
7089
  {
6814
7090
  "aria-hidden": true,
@@ -6821,7 +7097,7 @@ function resolveToastIcon(intent, icon) {
6821
7097
  }
6822
7098
  );
6823
7099
  }
6824
- var AdsToast = React62.forwardRef(
7100
+ var AdsToast = React63.forwardRef(
6825
7101
  ({
6826
7102
  action,
6827
7103
  className,
@@ -6832,7 +7108,7 @@ var AdsToast = React62.forwardRef(
6832
7108
  ...props
6833
7109
  }, ref) => {
6834
7110
  const resolvedIcon = resolveToastIcon(intent, icon);
6835
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
7111
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
6836
7112
  "div",
6837
7113
  {
6838
7114
  className: cn(
@@ -6847,8 +7123,8 @@ var AdsToast = React62.forwardRef(
6847
7123
  ...props,
6848
7124
  children: [
6849
7125
  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)(
7126
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
7127
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6852
7128
  "p",
6853
7129
  {
6854
7130
  className: cn(
@@ -6858,7 +7134,7 @@ var AdsToast = React62.forwardRef(
6858
7134
  children: title
6859
7135
  }
6860
7136
  ),
6861
- description ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7137
+ description ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6862
7138
  "p",
6863
7139
  {
6864
7140
  className: cn(
@@ -6869,7 +7145,7 @@ var AdsToast = React62.forwardRef(
6869
7145
  }
6870
7146
  ) : null
6871
7147
  ] }),
6872
- action ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7148
+ action ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6873
7149
  AdsButton,
6874
7150
  {
6875
7151
  className: "shrink-0 rounded-radius-lg",
@@ -6895,7 +7171,7 @@ function AdsToaster({
6895
7171
  ...props
6896
7172
  }) {
6897
7173
  const { messages } = useAdsI18n();
6898
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7174
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6899
7175
  import_sonner.Toaster,
6900
7176
  {
6901
7177
  closeButton: false,
@@ -6913,7 +7189,7 @@ function AdsToaster({
6913
7189
  );
6914
7190
  }
6915
7191
  function toStageNode(intent, title, options) {
6916
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7192
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6917
7193
  AdsToast,
6918
7194
  {
6919
7195
  action: options?.action,
@@ -6927,7 +7203,7 @@ function toStageNode(intent, title, options) {
6927
7203
  function showAdsToast(intent, title, options) {
6928
7204
  const { action, description, icon, ...toastOptions } = options ?? {};
6929
7205
  return import_sonner.toast.custom(
6930
- (id) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
7206
+ (id) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6931
7207
  AdsToast,
6932
7208
  {
6933
7209
  action: action ? {
@@ -6981,10 +7257,10 @@ var AdsToastManager = Object.assign(
6981
7257
  );
6982
7258
 
6983
7259
  // src/components/AdsDialog/index.tsx
6984
- var React63 = __toESM(require("react"), 1);
7260
+ var React64 = __toESM(require("react"), 1);
6985
7261
  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");
7262
+ var import_lucide_react18 = require("lucide-react");
7263
+ var import_jsx_runtime73 = require("react/jsx-runtime");
6988
7264
  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
7265
  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
7266
  var bodyClassName = "min-h-0 flex-1 overflow-y-auto overscroll-contain [scrollbar-gutter:stable]";
@@ -6992,7 +7268,7 @@ var closeButtonClassName = "absolute right-xl top-xl inline-flex h-6 w-6 items-c
6992
7268
  var Dialog = DialogPrimitive.Root;
6993
7269
  var DialogTrigger = DialogPrimitive.Trigger;
6994
7270
  var DialogPortal = DialogPrimitive.Portal;
6995
- var DialogOverlay = React63.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7271
+ var DialogOverlay = React64.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6996
7272
  DialogPrimitive.Overlay,
6997
7273
  {
6998
7274
  className: cn(overlayClassName2, className),
@@ -7001,7 +7277,7 @@ var DialogOverlay = React63.forwardRef(({ className, ...props }, ref) => /* @__P
7001
7277
  }
7002
7278
  ));
7003
7279
  DialogOverlay.displayName = "DialogOverlay";
7004
- var DialogClose = React63.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7280
+ var DialogClose = React64.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7005
7281
  DialogPrimitive.Close,
7006
7282
  {
7007
7283
  className: cn(
@@ -7015,8 +7291,8 @@ var DialogClose = React63.forwardRef(({ className, ...props }, ref) => /* @__PUR
7015
7291
  DialogClose.displayName = "DialogClose";
7016
7292
  function flattenDialogChildren(children) {
7017
7293
  const nodes = [];
7018
- React63.Children.forEach(children, (child) => {
7019
- if (React63.isValidElement(child) && child.type === React63.Fragment) {
7294
+ React64.Children.forEach(children, (child) => {
7295
+ if (React64.isValidElement(child) && child.type === React64.Fragment) {
7020
7296
  nodes.push(...flattenDialogChildren(child.props.children));
7021
7297
  return;
7022
7298
  }
@@ -7025,10 +7301,10 @@ function flattenDialogChildren(children) {
7025
7301
  return nodes;
7026
7302
  }
7027
7303
  function isDialogSlotElement(child, component) {
7028
- return React63.isValidElement(child) && child.type === component;
7304
+ return React64.isValidElement(child) && child.type === component;
7029
7305
  }
7030
- var DialogBody = React63.forwardRef(
7031
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7306
+ var DialogBody = React64.forwardRef(
7307
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7032
7308
  "div",
7033
7309
  {
7034
7310
  className: cn(bodyClassName, className),
@@ -7039,7 +7315,7 @@ var DialogBody = React63.forwardRef(
7039
7315
  )
7040
7316
  );
7041
7317
  DialogBody.displayName = "DialogBody";
7042
- var DialogContent = React63.forwardRef(
7318
+ var DialogContent = React64.forwardRef(
7043
7319
  ({
7044
7320
  children,
7045
7321
  className,
@@ -7096,9 +7372,9 @@ var DialogContent = React63.forwardRef(
7096
7372
  const looseBodyNodes = bodyNodes.filter(
7097
7373
  (child) => !isDialogSlotElement(child, DialogBody)
7098
7374
  );
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)(
7375
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(NestedDismissableLayerProvider, { coordinator: parentLayer.coordinator, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(DialogPortal, { children: [
7376
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DialogOverlay, {}),
7377
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7102
7378
  DialogPrimitive.Content,
7103
7379
  {
7104
7380
  "data-slot": "ads-dialog-content",
@@ -7114,18 +7390,18 @@ var DialogContent = React63.forwardRef(
7114
7390
  ...props,
7115
7391
  children: [
7116
7392
  headerNode,
7117
- headerNode === null && generatedHeaderNodes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(DialogHeader, { children: generatedHeaderNodes }) : null,
7393
+ headerNode === null && generatedHeaderNodes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DialogHeader, { children: generatedHeaderNodes }) : null,
7118
7394
  explicitBodyNodes.length > 0 ? explicitBodyNodes : null,
7119
- looseBodyNodes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(DialogBody, { children: looseBodyNodes }) : null,
7395
+ looseBodyNodes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DialogBody, { children: looseBodyNodes }) : null,
7120
7396
  footerNode,
7121
- !hideCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
7397
+ !hideCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7122
7398
  DialogPrimitive.Close,
7123
7399
  {
7124
7400
  "aria-label": resolvedCloseLabel,
7125
7401
  className: cn(closeButtonClassName, adsTextColorClassName.card),
7126
7402
  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 })
7403
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react18.X, { "aria-hidden": true, className: "h-4 w-4" }),
7404
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "sr-only", children: resolvedCloseLabel })
7129
7405
  ]
7130
7406
  }
7131
7407
  ) : null
@@ -7136,8 +7412,8 @@ var DialogContent = React63.forwardRef(
7136
7412
  }
7137
7413
  );
7138
7414
  DialogContent.displayName = "DialogContent";
7139
- var DialogHeader = React63.forwardRef(
7140
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7415
+ var DialogHeader = React64.forwardRef(
7416
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7141
7417
  "div",
7142
7418
  {
7143
7419
  "data-slot": "ads-dialog-header",
@@ -7148,8 +7424,8 @@ var DialogHeader = React63.forwardRef(
7148
7424
  )
7149
7425
  );
7150
7426
  DialogHeader.displayName = "DialogHeader";
7151
- var DialogFooter = React63.forwardRef(
7152
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7427
+ var DialogFooter = React64.forwardRef(
7428
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7153
7429
  "div",
7154
7430
  {
7155
7431
  "data-slot": "ads-dialog-footer",
@@ -7163,7 +7439,7 @@ var DialogFooter = React63.forwardRef(
7163
7439
  )
7164
7440
  );
7165
7441
  DialogFooter.displayName = "DialogFooter";
7166
- var DialogTitle = React63.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7442
+ var DialogTitle = React64.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7167
7443
  DialogPrimitive.Title,
7168
7444
  {
7169
7445
  className: cn(
@@ -7176,7 +7452,7 @@ var DialogTitle = React63.forwardRef(({ className, ...props }, ref) => /* @__PUR
7176
7452
  }
7177
7453
  ));
7178
7454
  DialogTitle.displayName = "DialogTitle";
7179
- var DialogDescription = React63.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7455
+ var DialogDescription = React64.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7180
7456
  DialogPrimitive.Description,
7181
7457
  {
7182
7458
  className: cn("text-sm leading-5", adsTextColorClassName.muted, className),
@@ -7199,7 +7475,7 @@ var AdsDialogDescription = DialogDescription;
7199
7475
 
7200
7476
  // src/components/AdsMasonry/index.tsx
7201
7477
  var import_masonic = require("masonic");
7202
- var import_jsx_runtime73 = require("react/jsx-runtime");
7478
+ var import_jsx_runtime74 = require("react/jsx-runtime");
7203
7479
  var DEFAULT_COLUMN_WIDTH = 240;
7204
7480
  var DEFAULT_GAP = 16;
7205
7481
  var DEFAULT_ITEM_HEIGHT_ESTIMATE = 280;
@@ -7235,7 +7511,7 @@ function AdsMasonry({
7235
7511
  { length: loadingItemCount },
7236
7512
  (_, index) => index
7237
7513
  );
7238
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7514
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7239
7515
  "div",
7240
7516
  {
7241
7517
  className: cn(
@@ -7247,20 +7523,20 @@ function AdsMasonry({
7247
7523
  const mediaHeight = LOADING_MEDIA_HEIGHT_PATTERN[index % LOADING_MEDIA_HEIGHT_PATTERN.length];
7248
7524
  const titleWidth = LOADING_TITLE_WIDTH_PATTERN[index % LOADING_TITLE_WIDTH_PATTERN.length];
7249
7525
  const bodyWidth = LOADING_BODY_WIDTH_PATTERN[index % LOADING_BODY_WIDTH_PATTERN.length];
7250
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7526
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7251
7527
  "article",
7252
7528
  {
7253
7529
  className: "overflow-hidden rounded-radius-lg border border-border bg-card shadow-showcase",
7254
7530
  "data-slot": "ads-masonry-loading-card",
7255
7531
  "data-testid": "ads-masonry-loading-card",
7256
7532
  children: [
7257
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7533
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7258
7534
  "div",
7259
7535
  {
7260
7536
  className: "border-b border-border/60 bg-surface-inset/50",
7261
7537
  "data-slot": "ads-masonry-skeleton-preview",
7262
7538
  "data-testid": "ads-masonry-skeleton-preview",
7263
- children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7539
+ children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7264
7540
  AdsSkeleton,
7265
7541
  {
7266
7542
  className: cn("w-full rounded-none", classNames?.skeleton),
@@ -7271,10 +7547,10 @@ function AdsMasonry({
7271
7547
  )
7272
7548
  }
7273
7549
  ),
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)(
7550
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex flex-col gap-4 p-lg", children: [
7551
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
7552
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex-1 space-y-2", children: [
7553
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7278
7554
  AdsSkeleton,
7279
7555
  {
7280
7556
  className: cn("h-3 w-16 rounded-full", classNames?.skeleton),
@@ -7282,7 +7558,7 @@ function AdsMasonry({
7282
7558
  "data-testid": "ads-masonry-skeleton"
7283
7559
  }
7284
7560
  ),
7285
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7561
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7286
7562
  AdsSkeleton,
7287
7563
  {
7288
7564
  className: cn("h-6 rounded-full", classNames?.skeleton),
@@ -7292,7 +7568,7 @@ function AdsMasonry({
7292
7568
  }
7293
7569
  )
7294
7570
  ] }),
7295
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7571
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7296
7572
  AdsSkeleton,
7297
7573
  {
7298
7574
  className: cn("h-6 w-16 rounded-full", classNames?.skeleton),
@@ -7301,7 +7577,7 @@ function AdsMasonry({
7301
7577
  }
7302
7578
  )
7303
7579
  ] }),
7304
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7580
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7305
7581
  AdsSkeleton,
7306
7582
  {
7307
7583
  className: cn("h-4 rounded-full", classNames?.skeleton),
@@ -7320,7 +7596,7 @@ function AdsMasonry({
7320
7596
  );
7321
7597
  }
7322
7598
  if (items.length === 0) {
7323
- return emptyState ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7599
+ return emptyState ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7324
7600
  "div",
7325
7601
  {
7326
7602
  className: cn(rootClassName, classNames?.empty),
@@ -7329,7 +7605,7 @@ function AdsMasonry({
7329
7605
  }
7330
7606
  ) : null;
7331
7607
  }
7332
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7608
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7333
7609
  import_masonic.Masonry,
7334
7610
  {
7335
7611
  className: rootClassName,
@@ -7341,7 +7617,7 @@ function AdsMasonry({
7341
7617
  maxColumnCount,
7342
7618
  onRender,
7343
7619
  overscanBy,
7344
- render: ({ data, index, width }) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7620
+ render: ({ data, index, width }) => /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7345
7621
  "div",
7346
7622
  {
7347
7623
  className: cn("pb-0", classNames?.item, itemClassName),
@@ -7503,6 +7779,7 @@ var designTokens = {
7503
7779
  AdsInputOTPGroup,
7504
7780
  AdsInputOTPSeparator,
7505
7781
  AdsInputOTPSlot,
7782
+ AdsLineChart,
7506
7783
  AdsMasonry,
7507
7784
  AdsPagination,
7508
7785
  AdsPaginationContent,