@moontra/moonui 3.0.1 → 3.1.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/dist/chunk-X5ULQZNC.global.js +33 -0
- package/dist/chunk-X5ULQZNC.global.js.map +1 -0
- package/dist/index.d.mts +68 -2
- package/dist/index.d.ts +68 -2
- package/dist/index.global.js +503 -151
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +688 -288
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +614 -253
- package/dist/index.mjs.map +1 -1
- package/dist/lib/theme.d.mts +1 -1
- package/dist/lib/theme.d.ts +1 -1
- package/dist/lib/theme.global.js +7 -7
- package/dist/lib/theme.global.js.map +1 -1
- package/dist/lib/theme.js +11 -6
- package/dist/lib/theme.js.map +1 -1
- package/dist/lib/theme.mjs +11 -6
- package/dist/lib/theme.mjs.map +1 -1
- package/package.json +3 -1
- package/src/components/ui/__tests__/carousel.test.tsx +291 -0
- package/src/components/ui/__tests__/input-otp.test.tsx +228 -0
- package/src/components/ui/carousel.tsx +324 -0
- package/src/components/ui/index.ts +32 -0
- package/src/components/ui/input-otp.tsx +140 -0
- package/tailwind-preset.js +6 -0
- package/dist/chunk-PLK4O6WY.global.js +0 -33
- package/dist/chunk-PLK4O6WY.global.js.map +0 -1
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import useEmblaCarousel, {
|
|
5
|
+
type UseEmblaCarouselType,
|
|
6
|
+
} from "embla-carousel-react";
|
|
7
|
+
import { cva, type VariantProps } from "class-variance-authority";
|
|
8
|
+
import { ArrowLeft, ArrowRight } from "lucide-react";
|
|
9
|
+
|
|
10
|
+
import { cn } from "../../lib/utils";
|
|
11
|
+
import { Button } from "./button";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Premium Carousel Component
|
|
15
|
+
*
|
|
16
|
+
* Embla Carousel tabanlı, erişilebilir ve esnek carousel bileşeni.
|
|
17
|
+
* Yatay/dikey yön desteği, klavye navigasyonu ve plugin (autoplay vb.) desteği sunar.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
type CarouselApi = UseEmblaCarouselType[1];
|
|
21
|
+
type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
|
|
22
|
+
type CarouselOptions = UseCarouselParameters[0];
|
|
23
|
+
type CarouselPlugin = UseCarouselParameters[1];
|
|
24
|
+
|
|
25
|
+
export interface CarouselProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
26
|
+
/** Embla carousel seçenekleri (loop, align, axis vb.) */
|
|
27
|
+
opts?: CarouselOptions;
|
|
28
|
+
/** Embla plugin listesi (ör. autoplay) */
|
|
29
|
+
plugins?: CarouselPlugin;
|
|
30
|
+
/** Kaydırma yönü */
|
|
31
|
+
orientation?: "horizontal" | "vertical";
|
|
32
|
+
/** Embla API'sine dışarıdan erişmek için callback */
|
|
33
|
+
setApi?: (api: CarouselApi) => void;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface CarouselContextProps
|
|
37
|
+
extends Pick<CarouselProps, "opts" | "plugins" | "setApi"> {
|
|
38
|
+
carouselRef: ReturnType<typeof useEmblaCarousel>[0];
|
|
39
|
+
api: ReturnType<typeof useEmblaCarousel>[1];
|
|
40
|
+
scrollPrev: () => void;
|
|
41
|
+
scrollNext: () => void;
|
|
42
|
+
canScrollPrev: boolean;
|
|
43
|
+
canScrollNext: boolean;
|
|
44
|
+
orientation: "horizontal" | "vertical";
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const CarouselContext = React.createContext<CarouselContextProps | null>(null);
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Carousel context hook'u — Carousel alt bileşenlerinin embla API'sine
|
|
51
|
+
* ve yön bilgisine erişmesini sağlar.
|
|
52
|
+
*/
|
|
53
|
+
function useCarousel() {
|
|
54
|
+
const context = React.useContext(CarouselContext);
|
|
55
|
+
|
|
56
|
+
if (!context) {
|
|
57
|
+
throw new Error("useCarousel must be used within a <Carousel />");
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return context;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* -------------------------------------------------------------------------------------------------
|
|
64
|
+
* Carousel Root
|
|
65
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
66
|
+
const Carousel = React.forwardRef<HTMLDivElement, CarouselProps>(
|
|
67
|
+
(
|
|
68
|
+
{
|
|
69
|
+
orientation = "horizontal",
|
|
70
|
+
opts,
|
|
71
|
+
setApi,
|
|
72
|
+
plugins,
|
|
73
|
+
className,
|
|
74
|
+
children,
|
|
75
|
+
...props
|
|
76
|
+
},
|
|
77
|
+
ref
|
|
78
|
+
) => {
|
|
79
|
+
// Yön bilgisi opts.axis ile de verilebilir — orientation prop'u öncelikli
|
|
80
|
+
const resolvedOrientation =
|
|
81
|
+
orientation || (opts?.axis === "y" ? "vertical" : "horizontal");
|
|
82
|
+
|
|
83
|
+
const [carouselRef, api] = useEmblaCarousel(
|
|
84
|
+
{
|
|
85
|
+
...opts,
|
|
86
|
+
axis: resolvedOrientation === "horizontal" ? "x" : "y",
|
|
87
|
+
},
|
|
88
|
+
plugins
|
|
89
|
+
);
|
|
90
|
+
const [canScrollPrev, setCanScrollPrev] = React.useState(false);
|
|
91
|
+
const [canScrollNext, setCanScrollNext] = React.useState(false);
|
|
92
|
+
|
|
93
|
+
// Embla "select" olayında ileri/geri butonlarının durumunu güncelle
|
|
94
|
+
const onSelect = React.useCallback((emblaApi: CarouselApi) => {
|
|
95
|
+
if (!emblaApi) return;
|
|
96
|
+
setCanScrollPrev(emblaApi.canScrollPrev());
|
|
97
|
+
setCanScrollNext(emblaApi.canScrollNext());
|
|
98
|
+
}, []);
|
|
99
|
+
|
|
100
|
+
const scrollPrev = React.useCallback(() => {
|
|
101
|
+
api?.scrollPrev();
|
|
102
|
+
}, [api]);
|
|
103
|
+
|
|
104
|
+
const scrollNext = React.useCallback(() => {
|
|
105
|
+
api?.scrollNext();
|
|
106
|
+
}, [api]);
|
|
107
|
+
|
|
108
|
+
// Klavye navigasyonu: yatayda sol/sağ, dikeyde yukarı/aşağı ok tuşları
|
|
109
|
+
const handleKeyDown = React.useCallback(
|
|
110
|
+
(event: React.KeyboardEvent<HTMLDivElement>) => {
|
|
111
|
+
const prevKey =
|
|
112
|
+
resolvedOrientation === "horizontal" ? "ArrowLeft" : "ArrowUp";
|
|
113
|
+
const nextKey =
|
|
114
|
+
resolvedOrientation === "horizontal" ? "ArrowRight" : "ArrowDown";
|
|
115
|
+
|
|
116
|
+
if (event.key === prevKey) {
|
|
117
|
+
event.preventDefault();
|
|
118
|
+
scrollPrev();
|
|
119
|
+
} else if (event.key === nextKey) {
|
|
120
|
+
event.preventDefault();
|
|
121
|
+
scrollNext();
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
[resolvedOrientation, scrollPrev, scrollNext]
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
React.useEffect(() => {
|
|
128
|
+
if (!api || !setApi) return;
|
|
129
|
+
setApi(api);
|
|
130
|
+
}, [api, setApi]);
|
|
131
|
+
|
|
132
|
+
React.useEffect(() => {
|
|
133
|
+
if (!api) return;
|
|
134
|
+
|
|
135
|
+
onSelect(api);
|
|
136
|
+
api.on("reInit", onSelect);
|
|
137
|
+
api.on("select", onSelect);
|
|
138
|
+
|
|
139
|
+
return () => {
|
|
140
|
+
api.off("reInit", onSelect);
|
|
141
|
+
api.off("select", onSelect);
|
|
142
|
+
};
|
|
143
|
+
}, [api, onSelect]);
|
|
144
|
+
|
|
145
|
+
return (
|
|
146
|
+
<CarouselContext.Provider
|
|
147
|
+
value={{
|
|
148
|
+
carouselRef,
|
|
149
|
+
api,
|
|
150
|
+
opts,
|
|
151
|
+
scrollPrev,
|
|
152
|
+
scrollNext,
|
|
153
|
+
canScrollPrev,
|
|
154
|
+
canScrollNext,
|
|
155
|
+
orientation: resolvedOrientation,
|
|
156
|
+
}}
|
|
157
|
+
>
|
|
158
|
+
<div
|
|
159
|
+
ref={ref}
|
|
160
|
+
onKeyDownCapture={handleKeyDown}
|
|
161
|
+
className={cn("moonui-theme", "relative", className)}
|
|
162
|
+
role="region"
|
|
163
|
+
aria-roledescription="carousel"
|
|
164
|
+
{...props}
|
|
165
|
+
>
|
|
166
|
+
{children}
|
|
167
|
+
</div>
|
|
168
|
+
</CarouselContext.Provider>
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
);
|
|
172
|
+
Carousel.displayName = "Carousel";
|
|
173
|
+
|
|
174
|
+
/* -------------------------------------------------------------------------------------------------
|
|
175
|
+
* CarouselContent
|
|
176
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
177
|
+
const carouselContentVariants = cva("flex", {
|
|
178
|
+
variants: {
|
|
179
|
+
orientation: {
|
|
180
|
+
horizontal: "-ml-4",
|
|
181
|
+
vertical: "-mt-4 flex-col",
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
defaultVariants: {
|
|
185
|
+
orientation: "horizontal",
|
|
186
|
+
},
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
export interface CarouselContentProps
|
|
190
|
+
extends React.HTMLAttributes<HTMLDivElement>,
|
|
191
|
+
Omit<VariantProps<typeof carouselContentVariants>, "orientation"> {}
|
|
192
|
+
|
|
193
|
+
const CarouselContent = React.forwardRef<HTMLDivElement, CarouselContentProps>(
|
|
194
|
+
({ className, ...props }, ref) => {
|
|
195
|
+
const { carouselRef, orientation } = useCarousel();
|
|
196
|
+
|
|
197
|
+
return (
|
|
198
|
+
<div ref={carouselRef} className="overflow-hidden">
|
|
199
|
+
<div
|
|
200
|
+
ref={ref}
|
|
201
|
+
className={cn(carouselContentVariants({ orientation }), className)}
|
|
202
|
+
{...props}
|
|
203
|
+
/>
|
|
204
|
+
</div>
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
);
|
|
208
|
+
CarouselContent.displayName = "CarouselContent";
|
|
209
|
+
|
|
210
|
+
/* -------------------------------------------------------------------------------------------------
|
|
211
|
+
* CarouselItem
|
|
212
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
213
|
+
const carouselItemVariants = cva("min-w-0 shrink-0 grow-0 basis-full", {
|
|
214
|
+
variants: {
|
|
215
|
+
orientation: {
|
|
216
|
+
horizontal: "pl-4",
|
|
217
|
+
vertical: "pt-4",
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
defaultVariants: {
|
|
221
|
+
orientation: "horizontal",
|
|
222
|
+
},
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
export interface CarouselItemProps
|
|
226
|
+
extends React.HTMLAttributes<HTMLDivElement>,
|
|
227
|
+
Omit<VariantProps<typeof carouselItemVariants>, "orientation"> {}
|
|
228
|
+
|
|
229
|
+
const CarouselItem = React.forwardRef<HTMLDivElement, CarouselItemProps>(
|
|
230
|
+
({ className, ...props }, ref) => {
|
|
231
|
+
const { orientation } = useCarousel();
|
|
232
|
+
|
|
233
|
+
return (
|
|
234
|
+
<div
|
|
235
|
+
ref={ref}
|
|
236
|
+
role="group"
|
|
237
|
+
aria-roledescription="slide"
|
|
238
|
+
className={cn(carouselItemVariants({ orientation }), className)}
|
|
239
|
+
{...props}
|
|
240
|
+
/>
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
);
|
|
244
|
+
CarouselItem.displayName = "CarouselItem";
|
|
245
|
+
|
|
246
|
+
/* -------------------------------------------------------------------------------------------------
|
|
247
|
+
* CarouselPrevious
|
|
248
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
249
|
+
const CarouselPrevious = React.forwardRef<
|
|
250
|
+
HTMLButtonElement,
|
|
251
|
+
React.ComponentProps<typeof Button>
|
|
252
|
+
>(({ className, variant = "outline", size = "icon-sm", ...props }, ref) => {
|
|
253
|
+
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
254
|
+
|
|
255
|
+
return (
|
|
256
|
+
<Button
|
|
257
|
+
ref={ref}
|
|
258
|
+
variant={variant}
|
|
259
|
+
size={size}
|
|
260
|
+
rounded="full"
|
|
261
|
+
className={cn(
|
|
262
|
+
"absolute",
|
|
263
|
+
orientation === "horizontal"
|
|
264
|
+
? "-left-12 top-1/2 -translate-y-1/2"
|
|
265
|
+
: "-top-12 left-1/2 -translate-x-1/2 rotate-90",
|
|
266
|
+
className
|
|
267
|
+
)}
|
|
268
|
+
disabled={!canScrollPrev}
|
|
269
|
+
onClick={scrollPrev}
|
|
270
|
+
{...props}
|
|
271
|
+
>
|
|
272
|
+
<ArrowLeft className="h-4 w-4" aria-hidden="true" />
|
|
273
|
+
<span className="sr-only">Previous slide</span>
|
|
274
|
+
</Button>
|
|
275
|
+
);
|
|
276
|
+
});
|
|
277
|
+
CarouselPrevious.displayName = "CarouselPrevious";
|
|
278
|
+
|
|
279
|
+
/* -------------------------------------------------------------------------------------------------
|
|
280
|
+
* CarouselNext
|
|
281
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
282
|
+
const CarouselNext = React.forwardRef<
|
|
283
|
+
HTMLButtonElement,
|
|
284
|
+
React.ComponentProps<typeof Button>
|
|
285
|
+
>(({ className, variant = "outline", size = "icon-sm", ...props }, ref) => {
|
|
286
|
+
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
287
|
+
|
|
288
|
+
return (
|
|
289
|
+
<Button
|
|
290
|
+
ref={ref}
|
|
291
|
+
variant={variant}
|
|
292
|
+
size={size}
|
|
293
|
+
rounded="full"
|
|
294
|
+
className={cn(
|
|
295
|
+
"absolute",
|
|
296
|
+
orientation === "horizontal"
|
|
297
|
+
? "-right-12 top-1/2 -translate-y-1/2"
|
|
298
|
+
: "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
|
|
299
|
+
className
|
|
300
|
+
)}
|
|
301
|
+
disabled={!canScrollNext}
|
|
302
|
+
onClick={scrollNext}
|
|
303
|
+
{...props}
|
|
304
|
+
>
|
|
305
|
+
<ArrowRight className="h-4 w-4" aria-hidden="true" />
|
|
306
|
+
<span className="sr-only">Next slide</span>
|
|
307
|
+
</Button>
|
|
308
|
+
);
|
|
309
|
+
});
|
|
310
|
+
CarouselNext.displayName = "CarouselNext";
|
|
311
|
+
|
|
312
|
+
export {
|
|
313
|
+
type CarouselApi,
|
|
314
|
+
type CarouselOptions,
|
|
315
|
+
type CarouselPlugin,
|
|
316
|
+
Carousel,
|
|
317
|
+
CarouselContent,
|
|
318
|
+
CarouselItem,
|
|
319
|
+
CarouselPrevious,
|
|
320
|
+
CarouselNext,
|
|
321
|
+
useCarousel,
|
|
322
|
+
carouselContentVariants,
|
|
323
|
+
carouselItemVariants,
|
|
324
|
+
};
|
|
@@ -98,6 +98,23 @@ export {
|
|
|
98
98
|
CardZipInput as MoonUICardZipInput,
|
|
99
99
|
} from "./card-input";
|
|
100
100
|
|
|
101
|
+
// Carousel
|
|
102
|
+
export {
|
|
103
|
+
Carousel as MoonUICarousel,
|
|
104
|
+
CarouselContent as MoonUICarouselContent,
|
|
105
|
+
CarouselItem as MoonUICarouselItem,
|
|
106
|
+
CarouselPrevious as MoonUICarouselPrevious,
|
|
107
|
+
CarouselNext as MoonUICarouselNext,
|
|
108
|
+
carouselContentVariants as moonUICarouselContentVariants,
|
|
109
|
+
carouselItemVariants as moonUICarouselItemVariants,
|
|
110
|
+
useCarousel,
|
|
111
|
+
} from "./carousel";
|
|
112
|
+
|
|
113
|
+
export type {
|
|
114
|
+
CarouselProps as MoonUICarouselProps,
|
|
115
|
+
CarouselApi as MoonUICarouselApi,
|
|
116
|
+
} from "./carousel";
|
|
117
|
+
|
|
101
118
|
// Checkbox
|
|
102
119
|
export {
|
|
103
120
|
Checkbox as MoonUICheckbox,
|
|
@@ -220,6 +237,19 @@ export type {
|
|
|
220
237
|
InputProps as MoonUIInputProps,
|
|
221
238
|
} from "./input";
|
|
222
239
|
|
|
240
|
+
// InputOTP
|
|
241
|
+
export {
|
|
242
|
+
InputOTP as MoonUIInputOTP,
|
|
243
|
+
InputOTPGroup as MoonUIInputOTPGroup,
|
|
244
|
+
InputOTPSlot as MoonUIInputOTPSlot,
|
|
245
|
+
InputOTPSeparator as MoonUIInputOTPSeparator,
|
|
246
|
+
inputOTPSlotVariants as moonUIInputOTPSlotVariants,
|
|
247
|
+
} from "./input-otp";
|
|
248
|
+
|
|
249
|
+
export type {
|
|
250
|
+
InputOTPProps as MoonUIInputOTPProps,
|
|
251
|
+
} from "./input-otp";
|
|
252
|
+
|
|
223
253
|
// Label
|
|
224
254
|
export { Label as MoonUILabel } from "./label";
|
|
225
255
|
|
|
@@ -404,6 +434,7 @@ export * from "./breadcrumb";
|
|
|
404
434
|
export * from "./button";
|
|
405
435
|
export * from "./card";
|
|
406
436
|
export * from "./card-input";
|
|
437
|
+
export * from "./carousel";
|
|
407
438
|
export * from "./checkbox";
|
|
408
439
|
export * from "./collapsible";
|
|
409
440
|
export * from "./color-picker";
|
|
@@ -416,6 +447,7 @@ export * from "./file-upload";
|
|
|
416
447
|
export * from "./gesture-drawer";
|
|
417
448
|
export * from "./github-stars";
|
|
418
449
|
export * from "./input";
|
|
450
|
+
export * from "./input-otp";
|
|
419
451
|
export * from "./label";
|
|
420
452
|
export * from "./locked-component";
|
|
421
453
|
export * from "./moon-logo";
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { OTPInput, OTPInputContext } from "input-otp";
|
|
5
|
+
import { cva, type VariantProps } from "class-variance-authority";
|
|
6
|
+
import { Dot } from "lucide-react";
|
|
7
|
+
|
|
8
|
+
import { cn } from "../../lib/utils";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Premium InputOTP Component
|
|
12
|
+
*
|
|
13
|
+
* input-otp kütüphanesi tabanlı, erişilebilir tek kullanımlık şifre (OTP) girişi.
|
|
14
|
+
* Paste desteği, pattern doğrulama ve aktif slot vurgusu sunar.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
// Pattern sabitleri — kullanım kolaylığı için input-otp'den yeniden export edilir
|
|
18
|
+
export {
|
|
19
|
+
REGEXP_ONLY_DIGITS,
|
|
20
|
+
REGEXP_ONLY_CHARS,
|
|
21
|
+
REGEXP_ONLY_DIGITS_AND_CHARS,
|
|
22
|
+
} from "input-otp";
|
|
23
|
+
|
|
24
|
+
/* -------------------------------------------------------------------------------------------------
|
|
25
|
+
* InputOTP Root
|
|
26
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
27
|
+
export type InputOTPProps = React.ComponentPropsWithoutRef<typeof OTPInput>;
|
|
28
|
+
|
|
29
|
+
const InputOTP = React.forwardRef<
|
|
30
|
+
React.ElementRef<typeof OTPInput>,
|
|
31
|
+
InputOTPProps
|
|
32
|
+
>(({ className, containerClassName, ...props }, ref) => (
|
|
33
|
+
<OTPInput
|
|
34
|
+
ref={ref}
|
|
35
|
+
containerClassName={cn(
|
|
36
|
+
"moonui-theme",
|
|
37
|
+
"flex items-center gap-2 has-[:disabled]:opacity-50",
|
|
38
|
+
containerClassName
|
|
39
|
+
)}
|
|
40
|
+
className={cn("disabled:cursor-not-allowed", className)}
|
|
41
|
+
{...props}
|
|
42
|
+
/>
|
|
43
|
+
));
|
|
44
|
+
InputOTP.displayName = "InputOTP";
|
|
45
|
+
|
|
46
|
+
/* -------------------------------------------------------------------------------------------------
|
|
47
|
+
* InputOTPGroup
|
|
48
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
49
|
+
const InputOTPGroup = React.forwardRef<
|
|
50
|
+
HTMLDivElement,
|
|
51
|
+
React.HTMLAttributes<HTMLDivElement>
|
|
52
|
+
>(({ className, ...props }, ref) => (
|
|
53
|
+
<div ref={ref} className={cn("flex items-center", className)} {...props} />
|
|
54
|
+
));
|
|
55
|
+
InputOTPGroup.displayName = "InputOTPGroup";
|
|
56
|
+
|
|
57
|
+
/* -------------------------------------------------------------------------------------------------
|
|
58
|
+
* InputOTPSlot
|
|
59
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
60
|
+
const inputOTPSlotVariants = cva(
|
|
61
|
+
[
|
|
62
|
+
"relative flex h-10 w-10 items-center justify-center",
|
|
63
|
+
"border-y border-r border-input text-sm text-foreground",
|
|
64
|
+
"transition-all duration-200",
|
|
65
|
+
"first:rounded-l-md first:border-l last:rounded-r-md",
|
|
66
|
+
],
|
|
67
|
+
{
|
|
68
|
+
variants: {
|
|
69
|
+
// Aktif slot vurgusu — token tabanlı ring stili
|
|
70
|
+
isActive: {
|
|
71
|
+
true: "z-10 ring-2 ring-ring ring-offset-background",
|
|
72
|
+
false: "",
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
defaultVariants: {
|
|
76
|
+
isActive: false,
|
|
77
|
+
},
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
export interface InputOTPSlotProps
|
|
82
|
+
extends React.HTMLAttributes<HTMLDivElement>,
|
|
83
|
+
Omit<VariantProps<typeof inputOTPSlotVariants>, "isActive"> {
|
|
84
|
+
/** Bu slotun temsil ettiği karakter index'i */
|
|
85
|
+
index: number;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const InputOTPSlot = React.forwardRef<HTMLDivElement, InputOTPSlotProps>(
|
|
89
|
+
({ index, className, ...props }, ref) => {
|
|
90
|
+
const inputOTPContext = React.useContext(OTPInputContext);
|
|
91
|
+
const slot = inputOTPContext?.slots?.[index];
|
|
92
|
+
const char = slot?.char;
|
|
93
|
+
const hasFakeCaret = slot?.hasFakeCaret;
|
|
94
|
+
const isActive = slot?.isActive;
|
|
95
|
+
|
|
96
|
+
return (
|
|
97
|
+
<div
|
|
98
|
+
ref={ref}
|
|
99
|
+
data-active={isActive ? "" : undefined}
|
|
100
|
+
className={cn(inputOTPSlotVariants({ isActive: !!isActive }), className)}
|
|
101
|
+
{...props}
|
|
102
|
+
>
|
|
103
|
+
{char}
|
|
104
|
+
{hasFakeCaret && (
|
|
105
|
+
// Sahte imleç — gerçek input görünmez olduğu için aktif slotta yanıp söner
|
|
106
|
+
<div className="pointer-events-none absolute inset-0 flex items-center justify-center">
|
|
107
|
+
<div className="h-4 w-px animate-caret-blink bg-foreground duration-1000" />
|
|
108
|
+
</div>
|
|
109
|
+
)}
|
|
110
|
+
</div>
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
);
|
|
114
|
+
InputOTPSlot.displayName = "InputOTPSlot";
|
|
115
|
+
|
|
116
|
+
/* -------------------------------------------------------------------------------------------------
|
|
117
|
+
* InputOTPSeparator
|
|
118
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
119
|
+
const InputOTPSeparator = React.forwardRef<
|
|
120
|
+
HTMLDivElement,
|
|
121
|
+
React.HTMLAttributes<HTMLDivElement>
|
|
122
|
+
>(({ className, ...props }, ref) => (
|
|
123
|
+
<div
|
|
124
|
+
ref={ref}
|
|
125
|
+
role="separator"
|
|
126
|
+
className={cn("text-muted-foreground", className)}
|
|
127
|
+
{...props}
|
|
128
|
+
>
|
|
129
|
+
<Dot aria-hidden="true" />
|
|
130
|
+
</div>
|
|
131
|
+
));
|
|
132
|
+
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
133
|
+
|
|
134
|
+
export {
|
|
135
|
+
InputOTP,
|
|
136
|
+
InputOTPGroup,
|
|
137
|
+
InputOTPSlot,
|
|
138
|
+
InputOTPSeparator,
|
|
139
|
+
inputOTPSlotVariants,
|
|
140
|
+
};
|
package/tailwind-preset.js
CHANGED
|
@@ -133,6 +133,7 @@ module.exports = {
|
|
|
133
133
|
"accordion-up": "accordion-up 0.2s ease-out",
|
|
134
134
|
shake: "shake 0.5s ease-in-out",
|
|
135
135
|
rotate: "rotate 0.5s ease-in-out",
|
|
136
|
+
"caret-blink": "caret-blink 1.25s ease-out infinite",
|
|
136
137
|
},
|
|
137
138
|
keyframes: {
|
|
138
139
|
"accordion-down": {
|
|
@@ -152,6 +153,11 @@ module.exports = {
|
|
|
152
153
|
"0%": { transform: "rotate(0deg)" },
|
|
153
154
|
"100%": { transform: "rotate(360deg)" },
|
|
154
155
|
},
|
|
156
|
+
// InputOTP sahte imleç animasyonu
|
|
157
|
+
"caret-blink": {
|
|
158
|
+
"0%,70%,100%": { opacity: "1" },
|
|
159
|
+
"20%,50%": { opacity: "0" },
|
|
160
|
+
},
|
|
155
161
|
},
|
|
156
162
|
boxShadow: {
|
|
157
163
|
"3xl": "0 35px 60px -15px rgba(0, 0, 0, 0.3)",
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
/** @license MoonUI v1.0.0 - MIT License - https://moonui.dev */
|
|
4
|
-
var D=Object.create;var S=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var z=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var Et=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,n)=>(typeof require<"u"?require:e)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var _=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var B=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of b(e))!G.call(t,o)&&o!==n&&S(t,o,{get:()=>e[o],enumerable:!(r=q(e,o))||r.enumerable});return t};var _t=(t,e,n)=>(n=t!=null?D(z(t)):{},B(e||!t||!t.__esModule?S(n,"default",{value:t,enumerable:!0}):n,t));var k=_(u=>{"use strict";var R=Symbol.for("react.transitional.element"),W=Symbol.for("react.portal"),Q=Symbol.for("react.fragment"),X=Symbol.for("react.strict_mode"),Z=Symbol.for("react.profiler"),J=Symbol.for("react.consumer"),V=Symbol.for("react.context"),K=Symbol.for("react.forward_ref"),F=Symbol.for("react.suspense"),tt=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),et=Symbol.for("react.activity"),j=Symbol.iterator;function nt(t){return t===null||typeof t!="object"?null:(t=j&&t[j]||t["@@iterator"],typeof t=="function"?t:null)}var H={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,N={};function E(t,e,n){this.props=t,this.context=e,this.refs=N,this.updater=n||H}E.prototype.isReactComponent={};E.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};E.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function $(){}$.prototype=E.prototype;function m(t,e,n){this.props=t,this.context=e,this.refs=N,this.updater=n||H}var C=m.prototype=new $;C.constructor=m;g(C,E.prototype);C.isPureReactComponent=!0;var w=Array.isArray;function T(){}var i={H:null,A:null,T:null,S:null},Y=Object.prototype.hasOwnProperty;function d(t,e,n){var r=n.ref;return{$$typeof:R,type:t,key:e,ref:r!==void 0?r:null,props:n}}function rt(t,e){return d(t.type,e,t.props)}function A(t){return typeof t=="object"&&t!==null&&t.$$typeof===R}function ut(t){var e={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(n){return e[n]})}var P=/\/+/g;function v(t,e){return typeof t=="object"&&t!==null&&t.key!=null?ut(""+t.key):e.toString(36)}function ot(t){switch(t.status){case"fulfilled":return t.value;case"rejected":throw t.reason;default:switch(typeof t.status=="string"?t.then(T,T):(t.status="pending",t.then(function(e){t.status==="pending"&&(t.status="fulfilled",t.value=e)},function(e){t.status==="pending"&&(t.status="rejected",t.reason=e)})),t.status){case"fulfilled":return t.value;case"rejected":throw t.reason}}throw t}function l(t,e,n,r,o){var s=typeof t;(s==="undefined"||s==="boolean")&&(t=null);var f=!1;if(t===null)f=!0;else switch(s){case"bigint":case"string":case"number":f=!0;break;case"object":switch(t.$$typeof){case R:case W:f=!0;break;case O:return f=t._init,l(f(t._payload),e,n,r,o)}}if(f)return o=o(t),f=r===""?"."+v(t,0):r,w(o)?(n="",f!=null&&(n=f.replace(P,"$&/")+"/"),l(o,e,n,"",function(U){return U})):o!=null&&(A(o)&&(o=rt(o,n+(o.key==null||t&&t.key===o.key?"":(""+o.key).replace(P,"$&/")+"/")+f)),e.push(o)),1;f=0;var p=r===""?".":r+":";if(w(t))for(var c=0;c<t.length;c++)r=t[c],s=p+v(r,c),f+=l(r,e,n,s,o);else if(c=nt(t),typeof c=="function")for(t=c.call(t),c=0;!(r=t.next()).done;)r=r.value,s=p+v(r,c++),f+=l(r,e,n,s,o);else if(s==="object"){if(typeof t.then=="function")return l(ot(t),e,n,r,o);throw e=String(t),Error("Objects are not valid as a React child (found: "+(e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)+"). If you meant to render a collection of children, use an array instead.")}return f}function a(t,e,n){if(t==null)return t;var r=[],o=0;return l(t,r,"","",function(s){return e.call(n,s,o++)}),r}function st(t){if(t._status===-1){var e=t._result;e=e(),e.then(function(n){(t._status===0||t._status===-1)&&(t._status=1,t._result=n)},function(n){(t._status===0||t._status===-1)&&(t._status=2,t._result=n)}),t._status===-1&&(t._status=0,t._result=e)}if(t._status===1)return t._result.default;throw t._result}var h=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)},ft={map:a,forEach:function(t,e,n){a(t,function(){e.apply(this,arguments)},n)},count:function(t){var e=0;return a(t,function(){e++}),e},toArray:function(t){return a(t,function(e){return e})||[]},only:function(t){if(!A(t))throw Error("React.Children.only expected to receive a single React element child.");return t}};u.Activity=et;u.Children=ft;u.Component=E;u.Fragment=Q;u.Profiler=Z;u.PureComponent=m;u.StrictMode=X;u.Suspense=F;u.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i;u.__COMPILER_RUNTIME={__proto__:null,c:function(t){return i.H.useMemoCache(t)}};u.cache=function(t){return function(){return t.apply(null,arguments)}};u.cacheSignal=function(){return null};u.cloneElement=function(t,e,n){if(t==null)throw Error("The argument must be a React element, but you passed "+t+".");var r=g({},t.props),o=t.key;if(e!=null)for(s in e.key!==void 0&&(o=""+e.key),e)!Y.call(e,s)||s==="key"||s==="__self"||s==="__source"||s==="ref"&&e.ref===void 0||(r[s]=e[s]);var s=arguments.length-2;if(s===1)r.children=n;else if(1<s){for(var f=Array(s),p=0;p<s;p++)f[p]=arguments[p+2];r.children=f}return d(t.type,o,r)};u.createContext=function(t){return t={$$typeof:V,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null},t.Provider=t,t.Consumer={$$typeof:J,_context:t},t};u.createElement=function(t,e,n){var r,o={},s=null;if(e!=null)for(r in e.key!==void 0&&(s=""+e.key),e)Y.call(e,r)&&r!=="key"&&r!=="__self"&&r!=="__source"&&(o[r]=e[r]);var f=arguments.length-2;if(f===1)o.children=n;else if(1<f){for(var p=Array(f),c=0;c<f;c++)p[c]=arguments[c+2];o.children=p}if(t&&t.defaultProps)for(r in f=t.defaultProps,f)o[r]===void 0&&(o[r]=f[r]);return d(t,s,o)};u.createRef=function(){return{current:null}};u.forwardRef=function(t){return{$$typeof:K,render:t}};u.isValidElement=A;u.lazy=function(t){return{$$typeof:O,_payload:{_status:-1,_result:t},_init:st}};u.memo=function(t,e){return{$$typeof:tt,type:t,compare:e===void 0?null:e}};u.startTransition=function(t){var e=i.T,n={};i.T=n;try{var r=t(),o=i.S;o!==null&&o(n,r),typeof r=="object"&&r!==null&&typeof r.then=="function"&&r.then(T,h)}catch(s){h(s)}finally{e!==null&&n.types!==null&&(e.types=n.types),i.T=e}};u.unstable_useCacheRefresh=function(){return i.H.useCacheRefresh()};u.use=function(t){return i.H.use(t)};u.useActionState=function(t,e,n){return i.H.useActionState(t,e,n)};u.useCallback=function(t,e){return i.H.useCallback(t,e)};u.useContext=function(t){return i.H.useContext(t)};u.useDebugValue=function(){};u.useDeferredValue=function(t,e){return i.H.useDeferredValue(t,e)};u.useEffect=function(t,e){return i.H.useEffect(t,e)};u.useEffectEvent=function(t){return i.H.useEffectEvent(t)};u.useId=function(){return i.H.useId()};u.useImperativeHandle=function(t,e,n){return i.H.useImperativeHandle(t,e,n)};u.useInsertionEffect=function(t,e){return i.H.useInsertionEffect(t,e)};u.useLayoutEffect=function(t,e){return i.H.useLayoutEffect(t,e)};u.useMemo=function(t,e){return i.H.useMemo(t,e)};u.useOptimistic=function(t,e){return i.H.useOptimistic(t,e)};u.useReducer=function(t,e,n){return i.H.useReducer(t,e,n)};u.useRef=function(t){return i.H.useRef(t)};u.useState=function(t){return i.H.useState(t)};u.useSyncExternalStore=function(t,e,n){return i.H.useSyncExternalStore(t,e,n)};u.useTransition=function(){return i.H.useTransition()};u.version="19.2.3"});var it=_((vt,M)=>{"use strict";M.exports=k()});var I=_(y=>{"use strict";var ct=Symbol.for("react.transitional.element"),pt=Symbol.for("react.fragment");function x(t,e,n){var r=null;if(n!==void 0&&(r=""+n),e.key!==void 0&&(r=""+e.key),"key"in e){n={};for(var o in e)o!=="key"&&(n[o]=e[o])}else n=e;return e=n.ref,{$$typeof:ct,type:t,key:r,ref:e!==void 0?e:null,props:n}}y.Fragment=pt;y.jsx=x;y.jsxs=x});var lt=_((Rt,L)=>{"use strict";L.exports=I()});export{Et as a,_ as b,_t as c,it as d,lt as e};
|
|
5
|
-
/*! Bundled license information:
|
|
6
|
-
|
|
7
|
-
react/cjs/react.production.js:
|
|
8
|
-
(**
|
|
9
|
-
* @license React
|
|
10
|
-
* react.production.js
|
|
11
|
-
*
|
|
12
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
13
|
-
*
|
|
14
|
-
* This source code is licensed under the MIT license found in the
|
|
15
|
-
* LICENSE file in the root directory of this source tree.
|
|
16
|
-
*)
|
|
17
|
-
|
|
18
|
-
react/cjs/react-jsx-runtime.production.js:
|
|
19
|
-
(**
|
|
20
|
-
* @license React
|
|
21
|
-
* react-jsx-runtime.production.js
|
|
22
|
-
*
|
|
23
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
24
|
-
*
|
|
25
|
-
* This source code is licensed under the MIT license found in the
|
|
26
|
-
* LICENSE file in the root directory of this source tree.
|
|
27
|
-
*)
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
if (typeof window !== 'undefined' && !window.React) {
|
|
31
|
-
console.warn('MoonUI: React not found. Please include React and ReactDOM before MoonUI.');
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=chunk-PLK4O6WY.global.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/react/cjs/react.production.js","../../../node_modules/react/index.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../../../node_modules/react/jsx-runtime.js"],"sourcesContent":["/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.3\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n"],"mappings":"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","names":["require_react_production","__commonJSMin","exports","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_ACTIVITY_TYPE","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","assign","emptyObject","Component","props","context","updater","partialState","callback","ComponentDummy","PureComponent","pureComponentPrototype","isArrayImpl","noop","ReactSharedInternals","hasOwnProperty","ReactElement","type","key","refProp","cloneAndReplaceKey","oldElement","newKey","isValidElement","object","escape","escaperLookup","match","userProvidedKeyEscapeRegex","getElementKey","element","index","resolveThenable","thenable","fulfilledValue","error","mapIntoArray","children","array","escapedPrefix","nameSoFar","invokeCallback","c","nextNamePrefix","i","mapChildren","func","result","count","child","lazyInitializer","payload","ctor","moduleObject","reportGlobalError","event","Children","forEachFunc","forEachContext","n","size","fn","config","propName","childArray","defaultValue","childrenLength","render","compare","scope","prevTransition","currentTransition","returnValue","onStartTransitionFinish","usable","action","initialState","permalink","deps","Context","value","initialValue","create","ref","passthrough","reducer","initialArg","init","subscribe","getSnapshot","getServerSnapshot","require_react","__commonJSMin","exports","module","require_react_jsx_runtime_production","__commonJSMin","exports","REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","require_jsx_runtime","__commonJSMin","exports","module"]}
|