feat: support a multi-link list in the bookmark widget

A bookmark widget can now carry an optional links array instead of
a single href, rendering as a compact card with one row per link -
for grouping several quick links (e.g. "all services", "all Coolify
apps") into one widget instead of one card per link.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WpxhtQY3CExQdMs4j7MmJe
This commit is contained in:
2026-08-18 10:14:47 +02:00
co-authored by Claude Sonnet 5
parent 39e0eaf256
commit 5a33218235
2 changed files with 39 additions and 1 deletions
+8 -1
View File
@@ -6,12 +6,19 @@ const durationSchema = z
.string()
.regex(/^\d+(ms|s|m|h)$/, 'Expected a duration like "500ms", "5s", "1m", or "1h"');
export const bookmarkLinkSchema = z.object({
name: z.string(),
href: z.string().url(),
icon: z.string().optional(),
});
export const bookmarkWidgetSchema = z.object({
type: z.literal("bookmark"),
name: z.string(),
href: z.string().url(),
href: z.string().url().optional(),
description: z.string().optional(),
icon: z.string().optional(),
links: z.array(bookmarkLinkSchema).optional(),
});
export const searchWidgetSchema = z.object({