diff --git a/package-lock.json b/package-lock.json index ca704df5..88451273 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,8 @@ "react-icons": "^4.12.0", "react-leaflet": "^4.2.1", "react-responsive-carousel": "^3.2.23", - "slick-carousel": "^1.8.1" + "slick-carousel": "^1.8.1", + "supabase": "^1.167.4" }, "devDependencies": { "@calblueprint/eslint-config-react": "^0.0.3", @@ -224,7 +225,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -241,7 +241,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, "engines": { "node": ">=12" }, @@ -253,7 +252,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -264,6 +262,17 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "dev": true, @@ -538,7 +547,6 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, "optional": true, "engines": { "node": ">=14" @@ -973,6 +981,17 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { "version": "6.12.6", "dev": true, @@ -1015,7 +1034,6 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1023,7 +1041,6 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1292,9 +1309,22 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "dev": true, "license": "MIT" }, + "node_modules/bin-links": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz", + "integrity": "sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==", + "dependencies": { + "cmd-shim": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "read-cmd-shim": "^4.0.0", + "write-file-atomic": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "dev": true, @@ -1503,6 +1533,14 @@ "node": ">= 6" } }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "engines": { + "node": ">=18" + } + }, "node_modules/classnames": { "version": "2.3.2", "license": "MIT" @@ -1540,9 +1578,16 @@ "version": "0.0.1", "license": "MIT" }, + "node_modules/cmd-shim": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz", + "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -1553,7 +1598,6 @@ }, "node_modules/color-name": { "version": "1.1.4", - "dev": true, "license": "MIT" }, "node_modules/colord": { @@ -1604,7 +1648,6 @@ }, "node_modules/cross-spawn": { "version": "7.0.3", - "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -1675,9 +1718,16 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, "node_modules/debug": { "version": "4.3.4", - "dev": true, "license": "MIT", "dependencies": { "ms": "2.1.2" @@ -1781,7 +1831,6 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", - "dev": true, "license": "MIT" }, "node_modules/electron-to-chromium": { @@ -1792,7 +1841,6 @@ }, "node_modules/emoji-regex": { "version": "9.2.2", - "dev": true, "license": "MIT" }, "node_modules/enhanced-resolve": { @@ -2575,6 +2623,28 @@ "reusify": "^1.0.4" } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "dev": true, @@ -2661,7 +2731,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -2677,7 +2746,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, "engines": { "node": ">=14" }, @@ -2697,6 +2765,17 @@ "node": ">= 6" } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/fraction.js": { "version": "4.3.7", "dev": true, @@ -2985,6 +3064,18 @@ "version": "2.3.8", "license": "Apache-2.0" }, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "4.3.1", "dev": true, @@ -3040,7 +3131,6 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8.19" @@ -3427,7 +3517,6 @@ }, "node_modules/isexe": { "version": "2.0.0", - "dev": true, "license": "ISC" }, "node_modules/iterator.prototype": { @@ -3468,6 +3557,12 @@ "jiti": "bin/jiti.js" } }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "peer": true + }, "node_modules/js-tokens": { "version": "4.0.0", "license": "MIT" @@ -3801,11 +3896,114 @@ } }, "node_modules/minipass": { - "version": "5.0.0", - "dev": true, - "license": "ISC", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/minizlib/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/minizlib/node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minizlib/node_modules/jackspeak": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", + "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/minizlib/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minizlib/node_modules/rimraf": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz", + "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/moment": { @@ -3818,7 +4016,6 @@ }, "node_modules/ms": { "version": "2.1.2", - "dev": true, "license": "MIT" }, "node_modules/mz": { @@ -3957,6 +4154,41 @@ "resolved": "https://registry.npmjs.org/node-bin-setup/-/node-bin-setup-1.1.3.tgz", "integrity": "sha512-opgw9iSCAzT2+6wJOETCpeRYAQxSopqQ2z+N6BXwIMsQQ7Zj5M8MaafQY8JMlolRR6R1UXg2WmhKp0p9lSOivg==" }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, "node_modules/node-gyp-build": { "version": "4.7.0", "license": "MIT", @@ -3988,6 +4220,14 @@ "node": ">=0.10.0" } }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/npm-run-path": { "version": "5.1.0", "dev": true, @@ -4224,7 +4464,6 @@ }, "node_modules/path-key": { "version": "3.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4236,16 +4475,15 @@ "license": "MIT" }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", - "dev": true, + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4255,7 +4493,6 @@ "version": "10.2.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true, "engines": { "node": "14 || >=16.14" } @@ -4649,6 +4886,14 @@ "pify": "^2.3.0" } }, + "node_modules/read-cmd-shim": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", + "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/readdirp": { "version": "3.6.0", "dev": true, @@ -4898,7 +5143,6 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -4909,7 +5153,6 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -5017,7 +5260,6 @@ }, "node_modules/string-width": { "version": "5.1.2", - "dev": true, "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", @@ -5036,7 +5278,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5049,21 +5290,18 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } }, "node_modules/string-width/node_modules/ansi-regex": { "version": "6.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -5074,7 +5312,6 @@ }, "node_modules/string-width/node_modules/strip-ansi": { "version": "7.1.0", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -5149,7 +5386,6 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -5163,7 +5399,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -5270,6 +5505,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/supabase": { + "version": "1.167.4", + "resolved": "https://registry.npmjs.org/supabase/-/supabase-1.167.4.tgz", + "integrity": "sha512-DTaTsYQ48FdOPvTTl3H1cQnGDHvm4kQdBakeI5qbs7BFZgu2SRJDYRrCcSgH9sbZReOKrQdJCPfNpoy/Z359gA==", + "hasInstallScript": true, + "dependencies": { + "bin-links": "^4.0.3", + "https-proxy-agent": "^7.0.2", + "node-fetch": "^3.3.2", + "tar": "7.1.0" + }, + "bin": { + "supabase": "bin/supabase" + }, + "engines": { + "npm": ">=8" + } + }, "node_modules/supports-color": { "version": "7.2.0", "dev": true, @@ -5337,6 +5590,30 @@ "node": ">=6" } }, + "node_modules/tar": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.1.0.tgz", + "integrity": "sha512-ENhg4W6BmjYxl8GTaE7/h99f0aXiSWv4kikRZ9n2/JRxypZniE84ILZqimAhxxX7Zb8Px6pFdheW3EeHfhnXQQ==", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.0", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "engines": { + "node": ">=18" + } + }, "node_modules/text-table": { "version": "0.2.0", "dev": true, @@ -5613,6 +5890,14 @@ "loose-envify": "^1.0.0" } }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "license": "BSD-2-Clause" @@ -5653,7 +5938,6 @@ }, "node_modules/which": { "version": "2.0.2", - "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -5739,7 +6023,6 @@ }, "node_modules/wrap-ansi": { "version": "8.1.0", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", @@ -5758,7 +6041,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5774,14 +6056,12 @@ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -5790,7 +6070,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5802,7 +6081,6 @@ }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "6.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -5813,7 +6091,6 @@ }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "6.2.1", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -5824,7 +6101,6 @@ }, "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "7.1.0", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -5841,6 +6117,29 @@ "dev": true, "license": "ISC" }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/yaeti": { "version": "0.0.6", "license": "MIT", diff --git a/package.json b/package.json index 6f86fe32..1d02397f 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "react-icons": "^4.12.0", "react-leaflet": "^4.2.1", "react-responsive-carousel": "^3.2.23", - "slick-carousel": "^1.8.1" + "slick-carousel": "^1.8.1", + "supabase": "^1.167.4" }, "devDependencies": { "@calblueprint/eslint-config-react": "^0.0.3", diff --git a/public/icons.tsx b/public/icons.tsx index 29364f9d..01a027db 100644 --- a/public/icons.tsx +++ b/public/icons.tsx @@ -209,6 +209,28 @@ export function Congratulations() { ); } +/** + * @returns Left chevron for Carousel. + */ +export function LeftChevron() { + return ( + + + + ); +} + /** * @returns Right chevron for Carousel. */ diff --git a/src/app/exhibitsPage/page.tsx b/src/app/exhibits/page.tsx similarity index 97% rename from src/app/exhibitsPage/page.tsx rename to src/app/exhibits/page.tsx index ab4de68d..bb7300ff 100644 --- a/src/app/exhibitsPage/page.tsx +++ b/src/app/exhibits/page.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useState } from 'react'; import Link from 'next/link'; -import NavBar from '../../components/userComponents/navBar/navBar'; +import NavBar from '../../components/userComponents/NavBar/NavBar'; import { CategoryRow } from '../../types/types'; import { fetchAllCategories } from '../../supabase/category/queries'; import Exhibit from '../../components/userComponents/Exhibit/Exhibit'; @@ -65,7 +65,7 @@ function App() { the QR codes on display for more information.

- +

Go to Map @@ -113,7 +113,7 @@ function App() { the QR codes on display for more information.

- +

Go to Map diff --git a/src/app/featuredToursPage/[tourId]/page.tsx b/src/app/featuredToursPage/[tourId]/page.tsx deleted file mode 100644 index dd1f5cbf..00000000 --- a/src/app/featuredToursPage/[tourId]/page.tsx +++ /dev/null @@ -1,137 +0,0 @@ -'use client'; - -import React, { useEffect, useState } from 'react'; -import Image from 'next/image'; -import Link from 'next/link'; - -import { fetchAllDisplays } from '../../../supabase/displays/queries'; -import { fetchMedia } from '../../../supabase/media/queries'; -import { fetchTour } from '../../../supabase/tours/queries'; -import { fetchTourDisplays } from '../../../supabase/tour_displays/queries'; -import { fetchTourMedia } from '../../../supabase/tour_media/queries'; -import { - DisplayRow, - MediaRow, - TourDisplaysRow, - TourMediaRow, - TourRow, -} from '../../../types/types'; - -import BackButton from '../../../components/userComponents/BackButton/BackButton'; -import NavBar from '../../../components/userComponents/navBar/navBar'; - -/** - * @param params - - * @param params.params - - * @param params.params.tourId - The tour ID - * @returns The tour start page - */ -export default function TourStartPage({ - params, -}: { - params: { tourId: string }; -}) { - const [tour, setTour] = useState(); - const [tourDisplays, setTourDisplays] = useState([]); - const [displays, setDisplays] = useState([]); - const [tourMedia, setTourMedia] = useState([]); - const [media, setMedia] = useState([]); - - useEffect(() => { - // Fetch tour, tour displays, and tour media data - const fetchData = async () => { - const fetchedTour = await fetchTour(params.tourId); - setTour(fetchedTour); - const fetchedTourDisplays = await fetchTourDisplays(params.tourId); - setTourDisplays(fetchedTourDisplays); - const fetchedDisplays = await fetchAllDisplays(); - setDisplays(fetchedDisplays); - const fetchedTourMedia = await fetchTourMedia(params.tourId); - setTourMedia(fetchedTourMedia); - const fetchedMedia = await fetchMedia(); - setMedia(fetchedMedia); - }; - - fetchData(); - }, [params.tourId]); - - return ( - tour && ( -

- - - - -
- {media.length > 0 && ( - m.id === tourMedia[0]?.media_id)?.id} - src={media.find(m => m.id === tourMedia[0]?.media_id)?.url ?? ''} - alt={media.find(m => m.id === tourMedia[0]?.media_id)?.text ?? ''} - layout="fill" - objectFit="cover" - priority - /> - )} -
- -
-
-
-

- WELCOME TO -

-

- {tour.name} -

-
-
- -

- Start Tour -

- -
-
- -

{tour.description}

- -
-
-

- In this tour -

-
-

- {tour.stop_count} stops -

-
-
-
    - {tourDisplays.map(tourDisplay => ( -
  1. -

    - {tourDisplay.display_order != null - ? tourDisplay.display_order + 1 - : ''} - .{' '} - { - displays.find( - display => display.id === tourDisplay.display_id, - )?.title - } -

    -
  2. - ))} -
-
-
-
- ) - ); -} diff --git a/src/app/featuredToursPage/[tourId]/tourEndPage/page.tsx b/src/app/featuredToursPage/[tourId]/tourEndPage/page.tsx deleted file mode 100644 index e514f030..00000000 --- a/src/app/featuredToursPage/[tourId]/tourEndPage/page.tsx +++ /dev/null @@ -1,142 +0,0 @@ -'use client'; - -import Link from 'next/link'; -import React, { useEffect, useState } from 'react'; - -import NavBar from '../../../../components/userComponents/navBar/navBar'; -import { - MediaRow, - TourRow, - TourMediaRow, - TourDisplaysRow, -} from '../../../../types/types'; -import { fetchMedia } from '../../../../supabase/media/queries'; -import { fetchTour } from '../../../../supabase/tours/queries'; -import { fetchTourDisplays } from '../../../../supabase/tour_displays/queries'; -import { fetchTourMedia } from '../../../../supabase/tour_media/queries'; -import { - BackArrow, - Congratulations, - ExternalLinkIcon, -} from '../../../../../public/icons'; - -/** - * @param params - - * @param params.params - - * @param params.params.tourId - The tour ID - * @returns The tour end page - */ -export default function TourEndPage({ - params, -}: { - params: { tourId: string }; -}) { - const [media, setMedia] = useState([]); - const [tour, setTour] = useState(); - const [tourMedia, setTourMedia] = useState([]); - const [backLink, setBackLink] = useState( - `/featuredToursPage/${params.tourId}`, - ); - - useEffect(() => { - // Get tour - const getTour = async () => { - const fetchedTour = await fetchTour(params.tourId); - setTour(fetchedTour); - }; - - // Get tour media - const getTourMedia = async () => { - const fetchedTourMedia = await fetchTourMedia(params.tourId); - setTourMedia(fetchedTourMedia); - }; - - // Get media - const getMedia = async () => { - const fetchedMedia = await fetchMedia(); - setMedia(fetchedMedia); - }; - - /** - * @returns The link to the previous page. - */ - async function getBackLink() { - const tourDisplays: TourDisplaysRow[] = await fetchTourDisplays( - params.tourId, - ); - setBackLink( - `/featuredToursPage/${params.tourId}/${ - tourDisplays[tourDisplays.length - 1].display_id - }`, - ); - } - - getTour(); - getTourMedia(); - getMedia(); - getBackLink(); - }, [params.tourId]); - - return ( -
- - - - - -
-
-
-
- -

- {`You've reached the end of this tour!`} -

-
-

- Thanks for visiting {tour?.name}. -

-
-
- -

- Back to Virtual Tours -

- -
-
- -
-
-
-

Related Links

-
    - {tourMedia.map((tm, index) => ( -
  1. - m.id === tm.media_id)?.url ?? '-1'} - className="flex flex-col gap-1" - > -
    -

    - {media.find(m => m.id === tm.media_id)?.type} -

    - -
    -

    - {media.find(m => m.id === tm.media_id)?.title} -

    - - {index !== tourMedia.length - 1 && ( -
    - )} -
  2. - ))} -
-
-
-
-
-
- ); -} diff --git a/src/app/featuredToursPage/page.tsx b/src/app/featuredToursPage/page.tsx deleted file mode 100644 index 28b7ac88..00000000 --- a/src/app/featuredToursPage/page.tsx +++ /dev/null @@ -1,122 +0,0 @@ -'use client'; - -import React, { useEffect, useState } from 'react'; -import Image from 'next/image'; -import Link from 'next/link'; - -import { fetchAllTours } from '../../supabase/tours/queries'; -import { fetchMedia } from '../../supabase/media/queries'; -import { fetchAllTourMedia } from '../../supabase/tour_media/queries'; -import { TourRow, MediaRow, TourMediaRow } from '../../types/types'; - -import { BackArrow } from '../../../public/icons'; -import NavBar from '../../components/userComponents/navBar/navBar'; -import NextButton from '../../components/userComponents/NextButton/NextButton'; - -/** - * @returns The featured tours page. - */ -export default function FeaturedToursPage() { - const [tours, setTours] = useState([]); - const [allTourMedia, setAllTourMedia] = useState([]); - const [media, setMedia] = useState([]); - - useEffect(() => { - // Fetch tour and tour media data - const fetchData = async () => { - const fetchedTours = await fetchAllTours(); - setTours(fetchedTours); - const fetchedAllTourMedia = await fetchAllTourMedia(); - setAllTourMedia(fetchedAllTourMedia); - const fetchedMedia = await fetchMedia(); - setMedia(fetchedMedia); - }; - - fetchData(); - }, []); - - return ( -
- - -
-
- - - -
- -

- Virtual Tours -

-

- Take a virtual sneak peek behind the scenes at our Wildlife Care - Center. Here you will find outside enclosures where sick, injured, and - orphaned wildlife recuperate and acclimate before being released back - into their natural habitat. Choose your favorite animal to start the - tour. -

- -
    - {tours.map( - tour => - tour.spotlight === false && ( -
  • - -
    - {media.length > 0 && ( - - m.id === - allTourMedia.find(tm => tm.tour_id === tour.id) - ?.media_id, - )?.url ?? '' - } - alt={ - media.find( - m => - m.id === - allTourMedia.find(tm => tm.tour_id === tour.id) - ?.media_id, - )?.text ?? '' - } - layout="fill" - objectFit="cover" - priority - /> - )} -
    -

    - {tour.stop_count} stops -

    -
    -

    - {tour.name} -

    -
    - -
    -
    -
    -
    - -
  • - ), - )} -
-
-
- ); -} diff --git a/src/app/globals.css b/src/app/globals.css index 49144bab..4855e7d0 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -22,43 +22,43 @@ These styles are applied automatically to certain div tags, but you can also cal /* Mobile Text Styles */ .h1 { /* Header 1 */ - @apply text-3xl leading-9 font-medium text-ivory font-lato; + @apply text-ivory font-lato text-[2rem] lg:text-[2.625rem] not-italic font-bold leading-[1.3]; } .h2 { /* Header 2 */ - @apply text-2xl leading-7 font-bold text-ivory font-lato; + @apply text-ivory font-lato text-[1.5rem] lg:text-[1.75rem] not-italic font-semibold leading-[1.3]; } .h3 { /* Header 3 */ - @apply text-xl leading-6 font-bold text-ivory font-lato; + @apply text-ivory font-lato text-[1.25rem] lg:text-[1.5rem] italic font-normal leading-[1.3]; } .h4 { /* Header 4 */ - @apply text-lg leading-5 text-base font-bold text-ivory font-lato; + @apply text-ivory font-lato text-[1.125rem] lg:text-[1.25rem] not-italic font-bold leading-[1.3]; } .b1 { /* Button */ - @apply text-base leading-5 font-semibold text-ivory font-lato; + @apply text-ivory font-lato text-[1rem] lg:text-[1.0625rem] not-italic font-bold leading-[1.5]; } .b2 { /* Bolded Body */ - @apply text-base leading-5 font-medium text-ivory font-lato; + @apply text-ivory font-lato text-[1rem] lg:text-[1.0625rem] not-italic font-medium leading-[1.3]; } .b3 { /* Body Text */ - @apply text-base leading-5 font-normal text-ivory font-lato; + @apply text-ivory font-lato text-[1rem] lg:text-[1.0625rem] not-italic font-normal leading-[1.3]; } .s1 { /* Subtitle Text */ - @apply text-sm leading-4 font-light text-ivory font-lato; + @apply text-ivory font-lato text-[0.875rem] lg:text-[0.9375rem] not-italic font-normal leading-[1.3]; } .s2 { /* Category Label Text */ - @apply text-xs font-normal text-ivory font-lato; + @apply text-ivory font-lato text-[0.75rem] lg:text-[0.8125rem] not-italic font-normal uppercase leading-[1.3]; } .s3 { /* Caption Text */ - @apply text-xs font-light text-ivory font-lato; + @apply text-ivory font-lato text-[0.75rem] lg:text-[0.8125rem] not-italic font-normal leading-[1.3]; } } /* Base layer: To match figma design system, certain styles are auto-applied to these HTML tags. You can overwrite them if needed.*/ diff --git a/src/app/hours-and-location/page.tsx b/src/app/hours-and-location/page.tsx new file mode 100644 index 00000000..35e4ad07 --- /dev/null +++ b/src/app/hours-and-location/page.tsx @@ -0,0 +1,143 @@ +'use client'; + +import React, { useEffect, useState } from 'react'; +import { FiCalendar, FiCompass } from 'react-icons/fi'; +import Link from 'next/link'; +import NavBar from '../../components/userComponents/NavBar/NavBar'; +import { BackArrow } from '../../../public/icons'; + +/** + * @returns The hours and location page. + */ +export default function HoursLocationPage() { + const [isWide, setIsWide] = useState(false); + + useEffect(() => { + if (window) { + setIsWide(window.innerWidth >= 1024); + } + // Update isWide state on window resize + const handleResize = () => setIsWide(window.innerWidth >= 1024); + window.addEventListener('resize', handleResize); + return () => { + window.removeEventListener('resize', handleResize); + }; + }, []); + + return isWide ? ( +
+ +
+
+
+

+ Home / Hours & Location +

+

Hours & Location

+
+
+ Hours & Location +
+
+

Site Information

+
+
+
+ +

+ 24103 Congress Springs Road, +

+
+

Saratoga, CA 95070

+
+
+ +

+ Monday-Sunday | 9 AM to 6 PM +

+
+

Closed on holidays*

+
+
+
+

Contact Us

+
+
+

Wildlife Care Center

+

650-340-7022

+
+
+

Peninsula Intake

+

650-340-7022

+
+
+

South Bay Intake

+

408-929-9453

+
+
+

+ If you’ve found a wild animal that appears to be sick, + injured, or orphaned, safely contain it and either bring it to + our nearest shelter or contact us for guidance. +

+
+
+
+
+
+
+ ) : ( +
+ +
+
+ + + +
+

Hours & Location

+

Site Information

+ +
+
+
+ +

24103 Congress Springs Road,

+
+

Saratoga, CA 95070

+
+
+ +

Monday-Sunday | 9 AM to 6 PM

+
+

Closed on holidays*

+
+ +

Contact Us

+
+
+

Wildlife Care Center

+

650-340-7022

+
+
+

Peninsula Intake

+

650-340-7022

+
+
+

South Bay Intake

+

408-929-9453

+
+
+

+ If you’ve found a wild animal that appears to be sick, injured, or + orphaned, safely contain it and either bring it to our nearest shelter + or contact us for guidance. +

+
+
+ ); +} diff --git a/src/app/hoursAdmissionPage/page.tsx b/src/app/hoursAdmissionPage/page.tsx deleted file mode 100644 index 2b686234..00000000 --- a/src/app/hoursAdmissionPage/page.tsx +++ /dev/null @@ -1,74 +0,0 @@ -'use client'; - -import React from 'react'; -import { FiCalendar, FiCompass } from 'react-icons/fi'; -import Link from 'next/link'; -import NavBar from '../../components/userComponents/navBar/navBar'; -import { BackArrow } from '../../../public/icons'; - -/** - * @returns The hours and admission page. - */ -export default function HoursAdmissionPage() { - return ( -
- -
-
- - - -
-

- Hours & Location -

-

- Site Information -

- -
-
- -

- 24103 Congress Springs Road, Saratoga, CA 95070 -

-
-
- -

- Monday-Sunday | 9 AM to 6 PM -

-
-

- Closed on holidays* -

-
- -

- Contact Us -

-
-
-

- Wildlife Care Center -

-

650-340-7022

-
-
-

Peninsula Intake

-

650-340-7022

-
-
-

South Bay Intake

-

408-929-9453

-
-
-

- If you've found a wild animal that appears to be sick, injured, or - orphaned, safely contain it and either bring it to our nearest shelter - or contact us for guidance. -

-
-
- ); -} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index b489d625..26300222 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,17 +1,18 @@ import './globals.css'; import type { Metadata } from 'next'; -import { Inter } from 'next/font/google'; +import { Inter, Lato } from 'next/font/google'; import React from 'react'; import { WindowWidthProvider } from '../context/WindowWidthContext/WindowWidthContext'; const inter = Inter({ subsets: ['latin'] }); -// const lato = Lato({ weight: ['300', '400', '500', '700'], subsets: ['latin'] }); +const lato = Lato({ weight: ['400', '700'], subsets: ['latin'] }); export const metadata: Metadata = { title: 'Create Next App', description: 'Generated by create next app', }; + /** * @param root0 - Destructured object containing the properties. * @param root0.children - The child elements to be rendered within the RootLayout component. @@ -44,10 +45,9 @@ export default function RootLayout({ crossOrigin="" />