From 41dfbb2930280b070c9292729db0d8f42702aa6d Mon Sep 17 00:00:00 2001 From: Peter Meier Date: Sat, 16 May 2026 14:27:31 +0200 Subject: [PATCH] feat: add carousel design to PostOverview; extract shared Carousel component - New Carousel.svelte: index-fade, arrows, dots, optional auto-rotate - QuoteCarouselBlock refactored to use Carousel - PostOverviewBlock: carousel design variant added - CMS schema: "carousel" added to post_overview design enum Co-Authored-By: Claude Sonnet 4.6 --- src/lib/block-types.ts | 4 +- src/lib/components/Carousel.svelte | 111 ++++++++++++++++ .../blocks/PostOverviewBlock.svelte | 12 ++ .../blocks/QuoteCarouselBlock.svelte | 120 ++---------------- 4 files changed, 138 insertions(+), 109 deletions(-) create mode 100644 src/lib/components/Carousel.svelte diff --git a/src/lib/block-types.ts b/src/lib/block-types.ts index f0c555f..2560e0f 100644 --- a/src/lib/block-types.ts +++ b/src/lib/block-types.ts @@ -236,8 +236,8 @@ export interface PostOverviewBlockData { excludeTag?: string[]; /** Max. Anzahl Einträge. */ numberItems?: number; - /** "list" | "cards". */ - design?: "list" | "cards"; + /** "list" | "cards" | "carousel". */ + design?: "list" | "cards" | "carousel"; layout?: BlockLayout; /** Nach resolvePostOverviewBlocks: geladene/gefilterte Posts (PostEntry[]). */ postsResolved?: unknown[]; diff --git a/src/lib/components/Carousel.svelte b/src/lib/components/Carousel.svelte new file mode 100644 index 0000000..c97da05 --- /dev/null +++ b/src/lib/components/Carousel.svelte @@ -0,0 +1,111 @@ + + +
(paused = true)} + onmouseleave={() => (paused = false)} +> +
+ {#if showArrows && count > 1} + + {/if} + +
+ {#each { length: count } as _, i} +
+ {@render item(i)} +
+ {/each} +
+ + {#if showArrows && count > 1} + + {/if} +
+ + {#if count > 1} +
+ {#each { length: count } as _, i} + + {/each} +
+ {/if} +
diff --git a/src/lib/components/blocks/PostOverviewBlock.svelte b/src/lib/components/blocks/PostOverviewBlock.svelte index 3456de2..21e61cd 100644 --- a/src/lib/components/blocks/PostOverviewBlock.svelte +++ b/src/lib/components/blocks/PostOverviewBlock.svelte @@ -1,6 +1,7 @@