feat(calendar-compact): polish + global not-prose opt-out support
CalendarCompact: - denser layout (smaller padding/font/badge), header icon size-8 - icon stein-900 (black), subtle wald gradient background - rounded-sm to match design tokens (was rounded-lg) - list items link to linkTo + "#event-<slug>" anchor; <svelte:element> falls back to div when no linkTo is set - not-prose on root so global content margins/list/link rules don't apply to the card subtree blog-utils.resolveCalendarBlocks: - when items array is empty, fall back to the full calendar_item pool (both default and compact variant get this) — saves editors from re-listing items on every page. app.css: add `:where(:not(.not-prose *))` to .content p/h1-h4, main a (link colour + underline), main ul/ol so subtrees marked not-prose stop inheriting the global prose-like defaults. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -593,6 +593,13 @@ export async function resolveCalendarBlocks(
|
||||
resolve: "items",
|
||||
});
|
||||
const raw = calendar?.items ?? rawItems;
|
||||
// Leere items-Liste → alle calendar_items aus der Collection (Pool).
|
||||
// Greift sowohl für default-Variante als auch compact-Anteaser.
|
||||
if (raw.length === 0) {
|
||||
const pool = (await getCalendarItems({ locale: "de" })) as unknown as CalendarItemData[];
|
||||
(item as { items?: CalendarItemData[] }).items = pool;
|
||||
continue;
|
||||
}
|
||||
const settled = await Promise.all(
|
||||
raw.map(async (x): Promise<CalendarItemData | null> => {
|
||||
if (
|
||||
|
||||
Reference in New Issue
Block a user