@giddaa-housing/ui 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/generated/shared.css +1 -1
- package/css/giddaa.css +12 -3
- package/css/theme.css +4 -1
- package/dist/accordion.js +2 -2
- package/dist/activity-timeline.js +2 -2
- package/dist/alert.js +1 -1
- package/dist/breadcrumb.js +3 -3
- package/dist/button.js +2 -2
- package/dist/calendar.js +3 -3
- package/dist/call-card.js +1 -1
- package/dist/carousel.js +3 -3
- package/dist/chart.js +1 -1
- package/dist/chat.js +1 -1
- package/dist/checkbox.js +2 -2
- package/dist/combobox.js +6 -6
- package/dist/cta.js +3 -3
- package/dist/currency-selector.d.ts +10 -8
- package/dist/currency-selector.js +247 -28
- package/dist/data-table.js +2 -2
- package/dist/date-picker.js +6 -6
- package/dist/dialog.js +2 -2
- package/dist/dropdown-menu.js +20 -20
- package/dist/dropzone.js +1 -1
- package/dist/editorial-card.d.ts +20 -11
- package/dist/editorial-card.js +67 -2
- package/dist/file-upload.js +1 -1
- package/dist/filter.js +1 -1
- package/dist/footer.js +1 -1
- package/dist/icons.d.ts +93 -0
- package/dist/icons.js +905 -0
- package/dist/infinite-scroll.js +1 -1
- package/dist/input-otp.js +2 -2
- package/dist/kpi-card.js +1 -1
- package/dist/match.js +1 -1
- package/dist/media-gallery-hero.js +1 -1
- package/dist/media-player.js +59 -48
- package/dist/message.js +1 -1
- package/dist/mobile-sidebar.js +4 -4
- package/dist/multi-step-form.js +2 -2
- package/dist/number-input.js +3 -3
- package/dist/pagination.js +4 -4
- package/dist/password-input.js +1 -1
- package/dist/phone-input.js +4 -4
- package/dist/photo-gallery.js +3 -3
- package/dist/price-tag.js +1 -1
- package/dist/rich-text-editor.js +4 -4
- package/dist/search-input.js +1 -1
- package/dist/select.js +6 -6
- package/dist/sheet.js +2 -2
- package/dist/sidebar.js +1 -1
- package/dist/stepper.js +2 -2
- package/dist/styles.css +176 -17
- package/dist/tag.js +1 -1
- package/dist/testimonial-block.js +1 -1
- package/dist/theme-switcher.d.ts +31 -0
- package/dist/theme-switcher.js +78 -0
- package/dist/time-picker.js +2 -2
- package/dist/toast.d.ts +38 -10
- package/dist/toast.js +55 -52
- package/dist/top-navbar.js +3 -3
- package/dist/video-player-dialog.d.ts +57 -0
- package/dist/video-player-dialog.js +188 -0
- package/package.json +13 -2
package/dist/infinite-scroll.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Loader2 } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
|
-
import { Loader2 } from "lucide-react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
6
6
|
//#region src/lib/use-intersection.ts
|
package/dist/input-otp.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Minus } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { InputSizeProvider, useInputComponentSize } from "./input-size-context.js";
|
|
4
|
-
import { MinusIcon } from "lucide-react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
import { cva } from "class-variance-authority";
|
|
7
7
|
import { OTPField } from "@base-ui/react/otp-field";
|
|
@@ -49,7 +49,7 @@ function InputOTPSeparator({ children, className, ...props }) {
|
|
|
49
49
|
"data-slot": "input-otp-separator",
|
|
50
50
|
className: cn("flex items-center justify-center px-1 text-fg-secondary [&_svg:not([class*='size-'])]:size-4", className),
|
|
51
51
|
...props,
|
|
52
|
-
children: children ?? /* @__PURE__ */ jsx(
|
|
52
|
+
children: children ?? /* @__PURE__ */ jsx(Minus, {})
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
55
|
//#endregion
|
package/dist/kpi-card.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { ArrowDown, ArrowUp, ArrowUpRight } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { Skeleton } from "./skeleton.js";
|
|
4
|
-
import { ArrowDown, ArrowUp, ArrowUpRight } from "lucide-react";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
7
7
|
import { useRender } from "@base-ui/react/use-render";
|
package/dist/match.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { ChevronDown } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { CircularProgress } from "./progress.js";
|
|
4
|
-
import { ChevronDown } from "lucide-react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { cva } from "class-variance-authority";
|
|
7
7
|
//#region src/match.tsx
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Play } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { buttonVariants } from "./button.js";
|
|
4
5
|
import { Carousel, CarouselContent, CarouselItem, useCarousel } from "./carousel.js";
|
|
5
6
|
import { GalleryIndicator } from "./gallery-indicator.js";
|
|
6
7
|
import { ReviewBlock } from "./review-block.js";
|
|
7
|
-
import { Play } from "lucide-react";
|
|
8
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { cva } from "class-variance-authority";
|
|
10
10
|
//#region src/media-gallery-hero.tsx
|
package/dist/media-player.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Captions, CaptionsOff, Maximize, Minimize, Pause, PictureInPicture2, Play, RefreshCcw, Repeat2, RotateCcw, RotateCw, Settings, TriangleAlert, Volume1, Volume2, VolumeX } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./dropdown-menu.js";
|
|
4
5
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./tooltip.js";
|
|
5
|
-
import { Captions, CaptionsOff, Maximize, Minimize, Pause, PictureInPicture2, Play, RefreshCcw, Repeat2, RotateCcw, RotateCw, Settings, TriangleAlert, Volume1, Volume2, VolumeX } from "lucide-react";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import * as React from "react";
|
|
8
8
|
import { Slider } from "@base-ui/react/slider";
|
|
@@ -20,6 +20,9 @@ const DEFAULT_PLAYBACK_RATES = [
|
|
|
20
20
|
];
|
|
21
21
|
const CONTROLS_HIDE_DELAY = 2500;
|
|
22
22
|
const SEEK_PREVIEW_WIDTH = 160;
|
|
23
|
+
const SEEK_CHAPTER_GAP = 3;
|
|
24
|
+
const SEEK_THUMB_SIZE = 14;
|
|
25
|
+
const SEEK_THUMB_INSET = SEEK_THUMB_SIZE / 2;
|
|
23
26
|
const MediaPlayerContext = React.createContext({
|
|
24
27
|
onMenuOpenChange: () => {},
|
|
25
28
|
portalContainer: null,
|
|
@@ -73,11 +76,8 @@ function clamp(value, min, max) {
|
|
|
73
76
|
}
|
|
74
77
|
function getSeekValueFromPointer(event, min, max) {
|
|
75
78
|
const rect = event.currentTarget.getBoundingClientRect();
|
|
76
|
-
const
|
|
77
|
-
return
|
|
78
|
-
percent: percent * 100,
|
|
79
|
-
value: min + percent * (max - min)
|
|
80
|
-
};
|
|
79
|
+
const travel = Math.max(rect.width - SEEK_THUMB_SIZE, 1);
|
|
80
|
+
return min + clamp((event.clientX - rect.left - SEEK_THUMB_INSET) / travel, 0, 1) * (max - min);
|
|
81
81
|
}
|
|
82
82
|
function MediaPlayer({ mediaStore, ...props }) {
|
|
83
83
|
const audio = props.audio ?? (hasAudioChild(props.children) ? true : void 0);
|
|
@@ -272,7 +272,7 @@ function MediaPlayerVideo({ className, ref, ...props }) {
|
|
|
272
272
|
setRef(ref, node);
|
|
273
273
|
}, [ref]),
|
|
274
274
|
"data-slot": "media-player-video",
|
|
275
|
-
className: cn("block aspect-video size-full object-cover", "group-data-[fullscreen]/media-player:aspect-auto group-data-[fullscreen]/media-player:object-contain", className),
|
|
275
|
+
className: cn("block aspect-video size-full rounded-[inherit] object-cover", "group-data-[fullscreen]/media-player:aspect-auto group-data-[fullscreen]/media-player:object-contain", className),
|
|
276
276
|
playsInline: true,
|
|
277
277
|
...props
|
|
278
278
|
});
|
|
@@ -646,24 +646,28 @@ function MediaPlayerSeek({ className, disabled, onValueChange, "aria-label": ari
|
|
|
646
646
|
detail: void 0
|
|
647
647
|
});
|
|
648
648
|
};
|
|
649
|
+
const toFraction = (value) => canSeek ? (clamp(value, min, max) - min) / (max - min) : 0;
|
|
650
|
+
const toTrackOffset = (fraction) => {
|
|
651
|
+
if (fraction <= 0) return "0px";
|
|
652
|
+
if (fraction >= 1) return "100%";
|
|
653
|
+
return `calc(${SEEK_THUMB_INSET}px + ${fraction} * (100% - ${SEEK_THUMB_SIZE}px))`;
|
|
654
|
+
};
|
|
649
655
|
const previewValue = dragValue ?? hoverValue;
|
|
650
|
-
const previewPercent = previewValue !== null && canSeek ? (clamp(previewValue, min, max) - min) / (max - min) * 100 : 0;
|
|
651
656
|
const previewChapter = previewValue !== null ? chapterCues?.find((cue) => previewValue >= cue.startTime && previewValue < cue.endTime) : void 0;
|
|
652
657
|
const previewCoordValues = previewCoords?.map(Number);
|
|
653
658
|
const hasSpriteCoords = previewCoordValues?.length === 4 && (previewCoordValues[2] ?? 0) > 0;
|
|
654
659
|
const previewScale = hasSpriteCoords ? SEEK_PREVIEW_WIDTH / (previewCoordValues?.[2] ?? 1) : 1;
|
|
655
660
|
const previewClampPx = previewImage ? 84 : 32;
|
|
656
661
|
const controlRect = withTime && previewValue !== null ? controlRef.current?.getBoundingClientRect() : void 0;
|
|
657
|
-
const previewLeft = controlRect ? clamp(controlRect.left +
|
|
658
|
-
const
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
}));
|
|
662
|
+
const previewLeft = controlRect ? clamp(controlRect.left + SEEK_THUMB_INSET + toFraction(previewValue ?? 0) * (controlRect.width - SEEK_THUMB_SIZE), controlRect.left + previewClampPx, controlRect.right - previewClampPx) : 0;
|
|
663
|
+
const playedFraction = toFraction(displayTime);
|
|
664
|
+
const chapterStops = canSeek ? (chapterCues ?? []).map((cue) => toFraction(cue.startTime)).filter((fraction) => fraction > 0 && fraction < 1).sort((a, b) => a - b).map(toTrackOffset) : [];
|
|
665
|
+
const trackMask = chapterStops.length ? `linear-gradient(to right, #000 0, ${chapterStops.flatMap((offset) => [
|
|
666
|
+
`#000 calc(${offset} - ${SEEK_CHAPTER_GAP / 2}px)`,
|
|
667
|
+
`transparent calc(${offset} - ${SEEK_CHAPTER_GAP / 2}px)`,
|
|
668
|
+
`transparent calc(${offset} + ${SEEK_CHAPTER_GAP / 2}px)`,
|
|
669
|
+
`#000 calc(${offset} + ${SEEK_CHAPTER_GAP / 2}px)`
|
|
670
|
+
]).join(", ")}, #000 100%)` : void 0;
|
|
667
671
|
return /* @__PURE__ */ jsxs(Slider.Root, {
|
|
668
672
|
thumbAlignment: "edge",
|
|
669
673
|
"data-slot": "media-player-seek",
|
|
@@ -735,45 +739,52 @@ function MediaPlayerSeek({ className, disabled, onValueChange, "aria-label": ari
|
|
|
735
739
|
]
|
|
736
740
|
}), portalContainer ?? document.body), /* @__PURE__ */ jsxs(Slider.Control, {
|
|
737
741
|
ref: controlRef,
|
|
738
|
-
className: "flex h-8 w-full items-center",
|
|
742
|
+
className: "relative flex h-8 w-full items-center",
|
|
739
743
|
onPointerLeave: () => {
|
|
740
744
|
if (dragValue === null) clearPreview();
|
|
741
745
|
},
|
|
742
746
|
onPointerMove: (event) => {
|
|
743
747
|
if (resolvedDisabled || dragValue !== null) return;
|
|
744
748
|
const next = getSeekValueFromPointer(event, min, max);
|
|
745
|
-
setHoverValue(next
|
|
746
|
-
previewAt(next
|
|
749
|
+
setHoverValue(next);
|
|
750
|
+
previewAt(next);
|
|
747
751
|
},
|
|
748
|
-
children: [/* @__PURE__ */
|
|
749
|
-
className: "relative
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
752
|
+
children: [/* @__PURE__ */ jsxs(Slider.Track, {
|
|
753
|
+
className: "relative h-2 w-full overflow-hidden rounded-full bg-line-subtle/65",
|
|
754
|
+
style: trackMask ? {
|
|
755
|
+
maskImage: trackMask,
|
|
756
|
+
WebkitMaskImage: trackMask
|
|
757
|
+
} : void 0,
|
|
758
|
+
children: [
|
|
759
|
+
canSeek && buffered?.map(([bufferStart, bufferEnd]) => /* @__PURE__ */ jsx("span", {
|
|
760
|
+
"data-slot": "media-player-seek-buffered",
|
|
761
|
+
className: "absolute inset-y-0 bg-fg-on-brand/25",
|
|
762
|
+
style: {
|
|
763
|
+
left: toTrackOffset(toFraction(bufferStart)),
|
|
764
|
+
right: `calc(100% - ${toTrackOffset(toFraction(bufferEnd))})`
|
|
765
|
+
}
|
|
766
|
+
}, `${bufferStart}-${bufferEnd}`)),
|
|
767
|
+
/* @__PURE__ */ jsx("span", {
|
|
768
|
+
"data-slot": "media-player-seek-progress",
|
|
769
|
+
className: "absolute inset-y-0 left-0 bg-surface-brand",
|
|
770
|
+
style: { width: SEEK_THUMB_INSET }
|
|
771
|
+
}),
|
|
772
|
+
/* @__PURE__ */ jsx("span", {
|
|
773
|
+
"data-slot": "media-player-seek-progress",
|
|
774
|
+
"data-dragging": dragValue !== null || void 0,
|
|
775
|
+
className: "absolute inset-y-0 origin-left bg-surface-brand transition-transform duration-200 ease-linear data-[dragging=true]:transition-none",
|
|
776
|
+
style: {
|
|
777
|
+
left: SEEK_THUMB_INSET,
|
|
778
|
+
transform: `scaleX(${playedFraction})`,
|
|
779
|
+
width: `calc(100% - ${SEEK_THUMB_SIZE}px)`
|
|
780
|
+
}
|
|
781
|
+
})
|
|
782
|
+
]
|
|
773
783
|
}), /* @__PURE__ */ jsx(Slider.Thumb, {
|
|
774
784
|
getAriaLabel: () => ariaLabel ?? "Media timeline",
|
|
775
785
|
getAriaValueText: (_formatted, value) => `${formatTime(value)} of ${formatTime(max)}`,
|
|
776
|
-
className: cn("
|
|
786
|
+
className: cn("group/seek-thumb size-[14px] rounded-full outline-none", "transition-[inset-inline-start] duration-200 ease-linear data-[dragging]:transition-none"),
|
|
787
|
+
children: /* @__PURE__ */ jsx("span", { className: cn("block size-full rounded-full border-2 border-surface-brand bg-surface-overlay shadow-2", "transition-[scale] duration-[var(--duration-motion-press)] ease-gdt-out group-data-[dragging]/seek-thumb:scale-125 motion-reduce:group-data-[dragging]/seek-thumb:scale-100", "group-has-[:focus-visible]/seek-thumb:[filter:drop-shadow(0_0_0.25rem_var(--color-line-focus))]") })
|
|
777
788
|
})]
|
|
778
789
|
})]
|
|
779
790
|
});
|
|
@@ -888,7 +899,7 @@ function MediaPlayerError({ children, className, ...props }) {
|
|
|
888
899
|
return /* @__PURE__ */ jsx("div", {
|
|
889
900
|
"data-slot": "media-player-error",
|
|
890
901
|
role: "alert",
|
|
891
|
-
className: cn("absolute inset-0 z-20 flex flex-col items-center justify-center gap-1 bg-canvas/85 px-6 text-center text-fg-primary backdrop-blur-sm
|
|
902
|
+
className: cn("absolute inset-0 z-20 flex flex-col items-center justify-center gap-1 rounded-[inherit] bg-canvas/85 px-6 text-center text-fg-primary backdrop-blur-sm", className),
|
|
892
903
|
...props,
|
|
893
904
|
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
894
905
|
/* @__PURE__ */ jsx(TriangleAlert, {
|
package/dist/message.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { CheckCheck } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
|
-
import { CheckCheck } from "lucide-react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
6
6
|
import { useRender } from "@base-ui/react/use-render";
|
package/dist/mobile-sidebar.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { ChevronDown, Menu, X } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./collapsible.js";
|
|
4
5
|
import { Sheet, SheetBody, SheetClose, SheetContent, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from "./sheet.js";
|
|
5
|
-
import { ChevronDownIcon, MenuIcon, XIcon } from "lucide-react";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
8
8
|
import { useRender } from "@base-ui/react/use-render";
|
|
@@ -15,7 +15,7 @@ function MobileSidebarTrigger({ className, children, ...props }) {
|
|
|
15
15
|
"data-slot": "mobile-sidebar-trigger",
|
|
16
16
|
className: cn("inline-flex size-10 items-center justify-center rounded-lg text-fg-secondary outline-none transition-[background-color,color,translate] duration-(--duration-motion-press) ease-gdt-out hover:bg-surface hover:text-fg-primary focus-visible:shadow-[0_0_0_2px_var(--color-line-focus)] active:translate-y-px motion-reduce:active:translate-y-0", className),
|
|
17
17
|
...props,
|
|
18
|
-
children: children ?? /* @__PURE__ */ jsx(
|
|
18
|
+
children: children ?? /* @__PURE__ */ jsx(Menu, {
|
|
19
19
|
"aria-hidden": "true",
|
|
20
20
|
className: "size-6"
|
|
21
21
|
})
|
|
@@ -50,7 +50,7 @@ function MobileSidebarClose({ className, children, ...props }) {
|
|
|
50
50
|
"data-slot": "mobile-sidebar-close",
|
|
51
51
|
className: cn("inline-flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-primary outline-none transition-[background-color,translate] duration-(--duration-motion-press) ease-gdt-out hover:bg-surface focus-visible:shadow-[0_0_0_2px_var(--color-line-focus)] active:translate-y-px motion-reduce:active:translate-y-0", className),
|
|
52
52
|
...props,
|
|
53
|
-
children: children ?? /* @__PURE__ */ jsx(
|
|
53
|
+
children: children ?? /* @__PURE__ */ jsx(X, {
|
|
54
54
|
"aria-hidden": "true",
|
|
55
55
|
className: "size-5"
|
|
56
56
|
})
|
|
@@ -137,7 +137,7 @@ function MobileSidebarGroupTrigger({ active = false, icon, className, children,
|
|
|
137
137
|
className: "min-w-0 truncate",
|
|
138
138
|
children
|
|
139
139
|
})]
|
|
140
|
-
}), /* @__PURE__ */ jsx(
|
|
140
|
+
}), /* @__PURE__ */ jsx(ChevronDown, {
|
|
141
141
|
"aria-hidden": "true",
|
|
142
142
|
className: "size-4 shrink-0 text-current transition-transform duration-(--duration-motion-press) ease-gdt-out group-data-[panel-open]/collapsible-trigger:rotate-180 motion-reduce:transition-none"
|
|
143
143
|
})]
|
package/dist/multi-step-form.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Check } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { t as useUncontrolled } from "./use-uncontrolled-CLfM1XbB.js";
|
|
4
5
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./select.js";
|
|
5
6
|
import { Progress, ProgressIndicator, ProgressTrack } from "./progress.js";
|
|
6
|
-
import { CheckIcon } from "lucide-react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import * as React from "react";
|
|
9
9
|
//#region src/multi-step-form.tsx
|
|
@@ -181,7 +181,7 @@ function MultiStepFormIndicator({ type = "stepper", progressValue, showNextLabel
|
|
|
181
181
|
children: [/* @__PURE__ */ jsx("span", {
|
|
182
182
|
className: "transition-opacity duration-[var(--duration-motion-press)] ease-gdt-out group-data-[state=complete]/multi-step-form-step:opacity-0",
|
|
183
183
|
children: index + 1
|
|
184
|
-
}), /* @__PURE__ */ jsx(
|
|
184
|
+
}), /* @__PURE__ */ jsx(Check, {
|
|
185
185
|
"aria-hidden": "true",
|
|
186
186
|
strokeWidth: 2.5,
|
|
187
187
|
className: "absolute inset-0 m-auto size-4.5 scale-95 opacity-0 transition-[opacity,scale] duration-[var(--duration-motion-press)] ease-gdt-out motion-reduce:scale-100 group-data-[state=complete]/multi-step-form-step:scale-100 group-data-[state=complete]/multi-step-form-step:opacity-100"
|
package/dist/number-input.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Minus, Plus } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { SizeProvider, useComponentSize } from "./size-context.js";
|
|
4
5
|
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "./input-group.js";
|
|
5
|
-
import { MinusIcon, PlusIcon } from "lucide-react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { NumberField } from "@base-ui/react/number-field";
|
|
8
8
|
//#region src/number-input.tsx
|
|
@@ -52,14 +52,14 @@ function NumberInputControl() {
|
|
|
52
52
|
children: [/* @__PURE__ */ jsx(NumberField.Increment, {
|
|
53
53
|
className: "w-full flex-1 rounded-none rounded-tr-full",
|
|
54
54
|
render: /* @__PURE__ */ jsx(InputGroupButton, { variant: "tertiary" }),
|
|
55
|
-
children: /* @__PURE__ */ jsx(
|
|
55
|
+
children: /* @__PURE__ */ jsx(Plus, { className: cn("size-1.5", {
|
|
56
56
|
"size-3": size === "md",
|
|
57
57
|
"size-3.5": size === "lg"
|
|
58
58
|
}) })
|
|
59
59
|
}), /* @__PURE__ */ jsx(NumberField.Decrement, {
|
|
60
60
|
className: "w-full flex-1 rounded-none rounded-br-full",
|
|
61
61
|
render: /* @__PURE__ */ jsx(InputGroupButton, { variant: "tertiary" }),
|
|
62
|
-
children: /* @__PURE__ */ jsx(
|
|
62
|
+
children: /* @__PURE__ */ jsx(Minus, { className: cn("size-1.5", {
|
|
63
63
|
"size-3": size === "md",
|
|
64
64
|
"size-3.5": size === "lg"
|
|
65
65
|
}) })
|
package/dist/pagination.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { ChevronLeft, ChevronRight, MoreHorizontal } from "./icons.js";
|
|
1
2
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
2
3
|
import { Button, ButtonLink } from "./button.js";
|
|
3
|
-
import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { cva } from "class-variance-authority";
|
|
6
6
|
//#region src/pagination.tsx
|
|
@@ -103,7 +103,7 @@ function PaginationPrevious({ className, showLabel = true, text = "Previous", ..
|
|
|
103
103
|
appearance: showLabel ? "control" : "icon",
|
|
104
104
|
className: cn(showLabel ? "pl-1.5!" : "", className),
|
|
105
105
|
...props,
|
|
106
|
-
children: [/* @__PURE__ */ jsx(
|
|
106
|
+
children: [/* @__PURE__ */ jsx(ChevronLeft, {
|
|
107
107
|
"data-icon": "inline-start",
|
|
108
108
|
className: "cn-rtl-flip"
|
|
109
109
|
}), showLabel ? /* @__PURE__ */ jsx("span", {
|
|
@@ -121,7 +121,7 @@ function PaginationNext({ className, showLabel = true, text = "Next", ...props }
|
|
|
121
121
|
children: [showLabel ? /* @__PURE__ */ jsx("span", {
|
|
122
122
|
className: "hidden sm:block",
|
|
123
123
|
children: text
|
|
124
|
-
}) : null, /* @__PURE__ */ jsx(
|
|
124
|
+
}) : null, /* @__PURE__ */ jsx(ChevronRight, {
|
|
125
125
|
"data-icon": "inline-end",
|
|
126
126
|
className: "cn-rtl-flip"
|
|
127
127
|
})]
|
|
@@ -133,7 +133,7 @@ function PaginationEllipsis({ className, ...props }) {
|
|
|
133
133
|
"data-slot": "pagination-ellipsis",
|
|
134
134
|
className: cn("flex size-8 items-center justify-center text-fg-secondary [&_svg:not([class*='size-'])]:size-4", className),
|
|
135
135
|
...props,
|
|
136
|
-
children: [/* @__PURE__ */ jsx(
|
|
136
|
+
children: [/* @__PURE__ */ jsx(MoreHorizontal, {}), /* @__PURE__ */ jsx("span", {
|
|
137
137
|
className: "sr-only",
|
|
138
138
|
children: "More pages"
|
|
139
139
|
})]
|
package/dist/password-input.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Eye, EyeOff } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "./input-group.js";
|
|
4
|
-
import { Eye, EyeOff } from "lucide-react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
//#region src/password-input.tsx
|
package/dist/phone-input.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Check, ChevronDown, Search } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { useComponentSize } from "./size-context.js";
|
|
4
5
|
import { Separator } from "./separator.js";
|
|
5
6
|
import { InputGroup, InputGroupAddon, InputGroupInput } from "./input-group.js";
|
|
6
7
|
import { Popover, PopoverContent, PopoverTrigger } from "./popover.js";
|
|
7
|
-
import { CheckIcon, ChevronDownIcon, SearchIcon } from "lucide-react";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import * as React from "react";
|
|
10
10
|
import { AsYouType, getCountries, getCountryCallingCode, parsePhoneNumber } from "libphonenumber-js";
|
|
@@ -109,7 +109,7 @@ function CountryList({ items, country, onSelect }) {
|
|
|
109
109
|
className: "shrink-0 text-fg-secondary",
|
|
110
110
|
children: ["+", entry.calling]
|
|
111
111
|
}),
|
|
112
|
-
selected && /* @__PURE__ */ jsx(
|
|
112
|
+
selected && /* @__PURE__ */ jsx(Check, { className: "size-4 shrink-0 text-fg-brand" })
|
|
113
113
|
]
|
|
114
114
|
}, entry.code);
|
|
115
115
|
})
|
|
@@ -147,7 +147,7 @@ function CountrySelect({ country, size, disabled, onSelect, finalFocusRef }) {
|
|
|
147
147
|
size
|
|
148
148
|
}),
|
|
149
149
|
/* @__PURE__ */ jsxs("span", { children: ["+", getCountryCallingCode(country)] }),
|
|
150
|
-
/* @__PURE__ */ jsx(
|
|
150
|
+
/* @__PURE__ */ jsx(ChevronDown, { className: cn("text-fg-secondary transition-transform", open && "rotate-180", size === "lg" ? "size-4" : "size-3.5") })
|
|
151
151
|
]
|
|
152
152
|
}), /* @__PURE__ */ jsxs(PopoverContent, {
|
|
153
153
|
showArrow: false,
|
|
@@ -158,7 +158,7 @@ function CountrySelect({ country, size, disabled, onSelect, finalFocusRef }) {
|
|
|
158
158
|
className: "w-72 gap-0 overflow-hidden p-0",
|
|
159
159
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
160
160
|
className: "flex items-center gap-2 border-b border-line-subtle px-3.5 py-2.5",
|
|
161
|
-
children: [/* @__PURE__ */ jsx(
|
|
161
|
+
children: [/* @__PURE__ */ jsx(Search, { className: "size-4 shrink-0 text-fg-secondary" }), /* @__PURE__ */ jsx("input", {
|
|
162
162
|
ref: searchRef,
|
|
163
163
|
value: query,
|
|
164
164
|
onChange: (event) => setQuery(event.target.value),
|
package/dist/photo-gallery.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { ChevronLeft, ChevronRight, Fullscreen, X } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { Button } from "./button.js";
|
|
4
5
|
import { Carousel, CarouselContent, CarouselItem } from "./carousel.js";
|
|
5
|
-
import { ChevronLeftIcon, ChevronRightIcon, Fullscreen, XIcon } from "lucide-react";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import * as React from "react";
|
|
8
8
|
import { Dialog } from "@base-ui/react/dialog";
|
|
@@ -113,7 +113,7 @@ function GalleryButton({ className, variant = "ghost", ...rest }) {
|
|
|
113
113
|
}
|
|
114
114
|
/** Circular floating navigation button. Always present; the track loops. */
|
|
115
115
|
function GalleryArrow({ side, onClick, className }) {
|
|
116
|
-
const Icon = side === "prev" ?
|
|
116
|
+
const Icon = side === "prev" ? ChevronLeft : ChevronRight;
|
|
117
117
|
return /* @__PURE__ */ jsx(GalleryButton, {
|
|
118
118
|
type: "button",
|
|
119
119
|
"data-slot": `photo-gallery-${side}`,
|
|
@@ -272,7 +272,7 @@ function PhotoGalleryFullscreen({ images, open, onOpenChange, index, onIndexChan
|
|
|
272
272
|
"data-slot": "photo-gallery-fullscreen-close",
|
|
273
273
|
"aria-label": "Close gallery",
|
|
274
274
|
render: /* @__PURE__ */ jsx(GalleryButton, {}),
|
|
275
|
-
children: /* @__PURE__ */ jsx(
|
|
275
|
+
children: /* @__PURE__ */ jsx(X, { className: "size-4 sm:size-5" })
|
|
276
276
|
})]
|
|
277
277
|
}),
|
|
278
278
|
/* @__PURE__ */ jsxs(Carousel, {
|
package/dist/price-tag.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Check, ChevronDown } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
|
-
import { Check, ChevronDown } from "lucide-react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { cva } from "class-variance-authority";
|
|
6
6
|
import { Popover } from "@base-ui/react/popover";
|
package/dist/rich-text-editor.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { AlignCenter, AlignJustify, AlignLeft, AlignRight, Baseline, Bold, ChevronDown, Code2, Image as Image$1, Italic, Link2, List, ListOrdered, Quote, Redo2, Underline, Undo2 } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { useComponentSize } from "./size-context.js";
|
|
4
5
|
import { Button } from "./button.js";
|
|
5
6
|
import { Input } from "./input.js";
|
|
6
7
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger } from "./dropdown-menu.js";
|
|
7
8
|
import { Popover, PopoverContent, PopoverTrigger } from "./popover.js";
|
|
8
|
-
import { AlignCenter, AlignJustify, AlignLeft, AlignRight, Baseline, Bold, ChevronDown, Code2, ImageIcon, Italic, Link2, List, ListOrdered, Quote, Redo2, Underline, Undo2 } from "lucide-react";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
import * as React from "react";
|
|
11
11
|
import { Color } from "@tiptap/extension-color";
|
|
12
|
-
import { Image
|
|
12
|
+
import { Image } from "@tiptap/extension-image";
|
|
13
13
|
import { Placeholder } from "@tiptap/extension-placeholder";
|
|
14
14
|
import { TextAlign } from "@tiptap/extension-text-align";
|
|
15
15
|
import { TextStyle } from "@tiptap/extension-text-style";
|
|
@@ -283,7 +283,7 @@ function ImageControl({ tokens, disabled, onInsert }) {
|
|
|
283
283
|
title: "Insert image",
|
|
284
284
|
onMouseDown: (event) => event.preventDefault(),
|
|
285
285
|
className: toolbarControlClass(tokens, false),
|
|
286
|
-
children: /* @__PURE__ */ jsx(
|
|
286
|
+
children: /* @__PURE__ */ jsx(Image$1, {})
|
|
287
287
|
}), /* @__PURE__ */ jsx(PopoverContent, {
|
|
288
288
|
showArrow: false,
|
|
289
289
|
align: "start",
|
|
@@ -387,7 +387,7 @@ const RichTextEditor = React.forwardRef(function RichTextEditor({ value, default
|
|
|
387
387
|
TextStyle,
|
|
388
388
|
Color,
|
|
389
389
|
TextAlign.configure({ types: ["heading", "paragraph"] }),
|
|
390
|
-
Image
|
|
390
|
+
Image.configure({
|
|
391
391
|
inline: false,
|
|
392
392
|
allowBase64: true
|
|
393
393
|
}),
|
package/dist/search-input.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Search, X } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "./input-group.js";
|
|
4
|
-
import { Search, X } from "lucide-react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
//#region src/search-input.tsx
|
package/dist/select.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Check, ChevronDown, ChevronUp } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { SizeProvider, useComponentSize } from "./size-context.js";
|
|
4
|
-
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { cva } from "class-variance-authority";
|
|
7
7
|
import * as React from "react";
|
|
@@ -66,7 +66,7 @@ function SelectTrigger({ className, children, unstyled, ...props }) {
|
|
|
66
66
|
"data-size": resolvedSize,
|
|
67
67
|
className: cn(!unstyled && selectTriggerVariants({ size: resolvedSize }), className),
|
|
68
68
|
...props,
|
|
69
|
-
children: [children, /* @__PURE__ */ jsx(Select$1.Icon, { render: /* @__PURE__ */ jsx(
|
|
69
|
+
children: [children, /* @__PURE__ */ jsx(Select$1.Icon, { render: /* @__PURE__ */ jsx(ChevronDown, { className: "text-line-strong transition-transform group-data-disabled/select-trigger:text-fg-caption-placeholder data-popup-open:rotate-180" }) })]
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
function SelectContent({ className, children, side = "bottom", sideOffset = 8, align = "center", alignOffset = 0, alignItemWithTrigger = false, ...props }) {
|
|
@@ -111,9 +111,9 @@ function SelectItem({ className, children, ...props }) {
|
|
|
111
111
|
children: [multiple ? /* @__PURE__ */ jsx(Select$1.ItemIndicator, {
|
|
112
112
|
keepMounted: true,
|
|
113
113
|
className: "flex size-5 shrink-0 items-center justify-center rounded-sm border border-line bg-canvas text-transparent transition-[background-color,border-color,color] group-data-selected/select-item:border-action-primary group-data-selected/select-item:bg-action-primary group-data-selected/select-item:text-fg-on-brand group-data-disabled/select-item:border-line-subtle group-data-disabled/select-item:bg-surface group-data-disabled/select-item:text-fg-caption-placeholder [&>svg]:size-3",
|
|
114
|
-
children: /* @__PURE__ */ jsx(
|
|
114
|
+
children: /* @__PURE__ */ jsx(Check, {})
|
|
115
115
|
}) : null, /* @__PURE__ */ jsx(Select$1.ItemText, {
|
|
116
|
-
className: "flex min-w-0 flex-1 shrink-0 gap-2
|
|
116
|
+
className: "flex min-w-0 flex-1 shrink-0 items-center gap-2",
|
|
117
117
|
children
|
|
118
118
|
})]
|
|
119
119
|
});
|
|
@@ -130,7 +130,7 @@ function SelectScrollUpButton({ className, ...props }) {
|
|
|
130
130
|
"data-slot": "select-scroll-up-button",
|
|
131
131
|
className: cn("sticky top-0 z-10 flex h-7 w-full cursor-default items-center justify-center bg-canvas text-fg-secondary [&_svg:not([class*='size-'])]:size-4", className),
|
|
132
132
|
...props,
|
|
133
|
-
children: /* @__PURE__ */ jsx(
|
|
133
|
+
children: /* @__PURE__ */ jsx(ChevronUp, {})
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
136
|
function SelectScrollDownButton({ className, ...props }) {
|
|
@@ -138,7 +138,7 @@ function SelectScrollDownButton({ className, ...props }) {
|
|
|
138
138
|
"data-slot": "select-scroll-down-button",
|
|
139
139
|
className: cn("sticky bottom-0 z-10 flex h-7 w-full cursor-default items-center justify-center bg-canvas text-fg-secondary [&_svg:not([class*='size-'])]:size-4", className),
|
|
140
140
|
...props,
|
|
141
|
-
children: /* @__PURE__ */ jsx(
|
|
141
|
+
children: /* @__PURE__ */ jsx(ChevronDown, {})
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
144
|
//#endregion
|
package/dist/sheet.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { X } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { SizeProvider } from "./size-context.js";
|
|
4
5
|
import { Button } from "./button.js";
|
|
5
6
|
import { DialogNestingProvider, useDialogNestingDepth } from "./dialog-nesting.js";
|
|
6
|
-
import { XIcon } from "lucide-react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { cva } from "class-variance-authority";
|
|
9
9
|
import { Dialog } from "@base-ui/react/dialog";
|
|
@@ -67,7 +67,7 @@ function SheetContent({ className, children, side = "left", size = "md", showClo
|
|
|
67
67
|
variant: "ghost",
|
|
68
68
|
className: "absolute z-10 size-7 border border-line bg-surface p-0 text-fg-primary shadow-(--elevation-e1-shadow) hover:bg-surface-raised group-data-[nested-dialog-open]/sheet-content:hidden group-data-[side=bottom]/sheet-content:-top-9 group-data-[side=bottom]/sheet-content:right-4 group-data-[side=top]/sheet-content:-bottom-9 group-data-[side=top]/sheet-content:right-4 group-data-[side=left]/sheet-content:-right-9 group-data-[side=left]/sheet-content:top-4 group-data-[side=right]/sheet-content:-left-9 group-data-[side=right]/sheet-content:top-4",
|
|
69
69
|
size: "icon-xs",
|
|
70
|
-
children: [/* @__PURE__ */ jsx(
|
|
70
|
+
children: [/* @__PURE__ */ jsx(X, {}), /* @__PURE__ */ jsx("span", {
|
|
71
71
|
className: "sr-only",
|
|
72
72
|
children: "Close"
|
|
73
73
|
})]
|
package/dist/sidebar.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Menu } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { Separator } from "./separator.js";
|
|
4
5
|
import { Button } from "./button.js";
|
|
@@ -7,7 +8,6 @@ import { t as useUncontrolled } from "./use-uncontrolled-CLfM1XbB.js";
|
|
|
7
8
|
import { Skeleton } from "./skeleton.js";
|
|
8
9
|
import { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip.js";
|
|
9
10
|
import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "./sheet.js";
|
|
10
|
-
import { Menu } from "lucide-react";
|
|
11
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
13
13
|
import { useRender } from "@base-ui/react/use-render";
|
package/dist/stepper.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Check } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
|
-
import { CheckIcon } from "lucide-react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { cva } from "class-variance-authority";
|
|
6
6
|
import * as React from "react";
|
|
@@ -88,7 +88,7 @@ function StepperIndicator({ className, state: stateProp, children, ...props }) {
|
|
|
88
88
|
"data-state": resolved,
|
|
89
89
|
className: cn(indicatorVariants({ state: resolved }), className),
|
|
90
90
|
...props,
|
|
91
|
-
children: children ?? (resolved === "complete" ? /* @__PURE__ */ jsx(
|
|
91
|
+
children: children ?? (resolved === "complete" ? /* @__PURE__ */ jsx(Check, {
|
|
92
92
|
className: "size-4 sm:size-4.5",
|
|
93
93
|
strokeWidth: 2.5
|
|
94
94
|
}) : step)
|