yaxa-svelte 2.0.4 → 2.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/README.md +38 -3
- package/dist/components/blocks/FAQ.svelte.d.ts +1 -1
- package/dist/components/blocks/FeatureGrid.svelte.d.ts +1 -1
- package/dist/components/blocks/Testimonials.svelte.d.ts +1 -1
- package/dist/components/elements/Avatar.svelte.d.ts +7 -25
- package/dist/components/elements/Badge.svelte.d.ts +15 -57
- package/dist/components/elements/Button.svelte.d.ts +19 -77
- package/dist/components/elements/Carousel.svelte.d.ts +2 -54
- package/dist/components/elements/CodeBlock.svelte +237 -8
- package/dist/components/elements/CodeBlock.test.js +227 -0
- package/dist/components/elements/CodeDiff.svelte +14 -0
- package/dist/components/elements/CodeDiff.test.js +16 -0
- package/dist/components/elements/EmptyState.svelte.d.ts +6 -26
- package/dist/components/elements/Icon.svelte.d.ts +6 -22
- package/dist/components/elements/Kbd.svelte.d.ts +5 -19
- package/dist/components/elements/Progress.svelte.d.ts +9 -35
- package/dist/components/elements/Skeleton.svelte.d.ts +8 -32
- package/dist/components/elements/Terminal.svelte.d.ts +1 -1
- package/dist/components/elements/Timeline.svelte.d.ts +4 -16
- package/dist/components/elements/Tree.svelte.d.ts +3 -13
- package/dist/components/elements/VirtualList.svelte.d.ts +3 -13
- package/dist/components/forms/Combobox.svelte.d.ts +7 -29
- package/dist/components/forms/Input.svelte.d.ts +9 -35
- package/dist/components/forms/MultiSelect.svelte.d.ts +7 -29
- package/dist/components/forms/NumberInput.svelte.d.ts +7 -29
- package/dist/components/forms/Select.svelte.d.ts +7 -29
- package/dist/components/forms/Switch.svelte.d.ts +8 -32
- package/dist/components/forms/Textarea.svelte.d.ts +11 -45
- package/dist/components/layout/Card.svelte.d.ts +10 -42
- package/dist/components/layout/Container.svelte.d.ts +7 -25
- package/dist/components/layout/DashboardShell.svelte.d.ts +1 -31
- package/dist/components/layout/ResizablePanels.svelte.d.ts +1 -35
- package/dist/components/navigation/CommandPalette.dom.test.d.ts +1 -0
- package/dist/components/navigation/CommandPalette.dom.test.js +76 -0
- package/dist/components/navigation/Stepper.svelte.d.ts +3 -13
- package/dist/components/overlays/Alert.svelte.d.ts +5 -19
- package/dist/components/overlays/Drawer.svelte.d.ts +3 -13
- package/dist/components/overlays/Modal.svelte.d.ts +6 -22
- package/dist/components/overlays/NotificationCenter.svelte.d.ts +1 -1
- package/dist/components/overlays/Slideover.svelte.d.ts +5 -19
- package/dist/components/overlays/Toast.svelte.d.ts +12 -44
- package/dist/components/saas/OrgSwitcher.svelte.d.ts +1 -1
- package/dist/components/saas/PasskeyUI.svelte.d.ts +1 -1
- package/dist/server/endpoint/endpoint.test.d.ts +1 -0
- package/dist/server/endpoint/endpoint.test.js +364 -0
- package/dist/server/endpoint/guards.d.ts +52 -0
- package/dist/server/endpoint/guards.js +137 -0
- package/dist/server/endpoint/index.d.ts +14 -0
- package/dist/server/endpoint/index.js +238 -0
- package/dist/server/endpoint/problem.d.ts +26 -0
- package/dist/server/endpoint/problem.js +62 -0
- package/dist/server/endpoint/types.d.ts +144 -0
- package/dist/server/endpoint/types.js +1 -0
- package/dist/server/endpoint/validate.d.ts +21 -0
- package/dist/server/endpoint/validate.js +128 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.js +2 -0
- package/dist/server/polar/index.d.ts +2 -1
- package/dist/server/polar/index.js +9 -8
- package/dist/server/polar/webhook.js +14 -11
- package/dist/server/polar/webhook.test.js +81 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.js +12 -1
- package/dist/utils/cn.d.ts +2 -2
- package/package.json +11 -13
package/README.md
CHANGED
|
@@ -12,6 +12,8 @@ _Nuxt UI v4 & Nuxt UI Pro Equivalent for SvelteKit 2 & 3 & Svelte 5 with Built-i
|
|
|
12
12
|
[](https://tailwindcss.com)
|
|
13
13
|
[](https://bits-ui.com)
|
|
14
14
|
[](LICENSE)
|
|
15
|
+
[](SECURITY.md)
|
|
16
|
+
[](CONTRIBUTING.md)
|
|
15
17
|
|
|
16
18
|
[**Live Documentation & Playground →**](https://yaxa.vercel.app)
|
|
17
19
|
|
|
@@ -239,13 +241,46 @@ export const POST = createPolarWebhookHandler();
|
|
|
239
241
|
|
|
240
242
|
---
|
|
241
243
|
|
|
244
|
+
## ⚡ Type-Safe Endpoint Pipeline (`yaxaEndpoint` & Declarative Guards)
|
|
245
|
+
|
|
246
|
+
Eliminate endpoint boilerplate in `+server.ts` with declarative auth guards, sliding-window rate limiting, multi-engine validation (Zod, Valibot, Standard Schema), and RFC 7807 Problem Details:
|
|
247
|
+
|
|
248
|
+
```ts
|
|
249
|
+
// src/routes/api/projects/+server.ts
|
|
250
|
+
import { yaxaEndpoint, requireAuth, requireRole, rateLimit } from 'yaxa-svelte/server';
|
|
251
|
+
import { z } from 'zod';
|
|
252
|
+
|
|
253
|
+
const CreateProjectSchema = z.object({
|
|
254
|
+
name: z.string().min(3),
|
|
255
|
+
description: z.string().optional()
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
export const POST = yaxaEndpoint({
|
|
259
|
+
status: 201,
|
|
260
|
+
guards: [
|
|
261
|
+
requireAuth(),
|
|
262
|
+
requireRole(['admin', 'owner']),
|
|
263
|
+
rateLimit({ points: 20, windowSeconds: 60 })
|
|
264
|
+
],
|
|
265
|
+
schema: {
|
|
266
|
+
body: CreateProjectSchema
|
|
267
|
+
},
|
|
268
|
+
handle: async ({ body, user, orgId }) => {
|
|
269
|
+
// Guaranteed type-safe body, authenticated user, and active orgId
|
|
270
|
+
return { id: 'proj_123', name: body.name, orgId };
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
242
277
|
## 📦 Subpath Exports Architecture
|
|
243
278
|
|
|
244
279
|
| Subpath | Description |
|
|
245
280
|
| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
246
281
|
| `yaxa-svelte` | Core UI Primitives, SEO Components, `<Gate />`, Theme System & Composables (`useGate`, `useUpload`, `useToast`, `useClipboard`, etc.) |
|
|
247
282
|
| `yaxa-svelte/admin` | Drizzle ORM Schema Introspection, `<AdminDashboard />`, `createYaxaAdminHook`, `createDrizzleAdmin`, `<DevSandbox />`, `<RecordDrawer />` |
|
|
248
|
-
| `yaxa-svelte/server` | Universal Server Hooks, SEO endpoints, Drizzle DB
|
|
283
|
+
| `yaxa-svelte/server` | `yaxaEndpoint` Pipeline, Declarative Guards, RFC 7807, Universal Server Hooks, SEO endpoints, Drizzle DB, Storage & Email |
|
|
249
284
|
| `yaxa-svelte/auth` | Better-Auth client & server integration (`useAuth`, `<AuthCard />`, `<PasskeyUI />`, `<TwoFactorModal />`, `createYaxaAuth`) |
|
|
250
285
|
| `yaxa-svelte/db` | Multi-dialect Drizzle ORM clients & schemas for Neon (PostgreSQL) and Turso (SQLite/LibSQL) |
|
|
251
286
|
| `yaxa-svelte/polar` | Polar.sh billing, customer portal sessions, and webhook synchronization |
|
|
@@ -293,12 +328,12 @@ theme.setAccent('sky'); // Sky Cyan (#0ea5e9)
|
|
|
293
328
|
|
|
294
329
|
## 🤝 Contributing
|
|
295
330
|
|
|
296
|
-
Contributions are always welcome!
|
|
331
|
+
Contributions are always welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) and [Security Policy](SECURITY.md) before submitting pull requests.
|
|
297
332
|
|
|
298
333
|
1. Fork the repository: `git clone https://github.com/FuntionalFrost/yaxa.git`
|
|
299
334
|
2. Install dependencies: `pnpm install`
|
|
300
335
|
3. Start development server: `pnpm dev`
|
|
301
|
-
4. Run
|
|
336
|
+
4. Run verification gates: `pnpm lint && pnpm check && pnpm test && pnpm build`
|
|
302
337
|
|
|
303
338
|
---
|
|
304
339
|
|
|
@@ -5,7 +5,7 @@ export interface FAQItem {
|
|
|
5
5
|
answer: string;
|
|
6
6
|
category?: string;
|
|
7
7
|
}
|
|
8
|
-
export declare const faqVariants: import("tailwind-variants").TVReturnType<{}
|
|
8
|
+
export declare const faqVariants: import("tailwind-variants").TVReturnType<{}, undefined, "w-full py-12 max-w-3xl mx-auto", undefined, undefined, undefined>;
|
|
9
9
|
export type FAQProps = VariantProps<typeof faqVariants> & {
|
|
10
10
|
title?: string;
|
|
11
11
|
description?: string;
|
|
@@ -8,7 +8,7 @@ export interface FeatureItem {
|
|
|
8
8
|
tag?: string;
|
|
9
9
|
href?: string;
|
|
10
10
|
}
|
|
11
|
-
export declare const featureGridVariants: import("tailwind-variants").TVReturnType<{}
|
|
11
|
+
export declare const featureGridVariants: import("tailwind-variants").TVReturnType<{}, undefined, "w-full py-12", undefined, undefined, undefined>;
|
|
12
12
|
export type FeatureGridProps = VariantProps<typeof featureGridVariants> & {
|
|
13
13
|
title?: string;
|
|
14
14
|
description?: string;
|
|
@@ -8,7 +8,7 @@ export interface TestimonialItem {
|
|
|
8
8
|
avatar?: string;
|
|
9
9
|
rating?: number;
|
|
10
10
|
}
|
|
11
|
-
export declare const testimonialsVariants: import("tailwind-variants").TVReturnType<{}
|
|
11
|
+
export declare const testimonialsVariants: import("tailwind-variants").TVReturnType<{}, undefined, "w-full py-12", undefined, undefined, undefined>;
|
|
12
12
|
export type TestimonialsProps = VariantProps<typeof testimonialsVariants> & {
|
|
13
13
|
title?: string;
|
|
14
14
|
description?: string;
|
|
@@ -1,32 +1,14 @@
|
|
|
1
1
|
import { type VariantProps } from '../../utils/cn';
|
|
2
2
|
export declare const avatarVariants: import("tailwind-variants").TVReturnType<{
|
|
3
3
|
size: {
|
|
4
|
-
xs:
|
|
5
|
-
sm:
|
|
6
|
-
md:
|
|
7
|
-
lg:
|
|
8
|
-
xl:
|
|
9
|
-
'2xl':
|
|
4
|
+
xs: string;
|
|
5
|
+
sm: string;
|
|
6
|
+
md: string;
|
|
7
|
+
lg: string;
|
|
8
|
+
xl: string;
|
|
9
|
+
'2xl': string;
|
|
10
10
|
};
|
|
11
|
-
}, undefined, "relative inline-flex shrink-0 items-center justify-center font-medium select-none overflow-hidden rounded-full bg-neutral-200 text-neutral-700 dark:bg-neutral-800 dark:text-neutral-300",
|
|
12
|
-
size: {
|
|
13
|
-
xs: "h-6 w-6 text-[10px]";
|
|
14
|
-
sm: "h-8 w-8 text-xs";
|
|
15
|
-
md: "h-10 w-10 text-sm";
|
|
16
|
-
lg: "h-12 w-12 text-base";
|
|
17
|
-
xl: "h-14 w-14 text-lg";
|
|
18
|
-
'2xl': "h-16 w-16 text-xl";
|
|
19
|
-
};
|
|
20
|
-
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
21
|
-
size: {
|
|
22
|
-
xs: "h-6 w-6 text-[10px]";
|
|
23
|
-
sm: "h-8 w-8 text-xs";
|
|
24
|
-
md: "h-10 w-10 text-sm";
|
|
25
|
-
lg: "h-12 w-12 text-base";
|
|
26
|
-
xl: "h-14 w-14 text-lg";
|
|
27
|
-
'2xl': "h-16 w-16 text-xl";
|
|
28
|
-
};
|
|
29
|
-
}, undefined>>;
|
|
11
|
+
}, undefined, "relative inline-flex shrink-0 items-center justify-center font-medium select-none overflow-hidden rounded-full bg-neutral-200 text-neutral-700 dark:bg-neutral-800 dark:text-neutral-300", undefined, undefined, undefined>;
|
|
30
12
|
export type AvatarProps = VariantProps<typeof avatarVariants> & {
|
|
31
13
|
src?: string;
|
|
32
14
|
alt?: string;
|
|
@@ -3,68 +3,26 @@ import type { Snippet } from 'svelte';
|
|
|
3
3
|
import type { IconSource } from './Icon.svelte';
|
|
4
4
|
export declare const badgeVariants: import("tailwind-variants").TVReturnType<{
|
|
5
5
|
variant: {
|
|
6
|
-
solid:
|
|
7
|
-
outline:
|
|
8
|
-
soft:
|
|
9
|
-
subtle:
|
|
6
|
+
solid: string;
|
|
7
|
+
outline: string;
|
|
8
|
+
soft: string;
|
|
9
|
+
subtle: string;
|
|
10
10
|
};
|
|
11
11
|
color: {
|
|
12
|
-
primary:
|
|
13
|
-
neutral:
|
|
14
|
-
success:
|
|
15
|
-
warning:
|
|
16
|
-
error:
|
|
17
|
-
info:
|
|
12
|
+
primary: string;
|
|
13
|
+
neutral: string;
|
|
14
|
+
success: string;
|
|
15
|
+
warning: string;
|
|
16
|
+
error: string;
|
|
17
|
+
info: string;
|
|
18
18
|
};
|
|
19
19
|
size: {
|
|
20
|
-
xs:
|
|
21
|
-
sm:
|
|
22
|
-
md:
|
|
23
|
-
lg:
|
|
20
|
+
xs: string;
|
|
21
|
+
sm: string;
|
|
22
|
+
md: string;
|
|
23
|
+
lg: string;
|
|
24
24
|
};
|
|
25
|
-
}, undefined, "inline-flex items-center font-medium select-none transition-colors duration-150",
|
|
26
|
-
variant: {
|
|
27
|
-
solid: "text-white";
|
|
28
|
-
outline: "border bg-transparent";
|
|
29
|
-
soft: "";
|
|
30
|
-
subtle: "border";
|
|
31
|
-
};
|
|
32
|
-
color: {
|
|
33
|
-
primary: "";
|
|
34
|
-
neutral: "";
|
|
35
|
-
success: "";
|
|
36
|
-
warning: "";
|
|
37
|
-
error: "";
|
|
38
|
-
info: "";
|
|
39
|
-
};
|
|
40
|
-
size: {
|
|
41
|
-
xs: "text-[10px] px-1.5 py-0.5 gap-1 rounded";
|
|
42
|
-
sm: "text-xs px-2.5 py-0.5 gap-1.5 rounded-md";
|
|
43
|
-
md: "text-xs px-2.5 py-1 gap-1.5 rounded-md";
|
|
44
|
-
lg: "text-sm px-3 py-1.5 gap-2 rounded-lg";
|
|
45
|
-
};
|
|
46
|
-
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
47
|
-
variant: {
|
|
48
|
-
solid: "text-white";
|
|
49
|
-
outline: "border bg-transparent";
|
|
50
|
-
soft: "";
|
|
51
|
-
subtle: "border";
|
|
52
|
-
};
|
|
53
|
-
color: {
|
|
54
|
-
primary: "";
|
|
55
|
-
neutral: "";
|
|
56
|
-
success: "";
|
|
57
|
-
warning: "";
|
|
58
|
-
error: "";
|
|
59
|
-
info: "";
|
|
60
|
-
};
|
|
61
|
-
size: {
|
|
62
|
-
xs: "text-[10px] px-1.5 py-0.5 gap-1 rounded";
|
|
63
|
-
sm: "text-xs px-2.5 py-0.5 gap-1.5 rounded-md";
|
|
64
|
-
md: "text-xs px-2.5 py-1 gap-1.5 rounded-md";
|
|
65
|
-
lg: "text-sm px-3 py-1.5 gap-2 rounded-lg";
|
|
66
|
-
};
|
|
67
|
-
}, undefined>>;
|
|
25
|
+
}, undefined, "inline-flex items-center font-medium select-none transition-colors duration-150", undefined, undefined, undefined>;
|
|
68
26
|
export type BadgeProps = VariantProps<typeof badgeVariants> & {
|
|
69
27
|
dot?: boolean;
|
|
70
28
|
icon?: IconSource;
|
|
@@ -3,92 +3,34 @@ import type { Snippet } from 'svelte';
|
|
|
3
3
|
import type { IconSource } from './Icon.svelte';
|
|
4
4
|
export declare const buttonVariants: import("tailwind-variants").TVReturnType<{
|
|
5
5
|
variant: {
|
|
6
|
-
solid:
|
|
7
|
-
outline:
|
|
8
|
-
soft:
|
|
9
|
-
subtle:
|
|
10
|
-
ghost:
|
|
11
|
-
link:
|
|
6
|
+
solid: string;
|
|
7
|
+
outline: string;
|
|
8
|
+
soft: string;
|
|
9
|
+
subtle: string;
|
|
10
|
+
ghost: string;
|
|
11
|
+
link: string;
|
|
12
12
|
};
|
|
13
13
|
color: {
|
|
14
|
-
primary:
|
|
15
|
-
neutral:
|
|
16
|
-
success:
|
|
17
|
-
warning:
|
|
18
|
-
error:
|
|
14
|
+
primary: string;
|
|
15
|
+
neutral: string;
|
|
16
|
+
success: string;
|
|
17
|
+
warning: string;
|
|
18
|
+
error: string;
|
|
19
19
|
};
|
|
20
20
|
size: {
|
|
21
|
-
xs:
|
|
22
|
-
sm:
|
|
23
|
-
md:
|
|
24
|
-
lg:
|
|
25
|
-
xl:
|
|
21
|
+
xs: string;
|
|
22
|
+
sm: string;
|
|
23
|
+
md: string;
|
|
24
|
+
lg: string;
|
|
25
|
+
xl: string;
|
|
26
26
|
};
|
|
27
27
|
block: {
|
|
28
|
-
true:
|
|
28
|
+
true: string;
|
|
29
29
|
};
|
|
30
30
|
square: {
|
|
31
|
-
true:
|
|
31
|
+
true: string;
|
|
32
32
|
};
|
|
33
|
-
}, undefined, "inline-flex items-center justify-center font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 select-none active:scale-[0.98] whitespace-nowrap max-w-full overflow-hidden text-ellipsis shrink-0 [&>svg]:shrink-0",
|
|
34
|
-
variant: {
|
|
35
|
-
solid: "shadow-xs text-white";
|
|
36
|
-
outline: "border bg-transparent shadow-xs";
|
|
37
|
-
soft: "";
|
|
38
|
-
subtle: "border";
|
|
39
|
-
ghost: "bg-transparent";
|
|
40
|
-
link: "p-0 underline-offset-4 hover:underline";
|
|
41
|
-
};
|
|
42
|
-
color: {
|
|
43
|
-
primary: "";
|
|
44
|
-
neutral: "";
|
|
45
|
-
success: "";
|
|
46
|
-
warning: "";
|
|
47
|
-
error: "";
|
|
48
|
-
};
|
|
49
|
-
size: {
|
|
50
|
-
xs: "text-xs px-2 py-1 gap-1 rounded-md";
|
|
51
|
-
sm: "text-sm px-2.5 py-1.5 gap-1.5 rounded-md";
|
|
52
|
-
md: "text-sm px-3.5 py-2 gap-2 rounded-lg";
|
|
53
|
-
lg: "text-base px-4 py-2.5 gap-2 rounded-lg";
|
|
54
|
-
xl: "text-base px-5 py-3 gap-2.5 rounded-xl";
|
|
55
|
-
};
|
|
56
|
-
block: {
|
|
57
|
-
true: "w-full";
|
|
58
|
-
};
|
|
59
|
-
square: {
|
|
60
|
-
true: "aspect-square p-0";
|
|
61
|
-
};
|
|
62
|
-
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
63
|
-
variant: {
|
|
64
|
-
solid: "shadow-xs text-white";
|
|
65
|
-
outline: "border bg-transparent shadow-xs";
|
|
66
|
-
soft: "";
|
|
67
|
-
subtle: "border";
|
|
68
|
-
ghost: "bg-transparent";
|
|
69
|
-
link: "p-0 underline-offset-4 hover:underline";
|
|
70
|
-
};
|
|
71
|
-
color: {
|
|
72
|
-
primary: "";
|
|
73
|
-
neutral: "";
|
|
74
|
-
success: "";
|
|
75
|
-
warning: "";
|
|
76
|
-
error: "";
|
|
77
|
-
};
|
|
78
|
-
size: {
|
|
79
|
-
xs: "text-xs px-2 py-1 gap-1 rounded-md";
|
|
80
|
-
sm: "text-sm px-2.5 py-1.5 gap-1.5 rounded-md";
|
|
81
|
-
md: "text-sm px-3.5 py-2 gap-2 rounded-lg";
|
|
82
|
-
lg: "text-base px-4 py-2.5 gap-2 rounded-lg";
|
|
83
|
-
xl: "text-base px-5 py-3 gap-2.5 rounded-xl";
|
|
84
|
-
};
|
|
85
|
-
block: {
|
|
86
|
-
true: "w-full";
|
|
87
|
-
};
|
|
88
|
-
square: {
|
|
89
|
-
true: "aspect-square p-0";
|
|
90
|
-
};
|
|
91
|
-
}, undefined>>;
|
|
33
|
+
}, undefined, "inline-flex items-center justify-center font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 select-none active:scale-[0.98] whitespace-nowrap max-w-full overflow-hidden text-ellipsis shrink-0 [&>svg]:shrink-0", undefined, undefined, undefined>;
|
|
92
34
|
export type ButtonProps = VariantProps<typeof buttonVariants> & {
|
|
93
35
|
type?: 'button' | 'submit' | 'reset';
|
|
94
36
|
href?: string;
|
|
@@ -1,30 +1,6 @@
|
|
|
1
1
|
import { type VariantProps } from '../../utils/cn.js';
|
|
2
2
|
import type { Snippet } from 'svelte';
|
|
3
|
-
export declare const carouselVariants: import("tailwind-variants").TVReturnType<{
|
|
4
|
-
[key: string]: {
|
|
5
|
-
[key: string]: import("tailwind-variants").ClassValue | {
|
|
6
|
-
viewport?: import("tailwind-variants").ClassValue;
|
|
7
|
-
root?: import("tailwind-variants").ClassValue;
|
|
8
|
-
slide?: import("tailwind-variants").ClassValue;
|
|
9
|
-
controls?: import("tailwind-variants").ClassValue;
|
|
10
|
-
arrowBtn?: import("tailwind-variants").ClassValue;
|
|
11
|
-
dots?: import("tailwind-variants").ClassValue;
|
|
12
|
-
dotBtn?: import("tailwind-variants").ClassValue;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
} | {
|
|
16
|
-
[x: string]: {
|
|
17
|
-
[x: string]: import("tailwind-variants").ClassValue | {
|
|
18
|
-
viewport?: import("tailwind-variants").ClassValue;
|
|
19
|
-
root?: import("tailwind-variants").ClassValue;
|
|
20
|
-
slide?: import("tailwind-variants").ClassValue;
|
|
21
|
-
controls?: import("tailwind-variants").ClassValue;
|
|
22
|
-
arrowBtn?: import("tailwind-variants").ClassValue;
|
|
23
|
-
dots?: import("tailwind-variants").ClassValue;
|
|
24
|
-
dotBtn?: import("tailwind-variants").ClassValue;
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
} | {}, {
|
|
3
|
+
export declare const carouselVariants: import("tailwind-variants").TVReturnType<{}, {
|
|
28
4
|
root: string;
|
|
29
5
|
viewport: string;
|
|
30
6
|
slide: string;
|
|
@@ -32,35 +8,7 @@ export declare const carouselVariants: import("tailwind-variants").TVReturnType<
|
|
|
32
8
|
arrowBtn: string;
|
|
33
9
|
dots: string;
|
|
34
10
|
dotBtn: string;
|
|
35
|
-
}, undefined,
|
|
36
|
-
[key: string]: {
|
|
37
|
-
[key: string]: import("tailwind-variants").ClassValue | {
|
|
38
|
-
viewport?: import("tailwind-variants").ClassValue;
|
|
39
|
-
root?: import("tailwind-variants").ClassValue;
|
|
40
|
-
slide?: import("tailwind-variants").ClassValue;
|
|
41
|
-
controls?: import("tailwind-variants").ClassValue;
|
|
42
|
-
arrowBtn?: import("tailwind-variants").ClassValue;
|
|
43
|
-
dots?: import("tailwind-variants").ClassValue;
|
|
44
|
-
dotBtn?: import("tailwind-variants").ClassValue;
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
|
-
} | {}, {
|
|
48
|
-
root: string;
|
|
49
|
-
viewport: string;
|
|
50
|
-
slide: string;
|
|
51
|
-
controls: string;
|
|
52
|
-
arrowBtn: string;
|
|
53
|
-
dots: string;
|
|
54
|
-
dotBtn: string;
|
|
55
|
-
}, import("tailwind-variants").TVReturnTypeLike<unknown, {
|
|
56
|
-
root: string;
|
|
57
|
-
viewport: string;
|
|
58
|
-
slide: string;
|
|
59
|
-
controls: string;
|
|
60
|
-
arrowBtn: string;
|
|
61
|
-
dots: string;
|
|
62
|
-
dotBtn: string;
|
|
63
|
-
}>>;
|
|
11
|
+
}, undefined, undefined, undefined, undefined>;
|
|
64
12
|
export type CarouselProps<T> = VariantProps<typeof carouselVariants> & {
|
|
65
13
|
items: T[];
|
|
66
14
|
currentIndex?: number;
|