diff --git a/config/nam.vibentec.design.json b/config/nam.vibentec.design.json new file mode 100644 index 0000000..2725625 --- /dev/null +++ b/config/nam.vibentec.design.json @@ -0,0 +1,290 @@ +[ + { + "AnnouncementBanner": { + "props": { + "className": "bg-[#E6EFFC] text-[#285A86] flex items-center text-xs" + }, + "children": [ + { + "Div": { + "props": { + "className": "flex items-center h-full gap-8 " + }, + "children": [ + { + "Text": { + "props": { + "className": "text-sm font-medium", + "label": "Über Uns" + } + } + }, + { + "Text": { + "props": { + "className": "text-sm font-medium", + "label": "Kontaktieren Uns" + } + } + } + ] + } + }, + { + "Div": { + "props": { + "className": "flex items-center h-full gap-6" + }, + "children": [ + { + "Text": { + "props": { + "className": "text-sm font-medium", + "label": "Einsparung durch Digitalisierung in der Arztpraxis" + } + } + }, + { + "Button": { + "props": { + "className": "text-xs font-medium", + "label": "Mehr Info" + } + } + } + ] + } + }, + { + "Div": { + "props": { + "className": "flex items-center h-full gap-4" + }, + "children": [ + { + "DropdownMenus": { + "props": { + "label": "EURO", + "className": "hover:underline flex items-center gap-2", + "data-testid": "nav-categories-link", + "isShowArrow": true + }, + "children": [ + { + "DropdownMenuItems": { + "props": { + "label": "USD", + "className": "", + "data-testid": "nav-all-categories-link" + } + } + }, + { + "DropdownMenuItems": { + "props": { + "label": "VND", + "className": "hover:underline flex items-center gap-2", + "data-testid": "nav-new-arrivals-link" + } + } + }, + { + "DropdownMenuItems": { + "props": { + "label": "EURO", + "className": "hover:underline flex items-center gap-2", + "data-testid": "nav-best-sellers-link" + } + } + } + ] + } + }, + { + "DropdownMenus": { + "props": { + "label": "DE", + "className": "hover:underline flex items-center gap-2", + "data-testid": "nav-categories-link", + "isShowArrow": true + }, + "children": [ + { + "DropdownMenuItems": { + "props": { + "label": "EN", + "className": "", + "data-testid": "nav-all-categories-link" + } + } + }, + { + "DropdownMenuItems": { + "props": { + "label": "KR", + "className": "hover:underline flex items-center gap-2", + "data-testid": "nav-new-arrivals-link" + } + } + }, + { + "DropdownMenuItems": { + "props": { + "label": "DE", + "className": "hover:underline flex items-center gap-2", + "data-testid": "nav-best-sellers-link" + } + } + } + ] + } + } + ] + } + } + ] + } + }, + { + "Nav": { + "props": { + "className": "bg-white text-black text-sm pr-16" + }, + "children": [ + { + "Div": { + "props": { + "className": "flex items-center h-full" + }, + "children": [ + { + "Image": { + "props": { + "src": "/VibentecIT-logo.svg", + "alt": "Medusa Store", + "width": 150, + "height": 80, + "className": "cursor-pointer ml-14" + } + } + }, + { + "Div": { + "props": { + "className": "flex items-center h-full gap-8 ml-16" + }, + "children": [ + { + "LocalizedClientLink": { + "props": { + "href": "/", + "label": "Home", + "className": "hover:underline flex items-center gap-2", + "data-testid": "nav-home-link" + } + } + }, + { + "LocalizedClientLink": { + "props": { + "href": "/collections/all", + "label": "Shop", + "className": "hover:underline flex items-center gap-2", + "data-testid": "nav-collections-link" + } + } + }, + { + "LocalizedClientLink": { + "props": { + "href": "/pages/about-us", + "label": "Sale", + "className": "hover:underline flex items-center gap-2", + "data-testid": "nav-about-link" + } + } + } + ] + } + } + ] + } + }, + { + "Div": { + "props": { + "className": "flex items-center gap-x-6 h-full justify-end" + }, + "children": [ + { + "InputSearchButton": { + "props": { + "className": "flex items-center", + "data-testid": "nav-account-link" + } + } + }, + { + "UserButton": { + "props": { + "className": "hover:underline hover:text-black flex items-center", + "data-testid": "nav-account-link" + } + } + }, + { + "FavoriteButton": { + "props": { + "className": "hover:underline hover:text-black flex items-center", + "data-testid": "nav-account-link" + } + } + }, + { + "Suspense": { + "props": { + "fallback": [ + { + "LocalizedClientLink": { + "props": { + "href": "/cart", + "label": "Cart (0)", + "className": "hover:underline flex gap-2", + "data-testid": "nav-cart-link" + } + } + } + ] + }, + "children": [ + { + "CartButton": {} + } + ] + } + } + ] + } + } + ] + } + }, + { + "CartMismatchBanner": { + "show": true + } + }, + { + "FreeShippingPriceNudge": { + "variant": "popup" + } + }, + { + "PropsChildren": {} + }, + { + "Footer": { + "copyrightText": "© 2025 MyShop" + } + } +] diff --git a/public/VibentecIT-logo.svg b/public/VibentecIT-logo.svg new file mode 100644 index 0000000..a1efe53 --- /dev/null +++ b/public/VibentecIT-logo.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/[countryCode]/(main)/config-json-file.ts b/src/app/[countryCode]/(main)/config-json-file.ts new file mode 100644 index 0000000..c45ac53 --- /dev/null +++ b/src/app/[countryCode]/(main)/config-json-file.ts @@ -0,0 +1,18 @@ +export const DESIGN_JSON_FILE = [ + { + id: "drsquatch", + file: "nam.drsquatch.design.json", + }, + { + id: "3bear", + file: "nam.3bear.design.json", + }, + { + id: "vibentec", + file: "nam.vibentec.design.json", + }, + { + id: "medusa-starter", + file: "ste.medusa-starter.design.json", + } +] diff --git a/src/modules/layout/templates/vibentec-template/announcement-bar/index.tsx b/src/modules/layout/templates/vibentec-template/announcement-bar/index.tsx new file mode 100644 index 0000000..9786528 --- /dev/null +++ b/src/modules/layout/templates/vibentec-template/announcement-bar/index.tsx @@ -0,0 +1,17 @@ +import { DynamicLayoutRenderer, DynamicLayoutRendererProps } from "vibentec/renderer" + +type TextItem = { text: string; className?: string } + +export default async function AnnouncementBanner({ + className, + nodes, + context, +}: DynamicLayoutRendererProps & { className: string; label: TextItem[] }) { + return ( +
+
+ {nodes && } +
+
+ ) +}