@lindle/linoardo 1.0.39 → 1.0.40

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/styles.css CHANGED
@@ -606,6 +606,9 @@
606
606
  .min-h-80 {
607
607
  min-height: calc(var(--spacing) * 80);
608
608
  }
609
+ .min-h-112 {
610
+ min-height: calc(var(--spacing) * 112);
611
+ }
609
612
  .min-h-\[1\.5rem\] {
610
613
  min-height: 1.5rem;
611
614
  }
@@ -627,9 +630,6 @@
627
630
  .min-h-\[18rem\] {
628
631
  min-height: 18rem;
629
632
  }
630
- .min-h-\[28rem\] {
631
- min-height: 28rem;
632
- }
633
633
  .min-h-screen {
634
634
  min-height: 100vh;
635
635
  }
@@ -858,6 +858,9 @@
858
858
  .grid-cols-7 {
859
859
  grid-template-columns: repeat(7, minmax(0, 1fr));
860
860
  }
861
+ .grid-cols-\[1fr_auto_1fr\] {
862
+ grid-template-columns: 1fr auto 1fr;
863
+ }
861
864
  .grid-cols-\[auto_1fr_auto\] {
862
865
  grid-template-columns: auto 1fr auto;
863
866
  }
@@ -1106,6 +1109,12 @@
1106
1109
  .border-black {
1107
1110
  border-color: var(--color-black);
1108
1111
  }
1112
+ .border-black\/20 {
1113
+ border-color: color-mix(in srgb, #000 20%, transparent);
1114
+ @supports (color: color-mix(in lab, red, red)) {
1115
+ border-color: color-mix(in oklab, var(--color-black) 20%, transparent);
1116
+ }
1117
+ }
1109
1118
  .border-black\/30 {
1110
1119
  border-color: color-mix(in srgb, #000 30%, transparent);
1111
1120
  @supports (color: color-mix(in lab, red, red)) {
@@ -1852,6 +1861,12 @@
1852
1861
  .pl-12 {
1853
1862
  padding-left: calc(var(--spacing) * 12);
1854
1863
  }
1864
+ .pl-14 {
1865
+ padding-left: calc(var(--spacing) * 14);
1866
+ }
1867
+ .pl-16 {
1868
+ padding-left: calc(var(--spacing) * 16);
1869
+ }
1855
1870
  .text-center {
1856
1871
  text-align: center;
1857
1872
  }
@@ -2240,6 +2255,18 @@
2240
2255
  --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-slate-900) 40%, transparent) var(--tw-shadow-alpha), transparent);
2241
2256
  }
2242
2257
  }
2258
+ .ring-amber-500\/20 {
2259
+ --tw-ring-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 20%, transparent);
2260
+ @supports (color: color-mix(in lab, red, red)) {
2261
+ --tw-ring-color: color-mix(in oklab, var(--color-amber-500) 20%, transparent);
2262
+ }
2263
+ }
2264
+ .ring-amber-500\/30 {
2265
+ --tw-ring-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 30%, transparent);
2266
+ @supports (color: color-mix(in lab, red, red)) {
2267
+ --tw-ring-color: color-mix(in oklab, var(--color-amber-500) 30%, transparent);
2268
+ }
2269
+ }
2243
2270
  .ring-black {
2244
2271
  --tw-ring-color: var(--color-black);
2245
2272
  }
@@ -2255,6 +2282,18 @@
2255
2282
  --tw-ring-color: color-mix(in oklab, var(--color-black) 10%, transparent);
2256
2283
  }
2257
2284
  }
2285
+ .ring-black\/20 {
2286
+ --tw-ring-color: color-mix(in srgb, #000 20%, transparent);
2287
+ @supports (color: color-mix(in lab, red, red)) {
2288
+ --tw-ring-color: color-mix(in oklab, var(--color-black) 20%, transparent);
2289
+ }
2290
+ }
2291
+ .ring-black\/30 {
2292
+ --tw-ring-color: color-mix(in srgb, #000 30%, transparent);
2293
+ @supports (color: color-mix(in lab, red, red)) {
2294
+ --tw-ring-color: color-mix(in oklab, var(--color-black) 30%, transparent);
2295
+ }
2296
+ }
2258
2297
  .ring-black\/40 {
2259
2298
  --tw-ring-color: color-mix(in srgb, #000 40%, transparent);
2260
2299
  @supports (color: color-mix(in lab, red, red)) {
@@ -2267,6 +2306,84 @@
2267
2306
  --tw-ring-color: color-mix(in oklab, currentcolor 50%, transparent);
2268
2307
  }
2269
2308
  }
2309
+ .ring-emerald-500\/20 {
2310
+ --tw-ring-color: color-mix(in srgb, oklch(69.6% 0.17 162.48) 20%, transparent);
2311
+ @supports (color: color-mix(in lab, red, red)) {
2312
+ --tw-ring-color: color-mix(in oklab, var(--color-emerald-500) 20%, transparent);
2313
+ }
2314
+ }
2315
+ .ring-emerald-500\/30 {
2316
+ --tw-ring-color: color-mix(in srgb, oklch(69.6% 0.17 162.48) 30%, transparent);
2317
+ @supports (color: color-mix(in lab, red, red)) {
2318
+ --tw-ring-color: color-mix(in oklab, var(--color-emerald-500) 30%, transparent);
2319
+ }
2320
+ }
2321
+ .ring-gray-300\/20 {
2322
+ --tw-ring-color: color-mix(in srgb, oklch(87.2% 0.01 258.338) 20%, transparent);
2323
+ @supports (color: color-mix(in lab, red, red)) {
2324
+ --tw-ring-color: color-mix(in oklab, var(--color-gray-300) 20%, transparent);
2325
+ }
2326
+ }
2327
+ .ring-gray-300\/30 {
2328
+ --tw-ring-color: color-mix(in srgb, oklch(87.2% 0.01 258.338) 30%, transparent);
2329
+ @supports (color: color-mix(in lab, red, red)) {
2330
+ --tw-ring-color: color-mix(in oklab, var(--color-gray-300) 30%, transparent);
2331
+ }
2332
+ }
2333
+ .ring-gray-900\/10 {
2334
+ --tw-ring-color: color-mix(in srgb, oklch(21% 0.034 264.665) 10%, transparent);
2335
+ @supports (color: color-mix(in lab, red, red)) {
2336
+ --tw-ring-color: color-mix(in oklab, var(--color-gray-900) 10%, transparent);
2337
+ }
2338
+ }
2339
+ .ring-gray-900\/15 {
2340
+ --tw-ring-color: color-mix(in srgb, oklch(21% 0.034 264.665) 15%, transparent);
2341
+ @supports (color: color-mix(in lab, red, red)) {
2342
+ --tw-ring-color: color-mix(in oklab, var(--color-gray-900) 15%, transparent);
2343
+ }
2344
+ }
2345
+ .ring-gray-900\/20 {
2346
+ --tw-ring-color: color-mix(in srgb, oklch(21% 0.034 264.665) 20%, transparent);
2347
+ @supports (color: color-mix(in lab, red, red)) {
2348
+ --tw-ring-color: color-mix(in oklab, var(--color-gray-900) 20%, transparent);
2349
+ }
2350
+ }
2351
+ .ring-primary\/20 {
2352
+ --tw-ring-color: color-mix(in srgb, oklch(0.62 0.13 250) 20%, transparent);
2353
+ @supports (color: color-mix(in lab, red, red)) {
2354
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
2355
+ }
2356
+ }
2357
+ .ring-primary\/30 {
2358
+ --tw-ring-color: color-mix(in srgb, oklch(0.62 0.13 250) 30%, transparent);
2359
+ @supports (color: color-mix(in lab, red, red)) {
2360
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 30%, transparent);
2361
+ }
2362
+ }
2363
+ .ring-red-500\/20 {
2364
+ --tw-ring-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent);
2365
+ @supports (color: color-mix(in lab, red, red)) {
2366
+ --tw-ring-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
2367
+ }
2368
+ }
2369
+ .ring-red-500\/30 {
2370
+ --tw-ring-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 30%, transparent);
2371
+ @supports (color: color-mix(in lab, red, red)) {
2372
+ --tw-ring-color: color-mix(in oklab, var(--color-red-500) 30%, transparent);
2373
+ }
2374
+ }
2375
+ .ring-sky-500\/20 {
2376
+ --tw-ring-color: color-mix(in srgb, oklch(68.5% 0.169 237.323) 20%, transparent);
2377
+ @supports (color: color-mix(in lab, red, red)) {
2378
+ --tw-ring-color: color-mix(in oklab, var(--color-sky-500) 20%, transparent);
2379
+ }
2380
+ }
2381
+ .ring-sky-500\/30 {
2382
+ --tw-ring-color: color-mix(in srgb, oklch(68.5% 0.169 237.323) 30%, transparent);
2383
+ @supports (color: color-mix(in lab, red, red)) {
2384
+ --tw-ring-color: color-mix(in oklab, var(--color-sky-500) 30%, transparent);
2385
+ }
2386
+ }
2270
2387
  .ring-white {
2271
2388
  --tw-ring-color: var(--color-white);
2272
2389
  }
@@ -2618,9 +2735,14 @@
2618
2735
  top: calc(var(--spacing) * 0);
2619
2736
  }
2620
2737
  }
2621
- .peer-focus\:left-7 {
2738
+ .peer-focus\:left-3 {
2739
+ &:is(:where(.peer):focus ~ *) {
2740
+ left: calc(var(--spacing) * 3);
2741
+ }
2742
+ }
2743
+ .peer-focus\:left-10 {
2622
2744
  &:is(:where(.peer):focus ~ *) {
2623
- left: calc(var(--spacing) * 7);
2745
+ left: calc(var(--spacing) * 10);
2624
2746
  }
2625
2747
  }
2626
2748
  .peer-focus\:-translate-y-1\/2 {
@@ -3788,6 +3910,11 @@
3788
3910
  background-color: var(--color-gray-100);
3789
3911
  }
3790
3912
  }
3913
+ .dark\:bg-gray-700 {
3914
+ &:is(.dark &) {
3915
+ background-color: var(--color-gray-700);
3916
+ }
3917
+ }
3791
3918
  .dark\:bg-gray-800 {
3792
3919
  &:is(.dark &) {
3793
3920
  background-color: var(--color-gray-800);
@@ -0,0 +1,274 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var tailwindMerge = require('tailwind-merge');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
+
29
+ // src/Feedback/TimeLine/index.tsx
30
+
31
+ // src/globals.ts
32
+ var iconBaseClasses = {
33
+ mdi: ["mdi"]
34
+ };
35
+
36
+ // src/Containment/Chip/states.chip.ts
37
+ var resolveIconClassName = (icon) => {
38
+ if (!icon) {
39
+ return void 0;
40
+ }
41
+ if (typeof icon === "string") {
42
+ const trimmed = icon.trim();
43
+ if (!trimmed) {
44
+ return void 0;
45
+ }
46
+ if (trimmed.includes(" ")) {
47
+ return trimmed;
48
+ }
49
+ const normalized2 = trimmed.startsWith("mdi-") ? trimmed : `mdi-${trimmed}`;
50
+ return ["mdi", normalized2].join(" ");
51
+ }
52
+ const [library, providedName] = icon;
53
+ const normalizedLibrary = library.trim();
54
+ const baseClasses = iconBaseClasses[normalizedLibrary] ?? [normalizedLibrary];
55
+ const iconName = providedName.trim();
56
+ if (!iconName) {
57
+ return baseClasses.join(" ");
58
+ }
59
+ const normalized = iconName.startsWith("mdi-") ? iconName : `mdi-${iconName}`;
60
+ return Array.from(/* @__PURE__ */ new Set([...baseClasses, normalized])).join(" ");
61
+ };
62
+ var densityGapClasses = {
63
+ default: "gap-6",
64
+ compact: "gap-4"
65
+ };
66
+ var alignClasses = {
67
+ start: "items-start",
68
+ center: "items-center",
69
+ end: "items-end"
70
+ };
71
+ var dotSizeClasses = {
72
+ sm: "h-6 w-6 text-xs",
73
+ md: "h-8 w-8 text-sm",
74
+ lg: "h-10 w-10 text-base"
75
+ };
76
+ var paletteDotClasses = {
77
+ primary: {
78
+ filled: { dot: "bg-primary text-white border border-primary", ring: "ring-primary/30" },
79
+ outlined: { dot: "bg-white text-primary border border-primary", ring: "ring-primary/20" },
80
+ tonal: { dot: "bg-primary/15 text-primary border border-primary/20", ring: "ring-primary/20" }
81
+ },
82
+ neutral: {
83
+ filled: { dot: "bg-gray-900 text-white border border-gray-900", ring: "ring-gray-900/20" },
84
+ outlined: { dot: "bg-white text-gray-900 border border-gray-900", ring: "ring-gray-900/15" },
85
+ tonal: { dot: "bg-gray-100 text-gray-800 border border-gray-200", ring: "ring-gray-900/10" }
86
+ },
87
+ info: {
88
+ filled: { dot: "bg-sky-500 text-white border border-sky-500", ring: "ring-sky-500/30" },
89
+ outlined: { dot: "bg-white text-sky-600 border border-sky-500", ring: "ring-sky-500/20" },
90
+ tonal: { dot: "bg-sky-100 text-sky-700 border border-sky-200", ring: "ring-sky-500/20" }
91
+ },
92
+ success: {
93
+ filled: { dot: "bg-emerald-500 text-white border border-emerald-500", ring: "ring-emerald-500/30" },
94
+ outlined: { dot: "bg-white text-emerald-600 border border-emerald-500", ring: "ring-emerald-500/20" },
95
+ tonal: { dot: "bg-emerald-100 text-emerald-700 border border-emerald-200", ring: "ring-emerald-500/20" }
96
+ },
97
+ warning: {
98
+ filled: { dot: "bg-amber-500 text-white border border-amber-500", ring: "ring-amber-500/30" },
99
+ outlined: { dot: "bg-white text-amber-700 border border-amber-500", ring: "ring-amber-500/20" },
100
+ tonal: { dot: "bg-amber-100 text-amber-800 border border-amber-200", ring: "ring-amber-500/20" }
101
+ },
102
+ danger: {
103
+ filled: { dot: "bg-red-500 text-white border border-red-500", ring: "ring-red-500/30" },
104
+ outlined: { dot: "bg-white text-red-600 border border-red-500", ring: "ring-red-500/20" },
105
+ tonal: { dot: "bg-red-100 text-red-700 border border-red-200", ring: "ring-red-500/20" }
106
+ },
107
+ surface: {
108
+ filled: { dot: "bg-white text-gray-900 border border-gray-200", ring: "ring-gray-300/30" },
109
+ outlined: { dot: "bg-white text-gray-900 border border-gray-300", ring: "ring-gray-300/20" },
110
+ tonal: { dot: "bg-gray-50 text-gray-800 border border-gray-200", ring: "ring-gray-300/20" }
111
+ },
112
+ bw: {
113
+ filled: { dot: "bg-black text-white border border-black", ring: "ring-black/30" },
114
+ outlined: { dot: "bg-white text-black border border-black", ring: "ring-black/20" },
115
+ tonal: { dot: "bg-black/10 text-black border border-black/20", ring: "ring-black/20" }
116
+ }
117
+ };
118
+ var resolveDotPalette = (color, variant) => {
119
+ const palette = paletteDotClasses[color] ?? paletteDotClasses.primary;
120
+ return palette[variant] ?? palette.filled;
121
+ };
122
+ var resolveSide = (side, index) => {
123
+ if (side === "alternate") {
124
+ return index % 2 === 0 ? "left" : "right";
125
+ }
126
+ return side;
127
+ };
128
+ var resolveIconNode = (icon) => {
129
+ if (!icon) return null;
130
+ const iconClass = resolveIconClassName(icon);
131
+ return iconClass ? /* @__PURE__ */ jsxRuntime.jsx("i", { className: iconClass, "aria-hidden": true }) : null;
132
+ };
133
+ var TimeLineItem = React__namespace.forwardRef((props, ref) => {
134
+ const {
135
+ title,
136
+ subtitle,
137
+ opposite,
138
+ icon,
139
+ dot,
140
+ color,
141
+ variant = "filled",
142
+ side,
143
+ align,
144
+ hideLine,
145
+ dotClassName,
146
+ contentClassName,
147
+ oppositeClassName,
148
+ lineClassName,
149
+ className,
150
+ children,
151
+ __timelineSide = "right",
152
+ __timelineAlign = "center",
153
+ __timelineDensity = "default",
154
+ __timelineColor = "primary",
155
+ __timelineDotSize = "md",
156
+ __timelineLineColor,
157
+ __timelineLineWidth = 2,
158
+ __timelineIndex = 0,
159
+ __timelineCount = 1,
160
+ ...rest
161
+ } = props;
162
+ const resolvedAlign = align ?? __timelineAlign;
163
+ const resolvedSide = resolveSide(side ?? __timelineSide, __timelineIndex);
164
+ const resolvedColor = color ?? __timelineColor;
165
+ const dotSizeClass = dotSizeClasses[__timelineDotSize] ?? dotSizeClasses.md;
166
+ const dotPalette = resolveDotPalette(resolvedColor, variant);
167
+ const iconNode = resolveIconNode(icon);
168
+ const isLast = __timelineIndex >= __timelineCount - 1;
169
+ const showLine = !hideLine && !isLast;
170
+ const lineStyle = {
171
+ width: __timelineLineWidth,
172
+ backgroundColor: __timelineLineColor
173
+ };
174
+ const baseItemClass = tailwindMerge.twMerge(
175
+ "timeline-item grid grid-cols-[1fr_auto_1fr] gap-4",
176
+ alignClasses[resolvedAlign] ?? alignClasses.center,
177
+ className
178
+ );
179
+ const contentNode = children ?? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
180
+ title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-semibold text-gray-900", children: title }),
181
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-gray-500", children: subtitle })
182
+ ] });
183
+ const leftContent = resolvedSide === "left" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: tailwindMerge.twMerge("flex flex-col text-right", contentClassName), children: contentNode }) : opposite ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: tailwindMerge.twMerge("flex flex-col text-right text-sm text-gray-500", oppositeClassName), children: opposite }) : /* @__PURE__ */ jsxRuntime.jsx("div", {});
184
+ const rightContent = resolvedSide === "right" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: tailwindMerge.twMerge("flex flex-col text-left", contentClassName), children: contentNode }) : opposite ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: tailwindMerge.twMerge("flex flex-col text-left text-sm text-gray-500", oppositeClassName), children: opposite }) : /* @__PURE__ */ jsxRuntime.jsx("div", {});
185
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...rest, ref, className: baseItemClass, children: [
186
+ leftContent,
187
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex h-full flex-col items-center", children: [
188
+ /* @__PURE__ */ jsxRuntime.jsx(
189
+ "span",
190
+ {
191
+ className: tailwindMerge.twMerge(
192
+ "flex items-center justify-center rounded-full ring-4 ring-white",
193
+ dotSizeClass,
194
+ dotPalette.dot,
195
+ dotPalette.ring,
196
+ dotClassName
197
+ ),
198
+ children: dot ?? iconNode
199
+ }
200
+ ),
201
+ /* @__PURE__ */ jsxRuntime.jsx(
202
+ "span",
203
+ {
204
+ className: tailwindMerge.twMerge(
205
+ "mt-3 flex-1 bg-gray-200 dark:bg-gray-700",
206
+ showLine ? void 0 : "invisible",
207
+ lineClassName
208
+ ),
209
+ style: lineStyle,
210
+ "aria-hidden": true
211
+ }
212
+ )
213
+ ] }),
214
+ rightContent
215
+ ] });
216
+ });
217
+ TimeLineItem.displayName = "TimeLine.Item";
218
+ var isTimeLineItem = (child) => {
219
+ if (!React__namespace.isValidElement(child)) {
220
+ return false;
221
+ }
222
+ const elementType = child.type;
223
+ return child.type === TimeLineItem || elementType.displayName === TimeLineItem.displayName;
224
+ };
225
+ var TimeLine = React__namespace.forwardRef((props, ref) => {
226
+ const {
227
+ side = "right",
228
+ align = "center",
229
+ density = "default",
230
+ color = "primary",
231
+ lineColor,
232
+ lineWidth = 2,
233
+ dotSize = "md",
234
+ className,
235
+ children,
236
+ ...rest
237
+ } = props;
238
+ const resolvedGap = densityGapClasses[density] ?? densityGapClasses.default;
239
+ const childArray = React__namespace.Children.toArray(children);
240
+ const resolvedChildren = childArray.map((child, index) => {
241
+ if (!isTimeLineItem(child)) {
242
+ return child;
243
+ }
244
+ return React__namespace.cloneElement(child, {
245
+ __timelineSide: side,
246
+ __timelineAlign: align,
247
+ __timelineDensity: density,
248
+ __timelineColor: color,
249
+ __timelineDotSize: dotSize,
250
+ __timelineLineColor: lineColor,
251
+ __timelineLineWidth: lineWidth,
252
+ __timelineIndex: index,
253
+ __timelineCount: childArray.length
254
+ });
255
+ });
256
+ return /* @__PURE__ */ jsxRuntime.jsx(
257
+ "div",
258
+ {
259
+ ...rest,
260
+ ref,
261
+ className: tailwindMerge.twMerge("timeline flex flex-col", resolvedGap, className),
262
+ children: resolvedChildren
263
+ }
264
+ );
265
+ });
266
+ TimeLine.displayName = "TimeLine";
267
+ var TimeLineWithItem = TimeLine;
268
+ TimeLineWithItem.Item = TimeLineItem;
269
+ var TimeLine_default = TimeLineWithItem;
270
+
271
+ exports.TimeLineItem = TimeLineItem;
272
+ exports.default = TimeLine_default;
273
+ //# sourceMappingURL=timeline.cjs.map
274
+ //# sourceMappingURL=timeline.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/globals.ts","../src/Containment/Chip/states.chip.ts","../src/Feedback/TimeLine/index.tsx"],"names":["normalized","jsx","React","twMerge","jsxs"],"mappings":"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","file":"timeline.cjs","sourcesContent":["export const iconBaseClasses = {\n mdi: ['mdi']\n} as const;\n","import { iconBaseClasses } from '@lindle/linoardo/globals';\nimport { Palette, PropIcon } from '@lindle/linoardo/global.types';\nimport { ChipSize, ChipVariant } from './types.chip';\n\nexport const chipBaseClasses =\n 'inline-flex items-center gap-1.5 border font-medium leading-tight transition-all duration-200 select-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2';\n\nexport const chipSizeClasses: Record<ChipSize, string> = {\n small: 'text-xs px-3 py-1 min-h-[1.5rem]',\n medium: 'text-sm px-4 py-1.5 min-h-[2rem]',\n large: 'text-base px-5 py-2 min-h-[2.5rem]'\n};\n\nexport const closeButtonClasses =\n 'ml-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-transparent text-current/70 transition-colors duration-200 hover:bg-current/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-current/30 focus-visible:ring-offset-2';\n\nconst blackAndWhitePaletteClasses = {\n solid: 'bg-black text-white border border-black hover:bg-black/90 focus-visible:ring-black/40 focus-visible:ring-offset-white',\n outline:\n 'bg-white text-black border-2 border-black hover:bg-black hover:text-white focus-visible:ring-black/40 focus-visible:ring-offset-white',\n ghost:\n 'bg-neutral-200 text-black border border-transparent hover:bg-neutral-300 focus-visible:ring-black/20',\n text:\n 'bg-transparent text-black border border-transparent hover:bg-neutral-200 focus-visible:ring-black/20',\n filled:\n 'bg-black/10 text-black border border-black/30 hover:bg-black/20 focus-visible:ring-black/20',\n underlined:\n 'bg-transparent text-black border-0 border-b-2 border-black px-0 rounded-none hover:text-black/80 focus-visible:ring-black/20',\n rounded:\n 'rounded-full bg-white text-black border-2 border-black hover:bg-black hover:text-white focus-visible:ring-black/40 focus-visible:ring-offset-white',\n sharp:\n 'rounded-none bg-black text-white border border-black hover:bg-black/90 focus-visible:ring-black/40 focus-visible:ring-offset-white'\n} satisfies Record<ChipVariant, string>;\n\nconst paletteVariantClasses: Record<Palette, Record<ChipVariant, string>> = {\n primary: {\n solid: 'bg-primary text-white border border-primary hover:bg-primary/90',\n sharp: 'rounded-none bg-primary text-white border border-primary hover:bg-primary/90',\n outline: 'bg-transparent text-primary border border-primary hover:bg-primary/10',\n ghost: 'bg-primary/15 text-primary border border-transparent hover:bg-primary/25',\n text: 'bg-transparent text-primary border border-transparent hover:text-primary/80',\n filled: 'bg-primary/10 text-primary border border-primary/30 hover:bg-primary/20',\n underlined: 'bg-transparent text-primary border-0 border-b-2 border-primary px-0 rounded-none hover:text-primary/80',\n rounded: 'bg-white text-primary border border-primary/40 shadow-sm hover:bg-primary/5'\n },\n neutral: {\n solid: 'bg-gray-900 text-white border border-gray-900 hover:bg-gray-800',\n sharp: 'rounded-none bg-gray-900 text-white border border-gray-900 hover:bg-gray-800',\n outline: 'bg-transparent text-gray-900 border border-gray-500 hover:bg-gray-100',\n ghost: 'bg-gray-100 text-gray-900 border border-transparent hover:bg-gray-200',\n text: 'bg-transparent text-gray-900 border border-transparent hover:text-gray-700',\n filled: 'bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300',\n underlined: 'bg-transparent text-gray-900 border-0 border-b-2 border-gray-500 px-0 rounded-none hover:text-gray-700',\n rounded: 'bg-white text-gray-900 border border-gray-300 shadow-sm hover:bg-gray-100'\n },\n info: {\n solid: 'bg-sky-500 text-white border border-sky-500 hover:bg-sky-600',\n sharp: 'rounded-none bg-sky-500 text-white border border-sky-500 hover:bg-sky-600',\n outline: 'bg-transparent text-sky-600 border border-sky-500 hover:bg-sky-50',\n ghost: 'bg-sky-100 text-sky-700 border border-transparent hover:bg-sky-200',\n text: 'bg-transparent text-sky-600 border border-transparent hover:text-sky-700',\n filled: 'bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200',\n underlined: 'bg-transparent text-sky-600 border-0 border-b-2 border-sky-500 px-0 rounded-none hover:text-sky-700',\n rounded: 'bg-white text-sky-700 border border-sky-200 shadow-sm hover:bg-sky-50'\n },\n success: {\n solid: 'bg-emerald-500 text-white border border-emerald-500 hover:bg-emerald-600',\n sharp: 'rounded-none bg-emerald-500 text-white border border-emerald-500 hover:bg-emerald-600',\n outline: 'bg-transparent text-emerald-600 border border-emerald-500 hover:bg-emerald-50',\n ghost: 'bg-emerald-100 text-emerald-700 border border-transparent hover:bg-emerald-200',\n text: 'bg-transparent text-emerald-600 border border-transparent hover:text-emerald-700',\n filled: 'bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-emerald-200',\n underlined:\n 'bg-transparent text-emerald-600 border-0 border-b-2 border-emerald-500 px-0 rounded-none hover:text-emerald-700',\n rounded: 'bg-white text-emerald-700 border border-emerald-200 shadow-sm hover:bg-emerald-50'\n },\n warning: {\n solid: 'bg-amber-500 text-white border border-amber-500 hover:bg-amber-600',\n sharp: 'rounded-none bg-amber-500 text-white border border-amber-500 hover:bg-amber-600',\n outline: 'bg-transparent text-amber-700 border border-amber-500 hover:bg-amber-50',\n ghost: 'bg-amber-100 text-amber-800 border border-transparent hover:bg-amber-200',\n text: 'bg-transparent text-amber-700 border border-transparent hover:text-amber-800',\n filled: 'bg-amber-100 text-amber-800 border border-amber-200 hover:bg-amber-200',\n underlined:\n 'bg-transparent text-amber-700 border-0 border-b-2 border-amber-500 px-0 rounded-none hover:text-amber-800',\n rounded: 'bg-white text-amber-700 border border-amber-200 shadow-sm hover:bg-amber-50'\n },\n danger: {\n solid: 'bg-red-500 text-white border border-red-500 hover:bg-red-600',\n sharp: 'rounded-none bg-red-500 text-white border border-red-500 hover:bg-red-600',\n outline: 'bg-transparent text-red-600 border border-red-500 hover:bg-red-50',\n ghost: 'bg-red-100 text-red-700 border border-transparent hover:bg-red-200',\n text: 'bg-transparent text-red-600 border border-transparent hover:text-red-700',\n filled: 'bg-red-100 text-red-700 border border-red-200 hover:bg-red-200',\n underlined: 'bg-transparent text-red-600 border-0 border-b-2 border-red-500 px-0 rounded-none hover:text-red-700',\n rounded: 'bg-white text-red-600 border border-red-200 shadow-sm hover:bg-red-50'\n },\n surface: {\n solid: 'bg-white text-gray-900 border border-gray-200 hover:bg-gray-50',\n sharp: 'rounded-none bg-white text-gray-900 border border-gray-200 hover:bg-gray-50',\n outline: 'bg-transparent text-gray-900 border border-gray-300 hover:bg-gray-50',\n ghost: 'bg-gray-100 text-gray-900 border border-transparent hover:bg-gray-200',\n text: 'bg-transparent text-gray-900 border border-transparent hover:text-gray-600',\n filled: 'bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white',\n underlined: 'bg-transparent text-gray-900 border-0 border-b-2 border-gray-400 px-0 rounded-none hover:text-gray-600',\n rounded: 'bg-white text-gray-900 border border-gray-200 shadow-sm hover:bg-gray-50'\n },\n bw: blackAndWhitePaletteClasses\n};\n\nexport const resolveVariantClass = (variant: ChipVariant, palette: Palette) => {\n const variants = paletteVariantClasses[palette] ?? paletteVariantClasses.primary;\n return variants[variant] ?? variants.solid;\n};\n\nexport const resolveIconClassName = (icon?: PropIcon) => {\n if (!icon) {\n return undefined;\n }\n\n if (typeof icon === 'string') {\n const trimmed = icon.trim();\n if (!trimmed) {\n return undefined;\n }\n\n if (trimmed.includes(' ')) {\n return trimmed;\n }\n\n const normalized = trimmed.startsWith('mdi-') ? trimmed : `mdi-${trimmed}`;\n return ['mdi', normalized].join(' ');\n }\n\n const [library, providedName] = icon;\n const normalizedLibrary = library.trim();\n const baseClasses = iconBaseClasses[normalizedLibrary as keyof typeof iconBaseClasses] ?? [normalizedLibrary];\n const iconName = providedName.trim();\n if (!iconName) {\n return baseClasses.join(' ');\n }\n\n const normalized = iconName.startsWith('mdi-') ? iconName : `mdi-${iconName}`;\n return Array.from(new Set([...baseClasses, normalized])).join(' ');\n};\n","import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport type { Palette, PropIcon } from '@lindle/linoardo/global.types';\nimport { resolveIconClassName } from '../../Containment/Chip/states.chip';\nimport type {\n TimeLineAlign,\n TimeLineDensity,\n TimeLineDotSize,\n TimeLineDotVariant,\n TimeLineItemProps,\n TimeLineProps,\n TimeLineSide\n} from './types.timeline';\n\nconst densityGapClasses: Record<TimeLineDensity, string> = {\n default: 'gap-6',\n compact: 'gap-4'\n};\n\nconst alignClasses: Record<TimeLineAlign, string> = {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end'\n};\n\nconst dotSizeClasses: Record<TimeLineDotSize, string> = {\n sm: 'h-6 w-6 text-xs',\n md: 'h-8 w-8 text-sm',\n lg: 'h-10 w-10 text-base'\n};\n\nconst paletteDotClasses: Record<\n Palette,\n Record<TimeLineDotVariant, { dot: string; ring: string }>\n> = {\n primary: {\n filled: { dot: 'bg-primary text-white border border-primary', ring: 'ring-primary/30' },\n outlined: { dot: 'bg-white text-primary border border-primary', ring: 'ring-primary/20' },\n tonal: { dot: 'bg-primary/15 text-primary border border-primary/20', ring: 'ring-primary/20' }\n },\n neutral: {\n filled: { dot: 'bg-gray-900 text-white border border-gray-900', ring: 'ring-gray-900/20' },\n outlined: { dot: 'bg-white text-gray-900 border border-gray-900', ring: 'ring-gray-900/15' },\n tonal: { dot: 'bg-gray-100 text-gray-800 border border-gray-200', ring: 'ring-gray-900/10' }\n },\n info: {\n filled: { dot: 'bg-sky-500 text-white border border-sky-500', ring: 'ring-sky-500/30' },\n outlined: { dot: 'bg-white text-sky-600 border border-sky-500', ring: 'ring-sky-500/20' },\n tonal: { dot: 'bg-sky-100 text-sky-700 border border-sky-200', ring: 'ring-sky-500/20' }\n },\n success: {\n filled: { dot: 'bg-emerald-500 text-white border border-emerald-500', ring: 'ring-emerald-500/30' },\n outlined: { dot: 'bg-white text-emerald-600 border border-emerald-500', ring: 'ring-emerald-500/20' },\n tonal: { dot: 'bg-emerald-100 text-emerald-700 border border-emerald-200', ring: 'ring-emerald-500/20' }\n },\n warning: {\n filled: { dot: 'bg-amber-500 text-white border border-amber-500', ring: 'ring-amber-500/30' },\n outlined: { dot: 'bg-white text-amber-700 border border-amber-500', ring: 'ring-amber-500/20' },\n tonal: { dot: 'bg-amber-100 text-amber-800 border border-amber-200', ring: 'ring-amber-500/20' }\n },\n danger: {\n filled: { dot: 'bg-red-500 text-white border border-red-500', ring: 'ring-red-500/30' },\n outlined: { dot: 'bg-white text-red-600 border border-red-500', ring: 'ring-red-500/20' },\n tonal: { dot: 'bg-red-100 text-red-700 border border-red-200', ring: 'ring-red-500/20' }\n },\n surface: {\n filled: { dot: 'bg-white text-gray-900 border border-gray-200', ring: 'ring-gray-300/30' },\n outlined: { dot: 'bg-white text-gray-900 border border-gray-300', ring: 'ring-gray-300/20' },\n tonal: { dot: 'bg-gray-50 text-gray-800 border border-gray-200', ring: 'ring-gray-300/20' }\n },\n bw: {\n filled: { dot: 'bg-black text-white border border-black', ring: 'ring-black/30' },\n outlined: { dot: 'bg-white text-black border border-black', ring: 'ring-black/20' },\n tonal: { dot: 'bg-black/10 text-black border border-black/20', ring: 'ring-black/20' }\n }\n};\n\nconst resolveDotPalette = (\n color: Palette,\n variant: TimeLineDotVariant\n) => {\n const palette = paletteDotClasses[color] ?? paletteDotClasses.primary;\n return palette[variant] ?? palette.filled;\n};\n\nconst resolveSide = (\n side: TimeLineSide,\n index: number\n): Exclude<TimeLineSide, 'alternate'> => {\n if (side === 'alternate') {\n return index % 2 === 0 ? 'left' : 'right';\n }\n return side;\n};\n\nconst resolveIconNode = (icon?: PropIcon) => {\n if (!icon) return null;\n const iconClass = resolveIconClassName(icon);\n return iconClass ? <i className={iconClass} aria-hidden /> : null;\n};\n\ntype InternalItemProps = TimeLineItemProps & {\n __timelineSide?: TimeLineSide;\n __timelineAlign?: TimeLineAlign;\n __timelineDensity?: TimeLineDensity;\n __timelineColor?: Palette;\n __timelineDotSize?: TimeLineDotSize;\n __timelineLineColor?: string;\n __timelineLineWidth?: number;\n __timelineIndex?: number;\n __timelineCount?: number;\n};\n\n/**\n * Single timeline item with dot, optional icon and left/right content slots.\n */\nconst TimeLineItem = React.forwardRef<HTMLDivElement, InternalItemProps>((props, ref) => {\n const {\n title,\n subtitle,\n opposite,\n icon,\n dot,\n color,\n variant = 'filled',\n side,\n align,\n hideLine,\n dotClassName,\n contentClassName,\n oppositeClassName,\n lineClassName,\n className,\n children,\n __timelineSide = 'right',\n __timelineAlign = 'center',\n __timelineDensity = 'default',\n __timelineColor = 'primary',\n __timelineDotSize = 'md',\n __timelineLineColor,\n __timelineLineWidth = 2,\n __timelineIndex = 0,\n __timelineCount = 1,\n ...rest\n } = props;\n\n const resolvedAlign = align ?? __timelineAlign;\n const resolvedSide = resolveSide(side ?? __timelineSide, __timelineIndex);\n const resolvedColor = color ?? __timelineColor;\n const dotSizeClass = dotSizeClasses[__timelineDotSize] ?? dotSizeClasses.md;\n const dotPalette = resolveDotPalette(resolvedColor, variant);\n const iconNode = resolveIconNode(icon);\n const isLast = __timelineIndex >= __timelineCount - 1;\n const showLine = !hideLine && !isLast;\n const lineStyle: React.CSSProperties = {\n width: __timelineLineWidth,\n backgroundColor: __timelineLineColor\n };\n\n const baseItemClass = twMerge(\n 'timeline-item grid grid-cols-[1fr_auto_1fr] gap-4',\n alignClasses[resolvedAlign] ?? alignClasses.center,\n className\n );\n\n const contentNode = children ?? (\n <div className='space-y-1'>\n {title && <div className='text-sm font-semibold text-gray-900'>{title}</div>}\n {subtitle && <div className='text-sm text-gray-500'>{subtitle}</div>}\n </div>\n );\n\n const leftContent =\n resolvedSide === 'left' ? (\n <div className={twMerge('flex flex-col text-right', contentClassName)}>{contentNode}</div>\n ) : opposite ? (\n <div className={twMerge('flex flex-col text-right text-sm text-gray-500', oppositeClassName)}>\n {opposite}\n </div>\n ) : (\n <div />\n );\n\n const rightContent =\n resolvedSide === 'right' ? (\n <div className={twMerge('flex flex-col text-left', contentClassName)}>{contentNode}</div>\n ) : opposite ? (\n <div className={twMerge('flex flex-col text-left text-sm text-gray-500', oppositeClassName)}>\n {opposite}\n </div>\n ) : (\n <div />\n );\n\n return (\n <div {...rest} ref={ref} className={baseItemClass}>\n {leftContent}\n <div className='relative flex h-full flex-col items-center'>\n <span\n className={twMerge(\n 'flex items-center justify-center rounded-full ring-4 ring-white',\n dotSizeClass,\n dotPalette.dot,\n dotPalette.ring,\n dotClassName\n )}\n >\n {dot ?? iconNode}\n </span>\n <span\n className={twMerge(\n 'mt-3 flex-1 bg-gray-200 dark:bg-gray-700',\n showLine ? undefined : 'invisible',\n lineClassName\n )}\n style={lineStyle}\n aria-hidden\n />\n </div>\n {rightContent}\n </div>\n );\n});\n\nTimeLineItem.displayName = 'TimeLine.Item';\n\nconst isTimeLineItem = (child: React.ReactNode): child is React.ReactElement<InternalItemProps> => {\n if (!React.isValidElement(child)) {\n return false;\n }\n\n const elementType = child.type as { displayName?: string };\n return child.type === TimeLineItem || elementType.displayName === TimeLineItem.displayName;\n};\n\n/**\n * Vuetify-inspired timeline container with optional alternating layout.\n */\nconst TimeLine = React.forwardRef<HTMLDivElement, TimeLineProps>((props, ref) => {\n const {\n side = 'right',\n align = 'center',\n density = 'default',\n color = 'primary',\n lineColor,\n lineWidth = 2,\n dotSize = 'md',\n className,\n children,\n ...rest\n } = props;\n\n const resolvedGap = densityGapClasses[density] ?? densityGapClasses.default;\n const childArray = React.Children.toArray(children);\n\n const resolvedChildren = childArray.map((child, index) => {\n if (!isTimeLineItem(child)) {\n return child;\n }\n\n return React.cloneElement(child, {\n __timelineSide: side,\n __timelineAlign: align,\n __timelineDensity: density,\n __timelineColor: color,\n __timelineDotSize: dotSize,\n __timelineLineColor: lineColor,\n __timelineLineWidth: lineWidth,\n __timelineIndex: index,\n __timelineCount: childArray.length\n });\n });\n\n return (\n <div\n {...rest}\n ref={ref}\n className={twMerge('timeline flex flex-col', resolvedGap, className)}\n >\n {resolvedChildren}\n </div>\n );\n});\n\nTimeLine.displayName = 'TimeLine';\n\ntype TimeLineComponent = React.ForwardRefExoticComponent<\n TimeLineProps & React.RefAttributes<HTMLDivElement>\n> & {\n Item: typeof TimeLineItem;\n};\n\nconst TimeLineWithItem = TimeLine as TimeLineComponent;\nTimeLineWithItem.Item = TimeLineItem;\n\nexport { TimeLineItem };\nexport type {\n TimeLineProps,\n TimeLineItemProps,\n TimeLineSide,\n TimeLineAlign,\n TimeLineDensity,\n TimeLineDotVariant,\n TimeLineDotSize\n};\nexport default TimeLineWithItem;\n"]}
@@ -0,0 +1,54 @@
1
+ import * as react from 'react';
2
+ import { P as Palette, b as PropIcon } from './global.types-D-o85tuX.cjs';
3
+
4
+ type TimeLineSide = 'left' | 'right' | 'alternate';
5
+ type TimeLineAlign = 'start' | 'center' | 'end';
6
+ type TimeLineDensity = 'default' | 'compact';
7
+ type TimeLineDotSize = 'sm' | 'md' | 'lg';
8
+ type TimeLineDotVariant = 'filled' | 'outlined' | 'tonal';
9
+ interface TimeLineProps extends react.HTMLAttributes<HTMLDivElement> {
10
+ side?: TimeLineSide;
11
+ align?: TimeLineAlign;
12
+ density?: TimeLineDensity;
13
+ color?: Palette;
14
+ lineColor?: string;
15
+ lineWidth?: number;
16
+ dotSize?: TimeLineDotSize;
17
+ }
18
+ interface TimeLineItemProps extends Omit<react.HTMLAttributes<HTMLDivElement>, 'title'> {
19
+ title?: react.ReactNode;
20
+ subtitle?: react.ReactNode;
21
+ opposite?: react.ReactNode;
22
+ icon?: PropIcon;
23
+ dot?: react.ReactNode;
24
+ color?: Palette;
25
+ variant?: TimeLineDotVariant;
26
+ side?: Exclude<TimeLineSide, 'alternate'>;
27
+ align?: TimeLineAlign;
28
+ hideLine?: boolean;
29
+ dotClassName?: string;
30
+ contentClassName?: string;
31
+ oppositeClassName?: string;
32
+ lineClassName?: string;
33
+ }
34
+
35
+ /**
36
+ * Single timeline item with dot, optional icon and left/right content slots.
37
+ */
38
+ declare const TimeLineItem: react.ForwardRefExoticComponent<TimeLineItemProps & {
39
+ __timelineSide?: TimeLineSide;
40
+ __timelineAlign?: TimeLineAlign;
41
+ __timelineDensity?: TimeLineDensity;
42
+ __timelineColor?: Palette;
43
+ __timelineDotSize?: TimeLineDotSize;
44
+ __timelineLineColor?: string;
45
+ __timelineLineWidth?: number;
46
+ __timelineIndex?: number;
47
+ __timelineCount?: number;
48
+ } & react.RefAttributes<HTMLDivElement>>;
49
+ type TimeLineComponent = react.ForwardRefExoticComponent<TimeLineProps & react.RefAttributes<HTMLDivElement>> & {
50
+ Item: typeof TimeLineItem;
51
+ };
52
+ declare const TimeLineWithItem: TimeLineComponent;
53
+
54
+ export { type TimeLineAlign, type TimeLineDensity, type TimeLineDotSize, type TimeLineDotVariant, TimeLineItem, type TimeLineItemProps, type TimeLineProps, type TimeLineSide, TimeLineWithItem as default };
@@ -0,0 +1,54 @@
1
+ import * as react from 'react';
2
+ import { P as Palette, b as PropIcon } from './global.types-D-o85tuX.js';
3
+
4
+ type TimeLineSide = 'left' | 'right' | 'alternate';
5
+ type TimeLineAlign = 'start' | 'center' | 'end';
6
+ type TimeLineDensity = 'default' | 'compact';
7
+ type TimeLineDotSize = 'sm' | 'md' | 'lg';
8
+ type TimeLineDotVariant = 'filled' | 'outlined' | 'tonal';
9
+ interface TimeLineProps extends react.HTMLAttributes<HTMLDivElement> {
10
+ side?: TimeLineSide;
11
+ align?: TimeLineAlign;
12
+ density?: TimeLineDensity;
13
+ color?: Palette;
14
+ lineColor?: string;
15
+ lineWidth?: number;
16
+ dotSize?: TimeLineDotSize;
17
+ }
18
+ interface TimeLineItemProps extends Omit<react.HTMLAttributes<HTMLDivElement>, 'title'> {
19
+ title?: react.ReactNode;
20
+ subtitle?: react.ReactNode;
21
+ opposite?: react.ReactNode;
22
+ icon?: PropIcon;
23
+ dot?: react.ReactNode;
24
+ color?: Palette;
25
+ variant?: TimeLineDotVariant;
26
+ side?: Exclude<TimeLineSide, 'alternate'>;
27
+ align?: TimeLineAlign;
28
+ hideLine?: boolean;
29
+ dotClassName?: string;
30
+ contentClassName?: string;
31
+ oppositeClassName?: string;
32
+ lineClassName?: string;
33
+ }
34
+
35
+ /**
36
+ * Single timeline item with dot, optional icon and left/right content slots.
37
+ */
38
+ declare const TimeLineItem: react.ForwardRefExoticComponent<TimeLineItemProps & {
39
+ __timelineSide?: TimeLineSide;
40
+ __timelineAlign?: TimeLineAlign;
41
+ __timelineDensity?: TimeLineDensity;
42
+ __timelineColor?: Palette;
43
+ __timelineDotSize?: TimeLineDotSize;
44
+ __timelineLineColor?: string;
45
+ __timelineLineWidth?: number;
46
+ __timelineIndex?: number;
47
+ __timelineCount?: number;
48
+ } & react.RefAttributes<HTMLDivElement>>;
49
+ type TimeLineComponent = react.ForwardRefExoticComponent<TimeLineProps & react.RefAttributes<HTMLDivElement>> & {
50
+ Item: typeof TimeLineItem;
51
+ };
52
+ declare const TimeLineWithItem: TimeLineComponent;
53
+
54
+ export { type TimeLineAlign, type TimeLineDensity, type TimeLineDotSize, type TimeLineDotVariant, TimeLineItem, type TimeLineItemProps, type TimeLineProps, type TimeLineSide, TimeLineWithItem as default };
@@ -0,0 +1,5 @@
1
+ export { TimeLineItem, TimeLine_default as default } from './chunk-4J3SRVOS.js';
2
+ import './chunk-PSMGRUU5.js';
3
+ import './chunk-IEILIKS2.js';
4
+ //# sourceMappingURL=timeline.js.map
5
+ //# sourceMappingURL=timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"timeline.js"}