From 0f5ed5d0a35a9473a6c3fc9dd51a5c6a38800dd4 Mon Sep 17 00:00:00 2001 From: Mathious6 <91007976+Mathious6@users.noreply.github.com> Date: Mon, 31 Aug 2026 20:16:32 +0200 Subject: [PATCH] refactor(ui): establish reusable components --- src/app.css | 28 ++++-- src/lib/ExportMenu.svelte | 37 ++----- src/lib/Mark.svelte | 6 +- src/lib/RowMenu.svelte | 66 +++---------- src/lib/SelectionActions.svelte | 47 +++++++++ src/lib/SubnetCell.svelte | 4 +- src/lib/SubnetTable.svelte | 59 +++++++++++- src/lib/TagsCell.svelte | 6 +- src/lib/UpdateControl.svelte | 12 +-- src/lib/ui/Button.svelte | 56 +++++++++++ src/lib/ui/Dialog.svelte | 55 +++++++++++ src/lib/ui/MenuItem.svelte | 25 +++++ src/lib/ui/MenuSurface.svelte | 57 +++++++++++ src/lib/ui/Pill.svelte | 15 +++ src/routes/+page.svelte | 166 +++++++++++--------------------- 15 files changed, 418 insertions(+), 221 deletions(-) create mode 100644 src/lib/SelectionActions.svelte create mode 100644 src/lib/ui/Button.svelte create mode 100644 src/lib/ui/Dialog.svelte create mode 100644 src/lib/ui/MenuItem.svelte create mode 100644 src/lib/ui/MenuSurface.svelte create mode 100644 src/lib/ui/Pill.svelte diff --git a/src/app.css b/src/app.css index 0facc70..fde7587 100644 --- a/src/app.css +++ b/src/app.css @@ -1,15 +1,18 @@ @import "tailwindcss"; @theme { - --color-bg: #131010; - --color-raised: #1a1616; - --color-line: #2a2424; - --color-text: #f1ecec; - --color-muted: #b7b1b1; - --color-faint: #7c7575; - --color-accent: #89b5ff; + --color-bg: #111213; + --color-raised: #191a1c; + --color-line: #2b2d30; + --color-text: #f1f1ee; + --color-muted: #b6b7b8; + --color-faint: #92959a; + --color-accent: #78a9ff; --color-good: #8ec07c; --color-bad: #e0866b; + --radius-control: 6px; + --radius-surface: 10px; + --ease-ui: 140ms ease; } html, @@ -19,6 +22,7 @@ body { overflow: hidden; background: var(--color-bg); color: var(--color-text); + font-family: "SF Mono", "Cascadia Code", "Roboto Mono", monospace; } table { @@ -33,3 +37,13 @@ table { .chip-strip::-webkit-scrollbar { display: none; } + +@media (prefers-reduced-motion: no-preference) { + button, + input, + [role="menu"], + [role="dialog"] { + transition: color var(--ease-ui), background-color var(--ease-ui), border-color var(--ease-ui), + box-shadow var(--ease-ui), opacity var(--ease-ui); + } +} diff --git a/src/lib/ExportMenu.svelte b/src/lib/ExportMenu.svelte index 0965c62..1554833 100644 --- a/src/lib/ExportMenu.svelte +++ b/src/lib/ExportMenu.svelte @@ -1,35 +1,10 @@ - + + Export for AYCD (.json) + diff --git a/src/lib/Mark.svelte b/src/lib/Mark.svelte index b453e97..9c720f3 100644 --- a/src/lib/Mark.svelte +++ b/src/lib/Mark.svelte @@ -1,7 +1,7 @@ - - {value} - +{value} diff --git a/src/lib/RowMenu.svelte b/src/lib/RowMenu.svelte index 6199f50..b456079 100644 --- a/src/lib/RowMenu.svelte +++ b/src/lib/RowMenu.svelte @@ -1,7 +1,11 @@ - {/if} {#if asking} - + {/if} {#if rows.length === 0}

proxybench

Drop a .txt file or a folder of .txt files.

- + {#if busy}

{working || "Importing…"}

{/if} @@ -527,67 +494,46 @@ {#if busy && !running} {working || "Working…"} {:else} - {rows.length} {rows.length === 1 ? "subnet" : "subnets"}{selectedLabel - ? ` · ${selectedLabel}` - : ""} + {rows.length} {rows.length === 1 ? "subnet" : "subnets"} {/if}

- - -
- - - {#if exportMenuOpen} - void exportAycd()} - onDismiss={closeExportMenu} - /> - {/if} -
- + + + {#if selectedCidrs.size > 0} + void exportFiles()} + onExportAycd={() => void exportAycd()} + onProbe={openProbe} + /> + {:else} +
+ + + {#if exportMenuOpen} + void exportAycd()} onDismiss={closeExportMenu} /> + {/if} +
+ + {/if}