Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | 4x 4x 4x 4x 4x 4x 4x 4x | // Constants and configuration maps
// Room categories with metadata
// `value` is the display slug used in URLs. `roomTypeCodes` maps to actual DB room_type codes
// so the API can query the right rooms (e.g., "bedroom" aggregates master/kids/guest bedroom).
export const ROOM_CATEGORIES = [
{
value: "kitchen",
label: "Kitchen",
icon: "๐ณ",
description: "Modular kitchens and kitchen renovations",
roomTypeCodes: ["kitchen"],
},
{
value: "bedroom",
label: "Bedroom",
icon: "๐๏ธ",
description: "Bedroom designs and wardrobes",
roomTypeCodes: ["master_bedroom", "kids_bedroom", "guest_bedroom"],
},
{
value: "living_room",
label: "Living Room",
icon: "๐๏ธ",
description: "Living room interiors and furniture",
roomTypeCodes: ["living_room"],
},
{
value: "bathroom",
label: "Bathroom",
icon: "๐ฟ",
description: "Bathroom designs and fittings",
roomTypeCodes: ["bathroom"],
},
{
value: "kids_room",
label: "Kids Room",
icon: "๐งธ",
description: "Children's room designs",
roomTypeCodes: ["kids_bedroom"],
},
{
value: "dining",
label: "Dining",
icon: "๐ฝ๏ธ",
description: "Dining room interiors",
roomTypeCodes: ["dining_area"],
},
{
value: "office",
label: "Home Office",
icon: "๐ผ",
description: "Home office and study room",
roomTypeCodes: ["study"],
},
{
value: "balcony",
label: "Balcony",
icon: "๐ฟ",
description: "Balcony and outdoor spaces",
roomTypeCodes: ["balcony", "terrace"],
},
{
value: "pooja_room",
label: "Pooja Room",
icon: "๐ช",
description: "Prayer room designs",
roomTypeCodes: ["pooja_room"],
},
{
value: "wardrobe",
label: "Wardrobe",
icon: "๐",
description: "Custom wardrobes and storage",
roomTypeCodes: ["wardrobe"],
},
{
value: "full_home",
label: "Full Home",
icon: "๐ ",
description: "Complete home interiors",
roomTypeCodes: ["full_home"],
},
{
value: "other",
label: "Other Spaces",
icon: "โจ",
description: "Foyers, corridors, and other unique spaces",
roomTypeCodes: ["other"],
},
] as const;
export const CITIES = [
{ value: "hyderabad", label: "Hyderabad" },
{ value: "pune", label: "Pune" },
{ value: "bangalore", label: "Bangalore" },
{ value: "mumbai", label: "Mumbai" },
{ value: "chennai", label: "Chennai" },
{ value: "delhi", label: "Delhi" },
] as const;
export interface CustomerSegmentConfig {
symbol: string;
label: string;
bgColor: string;
textColor: string;
}
export const CUSTOMER_SEGMENT_CONFIG: Record<string, CustomerSegmentConfig> = {
Budget: {
symbol: "โน",
label: "Budget-Friendly",
bgColor: "bg-background-muted",
textColor: "text-foreground-default",
},
"Mid-Range": {
symbol: "โนโน",
label: "Mid-Range",
bgColor: "bg-info-light",
textColor: "text-foreground-default",
},
Premium: {
symbol: "โนโนโน",
label: "Premium",
// `--purple-100` is inverted to a dark color in dark mode (see
// global.css), so explicit dark variants are required to keep the
// badge legible. Plain `text-purple-700` on `dark:bg-purple-100`
// gives contrast 2.14 โ fails WCAG AA.
bgColor: "bg-purple-100 dark:bg-purple-900",
textColor: "text-purple-700 dark:text-purple-200",
},
Luxury: {
symbol: "โนโนโนโน",
label: "Luxury",
bgColor: "bg-yellow-100",
textColor: "text-yellow-800",
},
};
export const PROPERTY_TYPE_LABELS: Record<string, string> = {
apartment: "Apartment",
villa: "Villa",
independent_house: "Independent House",
commercial: "Commercial",
};
export const BUDGET_RANGE_LABELS: Record<string, string> = {
under_1l: "Under 1L",
"1_3l": "1-3L",
"3_5l": "3-5L",
"5_10l": "5-10L",
above_10l: "10L+",
};
// Room-level budget labels (per-room cost, smaller ranges than project-level)
export const ROOM_BUDGET_LABELS: Record<string, string> = {
under_50k: "Under โน50K",
"50k_1l": "โน50K - 1 Lakh",
"1l_2l": "โน1 - 2 Lakhs",
"2l_5l": "โน2 - 5 Lakhs",
above_5l: "Above โน5 Lakhs",
};
// Full budget range labels (for project details)
export const BUDGET_RANGE_LABELS_FULL: Record<string, string> = {
under_1l: "Under 1 Lakh",
"1_3l": "1-3 Lakhs",
"3_5l": "3-5 Lakhs",
"5_10l": "5-10 Lakhs",
above_10l: "Above 10 Lakhs",
};
// Site-wide labels โ single source of truth for CTAs and navigation text
export const SITE_LABELS = {
JOIN_AS_PRO: "Join as Pro",
HOW_IT_WORKS: "How It Works",
LIST_YOUR_BUSINESS: "List Your Business โ Free",
LIST_YOUR_BUSINESS_ARROW: "List Your Business โ Free โ",
} as const;
|