From af1efca3eab7789cea5c5222a0ab27ddbbab9a4a Mon Sep 17 00:00:00 2001 From: Florian <45694132+flo-bit@users.noreply.github.com> Date: Thu, 16 Apr 2026 02:57:40 +0200 Subject: [PATCH] add hero section card --- src/lib/cards/_base/BaseCard/BaseCard.svelte | 6 +- src/lib/cards/index.ts | 4 +- .../cards/sections/HeroCard/Decoration.svelte | 84 ++++++ .../sections/HeroCard/EditingHeroCard.svelte | 118 ++++++++ .../cards/sections/HeroCard/HeroCard.svelte | 80 ++++++ .../sections/HeroCard/HeroCardSettings.svelte | 270 ++++++++++++++++++ src/lib/cards/sections/HeroCard/index.ts | 98 +++++++ src/lib/cards/types.ts | 3 + .../card-command/CardCommand.svelte | 2 + src/lib/website/EditBar.svelte | 10 +- src/lib/website/EditableWebsite.svelte | 5 +- src/lib/website/SaveModal.svelte | 11 +- 12 files changed, 684 insertions(+), 7 deletions(-) create mode 100644 src/lib/cards/sections/HeroCard/Decoration.svelte create mode 100644 src/lib/cards/sections/HeroCard/EditingHeroCard.svelte create mode 100644 src/lib/cards/sections/HeroCard/HeroCard.svelte create mode 100644 src/lib/cards/sections/HeroCard/HeroCardSettings.svelte create mode 100644 src/lib/cards/sections/HeroCard/index.ts diff --git a/src/lib/cards/_base/BaseCard/BaseCard.svelte b/src/lib/cards/_base/BaseCard/BaseCard.svelte index a0f2597..74aac40 100644 --- a/src/lib/cards/_base/BaseCard/BaseCard.svelte +++ b/src/lib/cards/_base/BaseCard/BaseCard.svelte @@ -4,7 +4,7 @@ import type { WithElementRef } from 'bits-ui'; import type { Snippet } from 'svelte'; import type { HTMLAttributes } from 'svelte/elements'; - import { getColor } from '../..'; + import { CardDefinitionsByType, getColor } from '../..'; const colors = { base: 'bg-base-200/50 dark:bg-base-950/50', @@ -35,6 +35,7 @@ }: BaseCardProps = $props(); let color = $derived(getColor(item)); + let noOverflow = $derived(CardDefinitionsByType[item.cardType]?.noOverflow ?? false);
+ {item.cardData.subtitle} +
+ {/if} + + {#if item.cardData.showButton !== false && item.cardData.buttonText} + {#if item.cardData.buttonHref === '#login'} + + {:else} + + {item.cardData.buttonText} + + {/if} + {/if} ++ Hover the hero card and click an empty slot to add a side image. Edit titles & subtitles + here once filled. +
+ {/if} + + {#each filledSlots as decoration (decoration.id)} +