sv5ui 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +124 -0
  3. package/dist/Alert/Alert.svelte +120 -0
  4. package/dist/Alert/Alert.svelte.d.ts +5 -0
  5. package/dist/Alert/alert.types.d.ts +99 -0
  6. package/dist/Alert/alert.types.js +1 -0
  7. package/dist/Alert/alert.variants.d.ts +213 -0
  8. package/dist/Alert/alert.variants.js +293 -0
  9. package/dist/Alert/index.d.ts +2 -0
  10. package/dist/Alert/index.js +1 -0
  11. package/dist/Avatar/Avatar.svelte +70 -0
  12. package/dist/Avatar/Avatar.svelte.d.ts +6 -0
  13. package/dist/Avatar/avatar.types.d.ts +40 -0
  14. package/dist/Avatar/avatar.types.js +1 -0
  15. package/dist/Avatar/avatar.variants.d.ts +178 -0
  16. package/dist/Avatar/avatar.variants.js +28 -0
  17. package/dist/Avatar/index.d.ts +2 -0
  18. package/dist/Avatar/index.js +1 -0
  19. package/dist/AvatarGroup/AvatarGroup.svelte +66 -0
  20. package/dist/AvatarGroup/AvatarGroup.svelte.d.ts +5 -0
  21. package/dist/AvatarGroup/avatar-group.types.d.ts +34 -0
  22. package/dist/AvatarGroup/avatar-group.types.js +1 -0
  23. package/dist/AvatarGroup/avatar-group.variants.d.ts +173 -0
  24. package/dist/AvatarGroup/avatar-group.variants.js +45 -0
  25. package/dist/AvatarGroup/index.d.ts +2 -0
  26. package/dist/AvatarGroup/index.js +1 -0
  27. package/dist/Badge/Badge.svelte +74 -0
  28. package/dist/Badge/Badge.svelte.d.ts +5 -0
  29. package/dist/Badge/badge.types.d.ts +74 -0
  30. package/dist/Badge/badge.types.js +1 -0
  31. package/dist/Badge/badge.variants.d.ts +303 -0
  32. package/dist/Badge/badge.variants.js +245 -0
  33. package/dist/Badge/index.d.ts +2 -0
  34. package/dist/Badge/index.js +1 -0
  35. package/dist/Button/Button.svelte +103 -0
  36. package/dist/Button/Button.svelte.d.ts +6 -0
  37. package/dist/Button/button.types.d.ts +97 -0
  38. package/dist/Button/button.types.js +1 -0
  39. package/dist/Button/button.variants.d.ts +388 -0
  40. package/dist/Button/button.variants.js +461 -0
  41. package/dist/Button/index.d.ts +2 -0
  42. package/dist/Button/index.js +1 -0
  43. package/dist/Card/Card.svelte +53 -0
  44. package/dist/Card/Card.svelte.d.ts +5 -0
  45. package/dist/Card/card.types.d.ts +32 -0
  46. package/dist/Card/card.types.js +1 -0
  47. package/dist/Card/card.variants.d.ts +108 -0
  48. package/dist/Card/card.variants.js +32 -0
  49. package/dist/Card/index.d.ts +2 -0
  50. package/dist/Card/index.js +1 -0
  51. package/dist/Chip/Chip.svelte +50 -0
  52. package/dist/Chip/Chip.svelte.d.ts +5 -0
  53. package/dist/Chip/chip.types.d.ts +62 -0
  54. package/dist/Chip/chip.types.js +1 -0
  55. package/dist/Chip/chip.variants.d.ts +328 -0
  56. package/dist/Chip/chip.variants.js +58 -0
  57. package/dist/Chip/index.d.ts +2 -0
  58. package/dist/Chip/index.js +1 -0
  59. package/dist/Container/Container.svelte +27 -0
  60. package/dist/Container/Container.svelte.d.ts +5 -0
  61. package/dist/Container/container.types.d.ts +19 -0
  62. package/dist/Container/container.types.js +1 -0
  63. package/dist/Container/container.variants.d.ts +29 -0
  64. package/dist/Container/container.variants.js +9 -0
  65. package/dist/Container/index.d.ts +2 -0
  66. package/dist/Container/index.js +1 -0
  67. package/dist/Empty/Empty.svelte +83 -0
  68. package/dist/Empty/Empty.svelte.d.ts +5 -0
  69. package/dist/Empty/empty.types.d.ts +74 -0
  70. package/dist/Empty/empty.types.js +1 -0
  71. package/dist/Empty/empty.variants.d.ts +288 -0
  72. package/dist/Empty/empty.variants.js +364 -0
  73. package/dist/Empty/index.d.ts +2 -0
  74. package/dist/Empty/index.js +1 -0
  75. package/dist/Icon/Icon.svelte +40 -0
  76. package/dist/Icon/Icon.svelte.d.ts +6 -0
  77. package/dist/Icon/icon.types.d.ts +37 -0
  78. package/dist/Icon/icon.types.js +1 -0
  79. package/dist/Icon/index.d.ts +2 -0
  80. package/dist/Icon/index.js +1 -0
  81. package/dist/Kbd/Kbd.svelte +35 -0
  82. package/dist/Kbd/Kbd.svelte.d.ts +5 -0
  83. package/dist/Kbd/index.d.ts +3 -0
  84. package/dist/Kbd/index.js +2 -0
  85. package/dist/Kbd/kbd.types.d.ts +77 -0
  86. package/dist/Kbd/kbd.types.js +1 -0
  87. package/dist/Kbd/kbd.variants.d.ts +118 -0
  88. package/dist/Kbd/kbd.variants.js +96 -0
  89. package/dist/Kbd/useKbd.svelte.d.ts +29 -0
  90. package/dist/Kbd/useKbd.svelte.js +245 -0
  91. package/dist/Link/Link.svelte +117 -0
  92. package/dist/Link/Link.svelte.d.ts +5 -0
  93. package/dist/Link/index.d.ts +2 -0
  94. package/dist/Link/index.js +1 -0
  95. package/dist/Link/link.types.d.ts +68 -0
  96. package/dist/Link/link.types.js +1 -0
  97. package/dist/Link/link.variants.d.ts +138 -0
  98. package/dist/Link/link.variants.js +145 -0
  99. package/dist/Progress/Progress.svelte +89 -0
  100. package/dist/Progress/Progress.svelte.d.ts +6 -0
  101. package/dist/Progress/index.d.ts +2 -0
  102. package/dist/Progress/index.js +1 -0
  103. package/dist/Progress/progress.types.d.ts +63 -0
  104. package/dist/Progress/progress.types.js +1 -0
  105. package/dist/Progress/progress.variants.d.ts +483 -0
  106. package/dist/Progress/progress.variants.js +190 -0
  107. package/dist/Separator/Separator.svelte +67 -0
  108. package/dist/Separator/Separator.svelte.d.ts +6 -0
  109. package/dist/Separator/index.d.ts +2 -0
  110. package/dist/Separator/index.js +1 -0
  111. package/dist/Separator/separator.types.d.ts +48 -0
  112. package/dist/Separator/separator.types.js +1 -0
  113. package/dist/Separator/separator.variants.d.ts +488 -0
  114. package/dist/Separator/separator.variants.js +104 -0
  115. package/dist/Skeleton/Skeleton.svelte +31 -0
  116. package/dist/Skeleton/Skeleton.svelte.d.ts +5 -0
  117. package/dist/Skeleton/index.d.ts +2 -0
  118. package/dist/Skeleton/index.js +1 -0
  119. package/dist/Skeleton/skeleton.types.d.ts +18 -0
  120. package/dist/Skeleton/skeleton.types.js +1 -0
  121. package/dist/Skeleton/skeleton.variants.d.ts +18 -0
  122. package/dist/Skeleton/skeleton.variants.js +12 -0
  123. package/dist/Timeline/Timeline.svelte +106 -0
  124. package/dist/Timeline/Timeline.svelte.d.ts +5 -0
  125. package/dist/Timeline/index.d.ts +2 -0
  126. package/dist/Timeline/index.js +1 -0
  127. package/dist/Timeline/timeline.types.d.ts +130 -0
  128. package/dist/Timeline/timeline.types.js +1 -0
  129. package/dist/Timeline/timeline.variants.d.ts +413 -0
  130. package/dist/Timeline/timeline.variants.js +121 -0
  131. package/dist/User/User.svelte +94 -0
  132. package/dist/User/User.svelte.d.ts +5 -0
  133. package/dist/User/index.d.ts +2 -0
  134. package/dist/User/index.js +1 -0
  135. package/dist/User/user.types.d.ts +74 -0
  136. package/dist/User/user.types.js +1 -0
  137. package/dist/User/user.variants.d.ts +308 -0
  138. package/dist/User/user.variants.js +73 -0
  139. package/dist/config.d.ts +59 -0
  140. package/dist/config.js +94 -0
  141. package/dist/index.d.ts +19 -0
  142. package/dist/index.js +20 -0
  143. package/dist/theme.css +410 -0
  144. package/package.json +104 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 ndlabdev
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,124 @@
1
+ # SV5UI
2
+
3
+ A modern, fully-typed Svelte 5 UI component library built with Tailwind CSS 4.
4
+
5
+ [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
+ [![npm version](https://img.shields.io/npm/v/sv5ui.svg)](https://www.npmjs.com/package/sv5ui)
7
+
8
+ ## Features
9
+
10
+ - **Svelte 5** - Built with runes, snippets, and the latest Svelte 5 features
11
+ - **Tailwind CSS 4** - Utility-first styling with [Tailwind Variants](https://www.tailwind-variants.org/) for type-safe composable variants
12
+ - **OKLCH Colors** - Semantic color tokens with light/dark mode support
13
+ - **Fully Typed** - Complete TypeScript support with strict mode
14
+ - **Accessible** - Built on [Bits UI](https://bits-ui.com) headless primitives
15
+ - **Customizable** - Global config system to override default variants and slot styles
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ npm install sv5ui
21
+ ```
22
+
23
+ Peer dependencies: `svelte >= 5.0.0`, `tailwindcss >= 4.0.0`
24
+
25
+ ## Quick Start
26
+
27
+ ```css
28
+ /* layout.css */
29
+ @import 'sv5ui/theme.css';
30
+ @source "../../node_modules/sv5ui/dist";
31
+ ```
32
+
33
+ ```svelte
34
+ <script>
35
+ import { Button, Alert, Avatar, Badge } from 'sv5ui'
36
+ </script>
37
+
38
+ <Button variant="solid" color="primary">Click me</Button>
39
+ <Alert title="Heads up!" description="Something happened." color="info" variant="soft" />
40
+ <Avatar src="/photo.jpg" alt="John Doe" size="lg" />
41
+ <Badge label="New" color="success" />
42
+ ```
43
+
44
+ ## Components
45
+
46
+ | Component | Description |
47
+ |-----------|-------------|
48
+ | **Alert** | Notification banners with actions and close support |
49
+ | **Avatar** | User avatar with image fallback and auto-generated initials |
50
+ | **AvatarGroup** | Grouped avatars with overflow count |
51
+ | **Badge** | Status indicators and tags |
52
+ | **Button** | Interactive button with loading, icon, and block modes |
53
+ | **Card** | Content container with header/body/footer slots |
54
+ | **Chip** | Compact notification indicators with positioning |
55
+ | **Container** | Responsive layout wrapper with max-width constraints |
56
+ | **Icon** | Iconify wrapper with 200,000+ icons |
57
+ | **Kbd** | Keyboard key display with automatic symbol mapping |
58
+ | **Link** | Smart navigation with active state detection |
59
+ | **Progress** | Determinate/indeterminate progress bars with step mode |
60
+ | **Separator** | Dividers with optional label, icon, or avatar content |
61
+ | **Timeline** | Sequence/step visualization with states |
62
+
63
+ > Browse the interactive docs by running `pnpm dev` and opening [localhost:5173](http://localhost:5173).
64
+
65
+ ## Theming
66
+
67
+ SV5UI uses OKLCH color space with semantic tokens. Light and dark modes work automatically.
68
+
69
+ **Available color tokens:** `primary`, `secondary`, `tertiary`, `success`, `warning`, `error`, `info`, `surface`
70
+
71
+ **Dark mode** via `.dark` class or `prefers-color-scheme`, managed through [mode-watcher](https://github.com/svecosystem/mode-watcher).
72
+
73
+ **Custom colors** by overriding CSS variables:
74
+
75
+ ```css
76
+ :root {
77
+ --color-primary: oklch(0.55 0.25 270);
78
+ --color-secondary: oklch(0.45 0.15 240);
79
+ }
80
+ ```
81
+
82
+ ## Customization
83
+
84
+ ### Per-instance overrides
85
+
86
+ Override slot styles on any component via the `ui` prop:
87
+
88
+ ```svelte
89
+ <Button ui={{ base: 'rounded-full', label: 'font-bold uppercase' }}>
90
+ Custom
91
+ </Button>
92
+ ```
93
+
94
+ ### Global defaults
95
+
96
+ Use `defineConfig` to set library-wide defaults:
97
+
98
+ ```typescript
99
+ import { defineConfig } from 'sv5ui'
100
+
101
+ defineConfig({
102
+ button: {
103
+ defaultVariants: { variant: 'outline', size: 'lg' },
104
+ slots: { base: 'shadow-md' }
105
+ },
106
+ icons: { loading: 'svg-spinners:ring-resize' }
107
+ })
108
+ ```
109
+
110
+ ## Development
111
+
112
+ ```bash
113
+ pnpm install # Install dependencies
114
+ pnpm dev # Start dev server
115
+ pnpm test # Run tests
116
+ pnpm check # Type check
117
+ pnpm prepack # Build library
118
+ pnpm lint # Lint
119
+ pnpm format # Format
120
+ ```
121
+
122
+ ## License
123
+
124
+ [MIT](LICENSE)
@@ -0,0 +1,120 @@
1
+ <script lang="ts" module>
2
+ import type { AlertProps } from './alert.types.js'
3
+
4
+ export type Props = AlertProps
5
+ </script>
6
+
7
+ <script lang="ts">
8
+ import { alertVariants, alertDefaults } from './alert.variants.js'
9
+ import { getComponentConfig, iconsDefaults } from '../config.js'
10
+ import Icon from '../Icon/Icon.svelte'
11
+ import Avatar from '../Avatar/Avatar.svelte'
12
+ import Button from '../Button/Button.svelte'
13
+
14
+ const config = getComponentConfig('alert', alertDefaults)
15
+ const icons = getComponentConfig('icons', iconsDefaults)
16
+
17
+ let {
18
+ as = 'div',
19
+ ui,
20
+ title,
21
+ description,
22
+ icon,
23
+ avatar,
24
+ color = config.defaultVariants.color,
25
+ variant = config.defaultVariants.variant,
26
+ orientation = config.defaultVariants.orientation,
27
+ open = true,
28
+ close = false,
29
+ closeIcon,
30
+ actions,
31
+ class: className,
32
+ leading,
33
+ titleSlot,
34
+ descriptionSlot,
35
+ actionsSlot,
36
+ closeSlot,
37
+ onClose,
38
+ ...restProps
39
+ }: Props = $props()
40
+
41
+ const resolvedCloseIcon = $derived(closeIcon ?? icons.close)
42
+
43
+ const classes = $derived.by(() => {
44
+ const slots = alertVariants({ variant, color, orientation })
45
+ return {
46
+ root: slots.root({ class: [config.slots.root, className, ui?.root] }),
47
+ wrapper: slots.wrapper({ class: [config.slots.wrapper, ui?.wrapper] }),
48
+ title: slots.title({ class: [config.slots.title, ui?.title] }),
49
+ description: slots.description({ class: [config.slots.description, ui?.description] }),
50
+ icon: slots.icon({ class: [config.slots.icon, ui?.icon] }),
51
+ avatar: slots.avatar({ class: [config.slots.avatar, ui?.avatar] }),
52
+ actions: slots.actions({ class: [config.slots.actions, ui?.actions] }),
53
+ close: slots.close({ class: [config.slots.close, ui?.close] })
54
+ }
55
+ })
56
+
57
+ const closeButtonProps = $derived.by(() => {
58
+ if (!close) return null
59
+ if (close === true) return {}
60
+ return close
61
+ })
62
+
63
+ function handleClose() {
64
+ onClose?.()
65
+ }
66
+ </script>
67
+
68
+ {#if open}
69
+ <svelte:element this={as} class={classes.root} role="alert" {...restProps}>
70
+ {#if leading}
71
+ {@render leading()}
72
+ {:else if icon}
73
+ <Icon name={icon} class={classes.icon} />
74
+ {:else if avatar}
75
+ <Avatar {...avatar} class={classes.avatar} />
76
+ {/if}
77
+
78
+ {#if title || description || titleSlot || descriptionSlot}
79
+ <div class={classes.wrapper}>
80
+ {#if titleSlot}
81
+ {@render titleSlot()}
82
+ {:else if title}
83
+ <div class={classes.title}>{title}</div>
84
+ {/if}
85
+
86
+ {#if descriptionSlot}
87
+ {@render descriptionSlot()}
88
+ {:else if description}
89
+ <div class={classes.description}>{description}</div>
90
+ {/if}
91
+ </div>
92
+ {/if}
93
+
94
+ {#if actionsSlot}
95
+ {@render actionsSlot()}
96
+ {:else if actions && actions.length > 0}
97
+ <div class={classes.actions}>
98
+ {#each actions as action, index (index)}
99
+ <Button size="xs" {...action} />
100
+ {/each}
101
+ </div>
102
+ {/if}
103
+
104
+ {#if closeSlot}
105
+ <div class={classes.close}>
106
+ {@render closeSlot()}
107
+ </div>
108
+ {:else if closeButtonProps}
109
+ <Button
110
+ icon={resolvedCloseIcon}
111
+ variant="link"
112
+ color="surface"
113
+ class={classes.close}
114
+ onclick={handleClose}
115
+ aria-label="Close alert"
116
+ {...closeButtonProps}
117
+ />
118
+ {/if}
119
+ </svelte:element>
120
+ {/if}
@@ -0,0 +1,5 @@
1
+ import type { AlertProps } from './alert.types.js';
2
+ export type Props = AlertProps;
3
+ declare const Alert: import("svelte").Component<AlertProps, {}, "">;
4
+ type Alert = ReturnType<typeof Alert>;
5
+ export default Alert;
@@ -0,0 +1,99 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import type { ClassNameValue } from 'tailwind-merge';
4
+ import type { AlertVariantProps, AlertSlots } from './alert.variants.js';
5
+ import type { AvatarProps } from '../Avatar/avatar.types.js';
6
+ import type { ButtonProps } from '../Button/button.types.js';
7
+ export type AlertProps = Omit<HTMLAttributes<HTMLDivElement>, 'class' | 'title'> & {
8
+ /**
9
+ * The HTML element to render as.
10
+ * @default 'div'
11
+ */
12
+ as?: keyof HTMLElementTagNameMap;
13
+ /**
14
+ * Override styles for specific alert slots.
15
+ */
16
+ ui?: Partial<Record<AlertSlots, ClassNameValue>>;
17
+ /**
18
+ * Alert title text.
19
+ */
20
+ title?: string;
21
+ /**
22
+ * Alert description text.
23
+ */
24
+ description?: string;
25
+ /**
26
+ * Icon name to display (Iconify format).
27
+ * Takes precedence over avatar.
28
+ */
29
+ icon?: string;
30
+ /**
31
+ * Avatar props to display on the left side.
32
+ * Only rendered if icon is not provided.
33
+ */
34
+ avatar?: AvatarProps;
35
+ /**
36
+ * The color theme of the alert.
37
+ * @default 'primary'
38
+ */
39
+ color?: NonNullable<AlertVariantProps['color']>;
40
+ /**
41
+ * The visual style variant.
42
+ * @default 'soft'
43
+ */
44
+ variant?: NonNullable<AlertVariantProps['variant']>;
45
+ /**
46
+ * Layout orientation.
47
+ * @default 'horizontal'
48
+ */
49
+ orientation?: NonNullable<AlertVariantProps['orientation']>;
50
+ /**
51
+ * Whether the alert is visible.
52
+ * @default true
53
+ */
54
+ open?: boolean;
55
+ /**
56
+ * Show close button.
57
+ * Pass ButtonProps to customize.
58
+ * @default false
59
+ */
60
+ close?: boolean | ButtonProps;
61
+ /**
62
+ * Close button icon name.
63
+ * @default 'lucide:x'
64
+ */
65
+ closeIcon?: string;
66
+ /**
67
+ * Action buttons configuration.
68
+ */
69
+ actions?: ButtonProps[];
70
+ /**
71
+ * Additional CSS classes for the root element.
72
+ */
73
+ class?: ClassNameValue;
74
+ /**
75
+ * Custom leading content slot.
76
+ * Replaces icon/avatar when provided.
77
+ */
78
+ leading?: Snippet;
79
+ /**
80
+ * Custom title content slot.
81
+ */
82
+ titleSlot?: Snippet;
83
+ /**
84
+ * Custom description content slot.
85
+ */
86
+ descriptionSlot?: Snippet;
87
+ /**
88
+ * Custom actions content slot.
89
+ */
90
+ actionsSlot?: Snippet;
91
+ /**
92
+ * Custom close button content slot.
93
+ */
94
+ closeSlot?: Snippet;
95
+ /**
96
+ * Callback when close button is clicked.
97
+ */
98
+ onClose?: () => void;
99
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,213 @@
1
+ import { type VariantProps } from 'tailwind-variants';
2
+ export declare const alertVariants: import("tailwind-variants").TVReturnType<{
3
+ variant: {
4
+ solid: string;
5
+ outline: string;
6
+ soft: string;
7
+ subtle: string;
8
+ };
9
+ color: {
10
+ primary: string;
11
+ secondary: string;
12
+ tertiary: string;
13
+ success: string;
14
+ warning: string;
15
+ error: string;
16
+ info: string;
17
+ surface: string;
18
+ };
19
+ orientation: {
20
+ horizontal: {
21
+ root: string;
22
+ actions: string;
23
+ };
24
+ vertical: {
25
+ root: string;
26
+ actions: string;
27
+ };
28
+ };
29
+ title: {
30
+ true: {
31
+ description: string;
32
+ };
33
+ };
34
+ }, {
35
+ root: string;
36
+ wrapper: string;
37
+ title: string;
38
+ description: string;
39
+ icon: string;
40
+ avatar: string;
41
+ actions: string;
42
+ close: string;
43
+ }, undefined, {
44
+ variant: {
45
+ solid: string;
46
+ outline: string;
47
+ soft: string;
48
+ subtle: string;
49
+ };
50
+ color: {
51
+ primary: string;
52
+ secondary: string;
53
+ tertiary: string;
54
+ success: string;
55
+ warning: string;
56
+ error: string;
57
+ info: string;
58
+ surface: string;
59
+ };
60
+ orientation: {
61
+ horizontal: {
62
+ root: string;
63
+ actions: string;
64
+ };
65
+ vertical: {
66
+ root: string;
67
+ actions: string;
68
+ };
69
+ };
70
+ title: {
71
+ true: {
72
+ description: string;
73
+ };
74
+ };
75
+ }, {
76
+ root: string;
77
+ wrapper: string;
78
+ title: string;
79
+ description: string;
80
+ icon: string;
81
+ avatar: string;
82
+ actions: string;
83
+ close: string;
84
+ }, import("tailwind-variants").TVReturnType<{
85
+ variant: {
86
+ solid: string;
87
+ outline: string;
88
+ soft: string;
89
+ subtle: string;
90
+ };
91
+ color: {
92
+ primary: string;
93
+ secondary: string;
94
+ tertiary: string;
95
+ success: string;
96
+ warning: string;
97
+ error: string;
98
+ info: string;
99
+ surface: string;
100
+ };
101
+ orientation: {
102
+ horizontal: {
103
+ root: string;
104
+ actions: string;
105
+ };
106
+ vertical: {
107
+ root: string;
108
+ actions: string;
109
+ };
110
+ };
111
+ title: {
112
+ true: {
113
+ description: string;
114
+ };
115
+ };
116
+ }, {
117
+ root: string;
118
+ wrapper: string;
119
+ title: string;
120
+ description: string;
121
+ icon: string;
122
+ avatar: string;
123
+ actions: string;
124
+ close: string;
125
+ }, undefined, unknown, unknown, undefined>>;
126
+ export type AlertVariantProps = VariantProps<typeof alertVariants>;
127
+ export type AlertSlots = keyof ReturnType<typeof alertVariants>;
128
+ export declare const alertDefaults: {
129
+ defaultVariants: import("tailwind-variants").TVDefaultVariants<{
130
+ variant: {
131
+ solid: string;
132
+ outline: string;
133
+ soft: string;
134
+ subtle: string;
135
+ };
136
+ color: {
137
+ primary: string;
138
+ secondary: string;
139
+ tertiary: string;
140
+ success: string;
141
+ warning: string;
142
+ error: string;
143
+ info: string;
144
+ surface: string;
145
+ };
146
+ orientation: {
147
+ horizontal: {
148
+ root: string;
149
+ actions: string;
150
+ };
151
+ vertical: {
152
+ root: string;
153
+ actions: string;
154
+ };
155
+ };
156
+ title: {
157
+ true: {
158
+ description: string;
159
+ };
160
+ };
161
+ }, {
162
+ root: string;
163
+ wrapper: string;
164
+ title: string;
165
+ description: string;
166
+ icon: string;
167
+ avatar: string;
168
+ actions: string;
169
+ close: string;
170
+ }, {
171
+ variant: {
172
+ solid: string;
173
+ outline: string;
174
+ soft: string;
175
+ subtle: string;
176
+ };
177
+ color: {
178
+ primary: string;
179
+ secondary: string;
180
+ tertiary: string;
181
+ success: string;
182
+ warning: string;
183
+ error: string;
184
+ info: string;
185
+ surface: string;
186
+ };
187
+ orientation: {
188
+ horizontal: {
189
+ root: string;
190
+ actions: string;
191
+ };
192
+ vertical: {
193
+ root: string;
194
+ actions: string;
195
+ };
196
+ };
197
+ title: {
198
+ true: {
199
+ description: string;
200
+ };
201
+ };
202
+ }, {
203
+ root: string;
204
+ wrapper: string;
205
+ title: string;
206
+ description: string;
207
+ icon: string;
208
+ avatar: string;
209
+ actions: string;
210
+ close: string;
211
+ }>;
212
+ slots: Partial<Record<AlertSlots, string>>;
213
+ };