@espressif/dashboard-ui-components 1.1.3 → 1.2.1

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.
@@ -1,9 +1,9 @@
1
1
  import { Card, CardHeader, CardTitle, CardDescription, CardContent, Label, Badge, Popover, PopoverTrigger, PopoverContent, resolveVariantStyles, VariantGradientUnderlay, PRESET_GRADIENT_BACKDROP, PRESET_GRADIENT_FRAME, VARIANT_GRADIENT_BACKDROP_BASE, SILVER_GRADIENT_BACKDROP, VARIANT_GRADIENT_HOVER_OVERLAY_CLASS, arbitraryGradientBackgroundImage, SilverShineOverlay, SilverMetallicBorderOverlay, buttonGroupVariants, useIsInView } from './chunk-JPMN2UMF.js';
2
- import { Button, Input, Tooltip2, TooltipProvider, buttonVariants as buttonVariants$1, inputLabelClassName, CopyButton, Link, Tooltip, TooltipTrigger, TooltipContent, HighlightItem, Slot as Slot$1, Highlight, ScrollArea, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuCheckboxItem } from './chunk-34PXJOCS.js';
2
+ import { Button, inputLabelClassName, Input, Tooltip2, TooltipProvider, buttonVariants as buttonVariants$1, CopyButton, Link, Tooltip, TooltipTrigger, TooltipContent, HighlightItem, Slot as Slot$1, Highlight, ScrollArea, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuCheckboxItem } from './chunk-34PXJOCS.js';
3
3
  import { getStrictContext, buttonVariants, Separator, CollapsibleContent, Collapsible, CollapsibleTrigger, Skeleton, Avatar, AvatarFallback, useControlledState } from './chunk-F5P6S7K2.js';
4
4
  import { cn, resolveColor, isPresetColor } from './chunk-VU4CZ76T.js';
5
5
  import { __commonJS, __toESM } from './chunk-TRTQSARU.js';
6
- import { ChevronDown, ChevronUp, Check, Upload, X, LoaderCircle, Triangle, Info, Search, ClockIcon, Crown, ShieldCheck, Tag as Tag$1, ChevronRight, CircleAlert, Eye, EyeOff, Circle, FileCheck, CheckCheck, TriangleAlert, CircleX, ChevronsUpDown, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, CalendarIcon, CalendarRangeIcon, CheckIcon, ChevronLeft, Columns2, ChevronsRight, ChevronsLeft, XIcon, MoveLeft, CircleIcon, Bolt, Plus, ArrowRight, Trash2, Clock, XCircle, CheckCircle2 } from 'lucide-react';
6
+ import { ChevronDown, ChevronUp, Check, Upload, X, LoaderCircle, Triangle, Info, MinusIcon, ArrowLeft, ArrowRight, Search, ClockIcon, Crown, ShieldCheck, Tag as Tag$1, ChevronRight, CircleAlert, Eye, EyeOff, Circle, FileCheck, CheckCheck, TriangleAlert, CircleX, ChevronsUpDown, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, CalendarIcon, CalendarRangeIcon, CheckIcon, ChevronLeft, Columns2, ChevronsRight, ChevronsLeft, XIcon, MoveLeft, CircleIcon, Bolt, Plus, Trash2, Clock, XCircle, CheckCircle2 } from 'lucide-react';
7
7
  import * as React8 from 'react';
8
8
  import React8__default, { forwardRef, useMemo, isValidElement, useRef, useState, useCallback, useLayoutEffect, useEffect, useId, Fragment as Fragment$1, Children, cloneElement, createElement } from 'react';
9
9
  import { Switch as Switch$1, ToggleGroup as ToggleGroup$1, Dialog as Dialog$1, Accordion as Accordion$1 } from 'radix-ui';
@@ -19,6 +19,9 @@ import { RadioGroup as RadioGroup$1 } from '@base-ui-components/react/radio-grou
19
19
  import { Radio as Radio$1 } from '@base-ui-components/react/radio';
20
20
  import * as RechartsPrimitive from 'recharts';
21
21
  import { BarChart as BarChart$1, CartesianGrid, XAxis, YAxis, Bar, AreaChart as AreaChart$1, Area, LineChart as LineChart$1, Line, ComposedChart as ComposedChart$1, Cell, PieChart, Pie, Treemap } from 'recharts';
22
+ import { REGEXP_ONLY_DIGITS_AND_CHARS, REGEXP_ONLY_DIGITS, OTPInput, OTPInputContext } from 'input-otp';
23
+ import Autoplay from 'embla-carousel-autoplay';
24
+ import useEmblaCarousel from 'embla-carousel-react';
22
25
  import { Command as Command$1 } from 'cmdk';
23
26
  import { getDefaultClassNames, DayPicker } from 'react-day-picker';
24
27
  import { format, endOfMonth, startOfMonth, sub, endOfDay, startOfDay, endOfYear, startOfYear, endOfWeek, startOfWeek, parse, isValid } from 'date-fns';
@@ -48783,7 +48786,9 @@ function IconAvatar({
48783
48786
  variant = "legacy",
48784
48787
  ring,
48785
48788
  children,
48786
- className
48789
+ className,
48790
+ discClassName,
48791
+ discStyle
48787
48792
  }) {
48788
48793
  const tinted = resolveTintedBg(color);
48789
48794
  const tintedFill = resolveTintedFill(color);
@@ -48809,9 +48814,13 @@ function IconAvatar({
48809
48814
  {
48810
48815
  className: cn(
48811
48816
  "absolute inset-0 z-0 overflow-hidden rounded-full",
48812
- variantSurface?.className ?? tintedFill.className
48817
+ variantSurface?.className ?? tintedFill.className,
48818
+ discClassName
48813
48819
  ),
48814
- style: variantSurface?.style ?? tintedFill.style,
48820
+ style: {
48821
+ ...variantSurface?.style ?? tintedFill.style,
48822
+ ...discStyle
48823
+ },
48815
48824
  children: variantSurface?.underlay
48816
48825
  }
48817
48826
  ),
@@ -48856,13 +48865,15 @@ function IconAvatar({
48856
48865
  "relative z-10 inline-flex items-center justify-center overflow-hidden rounded-full",
48857
48866
  variantSurface?.className ?? tinted.className,
48858
48867
  showRing && "ring-1 ring-offset-0.5 ring-offset-transparent",
48859
- ringBorder?.className
48868
+ ringBorder?.className,
48869
+ discClassName
48860
48870
  ),
48861
48871
  style: {
48862
48872
  width: size,
48863
48873
  height: size,
48864
48874
  ...variantSurface?.style ?? tinted.style,
48865
- ...ringBorder?.style
48875
+ ...ringBorder?.style,
48876
+ ...discStyle
48866
48877
  },
48867
48878
  children: [
48868
48879
  variantSurface?.underlay,
@@ -53368,6 +53379,620 @@ var TreemapChart = React8.forwardRef(
53368
53379
  }
53369
53380
  );
53370
53381
  TreemapChart.displayName = "TreemapChart";
53382
+ var LENGTH_MIN = 2;
53383
+ var LENGTH_MAX = 12;
53384
+ var LENGTH_DEFAULT = 6;
53385
+ var slotSizeClasses = {
53386
+ sm: "h-8 w-8 text-xs",
53387
+ default: "h-10 w-10 text-base md:text-sm",
53388
+ lg: "h-12 w-12 text-lg"
53389
+ };
53390
+ var InputOTPSeparator = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
53391
+ "div",
53392
+ {
53393
+ ref,
53394
+ role: "separator",
53395
+ "aria-hidden": "true",
53396
+ className: cn("flex items-center text-muted-foreground", className),
53397
+ ...props,
53398
+ children: /* @__PURE__ */ jsx(MinusIcon, { size: 16 })
53399
+ }
53400
+ ));
53401
+ InputOTPSeparator.displayName = "InputOTPSeparator";
53402
+ var SlotBox = ({
53403
+ index: index2,
53404
+ size,
53405
+ rounded,
53406
+ hasError,
53407
+ cornerClass
53408
+ }) => {
53409
+ const context = React8.useContext(OTPInputContext);
53410
+ const slot = context.slots[index2];
53411
+ if (!slot) return null;
53412
+ const { char, hasFakeCaret, isActive } = slot;
53413
+ return /* @__PURE__ */ jsxs(
53414
+ "div",
53415
+ {
53416
+ "data-active": isActive || void 0,
53417
+ className: cn(
53418
+ "relative flex items-center justify-center border border-input bg-background font-medium text-foreground shadow-xs",
53419
+ "transition-[box-shadow,border-color] duration-200 ease-in-out",
53420
+ "ring-offset-background",
53421
+ // Focused/active slot gets the same ring treatment `Input` uses on focus.
53422
+ "data-[active=true]:z-10 data-[active=true]:ring-2 data-[active=true]:ring-ring data-[active=true]:ring-offset-2",
53423
+ hasError && "border-destructive data-[active=true]:ring-destructive",
53424
+ rounded ? "rounded-full" : "rounded-md",
53425
+ // The wrapping row overrides the leading/trailing radii on interior
53426
+ // slots so groups read as one connected pill/box.
53427
+ cornerClass,
53428
+ slotSizeClasses[size]
53429
+ ),
53430
+ children: [
53431
+ char,
53432
+ hasFakeCaret && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) })
53433
+ ]
53434
+ }
53435
+ );
53436
+ };
53437
+ function buildGroups(length2, separators) {
53438
+ if (!separators || separators.length === 0) {
53439
+ return [Array.from({ length: length2 }, (_, i) => i)];
53440
+ }
53441
+ const sum2 = separators.reduce((a, b) => a + b, 0);
53442
+ if (sum2 !== length2) {
53443
+ console.warn(
53444
+ `[InputOTP] separators sum (${sum2}) does not equal length (${length2}); ignoring separators.`
53445
+ );
53446
+ return [Array.from({ length: length2 }, (_, i) => i)];
53447
+ }
53448
+ const groups = [];
53449
+ let cursor = 0;
53450
+ for (const size of separators) {
53451
+ groups.push(Array.from({ length: size }, (_, i) => cursor + i));
53452
+ cursor += size;
53453
+ }
53454
+ return groups;
53455
+ }
53456
+ function clampLength(raw) {
53457
+ if (raw === void 0) return LENGTH_DEFAULT;
53458
+ if (!Number.isFinite(raw)) return LENGTH_DEFAULT;
53459
+ const rounded = Math.floor(raw);
53460
+ if (rounded < LENGTH_MIN) {
53461
+ console.warn(
53462
+ `[InputOTP] length=${raw} is below the minimum ${LENGTH_MIN}; using ${LENGTH_MIN}.`
53463
+ );
53464
+ return LENGTH_MIN;
53465
+ }
53466
+ if (rounded > LENGTH_MAX) {
53467
+ console.warn(
53468
+ `[InputOTP] length=${raw} is above the maximum ${LENGTH_MAX}; using ${LENGTH_MAX}.`
53469
+ );
53470
+ return LENGTH_MAX;
53471
+ }
53472
+ return rounded;
53473
+ }
53474
+ var InputOTP = React8.forwardRef(
53475
+ ({
53476
+ length: length2,
53477
+ allowAlphaNumeric,
53478
+ regex,
53479
+ separators,
53480
+ value: value2,
53481
+ defaultValue,
53482
+ onChange,
53483
+ onComplete,
53484
+ label,
53485
+ required,
53486
+ size,
53487
+ rounded,
53488
+ disabled,
53489
+ startHelperContent,
53490
+ endHelperContent,
53491
+ hintContent,
53492
+ error,
53493
+ errorContent,
53494
+ id,
53495
+ name: name2,
53496
+ autoFocus,
53497
+ autoComplete,
53498
+ className,
53499
+ containerClassName,
53500
+ ...restProps
53501
+ }, ref) => {
53502
+ const autoId = React8.useId();
53503
+ const inputId = id || autoId;
53504
+ const effectiveLength = React8.useMemo(() => clampLength(length2), [length2]);
53505
+ const effectiveSize = size || "default";
53506
+ const hasError = !!error || !!errorContent;
53507
+ const isControlled = value2 !== void 0;
53508
+ const [uncontrolledValue, setUncontrolledValue] = React8.useState(
53509
+ typeof defaultValue === "string" ? defaultValue : ""
53510
+ );
53511
+ const effectiveValue = isControlled ? value2 : uncontrolledValue;
53512
+ const handleChange = React8.useCallback(
53513
+ (next) => {
53514
+ if (!isControlled) setUncontrolledValue(next);
53515
+ onChange?.(next);
53516
+ },
53517
+ [isControlled, onChange]
53518
+ );
53519
+ const pattern = regex && regex.length > 0 ? regex : allowAlphaNumeric ? REGEXP_ONLY_DIGITS_AND_CHARS : REGEXP_ONLY_DIGITS;
53520
+ const groups = React8.useMemo(
53521
+ () => buildGroups(effectiveLength, separators),
53522
+ [effectiveLength, separators]
53523
+ );
53524
+ const helperStartId = `${inputId}-helper-start`;
53525
+ const helperEndId = `${inputId}-helper-end`;
53526
+ const describedBy = [
53527
+ errorContent && `${inputId}-error`,
53528
+ startHelperContent && !errorContent && helperStartId,
53529
+ endHelperContent && !errorContent && helperEndId
53530
+ ].filter(Boolean).join(" ") || void 0;
53531
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-2 flex-1", "data-disabled": disabled || void 0, children: [
53532
+ label && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
53533
+ /* @__PURE__ */ jsxs("label", { htmlFor: inputId, className: inputLabelClassName, children: [
53534
+ label,
53535
+ required && /* @__PURE__ */ jsx("span", { className: "text-destructive", children: "*" })
53536
+ ] }),
53537
+ hintContent && /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: hintContent })
53538
+ ] }),
53539
+ !label && hintContent && /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: hintContent }),
53540
+ /* @__PURE__ */ jsx(
53541
+ OTPInput,
53542
+ {
53543
+ ref,
53544
+ id: inputId,
53545
+ name: name2,
53546
+ value: effectiveValue,
53547
+ onChange: handleChange,
53548
+ onComplete,
53549
+ maxLength: effectiveLength,
53550
+ pattern,
53551
+ disabled,
53552
+ required,
53553
+ autoFocus,
53554
+ autoComplete: autoComplete ?? "one-time-code",
53555
+ "aria-invalid": hasError || void 0,
53556
+ "aria-describedby": describedBy,
53557
+ containerClassName: cn(
53558
+ "flex items-center gap-2 has-[:disabled]:opacity-50 has-[:disabled]:cursor-not-allowed",
53559
+ containerClassName
53560
+ ),
53561
+ ...restProps,
53562
+ children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
53563
+ groupIndex > 0 && /* @__PURE__ */ jsx(InputOTPSeparator, {}),
53564
+ /* @__PURE__ */ jsx("div", { className: cn("flex items-center", className), children: group.map((slotIndex, positionInGroup) => {
53565
+ const isFirst = positionInGroup === 0;
53566
+ const isLast = positionInGroup === group.length - 1;
53567
+ const cornerClass = cn(
53568
+ !isFirst && "-ms-px rounded-s-none",
53569
+ !isLast && "rounded-e-none"
53570
+ );
53571
+ return /* @__PURE__ */ jsx(
53572
+ SlotBox,
53573
+ {
53574
+ index: slotIndex,
53575
+ size: effectiveSize,
53576
+ rounded: !!rounded,
53577
+ hasError,
53578
+ cornerClass
53579
+ },
53580
+ slotIndex
53581
+ );
53582
+ }) })
53583
+ ] }, `g-${groupIndex}`))
53584
+ }
53585
+ ),
53586
+ errorContent && /* @__PURE__ */ jsx("div", { id: `${inputId}-error`, className: "text-sm text-destructive", children: errorContent }),
53587
+ startHelperContent && !errorContent && /* @__PURE__ */ jsx("div", { id: helperStartId, className: "text-sm text-muted-foreground", children: startHelperContent }),
53588
+ endHelperContent && !errorContent && /* @__PURE__ */ jsx(
53589
+ "div",
53590
+ {
53591
+ id: helperEndId,
53592
+ className: "text-sm text-end text-muted-foreground",
53593
+ children: endHelperContent
53594
+ }
53595
+ )
53596
+ ] });
53597
+ }
53598
+ );
53599
+ InputOTP.displayName = "InputOTP";
53600
+ var CarouselContext = React8.createContext(null);
53601
+ function useCarousel() {
53602
+ const context = React8.useContext(CarouselContext);
53603
+ if (!context) {
53604
+ throw new Error("useCarousel must be used within a <Carousel />");
53605
+ }
53606
+ return context;
53607
+ }
53608
+ var Carousel = React8.forwardRef(
53609
+ ({
53610
+ orientation = "horizontal",
53611
+ opts,
53612
+ setApi,
53613
+ plugins,
53614
+ className,
53615
+ children,
53616
+ ...props
53617
+ }, ref) => {
53618
+ const [carouselRef, api] = useEmblaCarousel(
53619
+ {
53620
+ ...opts,
53621
+ axis: orientation === "horizontal" ? "x" : "y"
53622
+ },
53623
+ plugins
53624
+ );
53625
+ const [canScrollPrev, setCanScrollPrev] = React8.useState(false);
53626
+ const [canScrollNext, setCanScrollNext] = React8.useState(false);
53627
+ const onSelect = React8.useCallback((api2) => {
53628
+ if (!api2) return;
53629
+ setCanScrollPrev(api2.canScrollPrev());
53630
+ setCanScrollNext(api2.canScrollNext());
53631
+ }, []);
53632
+ const scrollPrev = React8.useCallback(() => {
53633
+ api?.scrollPrev();
53634
+ }, [api]);
53635
+ const scrollNext = React8.useCallback(() => {
53636
+ api?.scrollNext();
53637
+ }, [api]);
53638
+ const handleKeyDown = React8.useCallback(
53639
+ (event) => {
53640
+ const isHorizontal = orientation === "horizontal";
53641
+ const prevKey = isHorizontal ? "ArrowLeft" : "ArrowUp";
53642
+ const nextKey = isHorizontal ? "ArrowRight" : "ArrowDown";
53643
+ if (event.key === prevKey) {
53644
+ event.preventDefault();
53645
+ scrollPrev();
53646
+ } else if (event.key === nextKey) {
53647
+ event.preventDefault();
53648
+ scrollNext();
53649
+ }
53650
+ },
53651
+ [scrollPrev, scrollNext, orientation]
53652
+ );
53653
+ React8.useEffect(() => {
53654
+ if (!api || !setApi) return;
53655
+ setApi(api);
53656
+ }, [api, setApi]);
53657
+ React8.useEffect(() => {
53658
+ if (!api) return;
53659
+ onSelect(api);
53660
+ api.on("reInit", onSelect);
53661
+ api.on("select", onSelect);
53662
+ return () => {
53663
+ api?.off("select", onSelect);
53664
+ api?.off("reInit", onSelect);
53665
+ };
53666
+ }, [api, onSelect]);
53667
+ return /* @__PURE__ */ jsx(
53668
+ CarouselContext.Provider,
53669
+ {
53670
+ value: {
53671
+ carouselRef,
53672
+ api,
53673
+ opts,
53674
+ orientation,
53675
+ scrollPrev,
53676
+ scrollNext,
53677
+ canScrollPrev,
53678
+ canScrollNext
53679
+ },
53680
+ children: /* @__PURE__ */ jsx(
53681
+ "div",
53682
+ {
53683
+ ref,
53684
+ onKeyDownCapture: handleKeyDown,
53685
+ className: cn("relative", className),
53686
+ role: "region",
53687
+ "aria-roledescription": "carousel",
53688
+ ...props,
53689
+ children
53690
+ }
53691
+ )
53692
+ }
53693
+ );
53694
+ }
53695
+ );
53696
+ Carousel.displayName = "Carousel";
53697
+ var CarouselContent = React8.forwardRef(({ className, ...props }, ref) => {
53698
+ const { carouselRef, orientation } = useCarousel();
53699
+ return (
53700
+ // Vertical carousels need an explicit viewport height so overflow clips at
53701
+ // one slide instead of stretching to hold every slide. `h-full` chains up to
53702
+ // whatever height the wrapper is given (e.g. `className="h-64"`).
53703
+ /* @__PURE__ */ jsx(
53704
+ "div",
53705
+ {
53706
+ ref: carouselRef,
53707
+ className: cn(
53708
+ "overflow-hidden",
53709
+ orientation === "vertical" && "h-full"
53710
+ ),
53711
+ children: /* @__PURE__ */ jsx(
53712
+ "div",
53713
+ {
53714
+ ref,
53715
+ className: cn(
53716
+ "flex",
53717
+ orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col h-full",
53718
+ className
53719
+ ),
53720
+ ...props
53721
+ }
53722
+ )
53723
+ }
53724
+ )
53725
+ );
53726
+ });
53727
+ CarouselContent.displayName = "CarouselContent";
53728
+ var CarouselItem = React8.forwardRef(({ className, ...props }, ref) => {
53729
+ const { orientation } = useCarousel();
53730
+ return /* @__PURE__ */ jsx(
53731
+ "div",
53732
+ {
53733
+ ref,
53734
+ role: "group",
53735
+ "aria-roledescription": "slide",
53736
+ className: cn(
53737
+ "min-w-0 shrink-0 grow-0 basis-full",
53738
+ orientation === "horizontal" ? "pl-4" : "pt-4",
53739
+ className
53740
+ ),
53741
+ ...props
53742
+ }
53743
+ );
53744
+ });
53745
+ CarouselItem.displayName = "CarouselItem";
53746
+ var CarouselPrevious = React8.forwardRef(({ className, ...props }, ref) => {
53747
+ const { orientation, scrollPrev, canScrollPrev } = useCarousel();
53748
+ return /* @__PURE__ */ jsxs(
53749
+ "button",
53750
+ {
53751
+ ref,
53752
+ type: "button",
53753
+ className: cn(
53754
+ buttonVariants({ variant: "outline", size: "icon" }),
53755
+ "absolute h-8 w-8 rounded-full",
53756
+ orientation === "horizontal" ? "left-2 top-1/2 -translate-y-1/2" : "top-2 left-1/2 -translate-x-1/2 rotate-90",
53757
+ className
53758
+ ),
53759
+ disabled: !canScrollPrev,
53760
+ onClick: scrollPrev,
53761
+ ...props,
53762
+ children: [
53763
+ /* @__PURE__ */ jsx(ArrowLeft, { className: "h-4 w-4" }),
53764
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Previous slide" })
53765
+ ]
53766
+ }
53767
+ );
53768
+ });
53769
+ CarouselPrevious.displayName = "CarouselPrevious";
53770
+ var CarouselNext = React8.forwardRef(({ className, ...props }, ref) => {
53771
+ const { orientation, scrollNext, canScrollNext } = useCarousel();
53772
+ return /* @__PURE__ */ jsxs(
53773
+ "button",
53774
+ {
53775
+ ref,
53776
+ type: "button",
53777
+ className: cn(
53778
+ buttonVariants({ variant: "outline", size: "icon" }),
53779
+ "absolute h-8 w-8 rounded-full",
53780
+ orientation === "horizontal" ? "right-2 top-1/2 -translate-y-1/2" : "bottom-2 left-1/2 -translate-x-1/2 rotate-90",
53781
+ className
53782
+ ),
53783
+ disabled: !canScrollNext,
53784
+ onClick: scrollNext,
53785
+ ...props,
53786
+ children: [
53787
+ /* @__PURE__ */ jsx(ArrowRight, { className: "h-4 w-4" }),
53788
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Next slide" })
53789
+ ]
53790
+ }
53791
+ );
53792
+ });
53793
+ CarouselNext.displayName = "CarouselNext";
53794
+ var MAX_DOTS_MIN = 1;
53795
+ var MAX_DOTS_MAX = 10;
53796
+ var MAX_DOTS_DEFAULT = 5;
53797
+ var DELAY_MIN = 1e3;
53798
+ var DELAY_MAX = 1e4;
53799
+ var DELAY_DEFAULT = 3e3;
53800
+ function clamp2(value2, min, max, fallback) {
53801
+ if (!Number.isFinite(value2)) return fallback;
53802
+ return Math.min(max, Math.max(min, Math.floor(value2)));
53803
+ }
53804
+ function getDotWindow(total, maxDots, selectedIndex) {
53805
+ if (total <= maxDots) {
53806
+ return Array.from({ length: total }, (_, i) => i);
53807
+ }
53808
+ const half = Math.floor(maxDots / 2);
53809
+ let start = selectedIndex - half;
53810
+ if (start < 0) start = 0;
53811
+ if (start > total - maxDots) start = total - maxDots;
53812
+ return Array.from({ length: maxDots }, (_, i) => start + i);
53813
+ }
53814
+ function DotsRow({
53815
+ total,
53816
+ maxDots,
53817
+ selectedIndex,
53818
+ orientation,
53819
+ onDotClick
53820
+ }) {
53821
+ const window2 = getDotWindow(total, maxDots, selectedIndex);
53822
+ return /* @__PURE__ */ jsx(
53823
+ "div",
53824
+ {
53825
+ className: cn(
53826
+ "flex items-center justify-center gap-1.5",
53827
+ orientation === "horizontal" ? "mt-3 flex-row" : "ml-3 flex-col"
53828
+ ),
53829
+ role: "tablist",
53830
+ "aria-label": "Carousel pagination",
53831
+ children: window2.map((index2) => {
53832
+ const isActive = index2 === selectedIndex;
53833
+ return /* @__PURE__ */ jsx(
53834
+ "button",
53835
+ {
53836
+ type: "button",
53837
+ role: "tab",
53838
+ "aria-selected": isActive,
53839
+ "aria-label": `Go to slide ${index2 + 1}`,
53840
+ onClick: () => onDotClick(index2),
53841
+ className: cn(
53842
+ "rounded-full transition-all duration-200 ease-out",
53843
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
53844
+ orientation === "horizontal" ? isActive ? "h-2 w-4 bg-foreground" : "h-2 w-2 bg-muted-foreground/40 hover:bg-muted-foreground/60" : isActive ? "h-4 w-2 bg-foreground" : "h-2 w-2 bg-muted-foreground/40 hover:bg-muted-foreground/60"
53845
+ )
53846
+ },
53847
+ index2
53848
+ );
53849
+ })
53850
+ }
53851
+ );
53852
+ }
53853
+ function Carousel2({
53854
+ data: data2,
53855
+ orientation = "horizontal",
53856
+ navigation = "dots",
53857
+ maxDots = MAX_DOTS_DEFAULT,
53858
+ autoplay = false,
53859
+ delay: delay2 = DELAY_DEFAULT,
53860
+ loop = true,
53861
+ onNext,
53862
+ onPrevious,
53863
+ renderNavigation,
53864
+ className,
53865
+ itemClassName
53866
+ }) {
53867
+ const clampedMaxDots = clamp2(
53868
+ maxDots,
53869
+ MAX_DOTS_MIN,
53870
+ MAX_DOTS_MAX,
53871
+ MAX_DOTS_DEFAULT
53872
+ );
53873
+ const clampedDelay = clamp2(delay2, DELAY_MIN, DELAY_MAX, DELAY_DEFAULT);
53874
+ const autoplayPlugin = React8.useRef(
53875
+ autoplay ? Autoplay({ delay: clampedDelay, stopOnInteraction: true }) : null
53876
+ );
53877
+ React8.useEffect(() => {
53878
+ const plugin = autoplayPlugin.current;
53879
+ if (!plugin || !autoplay) return;
53880
+ autoplayPlugin.current = Autoplay({
53881
+ delay: clampedDelay,
53882
+ stopOnInteraction: true
53883
+ });
53884
+ }, [autoplay, clampedDelay]);
53885
+ const plugins = React8.useMemo(
53886
+ () => autoplay && autoplayPlugin.current ? [autoplayPlugin.current] : [],
53887
+ // eslint-disable-next-line react-hooks/exhaustive-deps
53888
+ [autoplay, clampedDelay]
53889
+ );
53890
+ const [api, setApi] = React8.useState();
53891
+ const [selectedIndex, setSelectedIndex] = React8.useState(0);
53892
+ const [scrollSnaps, setScrollSnaps] = React8.useState([]);
53893
+ const [canScrollPrev, setCanScrollPrev] = React8.useState(false);
53894
+ const [canScrollNext, setCanScrollNext] = React8.useState(false);
53895
+ const prevIndexRef = React8.useRef(0);
53896
+ React8.useEffect(() => {
53897
+ if (!api) return;
53898
+ setScrollSnaps(api.scrollSnapList());
53899
+ setSelectedIndex(api.selectedScrollSnap());
53900
+ prevIndexRef.current = api.selectedScrollSnap();
53901
+ const handleSelect = () => {
53902
+ const next = api.selectedScrollSnap();
53903
+ const prev = prevIndexRef.current;
53904
+ const total = api.scrollSnapList().length;
53905
+ const diff = next - prev;
53906
+ const isForward = diff === 1 || loop && diff === -(total - 1);
53907
+ const isBackward = diff === -1 || loop && diff === total - 1;
53908
+ if (isForward) {
53909
+ onNext?.();
53910
+ } else if (isBackward) {
53911
+ onPrevious?.();
53912
+ }
53913
+ prevIndexRef.current = next;
53914
+ setSelectedIndex(next);
53915
+ setCanScrollPrev(api.canScrollPrev());
53916
+ setCanScrollNext(api.canScrollNext());
53917
+ };
53918
+ const handleReInit = () => {
53919
+ setScrollSnaps(api.scrollSnapList());
53920
+ setSelectedIndex(api.selectedScrollSnap());
53921
+ setCanScrollPrev(api.canScrollPrev());
53922
+ setCanScrollNext(api.canScrollNext());
53923
+ };
53924
+ setCanScrollPrev(api.canScrollPrev());
53925
+ setCanScrollNext(api.canScrollNext());
53926
+ api.on("select", handleSelect);
53927
+ api.on("reInit", handleReInit);
53928
+ return () => {
53929
+ api.off("select", handleSelect);
53930
+ api.off("reInit", handleReInit);
53931
+ };
53932
+ }, [api, loop, onNext, onPrevious]);
53933
+ const scrollTo = React8.useCallback(
53934
+ (index2) => api?.scrollTo(index2),
53935
+ [api]
53936
+ );
53937
+ const scrollPrev = React8.useCallback(() => api?.scrollPrev(), [api]);
53938
+ const scrollNext = React8.useCallback(() => api?.scrollNext(), [api]);
53939
+ const navigationState = {
53940
+ canScrollPrev,
53941
+ canScrollNext,
53942
+ selectedIndex,
53943
+ scrollSnaps,
53944
+ scrollPrev,
53945
+ scrollNext,
53946
+ scrollTo
53947
+ };
53948
+ return /* @__PURE__ */ jsxs(
53949
+ "div",
53950
+ {
53951
+ className: cn(
53952
+ orientation === "horizontal" ? "flex flex-col" : "flex flex-row",
53953
+ className
53954
+ ),
53955
+ children: [
53956
+ /* @__PURE__ */ jsxs(
53957
+ Carousel,
53958
+ {
53959
+ setApi,
53960
+ orientation,
53961
+ opts: { loop },
53962
+ plugins,
53963
+ className: "min-w-0 flex-1",
53964
+ children: [
53965
+ /* @__PURE__ */ jsx(CarouselContent, { children: data2.map((item) => /* @__PURE__ */ jsx(CarouselItem, { className: itemClassName, children: item.content }, item.id)) }),
53966
+ navigation === "arrows" && /* @__PURE__ */ jsxs(Fragment, { children: [
53967
+ /* @__PURE__ */ jsx(CarouselPrevious, {}),
53968
+ /* @__PURE__ */ jsx(CarouselNext, {})
53969
+ ] })
53970
+ ]
53971
+ }
53972
+ ),
53973
+ navigation === "dots" && data2.length > 1 && /* @__PURE__ */ jsx(
53974
+ DotsRow,
53975
+ {
53976
+ total: data2.length,
53977
+ maxDots: clampedMaxDots,
53978
+ selectedIndex,
53979
+ orientation,
53980
+ onDotClick: scrollTo
53981
+ }
53982
+ ),
53983
+ navigation === "custom" && renderNavigation && /* @__PURE__ */ jsx(
53984
+ "div",
53985
+ {
53986
+ className: cn(
53987
+ orientation === "horizontal" ? "mt-3" : "ml-3"
53988
+ ),
53989
+ children: renderNavigation(navigationState)
53990
+ }
53991
+ )
53992
+ ]
53993
+ }
53994
+ );
53995
+ }
53371
53996
  var labelClasses = "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50";
53372
53997
  var sizeClasses = {
53373
53998
  sm: "min-h-[60px] px-2 py-1.5 text-xs",
@@ -55799,6 +56424,53 @@ var UserTypeBadge = React8.forwardRef(
55799
56424
  }
55800
56425
  );
55801
56426
  UserTypeBadge.displayName = "UserTypeBadge";
56427
+ var ICON_PX = {
56428
+ sm: 14,
56429
+ default: 16,
56430
+ lg: 18
56431
+ };
56432
+ var statusBadgeSizeVariants = cva(
56433
+ "rounded-full font-normal [&_svg]:shrink-0",
56434
+ {
56435
+ variants: {
56436
+ size: {
56437
+ sm: "gap-1 pl-0.5 pr-1.5 py-0.5 text-xs",
56438
+ default: "gap-1.5 pl-0.5 pr-1.75 py-0.5 text-xs",
56439
+ lg: "gap-1.5 pl-1 pr-2.25 py-1 text-sm"
56440
+ }
56441
+ },
56442
+ defaultVariants: {
56443
+ size: "default"
56444
+ }
56445
+ }
56446
+ );
56447
+ var StatusBadge = React8.forwardRef(
56448
+ ({
56449
+ label,
56450
+ Icon: Icon2,
56451
+ color,
56452
+ variant = "soft",
56453
+ size = "default",
56454
+ isLoading = false,
56455
+ className,
56456
+ ...props
56457
+ }, ref) => {
56458
+ const iconPx = ICON_PX[size];
56459
+ return /* @__PURE__ */ jsx("div", { ref, className: "inline-block", ...props, children: /* @__PURE__ */ jsxs(
56460
+ Badge,
56461
+ {
56462
+ color,
56463
+ variant,
56464
+ className: cn(statusBadgeSizeVariants({ size }), className),
56465
+ children: [
56466
+ isLoading ? /* @__PURE__ */ jsx(Spinner, { size: iconPx, "aria-hidden": true }) : Icon2 ? /* @__PURE__ */ jsx(Icon2, { size: iconPx, "aria-hidden": true }) : null,
56467
+ label
56468
+ ]
56469
+ }
56470
+ ) });
56471
+ }
56472
+ );
56473
+ StatusBadge.displayName = "StatusBadge";
55802
56474
  var NAME_CHIP_TINT = {
55803
56475
  soft: {
55804
56476
  primary: "bg-primary/10",
@@ -56791,17 +57463,6 @@ function DialogDescription2({ className, ...props }) {
56791
57463
  }
56792
57464
  );
56793
57465
  }
56794
- var SOLID_ICON_AVATAR_COLOR = {
56795
- primary: "var(--color-primary-foreground)",
56796
- secondary: "var(--color-secondary-foreground)",
56797
- info: "var(--color-info-foreground)",
56798
- warning: "var(--color-warning-foreground)",
56799
- error: "var(--color-error-foreground)",
56800
- success: "var(--color-success-foreground)",
56801
- disabled: "var(--color-disabled-foreground)",
56802
- gray: "var(--color-gray-foreground)",
56803
- mist: "var(--color-mist-foreground)"
56804
- };
56805
57466
  var SIZE_STYLES2 = {
56806
57467
  sm: {
56807
57468
  rowPad: "p-3",
@@ -56851,12 +57512,21 @@ function iconSized4(icon, iconPx) {
56851
57512
  }
56852
57513
  );
56853
57514
  }
56854
- function resolveIconAvatarColor(variant, cardColor) {
56855
- if (variant !== "solid") return cardColor;
56856
- if (isPresetColor(cardColor)) {
56857
- return SOLID_ICON_AVATAR_COLOR[cardColor];
57515
+ function resolveIconAvatarDefaults(variant, cardColor) {
57516
+ if (variant !== "solid") {
57517
+ return { color: cardColor, variant: void 0 };
56858
57518
  }
56859
- return "#ffffff";
57519
+ const foreground = isPresetColor(cardColor) ? `var(--color-${cardColor}-foreground)` : "#ffffff";
57520
+ return {
57521
+ color: cardColor,
57522
+ variant: "solid",
57523
+ discStyle: {
57524
+ backgroundColor: `color-mix(in srgb, ${foreground} 15%, transparent)`,
57525
+ borderColor: `color-mix(in srgb, ${foreground} 30%, transparent)`,
57526
+ borderStyle: "solid",
57527
+ borderWidth: 1
57528
+ }
57529
+ };
56860
57530
  }
56861
57531
  function hasRenderableDescription(description) {
56862
57532
  if (description === void 0 || description === null) return false;
@@ -56925,7 +57595,7 @@ function useSimpleClickableCardSurface(options) {
56925
57595
  "--tw-ring-color": `color-mix(in srgb, ${color} 90%, transparent)`
56926
57596
  };
56927
57597
  }, [color]);
56928
- const iconAvatarColor = resolveIconAvatarColor(variant, color);
57598
+ const iconAvatarDefaults = resolveIconAvatarDefaults(variant, color);
56929
57599
  return {
56930
57600
  s,
56931
57601
  styles,
@@ -56935,7 +57605,9 @@ function useSimpleClickableCardSurface(options) {
56935
57605
  surfaceContainerClass,
56936
57606
  presetRingClasses,
56937
57607
  ringAccentStyle,
56938
- iconAvatarColor
57608
+ iconAvatarColor: iconAvatarDefaults.color,
57609
+ iconAvatarVariant: iconAvatarDefaults.variant,
57610
+ iconAvatarDiscStyle: iconAvatarDefaults.discStyle
56939
57611
  };
56940
57612
  }
56941
57613
  function useSimpleClickableCardSurfaceShell(options) {
@@ -57037,6 +57709,7 @@ function renderLeadingIconRow(options) {
57037
57709
  iconAvatarColor,
57038
57710
  iconAvatarRingColor,
57039
57711
  iconAvatarVariant,
57712
+ iconAvatarDiscStyle,
57040
57713
  titleBlock,
57041
57714
  descriptionBlock,
57042
57715
  gradientZStyle
@@ -57048,6 +57721,7 @@ function renderLeadingIconRow(options) {
57048
57721
  color: iconAvatarColor,
57049
57722
  variant: iconAvatarVariant,
57050
57723
  ring: { show: true, color: iconAvatarRingColor },
57724
+ discStyle: iconAvatarDiscStyle,
57051
57725
  children: iconSized4(icon, s.iconPx)
57052
57726
  }
57053
57727
  ) : null;
@@ -57163,6 +57837,7 @@ function trailingLeadAndSlot(options) {
57163
57837
  iconAvatarColor,
57164
57838
  iconAvatarRingColor,
57165
57839
  iconAvatarVariant,
57840
+ iconAvatarDiscStyle,
57166
57841
  titleBlock,
57167
57842
  descriptionBlock,
57168
57843
  variant,
@@ -57174,6 +57849,7 @@ function trailingLeadAndSlot(options) {
57174
57849
  iconAvatarColor,
57175
57850
  iconAvatarRingColor,
57176
57851
  iconAvatarVariant,
57852
+ iconAvatarDiscStyle,
57177
57853
  titleBlock,
57178
57854
  descriptionBlock,
57179
57855
  gradientZStyle: false
@@ -57208,7 +57884,7 @@ var IconTextActionCard = React8.forwardRef(
57208
57884
  actions,
57209
57885
  showActionsOnlyOnHover = false,
57210
57886
  color = "gray",
57211
- iconAvatarVariant,
57887
+ iconAvatarVariant: iconAvatarVariantProp,
57212
57888
  iconAvatarColor: iconAvatarColorProp,
57213
57889
  size = "default",
57214
57890
  variant = "soft",
@@ -57233,10 +57909,14 @@ var IconTextActionCard = React8.forwardRef(
57233
57909
  surfaceContainerClass,
57234
57910
  presetRingClasses,
57235
57911
  ringAccentStyle,
57236
- iconAvatarColor: resolvedIconAvatarColor
57912
+ iconAvatarColor: resolvedIconAvatarColor,
57913
+ iconAvatarVariant: resolvedIconAvatarVariant,
57914
+ iconAvatarDiscStyle
57237
57915
  } = useSimpleClickableCardSurface({ variant, color, size });
57238
57916
  const iconAvatarColor = iconAvatarColorProp ?? resolvedIconAvatarColor;
57917
+ const iconAvatarVariant = iconAvatarVariantProp ?? resolvedIconAvatarVariant;
57239
57918
  const iconAvatarRingColor = iconAvatarColorProp ?? color;
57919
+ const resolvedDiscStyle = iconAvatarColorProp == null ? iconAvatarDiscStyle : void 0;
57240
57920
  const fgClass = styles.foreground;
57241
57921
  const fgStyle = styles.foregroundStyle;
57242
57922
  const descClass = styles.description;
@@ -57263,6 +57943,7 @@ var IconTextActionCard = React8.forwardRef(
57263
57943
  iconAvatarColor,
57264
57944
  iconAvatarRingColor,
57265
57945
  iconAvatarVariant,
57946
+ iconAvatarDiscStyle: resolvedDiscStyle,
57266
57947
  titleBlock,
57267
57948
  descriptionBlock,
57268
57949
  gradientZStyle: false
@@ -57287,6 +57968,7 @@ var IconTextActionCard = React8.forwardRef(
57287
57968
  iconAvatarColor,
57288
57969
  iconAvatarRingColor,
57289
57970
  iconAvatarVariant,
57971
+ iconAvatarDiscStyle: resolvedDiscStyle,
57290
57972
  titleBlock,
57291
57973
  descriptionBlock,
57292
57974
  variant,
@@ -58896,7 +59578,7 @@ function KeyValueManagerAddPopover({
58896
59578
  /* @__PURE__ */ jsx(
58897
59579
  Input,
58898
59580
  {
58899
- label: "Key",
59581
+ label: labels.keyLabel,
58900
59582
  value: draftKey,
58901
59583
  charLimit: meta?.key?.maxLength,
58902
59584
  error: keyError,
@@ -58908,7 +59590,7 @@ function KeyValueManagerAddPopover({
58908
59590
  /* @__PURE__ */ jsx(
58909
59591
  Textarea,
58910
59592
  {
58911
- label: "Value",
59593
+ label: labels.valueLabel,
58912
59594
  value: draftValue,
58913
59595
  charLimit: meta?.value?.maxLength,
58914
59596
  error: valueError,
@@ -58956,7 +59638,12 @@ function KeyValueManagerTable({
58956
59638
  rows,
58957
59639
  itemsPerPage = 10,
58958
59640
  hasSearchQuery,
58959
- onDelete
59641
+ onDelete,
59642
+ keyLabel,
59643
+ valueLabel,
59644
+ actionLabel,
59645
+ emptyItems,
59646
+ emptySearch
58960
59647
  }) {
58961
59648
  const [page, setPage] = useState(0);
58962
59649
  const [direction, setDirection] = useState(1);
@@ -58983,16 +59670,16 @@ function KeyValueManagerTable({
58983
59670
  return /* @__PURE__ */ jsxs("div", { className: "w-full", children: [
58984
59671
  /* @__PURE__ */ jsxs(Table, { children: [
58985
59672
  /* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsxs(TableRow, { children: [
58986
- /* @__PURE__ */ jsx(TableHead, { children: "Key" }),
58987
- /* @__PURE__ */ jsx(TableHead, { children: "Value" }),
58988
- /* @__PURE__ */ jsx(TableHead, { className: "w-12 text-right", children: "Action" })
59673
+ /* @__PURE__ */ jsx(TableHead, { children: keyLabel }),
59674
+ /* @__PURE__ */ jsx(TableHead, { children: valueLabel }),
59675
+ /* @__PURE__ */ jsx(TableHead, { className: "w-12 text-right", children: actionLabel })
58989
59676
  ] }) }),
58990
59677
  /* @__PURE__ */ jsx(TableBody, { children: noRows ? /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(
58991
59678
  TableCell,
58992
59679
  {
58993
59680
  colSpan: 3,
58994
59681
  className: "py-8 text-center text-muted-foreground",
58995
- children: hasSearchQuery ? "No matches" : "No items"
59682
+ children: hasSearchQuery ? emptySearch : emptyItems
58996
59683
  }
58997
59684
  ) }) : /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", custom: direction, children: /* @__PURE__ */ jsx(
58998
59685
  motion.tr,
@@ -59063,15 +59750,21 @@ function KeyValueManagerTable({
59063
59750
  }
59064
59751
 
59065
59752
  // src/components/key-value-manager/key-value-manager.props.ts
59066
- var DEFAULT_KEY_VALUE_MANAGER_LABELS = {
59067
- search: "Search keys or values",
59753
+ var STATIC_DEFAULT_LABELS = {
59068
59754
  add: "Add",
59069
59755
  keyErrorMessage: "Invalid key",
59070
59756
  valueErrorMessage: "Invalid value",
59071
- successMessage: "Added successfully"
59757
+ successMessage: "Added successfully",
59758
+ keyLabel: "Key",
59759
+ valueLabel: "Value",
59760
+ actionLabel: "Action",
59761
+ emptyItems: "No items",
59762
+ emptySearch: "No matches"
59072
59763
  };
59073
59764
  function resolveKeyValueManagerLabels(labels) {
59074
- return { ...DEFAULT_KEY_VALUE_MANAGER_LABELS, ...labels };
59765
+ const merged = { ...STATIC_DEFAULT_LABELS, ...labels };
59766
+ const search = labels?.search ?? `Search ${merged.keyLabel.toLowerCase()} or ${merged.valueLabel.toLowerCase()}`;
59767
+ return { ...merged, search };
59075
59768
  }
59076
59769
  function KeyValueManager({
59077
59770
  items,
@@ -59120,7 +59813,12 @@ function KeyValueManager({
59120
59813
  rows: filteredRows,
59121
59814
  itemsPerPage,
59122
59815
  hasSearchQuery: searchQuery.trim().length > 0,
59123
- onDelete: handleDelete
59816
+ onDelete: handleDelete,
59817
+ keyLabel: labels.keyLabel,
59818
+ valueLabel: labels.valueLabel,
59819
+ actionLabel: labels.actionLabel,
59820
+ emptyItems: labels.emptyItems,
59821
+ emptySearch: labels.emptySearch
59124
59822
  }
59125
59823
  )
59126
59824
  ] });
@@ -65538,6 +66236,7 @@ function trailingChevronRow(options) {
65538
66236
  iconAvatarColor,
65539
66237
  iconAvatarRingColor,
65540
66238
  iconAvatarVariant,
66239
+ iconAvatarDiscStyle,
65541
66240
  titleBlock,
65542
66241
  descriptionBlock,
65543
66242
  variant,
@@ -65554,6 +66253,7 @@ function trailingChevronRow(options) {
65554
66253
  iconAvatarColor,
65555
66254
  iconAvatarRingColor,
65556
66255
  iconAvatarVariant,
66256
+ iconAvatarDiscStyle,
65557
66257
  titleBlock,
65558
66258
  descriptionBlock,
65559
66259
  gradientZStyle: false
@@ -65591,7 +66291,7 @@ var SimpleClickableCard = React8.forwardRef(
65591
66291
  truncateDescription = false,
65592
66292
  onClick,
65593
66293
  color = "gray",
65594
- iconAvatarVariant,
66294
+ iconAvatarVariant: iconAvatarVariantProp,
65595
66295
  iconAvatarColor: iconAvatarColorProp,
65596
66296
  size = "default",
65597
66297
  variant = "soft",
@@ -65616,10 +66316,14 @@ var SimpleClickableCard = React8.forwardRef(
65616
66316
  surfaceContainerClass,
65617
66317
  presetRingClasses,
65618
66318
  ringAccentStyle,
65619
- iconAvatarColor: resolvedIconAvatarColor
66319
+ iconAvatarColor: resolvedIconAvatarColor,
66320
+ iconAvatarVariant: resolvedIconAvatarVariant,
66321
+ iconAvatarDiscStyle
65620
66322
  } = useSimpleClickableCardSurface({ variant, color, size });
65621
66323
  const iconAvatarColor = iconAvatarColorProp ?? resolvedIconAvatarColor;
66324
+ const iconAvatarVariant = iconAvatarVariantProp ?? resolvedIconAvatarVariant;
65622
66325
  const iconAvatarRingColor = iconAvatarColorProp ?? color;
66326
+ const resolvedDiscStyle = iconAvatarColorProp == null ? iconAvatarDiscStyle : void 0;
65623
66327
  const fgClass = styles.foreground;
65624
66328
  const fgStyle = styles.foregroundStyle;
65625
66329
  const descClass = styles.description;
@@ -65647,6 +66351,7 @@ var SimpleClickableCard = React8.forwardRef(
65647
66351
  iconAvatarColor,
65648
66352
  iconAvatarRingColor,
65649
66353
  iconAvatarVariant,
66354
+ iconAvatarDiscStyle: resolvedDiscStyle,
65650
66355
  titleBlock,
65651
66356
  descriptionBlock,
65652
66357
  variant,
@@ -65741,7 +66446,7 @@ var SimpleInfoCard = React8.forwardRef(
65741
66446
  truncateTitle = false,
65742
66447
  truncateDescription = false,
65743
66448
  color = "gray",
65744
- iconAvatarVariant,
66449
+ iconAvatarVariant: iconAvatarVariantProp,
65745
66450
  iconAvatarColor: iconAvatarColorProp,
65746
66451
  size = "default",
65747
66452
  variant = "soft",
@@ -65762,10 +66467,14 @@ var SimpleInfoCard = React8.forwardRef(
65762
66467
  presetGradientPair,
65763
66468
  surfaceContainerClass,
65764
66469
  ringAccentStyle,
65765
- iconAvatarColor: resolvedIconAvatarColor
66470
+ iconAvatarColor: resolvedIconAvatarColor,
66471
+ iconAvatarVariant: resolvedIconAvatarVariant,
66472
+ iconAvatarDiscStyle
65766
66473
  } = useSimpleClickableCardSurfaceShell({ variant, color, size });
65767
66474
  const iconAvatarColor = iconAvatarColorProp ?? resolvedIconAvatarColor;
66475
+ const iconAvatarVariant = iconAvatarVariantProp ?? resolvedIconAvatarVariant;
65768
66476
  const iconAvatarRingColor = iconAvatarColorProp ?? color;
66477
+ const resolvedDiscStyle = iconAvatarColorProp == null ? iconAvatarDiscStyle : void 0;
65769
66478
  const fgClass = styles.foreground;
65770
66479
  const fgStyle = styles.foregroundStyle;
65771
66480
  const descClass = styles.description;
@@ -65792,6 +66501,7 @@ var SimpleInfoCard = React8.forwardRef(
65792
66501
  iconAvatarColor,
65793
66502
  iconAvatarRingColor,
65794
66503
  iconAvatarVariant,
66504
+ iconAvatarDiscStyle: resolvedDiscStyle,
65795
66505
  titleBlock,
65796
66506
  descriptionBlock,
65797
66507
  gradientZStyle: false
@@ -66041,4 +66751,4 @@ lottie-react/build/index.es.js:
66041
66751
  (*! goToAndStop must be relative to the start of the current segment *)
66042
66752
  */
66043
66753
 
66044
- export { Accordion3 as Accordion, AdvancedSearchBox, Alert, AnimatedCard, AnimatedRainmakerLogo, AreaChart, AsyncCombobox, AsyncMultiSelect, BarChart, BasicDetailsCard, CHART_CATEGORY_COLORS, CHART_SERIES_COLORS, Calendar, CalendarDayButton, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox2 as Checkbox, CircularProgress, Code, CollapsibleCard, ComposedChart, ConfirmationDialog, ContentContainer, CopiableText, DEFAULT_CHART_SERIES_COLORS, DEFAULT_PAGE_SIZE_OPTIONS, DataTable, DatePicker, DateRangePicker, DeviceIcon, Dialog2 as Dialog, DialogClose2 as DialogClose, DialogContent2 as DialogContent, DialogDescription2 as DialogDescription, DialogFooter2 as DialogFooter, DialogHeader2 as DialogHeader, DialogTitle2 as DialogTitle, DialogTrigger2 as DialogTrigger, DonutChart, DynamicList, FileUpload, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FullSizeError, FullscreenDialog, IconAvatar, IconTextActionCard, Illustration, InlineError, KeyValueManager, LineChart, ListDetails, LottieAnimationContainer, MarkdownContent, MonospaceContent, OverflowBadgeList, PRESET_IDS, PRESET_LABELS, PageContainer, PageContainerSkeleton, Pagination, PopCollectionItem, PreviewCard2 as PreviewCard, PreviewCardBackdrop2 as PreviewCardBackdrop, PreviewCardPanel, PreviewCardTrigger2 as PreviewCardTrigger, ProgressBar, RadioGroup3 as RadioGroup, RequirementList, ScrollableSections, SearchBox, SectionCard, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectableCardList, SimpleCard, SimpleClickableCard, SimpleInfoCard, SimpleList, SimplePaginatedList, SimplifiedDate, Spinner, StatCard, StatusCardList, Switch2 as Switch, TYPOGRAPHY_VARIANTS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, TableSkeleton, Tabs2 as Tabs, TabsContent2 as TabsContent, TabsContents2 as TabsContents, TabsList2 as TabsList, TabsTrigger2 as TabsTrigger, Tag, TagInput, Textarea, TimePicker, Toast, Toaster, TogglableItemsList, ToggleGroup2 as ToggleGroup, ToggleGroupItem2 as ToggleGroupItem, TransferList, TreemapChart, Typography, UserTypeBadge, VerificationInProgress, VerticalStepper, animatedCardAnimations, animatedCardTypeKeys, buildSeriesChartConfig, computeDateRange, getChartSeriesColor, illustrationRegistry, illustrationsById, no_data_card_default, parseSvgViewBoxAspectRatio, toast, typographyDefaultElement, typographyVariantClasses, useFormField, userTypeBadgeRegistry, userTypeBadgeSizeVariants, userTypeBadgeUserTypes };
66754
+ export { Accordion3 as Accordion, AdvancedSearchBox, Alert, AnimatedCard, AnimatedRainmakerLogo, AreaChart, AsyncCombobox, AsyncMultiSelect, BarChart, BasicDetailsCard, CHART_CATEGORY_COLORS, CHART_SERIES_COLORS, Calendar, CalendarDayButton, Carousel2 as Carousel, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox2 as Checkbox, CircularProgress, Code, CollapsibleCard, ComposedChart, ConfirmationDialog, ContentContainer, CopiableText, DEFAULT_CHART_SERIES_COLORS, DEFAULT_PAGE_SIZE_OPTIONS, DataTable, DatePicker, DateRangePicker, DeviceIcon, Dialog2 as Dialog, DialogClose2 as DialogClose, DialogContent2 as DialogContent, DialogDescription2 as DialogDescription, DialogFooter2 as DialogFooter, DialogHeader2 as DialogHeader, DialogTitle2 as DialogTitle, DialogTrigger2 as DialogTrigger, DonutChart, DynamicList, FileUpload, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FullSizeError, FullscreenDialog, IconAvatar, IconTextActionCard, Illustration, InlineError, InputOTP, InputOTPSeparator, KeyValueManager, LineChart, ListDetails, LottieAnimationContainer, MarkdownContent, MonospaceContent, OverflowBadgeList, PRESET_IDS, PRESET_LABELS, PageContainer, PageContainerSkeleton, Pagination, PopCollectionItem, PreviewCard2 as PreviewCard, PreviewCardBackdrop2 as PreviewCardBackdrop, PreviewCardPanel, PreviewCardTrigger2 as PreviewCardTrigger, ProgressBar, RadioGroup3 as RadioGroup, RequirementList, ScrollableSections, SearchBox, SectionCard, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectableCardList, SimpleCard, SimpleClickableCard, SimpleInfoCard, SimpleList, SimplePaginatedList, SimplifiedDate, Spinner, StatCard, StatusBadge, StatusCardList, Switch2 as Switch, TYPOGRAPHY_VARIANTS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, TableSkeleton, Tabs2 as Tabs, TabsContent2 as TabsContent, TabsContents2 as TabsContents, TabsList2 as TabsList, TabsTrigger2 as TabsTrigger, Tag, TagInput, Textarea, TimePicker, Toast, Toaster, TogglableItemsList, ToggleGroup2 as ToggleGroup, ToggleGroupItem2 as ToggleGroupItem, TransferList, TreemapChart, Typography, UserTypeBadge, VerificationInProgress, VerticalStepper, animatedCardAnimations, animatedCardTypeKeys, buildSeriesChartConfig, computeDateRange, getChartSeriesColor, illustrationRegistry, illustrationsById, no_data_card_default, parseSvgViewBoxAspectRatio, statusBadgeSizeVariants, toast, typographyDefaultElement, typographyVariantClasses, useFormField, userTypeBadgeRegistry, userTypeBadgeSizeVariants, userTypeBadgeUserTypes };