diff --git a/config/nam.vibentec.design.json b/config/nam.vibentec.design.json index 8a0b41d..09e9d51 100644 --- a/config/nam.vibentec.design.json +++ b/config/nam.vibentec.design.json @@ -156,7 +156,7 @@ { "Button": { "config": { - "icon": "user", + "icon": "User", "className": " flex items-center gap-1 shadow-none w-[50px]" } } @@ -164,7 +164,7 @@ { "Button": { "config": { - "icon": "heart", + "icon": "Heart", "className": " flex items-center gap-1 shadow-none w-[50px]" } } @@ -204,7 +204,228 @@ { "Footer": { "config": { - "copyrightText": "© 2025 MyShop" + "copyrightText": "© 2025 MyShop", + "children": [ + { + "Image": { + "config": { + "src": "/VibentecIT-logo.svg", + "alt": "MyShop", + "className": "h-[128px] w-[324px] ml-[3rem]", + "objectFit": "contain" + } + } + }, + { + "Section": { + "config": { + "className": "flex items-start px-[3rem] justify-between" + }, + "children": [ + { + "Section": { + "config": { + "className": "flex flex-col" + }, + "children": [ + { + "Link": { + "config": { + "label": "Der Wegbereiter für innovative IT-Lösungen", + "href": "/", + "className": "text-[24px] leading-[125%] text-[#11314E] flex mr-8 gap-1 hover:underline font-bold w-[336px] pl-[2rem] mb-[22px]" + } + } + }, + { + "Link": { + "config": { + "label": "Tauchen Sie ein in eine Welt modernster Technologien, zuverlässiger Support und proaktiver Innovation – gemeinsam gestalten wir die digitale Zukunft Ihres Unternehmens.", + "href": "/", + "className": "text-[13px] leading-[160%] text-[#11314E] flex items-center mr-8 gap-1 w-[336px] pl-[2rem] hover:no-underline" + } + } + }, + { + "Button": { + "config": { + "label": "Kontaktieren Sie Uns", + "labelClassName": "order-[1]", + "iconClassName": "order-[2]", + "icon": "ChevronRight", + "className": "mt-[24px] flex items-center w-fit hover:bg-black gap-1 shadow-none p-[1rem] bg-[#18181B] text-white ml-[2rem]" + } + } + } + ] + } + }, + { + "Section": { + "config": { + "className": "flex mt-[2rem]" + }, + "children": [ + { + "Section": { + "config": { + "className": "flex flex-col" + }, + "children": [ + { + "Link": { + "config": { + "label": "Unternehmen", + "href": "/", + "className": "text-[24px] leading-[125%] text-[#11314E] flex mr-8 gap-1 hover:underline font-bold w-[200px] pl-[2rem] mb-[16px]" + } + } + }, + { + "Link": { + "config": { + "label": "Über Uns", + "href": "/", + "className": "text-[13px] leading-[160%] text-[#11314E] flex items-center mr-8 gap-1 w-[200px] pl-[2rem] hover:no-underline" + } + } + }, + { + "Link": { + "config": { + "label": "Placeholder", + "href": "/", + "className": "text-[13px] leading-[160%] text-[#11314E] flex items-center mr-8 gap-1 w-[200px] pl-[2rem] hover:no-underline" + } + } + }, + { + "Link": { + "config": { + "label": "Placeholder", + "href": "/", + "className": "text-[13px] leading-[160%] text-[#11314E] flex items-center mr-8 gap-1 w-[200px] pl-[2rem] hover:no-underline" + } + } + } + ] + } + }, + { + "Section": { + "config": { + "className": "flex flex-col gap-[16px]" + }, + "children": [ + { + "Link": { + "config": { + "label": "Social Media", + "href": "/", + "className": "text-[24px] leading-[125%] text-[#11314E] flex mr-8 gap-1 hover:underline font-bold w-[200px] pl-[2rem] mt-[-15px] mb-[-16px]" + } + } + }, + { + "Button": { + "config": { + "label": "Über Uns", + "icon": "Twitter", + "className": "text-[13px] leading-[160%] text-[#11314E] flex justify-start font-semibold mr-8 gap-1 shadow-none w-[200px] pl-[2rem] hover:bg-transparent" + } + } + }, + { + "Button": { + "config": { + "label": "Über Uns", + "icon": "Twitter", + "className": "text-[13px] leading-[160%] text-[#11314E] flex justify-start font-semibold mr-8 gap-1 shadow-none w-[200px] pl-[2rem] hover:bg-transparent" + } + } + }, + { + "Button": { + "config": { + "label": "Über Uns", + "icon": "Twitter", + "className": "text-[13px] leading-[160%] text-[#11314E] flex justify-start font-semibold mr-8 gap-1 shadow-none w-[200px] pl-[2rem] hover:bg-transparent" + } + } + } + ] + } + }, + { + "Section": { + "config": { + "className": "flex flex-col" + }, + "children": [ + { + "Link": { + "config": { + "label": "Addresse", + "href": "/", + "className": "text-[24px] leading-[125%] text-[#11314E] flex mr-8 gap-1 hover:underline font-bold w-[200px] pl-[2rem] mb-[16px]" + } + } + }, + { + "Link": { + "config": { + "label": "Über Uns", + "href": "/", + "className": "text-[13px] leading-[160%] text-[#11314E] flex items-center mr-8 gap-1 w-[200px] pl-[2rem] hover:no-underline" + } + } + }, + { + "Link": { + "config": { + "label": "Social Media", + "href": "/", + "className": "text-[13px] leading-[160%] text-[#11314E] flex items-center mr-8 gap-1 w-[200px] pl-[2rem] hover:no-underline" + } + } + }, + { + "Link": { + "config": { + "label": "Über Uns", + "href": "/", + "className": "text-[13px] leading-[160%] text-[#11314E] flex items-center mr-8 gap-1 w-[200px] pl-[2rem] hover:no-underline" + } + } + } + ] + } + } + ] + } + }, + { + "Section": { + "config": { + "className": "flex flex-col mt-[5rem]" + }, + "children": [ + { + "Link": { + "config": { + "label": "Tauchen Sie ein in eine Welt modernster Technologien, zuverlässiger Support und proaktiver Innovation – gemeinsam gestalten wir die digitale Zukunft Ihres Unternehmens.", + "href": "/", + "className": "text-[13px] leading-[160%] text-[#11314E] flex items-center mr-8 gap-1 w-[336px] pl-[2rem] hover:no-underline" + } + } + } + ] + } + } + ] + } + } + ] } } } diff --git a/src/modules/layout/templates/vt-footer/index.tsx b/src/modules/layout/templates/vt-footer/index.tsx index 78b4b13..c65c250 100644 --- a/src/modules/layout/templates/vt-footer/index.tsx +++ b/src/modules/layout/templates/vt-footer/index.tsx @@ -3,157 +3,28 @@ import { listCollections } from "@lib/data/collections" import { Text, clx } from "@medusajs/ui" import LocalizedClientLink from "@modules/common/components/localized-client-link" import MedusaCTA from "@modules/layout/components/medusa-cta" -import { LayoutComponentDefinition, LayoutContext } from "vibentec/component-map"; +import { DynamicLayoutRenderer } from "@vibentec/renderer" +import { + LayoutComponentDefinition, + LayoutContext, +} from "vibentec/component-map" -export default async function VtFooter({ nodes, context }: { nodes?: LayoutComponentDefinition; context: LayoutContext }) { +export default async function VtFooter({ + nodes, + context, +}: { + nodes?: LayoutComponentDefinition + context: LayoutContext +}) { const { collections } = await listCollections({ fields: "*products", }) const productCategories = await listCategories() const props = nodes?.config ?? {} - const copyrightText = props.copyrightText ?? ""; return ( -