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 @@