diff --git a/src/lib/components/event/event-card.svelte b/src/lib/components/event/event-card.svelte
index d183f3fc4a..e586821808 100644
--- a/src/lib/components/event/event-card.svelte
+++ b/src/lib/components/event/event-card.svelte
@@ -167,12 +167,10 @@
Summary
-
- {decodedValue}
+
+ {#snippet children(decodedValue)}
+ {decodedValue}
+ {/snippet}
diff --git a/src/lib/components/event/event-category-multiselect-filter.svelte b/src/lib/components/event/event-category-multiselect-filter.svelte
index 8c1e95cd02..7cbbd3c66a 100644
--- a/src/lib/components/event/event-category-multiselect-filter.svelte
+++ b/src/lib/components/event/event-category-multiselect-filter.svelte
@@ -1,7 +1,9 @@
diff --git a/src/lib/components/event/event-empty-row.svelte b/src/lib/components/event/event-empty-row.svelte
index a0b0c47a50..7a2484c760 100644
--- a/src/lib/components/event/event-empty-row.svelte
+++ b/src/lib/components/event/event-empty-row.svelte
@@ -4,9 +4,15 @@
import { translate } from '$lib/i18n/translate';
import { isCloud } from '$lib/stores/advanced-visibility';
- export let loading = false;
- export let title = translate('events.empty-state-title');
- export let content = translate('events.empty-state-description');
+ let {
+ loading = false,
+ title = translate('events.empty-state-title'),
+ content = translate('events.empty-state-description'),
+ }: {
+ loading?: boolean;
+ title?: string;
+ content?: string;
+ } = $props();
diff --git a/src/lib/components/event/event-metadata-expanded.svelte b/src/lib/components/event/event-metadata-expanded.svelte
index b3de111ed9..a4e8ebac0f 100644
--- a/src/lib/components/event/event-metadata-expanded.svelte
+++ b/src/lib/components/event/event-metadata-expanded.svelte
@@ -10,13 +10,11 @@
Summary
-
-
- {decodedValue}
-
+
+ {#snippet children(decodedValue)}
+
+ {decodedValue}
+
+ {/snippet}
diff --git a/src/lib/components/event/event-summary-row.svelte b/src/lib/components/event/event-summary-row.svelte
index f52e63b4a7..fa94ff1f3a 100644
--- a/src/lib/components/event/event-summary-row.svelte
+++ b/src/lib/components/event/event-summary-row.svelte
@@ -327,20 +327,19 @@
{/if}
{#if currentEvent?.userMetadata?.summary}
-
- {#if decodedValue}
-
-
Summary
-
- {decodedValue}
-
-
- {/if}
+
+ {#snippet children(decodedValue)}
+ {#if decodedValue}
+
+
Summary
+
+ {decodedValue}
+
+
+ {/if}
+ {/snippet}
{/if}
{#if currentEvent?.links?.length}
diff --git a/src/lib/components/event/event-summary-table.svelte b/src/lib/components/event/event-summary-table.svelte
index 7c0b5ae499..0f9c02bed5 100644
--- a/src/lib/components/event/event-summary-table.svelte
+++ b/src/lib/components/event/event-summary-table.svelte
@@ -1,5 +1,5 @@
{#await decodePayload(value) then metadata}
-
+ {@render children?.(metadata)}
{:catch}
-
+ {@render children?.(fallback)}
{/await}
diff --git a/src/lib/components/lines-and-dots/svg/timeline-graph-row.svelte b/src/lib/components/lines-and-dots/svg/timeline-graph-row.svelte
index b1bd2036e3..b1355c5ddc 100644
--- a/src/lib/components/lines-and-dots/svg/timeline-graph-row.svelte
+++ b/src/lib/components/lines-and-dots/svg/timeline-graph-row.svelte
@@ -143,9 +143,11 @@
const activityTaskScheduled = $derived(
group.eventList.find(isActivityTaskStartedEvent),
);
- const retried = $derived(
- activityTaskScheduled && activityTaskScheduled.attributes?.attempt > 1,
+
+ const retryAttempt = $derived(
+ activityTaskScheduled?.attributes?.attempt ?? 0,
);
+ const retried = $derived(retryAttempt > 1);
const pendingLine = $derived(group.isPending || !!pauseTime);
const multiEventHoverWidth = $derived(
@@ -262,31 +264,33 @@
fallback={decodedLocalActivity
? translate('events.category.local-activity')
: group?.displayName}
- let:decodedValue
>
-
- {#if pendingActivity}
- {translate('workflows.attempt')}
- {pendingActivity.attempt} / {pendingActivity.maximumAttempts || '∞'}
- {'• '}
- {decodedValue}
- {:else if retried}
- {activityTaskScheduled.attributes.attempt} • {decodedValue}
- {:else if decodedLocalActivity}
- {decodedLocalActivity.value}
- {:else}
- {decodedValue}
- {/if}
-
+ {#snippet children(decodedValue)}
+
+ {#if pendingActivity}
+ {translate('workflows.attempt')}
+ {pendingActivity.attempt} / {pendingActivity.maximumAttempts ||
+ '∞'}
+ {'• '}
+ {decodedValue}
+ {:else if retried}
+ {retryAttempt} • {decodedValue}
+ {:else if decodedLocalActivity}
+ {decodedLocalActivity.value}
+ {:else}
+ {decodedValue}
+ {/if}
+
+ {/snippet}
{/if}
+ type Option = { label: string; value: string; icon?: IconName };
+ export type MultiSelectOptions = Option[];
+
+