From e5fa234f3a8d8eb4d3cb9c10a2ed444010ad3203 Mon Sep 17 00:00:00 2001 From: Edouard Vanbelle Date: Sun, 26 Jul 2026 16:54:15 +0200 Subject: [PATCH] refactor(search): normalize buttons to fit match other sections --- frontend/src/lib/api/endpoints/search.ts | 3 + frontend/src/lib/icons/registry.ts | 9 +++ frontend/src/routes/search/+page.svelte | 99 ++++++++++++++++++------ 3 files changed, 88 insertions(+), 23 deletions(-) diff --git a/frontend/src/lib/api/endpoints/search.ts b/frontend/src/lib/api/endpoints/search.ts index 3e00cbd9..2b37d2a0 100644 --- a/frontend/src/lib/api/endpoints/search.ts +++ b/frontend/src/lib/api/endpoints/search.ts @@ -25,6 +25,8 @@ export interface SearchOptions { cursor?: string; /** Sort dimension; maps to backend `order_by`. */ sortBy?: SortBy; + /** Reverse sort direction; maps to backend `reverse`. */ + reverse?: boolean; /** Restrict to files, folders, or both (default). */ resourceTypes?: ItemType[]; /** Abort the request when a newer search supersedes it. */ @@ -58,6 +60,7 @@ export function searchResources( if (opts.limit != null) params.append('limit', String(opts.limit)); if (opts.cursor) params.append('cursor', opts.cursor); if (opts.sortBy) params.append('order_by', opts.sortBy); + if (opts.reverse) params.append('reverse', 'true'); return apiJson(`/api/search?${params.toString()}`, { credentials: 'same-origin', signal: opts.signal diff --git a/frontend/src/lib/icons/registry.ts b/frontend/src/lib/icons/registry.ts index 3e797d03..6e09388d 100644 --- a/frontend/src/lib/icons/registry.ts +++ b/frontend/src/lib/icons/registry.ts @@ -370,6 +370,15 @@ export const OxiIcons: Record = { 512, "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z" ], + // Font Awesome Free 6.7.2 `ranking-star` (podium with a star crown). + // Hand-added — /search's group-by dropdown uses this glyph for the + // "Relevance" option (Ed's 2026-07-26 UX call). Registry header says + // "regenerate from the source" but no generator lives in-repo, so + // hand-inserting matches the shape of every other entry. + "ranking-star": [ + 640, + "M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.3-20 0L286.6 54.1l-52.9 7.7c-9.2 1.3-12.9 12.7-6.2 19.3l38.3 37.3-9.1 52.7c-1.6 9.2 8.1 16.2 16.3 11.9l47.3-24.9 47.3 24.9c8.2 4.3 17.9-2.7 16.3-11.9l-9-52.7 38.3-37.3c6.7-6.5 3-17.9-6.2-19.3L353.8 54.1zM256 256c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-128 0zM32 320c-17.7 0-32 14.3-32 32L0 480c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L32 320zm416 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z" + ], "repeat": [ 512, "M470.6 118.6c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S352 19.1 352 32l0 32-160 0C86 64 0 150 0 256 0 273.7 14.3 288 32 288s32-14.3 32-32c0-70.7 57.3-128 128-128l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64zM41.4 393.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S160 492.9 160 480l0-32 160 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z" diff --git a/frontend/src/routes/search/+page.svelte b/frontend/src/routes/search/+page.svelte index fbb10456..6a184f45 100644 --- a/frontend/src/routes/search/+page.svelte +++ b/frontend/src/routes/search/+page.svelte @@ -1,6 +1,10 @@