@urbicon-ui/blocks 6.8.1 → 6.10.1
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/i18n/index.d.ts +20 -0
- package/dist/primitives/JourneyTimeline/JourneyTimeline.svelte +455 -0
- package/dist/primitives/JourneyTimeline/JourneyTimeline.svelte.d.ts +4 -0
- package/dist/primitives/JourneyTimeline/index.d.ts +149 -0
- package/dist/primitives/JourneyTimeline/index.js +2 -0
- package/dist/primitives/JourneyTimeline/journey-timeline.variants.d.ts +397 -0
- package/dist/primitives/JourneyTimeline/journey-timeline.variants.js +329 -0
- package/dist/primitives/Stepper/index.d.ts +1 -0
- package/dist/primitives/Tab/tab.variants.d.ts +8 -8
- package/dist/primitives/index.d.ts +2 -0
- package/dist/primitives/index.js +1 -0
- package/dist/translations/de.d.ts +10 -0
- package/dist/translations/de.js +10 -0
- package/dist/translations/en.d.ts +10 -0
- package/dist/translations/en.js +10 -0
- package/package.json +3 -3
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
import { tv } from '../../utils/variants.js';
|
|
2
|
+
export const journeyTimelineVariants = tv({
|
|
3
|
+
slots: {
|
|
4
|
+
// Root wrapper. Hosts the rail and — in panel mode — the shared readout.
|
|
5
|
+
base: 'w-full',
|
|
6
|
+
// The ordered list of nodes. `flex-col` vertical, `flex-row` horizontal.
|
|
7
|
+
rail: 'flex list-none m-0 p-0',
|
|
8
|
+
// A single node <li>. Vertical: grid of [meta?] [marker column] [content];
|
|
9
|
+
// horizontal: flex row of trigger + connector group.
|
|
10
|
+
node: 'group/node',
|
|
11
|
+
// Chronicle-axis column (vertical): right-aligned, tabular — times, dates,
|
|
12
|
+
// versions. Rendered only when any node provides `meta` (or a meta snippet).
|
|
13
|
+
metaColumn: 'shrink-0 text-right',
|
|
14
|
+
meta: [
|
|
15
|
+
'font-mono tabular-nums leading-tight text-text-tertiary',
|
|
16
|
+
'transition-colors duration-[var(--blocks-duration-fast)]'
|
|
17
|
+
],
|
|
18
|
+
// The spine: marker + connector line. Vertical: a narrow column the line
|
|
19
|
+
// grows down inside; horizontal: a full-width row the line grows right in.
|
|
20
|
+
markerColumn: 'flex items-center',
|
|
21
|
+
// The status dot. Deliberately small — the line is the protagonist, the
|
|
22
|
+
// dots are punctuation (contrast: Stepper's large glyph discs).
|
|
23
|
+
marker: [
|
|
24
|
+
'box-border shrink-0 rounded-commit border-2',
|
|
25
|
+
'transition-[background-color,border-color,box-shadow] duration-[var(--blocks-duration-fast)]'
|
|
26
|
+
],
|
|
27
|
+
// The connecting line. Drawn with borders so `connectorStyle` can switch
|
|
28
|
+
// solid/dashed/dotted — the connector carries meaning, not just geometry.
|
|
29
|
+
connector: [
|
|
30
|
+
'border-border-default',
|
|
31
|
+
'transition-[border-color] duration-[var(--blocks-duration-normal)]'
|
|
32
|
+
],
|
|
33
|
+
// Content cell (vertical): card + segment label.
|
|
34
|
+
content: 'min-w-0',
|
|
35
|
+
// The focus surface around header + inline detail. Transparent at rest,
|
|
36
|
+
// elevated card when focused inline, selected tint when focused in panel
|
|
37
|
+
// mode — never a bare full-width grey block.
|
|
38
|
+
card: [
|
|
39
|
+
'rounded-contain border border-transparent',
|
|
40
|
+
'transition-[background-color,border-color,box-shadow] duration-[var(--blocks-duration-normal)] ease-[var(--blocks-ease-gentle)]'
|
|
41
|
+
],
|
|
42
|
+
// The interactive header — title + subtitle. A <button> for focusable
|
|
43
|
+
// nodes, a plain <div> for pure waypoints (focusable === false).
|
|
44
|
+
trigger: [
|
|
45
|
+
'flex w-full appearance-none flex-col items-start gap-0.5 border-0 bg-transparent p-0 text-left',
|
|
46
|
+
'rounded-contain',
|
|
47
|
+
'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base'
|
|
48
|
+
],
|
|
49
|
+
labelGroup: 'flex min-w-0 flex-col',
|
|
50
|
+
title: [
|
|
51
|
+
'font-medium leading-tight',
|
|
52
|
+
'transition-colors duration-[var(--blocks-duration-fast)]'
|
|
53
|
+
],
|
|
54
|
+
subtitle: 'text-text-tertiary leading-tight mt-0.5',
|
|
55
|
+
// Label for the stretch between two nodes (duration, transport, gap…).
|
|
56
|
+
segment: 'text-text-quaternary leading-tight',
|
|
57
|
+
// Grid-rows collapse wrapper (0fr → 1fr). Reduced-motion safe: the duration
|
|
58
|
+
// token collapses to 1ms under prefers-reduced-motion (interaction.css).
|
|
59
|
+
detail: [
|
|
60
|
+
'grid',
|
|
61
|
+
'transition-[grid-template-rows] duration-[var(--blocks-duration-normal)] ease-[var(--blocks-ease-smooth)]'
|
|
62
|
+
],
|
|
63
|
+
detailInner: 'min-h-0 overflow-hidden',
|
|
64
|
+
detailContent: 'text-text-secondary',
|
|
65
|
+
// The stable readout (detail="panel" and every horizontal timeline).
|
|
66
|
+
panel: [
|
|
67
|
+
'text-text-secondary border border-border-default bg-surface-elevated rounded-contain',
|
|
68
|
+
'shadow-[var(--blocks-shadow-md)]'
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
variants: {
|
|
72
|
+
orientation: {
|
|
73
|
+
vertical: {
|
|
74
|
+
rail: 'flex-col',
|
|
75
|
+
node: 'grid',
|
|
76
|
+
markerColumn: 'flex-col',
|
|
77
|
+
connector: 'my-1 w-0 min-h-3 flex-1 border-l-2',
|
|
78
|
+
segment: 'flex items-center'
|
|
79
|
+
},
|
|
80
|
+
horizontal: {
|
|
81
|
+
// Column layout so the shared panel sits below the rail.
|
|
82
|
+
base: 'flex flex-col',
|
|
83
|
+
rail: 'flex-row items-start',
|
|
84
|
+
// Stacked station: meta row above the spine, label pill below. Every
|
|
85
|
+
// node but the last stretches so the spine distributes the stations.
|
|
86
|
+
node: 'flex flex-col [&:not(:last-child)]:flex-1',
|
|
87
|
+
// Visual order is meta → spine → labels, but the DOM keeps the trigger
|
|
88
|
+
// before the spine so a segment label is read *after* its node.
|
|
89
|
+
metaColumn: 'order-1 text-left',
|
|
90
|
+
markerColumn: 'order-2 w-full flex-row',
|
|
91
|
+
// Shrink-to-fit pill around the labels only — the marker sits on the
|
|
92
|
+
// spine above, so the whole rail reads as stations on one line.
|
|
93
|
+
trigger: 'order-3 w-auto self-start',
|
|
94
|
+
connector: 'h-0 min-w-3 flex-1 border-t-2',
|
|
95
|
+
// Segment labels sit *in* the line (line — label — line); they widen
|
|
96
|
+
// the gap instead of overlapping the next station's marker.
|
|
97
|
+
segment: 'shrink-0 whitespace-nowrap',
|
|
98
|
+
panel: 'mt-4 w-full'
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
size: {
|
|
102
|
+
sm: {
|
|
103
|
+
meta: 'text-[11px]',
|
|
104
|
+
marker: 'size-2.5',
|
|
105
|
+
node: 'gap-x-2.5',
|
|
106
|
+
card: '-mx-1.5 px-1.5 py-1.5',
|
|
107
|
+
title: 'text-xs',
|
|
108
|
+
subtitle: 'text-[11px]',
|
|
109
|
+
segment: 'text-[11px]',
|
|
110
|
+
content: 'pb-4',
|
|
111
|
+
detailContent: 'text-xs pt-2',
|
|
112
|
+
panel: 'p-3 text-xs'
|
|
113
|
+
},
|
|
114
|
+
md: {
|
|
115
|
+
meta: 'text-xs',
|
|
116
|
+
marker: 'size-3',
|
|
117
|
+
node: 'gap-x-3',
|
|
118
|
+
card: '-mx-2 px-2 py-2',
|
|
119
|
+
title: 'text-sm',
|
|
120
|
+
subtitle: 'text-xs',
|
|
121
|
+
segment: 'text-xs',
|
|
122
|
+
content: 'pb-5',
|
|
123
|
+
detailContent: 'text-sm pt-2.5',
|
|
124
|
+
panel: 'p-4 text-sm'
|
|
125
|
+
},
|
|
126
|
+
lg: {
|
|
127
|
+
meta: 'text-sm',
|
|
128
|
+
marker: 'size-3.5',
|
|
129
|
+
node: 'gap-x-3.5',
|
|
130
|
+
card: '-mx-2.5 px-2.5 py-2.5',
|
|
131
|
+
title: 'text-base',
|
|
132
|
+
subtitle: 'text-sm',
|
|
133
|
+
segment: 'text-sm',
|
|
134
|
+
content: 'pb-6',
|
|
135
|
+
detailContent: 'text-base pt-3',
|
|
136
|
+
panel: 'p-5 text-base'
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
// Marker colour + title tone per journey status. Mirrors the semantic intent
|
|
140
|
+
// palette (success / primary / danger / neutral) used across Badge, Alert,
|
|
141
|
+
// Progress and Stepper.
|
|
142
|
+
status: {
|
|
143
|
+
complete: {
|
|
144
|
+
marker: 'bg-success border-success',
|
|
145
|
+
title: 'text-text-primary'
|
|
146
|
+
},
|
|
147
|
+
active: {
|
|
148
|
+
marker: 'bg-primary border-primary ring-4 ring-primary/15',
|
|
149
|
+
title: 'text-text-primary'
|
|
150
|
+
},
|
|
151
|
+
pending: {
|
|
152
|
+
marker: 'bg-surface-base border-border-strong',
|
|
153
|
+
title: 'text-text-secondary'
|
|
154
|
+
},
|
|
155
|
+
blocked: {
|
|
156
|
+
marker: 'bg-danger border-danger',
|
|
157
|
+
title: 'text-danger'
|
|
158
|
+
},
|
|
159
|
+
skipped: {
|
|
160
|
+
marker: 'bg-surface-subtle border-border-subtle opacity-80',
|
|
161
|
+
title: 'text-text-tertiary'
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
// The currently focused node. Distinct from DOM focus (focus-visible ring).
|
|
165
|
+
focused: {
|
|
166
|
+
true: {
|
|
167
|
+
meta: 'text-text-primary',
|
|
168
|
+
title: 'font-semibold text-text-primary'
|
|
169
|
+
},
|
|
170
|
+
false: {}
|
|
171
|
+
},
|
|
172
|
+
// Focusable nodes react to hover + show a pointer; pure waypoints do not.
|
|
173
|
+
interactive: {
|
|
174
|
+
true: {
|
|
175
|
+
trigger: 'cursor-pointer'
|
|
176
|
+
},
|
|
177
|
+
false: {
|
|
178
|
+
trigger: 'cursor-default'
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
// The connector leaving a completed node reads as "travelled".
|
|
182
|
+
travelled: {
|
|
183
|
+
true: {
|
|
184
|
+
connector: 'border-success'
|
|
185
|
+
},
|
|
186
|
+
false: {}
|
|
187
|
+
},
|
|
188
|
+
// Per-node line style — solid ride, dashed/dotted transfer or gap.
|
|
189
|
+
connectorStyle: {
|
|
190
|
+
solid: { connector: 'border-solid' },
|
|
191
|
+
dashed: { connector: 'border-dashed' },
|
|
192
|
+
dotted: { connector: 'border-dotted' }
|
|
193
|
+
},
|
|
194
|
+
// Where the focused detail lives (vertical only; horizontal is always panel).
|
|
195
|
+
detail: {
|
|
196
|
+
inline: {},
|
|
197
|
+
panel: {}
|
|
198
|
+
},
|
|
199
|
+
// Whether the chronicle axis (meta rail) is rendered — adds the grid column.
|
|
200
|
+
withMeta: {
|
|
201
|
+
true: { node: 'grid-cols-[auto_auto_minmax(0,1fr)]' },
|
|
202
|
+
false: { node: 'grid-cols-[auto_minmax(0,1fr)]' }
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
compoundVariants: [
|
|
206
|
+
// Size geometry that only applies to one orientation. Vertical: fixed
|
|
207
|
+
// meta/marker column widths + baseline offsets that align dot and title;
|
|
208
|
+
// horizontal: spine gaps + the label pill's optical left edge (-mx
|
|
209
|
+
// compensates px so title, marker and meta share one left line).
|
|
210
|
+
{
|
|
211
|
+
orientation: 'vertical',
|
|
212
|
+
size: 'sm',
|
|
213
|
+
class: {
|
|
214
|
+
metaColumn: 'w-10 pt-1.5',
|
|
215
|
+
markerColumn: 'w-3.5',
|
|
216
|
+
marker: 'mt-2',
|
|
217
|
+
segment: 'mt-1.5 gap-1'
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
orientation: 'vertical',
|
|
222
|
+
size: 'md',
|
|
223
|
+
class: {
|
|
224
|
+
metaColumn: 'w-12 pt-2',
|
|
225
|
+
markerColumn: 'w-4',
|
|
226
|
+
marker: 'mt-2.5',
|
|
227
|
+
segment: 'mt-2 gap-1.5'
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
orientation: 'vertical',
|
|
232
|
+
size: 'lg',
|
|
233
|
+
class: {
|
|
234
|
+
metaColumn: 'w-14 pt-2.5',
|
|
235
|
+
markerColumn: 'w-5',
|
|
236
|
+
marker: 'mt-3',
|
|
237
|
+
segment: 'mt-2.5 gap-2'
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
// The fixed spine height keeps every marker on one line whether or not the
|
|
241
|
+
// station's outgoing segment carries a (taller) text label. The metaColumn
|
|
242
|
+
// min-height is the same guarantee for the chronicle row: it holds even
|
|
243
|
+
// when a consumer `meta` snippet renders nothing for some stations.
|
|
244
|
+
{
|
|
245
|
+
orientation: 'horizontal',
|
|
246
|
+
size: 'sm',
|
|
247
|
+
class: {
|
|
248
|
+
node: 'gap-y-0.5',
|
|
249
|
+
metaColumn: 'min-h-3.5',
|
|
250
|
+
markerColumn: 'h-4 gap-1 pr-1',
|
|
251
|
+
trigger: '-mx-1.5 px-1.5 py-1'
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
orientation: 'horizontal',
|
|
256
|
+
size: 'md',
|
|
257
|
+
class: {
|
|
258
|
+
node: 'gap-y-1',
|
|
259
|
+
metaColumn: 'min-h-4',
|
|
260
|
+
markerColumn: 'h-4 gap-1.5 pr-1.5',
|
|
261
|
+
trigger: '-mx-2 px-2 py-1.5'
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
orientation: 'horizontal',
|
|
266
|
+
size: 'lg',
|
|
267
|
+
class: {
|
|
268
|
+
node: 'gap-y-1',
|
|
269
|
+
metaColumn: 'min-h-4.5',
|
|
270
|
+
markerColumn: 'h-5 gap-2 pr-2',
|
|
271
|
+
trigger: '-mx-2.5 px-2.5 py-2'
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
// Vertical + panel: two-column layout on wide viewports; on narrow ones the
|
|
275
|
+
// readout docks to the viewport bottom while the rail scrolls behind it.
|
|
276
|
+
{
|
|
277
|
+
orientation: 'vertical',
|
|
278
|
+
detail: 'panel',
|
|
279
|
+
class: {
|
|
280
|
+
base: 'sm:grid sm:grid-cols-[minmax(0,1fr)_minmax(16rem,20rem)] sm:items-start sm:gap-x-6',
|
|
281
|
+
panel: 'max-sm:sticky max-sm:bottom-4 max-sm:z-[var(--z-docked)] max-sm:mt-4 sm:sticky sm:top-4'
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
// Focused inline node: the elevated card — the focus IS a surface change,
|
|
285
|
+
// not a grey backdrop.
|
|
286
|
+
{
|
|
287
|
+
detail: 'inline',
|
|
288
|
+
focused: true,
|
|
289
|
+
class: {
|
|
290
|
+
card: 'border-border-default bg-surface-elevated shadow-[var(--blocks-shadow-md)]'
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
// Focused row while the detail lives in the panel: quiet selected tint.
|
|
294
|
+
{
|
|
295
|
+
orientation: 'vertical',
|
|
296
|
+
detail: 'panel',
|
|
297
|
+
focused: true,
|
|
298
|
+
class: {
|
|
299
|
+
card: 'bg-surface-selected'
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
{ orientation: 'horizontal', focused: true, class: { trigger: 'bg-surface-selected' } },
|
|
303
|
+
// Hover affordance only on non-focused interactive nodes (a focused inline
|
|
304
|
+
// card must not flicker back to the hover tint).
|
|
305
|
+
{
|
|
306
|
+
orientation: 'vertical',
|
|
307
|
+
interactive: true,
|
|
308
|
+
focused: false,
|
|
309
|
+
class: { card: 'hover:bg-surface-hover' }
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
orientation: 'horizontal',
|
|
313
|
+
interactive: true,
|
|
314
|
+
focused: false,
|
|
315
|
+
class: { trigger: 'hover:bg-surface-hover' }
|
|
316
|
+
}
|
|
317
|
+
],
|
|
318
|
+
defaultVariants: {
|
|
319
|
+
orientation: 'vertical',
|
|
320
|
+
size: 'md',
|
|
321
|
+
status: 'pending',
|
|
322
|
+
focused: false,
|
|
323
|
+
interactive: true,
|
|
324
|
+
travelled: false,
|
|
325
|
+
connectorStyle: 'solid',
|
|
326
|
+
detail: 'inline',
|
|
327
|
+
withMeta: false
|
|
328
|
+
}
|
|
329
|
+
});
|
|
@@ -62,7 +62,7 @@ export declare const tabVariants: (props?: import("../../utils/variants.js").TVP
|
|
|
62
62
|
};
|
|
63
63
|
}> | undefined) => {
|
|
64
64
|
base: (props?: ({
|
|
65
|
-
variant?: "line" | "
|
|
65
|
+
variant?: "line" | "solid" | "pills" | "enclosed" | undefined;
|
|
66
66
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
67
67
|
size?: "sm" | "md" | "lg" | undefined;
|
|
68
68
|
fullWidth?: boolean | undefined;
|
|
@@ -72,7 +72,7 @@ export declare const tabVariants: (props?: import("../../utils/variants.js").TVP
|
|
|
72
72
|
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
73
73
|
}) | undefined) => string;
|
|
74
74
|
list: (props?: ({
|
|
75
|
-
variant?: "line" | "
|
|
75
|
+
variant?: "line" | "solid" | "pills" | "enclosed" | undefined;
|
|
76
76
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
77
77
|
size?: "sm" | "md" | "lg" | undefined;
|
|
78
78
|
fullWidth?: boolean | undefined;
|
|
@@ -82,7 +82,7 @@ export declare const tabVariants: (props?: import("../../utils/variants.js").TVP
|
|
|
82
82
|
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
83
83
|
}) | undefined) => string;
|
|
84
84
|
trigger: (props?: ({
|
|
85
|
-
variant?: "line" | "
|
|
85
|
+
variant?: "line" | "solid" | "pills" | "enclosed" | undefined;
|
|
86
86
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
87
87
|
size?: "sm" | "md" | "lg" | undefined;
|
|
88
88
|
fullWidth?: boolean | undefined;
|
|
@@ -92,7 +92,7 @@ export declare const tabVariants: (props?: import("../../utils/variants.js").TVP
|
|
|
92
92
|
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
93
93
|
}) | undefined) => string;
|
|
94
94
|
icon: (props?: ({
|
|
95
|
-
variant?: "line" | "
|
|
95
|
+
variant?: "line" | "solid" | "pills" | "enclosed" | undefined;
|
|
96
96
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
97
97
|
size?: "sm" | "md" | "lg" | undefined;
|
|
98
98
|
fullWidth?: boolean | undefined;
|
|
@@ -102,7 +102,7 @@ export declare const tabVariants: (props?: import("../../utils/variants.js").TVP
|
|
|
102
102
|
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
103
103
|
}) | undefined) => string;
|
|
104
104
|
label: (props?: ({
|
|
105
|
-
variant?: "line" | "
|
|
105
|
+
variant?: "line" | "solid" | "pills" | "enclosed" | undefined;
|
|
106
106
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
107
107
|
size?: "sm" | "md" | "lg" | undefined;
|
|
108
108
|
fullWidth?: boolean | undefined;
|
|
@@ -112,7 +112,7 @@ export declare const tabVariants: (props?: import("../../utils/variants.js").TVP
|
|
|
112
112
|
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
113
113
|
}) | undefined) => string;
|
|
114
114
|
badge: (props?: ({
|
|
115
|
-
variant?: "line" | "
|
|
115
|
+
variant?: "line" | "solid" | "pills" | "enclosed" | undefined;
|
|
116
116
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
117
117
|
size?: "sm" | "md" | "lg" | undefined;
|
|
118
118
|
fullWidth?: boolean | undefined;
|
|
@@ -122,7 +122,7 @@ export declare const tabVariants: (props?: import("../../utils/variants.js").TVP
|
|
|
122
122
|
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
123
123
|
}) | undefined) => string;
|
|
124
124
|
panel: (props?: ({
|
|
125
|
-
variant?: "line" | "
|
|
125
|
+
variant?: "line" | "solid" | "pills" | "enclosed" | undefined;
|
|
126
126
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
127
127
|
size?: "sm" | "md" | "lg" | undefined;
|
|
128
128
|
fullWidth?: boolean | undefined;
|
|
@@ -132,7 +132,7 @@ export declare const tabVariants: (props?: import("../../utils/variants.js").TVP
|
|
|
132
132
|
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
133
133
|
}) | undefined) => string;
|
|
134
134
|
indicator: (props?: ({
|
|
135
|
-
variant?: "line" | "
|
|
135
|
+
variant?: "line" | "solid" | "pills" | "enclosed" | undefined;
|
|
136
136
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
137
137
|
size?: "sm" | "md" | "lg" | undefined;
|
|
138
138
|
fullWidth?: boolean | undefined;
|
|
@@ -30,6 +30,8 @@ export type { FormFieldProps, FormFieldSlotContext } from './FormField/index.js'
|
|
|
30
30
|
export * from './FormField/index.js';
|
|
31
31
|
export type { InputProps } from './Input/index.js';
|
|
32
32
|
export * from './Input/index.js';
|
|
33
|
+
export type { JourneyNode, JourneyStatus, JourneyTimelineProps } from './JourneyTimeline/index.js';
|
|
34
|
+
export * from './JourneyTimeline/index.js';
|
|
33
35
|
export type { MenuContext, MenuCustomSlots, MenuItemType, MenuObjectOption, MenuOption, MenuProps, MenuSectionHeader } from './Menu/index.js';
|
|
34
36
|
export * from './Menu/index.js';
|
|
35
37
|
export type { PaginationItemProps, PaginationProps } from './Pagination/index.js';
|
package/dist/primitives/index.js
CHANGED
|
@@ -16,6 +16,7 @@ export * from './Dialog/index.js';
|
|
|
16
16
|
export * from './Drawer/index.js';
|
|
17
17
|
export * from './FormField/index.js';
|
|
18
18
|
export * from './Input/index.js';
|
|
19
|
+
export * from './JourneyTimeline/index.js';
|
|
19
20
|
export * from './Menu/index.js';
|
|
20
21
|
export * from './Pagination/index.js';
|
|
21
22
|
export * from './Popover/index.js';
|
|
@@ -129,6 +129,16 @@ declare const _default: {
|
|
|
129
129
|
readonly filterPlaceholder: "Themen filtern…";
|
|
130
130
|
readonly noResults: "Keine passenden Themen";
|
|
131
131
|
};
|
|
132
|
+
readonly journeyTimeline: {
|
|
133
|
+
readonly label: "Verlauf";
|
|
134
|
+
readonly status: {
|
|
135
|
+
readonly complete: "Abgeschlossen";
|
|
136
|
+
readonly active: "In Bearbeitung";
|
|
137
|
+
readonly pending: "Ausstehend";
|
|
138
|
+
readonly blocked: "Blockiert";
|
|
139
|
+
readonly skipped: "Übersprungen";
|
|
140
|
+
};
|
|
141
|
+
};
|
|
132
142
|
readonly datepicker: {
|
|
133
143
|
readonly placeholder: "Datum wählen...";
|
|
134
144
|
readonly rangePlaceholder: "Zeitraum wählen...";
|
package/dist/translations/de.js
CHANGED
|
@@ -129,6 +129,16 @@ export default {
|
|
|
129
129
|
filterPlaceholder: 'Themen filtern…',
|
|
130
130
|
noResults: 'Keine passenden Themen'
|
|
131
131
|
},
|
|
132
|
+
journeyTimeline: {
|
|
133
|
+
label: 'Verlauf',
|
|
134
|
+
status: {
|
|
135
|
+
complete: 'Abgeschlossen',
|
|
136
|
+
active: 'In Bearbeitung',
|
|
137
|
+
pending: 'Ausstehend',
|
|
138
|
+
blocked: 'Blockiert',
|
|
139
|
+
skipped: 'Übersprungen'
|
|
140
|
+
}
|
|
141
|
+
},
|
|
132
142
|
datepicker: {
|
|
133
143
|
placeholder: 'Datum wählen...',
|
|
134
144
|
rangePlaceholder: 'Zeitraum wählen...',
|
|
@@ -129,6 +129,16 @@ declare const _default: {
|
|
|
129
129
|
readonly filterPlaceholder: "Filter topics…";
|
|
130
130
|
readonly noResults: "No matching topics";
|
|
131
131
|
};
|
|
132
|
+
readonly journeyTimeline: {
|
|
133
|
+
readonly label: "Journey";
|
|
134
|
+
readonly status: {
|
|
135
|
+
readonly complete: "Completed";
|
|
136
|
+
readonly active: "In progress";
|
|
137
|
+
readonly pending: "Pending";
|
|
138
|
+
readonly blocked: "Blocked";
|
|
139
|
+
readonly skipped: "Skipped";
|
|
140
|
+
};
|
|
141
|
+
};
|
|
132
142
|
readonly datepicker: {
|
|
133
143
|
readonly placeholder: "Select a date...";
|
|
134
144
|
readonly rangePlaceholder: "Select a date range...";
|
package/dist/translations/en.js
CHANGED
|
@@ -129,6 +129,16 @@ export default {
|
|
|
129
129
|
filterPlaceholder: 'Filter topics…',
|
|
130
130
|
noResults: 'No matching topics'
|
|
131
131
|
},
|
|
132
|
+
journeyTimeline: {
|
|
133
|
+
label: 'Journey',
|
|
134
|
+
status: {
|
|
135
|
+
complete: 'Completed',
|
|
136
|
+
active: 'In progress',
|
|
137
|
+
pending: 'Pending',
|
|
138
|
+
blocked: 'Blocked',
|
|
139
|
+
skipped: 'Skipped'
|
|
140
|
+
}
|
|
141
|
+
},
|
|
132
142
|
datepicker: {
|
|
133
143
|
placeholder: 'Select a date...',
|
|
134
144
|
rangePlaceholder: 'Select a date range...',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@urbicon-ui/blocks",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.10.1",
|
|
4
4
|
"description": "Svelte 5 UI component library with Tailwind CSS 4, OKLCH design tokens and zero runtime dependencies",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -91,8 +91,8 @@
|
|
|
91
91
|
"@sveltejs/package": "^2.5.8",
|
|
92
92
|
"@sveltejs/vite-plugin-svelte": "^7.0.0",
|
|
93
93
|
"@tailwindcss/vite": "^4.3.1",
|
|
94
|
-
"@urbicon-ui/i18n": "6.
|
|
95
|
-
"@urbicon-ui/shared-types": "6.
|
|
94
|
+
"@urbicon-ui/i18n": "6.10.1",
|
|
95
|
+
"@urbicon-ui/shared-types": "6.10.1",
|
|
96
96
|
"prettier": "^3.8.4",
|
|
97
97
|
"prettier-plugin-svelte": "^4.1.1",
|
|
98
98
|
"prettier-plugin-tailwindcss": "^0.8.0",
|