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
@@ -0,0 +1,104 @@
1
+ import { tv } from 'tailwind-variants';
2
+ export const separatorVariants = tv({
3
+ slots: {
4
+ root: 'flex items-center text-center',
5
+ border: '',
6
+ container: 'font-medium flex',
7
+ icon: 'shrink-0',
8
+ avatar: 'shrink-0',
9
+ avatarSize: '2xs',
10
+ label: ''
11
+ },
12
+ variants: {
13
+ color: {
14
+ primary: {
15
+ border: 'border-primary',
16
+ label: 'text-primary',
17
+ icon: 'text-primary'
18
+ },
19
+ secondary: {
20
+ border: 'border-secondary',
21
+ label: 'text-secondary',
22
+ icon: 'text-secondary'
23
+ },
24
+ tertiary: {
25
+ border: 'border-tertiary',
26
+ label: 'text-tertiary',
27
+ icon: 'text-tertiary'
28
+ },
29
+ success: {
30
+ border: 'border-success',
31
+ label: 'text-success',
32
+ icon: 'text-success'
33
+ },
34
+ warning: {
35
+ border: 'border-warning',
36
+ label: 'text-warning',
37
+ icon: 'text-warning'
38
+ },
39
+ error: {
40
+ border: 'border-error',
41
+ label: 'text-error',
42
+ icon: 'text-error'
43
+ },
44
+ info: {
45
+ border: 'border-info',
46
+ label: 'text-info',
47
+ icon: 'text-info'
48
+ },
49
+ surface: {
50
+ border: 'border-outline-variant',
51
+ label: 'text-on-surface-variant',
52
+ icon: 'text-on-surface-variant'
53
+ }
54
+ },
55
+ size: {
56
+ xs: { label: 'text-xs', icon: 'size-3' },
57
+ sm: { label: 'text-xs', icon: 'size-3.5' },
58
+ md: { label: 'text-sm', icon: 'size-4' },
59
+ lg: { label: 'text-sm', icon: 'size-5' },
60
+ xl: { label: 'text-base', icon: 'size-6' }
61
+ },
62
+ type: {
63
+ solid: { border: 'border-solid' },
64
+ dashed: { border: 'border-dashed' },
65
+ dotted: { border: 'border-dotted' }
66
+ },
67
+ orientation: {
68
+ horizontal: {
69
+ root: 'w-full flex-row',
70
+ border: 'w-full flex-1',
71
+ container: 'mx-3 whitespace-nowrap'
72
+ },
73
+ vertical: {
74
+ root: 'h-full flex-col',
75
+ border: 'h-full flex-1',
76
+ container: 'my-2'
77
+ }
78
+ }
79
+ },
80
+ compoundVariants: [
81
+ // Horizontal border sizes
82
+ { orientation: 'horizontal', size: 'xs', class: { border: 'border-t' } },
83
+ { orientation: 'horizontal', size: 'sm', class: { border: 'border-t-2' } },
84
+ { orientation: 'horizontal', size: 'md', class: { border: 'border-t-[3px]' } },
85
+ { orientation: 'horizontal', size: 'lg', class: { border: 'border-t-4' } },
86
+ { orientation: 'horizontal', size: 'xl', class: { border: 'border-t-[5px]' } },
87
+ // Vertical border sizes
88
+ { orientation: 'vertical', size: 'xs', class: { border: 'border-s' } },
89
+ { orientation: 'vertical', size: 'sm', class: { border: 'border-s-2' } },
90
+ { orientation: 'vertical', size: 'md', class: { border: 'border-s-[3px]' } },
91
+ { orientation: 'vertical', size: 'lg', class: { border: 'border-s-4' } },
92
+ { orientation: 'vertical', size: 'xl', class: { border: 'border-s-[5px]' } }
93
+ ],
94
+ defaultVariants: {
95
+ color: 'surface',
96
+ size: 'xs',
97
+ type: 'solid',
98
+ orientation: 'horizontal'
99
+ }
100
+ });
101
+ export const separatorDefaults = {
102
+ defaultVariants: separatorVariants.defaultVariants,
103
+ slots: {}
104
+ };
@@ -0,0 +1,31 @@
1
+ <script lang="ts" module>
2
+ import type { SkeletonProps } from './skeleton.types.js'
3
+
4
+ export type Props = SkeletonProps
5
+ </script>
6
+
7
+ <script lang="ts">
8
+ import { skeletonVariants, skeletonDefaults } from './skeleton.variants.js'
9
+ import { getComponentConfig } from '../config.js'
10
+
11
+ const config = getComponentConfig('skeleton', skeletonDefaults)
12
+
13
+ let {
14
+ as = 'div',
15
+ ui,
16
+ class: className,
17
+ children,
18
+ ...restProps
19
+ }: Props = $props()
20
+
21
+ const classes = $derived.by(() => {
22
+ const slots = skeletonVariants()
23
+ return {
24
+ root: slots.root({ class: [config.slots.root, className, ui?.root] })
25
+ }
26
+ })
27
+ </script>
28
+
29
+ <svelte:element this={as} class={classes.root} {...restProps}>
30
+ {@render children?.()}
31
+ </svelte:element>
@@ -0,0 +1,5 @@
1
+ import type { SkeletonProps } from './skeleton.types.js';
2
+ export type Props = SkeletonProps;
3
+ declare const Skeleton: import("svelte").Component<SkeletonProps, {}, "">;
4
+ type Skeleton = ReturnType<typeof Skeleton>;
5
+ export default Skeleton;
@@ -0,0 +1,2 @@
1
+ export { default as Skeleton } from './Skeleton.svelte';
2
+ export type { SkeletonProps } from './skeleton.types.js';
@@ -0,0 +1 @@
1
+ export { default as Skeleton } from './Skeleton.svelte';
@@ -0,0 +1,18 @@
1
+ import type { HTMLAttributes } from 'svelte/elements';
2
+ import type { ClassNameValue } from 'tailwind-merge';
3
+ import type { SkeletonSlots } from './skeleton.variants.js';
4
+ export type SkeletonProps = Omit<HTMLAttributes<HTMLElement>, 'class'> & {
5
+ /**
6
+ * Renders the skeleton as a different HTML element.
7
+ * @default 'div'
8
+ */
9
+ as?: keyof HTMLElementTagNameMap;
10
+ /**
11
+ * Override styles for specific skeleton slots (root).
12
+ */
13
+ ui?: Partial<Record<SkeletonSlots, ClassNameValue>>;
14
+ /**
15
+ * Additional CSS classes for the root element.
16
+ */
17
+ class?: ClassNameValue;
18
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ import { type VariantProps } from 'tailwind-variants';
2
+ export declare const skeletonVariants: import("tailwind-variants").TVReturnType<{}, {
3
+ root: string;
4
+ }, undefined, {}, {
5
+ root: string;
6
+ }, import("tailwind-variants").TVReturnType<{}, {
7
+ root: string;
8
+ }, undefined, unknown, unknown, undefined>>;
9
+ export type SkeletonVariantProps = VariantProps<typeof skeletonVariants>;
10
+ export type SkeletonSlots = keyof ReturnType<typeof skeletonVariants>;
11
+ export declare const skeletonDefaults: {
12
+ defaultVariants: import("tailwind-variants").TVDefaultVariants<{}, {
13
+ root: string;
14
+ }, {}, {
15
+ root: string;
16
+ }>;
17
+ slots: Partial<Record<SkeletonSlots, string>>;
18
+ };
@@ -0,0 +1,12 @@
1
+ import { tv } from 'tailwind-variants';
2
+ export const skeletonVariants = tv({
3
+ slots: {
4
+ root: 'animate-pulse rounded-md bg-surface-container-highest'
5
+ },
6
+ variants: {},
7
+ defaultVariants: {}
8
+ });
9
+ export const skeletonDefaults = {
10
+ defaultVariants: skeletonVariants.defaultVariants,
11
+ slots: {}
12
+ };
@@ -0,0 +1,106 @@
1
+ <script lang="ts" module>
2
+ import type { TimelineProps } from './timeline.types.js'
3
+
4
+ export type Props = TimelineProps
5
+ </script>
6
+
7
+ <script lang="ts">
8
+ import { timelineVariants, timelineDefaults } from './timeline.variants.js'
9
+ import type { TimelineItemState } from './timeline.types.js'
10
+ import { getComponentConfig } from '../config.js'
11
+ import Avatar from '../Avatar/Avatar.svelte'
12
+ import Icon from '../Icon/Icon.svelte'
13
+
14
+ const config = getComponentConfig('timeline', timelineDefaults)
15
+
16
+ let {
17
+ as = 'div',
18
+ items = [],
19
+ size = config.defaultVariants.size,
20
+ color = config.defaultVariants.color,
21
+ orientation = config.defaultVariants.orientation,
22
+ reverse = config.defaultVariants.reverse,
23
+ value,
24
+ class: className,
25
+ ui,
26
+ indicator,
27
+ dateSlot,
28
+ titleSlot,
29
+ descriptionSlot,
30
+ content,
31
+ ...restProps
32
+ }: Props = $props()
33
+
34
+ // Pre-compute shared slot classes outside the loop (these don't vary per item)
35
+ const classes = $derived.by(() => {
36
+ const slots = timelineVariants({ orientation, color, size, reverse })
37
+ return {
38
+ root: slots.root({ class: [config.slots.root, className, ui?.root] }),
39
+ item: slots.item({ class: [config.slots.item, ui?.item] }),
40
+ container: slots.container({ class: [config.slots.container, ui?.container] }),
41
+ indicator: slots.indicator({ class: [config.slots.indicator, ui?.indicator] }),
42
+ separator: slots.separator({ class: [config.slots.separator, ui?.separator] }),
43
+ wrapper: slots.wrapper({ class: [config.slots.wrapper, ui?.wrapper] }),
44
+ date: slots.date({ class: [config.slots.date, ui?.date] }),
45
+ title: slots.title({ class: [config.slots.title, ui?.title] }),
46
+ description: slots.description({ class: [config.slots.description, ui?.description] })
47
+ }
48
+ })
49
+
50
+ const activeIndex = $derived(value !== undefined ? items.findIndex((item) => item.value === value) : -1)
51
+
52
+ function getState(index: number): TimelineItemState {
53
+ if (activeIndex === -1) return 'pending'
54
+ if (index === activeIndex) return 'active'
55
+ return index < activeIndex ? 'completed' : 'pending'
56
+ }
57
+ </script>
58
+
59
+ <svelte:element this={as} class={classes.root} {...restProps}>
60
+ {#each items as item, index (item.value ?? index)}
61
+ {@const state = getState(index)}
62
+ <div class={item.class ? `${classes.item} ${item.class}` : classes.item} data-state={state}>
63
+ <div class={classes.container}>
64
+ {#if indicator}
65
+ {@render indicator({ item, index, state })}
66
+ {:else}
67
+ <div class={classes.indicator}>
68
+ {#if item.avatar}
69
+ <Avatar {...item.avatar} size={size} />
70
+ {:else if item.icon}
71
+ <Icon name={item.icon} />
72
+ {/if}
73
+ </div>
74
+ {/if}
75
+
76
+ {#if reverse ? index > 0 : index < items.length - 1}
77
+ <div class={classes.separator}></div>
78
+ {/if}
79
+ </div>
80
+
81
+ <div class={classes.wrapper}>
82
+ {#if dateSlot}
83
+ {@render dateSlot({ item, index, state })}
84
+ {:else if item.date}
85
+ <div class={classes.date}>{item.date}</div>
86
+ {/if}
87
+
88
+ {#if titleSlot}
89
+ {@render titleSlot({ item, index, state })}
90
+ {:else if item.title}
91
+ <div class={classes.title}>{item.title}</div>
92
+ {/if}
93
+
94
+ {#if descriptionSlot}
95
+ {@render descriptionSlot({ item, index, state })}
96
+ {:else if item.description}
97
+ <div class={classes.description}>{item.description}</div>
98
+ {/if}
99
+
100
+ {#if content}
101
+ {@render content({ item, index, state })}
102
+ {/if}
103
+ </div>
104
+ </div>
105
+ {/each}
106
+ </svelte:element>
@@ -0,0 +1,5 @@
1
+ import type { TimelineProps } from './timeline.types.js';
2
+ export type Props = TimelineProps;
3
+ declare const Timeline: import("svelte").Component<TimelineProps, {}, "">;
4
+ type Timeline = ReturnType<typeof Timeline>;
5
+ export default Timeline;
@@ -0,0 +1,2 @@
1
+ export { default as Timeline } from './Timeline.svelte';
2
+ export type { TimelineProps, TimelineItem } from './timeline.types.js';
@@ -0,0 +1 @@
1
+ export { default as Timeline } from './Timeline.svelte';
@@ -0,0 +1,130 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { ClassNameValue } from 'tailwind-merge';
3
+ import type { HTMLAttributes } from 'svelte/elements';
4
+ import type { TimelineVariantProps, TimelineSlots } from './timeline.variants.js';
5
+ import type { AvatarProps } from '../Avatar/avatar.types.js';
6
+ /** State of a timeline item */
7
+ export type TimelineItemState = 'completed' | 'active' | 'pending';
8
+ /** Timeline item configuration */
9
+ export type TimelineItem = {
10
+ /**
11
+ * Unique identifier for the item.
12
+ * Used for tracking active state.
13
+ */
14
+ value?: string | number;
15
+ /**
16
+ * Date or time label for the event.
17
+ */
18
+ date?: string;
19
+ /**
20
+ * Title/heading of the event.
21
+ */
22
+ title?: string;
23
+ /**
24
+ * Description or details of the event.
25
+ */
26
+ description?: string;
27
+ /**
28
+ * Icon to display in the indicator.
29
+ * Accepts any Iconify icon name.
30
+ */
31
+ icon?: string;
32
+ /**
33
+ * Avatar configuration to display in the indicator.
34
+ * Takes precedence over icon.
35
+ */
36
+ avatar?: AvatarProps;
37
+ /**
38
+ * Additional CSS classes for this item.
39
+ */
40
+ class?: ClassNameValue;
41
+ };
42
+ export type TimelineProps = Omit<HTMLAttributes<HTMLElement>, 'class'> & {
43
+ /**
44
+ * The HTML element to render as.
45
+ * @default 'div'
46
+ */
47
+ as?: keyof HTMLElementTagNameMap;
48
+ /**
49
+ * Override styles for specific timeline slots.
50
+ */
51
+ ui?: Partial<Record<TimelineSlots, ClassNameValue>>;
52
+ /**
53
+ * Array of timeline items to display.
54
+ */
55
+ items?: TimelineItem[];
56
+ /**
57
+ * Sets the color scheme for active/completed states.
58
+ * @default 'primary'
59
+ */
60
+ color?: NonNullable<TimelineVariantProps['color']>;
61
+ /**
62
+ * Controls the size of indicators and spacing.
63
+ * @default 'md'
64
+ */
65
+ size?: NonNullable<TimelineVariantProps['size']>;
66
+ /**
67
+ * Controls the layout direction.
68
+ * @default 'vertical'
69
+ */
70
+ orientation?: NonNullable<TimelineVariantProps['orientation']>;
71
+ /**
72
+ * Reverses the completion direction.
73
+ * When true, items after active are completed.
74
+ * @default false
75
+ */
76
+ reverse?: boolean;
77
+ /**
78
+ * The currently active item value.
79
+ * Items before this are marked as completed.
80
+ */
81
+ value?: string | number;
82
+ /**
83
+ * Additional CSS classes for the root element.
84
+ */
85
+ class?: ClassNameValue;
86
+ /**
87
+ * Custom indicator content for all items.
88
+ * Takes precedence over icon and avatar.
89
+ */
90
+ indicator?: Snippet<[{
91
+ item: TimelineItem;
92
+ index: number;
93
+ state: TimelineItemState;
94
+ }]>;
95
+ /**
96
+ * Custom date content for all items.
97
+ * Takes precedence over item.date.
98
+ */
99
+ dateSlot?: Snippet<[{
100
+ item: TimelineItem;
101
+ index: number;
102
+ state: TimelineItemState;
103
+ }]>;
104
+ /**
105
+ * Custom title content for all items.
106
+ * Takes precedence over item.title.
107
+ */
108
+ titleSlot?: Snippet<[{
109
+ item: TimelineItem;
110
+ index: number;
111
+ state: TimelineItemState;
112
+ }]>;
113
+ /**
114
+ * Custom description content for all items.
115
+ * Takes precedence over item.description.
116
+ */
117
+ descriptionSlot?: Snippet<[{
118
+ item: TimelineItem;
119
+ index: number;
120
+ state: TimelineItemState;
121
+ }]>;
122
+ /**
123
+ * Custom content rendered after each item.
124
+ */
125
+ content?: Snippet<[{
126
+ item: TimelineItem;
127
+ index: number;
128
+ state: TimelineItemState;
129
+ }]>;
130
+ };
@@ -0,0 +1 @@
1
+ export {};