@kuzenbo/core 0.0.3 → 0.0.5

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 (342) hide show
  1. package/dist/avatar-CXhwmJgG.js +65 -0
  2. package/dist/avatar-CXhwmJgG.js.map +1 -0
  3. package/dist/{avatar-image-Ce26D2fb.d.ts → avatar-DpiupAAM.d.ts} +35 -2
  4. package/dist/avatar-DpiupAAM.d.ts.map +1 -0
  5. package/dist/badge-BKRm6jL7.js +58 -0
  6. package/dist/badge-BKRm6jL7.js.map +1 -0
  7. package/dist/button-nAbTNrxA.d.ts +78 -0
  8. package/dist/button-nAbTNrxA.d.ts.map +1 -0
  9. package/dist/{dialog-trigger-BUF3elAP.js → dialog-CD5lfQA9.js} +33 -10
  10. package/dist/dialog-CD5lfQA9.js.map +1 -0
  11. package/dist/{dialog-viewport-Ce1huyAI.d.ts → dialog-DEkdr-9K.d.ts} +64 -2
  12. package/dist/dialog-DEkdr-9K.d.ts.map +1 -0
  13. package/dist/{dropdown-menu-trigger-COnFGfDa.js → dropdown-menu-BJi-V71O.js} +137 -101
  14. package/dist/dropdown-menu-BJi-V71O.js.map +1 -0
  15. package/dist/{dropdown-menu-trigger-BpgtLUvf.d.ts → dropdown-menu-Bpj576m0.d.ts} +259 -123
  16. package/dist/dropdown-menu-Bpj576m0.d.ts.map +1 -0
  17. package/dist/input-Ex9ZRqbo.js +38 -0
  18. package/dist/input-Ex9ZRqbo.js.map +1 -0
  19. package/dist/input-WWoBCgxe.d.ts +46 -0
  20. package/dist/input-WWoBCgxe.d.ts.map +1 -0
  21. package/dist/{input-group-textarea-B-rP98r5.js → input-group-CjcHP0L4.js} +50 -31
  22. package/dist/input-group-CjcHP0L4.js.map +1 -0
  23. package/dist/provider.js +4 -2
  24. package/dist/scroll-bar-C4qEUKlT.js.map +1 -1
  25. package/dist/separator-C8Qw2ADs.d.ts +13 -0
  26. package/dist/separator-C8Qw2ADs.d.ts.map +1 -0
  27. package/dist/{sheet-trigger-D7neoTF5.js → sheet-imSHXfFH.js} +29 -10
  28. package/dist/sheet-imSHXfFH.js.map +1 -0
  29. package/dist/{size-context-BjRwqlSg.js → size-context-CvLl3pMC.js} +3 -3
  30. package/dist/size-context-CvLl3pMC.js.map +1 -0
  31. package/dist/size-context-DXfCAlWF.d.ts.map +1 -1
  32. package/dist/size-provider-18EvJgDT.js.map +1 -1
  33. package/dist/size-provider-Bd2C6gKd.d.ts.map +1 -1
  34. package/dist/size-system-BTsMqZRQ.js +99 -0
  35. package/dist/size-system-BTsMqZRQ.js.map +1 -0
  36. package/dist/size-system-wzOLSuax.d.ts.map +1 -1
  37. package/dist/size.js +4 -2
  38. package/dist/{slider-root-presentation-ChJHPMIV.js → slider-root-presentation-B6OO_iCT.js} +19 -19
  39. package/dist/slider-root-presentation-B6OO_iCT.js.map +1 -0
  40. package/dist/{slider-value-Db8SCu0c.d.ts → slider-style-tokens-CZezJilZ.d.ts} +55 -55
  41. package/dist/slider-style-tokens-CZezJilZ.d.ts.map +1 -0
  42. package/dist/textarea-C8dsnn8D.d.ts +37 -0
  43. package/dist/textarea-C8dsnn8D.d.ts.map +1 -0
  44. package/dist/textarea-CkiM1N_I.js +39 -0
  45. package/dist/textarea-CkiM1N_I.js.map +1 -0
  46. package/dist/toggle-CxkIncmZ.d.ts +53 -0
  47. package/dist/toggle-CxkIncmZ.d.ts.map +1 -0
  48. package/dist/{tooltip-trigger-qXw-_nbh.js → tooltip-D0BEpCQx.js} +38 -13
  49. package/dist/tooltip-D0BEpCQx.js.map +1 -0
  50. package/dist/{tooltip-viewport-csA6luqI.d.ts → tooltip-DbJxt69l.d.ts} +61 -13
  51. package/dist/tooltip-DbJxt69l.d.ts.map +1 -0
  52. package/dist/ui/accordion.d.ts +4 -4
  53. package/dist/ui/accordion.d.ts.map +1 -1
  54. package/dist/ui/accordion.js +53 -52
  55. package/dist/ui/accordion.js.map +1 -1
  56. package/dist/ui/affix.d.ts +3 -2
  57. package/dist/ui/affix.d.ts.map +1 -1
  58. package/dist/ui/affix.js +8 -7
  59. package/dist/ui/affix.js.map +1 -1
  60. package/dist/ui/alert-dialog.d.ts +3 -1
  61. package/dist/ui/alert-dialog.d.ts.map +1 -1
  62. package/dist/ui/alert-dialog.js +12 -9
  63. package/dist/ui/alert-dialog.js.map +1 -1
  64. package/dist/ui/alert.d.ts +32 -32
  65. package/dist/ui/alert.d.ts.map +1 -1
  66. package/dist/ui/alert.js +88 -86
  67. package/dist/ui/alert.js.map +1 -1
  68. package/dist/ui/announcement.d.ts.map +1 -1
  69. package/dist/ui/announcement.js +5 -3
  70. package/dist/ui/announcement.js.map +1 -1
  71. package/dist/ui/aspect-ratio.d.ts.map +1 -1
  72. package/dist/ui/aspect-ratio.js.map +1 -1
  73. package/dist/ui/autocomplete.d.ts +74 -74
  74. package/dist/ui/autocomplete.d.ts.map +1 -1
  75. package/dist/ui/autocomplete.js +57 -53
  76. package/dist/ui/autocomplete.js.map +1 -1
  77. package/dist/ui/avatar.d.ts +2 -39
  78. package/dist/ui/avatar.js +2 -24
  79. package/dist/ui/badge.d.ts +28 -28
  80. package/dist/ui/badge.d.ts.map +1 -1
  81. package/dist/ui/badge.js +3 -53
  82. package/dist/ui/breadcrumb.d.ts +64 -64
  83. package/dist/ui/breadcrumb.d.ts.map +1 -1
  84. package/dist/ui/breadcrumb.js +49 -45
  85. package/dist/ui/breadcrumb.js.map +1 -1
  86. package/dist/ui/button-group.d.ts +34 -34
  87. package/dist/ui/button-group.d.ts.map +1 -1
  88. package/dist/ui/button-group.js +31 -28
  89. package/dist/ui/button-group.js.map +1 -1
  90. package/dist/ui/button.d.ts +2 -78
  91. package/dist/ui/button.js +42 -42
  92. package/dist/ui/button.js.map +1 -1
  93. package/dist/ui/card.d.ts.map +1 -1
  94. package/dist/ui/card.js +8 -6
  95. package/dist/ui/card.js.map +1 -1
  96. package/dist/ui/carousel.d.ts +1 -1
  97. package/dist/ui/carousel.d.ts.map +1 -1
  98. package/dist/ui/carousel.js +36 -17
  99. package/dist/ui/carousel.js.map +1 -1
  100. package/dist/ui/checkbox-group.d.ts.map +1 -1
  101. package/dist/ui/checkbox-group.js +2 -0
  102. package/dist/ui/checkbox-group.js.map +1 -1
  103. package/dist/ui/checkbox.d.ts +20 -20
  104. package/dist/ui/checkbox.d.ts.map +1 -1
  105. package/dist/ui/checkbox.js +15 -13
  106. package/dist/ui/checkbox.js.map +1 -1
  107. package/dist/ui/code.d.ts.map +1 -1
  108. package/dist/ui/code.js +5 -5
  109. package/dist/ui/code.js.map +1 -1
  110. package/dist/ui/collapsible.js +1 -1
  111. package/dist/ui/collapsible.js.map +1 -1
  112. package/dist/ui/combobox.d.ts +107 -107
  113. package/dist/ui/combobox.d.ts.map +1 -1
  114. package/dist/ui/combobox.js +88 -87
  115. package/dist/ui/combobox.js.map +1 -1
  116. package/dist/ui/command.d.ts +57 -58
  117. package/dist/ui/command.d.ts.map +1 -1
  118. package/dist/ui/command.js +54 -64
  119. package/dist/ui/command.js.map +1 -1
  120. package/dist/ui/container.d.ts.map +1 -1
  121. package/dist/ui/container.js.map +1 -1
  122. package/dist/ui/context-menu.d.ts +132 -132
  123. package/dist/ui/context-menu.d.ts.map +1 -1
  124. package/dist/ui/context-menu.js +102 -98
  125. package/dist/ui/context-menu.js.map +1 -1
  126. package/dist/ui/copy-button.d.ts +1 -3
  127. package/dist/ui/copy-button.d.ts.map +1 -1
  128. package/dist/ui/copy-button.js +12 -13
  129. package/dist/ui/copy-button.js.map +1 -1
  130. package/dist/ui/dialog.d.ts +2 -66
  131. package/dist/ui/dialog.js +2 -24
  132. package/dist/ui/drawer.d.ts +91 -91
  133. package/dist/ui/drawer.d.ts.map +1 -1
  134. package/dist/ui/drawer.js +68 -66
  135. package/dist/ui/drawer.js.map +1 -1
  136. package/dist/ui/dropdown-menu.d.ts +3 -144
  137. package/dist/ui/dropdown-menu.js +3 -38
  138. package/dist/ui/dropzone.d.ts +55 -55
  139. package/dist/ui/dropzone.d.ts.map +1 -1
  140. package/dist/ui/dropzone.js +77 -72
  141. package/dist/ui/dropzone.js.map +1 -1
  142. package/dist/ui/emoji-picker.d.ts +79 -79
  143. package/dist/ui/emoji-picker.d.ts.map +1 -1
  144. package/dist/ui/emoji-picker.js +92 -87
  145. package/dist/ui/emoji-picker.js.map +1 -1
  146. package/dist/ui/empty.d.ts +61 -59
  147. package/dist/ui/empty.d.ts.map +1 -1
  148. package/dist/ui/empty.js +49 -44
  149. package/dist/ui/empty.js.map +1 -1
  150. package/dist/ui/field.d.ts +11 -11
  151. package/dist/ui/field.d.ts.map +1 -1
  152. package/dist/ui/field.js +9 -7
  153. package/dist/ui/field.js.map +1 -1
  154. package/dist/ui/fieldset.d.ts.map +1 -1
  155. package/dist/ui/fieldset.js.map +1 -1
  156. package/dist/ui/form.d.ts +8 -8
  157. package/dist/ui/form.d.ts.map +1 -1
  158. package/dist/ui/form.js +2 -0
  159. package/dist/ui/form.js.map +1 -1
  160. package/dist/ui/input-group.d.ts +35 -35
  161. package/dist/ui/input-group.d.ts.map +1 -1
  162. package/dist/ui/input-group.js +2 -28
  163. package/dist/ui/input-otp.d.ts +36 -36
  164. package/dist/ui/input-otp.d.ts.map +1 -1
  165. package/dist/ui/input-otp.js +29 -28
  166. package/dist/ui/input-otp.js.map +1 -1
  167. package/dist/ui/input.d.ts +2 -46
  168. package/dist/ui/input.js +2 -34
  169. package/dist/ui/item.d.ts +20 -20
  170. package/dist/ui/item.d.ts.map +1 -1
  171. package/dist/ui/item.js +24 -22
  172. package/dist/ui/item.js.map +1 -1
  173. package/dist/ui/kbd.d.ts.map +1 -1
  174. package/dist/ui/kbd.js +10 -8
  175. package/dist/ui/kbd.js.map +1 -1
  176. package/dist/ui/label.d.ts.map +1 -1
  177. package/dist/ui/label.js.map +1 -1
  178. package/dist/ui/marquee.d.ts.map +1 -1
  179. package/dist/ui/marquee.js +1 -1
  180. package/dist/ui/marquee.js.map +1 -1
  181. package/dist/ui/menubar.d.ts +133 -134
  182. package/dist/ui/menubar.d.ts.map +1 -1
  183. package/dist/ui/menubar.js +84 -81
  184. package/dist/ui/menubar.js.map +1 -1
  185. package/dist/ui/meter.d.ts.map +1 -1
  186. package/dist/ui/meter.js +2 -0
  187. package/dist/ui/meter.js.map +1 -1
  188. package/dist/ui/navigation-list.d.ts +226 -226
  189. package/dist/ui/navigation-list.d.ts.map +1 -1
  190. package/dist/ui/navigation-list.js +242 -235
  191. package/dist/ui/navigation-list.js.map +1 -1
  192. package/dist/ui/navigation-menu.d.ts +82 -82
  193. package/dist/ui/navigation-menu.d.ts.map +1 -1
  194. package/dist/ui/navigation-menu.js +72 -67
  195. package/dist/ui/navigation-menu.js.map +1 -1
  196. package/dist/ui/number-field.d.ts +34 -34
  197. package/dist/ui/number-field.d.ts.map +1 -1
  198. package/dist/ui/number-field.js +26 -23
  199. package/dist/ui/number-field.js.map +1 -1
  200. package/dist/ui/pagination.d.ts +42 -42
  201. package/dist/ui/pagination.d.ts.map +1 -1
  202. package/dist/ui/pagination.js +45 -41
  203. package/dist/ui/pagination.js.map +1 -1
  204. package/dist/ui/pill.d.ts +2 -3
  205. package/dist/ui/pill.d.ts.map +1 -1
  206. package/dist/ui/pill.js +34 -23
  207. package/dist/ui/pill.js.map +1 -1
  208. package/dist/ui/popover.d.ts +13 -11
  209. package/dist/ui/popover.d.ts.map +1 -1
  210. package/dist/ui/popover.js +17 -14
  211. package/dist/ui/popover.js.map +1 -1
  212. package/dist/ui/portal.d.ts.map +1 -1
  213. package/dist/ui/portal.js +52 -11
  214. package/dist/ui/portal.js.map +1 -1
  215. package/dist/ui/preview-card.js +5 -5
  216. package/dist/ui/preview-card.js.map +1 -1
  217. package/dist/ui/progress.js.map +1 -1
  218. package/dist/ui/qr-code.d.ts.map +1 -1
  219. package/dist/ui/qr-code.js +7 -7
  220. package/dist/ui/qr-code.js.map +1 -1
  221. package/dist/ui/radio-group.d.ts +22 -22
  222. package/dist/ui/radio-group.d.ts.map +1 -1
  223. package/dist/ui/radio-group.js +17 -15
  224. package/dist/ui/radio-group.js.map +1 -1
  225. package/dist/ui/range-slider.d.ts +1 -1
  226. package/dist/ui/range-slider.d.ts.map +1 -1
  227. package/dist/ui/range-slider.js +4 -7
  228. package/dist/ui/range-slider.js.map +1 -1
  229. package/dist/ui/rating.d.ts +35 -35
  230. package/dist/ui/rating.d.ts.map +1 -1
  231. package/dist/ui/rating.js +55 -46
  232. package/dist/ui/rating.js.map +1 -1
  233. package/dist/ui/resizable.d.ts.map +1 -1
  234. package/dist/ui/resizable.js +2 -2
  235. package/dist/ui/resizable.js.map +1 -1
  236. package/dist/ui/scroll-area.d.ts.map +1 -1
  237. package/dist/ui/scroll-area.js +2 -0
  238. package/dist/ui/scroll-area.js.map +1 -1
  239. package/dist/ui/select.d.ts +87 -87
  240. package/dist/ui/select.d.ts.map +1 -1
  241. package/dist/ui/select.js +85 -84
  242. package/dist/ui/select.js.map +1 -1
  243. package/dist/ui/separator.d.ts +2 -13
  244. package/dist/ui/separator.js +2 -0
  245. package/dist/ui/separator.js.map +1 -1
  246. package/dist/ui/sheet.d.ts.map +1 -1
  247. package/dist/ui/sheet.js +2 -24
  248. package/dist/ui/sidebar.d.ts +73 -74
  249. package/dist/ui/sidebar.d.ts.map +1 -1
  250. package/dist/ui/sidebar.js +87 -84
  251. package/dist/ui/sidebar.js.map +1 -1
  252. package/dist/ui/skeleton.d.ts.map +1 -1
  253. package/dist/ui/skeleton.js +1 -1
  254. package/dist/ui/skeleton.js.map +1 -1
  255. package/dist/ui/slider.d.ts +1 -1
  256. package/dist/ui/slider.d.ts.map +1 -1
  257. package/dist/ui/slider.js +3 -1
  258. package/dist/ui/slider.js.map +1 -1
  259. package/dist/ui/spacer.d.ts.map +1 -1
  260. package/dist/ui/spacer.js +2 -2
  261. package/dist/ui/spacer.js.map +1 -1
  262. package/dist/ui/spinner.js +4 -2
  263. package/dist/ui/spinner.js.map +1 -1
  264. package/dist/ui/switch.d.ts +11 -11
  265. package/dist/ui/switch.js +7 -7
  266. package/dist/ui/switch.js.map +1 -1
  267. package/dist/ui/table.d.ts +60 -60
  268. package/dist/ui/table.d.ts.map +1 -1
  269. package/dist/ui/table.js +54 -46
  270. package/dist/ui/table.js.map +1 -1
  271. package/dist/ui/tabs.d.ts +25 -25
  272. package/dist/ui/tabs.d.ts.map +1 -1
  273. package/dist/ui/tabs.js +75 -68
  274. package/dist/ui/tabs.js.map +1 -1
  275. package/dist/ui/textarea.d.ts +2 -37
  276. package/dist/ui/textarea.js +3 -34
  277. package/dist/ui/theme-icon.d.ts +30 -30
  278. package/dist/ui/theme-icon.d.ts.map +1 -1
  279. package/dist/ui/theme-icon.js +22 -22
  280. package/dist/ui/theme-icon.js.map +1 -1
  281. package/dist/ui/timeline.d.ts +6 -6
  282. package/dist/ui/timeline.d.ts.map +1 -1
  283. package/dist/ui/timeline.js +165 -163
  284. package/dist/ui/timeline.js.map +1 -1
  285. package/dist/ui/toggle-group.d.ts +32 -32
  286. package/dist/ui/toggle-group.d.ts.map +1 -1
  287. package/dist/ui/toggle-group.js +22 -16
  288. package/dist/ui/toggle-group.js.map +1 -1
  289. package/dist/ui/toggle.d.ts +2 -53
  290. package/dist/ui/toggle.js +17 -15
  291. package/dist/ui/toggle.js.map +1 -1
  292. package/dist/ui/toolbar.d.ts +54 -54
  293. package/dist/ui/toolbar.d.ts.map +1 -1
  294. package/dist/ui/toolbar.js +45 -40
  295. package/dist/ui/toolbar.js.map +1 -1
  296. package/dist/ui/tooltip.d.ts +2 -54
  297. package/dist/ui/tooltip.js +2 -28
  298. package/dist/ui/typography.d.ts +50 -36
  299. package/dist/ui/typography.d.ts.map +1 -1
  300. package/dist/ui/typography.js +28 -17
  301. package/dist/ui/typography.js.map +1 -1
  302. package/package.json +15 -15
  303. package/dist/avatar-image-BQ_NEKH4.js +0 -47
  304. package/dist/avatar-image-BQ_NEKH4.js.map +0 -1
  305. package/dist/avatar-image-Ce26D2fb.d.ts.map +0 -1
  306. package/dist/dialog-trigger-BUF3elAP.js.map +0 -1
  307. package/dist/dialog-viewport-Ce1huyAI.d.ts.map +0 -1
  308. package/dist/dropdown-menu-trigger-BpgtLUvf.d.ts.map +0 -1
  309. package/dist/dropdown-menu-trigger-COnFGfDa.js.map +0 -1
  310. package/dist/input-group-textarea-B-rP98r5.js.map +0 -1
  311. package/dist/sheet-trigger-D7neoTF5.js.map +0 -1
  312. package/dist/size-context-BjRwqlSg.js.map +0 -1
  313. package/dist/size-system-DTXmtQXw.js +0 -47
  314. package/dist/size-system-DTXmtQXw.js.map +0 -1
  315. package/dist/slider-root-presentation-ChJHPMIV.js.map +0 -1
  316. package/dist/slider-value-Db8SCu0c.d.ts.map +0 -1
  317. package/dist/tooltip-trigger-qXw-_nbh.js.map +0 -1
  318. package/dist/tooltip-viewport-csA6luqI.d.ts.map +0 -1
  319. package/dist/ui/avatar.d.ts.map +0 -1
  320. package/dist/ui/avatar.js.map +0 -1
  321. package/dist/ui/badge.js.map +0 -1
  322. package/dist/ui/button.d.ts.map +0 -1
  323. package/dist/ui/dialog.d.ts.map +0 -1
  324. package/dist/ui/dialog.js.map +0 -1
  325. package/dist/ui/dropdown-menu.d.ts.map +0 -1
  326. package/dist/ui/dropdown-menu.js.map +0 -1
  327. package/dist/ui/input-group.js.map +0 -1
  328. package/dist/ui/input.d.ts.map +0 -1
  329. package/dist/ui/input.js.map +0 -1
  330. package/dist/ui/separator.d.ts.map +0 -1
  331. package/dist/ui/sheet.js.map +0 -1
  332. package/dist/ui/textarea.d.ts.map +0 -1
  333. package/dist/ui/textarea.js.map +0 -1
  334. package/dist/ui/toggle.d.ts.map +0 -1
  335. package/dist/ui/tooltip.d.ts.map +0 -1
  336. package/dist/ui/tooltip.js.map +0 -1
  337. package/dist/use-badge-default-props-8d9wPL0k.js +0 -8
  338. package/dist/use-badge-default-props-8d9wPL0k.js.map +0 -1
  339. package/dist/use-input-default-props-B6VgKXGM.js +0 -8
  340. package/dist/use-input-default-props-B6VgKXGM.js.map +0 -1
  341. package/dist/use-textarea-default-props-7MlOxkDO.js +0 -8
  342. package/dist/use-textarea-default-props-7MlOxkDO.js.map +0 -1
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import { createContext, useContext, useMemo } from "react";
2
4
  import { jsx } from "react/jsx-runtime";
3
5
  import { cn, tv } from "tailwind-variants";
@@ -27,86 +29,86 @@ const getItemStatus = (itemIndex, activeIndex) => {
27
29
  //#endregion
28
30
  //#region src/ui/timeline/timeline-connector.tsx
29
31
  const timelineConnectorVariants = tv({
30
- base: ["absolute z-0", "group-last/timeline-item:hidden"],
31
- variants: {
32
- status: {
33
- completed: "bg-primary",
34
- active: "bg-border",
35
- pending: "bg-border"
36
- },
37
- orientation: {
38
- vertical: "",
39
- horizontal: ""
40
- },
41
- variant: {
42
- default: "",
43
- alternate: ""
44
- },
45
- isAlternateRight: {
46
- true: "",
47
- false: ""
48
- }
49
- },
32
+ base: ["z-base absolute", "group-last/timeline-item:hidden"],
50
33
  compoundVariants: [
51
34
  {
52
- orientation: "vertical",
53
- variant: "default",
54
35
  className: [
55
36
  "start-[calc(var(--timeline-dot-size)/2-var(--timeline-connector-thickness)/2)]",
56
37
  "top-[var(--timeline-dot-size)]",
57
38
  "h-[calc(100%-var(--timeline-dot-size))]",
58
39
  "w-[var(--timeline-connector-thickness)]"
59
- ]
40
+ ],
41
+ orientation: "vertical",
42
+ variant: "default"
60
43
  },
61
44
  {
62
- orientation: "horizontal",
63
- variant: "default",
64
45
  className: [
65
46
  "start-[var(--timeline-dot-size)]",
66
47
  "top-[calc(var(--timeline-dot-size)/2-var(--timeline-connector-thickness)/2)]",
67
48
  "h-[var(--timeline-connector-thickness)]",
68
49
  "w-[calc(100%-var(--timeline-dot-size))]"
69
- ]
50
+ ],
51
+ orientation: "horizontal",
52
+ variant: "default"
70
53
  },
71
54
  {
72
- orientation: "vertical",
73
- variant: "alternate",
74
- isAlternateRight: false,
75
55
  className: [
76
56
  "top-0",
77
57
  "-right-[var(--timeline-connector-thickness)/2]",
78
58
  "h-full",
79
59
  "w-[var(--timeline-connector-thickness)]"
80
- ]
60
+ ],
61
+ isAlternateRight: false,
62
+ orientation: "vertical",
63
+ variant: "alternate"
81
64
  },
82
65
  {
83
- orientation: "vertical",
84
- variant: "alternate",
85
- isAlternateRight: true,
86
66
  className: [
87
67
  "top-0",
88
68
  "-left-[var(--timeline-connector-thickness)/2]",
89
69
  "h-full",
90
70
  "w-[var(--timeline-connector-thickness)]"
91
- ]
71
+ ],
72
+ isAlternateRight: true,
73
+ orientation: "vertical",
74
+ variant: "alternate"
92
75
  },
93
76
  {
94
- orientation: "horizontal",
95
- variant: "alternate",
96
77
  className: [
97
78
  "top-[calc(var(--timeline-dot-size)/2-var(--timeline-connector-thickness)/2)]",
98
79
  "left-[var(--timeline-dot-size)]",
99
80
  "row-start-2",
100
81
  "h-[var(--timeline-connector-thickness)]",
101
82
  "w-[calc(100%-var(--timeline-dot-size))]"
102
- ]
83
+ ],
84
+ orientation: "horizontal",
85
+ variant: "alternate"
103
86
  }
104
87
  ],
105
88
  defaultVariants: {
106
- status: "pending",
89
+ isAlternateRight: false,
107
90
  orientation: "vertical",
108
- variant: "default",
109
- isAlternateRight: false
91
+ status: "pending",
92
+ variant: "default"
93
+ },
94
+ variants: {
95
+ isAlternateRight: {
96
+ false: "",
97
+ true: ""
98
+ },
99
+ orientation: {
100
+ horizontal: "",
101
+ vertical: ""
102
+ },
103
+ status: {
104
+ active: "bg-border",
105
+ completed: "bg-primary",
106
+ pending: "bg-border"
107
+ },
108
+ variant: {
109
+ alternate: "",
110
+ default: ""
111
+ }
110
112
  }
111
113
  });
112
114
  const TimelineConnector = ({ className, render, forceMount, ...props }) => {
@@ -117,17 +119,17 @@ const TimelineConnector = ({ className, render, forceMount, ...props }) => {
117
119
  props: mergeProps({
118
120
  "aria-hidden": true,
119
121
  className: cn(timelineConnectorVariants({
120
- status,
122
+ isAlternateRight,
121
123
  orientation,
122
- variant,
123
- isAlternateRight
124
+ status,
125
+ variant
124
126
  }), forceMount && "group-last/timeline-item:block", className)
125
127
  }, props),
126
128
  render,
127
129
  state: {
130
+ orientation,
128
131
  slot: "timeline-connector",
129
- status,
130
- orientation
132
+ status
131
133
  }
132
134
  });
133
135
  };
@@ -136,44 +138,44 @@ const TimelineConnector = ({ className, render, forceMount, ...props }) => {
136
138
  //#region src/ui/timeline/timeline-content.tsx
137
139
  const timelineContentVariants = tv({
138
140
  base: "flex-1",
139
- variants: {
140
- orientation: {
141
- vertical: "",
142
- horizontal: ""
143
- },
144
- variant: {
145
- default: "",
146
- alternate: ""
147
- },
148
- isAlternateRight: {
149
- true: "",
150
- false: ""
151
- }
152
- },
153
141
  compoundVariants: [
154
142
  {
155
- variant: "alternate",
156
- orientation: "vertical",
143
+ className: "text-right",
157
144
  isAlternateRight: false,
158
- className: "text-right"
145
+ orientation: "vertical",
146
+ variant: "alternate"
159
147
  },
160
148
  {
161
- variant: "alternate",
162
- orientation: "horizontal",
149
+ className: "row-start-3 pt-2",
163
150
  isAlternateRight: false,
164
- className: "row-start-3 pt-2"
151
+ orientation: "horizontal",
152
+ variant: "alternate"
165
153
  },
166
154
  {
167
- variant: "alternate",
168
- orientation: "horizontal",
155
+ className: "row-start-1 pb-2",
169
156
  isAlternateRight: true,
170
- className: "row-start-1 pb-2"
157
+ orientation: "horizontal",
158
+ variant: "alternate"
171
159
  }
172
160
  ],
173
161
  defaultVariants: {
162
+ isAlternateRight: false,
174
163
  orientation: "vertical",
175
- variant: "default",
176
- isAlternateRight: false
164
+ variant: "default"
165
+ },
166
+ variants: {
167
+ isAlternateRight: {
168
+ false: "",
169
+ true: ""
170
+ },
171
+ orientation: {
172
+ horizontal: "",
173
+ vertical: ""
174
+ },
175
+ variant: {
176
+ alternate: "",
177
+ default: ""
178
+ }
177
179
  }
178
180
  });
179
181
  const TimelineContent = ({ className, render, ...props }) => {
@@ -182,9 +184,9 @@ const TimelineContent = ({ className, render, ...props }) => {
182
184
  return useRender({
183
185
  defaultTagName: "div",
184
186
  props: mergeProps({ className: cn(timelineContentVariants({
187
+ isAlternateRight,
185
188
  orientation,
186
- variant,
187
- isAlternateRight
189
+ variant
188
190
  }), className) }, props),
189
191
  render,
190
192
  state: {
@@ -198,7 +200,7 @@ const TimelineContent = ({ className, render, ...props }) => {
198
200
  //#region src/ui/timeline/timeline-description.tsx
199
201
  const TimelineDescription = ({ className, render, ...props }) => useRender({
200
202
  defaultTagName: "div",
201
- props: mergeProps({ className: cn("text-sm text-muted-foreground", className) }, props),
203
+ props: mergeProps({ className: cn("text-muted-foreground text-sm", className) }, props),
202
204
  render,
203
205
  state: { slot: "timeline-description" }
204
206
  });
@@ -206,50 +208,50 @@ const TimelineDescription = ({ className, render, ...props }) => useRender({
206
208
  //#endregion
207
209
  //#region src/ui/timeline/timeline-dot.tsx
208
210
  const timelineDotVariants = tv({
209
- base: ["relative z-10 flex shrink-0 items-center justify-center rounded-full border-2 bg-background", "size-[var(--timeline-dot-size)]"],
210
- variants: {
211
- status: {
212
- completed: "border-primary bg-primary",
213
- active: "border-primary bg-background",
214
- pending: "border-border bg-background"
215
- },
216
- orientation: {
217
- vertical: "",
218
- horizontal: ""
219
- },
220
- variant: {
221
- default: "",
222
- alternate: ""
223
- },
224
- isAlternateRight: {
225
- true: "",
226
- false: ""
227
- }
228
- },
211
+ base: ["z-raised bg-background relative flex shrink-0 items-center justify-center rounded-full border-2", "size-[var(--timeline-dot-size)]"],
229
212
  compoundVariants: [
230
213
  {
231
- variant: "alternate",
232
- orientation: "vertical",
214
+ className: "absolute -right-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]",
233
215
  isAlternateRight: false,
234
- className: "absolute -right-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]"
216
+ orientation: "vertical",
217
+ variant: "alternate"
235
218
  },
236
219
  {
237
- variant: "alternate",
238
- orientation: "vertical",
220
+ className: "absolute -left-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]",
239
221
  isAlternateRight: true,
240
- className: "absolute -left-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]"
222
+ orientation: "vertical",
223
+ variant: "alternate"
241
224
  },
242
225
  {
243
- variant: "alternate",
226
+ className: "row-start-2",
244
227
  orientation: "horizontal",
245
- className: "row-start-2"
228
+ variant: "alternate"
246
229
  }
247
230
  ],
248
231
  defaultVariants: {
249
- status: "pending",
232
+ isAlternateRight: false,
250
233
  orientation: "vertical",
251
- variant: "default",
252
- isAlternateRight: false
234
+ status: "pending",
235
+ variant: "default"
236
+ },
237
+ variants: {
238
+ isAlternateRight: {
239
+ false: "",
240
+ true: ""
241
+ },
242
+ orientation: {
243
+ horizontal: "",
244
+ vertical: ""
245
+ },
246
+ status: {
247
+ active: "border-primary bg-background",
248
+ completed: "border-primary bg-primary",
249
+ pending: "border-border bg-background"
250
+ },
251
+ variant: {
252
+ alternate: "",
253
+ default: ""
254
+ }
253
255
  }
254
256
  });
255
257
  const TimelineDot = ({ className, render, ...props }) => {
@@ -258,16 +260,16 @@ const TimelineDot = ({ className, render, ...props }) => {
258
260
  return useRender({
259
261
  defaultTagName: "div",
260
262
  props: mergeProps({ className: cn(timelineDotVariants({
261
- status,
263
+ isAlternateRight,
262
264
  orientation,
263
- variant,
264
- isAlternateRight
265
+ status,
266
+ variant
265
267
  }), className) }, props),
266
268
  render,
267
269
  state: {
270
+ orientation,
268
271
  slot: "timeline-dot",
269
- status,
270
- orientation
272
+ status
271
273
  }
272
274
  });
273
275
  };
@@ -285,53 +287,53 @@ const TimelineHeader = ({ className, render, ...props }) => useRender({
285
287
  //#region src/ui/timeline/timeline-item.tsx
286
288
  const timelineItemVariants = tv({
287
289
  base: "group/timeline-item relative flex",
288
- variants: {
289
- orientation: {
290
- vertical: "",
291
- horizontal: ""
292
- },
293
- variant: {
294
- default: "",
295
- alternate: ""
296
- },
297
- isAlternateRight: {
298
- true: "",
299
- false: ""
300
- }
301
- },
302
290
  compoundVariants: [
303
291
  {
292
+ className: "gap-3 pb-8 last:pb-0",
304
293
  orientation: "vertical",
305
- variant: "default",
306
- className: "gap-3 pb-8 last:pb-0"
294
+ variant: "default"
307
295
  },
308
296
  {
297
+ className: "flex-col gap-3",
309
298
  orientation: "horizontal",
310
- variant: "default",
311
- className: "flex-col gap-3"
299
+ variant: "default"
312
300
  },
313
301
  {
314
- orientation: "vertical",
315
- variant: "alternate",
302
+ className: "w-1/2 gap-3 pr-6 pb-8 last:pb-0",
316
303
  isAlternateRight: false,
317
- className: "w-1/2 gap-3 pr-6 pb-8 last:pb-0"
304
+ orientation: "vertical",
305
+ variant: "alternate"
318
306
  },
319
307
  {
320
- orientation: "vertical",
321
- variant: "alternate",
308
+ className: "ml-auto w-1/2 flex-row-reverse gap-3 pb-8 pl-6 last:pb-0",
322
309
  isAlternateRight: true,
323
- className: "ml-auto w-1/2 flex-row-reverse gap-3 pb-8 pl-6 last:pb-0"
310
+ orientation: "vertical",
311
+ variant: "alternate"
324
312
  },
325
313
  {
314
+ className: "grid min-w-0 grid-rows-[1fr_auto_1fr] gap-3",
326
315
  orientation: "horizontal",
327
- variant: "alternate",
328
- className: "grid min-w-0 grid-rows-[1fr_auto_1fr] gap-3"
316
+ variant: "alternate"
329
317
  }
330
318
  ],
331
319
  defaultVariants: {
320
+ isAlternateRight: false,
332
321
  orientation: "vertical",
333
- variant: "default",
334
- isAlternateRight: false
322
+ variant: "default"
323
+ },
324
+ variants: {
325
+ isAlternateRight: {
326
+ false: "",
327
+ true: ""
328
+ },
329
+ orientation: {
330
+ horizontal: "",
331
+ vertical: ""
332
+ },
333
+ variant: {
334
+ alternate: "",
335
+ default: ""
336
+ }
335
337
  }
336
338
  });
337
339
  const TimelineItem = ({ index, className, children, ...props }) => {
@@ -340,8 +342,8 @@ const TimelineItem = ({ index, className, children, ...props }) => {
340
342
  const isAlternateRight = variant === "alternate" && index % 2 === 1;
341
343
  const itemContextValue = useMemo(() => ({
342
344
  index,
343
- status,
344
- isAlternateRight
345
+ isAlternateRight,
346
+ status
345
347
  }), [
346
348
  index,
347
349
  status,
@@ -352,9 +354,9 @@ const TimelineItem = ({ index, className, children, ...props }) => {
352
354
  children: /* @__PURE__ */ jsx("li", {
353
355
  "aria-current": status === "active" ? "step" : void 0,
354
356
  className: cn(timelineItemVariants({
357
+ isAlternateRight,
355
358
  orientation,
356
- variant,
357
- isAlternateRight
359
+ variant
358
360
  }), className),
359
361
  "data-alternate-right": isAlternateRight ? "" : void 0,
360
362
  "data-orientation": orientation,
@@ -371,7 +373,7 @@ const TimelineItem = ({ index, className, children, ...props }) => {
371
373
  //#region src/ui/timeline/timeline-time.tsx
372
374
  const TimelineTime = ({ className, render, ...props }) => useRender({
373
375
  defaultTagName: "time",
374
- props: mergeProps({ className: cn("text-xs text-muted-foreground", className) }, props),
376
+ props: mergeProps({ className: cn("text-muted-foreground text-xs", className) }, props),
375
377
  render,
376
378
  state: { slot: "timeline-time" }
377
379
  });
@@ -393,49 +395,49 @@ const timelineVariants = tv({
393
395
  "[--timeline-connector-thickness:0.125rem]",
394
396
  "[--timeline-dot-size:0.875rem]"
395
397
  ],
396
- variants: {
397
- orientation: {
398
- vertical: "flex-col",
399
- horizontal: "flex-row items-start"
400
- },
401
- variant: {
402
- default: "",
403
- alternate: ""
404
- }
405
- },
406
398
  compoundVariants: [
407
399
  {
400
+ className: "gap-0",
408
401
  orientation: "vertical",
409
- variant: "default",
410
- className: "gap-0"
402
+ variant: "default"
411
403
  },
412
404
  {
405
+ className: "gap-0",
413
406
  orientation: "horizontal",
414
- variant: "default",
415
- className: "gap-0"
407
+ variant: "default"
416
408
  },
417
409
  {
410
+ className: "relative w-full gap-0",
418
411
  orientation: "vertical",
419
- variant: "alternate",
420
- className: "relative w-full gap-0"
412
+ variant: "alternate"
421
413
  },
422
414
  {
415
+ className: "items-center gap-0",
423
416
  orientation: "horizontal",
424
- variant: "alternate",
425
- className: "items-center gap-0"
417
+ variant: "alternate"
426
418
  }
427
419
  ],
428
420
  defaultVariants: {
429
421
  orientation: "vertical",
430
422
  variant: "default"
423
+ },
424
+ variants: {
425
+ orientation: {
426
+ horizontal: "flex-row items-start",
427
+ vertical: "flex-col"
428
+ },
429
+ variant: {
430
+ alternate: "",
431
+ default: ""
432
+ }
431
433
  }
432
434
  });
433
435
  const Timeline = ({ orientation = "vertical", variant = "default", dir = "ltr", activeIndex, className, children, ...props }) => {
434
436
  const contextValue = useMemo(() => ({
435
- orientation,
436
- variant,
437
+ activeIndex,
437
438
  dir,
438
- activeIndex
439
+ orientation,
440
+ variant
439
441
  }), [
440
442
  orientation,
441
443
  variant,
@@ -1 +1 @@
1
- {"version":3,"file":"timeline.js","names":[],"sources":["../../src/ui/timeline/use-timeline.ts","../../src/ui/timeline/timeline-connector.tsx","../../src/ui/timeline/timeline-content.tsx","../../src/ui/timeline/timeline-description.tsx","../../src/ui/timeline/timeline-dot.tsx","../../src/ui/timeline/timeline-header.tsx","../../src/ui/timeline/timeline-item.tsx","../../src/ui/timeline/timeline-time.tsx","../../src/ui/timeline/timeline-title.tsx","../../src/ui/timeline/timeline.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\ntype Direction = \"ltr\" | \"rtl\";\ntype Orientation = \"vertical\" | \"horizontal\";\ntype Variant = \"default\" | \"alternate\";\ntype Status = \"completed\" | \"active\" | \"pending\";\n\ninterface TimelineContextValue {\n orientation: Orientation;\n variant: Variant;\n dir: Direction;\n activeIndex?: number;\n}\n\ninterface TimelineItemContextValue {\n index: number;\n status: Status;\n isAlternateRight: boolean;\n}\n\nconst TimelineContext = createContext<TimelineContextValue | null>(null);\n\nconst useTimeline = () => {\n const context = useContext(TimelineContext);\n\n if (!context) {\n throw new Error(\"useTimeline must be used within a <Timeline />\");\n }\n\n return context;\n};\n\nconst TimelineItemContext = createContext<TimelineItemContextValue | null>(\n null\n);\n\nconst useTimelineItem = () => {\n const context = useContext(TimelineItemContext);\n\n if (!context) {\n throw new Error(\"useTimelineItem must be used within a <TimelineItem />\");\n }\n\n return context;\n};\n\nconst getItemStatus = (itemIndex: number, activeIndex?: number): Status => {\n if (activeIndex === undefined) {\n return \"pending\";\n }\n if (itemIndex < activeIndex) {\n return \"completed\";\n }\n if (itemIndex === activeIndex) {\n return \"active\";\n }\n return \"pending\";\n};\n\nexport {\n type Direction,\n type Orientation,\n type Status,\n type TimelineContextValue,\n type TimelineItemContextValue,\n type Variant,\n getItemStatus,\n TimelineContext,\n TimelineItemContext,\n useTimeline,\n useTimelineItem,\n};\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn, tv } from \"tailwind-variants\";\n\nimport { useTimeline, useTimelineItem } from \"./use-timeline\";\n\nconst timelineConnectorVariants = tv({\n base: [\"absolute z-0\", \"group-last/timeline-item:hidden\"],\n variants: {\n status: {\n completed: \"bg-primary\",\n active: \"bg-border\",\n pending: \"bg-border\",\n },\n orientation: {\n vertical: \"\",\n horizontal: \"\",\n },\n variant: {\n default: \"\",\n alternate: \"\",\n },\n isAlternateRight: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n orientation: \"vertical\",\n variant: \"default\",\n className: [\n \"start-[calc(var(--timeline-dot-size)/2-var(--timeline-connector-thickness)/2)]\",\n \"top-[var(--timeline-dot-size)]\",\n \"h-[calc(100%-var(--timeline-dot-size))]\",\n \"w-[var(--timeline-connector-thickness)]\",\n ],\n },\n {\n orientation: \"horizontal\",\n variant: \"default\",\n className: [\n \"start-[var(--timeline-dot-size)]\",\n \"top-[calc(var(--timeline-dot-size)/2-var(--timeline-connector-thickness)/2)]\",\n \"h-[var(--timeline-connector-thickness)]\",\n \"w-[calc(100%-var(--timeline-dot-size))]\",\n ],\n },\n {\n orientation: \"vertical\",\n variant: \"alternate\",\n isAlternateRight: false,\n className: [\n \"top-0\",\n \"-right-[var(--timeline-connector-thickness)/2]\",\n \"h-full\",\n \"w-[var(--timeline-connector-thickness)]\",\n ],\n },\n {\n orientation: \"vertical\",\n variant: \"alternate\",\n isAlternateRight: true,\n className: [\n \"top-0\",\n \"-left-[var(--timeline-connector-thickness)/2]\",\n \"h-full\",\n \"w-[var(--timeline-connector-thickness)]\",\n ],\n },\n {\n orientation: \"horizontal\",\n variant: \"alternate\",\n className: [\n \"top-[calc(var(--timeline-dot-size)/2-var(--timeline-connector-thickness)/2)]\",\n \"left-[var(--timeline-dot-size)]\",\n \"row-start-2\",\n \"h-[var(--timeline-connector-thickness)]\",\n \"w-[calc(100%-var(--timeline-dot-size))]\",\n ],\n },\n ],\n defaultVariants: {\n status: \"pending\",\n orientation: \"vertical\",\n variant: \"default\",\n isAlternateRight: false,\n },\n});\n\ninterface TimelineConnectorProps extends useRender.ComponentProps<\"div\"> {\n forceMount?: boolean;\n}\n\nconst TimelineConnector = ({\n className,\n render,\n forceMount,\n ...props\n}: TimelineConnectorProps) => {\n const { orientation, variant } = useTimeline();\n const { status, isAlternateRight } = useTimelineItem();\n\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n \"aria-hidden\": true,\n className: cn(\n timelineConnectorVariants({\n status,\n orientation,\n variant,\n isAlternateRight,\n }),\n forceMount && \"group-last/timeline-item:block\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"timeline-connector\",\n status,\n orientation,\n },\n });\n};\n\nexport { TimelineConnector, timelineConnectorVariants };\nexport type { TimelineConnectorProps };\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn, tv } from \"tailwind-variants\";\n\nimport { useTimeline, useTimelineItem } from \"./use-timeline\";\n\nconst timelineContentVariants = tv({\n base: \"flex-1\",\n variants: {\n orientation: {\n vertical: \"\",\n horizontal: \"\",\n },\n variant: {\n default: \"\",\n alternate: \"\",\n },\n isAlternateRight: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n variant: \"alternate\",\n orientation: \"vertical\",\n isAlternateRight: false,\n className: \"text-right\",\n },\n {\n variant: \"alternate\",\n orientation: \"horizontal\",\n isAlternateRight: false,\n className: \"row-start-3 pt-2\",\n },\n {\n variant: \"alternate\",\n orientation: \"horizontal\",\n isAlternateRight: true,\n className: \"row-start-1 pb-2\",\n },\n ],\n defaultVariants: {\n orientation: \"vertical\",\n variant: \"default\",\n isAlternateRight: false,\n },\n});\n\ntype TimelineContentProps = useRender.ComponentProps<\"div\">;\n\nconst TimelineContent = ({\n className,\n render,\n ...props\n}: TimelineContentProps) => {\n const { orientation, variant } = useTimeline();\n const { status, isAlternateRight } = useTimelineItem();\n\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n timelineContentVariants({\n orientation,\n variant,\n isAlternateRight,\n }),\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"timeline-content\",\n status,\n },\n });\n};\n\nexport { TimelineContent, timelineContentVariants };\nexport type { TimelineContentProps };\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn } from \"tailwind-variants\";\n\ntype TimelineDescriptionProps = useRender.ComponentProps<\"div\">;\n\nconst TimelineDescription = ({\n className,\n render,\n ...props\n}: TimelineDescriptionProps) =>\n useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\"text-sm text-muted-foreground\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"timeline-description\",\n },\n });\n\nexport { TimelineDescription };\nexport type { TimelineDescriptionProps };\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn, tv } from \"tailwind-variants\";\n\nimport { useTimeline, useTimelineItem } from \"./use-timeline\";\n\nconst timelineDotVariants = tv({\n base: [\n \"relative z-10 flex shrink-0 items-center justify-center rounded-full border-2 bg-background\",\n \"size-[var(--timeline-dot-size)]\",\n ],\n variants: {\n status: {\n completed: \"border-primary bg-primary\",\n active: \"border-primary bg-background\",\n pending: \"border-border bg-background\",\n },\n orientation: {\n vertical: \"\",\n horizontal: \"\",\n },\n variant: {\n default: \"\",\n alternate: \"\",\n },\n isAlternateRight: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n variant: \"alternate\",\n orientation: \"vertical\",\n isAlternateRight: false,\n className:\n \"absolute -right-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]\",\n },\n {\n variant: \"alternate\",\n orientation: \"vertical\",\n isAlternateRight: true,\n className:\n \"absolute -left-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]\",\n },\n {\n variant: \"alternate\",\n orientation: \"horizontal\",\n className: \"row-start-2\",\n },\n ],\n defaultVariants: {\n status: \"pending\",\n orientation: \"vertical\",\n variant: \"default\",\n isAlternateRight: false,\n },\n});\n\ntype TimelineDotProps = useRender.ComponentProps<\"div\">;\n\nconst TimelineDot = ({ className, render, ...props }: TimelineDotProps) => {\n const { orientation, variant } = useTimeline();\n const { status, isAlternateRight } = useTimelineItem();\n\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n timelineDotVariants({\n status,\n orientation,\n variant,\n isAlternateRight,\n }),\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"timeline-dot\",\n status,\n orientation,\n },\n });\n};\n\nexport { TimelineDot, timelineDotVariants };\nexport type { TimelineDotProps };\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn } from \"tailwind-variants\";\n\ntype TimelineHeaderProps = useRender.ComponentProps<\"div\">;\n\nconst TimelineHeader = ({ className, render, ...props }: TimelineHeaderProps) =>\n useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\"flex flex-col gap-1\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"timeline-header\",\n },\n });\n\nexport { TimelineHeader };\nexport type { TimelineHeaderProps };\n","import { type ComponentProps, type ReactNode, useMemo } from \"react\";\nimport { cn, tv } from \"tailwind-variants\";\n\nimport {\n getItemStatus,\n TimelineItemContext,\n useTimeline,\n} from \"./use-timeline\";\n\nconst timelineItemVariants = tv({\n base: \"group/timeline-item relative flex\",\n variants: {\n orientation: {\n vertical: \"\",\n horizontal: \"\",\n },\n variant: {\n default: \"\",\n alternate: \"\",\n },\n isAlternateRight: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n orientation: \"vertical\",\n variant: \"default\",\n className: \"gap-3 pb-8 last:pb-0\",\n },\n {\n orientation: \"horizontal\",\n variant: \"default\",\n className: \"flex-col gap-3\",\n },\n {\n orientation: \"vertical\",\n variant: \"alternate\",\n isAlternateRight: false,\n className: \"w-1/2 gap-3 pr-6 pb-8 last:pb-0\",\n },\n {\n orientation: \"vertical\",\n variant: \"alternate\",\n isAlternateRight: true,\n className: \"ml-auto w-1/2 flex-row-reverse gap-3 pb-8 pl-6 last:pb-0\",\n },\n {\n orientation: \"horizontal\",\n variant: \"alternate\",\n className: \"grid min-w-0 grid-rows-[1fr_auto_1fr] gap-3\",\n },\n ],\n defaultVariants: {\n orientation: \"vertical\",\n variant: \"default\",\n isAlternateRight: false,\n },\n});\n\ninterface TimelineItemProps extends ComponentProps<\"li\"> {\n index: number;\n children?: ReactNode;\n}\n\nconst TimelineItem = ({\n index,\n className,\n children,\n ...props\n}: TimelineItemProps) => {\n const { orientation, variant, dir, activeIndex } = useTimeline();\n\n const status = getItemStatus(index, activeIndex);\n const isAlternateRight = variant === \"alternate\" && index % 2 === 1;\n\n const itemContextValue = useMemo(\n () => ({\n index,\n status,\n isAlternateRight,\n }),\n [index, status, isAlternateRight]\n );\n\n return (\n <TimelineItemContext.Provider value={itemContextValue}>\n <li\n aria-current={status === \"active\" ? \"step\" : undefined}\n className={cn(\n timelineItemVariants({\n orientation,\n variant,\n isAlternateRight,\n }),\n className\n )}\n data-alternate-right={isAlternateRight ? \"\" : undefined}\n data-orientation={orientation}\n data-slot=\"timeline-item\"\n data-status={status}\n dir={dir}\n {...props}\n >\n {children}\n </li>\n </TimelineItemContext.Provider>\n );\n};\n\nexport { TimelineItem, timelineItemVariants };\nexport type { TimelineItemProps };\n","import type { ComponentProps } from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn } from \"tailwind-variants\";\n\ntype TimelineTimeProps = useRender.ComponentProps<\"time\"> &\n Pick<ComponentProps<\"time\">, \"dateTime\">;\n\nconst TimelineTime = ({ className, render, ...props }: TimelineTimeProps) =>\n useRender({\n defaultTagName: \"time\",\n props: mergeProps<\"time\">(\n {\n className: cn(\"text-xs text-muted-foreground\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"timeline-time\",\n },\n });\n\nexport { TimelineTime };\nexport type { TimelineTimeProps };\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn } from \"tailwind-variants\";\n\ntype TimelineTitleProps = useRender.ComponentProps<\"div\">;\n\nconst TimelineTitle = ({ className, render, ...props }: TimelineTitleProps) =>\n useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\"leading-none font-semibold\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"timeline-title\",\n },\n });\n\nexport { TimelineTitle };\nexport type { TimelineTitleProps };\n","import { type ComponentProps, type ReactNode, useMemo } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport { TimelineConnector } from \"./timeline-connector\";\nimport { TimelineContent } from \"./timeline-content\";\nimport { TimelineDescription } from \"./timeline-description\";\nimport { TimelineDot } from \"./timeline-dot\";\nimport { TimelineHeader } from \"./timeline-header\";\nimport { TimelineItem } from \"./timeline-item\";\nimport { TimelineTime } from \"./timeline-time\";\nimport { TimelineTitle } from \"./timeline-title\";\nimport { type Direction, TimelineContext } from \"./use-timeline\";\n\nconst timelineVariants = tv({\n base: [\n \"group/timeline relative flex\",\n \"[--timeline-connector-thickness:0.125rem]\",\n \"[--timeline-dot-size:0.875rem]\",\n ],\n variants: {\n orientation: {\n vertical: \"flex-col\",\n horizontal: \"flex-row items-start\",\n },\n variant: {\n default: \"\",\n alternate: \"\",\n },\n },\n compoundVariants: [\n {\n orientation: \"vertical\",\n variant: \"default\",\n className: \"gap-0\",\n },\n {\n orientation: \"horizontal\",\n variant: \"default\",\n className: \"gap-0\",\n },\n {\n orientation: \"vertical\",\n variant: \"alternate\",\n className: \"relative w-full gap-0\",\n },\n {\n orientation: \"horizontal\",\n variant: \"alternate\",\n className: \"items-center gap-0\",\n },\n ],\n defaultVariants: {\n orientation: \"vertical\",\n variant: \"default\",\n },\n});\n\ninterface TimelineProps\n extends ComponentProps<\"ol\">, VariantProps<typeof timelineVariants> {\n dir?: Direction;\n activeIndex?: number;\n children?: ReactNode;\n}\n\nconst Timeline = ({\n orientation = \"vertical\",\n variant = \"default\",\n dir = \"ltr\",\n activeIndex,\n className,\n children,\n ...props\n}: TimelineProps) => {\n const contextValue = useMemo(\n () => ({\n orientation,\n variant,\n dir,\n activeIndex,\n }),\n [orientation, variant, dir, activeIndex]\n );\n\n return (\n <TimelineContext.Provider value={contextValue}>\n <ol\n className={cn(timelineVariants({ orientation, variant }), className)}\n data-orientation={orientation}\n data-slot=\"timeline\"\n data-variant={variant}\n dir={dir}\n {...props}\n >\n {children}\n </ol>\n </TimelineContext.Provider>\n );\n};\n\nTimeline.Connector = TimelineConnector;\nTimeline.Content = TimelineContent;\nTimeline.Description = TimelineDescription;\nTimeline.Dot = TimelineDot;\nTimeline.Header = TimelineHeader;\nTimeline.Item = TimelineItem;\nTimeline.Time = TimelineTime;\nTimeline.Title = TimelineTitle;\n\nexport {\n Timeline,\n TimelineConnector,\n TimelineContent,\n TimelineDescription,\n TimelineDot,\n TimelineHeader,\n TimelineItem,\n TimelineTime,\n TimelineTitle,\n timelineVariants,\n};\nexport type { TimelineProps };\n\nexport type { TimelineConnectorProps } from \"./timeline-connector\";\nexport type { TimelineContentProps } from \"./timeline-content\";\nexport type { TimelineDescriptionProps } from \"./timeline-description\";\nexport type { TimelineDotProps } from \"./timeline-dot\";\nexport type { TimelineHeaderProps } from \"./timeline-header\";\nexport type { TimelineItemProps } from \"./timeline-item\";\nexport type { TimelineTimeProps } from \"./timeline-time\";\nexport type { TimelineTitleProps } from \"./timeline-title\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"timeline.js","names":[],"sources":["../../src/ui/timeline/use-timeline.ts","../../src/ui/timeline/timeline-connector.tsx","../../src/ui/timeline/timeline-content.tsx","../../src/ui/timeline/timeline-description.tsx","../../src/ui/timeline/timeline-dot.tsx","../../src/ui/timeline/timeline-header.tsx","../../src/ui/timeline/timeline-item.tsx","../../src/ui/timeline/timeline-time.tsx","../../src/ui/timeline/timeline-title.tsx","../../src/ui/timeline/timeline.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\ntype Direction = \"ltr\" | \"rtl\";\ntype Orientation = \"vertical\" | \"horizontal\";\ntype Variant = \"default\" | \"alternate\";\ntype Status = \"completed\" | \"active\" | \"pending\";\n\ninterface TimelineContextValue {\n orientation: Orientation;\n variant: Variant;\n dir: Direction;\n activeIndex?: number;\n}\n\ninterface TimelineItemContextValue {\n index: number;\n status: Status;\n isAlternateRight: boolean;\n}\n\nconst TimelineContext = createContext<TimelineContextValue | null>(null);\n\nconst useTimeline = () => {\n const context = useContext(TimelineContext);\n\n if (!context) {\n throw new Error(\"useTimeline must be used within a <Timeline />\");\n }\n\n return context;\n};\n\nconst TimelineItemContext = createContext<TimelineItemContextValue | null>(\n null\n);\n\nconst useTimelineItem = () => {\n const context = useContext(TimelineItemContext);\n\n if (!context) {\n throw new Error(\"useTimelineItem must be used within a <TimelineItem />\");\n }\n\n return context;\n};\n\nconst getItemStatus = (itemIndex: number, activeIndex?: number): Status => {\n if (activeIndex === undefined) {\n return \"pending\";\n }\n if (itemIndex < activeIndex) {\n return \"completed\";\n }\n if (itemIndex === activeIndex) {\n return \"active\";\n }\n return \"pending\";\n};\n\nexport {\n type Direction,\n type Orientation,\n type Status,\n type TimelineContextValue,\n type TimelineItemContextValue,\n type Variant,\n getItemStatus,\n TimelineContext,\n TimelineItemContext,\n useTimeline,\n useTimelineItem,\n};\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn, tv } from \"tailwind-variants\";\n\nimport { useTimeline, useTimelineItem } from \"./use-timeline\";\n\nconst timelineConnectorVariants = tv({\n base: [\"z-base absolute\", \"group-last/timeline-item:hidden\"],\n compoundVariants: [\n {\n className: [\n \"start-[calc(var(--timeline-dot-size)/2-var(--timeline-connector-thickness)/2)]\",\n \"top-[var(--timeline-dot-size)]\",\n \"h-[calc(100%-var(--timeline-dot-size))]\",\n \"w-[var(--timeline-connector-thickness)]\",\n ],\n orientation: \"vertical\",\n variant: \"default\",\n },\n {\n className: [\n \"start-[var(--timeline-dot-size)]\",\n \"top-[calc(var(--timeline-dot-size)/2-var(--timeline-connector-thickness)/2)]\",\n \"h-[var(--timeline-connector-thickness)]\",\n \"w-[calc(100%-var(--timeline-dot-size))]\",\n ],\n orientation: \"horizontal\",\n variant: \"default\",\n },\n {\n className: [\n \"top-0\",\n \"-right-[var(--timeline-connector-thickness)/2]\",\n \"h-full\",\n \"w-[var(--timeline-connector-thickness)]\",\n ],\n isAlternateRight: false,\n orientation: \"vertical\",\n variant: \"alternate\",\n },\n {\n className: [\n \"top-0\",\n \"-left-[var(--timeline-connector-thickness)/2]\",\n \"h-full\",\n \"w-[var(--timeline-connector-thickness)]\",\n ],\n isAlternateRight: true,\n orientation: \"vertical\",\n variant: \"alternate\",\n },\n {\n className: [\n \"top-[calc(var(--timeline-dot-size)/2-var(--timeline-connector-thickness)/2)]\",\n \"left-[var(--timeline-dot-size)]\",\n \"row-start-2\",\n \"h-[var(--timeline-connector-thickness)]\",\n \"w-[calc(100%-var(--timeline-dot-size))]\",\n ],\n orientation: \"horizontal\",\n variant: \"alternate\",\n },\n ],\n defaultVariants: {\n isAlternateRight: false,\n orientation: \"vertical\",\n status: \"pending\",\n variant: \"default\",\n },\n variants: {\n isAlternateRight: {\n false: \"\",\n true: \"\",\n },\n orientation: {\n horizontal: \"\",\n vertical: \"\",\n },\n status: {\n active: \"bg-border\",\n completed: \"bg-primary\",\n pending: \"bg-border\",\n },\n variant: {\n alternate: \"\",\n default: \"\",\n },\n },\n});\n\ninterface TimelineConnectorProps extends useRender.ComponentProps<\"div\"> {\n forceMount?: boolean;\n}\n\nconst TimelineConnector = ({\n className,\n render,\n forceMount,\n ...props\n}: TimelineConnectorProps) => {\n const { orientation, variant } = useTimeline();\n const { status, isAlternateRight } = useTimelineItem();\n\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n \"aria-hidden\": true,\n className: cn(\n timelineConnectorVariants({\n isAlternateRight,\n orientation,\n status,\n variant,\n }),\n forceMount && \"group-last/timeline-item:block\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n orientation,\n slot: \"timeline-connector\",\n status,\n },\n });\n};\n\nexport { TimelineConnector, timelineConnectorVariants };\nexport type { TimelineConnectorProps };\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn, tv } from \"tailwind-variants\";\n\nimport { useTimeline, useTimelineItem } from \"./use-timeline\";\n\nconst timelineContentVariants = tv({\n base: \"flex-1\",\n compoundVariants: [\n {\n className: \"text-right\",\n isAlternateRight: false,\n orientation: \"vertical\",\n variant: \"alternate\",\n },\n {\n className: \"row-start-3 pt-2\",\n isAlternateRight: false,\n orientation: \"horizontal\",\n variant: \"alternate\",\n },\n {\n className: \"row-start-1 pb-2\",\n isAlternateRight: true,\n orientation: \"horizontal\",\n variant: \"alternate\",\n },\n ],\n defaultVariants: {\n isAlternateRight: false,\n orientation: \"vertical\",\n variant: \"default\",\n },\n variants: {\n isAlternateRight: {\n false: \"\",\n true: \"\",\n },\n orientation: {\n horizontal: \"\",\n vertical: \"\",\n },\n variant: {\n alternate: \"\",\n default: \"\",\n },\n },\n});\n\ntype TimelineContentProps = useRender.ComponentProps<\"div\">;\n\nconst TimelineContent = ({\n className,\n render,\n ...props\n}: TimelineContentProps) => {\n const { orientation, variant } = useTimeline();\n const { status, isAlternateRight } = useTimelineItem();\n\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n timelineContentVariants({\n isAlternateRight,\n orientation,\n variant,\n }),\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"timeline-content\",\n status,\n },\n });\n};\n\nexport { TimelineContent, timelineContentVariants };\nexport type { TimelineContentProps };\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn } from \"tailwind-variants\";\n\ntype TimelineDescriptionProps = useRender.ComponentProps<\"div\">;\n\nconst TimelineDescription = ({\n className,\n render,\n ...props\n}: TimelineDescriptionProps) =>\n useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\"text-muted-foreground text-sm\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"timeline-description\",\n },\n });\n\nexport { TimelineDescription };\nexport type { TimelineDescriptionProps };\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn, tv } from \"tailwind-variants\";\n\nimport { useTimeline, useTimelineItem } from \"./use-timeline\";\n\nconst timelineDotVariants = tv({\n base: [\n \"z-raised bg-background relative flex shrink-0 items-center justify-center rounded-full border-2\",\n \"size-[var(--timeline-dot-size)]\",\n ],\n compoundVariants: [\n {\n className:\n \"absolute -right-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]\",\n isAlternateRight: false,\n orientation: \"vertical\",\n variant: \"alternate\",\n },\n {\n className:\n \"absolute -left-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]\",\n isAlternateRight: true,\n orientation: \"vertical\",\n variant: \"alternate\",\n },\n {\n className: \"row-start-2\",\n orientation: \"horizontal\",\n variant: \"alternate\",\n },\n ],\n defaultVariants: {\n isAlternateRight: false,\n orientation: \"vertical\",\n status: \"pending\",\n variant: \"default\",\n },\n variants: {\n isAlternateRight: {\n false: \"\",\n true: \"\",\n },\n orientation: {\n horizontal: \"\",\n vertical: \"\",\n },\n status: {\n active: \"border-primary bg-background\",\n completed: \"border-primary bg-primary\",\n pending: \"border-border bg-background\",\n },\n variant: {\n alternate: \"\",\n default: \"\",\n },\n },\n});\n\ntype TimelineDotProps = useRender.ComponentProps<\"div\">;\n\nconst TimelineDot = ({ className, render, ...props }: TimelineDotProps) => {\n const { orientation, variant } = useTimeline();\n const { status, isAlternateRight } = useTimelineItem();\n\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n timelineDotVariants({\n isAlternateRight,\n orientation,\n status,\n variant,\n }),\n className\n ),\n },\n props\n ),\n render,\n state: {\n orientation,\n slot: \"timeline-dot\",\n status,\n },\n });\n};\n\nexport { TimelineDot, timelineDotVariants };\nexport type { TimelineDotProps };\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn } from \"tailwind-variants\";\n\ntype TimelineHeaderProps = useRender.ComponentProps<\"div\">;\n\nconst TimelineHeader = ({ className, render, ...props }: TimelineHeaderProps) =>\n useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\"flex flex-col gap-1\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"timeline-header\",\n },\n });\n\nexport { TimelineHeader };\nexport type { TimelineHeaderProps };\n","import { useMemo } from \"react\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { cn, tv } from \"tailwind-variants\";\n\nimport {\n getItemStatus,\n TimelineItemContext,\n useTimeline,\n} from \"./use-timeline\";\n\nconst timelineItemVariants = tv({\n base: \"group/timeline-item relative flex\",\n compoundVariants: [\n {\n className: \"gap-3 pb-8 last:pb-0\",\n orientation: \"vertical\",\n variant: \"default\",\n },\n {\n className: \"flex-col gap-3\",\n orientation: \"horizontal\",\n variant: \"default\",\n },\n {\n className: \"w-1/2 gap-3 pr-6 pb-8 last:pb-0\",\n isAlternateRight: false,\n orientation: \"vertical\",\n variant: \"alternate\",\n },\n {\n className: \"ml-auto w-1/2 flex-row-reverse gap-3 pb-8 pl-6 last:pb-0\",\n isAlternateRight: true,\n orientation: \"vertical\",\n variant: \"alternate\",\n },\n {\n className: \"grid min-w-0 grid-rows-[1fr_auto_1fr] gap-3\",\n orientation: \"horizontal\",\n variant: \"alternate\",\n },\n ],\n defaultVariants: {\n isAlternateRight: false,\n orientation: \"vertical\",\n variant: \"default\",\n },\n variants: {\n isAlternateRight: {\n false: \"\",\n true: \"\",\n },\n orientation: {\n horizontal: \"\",\n vertical: \"\",\n },\n variant: {\n alternate: \"\",\n default: \"\",\n },\n },\n});\n\ninterface TimelineItemProps extends ComponentProps<\"li\"> {\n index: number;\n children?: ReactNode;\n}\n\nconst TimelineItem = ({\n index,\n className,\n children,\n ...props\n}: TimelineItemProps) => {\n const { orientation, variant, dir, activeIndex } = useTimeline();\n\n const status = getItemStatus(index, activeIndex);\n const isAlternateRight = variant === \"alternate\" && index % 2 === 1;\n\n const itemContextValue = useMemo(\n () => ({\n index,\n isAlternateRight,\n status,\n }),\n [index, status, isAlternateRight]\n );\n\n return (\n <TimelineItemContext.Provider value={itemContextValue}>\n <li\n aria-current={status === \"active\" ? \"step\" : undefined}\n className={cn(\n timelineItemVariants({\n isAlternateRight,\n orientation,\n variant,\n }),\n className\n )}\n data-alternate-right={isAlternateRight ? \"\" : undefined}\n data-orientation={orientation}\n data-slot=\"timeline-item\"\n data-status={status}\n dir={dir}\n {...props}\n >\n {children}\n </li>\n </TimelineItemContext.Provider>\n );\n};\n\nexport { TimelineItem, timelineItemVariants };\nexport type { TimelineItemProps };\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\ntype TimelineTimeProps = useRender.ComponentProps<\"time\"> &\n Pick<ComponentProps<\"time\">, \"dateTime\">;\n\nconst TimelineTime = ({ className, render, ...props }: TimelineTimeProps) =>\n useRender({\n defaultTagName: \"time\",\n props: mergeProps<\"time\">(\n {\n className: cn(\"text-muted-foreground text-xs\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"timeline-time\",\n },\n });\n\nexport { TimelineTime };\nexport type { TimelineTimeProps };\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn } from \"tailwind-variants\";\n\ntype TimelineTitleProps = useRender.ComponentProps<\"div\">;\n\nconst TimelineTitle = ({ className, render, ...props }: TimelineTitleProps) =>\n useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\"leading-none font-semibold\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"timeline-title\",\n },\n });\n\nexport { TimelineTitle };\nexport type { TimelineTitleProps };\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { cn, tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { TimelineConnector } from \"./timeline-connector\";\nimport { TimelineContent } from \"./timeline-content\";\nimport { TimelineDescription } from \"./timeline-description\";\nimport { TimelineDot } from \"./timeline-dot\";\nimport { TimelineHeader } from \"./timeline-header\";\nimport { TimelineItem } from \"./timeline-item\";\nimport { TimelineTime } from \"./timeline-time\";\nimport { TimelineTitle } from \"./timeline-title\";\nimport { TimelineContext } from \"./use-timeline\";\nimport type { Direction } from \"./use-timeline\";\n\nconst timelineVariants = tv({\n base: [\n \"group/timeline relative flex\",\n \"[--timeline-connector-thickness:0.125rem]\",\n \"[--timeline-dot-size:0.875rem]\",\n ],\n compoundVariants: [\n {\n className: \"gap-0\",\n orientation: \"vertical\",\n variant: \"default\",\n },\n {\n className: \"gap-0\",\n orientation: \"horizontal\",\n variant: \"default\",\n },\n {\n className: \"relative w-full gap-0\",\n orientation: \"vertical\",\n variant: \"alternate\",\n },\n {\n className: \"items-center gap-0\",\n orientation: \"horizontal\",\n variant: \"alternate\",\n },\n ],\n defaultVariants: {\n orientation: \"vertical\",\n variant: \"default\",\n },\n variants: {\n orientation: {\n horizontal: \"flex-row items-start\",\n vertical: \"flex-col\",\n },\n variant: {\n alternate: \"\",\n default: \"\",\n },\n },\n});\n\ninterface TimelineProps\n extends ComponentProps<\"ol\">, VariantProps<typeof timelineVariants> {\n dir?: Direction;\n activeIndex?: number;\n children?: ReactNode;\n}\n\nconst Timeline = ({\n orientation = \"vertical\",\n variant = \"default\",\n dir = \"ltr\",\n activeIndex,\n className,\n children,\n ...props\n}: TimelineProps) => {\n const contextValue = useMemo(\n () => ({\n activeIndex,\n dir,\n orientation,\n variant,\n }),\n [orientation, variant, dir, activeIndex]\n );\n\n return (\n <TimelineContext.Provider value={contextValue}>\n <ol\n className={cn(timelineVariants({ orientation, variant }), className)}\n data-orientation={orientation}\n data-slot=\"timeline\"\n data-variant={variant}\n dir={dir}\n {...props}\n >\n {children}\n </ol>\n </TimelineContext.Provider>\n );\n};\n\nTimeline.Connector = TimelineConnector;\nTimeline.Content = TimelineContent;\nTimeline.Description = TimelineDescription;\nTimeline.Dot = TimelineDot;\nTimeline.Header = TimelineHeader;\nTimeline.Item = TimelineItem;\nTimeline.Time = TimelineTime;\nTimeline.Title = TimelineTitle;\n\nexport {\n Timeline,\n TimelineConnector,\n TimelineContent,\n TimelineDescription,\n TimelineDot,\n TimelineHeader,\n TimelineItem,\n TimelineTime,\n TimelineTitle,\n timelineVariants,\n};\nexport type { TimelineProps };\n\nexport type { TimelineConnectorProps } from \"./timeline-connector\";\nexport type { TimelineContentProps } from \"./timeline-content\";\nexport type { TimelineDescriptionProps } from \"./timeline-description\";\nexport type { TimelineDotProps } from \"./timeline-dot\";\nexport type { TimelineHeaderProps } from \"./timeline-header\";\nexport type { TimelineItemProps } from \"./timeline-item\";\nexport type { TimelineTimeProps } from \"./timeline-time\";\nexport type { TimelineTitleProps } from \"./timeline-title\";\n"],"mappings":";;;;;;;;;AAsBA,MAAM,kBAAkB,cAA2C,KAAK;AAExE,MAAM,oBAAoB;CACxB,MAAM,UAAU,WAAW,gBAAgB;AAE3C,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,iDAAiD;AAGnE,QAAO;;AAGT,MAAM,sBAAsB,cAC1B,KACD;AAED,MAAM,wBAAwB;CAC5B,MAAM,UAAU,WAAW,oBAAoB;AAE/C,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,yDAAyD;AAG3E,QAAO;;AAGT,MAAM,iBAAiB,WAAmB,gBAAiC;AACzE,KAAI,gBAAgB,OAClB,QAAO;AAET,KAAI,YAAY,YACd,QAAO;AAET,KAAI,cAAc,YAChB,QAAO;AAET,QAAO;;;;;ACpDT,MAAM,4BAA4B,GAAG;CACnC,MAAM,CAAC,mBAAmB,kCAAkC;CAC5D,kBAAkB;EAChB;GACE,WAAW;IACT;IACA;IACA;IACA;IACD;GACD,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;IACT;IACA;IACA;IACA;IACD;GACD,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;IACT;IACA;IACA;IACA;IACD;GACD,kBAAkB;GAClB,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;IACT;IACA;IACA;IACA;IACD;GACD,kBAAkB;GAClB,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;IACT;IACA;IACA;IACA;IACA;IACD;GACD,aAAa;GACb,SAAS;GACV;EACF;CACD,iBAAiB;EACf,kBAAkB;EAClB,aAAa;EACb,QAAQ;EACR,SAAS;EACV;CACD,UAAU;EACR,kBAAkB;GAChB,OAAO;GACP,MAAM;GACP;EACD,aAAa;GACX,YAAY;GACZ,UAAU;GACX;EACD,QAAQ;GACN,QAAQ;GACR,WAAW;GACX,SAAS;GACV;EACD,SAAS;GACP,WAAW;GACX,SAAS;GACV;EACF;CACF,CAAC;AAMF,MAAM,qBAAqB,EACzB,WACA,QACA,YACA,GAAG,YACyB;CAC5B,MAAM,EAAE,aAAa,YAAY,aAAa;CAC9C,MAAM,EAAE,QAAQ,qBAAqB,iBAAiB;AAEtD,QAAO,UAAU;EACf,gBAAgB;EAChB,OAAO,WACL;GACE,eAAe;GACf,WAAW,GACT,0BAA0B;IACxB;IACA;IACA;IACA;IACD,CAAC,EACF,cAAc,kCACd,UACD;GACF,EACD,MACD;EACD;EACA,OAAO;GACL;GACA,MAAM;GACN;GACD;EACF,CAAC;;;;;ACzHJ,MAAM,0BAA0B,GAAG;CACjC,MAAM;CACN,kBAAkB;EAChB;GACE,WAAW;GACX,kBAAkB;GAClB,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;GACX,kBAAkB;GAClB,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;GACX,kBAAkB;GAClB,aAAa;GACb,SAAS;GACV;EACF;CACD,iBAAiB;EACf,kBAAkB;EAClB,aAAa;EACb,SAAS;EACV;CACD,UAAU;EACR,kBAAkB;GAChB,OAAO;GACP,MAAM;GACP;EACD,aAAa;GACX,YAAY;GACZ,UAAU;GACX;EACD,SAAS;GACP,WAAW;GACX,SAAS;GACV;EACF;CACF,CAAC;AAIF,MAAM,mBAAmB,EACvB,WACA,QACA,GAAG,YACuB;CAC1B,MAAM,EAAE,aAAa,YAAY,aAAa;CAC9C,MAAM,EAAE,QAAQ,qBAAqB,iBAAiB;AAEtD,QAAO,UAAU;EACf,gBAAgB;EAChB,OAAO,WACL,EACE,WAAW,GACT,wBAAwB;GACtB;GACA;GACA;GACD,CAAC,EACF,UACD,EACF,EACD,MACD;EACD;EACA,OAAO;GACL,MAAM;GACN;GACD;EACF,CAAC;;;;;ACzEJ,MAAM,uBAAuB,EAC3B,WACA,QACA,GAAG,YAEH,UAAU;CACR,gBAAgB;CAChB,OAAO,WACL,EACE,WAAW,GAAG,iCAAiC,UAAU,EAC1D,EACD,MACD;CACD;CACA,OAAO,EACL,MAAM,wBACP;CACF,CAAC;;;;ACjBJ,MAAM,sBAAsB,GAAG;CAC7B,MAAM,CACJ,mGACA,kCACD;CACD,kBAAkB;EAChB;GACE,WACE;GACF,kBAAkB;GAClB,aAAa;GACb,SAAS;GACV;EACD;GACE,WACE;GACF,kBAAkB;GAClB,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;GACX,aAAa;GA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"}