@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.
Files changed (36) hide show
  1. package/README.md +100 -0
  2. package/package.json +27 -0
  3. package/src/components/Accordion.svelte +99 -0
  4. package/src/components/Alert.svelte +67 -0
  5. package/src/components/Avatar.svelte +62 -0
  6. package/src/components/Badge.svelte +50 -0
  7. package/src/components/Breadcrumb.svelte +60 -0
  8. package/src/components/Button.svelte +53 -0
  9. package/src/components/Checkbox.svelte +62 -0
  10. package/src/components/CodeBlock.svelte +90 -0
  11. package/src/components/CommandPalette.svelte +133 -0
  12. package/src/components/DataTable.svelte +140 -0
  13. package/src/components/DatePicker.svelte +73 -0
  14. package/src/components/DropdownMenu.svelte +113 -0
  15. package/src/components/FeatureCard.svelte +63 -0
  16. package/src/components/FileUpload.svelte +120 -0
  17. package/src/components/Footer.svelte +72 -0
  18. package/src/components/FormInput.svelte +102 -0
  19. package/src/components/HeroSection.svelte +65 -0
  20. package/src/components/Modal.svelte +67 -0
  21. package/src/components/NavigationBar.svelte +56 -0
  22. package/src/components/Pagination.svelte +115 -0
  23. package/src/components/PricingTable.svelte +89 -0
  24. package/src/components/ProgressIndicator.svelte +86 -0
  25. package/src/components/Radio.svelte +64 -0
  26. package/src/components/Select.svelte +85 -0
  27. package/src/components/SideNavigation.svelte +130 -0
  28. package/src/components/Skeleton.svelte +53 -0
  29. package/src/components/SocialProofBar.svelte +90 -0
  30. package/src/components/Tabs.svelte +100 -0
  31. package/src/components/TestimonialCard.svelte +71 -0
  32. package/src/components/Toast.svelte +83 -0
  33. package/src/components/ToggleSwitch.svelte +61 -0
  34. package/src/components/Tooltip.svelte +67 -0
  35. package/src/index.d.ts +553 -0
  36. 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';