Compare commits
No commits in common. "1e99ead658a57a1b7091c0990633a911da4a20a2" and "efe48a200f072f1141e82271aee11751424b6d7d" have entirely different histories.
1e99ead658
...
efe48a200f
|
|
@ -129,7 +129,7 @@
|
||||||
{
|
{
|
||||||
"Button": {
|
"Button": {
|
||||||
"config": {
|
"config": {
|
||||||
"icon": "User",
|
"icon": "user",
|
||||||
"className": "shadow-none bg-transparent text-white hover:text-black"
|
"className": "shadow-none bg-transparent text-white hover:text-black"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -169,447 +169,7 @@
|
||||||
{
|
{
|
||||||
"Footer": {
|
"Footer": {
|
||||||
"config": {
|
"config": {
|
||||||
"className": "content-container flex w-full bg-[#1f3521]",
|
"copyrightText": "© 2025 MyShop"
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"Section": {
|
|
||||||
"config": {
|
|
||||||
"className": "grid grid-cols-2 w-full py-[40px]"
|
|
||||||
},
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"Section": {
|
|
||||||
"config": {
|
|
||||||
"className": "flex mr-8 gap-1 w-full gap-6"
|
|
||||||
},
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"Section": {
|
|
||||||
"config": {
|
|
||||||
"className": "flex mr-8 gap-1 w-full flex-col gap-6"
|
|
||||||
},
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Help",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[16px] leading-[125%] text-white flex hover:text-white font-bold"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "FAQ",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[160%] text-white flex mr-8 gap-1 hover:bg-transparent hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Track My Order",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Store policies",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Contact us",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Placeholder",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Placeholder",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Placeholder",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Placeholder",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Section": {
|
|
||||||
"config": {
|
|
||||||
"className": "flex mr-8 gap-1 w-full flex-col gap-6"
|
|
||||||
},
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Shop",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[16px] leading-[125%] text-white flex hover:text-white font-bold"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "FAQ",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[160%] text-white flex mr-8 gap-1 hover:bg-transparent hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Track My Order",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Store policies",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Contact us",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Placeholder",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Placeholder",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Placeholder",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Placeholder",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Section": {
|
|
||||||
"config": {
|
|
||||||
"className": "flex mr-8 gap-1 w-full flex-col gap-6"
|
|
||||||
},
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Info",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[16px] leading-[125%] text-white flex hover:text-white font-bold"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "FAQ",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[160%] text-white flex mr-8 gap-1 hover:bg-transparent hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Track My Order",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Store policies",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Contact us",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Placeholder",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Placeholder",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Placeholder",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Link": {
|
|
||||||
"config": {
|
|
||||||
"label": "Placeholder",
|
|
||||||
"href": "/",
|
|
||||||
"className": "text-[14px] leading-[125%] text-white flex hover:text-white font-extralight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Section": {
|
|
||||||
"config": {
|
|
||||||
"className": "flex mr-8 gap-1 w-full flex-col gap-6"
|
|
||||||
},
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"Image": {
|
|
||||||
"config": {
|
|
||||||
"src": "/b-corp-logo.webp",
|
|
||||||
"alt": "B Corp Logo",
|
|
||||||
"className": "w-[96px] h-[118px]"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Section": {
|
|
||||||
"config": {
|
|
||||||
"className": "flex mr-8 gap-1 w-full flex-col gap-6"
|
|
||||||
},
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"Text": {
|
|
||||||
"config": {
|
|
||||||
"label": "Don't miss out on hot deals! Sign up and get up to 30% off.",
|
|
||||||
"className": "text-[16px] leading-[125%] text-white flex font-bold"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Section": {
|
|
||||||
"config": {
|
|
||||||
"className": "flex w-full flex gap-6"
|
|
||||||
},
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"Input": {
|
|
||||||
"config": {
|
|
||||||
"placeholder": "Enter your email address",
|
|
||||||
"className": "w-[75%] rounded-md h-[48px] px-[16px] text-[16px] leading-[125%] text-white flex font-bold"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Button": {
|
|
||||||
"config": {
|
|
||||||
"label": "Sign up",
|
|
||||||
"className": "w-[25%] rounded-md bg-[#cc6328] h-[48px] px-[16px] text-[16px] leading-[125%] text-white flex font-bold"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Section": {
|
|
||||||
"config": {
|
|
||||||
"className": "flex w-full flex"
|
|
||||||
},
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"Button": {
|
|
||||||
"config": {
|
|
||||||
"icon": "Twitter",
|
|
||||||
"className": "text-white flex justify-start gap-1 shadow-none w-[50px] bg-transparent hover:bg-transparent"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Button": {
|
|
||||||
"config": {
|
|
||||||
"icon": "Twitter",
|
|
||||||
"className": "text-white flex justify-start gap-1 shadow-none w-[50px] bg-transparent hover:bg-transparent"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Button": {
|
|
||||||
"config": {
|
|
||||||
"icon": "Twitter",
|
|
||||||
"className": "text-white flex justify-start gap-1 shadow-none w-[50px] bg-transparent hover:bg-transparent"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Button": {
|
|
||||||
"config": {
|
|
||||||
"icon": "Twitter",
|
|
||||||
"className": "text-white flex justify-start gap-1 shadow-none w-[50px] bg-transparent hover:bg-transparent"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Button": {
|
|
||||||
"config": {
|
|
||||||
"icon": "Twitter",
|
|
||||||
"className": "text-white flex justify-start gap-1 shadow-none w-[50px] bg-transparent hover:bg-transparent"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Section": {
|
|
||||||
"config": {
|
|
||||||
"className": "flex justify-center col-span-full w-full gap-1"
|
|
||||||
},
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"Text": {
|
|
||||||
"config": {
|
|
||||||
"label": "DR. SQUATCH is a registered trademark of Dr. Squatch, LLC © 2025, Dr. Squatch, LLC All rights reserved.",
|
|
||||||
"className": "text-[11px] mt-[3rem] leading-[125%] text-white flex"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Text":{
|
|
||||||
"config":{
|
|
||||||
"label":"Terms of Use",
|
|
||||||
"className":"text-[11px] mt-[3rem] leading-[125%] text-orange-500 flex"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Text":{
|
|
||||||
"config":{
|
|
||||||
"label":"|",
|
|
||||||
"className":"text-[11px] mt-[3rem] leading-[125%] text-white flex"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Text":{
|
|
||||||
"config":{
|
|
||||||
"label":"Privacy Policy",
|
|
||||||
"className":"text-[11px] mt-[3rem] leading-[125%] text-orange-500 flex"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -204,6 +204,7 @@
|
||||||
{
|
{
|
||||||
"Footer": {
|
"Footer": {
|
||||||
"config": {
|
"config": {
|
||||||
|
"copyrightText": "© 2025 MyShop",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"Image": {
|
"Image": {
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 9.7 KiB |
|
|
@ -23,7 +23,7 @@ export default async function VtFooter({
|
||||||
const props = nodes?.config ?? {}
|
const props = nodes?.config ?? {}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<footer className={props?.className ?? ""}>
|
<footer className="relative mx-auto duration-200 bg-white border-ui-border-base border-t-2">
|
||||||
{props.children && <DynamicLayoutRenderer nodes={props.children} context={context} />}
|
{props.children && <DynamicLayoutRenderer nodes={props.children} context={context} />}
|
||||||
</footer>
|
</footer>
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
import { LayoutComponentDefinition, LayoutContext } from "@vibentec/component-map"
|
|
||||||
|
|
||||||
export default function VtInput({
|
|
||||||
nodes,
|
|
||||||
context,
|
|
||||||
}: {
|
|
||||||
nodes: LayoutComponentDefinition
|
|
||||||
context: LayoutContext
|
|
||||||
}) {
|
|
||||||
const props = nodes.config || {}
|
|
||||||
return (
|
|
||||||
<input
|
|
||||||
className={props?.className ?? ""}
|
|
||||||
type={props?.type ?? "text"}
|
|
||||||
placeholder={props?.placeholder ?? ""}
|
|
||||||
/>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
@ -12,7 +12,7 @@ export default function VtText({
|
||||||
const props = nodes.config || {}
|
const props = nodes.config || {}
|
||||||
return (
|
return (
|
||||||
<span className={props?.className ?? ""}>
|
<span className={props?.className ?? ""}>
|
||||||
{props?.label ?? ""}
|
{props?.label && <span>{props.label}</span>}
|
||||||
</span>
|
</span>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ import VtButton from "@modules/layout/templates/vt-button"
|
||||||
import VtSearchInput from "@modules/layout/templates/vt-search-input"
|
import VtSearchInput from "@modules/layout/templates/vt-search-input"
|
||||||
import VtSection from "@modules/layout/templates/vt-section"
|
import VtSection from "@modules/layout/templates/vt-section"
|
||||||
import VtText from "@modules/layout/templates/vt-text"
|
import VtText from "@modules/layout/templates/vt-text"
|
||||||
import VtInput from "@modules/layout/templates/vt-input"
|
|
||||||
|
|
||||||
type ComponentConfig = Record<string, any>;
|
type ComponentConfig = Record<string, any>;
|
||||||
|
|
||||||
|
|
@ -65,7 +64,6 @@ export const componentMap: Record<string, ComponentRenderer> = {
|
||||||
SearchInput: nodesContextRenderer(VtSearchInput),
|
SearchInput: nodesContextRenderer(VtSearchInput),
|
||||||
VtCartButton: nodesContextRenderer(VtCartButton),
|
VtCartButton: nodesContextRenderer(VtCartButton),
|
||||||
Link: nodesContextRenderer(VtLink),
|
Link: nodesContextRenderer(VtLink),
|
||||||
Input: nodesContextRenderer(VtInput),
|
|
||||||
Image: nodesContextRenderer(VtImage),
|
Image: nodesContextRenderer(VtImage),
|
||||||
Text: nodesContextRenderer(VtText),
|
Text: nodesContextRenderer(VtText),
|
||||||
Dropdown: nodesContextRenderer(VtDropdown),
|
Dropdown: nodesContextRenderer(VtDropdown),
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import fs from "fs"
|
||||||
import path from "path"
|
import path from "path"
|
||||||
import { jsonFileNames } from "./devJsonFileNames";
|
import { jsonFileNames } from "./devJsonFileNames";
|
||||||
|
|
||||||
const fileName = jsonFileNames.namDrsquatch;
|
const fileName = jsonFileNames.namVibentec;
|
||||||
|
|
||||||
export async function loadDesignConfig() {
|
export async function loadDesignConfig() {
|
||||||
const filePath = path.join(process.cwd(), "config", fileName)
|
const filePath = path.join(process.cwd(), "config", fileName)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue