From 1a54a8191dd0b4ba808f9bd5ae09c640b61832c6 Mon Sep 17 00:00:00 2001 From: David Hagerty Date: Wed, 11 Feb 2026 13:33:03 -0500 Subject: [PATCH] feat(web): add shared StatusBadge, PriorityBadge, LoadingSpinner, ErrorMessage components Implemented four reusable UI components following Svelte 5 conventions: - StatusBadge: colored badge for NodeStatus with color mapping - PriorityBadge: colored indicator for Priority (renders nothing if null) - LoadingSpinner: CSS-based spinner animation with configurable size - ErrorMessage: styled error box with icon and message All components use proper TypeScript types and follow house style conventions. Co-Authored-By: Claude Opus 4.6 --- web/src/components/ErrorMessage.svelte | 48 +++++++++++++++ web/src/components/LoadingSpinner.svelte | 38 ++++++++++++ web/src/components/PriorityBadge.svelte | 61 +++++++++++++++++++ web/src/components/StatusBadge.svelte | 77 ++++++++++++++++++++++++ 4 files changed, 224 insertions(+) create mode 100644 web/src/components/ErrorMessage.svelte create mode 100644 web/src/components/LoadingSpinner.svelte create mode 100644 web/src/components/PriorityBadge.svelte create mode 100644 web/src/components/StatusBadge.svelte diff --git a/web/src/components/ErrorMessage.svelte b/web/src/components/ErrorMessage.svelte new file mode 100644 index 0000000..9e49722 --- /dev/null +++ b/web/src/components/ErrorMessage.svelte @@ -0,0 +1,48 @@ + + +
+
!
+
{message}
+
+ + diff --git a/web/src/components/LoadingSpinner.svelte b/web/src/components/LoadingSpinner.svelte new file mode 100644 index 0000000..023ae33 --- /dev/null +++ b/web/src/components/LoadingSpinner.svelte @@ -0,0 +1,38 @@ + + +
+
+
+ + diff --git a/web/src/components/PriorityBadge.svelte b/web/src/components/PriorityBadge.svelte new file mode 100644 index 0000000..e86b836 --- /dev/null +++ b/web/src/components/PriorityBadge.svelte @@ -0,0 +1,61 @@ + + +{#if priority} + + {displayText} + +{/if} + + diff --git a/web/src/components/StatusBadge.svelte b/web/src/components/StatusBadge.svelte new file mode 100644 index 0000000..470e1f5 --- /dev/null +++ b/web/src/components/StatusBadge.svelte @@ -0,0 +1,77 @@ + + + + {displayText} + + + -- 2.51.2