@kuzenbo/core 0.0.4 → 0.0.6

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 (355) hide show
  1. package/README.md +2 -0
  2. package/dist/action-icon-UjYZjXrB.d.ts +59 -0
  3. package/dist/action-icon-UjYZjXrB.d.ts.map +1 -0
  4. package/dist/{avatar-image-Ce26D2fb.d.ts → avatar-4S7I72CH.d.ts} +35 -2
  5. package/dist/avatar-4S7I72CH.d.ts.map +1 -0
  6. package/dist/avatar-C3vF6E7s.js +65 -0
  7. package/dist/avatar-C3vF6E7s.js.map +1 -0
  8. package/dist/badge-DB40swlt.js +58 -0
  9. package/dist/badge-DB40swlt.js.map +1 -0
  10. package/dist/button-CPPkhcmB.d.ts +59 -0
  11. package/dist/button-CPPkhcmB.d.ts.map +1 -0
  12. package/dist/button-shared-variants-J4RVI3K7.js +19 -0
  13. package/dist/button-shared-variants-J4RVI3K7.js.map +1 -0
  14. package/dist/{dialog-viewport-Ce1huyAI.d.ts → dialog-D3dAMsO_.d.ts} +64 -2
  15. package/dist/dialog-D3dAMsO_.d.ts.map +1 -0
  16. package/dist/{dialog-trigger-BUF3elAP.js → dialog-Dzvma_bu.js} +36 -12
  17. package/dist/dialog-Dzvma_bu.js.map +1 -0
  18. package/dist/{dropdown-menu-trigger-BpgtLUvf.d.ts → dropdown-menu-BG03sLbC.d.ts} +259 -123
  19. package/dist/dropdown-menu-BG03sLbC.d.ts.map +1 -0
  20. package/dist/{dropdown-menu-trigger-COnFGfDa.js → dropdown-menu-DOVY76ue.js} +137 -101
  21. package/dist/dropdown-menu-DOVY76ue.js.map +1 -0
  22. package/dist/input-BeE717GK.d.ts +46 -0
  23. package/dist/input-BeE717GK.d.ts.map +1 -0
  24. package/dist/input-cICL6sH_.js +38 -0
  25. package/dist/input-cICL6sH_.js.map +1 -0
  26. package/dist/{input-group-textarea-B-rP98r5.js → input-group-7kPror1q.js} +62 -33
  27. package/dist/input-group-7kPror1q.js.map +1 -0
  28. package/dist/provider.d.ts +3 -3
  29. package/dist/provider.js +2 -2
  30. package/dist/{scroll-bar-C4qEUKlT.js → scroll-bar-BKRy5Me9.js} +1 -1
  31. package/dist/{scroll-bar-C4qEUKlT.js.map → scroll-bar-BKRy5Me9.js.map} +1 -1
  32. package/dist/separator-CgOz2m5i.d.ts +13 -0
  33. package/dist/separator-CgOz2m5i.d.ts.map +1 -0
  34. package/dist/{sheet-trigger-D7neoTF5.js → sheet-FVsgl5Wk.js} +32 -13
  35. package/dist/sheet-FVsgl5Wk.js.map +1 -0
  36. package/dist/{size-context-BjRwqlSg.js → size-context-CvLl3pMC.js} +3 -3
  37. package/dist/size-context-CvLl3pMC.js.map +1 -0
  38. package/dist/{size-context-DXfCAlWF.d.ts → size-context-DWvVJytl.d.ts} +2 -2
  39. package/dist/size-context-DWvVJytl.d.ts.map +1 -0
  40. package/dist/size-provider-18EvJgDT.js.map +1 -1
  41. package/dist/{size-provider-Bd2C6gKd.d.ts → size-provider-PHAZhU6k.d.ts} +2 -2
  42. package/dist/{size-provider-Bd2C6gKd.d.ts.map → size-provider-PHAZhU6k.d.ts.map} +1 -1
  43. package/dist/{size-system-wzOLSuax.d.ts → size-system-BAI1CnwU.d.ts} +1 -1
  44. package/dist/size-system-BAI1CnwU.d.ts.map +1 -0
  45. package/dist/size-system-BTsMqZRQ.js +99 -0
  46. package/dist/size-system-BTsMqZRQ.js.map +1 -0
  47. package/dist/size.d.ts +3 -3
  48. package/dist/size.js +2 -2
  49. package/dist/{slider-root-presentation-ChJHPMIV.js → slider-root-presentation-G0ByTcvd.js} +19 -19
  50. package/dist/slider-root-presentation-G0ByTcvd.js.map +1 -0
  51. package/dist/{slider-value-Db8SCu0c.d.ts → slider-style-tokens-DNzHvGii.d.ts} +55 -55
  52. package/dist/slider-style-tokens-DNzHvGii.d.ts.map +1 -0
  53. package/dist/textarea-rmoEkvdu.d.ts +37 -0
  54. package/dist/textarea-rmoEkvdu.d.ts.map +1 -0
  55. package/dist/textarea-vNt8edEA.js +39 -0
  56. package/dist/textarea-vNt8edEA.js.map +1 -0
  57. package/dist/toggle-D8kPPZH9.d.ts +53 -0
  58. package/dist/toggle-D8kPPZH9.d.ts.map +1 -0
  59. package/dist/{tooltip-trigger-qXw-_nbh.js → tooltip-BUo_HPnp.js} +38 -13
  60. package/dist/tooltip-BUo_HPnp.js.map +1 -0
  61. package/dist/{tooltip-viewport-csA6luqI.d.ts → tooltip-DatN3AoZ.d.ts} +62 -14
  62. package/dist/tooltip-DatN3AoZ.d.ts.map +1 -0
  63. package/dist/ui/accordion.d.ts +5 -5
  64. package/dist/ui/accordion.d.ts.map +1 -1
  65. package/dist/ui/accordion.js +53 -52
  66. package/dist/ui/accordion.js.map +1 -1
  67. package/dist/ui/action-icon.d.ts +2 -0
  68. package/dist/ui/action-icon.js +74 -0
  69. package/dist/ui/action-icon.js.map +1 -0
  70. package/dist/ui/affix.d.ts +3 -2
  71. package/dist/ui/affix.d.ts.map +1 -1
  72. package/dist/ui/affix.js +8 -7
  73. package/dist/ui/affix.js.map +1 -1
  74. package/dist/ui/alert-dialog.d.ts +4 -2
  75. package/dist/ui/alert-dialog.d.ts.map +1 -1
  76. package/dist/ui/alert-dialog.js +10 -9
  77. package/dist/ui/alert-dialog.js.map +1 -1
  78. package/dist/ui/alert.d.ts +33 -33
  79. package/dist/ui/alert.d.ts.map +1 -1
  80. package/dist/ui/alert.js +86 -86
  81. package/dist/ui/alert.js.map +1 -1
  82. package/dist/ui/announcement.d.ts.map +1 -1
  83. package/dist/ui/announcement.js +5 -3
  84. package/dist/ui/announcement.js.map +1 -1
  85. package/dist/ui/aspect-ratio.d.ts.map +1 -1
  86. package/dist/ui/aspect-ratio.js.map +1 -1
  87. package/dist/ui/autocomplete.d.ts +74 -74
  88. package/dist/ui/autocomplete.d.ts.map +1 -1
  89. package/dist/ui/autocomplete.js +55 -53
  90. package/dist/ui/autocomplete.js.map +1 -1
  91. package/dist/ui/avatar.d.ts +2 -39
  92. package/dist/ui/avatar.js +2 -24
  93. package/dist/ui/badge.d.ts +28 -28
  94. package/dist/ui/badge.d.ts.map +1 -1
  95. package/dist/ui/badge.js +2 -54
  96. package/dist/ui/breadcrumb.d.ts +65 -65
  97. package/dist/ui/breadcrumb.d.ts.map +1 -1
  98. package/dist/ui/breadcrumb.js +47 -45
  99. package/dist/ui/breadcrumb.js.map +1 -1
  100. package/dist/ui/button-group.d.ts +35 -35
  101. package/dist/ui/button-group.d.ts.map +1 -1
  102. package/dist/ui/button-group.js +29 -28
  103. package/dist/ui/button-group.js.map +1 -1
  104. package/dist/ui/button.d.ts +2 -78
  105. package/dist/ui/button.js +33 -55
  106. package/dist/ui/button.js.map +1 -1
  107. package/dist/ui/card.d.ts +1 -1
  108. package/dist/ui/card.d.ts.map +1 -1
  109. package/dist/ui/card.js +6 -6
  110. package/dist/ui/card.js.map +1 -1
  111. package/dist/ui/carousel.d.ts +3 -3
  112. package/dist/ui/carousel.d.ts.map +1 -1
  113. package/dist/ui/carousel.js +41 -22
  114. package/dist/ui/carousel.js.map +1 -1
  115. package/dist/ui/checkbox-group.d.ts.map +1 -1
  116. package/dist/ui/checkbox-group.js.map +1 -1
  117. package/dist/ui/checkbox.d.ts +21 -21
  118. package/dist/ui/checkbox.js +13 -13
  119. package/dist/ui/checkbox.js.map +1 -1
  120. package/dist/ui/code.d.ts.map +1 -1
  121. package/dist/ui/code.js +5 -5
  122. package/dist/ui/code.js.map +1 -1
  123. package/dist/ui/collapsible.js +1 -1
  124. package/dist/ui/collapsible.js.map +1 -1
  125. package/dist/ui/combobox.d.ts +107 -107
  126. package/dist/ui/combobox.d.ts.map +1 -1
  127. package/dist/ui/combobox.js +94 -93
  128. package/dist/ui/combobox.js.map +1 -1
  129. package/dist/ui/command.d.ts +57 -58
  130. package/dist/ui/command.d.ts.map +1 -1
  131. package/dist/ui/command.js +54 -64
  132. package/dist/ui/command.js.map +1 -1
  133. package/dist/ui/container.d.ts.map +1 -1
  134. package/dist/ui/container.js.map +1 -1
  135. package/dist/ui/context-menu.d.ts +132 -132
  136. package/dist/ui/context-menu.d.ts.map +1 -1
  137. package/dist/ui/context-menu.js +100 -98
  138. package/dist/ui/context-menu.js.map +1 -1
  139. package/dist/ui/copy-button.d.ts +1 -3
  140. package/dist/ui/copy-button.d.ts.map +1 -1
  141. package/dist/ui/copy-button.js +40 -20
  142. package/dist/ui/copy-button.js.map +1 -1
  143. package/dist/ui/dialog.d.ts +2 -66
  144. package/dist/ui/dialog.js +2 -24
  145. package/dist/ui/drawer.d.ts +93 -93
  146. package/dist/ui/drawer.d.ts.map +1 -1
  147. package/dist/ui/drawer.js +68 -66
  148. package/dist/ui/drawer.js.map +1 -1
  149. package/dist/ui/dropdown-menu.d.ts +3 -144
  150. package/dist/ui/dropdown-menu.js +2 -39
  151. package/dist/ui/dropzone.d.ts +55 -55
  152. package/dist/ui/dropzone.d.ts.map +1 -1
  153. package/dist/ui/dropzone.js +77 -72
  154. package/dist/ui/dropzone.js.map +1 -1
  155. package/dist/ui/emoji-picker.d.ts +81 -81
  156. package/dist/ui/emoji-picker.d.ts.map +1 -1
  157. package/dist/ui/emoji-picker.js +92 -87
  158. package/dist/ui/emoji-picker.js.map +1 -1
  159. package/dist/ui/empty.d.ts +62 -60
  160. package/dist/ui/empty.d.ts.map +1 -1
  161. package/dist/ui/empty.js +47 -44
  162. package/dist/ui/empty.js.map +1 -1
  163. package/dist/ui/field.d.ts +12 -12
  164. package/dist/ui/field.d.ts.map +1 -1
  165. package/dist/ui/field.js +9 -7
  166. package/dist/ui/field.js.map +1 -1
  167. package/dist/ui/fieldset.d.ts.map +1 -1
  168. package/dist/ui/fieldset.js.map +1 -1
  169. package/dist/ui/form.d.ts +8 -8
  170. package/dist/ui/form.d.ts.map +1 -1
  171. package/dist/ui/form.js.map +1 -1
  172. package/dist/ui/input-group.d.ts +35 -35
  173. package/dist/ui/input-group.d.ts.map +1 -1
  174. package/dist/ui/input-group.js +2 -28
  175. package/dist/ui/input-otp.d.ts +36 -36
  176. package/dist/ui/input-otp.d.ts.map +1 -1
  177. package/dist/ui/input-otp.js +29 -28
  178. package/dist/ui/input-otp.js.map +1 -1
  179. package/dist/ui/input.d.ts +2 -46
  180. package/dist/ui/input.js +2 -34
  181. package/dist/ui/item.d.ts +20 -20
  182. package/dist/ui/item.d.ts.map +1 -1
  183. package/dist/ui/item.js +22 -22
  184. package/dist/ui/item.js.map +1 -1
  185. package/dist/ui/kbd.d.ts +1 -1
  186. package/dist/ui/kbd.d.ts.map +1 -1
  187. package/dist/ui/kbd.js +8 -8
  188. package/dist/ui/kbd.js.map +1 -1
  189. package/dist/ui/label.d.ts.map +1 -1
  190. package/dist/ui/label.js.map +1 -1
  191. package/dist/ui/marquee.d.ts.map +1 -1
  192. package/dist/ui/marquee.js +1 -1
  193. package/dist/ui/marquee.js.map +1 -1
  194. package/dist/ui/menubar.d.ts +133 -134
  195. package/dist/ui/menubar.d.ts.map +1 -1
  196. package/dist/ui/menubar.js +82 -81
  197. package/dist/ui/menubar.js.map +1 -1
  198. package/dist/ui/meter.d.ts.map +1 -1
  199. package/dist/ui/meter.js.map +1 -1
  200. package/dist/ui/navigation-list.d.ts +227 -227
  201. package/dist/ui/navigation-list.d.ts.map +1 -1
  202. package/dist/ui/navigation-list.js +240 -235
  203. package/dist/ui/navigation-list.js.map +1 -1
  204. package/dist/ui/navigation-menu.d.ts +82 -82
  205. package/dist/ui/navigation-menu.d.ts.map +1 -1
  206. package/dist/ui/navigation-menu.js +70 -67
  207. package/dist/ui/navigation-menu.js.map +1 -1
  208. package/dist/ui/number-field.d.ts +34 -34
  209. package/dist/ui/number-field.d.ts.map +1 -1
  210. package/dist/ui/number-field.js +24 -23
  211. package/dist/ui/number-field.js.map +1 -1
  212. package/dist/ui/pagination.d.ts +43 -43
  213. package/dist/ui/pagination.d.ts.map +1 -1
  214. package/dist/ui/pagination.js +57 -47
  215. package/dist/ui/pagination.js.map +1 -1
  216. package/dist/ui/pill.d.ts +3 -4
  217. package/dist/ui/pill.d.ts.map +1 -1
  218. package/dist/ui/pill.js +37 -26
  219. package/dist/ui/pill.js.map +1 -1
  220. package/dist/ui/popover.d.ts +15 -13
  221. package/dist/ui/popover.d.ts.map +1 -1
  222. package/dist/ui/popover.js +17 -14
  223. package/dist/ui/popover.js.map +1 -1
  224. package/dist/ui/portal.d.ts.map +1 -1
  225. package/dist/ui/portal.js +52 -11
  226. package/dist/ui/portal.js.map +1 -1
  227. package/dist/ui/preview-card.js +5 -5
  228. package/dist/ui/preview-card.js.map +1 -1
  229. package/dist/ui/progress.js.map +1 -1
  230. package/dist/ui/qr-code.d.ts.map +1 -1
  231. package/dist/ui/qr-code.js +7 -7
  232. package/dist/ui/qr-code.js.map +1 -1
  233. package/dist/ui/radio-group.d.ts +23 -23
  234. package/dist/ui/radio-group.js +15 -15
  235. package/dist/ui/radio-group.js.map +1 -1
  236. package/dist/ui/range-slider.d.ts +1 -1
  237. package/dist/ui/range-slider.d.ts.map +1 -1
  238. package/dist/ui/range-slider.js +4 -7
  239. package/dist/ui/range-slider.js.map +1 -1
  240. package/dist/ui/rating.d.ts +35 -35
  241. package/dist/ui/rating.d.ts.map +1 -1
  242. package/dist/ui/rating.js +55 -46
  243. package/dist/ui/rating.js.map +1 -1
  244. package/dist/ui/resizable.d.ts.map +1 -1
  245. package/dist/ui/resizable.js +2 -2
  246. package/dist/ui/resizable.js.map +1 -1
  247. package/dist/ui/scroll-area.js +1 -1
  248. package/dist/ui/scroll-area.js.map +1 -1
  249. package/dist/ui/select.d.ts +87 -87
  250. package/dist/ui/select.d.ts.map +1 -1
  251. package/dist/ui/select.js +85 -84
  252. package/dist/ui/select.js.map +1 -1
  253. package/dist/ui/separator.d.ts +2 -13
  254. package/dist/ui/separator.js.map +1 -1
  255. package/dist/ui/sheet.d.ts.map +1 -1
  256. package/dist/ui/sheet.js +2 -24
  257. package/dist/ui/sidebar.d.ts +75 -76
  258. package/dist/ui/sidebar.d.ts.map +1 -1
  259. package/dist/ui/sidebar.js +88 -87
  260. package/dist/ui/sidebar.js.map +1 -1
  261. package/dist/ui/skeleton.d.ts.map +1 -1
  262. package/dist/ui/skeleton.js +1 -1
  263. package/dist/ui/skeleton.js.map +1 -1
  264. package/dist/ui/slider.d.ts +1 -1
  265. package/dist/ui/slider.d.ts.map +1 -1
  266. package/dist/ui/slider.js +3 -1
  267. package/dist/ui/slider.js.map +1 -1
  268. package/dist/ui/spacer.d.ts.map +1 -1
  269. package/dist/ui/spacer.js +2 -2
  270. package/dist/ui/spacer.js.map +1 -1
  271. package/dist/ui/spinner.d.ts +1 -1
  272. package/dist/ui/spinner.d.ts.map +1 -1
  273. package/dist/ui/spinner.js +2 -2
  274. package/dist/ui/spinner.js.map +1 -1
  275. package/dist/ui/switch.d.ts +12 -12
  276. package/dist/ui/switch.js +7 -7
  277. package/dist/ui/switch.js.map +1 -1
  278. package/dist/ui/table.d.ts +62 -62
  279. package/dist/ui/table.d.ts.map +1 -1
  280. package/dist/ui/table.js +53 -47
  281. package/dist/ui/table.js.map +1 -1
  282. package/dist/ui/tabs.d.ts +25 -25
  283. package/dist/ui/tabs.d.ts.map +1 -1
  284. package/dist/ui/tabs.js +75 -68
  285. package/dist/ui/tabs.js.map +1 -1
  286. package/dist/ui/textarea.d.ts +2 -37
  287. package/dist/ui/textarea.js +2 -35
  288. package/dist/ui/theme-icon.d.ts +30 -30
  289. package/dist/ui/theme-icon.d.ts.map +1 -1
  290. package/dist/ui/theme-icon.js +22 -22
  291. package/dist/ui/theme-icon.js.map +1 -1
  292. package/dist/ui/timeline.d.ts +6 -6
  293. package/dist/ui/timeline.d.ts.map +1 -1
  294. package/dist/ui/timeline.js +163 -163
  295. package/dist/ui/timeline.js.map +1 -1
  296. package/dist/ui/toggle-group.d.ts +33 -33
  297. package/dist/ui/toggle-group.d.ts.map +1 -1
  298. package/dist/ui/toggle-group.js +22 -16
  299. package/dist/ui/toggle-group.js.map +1 -1
  300. package/dist/ui/toggle.d.ts +2 -53
  301. package/dist/ui/toggle.js +15 -15
  302. package/dist/ui/toggle.js.map +1 -1
  303. package/dist/ui/toolbar.d.ts +56 -56
  304. package/dist/ui/toolbar.d.ts.map +1 -1
  305. package/dist/ui/toolbar.js +43 -40
  306. package/dist/ui/toolbar.js.map +1 -1
  307. package/dist/ui/tooltip.d.ts +3 -55
  308. package/dist/ui/tooltip.js +2 -28
  309. package/dist/ui/typography.d.ts +50 -36
  310. package/dist/ui/typography.d.ts.map +1 -1
  311. package/dist/ui/typography.js +28 -17
  312. package/dist/ui/typography.js.map +1 -1
  313. package/package.json +17 -15
  314. package/dist/avatar-image-BQ_NEKH4.js +0 -47
  315. package/dist/avatar-image-BQ_NEKH4.js.map +0 -1
  316. package/dist/avatar-image-Ce26D2fb.d.ts.map +0 -1
  317. package/dist/dialog-trigger-BUF3elAP.js.map +0 -1
  318. package/dist/dialog-viewport-Ce1huyAI.d.ts.map +0 -1
  319. package/dist/dropdown-menu-trigger-BpgtLUvf.d.ts.map +0 -1
  320. package/dist/dropdown-menu-trigger-COnFGfDa.js.map +0 -1
  321. package/dist/input-group-textarea-B-rP98r5.js.map +0 -1
  322. package/dist/sheet-trigger-D7neoTF5.js.map +0 -1
  323. package/dist/size-context-BjRwqlSg.js.map +0 -1
  324. package/dist/size-context-DXfCAlWF.d.ts.map +0 -1
  325. package/dist/size-system-DTXmtQXw.js +0 -47
  326. package/dist/size-system-DTXmtQXw.js.map +0 -1
  327. package/dist/size-system-wzOLSuax.d.ts.map +0 -1
  328. package/dist/slider-root-presentation-ChJHPMIV.js.map +0 -1
  329. package/dist/slider-value-Db8SCu0c.d.ts.map +0 -1
  330. package/dist/tooltip-trigger-qXw-_nbh.js.map +0 -1
  331. package/dist/tooltip-viewport-csA6luqI.d.ts.map +0 -1
  332. package/dist/ui/avatar.d.ts.map +0 -1
  333. package/dist/ui/avatar.js.map +0 -1
  334. package/dist/ui/badge.js.map +0 -1
  335. package/dist/ui/button.d.ts.map +0 -1
  336. package/dist/ui/dialog.d.ts.map +0 -1
  337. package/dist/ui/dialog.js.map +0 -1
  338. package/dist/ui/dropdown-menu.d.ts.map +0 -1
  339. package/dist/ui/dropdown-menu.js.map +0 -1
  340. package/dist/ui/input-group.js.map +0 -1
  341. package/dist/ui/input.d.ts.map +0 -1
  342. package/dist/ui/input.js.map +0 -1
  343. package/dist/ui/separator.d.ts.map +0 -1
  344. package/dist/ui/sheet.js.map +0 -1
  345. package/dist/ui/textarea.d.ts.map +0 -1
  346. package/dist/ui/textarea.js.map +0 -1
  347. package/dist/ui/toggle.d.ts.map +0 -1
  348. package/dist/ui/tooltip.d.ts.map +0 -1
  349. package/dist/ui/tooltip.js.map +0 -1
  350. package/dist/use-badge-default-props-8d9wPL0k.js +0 -8
  351. package/dist/use-badge-default-props-8d9wPL0k.js.map +0 -1
  352. package/dist/use-input-default-props-B6VgKXGM.js +0 -8
  353. package/dist/use-input-default-props-B6VgKXGM.js.map +0 -1
  354. package/dist/use-textarea-default-props-7MlOxkDO.js +0 -8
  355. package/dist/use-textarea-default-props-7MlOxkDO.js.map +0 -1
@@ -29,86 +29,86 @@ const getItemStatus = (itemIndex, activeIndex) => {
29
29
  //#endregion
30
30
  //#region src/ui/timeline/timeline-connector.tsx
31
31
  const timelineConnectorVariants = tv({
32
- base: ["absolute z-0", "group-last/timeline-item:hidden"],
33
- variants: {
34
- status: {
35
- completed: "bg-primary",
36
- active: "bg-border",
37
- pending: "bg-border"
38
- },
39
- orientation: {
40
- vertical: "",
41
- horizontal: ""
42
- },
43
- variant: {
44
- default: "",
45
- alternate: ""
46
- },
47
- isAlternateRight: {
48
- true: "",
49
- false: ""
50
- }
51
- },
32
+ base: ["z-base absolute", "group-last/timeline-item:hidden"],
52
33
  compoundVariants: [
53
34
  {
54
- orientation: "vertical",
55
- variant: "default",
56
35
  className: [
57
36
  "start-[calc(var(--timeline-dot-size)/2-var(--timeline-connector-thickness)/2)]",
58
37
  "top-[var(--timeline-dot-size)]",
59
38
  "h-[calc(100%-var(--timeline-dot-size))]",
60
39
  "w-[var(--timeline-connector-thickness)]"
61
- ]
40
+ ],
41
+ orientation: "vertical",
42
+ variant: "default"
62
43
  },
63
44
  {
64
- orientation: "horizontal",
65
- variant: "default",
66
45
  className: [
67
46
  "start-[var(--timeline-dot-size)]",
68
47
  "top-[calc(var(--timeline-dot-size)/2-var(--timeline-connector-thickness)/2)]",
69
48
  "h-[var(--timeline-connector-thickness)]",
70
49
  "w-[calc(100%-var(--timeline-dot-size))]"
71
- ]
50
+ ],
51
+ orientation: "horizontal",
52
+ variant: "default"
72
53
  },
73
54
  {
74
- orientation: "vertical",
75
- variant: "alternate",
76
- isAlternateRight: false,
77
55
  className: [
78
56
  "top-0",
79
57
  "-right-[var(--timeline-connector-thickness)/2]",
80
58
  "h-full",
81
59
  "w-[var(--timeline-connector-thickness)]"
82
- ]
60
+ ],
61
+ isAlternateRight: false,
62
+ orientation: "vertical",
63
+ variant: "alternate"
83
64
  },
84
65
  {
85
- orientation: "vertical",
86
- variant: "alternate",
87
- isAlternateRight: true,
88
66
  className: [
89
67
  "top-0",
90
68
  "-left-[var(--timeline-connector-thickness)/2]",
91
69
  "h-full",
92
70
  "w-[var(--timeline-connector-thickness)]"
93
- ]
71
+ ],
72
+ isAlternateRight: true,
73
+ orientation: "vertical",
74
+ variant: "alternate"
94
75
  },
95
76
  {
96
- orientation: "horizontal",
97
- variant: "alternate",
98
77
  className: [
99
78
  "top-[calc(var(--timeline-dot-size)/2-var(--timeline-connector-thickness)/2)]",
100
79
  "left-[var(--timeline-dot-size)]",
101
80
  "row-start-2",
102
81
  "h-[var(--timeline-connector-thickness)]",
103
82
  "w-[calc(100%-var(--timeline-dot-size))]"
104
- ]
83
+ ],
84
+ orientation: "horizontal",
85
+ variant: "alternate"
105
86
  }
106
87
  ],
107
88
  defaultVariants: {
108
- status: "pending",
89
+ isAlternateRight: false,
109
90
  orientation: "vertical",
110
- variant: "default",
111
- 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
+ }
112
112
  }
113
113
  });
114
114
  const TimelineConnector = ({ className, render, forceMount, ...props }) => {
@@ -119,17 +119,17 @@ const TimelineConnector = ({ className, render, forceMount, ...props }) => {
119
119
  props: mergeProps({
120
120
  "aria-hidden": true,
121
121
  className: cn(timelineConnectorVariants({
122
- status,
122
+ isAlternateRight,
123
123
  orientation,
124
- variant,
125
- isAlternateRight
124
+ status,
125
+ variant
126
126
  }), forceMount && "group-last/timeline-item:block", className)
127
127
  }, props),
128
128
  render,
129
129
  state: {
130
+ orientation,
130
131
  slot: "timeline-connector",
131
- status,
132
- orientation
132
+ status
133
133
  }
134
134
  });
135
135
  };
@@ -138,44 +138,44 @@ const TimelineConnector = ({ className, render, forceMount, ...props }) => {
138
138
  //#region src/ui/timeline/timeline-content.tsx
139
139
  const timelineContentVariants = tv({
140
140
  base: "flex-1",
141
- variants: {
142
- orientation: {
143
- vertical: "",
144
- horizontal: ""
145
- },
146
- variant: {
147
- default: "",
148
- alternate: ""
149
- },
150
- isAlternateRight: {
151
- true: "",
152
- false: ""
153
- }
154
- },
155
141
  compoundVariants: [
156
142
  {
157
- variant: "alternate",
158
- orientation: "vertical",
143
+ className: "text-right",
159
144
  isAlternateRight: false,
160
- className: "text-right"
145
+ orientation: "vertical",
146
+ variant: "alternate"
161
147
  },
162
148
  {
163
- variant: "alternate",
164
- orientation: "horizontal",
149
+ className: "row-start-3 pt-2",
165
150
  isAlternateRight: false,
166
- className: "row-start-3 pt-2"
151
+ orientation: "horizontal",
152
+ variant: "alternate"
167
153
  },
168
154
  {
169
- variant: "alternate",
170
- orientation: "horizontal",
155
+ className: "row-start-1 pb-2",
171
156
  isAlternateRight: true,
172
- className: "row-start-1 pb-2"
157
+ orientation: "horizontal",
158
+ variant: "alternate"
173
159
  }
174
160
  ],
175
161
  defaultVariants: {
162
+ isAlternateRight: false,
176
163
  orientation: "vertical",
177
- variant: "default",
178
- 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
+ }
179
179
  }
180
180
  });
181
181
  const TimelineContent = ({ className, render, ...props }) => {
@@ -184,9 +184,9 @@ const TimelineContent = ({ className, render, ...props }) => {
184
184
  return useRender({
185
185
  defaultTagName: "div",
186
186
  props: mergeProps({ className: cn(timelineContentVariants({
187
+ isAlternateRight,
187
188
  orientation,
188
- variant,
189
- isAlternateRight
189
+ variant
190
190
  }), className) }, props),
191
191
  render,
192
192
  state: {
@@ -200,7 +200,7 @@ const TimelineContent = ({ className, render, ...props }) => {
200
200
  //#region src/ui/timeline/timeline-description.tsx
201
201
  const TimelineDescription = ({ className, render, ...props }) => useRender({
202
202
  defaultTagName: "div",
203
- props: mergeProps({ className: cn("text-sm text-muted-foreground", className) }, props),
203
+ props: mergeProps({ className: cn("text-muted-foreground text-sm", className) }, props),
204
204
  render,
205
205
  state: { slot: "timeline-description" }
206
206
  });
@@ -208,50 +208,50 @@ const TimelineDescription = ({ className, render, ...props }) => useRender({
208
208
  //#endregion
209
209
  //#region src/ui/timeline/timeline-dot.tsx
210
210
  const timelineDotVariants = tv({
211
- base: ["relative z-10 flex shrink-0 items-center justify-center rounded-full border-2 bg-background", "size-[var(--timeline-dot-size)]"],
212
- variants: {
213
- status: {
214
- completed: "border-primary bg-primary",
215
- active: "border-primary bg-background",
216
- pending: "border-border bg-background"
217
- },
218
- orientation: {
219
- vertical: "",
220
- horizontal: ""
221
- },
222
- variant: {
223
- default: "",
224
- alternate: ""
225
- },
226
- isAlternateRight: {
227
- true: "",
228
- false: ""
229
- }
230
- },
211
+ base: ["z-raised bg-background relative flex shrink-0 items-center justify-center rounded-full border-2", "size-[var(--timeline-dot-size)]"],
231
212
  compoundVariants: [
232
213
  {
233
- variant: "alternate",
234
- orientation: "vertical",
214
+ className: "absolute -right-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]",
235
215
  isAlternateRight: false,
236
- className: "absolute -right-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]"
216
+ orientation: "vertical",
217
+ variant: "alternate"
237
218
  },
238
219
  {
239
- variant: "alternate",
240
- orientation: "vertical",
220
+ className: "absolute -left-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]",
241
221
  isAlternateRight: true,
242
- className: "absolute -left-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]"
222
+ orientation: "vertical",
223
+ variant: "alternate"
243
224
  },
244
225
  {
245
- variant: "alternate",
226
+ className: "row-start-2",
246
227
  orientation: "horizontal",
247
- className: "row-start-2"
228
+ variant: "alternate"
248
229
  }
249
230
  ],
250
231
  defaultVariants: {
251
- status: "pending",
232
+ isAlternateRight: false,
252
233
  orientation: "vertical",
253
- variant: "default",
254
- 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
+ }
255
255
  }
256
256
  });
257
257
  const TimelineDot = ({ className, render, ...props }) => {
@@ -260,16 +260,16 @@ const TimelineDot = ({ className, render, ...props }) => {
260
260
  return useRender({
261
261
  defaultTagName: "div",
262
262
  props: mergeProps({ className: cn(timelineDotVariants({
263
- status,
263
+ isAlternateRight,
264
264
  orientation,
265
- variant,
266
- isAlternateRight
265
+ status,
266
+ variant
267
267
  }), className) }, props),
268
268
  render,
269
269
  state: {
270
+ orientation,
270
271
  slot: "timeline-dot",
271
- status,
272
- orientation
272
+ status
273
273
  }
274
274
  });
275
275
  };
@@ -287,53 +287,53 @@ const TimelineHeader = ({ className, render, ...props }) => useRender({
287
287
  //#region src/ui/timeline/timeline-item.tsx
288
288
  const timelineItemVariants = tv({
289
289
  base: "group/timeline-item relative flex",
290
- variants: {
291
- orientation: {
292
- vertical: "",
293
- horizontal: ""
294
- },
295
- variant: {
296
- default: "",
297
- alternate: ""
298
- },
299
- isAlternateRight: {
300
- true: "",
301
- false: ""
302
- }
303
- },
304
290
  compoundVariants: [
305
291
  {
292
+ className: "gap-3 pb-8 last:pb-0",
306
293
  orientation: "vertical",
307
- variant: "default",
308
- className: "gap-3 pb-8 last:pb-0"
294
+ variant: "default"
309
295
  },
310
296
  {
297
+ className: "flex-col gap-3",
311
298
  orientation: "horizontal",
312
- variant: "default",
313
- className: "flex-col gap-3"
299
+ variant: "default"
314
300
  },
315
301
  {
316
- orientation: "vertical",
317
- variant: "alternate",
302
+ className: "w-1/2 gap-3 pr-6 pb-8 last:pb-0",
318
303
  isAlternateRight: false,
319
- className: "w-1/2 gap-3 pr-6 pb-8 last:pb-0"
304
+ orientation: "vertical",
305
+ variant: "alternate"
320
306
  },
321
307
  {
322
- orientation: "vertical",
323
- variant: "alternate",
308
+ className: "ml-auto w-1/2 flex-row-reverse gap-3 pb-8 pl-6 last:pb-0",
324
309
  isAlternateRight: true,
325
- className: "ml-auto w-1/2 flex-row-reverse gap-3 pb-8 pl-6 last:pb-0"
310
+ orientation: "vertical",
311
+ variant: "alternate"
326
312
  },
327
313
  {
314
+ className: "grid min-w-0 grid-rows-[1fr_auto_1fr] gap-3",
328
315
  orientation: "horizontal",
329
- variant: "alternate",
330
- className: "grid min-w-0 grid-rows-[1fr_auto_1fr] gap-3"
316
+ variant: "alternate"
331
317
  }
332
318
  ],
333
319
  defaultVariants: {
320
+ isAlternateRight: false,
334
321
  orientation: "vertical",
335
- variant: "default",
336
- 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
+ }
337
337
  }
338
338
  });
339
339
  const TimelineItem = ({ index, className, children, ...props }) => {
@@ -342,8 +342,8 @@ const TimelineItem = ({ index, className, children, ...props }) => {
342
342
  const isAlternateRight = variant === "alternate" && index % 2 === 1;
343
343
  const itemContextValue = useMemo(() => ({
344
344
  index,
345
- status,
346
- isAlternateRight
345
+ isAlternateRight,
346
+ status
347
347
  }), [
348
348
  index,
349
349
  status,
@@ -354,9 +354,9 @@ const TimelineItem = ({ index, className, children, ...props }) => {
354
354
  children: /* @__PURE__ */ jsx("li", {
355
355
  "aria-current": status === "active" ? "step" : void 0,
356
356
  className: cn(timelineItemVariants({
357
+ isAlternateRight,
357
358
  orientation,
358
- variant,
359
- isAlternateRight
359
+ variant
360
360
  }), className),
361
361
  "data-alternate-right": isAlternateRight ? "" : void 0,
362
362
  "data-orientation": orientation,
@@ -373,7 +373,7 @@ const TimelineItem = ({ index, className, children, ...props }) => {
373
373
  //#region src/ui/timeline/timeline-time.tsx
374
374
  const TimelineTime = ({ className, render, ...props }) => useRender({
375
375
  defaultTagName: "time",
376
- props: mergeProps({ className: cn("text-xs text-muted-foreground", className) }, props),
376
+ props: mergeProps({ className: cn("text-muted-foreground text-xs", className) }, props),
377
377
  render,
378
378
  state: { slot: "timeline-time" }
379
379
  });
@@ -395,49 +395,49 @@ const timelineVariants = tv({
395
395
  "[--timeline-connector-thickness:0.125rem]",
396
396
  "[--timeline-dot-size:0.875rem]"
397
397
  ],
398
- variants: {
399
- orientation: {
400
- vertical: "flex-col",
401
- horizontal: "flex-row items-start"
402
- },
403
- variant: {
404
- default: "",
405
- alternate: ""
406
- }
407
- },
408
398
  compoundVariants: [
409
399
  {
400
+ className: "gap-0",
410
401
  orientation: "vertical",
411
- variant: "default",
412
- className: "gap-0"
402
+ variant: "default"
413
403
  },
414
404
  {
405
+ className: "gap-0",
415
406
  orientation: "horizontal",
416
- variant: "default",
417
- className: "gap-0"
407
+ variant: "default"
418
408
  },
419
409
  {
410
+ className: "relative w-full gap-0",
420
411
  orientation: "vertical",
421
- variant: "alternate",
422
- className: "relative w-full gap-0"
412
+ variant: "alternate"
423
413
  },
424
414
  {
415
+ className: "items-center gap-0",
425
416
  orientation: "horizontal",
426
- variant: "alternate",
427
- className: "items-center gap-0"
417
+ variant: "alternate"
428
418
  }
429
419
  ],
430
420
  defaultVariants: {
431
421
  orientation: "vertical",
432
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
+ }
433
433
  }
434
434
  });
435
435
  const Timeline = ({ orientation = "vertical", variant = "default", dir = "ltr", activeIndex, className, children, ...props }) => {
436
436
  const contextValue = useMemo(() => ({
437
- orientation,
438
- variant,
437
+ activeIndex,
439
438
  dir,
440
- activeIndex
439
+ orientation,
440
+ variant
441
441
  }), [
442
442
  orientation,
443
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","\"use client\";\n\nimport { 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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"}