From 3a84201c6cd3e440f587e9369425aa661fbb1d66 Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Mon, 16 Feb 2026 21:18:43 +0000
Subject: [PATCH] feat(ux): add loading spinner to domain search and fix vite
polyfills
Co-authored-by: yeboster <23556525+yeboster@users.noreply.github.com>
---
.jules/palette.md | 1 +
src/routes/DomainSearch.svelte | 18 +++++++++++++++---
vite.config.ts | 2 +-
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/.jules/palette.md b/.jules/palette.md
index 00f41cd..9cc85e1 100644
--- a/.jules/palette.md
+++ b/.jules/palette.md
@@ -1,3 +1,4 @@
## 2024-10-24 - Accessible Icon Props and Loading Button State
+
**Learning:** Svelte wrapper components (like `Icon.svelte`) must spread `$$restProps` to allow passing accessibility attributes (e.g., `aria-label`) from parent components. Without this, icons remain inaccessible to screen readers. Also, persistent "Success" states on buttons can be confusing; auto-resetting them after a timeout improves clarity.
**Action:** Always include `{...$$restProps}` in wrapper components and implement auto-reset logic for temporary success states in interactive elements.
diff --git a/src/routes/DomainSearch.svelte b/src/routes/DomainSearch.svelte
index 53d006f..e942855 100644
--- a/src/routes/DomainSearch.svelte
+++ b/src/routes/DomainSearch.svelte
@@ -70,9 +70,21 @@
>
-
-
-
+ {#if isLoading}
+
+
+
+ {:else}
+
+
+
+ {/if}
diff --git a/vite.config.ts b/vite.config.ts
index a9322d6..6094564 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -14,7 +14,7 @@ export default defineConfig({
}),
sveltekit(),
nodePolyfills({
- include: ['buffer', 'crypto', 'stream']
+ include: ['buffer', 'crypto', 'stream', 'util']
}),
tsconfigPaths()
],