@lglab/compose-ui 0.36.0 → 0.37.0

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 (81) hide show
  1. package/dist/accordion.d.ts +6 -6
  2. package/dist/accordion.d.ts.map +1 -1
  3. package/dist/alert-dialog.d.ts +10 -10
  4. package/dist/alert-dialog.d.ts.map +1 -1
  5. package/dist/alert.d.ts +8 -8
  6. package/dist/alert.d.ts.map +1 -1
  7. package/dist/autocomplete.d.ts +13 -13
  8. package/dist/autocomplete.d.ts.map +1 -1
  9. package/dist/avatar.d.ts +5 -5
  10. package/dist/badge.d.ts +4 -4
  11. package/dist/breadcrumb.d.ts +6 -6
  12. package/dist/button.d.ts +2 -2
  13. package/dist/calendar.d.ts +2 -2
  14. package/dist/calendar.d.ts.map +1 -1
  15. package/dist/card.d.ts +8 -8
  16. package/dist/card.d.ts.map +1 -1
  17. package/dist/checkbox-group.d.ts +2 -2
  18. package/dist/checkbox-group.d.ts.map +1 -1
  19. package/dist/checkbox.d.ts +3 -3
  20. package/dist/checkbox.d.ts.map +1 -1
  21. package/dist/collapsible.d.ts +4 -4
  22. package/dist/collapsible.d.ts.map +1 -1
  23. package/dist/combobox.d.ts +25 -25
  24. package/dist/components/chart/context.d.ts +2 -2
  25. package/dist/components/chart/legend.d.ts +2 -2
  26. package/dist/components/chart/tooltip.d.ts +2 -2
  27. package/dist/components/table/primitives.d.ts +11 -11
  28. package/dist/components/table/primitives.js +1 -1
  29. package/dist/components/table/primitives.js.map +1 -1
  30. package/dist/context-menu.d.ts +20 -20
  31. package/dist/context-menu.d.ts.map +1 -1
  32. package/dist/dialog.d.ts +11 -11
  33. package/dist/drawer.d.ts +12 -12
  34. package/dist/empty.d.ts +7 -7
  35. package/dist/empty.d.ts.map +1 -1
  36. package/dist/field.d.ts +8 -8
  37. package/dist/field.d.ts.map +1 -1
  38. package/dist/fieldset.d.ts +3 -3
  39. package/dist/fieldset.d.ts.map +1 -1
  40. package/dist/form.d.ts +2 -2
  41. package/dist/form.d.ts.map +1 -1
  42. package/dist/group.d.ts +3 -3
  43. package/dist/group.d.ts.map +1 -1
  44. package/dist/index.d.ts +2 -1
  45. package/dist/index.js +2 -1
  46. package/dist/input.d.ts +2 -2
  47. package/dist/input.d.ts.map +1 -1
  48. package/dist/menu.d.ts +20 -20
  49. package/dist/menu.d.ts.map +1 -1
  50. package/dist/menubar.d.ts +21 -21
  51. package/dist/meter.d.ts +6 -6
  52. package/dist/navigation-menu.d.ts +14 -14
  53. package/dist/number-field.d.ts +8 -8
  54. package/dist/pagination.d.ts +10 -10
  55. package/dist/popover.d.ts +12 -12
  56. package/dist/preview-card.d.ts +8 -8
  57. package/dist/progress.d.ts +6 -6
  58. package/dist/radio-group.d.ts +2 -2
  59. package/dist/radio.d.ts +3 -3
  60. package/dist/scroll-area.d.ts +7 -7
  61. package/dist/scroll-area.d.ts.map +1 -1
  62. package/dist/select.d.ts +19 -19
  63. package/dist/separator.d.ts +2 -2
  64. package/dist/skeleton.d.ts +2 -2
  65. package/dist/slider.d.ts +7 -7
  66. package/dist/slider.d.ts.map +1 -1
  67. package/dist/switch.d.ts +3 -3
  68. package/dist/switch.d.ts.map +1 -1
  69. package/dist/tabs.d.ts +6 -6
  70. package/dist/textarea.d.ts +2 -2
  71. package/dist/timeline.d.ts +81 -0
  72. package/dist/timeline.d.ts.map +1 -0
  73. package/dist/timeline.js +165 -0
  74. package/dist/timeline.js.map +1 -0
  75. package/dist/toast.d.ts +10 -10
  76. package/dist/toggle-group.d.ts +3 -3
  77. package/dist/toggle.d.ts +2 -2
  78. package/dist/toggle.d.ts.map +1 -1
  79. package/dist/toolbar.d.ts +7 -7
  80. package/dist/tooltip.d.ts +8 -8
  81. package/package.json +5 -1
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import * as react_jsx_runtime107 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime216 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/textarea.d.ts
5
5
  type TextareaProps = React.ComponentProps<'textarea'>;
@@ -7,7 +7,7 @@ declare const Textarea: {
7
7
  ({
8
8
  className,
9
9
  ...props
10
- }: TextareaProps): react_jsx_runtime107.JSX.Element;
10
+ }: TextareaProps): react_jsx_runtime216.JSX.Element;
11
11
  displayName: string;
12
12
  };
13
13
  //#endregion
@@ -0,0 +1,81 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+ import * as react_jsx_runtime224 from "react/jsx-runtime";
4
+ import * as class_variance_authority_types0 from "class-variance-authority/types";
5
+
6
+ //#region src/components/timeline.d.ts
7
+ declare const timelineVariants: (props?: ({
8
+ position?: "center" | "right" | "left" | "alternate" | null | undefined;
9
+ } & class_variance_authority_types0.ClassProp) | undefined) => string;
10
+ interface TimelineRootProps extends React.ComponentProps<'ol'>, VariantProps<typeof timelineVariants> {}
11
+ declare const TimelineRoot: {
12
+ ({
13
+ className,
14
+ position,
15
+ children,
16
+ ...props
17
+ }: TimelineRootProps): react_jsx_runtime224.JSX.Element;
18
+ displayName: string;
19
+ };
20
+ declare const TimelineItem: {
21
+ ({
22
+ className,
23
+ children,
24
+ ...props
25
+ }: React.ComponentProps<"li">): react_jsx_runtime224.JSX.Element;
26
+ displayName: string;
27
+ };
28
+ declare const timelineMarkerVariants: (props?: ({
29
+ variant?: "default" | "primary" | "destructive" | "success" | "warning" | null | undefined;
30
+ } & class_variance_authority_types0.ClassProp) | undefined) => string;
31
+ interface TimelineMarkerProps extends React.ComponentProps<'div'>, VariantProps<typeof timelineMarkerVariants> {
32
+ icon?: React.ReactNode;
33
+ }
34
+ declare const TimelineMarker: {
35
+ ({
36
+ className,
37
+ variant,
38
+ icon,
39
+ children,
40
+ ...props
41
+ }: TimelineMarkerProps): react_jsx_runtime224.JSX.Element;
42
+ displayName: string;
43
+ };
44
+ declare const TimelineContent: {
45
+ ({
46
+ className,
47
+ ...props
48
+ }: React.ComponentProps<"div">): react_jsx_runtime224.JSX.Element;
49
+ displayName: string;
50
+ };
51
+ declare const TimelineSpacer: {
52
+ ({
53
+ className,
54
+ ...props
55
+ }: React.ComponentProps<"div">): react_jsx_runtime224.JSX.Element;
56
+ displayName: string;
57
+ };
58
+ declare const TimelineTitle: {
59
+ ({
60
+ className,
61
+ ...props
62
+ }: React.ComponentProps<"p">): react_jsx_runtime224.JSX.Element;
63
+ displayName: string;
64
+ };
65
+ declare const TimelineDescription: {
66
+ ({
67
+ className,
68
+ ...props
69
+ }: React.ComponentProps<"p">): react_jsx_runtime224.JSX.Element;
70
+ displayName: string;
71
+ };
72
+ declare const TimelineTime: {
73
+ ({
74
+ className,
75
+ ...props
76
+ }: React.ComponentProps<"time">): react_jsx_runtime224.JSX.Element;
77
+ displayName: string;
78
+ };
79
+ //#endregion
80
+ export { TimelineContent, TimelineDescription, TimelineItem, TimelineMarker, type TimelineMarkerProps, TimelineRoot, type TimelineRootProps, TimelineSpacer, TimelineTime, TimelineTitle };
81
+ //# sourceMappingURL=timeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline.d.ts","names":[],"sources":["../src/components/timeline.tsx"],"sourcesContent":[],"mappings":";;;;;;cAqBM;;IAYJ,+BAAA,CAAA;UAEQ,iBAAA,SACA,KAAA,CAAM,sBAAsB,oBAAoB,mBAjC5B;cAmCxB,YAFJ,EAAA;EAAA,CAAA;IAAA,SAAA;IAAA,QAAA;IAAA,QAAA;IAAA,GAAA;EAAA,CAAA,EAEiE,iBAFjE,CAAA,EAEkF,oBAAA,CAAA,GAAA,CAAA,OAFlF;aAAwD,EAAA,MAAA;;cAqCpD,YArCgC,EAAA;EAAY,CAAA;IAAA,SAAA;IAAA,QAAA;IAAA,GAAA;EAAA,CAAA,EAqCO,KAAA,CAAM,cArCb,CAAA,IAAA,CAAA,CAAA,EAqCiC,oBAAA,CAAA,GAAA,CAAA,OArCjC;EAE5C,WAAA,EAAA,MA6BL;CAAA;cAmDK;;IAgBL,+BAAA,CAAA;UAUS,mBAAA,SACA,KAAA,CAAM,cA3GmD,CAAA,KAAA,CAAA,EA2G5B,YA3G4B,CAAA,OA2GR,sBA3GQ,CAAA,CAAA;MAAiB,CAAA,EA4G3E,KAAA,CAAM,SA5GqE;;AAAA,cA+G9E,cArCL,EAAA;EAAA,CAAA;IAAA,SAAA;IAAA,OAAA;IAAA,IAAA;IAAA,QAAA;IAAA,GAAA;EAAA,CAAA,EA2CE,mBA3CF,CAAA,EA2CqB,oBAAA,CAAA,GAAA,CAAA,OA3CrB;;;cA+FK,eAtIyD,EAAA;;IAAoB,SAAA;IAAA,GAAA;EAAA,CAAA,EAsIjC,KAAA,CAAM,cAtI2B,CAAA,KAAA,CAAA,CAAA,EAsIN,oBAAA,CAAA,GAAA,CAAA,OAtIM;EAAA,WAAA,EAAA,MAAA;AAAA,CAAA;cA8K7E,cAtGJ,EAAA;EAAA,CAAA;IAAA,SAAA;IAAA,GAAA;EAAA,CAAA,EAsG+C,KAAA,CAAM,cAtGrD,CAAA,KAAA,CAAA,CAAA,EAsG0E,oBAAA,CAAA,GAAA,CAAA,OAtG1E;aAAyD,EAAA,MAAA;;cAoHrD,aApHU,EAAA;;IAAuB,SAAA;IAAA,GAAA;EAAA,CAAA,EAoHS,KAAA,CAAM,cApHf,CAAA,GAAA,CAAA,CAAA,EAoHkC,oBAAA,CAAA,GAAA,CAAA,OApHlC;EAAY,WAAA,EAAA,MAAA;AAAA,CAAA;cAkI7C,mBA1EL,EAAA;;;;KA0EqD,KAAA,CAAM,sBAAmB,oBAAA,CAAA,GAAA,CAAA;;;cAczE;;IAtIH,SAAA;IAAA,GAAA;EAAA,CAAA,EAsI4C,KAAA,CAAM,cAtIlD,CAAA,MAAA,CAAA,CAAA,EAsIwE,oBAAA,CAAA,GAAA,CAAA,OAtIxE;aAAmB,EAAA,MAAA;CAAA"}
@@ -0,0 +1,165 @@
1
+ 'use client';
2
+
3
+ import { cn } from "./lib/utils.js";
4
+ import { cva } from "class-variance-authority";
5
+ import * as React from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+
8
+ //#region src/components/timeline.tsx
9
+ const TimelineContext = React.createContext({ position: "left" });
10
+ const TimelineItemContext = React.createContext({ index: 0 });
11
+ const timelineVariants = cva("flex flex-col list-none m-0 p-0", {
12
+ variants: { position: {
13
+ left: "gap-6",
14
+ right: "gap-6",
15
+ alternate: "gap-0",
16
+ center: "gap-0"
17
+ } },
18
+ defaultVariants: { position: "left" }
19
+ });
20
+ const TimelineRoot = ({ className, position, children, ...props }) => {
21
+ const timelinePosition = position ?? "left";
22
+ const childrenWithIndex = React.Children.map(children, (child, index) => {
23
+ if (React.isValidElement(child)) return /* @__PURE__ */ jsx(TimelineItemContext.Provider, {
24
+ value: { index },
25
+ children: child
26
+ });
27
+ return child;
28
+ });
29
+ return /* @__PURE__ */ jsx(TimelineContext.Provider, {
30
+ value: { position: timelinePosition },
31
+ children: /* @__PURE__ */ jsx("ol", {
32
+ role: "list",
33
+ "data-slot": "timeline",
34
+ "data-position": timelinePosition,
35
+ className: cn(timelineVariants({ position: timelinePosition }), className),
36
+ ...props,
37
+ children: childrenWithIndex
38
+ })
39
+ });
40
+ };
41
+ TimelineRoot.displayName = "TimelineRoot";
42
+ const TimelineItem = ({ className, children, ...props }) => {
43
+ const { position } = React.useContext(TimelineContext);
44
+ const { index } = React.useContext(TimelineItemContext);
45
+ const isRight = position === "right" || position === "alternate" && index % 2 === 1;
46
+ if (position === "center") {
47
+ const isEven = index % 2 === 0;
48
+ return /* @__PURE__ */ jsx("li", {
49
+ role: "listitem",
50
+ "data-slot": "timeline-item",
51
+ "data-position": isEven ? "left" : "right",
52
+ className: cn("relative m-0 grid grid-cols-[1fr_auto_1fr] gap-4 p-0", className),
53
+ ...props,
54
+ children
55
+ });
56
+ }
57
+ return /* @__PURE__ */ jsx("li", {
58
+ role: "listitem",
59
+ "data-slot": "timeline-item",
60
+ "data-position": isRight ? "right" : "left",
61
+ className: cn("relative m-0 flex gap-4 p-0", position === "alternate" && "justify-center", isRight && "flex-row-reverse", className),
62
+ ...props,
63
+ children
64
+ });
65
+ };
66
+ TimelineItem.displayName = "TimelineItem";
67
+ const timelineMarkerVariants = cva("relative z-10 flex size-6 shrink-0 items-center justify-center rounded-full", {
68
+ variants: { variant: {
69
+ default: "border border-border bg-background",
70
+ primary: "bg-primary text-white",
71
+ success: "bg-success text-white",
72
+ warning: "bg-warning text-white",
73
+ destructive: "bg-destructive text-white"
74
+ } },
75
+ defaultVariants: { variant: "default" }
76
+ });
77
+ const variantLabels = {
78
+ default: "Event",
79
+ primary: "Important",
80
+ success: "Completed",
81
+ warning: "Warning",
82
+ destructive: "Error"
83
+ };
84
+ const TimelineMarker = ({ className, variant, icon, children, ...props }) => {
85
+ const { position } = React.useContext(TimelineContext);
86
+ return /* @__PURE__ */ jsxs("div", {
87
+ className: cn("relative flex flex-col items-center", position === "center" && "justify-start"),
88
+ children: [children ? /* @__PURE__ */ jsx("div", {
89
+ "data-slot": "timeline-marker",
90
+ className: cn("relative z-10 flex shrink-0 items-center justify-center", className),
91
+ ...props,
92
+ children
93
+ }) : /* @__PURE__ */ jsx("div", {
94
+ "data-slot": "timeline-marker",
95
+ className: cn(timelineMarkerVariants({ variant }), className),
96
+ "aria-label": variantLabels[variant ?? "default"],
97
+ role: "status",
98
+ ...props,
99
+ children: icon ? /* @__PURE__ */ jsx("div", {
100
+ className: "flex size-3 items-center justify-center text-current",
101
+ children: icon
102
+ }) : /* @__PURE__ */ jsx("div", { className: cn("size-2 rounded-full bg-current") })
103
+ }), /* @__PURE__ */ jsx("div", {
104
+ className: "border-l border-border absolute -top-4 -bottom-4 left-1/2 -translate-x-1/2 [li:first-child_&]:top-6 [li:last-child_&]:bottom-auto [li:last-child_&]:h-full",
105
+ "data-slot": "timeline-line",
106
+ "aria-hidden": "true"
107
+ })]
108
+ });
109
+ };
110
+ TimelineMarker.displayName = "TimelineMarker";
111
+ const TimelineContent = ({ className, ...props }) => {
112
+ const { position } = React.useContext(TimelineContext);
113
+ const { index } = React.useContext(TimelineItemContext);
114
+ const isRight = position === "right" || position === "alternate" && index % 2 === 1;
115
+ if (position === "center") {
116
+ const isEven = index % 2 === 0;
117
+ return /* @__PURE__ */ jsx("div", {
118
+ "data-slot": "timeline-content",
119
+ className: cn("flex flex-col gap-1 pb-6", isEven ? "text-right" : "text-left", className),
120
+ ...props
121
+ });
122
+ }
123
+ return /* @__PURE__ */ jsx("div", {
124
+ "data-slot": "timeline-content",
125
+ className: cn("flex flex-1 flex-col gap-1 pb-4", position === "alternate" && "w-1/2 pb-8", position === "alternate" && (isRight ? "text-right" : "text-left"), className),
126
+ ...props
127
+ });
128
+ };
129
+ TimelineContent.displayName = "TimelineContent";
130
+ const TimelineSpacer = ({ className, ...props }) => {
131
+ return /* @__PURE__ */ jsx("div", {
132
+ "data-slot": "timeline-spacer",
133
+ className: cn("min-w-0 flex-1", className),
134
+ ...props
135
+ });
136
+ };
137
+ TimelineSpacer.displayName = "TimelineSpacer";
138
+ const TimelineTitle = ({ className, ...props }) => {
139
+ return /* @__PURE__ */ jsx("p", {
140
+ "data-slot": "timeline-title",
141
+ className: cn("leading-none font-medium", className),
142
+ ...props
143
+ });
144
+ };
145
+ TimelineTitle.displayName = "TimelineTitle";
146
+ const TimelineDescription = ({ className, ...props }) => {
147
+ return /* @__PURE__ */ jsx("p", {
148
+ "data-slot": "timeline-description",
149
+ className: cn("text-muted-foreground text-sm", className),
150
+ ...props
151
+ });
152
+ };
153
+ TimelineDescription.displayName = "TimelineDescription";
154
+ const TimelineTime = ({ className, ...props }) => {
155
+ return /* @__PURE__ */ jsx("time", {
156
+ "data-slot": "timeline-time",
157
+ className: cn("text-muted-foreground text-xs", className),
158
+ ...props
159
+ });
160
+ };
161
+ TimelineTime.displayName = "TimelineTime";
162
+
163
+ //#endregion
164
+ export { TimelineContent, TimelineDescription, TimelineItem, TimelineMarker, TimelineRoot, TimelineSpacer, TimelineTime, TimelineTitle };
165
+ //# sourceMappingURL=timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline.js","names":[],"sources":["../src/components/timeline.tsx"],"sourcesContent":["'use client'\n\nimport { type VariantProps, cva } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { cn } from '../lib/utils'\n\n// ============================================\n// Context for position and index\n// ============================================\nconst TimelineContext = React.createContext<{\n position: 'left' | 'right' | 'alternate' | 'center'\n}>({\n position: 'left',\n})\n\nconst TimelineItemContext = React.createContext<{ index: number }>({ index: 0 })\n\n// ============================================\n// 1. TimelineRoot\n// ============================================\nconst timelineVariants = cva('flex flex-col list-none m-0 p-0', {\n variants: {\n position: {\n left: 'gap-6',\n right: 'gap-6',\n alternate: 'gap-0',\n center: 'gap-0',\n },\n },\n defaultVariants: {\n position: 'left',\n },\n})\n\ninterface TimelineRootProps\n extends React.ComponentProps<'ol'>, VariantProps<typeof timelineVariants> {}\n\nconst TimelineRoot = ({ className, position, children, ...props }: TimelineRootProps) => {\n const timelinePosition = position ?? 'left'\n\n // Wrap children to inject index for each TimelineItem\n // Non-element children (null, strings, etc.) are passed through unchanged\n const childrenWithIndex = React.Children.map(children, (child, index) => {\n if (React.isValidElement(child)) {\n return (\n <TimelineItemContext.Provider value={{ index }}>\n {child}\n </TimelineItemContext.Provider>\n )\n }\n return child\n })\n\n return (\n <TimelineContext.Provider value={{ position: timelinePosition }}>\n <ol\n role='list'\n data-slot='timeline'\n data-position={timelinePosition}\n className={cn(timelineVariants({ position: timelinePosition }), className)}\n {...props}\n >\n {childrenWithIndex}\n </ol>\n </TimelineContext.Provider>\n )\n}\nTimelineRoot.displayName = 'TimelineRoot'\n\n// ============================================\n// 2. TimelineItem\n// ============================================\nconst TimelineItem = ({ className, children, ...props }: React.ComponentProps<'li'>) => {\n const { position } = React.useContext(TimelineContext)\n const { index } = React.useContext(TimelineItemContext)\n\n // Determine if this item should be on the right side\n const isRight = position === 'right' || (position === 'alternate' && index % 2 === 1)\n\n // Center mode - special layout with line in the middle\n if (position === 'center') {\n const isEven = index % 2 === 0\n return (\n <li\n role='listitem'\n data-slot='timeline-item'\n data-position={isEven ? 'left' : 'right'}\n className={cn('relative m-0 grid grid-cols-[1fr_auto_1fr] gap-4 p-0', className)}\n {...props}\n >\n {children}\n </li>\n )\n }\n\n return (\n <li\n role='listitem'\n data-slot='timeline-item'\n data-position={isRight ? 'right' : 'left'}\n className={cn(\n 'relative m-0 flex gap-4 p-0',\n position === 'alternate' && 'justify-center',\n isRight && 'flex-row-reverse',\n className,\n )}\n {...props}\n >\n {children}\n </li>\n )\n}\nTimelineItem.displayName = 'TimelineItem'\n\n// ============================================\n// 3. TimelineMarker\n// ============================================\nconst timelineMarkerVariants = cva(\n 'relative z-10 flex size-6 shrink-0 items-center justify-center rounded-full',\n {\n variants: {\n variant: {\n default: 'border border-border bg-background',\n primary: 'bg-primary text-white',\n success: 'bg-success text-white',\n warning: 'bg-warning text-white',\n destructive: 'bg-destructive text-white',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nconst variantLabels = {\n default: 'Event',\n primary: 'Important',\n success: 'Completed',\n warning: 'Warning',\n destructive: 'Error',\n}\n\ninterface TimelineMarkerProps\n extends React.ComponentProps<'div'>, VariantProps<typeof timelineMarkerVariants> {\n icon?: React.ReactNode\n}\n\nconst TimelineMarker = ({\n className,\n variant,\n icon,\n children,\n ...props\n}: TimelineMarkerProps) => {\n const { position } = React.useContext(TimelineContext)\n\n return (\n <div\n className={cn(\n 'relative flex flex-col items-center',\n position === 'center' && 'justify-start',\n )}\n >\n {children ? (\n <div\n data-slot='timeline-marker'\n className={cn(\n 'relative z-10 flex shrink-0 items-center justify-center',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n ) : (\n <div\n data-slot='timeline-marker'\n className={cn(timelineMarkerVariants({ variant }), className)}\n aria-label={variantLabels[variant ?? 'default']}\n role='status'\n {...props}\n >\n {icon ? (\n <div className='flex size-3 items-center justify-center text-current'>\n {icon}\n </div>\n ) : (\n <div className={cn('size-2 rounded-full bg-current')} />\n )}\n </div>\n )}\n {/* Line */}\n <div\n className='border-l border-border absolute -top-4 -bottom-4 left-1/2 -translate-x-1/2 [li:first-child_&]:top-6 [li:last-child_&]:bottom-auto [li:last-child_&]:h-full'\n data-slot='timeline-line'\n aria-hidden='true'\n />\n </div>\n )\n}\nTimelineMarker.displayName = 'TimelineMarker'\n\n// ============================================\n// 4. TimelineContent\n// ============================================\nconst TimelineContent = ({ className, ...props }: React.ComponentProps<'div'>) => {\n const { position } = React.useContext(TimelineContext)\n const { index } = React.useContext(TimelineItemContext)\n\n const isRight = position === 'right' || (position === 'alternate' && index % 2 === 1)\n\n // Center mode uses grid layout\n if (position === 'center') {\n const isEven = index % 2 === 0\n return (\n <div\n data-slot='timeline-content'\n className={cn(\n 'flex flex-col gap-1 pb-6',\n isEven ? 'text-right' : 'text-left',\n className,\n )}\n {...props}\n />\n )\n }\n\n return (\n <div\n data-slot='timeline-content'\n className={cn(\n 'flex flex-1 flex-col gap-1 pb-4',\n position === 'alternate' && 'w-1/2 pb-8',\n position === 'alternate' && (isRight ? 'text-right' : 'text-left'),\n className,\n )}\n {...props}\n />\n )\n}\nTimelineContent.displayName = 'TimelineContent'\n\n// ============================================\n// 5. TimelineSpacer\n// ============================================\nconst TimelineSpacer = ({ className, ...props }: React.ComponentProps<'div'>) => {\n return (\n <div\n data-slot='timeline-spacer'\n className={cn('min-w-0 flex-1', className)}\n {...props}\n />\n )\n}\nTimelineSpacer.displayName = 'TimelineSpacer'\n\n// ============================================\n// 6. TimelineTitle\n// ============================================\nconst TimelineTitle = ({ className, ...props }: React.ComponentProps<'p'>) => {\n return (\n <p\n data-slot='timeline-title'\n className={cn('leading-none font-medium', className)}\n {...props}\n />\n )\n}\nTimelineTitle.displayName = 'TimelineTitle'\n\n// ============================================\n// 7. TimelineDescription\n// ============================================\nconst TimelineDescription = ({ className, ...props }: React.ComponentProps<'p'>) => {\n return (\n <p\n data-slot='timeline-description'\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n )\n}\nTimelineDescription.displayName = 'TimelineDescription'\n\n// ============================================\n// 8. TimelineTime\n// ============================================\nconst TimelineTime = ({ className, ...props }: React.ComponentProps<'time'>) => {\n return (\n <time\n data-slot='timeline-time'\n className={cn('text-muted-foreground text-xs', className)}\n {...props}\n />\n )\n}\nTimelineTime.displayName = 'TimelineTime'\n\n// ============================================\n// Export\n// ============================================\nexport {\n TimelineRoot,\n TimelineItem,\n TimelineMarker,\n TimelineContent,\n TimelineSpacer,\n TimelineTitle,\n TimelineDescription,\n TimelineTime,\n}\n\nexport type { TimelineRootProps, TimelineMarkerProps }\n"],"mappings":"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"}
package/dist/toast.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import { ButtonSize, ButtonVariant } from "./lib/button-variants.js";
2
2
  import * as React from "react";
3
- import * as react_jsx_runtime108 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime167 from "react/jsx-runtime";
4
4
  import { Toast, Toast as Toast$1 } from "@base-ui/react/toast";
5
5
 
6
6
  //#region src/components/toast.d.ts
7
7
  type ToastProviderProps = React.ComponentProps<typeof Toast$1.Provider>;
8
8
  declare const ToastProvider: {
9
- (props: ToastProviderProps): react_jsx_runtime108.JSX.Element;
9
+ (props: ToastProviderProps): react_jsx_runtime167.JSX.Element;
10
10
  displayName: string;
11
11
  };
12
12
  type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
@@ -18,7 +18,7 @@ declare const ToastViewport: {
18
18
  className,
19
19
  position,
20
20
  ...props
21
- }: ToastViewportProps): react_jsx_runtime108.JSX.Element;
21
+ }: ToastViewportProps): react_jsx_runtime167.JSX.Element;
22
22
  displayName: string;
23
23
  };
24
24
  type ToastRootProps = React.ComponentProps<typeof Toast$1.Root>;
@@ -26,7 +26,7 @@ declare const ToastRoot: {
26
26
  ({
27
27
  className,
28
28
  ...props
29
- }: ToastRootProps): react_jsx_runtime108.JSX.Element;
29
+ }: ToastRootProps): react_jsx_runtime167.JSX.Element;
30
30
  displayName: string;
31
31
  };
32
32
  type ToastContentProps = React.ComponentProps<typeof Toast$1.Content>;
@@ -34,7 +34,7 @@ declare const ToastContent: {
34
34
  ({
35
35
  className,
36
36
  ...props
37
- }: ToastContentProps): react_jsx_runtime108.JSX.Element;
37
+ }: ToastContentProps): react_jsx_runtime167.JSX.Element;
38
38
  displayName: string;
39
39
  };
40
40
  type ToastTitleProps = React.ComponentProps<typeof Toast$1.Title>;
@@ -42,7 +42,7 @@ declare const ToastTitle: {
42
42
  ({
43
43
  className,
44
44
  ...props
45
- }: ToastTitleProps): react_jsx_runtime108.JSX.Element;
45
+ }: ToastTitleProps): react_jsx_runtime167.JSX.Element;
46
46
  displayName: string;
47
47
  };
48
48
  type ToastDescriptionProps = React.ComponentProps<typeof Toast$1.Description>;
@@ -50,7 +50,7 @@ declare const ToastDescription: {
50
50
  ({
51
51
  className,
52
52
  ...props
53
- }: ToastDescriptionProps): react_jsx_runtime108.JSX.Element;
53
+ }: ToastDescriptionProps): react_jsx_runtime167.JSX.Element;
54
54
  displayName: string;
55
55
  };
56
56
  type ToastActionProps = React.ComponentProps<typeof Toast$1.Action> & {
@@ -63,7 +63,7 @@ declare const ToastAction: {
63
63
  variant,
64
64
  size,
65
65
  ...props
66
- }: ToastActionProps): react_jsx_runtime108.JSX.Element;
66
+ }: ToastActionProps): react_jsx_runtime167.JSX.Element;
67
67
  displayName: string;
68
68
  };
69
69
  type ToastCloseProps = React.ComponentProps<typeof Toast$1.Close>;
@@ -71,7 +71,7 @@ declare const ToastClose: {
71
71
  ({
72
72
  className,
73
73
  ...props
74
- }: ToastCloseProps): react_jsx_runtime108.JSX.Element;
74
+ }: ToastCloseProps): react_jsx_runtime167.JSX.Element;
75
75
  displayName: string;
76
76
  };
77
77
  type ToastPositionerProps = React.ComponentProps<typeof Toast$1.Positioner>;
@@ -79,7 +79,7 @@ declare const ToastPositioner: {
79
79
  ({
80
80
  className,
81
81
  ...props
82
- }: ToastPositionerProps): react_jsx_runtime108.JSX.Element;
82
+ }: ToastPositionerProps): react_jsx_runtime167.JSX.Element;
83
83
  displayName: string;
84
84
  };
85
85
  //#endregion
@@ -1,6 +1,6 @@
1
1
  import { ControlSize, ControlVariant } from "./lib/control-variants.js";
2
2
  import * as React from "react";
3
- import * as react_jsx_runtime264 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime255 from "react/jsx-runtime";
4
4
  import { Toggle } from "@base-ui/react/toggle";
5
5
  import { ToggleGroup } from "@base-ui/react/toggle-group";
6
6
 
@@ -11,7 +11,7 @@ declare const ToggleGroupRoot: {
11
11
  className,
12
12
  orientation,
13
13
  ...props
14
- }: ToggleGroupRootProps): react_jsx_runtime264.JSX.Element;
14
+ }: ToggleGroupRootProps): react_jsx_runtime255.JSX.Element;
15
15
  displayName: string;
16
16
  };
17
17
  type ToggleGroupItemProps = React.ComponentProps<typeof Toggle> & {
@@ -26,7 +26,7 @@ declare const ToggleGroupItem: {
26
26
  variant,
27
27
  size,
28
28
  ...props
29
- }: ToggleGroupItemProps): react_jsx_runtime264.JSX.Element;
29
+ }: ToggleGroupItemProps): react_jsx_runtime255.JSX.Element;
30
30
  displayName: string;
31
31
  };
32
32
  //#endregion
package/dist/toggle.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ControlSize, ControlVariant } from "./lib/control-variants.js";
2
2
  import * as React from "react";
3
- import * as react_jsx_runtime6 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime223 from "react/jsx-runtime";
4
4
  import { Toggle as Toggle$1 } from "@base-ui/react/toggle";
5
5
 
6
6
  //#region src/components/toggle.d.ts
@@ -16,7 +16,7 @@ declare const Toggle: {
16
16
  variant,
17
17
  size,
18
18
  ...props
19
- }: ToggleProps): react_jsx_runtime6.JSX.Element;
19
+ }: ToggleProps): react_jsx_runtime223.JSX.Element;
20
20
  displayName: string;
21
21
  };
22
22
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"toggle.d.ts","names":[],"sources":["../src/components/toggle.tsx"],"sourcesContent":[],"mappings":";;;;;;KAgBK,WAAA,GAAc,KAAA,CAAM,sBAAsB;;YAEnC;EAFP;EAAW,IAAA,CAAA,EAIP,WAJO;;cAOV,MAPmB,EAAA;;IAEb,SAAA;IAAA,OAAA;IAAA,IAAA;IAAA,GAAA;EAAA,CAAA,EAK4C,WAL5C,CAAA,EAKuD,kBAAA,CAAA,GAAA,CAAA,OALvD;aAEH,EAAA,MAAA;CAAW"}
1
+ {"version":3,"file":"toggle.d.ts","names":[],"sources":["../src/components/toggle.tsx"],"sourcesContent":[],"mappings":";;;;;;KAgBK,WAAA,GAAc,KAAA,CAAM,sBAAsB;;YAEnC;EAFP;EAAW,IAAA,CAAA,EAIP,WAJO;;cAOV,MAPmB,EAAA;;IAEb,SAAA;IAAA,OAAA;IAAA,IAAA;IAAA,GAAA;EAAA,CAAA,EAK4C,WAL5C,CAAA,EAKuD,oBAAA,CAAA,GAAA,CAAA,OALvD;aAEH,EAAA,MAAA;CAAW"}
package/dist/toolbar.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ControlSize, ControlVariant } from "./lib/control-variants.js";
2
2
  import * as React from "react";
3
- import * as react_jsx_runtime268 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime217 from "react/jsx-runtime";
4
4
  import { Toolbar } from "@base-ui/react/toolbar";
5
5
 
6
6
  //#region src/components/toolbar.d.ts
@@ -9,7 +9,7 @@ declare const ToolbarRoot: {
9
9
  ({
10
10
  className,
11
11
  ...props
12
- }: ToolbarRootProps): react_jsx_runtime268.JSX.Element;
12
+ }: ToolbarRootProps): react_jsx_runtime217.JSX.Element;
13
13
  displayName: string;
14
14
  };
15
15
  type ToolbarButtonProps = React.ComponentProps<typeof Toolbar.Button> & {
@@ -24,7 +24,7 @@ declare const ToolbarButton: {
24
24
  variant,
25
25
  size,
26
26
  ...props
27
- }: ToolbarButtonProps): react_jsx_runtime268.JSX.Element;
27
+ }: ToolbarButtonProps): react_jsx_runtime217.JSX.Element;
28
28
  displayName: string;
29
29
  };
30
30
  type ToolbarLinkProps = React.ComponentProps<typeof Toolbar.Link>;
@@ -32,7 +32,7 @@ declare const ToolbarLink: {
32
32
  ({
33
33
  className,
34
34
  ...props
35
- }: ToolbarLinkProps): react_jsx_runtime268.JSX.Element;
35
+ }: ToolbarLinkProps): react_jsx_runtime217.JSX.Element;
36
36
  displayName: string;
37
37
  };
38
38
  type ToolbarInputProps = React.ComponentProps<typeof Toolbar.Input>;
@@ -40,7 +40,7 @@ declare const ToolbarInput: {
40
40
  ({
41
41
  className,
42
42
  ...props
43
- }: ToolbarInputProps): react_jsx_runtime268.JSX.Element;
43
+ }: ToolbarInputProps): react_jsx_runtime217.JSX.Element;
44
44
  displayName: string;
45
45
  };
46
46
  type ToolbarGroupProps = React.ComponentProps<typeof Toolbar.Group>;
@@ -48,7 +48,7 @@ declare const ToolbarGroup: {
48
48
  ({
49
49
  className,
50
50
  ...props
51
- }: ToolbarGroupProps): react_jsx_runtime268.JSX.Element;
51
+ }: ToolbarGroupProps): react_jsx_runtime217.JSX.Element;
52
52
  displayName: string;
53
53
  };
54
54
  type ToolbarSeparatorProps = React.ComponentProps<typeof Toolbar.Separator>;
@@ -56,7 +56,7 @@ declare const ToolbarSeparator: {
56
56
  ({
57
57
  className,
58
58
  ...props
59
- }: ToolbarSeparatorProps): react_jsx_runtime268.JSX.Element;
59
+ }: ToolbarSeparatorProps): react_jsx_runtime217.JSX.Element;
60
60
  displayName: string;
61
61
  };
62
62
  //#endregion
package/dist/tooltip.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import { TooltipVariant } from "./lib/tooltip-variants.js";
2
2
  import * as React from "react";
3
- import * as react_jsx_runtime274 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime248 from "react/jsx-runtime";
4
4
  import { Tooltip } from "@base-ui/react/tooltip";
5
5
 
6
6
  //#region src/components/tooltip.d.ts
7
7
  type TooltipProviderProps = React.ComponentProps<typeof Tooltip.Provider>;
8
8
  declare const TooltipProvider: {
9
- (props: TooltipProviderProps): react_jsx_runtime274.JSX.Element;
9
+ (props: TooltipProviderProps): react_jsx_runtime248.JSX.Element;
10
10
  displayName: string;
11
11
  };
12
12
  type TooltipRootProps = React.ComponentProps<typeof Tooltip.Root> & {
@@ -16,7 +16,7 @@ declare const TooltipRoot: {
16
16
  ({
17
17
  variant,
18
18
  ...props
19
- }: TooltipRootProps): react_jsx_runtime274.JSX.Element;
19
+ }: TooltipRootProps): react_jsx_runtime248.JSX.Element;
20
20
  displayName: string;
21
21
  };
22
22
  type TooltipTriggerProps = React.ComponentProps<typeof Tooltip.Trigger>;
@@ -24,12 +24,12 @@ declare const TooltipTrigger: {
24
24
  ({
25
25
  className,
26
26
  ...props
27
- }: TooltipTriggerProps): react_jsx_runtime274.JSX.Element;
27
+ }: TooltipTriggerProps): react_jsx_runtime248.JSX.Element;
28
28
  displayName: string;
29
29
  };
30
30
  type TooltipPortalProps = React.ComponentProps<typeof Tooltip.Portal>;
31
31
  declare const TooltipPortal: {
32
- (props: TooltipPortalProps): react_jsx_runtime274.JSX.Element;
32
+ (props: TooltipPortalProps): react_jsx_runtime248.JSX.Element;
33
33
  displayName: string;
34
34
  };
35
35
  type TooltipPositionerProps = React.ComponentProps<typeof Tooltip.Positioner>;
@@ -37,7 +37,7 @@ declare const TooltipPositioner: {
37
37
  ({
38
38
  className,
39
39
  ...props
40
- }: TooltipPositionerProps): react_jsx_runtime274.JSX.Element;
40
+ }: TooltipPositionerProps): react_jsx_runtime248.JSX.Element;
41
41
  displayName: string;
42
42
  };
43
43
  type TooltipPopupProps = React.ComponentProps<typeof Tooltip.Popup> & {
@@ -48,7 +48,7 @@ declare const TooltipPopup: {
48
48
  className,
49
49
  variant,
50
50
  ...props
51
- }: TooltipPopupProps): react_jsx_runtime274.JSX.Element;
51
+ }: TooltipPopupProps): react_jsx_runtime248.JSX.Element;
52
52
  displayName: string;
53
53
  };
54
54
  type TooltipArrowProps = React.ComponentProps<typeof Tooltip.Arrow> & {
@@ -59,7 +59,7 @@ declare const TooltipArrow: {
59
59
  className,
60
60
  variant,
61
61
  ...props
62
- }: TooltipArrowProps): react_jsx_runtime274.JSX.Element;
62
+ }: TooltipArrowProps): react_jsx_runtime248.JSX.Element;
63
63
  displayName: string;
64
64
  };
65
65
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lglab/compose-ui",
3
- "version": "0.36.0",
3
+ "version": "0.37.0",
4
4
  "description": "A collection of components built with Base UI & Tailwind CSS",
5
5
  "author": "LGLab",
6
6
  "license": "MIT",
@@ -198,6 +198,10 @@
198
198
  "import": "./dist/textarea.js",
199
199
  "types": "./dist/textarea.d.ts"
200
200
  },
201
+ "./timeline": {
202
+ "import": "./dist/timeline.js",
203
+ "types": "./dist/timeline.d.ts"
204
+ },
201
205
  "./toast": {
202
206
  "import": "./dist/toast.js",
203
207
  "types": "./dist/toast.d.ts"