@adsgency_npm/adsgency-ads-ui 0.1.0-alpha.13 → 0.1.0-alpha.15

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
@@ -2596,6 +2596,7 @@ AdsSkeleton.displayName = "AdsSkeleton";
2596
2596
 
2597
2597
  // src/components/AdsInput/index.tsx
2598
2598
  var React29 = __toESM(require("react"), 1);
2599
+ var import_lucide_react10 = require("lucide-react");
2599
2600
 
2600
2601
  // src/lib/adsClearButton.tsx
2601
2602
  var React28 = __toESM(require("react"), 1);
@@ -2622,6 +2623,11 @@ var inputSizeClasses = {
2622
2623
  md: "h-9 text-base leading-6",
2623
2624
  lg: "h-10 text-base leading-6"
2624
2625
  };
2626
+ var fileTriggerSizeClasses = {
2627
+ sm: "h-8 px-md py-sm",
2628
+ md: "h-9 px-lg py-sm",
2629
+ lg: "h-10 px-xl py-[10px]"
2630
+ };
2625
2631
  function assignInputRef(ref, value) {
2626
2632
  if (typeof ref === "function") {
2627
2633
  ref(value);
@@ -2640,6 +2646,17 @@ function getTextInputValue(value) {
2640
2646
  }
2641
2647
  return "";
2642
2648
  }
2649
+ function renderFileTriggerIcon(icon) {
2650
+ if (!icon) {
2651
+ return null;
2652
+ }
2653
+ if (React29.isValidElement(icon)) {
2654
+ return React29.cloneElement(icon, {
2655
+ className: cn("!h-4 !w-4 h-4 w-4", icon.props.className)
2656
+ });
2657
+ }
2658
+ return icon;
2659
+ }
2643
2660
  function getInputSurfaceClassName({
2644
2661
  className,
2645
2662
  errorText,
@@ -2666,6 +2683,7 @@ var AdsInput = React29.forwardRef(
2666
2683
  descriptionPlacement = "below",
2667
2684
  emptyFileLabel,
2668
2685
  errorText,
2686
+ fileTriggerIcon = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react10.Upload, { "aria-hidden": true, className: "h-4 w-4" }),
2669
2687
  fileTriggerLabel,
2670
2688
  helperText,
2671
2689
  id,
@@ -2706,6 +2724,7 @@ var AdsInput = React29.forwardRef(
2706
2724
  });
2707
2725
  const resolvedClearButtonLabel = clearButtonLabel ?? messages.input.clear;
2708
2726
  const resolvedFileTriggerLabel = fileTriggerLabel ?? messages.input.chooseFile;
2727
+ const resolvedFileTriggerIcon = renderFileTriggerIcon(fileTriggerIcon);
2709
2728
  const resolvedEmptyFileLabel = emptyFileLabel ?? messages.input.noFileChosen;
2710
2729
  const handleChange = React29.useCallback(
2711
2730
  (event) => {
@@ -2736,7 +2755,7 @@ var AdsInput = React29.forwardRef(
2736
2755
  const fileNameText = selectedFiles.length > 0 ? selectedFiles.join(", ") : resolvedEmptyFileLabel;
2737
2756
  const helperNode = helperText ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(AdsFieldDescription, { id: description.helperId, children: helperText }) : null;
2738
2757
  const errorNode = errorText ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(AdsFieldError, { id: description.errorId, children: errorText }) : null;
2739
- const inputNode = isFileInput ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "relative flex w-full min-w-0 flex-1 items-center", children: [
2758
+ const inputNode = isFileInput ? /* @__PURE__ */ (0, import_jsx_runtime32.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: [
2740
2759
  /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2741
2760
  Input,
2742
2761
  {
@@ -2762,20 +2781,23 @@ var AdsInput = React29.forwardRef(
2762
2781
  {
2763
2782
  "aria-hidden": "true",
2764
2783
  className: cn(
2765
- inputSurfaceClassName,
2766
- adsTextColorClassName.card,
2767
- "items-center text-sm leading-5",
2784
+ "flex w-full min-w-0 items-center gap-sm text-sm leading-5",
2768
2785
  props.disabled ? "cursor-not-allowed opacity-50" : void 0
2769
2786
  ),
2770
2787
  children: [
2771
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2788
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
2772
2789
  "span",
2773
2790
  {
2791
+ "data-ads-file-trigger": "",
2774
2792
  className: cn(
2775
- "shrink-0 pr-sm text-sm font-medium leading-5",
2776
- adsTextColorClassName.card
2793
+ "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",
2794
+ fileTriggerSizeClasses[size],
2795
+ adsTextColorClassName.primary
2777
2796
  ),
2778
- children: resolvedFileTriggerLabel
2797
+ children: [
2798
+ resolvedFileTriggerIcon ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "inline-flex h-4 w-4 items-center justify-center [&>svg]:!h-4 [&>svg]:!w-4", children: resolvedFileTriggerIcon }) : null,
2799
+ resolvedFileTriggerLabel
2800
+ ]
2779
2801
  }
2780
2802
  ),
2781
2803
  /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
@@ -3066,7 +3088,7 @@ var React33 = __toESM(require("react"), 1);
3066
3088
  // src/primitives/input-otp.tsx
3067
3089
  var React32 = __toESM(require("react"), 1);
3068
3090
  var import_input_otp = require("input-otp");
3069
- var import_lucide_react10 = require("lucide-react");
3091
+ var import_lucide_react11 = require("lucide-react");
3070
3092
  var import_jsx_runtime35 = require("react/jsx-runtime");
3071
3093
  var InputOTP = React32.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3072
3094
  import_input_otp.OTPInput,
@@ -3104,7 +3126,7 @@ var InputOTPSlot = React32.forwardRef(({ index, className, ...props }, ref) => {
3104
3126
  );
3105
3127
  });
3106
3128
  InputOTPSlot.displayName = "InputOTPSlot";
3107
- var InputOTPSeparator = React32.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react10.Dot, {}) }));
3129
+ var InputOTPSeparator = React32.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react11.Dot, {}) }));
3108
3130
  InputOTPSeparator.displayName = "InputOTPSeparator";
3109
3131
 
3110
3132
  // src/components/AdsInputOTP/index.tsx
@@ -3232,11 +3254,11 @@ var React37 = __toESM(require("react"), 1);
3232
3254
 
3233
3255
  // src/components/AdsPagination/index.tsx
3234
3256
  var React35 = __toESM(require("react"), 1);
3235
- var import_lucide_react12 = require("lucide-react");
3257
+ var import_lucide_react13 = require("lucide-react");
3236
3258
 
3237
3259
  // src/primitives/pagination.tsx
3238
3260
  var React34 = __toESM(require("react"), 1);
3239
- var import_lucide_react11 = require("lucide-react");
3261
+ var import_lucide_react12 = require("lucide-react");
3240
3262
  var import_jsx_runtime37 = require("react/jsx-runtime");
3241
3263
  var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3242
3264
  "nav",
@@ -3290,7 +3312,7 @@ var PaginationPrevious = ({
3290
3312
  className: cn("gap-1 pl-2.5", className),
3291
3313
  ...props,
3292
3314
  children: [
3293
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react11.ChevronLeft, { className: "h-4 w-4" }),
3315
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react12.ChevronLeft, { className: "h-4 w-4" }),
3294
3316
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { children: "Previous" })
3295
3317
  ]
3296
3318
  }
@@ -3308,7 +3330,7 @@ var PaginationNext = ({
3308
3330
  ...props,
3309
3331
  children: [
3310
3332
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { children: "Next" }),
3311
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react11.ChevronRight, { className: "h-4 w-4" })
3333
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react12.ChevronRight, { className: "h-4 w-4" })
3312
3334
  ]
3313
3335
  }
3314
3336
  );
@@ -3323,7 +3345,7 @@ var PaginationEllipsis = ({
3323
3345
  className: cn("flex h-9 w-9 items-center justify-center", className),
3324
3346
  ...props,
3325
3347
  children: [
3326
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react11.MoreHorizontal, { className: "h-4 w-4" }),
3348
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react12.MoreHorizontal, { className: "h-4 w-4" }),
3327
3349
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "sr-only", children: "More pages" })
3328
3350
  ]
3329
3351
  }
@@ -3378,7 +3400,7 @@ var AdsPaginationPrevious = React35.forwardRef(({ "aria-label": ariaLabel, child
3378
3400
  ref,
3379
3401
  ...props,
3380
3402
  children: [
3381
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react12.ChevronLeft, { "aria-hidden": true, className: "h-4 w-4" }),
3403
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react13.ChevronLeft, { "aria-hidden": true, className: "h-4 w-4" }),
3382
3404
  /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { children: label })
3383
3405
  ]
3384
3406
  }
@@ -3398,7 +3420,7 @@ var AdsPaginationNext = React35.forwardRef(
3398
3420
  ...props,
3399
3421
  children: [
3400
3422
  /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { children: label }),
3401
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react12.ChevronRight, { "aria-hidden": true, className: "h-4 w-4" })
3423
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react13.ChevronRight, { "aria-hidden": true, className: "h-4 w-4" })
3402
3424
  ]
3403
3425
  }
3404
3426
  );
@@ -3422,7 +3444,7 @@ function AdsPaginationEllipsis({
3422
3444
  ),
3423
3445
  ...props,
3424
3446
  children: [
3425
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react12.MoreHorizontal, { className: "h-4 w-4" }),
3447
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react13.MoreHorizontal, { className: "h-4 w-4" }),
3426
3448
  /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "sr-only", children: resolvedLabel })
3427
3449
  ]
3428
3450
  }
@@ -3941,7 +3963,7 @@ function AdsDataPagination({
3941
3963
 
3942
3964
  // src/components/AdsDataTable/index.tsx
3943
3965
  var React42 = __toESM(require("react"), 1);
3944
- var import_lucide_react15 = require("lucide-react");
3966
+ var import_lucide_react16 = require("lucide-react");
3945
3967
 
3946
3968
  // src/components/AdsEmpty/index.tsx
3947
3969
  var import_class_variance_authority9 = require("class-variance-authority");
@@ -4048,7 +4070,7 @@ function AdsEmptyFooter({ className, ...props }) {
4048
4070
 
4049
4071
  // src/components/AdsTable/index.tsx
4050
4072
  var React41 = __toESM(require("react"), 1);
4051
- var import_lucide_react14 = require("lucide-react");
4073
+ var import_lucide_react15 = require("lucide-react");
4052
4074
 
4053
4075
  // src/components/AdsRadioGroup/index.tsx
4054
4076
  var React39 = __toESM(require("react"), 1);
@@ -4056,7 +4078,7 @@ var React39 = __toESM(require("react"), 1);
4056
4078
  // src/primitives/radio-group.tsx
4057
4079
  var React38 = __toESM(require("react"), 1);
4058
4080
  var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
4059
- var import_lucide_react13 = require("lucide-react");
4081
+ var import_lucide_react14 = require("lucide-react");
4060
4082
  var import_jsx_runtime42 = require("react/jsx-runtime");
4061
4083
  var RadioGroup = React38.forwardRef(({ className, ...props }, ref) => {
4062
4084
  return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
@@ -4079,7 +4101,7 @@ var RadioGroupItem = React38.forwardRef(({ className, ...props }, ref) => {
4079
4101
  className
4080
4102
  ),
4081
4103
  ...props,
4082
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react13.Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
4104
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react14.Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
4083
4105
  }
4084
4106
  );
4085
4107
  });
@@ -4483,7 +4505,7 @@ var AdsTableSortHeader = React41.forwardRef(
4483
4505
  variant: "ghost",
4484
4506
  children: [
4485
4507
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "truncate", children: title }),
4486
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "inline-flex h-4 w-4 items-center justify-center text-icon-muted", children: sortOrder === "ascend" ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react14.ChevronDown, { className: "h-4 w-4 rotate-180" }) : sortOrder === "descend" ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react14.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react14.ChevronDown, { className: "h-4 w-4 opacity-60" }) })
4508
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "inline-flex h-4 w-4 items-center justify-center text-icon-muted", children: sortOrder === "ascend" ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4 rotate-180" }) : sortOrder === "descend" ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4 opacity-60" }) })
4487
4509
  ]
4488
4510
  }
4489
4511
  ) });
@@ -4547,7 +4569,7 @@ var AdsTableExpandCell = React41.forwardRef(
4547
4569
  size: "sm",
4548
4570
  type: "button",
4549
4571
  variant: "ghost",
4550
- children: expanded ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react14.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react14.ChevronRight, { className: "h-4 w-4" })
4572
+ children: expanded ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react15.ChevronRight, { className: "h-4 w-4" })
4551
4573
  }
4552
4574
  ) }) });
4553
4575
  }
@@ -5163,7 +5185,7 @@ function AdsDataTable({
5163
5185
  variant: "ghost",
5164
5186
  children: [
5165
5187
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "truncate", children: headerTitle }),
5166
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "inline-flex h-4 w-4 items-center justify-center text-icon-muted", children: columnSortOrder === "ascend" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4 rotate-180" }) : columnSortOrder === "descend" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4 opacity-60" }) })
5188
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "inline-flex h-4 w-4 items-center justify-center text-icon-muted", children: columnSortOrder === "ascend" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react16.ChevronDown, { className: "h-4 w-4 rotate-180" }) : columnSortOrder === "descend" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react16.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react16.ChevronDown, { className: "h-4 w-4 opacity-60" }) })
5167
5189
  ]
5168
5190
  }
5169
5191
  ) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "truncate", children: headerTitle }),
@@ -5180,7 +5202,7 @@ function AdsDataTable({
5180
5202
  size: "sm",
5181
5203
  type: "button",
5182
5204
  variant: "ghost",
5183
- children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.Filter, { className: "h-3.5 w-3.5" })
5205
+ children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react16.Filter, { className: "h-3.5 w-3.5" })
5184
5206
  }
5185
5207
  ) }),
5186
5208
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(AdsPopoverContent, { align: "end", className: "w-64", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
@@ -6134,15 +6156,15 @@ AdsTooltipArrow.displayName = "AdsTooltipArrow";
6134
6156
 
6135
6157
  // src/components/AdsToast/index.tsx
6136
6158
  var React58 = __toESM(require("react"), 1);
6137
- var import_lucide_react16 = require("lucide-react");
6159
+ var import_lucide_react17 = require("lucide-react");
6138
6160
  var import_sonner = require("sonner");
6139
6161
  var import_jsx_runtime64 = require("react/jsx-runtime");
6140
6162
  var adsToastIconMap = {
6141
- success: import_lucide_react16.CircleCheck,
6142
- info: import_lucide_react16.Info,
6143
- warning: import_lucide_react16.TriangleAlert,
6144
- error: import_lucide_react16.OctagonX,
6145
- loading: import_lucide_react16.LoaderCircle
6163
+ success: import_lucide_react17.CircleCheck,
6164
+ info: import_lucide_react17.Info,
6165
+ warning: import_lucide_react17.TriangleAlert,
6166
+ error: import_lucide_react17.OctagonX,
6167
+ loading: import_lucide_react17.LoaderCircle
6146
6168
  };
6147
6169
  function resolveToastIcon(intent, icon) {
6148
6170
  if (icon) {
@@ -6327,7 +6349,7 @@ var AdsToastManager = Object.assign(
6327
6349
  // src/components/AdsDialog/index.tsx
6328
6350
  var React59 = __toESM(require("react"), 1);
6329
6351
  var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
6330
- var import_lucide_react17 = require("lucide-react");
6352
+ var import_lucide_react18 = require("lucide-react");
6331
6353
  var import_jsx_runtime65 = require("react/jsx-runtime");
6332
6354
  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";
6333
6355
  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%]";
@@ -6453,7 +6475,7 @@ var DialogContent = React59.forwardRef(
6453
6475
  "aria-label": resolvedCloseLabel,
6454
6476
  className: cn(closeButtonClassName, adsTextColorClassName.card),
6455
6477
  children: [
6456
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react17.X, { "aria-hidden": true, className: "h-4 w-4" }),
6478
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react18.X, { "aria-hidden": true, className: "h-4 w-4" }),
6457
6479
  /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "sr-only", children: resolvedCloseLabel })
6458
6480
  ]
6459
6481
  }