@signal9/era-ui 34.11.3 → 34.12.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/CHANGELOG.md +12 -0
- package/dist/ui/timeline/context.svelte.d.ts +5 -2
- package/dist/ui/timeline/context.svelte.js +6 -3
- package/dist/ui/timeline/timeline-step.svelte +19 -2
- package/dist/ui/timeline/timeline-step.svelte.d.ts +3 -1
- package/dist/ui/timeline/timeline.svelte +5 -1
- package/dist/ui/timeline/timeline.svelte.d.ts +3 -0
- package/package.json +1 -1
- package/skills/era-ui/references/releases/34.md +12 -0
- package/skills/era-ui/references/releases/index.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [34.12.1](https://github.com/sig-nine/era-ui/compare/v34.12.0...v34.12.1) (2026-08-31)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **timeline:** fill zero-duration activity rows ([9e1f6d9](https://github.com/sig-nine/era-ui/commit/9e1f6d96630918bbc457f34529fbd0d3ef5f9877))
|
|
6
|
+
|
|
7
|
+
## [34.12.0](https://github.com/sig-nine/era-ui/compare/v34.11.3...v34.12.0) (2026-08-31)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **timeline:** support completed activity icons ([b630d00](https://github.com/sig-nine/era-ui/commit/b630d00b8f5c001d010f782c399a58a0628bc1c6))
|
|
12
|
+
|
|
1
13
|
## [34.11.3](https://github.com/sig-nine/era-ui/compare/v34.11.2...v34.11.3) (2026-08-31)
|
|
2
14
|
|
|
3
15
|
### Bug Fixes
|
|
@@ -84,8 +84,11 @@ export declare class TimelineData {
|
|
|
84
84
|
* steps stay legible and the survivors keep their true ratios, with no floor
|
|
85
85
|
* stolen from the pool and no chance of the row overflowing.
|
|
86
86
|
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
87
|
+
* Once any duration exists, a pending step returns 0 and collapses to its
|
|
88
|
+
* min-width: it has taken no time, so it has earned no proportional width.
|
|
89
|
+
* When the WHOLE row totals zero, however, there is no ratio to encode. Equal
|
|
90
|
+
* growth then consumes the available row instead of marooning one 0ms tool at
|
|
91
|
+
* the minimum floor. As soon as a duration appears, real weights take over.
|
|
89
92
|
*/
|
|
90
93
|
grow(step: AnyTimelineStep): number;
|
|
91
94
|
}
|
|
@@ -71,11 +71,14 @@ export class TimelineData {
|
|
|
71
71
|
* steps stay legible and the survivors keep their true ratios, with no floor
|
|
72
72
|
* stolen from the pool and no chance of the row overflowing.
|
|
73
73
|
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
74
|
+
* Once any duration exists, a pending step returns 0 and collapses to its
|
|
75
|
+
* min-width: it has taken no time, so it has earned no proportional width.
|
|
76
|
+
* When the WHOLE row totals zero, however, there is no ratio to encode. Equal
|
|
77
|
+
* growth then consumes the available row instead of marooning one 0ms tool at
|
|
78
|
+
* the minimum floor. As soon as a duration appears, real weights take over.
|
|
76
79
|
*/
|
|
77
80
|
grow(step) {
|
|
78
|
-
return this.elapsed(step);
|
|
81
|
+
return this.total === 0 ? 1 : this.elapsed(step);
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
84
|
const KEY = Symbol('era.timeline');
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
</script>
|
|
41
41
|
|
|
42
42
|
<script lang="ts">
|
|
43
|
+
import type { Snippet } from 'svelte';
|
|
43
44
|
import CircleCheck from '@lucide/svelte/icons/circle-check';
|
|
44
45
|
import Circle from '@lucide/svelte/icons/circle';
|
|
45
46
|
import CircleAlert from '@lucide/svelte/icons/circle-alert';
|
|
@@ -58,8 +59,14 @@
|
|
|
58
59
|
let {
|
|
59
60
|
step,
|
|
60
61
|
showClock = true,
|
|
62
|
+
activityCompletedIcon,
|
|
61
63
|
class: className
|
|
62
|
-
}: {
|
|
64
|
+
}: {
|
|
65
|
+
step: AnyTimelineStep;
|
|
66
|
+
showClock?: boolean;
|
|
67
|
+
activityCompletedIcon?: Snippet<[ActivityTimelineStep]>;
|
|
68
|
+
class?: string;
|
|
69
|
+
} = $props();
|
|
63
70
|
|
|
64
71
|
const data = getTimelineData();
|
|
65
72
|
const tone = $derived(
|
|
@@ -110,7 +117,17 @@
|
|
|
110
117
|
{:else if activityStep.state === 'awaiting'}
|
|
111
118
|
<CircleAlert class="size-icon shrink-0 {activityTone.icon}" aria-hidden="true" />
|
|
112
119
|
{:else if activityStep.state === 'done'}
|
|
113
|
-
|
|
120
|
+
{#if activityCompletedIcon}
|
|
121
|
+
<span
|
|
122
|
+
class="flex size-icon shrink-0 items-center justify-center {activityTone.icon}"
|
|
123
|
+
aria-hidden="true"
|
|
124
|
+
data-timeline-activity-icon="completed"
|
|
125
|
+
>
|
|
126
|
+
{@render activityCompletedIcon(activityStep)}
|
|
127
|
+
</span>
|
|
128
|
+
{:else}
|
|
129
|
+
<CircleCheck class="size-icon shrink-0 {activityTone.icon}" aria-hidden="true" />
|
|
130
|
+
{/if}
|
|
114
131
|
{:else if activityStep.state === 'failed'}
|
|
115
132
|
<CircleX class="size-icon shrink-0 {activityTone.icon}" aria-hidden="true" />
|
|
116
133
|
{:else if activityStep.state === 'cancelled'}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { ActivityTimelineState } from './context.svelte.js';
|
|
2
2
|
export declare const ACTIVITY_STATE_LABEL: Record<ActivityTimelineState, string>;
|
|
3
|
-
import {
|
|
3
|
+
import type { Snippet } from 'svelte';
|
|
4
|
+
import { type ActivityTimelineStep, type AnyTimelineStep } from './context.svelte.js';
|
|
4
5
|
type $$ComponentProps = {
|
|
5
6
|
step: AnyTimelineStep;
|
|
6
7
|
showClock?: boolean;
|
|
8
|
+
activityCompletedIcon?: Snippet<[ActivityTimelineStep]>;
|
|
7
9
|
class?: string;
|
|
8
10
|
};
|
|
9
11
|
declare const TimelineStep: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
reveal,
|
|
27
27
|
tick = 100,
|
|
28
28
|
showClock = true,
|
|
29
|
+
activityCompletedIcon,
|
|
29
30
|
children,
|
|
30
31
|
class: className
|
|
31
32
|
}: {
|
|
@@ -47,6 +48,9 @@
|
|
|
47
48
|
/** Live counter interval in ms. 0 stops the clock (the counter freezes). */
|
|
48
49
|
tick?: number;
|
|
49
50
|
showClock?: boolean;
|
|
51
|
+
/** Consumer-rendered identity for completed activity steps. Other states keep
|
|
52
|
+
* Era's lifecycle glyphs so running, approval, failure, and cancellation remain explicit. */
|
|
53
|
+
activityCompletedIcon?: Snippet<[ActivityTimelineStep]>;
|
|
50
54
|
children?: Snippet;
|
|
51
55
|
class?: string;
|
|
52
56
|
} = $props();
|
|
@@ -153,7 +157,7 @@
|
|
|
153
157
|
{@render children()}
|
|
154
158
|
{:else}
|
|
155
159
|
{#each data.steps as step, i (step.id ?? i)}
|
|
156
|
-
<Step {step} {showClock} />
|
|
160
|
+
<Step {activityCompletedIcon} {step} {showClock} />
|
|
157
161
|
{/each}
|
|
158
162
|
{/if}
|
|
159
163
|
</div>
|
|
@@ -19,6 +19,9 @@ type $$ComponentProps = {
|
|
|
19
19
|
/** Live counter interval in ms. 0 stops the clock (the counter freezes). */
|
|
20
20
|
tick?: number;
|
|
21
21
|
showClock?: boolean;
|
|
22
|
+
/** Consumer-rendered identity for completed activity steps. Other states keep
|
|
23
|
+
* Era's lifecycle glyphs so running, approval, failure, and cancellation remain explicit. */
|
|
24
|
+
activityCompletedIcon?: Snippet<[ActivityTimelineStep]>;
|
|
22
25
|
children?: Snippet;
|
|
23
26
|
class?: string;
|
|
24
27
|
};
|
package/package.json
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Era UI v34 release history
|
|
2
2
|
|
|
3
|
+
## [34.12.1](https://github.com/sig-nine/era-ui/compare/v34.12.0...v34.12.1) (2026-08-31)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* **timeline:** fill zero-duration activity rows ([9e1f6d9](https://github.com/sig-nine/era-ui/commit/9e1f6d96630918bbc457f34529fbd0d3ef5f9877))
|
|
8
|
+
|
|
9
|
+
## [34.12.0](https://github.com/sig-nine/era-ui/compare/v34.11.3...v34.12.0) (2026-08-31)
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **timeline:** support completed activity icons ([b630d00](https://github.com/sig-nine/era-ui/commit/b630d00b8f5c001d010f782c399a58a0628bc1c6))
|
|
14
|
+
|
|
3
15
|
## [34.11.3](https://github.com/sig-nine/era-ui/compare/v34.11.2...v34.11.3) (2026-08-31)
|
|
4
16
|
|
|
5
17
|
### Bug Fixes
|
|
@@ -5,7 +5,7 @@ Load only the major versions crossed by an upgrade; use the package-root `CHANGE
|
|
|
5
5
|
|
|
6
6
|
| Major | Range | Releases | History |
|
|
7
7
|
| ---: | --- | ---: | --- |
|
|
8
|
-
| 34 | 34.0.0–34.
|
|
8
|
+
| 34 | 34.0.0–34.12.1 | 39 | [Read](./34.md) |
|
|
9
9
|
| 33 | 33.0.0–33.0.1 | 2 | [Read](./33.md) |
|
|
10
10
|
| 32 | 32.0.0–32.0.1 | 2 | [Read](./32.md) |
|
|
11
11
|
| 31 | 31.0.0–31.0.0 | 1 | [Read](./31.md) |
|