diff --git a/next-env.d.ts b/next-env.d.ts index c4b7818f..9edff1c7 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/dev/types/routes.d.ts"; +import "./.next/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/public/sitemap.xml b/public/sitemap.xml index 663cfdd8..b2980e07 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -1,38 +1,38 @@ -https://kampyn.com2026-06-21T12:30:09.430Zdaily1 -https://kampyn.com/about2026-06-21T12:30:09.431Zmonthly0.6 -https://kampyn.com/admin-dashboard2026-06-21T12:30:09.431Zdaily0.7 -https://kampyn.com/admin-login2026-06-21T12:30:09.431Zdaily0.7 -https://kampyn.com/auditorium-booking2026-06-21T12:30:09.431Zdaily0.7 -https://kampyn.com/auditorium-booking-unidashboard2026-06-21T12:30:09.431Zdaily0.7 -https://kampyn.com/fav2026-06-21T12:30:09.431Zdaily0.7 -https://kampyn.com/food2026-06-21T12:30:09.431Zdaily0.7 -https://kampyn.com/food-ordering-uniDashboard2026-06-21T12:30:09.431Zweekly0.8 -https://kampyn.com/forgotpassword2026-06-21T12:30:09.431Zdaily0.7 -https://kampyn.com/guest-house-booking-unidashboard2026-06-21T12:30:09.431Zdaily0.7 -https://kampyn.com/guest-house-dashboard2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/guest-house-forgot-password2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/guest-house-login2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/guest-house-otp-verification2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/guest-house-reset-password2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/help2026-06-21T12:30:09.432Zmonthly0.5 -https://kampyn.com/home2026-06-21T12:30:09.432Zdaily0.9 -https://kampyn.com/login2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/pastorders2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/privacypolicy2026-06-21T12:30:09.432Zmonthly0.5 -https://kampyn.com/refundcancellationpolicy2026-06-21T12:30:09.432Zmonthly0.5 -https://kampyn.com/search2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/signup2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/team2026-06-21T12:30:09.432Zmonthly0.6 -https://kampyn.com/tenant-forgot-password2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/tenant-login2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/tenant-otp-verification2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/tenant-reset-password2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/tenant-studio2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/termncondition2026-06-21T12:30:09.432Zmonthly0.5 -https://kampyn.com/uni-login2026-06-21T12:30:09.432Zmonthly0.6 -https://kampyn.com/unidashboard2026-06-21T12:30:09.432Zdaily0.7 -https://kampyn.com/vendor-login2026-06-21T12:30:09.432Zweekly0.8 -https://kampyn.com/vendordashboard2026-06-21T12:30:09.432Zweekly0.8 +https://kampyn.com2026-08-15T11:57:45.460Zdaily1 +https://kampyn.com/about2026-08-15T11:57:45.465Zmonthly0.6 +https://kampyn.com/admin-dashboard2026-08-15T11:57:45.465Zdaily0.7 +https://kampyn.com/admin-login2026-08-15T11:57:45.465Zdaily0.7 +https://kampyn.com/auditorium-booking2026-08-15T11:57:45.465Zdaily0.7 +https://kampyn.com/auditorium-booking-unidashboard2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/fav2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/food2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/food-ordering-uniDashboard2026-08-15T11:57:45.466Zweekly0.8 +https://kampyn.com/forgotpassword2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/guest-house-booking-unidashboard2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/guest-house-dashboard2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/guest-house-forgot-password2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/guest-house-login2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/guest-house-otp-verification2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/guest-house-reset-password2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/help2026-08-15T11:57:45.466Zmonthly0.5 +https://kampyn.com/home2026-08-15T11:57:45.466Zdaily0.9 +https://kampyn.com/login2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/pastorders2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/privacypolicy2026-08-15T11:57:45.466Zmonthly0.5 +https://kampyn.com/refundcancellationpolicy2026-08-15T11:57:45.466Zmonthly0.5 +https://kampyn.com/search2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/signup2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/team2026-08-15T11:57:45.466Zmonthly0.6 +https://kampyn.com/tenant-forgot-password2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/tenant-login2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/tenant-otp-verification2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/tenant-reset-password2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/tenant-studio2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/termncondition2026-08-15T11:57:45.466Zmonthly0.5 +https://kampyn.com/uni-login2026-08-15T11:57:45.466Zmonthly0.6 +https://kampyn.com/unidashboard2026-08-15T11:57:45.466Zdaily0.7 +https://kampyn.com/vendor-login2026-08-15T11:57:45.466Zweekly0.8 +https://kampyn.com/vendordashboard2026-08-15T11:57:45.466Zweekly0.8 \ No newline at end of file diff --git a/src/app/components/cart/BillBox/BillBox.module.scss b/src/app/components/cart/BillBox/BillBox.module.scss index 49d69be7..7c78a17d 100644 --- a/src/app/components/cart/BillBox/BillBox.module.scss +++ b/src/app/components/cart/BillBox/BillBox.module.scss @@ -1,17 +1,18 @@ // @import url("https://fonts.googleapis.com/css2?family=Shadows+Into+Light&display=swap"); .container { - font-family: inherit; // Switch to the more premium sans-serif from the globals - background: white; // Clean white background for the container - padding: 1.5rem; // Increased padding - border-radius: 1.25rem; // Smoother rounded corners + font-family: inherit; + background: var(--kampyn-component-card-bill-background, white); + padding: 1.5rem; + border-radius: var(--kampyn-component-card-bill-radius, 1.25rem); width: 100%; - max-width: 360px; // Slightly wider for breathability + max-width: 360px; display: flex; flex-direction: column; - gap: 1rem; // Increased gap between primary sections - box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05); // Softer modern shadow - border: 1px solid rgba(226, 232, 240, 0.8); + gap: 1rem; + box-shadow: var(--kampyn-component-card-bill-shadow, 0 10px 25px rgba(0, 0, 0, 0.05)); + border: 1px solid var(--kampyn-component-card-bill-border, rgba(226, 232, 240, 0.8)); + color: var(--kampyn-component-card-bill-title, var(--kampyn-color-text, #1e293b)); } .segmentedControl { @@ -38,9 +39,9 @@ } .active { - background: #01796f; - color: #fff; - box-shadow: 0 2px 4px rgba(1, 121, 111, 0.2); + background: var(--kampyn-color-primary, #01796f); + color: var(--kampyn-color-textInverse, #fff); + box-shadow: 0 2px 4px color-mix(in srgb, var(--kampyn-color-primary, #01796f) 20%, transparent); } .input, @@ -55,8 +56,8 @@ &:focus { outline: none; - border-color: #01796f; - box-shadow: 0 0 0 2px rgba(1, 121, 111, 0.1); + border-color: var(--kampyn-color-primary, #01796f); + box-shadow: 0 0 0 2px color-mix(in srgb, var(--kampyn-color-primary, #01796f) 10%, transparent); } } @@ -138,23 +139,26 @@ } .button { - padding: 0.8rem; // Increased padding - background: #01796f; - color: white; + padding: 0.8rem; + background: var(--kampyn-component-button-checkout-background, var(--kampyn-color-primary, #01796f)); + color: var(--kampyn-component-button-checkout-text, var(--kampyn-color-textInverse, white)); font-weight: 600; font-size: 1rem; border: none; - border-radius: 0.6rem; + border-radius: var(--kampyn-component-button-checkout-radius, 0.6rem); cursor: pointer; transition: all 0.2s ease; margin-top: 0.5rem; - box-shadow: 0 4px 6px rgba(1, 121, 111, 0.2); + box-shadow: 0 4px 6px color-mix(in srgb, var(--kampyn-color-primary, #01796f) 20%, transparent); } .button:hover { transform: translateY(-2px); - box-shadow: 0 6px 12px rgba(1, 121, 111, 0.3); - background: #016b62; // Slightly darker hover + box-shadow: 0 6px 12px color-mix(in srgb, var(--kampyn-color-primary, #01796f) 30%, transparent); + background: var( + --kampyn-component-button-checkout-hover, + var(--kampyn-component-button-checkout-background, var(--kampyn-color-primary, #016b62)) + ); } .button:active { diff --git a/src/app/components/cart/shared/BillBoxForm.tsx b/src/app/components/cart/shared/BillBoxForm.tsx index 3139498d..e1e40424 100644 --- a/src/app/components/cart/shared/BillBoxForm.tsx +++ b/src/app/components/cart/shared/BillBoxForm.tsx @@ -99,7 +99,11 @@ const BillBoxForm: React.FC = ({ } return ( -
+ {vendorDeliverySettings && (
Estimated preparation time diff --git a/src/app/components/food/DishListItem/DishListItem.module.scss b/src/app/components/food/DishListItem/DishListItem.module.scss index d9bb8db5..80d9f300 100644 --- a/src/app/components/food/DishListItem/DishListItem.module.scss +++ b/src/app/components/food/DishListItem/DishListItem.module.scss @@ -3,22 +3,35 @@ .dishListItem { display: flex; - align-items: flex-start; // Align to top - background: white; - border-radius: 16px; // Reduced radius - padding: 0.75rem; // Reduced padding - margin-bottom: 0.5rem; // Reduced margin - box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03); - border: 1px solid rgba(226, 232, 240, 0.8); + align-items: flex-start; + background: var(--kampyn-component-card-dish-background, white); + border-radius: var(--kampyn-component-card-dish-radius, 16px); + padding: 0.75rem; + margin-bottom: 0.5rem; + box-shadow: var( + --kampyn-component-card-dish-shadow, + 0 4px 6px -1px rgba(0, 0, 0, 0.05), + 0 2px 4px -1px rgba(0, 0, 0, 0.03) + ); + border: 1px solid var(--kampyn-component-card-dish-border, rgba(226, 232, 240, 0.8)); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: hidden; - gap: 1rem; // Reduced gap + gap: 1rem; + color: var(--kampyn-component-card-dish-title, var(--kampyn-color-text, #1e293b)); &:hover { - transform: translateY(-2px); // Subtle lift - box-shadow: 0 8px 12px -3px rgba(var(--secondary-color-rgb, 78, 161, 153), 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); - border-color: rgba(var(--secondary-color-rgb, 78, 161, 153), 0.3); + transform: translateY(-2px); + box-shadow: var( + --kampyn-component-card-dish-hoverShadow, + 0 8px 12px -3px rgba(var(--secondary-color-rgb, 78, 161, 153), 0.1), + 0 4px 6px -2px rgba(0, 0, 0, 0.05) + ); + border-color: var(--kampyn-component-card-dish-border, rgba(var(--secondary-color-rgb, 78, 161, 153), 0.3)); + background: var( + --kampyn-component-card-dish-hoverBackground, + var(--kampyn-component-card-dish-background, white) + ); } @media (max-width: 768px) { @@ -31,6 +44,19 @@ } } +/* Cart line items use card.cartItem theme vars (set via data-theme-component) */ +.dishListItem[data-theme-component="card.cartItem"] { + background: var(--kampyn-component-card-cartItem-background, white); + border-radius: var(--kampyn-component-card-cartItem-radius, 16px); + box-shadow: var( + --kampyn-component-card-cartItem-shadow, + 0 4px 6px -1px rgba(0, 0, 0, 0.05), + 0 2px 4px -1px rgba(0, 0, 0, 0.03) + ); + border-color: var(--kampyn-component-card-cartItem-border, rgba(226, 232, 240, 0.8)); + color: var(--kampyn-component-card-cartItem-title, var(--kampyn-color-text, #1e293b)); +} + .leftSection { display: flex; flex-direction: column; diff --git a/src/app/components/food/DishListItem/DishListItemV2.tsx b/src/app/components/food/DishListItem/DishListItemV2.tsx index c2a92155..b9f92c61 100644 --- a/src/app/components/food/DishListItem/DishListItemV2.tsx +++ b/src/app/components/food/DishListItem/DishListItemV2.tsx @@ -40,9 +40,14 @@ const DishListItem: React.FC = ({ const inStock = isDishInStock(item); const isBoxed = variant === 'boxed'; + const themeComponent = + variant === 'cart' ? 'card.cartItem' : 'card.dish'; return ( -
+
{
handleCollegeClick(college)} style={{ animationDelay: `${index * 0.1}s` }} > diff --git a/src/app/food/[slug]/styles/CollegePage.module.scss b/src/app/food/[slug]/styles/CollegePage.module.scss index ba941a9f..c5c2a408 100644 --- a/src/app/food/[slug]/styles/CollegePage.module.scss +++ b/src/app/food/[slug]/styles/CollegePage.module.scss @@ -396,24 +396,27 @@ } .foodCard { - background: rgba(255, 255, 255, 0.95); + background: var(--kampyn-component-card-dish-background, rgba(255, 255, 255, 0.95)); backdrop-filter: blur(10px); - border-radius: 20px; + border-radius: var(--kampyn-component-card-dish-radius, 20px); padding: 1.25rem; height: 100%; width: 100%; display: flex; flex-direction: column; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); - box-shadow: + box-shadow: var( + --kampyn-component-card-dish-shadow, 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03), - 0 0 0 1px rgba(226, 232, 240, 0.5); - border: 1px solid rgba(226, 232, 240, 0.8); + 0 0 0 1px rgba(226, 232, 240, 0.5) + ); + border: 1px solid var(--kampyn-component-card-dish-border, rgba(226, 232, 240, 0.8)); min-height: 450px; box-sizing: border-box; overflow: hidden; position: relative; + color: var(--kampyn-component-card-dish-title, var(--kampyn-color-text, #1e293b)); &::before { content: ''; @@ -430,11 +433,17 @@ .foodCard:hover { transform: translateY(-8px) scale(1.02); - box-shadow: + box-shadow: var( + --kampyn-component-card-dish-hoverShadow, 0 20px 40px -10px rgba(var(--secondary-color-rgb, 78, 161, 153), 0.2), 0 8px 12px -4px rgba(0, 0, 0, 0.1), - 0 0 0 1px rgba(var(--secondary-color-rgb, 78, 161, 153), 0.2); - border-color: rgba(var(--secondary-color-rgb, 78, 161, 153), 0.3); + 0 0 0 1px rgba(var(--secondary-color-rgb, 78, 161, 153), 0.2) + ); + border-color: var(--kampyn-component-card-dish-border, rgba(var(--secondary-color-rgb, 78, 161, 153), 0.3)); + background: var( + --kampyn-component-card-dish-hoverBackground, + var(--kampyn-component-card-dish-background, rgba(255, 255, 255, 0.95)) + ); &::before { opacity: 1; @@ -1069,27 +1078,36 @@ } .vendorCard { - background: rgba(255, 255, 255, 0.9); + background: var(--kampyn-component-card-vendor-background, rgba(255, 255, 255, 0.9)); backdrop-filter: blur(10px); - border-radius: 20px; + border-radius: var(--kampyn-component-card-vendor-radius, 20px); overflow: hidden; - box-shadow: + box-shadow: var( + --kampyn-component-card-vendor-shadow, 0 4px 6px -1px rgba(0, 0, 0, 0.1), - 0 2px 4px -1px rgba(0, 0, 0, 0.06); - border: 2px solid #e2e8f0; // Neutral border + 0 2px 4px -1px rgba(0, 0, 0, 0.06) + ); + border: 2px solid var(--kampyn-component-card-vendor-border, #e2e8f0); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; display: flex; flex-direction: column; height: 100%; padding: 0; + color: var(--kampyn-component-card-vendor-title, var(--kampyn-color-text, #1e293b)); &:hover { transform: translateY(-5px); - box-shadow: + box-shadow: var( + --kampyn-component-card-vendor-hoverShadow, 0 20px 25px -5px rgba(0, 0, 0, 0.1), - 0 10px 10px -5px rgba(0, 0, 0, 0.04); - border-color: #cbd5e1; // Neutral hover border + 0 10px 10px -5px rgba(0, 0, 0, 0.04) + ); + border-color: var(--kampyn-component-card-vendor-border, #cbd5e1); + background: var( + --kampyn-component-card-vendor-hoverBackground, + var(--kampyn-component-card-vendor-background, rgba(255, 255, 255, 0.9)) + ); } &Selected { diff --git a/src/app/food/styles/Home.module.scss b/src/app/food/styles/Home.module.scss index 980e7cac..d2ef220a 100644 --- a/src/app/food/styles/Home.module.scss +++ b/src/app/food/styles/Home.module.scss @@ -136,21 +136,24 @@ .collegeCard { position: relative; - background: rgba(255, 255, 255, 0.8); + background: var(--kampyn-component-card-college-background, rgba(255, 255, 255, 0.8)); backdrop-filter: blur(20px); - border-radius: 20px; + border-radius: var(--kampyn-component-card-college-radius, 20px); padding: 2rem; cursor: pointer; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); - border: 1px solid rgba(226, 232, 240, 0.8); + border: 1px solid var(--kampyn-component-card-college-border, rgba(226, 232, 240, 0.8)); min-height: 140px; display: flex; align-items: center; overflow: hidden; - box-shadow: + box-shadow: var( + --kampyn-component-card-college-shadow, 0 4px 6px -1px rgba(0, 0, 0, 0.05), - 0 2px 4px -1px rgba(0, 0, 0, 0.03); + 0 2px 4px -1px rgba(0, 0, 0, 0.03) + ); animation: fadeInUp 0.6s ease-out backwards; + color: var(--kampyn-component-card-college-title, var(--kampyn-color-text, #1e293b)); &::before { content: ''; @@ -162,16 +165,18 @@ background: linear-gradient(135deg, rgba(var(--secondary-color-rgb, 78, 161, 153), 0.05), rgba(var(--secondary-color-rgb, 78, 161, 153), 0.05)); opacity: 0; transition: opacity 0.4s ease; - border-radius: 20px; + border-radius: var(--kampyn-component-card-college-radius, 20px); } &:hover { transform: translateY(-8px) scale(1.02); - box-shadow: + box-shadow: var( + --kampyn-component-card-college-hoverShadow, 0 25px 50px -12px rgba(var(--secondary-color-rgb, 78, 161, 153), 0.25), - 0 0 0 1px rgba(var(--secondary-color-rgb, 78, 161, 153), 0.1); - border-color: rgba(var(--secondary-color-rgb, 78, 161, 153), 0.3); - background: rgba(255, 255, 255, 0.95); + 0 0 0 1px rgba(var(--secondary-color-rgb, 78, 161, 153), 0.1) + ); + border-color: var(--kampyn-component-card-college-border, rgba(var(--secondary-color-rgb, 78, 161, 153), 0.3)); + background: var(--kampyn-component-card-college-hoverBackground, rgba(255, 255, 255, 0.95)); &::before { opacity: 1; diff --git a/src/app/home/HomeGatewayClient.tsx b/src/app/home/HomeGatewayClient.tsx index 89ce5a8f..8faea8c6 100644 --- a/src/app/home/HomeGatewayClient.tsx +++ b/src/app/home/HomeGatewayClient.tsx @@ -114,7 +114,7 @@ export default function HomeGatewayClient() { key={card.key} type="button" className={styles.optionCard} - data-theme-component="card.category" + data-theme-component="card.home" onClick={() => router.push(card.route)} >

{card.title}

diff --git a/src/app/home/page.module.scss b/src/app/home/page.module.scss index 0589738c..557406c8 100644 --- a/src/app/home/page.module.scss +++ b/src/app/home/page.module.scss @@ -69,41 +69,46 @@ display: block; width: 100%; text-align: left; - border-radius: var(--kampyn-component-card-category-radius, var(--kampyn-shape-radiusLg, 20px)); - border: 1px solid var(--kampyn-component-card-category-border, rgba(226, 232, 240, 0.8)); - background: var(--kampyn-component-card-category-background, rgba(255, 255, 255, 0.82)); + border-radius: var(--kampyn-component-card-home-radius, var(--kampyn-shape-radiusLg, 20px)); + border: 1px solid var(--kampyn-component-card-home-border, rgba(226, 232, 240, 0.8)); + background: var(--kampyn-component-card-home-background, rgba(255, 255, 255, 0.82)); backdrop-filter: blur(20px); padding: 1.75rem; text-decoration: none; min-height: 180px; - box-shadow: + box-shadow: var( + --kampyn-component-card-home-shadow, 0 4px 6px -1px rgba(0, 0, 0, 0.05), - 0 2px 4px -1px rgba(0, 0, 0, 0.03); + 0 2px 4px -1px rgba(0, 0, 0, 0.03) + ); transition: all 0.25s ease; cursor: pointer; + color: var(--kampyn-component-card-home-title, var(--kampyn-color-text, #1e293b)); } .optionCard:hover { transform: translateY(-6px); - border-color: rgba(var(--primary-color-rgb, 1, 121, 111), 0.3); + border-color: var(--kampyn-component-card-home-border, rgba(var(--primary-color-rgb, 1, 121, 111), 0.3)); background: var( - --kampyn-component-card-category-hoverBackground, + --kampyn-component-card-home-hoverBackground, rgba(255, 255, 255, 0.95) ); - box-shadow: + box-shadow: var( + --kampyn-component-card-home-hoverShadow, 0 20px 40px -12px rgba(var(--primary-color-rgb, 1, 121, 111), 0.22), - 0 0 0 1px rgba(var(--primary-color-rgb, 1, 121, 111), 0.1); + 0 0 0 1px rgba(var(--primary-color-rgb, 1, 121, 111), 0.1) + ); } .cardTitle { font-size: 1.35rem; font-weight: 700; - color: var(--kampyn-component-card-category-title, var(--kampyn-color-text, #1e293b)); + color: var(--kampyn-component-card-home-title, var(--kampyn-color-text, #1e293b)); margin-bottom: 0.65rem; } .cardDescription { - color: var(--kampyn-color-textMuted, #64748b); + color: var(--kampyn-component-card-home-description, var(--kampyn-color-textMuted, #64748b)); margin-bottom: 1.1rem; line-height: 1.6; } diff --git a/src/app/tenant-studio/ThemeStudioPanel.tsx b/src/app/tenant-studio/ThemeStudioPanel.tsx index 8a667c8c..707ae93a 100644 --- a/src/app/tenant-studio/ThemeStudioPanel.tsx +++ b/src/app/tenant-studio/ThemeStudioPanel.tsx @@ -26,6 +26,41 @@ type ThemeSection = "tokens" | "components" | "pages" | "importExport"; const COLOR_TOKEN_KEYS = Object.keys(DEFAULT_TOKENS.color) as (keyof typeof DEFAULT_TOKENS.color)[]; +/** Human-readable labels for shopper card ids in Tenant Studio */ +const CARD_ID_LABELS: Record = { + home: "Home option", + college: "College picker", + vendor: "Vendor tile", + dish: "Dish / product", + offer: "Special offer", + cartItem: "Cart item", + bill: "Bill panel", + restaurant: "Restaurant", + category: "Category", + membership: "Membership", + wallet: "Wallet", + analytics: "Analytics", + statistics: "Statistics", + coupon: "Coupon", + profile: "Profile", + order: "Order", + notification: "Notification", +}; + +const SHOPPER_CARD_PREVIEW_IDS = [ + "home", + "college", + "vendor", + "dish", + "offer", + "cartItem", + "bill", +] as const; + +function cardLabel(id: string): string { + return CARD_ID_LABELS[id] || id; +} + function setDeep( obj: ThemeDocument, path: string[], @@ -425,7 +460,7 @@ export default function ThemeStudioPanel({ triggerToast, onPublished }: ThemeStu > {(COMPONENT_CATALOG[componentCategory].ids as readonly string[]).map((id) => ( ))} @@ -621,31 +656,98 @@ export default function ThemeStudioPanel({ triggerToast, onPublished }: ThemeStu > Navbar · {primary}
-
-

- Dish card -

-

- Description preview -

-

+

+ Card gallery — click to edit +

+
+ {SHOPPER_CARD_PREVIEW_IDS.map((id) => { + const selected = componentId === id; + return ( + + ); + })} +
+
+ ) : ( +
- ₹120 -

-
+

+ Dish card +

+

+ Description preview +

+

+ ₹120 +

+
+ )} +