twintrinsic 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 (212) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +150 -0
  3. package/dist/App/App.svelte +54 -0
  4. package/dist/App/App.svelte.d.ts +65 -0
  5. package/dist/Section.svelte +25 -0
  6. package/dist/Section.svelte.d.ts +34 -0
  7. package/dist/actions/clickOutside.d.ts +9 -0
  8. package/dist/actions/clickOutside.js +19 -0
  9. package/dist/actions/index.d.ts +1 -0
  10. package/dist/actions/index.js +1 -0
  11. package/dist/components/Accordion/Accordion.svelte +75 -0
  12. package/dist/components/Accordion/Accordion.svelte.d.ts +39 -0
  13. package/dist/components/Accordion/AccordionItem.svelte +150 -0
  14. package/dist/components/Accordion/AccordionItem.svelte.d.ts +30 -0
  15. package/dist/components/App/App.story.md +8 -0
  16. package/dist/components/App/App.story.svelte +170 -0
  17. package/dist/components/App/App.story.svelte.d.ts +22 -0
  18. package/dist/components/App/App.svelte +77 -0
  19. package/dist/components/App/App.svelte.d.ts +66 -0
  20. package/dist/components/App/Split.svelte +346 -0
  21. package/dist/components/App/Split.svelte.d.ts +54 -0
  22. package/dist/components/App/index.d.ts +2 -0
  23. package/dist/components/App/index.js +3 -0
  24. package/dist/components/AppHeader/AppHeader.svelte +439 -0
  25. package/dist/components/AppHeader/AppHeader.svelte.d.ts +24 -0
  26. package/dist/components/Avatar/Avatar.svelte +300 -0
  27. package/dist/components/Avatar/Avatar.svelte.d.ts +48 -0
  28. package/dist/components/Avatar/AvatarGroup.svelte +185 -0
  29. package/dist/components/Avatar/AvatarGroup.svelte.d.ts +46 -0
  30. package/dist/components/Badge/Badge.svelte +186 -0
  31. package/dist/components/Badge/Badge.svelte.d.ts +51 -0
  32. package/dist/components/BottomBar/BottomBar.svelte +146 -0
  33. package/dist/components/BottomBar/BottomBar.svelte.d.ts +38 -0
  34. package/dist/components/Breadcrumb/Breadcrumb.svelte +77 -0
  35. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts +42 -0
  36. package/dist/components/Breadcrumb/BreadcrumbItem.svelte +171 -0
  37. package/dist/components/Breadcrumb/BreadcrumbItem.svelte.d.ts +38 -0
  38. package/dist/components/Button/Button.svelte +252 -0
  39. package/dist/components/Button/Button.svelte.d.ts +80 -0
  40. package/dist/components/Button/ButtonGroup.svelte +127 -0
  41. package/dist/components/Button/ButtonGroup.svelte.d.ts +44 -0
  42. package/dist/components/Card/Card.svelte +152 -0
  43. package/dist/components/Card/Card.svelte.d.ts +55 -0
  44. package/dist/components/Carousel/Carousel.svelte +461 -0
  45. package/dist/components/Carousel/Carousel.svelte.d.ts +79 -0
  46. package/dist/components/Carousel/CarouselItem.svelte +149 -0
  47. package/dist/components/Carousel/CarouselItem.svelte.d.ts +35 -0
  48. package/dist/components/Chip/Chip.svelte +288 -0
  49. package/dist/components/Chip/Chip.svelte.d.ts +71 -0
  50. package/dist/components/Chip/ChipGroup.svelte +190 -0
  51. package/dist/components/Chip/ChipGroup.svelte.d.ts +71 -0
  52. package/dist/components/CodeBlock/CodeBlock.svelte +356 -0
  53. package/dist/components/CodeBlock/CodeBlock.svelte.d.ts +44 -0
  54. package/dist/components/CodeBlock/index.d.ts +1 -0
  55. package/dist/components/CodeBlock/index.js +1 -0
  56. package/dist/components/CodeBlockSpeed/CodeBlockSpeed.svelte +145 -0
  57. package/dist/components/CodeBlockSpeed/CodeBlockSpeed.svelte.d.ts +44 -0
  58. package/dist/components/CodeEditor/CodeEditor.svelte +229 -0
  59. package/dist/components/CodeEditor/CodeEditor.svelte.d.ts +23 -0
  60. package/dist/components/Combobox/Combobox.svelte +279 -0
  61. package/dist/components/Combobox/Combobox.svelte.d.ts +34 -0
  62. package/dist/components/Container/Container.svelte +45 -0
  63. package/dist/components/Container/Container.svelte.d.ts +36 -0
  64. package/dist/components/DataTable/DataTable.svelte +879 -0
  65. package/dist/components/DataTable/DataTable.svelte.d.ts +102 -0
  66. package/dist/components/Form/AutoComplete.svelte +357 -0
  67. package/dist/components/Form/AutoComplete.svelte.d.ts +73 -0
  68. package/dist/components/Form/Calendar.svelte +429 -0
  69. package/dist/components/Form/Calendar.svelte.d.ts +53 -0
  70. package/dist/components/Form/Checkbox.svelte +196 -0
  71. package/dist/components/Form/Checkbox.svelte.d.ts +50 -0
  72. package/dist/components/Form/ColorPicker.svelte +396 -0
  73. package/dist/components/Form/ColorPicker.svelte.d.ts +43 -0
  74. package/dist/components/Form/Combobox.svelte +645 -0
  75. package/dist/components/Form/Combobox.svelte.d.ts +93 -0
  76. package/dist/components/Form/Dropdown.svelte +773 -0
  77. package/dist/components/Form/Dropdown.svelte.d.ts +81 -0
  78. package/dist/components/Form/FileUpload.svelte +796 -0
  79. package/dist/components/Form/FileUpload.svelte.d.ts +78 -0
  80. package/dist/components/Form/FloatLabel.svelte +245 -0
  81. package/dist/components/Form/FloatLabel.svelte.d.ts +44 -0
  82. package/dist/components/Form/Form.svelte +281 -0
  83. package/dist/components/Form/Form.svelte.d.ts +54 -0
  84. package/dist/components/Form/FormField.svelte +218 -0
  85. package/dist/components/Form/FormField.svelte.d.ts +47 -0
  86. package/dist/components/Form/Input.svelte +340 -0
  87. package/dist/components/Form/Input.svelte.d.ts +79 -0
  88. package/dist/components/Form/InputSwitch.svelte +189 -0
  89. package/dist/components/Form/InputSwitch.svelte.d.ts +46 -0
  90. package/dist/components/Form/InvalidState.svelte +97 -0
  91. package/dist/components/Form/InvalidState.svelte.d.ts +37 -0
  92. package/dist/components/Form/Knob.svelte +537 -0
  93. package/dist/components/Form/Knob.svelte.d.ts +78 -0
  94. package/dist/components/Form/ListInput.svelte +469 -0
  95. package/dist/components/Form/ListInput.svelte.d.ts +70 -0
  96. package/dist/components/Form/Listbox.svelte +513 -0
  97. package/dist/components/Form/Listbox.svelte.d.ts +74 -0
  98. package/dist/components/Form/NumberInput.svelte +452 -0
  99. package/dist/components/Form/NumberInput.svelte.d.ts +82 -0
  100. package/dist/components/Form/Radio.svelte +192 -0
  101. package/dist/components/Form/Radio.svelte.d.ts +53 -0
  102. package/dist/components/Form/RadioGroup.svelte +155 -0
  103. package/dist/components/Form/RadioGroup.svelte.d.ts +48 -0
  104. package/dist/components/Form/Rating.svelte +380 -0
  105. package/dist/components/Form/Rating.svelte.d.ts +64 -0
  106. package/dist/components/Form/Select.svelte +436 -0
  107. package/dist/components/Form/Select.svelte.d.ts +49 -0
  108. package/dist/components/Form/SelectGroup.svelte +34 -0
  109. package/dist/components/Form/SelectGroup.svelte.d.ts +33 -0
  110. package/dist/components/Form/Slider.svelte +622 -0
  111. package/dist/components/Form/Slider.svelte.d.ts +73 -0
  112. package/dist/components/Form/Switch.svelte +192 -0
  113. package/dist/components/Form/Switch.svelte.d.ts +46 -0
  114. package/dist/components/Form/TextInput.svelte +274 -0
  115. package/dist/components/Form/TextInput.svelte.d.ts +74 -0
  116. package/dist/components/Form/Textarea.svelte +207 -0
  117. package/dist/components/Form/Textarea.svelte.d.ts +62 -0
  118. package/dist/components/Icon/Icon.svelte +140 -0
  119. package/dist/components/Icon/Icon.svelte.d.ts +25 -0
  120. package/dist/components/Icon/index.d.ts +1 -0
  121. package/dist/components/Icon/index.js +1 -0
  122. package/dist/components/Lazy/Lazy.svelte +158 -0
  123. package/dist/components/Lazy/Lazy.svelte.d.ts +42 -0
  124. package/dist/components/Masonry/Masonry.svelte +299 -0
  125. package/dist/components/Masonry/Masonry.svelte.d.ts +55 -0
  126. package/dist/components/Menu/Menu/Menu.svelte +65 -0
  127. package/dist/components/Menu/Menu/Menu.svelte.d.ts +17 -0
  128. package/dist/components/Menu/Menu/MenuItem.svelte +90 -0
  129. package/dist/components/Menu/Menu/MenuItem.svelte.d.ts +27 -0
  130. package/dist/components/Modal/Modal.svelte +334 -0
  131. package/dist/components/Modal/Modal.svelte.d.ts +55 -0
  132. package/dist/components/Panel/Card.svelte +141 -0
  133. package/dist/components/Panel/Card.svelte.d.ts +52 -0
  134. package/dist/components/Panel/Hero/Hero.story.md +9 -0
  135. package/dist/components/Panel/Hero/Hero.story.svelte +49 -0
  136. package/dist/components/Panel/Hero/Hero.story.svelte.d.ts +21 -0
  137. package/dist/components/Panel/Hero/Hero.svelte +24 -0
  138. package/dist/components/Panel/Hero/Hero.svelte.d.ts +32 -0
  139. package/dist/components/Panel/LazyPanel.svelte +110 -0
  140. package/dist/components/Panel/LazyPanel.svelte.d.ts +46 -0
  141. package/dist/components/Panel/Panel.svelte +205 -0
  142. package/dist/components/Panel/Panel.svelte.d.ts +23 -0
  143. package/dist/components/Progress/Progress.svelte +220 -0
  144. package/dist/components/Progress/Progress.svelte.d.ts +61 -0
  145. package/dist/components/Separator/Separator.svelte +109 -0
  146. package/dist/components/Separator/Separator.svelte.d.ts +35 -0
  147. package/dist/components/Sidebar/Sidebar.svelte +213 -0
  148. package/dist/components/Sidebar/Sidebar.svelte.d.ts +60 -0
  149. package/dist/components/Skeleton/Skeleton.svelte +170 -0
  150. package/dist/components/Skeleton/Skeleton.svelte.d.ts +48 -0
  151. package/dist/components/Stepper/Stepper.svelte +111 -0
  152. package/dist/components/Stepper/Stepper.svelte.d.ts +54 -0
  153. package/dist/components/Stepper/StepperStep.svelte +369 -0
  154. package/dist/components/Stepper/StepperStep.svelte.d.ts +63 -0
  155. package/dist/components/Table/Table.svelte +167 -0
  156. package/dist/components/Table/Table.svelte.d.ts +56 -0
  157. package/dist/components/Table/TableBody.svelte +41 -0
  158. package/dist/components/Table/TableBody.svelte.d.ts +33 -0
  159. package/dist/components/Table/TableCell.svelte +76 -0
  160. package/dist/components/Table/TableCell.svelte.d.ts +36 -0
  161. package/dist/components/Table/TableHead.svelte +41 -0
  162. package/dist/components/Table/TableHead.svelte.d.ts +32 -0
  163. package/dist/components/Table/TableHeader.svelte +148 -0
  164. package/dist/components/Table/TableHeader.svelte.d.ts +42 -0
  165. package/dist/components/Table/TableRow.svelte +99 -0
  166. package/dist/components/Table/TableRow.svelte.d.ts +40 -0
  167. package/dist/components/Tabs/Tab.svelte +145 -0
  168. package/dist/components/Tabs/Tab.svelte.d.ts +36 -0
  169. package/dist/components/Tabs/TabList.svelte +60 -0
  170. package/dist/components/Tabs/TabList.svelte.d.ts +32 -0
  171. package/dist/components/Tabs/TabPanel.svelte +118 -0
  172. package/dist/components/Tabs/TabPanel.svelte.d.ts +38 -0
  173. package/dist/components/Tabs/Tabs.svelte +287 -0
  174. package/dist/components/Tabs/Tabs.svelte.d.ts +50 -0
  175. package/dist/components/Tag/Tag.svelte +260 -0
  176. package/dist/components/Tag/Tag.svelte.d.ts +54 -0
  177. package/dist/components/Tag/TagGroup.svelte +147 -0
  178. package/dist/components/Tag/TagGroup.svelte.d.ts +62 -0
  179. package/dist/components/ThemeToggle/ThemeToggle.svelte +93 -0
  180. package/dist/components/ThemeToggle/ThemeToggle.svelte.d.ts +12 -0
  181. package/dist/components/Timeline/Timeline.svelte +144 -0
  182. package/dist/components/Timeline/Timeline.svelte.d.ts +48 -0
  183. package/dist/components/Timeline/TimelineItem.svelte +391 -0
  184. package/dist/components/Timeline/TimelineItem.svelte.d.ts +63 -0
  185. package/dist/components/Toast/Toast.svelte +313 -0
  186. package/dist/components/Toast/Toast.svelte.d.ts +44 -0
  187. package/dist/components/Toast/toastStore.d.ts +40 -0
  188. package/dist/components/Toast/toastStore.js +293 -0
  189. package/dist/components/Tooltip/Tooltip.svelte +282 -0
  190. package/dist/components/Tooltip/Tooltip.svelte.d.ts +55 -0
  191. package/dist/components/Tree/Tree.svelte +129 -0
  192. package/dist/components/Tree/Tree.svelte.d.ts +61 -0
  193. package/dist/components/Tree/TreeNode.svelte +332 -0
  194. package/dist/components/Tree/TreeNode.svelte.d.ts +55 -0
  195. package/dist/components/icons/TwintrinsicLogo.svelte +73 -0
  196. package/dist/components/icons/TwintrinsicLogo.svelte.d.ts +17 -0
  197. package/dist/components/icons/twintrinsic-source.svg +73 -0
  198. package/dist/components/icons/twintrinsic.svg +38 -0
  199. package/dist/docs/EventsTable.svelte +86 -0
  200. package/dist/docs/EventsTable.svelte.d.ts +27 -0
  201. package/dist/docs/PropsTable.svelte +103 -0
  202. package/dist/docs/PropsTable.svelte.d.ts +28 -0
  203. package/dist/docs/index.d.ts +2 -0
  204. package/dist/docs/index.js +2 -0
  205. package/dist/helpers/detectLanguage.d.ts +6 -0
  206. package/dist/helpers/detectLanguage.js +60 -0
  207. package/dist/helpers/index.d.ts +1 -0
  208. package/dist/helpers/index.js +1 -0
  209. package/dist/index.d.ts +86 -0
  210. package/dist/index.js +94 -0
  211. package/dist/twintrinsic.css +347 -0
  212. package/package.json +98 -0
@@ -0,0 +1,391 @@
1
+ <!--
2
+ @component
3
+ TimelineItem - An individual item within a Timeline component.
4
+ Provides consistent styling, accessibility features, and various display options.
5
+
6
+ Usage:
7
+ ```svelte
8
+ <TimelineItem title="Event Title">
9
+ Content for the event
10
+ </TimelineItem>
11
+
12
+ <TimelineItem
13
+ title="Important Milestone"
14
+ date="January 15, 2023"
15
+ icon="<svg>...</svg>"
16
+ variant="success"
17
+ >
18
+ Detailed description of the milestone
19
+ </TimelineItem>
20
+
21
+ <TimelineItem
22
+ title="Error Occurred"
23
+ variant="error"
24
+ iconBackground="bg-error-500"
25
+ >
26
+ Details about the error
27
+ </TimelineItem>
28
+ ```
29
+ -->
30
+ <script>
31
+ import { getContext, onMount } from "svelte"
32
+
33
+ const {
34
+ /** @type {string} - Additional CSS classes */
35
+ class: className = "",
36
+
37
+ /** @type {string} - HTML id for accessibility */
38
+ id = crypto.randomUUID(),
39
+
40
+ /** @type {string} - Title of the timeline item */
41
+ title,
42
+
43
+ /** @type {string} - Subtitle or date of the timeline item */
44
+ date,
45
+
46
+ /** @type {string} - Visual style variant */
47
+ variant,
48
+
49
+ /** @type {string} - Custom icon (HTML or SVG string) */
50
+ icon,
51
+
52
+ /** @type {string} - Background color for the icon */
53
+ iconBackground,
54
+
55
+ /** @type {boolean} - Whether the item is the last in the timeline */
56
+ last = false,
57
+
58
+ /** @type {boolean} - Whether the item is completed */
59
+ completed = false,
60
+
61
+ /** @type {boolean} - Whether the item is currently active */
62
+ active = false,
63
+
64
+ /** @type {boolean} - Whether the item is disabled */
65
+ disabled = false,
66
+
67
+ /** @type {string} - Position override for this specific item */
68
+ position,
69
+
70
+ children,
71
+ } = $props()
72
+
73
+ // Get timeline context
74
+ const timelineContext = getContext("timeline")
75
+
76
+ // Component state
77
+ let itemElement
78
+ let isVisible = $state(false)
79
+ let index = $state(0)
80
+
81
+ // Determine variant
82
+ const itemVariant = $derived(variant || timelineContext?.variant || "primary")
83
+
84
+ // Determine position
85
+ const itemPosition = $derived(position || timelineContext?.position || "left")
86
+
87
+ // Determine orientation
88
+ const orientation = $derived(timelineContext?.orientation || "vertical")
89
+
90
+ // Determine if connected
91
+ const connected = $derived(timelineContext?.connected !== false)
92
+
93
+ // Determine if animated
94
+ const animated = $derived(timelineContext?.animated === true)
95
+
96
+ // Determine effective position based on alternate setting and index
97
+ const effectivePosition = $derived(() => {
98
+ if (itemPosition !== "alternate") return itemPosition
99
+ return index % 2 === 0 ? "left" : "right"
100
+ })
101
+
102
+ // Determine variant classes
103
+ const variantClasses = $derived(
104
+ {
105
+ default: "text-text dark:text-text",
106
+ primary: "text-primary-500 dark:text-primary-500",
107
+ secondary: "text-secondary-500 dark:text-secondary-500",
108
+ success: "text-success-500 dark:text-success-500",
109
+ warning: "text-warning-500 dark:text-warning-500",
110
+ error: "text-error-500 dark:text-error-500",
111
+ info: "text-info-500 dark:text-info-500",
112
+ }[itemVariant] || "text-primary-500 dark:text-primary-500"
113
+ )
114
+
115
+ // Determine icon background classes
116
+ const iconBgClasses = $derived(
117
+ iconBackground ||
118
+ {
119
+ default: "bg-surface dark:bg-surface",
120
+ primary: "bg-primary-100 dark:bg-primary-900",
121
+ secondary: "bg-secondary-100 dark:bg-secondary-900",
122
+ success: "bg-success-100 dark:bg-success-900",
123
+ warning: "bg-warning-100 dark:bg-warning-900",
124
+ error: "bg-error-100 dark:bg-error-900",
125
+ info: "bg-info-100 dark:bg-info-900",
126
+ }[itemVariant] ||
127
+ "bg-primary-100 dark:bg-primary-900"
128
+ )
129
+
130
+ // Determine state classes
131
+ const stateClasses = $derived({
132
+ completed: "timeline-item-completed",
133
+ active: "timeline-item-active",
134
+ disabled: "timeline-item-disabled",
135
+ })
136
+
137
+ // Register with parent on mount and set up intersection observer
138
+ onMount(() => {
139
+ if (itemElement) {
140
+ // Find our index among siblings
141
+ const parent = itemElement.parentElement
142
+ if (parent) {
143
+ const items = Array.from(parent.children)
144
+ index = items.indexOf(itemElement)
145
+ }
146
+
147
+ // Set up intersection observer for animations
148
+ if (animated) {
149
+ const observer = new IntersectionObserver(
150
+ (entries) => {
151
+ entries.forEach((entry) => {
152
+ if (entry.isIntersecting) {
153
+ isVisible = true
154
+ observer.unobserve(entry.target)
155
+ }
156
+ })
157
+ },
158
+ { threshold: 0.2 }
159
+ )
160
+
161
+ observer.observe(itemElement)
162
+
163
+ return () => {
164
+ observer.disconnect()
165
+ }
166
+ }
167
+ }
168
+ })
169
+ </script>
170
+
171
+ <div
172
+ {id}
173
+ class="
174
+ timeline-item
175
+ timeline-item-{orientation}
176
+ timeline-item-{effectivePosition}
177
+ {completed ? stateClasses.completed : ''}
178
+ {active ? stateClasses.active : ''}
179
+ {disabled ? stateClasses.disabled : ''}
180
+ {last ? 'timeline-item-last' : ''}
181
+ {animated && !isVisible ? 'timeline-item-hidden' : ''}
182
+ {className}
183
+ "
184
+ role="listitem"
185
+ aria-disabled={disabled ? true : undefined}
186
+ bind:this={itemElement}
187
+ >
188
+ <div class="timeline-item-connector">
189
+ <div class="timeline-item-dot {variantClasses} {iconBgClasses}">
190
+ {#if icon}
191
+ <span class="timeline-item-icon">
192
+ {@html icon}
193
+ </span>
194
+ {:else if completed}
195
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
196
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
197
+ </svg>
198
+ {/if}
199
+ </div>
200
+
201
+ {#if connected && !last}
202
+ <div class="timeline-item-line"></div>
203
+ {/if}
204
+ </div>
205
+
206
+ <div class="timeline-item-content">
207
+ {#if title}
208
+ <div class="timeline-item-header">
209
+ <h3 class="timeline-item-title {variantClasses}">
210
+ {title}
211
+ </h3>
212
+
213
+ {#if date}
214
+ <div class="timeline-item-date">
215
+ {date}
216
+ </div>
217
+ {/if}
218
+ </div>
219
+ {/if}
220
+
221
+ <div class="timeline-item-body">
222
+ {@render children?.()}
223
+ </div>
224
+ </div>
225
+ </div>
226
+
227
+ <style>
228
+ @reference "../../twintrinsic.css";
229
+
230
+ .timeline-item {
231
+ @apply relative;
232
+ }
233
+
234
+ /* Vertical timeline layout */
235
+ .timeline-item-vertical {
236
+ @apply pb-6;
237
+ @apply flex;
238
+ }
239
+
240
+ .timeline-item-vertical.timeline-item-last {
241
+ @apply pb-0;
242
+ }
243
+
244
+ .timeline-item-vertical.timeline-item-left {
245
+ @apply flex-row;
246
+ }
247
+
248
+ .timeline-item-vertical.timeline-item-right {
249
+ @apply flex-row-reverse;
250
+ }
251
+
252
+ /* Horizontal timeline layout */
253
+ .timeline-item-horizontal {
254
+ @apply pr-6;
255
+ @apply flex flex-col;
256
+ }
257
+
258
+ .timeline-item-horizontal.timeline-item-last {
259
+ @apply pr-0;
260
+ }
261
+
262
+ .timeline-item-horizontal.timeline-item-left {
263
+ @apply flex-col;
264
+ }
265
+
266
+ .timeline-item-horizontal.timeline-item-right {
267
+ @apply flex-col-reverse;
268
+ }
269
+
270
+ /* Connector styles */
271
+ .timeline-item-connector {
272
+ @apply flex-shrink-0;
273
+ }
274
+
275
+ .timeline-item-vertical .timeline-item-connector {
276
+ @apply flex flex-col items-center;
277
+ @apply w-12;
278
+ }
279
+
280
+ .timeline-item-horizontal .timeline-item-connector {
281
+ @apply flex flex-row items-center;
282
+ @apply h-12;
283
+ }
284
+
285
+ .timeline-item-dot {
286
+ @apply flex items-center justify-center;
287
+ @apply rounded-full;
288
+ @apply z-10;
289
+ @apply w-6 h-6;
290
+ @apply border-2 border-white dark:border-gray-900;
291
+ @apply transition-colors duration-150;
292
+ }
293
+
294
+ .timeline-item-icon {
295
+ @apply w-3 h-3;
296
+ }
297
+
298
+ .timeline-item-line {
299
+ @apply bg-border dark:bg-border;
300
+ @apply flex-grow;
301
+ }
302
+
303
+ .timeline-item-vertical .timeline-item-line {
304
+ @apply w-0.5;
305
+ }
306
+
307
+ .timeline-item-horizontal .timeline-item-line {
308
+ @apply h-0.5;
309
+ }
310
+
311
+ /* Content styles */
312
+ .timeline-item-content {
313
+ @apply flex-grow;
314
+ @apply py-0.5;
315
+ }
316
+
317
+ .timeline-item-vertical.timeline-item-left .timeline-item-content {
318
+ @apply pl-4;
319
+ }
320
+
321
+ .timeline-item-vertical.timeline-item-right .timeline-item-content {
322
+ @apply pr-4;
323
+ @apply text-right;
324
+ }
325
+
326
+ .timeline-item-horizontal.timeline-item-left .timeline-item-content {
327
+ @apply pt-4;
328
+ }
329
+
330
+ .timeline-item-horizontal.timeline-item-right .timeline-item-content {
331
+ @apply pb-4;
332
+ }
333
+
334
+ .timeline-item-header {
335
+ @apply mb-2;
336
+ }
337
+
338
+ .timeline-item-title {
339
+ @apply font-medium text-base;
340
+ }
341
+
342
+ .timeline-item-date {
343
+ @apply text-sm text-muted dark:text-muted;
344
+ }
345
+
346
+ .timeline-item-body {
347
+ @apply text-sm text-text dark:text-text;
348
+ }
349
+
350
+ /* State styles */
351
+ .timeline-item-completed .timeline-item-dot {
352
+ @apply bg-success-100 dark:bg-success-900;
353
+ @apply text-success-500 dark:text-success-500;
354
+ }
355
+
356
+ .timeline-item-active .timeline-item-dot {
357
+ @apply ring-2 ring-offset-2 ring-primary-500 dark:ring-primary-500;
358
+ }
359
+
360
+ .timeline-item-disabled {
361
+ @apply opacity-50;
362
+ }
363
+
364
+ /* Animation styles */
365
+ .timeline-item-hidden {
366
+ @apply opacity-0;
367
+ @apply translate-y-4;
368
+ @apply transition-none;
369
+ }
370
+
371
+ .timeline-item-vertical.timeline-item-left.timeline-item-hidden {
372
+ @apply -translate-x-4 translate-y-0;
373
+ }
374
+
375
+ .timeline-item-vertical.timeline-item-right.timeline-item-hidden {
376
+ @apply translate-x-4 translate-y-0;
377
+ }
378
+
379
+ .timeline-item-horizontal.timeline-item-left.timeline-item-hidden {
380
+ @apply -translate-y-4 translate-x-0;
381
+ }
382
+
383
+ .timeline-item-horizontal.timeline-item-right.timeline-item-hidden {
384
+ @apply translate-y-4 translate-x-0;
385
+ }
386
+
387
+ .timeline-item:not(.timeline-item-hidden) {
388
+ @apply opacity-100 translate-x-0 translate-y-0;
389
+ @apply transition-all duration-300 ease-out;
390
+ }
391
+ </style>
@@ -0,0 +1,63 @@
1
+ export default TimelineItem;
2
+ type TimelineItem = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<$$ComponentProps>): void;
5
+ };
6
+ /**
7
+ * TimelineItem - An individual item within a Timeline component.
8
+ * Provides consistent styling, accessibility features, and various display options.
9
+ *
10
+ * Usage:
11
+ * ```svelte
12
+ * <TimelineItem title="Event Title">
13
+ * Content for the event
14
+ * </TimelineItem>
15
+ *
16
+ * <TimelineItem
17
+ * title="Important Milestone"
18
+ * date="January 15, 2023"
19
+ * icon="<svg>...</svg>"
20
+ * variant="success"
21
+ * >
22
+ * Detailed description of the milestone
23
+ * </TimelineItem>
24
+ *
25
+ * <TimelineItem
26
+ * title="Error Occurred"
27
+ * variant="error"
28
+ * iconBackground="bg-error-500"
29
+ * >
30
+ * Details about the error
31
+ * </TimelineItem>
32
+ * ```
33
+ */
34
+ declare const TimelineItem: import("svelte").Component<{
35
+ class?: string;
36
+ id?: any;
37
+ title: any;
38
+ date: any;
39
+ variant: any;
40
+ icon: any;
41
+ iconBackground: any;
42
+ last?: boolean;
43
+ completed?: boolean;
44
+ active?: boolean;
45
+ disabled?: boolean;
46
+ position: any;
47
+ children: any;
48
+ }, {}, "">;
49
+ type $$ComponentProps = {
50
+ class?: string;
51
+ id?: any;
52
+ title: any;
53
+ date: any;
54
+ variant: any;
55
+ icon: any;
56
+ iconBackground: any;
57
+ last?: boolean;
58
+ completed?: boolean;
59
+ active?: boolean;
60
+ disabled?: boolean;
61
+ position: any;
62
+ children: any;
63
+ };