@signal9/era-ui 34.11.3 → 34.12.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [34.12.0](https://github.com/sig-nine/era-ui/compare/v34.11.3...v34.12.0) (2026-08-31)
2
+
3
+ ### Features
4
+
5
+ * **timeline:** support completed activity icons ([b630d00](https://github.com/sig-nine/era-ui/commit/b630d00b8f5c001d010f782c399a58a0628bc1c6))
6
+
1
7
  ## [34.11.3](https://github.com/sig-nine/era-ui/compare/v34.11.2...v34.11.3) (2026-08-31)
2
8
 
3
9
  ### Bug Fixes
@@ -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
- }: { step: AnyTimelineStep; showClock?: boolean; class?: string } = $props();
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
- <CircleCheck class="size-icon shrink-0 {activityTone.icon}" aria-hidden="true" />
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 { type AnyTimelineStep } from './context.svelte.js';
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@signal9/era-ui",
3
- "version": "34.11.3",
3
+ "version": "34.12.0",
4
4
  "packageManager": "npm@11.19.0",
5
5
  "engines": {
6
6
  "node": ">=24 <27",
@@ -1,5 +1,11 @@
1
1
  # Era UI v34 release history
2
2
 
3
+ ## [34.12.0](https://github.com/sig-nine/era-ui/compare/v34.11.3...v34.12.0) (2026-08-31)
4
+
5
+ ### Features
6
+
7
+ * **timeline:** support completed activity icons ([b630d00](https://github.com/sig-nine/era-ui/commit/b630d00b8f5c001d010f782c399a58a0628bc1c6))
8
+
3
9
  ## [34.11.3](https://github.com/sig-nine/era-ui/compare/v34.11.2...v34.11.3) (2026-08-31)
4
10
 
5
11
  ### 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.11.3 | 37 | [Read](./34.md) |
8
+ | 34 | 34.0.0–34.12.0 | 38 | [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) |