From 6ecf6ac67e2503cd7b88100cf21b299f1261a05b Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 27 Oct 2026 15:08:36 -0500 Subject: [PATCH 01/11] Standardize resource empty states and expand SDK links --- .../components/batch-operations/table.svelte | 11 +- .../resource-empty-state.stories.svelte | 61 +++++++++ .../empty-states/resource-empty-state.svelte | 46 +++++++ .../components/empty-states/sdk-links.svelte | 20 +++ .../schedules-empty-state.svelte | 87 ++++++++++++ .../table-empty-state.svelte | 82 +++++------ .../table-empty-state.svelte | 129 ++++++++---------- .../worker-heartbeats-sdk-warning.svelte | 40 ++---- .../workers-table/workers-table.svelte | 2 +- .../table-empty-state.svelte | 85 +++++------- src/lib/i18n/locales/en/batch.ts | 2 + src/lib/i18n/locales/en/schedules.ts | 4 +- .../i18n/locales/en/standalone-activities.ts | 9 +- .../locales/en/standalone-nexus-operations.ts | 13 +- src/lib/i18n/locales/en/workflows.ts | 2 +- src/lib/pages/schedules.svelte | 32 +---- tests/integration/schedules-list.spec.ts | 2 +- 17 files changed, 382 insertions(+), 245 deletions(-) create mode 100644 src/lib/components/empty-states/resource-empty-state.stories.svelte create mode 100644 src/lib/components/empty-states/resource-empty-state.svelte create mode 100644 src/lib/components/empty-states/sdk-links.svelte create mode 100644 src/lib/components/schedule/schedules-list/schedules-empty-state.svelte diff --git a/src/lib/components/batch-operations/table.svelte b/src/lib/components/batch-operations/table.svelte index 034cb30590..31c6a19a51 100644 --- a/src/lib/components/batch-operations/table.svelte +++ b/src/lib/components/batch-operations/table.svelte @@ -1,13 +1,14 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/lib/components/empty-states/resource-empty-state.svelte b/src/lib/components/empty-states/resource-empty-state.svelte new file mode 100644 index 0000000000..5e5388d7c8 --- /dev/null +++ b/src/lib/components/empty-states/resource-empty-state.svelte @@ -0,0 +1,46 @@ + + +
+ +
+

{title}

+ {#if description || content} +
+ {#if description} + {@render description()} + {:else} +

{content}

+ {/if} +
+ {/if} +
+ {@render children?.()} +
diff --git a/src/lib/components/empty-states/sdk-links.svelte b/src/lib/components/empty-states/sdk-links.svelte new file mode 100644 index 0000000000..9e10c5b99a --- /dev/null +++ b/src/lib/components/empty-states/sdk-links.svelte @@ -0,0 +1,20 @@ + + + diff --git a/src/lib/components/schedule/schedules-list/schedules-empty-state.svelte b/src/lib/components/schedule/schedules-list/schedules-empty-state.svelte new file mode 100644 index 0000000000..bf51330de9 --- /dev/null +++ b/src/lib/components/schedule/schedules-list/schedules-empty-state.svelte @@ -0,0 +1,87 @@ + + +{#if error} + + + {error} + + +{:else if query} + +{:else} + + {#snippet description()} +

{translate('schedules.no-schedules-description')}

+

+ {translate('schedules.getting-started-docs-link-preface')} + {translate('schedules.getting-started-docs-link')} + {translate('schedules.getting-started-cli-link-preface')} + Temporal CLI. +

+ {/snippet} + +
+{/if} diff --git a/src/lib/components/standalone-activities/activities-summary-configurable-table/table-empty-state.svelte b/src/lib/components/standalone-activities/activities-summary-configurable-table/table-empty-state.svelte index 1581e7c725..7b90169496 100644 --- a/src/lib/components/standalone-activities/activities-summary-configurable-table/table-empty-state.svelte +++ b/src/lib/components/standalone-activities/activities-summary-configurable-table/table-empty-state.svelte @@ -2,13 +2,13 @@ import { page } from '$app/state'; import NoQueryResults from '$lib/components/empty-states/no-query-results.svelte'; - import SdkLogo from '$lib/components/lines-and-dots/sdk-logo.svelte'; + import ResourceEmptyState from '$lib/components/empty-states/resource-empty-state.svelte'; + import SdkLinks from '$lib/components/empty-states/sdk-links.svelte'; import Alert from '$lib/holocene/alert.svelte'; import Link from '$lib/holocene/link.svelte'; import { translate } from '$lib/i18n/translate'; - import { IconWarning } from '$lib/io/icon'; + import { IconTemporalActivity, IconWarning } from '$lib/io/icon'; import { activityError } from '$lib/stores/activities'; - import noResultsImages from '$lib/vendor/empty-state.svg'; let query = $derived(page.url.searchParams.get('query')); const SDK_LINKS = [ @@ -29,13 +29,17 @@ href: 'https://docs.temporal.io/develop/dotnet/activities/standalone-activities', }, { - sdk: 'Typescript', + sdk: 'TypeScript', href: 'https://docs.temporal.io/develop/typescript/activities/standalone-activities', }, { sdk: 'Ruby', href: 'https://docs.temporal.io/develop/ruby/activities/standalone-activities', }, + { + sdk: 'Rust', + href: 'https://docs.temporal.io/develop/rust/activities/standalone-activities-quickstart', + }, ]; @@ -63,29 +67,16 @@ {:else} -
-
- {#if $activityError} -

- {translate('standalone-activities.empty-state-title')} -

- - {$activityError} - - {:else} -

- {translate('standalone-activities.no-activities-title')} -

+ {#snippet description()} + {#if !$activityError}

{translate('standalone-activities.standalone-activities')} -

- {translate('standalone-activities.no-activities-description-part-2')} -

-

- {translate('standalone-activities.no-activities-description-part-3')} -

-

- {translate('standalone-activities.get-started-title')} -

- {#each SDK_LINKS as { sdk, href } (sdk)} - - - - {/each} {/if} -
-
-
- + {/snippet} + {#if $activityError} + + {$activityError} + + {:else} +
+

+ {translate('standalone-activities.get-started-title')} +

+
-
-
-
+ {/if} + {/if} diff --git a/src/lib/components/standalone-nexus-operations/nexus-operations-summary-configurable-table/table-empty-state.svelte b/src/lib/components/standalone-nexus-operations/nexus-operations-summary-configurable-table/table-empty-state.svelte index d92e2680ec..7182f9e6b8 100644 --- a/src/lib/components/standalone-nexus-operations/nexus-operations-summary-configurable-table/table-empty-state.svelte +++ b/src/lib/components/standalone-nexus-operations/nexus-operations-summary-configurable-table/table-empty-state.svelte @@ -2,34 +2,35 @@ import { page } from '$app/state'; import NoQueryResults from '$lib/components/empty-states/no-query-results.svelte'; + import ResourceEmptyState from '$lib/components/empty-states/resource-empty-state.svelte'; + import SdkLinks from '$lib/components/empty-states/sdk-links.svelte'; import Alert from '$lib/holocene/alert.svelte'; import Link from '$lib/holocene/link.svelte'; import { translate } from '$lib/i18n/translate'; - import { IconGithub, IconWarning } from '$lib/io/icon'; + import { IconTemporalNexus, IconWarning } from '$lib/io/icon'; import { nexusOperationError } from '$lib/stores/nexus-operations'; - import noResultsImages from '$lib/vendor/empty-state.svg'; let query = $derived(page.url.searchParams.get('query')); const codeSamples = [ { - label: 'samples-go', + sdk: 'Go', href: 'https://github.com/temporalio/samples-go', }, { - label: 'samples-java', + sdk: 'Java', href: 'https://github.com/temporalio/samples-java', }, { - label: 'samples-typescript', + sdk: 'TypeScript', href: 'https://github.com/temporalio/samples-typescript', }, { - label: 'samples-python', + sdk: 'Python', href: 'https://github.com/temporalio/samples-python', }, { - label: 'samples-dotnet', + sdk: '.NET', href: 'https://github.com/temporalio/samples-dotnet', }, ]; @@ -61,78 +62,58 @@
{:else} -
-
-

- {translate('standalone-nexus-operations.empty-state-no-data-title')} -

- {#if $nexusOperationError} - - {$nexusOperationError} - - {:else} -
-

- {translate( - 'standalone-nexus-operations.empty-state-value-proposition', - )} -

-

- {translate( - 'standalone-nexus-operations.empty-state-read-docs-prefix', - )} - - {translate( - 'standalone-nexus-operations.empty-state-nexus-docs-link', - )} - - {translate( - 'standalone-nexus-operations.empty-state-read-docs-middle', - )} - - {translate( - 'standalone-nexus-operations.empty-state-nexus-eval-guide-link', - )} - + {#snippet description()} + {#if !$nexusOperationError} +

+ {translate( + 'standalone-nexus-operations.empty-state-value-proposition', + )} +

+

+ {translate( + 'standalone-nexus-operations.empty-state-read-docs-prefix', + )} + {translate( - 'standalone-nexus-operations.empty-state-read-docs-suffix', + 'standalone-nexus-operations.empty-state-nexus-docs-link', )} -

-
-
-

+ + {translate( + 'standalone-nexus-operations.empty-state-read-docs-middle', + )} + {translate( - 'standalone-nexus-operations.empty-state-code-samples-title', + 'standalone-nexus-operations.empty-state-nexus-eval-guide-link', )} -

-
    - {#each codeSamples as sample (sample.label)} -
  • - - - {sample.label} - -
  • - {/each} -
-
+ + {translate( + 'standalone-nexus-operations.empty-state-read-docs-suffix', + )} +

{/if} -
-
-
- + {/snippet} + {#if $nexusOperationError} + + {$nexusOperationError} + + {:else} +
+

+ {translate( + 'standalone-nexus-operations.empty-state-code-samples-title', + )} +

+
-
-
-
+ {/if} + {/if} diff --git a/src/lib/components/workers/workers-table/worker-heartbeats-sdk-warning.svelte b/src/lib/components/workers/workers-table/worker-heartbeats-sdk-warning.svelte index 3e72644449..b44e199f8c 100644 --- a/src/lib/components/workers/workers-table/worker-heartbeats-sdk-warning.svelte +++ b/src/lib/components/workers/workers-table/worker-heartbeats-sdk-warning.svelte @@ -1,4 +1,6 @@ -
- - - -
-
{translate('workers.no-worker-heartbeats')}
+ {#snippet description()} {#if currentSdk} {@const { href, sdk, version } = currentSdk} {#if !minimumVersionRequired(version, $sdkInfo.version)} -

+

{translate('workers.worker-heartbeats-sdk-link-preface')} {translate('workers.worker-heartbeats-sdk-link-postface')} -

+
{/if} {:else} -

- {translate('workers.worker-heartbeats-sdk-list-preface')} -

-
- {#each supportedVersions as { href, sdk, version } (`${sdk}:${version}`)} - - - - {/each} -
+

{translate('workers.worker-heartbeats-sdk-list-preface')}

{/if} -
-
+ {/snippet} + {#if !currentSdk} + + {/if} + diff --git a/src/lib/components/workers/workers-table/workers-table.svelte b/src/lib/components/workers/workers-table/workers-table.svelte index f9803640e6..4cc37fc583 100644 --- a/src/lib/components/workers/workers-table/workers-table.svelte +++ b/src/lib/components/workers/workers-table/workers-table.svelte @@ -1,7 +1,7 @@ @@ -70,51 +78,32 @@
{:else} -
-
-

- {translate('workflows.workflow-empty-state-title')} -

- {#if $workflowError} - - {$workflowError} - - {:else} - {@render cloud?.()} + {#snippet description()} + {#if !$workflowError}

{translate('workflows.workflow-empty-state-description')} github.com/temporalio.

-
    - {#each samples as sample (sample)} -
  • - {sample} -
  • - {/each} -
{/if} -
-
-
- -
-
-
-
+ {/snippet} + {#if $workflowError} + + {$workflowError} + + {:else} + {@render cloud?.()} + + {/if} + {/if} diff --git a/src/lib/i18n/locales/en/batch.ts b/src/lib/i18n/locales/en/batch.ts index f0f7a7dd24..daae23299c 100644 --- a/src/lib/i18n/locales/en/batch.ts +++ b/src/lib/i18n/locales/en/batch.ts @@ -5,6 +5,8 @@ export const Strings = { 'list-page-title': 'Batch Operations', 'describe-page-title': 'Batch Operation', 'empty-state-title': 'No Batch Operations', + 'empty-state-description': + 'Apply the same action to multiple Workflows or Standalone Activities at once, such as canceling or terminating.', 'back-link': 'Back to Batch Operations', 'operation-type': 'Operation Type', details: 'Operation Details', diff --git a/src/lib/i18n/locales/en/schedules.ts b/src/lib/i18n/locales/en/schedules.ts index 28d4b255fd..931c04baed 100644 --- a/src/lib/i18n/locales/en/schedules.ts +++ b/src/lib/i18n/locales/en/schedules.ts @@ -17,7 +17,9 @@ export const Strings = { 'schedule-spec': 'Schedule Spec', 'cron-string': 'Cron String', 'workflow-input': 'Workflow Input', - 'empty-state-title': 'No Schedules Found', + 'empty-state-title': 'No Schedules', + 'no-schedules-description': + 'Schedules automatically start Workflows at recurring times or intervals. Pause and resume a Schedule, backfill missed runs, and control how overlapping runs are handled.', 'empty-state-description': 'Try adjusting or clearing the filters to see the Schedules running on this Namespace.', 'error-message-fetching': 'Error fetching schedules', diff --git a/src/lib/i18n/locales/en/standalone-activities.ts b/src/lib/i18n/locales/en/standalone-activities.ts index 315b161415..d22fe51bb0 100644 --- a/src/lib/i18n/locales/en/standalone-activities.ts +++ b/src/lib/i18n/locales/en/standalone-activities.ts @@ -16,16 +16,11 @@ export const Strings = { 'timed-out-activities': 'Timed Out', 'empty-state-title': 'No Activities Found', 'empty-state-description': 'No activities match the current filters.', - 'no-activities-title': - 'This Namespace doesn’t have any Standalone Activities yet.', + 'no-activities-title': 'No Standalone Activities', 'no-activities-description-part-1-preface': ' are Temporal’s ', 'job-queue-link': 'job queue', 'no-activities-description-part-1-postface': - ' – the simplest way to run durable, retryable tasks on Temporal. Create an Activity function once and invoke it standalone (as a job) or as a step in a Workflow.', - 'no-activities-description-part-2': - 'Standalone Activities come with the durability benefits of Temporal plus declarative retries, deduplication, priority & fairness, and heartbeats with checkpointing for longer running jobs.', - 'no-activities-description-part-3': - 'Get started with a job today and graduate to a Workflow when you need multi-step orchestration, human-in-the-loop, signals, updates, or timers.', + ' for running durable, retryable tasks without a Workflow.', 'get-started-title': 'Get started with your preferred SDK’s code samples', 'recent-activities': 'Recent Standalone Activities', 'activity-id': 'Activity ID', diff --git a/src/lib/i18n/locales/en/standalone-nexus-operations.ts b/src/lib/i18n/locales/en/standalone-nexus-operations.ts index 628b205cdd..44bf89122e 100644 --- a/src/lib/i18n/locales/en/standalone-nexus-operations.ts +++ b/src/lib/i18n/locales/en/standalone-nexus-operations.ts @@ -23,18 +23,15 @@ export const Strings = { 'empty-state-title': 'No Nexus Operations Found', 'empty-state-description': 'No nexus operations match the current filters.', 'nexus-operations-table': 'Standalone Nexus Operations Table', - 'empty-state-no-data-title': - "This namespace doesn't have any Standalone Nexus Operations yet.", + 'empty-state-no-data-title': 'No Standalone Nexus Operations', 'empty-state-value-proposition': - 'Standalone Nexus Operations can call any Temporal-hosted endpoint from existing code using a simple SDK client call - no need to set up a Workflow or run a worker. Get all the durable execution benefits like automatic retries, timeouts, and at-least-once execution guarantees out of the box.', + 'Call Temporal-hosted Nexus endpoints from your code without a Workflow, with automatic retries and timeouts.', 'empty-state-read-docs-prefix': 'Read the', 'empty-state-nexus-docs-link': 'Nexus Docs', - 'empty-state-read-docs-middle': 'and check out the', + 'empty-state-read-docs-middle': 'and', 'empty-state-nexus-eval-guide-link': 'Nexus Evaluation Guide', - 'empty-state-read-docs-suffix': - 'to learn how Nexus can fit into your operations.', - 'empty-state-code-samples-title': - 'Explore code samples for Standalone Nexus Operations', + 'empty-state-read-docs-suffix': 'to get started.', + 'empty-state-code-samples-title': 'Explore SDK code samples', 'start-standalone-nexus-operation': 'Start a Standalone Nexus Operation', 'back-to-nexus-operations': 'Back to Standalone Nexus Operations', 'layout-tabs-label': 'Nexus Operation Details', diff --git a/src/lib/i18n/locales/en/workflows.ts b/src/lib/i18n/locales/en/workflows.ts index 2ae939239b..84a224f11f 100644 --- a/src/lib/i18n/locales/en/workflows.ts +++ b/src/lib/i18n/locales/en/workflows.ts @@ -303,7 +303,7 @@ export const Strings = { 'workflow-task-failures-query-empty-state-description': 'None of your Workflows currently match your task failure criteria', 'workflow-query-error-state': 'Error Filtering Workflows', - 'workflow-empty-state-title': 'No Workflows running in this Namespace', + 'workflow-empty-state-title': 'No Workflows', 'workflow-empty-state-description': 'You can populate the Web UI with sample Workflows. You can find a complete list of executable code samples at', 'visibility-disabled-archival': diff --git a/src/lib/pages/schedules.svelte b/src/lib/pages/schedules.svelte index 4db7ca831d..1491ed712f 100644 --- a/src/lib/pages/schedules.svelte +++ b/src/lib/pages/schedules.svelte @@ -5,22 +5,20 @@ import CountRefreshButton from '$lib/components/count-refresh-button.svelte'; import SavedQueryViews from '$lib/components/saved-query-views/saved-views.svelte'; + import SchedulesEmptyState from '$lib/components/schedule/schedules-list/schedules-empty-state.svelte'; import SchedulesTableRow from '$lib/components/schedule/schedules-list/schedules-table-row.svelte'; import FilterBar from '$lib/components/search-attribute-filter/filter-bar.svelte'; import ConfigurableTableHeadersDrawer from '$lib/components/table/configurable-table-headers-drawer.svelte'; import ResetColumnWidthsButton from '$lib/components/table/reset-column-widths-button.svelte'; import { timestamp } from '$lib/components/timestamp.svelte'; - import Alert from '$lib/holocene/alert.svelte'; import Button from '$lib/holocene/button.svelte'; - import EmptyState from '$lib/holocene/empty-state.svelte'; - import Link from '$lib/holocene/link.svelte'; import ColumnResizeHandle from '$lib/holocene/table/column-resize-handle.svelte'; import PaginatedTable from '$lib/holocene/table/paginated-table/api-paginated.svelte'; import MaximizableTableView from '$lib/holocene/table/paginated-table/maximizable-view.svelte'; import SortableTableHeader from '$lib/holocene/table/sortable-table-header.svelte'; import Tooltip from '$lib/holocene/tooltip.svelte'; import { translate } from '$lib/i18n/translate'; - import { IconTemporalSettings, IconWarning } from '$lib/io/icon'; + import { IconTemporalSettings } from '$lib/io/icon'; import { createCountPoller } from '$lib/runes/count-poller.svelte'; import { createTableSort } from '$lib/runes/table-sort-state.svelte'; import { fetchPaginatedSchedules } from '$lib/services/schedule-service'; @@ -263,31 +261,7 @@ {#snippet empty()}
- {#if error} - - - {error} - - - {:else if query} - - {:else} - -

- {translate('schedules.getting-started-docs-link-preface')} - {translate('schedules.getting-started-docs-link')} - {translate('schedules.getting-started-cli-link-preface')} - Temporal CLI. -

-
- {/if} +
{/snippet} {#snippet actionsEndAdditional()} diff --git a/tests/integration/schedules-list.spec.ts b/tests/integration/schedules-list.spec.ts index a144578a4d..8a98f5c742 100644 --- a/tests/integration/schedules-list.spec.ts +++ b/tests/integration/schedules-list.spec.ts @@ -35,7 +35,7 @@ test.describe('Schedules List with no schedules', () => { await page.goto(schedulesUrl); await page.waitForResponse(SCHEDULES_COUNT_API); - const emptyState = page.getByText('No Schedules Found'); + const emptyState = page.getByText('No Schedules', { exact: true }); await expect(emptyState).toBeVisible(); }); }); From 8bc166fc6c5bfc003e08e9b9a092aa7284eeb5d9 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 27 Oct 2026 15:18:32 -0500 Subject: [PATCH 02/11] Use Typescript casing in empty-state SDK labels --- .../schedule/schedules-list/schedules-empty-state.svelte | 2 +- .../table-empty-state.svelte | 2 +- .../table-empty-state.svelte | 2 +- .../workers/workers-table/worker-heartbeats-sdk-warning.svelte | 2 +- .../table-empty-state.svelte | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/components/schedule/schedules-list/schedules-empty-state.svelte b/src/lib/components/schedule/schedules-list/schedules-empty-state.svelte index bf51330de9..c434e4977b 100644 --- a/src/lib/components/schedule/schedules-list/schedules-empty-state.svelte +++ b/src/lib/components/schedule/schedules-list/schedules-empty-state.svelte @@ -23,7 +23,7 @@ href: 'https://docs.temporal.io/develop/python/workflows/schedules', }, { - sdk: 'TypeScript', + sdk: 'Typescript', href: 'https://docs.temporal.io/develop/typescript/workflows/schedules', }, { diff --git a/src/lib/components/standalone-activities/activities-summary-configurable-table/table-empty-state.svelte b/src/lib/components/standalone-activities/activities-summary-configurable-table/table-empty-state.svelte index 7b90169496..87509ce377 100644 --- a/src/lib/components/standalone-activities/activities-summary-configurable-table/table-empty-state.svelte +++ b/src/lib/components/standalone-activities/activities-summary-configurable-table/table-empty-state.svelte @@ -29,7 +29,7 @@ href: 'https://docs.temporal.io/develop/dotnet/activities/standalone-activities', }, { - sdk: 'TypeScript', + sdk: 'Typescript', href: 'https://docs.temporal.io/develop/typescript/activities/standalone-activities', }, { diff --git a/src/lib/components/standalone-nexus-operations/nexus-operations-summary-configurable-table/table-empty-state.svelte b/src/lib/components/standalone-nexus-operations/nexus-operations-summary-configurable-table/table-empty-state.svelte index 7182f9e6b8..676ac0955e 100644 --- a/src/lib/components/standalone-nexus-operations/nexus-operations-summary-configurable-table/table-empty-state.svelte +++ b/src/lib/components/standalone-nexus-operations/nexus-operations-summary-configurable-table/table-empty-state.svelte @@ -22,7 +22,7 @@ href: 'https://github.com/temporalio/samples-java', }, { - sdk: 'TypeScript', + sdk: 'Typescript', href: 'https://github.com/temporalio/samples-typescript', }, { diff --git a/src/lib/components/workers/workers-table/worker-heartbeats-sdk-warning.svelte b/src/lib/components/workers/workers-table/worker-heartbeats-sdk-warning.svelte index b44e199f8c..4d0e75d09e 100644 --- a/src/lib/components/workers/workers-table/worker-heartbeats-sdk-warning.svelte +++ b/src/lib/components/workers/workers-table/worker-heartbeats-sdk-warning.svelte @@ -20,7 +20,7 @@ href: 'https://github.com/temporalio/sdk-python/releases', }, { - sdk: 'TypeScript', + sdk: 'Typescript', version: '1.14.0', href: 'https://github.com/temporalio/sdk-typescript/releases', }, diff --git a/src/lib/components/workflow/workflows-summary-configurable-table/table-empty-state.svelte b/src/lib/components/workflow/workflows-summary-configurable-table/table-empty-state.svelte index 21422dc303..0d010dd7a0 100644 --- a/src/lib/components/workflow/workflows-summary-configurable-table/table-empty-state.svelte +++ b/src/lib/components/workflow/workflows-summary-configurable-table/table-empty-state.svelte @@ -28,7 +28,7 @@ { sdk: 'Go', href: 'https://github.com/temporalio/samples-go' }, { sdk: 'Java', href: 'https://github.com/temporalio/samples-java' }, { - sdk: 'TypeScript', + sdk: 'Typescript', href: 'https://github.com/temporalio/samples-typescript', }, { sdk: 'Python', href: 'https://github.com/temporalio/samples-python' }, From 5148d71f71b99bfed41fe290c4376c01b0cd740e Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 28 Oct 2026 16:10:59 -0500 Subject: [PATCH 03/11] Use text-brand and 64x64 icon size --- src/lib/components/empty-states/resource-empty-state.svelte | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/components/empty-states/resource-empty-state.svelte b/src/lib/components/empty-states/resource-empty-state.svelte index 5e5388d7c8..c1514fa7cb 100644 --- a/src/lib/components/empty-states/resource-empty-state.svelte +++ b/src/lib/components/empty-states/resource-empty-state.svelte @@ -27,11 +27,11 @@ data-testid={testId} aria-live="polite" > -