diff --git a/package-lock.json b/package-lock.json index 47ccbb8..d600dce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,6 +28,7 @@ "@types/three": "^0.185.1", "eslint": "^9", "eslint-config-next": "16.2.10", + "sharp": "^0.35.3", "tailwindcss": "^4", "typescript": "^5" } @@ -547,63 +548,86 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "devOptional": true, "license": "MIT", - "optional": true, "engines": { "node": ">=18" } }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.3.tgz", + "integrity": "sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==", "cpu": [ "arm64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ "darwin" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" + "@img/sharp-libvips-darwin-arm64": "1.3.2" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.3.tgz", + "integrity": "sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==", "cpu": [ "x64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ "darwin" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.4" + "@img/sharp-libvips-darwin-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-freebsd-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.3.tgz", + "integrity": "sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "dependencies": { + "@img/sharp-wasm32": "0.35.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.2.tgz", + "integrity": "sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==", "cpu": [ "arm64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -614,12 +638,13 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.2.tgz", + "integrity": "sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==", "cpu": [ "x64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -630,12 +655,13 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.2.tgz", + "integrity": "sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==", "cpu": [ "arm" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -646,12 +672,13 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.2.tgz", + "integrity": "sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==", "cpu": [ "arm64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -662,12 +689,13 @@ } }, "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", - "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.2.tgz", + "integrity": "sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==", "cpu": [ "ppc64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -678,12 +706,13 @@ } }, "node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", - "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.2.tgz", + "integrity": "sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==", "cpu": [ "riscv64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -694,12 +723,13 @@ } }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", - "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.2.tgz", + "integrity": "sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==", "cpu": [ "s390x" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -710,12 +740,13 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.2.tgz", + "integrity": "sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==", "cpu": [ "x64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -726,12 +757,13 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.2.tgz", + "integrity": "sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==", "cpu": [ "arm64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -742,12 +774,13 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.2.tgz", + "integrity": "sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==", "cpu": [ "x64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -758,252 +791,281 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.3.tgz", + "integrity": "sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==", "cpu": [ "arm" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.4" + "@img/sharp-libvips-linux-arm": "1.3.2" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.3.tgz", + "integrity": "sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==", "cpu": [ "arm64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.4" + "@img/sharp-libvips-linux-arm64": "1.3.2" } }, "node_modules/@img/sharp-linux-ppc64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", - "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.3.tgz", + "integrity": "sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==", "cpu": [ "ppc64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.2.4" + "@img/sharp-libvips-linux-ppc64": "1.3.2" } }, "node_modules/@img/sharp-linux-riscv64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", - "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.3.tgz", + "integrity": "sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==", "cpu": [ "riscv64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.2.4" + "@img/sharp-libvips-linux-riscv64": "1.3.2" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", - "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.3.tgz", + "integrity": "sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==", "cpu": [ "s390x" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.2.4" + "@img/sharp-libvips-linux-s390x": "1.3.2" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.3.tgz", + "integrity": "sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==", "cpu": [ "x64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.4" + "@img/sharp-libvips-linux-x64": "1.3.2" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.3.tgz", + "integrity": "sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==", "cpu": [ "arm64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + "@img/sharp-libvips-linuxmusl-arm64": "1.3.2" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.3.tgz", + "integrity": "sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==", "cpu": [ "x64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + "@img/sharp-libvips-linuxmusl-x64": "1.3.2" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", - "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", - "cpu": [ - "wasm32" - ], + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.3.tgz", + "integrity": "sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==", + "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.7.0" + "@emnapi/runtime": "^1.11.1" }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-webcontainers-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.3.tgz", + "integrity": "sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/sharp-wasm32": "0.35.3" + }, + "engines": { + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.3.tgz", + "integrity": "sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==", "cpu": [ "arm64" ], + "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", - "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.3.tgz", + "integrity": "sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==", "cpu": [ "ia32" ], + "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": "^20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.3.tgz", + "integrity": "sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==", "cpu": [ "x64" ], + "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" @@ -5644,6 +5706,462 @@ } } }, + "node_modules/next/node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/next/node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/next/node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/next/node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/next/node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/next/node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/next/node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/next/node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/next/node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/next/node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/next/node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/next/node_modules/postcss": { "version": "8.4.31", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", @@ -5672,6 +6190,64 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/next/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/next/node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, "node_modules/node-exports-info": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.2.tgz", @@ -6354,56 +6930,61 @@ } }, "node_modules/sharp": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", - "hasInstallScript": true, + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.3.tgz", + "integrity": "sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==", + "dev": true, "license": "Apache-2.0", - "optional": true, "dependencies": { - "@img/colour": "^1.0.0", + "@img/colour": "^1.1.0", "detect-libc": "^2.1.2", - "semver": "^7.7.3" + "semver": "^7.8.5" }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.5", - "@img/sharp-darwin-x64": "0.34.5", - "@img/sharp-libvips-darwin-arm64": "1.2.4", - "@img/sharp-libvips-darwin-x64": "1.2.4", - "@img/sharp-libvips-linux-arm": "1.2.4", - "@img/sharp-libvips-linux-arm64": "1.2.4", - "@img/sharp-libvips-linux-ppc64": "1.2.4", - "@img/sharp-libvips-linux-riscv64": "1.2.4", - "@img/sharp-libvips-linux-s390x": "1.2.4", - "@img/sharp-libvips-linux-x64": "1.2.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", - "@img/sharp-libvips-linuxmusl-x64": "1.2.4", - "@img/sharp-linux-arm": "0.34.5", - "@img/sharp-linux-arm64": "0.34.5", - "@img/sharp-linux-ppc64": "0.34.5", - "@img/sharp-linux-riscv64": "0.34.5", - "@img/sharp-linux-s390x": "0.34.5", - "@img/sharp-linux-x64": "0.34.5", - "@img/sharp-linuxmusl-arm64": "0.34.5", - "@img/sharp-linuxmusl-x64": "0.34.5", - "@img/sharp-wasm32": "0.34.5", - "@img/sharp-win32-arm64": "0.34.5", - "@img/sharp-win32-ia32": "0.34.5", - "@img/sharp-win32-x64": "0.34.5" + "@img/sharp-darwin-arm64": "0.35.3", + "@img/sharp-darwin-x64": "0.35.3", + "@img/sharp-freebsd-wasm32": "0.35.3", + "@img/sharp-libvips-darwin-arm64": "1.3.2", + "@img/sharp-libvips-darwin-x64": "1.3.2", + "@img/sharp-libvips-linux-arm": "1.3.2", + "@img/sharp-libvips-linux-arm64": "1.3.2", + "@img/sharp-libvips-linux-ppc64": "1.3.2", + "@img/sharp-libvips-linux-riscv64": "1.3.2", + "@img/sharp-libvips-linux-s390x": "1.3.2", + "@img/sharp-libvips-linux-x64": "1.3.2", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.2", + "@img/sharp-libvips-linuxmusl-x64": "1.3.2", + "@img/sharp-linux-arm": "0.35.3", + "@img/sharp-linux-arm64": "0.35.3", + "@img/sharp-linux-ppc64": "0.35.3", + "@img/sharp-linux-riscv64": "0.35.3", + "@img/sharp-linux-s390x": "0.35.3", + "@img/sharp-linux-x64": "0.35.3", + "@img/sharp-linuxmusl-arm64": "0.35.3", + "@img/sharp-linuxmusl-x64": "0.35.3", + "@img/sharp-webcontainers-wasm32": "0.35.3", + "@img/sharp-win32-arm64": "0.35.3", + "@img/sharp-win32-ia32": "0.35.3", + "@img/sharp-win32-x64": "0.35.3" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/sharp/node_modules/semver": { "version": "7.8.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, "license": "ISC", - "optional": true, "bin": { "semver": "bin/semver.js" }, diff --git a/package.json b/package.json index c39f7cf..bdbd336 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "@types/three": "^0.185.1", "eslint": "^9", "eslint-config-next": "16.2.10", + "sharp": "^0.35.3", "tailwindcss": "^4", "typescript": "^5" } diff --git a/public/images/home/hero/banner-1.webp b/public/images/home/hero/banner-1.webp new file mode 100644 index 0000000..817b1c3 Binary files /dev/null and b/public/images/home/hero/banner-1.webp differ diff --git a/public/images/home/hero/banner-2.webp b/public/images/home/hero/banner-2.webp new file mode 100644 index 0000000..96eb022 Binary files /dev/null and b/public/images/home/hero/banner-2.webp differ diff --git a/public/images/home/hero/banner-3.webp b/public/images/home/hero/banner-3.webp new file mode 100644 index 0000000..9521b3a Binary files /dev/null and b/public/images/home/hero/banner-3.webp differ diff --git a/public/images/menu/appetizers/icons/cauliflower.png b/public/images/menu/appetizers/icons/cauliflower.png new file mode 100644 index 0000000..3f0ed00 Binary files /dev/null and b/public/images/menu/appetizers/icons/cauliflower.png differ diff --git a/public/images/menu/appetizers/icons/chiili-parota.png b/public/images/menu/appetizers/icons/chiili-parota.png new file mode 100644 index 0000000..aa95fdd Binary files /dev/null and b/public/images/menu/appetizers/icons/chiili-parota.png differ diff --git a/public/images/menu/appetizers/icons/chilli-gobi.png b/public/images/menu/appetizers/icons/chilli-gobi.png new file mode 100644 index 0000000..a5814dc Binary files /dev/null and b/public/images/menu/appetizers/icons/chilli-gobi.png differ diff --git a/public/images/menu/appetizers/icons/chilli-idli.png b/public/images/menu/appetizers/icons/chilli-idli.png new file mode 100644 index 0000000..8826576 Binary files /dev/null and b/public/images/menu/appetizers/icons/chilli-idli.png differ diff --git a/public/images/menu/appetizers/icons/chilli-paneer.png b/public/images/menu/appetizers/icons/chilli-paneer.png new file mode 100644 index 0000000..f9ad929 Binary files /dev/null and b/public/images/menu/appetizers/icons/chilli-paneer.png differ diff --git a/public/images/menu/appetizers/icons/gobi65.png b/public/images/menu/appetizers/icons/gobi65.png new file mode 100644 index 0000000..8412360 Binary files /dev/null and b/public/images/menu/appetizers/icons/gobi65.png differ diff --git a/public/images/menu/appetizers/icons/kothu-parota.png b/public/images/menu/appetizers/icons/kothu-parota.png new file mode 100644 index 0000000..21e013d Binary files /dev/null and b/public/images/menu/appetizers/icons/kothu-parota.png differ diff --git a/public/images/menu/appetizers/icons/onion.png b/public/images/menu/appetizers/icons/onion.png new file mode 100644 index 0000000..08cba47 Binary files /dev/null and b/public/images/menu/appetizers/icons/onion.png differ diff --git a/public/images/menu/appetizers/icons/paneer65.png b/public/images/menu/appetizers/icons/paneer65.png new file mode 100644 index 0000000..182986d Binary files /dev/null and b/public/images/menu/appetizers/icons/paneer65.png differ diff --git a/public/images/menu/beverages/icons/chai.png b/public/images/menu/beverages/icons/chai.png new file mode 100644 index 0000000..3845d12 Binary files /dev/null and b/public/images/menu/beverages/icons/chai.png differ diff --git a/public/images/menu/beverages/icons/coffee.png b/public/images/menu/beverages/icons/coffee.png new file mode 100644 index 0000000..f94f388 Binary files /dev/null and b/public/images/menu/beverages/icons/coffee.png differ diff --git a/public/images/menu/beverages/icons/cold.png b/public/images/menu/beverages/icons/cold.png new file mode 100644 index 0000000..0680538 Binary files /dev/null and b/public/images/menu/beverages/icons/cold.png differ diff --git a/public/images/menu/beverages/icons/lassi.png b/public/images/menu/beverages/icons/lassi.png new file mode 100644 index 0000000..4bee198 Binary files /dev/null and b/public/images/menu/beverages/icons/lassi.png differ diff --git a/public/images/menu/beverages/icons/rose.png b/public/images/menu/beverages/icons/rose.png new file mode 100644 index 0000000..70246cd Binary files /dev/null and b/public/images/menu/beverages/icons/rose.png differ diff --git a/public/images/menu/beverages/icons/water.png b/public/images/menu/beverages/icons/water.png new file mode 100644 index 0000000..52b16bf Binary files /dev/null and b/public/images/menu/beverages/icons/water.png differ diff --git a/public/images/menu/breads/icons/chappathi.png b/public/images/menu/breads/icons/chappathi.png new file mode 100644 index 0000000..f472786 Binary files /dev/null and b/public/images/menu/breads/icons/chappathi.png differ diff --git a/public/images/menu/breads/icons/parota.png b/public/images/menu/breads/icons/parota.png new file mode 100644 index 0000000..f073d14 Binary files /dev/null and b/public/images/menu/breads/icons/parota.png differ diff --git a/public/images/menu/breads/icons/poori.png b/public/images/menu/breads/icons/poori.png new file mode 100644 index 0000000..563e7a5 Binary files /dev/null and b/public/images/menu/breads/icons/poori.png differ diff --git a/public/images/menu/classics/icons/1-1.png b/public/images/menu/classics/icons/1-1.png new file mode 100644 index 0000000..ba6ef24 Binary files /dev/null and b/public/images/menu/classics/icons/1-1.png differ diff --git a/public/images/menu/classics/icons/1-2.png b/public/images/menu/classics/icons/1-2.png new file mode 100644 index 0000000..752aa45 Binary files /dev/null and b/public/images/menu/classics/icons/1-2.png differ diff --git a/public/images/menu/classics/icons/2-1.png b/public/images/menu/classics/icons/2-1.png new file mode 100644 index 0000000..2ebd1b3 Binary files /dev/null and b/public/images/menu/classics/icons/2-1.png differ diff --git a/public/images/menu/classics/icons/dahi-vada.png b/public/images/menu/classics/icons/dahi-vada.png new file mode 100644 index 0000000..834fbcd Binary files /dev/null and b/public/images/menu/classics/icons/dahi-vada.png differ diff --git a/public/images/menu/classics/icons/ghee-podi-idli.png b/public/images/menu/classics/icons/ghee-podi-idli.png new file mode 100644 index 0000000..9fa9a9b Binary files /dev/null and b/public/images/menu/classics/icons/ghee-podi-idli.png differ diff --git a/public/images/menu/classics/icons/idly.png b/public/images/menu/classics/icons/idly.png new file mode 100644 index 0000000..a2281f4 Binary files /dev/null and b/public/images/menu/classics/icons/idly.png differ diff --git a/public/images/menu/classics/icons/medhu-vada.png b/public/images/menu/classics/icons/medhu-vada.png new file mode 100644 index 0000000..130592f Binary files /dev/null and b/public/images/menu/classics/icons/medhu-vada.png differ diff --git a/public/images/menu/classics/icons/mini-sambar-idli.png b/public/images/menu/classics/icons/mini-sambar-idli.png new file mode 100644 index 0000000..4c41452 Binary files /dev/null and b/public/images/menu/classics/icons/mini-sambar-idli.png differ diff --git a/public/images/menu/classics/icons/paruppu.png b/public/images/menu/classics/icons/paruppu.png new file mode 100644 index 0000000..2e8699c Binary files /dev/null and b/public/images/menu/classics/icons/paruppu.png differ diff --git a/public/images/menu/classics/icons/rasa.png b/public/images/menu/classics/icons/rasa.png new file mode 100644 index 0000000..0af2536 Binary files /dev/null and b/public/images/menu/classics/icons/rasa.png differ diff --git a/public/images/menu/classics/icons/sambar-idli.png b/public/images/menu/classics/icons/sambar-idli.png new file mode 100644 index 0000000..4149fe9 Binary files /dev/null and b/public/images/menu/classics/icons/sambar-idli.png differ diff --git a/public/images/menu/classics/icons/sambar-vada.png b/public/images/menu/classics/icons/sambar-vada.png new file mode 100644 index 0000000..9419999 Binary files /dev/null and b/public/images/menu/classics/icons/sambar-vada.png differ diff --git a/public/images/menu/classics/icons/thattu-idly-1.png b/public/images/menu/classics/icons/thattu-idly-1.png new file mode 100644 index 0000000..63745d2 Binary files /dev/null and b/public/images/menu/classics/icons/thattu-idly-1.png differ diff --git a/public/images/menu/classics/icons/thattu-idly-2.png b/public/images/menu/classics/icons/thattu-idly-2.png new file mode 100644 index 0000000..c69c5df Binary files /dev/null and b/public/images/menu/classics/icons/thattu-idly-2.png differ diff --git a/public/images/menu/desserts/icons/gulab.png b/public/images/menu/desserts/icons/gulab.png new file mode 100644 index 0000000..de9a2e5 Binary files /dev/null and b/public/images/menu/desserts/icons/gulab.png differ diff --git a/public/images/menu/desserts/icons/payasam.png b/public/images/menu/desserts/icons/payasam.png new file mode 100644 index 0000000..15df86c Binary files /dev/null and b/public/images/menu/desserts/icons/payasam.png differ diff --git a/public/images/menu/desserts/icons/pineapple.png b/public/images/menu/desserts/icons/pineapple.png new file mode 100644 index 0000000..92eb9b7 Binary files /dev/null and b/public/images/menu/desserts/icons/pineapple.png differ diff --git a/public/images/menu/desserts/icons/rasamalai.png b/public/images/menu/desserts/icons/rasamalai.png new file mode 100644 index 0000000..eb1477e Binary files /dev/null and b/public/images/menu/desserts/icons/rasamalai.png differ diff --git a/public/images/menu/dosa/icons/andhra-kara-masala.png b/public/images/menu/dosa/icons/andhra-kara-masala.png new file mode 100644 index 0000000..386d71a Binary files /dev/null and b/public/images/menu/dosa/icons/andhra-kara-masala.png differ diff --git a/public/images/menu/dosa/icons/andhra-kara.png b/public/images/menu/dosa/icons/andhra-kara.png new file mode 100644 index 0000000..50e52c2 Binary files /dev/null and b/public/images/menu/dosa/icons/andhra-kara.png differ diff --git a/public/images/menu/dosa/icons/bhurji.png b/public/images/menu/dosa/icons/bhurji.png new file mode 100644 index 0000000..cabfcdd Binary files /dev/null and b/public/images/menu/dosa/icons/bhurji.png differ diff --git a/public/images/menu/dosa/icons/butter-garlic-masala.png b/public/images/menu/dosa/icons/butter-garlic-masala.png new file mode 100644 index 0000000..d86880c Binary files /dev/null and b/public/images/menu/dosa/icons/butter-garlic-masala.png differ diff --git a/public/images/menu/dosa/icons/butter-garlic.png b/public/images/menu/dosa/icons/butter-garlic.png new file mode 100644 index 0000000..36d0de1 Binary files /dev/null and b/public/images/menu/dosa/icons/butter-garlic.png differ diff --git a/public/images/menu/dosa/icons/butter-masala.png b/public/images/menu/dosa/icons/butter-masala.png new file mode 100644 index 0000000..a1a430a Binary files /dev/null and b/public/images/menu/dosa/icons/butter-masala.png differ diff --git a/public/images/menu/dosa/icons/butter.png b/public/images/menu/dosa/icons/butter.png new file mode 100644 index 0000000..60968ba Binary files /dev/null and b/public/images/menu/dosa/icons/butter.png differ diff --git a/public/images/menu/dosa/icons/cheese.png b/public/images/menu/dosa/icons/cheese.png new file mode 100644 index 0000000..7417439 Binary files /dev/null and b/public/images/menu/dosa/icons/cheese.png differ diff --git a/public/images/menu/dosa/icons/chettinad.png b/public/images/menu/dosa/icons/chettinad.png new file mode 100644 index 0000000..76a31a1 Binary files /dev/null and b/public/images/menu/dosa/icons/chettinad.png differ diff --git a/public/images/menu/dosa/icons/ghee-masala.png b/public/images/menu/dosa/icons/ghee-masala.png new file mode 100644 index 0000000..eb5d64c Binary files /dev/null and b/public/images/menu/dosa/icons/ghee-masala.png differ diff --git a/public/images/menu/dosa/icons/ghee-podi-masala.png b/public/images/menu/dosa/icons/ghee-podi-masala.png new file mode 100644 index 0000000..7ef11a3 Binary files /dev/null and b/public/images/menu/dosa/icons/ghee-podi-masala.png differ diff --git a/public/images/menu/dosa/icons/ghee-podi.png b/public/images/menu/dosa/icons/ghee-podi.png new file mode 100644 index 0000000..9947fd0 Binary files /dev/null and b/public/images/menu/dosa/icons/ghee-podi.png differ diff --git a/public/images/menu/dosa/icons/ghee.png b/public/images/menu/dosa/icons/ghee.png new file mode 100644 index 0000000..af6cf95 Binary files /dev/null and b/public/images/menu/dosa/icons/ghee.png differ diff --git a/public/images/menu/dosa/icons/kara.png b/public/images/menu/dosa/icons/kara.png new file mode 100644 index 0000000..1a02205 Binary files /dev/null and b/public/images/menu/dosa/icons/kara.png differ diff --git a/public/images/menu/dosa/icons/kids.png b/public/images/menu/dosa/icons/kids.png new file mode 100644 index 0000000..6d92844 Binary files /dev/null and b/public/images/menu/dosa/icons/kids.png differ diff --git a/public/images/menu/dosa/icons/masala.png b/public/images/menu/dosa/icons/masala.png new file mode 100644 index 0000000..02e4404 Binary files /dev/null and b/public/images/menu/dosa/icons/masala.png differ diff --git a/public/images/menu/dosa/icons/mysore-masala.png b/public/images/menu/dosa/icons/mysore-masala.png new file mode 100644 index 0000000..2752f60 Binary files /dev/null and b/public/images/menu/dosa/icons/mysore-masala.png differ diff --git a/public/images/menu/dosa/icons/mysore.png b/public/images/menu/dosa/icons/mysore.png new file mode 100644 index 0000000..d238b24 Binary files /dev/null and b/public/images/menu/dosa/icons/mysore.png differ diff --git a/public/images/menu/dosa/icons/onion-masala.png b/public/images/menu/dosa/icons/onion-masala.png new file mode 100644 index 0000000..40e4ea4 Binary files /dev/null and b/public/images/menu/dosa/icons/onion-masala.png differ diff --git a/public/images/menu/dosa/icons/onion.png b/public/images/menu/dosa/icons/onion.png new file mode 100644 index 0000000..a39a398 Binary files /dev/null and b/public/images/menu/dosa/icons/onion.png differ diff --git a/public/images/menu/dosa/icons/pav.png b/public/images/menu/dosa/icons/pav.png new file mode 100644 index 0000000..5b6c324 Binary files /dev/null and b/public/images/menu/dosa/icons/pav.png differ diff --git a/public/images/menu/dosa/icons/plain.png b/public/images/menu/dosa/icons/plain.png new file mode 100644 index 0000000..5c7856e Binary files /dev/null and b/public/images/menu/dosa/icons/plain.png differ diff --git a/public/images/menu/dosa/icons/podi-masala.png b/public/images/menu/dosa/icons/podi-masala.png new file mode 100644 index 0000000..8c063cc Binary files /dev/null and b/public/images/menu/dosa/icons/podi-masala.png differ diff --git a/public/images/menu/rava/icons/onion-rava-masala.png b/public/images/menu/rava/icons/onion-rava-masala.png new file mode 100644 index 0000000..e0bd214 Binary files /dev/null and b/public/images/menu/rava/icons/onion-rava-masala.png differ diff --git a/public/images/menu/rava/icons/onion-rava.png b/public/images/menu/rava/icons/onion-rava.png new file mode 100644 index 0000000..fbfe0c7 Binary files /dev/null and b/public/images/menu/rava/icons/onion-rava.png differ diff --git a/public/images/menu/rava/icons/rava-masala.png b/public/images/menu/rava/icons/rava-masala.png new file mode 100644 index 0000000..6a8acb9 Binary files /dev/null and b/public/images/menu/rava/icons/rava-masala.png differ diff --git a/public/images/menu/rava/icons/rava.png b/public/images/menu/rava/icons/rava.png new file mode 100644 index 0000000..a703f29 Binary files /dev/null and b/public/images/menu/rava/icons/rava.png differ diff --git a/public/images/menu/rice/icons/curd.png b/public/images/menu/rice/icons/curd.png new file mode 100644 index 0000000..d4338ba Binary files /dev/null and b/public/images/menu/rice/icons/curd.png differ diff --git a/public/images/menu/rice/icons/lemon.png b/public/images/menu/rice/icons/lemon.png new file mode 100644 index 0000000..9248bbc Binary files /dev/null and b/public/images/menu/rice/icons/lemon.png differ diff --git a/public/images/menu/rice/icons/puli.png b/public/images/menu/rice/icons/puli.png new file mode 100644 index 0000000..c4473d9 Binary files /dev/null and b/public/images/menu/rice/icons/puli.png differ diff --git a/public/images/menu/rice/icons/sambar.png b/public/images/menu/rice/icons/sambar.png new file mode 100644 index 0000000..efd8364 Binary files /dev/null and b/public/images/menu/rice/icons/sambar.png differ diff --git a/public/images/menu/rice/icons/tomato.png b/public/images/menu/rice/icons/tomato.png new file mode 100644 index 0000000..d925247 Binary files /dev/null and b/public/images/menu/rice/icons/tomato.png differ diff --git a/public/images/menu/rice/icons/veg.png b/public/images/menu/rice/icons/veg.png new file mode 100644 index 0000000..338d826 Binary files /dev/null and b/public/images/menu/rice/icons/veg.png differ diff --git a/public/images/menu/sides/icons/extra.png b/public/images/menu/sides/icons/extra.png new file mode 100644 index 0000000..d272ae6 Binary files /dev/null and b/public/images/menu/sides/icons/extra.png differ diff --git a/public/images/menu/sides/icons/masala.png b/public/images/menu/sides/icons/masala.png new file mode 100644 index 0000000..a40d20d Binary files /dev/null and b/public/images/menu/sides/icons/masala.png differ diff --git a/public/images/menu/sides/icons/podi.png b/public/images/menu/sides/icons/podi.png new file mode 100644 index 0000000..b54c124 Binary files /dev/null and b/public/images/menu/sides/icons/podi.png differ diff --git a/public/images/menu/sides/icons/sambar.png b/public/images/menu/sides/icons/sambar.png new file mode 100644 index 0000000..0deda3c Binary files /dev/null and b/public/images/menu/sides/icons/sambar.png differ diff --git a/public/images/menu/sides/sides-extra.webp b/public/images/menu/sides/sides-extra.webp new file mode 100644 index 0000000..d71aeda Binary files /dev/null and b/public/images/menu/sides/sides-extra.webp differ diff --git a/public/images/menu/tiffin/icons/ghee.png b/public/images/menu/tiffin/icons/ghee.png new file mode 100644 index 0000000..dbf9c7b Binary files /dev/null and b/public/images/menu/tiffin/icons/ghee.png differ diff --git a/public/images/menu/tiffin/icons/kichadi.png b/public/images/menu/tiffin/icons/kichadi.png new file mode 100644 index 0000000..4265e6f Binary files /dev/null and b/public/images/menu/tiffin/icons/kichadi.png differ diff --git a/public/images/menu/tiffin/icons/mega.png b/public/images/menu/tiffin/icons/mega.png new file mode 100644 index 0000000..bbbe0a1 Binary files /dev/null and b/public/images/menu/tiffin/icons/mega.png differ diff --git a/public/images/menu/tiffin/icons/mini.png b/public/images/menu/tiffin/icons/mini.png new file mode 100644 index 0000000..6664554 Binary files /dev/null and b/public/images/menu/tiffin/icons/mini.png differ diff --git a/public/images/menu/uttapam/icons/ghee-podi.png b/public/images/menu/uttapam/icons/ghee-podi.png new file mode 100644 index 0000000..435b6a7 Binary files /dev/null and b/public/images/menu/uttapam/icons/ghee-podi.png differ diff --git a/public/images/menu/uttapam/icons/mix.png b/public/images/menu/uttapam/icons/mix.png new file mode 100644 index 0000000..43d88bf Binary files /dev/null and b/public/images/menu/uttapam/icons/mix.png differ diff --git a/public/images/menu/uttapam/icons/onion-chilli.png b/public/images/menu/uttapam/icons/onion-chilli.png new file mode 100644 index 0000000..30053df Binary files /dev/null and b/public/images/menu/uttapam/icons/onion-chilli.png differ diff --git a/public/images/menu/uttapam/icons/onion-tomato.png b/public/images/menu/uttapam/icons/onion-tomato.png new file mode 100644 index 0000000..5650c5a Binary files /dev/null and b/public/images/menu/uttapam/icons/onion-tomato.png differ diff --git a/public/images/menu/uttapam/icons/onion.png b/public/images/menu/uttapam/icons/onion.png new file mode 100644 index 0000000..b3a5992 Binary files /dev/null and b/public/images/menu/uttapam/icons/onion.png differ diff --git a/public/images/menu/uttapam/icons/plain.png b/public/images/menu/uttapam/icons/plain.png new file mode 100644 index 0000000..ad0c3dc Binary files /dev/null and b/public/images/menu/uttapam/icons/plain.png differ diff --git a/public/images/menu/weekend/icons/channa.png b/public/images/menu/weekend/icons/channa.png new file mode 100644 index 0000000..29a6815 Binary files /dev/null and b/public/images/menu/weekend/icons/channa.png differ diff --git a/public/images/menu/weekend/icons/fried-rice.png b/public/images/menu/weekend/icons/fried-rice.png new file mode 100644 index 0000000..19d4163 Binary files /dev/null and b/public/images/menu/weekend/icons/fried-rice.png differ diff --git a/public/images/menu/weekend/icons/thali.png b/public/images/menu/weekend/icons/thali.png new file mode 100644 index 0000000..8c16bc8 Binary files /dev/null and b/public/images/menu/weekend/icons/thali.png differ diff --git a/src/components/ChefShowcase.tsx b/src/components/ChefShowcase.tsx index d463c74..1180840 100644 --- a/src/components/ChefShowcase.tsx +++ b/src/components/ChefShowcase.tsx @@ -161,7 +161,7 @@ export default function ChefShowcase() {

- CHEFF
+ CHEF
Metro @@ -179,7 +179,7 @@ export default function ChefShowcase() {

- With three decades of culinary devotion, Cheff Metro has traversed the villages of Tamil Nadu, uncovering regional temple recipes and masterfully blending heritage masalas. He believes that true gastronomy is a spiritual act, uniting soil, tradition, and warm wood fire. + With three decades of culinary devotion, Chef Metro has traversed the villages of Tamil Nadu, uncovering regional temple recipes and masterfully blending heritage masalas. He believes that true gastronomy is a spiritual act, uniting soil, tradition, and warm wood fire.

{/* Cursive Signature */} @@ -188,7 +188,7 @@ export default function ChefShowcase() { className="text-[#bc9e65] text-3xl md:text-4xl pointer-events-none select-none" style={{ fontFamily: '"Playball", "Great Vibes", "Brush Script MT", cursive' }} > - Cheff Metro + Chef Metro
@@ -211,7 +211,7 @@ export default function ChefShowcase() { {/* Portrait Image */} {/* Cheff Metro Cooking with Fire void }) { // 3D Cinematic flight renderer function CinematicFlight({ progress }: { progress: number }) { - const exteriorTex = useTexture("/images/home/hero/banner-1.png"); - const interiorTex = useTexture("/images/home/hero/banner-2.png"); - const foodTex = useTexture("/images/home/hero/banner-3.png"); + const exteriorTex = useTexture("/images/home/hero/banner-1.webp"); + const interiorTex = useTexture("/images/home/hero/banner-2.webp"); + const foodTex = useTexture("/images/home/hero/banner-3.webp"); const leftDoorRef = useRef(null); const rightDoorRef = useRef(null); diff --git a/src/components/MenuPageContent.tsx b/src/components/MenuPageContent.tsx index 59faf78..7ca61a2 100644 --- a/src/components/MenuPageContent.tsx +++ b/src/components/MenuPageContent.tsx @@ -6,151 +6,159 @@ import { useState } from "react"; import AnimatedSection from "@/components/AnimatedSection"; const TABS = [ - { id: "all", label: "ALL ITEMS", noIcon: true }, - { id: "classics", label: "CLASSICS", icon: "classics.png" }, - { id: "dosa", label: "DOSA", icon: "dosa.png" }, - { id: "rava", label: "RAVA SPL", icon: "rava.png" }, - { id: "uttapam", label: "UTTAPAM", icon: "uttappam.png" }, - { id: "breads", label: "BREADS", icon: "bread.png" }, - { id: "appetizers", label: "APPETIZERS", icon: "appetizer.png" }, - { id: "tiffin", label: "TIFFIN SPL", icon: "tiffin.png" }, - { id: "rice", label: "RICE", icon: "rice.png" }, - { id: "beverages", label: "BEVERAGES", icon: "beverages.png" }, - { id: "weekend", label: "WEEKEND SPL", icon: "weekend.png" }, - { id: "sides", label: "SIDES", icon: "sides.png" }, - { id: "desserts", label: "DESSERTS", icon: "dessert.png" }, + { id: "all", label: "ALL ITEMS", noIcon: true }, + { id: "idly_vada",label: "IDLY & VADA", icon: "classics.png" }, + { id: "breads", label: "BREADS", icon: "bread.png" }, + { id: "tiffin", label: "TIFFIN SPECIALS", icon: "tiffin.png" }, + { id: "dosa", label: "SIGNATURE DOSAS", icon: "dosa.png" }, + { id: "combos", label: "COMBOS", icon: "classics.png" }, + { id: "sides", label: "SIDES", icon: "sides.png" }, + { id: "chef_dosa",label: "CHEF'S SPECIALTY", icon: "dosa.png" }, + { id: "rava", label: "RAVA SPECIALS", icon: "rava.png" }, + { id: "uttapam", label: "UTTHAPPAM", icon: "uttappam.png" }, + { id: "appetizers",label: "APPETIZERS", icon: "appetizer.png" }, + { id: "rice", label: "RICE DISHES", icon: "rice.png" }, + { id: "weekend", label: "WEEKEND SPECIAL", icon: "weekend.png" }, + { id: "desserts", label: "DESSERTS", icon: "dessert.png" }, + { id: "beverages",label: "BEVERAGES", icon: "beverages.png" }, ]; const MENU_ITEMS = [ - // ── CLASSICS ────────────────────────────────────────────────────────── - { id: 1, name: "IDLY (6 PCS)", desc: "Steamed fluffy rice & lentil cakes served with sambar & chutneys.", price: "$10.99", tag: "CLASSICS", bg: "light" , img: "classics/classics-idly-6.webp" }, - { id: 2, name: "THATTU IDLY (1 PC)", desc: "Plate-style idly served with sambar & fresh chutneys.", price: "$10.99", tag: "CLASSICS", bg: "light" , img: "classics/classics-thattu-idly-1.webp" }, - { id: 3, name: "THATTU IDLY (2 PCS)", desc: "Two plate-style idlies with sambar & fresh chutneys.", price: "$14.99", tag: "CLASSICS", bg: "light" , img: "classics/classics-thattu-idly-2.webp" }, - { id: 4, name: "GHEE PODI IDLY", desc: "Soft idlies tossed in aromatic gunpowder podi with ghee.", price: "$14.99", tag: "CLASSICS", bg: "light" , img: "classics/classics-ghee-podi-idli.webp" }, - { id: 5, name: "MINI SAMBAR IDLY", desc: "Bite-sized idlies immersed in rich, spiced sambar.", price: "$13.99", tag: "CLASSICS", bg: "light" , img: "classics/classics-mini-sambar-idly.webp" }, - { id: 6, name: "SAMBAR IDLY", desc: "Classic idly dunked in hot, tangy sambar.", price: "$9.99", tag: "CLASSICS", bg: "light" , img: "classics/classics-sambar-idli.webp" }, - { id: 7, name: "MEDHU VADA", desc: "Crispy golden lentil donuts served with sambar & chutney.", price: "$13.99", tag: "CLASSICS", bg: "light" , img: "classics/classics-medhu-vada.webp" }, - { id: 8, name: "SAMBAR VADA", desc: "Crispy vadas soaked in hearty sambar.", price: "$13.99", tag: "CLASSICS", bg: "light" , img: "classics/classics-sambar-vada.webp" }, - { id: 9, name: "DAHI VADA", desc: "Soft vadas topped with creamy yogurt & spiced chutneys.", price: "$13.99", tag: "CLASSICS", bg: "light" , img: "classics/classics-dahi-vada.webp" }, - { id: 10, name: "1 IDLY 1 VADA COMBO", desc: "One fluffy idly and one crispy vada with sambar & chutney.", price: "$11.99", tag: "CLASSICS", bg: "green" , img: "classics/classics-1-idli-1-vada.webp" }, - { id: 11, name: "2 IDLY 1 VADA COMBO", desc: "Two soft idlies and one crispy vada with sambar & chutney.", price: "$12.99", tag: "CLASSICS", bg: "green" , img: "classics/classics-2-idli-1-vada.webp" }, - { id: 12, name: "1 IDLY 2 VADA COMBO", desc: "One fluffy idly and two crispy vadas with sambar & chutney.", price: "$13.99", tag: "CLASSICS", bg: "green" , img: "classics/classics-1-idli-2-vada.webp" }, - { id: 13, name: "RASA VADA", desc: "Crispy vadas soaked in tangy, peppery rasam.", price: "$13.99", tag: "CLASSICS", bg: "light" , img: "classics/classics-rasa-vada.webp" }, - { id: 14, name: "PARUPPU VADA", desc: "Crispy deep-fried lentil patties seasoned with spices.", price: "$11.99", tag: "CLASSICS", bg: "light" , img: "classics/classics-paruppu-vada.webp" }, + // ── IDLY & VADA ─────────────────────────────────────────────────────── + { id: 1, name: "IDLY (2 PCS)", desc: "Soft steamed rice-lentil cakes served with chutney and sambar.", price: "$10.99", tag: "IDLY & VADA", bg: "light" , img: "classics/classics-idly-6.webp", icon: "classics/icons/idly.png" }, + { id: 2, name: "THATTU IDLY (1 PC)", desc: "Plate-style fluffy idly with a homestyle South Indian touch.", price: "$10.99", tag: "IDLY & VADA", bg: "light" , img: "classics/classics-thattu-idly-1.webp", icon: "classics/icons/thattu-idly-1.png" }, + { id: 3, name: "THATTU IDLY (2 PCS)", desc: "Extra serving of soft thattu idly for hearty appetites.", price: "$14.99", tag: "IDLY & VADA", bg: "light" , img: "classics/classics-thattu-idly-2.webp", icon: "classics/icons/thattu-idly-2.png" }, + { id: 4, name: "GHEE PODI IDLY", desc: "Idly tossed with ghee and signature podi for bold flavour.", price: "$14.99", tag: "IDLY & VADA", bg: "light" , img: "classics/classics-ghee-podi-idli.webp", icon: "classics/icons/ghee-podi-idli.png" }, + { id: 5, name: "MINI SAMBAR IDLY", desc: "Bite-sized idlies soaked in hot aromatic sambar.", price: "$13.99", tag: "IDLY & VADA", bg: "light" , img: "classics/classics-mini-sambar-idly.webp", icon: "classics/icons/mini-sambar-idli.png" }, + { id: 6, name: "SAMBAR IDLY", desc: "Classic idly dipped in comforting house-made sambar.", price: "$13.99", tag: "IDLY & VADA", bg: "light" , img: "classics/classics-sambar-idli.webp", icon: "classics/icons/sambar-idli.png" }, + { id: 7, name: "MEDHU VADA", desc: "Golden lentil doughnuts, crisp outside and soft inside.", price: "$9.99", tag: "IDLY & VADA", bg: "light" , img: "classics/classics-medhu-vada.webp", icon: "classics/icons/medhu-vada.png" }, + { id: 8, name: "SAMBAR VADA", desc: "Crispy medhu vada soaked in warm, flavourful sambar.", price: "$13.99", tag: "IDLY & VADA", bg: "light" , img: "classics/classics-sambar-vada.webp", icon: "classics/icons/sambar-vada.png" }, + { id: 9, name: "DAHI VADA", desc: "Soft vada topped with creamy yogurt and sweet-spiced chutneys.", price: "$13.99", tag: "IDLY & VADA", bg: "light" , img: "classics/classics-dahi-vada.webp", icon: "classics/icons/dahi-vada.png" }, + { id: 13, name: "RASAM VADA", desc: "Savoury vada immersed in peppery, tangy rasam.", price: "$13.99", tag: "IDLY & VADA", bg: "light" , img: "classics/classics-rasa-vada.webp", icon: "classics/icons/rasa.png" }, + { id: 14, name: "PARUPPU VADA", desc: "Crispy chana-dal fritters with onion, herbs, and spices.", price: "$11.99", tag: "IDLY & VADA", bg: "light" , img: "classics/classics-paruppu-vada.webp", icon: "classics/icons/paruppu.png" }, - // ── DOSA ────────────────────────────────────────────────────────────── - { id: 20, name: "PLAIN DOSA", desc: "Thin, crispy fermented rice & lentil crepe served with chutneys.", price: "$10.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-plain.webp" }, - { id: 21, name: "MASALA DOSA", desc: "Crispy dosa stuffed with spiced potato masala.", price: "$13.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-masala.webp" }, - { id: 22, name: "MYSORE DOSA", desc: "Crispy dosa spread with fiery Mysore chutney.", price: "$13.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-mysore-dosa.webp" }, - { id: 23, name: "MYSORE MASALA", desc: "Spicy Mysore chutney spread dosa with potato masala filling.", price: "$14.99", tag: "DOSA", bg: "dark" , img: "dosa/dosa-mysore-masala.webp" }, - { id: 24, name: "GHEE ROAST", desc: "Dosa cooked in rich ghee till golden & irresistibly crisp.", price: "$14.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-ghee.webp" }, - { id: 25, name: "GHEE MASALA", desc: "Ghee-roasted dosa generously filled with potato masala.", price: "$15.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-ghee-masala.webp" }, - { id: 26, name: "ONION DOSA", desc: "Classic dosa loaded with caramelised onions & spices.", price: "$13.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-onion.webp" }, - { id: 27, name: "ONION MASALA", desc: "Onion dosa with a hearty spiced potato filling.", price: "$14.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-onion-masala.webp" }, - { id: 28, name: "PODI MASALA", desc: "Dosa smeared with spicy gunpowder podi & stuffed with masala.", price: "$13.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-podi-masala.webp" }, - { id: 29, name: "GHEE PODI MASALA", desc: "Ghee-laced dosa with gunpowder podi and potato masala.", price: "$15.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-ghee-podi-masala.webp" }, - { id: 30, name: "GHEE PODI", desc: "Dosa drizzled with ghee and fragrant gunpowder podi.", price: "$14.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-ghee-podi.webp" }, - { id: 31, name: "PAV BHAJI DOSA", desc: "Crispy dosa topped with spiced Mumbai-style pav bhaji.", price: "$16.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-pav.webp" }, - { id: 32, name: "BUTTER MASALA", desc: "Dosa slathered in butter with a spiced masala filling.", price: "$15.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-butter-masala.webp" }, - { id: 33, name: "CHZ DOSA", desc: "Dosa filled with gooey melted cheese & spices.", price: "$14.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-cheese-dosa.webp" }, - { id: 34, name: "CHETTINAD MASALA", desc: "Aromatic Chettinad spiced dosa with potato filling.", price: "$16.99", tag: "DOSA", bg: "dark" , img: "dosa/dosa-chettinad-masala.webp" }, - { id: 35, name: "ANDHRA CHARA", desc: "Fiery Andhra-style spiced dosa, bold & robust.", price: "$15.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-andhra-kara.webp" }, - { id: 36, name: "ANDHRA KARA MASALA", desc: "Spicy Andhra kara chutney dosa with masala filling.", price: "$16.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-andhra-kara-masala.webp" }, - { id: 37, name: "KARA DOSA", desc: "Dosa with spicy kara chutney spread.", price: "$13.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-kara-dosa.webp" }, - { id: 38, name: "BUTTER GARLIC", desc: "Dosa cooked with butter and roasted garlic.", price: "$14.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-butter-garlic.webp" }, - { id: 39, name: "BUTTER GARLIC MASALA", desc: "Butter garlic dosa filled with spiced potato masala.", price: "$15.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-butter-garlic-masala.webp" }, - { id: 40, name: "PANEER BUTTER (BURJI)", desc: "Dosa with crumbled paneer cooked in butter & spices.", price: "$17.99", tag: "DOSA", bg: "dark" , img: "dosa/dosa-paneer-bhurji.webp" }, - { id: 41, name: "BUTTER DOSA", desc: "Simple crispy dosa lavishly spread with fresh butter.", price: "$13.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-butter-dosa.webp" }, - { id: 42, name: "KIDS DOSA", desc: "A small, soft & mild dosa perfect for little ones.", price: "$9.99", tag: "DOSA", bg: "light" , img: "dosa/dosa-kids-dosa.webp" }, + // ── COMBOS ──────────────────────────────────────────────────────────── + { id: 10, name: "1 IDLY 1 VADA COMBO", desc: "One fluffy idly and one crispy vada with sambar & chutney.", price: "$11.99", tag: "COMBOS", bg: "green" , img: "classics/classics-1-idli-1-vada.webp", icon: "classics/icons/1-1.png" }, + { id: 11, name: "2 IDLY 1 VADA COMBO", desc: "Two soft idlies and one crispy vada with sambar & chutney.", price: "$12.99", tag: "COMBOS", bg: "green" , img: "classics/classics-2-idli-1-vada.webp", icon: "classics/icons/2-1.png" }, + { id: 12, name: "1 IDLY 2 VADA COMBO", desc: "One fluffy idly and two crispy vadas with sambar & chutney.", price: "$13.99", tag: "COMBOS", bg: "green" , img: "classics/classics-1-idli-2-vada.webp", icon: "classics/icons/1-2.png" }, + + // ── SIGNATURE DOSAS ─────────────────────────────────────────────────── + { id: 20, name: "PLAIN DOSA", desc: "Classic golden crisp dosa served with chutneys and sambar.", price: "$10.99", tag: "SIGNATURE DOSAS", bg: "light" , img: "dosa/dosa-plain.webp", icon: "dosa/icons/plain.png" }, + { id: 21, name: "MASALA DOSA", desc: "Thin dosa filled with seasoned potato masala.", price: "$13.99", tag: "SIGNATURE DOSAS", bg: "light" , img: "dosa/dosa-masala.webp", icon: "dosa/icons/masala.png" }, + { id: 22, name: "MYSORE DOSA", desc: "Crisp dosa spread with Mysore-style spicy chutney.", price: "$13.99", tag: "SIGNATURE DOSAS", bg: "light" , img: "dosa/dosa-mysore-dosa.webp", icon: "dosa/icons/mysore.png" }, + { id: 23, name: "MYSORE MASALA DOSA", desc: "Mysore dosa with hearty potato filling.", price: "$14.99", tag: "SIGNATURE DOSAS", bg: "dark" , img: "dosa/dosa-mysore-masala.webp", icon: "dosa/icons/mysore-masala.png" }, + { id: 24, name: "GHEE ROAST", desc: "Paper-thin roast dosa enriched with fragrant ghee.", price: "$14.99", tag: "SIGNATURE DOSAS", bg: "light" , img: "dosa/dosa-ghee.webp", icon: "dosa/icons/ghee.png" }, + { id: 25, name: "GHEE MASALA DOSA", desc: "Ghee roast finished with comforting masala filling.", price: "$15.99", tag: "SIGNATURE DOSAS", bg: "light" , img: "dosa/dosa-ghee-masala.webp", icon: "dosa/icons/ghee-masala.png" }, + { id: 26, name: "ONION DOSA", desc: "Crisp dosa topped with finely chopped onions.", price: "$13.99", tag: "SIGNATURE DOSAS", bg: "light" , img: "dosa/dosa-onion.webp", icon: "dosa/icons/onion.png" }, + { id: 27, name: "ONION MASALA DOSA", desc: "Onion dosa layered with savoury potato masala.", price: "$14.99", tag: "SIGNATURE DOSAS", bg: "light" , img: "dosa/dosa-onion-masala.webp", icon: "dosa/icons/onion-masala.png" }, + { id: 28, name: "PODI MASALA DOSA", desc: "Spiced podi dosa with a classic masala filling.", price: "$13.99", tag: "SIGNATURE DOSAS", bg: "light" , img: "dosa/dosa-podi-masala.webp", icon: "dosa/icons/podi-masala.png" }, + { id: 29, name: "GHEE PODI MASALA DOSA", desc: "A rich fusion of ghee, podi, and masala.", price: "$15.99", tag: "SIGNATURE DOSAS", bg: "light" , img: "dosa/dosa-ghee-podi-masala.webp", icon: "dosa/icons/ghee-podi-masala.png" }, + { id: 30, name: "GHEE PODI DOSA", desc: "Crisp dosa brushed with aromatic ghee and sprinkled with spicy house podi.", price: "$14.99", tag: "SIGNATURE DOSAS", bg: "light" , img: "dosa/dosa-ghee-podi.webp", icon: "dosa/icons/ghee-podi.png" }, + { id: 31, name: "BUTTER MASALA DOSA", desc: "Buttery crisp dosa stuffed with comforting masala.", price: "$15.99", tag: "SIGNATURE DOSAS", bg: "light" , img: "dosa/dosa-butter-masala.webp", icon: "dosa/icons/butter-masala.png" }, + { id: 32, name: "KAL DOSA", desc: "Soft, thick village-style dosa with a light, fluffy texture.", price: "$13.99", tag: "SIGNATURE DOSAS", bg: "light" , img: "dosa/dosa-plain.webp" }, + + // ── CHEF'S SPECIALTY DOSAS ──────────────────────────────────────────── + { id: 39, name: "PANEER BUTTER/BHURJI DOSA",desc: "Dosa filled with creamy paneer butter bhurji.", price: "$17.99", tag: "CHEF'S SPECIALTY", bg: "dark" , img: "dosa/dosa-paneer-bhurji.webp", icon: "dosa/icons/bhurji.png" }, + { id: 40, name: "PAV BHAJI DOSA", desc: "Crisp dosa filled with Mumbai-style spiced pav bhaji masala.", price: "$16.99", tag: "CHEF'S SPECIALTY", bg: "light" , img: "dosa/dosa-pav.webp", icon: "dosa/icons/pav.png" }, + { id: 34, name: "CHETTINAD MASALA DOSA", desc: "Bold Chettinad spices bring heat and depth.", price: "$16.99", tag: "CHEF'S SPECIALTY", bg: "dark" , img: "dosa/dosa-chettinad-masala.webp", icon: "dosa/icons/chettinad.png" }, + { id: 35, name: "ANDHRA KARAM DOSA", desc: "Fiery Andhra-style karam spread on a crisp dosa.", price: "$15.99", tag: "CHEF'S SPECIALTY", bg: "light" , img: "dosa/dosa-andhra-kara.webp", icon: "dosa/icons/andhra-kara.png" }, + { id: 36, name: "ANDHRA KARAM MASALA", desc: "Karam dosa finished with a delicious masala centre.", price: "$16.99", tag: "CHEF'S SPECIALTY", bg: "light" , img: "dosa/dosa-andhra-kara-masala.webp", icon: "dosa/icons/andhra-kara-masala.png" }, + { id: 37, name: "BUTTER GARLIC DOSA", desc: "Buttery dosa infused with toasted garlic flavour.", price: "$14.99", tag: "CHEF'S SPECIALTY", bg: "light" , img: "dosa/dosa-butter-garlic.webp", icon: "dosa/icons/butter-garlic.png" }, + { id: 38, name: "BUTTER GARLIC MASALA DOSA",desc: "Crisp dosa layered with buttery garlic and filled with savoury potato masala.", price: "$15.99", tag: "CHEF'S SPECIALTY", bg: "light" , img: "dosa/dosa-butter-garlic-masala.webp", icon: "dosa/icons/butter-garlic-masala.png" }, + { id: 41, name: "BUTTER DOSA", desc: "Simple, crisp dosa finished with rich melted butter.", price: "$13.99", tag: "CHEF'S SPECIALTY", bg: "light" , img: "dosa/dosa-butter-dosa.webp", icon: "dosa/icons/butter.png" }, + { id: 33, name: "CHEESE DOSA", desc: "Golden crisp dosa generously filled with melted cheese for a rich, creamy bite.", price: "$14.99", tag: "CHEF'S SPECIALTY", bg: "light", img: "dosa/dosa-cheese-dosa.webp", icon: "dosa/icons/cheese.png" }, + { id: 42, name: "KIDS DOSA", desc: "Mild, simple dosa made especially for little food lovers.", price: "$9.99", tag: "CHEF'S SPECIALTY", bg: "light" , img: "dosa/dosa-kids-dosa.webp", icon: "dosa/icons/kids.png" }, // ── RAVA SPL ────────────────────────────────────────────────────────── - { id: 50, name: "RAVA DOSA", desc: "Thin, lacy & crispy semolina crepe served with chutneys.", price: "$13.99", tag: "RAVA SPL", bg: "light" , img: "rava/rava-rava-dosa.webp" }, - { id: 51, name: "RAVA MASALA", desc: "Crispy rava dosa filled with spiced potato masala.", price: "$14.99", tag: "RAVA SPL", bg: "light" , img: "rava/rava-rava-masala.webp" }, - { id: 52, name: "ONION RAVA", desc: "Lacy semolina crepe loaded with onions & herbs.", price: "$15.99", tag: "RAVA SPL", bg: "light" , img: "rava/rava-onion-rava.webp" }, - { id: 53, name: "ONION RAVA MASALA", desc: "Onion rava dosa generously stuffed with potato masala.", price: "$16.99", tag: "RAVA SPL", bg: "light" , img: "rava/rava-onion-rava-masala.webp" }, + { id: 50, name: "RAVA DOSA", desc: "Lace-thin semolina dosa with a crisp delicate texture.", price: "$13.99", tag: "RAVA SPL", bg: "light" , img: "rava/rava-rava-dosa.webp", icon: "rava/icons/rava.png" }, + { id: 51, name: "RAVA MASALA DOSA", desc: "Rava dosa packed with classic masala filling.", price: "$14.99", tag: "RAVA SPL", bg: "light" , img: "rava/rava-rava-masala.webp", icon: "rava/icons/rava-masala.png" }, + { id: 52, name: "ONION RAVA DOSA", desc: "Crisp rava dosa layered with fresh onion.", price: "$15.99", tag: "RAVA SPL", bg: "light" , img: "rava/rava-onion-rava.webp", icon: "rava/icons/onion-rava.png" }, + { id: 53, name: "ONION RAVA MASALA", desc: "Onion rava dosa finished with spiced potato masala.", price: "$16.99", tag: "RAVA SPL", bg: "light" , img: "rava/rava-onion-rava-masala.webp", icon: "rava/icons/onion-rava-masala.png" }, // ── UTTAPAM ─────────────────────────────────────────────────────────── - { id: 60, name: "PLAIN UTTAPAM", desc: "Thick, soft rice pancake served with sambar & chutneys.", price: "$10.99", tag: "UTTAPAM", bg: "light" , img: "uttapam/uttapam-plain.webp" }, - { id: 61, name: "ONION UTTAPAM", desc: "Fluffy uttapam generously topped with fresh onions.", price: "$12.99", tag: "UTTAPAM", bg: "light" , img: "uttapam/uttapam-onion.webp" }, - { id: 62, name: "GHEE PODI UTTAPAM", desc: "Uttapam drizzled with ghee & aromatic gunpowder podi.", price: "$14.99", tag: "UTTAPAM", bg: "light" , img: "uttapam/uttapam-ghee-podi.webp" }, - { id: 63, name: "MIX VEG UTTAPAM", desc: "Uttapam loaded with a colourful medley of fresh vegetables.", price: "$16.99", tag: "UTTAPAM", bg: "green" , img: "uttapam/uttapam-mix.webp" }, - { id: 64, name: "ONION TOMATO UTTAPAM", desc: "Classic uttapam with onion and ripe tomato topping.", price: "$13.99", tag: "UTTAPAM", bg: "light" , img: "uttapam/uttapam-onion-tomato.webp" }, - { id: 65, name: "ONION CHILLI UTTAPAM", desc: "Spiced uttapam topped with onions and green chillies.", price: "$13.99", tag: "UTTAPAM", bg: "light" , img: "uttapam/uttapam-onion-chiilli.webp" }, + { id: 60, name: "PLAIN UTTAPAM", desc: "Thick, soft rice-lentil pancake with a gentle tang.", price: "$10.99", tag: "UTTAPAM", bg: "light" , img: "uttapam/uttapam-plain.webp", icon: "uttapam/icons/plain.png" }, + { id: 61, name: "ONION UTTAPAM", desc: "Fluffy uttapam topped with fresh onion.", price: "$12.99", tag: "UTTAPAM", bg: "light" , img: "uttapam/uttapam-onion.webp", icon: "uttapam/icons/onion.png" }, + { id: 62, name: "ONION CHILLI UTTAPAM", desc: "Onion uttapam with a mild chilli kick.", price: "$13.99", tag: "UTTAPAM", bg: "light" , img: "uttapam/uttapam-onion-chiilli.webp", icon: "uttapam/icons/onion-chilli.png" }, + { id: 63, name: "ONION TOMATO UTTAPAM", desc: "Juicy tomato and onion on a soft utthappam base.", price: "$13.99", tag: "UTTAPAM", bg: "light" , img: "uttapam/uttapam-onion-tomato.webp", icon: "uttapam/icons/onion-tomato.png" }, + { id: 64, name: "GHEE PODI UTTAPAM", desc: "Soft uttapam finished with ghee and podi.", price: "$14.99", tag: "UTTAPAM", bg: "light" , img: "uttapam/uttapam-ghee-podi.webp", icon: "uttapam/icons/ghee-podi.png" }, + { id: 65, name: "MIXED VEG UTTAPAM", desc: "Colourful vegetables over a hearty uttapam.", price: "$16.99", tag: "UTTAPAM", bg: "green" , img: "uttapam/uttapam-mix.webp", icon: "uttapam/icons/mix.png" }, // ── BREADS ──────────────────────────────────────────────────────────── - { id: 70, name: "CHAPPATHI KADALA", desc: "Soft wheat flatbread served with spiced black chickpea curry.", price: "$13.99", tag: "BREADS", bg: "light" , img: "breads/breads-chappathi.webp" }, - { id: 71, name: "PAROTTA KADALA", desc: "Flaky layered parotta paired with rich kadala curry.", price: "$14.99", tag: "BREADS", bg: "light" , img: "breads/breads-parota.webp" }, - { id: 72, name: "POORI MASALA", desc: "Deep-fried fluffy poori served with spiced potato masala.", price: "$13.99", tag: "BREADS", bg: "light" , img: "breads/breads-poori.webp" }, + { id: 70, name: "CHAPATHI KURMA", desc: "Soft whole-wheat chapathis with flavourful kurma.", price: "$13.99", tag: "BREADS", bg: "light" , img: "breads/breads-chappathi.webp", icon: "breads/icons/chappathi.png" }, + { id: 71, name: "PAROTTA KURMA", desc: "Flaky layered parotta paired with rich kurma.", price: "$14.99", tag: "BREADS", bg: "light" , img: "breads/breads-parota.webp", icon: "breads/icons/parota.png" }, + { id: 72, name: "POORI MASALA", desc: "Puffed pooris served with seasoned potato masala.", price: "$13.99", tag: "BREADS", bg: "light" , img: "breads/breads-poori.webp", icon: "breads/icons/poori.png" }, // ── APPETIZERS ──────────────────────────────────────────────────────── - { id: 80, name: "GOBI 65", desc: "Crispy spiced fried cauliflower in a tangy South Indian style.", price: "$14.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-gobi65.webp" }, - { id: 81, name: "PANEER 65", desc: "Crispy marinated paneer cubes fried with aromatic spices.", price: "$15.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-paneer65.webp" }, - { id: 82, name: "CHILLI PAROTTA", desc: "Shredded flaky parotta stir-fried with peppers & spicy sauces.", price: "$14.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-chilli-parota.webp" }, - { id: 83, name: "KOTHU PAROTTA", desc: "Finely chopped parotta tossed with veggies, eggs & spices.", price: "$14.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-kothu-parota.webp" }, - { id: 84, name: "CHILLI GOBI", desc: "Crispy cauliflower tossed in spicy Indo-Chinese chilli sauce.", price: "$15.99", tag: "APPETIZERS", bg: "dark" , img: "appetizers/appetizers-chilli-gobi.webp" }, - { id: 85, name: "CHILLI PANEER", desc: "Crispy paneer cubes tossed in bold Indo-Chinese chilli sauce.", price: "$16.99", tag: "APPETIZERS", bg: "dark" , img: "appetizers/appetizers-chilli-paneer.webp" }, - { id: 86, name: "CAULIFLOWER MANCHURIAN",desc: "Crispy gobi florets in a savory, tangy Manchurian sauce.", price: "$15.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-cauliflower-manchurian.webp" }, - { id: 87, name: "CHILLI IDLY", desc: "Crispy fried idly pieces tossed in spicy Indo-Chinese sauce.", price: "$13.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-chilli-idli.webp" }, - { id: 88, name: "ONION PAKODA", desc: "Crunchy golden fritters made with onions, gram flour & spices.", price: "$12.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-onion-pakoda.webp" }, + { id: 80, name: "GOBI 65", desc: "Crispy cauliflower bites tossed in bold South Indian spices.", price: "$14.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-gobi65.webp", icon: "appetizers/icons/gobi65.png" }, + { id: 81, name: "PANEER 65", desc: "Tender paneer cubes fried and seasoned with signature spice.", price: "$15.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-paneer65.webp", icon: "appetizers/icons/paneer65.png" }, + { id: 82, name: "CHILLI PAROTTA", desc: "Shredded parotta tossed with chillies and masala.", price: "$14.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-chilli-parota.webp", icon: "appetizers/icons/chiili-parota.png" }, + { id: 83, name: "KOTHU PAROTTA", desc: "Street-style chopped parotta cooked with vegetables and spices.", price: "$14.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-kothu-parota.webp", icon: "appetizers/icons/kothu-parota.png" }, + { id: 84, name: "CHILLI GOBI", desc: "Indo-South Indian cauliflower tossed in a spicy sauce.", price: "$15.99", tag: "APPETIZERS", bg: "dark" , img: "appetizers/appetizers-chilli-gobi.webp", icon: "appetizers/icons/chilli-gobi.png" }, + { id: 85, name: "CHILLI PANEER", desc: "Paneer stir-fried with peppers, onions, and chilli glaze.", price: "$16.99", tag: "APPETIZERS", bg: "dark" , img: "appetizers/appetizers-chilli-paneer.webp", icon: "appetizers/icons/chilli-paneer.png" }, + { id: 86, name: "CAULIFLOWER MANCHURIAN",desc: "Crispy cauliflower in a savoury tangy sauce.", price: "$15.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-cauliflower-manchurian.webp", icon: "appetizers/icons/cauliflower.png" }, + { id: 87, name: "CHILLI IDLY", desc: "Fried idly bites tossed with onion and chilli.", price: "$13.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-chilli-idli.webp", icon: "appetizers/icons/chilli-idli.png" }, + { id: 88, name: "ONION PAKODA", desc: "Crisp onion fritters perfect with tea.", price: "$12.99", tag: "APPETIZERS", bg: "light" , img: "appetizers/appetizers-onion-pakoda.webp", icon: "appetizers/icons/onion.png" }, // ── TIFFIN SPL ──────────────────────────────────────────────────────── - { id: 90, name: "GHEE PONGAL", desc: "Comforting rice & lentil porridge cooked with ghee, ginger & pepper.", price: "$12.99", tag: "TIFFIN SPL", bg: "light" , img: "tiffin/tiffin-spl-ghee-pongal.webp" }, - { id: 91, name: "RAVA KICHADI", desc: "Savoury semolina upma cooked with vegetables & spices.", price: "$12.99", tag: "TIFFIN SPL", bg: "light" , img: "tiffin/tiffin-spl-rava-kichadi.webp" }, - { id: 92, name: "MINI TIFFIN COMBO", desc: "A delightful assortment of mini tiffin bites – perfect sampler.", price: "$16.99", tag: "TIFFIN SPL", bg: "green" , img: "tiffin/tiffin-spl-mini-tiffin.webp" }, - { id: 93, name: "MEGA TIFFIN COMBO", desc: "The ultimate tiffin feast with coffee & guava included.", price: "$19.99", tag: "TIFFIN SPL", bg: "green" , img: "tiffin/tiffin-spl-mega-tiffin.webp" }, + { id: 90, name: "GHEE PONGAL", desc: "Creamy rice-lentil pongal tempered with ghee and pepper.", price: "$12.99", tag: "TIFFIN SPL", bg: "light" , img: "tiffin/tiffin-spl-ghee-pongal.webp", icon: "tiffin/icons/ghee.png" }, + { id: 91, name: "RAVA KHICHDI", desc: "Savoury semolina khichdi with vegetables and mild spices.", price: "$12.99", tag: "TIFFIN SPL", bg: "light" , img: "tiffin/tiffin-spl-rava-kichadi.webp", icon: "tiffin/icons/kichadi.png" }, + { id: 92, name: "MINI TIFFIN COMBO", desc: "A curated mini tiffin selection for a satisfying meal.", price: "$16.99", tag: "TIFFIN SPL", bg: "green" , img: "tiffin/tiffin-spl-mini-tiffin.webp", icon: "tiffin/icons/mini.png" }, + { id: 93, name: "MEGA TIFFIN COMBO", desc: "A generous South Indian tiffin platter with idly, vada, dosa, pongal.", note: "with coffee $2 extra", price: "$19.99", tag: "TIFFIN SPL", bg: "green", img: "tiffin/tiffin-spl-mega-tiffin.webp", icon: "tiffin/icons/mega.png" }, // ── WEEKEND SPL ─────────────────────────────────────────────────────── - { id: 100, name: "THALI SOUTH INDIAN", desc: "A royal platter of rice, curries, sides & dessert. Sat & Sun 12–3 PM.", price: "$21.99", tag: "WEEKEND SPL",bg: "dark" , img: "weekend/weekend-thali.webp" }, - { id: 101, name: "VEG FRIED RICE / NOODLES", desc: "Wok-tossed fried rice or noodles with fresh veggies & sauces.", price: "$15.99", tag: "WEEKEND SPL",bg: "light" , img: "weekend/weekend-fried-rice.webp" }, - { id: 102, name: "CHENNA BHATURA", desc: "Fluffy deep-fried bread with spiced chickpea (chenna) curry.", price: "$15.99", tag: "WEEKEND SPL",bg: "light" , img: "weekend/weekend-channa.webp" }, + { id: 100, name: "SOUTH INDIAN THALI", desc: "A traditional feast with rice, curries, vada, chapathi, curd, sweet, and more. Sat & Sun 12–3 PM.", price: "$21.99", tag: "WEEKEND SPL", bg: "dark", img: "weekend/weekend-thali.webp", icon: "weekend/icons/thali.png" }, + { id: 101, name: "VEG FRIED RICE / NOODLES", desc: "Indo-Chinese comfort made the South Indian way.", price: "$15.99", tag: "WEEKEND SPL", bg: "light", img: "weekend/weekend-fried-rice.webp", icon: "weekend/icons/fried-rice.png" }, + { id: 102, name: "CHANNA BATURA", desc: "Fluffy batura served with rich chickpea masala.", price: "$15.99", tag: "WEEKEND SPL", bg: "light", img: "weekend/weekend-channa.webp", icon: "weekend/icons/channa.png" }, // ── RICE ────────────────────────────────────────────────────────────── - { id: 110, name: "CURD RICE", desc: "Cooling yogurt rice seasoned with mustard, ginger & curry leaves.", price: "$11.99", tag: "RICE", bg: "light" , img: "rice/rice-curd.webp" }, - { id: 111, name: "SAMBAR RICE", desc: "Flavourful rice cooked with hearty sambar & vegetables.", price: "$13.99", tag: "RICE", bg: "light" , img: "rice/rice-sambar.webp" }, - { id: 112, name: "PULIYODARAI", desc: "Tangy tamarind rice tempered with spices & peanuts.", price: "$13.99", tag: "RICE", bg: "light" , img: "rice/rice-puliyodharai.webp" }, - { id: 113, name: "VEG PULAO", desc: "Fragrant basmati rice cooked with vegetables & whole spices.", price: "$15.99", tag: "RICE", bg: "green" , img: "rice/rice-pulao.webp" }, - { id: 114, name: "LEMON RICE", desc: "Zesty rice tossed with lemon juice, turmeric & mustard seeds.", price: "$13.99", tag: "RICE", bg: "light" , img: "rice/rice-lemon.webp" }, - { id: 115, name: "TOMATO DAAL", desc: "Comforting lentil curry simmered with ripe tomatoes & spices.", price: "$14.99", tag: "RICE", bg: "light" , img: "rice/rice-tomato.webp" }, + { id: 110, name: "CURD RICE", desc: "Cooling yogurt rice tempered with comforting South Indian spices.", price: "$11.99", tag: "RICE", bg: "light" , img: "rice/rice-curd.webp", icon: "rice/icons/curd.png" }, + { id: 111, name: "SAMBAR RICE", desc: "Rice cooked in flavourful house sambar.", price: "$13.99", tag: "RICE", bg: "light" , img: "rice/rice-sambar.webp", icon: "rice/icons/sambar.png" }, + { id: 112, name: "PULIYODARAI", desc: "Tamarind rice with roasted spices and a tangy finish.", price: "$13.99", tag: "RICE", bg: "light" , img: "rice/rice-puliyodharai.webp", icon: "rice/icons/puli.png" }, + { id: 113, name: "VEG PULAV", desc: "Fragrant rice cooked with vegetables and whole spices.", price: "$15.99", tag: "RICE", bg: "green" , img: "rice/rice-pulao.webp", icon: "rice/icons/veg.png" }, + { id: 114, name: "LEMON RICE", desc: "Bright citrus rice with a light tempered seasoning.", price: "$13.99", tag: "RICE", bg: "light" , img: "rice/rice-lemon.webp", icon: "rice/icons/lemon.png" }, + { id: 115, name: "TOMATO BATH", desc: "Spiced tomato rice with a rich, homestyle flavour.", price: "$14.99", tag: "RICE", bg: "light" , img: "rice/rice-tomato.webp", icon: "rice/icons/tomato.png" }, // ── BEVERAGES ───────────────────────────────────────────────────────── - { id: 120, name: "COLD BADAM MILK", desc: "Chilled almond-infused milk sweetened with saffron & cardamom.", price: "$9.99", tag: "BEVERAGES", bg: "light" , img: "beverages/beverages-cold-badam-milk.webp" }, - { id: 121, name: "MANGO LASSI", desc: "Refreshing yogurt drink blended with sweet Alphonso mangoes.", price: "$8.99", tag: "BEVERAGES", bg: "light" , img: "beverages/beverages-mango-lassi.webp" }, - { id: 122, name: "ROSE MILK", desc: "Chilled milk flavoured with rose syrup – a South Indian classic.", price: "$7.99", tag: "BEVERAGES", bg: "light" , img: "beverages/beverages-rose-milk.webp" }, - { id: 123, name: "POP / WATER", desc: "Chilled soft drink or still water.", price: "$2.99", tag: "BEVERAGES", bg: "light" , img: "beverages/beverages-water.webp" }, - { id: 124, name: "MASALA CHAI", desc: "Aromatic spiced tea brewed with ginger, cardamom & milk.", price: "$4.99", tag: "BEVERAGES", bg: "light" , img: "beverages/beverages-masala-chai.webp" }, - { id: 125, name: "FILTER COFFEE", desc: "Authentic South Indian decoction coffee with frothy milk.", price: "$4.99", tag: "BEVERAGES", bg: "dark" , img: "beverages/beverages-filter-coffee.webp" }, + { id: 120, name: "HOT BADAM MILK", desc: "Warm almond milk blended with rich, comforting sweetness and aromatic spices.", price: "$6.99", tag: "BEVERAGES", bg: "light", img: "beverages/beverages-cold-badam-milk.webp", icon: "beverages/icons/cold.png" }, + { id: 121, name: "MANGO LASSI", desc: "Smooth yogurt drink blended with ripe mango.", price: "$7.99", tag: "BEVERAGES", bg: "light" , img: "beverages/beverages-mango-lassi.webp", icon: "beverages/icons/lassi.png" }, + { id: 122, name: "ROSE MILK", desc: "Cooling milk drink scented with rose.", price: "$6.99", tag: "BEVERAGES", bg: "light" , img: "beverages/beverages-rose-milk.webp", icon: "beverages/icons/rose.png" }, + { id: 123, name: "POP / WATER", desc: "Simple refreshment to pair with your meal.", price: "$2.29", tag: "BEVERAGES", bg: "light" , img: "beverages/beverages-water.webp", icon: "beverages/icons/water.png" }, + { id: 124, name: "MASALA CHAI", desc: "Spiced Indian tea brewed fresh. Takeout +$1 extra.", price: "$4.99", tag: "BEVERAGES", bg: "light" , img: "beverages/beverages-masala-chai.webp", icon: "beverages/icons/chai.png" }, + { id: 125, name: "FILTER COFFEE", desc: "Authentic South Indian filter coffee with rich aroma. Takeout +$1 extra.", price: "$4.99", tag: "BEVERAGES", bg: "dark" , img: "beverages/beverages-filter-coffee.webp", icon: "beverages/icons/coffee.png" }, // ── SIDES ───────────────────────────────────────────────────────────── - { id: 130, name: "SAMBAR", desc: "Traditional South Indian lentil and vegetable stew.", price: "$2.50", tag: "SIDES", bg: "light" , img: "sides/sides-sambar.webp" }, - { id: 131, name: "PODI", desc: "Spicy and aromatic gunpowder condiment.", price: "$1.99", tag: "SIDES", bg: "light" , img: "sides/sides-podi.webp" }, - { id: 132, name: "MASALA", desc: "Flavourful spiced potato filling.", price: "$2.50", tag: "SIDES", bg: "light" , img: "sides/sides-masala.webp" }, - { id: 133, name: "EXTRA", desc: "Additional accompaniments for your meal.", price: "$1.99", tag: "SIDES", bg: "light" , img: "sides/sides-masala.webp" }, + { id: 130, name: "SAMBAR", desc: "Traditional South Indian lentil and vegetable stew.", price: "$2.50", tag: "SIDES", bg: "light" , img: "sides/sides-sambar.webp", icon: "sides/icons/sambar.png" }, + { id: 131, name: "PODI", desc: "Spicy and aromatic gunpowder condiment.", price: "$1.99", tag: "SIDES", bg: "light" , img: "sides/sides-podi.webp", icon: "sides/icons/podi.png" }, + { id: 132, name: "MASALA", desc: "Flavourful spiced potato filling.", price: "$2.50", tag: "SIDES", bg: "light" , img: "sides/sides-masala.webp", icon: "sides/icons/masala.png" }, + { id: 133, name: "EXTRA", desc: "Additional accompaniments for your meal.", price: "$1.99", tag: "SIDES", bg: "light" , img: "sides/sides-extra.webp", icon: "sides/icons/extra.png" }, // ── DESSERTS ────────────────────────────────────────────────────────── - { id: 140, name: "GULAB JAMUN", desc: "Soft milk dumplings immersed in rose-scented syrup.", price: "$5.99", tag: "DESSERTS", bg: "light" , img: "desserts/desserts-gulab-jamun.webp" }, - { id: 141, name: "RASAMALAI", desc: "Spongy cottage cheese discs soaked in sweetened milk.", price: "$5.99", tag: "DESSERTS", bg: "light" , img: "desserts/desserts-rasamalai.webp" }, - { id: 142, name: "PINEAPPLE KESARI", desc: "Sweet semolina pudding flavoured with pineapple chunks.", price: "$6.99", tag: "DESSERTS", bg: "light" , img: "desserts/desserts-pineapple-kesari.webp" }, - { id: 143, name: "PAYASAM", desc: "Traditional rich and creamy South Indian sweet pudding.", price: "$7.99", tag: "DESSERTS", bg: "light" , img: "desserts/desserts-payasam.webp" }, + { id: 140, name: "GULAB JAMUN", desc: "Soft milk dumplings immersed in rose-scented syrup.", price: "$5.99", tag: "DESSERTS", bg: "light" , img: "desserts/desserts-gulab-jamun.webp", icon: "desserts/icons/gulab.png" }, + { id: 141, name: "RASAMALAI", desc: "Spongy cottage cheese discs soaked in sweetened milk.", price: "$5.99", tag: "DESSERTS", bg: "light" , img: "desserts/desserts-rasamalai.webp", icon: "desserts/icons/rasamalai.png" }, + { id: 142, name: "PINEAPPLE KESARI", desc: "Sweet semolina pudding flavoured with pineapple chunks.", price: "$6.99", tag: "DESSERTS", bg: "light" , img: "desserts/desserts-pineapple-kesari.webp", icon: "desserts/icons/pineapple.png" }, + { id: 143, name: "PAYASAM", desc: "Traditional rich and creamy South Indian sweet pudding.", price: "$7.99", tag: "DESSERTS", bg: "light" , img: "desserts/desserts-payasam.webp", icon: "desserts/icons/payasam.png" }, ]; export default function MenuPageContent() { - const [activeTab, setActiveTab] = useState("classics"); + const [activeTab, setActiveTab] = useState("idly_vada"); const [isPopupOpen, setIsPopupOpen] = useState(false); // Map tab ids → item tag values const TAB_TAG_MAP: Record = { - classics: "CLASSICS", - dosa: "DOSA", + idly_vada: "IDLY & VADA", + breads: "BREADS", + tiffin: "TIFFIN SPL", + dosa: "SIGNATURE DOSAS", + combos: "COMBOS", + sides: "SIDES", + chef_dosa: "CHEF'S SPECIALTY", rava: "RAVA SPL", uttapam: "UTTAPAM", - breads: "BREADS", appetizers: "APPETIZERS", - tiffin: "TIFFIN SPL", rice: "RICE", - beverages: "BEVERAGES", weekend: "WEEKEND SPL", - sides: "SIDES", desserts: "DESSERTS", + beverages: "BEVERAGES", }; const filteredItems = @@ -306,7 +314,7 @@ export default function MenuPageContent() { {/* Floating Icon */}
- icon + icon
@@ -324,6 +332,9 @@ export default function MenuPageContent() {

{item.desc} + {(item as any).note && ( + {(item as any).note} + )}