From e42f0bb169521427adf67a3c6b7a0297ab80c042 Mon Sep 17 00:00:00 2001 From: Deep Date: Mon, 4 Dec 2023 22:09:28 +0530 Subject: [PATCH] Basic version for landing, search, favourites pages --- .gitignore | 1 + index.html | 24 ++- package.json | 8 +- src/App.css | 42 ---- src/App.jsx | 35 ---- src/about/index.jsx | 10 + src/all-buses/index.jsx | 10 + src/assets/icon_bus_number.svg | 10 + src/assets/icon_bus_stop.svg | 4 + src/assets/icon_location.svg | 3 + src/assets/icon_metro_green.svg | 4 + src/assets/icon_metro_purple.svg | 4 + src/assets/react.svg | 1 - src/favourites/index.jsx | 57 ++++++ src/index.css | 68 ------- src/index.scss | 239 +++++++++++++++++++++++ src/landing/index.jsx | 86 ++++++++ src/landing/sidebar.jsx | 58 ++++++ src/main.jsx | 42 +++- src/search/index.jsx | 88 +++++++++ src/search/search_result_item.jsx | 45 +++++ src/utils/constants.js | 20 ++ vite.config.js | 3 +- yarn.lock | 314 +++++++++++++++++++++++++++++- 24 files changed, 1018 insertions(+), 158 deletions(-) delete mode 100644 src/App.css delete mode 100644 src/App.jsx create mode 100644 src/about/index.jsx create mode 100644 src/all-buses/index.jsx create mode 100644 src/assets/icon_bus_number.svg create mode 100644 src/assets/icon_bus_stop.svg create mode 100644 src/assets/icon_location.svg create mode 100644 src/assets/icon_metro_green.svg create mode 100644 src/assets/icon_metro_purple.svg delete mode 100644 src/assets/react.svg create mode 100644 src/favourites/index.jsx delete mode 100644 src/index.css create mode 100644 src/index.scss create mode 100644 src/landing/index.jsx create mode 100644 src/landing/sidebar.jsx create mode 100644 src/search/index.jsx create mode 100644 src/search/search_result_item.jsx create mode 100644 src/utils/constants.js diff --git a/.gitignore b/.gitignore index a547bf3..438657a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ node_modules dist dist-ssr *.local +.env # Editor directories and files .vscode/* diff --git a/index.html b/index.html index 0c589ec..55585e9 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,29 @@ - Vite + React + BLR Public transport app + + + + + + +
diff --git a/package.json b/package.json index f226e9f..b115a46 100644 --- a/package.json +++ b/package.json @@ -4,17 +4,21 @@ "version": "0.0.0", "type": "module", "scripts": { - "start": "vite", + "start": "vite --port 3000", "dev": "vite", "build": "vite build", "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview" }, "dependencies": { + "mapbox-gl": "^2.15.0", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "react-router-dom": "^6.19.0", + "sass": "^1.69.5" }, "devDependencies": { + "@iconify/react": "^4.1.1", "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", "@vitejs/plugin-react": "^4.2.0", diff --git a/src/App.css b/src/App.css deleted file mode 100644 index b9d355d..0000000 --- a/src/App.css +++ /dev/null @@ -1,42 +0,0 @@ -#root { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} - -.logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: filter 300ms; -} -.logo:hover { - filter: drop-shadow(0 0 2em #646cffaa); -} -.logo.react:hover { - filter: drop-shadow(0 0 2em #61dafbaa); -} - -@keyframes logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - -@media (prefers-reduced-motion: no-preference) { - a:nth-of-type(2) .logo { - animation: logo-spin infinite 20s linear; - } -} - -.card { - padding: 2em; -} - -.read-the-docs { - color: #888; -} diff --git a/src/App.jsx b/src/App.jsx deleted file mode 100644 index b8b8473..0000000 --- a/src/App.jsx +++ /dev/null @@ -1,35 +0,0 @@ -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from '/vite.svg' -import './App.css' - -function App() { - const [count, setCount] = useState(0) - - return ( - <> -
- - Vite logo - - - React logo - -
-

Vite + React

-
- -

- Edit src/App.jsx and save to test HMR -

-
-

- Click on the Vite and React logos to learn more -

- - ) -} - -export default App diff --git a/src/about/index.jsx b/src/about/index.jsx new file mode 100644 index 0000000..614ea5d --- /dev/null +++ b/src/about/index.jsx @@ -0,0 +1,10 @@ +import React from "react"; + + +const AboutPage = () => { + return ( +
About page
+ ); +}; + +export default AboutPage; diff --git a/src/all-buses/index.jsx b/src/all-buses/index.jsx new file mode 100644 index 0000000..3ea2296 --- /dev/null +++ b/src/all-buses/index.jsx @@ -0,0 +1,10 @@ +import React from "react"; + + +const AllBusesPage = () => { + return ( +
All buses page
+ ); +}; + +export default AllBusesPage; diff --git a/src/assets/icon_bus_number.svg b/src/assets/icon_bus_number.svg new file mode 100644 index 0000000..e281fcd --- /dev/null +++ b/src/assets/icon_bus_number.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/icon_bus_stop.svg b/src/assets/icon_bus_stop.svg new file mode 100644 index 0000000..6120641 --- /dev/null +++ b/src/assets/icon_bus_stop.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icon_location.svg b/src/assets/icon_location.svg new file mode 100644 index 0000000..b08c7a9 --- /dev/null +++ b/src/assets/icon_location.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icon_metro_green.svg b/src/assets/icon_metro_green.svg new file mode 100644 index 0000000..426c152 --- /dev/null +++ b/src/assets/icon_metro_green.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icon_metro_purple.svg b/src/assets/icon_metro_purple.svg new file mode 100644 index 0000000..94f9a55 --- /dev/null +++ b/src/assets/icon_metro_purple.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/react.svg b/src/assets/react.svg deleted file mode 100644 index 6c87de9..0000000 --- a/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/favourites/index.jsx b/src/favourites/index.jsx new file mode 100644 index 0000000..7e3aa15 --- /dev/null +++ b/src/favourites/index.jsx @@ -0,0 +1,57 @@ +import React from "react"; +import {Icon} from "@iconify/react/dist/iconify.js"; +import SearchResultItem from "../search/search_result_item"; +import {ROUTES, SEARCH_RESULT_TYPES} from "../utils/constants.js"; +import {Link} from "react-router-dom"; + +const FAVOURITES = [ + { + type: SEARCH_RESULT_TYPES.location, + text: "Mayur Paradise", + favourite: true, + }, + { + type: SEARCH_RESULT_TYPES.bus_stop, + text: "Tippasandra Market Bus Stop", + favourite: true, + }, + { + type: SEARCH_RESULT_TYPES.metro_station_purple, + text: "Nadaprabhu Kempegowda Metro Station, Majestic", + favourite: true, + }, + { + type: SEARCH_RESULT_TYPES.bus_number, + text: "314", + favourite: true, + }, + { + type: SEARCH_RESULT_TYPES.bus_number, + text: "333G", + favourite: true, + }, +]; + +const FavouritesPage = () => { + return ( + <> + +
+ { + FAVOURITES.map(i => ) + } +
+ + ); +}; + +export default FavouritesPage; diff --git a/src/index.css b/src/index.css deleted file mode 100644 index 6119ad9..0000000 --- a/src/index.css +++ /dev/null @@ -1,68 +0,0 @@ -:root { - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} diff --git a/src/index.scss b/src/index.scss new file mode 100644 index 0000000..f572faa --- /dev/null +++ b/src/index.scss @@ -0,0 +1,239 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +* { + box-sizing: border-box; +} + +html { + font-family: "IBM Plex Sans", sans-serif; + font-size: 20px; +} + +body { + margin: 0; + font-family: "IBM Plex Sans", sans-serif; +} + +#root { + width: 100%; + height: 100vh; +} + +#page-header { + background-color: #2D2D2D; + border-radius: 0 0 16px 16px; + padding: 18px 16px; + display: flex; + align-items: center; + box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25); +} + +#header-back { + background-color: transparent; + border: 0; + margin: 0 8px 0 0; + padding: 0; +} + +#header-text { + color: #ffffff; + font-size: 0.8rem; + flex-grow: 1; + margin: -6px 0 0 0; + &.center { + text-align: center; + span { + margin-left: -30px; + } + } +} + +.subheading { + font-size: 0.7rem; + color: #999999; +} + +/******************** + Landing page +********************/ + +#map { + width: 100%; + height: 100%; +} + +#landing-bottom { + position: fixed; + bottom: 40px; + left: 0; + right: 0; + z-index: 1000; + padding: 24px 24px 0; +} + +#landing-input { + height: 88px; + padding: 32px; + border-radius: 24px; + border: 0; + background-color: #2D2D2D; + margin-bottom: 13px; + width: 100%; + font-weight: bold; + color: #ffffff; + display: flex; + align-items: center; + font-size: 0.9rem; + text-decoration: none; + svg { + margin-right: 10px; + } +} + +#landing-icons { + display: flex; + align-items: center; + justify-content: space-between; +} + +.landing-button { + background-color: #2D2D2D; + width: 48px; + height: 48px; + border-radius: 16px; + border: 0; +} + +#landing-hamburger { + position: fixed; + top: 28px; + left: 24px; + border: 0; + background: transparent; + margin: 0; + padding: 0; +} + +#sidebar { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100vh; + background-color: #2D2D2D; + color: #ffffff; + z-index: 9999; + padding: 28px 24px; +} + +#sidebar-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 74px; +} + +#sidebar-close { + background-color: #000000; + border-radius: 50%; + border: 0; + display: block; + width: 36px; + height: 36px; + box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25); +} + +#sidebar-title { + text-transform: uppercase; + color: #999999; + font-size: 0.6rem; +} + +#sidebar-menu { + margin: 0; + padding: 0; + list-style: none; + li { + line-height: 1.8; + margin: 0 0 10px; + } + a { + color: inherit; + text-decoration: none; + } +} +.sidebar-lang { + display: block; + margin: 5px 0 0 30px; + background-color: transparent; + font: inherit; + font-size: 0.8rem; + color: #999999; + border: 0; + &.selected { + color: inherit; + } +} + +/******************** + Search page +********************/ +#search-input { + width: 10px; + flex-grow: 1; + flex-shrink: 1; + background-color: transparent; + border: 0; + border-bottom: 1.5px solid #535353; + font: inherit; + font-size: 0.8rem; + color: #ffffff; +} + +#search-results { + padding: 20px 24px; +} + +.search-result-item { + display: flex; + margin: 0 0 10px; + align-items: flex-start; + padding: 5px 0 10px; +} + +.search-item-icon { + margin-right: 8px; + width: 16px; + height: 16px; +} + +.search-item-text { + font-size: 0.8rem; + flex-grow: 1; + flex-shrink: 1; + margin-top: -4px; + line-height: 1.6; + .bus_number { + background-color: #1A73E9; + border: 2px solid #1967D3; + border-radius: 4px; + color: #ffffff; + font-weight: bold; + font-size: 0.7rem; + padding: 0 6px; + } +} + +.search-result-favourite { + background-color: transparent; + border: 0; +} \ No newline at end of file diff --git a/src/landing/index.jsx b/src/landing/index.jsx new file mode 100644 index 0000000..db073d6 --- /dev/null +++ b/src/landing/index.jsx @@ -0,0 +1,86 @@ +import React from "react"; +import mapboxgl from "mapbox-gl"; +import {MAPBOX_TOKEN, ROUTES} from "../utils/constants.js"; + +import { Icon } from '@iconify/react'; +import Sidebar from "./sidebar.jsx"; +import {Link} from "react-router-dom"; + +mapboxgl.accessToken = MAPBOX_TOKEN; + +class LandingPage extends React.PureComponent { + constructor(props) { + super(props); + this.state = { + lat: 12.977529081680132, + lng: 77.57247169985196, + zoom: 11, + supported: mapboxgl.supported(), + }; + this.mapContainer = React.createRef(); + } + + initMap = () => { + if(!this.mapContainer.current) { + return; + } + const { lng, lat, zoom } = this.state; + const map = new mapboxgl.Map({ + container: this.mapContainer.current, + style: "mapbox://styles/mapbox/streets-v11", + center: [lng, lat], + zoom: zoom, + minZoom: 10, + maxZoom: 18, + }); + map.dragRotate.disable(); + map.touchZoomRotate.disableRotation(); + + map.on("move", () => { + this.setState({ + lng: map.getCenter().lng.toFixed(4), + lat: map.getCenter().lat.toFixed(4), + zoom: map.getZoom().toFixed(2), + }); + }); + this.map = map; + }; + + componentDidMount() { + if (this.state.supported) { + this.initMap(); + this.map?.on("load", () => { + + }); + } + } + + componentWillUnmount() { + this.map?.remove(); + } + + render() { + return ( + <> +
+ +
+ + + Where to? + +
+ + +
+
+ + ); + } +} + +export default LandingPage; diff --git a/src/landing/sidebar.jsx b/src/landing/sidebar.jsx new file mode 100644 index 0000000..6cc4abd --- /dev/null +++ b/src/landing/sidebar.jsx @@ -0,0 +1,58 @@ +import React, {useState} from "react"; +import {Icon} from "@iconify/react/dist/iconify.js"; +import {Link} from "react-router-dom"; +import {ROUTES} from "../utils/constants.js"; + +const LANGUAGES = [ + { + text: "English", + code: "en", + }, + { + text: "ಕನ್ನಡ", + code: "kn", + } +]; + +const Sidebar = () => { + const [sidebarOpen, setSidebarOpen] = useState(false); + const [language, setLanguage] = useState(LANGUAGES[0].code); + return sidebarOpen ? ( + + ) : ( + + ); +}; + +export default Sidebar; diff --git a/src/main.jsx b/src/main.jsx index 54b39dd..46c3c11 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -1,10 +1,40 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' -import App from './App.jsx' -import './index.css' +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import { createBrowserRouter, RouterProvider } from "react-router-dom"; + +import './index.scss'; +import SearchPage from "./search/index.jsx"; +import LandingPage from "./landing/index.jsx"; +import {ROUTES} from "./utils/constants.js"; +import AboutPage from "./about/index.jsx"; +import AllBusesPage from "./all-buses"; +import FavouritesPage from "./favourites/index.jsx"; + +const router = createBrowserRouter([ + { + path: ROUTES.home, + element: , + }, + { + path: ROUTES.search, + element: + }, + { + path: ROUTES.about, + element: + }, + { + path: ROUTES.all_buses, + element: + }, + { + path: ROUTES.favourites, + element: + }, +]); ReactDOM.createRoot(document.getElementById('root')).render( - + , -) +); diff --git a/src/search/index.jsx b/src/search/index.jsx new file mode 100644 index 0000000..65042e8 --- /dev/null +++ b/src/search/index.jsx @@ -0,0 +1,88 @@ +import React, {useState} from "react"; +import {Icon} from "@iconify/react/dist/iconify.js"; +import SearchResultItem from "./search_result_item"; +import {ROUTES, SEARCH_RESULT_TYPES} from "../utils/constants.js"; +import {Link} from "react-router-dom"; + +const HISTORY_ITEMS = [ + { + type: SEARCH_RESULT_TYPES.location, + text: "Mayur Paradise", + favourite: false, + }, + { + type: SEARCH_RESULT_TYPES.bus_stop, + text: "Tippasandra Market Bus Stop", + favourite: true, + }, + { + type: SEARCH_RESULT_TYPES.metro_station_purple, + text: "Nadaprabhu Kempegowda Metro Station, Majestic", + favourite: false, + }, + { + type: SEARCH_RESULT_TYPES.bus_number, + text: "314", + favourite: false, + }, + { + type: SEARCH_RESULT_TYPES.bus_number, + text: "333G", + favourite: false, + }, +]; + +const SEARCH_RESULTS = [ + { + type: SEARCH_RESULT_TYPES.location, + text: "Indiranagar Cafe Grill", + favourite: false, + }, + { + type: SEARCH_RESULT_TYPES.bus_stop, + text: "Indiranagar 100 Feet Road", + favourite: true, + }, + { + type: SEARCH_RESULT_TYPES.metro_station_purple, + text: "Indiranagar Metro Station", + favourite: false, + }, +] + +const SearchPage = () => { + const [searchText, setSearchText] = useState(""); + return ( + <> + + { + searchText ? ( +
+ { + SEARCH_RESULTS.map(i => ) + } +
+ ) : ( +
+

History

+ { + HISTORY_ITEMS.map(i => ) + } +
+ ) + } + + ); +}; + +export default SearchPage; diff --git a/src/search/search_result_item.jsx b/src/search/search_result_item.jsx new file mode 100644 index 0000000..f6779e7 --- /dev/null +++ b/src/search/search_result_item.jsx @@ -0,0 +1,45 @@ +import React from "react"; + +import IconBusStop from "../assets/icon_bus_stop.svg"; +import IconBusNumber from "../assets/icon_bus_number.svg"; +import IconMetroPurple from "../assets/icon_metro_purple.svg"; +import IconMetroGreen from "../assets/icon_metro_green.svg"; +import IconLocation from "../assets/icon_location.svg"; +import {SEARCH_RESULT_TYPES} from "../utils/constants.js"; +import {Icon} from "@iconify/react/dist/iconify.js"; + +const IconForResultType = { + [SEARCH_RESULT_TYPES.bus_stop]: IconBusStop, + [SEARCH_RESULT_TYPES.bus_number]: IconBusNumber, + [SEARCH_RESULT_TYPES.metro_station_green]: IconMetroGreen, + [SEARCH_RESULT_TYPES.metro_station_purple]: IconMetroPurple, + [SEARCH_RESULT_TYPES.location]: IconLocation, +}; + +const SearchResultItem = ({ info }) => { + const IconForInfo = IconForResultType[info.type]; + return ( + // TODO: Change the key. Text could be common between two items +
+ +
+ + { + info.text + } + +
+ +
+ ); +}; + +export default SearchResultItem; diff --git a/src/utils/constants.js b/src/utils/constants.js new file mode 100644 index 0000000..ed4e298 --- /dev/null +++ b/src/utils/constants.js @@ -0,0 +1,20 @@ +export const MAPBOX_TOKEN = import.meta.env.VITE_MAPBOX_TOKEN; +export const GOOGLE_API_KEY = import.meta.env.VITE_GOOGLE_API_KEY; + +export const ROUTES = { + home: "/", + search: "/search", + favourites: "/favourites", + all_buses: "/all-buses", + about: "/about", + bus_route: "/bus-route/:route_id", + bus_stop: "/bus-stop/:stop_id", +}; + +export const SEARCH_RESULT_TYPES = { + location: "location", + bus_stop: "bus_stop", + metro_station_purple: "metro_station_purple", + metro_station_green: "metro_station_green", + bus_number: "bus_number", +}; \ No newline at end of file diff --git a/vite.config.js b/vite.config.js index 5a33944..4b29207 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,7 +1,8 @@ +import { resolve } from "path"; import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' -// https://vitejs.dev/config/ export default defineConfig({ + envDir: resolve(__dirname), plugins: [react()], }) diff --git a/yarn.lock b/yarn.lock index 83d48fa..d354d8f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -374,6 +374,18 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@iconify/react@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@iconify/react/-/react-4.1.1.tgz#da1bf03cdca9427f07cf22cf5b63fa8f02db4722" + integrity sha512-jed14EjvKjee8mc0eoscGxlg7mSQRkwQG3iX3cPBCO7UlOjz0DtlvTqxqEcHUJGh+z1VJ31Yhu5B9PxfO0zbdg== + dependencies: + "@iconify/types" "^2.0.0" + +"@iconify/types@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" + integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== + "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.3" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" @@ -406,6 +418,51 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@mapbox/geojson-rewind@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz#591a5d71a9cd1da1a0bf3420b3bea31b0fc7946a" + integrity sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA== + dependencies: + get-stream "^6.0.1" + minimist "^1.2.6" + +"@mapbox/jsonlint-lines-primitives@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz#ce56e539f83552b58d10d672ea4d6fc9adc7b234" + integrity sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ== + +"@mapbox/mapbox-gl-supported@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-2.0.1.tgz#c15367178d8bfe4765e6b47b542fe821ce259c7b" + integrity sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ== + +"@mapbox/point-geometry@0.1.0", "@mapbox/point-geometry@^0.1.0", "@mapbox/point-geometry@~0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz#8a83f9335c7860effa2eeeca254332aa0aeed8f2" + integrity sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ== + +"@mapbox/tiny-sdf@^2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz#9a1d33e5018093e88f6a4df2343e886056287282" + integrity sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA== + +"@mapbox/unitbezier@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz#d32deb66c7177e9e9dfc3bbd697083e2e657ff01" + integrity sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw== + +"@mapbox/vector-tile@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz#d3a74c90402d06e89ec66de49ec817ff53409666" + integrity sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw== + dependencies: + "@mapbox/point-geometry" "~0.1.0" + +"@mapbox/whoots-js@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz#497c67a1cef50d1a2459ba60f315e448d2ad87fe" + integrity sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -427,6 +484,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@remix-run/router@1.12.0": + version "1.12.0" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.12.0.tgz#e89b64b6fa97a8a5b740a4c38c2904b80f1f229a" + integrity sha512-2hXv036Bux90e1GXTWSMfNzfDDK8LA8JYEWfyHxzvwdp6GyoWEovKc9cotb3KCKmkdwsIBuFGX7ScTWyiHv7Eg== + "@rollup/rollup-android-arm-eabi@4.5.0": version "4.5.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.0.tgz#5984f98288150a2c34928de023bbd122d61ce754" @@ -601,6 +663,14 @@ ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -686,6 +756,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -694,6 +769,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + browserslist@^4.21.9: version "4.22.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" @@ -740,6 +822,21 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +"chokidar@>=3.0.0 <4.0.0": + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -783,6 +880,11 @@ cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" +csscolorparser@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/csscolorparser/-/csscolorparser-1.0.3.tgz#b34f391eea4da8f3e98231e2ccd8df9c041f171b" + integrity sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w== + csstype@^3.0.2: version "3.1.2" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" @@ -832,6 +934,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +earcut@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a" + integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ== + electron-to-chromium@^1.4.535: version "1.4.589" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.589.tgz#3fc83c284ed8f1f58e0cb3c664c8ebcb4d0b42fb" @@ -1121,6 +1228,13 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -1185,6 +1299,11 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +geojson-vt@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/geojson-vt/-/geojson-vt-3.2.1.tgz#f8adb614d2c1d3f6ee7c4265cad4bbf3ad60c8b7" + integrity sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg== + get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" @@ -1195,6 +1314,11 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" +get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -1203,6 +1327,11 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +gl-matrix@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-3.4.3.tgz#fc1191e8320009fd4d20e9339595c6041ddc22c9" + integrity sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA== + glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" @@ -1210,6 +1339,13 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob@^7.1.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -1253,6 +1389,11 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +grid-index@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/grid-index/-/grid-index-1.1.0.tgz#97f8221edec1026c8377b86446a7c71e79522ea7" + integrity sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA== + has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -1299,11 +1440,21 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" +ieee754@^1.1.12: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== +immutable@^4.0.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" + integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== + import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -1362,6 +1513,13 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-boolean-object@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" @@ -1408,7 +1566,7 @@ is-generator-function@^1.0.10: dependencies: has-tostringtag "^1.0.0" -is-glob@^4.0.0, is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -1432,6 +1590,11 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" @@ -1566,6 +1729,11 @@ json5@^2.2.3: object.assign "^4.1.4" object.values "^1.1.6" +kdbush@^4.0.1, kdbush@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/kdbush/-/kdbush-4.0.2.tgz#2f7b7246328b4657dd122b6c7f025fbc2c868e39" + integrity sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA== + keyv@^4.5.3: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" @@ -1607,6 +1775,34 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +mapbox-gl@^2.15.0: + version "2.15.0" + resolved "https://registry.yarnpkg.com/mapbox-gl/-/mapbox-gl-2.15.0.tgz#9439828d0bae1e7b464ae08b30cb2e65a7e2256d" + integrity sha512-fjv+aYrd5TIHiL7wRa+W7KjtUqKWziJMZUkK5hm8TvJ3OLeNPx4NmW/DgfYhd/jHej8wWL+QJBDbdMMAKvNC0A== + dependencies: + "@mapbox/geojson-rewind" "^0.5.2" + "@mapbox/jsonlint-lines-primitives" "^2.0.2" + "@mapbox/mapbox-gl-supported" "^2.0.1" + "@mapbox/point-geometry" "^0.1.0" + "@mapbox/tiny-sdf" "^2.0.6" + "@mapbox/unitbezier" "^0.0.1" + "@mapbox/vector-tile" "^1.3.1" + "@mapbox/whoots-js" "^3.1.0" + csscolorparser "~1.0.3" + earcut "^2.2.4" + geojson-vt "^3.2.1" + gl-matrix "^3.4.3" + grid-index "^1.1.0" + kdbush "^4.0.1" + murmurhash-js "^1.0.0" + pbf "^3.2.1" + potpack "^2.0.0" + quickselect "^2.0.0" + rw "^1.3.3" + supercluster "^8.0.0" + tinyqueue "^2.0.3" + vt-pbf "^3.1.3" + minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -1614,11 +1810,21 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" +minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +murmurhash-js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/murmurhash-js/-/murmurhash-js-1.0.0.tgz#b06278e21fc6c37fa5313732b0412bcb6ae15f51" + integrity sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw== + nanoid@^3.3.6: version "3.3.7" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" @@ -1634,6 +1840,11 @@ node-releases@^2.0.13: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -1754,11 +1965,24 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +pbf@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/pbf/-/pbf-3.2.1.tgz#b4c1b9e72af966cd82c6531691115cc0409ffe2a" + integrity sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ== + dependencies: + ieee754 "^1.1.12" + resolve-protobuf-schema "^2.1.0" + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + postcss@^8.4.31: version "8.4.31" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" @@ -1768,6 +1992,11 @@ postcss@^8.4.31: picocolors "^1.0.0" source-map-js "^1.0.2" +potpack@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/potpack/-/potpack-2.0.0.tgz#61f4dd2dc4b3d5e996e3698c0ec9426d0e169104" + integrity sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -1782,6 +2011,11 @@ prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" +protocol-buffers-schema@^3.3.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz#77bc75a48b2ff142c1ad5b5b90c94cd0fa2efd03" + integrity sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw== + punycode@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" @@ -1792,6 +2026,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quickselect@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018" + integrity sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw== + react-dom@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -1810,6 +2049,21 @@ react-refresh@^0.14.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== +react-router-dom@^6.19.0: + version "6.19.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.19.0.tgz#ee807e36ae7dd954db7a3f770e38b7cc026c66a8" + integrity sha512-N6dWlcgL2w0U5HZUUqU2wlmOrSb3ighJmtQ438SWbhB1yuLTXQ8yyTBMK3BSvVjp7gBtKurT554nCtMOgxCZmQ== + dependencies: + "@remix-run/router" "1.12.0" + react-router "6.19.0" + +react-router@6.19.0: + version "6.19.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.19.0.tgz#6d5062fa33495859daca98d86292ab03b037a9ca" + integrity sha512-0W63PKCZ7+OuQd7Tm+RbkI8kCLmn4GPjDbX61tWljPxWgqTKlEpeQUwPkT1DRjYhF8KSihK0hQpmhU4uxVMcdw== + dependencies: + "@remix-run/router" "1.12.0" + react@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" @@ -1817,6 +2071,13 @@ react@^18.2.0: dependencies: loose-envify "^1.1.0" +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + reflect.getprototypeof@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" @@ -1843,6 +2104,13 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-protobuf-schema@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz#9ca9a9e69cf192bbdaf1006ec1973948aa4a3758" + integrity sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ== + dependencies: + protocol-buffers-schema "^3.3.1" + resolve@^2.0.0-next.4: version "2.0.0-next.5" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" @@ -1890,6 +2158,11 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +rw@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + safe-array-concat@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" @@ -1909,6 +2182,15 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" +sass@^1.69.5: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.5.tgz#23e18d1c757a35f2e52cc81871060b9ad653dfde" + integrity sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + scheduler@^0.23.0: version "0.23.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" @@ -1961,7 +2243,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -source-map-js@^1.0.2: +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== @@ -2020,6 +2302,13 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +supercluster@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/supercluster/-/supercluster-8.0.1.tgz#9946ba123538e9e9ab15de472531f604e7372df5" + integrity sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ== + dependencies: + kdbush "^4.0.2" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -2044,11 +2333,23 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +tinyqueue@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tinyqueue/-/tinyqueue-2.0.3.tgz#64d8492ebf39e7801d7bd34062e29b45b2035f08" + integrity sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA== + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -2136,6 +2437,15 @@ vite@^5.0.0: optionalDependencies: fsevents "~2.3.3" +vt-pbf@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/vt-pbf/-/vt-pbf-3.1.3.tgz#68fd150756465e2edae1cc5c048e063916dcfaac" + integrity sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA== + dependencies: + "@mapbox/point-geometry" "0.1.0" + "@mapbox/vector-tile" "^1.3.1" + pbf "^3.2.1" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"