@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.
- package/dist/avatar-CXhwmJgG.js +65 -0
- package/dist/avatar-CXhwmJgG.js.map +1 -0
- package/dist/{avatar-image-Ce26D2fb.d.ts → avatar-DpiupAAM.d.ts} +35 -2
- package/dist/avatar-DpiupAAM.d.ts.map +1 -0
- package/dist/badge-BKRm6jL7.js +58 -0
- package/dist/badge-BKRm6jL7.js.map +1 -0
- package/dist/button-nAbTNrxA.d.ts +78 -0
- package/dist/button-nAbTNrxA.d.ts.map +1 -0
- package/dist/{dialog-trigger-BUF3elAP.js → dialog-CD5lfQA9.js} +33 -10
- package/dist/dialog-CD5lfQA9.js.map +1 -0
- package/dist/{dialog-viewport-Ce1huyAI.d.ts → dialog-DEkdr-9K.d.ts} +64 -2
- package/dist/dialog-DEkdr-9K.d.ts.map +1 -0
- package/dist/{dropdown-menu-trigger-COnFGfDa.js → dropdown-menu-BJi-V71O.js} +137 -101
- package/dist/dropdown-menu-BJi-V71O.js.map +1 -0
- package/dist/{dropdown-menu-trigger-BpgtLUvf.d.ts → dropdown-menu-Bpj576m0.d.ts} +259 -123
- package/dist/dropdown-menu-Bpj576m0.d.ts.map +1 -0
- package/dist/input-Ex9ZRqbo.js +38 -0
- package/dist/input-Ex9ZRqbo.js.map +1 -0
- package/dist/input-WWoBCgxe.d.ts +46 -0
- package/dist/input-WWoBCgxe.d.ts.map +1 -0
- package/dist/{input-group-textarea-B-rP98r5.js → input-group-CjcHP0L4.js} +50 -31
- package/dist/input-group-CjcHP0L4.js.map +1 -0
- package/dist/provider.js +4 -2
- package/dist/scroll-bar-C4qEUKlT.js.map +1 -1
- package/dist/separator-C8Qw2ADs.d.ts +13 -0
- package/dist/separator-C8Qw2ADs.d.ts.map +1 -0
- package/dist/{sheet-trigger-D7neoTF5.js → sheet-imSHXfFH.js} +29 -10
- package/dist/sheet-imSHXfFH.js.map +1 -0
- package/dist/{size-context-BjRwqlSg.js → size-context-CvLl3pMC.js} +3 -3
- package/dist/size-context-CvLl3pMC.js.map +1 -0
- package/dist/size-context-DXfCAlWF.d.ts.map +1 -1
- package/dist/size-provider-18EvJgDT.js.map +1 -1
- package/dist/size-provider-Bd2C6gKd.d.ts.map +1 -1
- package/dist/size-system-BTsMqZRQ.js +99 -0
- package/dist/size-system-BTsMqZRQ.js.map +1 -0
- package/dist/size-system-wzOLSuax.d.ts.map +1 -1
- package/dist/size.js +4 -2
- package/dist/{slider-root-presentation-ChJHPMIV.js → slider-root-presentation-B6OO_iCT.js} +19 -19
- package/dist/slider-root-presentation-B6OO_iCT.js.map +1 -0
- package/dist/{slider-value-Db8SCu0c.d.ts → slider-style-tokens-CZezJilZ.d.ts} +55 -55
- package/dist/slider-style-tokens-CZezJilZ.d.ts.map +1 -0
- package/dist/textarea-C8dsnn8D.d.ts +37 -0
- package/dist/textarea-C8dsnn8D.d.ts.map +1 -0
- package/dist/textarea-CkiM1N_I.js +39 -0
- package/dist/textarea-CkiM1N_I.js.map +1 -0
- package/dist/toggle-CxkIncmZ.d.ts +53 -0
- package/dist/toggle-CxkIncmZ.d.ts.map +1 -0
- package/dist/{tooltip-trigger-qXw-_nbh.js → tooltip-D0BEpCQx.js} +38 -13
- package/dist/tooltip-D0BEpCQx.js.map +1 -0
- package/dist/{tooltip-viewport-csA6luqI.d.ts → tooltip-DbJxt69l.d.ts} +61 -13
- package/dist/tooltip-DbJxt69l.d.ts.map +1 -0
- package/dist/ui/accordion.d.ts +4 -4
- package/dist/ui/accordion.d.ts.map +1 -1
- package/dist/ui/accordion.js +53 -52
- package/dist/ui/accordion.js.map +1 -1
- package/dist/ui/affix.d.ts +3 -2
- package/dist/ui/affix.d.ts.map +1 -1
- package/dist/ui/affix.js +8 -7
- package/dist/ui/affix.js.map +1 -1
- package/dist/ui/alert-dialog.d.ts +3 -1
- package/dist/ui/alert-dialog.d.ts.map +1 -1
- package/dist/ui/alert-dialog.js +12 -9
- package/dist/ui/alert-dialog.js.map +1 -1
- package/dist/ui/alert.d.ts +32 -32
- package/dist/ui/alert.d.ts.map +1 -1
- package/dist/ui/alert.js +88 -86
- package/dist/ui/alert.js.map +1 -1
- package/dist/ui/announcement.d.ts.map +1 -1
- package/dist/ui/announcement.js +5 -3
- package/dist/ui/announcement.js.map +1 -1
- package/dist/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/ui/aspect-ratio.js.map +1 -1
- package/dist/ui/autocomplete.d.ts +74 -74
- package/dist/ui/autocomplete.d.ts.map +1 -1
- package/dist/ui/autocomplete.js +57 -53
- package/dist/ui/autocomplete.js.map +1 -1
- package/dist/ui/avatar.d.ts +2 -39
- package/dist/ui/avatar.js +2 -24
- package/dist/ui/badge.d.ts +28 -28
- package/dist/ui/badge.d.ts.map +1 -1
- package/dist/ui/badge.js +3 -53
- package/dist/ui/breadcrumb.d.ts +64 -64
- package/dist/ui/breadcrumb.d.ts.map +1 -1
- package/dist/ui/breadcrumb.js +49 -45
- package/dist/ui/breadcrumb.js.map +1 -1
- package/dist/ui/button-group.d.ts +34 -34
- package/dist/ui/button-group.d.ts.map +1 -1
- package/dist/ui/button-group.js +31 -28
- package/dist/ui/button-group.js.map +1 -1
- package/dist/ui/button.d.ts +2 -78
- package/dist/ui/button.js +42 -42
- package/dist/ui/button.js.map +1 -1
- package/dist/ui/card.d.ts.map +1 -1
- package/dist/ui/card.js +8 -6
- package/dist/ui/card.js.map +1 -1
- package/dist/ui/carousel.d.ts +1 -1
- package/dist/ui/carousel.d.ts.map +1 -1
- package/dist/ui/carousel.js +36 -17
- package/dist/ui/carousel.js.map +1 -1
- package/dist/ui/checkbox-group.d.ts.map +1 -1
- package/dist/ui/checkbox-group.js +2 -0
- package/dist/ui/checkbox-group.js.map +1 -1
- package/dist/ui/checkbox.d.ts +20 -20
- package/dist/ui/checkbox.d.ts.map +1 -1
- package/dist/ui/checkbox.js +15 -13
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/code.d.ts.map +1 -1
- package/dist/ui/code.js +5 -5
- package/dist/ui/code.js.map +1 -1
- package/dist/ui/collapsible.js +1 -1
- package/dist/ui/collapsible.js.map +1 -1
- package/dist/ui/combobox.d.ts +107 -107
- package/dist/ui/combobox.d.ts.map +1 -1
- package/dist/ui/combobox.js +88 -87
- package/dist/ui/combobox.js.map +1 -1
- package/dist/ui/command.d.ts +57 -58
- package/dist/ui/command.d.ts.map +1 -1
- package/dist/ui/command.js +54 -64
- package/dist/ui/command.js.map +1 -1
- package/dist/ui/container.d.ts.map +1 -1
- package/dist/ui/container.js.map +1 -1
- package/dist/ui/context-menu.d.ts +132 -132
- package/dist/ui/context-menu.d.ts.map +1 -1
- package/dist/ui/context-menu.js +102 -98
- package/dist/ui/context-menu.js.map +1 -1
- package/dist/ui/copy-button.d.ts +1 -3
- package/dist/ui/copy-button.d.ts.map +1 -1
- package/dist/ui/copy-button.js +12 -13
- package/dist/ui/copy-button.js.map +1 -1
- package/dist/ui/dialog.d.ts +2 -66
- package/dist/ui/dialog.js +2 -24
- package/dist/ui/drawer.d.ts +91 -91
- package/dist/ui/drawer.d.ts.map +1 -1
- package/dist/ui/drawer.js +68 -66
- package/dist/ui/drawer.js.map +1 -1
- package/dist/ui/dropdown-menu.d.ts +3 -144
- package/dist/ui/dropdown-menu.js +3 -38
- package/dist/ui/dropzone.d.ts +55 -55
- package/dist/ui/dropzone.d.ts.map +1 -1
- package/dist/ui/dropzone.js +77 -72
- package/dist/ui/dropzone.js.map +1 -1
- package/dist/ui/emoji-picker.d.ts +79 -79
- package/dist/ui/emoji-picker.d.ts.map +1 -1
- package/dist/ui/emoji-picker.js +92 -87
- package/dist/ui/emoji-picker.js.map +1 -1
- package/dist/ui/empty.d.ts +61 -59
- package/dist/ui/empty.d.ts.map +1 -1
- package/dist/ui/empty.js +49 -44
- package/dist/ui/empty.js.map +1 -1
- package/dist/ui/field.d.ts +11 -11
- package/dist/ui/field.d.ts.map +1 -1
- package/dist/ui/field.js +9 -7
- package/dist/ui/field.js.map +1 -1
- package/dist/ui/fieldset.d.ts.map +1 -1
- package/dist/ui/fieldset.js.map +1 -1
- package/dist/ui/form.d.ts +8 -8
- package/dist/ui/form.d.ts.map +1 -1
- package/dist/ui/form.js +2 -0
- package/dist/ui/form.js.map +1 -1
- package/dist/ui/input-group.d.ts +35 -35
- package/dist/ui/input-group.d.ts.map +1 -1
- package/dist/ui/input-group.js +2 -28
- package/dist/ui/input-otp.d.ts +36 -36
- package/dist/ui/input-otp.d.ts.map +1 -1
- package/dist/ui/input-otp.js +29 -28
- package/dist/ui/input-otp.js.map +1 -1
- package/dist/ui/input.d.ts +2 -46
- package/dist/ui/input.js +2 -34
- package/dist/ui/item.d.ts +20 -20
- package/dist/ui/item.d.ts.map +1 -1
- package/dist/ui/item.js +24 -22
- package/dist/ui/item.js.map +1 -1
- package/dist/ui/kbd.d.ts.map +1 -1
- package/dist/ui/kbd.js +10 -8
- package/dist/ui/kbd.js.map +1 -1
- package/dist/ui/label.d.ts.map +1 -1
- package/dist/ui/label.js.map +1 -1
- package/dist/ui/marquee.d.ts.map +1 -1
- package/dist/ui/marquee.js +1 -1
- package/dist/ui/marquee.js.map +1 -1
- package/dist/ui/menubar.d.ts +133 -134
- package/dist/ui/menubar.d.ts.map +1 -1
- package/dist/ui/menubar.js +84 -81
- package/dist/ui/menubar.js.map +1 -1
- package/dist/ui/meter.d.ts.map +1 -1
- package/dist/ui/meter.js +2 -0
- package/dist/ui/meter.js.map +1 -1
- package/dist/ui/navigation-list.d.ts +226 -226
- package/dist/ui/navigation-list.d.ts.map +1 -1
- package/dist/ui/navigation-list.js +242 -235
- package/dist/ui/navigation-list.js.map +1 -1
- package/dist/ui/navigation-menu.d.ts +82 -82
- package/dist/ui/navigation-menu.d.ts.map +1 -1
- package/dist/ui/navigation-menu.js +72 -67
- package/dist/ui/navigation-menu.js.map +1 -1
- package/dist/ui/number-field.d.ts +34 -34
- package/dist/ui/number-field.d.ts.map +1 -1
- package/dist/ui/number-field.js +26 -23
- package/dist/ui/number-field.js.map +1 -1
- package/dist/ui/pagination.d.ts +42 -42
- package/dist/ui/pagination.d.ts.map +1 -1
- package/dist/ui/pagination.js +45 -41
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/pill.d.ts +2 -3
- package/dist/ui/pill.d.ts.map +1 -1
- package/dist/ui/pill.js +34 -23
- package/dist/ui/pill.js.map +1 -1
- package/dist/ui/popover.d.ts +13 -11
- package/dist/ui/popover.d.ts.map +1 -1
- package/dist/ui/popover.js +17 -14
- package/dist/ui/popover.js.map +1 -1
- package/dist/ui/portal.d.ts.map +1 -1
- package/dist/ui/portal.js +52 -11
- package/dist/ui/portal.js.map +1 -1
- package/dist/ui/preview-card.js +5 -5
- package/dist/ui/preview-card.js.map +1 -1
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/qr-code.d.ts.map +1 -1
- package/dist/ui/qr-code.js +7 -7
- package/dist/ui/qr-code.js.map +1 -1
- package/dist/ui/radio-group.d.ts +22 -22
- package/dist/ui/radio-group.d.ts.map +1 -1
- package/dist/ui/radio-group.js +17 -15
- package/dist/ui/radio-group.js.map +1 -1
- package/dist/ui/range-slider.d.ts +1 -1
- package/dist/ui/range-slider.d.ts.map +1 -1
- package/dist/ui/range-slider.js +4 -7
- package/dist/ui/range-slider.js.map +1 -1
- package/dist/ui/rating.d.ts +35 -35
- package/dist/ui/rating.d.ts.map +1 -1
- package/dist/ui/rating.js +55 -46
- package/dist/ui/rating.js.map +1 -1
- package/dist/ui/resizable.d.ts.map +1 -1
- package/dist/ui/resizable.js +2 -2
- package/dist/ui/resizable.js.map +1 -1
- package/dist/ui/scroll-area.d.ts.map +1 -1
- package/dist/ui/scroll-area.js +2 -0
- package/dist/ui/scroll-area.js.map +1 -1
- package/dist/ui/select.d.ts +87 -87
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +85 -84
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/separator.d.ts +2 -13
- package/dist/ui/separator.js +2 -0
- package/dist/ui/separator.js.map +1 -1
- package/dist/ui/sheet.d.ts.map +1 -1
- package/dist/ui/sheet.js +2 -24
- package/dist/ui/sidebar.d.ts +73 -74
- package/dist/ui/sidebar.d.ts.map +1 -1
- package/dist/ui/sidebar.js +87 -84
- package/dist/ui/sidebar.js.map +1 -1
- package/dist/ui/skeleton.d.ts.map +1 -1
- package/dist/ui/skeleton.js +1 -1
- package/dist/ui/skeleton.js.map +1 -1
- package/dist/ui/slider.d.ts +1 -1
- package/dist/ui/slider.d.ts.map +1 -1
- package/dist/ui/slider.js +3 -1
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/spacer.d.ts.map +1 -1
- package/dist/ui/spacer.js +2 -2
- package/dist/ui/spacer.js.map +1 -1
- package/dist/ui/spinner.js +4 -2
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/switch.d.ts +11 -11
- package/dist/ui/switch.js +7 -7
- package/dist/ui/switch.js.map +1 -1
- package/dist/ui/table.d.ts +60 -60
- package/dist/ui/table.d.ts.map +1 -1
- package/dist/ui/table.js +54 -46
- package/dist/ui/table.js.map +1 -1
- package/dist/ui/tabs.d.ts +25 -25
- package/dist/ui/tabs.d.ts.map +1 -1
- package/dist/ui/tabs.js +75 -68
- package/dist/ui/tabs.js.map +1 -1
- package/dist/ui/textarea.d.ts +2 -37
- package/dist/ui/textarea.js +3 -34
- package/dist/ui/theme-icon.d.ts +30 -30
- package/dist/ui/theme-icon.d.ts.map +1 -1
- package/dist/ui/theme-icon.js +22 -22
- package/dist/ui/theme-icon.js.map +1 -1
- package/dist/ui/timeline.d.ts +6 -6
- package/dist/ui/timeline.d.ts.map +1 -1
- package/dist/ui/timeline.js +165 -163
- package/dist/ui/timeline.js.map +1 -1
- package/dist/ui/toggle-group.d.ts +32 -32
- package/dist/ui/toggle-group.d.ts.map +1 -1
- package/dist/ui/toggle-group.js +22 -16
- package/dist/ui/toggle-group.js.map +1 -1
- package/dist/ui/toggle.d.ts +2 -53
- package/dist/ui/toggle.js +17 -15
- package/dist/ui/toggle.js.map +1 -1
- package/dist/ui/toolbar.d.ts +54 -54
- package/dist/ui/toolbar.d.ts.map +1 -1
- package/dist/ui/toolbar.js +45 -40
- package/dist/ui/toolbar.js.map +1 -1
- package/dist/ui/tooltip.d.ts +2 -54
- package/dist/ui/tooltip.js +2 -28
- package/dist/ui/typography.d.ts +50 -36
- package/dist/ui/typography.d.ts.map +1 -1
- package/dist/ui/typography.js +28 -17
- package/dist/ui/typography.js.map +1 -1
- package/package.json +15 -15
- package/dist/avatar-image-BQ_NEKH4.js +0 -47
- package/dist/avatar-image-BQ_NEKH4.js.map +0 -1
- package/dist/avatar-image-Ce26D2fb.d.ts.map +0 -1
- package/dist/dialog-trigger-BUF3elAP.js.map +0 -1
- package/dist/dialog-viewport-Ce1huyAI.d.ts.map +0 -1
- package/dist/dropdown-menu-trigger-BpgtLUvf.d.ts.map +0 -1
- package/dist/dropdown-menu-trigger-COnFGfDa.js.map +0 -1
- package/dist/input-group-textarea-B-rP98r5.js.map +0 -1
- package/dist/sheet-trigger-D7neoTF5.js.map +0 -1
- package/dist/size-context-BjRwqlSg.js.map +0 -1
- package/dist/size-system-DTXmtQXw.js +0 -47
- package/dist/size-system-DTXmtQXw.js.map +0 -1
- package/dist/slider-root-presentation-ChJHPMIV.js.map +0 -1
- package/dist/slider-value-Db8SCu0c.d.ts.map +0 -1
- package/dist/tooltip-trigger-qXw-_nbh.js.map +0 -1
- package/dist/tooltip-viewport-csA6luqI.d.ts.map +0 -1
- package/dist/ui/avatar.d.ts.map +0 -1
- package/dist/ui/avatar.js.map +0 -1
- package/dist/ui/badge.js.map +0 -1
- package/dist/ui/button.d.ts.map +0 -1
- package/dist/ui/dialog.d.ts.map +0 -1
- package/dist/ui/dialog.js.map +0 -1
- package/dist/ui/dropdown-menu.d.ts.map +0 -1
- package/dist/ui/dropdown-menu.js.map +0 -1
- package/dist/ui/input-group.js.map +0 -1
- package/dist/ui/input.d.ts.map +0 -1
- package/dist/ui/input.js.map +0 -1
- package/dist/ui/separator.d.ts.map +0 -1
- package/dist/ui/sheet.js.map +0 -1
- package/dist/ui/textarea.d.ts.map +0 -1
- package/dist/ui/textarea.js.map +0 -1
- package/dist/ui/toggle.d.ts.map +0 -1
- package/dist/ui/tooltip.d.ts.map +0 -1
- package/dist/ui/tooltip.js.map +0 -1
- package/dist/use-badge-default-props-8d9wPL0k.js +0 -8
- package/dist/use-badge-default-props-8d9wPL0k.js.map +0 -1
- package/dist/use-input-default-props-B6VgKXGM.js +0 -8
- package/dist/use-input-default-props-B6VgKXGM.js.map +0 -1
- package/dist/use-textarea-default-props-7MlOxkDO.js +0 -8
- package/dist/use-textarea-default-props-7MlOxkDO.js.map +0 -1
package/dist/ui/timeline.js
CHANGED
|
@@ -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: ["
|
|
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
|
-
|
|
89
|
+
isAlternateRight: false,
|
|
107
90
|
orientation: "vertical",
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
122
|
+
isAlternateRight,
|
|
121
123
|
orientation,
|
|
122
|
-
|
|
123
|
-
|
|
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
|
-
|
|
156
|
-
orientation: "vertical",
|
|
143
|
+
className: "text-right",
|
|
157
144
|
isAlternateRight: false,
|
|
158
|
-
|
|
145
|
+
orientation: "vertical",
|
|
146
|
+
variant: "alternate"
|
|
159
147
|
},
|
|
160
148
|
{
|
|
161
|
-
|
|
162
|
-
orientation: "horizontal",
|
|
149
|
+
className: "row-start-3 pt-2",
|
|
163
150
|
isAlternateRight: false,
|
|
164
|
-
|
|
151
|
+
orientation: "horizontal",
|
|
152
|
+
variant: "alternate"
|
|
165
153
|
},
|
|
166
154
|
{
|
|
167
|
-
|
|
168
|
-
orientation: "horizontal",
|
|
155
|
+
className: "row-start-1 pb-2",
|
|
169
156
|
isAlternateRight: true,
|
|
170
|
-
|
|
157
|
+
orientation: "horizontal",
|
|
158
|
+
variant: "alternate"
|
|
171
159
|
}
|
|
172
160
|
],
|
|
173
161
|
defaultVariants: {
|
|
162
|
+
isAlternateRight: false,
|
|
174
163
|
orientation: "vertical",
|
|
175
|
-
variant: "default"
|
|
176
|
-
|
|
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-
|
|
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: ["
|
|
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
|
-
|
|
232
|
-
orientation: "vertical",
|
|
214
|
+
className: "absolute -right-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]",
|
|
233
215
|
isAlternateRight: false,
|
|
234
|
-
|
|
216
|
+
orientation: "vertical",
|
|
217
|
+
variant: "alternate"
|
|
235
218
|
},
|
|
236
219
|
{
|
|
237
|
-
|
|
238
|
-
orientation: "vertical",
|
|
220
|
+
className: "absolute -left-[calc(var(--timeline-dot-size)/2+var(--timeline-connector-thickness)/2)]",
|
|
239
221
|
isAlternateRight: true,
|
|
240
|
-
|
|
222
|
+
orientation: "vertical",
|
|
223
|
+
variant: "alternate"
|
|
241
224
|
},
|
|
242
225
|
{
|
|
243
|
-
|
|
226
|
+
className: "row-start-2",
|
|
244
227
|
orientation: "horizontal",
|
|
245
|
-
|
|
228
|
+
variant: "alternate"
|
|
246
229
|
}
|
|
247
230
|
],
|
|
248
231
|
defaultVariants: {
|
|
249
|
-
|
|
232
|
+
isAlternateRight: false,
|
|
250
233
|
orientation: "vertical",
|
|
251
|
-
|
|
252
|
-
|
|
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
|
-
|
|
263
|
+
isAlternateRight,
|
|
262
264
|
orientation,
|
|
263
|
-
|
|
264
|
-
|
|
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
|
-
|
|
315
|
-
variant: "alternate",
|
|
302
|
+
className: "w-1/2 gap-3 pr-6 pb-8 last:pb-0",
|
|
316
303
|
isAlternateRight: false,
|
|
317
|
-
|
|
304
|
+
orientation: "vertical",
|
|
305
|
+
variant: "alternate"
|
|
318
306
|
},
|
|
319
307
|
{
|
|
320
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
344
|
-
|
|
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-
|
|
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
|
-
|
|
436
|
-
variant,
|
|
437
|
+
activeIndex,
|
|
437
438
|
dir,
|
|
438
|
-
|
|
439
|
+
orientation,
|
|
440
|
+
variant
|
|
439
441
|
}), [
|
|
440
442
|
orientation,
|
|
441
443
|
variant,
|
package/dist/ui/timeline.js.map
CHANGED
|
@@ -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;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;AAIF,MAAM,eAAe,EAAE,WAAW,QAAQ,GAAG,YAA8B;CACzE,MAAM,EAAE,aAAa,YAAY,aAAa;CAC9C,MAAM,EAAE,QAAQ,qBAAqB,iBAAiB;AAEtD,QAAO,UAAU;EACf,gBAAgB;EAChB,OAAO,WACL,EACE,WAAW,GACT,oBAAoB;GAClB;GACA;GACA;GACA;GACD,CAAC,EACF,UACD,EACF,EACD,MACD;EACD;EACA,OAAO;GACL;GACA,MAAM;GACN;GACD;EACF,CAAC;;;;;ACjFJ,MAAM,kBAAkB,EAAE,WAAW,QAAQ,GAAG,YAC9C,UAAU;CACR,gBAAgB;CAChB,OAAO,WACL,EACE,WAAW,GAAG,uBAAuB,UAAU,EAChD,EACD,MACD;CACD;CACA,OAAO,EACL,MAAM,mBACP;CACF,CAAC;;;;ACTJ,MAAM,uBAAuB,GAAG;CAC9B,MAAM;CACN,kBAAkB;EAChB;GACE,WAAW;GACX,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;GACX,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;GACX,kBAAkB;GAClB,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;GACX,kBAAkB;GAClB,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;GACX,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;AAOF,MAAM,gBAAgB,EACpB,OACA,WACA,UACA,GAAG,YACoB;CACvB,MAAM,EAAE,aAAa,SAAS,KAAK,gBAAgB,aAAa;CAEhE,MAAM,SAAS,cAAc,OAAO,YAAY;CAChD,MAAM,mBAAmB,YAAY,eAAe,QAAQ,MAAM;CAElE,MAAM,mBAAmB,eAChB;EACL;EACA;EACA;EACD,GACD;EAAC;EAAO;EAAQ;EAAiB,CAClC;AAED,QACE,oBAAC,oBAAoB,UAArB;EAA8B,OAAO;YACnC,oBAAC,MAAD;GACE,gBAAc,WAAW,WAAW,SAAS;GAC7C,WAAW,GACT,qBAAqB;IACnB;IACA;IACA;IACD,CAAC,EACF,UACD;GACD,wBAAsB,mBAAmB,KAAK;GAC9C,oBAAkB;GAClB,aAAU;GACV,eAAa;GACR;GACL,GAAI;GAEH;GACE;EACwB;;;;;ACpGnC,MAAM,gBAAgB,EAAE,WAAW,QAAQ,GAAG,YAC5C,UAAU;CACR,gBAAgB;CAChB,OAAO,WACL,EACE,WAAW,GAAG,iCAAiC,UAAU,EAC1D,EACD,MACD;CACD;CACA,OAAO,EACL,MAAM,iBACP;CACF,CAAC;;;;ACfJ,MAAM,iBAAiB,EAAE,WAAW,QAAQ,GAAG,YAC7C,UAAU;CACR,gBAAgB;CAChB,OAAO,WACL,EACE,WAAW,GAAG,8BAA8B,UAAU,EACvD,EACD,MACD;CACD;CACA,OAAO,EACL,MAAM,kBACP;CACF,CAAC;;;;ACDJ,MAAM,mBAAmB,GAAG;CAC1B,MAAM;EACJ;EACA;EACA;EACD;CACD,kBAAkB;EAChB;GACE,WAAW;GACX,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;GACX,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;GACX,aAAa;GACb,SAAS;GACV;EACD;GACE,WAAW;GACX,aAAa;GACb,SAAS;GACV;EACF;CACD,iBAAiB;EACf,aAAa;EACb,SAAS;EACV;CACD,UAAU;EACR,aAAa;GACX,YAAY;GACZ,UAAU;GACX;EACD,SAAS;GACP,WAAW;GACX,SAAS;GACV;EACF;CACF,CAAC;AASF,MAAM,YAAY,EAChB,cAAc,YACd,UAAU,WACV,MAAM,OACN,aACA,WACA,UACA,GAAG,YACgB;CACnB,MAAM,eAAe,eACZ;EACL;EACA;EACA;EACA;EACD,GACD;EAAC;EAAa;EAAS;EAAK;EAAY,CACzC;AAED,QACE,oBAAC,gBAAgB,UAAjB;EAA0B,OAAO;YAC/B,oBAAC,MAAD;GACE,WAAW,GAAG,iBAAiB;IAAE;IAAa;IAAS,CAAC,EAAE,UAAU;GACpE,oBAAkB;GAClB,aAAU;GACV,gBAAc;GACT;GACL,GAAI;GAEH;GACE;EACoB;;AAI/B,SAAS,YAAY;AACrB,SAAS,UAAU;AACnB,SAAS,cAAc;AACvB,SAAS,MAAM;AACf,SAAS,SAAS;AAClB,SAAS,OAAO;AAChB,SAAS,OAAO;AAChB,SAAS,QAAQ"}
|