@mkatogui/uds-svelte 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -0
- package/package.json +27 -0
- package/src/components/Accordion.svelte +99 -0
- package/src/components/Alert.svelte +67 -0
- package/src/components/Avatar.svelte +62 -0
- package/src/components/Badge.svelte +50 -0
- package/src/components/Breadcrumb.svelte +60 -0
- package/src/components/Button.svelte +53 -0
- package/src/components/Checkbox.svelte +62 -0
- package/src/components/CodeBlock.svelte +90 -0
- package/src/components/CommandPalette.svelte +133 -0
- package/src/components/DataTable.svelte +140 -0
- package/src/components/DatePicker.svelte +73 -0
- package/src/components/DropdownMenu.svelte +113 -0
- package/src/components/FeatureCard.svelte +63 -0
- package/src/components/FileUpload.svelte +120 -0
- package/src/components/Footer.svelte +72 -0
- package/src/components/FormInput.svelte +102 -0
- package/src/components/HeroSection.svelte +65 -0
- package/src/components/Modal.svelte +67 -0
- package/src/components/NavigationBar.svelte +56 -0
- package/src/components/Pagination.svelte +115 -0
- package/src/components/PricingTable.svelte +89 -0
- package/src/components/ProgressIndicator.svelte +86 -0
- package/src/components/Radio.svelte +64 -0
- package/src/components/Select.svelte +85 -0
- package/src/components/SideNavigation.svelte +130 -0
- package/src/components/Skeleton.svelte +53 -0
- package/src/components/SocialProofBar.svelte +90 -0
- package/src/components/Tabs.svelte +100 -0
- package/src/components/TestimonialCard.svelte +71 -0
- package/src/components/Toast.svelte +83 -0
- package/src/components/ToggleSwitch.svelte +61 -0
- package/src/components/Tooltip.svelte +67 -0
- package/src/index.d.ts +553 -0
- package/src/index.js +32 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
interface Props {
|
|
3
|
+
variant?: 'standard' | 'with-label';
|
|
4
|
+
checked?: boolean;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
label?: string;
|
|
7
|
+
id?: string;
|
|
8
|
+
class?: string;
|
|
9
|
+
onChange?: (checked: boolean) => void;
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let {
|
|
14
|
+
variant = 'standard',
|
|
15
|
+
checked = $bindable(false),
|
|
16
|
+
disabled = false,
|
|
17
|
+
label = '',
|
|
18
|
+
id,
|
|
19
|
+
class: className = '',
|
|
20
|
+
onChange,
|
|
21
|
+
...rest
|
|
22
|
+
}: Props = $props();
|
|
23
|
+
|
|
24
|
+
let toggleId = $derived(id || `uds-toggle-${Math.random().toString(36).slice(2, 9)}`);
|
|
25
|
+
|
|
26
|
+
let classes = $derived(
|
|
27
|
+
[
|
|
28
|
+
'uds-toggle',
|
|
29
|
+
`uds-toggle--${variant}`,
|
|
30
|
+
checked && 'uds-toggle--on',
|
|
31
|
+
disabled && 'uds-toggle--disabled',
|
|
32
|
+
className,
|
|
33
|
+
]
|
|
34
|
+
.filter(Boolean)
|
|
35
|
+
.join(' ')
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
function handleChange() {
|
|
39
|
+
checked = !checked;
|
|
40
|
+
onChange?.(checked);
|
|
41
|
+
}
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
<div class={classes}>
|
|
45
|
+
<button
|
|
46
|
+
class="uds-toggle__switch"
|
|
47
|
+
id={toggleId}
|
|
48
|
+
type="button"
|
|
49
|
+
role="switch"
|
|
50
|
+
aria-checked={checked}
|
|
51
|
+
aria-label={label || undefined}
|
|
52
|
+
{disabled}
|
|
53
|
+
onclick={handleChange}
|
|
54
|
+
{...rest}
|
|
55
|
+
>
|
|
56
|
+
<span class="uds-toggle__thumb" aria-hidden="true"></span>
|
|
57
|
+
</button>
|
|
58
|
+
{#if variant === 'with-label' && label}
|
|
59
|
+
<label class="uds-toggle__label" for={toggleId}>{label}</label>
|
|
60
|
+
{/if}
|
|
61
|
+
</div>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
interface Props {
|
|
3
|
+
variant?: 'simple' | 'rich';
|
|
4
|
+
size?: 'sm' | 'md';
|
|
5
|
+
content?: string;
|
|
6
|
+
position?: 'top' | 'bottom' | 'left' | 'right';
|
|
7
|
+
class?: string;
|
|
8
|
+
trigger?: import('svelte').Snippet;
|
|
9
|
+
children?: import('svelte').Snippet;
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let {
|
|
14
|
+
variant = 'simple',
|
|
15
|
+
size = 'sm',
|
|
16
|
+
content = '',
|
|
17
|
+
position = 'top',
|
|
18
|
+
class: className = '',
|
|
19
|
+
trigger,
|
|
20
|
+
children,
|
|
21
|
+
...rest
|
|
22
|
+
}: Props = $props();
|
|
23
|
+
|
|
24
|
+
let visible = $state(false);
|
|
25
|
+
let tooltipId = $derived(`uds-tooltip-${Math.random().toString(36).slice(2, 9)}`);
|
|
26
|
+
|
|
27
|
+
let classes = $derived(
|
|
28
|
+
[
|
|
29
|
+
'uds-tooltip',
|
|
30
|
+
`uds-tooltip--${variant}`,
|
|
31
|
+
`uds-tooltip--${size}`,
|
|
32
|
+
`uds-tooltip--${position}`,
|
|
33
|
+
visible && 'uds-tooltip--visible',
|
|
34
|
+
className,
|
|
35
|
+
]
|
|
36
|
+
.filter(Boolean)
|
|
37
|
+
.join(' ')
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
function show() { visible = true; }
|
|
41
|
+
function hide() { visible = false; }
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
<div class={classes} {...rest}>
|
|
45
|
+
<div
|
|
46
|
+
class="uds-tooltip__trigger"
|
|
47
|
+
aria-describedby={tooltipId}
|
|
48
|
+
onmouseenter={show}
|
|
49
|
+
onmouseleave={hide}
|
|
50
|
+
onfocus={show}
|
|
51
|
+
onblur={hide}
|
|
52
|
+
>
|
|
53
|
+
{#if trigger}
|
|
54
|
+
{@render trigger()}
|
|
55
|
+
{:else}
|
|
56
|
+
{@render children?.()}
|
|
57
|
+
{/if}
|
|
58
|
+
</div>
|
|
59
|
+
<div
|
|
60
|
+
class="uds-tooltip__content"
|
|
61
|
+
id={tooltipId}
|
|
62
|
+
role="tooltip"
|
|
63
|
+
aria-hidden={!visible}
|
|
64
|
+
>
|
|
65
|
+
{content}
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1,553 @@
|
|
|
1
|
+
import type { Component, Snippet } from 'svelte';
|
|
2
|
+
|
|
3
|
+
// Button
|
|
4
|
+
export interface ButtonProps {
|
|
5
|
+
variant?: 'primary' | 'secondary' | 'ghost' | 'gradient' | 'destructive' | 'icon-only';
|
|
6
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
fullWidth?: boolean;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
class?: string;
|
|
11
|
+
iconLeft?: Snippet;
|
|
12
|
+
iconRight?: Snippet;
|
|
13
|
+
children?: Snippet;
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}
|
|
16
|
+
export declare const Button: Component<ButtonProps>;
|
|
17
|
+
|
|
18
|
+
// NavigationBar
|
|
19
|
+
export interface NavigationBarProps {
|
|
20
|
+
variant?: 'standard' | 'minimal' | 'dark' | 'transparent';
|
|
21
|
+
sticky?: boolean;
|
|
22
|
+
blurOnScroll?: boolean;
|
|
23
|
+
megaMenu?: boolean;
|
|
24
|
+
darkModeToggle?: boolean;
|
|
25
|
+
mobileOpen?: boolean;
|
|
26
|
+
class?: string;
|
|
27
|
+
children?: Snippet;
|
|
28
|
+
ctaButton?: Snippet;
|
|
29
|
+
[key: string]: any;
|
|
30
|
+
}
|
|
31
|
+
export declare const NavigationBar: Component<NavigationBarProps>;
|
|
32
|
+
|
|
33
|
+
// HeroSection
|
|
34
|
+
export interface HeroSectionProps {
|
|
35
|
+
variant?: 'centered' | 'product-screenshot' | 'video-bg' | 'gradient-mesh' | 'search-forward' | 'split';
|
|
36
|
+
size?: 'full' | 'compact';
|
|
37
|
+
headline?: string;
|
|
38
|
+
subheadline?: string;
|
|
39
|
+
class?: string;
|
|
40
|
+
children?: Snippet;
|
|
41
|
+
cta?: Snippet;
|
|
42
|
+
socialProof?: Snippet;
|
|
43
|
+
visual?: Snippet;
|
|
44
|
+
[key: string]: any;
|
|
45
|
+
}
|
|
46
|
+
export declare const HeroSection: Component<HeroSectionProps>;
|
|
47
|
+
|
|
48
|
+
// FeatureCard
|
|
49
|
+
export interface FeatureCardProps {
|
|
50
|
+
variant?: 'icon-top' | 'image-top' | 'horizontal' | 'stat-card' | 'dashboard-preview';
|
|
51
|
+
size?: 'sm' | 'md' | 'lg';
|
|
52
|
+
title?: string;
|
|
53
|
+
description?: string;
|
|
54
|
+
link?: string;
|
|
55
|
+
image?: string;
|
|
56
|
+
imageAlt?: string;
|
|
57
|
+
class?: string;
|
|
58
|
+
icon?: Snippet;
|
|
59
|
+
children?: Snippet;
|
|
60
|
+
[key: string]: any;
|
|
61
|
+
}
|
|
62
|
+
export declare const FeatureCard: Component<FeatureCardProps>;
|
|
63
|
+
|
|
64
|
+
// PricingTable
|
|
65
|
+
export interface PricingPlan {
|
|
66
|
+
name: string;
|
|
67
|
+
price: string;
|
|
68
|
+
period?: string;
|
|
69
|
+
features: string[];
|
|
70
|
+
cta?: string;
|
|
71
|
+
highlighted?: boolean;
|
|
72
|
+
}
|
|
73
|
+
export interface PricingTableProps {
|
|
74
|
+
variant?: '2-column' | '3-column' | '4-column' | 'toggle';
|
|
75
|
+
size?: 'standard' | 'compact';
|
|
76
|
+
plans?: PricingPlan[];
|
|
77
|
+
highlightedPlan?: string;
|
|
78
|
+
billingPeriod?: 'monthly' | 'annual';
|
|
79
|
+
onToggle?: (period: string) => void;
|
|
80
|
+
class?: string;
|
|
81
|
+
children?: Snippet;
|
|
82
|
+
[key: string]: any;
|
|
83
|
+
}
|
|
84
|
+
export declare const PricingTable: Component<PricingTableProps>;
|
|
85
|
+
|
|
86
|
+
// SocialProofBar
|
|
87
|
+
export interface SocialProofLogo {
|
|
88
|
+
src: string;
|
|
89
|
+
alt: string;
|
|
90
|
+
href?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface SocialProofStat {
|
|
93
|
+
value: string;
|
|
94
|
+
label: string;
|
|
95
|
+
}
|
|
96
|
+
export interface SocialProofTestimonial {
|
|
97
|
+
quote: string;
|
|
98
|
+
author: string;
|
|
99
|
+
}
|
|
100
|
+
export interface SocialProofBarProps {
|
|
101
|
+
variant?: 'logo-strip' | 'stats-counter' | 'testimonial-mini' | 'combined';
|
|
102
|
+
size?: 'standard' | 'compact';
|
|
103
|
+
logos?: SocialProofLogo[];
|
|
104
|
+
stats?: SocialProofStat[];
|
|
105
|
+
testimonials?: SocialProofTestimonial[];
|
|
106
|
+
animated?: boolean;
|
|
107
|
+
class?: string;
|
|
108
|
+
children?: Snippet;
|
|
109
|
+
[key: string]: any;
|
|
110
|
+
}
|
|
111
|
+
export declare const SocialProofBar: Component<SocialProofBarProps>;
|
|
112
|
+
|
|
113
|
+
// TestimonialCard
|
|
114
|
+
export interface TestimonialCardProps {
|
|
115
|
+
variant?: 'quote-card' | 'video' | 'metric' | 'carousel';
|
|
116
|
+
size?: 'sm' | 'md' | 'lg';
|
|
117
|
+
quote?: string;
|
|
118
|
+
avatar?: string;
|
|
119
|
+
name?: string;
|
|
120
|
+
title?: string;
|
|
121
|
+
company?: string;
|
|
122
|
+
rating?: number;
|
|
123
|
+
class?: string;
|
|
124
|
+
children?: Snippet;
|
|
125
|
+
[key: string]: any;
|
|
126
|
+
}
|
|
127
|
+
export declare const TestimonialCard: Component<TestimonialCardProps>;
|
|
128
|
+
|
|
129
|
+
// Footer
|
|
130
|
+
export interface FooterColumn {
|
|
131
|
+
title: string;
|
|
132
|
+
links: { label: string; href: string }[];
|
|
133
|
+
}
|
|
134
|
+
export interface FooterProps {
|
|
135
|
+
variant?: 'simple' | 'multi-column' | 'newsletter' | 'mega-footer';
|
|
136
|
+
size?: 'standard' | 'compact';
|
|
137
|
+
columns?: FooterColumn[];
|
|
138
|
+
copyright?: string;
|
|
139
|
+
class?: string;
|
|
140
|
+
children?: Snippet;
|
|
141
|
+
newsletter?: Snippet;
|
|
142
|
+
legal?: Snippet;
|
|
143
|
+
[key: string]: any;
|
|
144
|
+
}
|
|
145
|
+
export declare const Footer: Component<FooterProps>;
|
|
146
|
+
|
|
147
|
+
// CodeBlock
|
|
148
|
+
export interface CodeBlockTab {
|
|
149
|
+
label: string;
|
|
150
|
+
language: string;
|
|
151
|
+
code: string;
|
|
152
|
+
}
|
|
153
|
+
export interface CodeBlockProps {
|
|
154
|
+
variant?: 'syntax-highlighted' | 'terminal' | 'multi-tab';
|
|
155
|
+
size?: 'sm' | 'md' | 'lg';
|
|
156
|
+
language?: string;
|
|
157
|
+
code?: string;
|
|
158
|
+
showLineNumbers?: boolean;
|
|
159
|
+
showCopy?: boolean;
|
|
160
|
+
tabs?: CodeBlockTab[];
|
|
161
|
+
class?: string;
|
|
162
|
+
[key: string]: any;
|
|
163
|
+
}
|
|
164
|
+
export declare const CodeBlock: Component<CodeBlockProps>;
|
|
165
|
+
|
|
166
|
+
// Modal
|
|
167
|
+
export interface ModalProps {
|
|
168
|
+
variant?: 'confirmation' | 'task' | 'alert';
|
|
169
|
+
size?: 'sm' | 'md' | 'lg';
|
|
170
|
+
open?: boolean;
|
|
171
|
+
title?: string;
|
|
172
|
+
onClose?: () => void;
|
|
173
|
+
class?: string;
|
|
174
|
+
children?: Snippet;
|
|
175
|
+
actions?: Snippet;
|
|
176
|
+
[key: string]: any;
|
|
177
|
+
}
|
|
178
|
+
export declare const Modal: Component<ModalProps>;
|
|
179
|
+
|
|
180
|
+
// FormInput
|
|
181
|
+
export interface FormInputProps {
|
|
182
|
+
variant?: 'text' | 'email' | 'password' | 'number' | 'search' | 'textarea';
|
|
183
|
+
size?: 'sm' | 'md' | 'lg';
|
|
184
|
+
state?: 'default' | 'focus' | 'error' | 'disabled' | 'readonly';
|
|
185
|
+
label?: string;
|
|
186
|
+
helperText?: string;
|
|
187
|
+
errorText?: string;
|
|
188
|
+
required?: boolean;
|
|
189
|
+
disabled?: boolean;
|
|
190
|
+
readonly?: boolean;
|
|
191
|
+
value?: string;
|
|
192
|
+
placeholder?: string;
|
|
193
|
+
id?: string;
|
|
194
|
+
class?: string;
|
|
195
|
+
[key: string]: any;
|
|
196
|
+
}
|
|
197
|
+
export declare const FormInput: Component<FormInputProps>;
|
|
198
|
+
|
|
199
|
+
// Select
|
|
200
|
+
export interface SelectOption {
|
|
201
|
+
value: string;
|
|
202
|
+
label: string;
|
|
203
|
+
disabled?: boolean;
|
|
204
|
+
}
|
|
205
|
+
export interface SelectProps {
|
|
206
|
+
variant?: 'native' | 'custom';
|
|
207
|
+
size?: 'sm' | 'md' | 'lg';
|
|
208
|
+
options?: SelectOption[];
|
|
209
|
+
placeholder?: string;
|
|
210
|
+
required?: boolean;
|
|
211
|
+
disabled?: boolean;
|
|
212
|
+
label?: string;
|
|
213
|
+
errorText?: string;
|
|
214
|
+
value?: string;
|
|
215
|
+
id?: string;
|
|
216
|
+
class?: string;
|
|
217
|
+
[key: string]: any;
|
|
218
|
+
}
|
|
219
|
+
export declare const Select: Component<SelectProps>;
|
|
220
|
+
|
|
221
|
+
// Checkbox
|
|
222
|
+
export interface CheckboxProps {
|
|
223
|
+
checked?: boolean;
|
|
224
|
+
indeterminate?: boolean;
|
|
225
|
+
disabled?: boolean;
|
|
226
|
+
label?: string;
|
|
227
|
+
name?: string;
|
|
228
|
+
value?: string;
|
|
229
|
+
id?: string;
|
|
230
|
+
class?: string;
|
|
231
|
+
[key: string]: any;
|
|
232
|
+
}
|
|
233
|
+
export declare const Checkbox: Component<CheckboxProps>;
|
|
234
|
+
|
|
235
|
+
// Radio
|
|
236
|
+
export interface RadioOption {
|
|
237
|
+
value: string;
|
|
238
|
+
label: string;
|
|
239
|
+
disabled?: boolean;
|
|
240
|
+
}
|
|
241
|
+
export interface RadioProps {
|
|
242
|
+
variant?: 'standard' | 'card';
|
|
243
|
+
options?: RadioOption[];
|
|
244
|
+
name?: string;
|
|
245
|
+
value?: string;
|
|
246
|
+
legend?: string;
|
|
247
|
+
disabled?: boolean;
|
|
248
|
+
class?: string;
|
|
249
|
+
[key: string]: any;
|
|
250
|
+
}
|
|
251
|
+
export declare const Radio: Component<RadioProps>;
|
|
252
|
+
|
|
253
|
+
// ToggleSwitch
|
|
254
|
+
export interface ToggleSwitchProps {
|
|
255
|
+
variant?: 'standard' | 'with-label';
|
|
256
|
+
checked?: boolean;
|
|
257
|
+
disabled?: boolean;
|
|
258
|
+
label?: string;
|
|
259
|
+
id?: string;
|
|
260
|
+
class?: string;
|
|
261
|
+
onChange?: (checked: boolean) => void;
|
|
262
|
+
[key: string]: any;
|
|
263
|
+
}
|
|
264
|
+
export declare const ToggleSwitch: Component<ToggleSwitchProps>;
|
|
265
|
+
|
|
266
|
+
// Alert
|
|
267
|
+
export interface AlertProps {
|
|
268
|
+
variant?: 'success' | 'warning' | 'error' | 'info';
|
|
269
|
+
size?: 'sm' | 'md' | 'lg';
|
|
270
|
+
title?: string;
|
|
271
|
+
message?: string;
|
|
272
|
+
dismissible?: boolean;
|
|
273
|
+
onDismiss?: () => void;
|
|
274
|
+
class?: string;
|
|
275
|
+
children?: Snippet;
|
|
276
|
+
[key: string]: any;
|
|
277
|
+
}
|
|
278
|
+
export declare const Alert: Component<AlertProps>;
|
|
279
|
+
|
|
280
|
+
// Badge
|
|
281
|
+
export interface BadgeProps {
|
|
282
|
+
variant?: 'status' | 'count' | 'tag';
|
|
283
|
+
size?: 'sm' | 'md';
|
|
284
|
+
label?: string;
|
|
285
|
+
color?: string;
|
|
286
|
+
removable?: boolean;
|
|
287
|
+
onRemove?: () => void;
|
|
288
|
+
class?: string;
|
|
289
|
+
children?: Snippet;
|
|
290
|
+
[key: string]: any;
|
|
291
|
+
}
|
|
292
|
+
export declare const Badge: Component<BadgeProps>;
|
|
293
|
+
|
|
294
|
+
// Tabs
|
|
295
|
+
export interface TabItem {
|
|
296
|
+
id: string;
|
|
297
|
+
label: string;
|
|
298
|
+
disabled?: boolean;
|
|
299
|
+
}
|
|
300
|
+
export interface TabsProps {
|
|
301
|
+
variant?: 'line' | 'pill' | 'segmented';
|
|
302
|
+
size?: 'sm' | 'md' | 'lg';
|
|
303
|
+
tabs?: TabItem[];
|
|
304
|
+
activeTab?: string;
|
|
305
|
+
onChange?: (tabId: string) => void;
|
|
306
|
+
class?: string;
|
|
307
|
+
children?: Snippet;
|
|
308
|
+
[key: string]: any;
|
|
309
|
+
}
|
|
310
|
+
export declare const Tabs: Component<TabsProps>;
|
|
311
|
+
|
|
312
|
+
// Accordion
|
|
313
|
+
export interface AccordionItem {
|
|
314
|
+
id: string;
|
|
315
|
+
title: string;
|
|
316
|
+
content: string;
|
|
317
|
+
}
|
|
318
|
+
export interface AccordionProps {
|
|
319
|
+
variant?: 'single' | 'multi' | 'flush';
|
|
320
|
+
items?: AccordionItem[];
|
|
321
|
+
defaultExpanded?: string[];
|
|
322
|
+
allowMultiple?: boolean;
|
|
323
|
+
class?: string;
|
|
324
|
+
children?: Snippet;
|
|
325
|
+
[key: string]: any;
|
|
326
|
+
}
|
|
327
|
+
export declare const Accordion: Component<AccordionProps>;
|
|
328
|
+
|
|
329
|
+
// Breadcrumb
|
|
330
|
+
export interface BreadcrumbItem {
|
|
331
|
+
label: string;
|
|
332
|
+
href?: string;
|
|
333
|
+
}
|
|
334
|
+
export interface BreadcrumbProps {
|
|
335
|
+
variant?: 'standard' | 'truncated';
|
|
336
|
+
items?: BreadcrumbItem[];
|
|
337
|
+
separator?: string;
|
|
338
|
+
maxItems?: number;
|
|
339
|
+
class?: string;
|
|
340
|
+
[key: string]: any;
|
|
341
|
+
}
|
|
342
|
+
export declare const Breadcrumb: Component<BreadcrumbProps>;
|
|
343
|
+
|
|
344
|
+
// Tooltip
|
|
345
|
+
export interface TooltipProps {
|
|
346
|
+
variant?: 'simple' | 'rich';
|
|
347
|
+
size?: 'sm' | 'md';
|
|
348
|
+
content?: string;
|
|
349
|
+
position?: 'top' | 'bottom' | 'left' | 'right';
|
|
350
|
+
class?: string;
|
|
351
|
+
trigger?: Snippet;
|
|
352
|
+
children?: Snippet;
|
|
353
|
+
[key: string]: any;
|
|
354
|
+
}
|
|
355
|
+
export declare const Tooltip: Component<TooltipProps>;
|
|
356
|
+
|
|
357
|
+
// DropdownMenu
|
|
358
|
+
export interface DropdownItem {
|
|
359
|
+
id: string;
|
|
360
|
+
label: string;
|
|
361
|
+
icon?: string;
|
|
362
|
+
disabled?: boolean;
|
|
363
|
+
separator?: boolean;
|
|
364
|
+
}
|
|
365
|
+
export interface DropdownMenuProps {
|
|
366
|
+
variant?: 'action' | 'context' | 'nav-sub';
|
|
367
|
+
size?: 'sm' | 'md' | 'lg';
|
|
368
|
+
items?: DropdownItem[];
|
|
369
|
+
position?: 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
|
|
370
|
+
onSelect?: (itemId: string) => void;
|
|
371
|
+
class?: string;
|
|
372
|
+
trigger?: Snippet;
|
|
373
|
+
[key: string]: any;
|
|
374
|
+
}
|
|
375
|
+
export declare const DropdownMenu: Component<DropdownMenuProps>;
|
|
376
|
+
|
|
377
|
+
// Avatar
|
|
378
|
+
export interface AvatarProps {
|
|
379
|
+
variant?: 'image' | 'initials' | 'icon' | 'group';
|
|
380
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
381
|
+
src?: string;
|
|
382
|
+
alt?: string;
|
|
383
|
+
initials?: string;
|
|
384
|
+
status?: 'online' | 'offline' | 'busy';
|
|
385
|
+
fallback?: string;
|
|
386
|
+
class?: string;
|
|
387
|
+
icon?: Snippet;
|
|
388
|
+
children?: Snippet;
|
|
389
|
+
[key: string]: any;
|
|
390
|
+
}
|
|
391
|
+
export declare const Avatar: Component<AvatarProps>;
|
|
392
|
+
|
|
393
|
+
// Skeleton
|
|
394
|
+
export interface SkeletonProps {
|
|
395
|
+
variant?: 'text' | 'card' | 'avatar' | 'table';
|
|
396
|
+
size?: 'sm' | 'md' | 'lg';
|
|
397
|
+
lines?: number;
|
|
398
|
+
animated?: boolean;
|
|
399
|
+
class?: string;
|
|
400
|
+
[key: string]: any;
|
|
401
|
+
}
|
|
402
|
+
export declare const Skeleton: Component<SkeletonProps>;
|
|
403
|
+
|
|
404
|
+
// Toast
|
|
405
|
+
export interface ToastProps {
|
|
406
|
+
variant?: 'success' | 'error' | 'warning' | 'info' | 'neutral';
|
|
407
|
+
size?: 'sm' | 'md' | 'lg';
|
|
408
|
+
message?: string;
|
|
409
|
+
duration?: number;
|
|
410
|
+
action?: string;
|
|
411
|
+
onDismiss?: () => void;
|
|
412
|
+
onAction?: () => void;
|
|
413
|
+
visible?: boolean;
|
|
414
|
+
class?: string;
|
|
415
|
+
children?: Snippet;
|
|
416
|
+
[key: string]: any;
|
|
417
|
+
}
|
|
418
|
+
export declare const Toast: Component<ToastProps>;
|
|
419
|
+
|
|
420
|
+
// Pagination
|
|
421
|
+
export interface PaginationProps {
|
|
422
|
+
variant?: 'numbered' | 'simple' | 'load-more' | 'infinite-scroll';
|
|
423
|
+
size?: 'sm' | 'md';
|
|
424
|
+
currentPage?: number;
|
|
425
|
+
totalPages?: number;
|
|
426
|
+
onPageChange?: (page: number) => void;
|
|
427
|
+
class?: string;
|
|
428
|
+
[key: string]: any;
|
|
429
|
+
}
|
|
430
|
+
export declare const Pagination: Component<PaginationProps>;
|
|
431
|
+
|
|
432
|
+
// DataTable
|
|
433
|
+
export interface DataTableColumn {
|
|
434
|
+
key: string;
|
|
435
|
+
label: string;
|
|
436
|
+
sortable?: boolean;
|
|
437
|
+
width?: string;
|
|
438
|
+
}
|
|
439
|
+
export interface DataTableProps {
|
|
440
|
+
variant?: 'basic' | 'sortable' | 'selectable' | 'expandable';
|
|
441
|
+
density?: 'compact' | 'default' | 'comfortable';
|
|
442
|
+
columns?: DataTableColumn[];
|
|
443
|
+
data?: Record<string, any>[];
|
|
444
|
+
sortable?: boolean;
|
|
445
|
+
selectable?: boolean;
|
|
446
|
+
sortKey?: string;
|
|
447
|
+
sortDirection?: 'asc' | 'desc';
|
|
448
|
+
selectedRows?: Set<number>;
|
|
449
|
+
onSort?: (key: string, direction: 'asc' | 'desc') => void;
|
|
450
|
+
onSelect?: (selected: Set<number>) => void;
|
|
451
|
+
class?: string;
|
|
452
|
+
children?: Snippet;
|
|
453
|
+
[key: string]: any;
|
|
454
|
+
}
|
|
455
|
+
export declare const DataTable: Component<DataTableProps>;
|
|
456
|
+
|
|
457
|
+
// DatePicker
|
|
458
|
+
export interface DatePickerProps {
|
|
459
|
+
variant?: 'single' | 'range' | 'with-time';
|
|
460
|
+
size?: 'md' | 'lg';
|
|
461
|
+
value?: string;
|
|
462
|
+
min?: string;
|
|
463
|
+
max?: string;
|
|
464
|
+
disabled?: boolean;
|
|
465
|
+
locale?: string;
|
|
466
|
+
placeholder?: string;
|
|
467
|
+
label?: string;
|
|
468
|
+
id?: string;
|
|
469
|
+
onChange?: (value: string) => void;
|
|
470
|
+
class?: string;
|
|
471
|
+
[key: string]: any;
|
|
472
|
+
}
|
|
473
|
+
export declare const DatePicker: Component<DatePickerProps>;
|
|
474
|
+
|
|
475
|
+
// CommandPalette
|
|
476
|
+
export interface CommandAction {
|
|
477
|
+
id: string;
|
|
478
|
+
label: string;
|
|
479
|
+
group?: string;
|
|
480
|
+
shortcut?: string;
|
|
481
|
+
icon?: string;
|
|
482
|
+
}
|
|
483
|
+
export interface CommandPaletteProps {
|
|
484
|
+
open?: boolean;
|
|
485
|
+
actions?: CommandAction[];
|
|
486
|
+
groups?: string[];
|
|
487
|
+
placeholder?: string;
|
|
488
|
+
recentLimit?: number;
|
|
489
|
+
onSelect?: (actionId: string) => void;
|
|
490
|
+
onClose?: () => void;
|
|
491
|
+
class?: string;
|
|
492
|
+
[key: string]: any;
|
|
493
|
+
}
|
|
494
|
+
export declare const CommandPalette: Component<CommandPaletteProps>;
|
|
495
|
+
|
|
496
|
+
// ProgressIndicator
|
|
497
|
+
export interface ProgressIndicatorProps {
|
|
498
|
+
variant?: 'bar' | 'circular' | 'stepper';
|
|
499
|
+
size?: 'sm' | 'md' | 'lg';
|
|
500
|
+
value?: number;
|
|
501
|
+
max?: number;
|
|
502
|
+
label?: string;
|
|
503
|
+
showValue?: boolean;
|
|
504
|
+
indeterminate?: boolean;
|
|
505
|
+
class?: string;
|
|
506
|
+
children?: Snippet;
|
|
507
|
+
[key: string]: any;
|
|
508
|
+
}
|
|
509
|
+
export declare const ProgressIndicator: Component<ProgressIndicatorProps>;
|
|
510
|
+
|
|
511
|
+
// SideNavigation
|
|
512
|
+
export interface SideNavItem {
|
|
513
|
+
id: string;
|
|
514
|
+
label: string;
|
|
515
|
+
href?: string;
|
|
516
|
+
icon?: string;
|
|
517
|
+
children?: SideNavItem[];
|
|
518
|
+
}
|
|
519
|
+
export interface SideNavSection {
|
|
520
|
+
title: string;
|
|
521
|
+
items: SideNavItem[];
|
|
522
|
+
}
|
|
523
|
+
export interface SideNavigationProps {
|
|
524
|
+
variant?: 'default' | 'collapsed' | 'with-sections';
|
|
525
|
+
collapsed?: boolean;
|
|
526
|
+
items?: SideNavItem[];
|
|
527
|
+
sections?: SideNavSection[];
|
|
528
|
+
activeItem?: string;
|
|
529
|
+
onNavigate?: (itemId: string) => void;
|
|
530
|
+
class?: string;
|
|
531
|
+
children?: Snippet;
|
|
532
|
+
[key: string]: any;
|
|
533
|
+
}
|
|
534
|
+
export declare const SideNavigation: Component<SideNavigationProps>;
|
|
535
|
+
|
|
536
|
+
// FileUpload
|
|
537
|
+
export interface FileUploadProps {
|
|
538
|
+
variant?: 'dropzone' | 'button' | 'avatar-upload';
|
|
539
|
+
size?: 'sm' | 'md' | 'lg';
|
|
540
|
+
accept?: string;
|
|
541
|
+
maxSize?: number;
|
|
542
|
+
maxFiles?: number;
|
|
543
|
+
multiple?: boolean;
|
|
544
|
+
disabled?: boolean;
|
|
545
|
+
state?: 'idle' | 'drag-over' | 'uploading' | 'success' | 'error';
|
|
546
|
+
label?: string;
|
|
547
|
+
onUpload?: (files: FileList) => void;
|
|
548
|
+
onRemove?: (index: number) => void;
|
|
549
|
+
class?: string;
|
|
550
|
+
children?: Snippet;
|
|
551
|
+
[key: string]: any;
|
|
552
|
+
}
|
|
553
|
+
export declare const FileUpload: Component<FileUploadProps>;
|
package/src/index.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export { default as Button } from './components/Button.svelte';
|
|
2
|
+
export { default as NavigationBar } from './components/NavigationBar.svelte';
|
|
3
|
+
export { default as HeroSection } from './components/HeroSection.svelte';
|
|
4
|
+
export { default as FeatureCard } from './components/FeatureCard.svelte';
|
|
5
|
+
export { default as PricingTable } from './components/PricingTable.svelte';
|
|
6
|
+
export { default as SocialProofBar } from './components/SocialProofBar.svelte';
|
|
7
|
+
export { default as TestimonialCard } from './components/TestimonialCard.svelte';
|
|
8
|
+
export { default as Footer } from './components/Footer.svelte';
|
|
9
|
+
export { default as CodeBlock } from './components/CodeBlock.svelte';
|
|
10
|
+
export { default as Modal } from './components/Modal.svelte';
|
|
11
|
+
export { default as FormInput } from './components/FormInput.svelte';
|
|
12
|
+
export { default as Select } from './components/Select.svelte';
|
|
13
|
+
export { default as Checkbox } from './components/Checkbox.svelte';
|
|
14
|
+
export { default as Radio } from './components/Radio.svelte';
|
|
15
|
+
export { default as ToggleSwitch } from './components/ToggleSwitch.svelte';
|
|
16
|
+
export { default as Alert } from './components/Alert.svelte';
|
|
17
|
+
export { default as Badge } from './components/Badge.svelte';
|
|
18
|
+
export { default as Tabs } from './components/Tabs.svelte';
|
|
19
|
+
export { default as Accordion } from './components/Accordion.svelte';
|
|
20
|
+
export { default as Breadcrumb } from './components/Breadcrumb.svelte';
|
|
21
|
+
export { default as Tooltip } from './components/Tooltip.svelte';
|
|
22
|
+
export { default as DropdownMenu } from './components/DropdownMenu.svelte';
|
|
23
|
+
export { default as Avatar } from './components/Avatar.svelte';
|
|
24
|
+
export { default as Skeleton } from './components/Skeleton.svelte';
|
|
25
|
+
export { default as Toast } from './components/Toast.svelte';
|
|
26
|
+
export { default as Pagination } from './components/Pagination.svelte';
|
|
27
|
+
export { default as DataTable } from './components/DataTable.svelte';
|
|
28
|
+
export { default as DatePicker } from './components/DatePicker.svelte';
|
|
29
|
+
export { default as CommandPalette } from './components/CommandPalette.svelte';
|
|
30
|
+
export { default as ProgressIndicator } from './components/ProgressIndicator.svelte';
|
|
31
|
+
export { default as SideNavigation } from './components/SideNavigation.svelte';
|
|
32
|
+
export { default as FileUpload } from './components/FileUpload.svelte';
|