diff --git a/03_source/mobile/.prettierrc b/03_source/mobile/.prettierrc index 212cd92..ecf89ac 100644 --- a/03_source/mobile/.prettierrc +++ b/03_source/mobile/.prettierrc @@ -3,5 +3,28 @@ "semi": true, "singleQuote": true, "trailingComma": "es5", - "printWidth": 100 -} \ No newline at end of file + "printWidth": 100, + "overrides": [ + { + "files": "src/App.tsx", + "options": { + "printWidth": 160 + } + }, + { + "files": "src/routes/*", + "options": { + "printWidth": 160 + } + }, + { + "files": [ + "*.html", + "legacy/**/*.js" + ], + "options": { + "tabWidth": 4 + } + } + ] +} diff --git a/03_source/mobile/package.json b/03_source/mobile/package.json index 62c3f24..fd2dd7b 100644 --- a/03_source/mobile/package.json +++ b/03_source/mobile/package.json @@ -18,6 +18,7 @@ "@hookform/resolvers": "^4.1.3", "@ionic/react": "^8.5.0", "@ionic/react-router": "^8.5.0", + "@ionic/storage": "^4.0.0", "@mdx-js/react": "^3.1.0", "@react-hook/window-size": "^3.1.1", "@types/leaflet": "^1.9.17", @@ -29,10 +30,12 @@ "pigeon-maps": "^0.22.1", "pullstate": "^1", "react": "19.0.0", + "react-canvas-draw": "^1.2.1", "react-color": "^2.19.3", "react-confetti": "^6.4.0", "react-dom": "19.0.0", "react-hook-form": "^7.55.0", + "react-iconly": "^2.2.10", "react-leaflet": "^5.0.0", "react-markdown": "^10.1.0", "react-qr-code": "^2.0.15", diff --git a/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab1.css b/03_source/mobile/public/assets/DemoProfileExample/.gitkeep similarity index 100% rename from 03_source/mobile/src/pages/DemoReactQrCode/pages/Tab1.css rename to 03_source/mobile/public/assets/DemoProfileExample/.gitkeep diff --git a/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab2.css b/03_source/mobile/public/assets/DemoReactAddToCart/.gitkeep similarity index 100% rename from 03_source/mobile/src/pages/DemoReactQrCode/pages/Tab2.css rename to 03_source/mobile/public/assets/DemoReactAddToCart/.gitkeep diff --git a/03_source/mobile/public/assets/DemoReactAddToCart/camera.jpeg b/03_source/mobile/public/assets/DemoReactAddToCart/camera.jpeg new file mode 100644 index 0000000..d212e39 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactAddToCart/camera.jpeg differ diff --git a/03_source/mobile/public/assets/DemoReactAddToCart/icon/favicon.png b/03_source/mobile/public/assets/DemoReactAddToCart/icon/favicon.png new file mode 100644 index 0000000..51888a7 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactAddToCart/icon/favicon.png differ diff --git a/03_source/mobile/public/assets/DemoReactAddToCart/icon/icon.png b/03_source/mobile/public/assets/DemoReactAddToCart/icon/icon.png new file mode 100644 index 0000000..a7f6374 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactAddToCart/icon/icon.png differ diff --git a/03_source/mobile/public/assets/DemoReactAddToCart/macbook.jpeg b/03_source/mobile/public/assets/DemoReactAddToCart/macbook.jpeg new file mode 100644 index 0000000..19930e3 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactAddToCart/macbook.jpeg differ diff --git a/03_source/mobile/public/assets/DemoReactAddToCart/shapes.svg b/03_source/mobile/public/assets/DemoReactAddToCart/shapes.svg new file mode 100644 index 0000000..d370b4d --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactAddToCart/shapes.svg @@ -0,0 +1 @@ + diff --git a/03_source/mobile/public/assets/DemoReactAddToCart/tv.jpeg b/03_source/mobile/public/assets/DemoReactAddToCart/tv.jpeg new file mode 100644 index 0000000..5d1f0d0 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactAddToCart/tv.jpeg differ diff --git a/03_source/mobile/public/assets/DemoReactLogin/icon/favicon.png b/03_source/mobile/public/assets/DemoReactLogin/icon/favicon.png new file mode 100644 index 0000000..51888a7 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactLogin/icon/favicon.png differ diff --git a/03_source/mobile/public/assets/DemoReactLogin/icon/icon.png b/03_source/mobile/public/assets/DemoReactLogin/icon/icon.png new file mode 100644 index 0000000..a7f6374 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactLogin/icon/icon.png differ diff --git a/03_source/mobile/public/assets/DemoReactLogin/login2.jpeg b/03_source/mobile/public/assets/DemoReactLogin/login2.jpeg new file mode 100644 index 0000000..366dcf8 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactLogin/login2.jpeg differ diff --git a/03_source/mobile/public/assets/DemoReactLogin/shapes.svg b/03_source/mobile/public/assets/DemoReactLogin/shapes.svg new file mode 100644 index 0000000..d370b4d --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactLogin/shapes.svg @@ -0,0 +1 @@ + diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/alan.jpg b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/alan.jpg new file mode 100644 index 0000000..98093f9 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/alan.jpg differ diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/icon/favicon.png b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/icon/favicon.png new file mode 100644 index 0000000..51888a7 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/icon/favicon.png differ diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/icon/icon.png b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/icon/icon.png new file mode 100644 index 0000000..a7f6374 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/icon/icon.png differ diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/shapes.svg b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/shapes.svg new file mode 100644 index 0000000..d370b4d --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/shapes.svg @@ -0,0 +1 @@ + diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/blue.json b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/blue.json new file mode 100644 index 0000000..ec69043 --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/blue.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "blue", + "tab_bar_background_color": "blue", + "toolbar_color": "", + "tab_bar_color": "", + "tab_bar_activated_color": "", + + "main_color": "", + "light_color": "", + + "main_color_tint": "", + "main_color_shade": "", + + "light_color_tint": "", + "light_color_shade": "" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/coffeebrown.json b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/coffeebrown.json new file mode 100644 index 0000000..8d15f25 --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/coffeebrown.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "#5f361e", + "tab_bar_background_color": "#5f361e", + "toolbar_color": "#d1bfb5", + "tab_bar_color": "#886551", + "tab_bar_activated_color": "", + + "main_color": "#5f361e", + "light_color": "#886551", + + "main_color_tint": "#855a41", + "main_color_shade": "#57331e", + + "light_color_tint": "#9c7d6b", + "light_color_shade": "#61412f" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/coffeebrown.png b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/coffeebrown.png new file mode 100644 index 0000000..7e4df1d Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/coffeebrown.png differ diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/earthytones.png b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/earthytones.png new file mode 100644 index 0000000..69de1b0 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/earthytones.png differ diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/fireyred.png b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/fireyred.png new file mode 100644 index 0000000..ce87056 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/fireyred.png differ diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/leafygreen.png b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/leafygreen.png new file mode 100644 index 0000000..206247c Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/leafygreen.png differ diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/moodyblue.png b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/moodyblue.png new file mode 100644 index 0000000..6b3aaa8 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/moodyblue.png differ diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/peelyorange.png b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/peelyorange.png new file mode 100644 index 0000000..a2f5685 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/covers/peelyorange.png differ diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/earthytones.json b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/earthytones.json new file mode 100644 index 0000000..262c9c1 --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/earthytones.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "#c4b0c4", + "tab_bar_background_color": "#c4b0c4", + "toolbar_color": "#5c4153", + "tab_bar_color": "#917788", + "tab_bar_activated_color": "#5c4153", + + "main_color": "#5c4153", + "light_color": "#917788", + + "main_color_tint": "#6b5463", + "main_color_shade": "#4d3545", + + "light_color_tint": "#a893a1", + "light_color_shade": "#74606d" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/fireyred.json b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/fireyred.json new file mode 100644 index 0000000..5d5348f --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/fireyred.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "#c93608", + "tab_bar_background_color": "#c93608", + "toolbar_color": "", + "tab_bar_color": "#852506", + "tab_bar_activated_color": "", + + "main_color": "#c93608", + "light_color": "#c95834", + + "main_color_tint": "#aa614a", + "main_color_shade": "#692611", + + "light_color_tint": "#d67151", + "light_color_shade": "#a85439" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/green.json b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/green.json new file mode 100644 index 0000000..cb41fcf --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/green.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "green", + "tab_bar_background_color": "green", + "toolbar_color": "", + "tab_bar_color": "", + "tab_bar_activated_color": "", + + "main_color": "", + "light_color": "", + + "main_color_tint": "", + "main_color_shade": "", + + "light_color_tint": "", + "light_color_shade": "" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/leafygreen.json b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/leafygreen.json new file mode 100644 index 0000000..f3e86ce --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/leafygreen.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "#336b36", + "tab_bar_background_color": "#336b36", + "toolbar_color": "white", + "tab_bar_color": "#1c421d", + "tab_bar_activated_color": "white", + + "main_color": "#336b36", + "light_color": "#517953", + + "main_color_tint": "#497a4b", + "main_color_shade": "#305832", + + "light_color_tint": "#738574", + "light_color_shade": "#485849" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/moodyblue.json b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/moodyblue.json new file mode 100644 index 0000000..db1ba2f --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/moodyblue.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "#7baec7", + "tab_bar_background_color": "#7baec7", + "toolbar_color": "", + "tab_bar_color": "#49758b", + "tab_bar_activated_color": "", + + "main_color": "#7baec7", + "light_color": "#90bbcf", + + "main_color_tint": "#96c0d5", + "main_color_shade": "#6b93a7", + + "light_color_tint": "#c3e2f1", + "light_color_shade": "#89aec0" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/peelyorange.json b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/peelyorange.json new file mode 100644 index 0000000..f7f04f2 --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/peelyorange.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "#fd8f38", + "tab_bar_background_color": "#fd8f38", + "toolbar_color": "#815208", + "tab_bar_color": "#ffb67c", + "tab_bar_activated_color": "#815208", + + "main_color": "#e49200", + "light_color": "#ffb67c", + + "main_color_tint": "#e6ae4b", + "main_color_shade": "#b4780c", + + "light_color_tint": "#fad4b6", + "light_color_shade": "#ff9c4e" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/red.json b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/red.json new file mode 100644 index 0000000..be9c737 --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactProfileDashboardUi/themes/red.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "red", + "tab_bar_background_color": "red", + "toolbar_color": "", + "tab_bar_color": "", + "tab_bar_activated_color": "", + + "main_color": "", + "light_color": "", + + "main_color_tint": "", + "main_color_shade": "", + + "light_color_tint": "", + "light_color_shade": "" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/blue.json b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/blue.json new file mode 100644 index 0000000..ec69043 --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/blue.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "blue", + "tab_bar_background_color": "blue", + "toolbar_color": "", + "tab_bar_color": "", + "tab_bar_activated_color": "", + + "main_color": "", + "light_color": "", + + "main_color_tint": "", + "main_color_shade": "", + + "light_color_tint": "", + "light_color_shade": "" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/coffeebrown.json b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/coffeebrown.json new file mode 100644 index 0000000..8d15f25 --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/coffeebrown.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "#5f361e", + "tab_bar_background_color": "#5f361e", + "toolbar_color": "#d1bfb5", + "tab_bar_color": "#886551", + "tab_bar_activated_color": "", + + "main_color": "#5f361e", + "light_color": "#886551", + + "main_color_tint": "#855a41", + "main_color_shade": "#57331e", + + "light_color_tint": "#9c7d6b", + "light_color_shade": "#61412f" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/coffeebrown.png b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/coffeebrown.png new file mode 100644 index 0000000..7e4df1d Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/coffeebrown.png differ diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/earthytones.png b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/earthytones.png new file mode 100644 index 0000000..69de1b0 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/earthytones.png differ diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/fireyred.png b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/fireyred.png new file mode 100644 index 0000000..ce87056 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/fireyred.png differ diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/leafygreen.png b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/leafygreen.png new file mode 100644 index 0000000..206247c Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/leafygreen.png differ diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/moodyblue.png b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/moodyblue.png new file mode 100644 index 0000000..6b3aaa8 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/moodyblue.png differ diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/peelyorange.png b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/peelyorange.png new file mode 100644 index 0000000..a2f5685 Binary files /dev/null and b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/covers/peelyorange.png differ diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/earthytones.json b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/earthytones.json new file mode 100644 index 0000000..262c9c1 --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/earthytones.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "#c4b0c4", + "tab_bar_background_color": "#c4b0c4", + "toolbar_color": "#5c4153", + "tab_bar_color": "#917788", + "tab_bar_activated_color": "#5c4153", + + "main_color": "#5c4153", + "light_color": "#917788", + + "main_color_tint": "#6b5463", + "main_color_shade": "#4d3545", + + "light_color_tint": "#a893a1", + "light_color_shade": "#74606d" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/fireyred.json b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/fireyred.json new file mode 100644 index 0000000..5d5348f --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/fireyred.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "#c93608", + "tab_bar_background_color": "#c93608", + "toolbar_color": "", + "tab_bar_color": "#852506", + "tab_bar_activated_color": "", + + "main_color": "#c93608", + "light_color": "#c95834", + + "main_color_tint": "#aa614a", + "main_color_shade": "#692611", + + "light_color_tint": "#d67151", + "light_color_shade": "#a85439" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/green.json b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/green.json new file mode 100644 index 0000000..cb41fcf --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/green.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "green", + "tab_bar_background_color": "green", + "toolbar_color": "", + "tab_bar_color": "", + "tab_bar_activated_color": "", + + "main_color": "", + "light_color": "", + + "main_color_tint": "", + "main_color_shade": "", + + "light_color_tint": "", + "light_color_shade": "" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/leafygreen.json b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/leafygreen.json new file mode 100644 index 0000000..f3e86ce --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/leafygreen.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "#336b36", + "tab_bar_background_color": "#336b36", + "toolbar_color": "white", + "tab_bar_color": "#1c421d", + "tab_bar_activated_color": "white", + + "main_color": "#336b36", + "light_color": "#517953", + + "main_color_tint": "#497a4b", + "main_color_shade": "#305832", + + "light_color_tint": "#738574", + "light_color_shade": "#485849" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/moodyblue.json b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/moodyblue.json new file mode 100644 index 0000000..db1ba2f --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/moodyblue.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "#7baec7", + "tab_bar_background_color": "#7baec7", + "toolbar_color": "", + "tab_bar_color": "#49758b", + "tab_bar_activated_color": "", + + "main_color": "#7baec7", + "light_color": "#90bbcf", + + "main_color_tint": "#96c0d5", + "main_color_shade": "#6b93a7", + + "light_color_tint": "#c3e2f1", + "light_color_shade": "#89aec0" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/peelyorange.json b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/peelyorange.json new file mode 100644 index 0000000..f7f04f2 --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/peelyorange.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "#fd8f38", + "tab_bar_background_color": "#fd8f38", + "toolbar_color": "#815208", + "tab_bar_color": "#ffb67c", + "tab_bar_activated_color": "#815208", + + "main_color": "#e49200", + "light_color": "#ffb67c", + + "main_color_tint": "#e6ae4b", + "main_color_shade": "#b4780c", + + "light_color_tint": "#fad4b6", + "light_color_shade": "#ff9c4e" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/red.json b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/red.json new file mode 100644 index 0000000..be9c737 --- /dev/null +++ b/03_source/mobile/public/assets/DemoReactThemeSwitcher/themes/red.json @@ -0,0 +1,16 @@ +{ + "toolbar_background_color": "red", + "tab_bar_background_color": "red", + "toolbar_color": "", + "tab_bar_color": "", + "tab_bar_activated_color": "", + + "main_color": "", + "light_color": "", + + "main_color_tint": "", + "main_color_shade": "", + + "light_color_tint": "", + "light_color_shade": "" +} \ No newline at end of file diff --git a/03_source/mobile/public/assets/DemoSkeletonText/icon/favicon.png b/03_source/mobile/public/assets/DemoSkeletonText/icon/favicon.png new file mode 100644 index 0000000..51888a7 Binary files /dev/null and b/03_source/mobile/public/assets/DemoSkeletonText/icon/favicon.png differ diff --git a/03_source/mobile/public/assets/DemoSkeletonText/icon/icon.png b/03_source/mobile/public/assets/DemoSkeletonText/icon/icon.png new file mode 100644 index 0000000..a7f6374 Binary files /dev/null and b/03_source/mobile/public/assets/DemoSkeletonText/icon/icon.png differ diff --git a/03_source/mobile/public/assets/DemoSkeletonText/scenery/1.png b/03_source/mobile/public/assets/DemoSkeletonText/scenery/1.png new file mode 100644 index 0000000..8a5fa94 Binary files /dev/null and b/03_source/mobile/public/assets/DemoSkeletonText/scenery/1.png differ diff --git a/03_source/mobile/public/assets/DemoSkeletonText/scenery/10.png b/03_source/mobile/public/assets/DemoSkeletonText/scenery/10.png new file mode 100644 index 0000000..b68cff1 Binary files /dev/null and b/03_source/mobile/public/assets/DemoSkeletonText/scenery/10.png differ diff --git a/03_source/mobile/public/assets/DemoSkeletonText/scenery/2.png b/03_source/mobile/public/assets/DemoSkeletonText/scenery/2.png new file mode 100644 index 0000000..79a2bc2 Binary files /dev/null and b/03_source/mobile/public/assets/DemoSkeletonText/scenery/2.png differ diff --git a/03_source/mobile/public/assets/DemoSkeletonText/scenery/3.png b/03_source/mobile/public/assets/DemoSkeletonText/scenery/3.png new file mode 100644 index 0000000..52a6d66 Binary files /dev/null and b/03_source/mobile/public/assets/DemoSkeletonText/scenery/3.png differ diff --git a/03_source/mobile/public/assets/DemoSkeletonText/scenery/4.png b/03_source/mobile/public/assets/DemoSkeletonText/scenery/4.png new file mode 100644 index 0000000..f3cbf68 Binary files /dev/null and b/03_source/mobile/public/assets/DemoSkeletonText/scenery/4.png differ diff --git a/03_source/mobile/public/assets/DemoSkeletonText/scenery/5.png b/03_source/mobile/public/assets/DemoSkeletonText/scenery/5.png new file mode 100644 index 0000000..7957e0b Binary files /dev/null and b/03_source/mobile/public/assets/DemoSkeletonText/scenery/5.png differ diff --git a/03_source/mobile/public/assets/DemoSkeletonText/scenery/6.png b/03_source/mobile/public/assets/DemoSkeletonText/scenery/6.png new file mode 100644 index 0000000..938c186 Binary files /dev/null and b/03_source/mobile/public/assets/DemoSkeletonText/scenery/6.png differ diff --git a/03_source/mobile/public/assets/DemoSkeletonText/scenery/7.png b/03_source/mobile/public/assets/DemoSkeletonText/scenery/7.png new file mode 100644 index 0000000..777438b Binary files /dev/null and b/03_source/mobile/public/assets/DemoSkeletonText/scenery/7.png differ diff --git a/03_source/mobile/public/assets/DemoSkeletonText/scenery/8.png b/03_source/mobile/public/assets/DemoSkeletonText/scenery/8.png new file mode 100644 index 0000000..e74c488 Binary files /dev/null and b/03_source/mobile/public/assets/DemoSkeletonText/scenery/8.png differ diff --git a/03_source/mobile/public/assets/DemoSkeletonText/scenery/9.png b/03_source/mobile/public/assets/DemoSkeletonText/scenery/9.png new file mode 100644 index 0000000..88bdf32 Binary files /dev/null and b/03_source/mobile/public/assets/DemoSkeletonText/scenery/9.png differ diff --git a/03_source/mobile/public/assets/DemoSkeletonText/shapes.svg b/03_source/mobile/public/assets/DemoSkeletonText/shapes.svg new file mode 100644 index 0000000..d370b4d --- /dev/null +++ b/03_source/mobile/public/assets/DemoSkeletonText/shapes.svg @@ -0,0 +1 @@ + diff --git a/03_source/mobile/src/App.tsx b/03_source/mobile/src/App.tsx index 5d3042b..3a8231a 100644 --- a/03_source/mobile/src/App.tsx +++ b/03_source/mobile/src/App.tsx @@ -54,49 +54,34 @@ import Tutorial from './pages/Tutorial'; import HomeOrTutorial from './components/HomeOrTutorial'; import { Schedule } from './models/Schedule'; import RedirectToLogin from './components/RedirectToLogin'; -import EventDetail from './pages/EventDetail'; -import EventList from './pages/EventList'; -import MemberProfile from './pages/MemberProfile'; -import Settings from './pages/Settings'; -import NotImplemented from './pages/NotImplemented'; -import ChangeLanguage from './pages/ChangeLanguage'; -import ServiceAgreement from './pages/ServiceAgreement'; -import paths from './paths'; -import PrivacyAgreement from './pages/PrivacyAgreement'; import AppRoute from './AppRoute'; // // TODO: resume DemoReactShop // import DemoReactShop from './pages/DemoReactShop'; -import DemoWeatherApp from './pages/DemoWeatherApp'; -import DemoClubHouse from './pages/DemoClubHouse'; -import DemoScoreBoard from './pages/DemoScoreBoard'; -import DemoQuoteApp from './pages/DemoQuoteApp'; -import DemoQrScanner from './pages/DemoQrScanner'; + +// TODO: remove obsoleted DemoWeatherApp +// import DemoWeatherApp from './pages/DemoWeatherApp'; + // DemoShopAppUi -import DemoShopAppUi from './pages/DemoShopAppUi'; // DemoDictionaryApp -import DemoDictionaryApp from './pages/DemoDictionaryApp'; // demo-recipe-app -import DemoRecipeApp from './pages/DemoRecipeApp'; // DemoSlidingProfile -import DemoSlidingProfile from './pages/DemoSlidingProfile'; // DemoQuizApp -import DemoQuizApp from './pages/DemoQuizApp'; -import DemoBlogPostUi from './pages/DemoBlogPostUi'; -import DemoReactTravelApp from './pages/DemoReactTravelApp'; -import DemoPinterestFloatingTabBar from './pages/DemoPinterestFloatingTabBar'; -import DemoRestaurantFinder from './pages/DemoRestaurantFinder'; -import DemoReactOverlayHooks from './pages/DemoReactOverlayHooks'; -import DemoReactSwitchTabs from './pages/DemoReactSwitchTabs'; -import DemoReactPollApp from './pages/DemoReactPollApp'; -import DemoReactWhatsAppClone from './pages/DemoReactWhatsAppClone'; -import Demo2FaExample from './pages/Demo2FaExample'; -import DemoAccordionTutorial from './pages/DemoAccordionTutorial'; -import DemoBankingUi from './pages/DemoBankingUi'; -import DemoCapacitorGoogleMapsTutorial from './pages/DemoCapacitorGoogleMapsTutorial'; -import DemoColorTutorial from './pages/DemoColorTutorial'; + +// +// import DemoReactMarvelApp from './pages/DemoReactMarvelApp'; +// import DemoReactOnboardingUI from './pages/DemoReactOnboardingUI'; +// import DemoReactTabsMenusCustom from './pages/DemoReactTabsMenusCustom'; +// import DemoReactThemeSwitcher from './pages/DemoReactThemeSwitcher'; +// import DemoSkeletonText from './pages/DemoSkeletonText'; +// import DemoStickyBottomSheetExample from './pages/DemoStickyBottomSheetExample'; +// import DemoStorageExample from './pages/DemoStorageExample'; +// import DemoSwiperjsTutorial from './pages/DemoSwiperjsTutorial'; +// TODO: SCSS of this directory will alter the main page +import AppDemoRoute from './routes/DemoRoute'; +import Settings from './pages/Settings'; setupIonicReact(); @@ -122,14 +107,7 @@ interface DispatchProps { interface IonicAppProps extends StateProps, DispatchProps {} -const IonicApp: React.FC = ({ - darkMode, - schedule, - setIsLoggedIn, - setUsername, - loadConfData, - loadUserData, -}) => { +const IonicApp: React.FC = ({ darkMode, schedule, setIsLoggedIn, setUsername, loadConfData, loadUserData }) => { useEffect(() => { loadUserData(); loadConfData(); @@ -153,98 +131,28 @@ const IonicApp: React.FC = ({ } /> - } /> - {/* */} - {/* */} - {/* */} - {/* */} - {/* */} - {/* */} - {/* */} - {/* */} + + + {/* */} - } /> - {/* */} - {/* */} - {/* */} - {/* */} - {/* */} - {/* */} - - } /> - } - /> - - } /> - - {/* - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - */} - - } /> - - {/* have problemx` */} - {/* } /> */} - - } /> - - } /> - } /> - } /> - } - /> - } /> - } /> - } /> - } /> - } /> + {/* TODO: need update to @capacitor/barcode-scanner */} + {/* } /> */} {/* TODO: resume DemoReactShop */} {/* } /> */} - } /> - } /> - } /> - } /> - } /> - } /> - } /> + {/* have problemx` */} + {/* } /> */} + + {/* TODO: scss will alter the main page, */} + {/* } /> */} + + {/* TODO: update ionslide */} + {/* } /> */} + + {/* TODO: place a whatsapp clone */} + {/* } /> */} @@ -253,6 +161,7 @@ const IonicApp: React.FC = ({ + { {/* */} {/* */} - - - - + + + + ); }; diff --git a/03_source/mobile/src/PATHS.ts b/03_source/mobile/src/PATHS.ts new file mode 100644 index 0000000..032b23e --- /dev/null +++ b/03_source/mobile/src/PATHS.ts @@ -0,0 +1,81 @@ +const PATHS = { + NOT_IMPLEMENTED: '/not_implemented', + SETTINGS: '/settings', + CHANGE_LANGUAGE: '/change_language', + SERVICE_AGREEMENT: '/service_agreement', + PRIVACY_AGREEMENT: '/privacy_agreement', + SIGN_IN: '/mylogin', + // + ORDER_DETAIL: '/order_detail/:id', + getOrderDetail: (id: string) => `/order_detail/${id}`, + // + TAB_NOT_IMPLEMENTED: '/tabs/not_implemented', + EVENT_LIST: `/tabs/events`, + MESSAGE_LIST: `/tabs/messages`, + NEARBY_LIST: '/tabs/nearby', + ORDERS_LIST: '/tabs/orders', + FAVOURITES_LIST: `/tabs/favourites`, + PROFILE: '/tabs/my_profile', + + // + // DEMO_WEATHER_APP: '/demo-weather-app', + DEMO_WEATHER_APP_UI: '/demo-weather-app-ui', + // + + DEMO_2FA_EXAMPLE: '/demo-2fa-example', + DEMO_ACCORDION_TUTORIAL: '/demo-accordion-tutorial', + DEMO_BANKING_UI: '/demo-banking-ui', + DEMO_BLOG_POST_UI: '/demo-blog-post-ui', + DEMO_CAPACITOR_GOOGLE_MAPS_TUTORIAL: '/demo-capacitor-google-maps-tutorial', + DEMO_CLUB_HOUSE: '/demo-club-house', + DEMO_COLOR_TUTORIAL: '/demo-color-tutorial', + DEMO_DICTIONARY_APP: '/demo-dictionary-app', + DEMO_ECOMMERCE_EXAMPLE: '/demo-ecommerce-example', + DEMO_FACEBOOK_CLONE: '/demo-facebook-clone', + DEMO_FAST_FOOD_APP: '/demo-fast-food-app', + DEMO_FLOATING_TABS: '/demo-floating-tabs', + DEMO_INSTAGRAM_CLONE: '/demo-instagram-clone', + DEMO_KANBAN_BOARD: '/demo-kanban-board', + DEMO_ORDERING_APP: '/demo-ordering-app', + DEMO_PAGE: '/tabs/demo-list', + DEMO_PINTEREST_FLOATING_TAB_BAR: '/demo-pinterest-floating-tab-bar', + DEMO_PROFILE_EXAMPLE: '/demo-profile-example', + DEMO_PULLSTATE_TUTORIAL: '/demo-pullstate-tutorial', + DEMO_QUIZ_APP: '/demo-quiz-app', + DEMO_QUOTE_APP: '/demo-quote-app', + DEMO_REACT_ADD_TO_CART: '/demo-react-add-to-cart', + DEMO_REACT_CALCULATOR: '/demo-react-calculator', + DEMO_REACT_DRAWING_CANVAS: '/demo-react-drawing-canvas', + DEMO_REACT_HOOK_FORM_EXAMPLE: '/demo-react-hook-form-example', + DEMO_REACT_ITEM_LIST: '/demo-react-item-list', + DEMO_REACT_LIFECYCLES: '/demo-react-lifecycles', + DEMO_REACT_LOGIN: '/demo-react-login', + DEMO_REACT_MARVEL_APP: '/demo-react-marvel-app', + DEMO_REACT_MOVIE_APP_WITH_ALGOLIA: '/demo-react-movie-app-with-algolia', + DEMO_REACT_NOTES: '/demo-react-notes', + DEMO_REACT_ONBOARDING_UI: '/demo-react-onboarding-ui', + DEMO_REACT_OVERLAY_HOOKS: '/demo-react-overlay-hooks', + DEMO_REACT_POLL_APP: '/demo-react-poll-app', + DEMO_REACT_PROFILE_DASHBOARD_UI: '/demo-react-profile-dashboard-ui', + + DEMO_REACT_QR_CODE: '/demo-react-qr-code', + DEMO_QR_SCANNER: '/demo-qr-scanner', + + DEMO_REACT_QUOTES: '/demo-react-quotes', + DEMO_REACT_SHOP_UI: '/demo-react-shop-ui', + DEMO_REACT_SHOP: '/demo-react-shop', + DEMO_REACT_SWITCH_TABS: '/demo-react-switch-tabs', + DEMO_REACT_TABS_MENUS_CUSTOM: '/demo-react-tabs-menus-custom', + DEMO_REACT_THEME_SWITCHER: '/demo-react-theme-switcher', + DEMO_REACT_TRAVEL_APP: '/demo-react-travel-app', + DEMO_REACT_WHATSAPP_CLONE: '/demo-react-whatsapp-clone', + DEMO_RECIPE_APP: '/demo-recipe-app', + DEMO_RESTAURANT_FINDER: '/demo-restaurant-finder', + DEMO_SCORE_BOARD: '/demo-score-board', + DEMO_SHOP_APP_UI: '/demo-shop-app-ui', + DEMO_SKELETON_TEXT: '/demo-skeleton-text', + DEMO_SLIDING_PROFILE: '/demo-sliding-profile', + DEMO_STICKY_BOTTOM_SHEET_EXAMPLE: '/demo-sticky-bottom-sheet-example', + DEMO_STORAGE_EXAMPLE: '/demo-storage-example', +}; +export default PATHS; diff --git a/03_source/mobile/src/TabAppRoute.tsx b/03_source/mobile/src/TabAppRoute.tsx index 46fc50a..7f64525 100644 --- a/03_source/mobile/src/TabAppRoute.tsx +++ b/03_source/mobile/src/TabAppRoute.tsx @@ -2,7 +2,7 @@ import { Route } from 'react-router'; import NotImplemented from './pages/NotImplemented'; import EventDetail from './pages/EventDetail'; import MemberProfile from './pages/MemberProfile'; -import paths from './paths'; +import PATHS from './PATHS'; import MembersNearByList from './pages/MembersNearByList'; import OrderList from './pages/OrderList'; import MessageList from './pages/MessageList'; @@ -17,25 +17,25 @@ import DemoList from './pages/DemoList'; const TabAppRoute: React.FC = () => { return ( <> - + {/* */} - } exact={true} /> + } exact={true} /> {/* */} - } exact={true} /> + } exact={true} /> {/* */} - } exact={true} /> + } exact={true} /> {/* */} - } exact={true} /> + } exact={true} /> {/* */} - } exact={true} /> + } exact={true} /> {/* */} - } exact={true} /> + } exact={true} /> {/* */} } exact={true} /> diff --git a/03_source/mobile/src/context/jwt/utils.tsx b/03_source/mobile/src/context/jwt/utils.tsx index e41fd22..6bdb963 100644 --- a/03_source/mobile/src/context/jwt/utils.tsx +++ b/03_source/mobile/src/context/jwt/utils.tsx @@ -3,7 +3,7 @@ import axios from '../../lib/axios'; import { JWT_STORAGE_KEY } from './constant.js'; -import paths from '../../paths.js'; +import PATHS from '../../PATHS.js'; // ---------------------------------------------------------------------- @@ -60,7 +60,7 @@ export function tokenExpired(exp: number) { try { alert('Token expired!'); sessionStorage.removeItem(JWT_STORAGE_KEY); - window.location.href = paths.SIGN_IN; + window.location.href = PATHS.SIGN_IN; } catch (error) { console.error('Error during token expiration:', error); throw error; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/AppPages/Tab1.jsx b/03_source/mobile/src/pages/DemoReactQrCode/AppPages/Tab1.jsx deleted file mode 100644 index a24d76a..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/AppPages/Tab1.jsx +++ /dev/null @@ -1,96 +0,0 @@ -import { - IonButton, - IonButtons, - IonCol, - IonContent, - IonHeader, - IonIcon, - IonPage, - IonRow, - IonTitle, - IonToolbar, - useIonRouter, -} from '@ionic/react'; - -import { Geolocation } from '@capacitor/geolocation'; -import { useEffect, useState } from 'react'; -import { SkeletonDashboard } from '../TestComponents/SkeletonDashboard'; -import { chevronBackOutline, refreshOutline } from 'ionicons/icons'; -import { CurrentWeather } from '../TestComponents/CurrentWeather'; - -function Tab1() { - const router = useIonRouter(); - - const [currentWeather, setCurrentWeather] = useState(false); - - useEffect(() => { - getCurrentPosition(); - }, []); - - const getCurrentPosition = async () => { - setCurrentWeather(false); - const coordinates = await Geolocation.getCurrentPosition(); - getAddress(coordinates.coords); - }; - - const getAddress = async (coords) => { - const query = `${coords.latitude},${coords.longitude}`; - const response = await fetch( - `https://api.weatherapi.com/v1/current.json?key=f93eb660b2424258bf5155016210712&q=${query}` - ); - - const data = await response.json(); - console.log(data); - setCurrentWeather(data); - }; - - // const router = useIonRouter(); - function handleBackClick() { - router.goBack(); - } - - return ( - - - - My Weather - - - getCurrentPosition()}> - - - - - - handleBackClick()}> - - - - - - - - - Dashboard - - - - - -

Here's your location based weather

-
-
- -
- {currentWeather ? ( - - ) : ( - - )} -
-
-
- ); -} - -export default Tab1; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/AppPages/Tab2.jsx b/03_source/mobile/src/pages/DemoReactQrCode/AppPages/Tab2.jsx deleted file mode 100644 index c258179..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/AppPages/Tab2.jsx +++ /dev/null @@ -1,81 +0,0 @@ -import { - IonButton, - IonCol, - IonContent, - IonHeader, - IonPage, - IonRow, - IonSearchbar, - IonTitle, - IonToolbar, -} from '@ionic/react'; -import { useState } from 'react'; -import { CurrentWeather } from '../TestComponents/CurrentWeather'; - -function Tab2() { - const [search, setSearch] = useState(''); - const [currentWeather, setCurrentWeather] = useState(false); - - const performSearch = async () => { - getAddress(search); - }; - - const getAddress = async (city) => { - const response = await fetch( - `https://api.weatherapi.com/v1/current.json?key=f93eb660b2424258bf5155016210712&q=${city}&aqi=no` - ); - const data = await response.json(); - - if (data && data.current && data.location) { - setCurrentWeather(data); - } - }; - - return ( - - - - Search - - - - - - Search - - - - - - setSearch(e.target.value)} - /> - - - - - Search - - - - -
- {currentWeather ? ( - - ) : ( -

Your search result will appear here

- )} -
-
-
- ); -} - -export default Tab2; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/TestComponents/CurrentWeather/WeatherProperty.tsx b/03_source/mobile/src/pages/DemoReactQrCode/TestComponents/CurrentWeather/WeatherProperty.tsx deleted file mode 100644 index 52949af..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/TestComponents/CurrentWeather/WeatherProperty.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import { IonCardSubtitle, IonCol, IonIcon, IonNote, IonRow } from '@ionic/react'; -import { pulseOutline, sunnyOutline, thermometerOutline } from 'ionicons/icons'; -import { useEffect, useState } from 'react'; - -export const WeatherProperty = ({ type, currentWeather }: { type: any; currentWeather: any }) => { - const [property, setProperty] = useState(false); - - const properties = { - wind: { - isIcon: false, - icon: '/assets/WeatherDemo/wind.png', - alt: 'wind', - label: 'Wind', - value: `${currentWeather.current.wind_mph}mph`, - }, - feelsLike: { - isIcon: true, - icon: thermometerOutline, - alt: 'feels like', - label: 'Feels like', - value: `${currentWeather.current.feelslike_c}°C`, - }, - indexUV: { - isIcon: true, - icon: sunnyOutline, - alt: 'index uv', - label: 'Index UV', - value: currentWeather.current.uv, - }, - pressure: { - isIcon: true, - icon: pulseOutline, - alt: 'pressure', - label: 'Pressure', - value: `${currentWeather.current.pressure_mb} mbar`, - }, - }; - - useEffect(() => { - setProperty(properties[type]); - }, [type]); - - return ( - - - - {!property.isIcon && ( - {property.alt} - )} - {property.isIcon && ( - - )} - - - - {property.label} - {property.value} - - - - ); -}; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/TestComponents/CurrentWeather/index.tsx b/03_source/mobile/src/pages/DemoReactQrCode/TestComponents/CurrentWeather/index.tsx deleted file mode 100644 index ceb4332..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/TestComponents/CurrentWeather/index.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { IonCard, IonCardContent, IonGrid, IonRow, IonText, IonCardTitle } from '@ionic/react'; -import { WeatherProperty } from './WeatherProperty'; - -export const CurrentWeather = ({ currentWeather }: { currentWeather: any }) => ( - - - - -

- {currentWeather.location.region},{' '} - {currentWeather.location.country} -

-
- -
- condition - - -

{currentWeather.current.condition.text}

-
- - -

{new Date(currentWeather.location.localtime).toDateString()}

-
-
- - - {currentWeather.current.temp_c}℃ - - - - - - - - - - - - - -
-
-
-); diff --git a/03_source/mobile/src/pages/DemoReactQrCode/TestComponents/SkeletonDashboard/index.tsx b/03_source/mobile/src/pages/DemoReactQrCode/TestComponents/SkeletonDashboard/index.tsx deleted file mode 100644 index 234fb9b..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/TestComponents/SkeletonDashboard/index.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import { - IonCard, - IonCardContent, - IonCardSubtitle, - IonCardTitle, - IonCol, - IonGrid, - IonIcon, - IonNote, - IonRow, - IonSkeletonText, - IonText, - IonThumbnail, -} from '@ionic/react'; -import { pulseOutline, sunnyOutline, thermometerOutline } from 'ionicons/icons'; - -export const SkeletonDashboard = () => ( - - - - -

- -

-
- -
- - - - - -

- -

-
- - -

- -

-
-
- - - - - - - - - - - wind - - - - Wind - - - - - - - - - - - - - - - Feels like - - - - - - - - - - - - - - - - - Index UV - - - - - - - - - - - - - - - Pressure - - - - - - - - -
-
-
-); diff --git a/03_source/mobile/src/pages/DemoReactQrCode/components/CurrentWeather/WeatherProperty.tsx b/03_source/mobile/src/pages/DemoReactQrCode/components/CurrentWeather/WeatherProperty.tsx deleted file mode 100644 index 52949af..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/components/CurrentWeather/WeatherProperty.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import { IonCardSubtitle, IonCol, IonIcon, IonNote, IonRow } from '@ionic/react'; -import { pulseOutline, sunnyOutline, thermometerOutline } from 'ionicons/icons'; -import { useEffect, useState } from 'react'; - -export const WeatherProperty = ({ type, currentWeather }: { type: any; currentWeather: any }) => { - const [property, setProperty] = useState(false); - - const properties = { - wind: { - isIcon: false, - icon: '/assets/WeatherDemo/wind.png', - alt: 'wind', - label: 'Wind', - value: `${currentWeather.current.wind_mph}mph`, - }, - feelsLike: { - isIcon: true, - icon: thermometerOutline, - alt: 'feels like', - label: 'Feels like', - value: `${currentWeather.current.feelslike_c}°C`, - }, - indexUV: { - isIcon: true, - icon: sunnyOutline, - alt: 'index uv', - label: 'Index UV', - value: currentWeather.current.uv, - }, - pressure: { - isIcon: true, - icon: pulseOutline, - alt: 'pressure', - label: 'Pressure', - value: `${currentWeather.current.pressure_mb} mbar`, - }, - }; - - useEffect(() => { - setProperty(properties[type]); - }, [type]); - - return ( - - - - {!property.isIcon && ( - {property.alt} - )} - {property.isIcon && ( - - )} - - - - {property.label} - {property.value} - - - - ); -}; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/components/CurrentWeather/index.tsx b/03_source/mobile/src/pages/DemoReactQrCode/components/CurrentWeather/index.tsx deleted file mode 100644 index ceb4332..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/components/CurrentWeather/index.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { IonCard, IonCardContent, IonGrid, IonRow, IonText, IonCardTitle } from '@ionic/react'; -import { WeatherProperty } from './WeatherProperty'; - -export const CurrentWeather = ({ currentWeather }: { currentWeather: any }) => ( - - - - -

- {currentWeather.location.region},{' '} - {currentWeather.location.country} -

-
- -
- condition - - -

{currentWeather.current.condition.text}

-
- - -

{new Date(currentWeather.location.localtime).toDateString()}

-
-
- - - {currentWeather.current.temp_c}℃ - - - - - - - - - - - - - -
-
-
-); diff --git a/03_source/mobile/src/pages/DemoReactQrCode/components/CustomFab.jsx b/03_source/mobile/src/pages/DemoReactQrCode/components/CustomFab.jsx deleted file mode 100644 index 2e19fe8..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/components/CustomFab.jsx +++ /dev/null @@ -1,27 +0,0 @@ -import { IonFab, IonFabButton, IonFabList, IonIcon } from '@ionic/react'; -import { addOutline, cameraOutline, qrCodeOutline } from 'ionicons/icons'; - -export const CustomFab = ({ start }) => { - return ( - - - - - - - - - - - - - - - - ); -}; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/components/NoQRCodes.jsx b/03_source/mobile/src/pages/DemoReactQrCode/components/NoQRCodes.jsx deleted file mode 100644 index 08e6bd3..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/components/NoQRCodes.jsx +++ /dev/null @@ -1,15 +0,0 @@ -import { IonCol, IonRow, IonText } from '@ionic/react'; - -export const NoQRCodes = () => ( - - -

It looks like you don't have any QR codes stored.

- icon - -

- Click the button in the bottom right to scan a code or - generate a code. -

-
-
-); diff --git a/03_source/mobile/src/pages/DemoReactQrCode/components/QRCodeScannedModal.jsx b/03_source/mobile/src/pages/DemoReactQrCode/components/QRCodeScannedModal.jsx deleted file mode 100644 index 21f2c58..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/components/QRCodeScannedModal.jsx +++ /dev/null @@ -1,106 +0,0 @@ -import { - IonButton, - IonButtons, - IonCard, - IonCardContent, - IonCardHeader, - IonCardTitle, - IonCol, - IonContent, - IonGrid, - IonHeader, - IonIcon, - IonNote, - IonPage, - IonRow, - IonTitle, - IonToolbar, - useIonToast, -} from '@ionic/react'; -import QRCode from 'react-qr-code'; -import { addQRCode } from '../store/QRStore'; - -import useSound from 'use-sound'; -import closeSound from '../sounds/close.wav'; -import { reloadOutline } from 'ionicons/icons'; - -export const QRCodeScannedModal = ({ dismiss, code, set, scan }) => { - const [play] = useSound(closeSound); - const [showToast] = useIonToast(); - - const handleDismiss = () => { - dismiss(); - play(); - }; - - const handleScanAgain = () => { - handleDismiss(); - - setTimeout(() => { - scan(); - }, 10); - }; - - const handleAdd = async () => { - addQRCode(code.text ? code.text : code, true); - showToast({ - header: 'Success!', - message: 'QR Code stored successfully.', - duration: 3000, - color: 'primary', - }); - - handleDismiss(); - }; - - return ( - - - - View QR Code - - Close - - - - - - - - - - - - - - - - - QR Code data - This is what the code represents - - -

{code.text ? code.text : code}

-
-
-
-
- - - - - -   Scan again - - - - - Store → - - - -
-
-
- ); -}; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/components/QRWebModal.jsx b/03_source/mobile/src/pages/DemoReactQrCode/components/QRWebModal.jsx deleted file mode 100644 index 8d1775d..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/components/QRWebModal.jsx +++ /dev/null @@ -1,45 +0,0 @@ -import { - IonButton, - IonButtons, - IonCol, - IonContent, - IonGrid, - IonHeader, - IonPage, - IonRow, - IonTitle, - IonToolbar, -} from '@ionic/react'; -// import QrReader from "react-qr-reader"; - -export const QRWebModal = ({ dismiss, set, scan, error }) => { - return ( - - - - Scan QR Code - - Close - - - - - - - - - {/* - - */} - - - - - - ); -}; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/components/SkeletonDashboard/index.tsx b/03_source/mobile/src/pages/DemoReactQrCode/components/SkeletonDashboard/index.tsx deleted file mode 100644 index 234fb9b..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/components/SkeletonDashboard/index.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import { - IonCard, - IonCardContent, - IonCardSubtitle, - IonCardTitle, - IonCol, - IonGrid, - IonIcon, - IonNote, - IonRow, - IonSkeletonText, - IonText, - IonThumbnail, -} from '@ionic/react'; -import { pulseOutline, sunnyOutline, thermometerOutline } from 'ionicons/icons'; - -export const SkeletonDashboard = () => ( - - - - -

- -

-
- -
- - - - - -

- -

-
- - -

- -

-
-
- - - - - - - - - - - wind - - - - Wind - - - - - - - - - - - - - - - Feels like - - - - - - - - - - - - - - - - - Index UV - - - - - - - - - - - - - - - Pressure - - - - - - - - -
-
-
-); diff --git a/03_source/mobile/src/pages/DemoReactQrCode/index.tsx b/03_source/mobile/src/pages/DemoReactQrCode/index.tsx deleted file mode 100644 index 70fef09..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/index.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { IonIcon, IonLabel, IonRouterOutlet, IonTabBar, IonTabButton, IonTabs } from '@ionic/react'; - -import { cloudOutline, searchOutline } from 'ionicons/icons'; -import { Route, Redirect } from 'react-router'; - -// import Tab1 from './AppPages/Tab1'; -// import Tab2 from './AppPages/Tab2'; - -import './style.scss'; - -function DemoWeatherAppUi() { - return ( - - - - - - - - - - - - - - - - - ); -} - -export default DemoWeatherAppUi; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab1.jsx b/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab1.jsx deleted file mode 100644 index ecec4dc..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab1.jsx +++ /dev/null @@ -1,114 +0,0 @@ -import { BarcodeScanner } from '@ionic-native/barcode-scanner'; -import { IonContent, IonGrid, IonHeader, IonPage, IonTitle, IonToolbar, useIonModal, getPlatforms } from '@ionic/react'; -import { useStoreState } from 'pullstate'; -import { useState } from 'react'; -import { useRef } from 'react'; -import useSound from 'use-sound'; -import { CustomFab } from '../components/CustomFab'; -import { NoQRCodes } from '../components/NoQRCodes'; -import { QRCodeList } from '../components/QRCodeList'; -import { QRCodeScannedModal } from '../components/QRCodeScannedModal'; -import { QRStore } from '../store'; -import { getCodes } from '../store/Selectors'; -import './Tab1.css'; - -import openSound from "../sounds/open.wav"; -import { QRWebModal } from '../components/QRWebModal'; - -const Tab1 = () => { - - const pageRef = useRef(); - const codes = useStoreState(QRStore, getCodes); - const [ play ] = useSound(openSound); - - const [ QRData, setQRData ] = useState(false); - - const handleScan = data => { - - if (data) { - - setQRData(data); - play(); - handleSuccess(data); - } - } - - const handleError = err => { - - console.error(err) - } - - const start = async () => { - - const platforms = getPlatforms(); - const isWeb = (platforms.includes("desktop") || platforms.includes("mobileweb") || platforms.includes("pwa")); - - if (!isWeb) { - - const data = await BarcodeScanner.scan(); - - if (data) { - handleSuccess(data); - } - } else { - - presentWebModal({ - - presentingElement: pageRef.current - }); - } - } - - const handleSuccess = data => { - - setQRData(data); - console.log(data); - dismissWebModal(); - - play(); - present({ - - presentingElement: pageRef.current - }); - } - - const [ present, dismiss ] = useIonModal(QRCodeScannedModal, { - - dismiss: () => dismiss(), - code: QRData, - set: () => setQRData(), - scan: () => start() - }); - - const [ presentWebModal, dismissWebModal ] = useIonModal(QRWebModal, { - - dismiss: () => dismissWebModal(), - set: () => setQRData(), - scan: handleScan, - error: handleError - }); - - return ( - - - - QR Codes - - - - - - QR Codes - - - - { codes.length < 1 && } - { codes.length > 0 && } - - - - - ); -}; - -export default Tab1; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab2.jsx b/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab2.jsx deleted file mode 100644 index ea65fcf..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab2.jsx +++ /dev/null @@ -1,105 +0,0 @@ -import { IonBackButton, IonButton, IonButtons, IonCol, IonContent, IonGrid, IonHeader, IonInput, IonItem, IonLabel, IonNote, IonPage, IonRow, IonTextarea, IonTitle, IonToolbar, useIonToast } from '@ionic/react'; -import './Tab2.css'; - -import QRCode from "react-qr-code"; -import { useState } from 'react'; -import { addQRCode } from '../store/QRStore'; - -const Tab2 = () => { - - const [ data, setData ] = useState(""); - const [ showToast ] = useIonToast(); - - const handleAdd = async () => { - - if (data === "") { - - showToast({ - - header: "Error!", - message: "Please enter some data to store.", - duration: 3000, - color: "danger" - }); - } else { - - addQRCode(data); - showToast({ - - header: "Success!", - message: "QR Code stored successfully.", - duration: 3000, - color: "primary" - }); - - setData(""); - } - } - - return ( - - - - - - - Generate QR Code - - - - - - Generate QR Code - - - - - - - - - -

You can generate a QR code to store or share with friends.

-

You'll see a live preview of the QR Code

-
-
-
-
- - - - - Data to store - setData(e.target.value) } /> - - - - - - - { data !== "" ? : placeholder qr } - - - - - - - -

When you're ready, you can store the generated QR Code

-
-
-
-
- - - - Store → - - -
-
-
- ); -}; - -export default Tab2; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab3.css b/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab3.css deleted file mode 100644 index e69de29..0000000 diff --git a/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab3.jsx b/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab3.jsx deleted file mode 100644 index 42c2ba6..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/pages/Tab3.jsx +++ /dev/null @@ -1,102 +0,0 @@ -import { IonBackButton, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardTitle, IonCol, IonContent, IonGrid, IonHeader, IonIcon, IonNote, IonPage, IonRow, IonTitle, IonToolbar, useIonToast } from '@ionic/react'; -import './Tab3.css'; -import { useState } from 'react'; - -import { BarcodeScanner } from "@ionic-native/barcode-scanner"; -import QRCode from 'react-qr-code'; -import { addQRCode } from '../store/QRStore'; -import { reloadOutline } from 'ionicons/icons'; - -const Tab3 = () => { - - const [ QRData, setQRData ] = useState(false); - - const start = async () => { - - const data = await BarcodeScanner.scan(); - setQRData(data); - } - - const [ showToast ] = useIonToast(); - - const handleAdd = async () => { - - addQRCode(QRData.text, true); - showToast({ - - header: "Success!", - message: "QR Code stored successfully.", - duration: 3000, - color: "primary" - }); - - setQRData(false); - } - - return ( - - - - - - - Scan QR Code - - - - - - Scan QR Code - - - - - { !QRData && - - - Scan → - - - } - - { QRData && - <> - - - - - - - - - - - QR Code data - This is what the code represents - - -

{ QRData.text }

-
-
-
-
- - - - -   - Scan again - - - Store → - - - - } -
-
-
- ); -}; - -export default Tab3; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/sounds/close.wav b/03_source/mobile/src/pages/DemoReactQrCode/sounds/close.wav deleted file mode 100644 index 7ca4e4e..0000000 Binary files a/03_source/mobile/src/pages/DemoReactQrCode/sounds/close.wav and /dev/null differ diff --git a/03_source/mobile/src/pages/DemoReactQrCode/sounds/open.wav b/03_source/mobile/src/pages/DemoReactQrCode/sounds/open.wav deleted file mode 100644 index 78c8254..0000000 Binary files a/03_source/mobile/src/pages/DemoReactQrCode/sounds/open.wav and /dev/null differ diff --git a/03_source/mobile/src/pages/DemoReactQrCode/store/QRStore.js b/03_source/mobile/src/pages/DemoReactQrCode/store/QRStore.js deleted file mode 100644 index 2878652..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/store/QRStore.js +++ /dev/null @@ -1,19 +0,0 @@ -import { Store } from 'pullstate'; - -const QRStore = new Store({ - codes: [], -}); - -export default QRStore; - -export const addQRCode = (data, scanned = false) => { - QRStore.update((s) => { - s.codes = [...s.codes, { id: new Date(), data, scanned }]; - }); -}; - -export const removeQRCode = (id) => { - QRStore.update((s) => { - s.codes = s.codes.filter((code) => code.id !== id); - }); -}; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/store/Selectors.js b/03_source/mobile/src/pages/DemoReactQrCode/store/Selectors.js deleted file mode 100644 index d74c840..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/store/Selectors.js +++ /dev/null @@ -1,6 +0,0 @@ -import { createSelector } from 'reselect'; - -const getState = (state) => state; - -// General getters -export const getCodes = createSelector(getState, (state) => state.codes); diff --git a/03_source/mobile/src/pages/DemoReactQrCode/store/index.js b/03_source/mobile/src/pages/DemoReactQrCode/store/index.js deleted file mode 100644 index 18573c9..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/store/index.js +++ /dev/null @@ -1 +0,0 @@ -export { default as QRStore } from './QRStore'; diff --git a/03_source/mobile/src/pages/DemoReactQrCode/style.scss b/03_source/mobile/src/pages/DemoReactQrCode/style.scss deleted file mode 100644 index 37c1e1a..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/style.scss +++ /dev/null @@ -1,103 +0,0 @@ -#about-page { - ion-toolbar { - position: absolute; - - top: 0; - left: 0; - right: 0; - - --background: transparent; - --color: white; - } - - ion-toolbar ion-back-button, - ion-toolbar ion-button, - ion-toolbar ion-menu-button { - --color: white; - } - - .about-header { - position: relative; - - width: 100%; - height: 30%; - } - - .about-header .about-image { - position: absolute; - - top: 0; - left: 0; - bottom: 0; - right: 0; - - background-position: center; - background-size: cover; - background-repeat: no-repeat; - - opacity: 0; - - transition: opacity 500ms ease-in-out; - } - - .about-header .madison { - background-image: url('/assets/WeatherDemo/img/about/madison.jpg'); - } - - .about-header .austin { - background-image: url('/assets/WeatherDemo/img/about/austin.jpg'); - } - - .about-header .chicago { - background-image: url('/assets/WeatherDemo/img/about/chicago.jpg'); - } - - .about-header .seattle { - background-image: url('/assets/WeatherDemo/img/about/seattle.jpg'); - } - - .about-info { - position: relative; - margin-top: -10px; - border-radius: 10px; - background: var(--ion-background-color, #fff); - z-index: 2; // display rounded border above header image - } - - .about-info h3 { - margin-top: 0; - } - - .about-info ion-list { - padding-top: 0; - } - - .about-info p { - line-height: 130%; - - color: var(--ion-color-dark); - } - - .about-info ion-icon { - margin-inline-end: 32px; - } - - /* - * iOS Only - */ - - .ios .about-info { - --ion-padding: 19px; - } - - .ios .about-info h3 { - font-weight: 700; - } -} - -#date-input-popover { - --offset-y: -var(--ion-safe-area-bottom); - - --max-width: 90%; - --width: 336px; -} diff --git a/03_source/mobile/src/pages/DemoReactQrCode/theme/custom-tab-bar.scss b/03_source/mobile/src/pages/DemoReactQrCode/theme/custom-tab-bar.scss deleted file mode 100644 index 02ee8c1..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/theme/custom-tab-bar.scss +++ /dev/null @@ -1,30 +0,0 @@ -:root { - - /* --ion-background-color: white; */ - --ion-tab-bar-color: rgb(76, 112, 141); - --ion-tab-bar-color-selected: white; -} - -ion-tab-bar { - - --background: rgb(1, 72, 131); - box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.4); - border-radius: 50px !important; - - height: 50px; - width: 40%; - padding-top: 5px; - padding-bottom: 5px; - padding-left: 10px; - padding-right: 10px; - - bottom: 24px; - position: relative; - margin: 0 auto !important; - border-top: none; -} - -ion-tab-button { - - border-radius: 16px !important; -} diff --git a/03_source/mobile/src/pages/DemoReactQrCode/theme/variables.css b/03_source/mobile/src/pages/DemoReactQrCode/theme/variables.css deleted file mode 100644 index 088e83c..0000000 --- a/03_source/mobile/src/pages/DemoReactQrCode/theme/variables.css +++ /dev/null @@ -1,77 +0,0 @@ -/* Ionic Variables and Theming. For more info, please see: -http://ionicframework.com/docs/theming/ */ - -/** Ionic CSS Variables **/ -:root { - /** primary **/ - --ion-color-primary: #3880ff; - --ion-color-primary-rgb: 56, 128, 255; - --ion-color-primary-contrast: #ffffff; - --ion-color-primary-contrast-rgb: 255, 255, 255; - --ion-color-primary-shade: #3171e0; - --ion-color-primary-tint: #4c8dff; - - /** secondary **/ - --ion-color-secondary: #3dc2ff; - --ion-color-secondary-rgb: 61, 194, 255; - --ion-color-secondary-contrast: #ffffff; - --ion-color-secondary-contrast-rgb: 255, 255, 255; - --ion-color-secondary-shade: #36abe0; - --ion-color-secondary-tint: #50c8ff; - - /** tertiary **/ - --ion-color-tertiary: #5260ff; - --ion-color-tertiary-rgb: 82, 96, 255; - --ion-color-tertiary-contrast: #ffffff; - --ion-color-tertiary-contrast-rgb: 255, 255, 255; - --ion-color-tertiary-shade: #4854e0; - --ion-color-tertiary-tint: #6370ff; - - /** success **/ - --ion-color-success: #2dd36f; - --ion-color-success-rgb: 45, 211, 111; - --ion-color-success-contrast: #ffffff; - --ion-color-success-contrast-rgb: 255, 255, 255; - --ion-color-success-shade: #28ba62; - --ion-color-success-tint: #42d77d; - - /** warning **/ - --ion-color-warning: #ffc409; - --ion-color-warning-rgb: 255, 196, 9; - --ion-color-warning-contrast: #000000; - --ion-color-warning-contrast-rgb: 0, 0, 0; - --ion-color-warning-shade: #e0ac08; - --ion-color-warning-tint: #ffca22; - - /** danger **/ - --ion-color-danger: #eb445a; - --ion-color-danger-rgb: 235, 68, 90; - --ion-color-danger-contrast: #ffffff; - --ion-color-danger-contrast-rgb: 255, 255, 255; - --ion-color-danger-shade: #cf3c4f; - --ion-color-danger-tint: #ed576b; - - /** dark **/ - --ion-color-dark: #222428; - --ion-color-dark-rgb: 34, 36, 40; - --ion-color-dark-contrast: #ffffff; - --ion-color-dark-contrast-rgb: 255, 255, 255; - --ion-color-dark-shade: #1e2023; - --ion-color-dark-tint: #383a3e; - - /** medium **/ - --ion-color-medium: #92949c; - --ion-color-medium-rgb: 146, 148, 156; - --ion-color-medium-contrast: #ffffff; - --ion-color-medium-contrast-rgb: 255, 255, 255; - --ion-color-medium-shade: #808289; - --ion-color-medium-tint: #9d9fa6; - - /** light **/ - --ion-color-light: #f4f5f8; - --ion-color-light-rgb: 244, 245, 248; - --ion-color-light-contrast: #000000; - --ion-color-light-contrast-rgb: 0, 0, 0; - --ion-color-light-shade: #d7d8da; - --ion-color-light-tint: #f5f6f9; -} \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Calls.css b/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Calls.css deleted file mode 100644 index e69de29..0000000 diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Calls.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Calls.js deleted file mode 100644 index cd8c9b7..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Calls.js +++ /dev/null @@ -1,23 +0,0 @@ -import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar } from '@ionic/react'; -import './Calls.css'; - -const Calls = () => { - return ( - - - - Calls - - - - - - Calls - - - - - ); -}; - -export default Calls; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Chat.css b/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Chat.css deleted file mode 100644 index 3382f0d..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Chat.css +++ /dev/null @@ -1,289 +0,0 @@ -.chat-page ion-header, -.chat-page ion-toolbar { - - --min-height: 3.5rem; -} - -.chat-page ion-title { - - margin-left: -3.5rem; -} - -.chat-page ion-title p { - - padding: 0; - margin: 0; -} - -.chat-contact { - - display: flex; - flex-direction: row; - align-content: center; - justify-content: center; - align-items: center; -} - -.chat-contact img { - - height: 2rem; - width: 2rem; - border-radius: 500px; -} - -.chat-contact-details { - - display: flex; - flex-direction: column; - margin-left: 0.5rem; - text-align: left; -} - -.chat-contact-details p { - - font-size: 0.9rem; -} - -.chat-contact-details ion-text { - - font-size: 0.7rem; - font-weight: 400; -} - -.chat-bubble { - - border-radius: 5px; - margin-left: 1rem; - margin-right: 1rem; - margin-top: 0.8rem; - - padding: 0.5rem; - max-width: 80%; - clear: both; - - display: flex; - flex-direction: row; - transition: 0.2s all linear; -} - -.chat-bubble:last-child { - - margin-bottom: 0.8rem; -} - -.bubble-sent { - - background-color: var(--chat-bubble-sent-color); - float: right; -} - -.bubble-received { - - background-color: var(--chat-bubble-received-color); - float: left; -} - -.chat-bubble p { - - padding: 0; - margin: 0; -} - -.chat-footer { - - background-color: rgb(22, 22, 22); - border-top: 1px solid rgb(47, 47, 47); - padding-top: 0.2rem; - padding-bottom: 1rem; -} - -.chat-footer ion-textarea { - - background-color: rgb(31, 31, 31); - border: 1px solid rgb(36, 36, 36); - color: white; - border-radius: 25px; - padding-left: 0.5rem; - caret-color: var(--ion-color-primary); -} - -.chat-footer ion-icon { - - font-size: 1.5rem; - margin-top: 0.2rem; -} - -.chat-input-container { - - width: 70%; - margin-right: 0.75rem; -} - -.chat-send-button { - - margin: 0 !important; - padding: 0 !important; - position: absolute; - right: 17px; - margin-top: -0.2rem !important; - - display: flex; - flex-direction: row; - align-content: center; - align-items: center; - justify-content: center; -} - -.chat-send-button ion-icon { - - color: white; - background-color: var(--ion-color-primary); - font-size: 1.1rem; - border-radius: 500px; - padding: 0.5rem; -} - -.chat-time { - - color: rgb(165, 165, 165); - font-size: 0.75rem; - right: 0; - bottom: 0 !important; - margin: 0; - padding: 0; - margin-top: 5px; -} - -.bubble-arrow { - - position: absolute; - float: left; - left: 6px; - margin-top: -8px; - /* top: 0px; */ -} - -.bubble-arrow.alt { - - position: relative; - bottom: 0px; - left: auto; - right: -3px; - float: right; -} - -.bubble-arrow:after { - - content: ""; - position: absolute; - border-top: 15px solid var(--chat-bubble-received-color); - border-left: 15px solid transparent; - border-radius: 4px 0 0 0px; - width: 0; - height: 0; -} - -.bubble-arrow.alt:after { - - border-top: 15px solid var(--chat-bubble-sent-color); - transform: scaleX(-1); -} - -.chat-reply-to-row { - - bottom: 70px !important; - position: absolute; - - border-left: 4px solid rgb(224, 176, 18); - width: 100%; - background-color: rgb(22, 22, 22); - border-top: 1px solid rgb(47, 47, 47); - padding: 0.5rem; - padding-bottom: 0.8rem; -} - -.chat-reply-to-container { - - display: flex; - flex-direction: column; -} - -.chat-reply-to-name { - - color: rgb(224, 176, 18); - font-weight: 500; - margin-bottom: 0.5rem; -} - -.chat-reply-to-message { - - font-size: 0.8rem; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.all-chats { - - -} - -.chat-bottom-details { - - display: flex; - flex-direction: row; - width: 100%; - align-content: center; - align-items: center; - justify-content: flex-end; - margin-top: 0.4rem; -} - -.chat-bottom-details ion-icon { - - font-size: 0.6rem; - color: grey; - margin-left: 0.5rem; - margin-top: 0.05rem; -} - -.chat-bottom-details span { - - margin: 0; - padding: 0; - font-size: 0.75rem; - color: rgb(190, 190, 190); -} - -.in-chat-reply-to-container { - - background-color: rgba(0, 0, 0, 0.2); - border-left: 3px solid rgb(224, 176, 18); - height: fit-content; - padding: 0.5rem; - border-radius: 5px; - margin-bottom: 0.5rem; -} - -.in-chat-reply-to-container h1 { - - margin: 0; - padding: 0; - color: rgb(224, 176, 18); - font-size: 0.8rem; -} - -.in-chat-reply-to-container p { - - color: rgb(167, 167, 167); - font-size: 0.8rem; -} - -.bottom-container { - - position: absolute; - bottom: 4.5rem; - height: 5rem; - background-color: red; - width: 100%; -} \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Chat.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Chat.js deleted file mode 100644 index 9bbab03..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Chat.js +++ /dev/null @@ -1,378 +0,0 @@ -import { IonBackButton, IonButton, IonButtons, IonCol, IonContent, IonFooter, IonGrid, IonHeader, IonIcon, IonPage, IonRow, IonText, IonTextarea, IonTitle, IonToolbar, CreateAnimation, createGesture, useIonViewWillEnter, IonActionSheet, IonToast } from "@ionic/react"; -import { addOutline, alertOutline, callOutline, cameraOutline, micOutline, send, shareOutline, starOutline, trashOutline, videocamOutline } from "ionicons/icons"; -import { useRef } from "react"; -import { useEffect, useState } from "react"; -import { useParams } from "react-router"; -import { ChatStore, ContactStore } from "../store"; -import { getNotificationCount, markAllAsRead, sendChatMessage, starChatMessage } from "../store/ChatStore"; -import { getChat, getChats, getContact } from "../store/Selectors"; - -import { useLongPress } from 'react-use'; -import "./Chat.css" -import ReplyTo from "../components/ReplyTo"; -import { ChatBottomDetails } from "../components/ChatBottomDetails"; -import { ChatRepliedQuote } from "../components/ChatRepliedQuote"; -import { useCamera } from "../hooks/useCamera"; -import { useGallery } from "../hooks/useGallery"; - -const Chat = () => { - - const params = useParams(); - - // Global State - const chat = ChatStore.useState(getChat(params.contact_id)); - const chats = ChatStore.useState(getChats); - const contact = ContactStore.useState(getContact(params.contact_id)); - const notificationCount = getNotificationCount(chats); - - const { takePhoto } = useCamera(); - const { prompt } = useGallery(); - - // Local state - const [ message, setMessage ] = useState(""); - const [ showSendButton, setShowSendButton ] = useState(false); - const [ replyToMessage, setReplyToMessage ] = useState(false); - const [ messageSent, setMessageSent ] = useState(false); - - const [ showActionSheet, setShowActionSheet ] = useState(false); - const [ actionMessage, setActionMessage ] = useState(false); - - const [ showToast, setShowToast ] = useState(false); - const [ toastMessage, setToastMessage ] = useState(""); - - // Refs - const contentRef = useRef(); - const swiperRefs = useRef([]); - const textareaRef = useRef(); - const sideRef = useRef(); - const sendRef = useRef(); - const replyToAnimationRef = useRef(); - - const actionSheetButtons = [ - - { - text: (actionMessage && actionMessage.starred) ? "Unstar Message" : "Star Message", - icon: starOutline, - handler: () => starChatMessage(params.contact_id, actionMessage.id) - }, - actionMessage && actionMessage.received ? - { - text: "Reply To Message", - icon: shareOutline, - handler: () => showReplyToMessage(actionMessage) - } - : - { - text: "Unsend Message", - icon: alertOutline, - handler: () => toaster("I haven't implemented unsend :) Simple store update though") - }, - { - text: "Delete Message", - icon: trashOutline, - handler: () => toaster("I haven't implemented delete :) Simple store update though"), - role: "destructive" - } - ]; - - useEffect(() => { - - !showActionSheet && setActionMessage(false); - }, [ showActionSheet ]); - - // Scroll to end of content - // Mark all chats as read if we come into a chat - // Set up our swipe events for animations and gestures - useIonViewWillEnter(() => { - - scrollToBottom(); - setupObserver(); - markAllAsRead(params.contact_id); - setSwipeEvents(); - }); - - // For displaying toast messages - const toaster = message => { - - setToastMessage(message); - setShowToast(true); - } - - // Scroll to end of content - const scrollToBottom = async () => { - - contentRef.current.scrollToBottom(); - } - - // Watch for DOM changes - // Then scroll to bottom - // This ensures that the new chat message has *actually* been rendered - // Check this: - // https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver - const setupObserver = () => { - - // Mutation Observers watch for DOM changes - // This will ensure that we scroll to bottom AFTER the new chat has rendered - const observer = new MutationObserver(() => { - - scrollToBottom(); - }); - - // We observe the ion-content (or containing element of chats) - observer.observe(contentRef.current, { - - childList: true - }); - } - - // Long press callback - const onLongPress = (e) => { - - const elementID = e.target.id; - const chatMessageID = elementID.includes("chatText") ? parseInt(elementID.replace("chatText_", "")) : elementID.includes("chatTime") ? parseInt(elementID.replace("chatTime_", "")) : parseInt(elementID.replace("chatBubble_", "")); - - const chatMessage = chat.filter(message => parseInt(message.id) === parseInt(chatMessageID))[0]; - - setActionMessage(chatMessage); - setShowActionSheet(true); - }; - - const longPressEvent = useLongPress(onLongPress, { - - isPreventDefault: true, - delay: 2000, - }); - - const showReplyToMessage = async message => { - - // Activate reply-to functionality - setReplyToMessage(message); - await replyToAnimationRef.current.animation.play(); - contentRef.current.scrollToBottom(300); - } - - const checkBubble = async (bubble, message, event) => { - - if (event.deltaX >= 120) { - - // Activate reply-to functionality - bubble.style.transform = "none"; - showReplyToMessage(message); - } else { - - // Put chat bubble back to original position - bubble.style.transform = "none"; - } - } - - // Function to move a bubble with the deltaX swipe - const moveBubble = (bubble, event) => { - - if (event.velocityX > 0) { - - bubble.style.transform = `translateX(${ event.deltaX }px)`; - } - } - - const setSwipeEvents = () => { - - chat.forEach((message, index) => { - - if (!message.sent) { - - const chatBubble = swiperRefs.current[index]; - - const swipeGesture = createGesture({ - el: chatBubble, - onEnd: e => checkBubble(chatBubble, message, e), - onMove: e => moveBubble(chatBubble, e) - }); - - swipeGesture.enable(); - } - }); - } - - const widthAnimation = { - - property: "width", - fromValue: "110%", - toValue: "100%" - }; - - const fadeAnimation = { - - property: "opacity", - fromValue: "100%", - toValue: "0%" - }; - - const sideButtonsAnimation = { - - duration: 200, - direction: showSendButton ? "normal" : "reverse", - iterations: "1", - fromTo: [ fadeAnimation ], - easing: "ease-in-out" - }; - - const sendButtonAnimation = { - - duration: showSendButton ? 300 : 100, - direction: !showSendButton ? "normal" : "reverse", - iterations: "1", - fromTo: [ fadeAnimation ], - easing: "ease-in-out" - }; - - const textareaAnimation = { - - duration: 200, - direction: !showSendButton ? "normal" : "reverse", - iterations: "1", - fromTo: [ widthAnimation ], - easing: "ease-in-out" - }; - - // Set the state value when message val changes - useEffect(() => { - - setShowSendButton(message !== ""); - }, [ message ]); - - // Play the animations when the state value changes - useEffect(() => { - - textareaRef.current.animation.play(); - sideRef.current.animation.play(); - sendRef.current.animation.play(); - }, [ showSendButton ]); - - const sendMessage = (image = false, imagePath = false) => { - - if (message !== "" || image === true) { - - sendChatMessage(params.contact_id, message, replyToMessage, replyToMessage ? replyToMessage.id : false, image, imagePath); - setMessage(""); - - setMessageSent(true); - setTimeout(() => setMessageSent(false), 10); - image && setTimeout(() => scrollToBottom(), 100); - } - } - - const handlePhoto = async () => { - - const returnedFilePath = await takePhoto(); - sendMessage(true, returnedFilePath); - } - - const handlePrompt = async () => { - - const returnedFilePath = await prompt(); - sendMessage(true, returnedFilePath); - } - - const replyToProps = { - - replyToAnimationRef, - replyToMessage, - setReplyToMessage, - contact: contact.name, - messageSent - }; - - return ( - - - - - 0) ? notificationCount : "" } /> - - -
- avatar -
-

{ contact.name }

- last seen today at 22:10 -
-
-
- - - toaster("As this is a UI only, video calling wouldn't work here.")}> - - - - toaster("As this is a UI only, calling wouldn't work here.")}> - - - -
-
- - - - { chat.map((message, index) => { - - const repliedMessage = chat.filter(subMessage => parseInt(subMessage.id) === parseInt(message.replyID))[0]; - - return ( -
swiperRefs.current[index] = ref } id={ `chatBubble_${ message.id }`} key={ index } className={ `chat-bubble ${ message.sent ? "bubble-sent" : "bubble-received" }` } { ...longPressEvent }> -
- - - - { message.preview } - { message.image && message.imagePath && chat message } - -
- -
-
- ); - })} - - setShowActionSheet(false) } buttons={ actionSheetButtons } /> - - setShowToast(false) } message={ toastMessage } position="bottom" duration="3000" /> -
- - { replyToMessage && } - - - - - - - - -
- - setMessage(e.target.value) } /> - -
- - - - - - - - - - - - - - - - -
-
-
-
- ); -} - -export default Chat; \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Chats.css b/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Chats.css deleted file mode 100644 index c1c674d..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Chats.css +++ /dev/null @@ -1,112 +0,0 @@ -.chat-row { - - display: flex; - flex-direction: row; - /* justify-content: space-between; */ - align-items: center; - /* align-content: center; */ - padding-left: 1rem; -} - -.chat-row ion-item { - - width: 100%; -} - -.chat-row img { - - height: 3rem; - width: 3rem; - border-radius: 500px; - background-color: inherit; -} - -.chat-content { - - padding-bottom: 1rem; - padding-top: 1rem; - width: 100%; -} - -.chat-content h2 { - - font-size: 1rem; - font-weight: 600; -} - -.chat-content p, -.chat-content h2 { - - margin: 0; - padding: 0; -} - -.chat-content p { - - font-size: 1rem; - margin-top: 0.2rem; - color: rgb(153, 153, 153); -} - -.chat-content p ion-icon { - - margin-right: 0.4rem; -} - -.chat-name-date { - - display: flex; - flex-direction: row; - justify-content: space-between; -} - -.chat-details .chat-date { - - color: rgb(153, 153, 153); - font-size: 0.8rem; - padding-left: 0.5rem;; -} - -.chat-details .chat-unread { - - color: var(--ion-color-primary); -} - -.chat-notification-count { - - margin: 0; - padding: 0; -} - -.chat-details { - - display: flex; - flex-direction: column; - align-content: flex-end; - justify-content: flex-end; - align-content: flex-end; - align-items: flex-end; -} - -.chat-notification { - - font-size: 0.7rem; - padding: 0.2rem; - background-color: var(--ion-color-primary); - border-radius: 500px; - display: flex; - flex-direction: column; - align-content: center; - justify-content: center; - align-content: center; - align-items: center; - height: 1rem; - width: 1rem; -} - -.chat-content-container { - - display: flex; - flex-direction: row; - justify-content: space-between; -} \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Chats.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Chats.js deleted file mode 100644 index e2e454f..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Chats.js +++ /dev/null @@ -1,79 +0,0 @@ -import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar, IonSearchbar, IonButtons, IonButton, IonIcon, IonItem, IonModal } from '@ionic/react'; -import { checkmarkDone, createOutline } from 'ionicons/icons'; -import './Chats.css'; - -import { ChatStore, ContactStore } from '../store'; -import { getContacts, getChats } from '../store/Selectors'; -import { useEffect, useState } from 'react'; -import ChatItem from '../components/ChatItem'; -import { useRef } from 'react'; -import ContactModal from '../components/ContactModal'; - -const Chats = () => { - - const pageRef = useRef(); - const contacts = ContactStore.useState(getContacts); - const latestChats = ChatStore.useState(getChats); - - const [ results, setResults ] = useState(latestChats); - const [ showContactModal, setShowContactModal ] = useState(false); - - useEffect(() => { - - setResults(latestChats); - }, [ latestChats ]); - - const search = e => { - - const searchTerm = e.target.value; - - if (searchTerm !== "") { - - const searchTermLower = searchTerm.toLowerCase(); - - const newResults = latestChats.filter(chat => contacts.filter(c => c.id === chat.contact_id)[0].name.toLowerCase().includes(searchTermLower)); - setResults(newResults); - } else { - - setResults(latestChats); - } - } - - return ( - - - - - Edit - - - setShowContactModal(true) }> - - - - Chats - - - - - - Chats - - search(e) } /> - - - - { results.map((chat, index) => { - - return ; - })} - - setShowContactModal(false) }> - setShowContactModal(false) } /> - - - - ); -}; - -export default Chats; \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Settings.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Settings.js deleted file mode 100644 index 79873c4..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Settings.js +++ /dev/null @@ -1,120 +0,0 @@ -import { IonCardSubtitle, IonCol, IonContent, IonHeader, IonIcon, IonItem, IonList, IonPage, IonRow, IonText, IonTitle, IonToolbar } from '@ionic/react'; -import { camera, cloudUpload, cloudUploadOutline, heart, helpOutline, informationOutline, key, laptop, laptopOutline, logoWhatsapp, mailUnreadOutline, notificationsOutline, pencil, qrCodeOutline, star } from 'ionicons/icons'; -import styles from './Settings.module.scss'; - -const Settings = () => { - - const settings = [ - - [ - { - title: "Starred Messages", - url: "/starred-messages", - icon: star, - color: "rgb(255, 208, 0)" - }, - { - title: "WhatsApp Web/Desktop", - icon: laptopOutline, - color: "rgb(33, 165, 114)" - } - ], - [ - { - title: "Account", - icon: key, - color: "rgb(0, 81, 255)" - }, - { - title: "Chats", - icon: logoWhatsapp, - color: "rgb(79, 182, 96)" - }, - { - title: "Notifications", - icon: mailUnreadOutline, - color: "rgb(233, 46, 46)" - }, - { - title: "Storage and Data", - icon: cloudUploadOutline, - color: "rgb(79, 182, 96)" - } - ], - [ - { - title: "Help", - icon: informationOutline, - color: "rgb(0, 81, 255)" - }, - { - title: "Tell a Friend", - icon: heart, - color: "rgb(228, 70, 70)" - } - ] - ]; - - return ( - - - - Settings - - - - - - Settings - - - - - avatar - - - Alan Montgomery - -
- This is my status! -
- - - - - - -
- - { settings.map((setting, index) => { - - return ( - - - - { setting.map((option, index) => { - - var itemStyle = { "--setting-item-color": option.color }; - - return ( - - - -

{ option.title }

-
- ); - })} -
- ); - })} - -
- from - IONIC React HUB -
-
-
- ); -}; - -export default Settings; \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Settings.module.scss b/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Settings.module.scss deleted file mode 100644 index 7388538..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Settings.module.scss +++ /dev/null @@ -1,69 +0,0 @@ -.settingsPage { - - ion-item { - - --background: rgb(27, 27, 27); - background: rgb(27, 27, 27); - border-top: 1px solid rgb(41, 41, 41); - border-bottom: 1px solid rgb(41, 41, 41); - padding: 0.5rem; - } -} - -.settingsList { - - ion-item { - - --background: rgb(27, 27, 27); - background: rgb(27, 27, 27); - // border: none !important; - border-top: 1px solid rgb(34, 34, 34); - border-bottom: 1px solid rgb(36, 36, 36); - padding: 0; - - p { - margin: 0; - } - - ion-icon { - - border-radius: 5px; - padding: 0.2rem; - font-size: 1.4rem; - margin-right: 1.2rem; - --setting-item-color: white; - background-color: var(--setting-item-color); - color: rgb(233, 46, 46); - } - } -} - -.smallText { - - font-size: 0.9rem; -} - -.statusAvatar { - - padding: 0.5rem; -} - -.statusAvatar { - - img { - - height: 3.5rem; - width: 3.5rem; - border-radius: 500px; - } -} - -.statusActions { - - ion-icon { - - padding: 0.5rem; - background-color: rgb(56, 56, 56); - border-radius: 500px; - } -} \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Starred.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Starred.js deleted file mode 100644 index 7512537..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Starred.js +++ /dev/null @@ -1,87 +0,0 @@ -import { IonBackButton, IonContent, IonHeader, IonIcon, IonPage, IonTitle, IonToolbar, useIonViewWillEnter } from '@ionic/react'; -import { chevronForward } from 'ionicons/icons'; -import { useState } from 'react'; -import { ChatStore, ContactStore } from '../store'; -import { getChats, getContacts } from '../store/Selectors'; - -import "./Starred.scss"; - -const Starred = () => { - - const contacts = ContactStore.useState(getContacts); - const chats = ChatStore.useState(getChats); - - const [ starredMessages, setStarredMessages ] = useState(false); - - useIonViewWillEnter(() => { - - var tempChats = [ ...chats ]; - var starred = []; - - tempChats.forEach(tempChat => { - - tempChat.chats.forEach(chat => { - - if (chat.starred) { - - starred.push({ - - contact_id: tempChat.contact_id, - ...chat - }); - } - }); - }); - - setStarredMessages(starred); - }); - - return ( - - - - - Starred Messages - - - - - { starredMessages && starredMessages.map(starredMessage => { - - const { id, contact_id, date, preview, received } = starredMessage; - const contact = contacts.filter(c => c.id === contact_id)[0]; - - return ( -
-
- -
- starred avatar -

{ contact.name }

-
- -

{ date }

- -
-
-

{ preview }

- -
-
- ); - })} - - { starredMessages.length < 1 && - -
- no starred -

No Starred Messages

-

Tap and hold on any message to star it, so you can easily find it later.

-
- } -
-
- ); -}; - -export default Starred; \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Starred.scss b/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Starred.scss deleted file mode 100644 index 8bf228a..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Starred.scss +++ /dev/null @@ -1,117 +0,0 @@ -.starred-message { - - display: flex; - flex-direction: column; - margin-top: 1rem; -} - -.starred-header { - - display: flex; - flex-direction: row; - justify-content: space-between; -} - -.starred-contact { - - display: flex; - flex-direction: row; - align-content: center; - align-items: center; - margin-left: 1rem; - - img { - - height: 2rem; - width: 2rem; - border-radius: 500px; - } - - p { - - margin-left: 1rem; - font-size: 0.9rem; - font-weight: 500; - } -} - -.starred-date { - - margin-right: 1.5rem; - color: rgb(138, 138, 138); - font-size: 0.8rem; -} - -.starred-content { - - display: flex; - flex-direction: row; - align-content: center; - align-items: center; - justify-content: space-between; - margin-right: 1.5rem; - margin-left: 3.2rem; - - ion-icon { - - color: rgb(138, 138, 138); - font-size: 1rem; - } - - p { - - border-radius: 10px; - max-width: 75%; - padding: 0.5rem; - margin: 0; - margin-bottom: 1rem; - } -} - -.received-starred-content { - - p { - - background-color: var(--chat-bubble-received-color); - } -} - -.sent-starred-content { - - p { - - background-color: var(--chat-bubble-sent-color); - } -} - -.starred-content:not(:first-child) { - - border-bottom: 2px solid rgb(24, 24, 24); -} - -.no-starred { - - padding: 3rem; - margin: 0 auto; - text-align: center; - margin-top: 3rem; - - img { - - border-radius: 500px; - width: 10rem; - height: 10rem; - } - - h1 { - - color: rgb(165, 165, 165); - font-size: 1.1rem; - } - - p { - - color: rgb(165, 165, 165); - font-size: 0.9rem; - } -} \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Status.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Status.js deleted file mode 100644 index 3b40f12..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Status.js +++ /dev/null @@ -1,53 +0,0 @@ -import { IonContent, IonCardTitle, IonIcon, IonCol, IonItem, IonHeader, IonPage, IonTitle, IonToolbar, IonButtons, IonButton, IonText, IonRow } from '@ionic/react'; -import { add, camera, pencil } from 'ionicons/icons'; -import styles from './Status.module.scss'; - -const Status = () => { - return ( - - - - - Privacy - - Status - - - - - - Status - - - - - avatar -
- -
- - - My Status - -
- Add to my status -
- - - - - - - - - - -
- -

No recent updates to show right now.

-
-
- ); -}; - -export default Status; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Status.module.scss b/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Status.module.scss deleted file mode 100644 index 5962b55..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/AppPages1/Status.module.scss +++ /dev/null @@ -1,73 +0,0 @@ -.statusPage { - - ion-item { - - --background: rgb(27, 27, 27); - background: rgb(27, 27, 27); - border-top: 1px solid rgb(41, 41, 41); - border-bottom: 1px solid rgb(41, 41, 41); - padding: 0.5rem; - } -} - -.updates { - - margin-top: 2rem; - text-align: center; - background: rgb(27, 27, 27); - border-top: 1px solid rgb(41, 41, 41); - border-bottom: 1px solid rgb(41, 41, 41); - padding: 1rem; - color: rgb(144, 144, 144); - - ion-text { - - text-align: center; - } -} - -.smallText { - - font-size: 0.9rem; -} - -.statusAvatar { - - padding: 0.5rem; -} - -.statusAvatar { - - img { - - height: 3.5rem; - width: 3.5rem; - border-radius: 500px; - } -} - -.statusActions { - - ion-icon { - - padding: 0.5rem; - background-color: rgb(56, 56, 56); - border-radius: 500px; - } -} - -.imageUpload { - - display: flex; - flex-direction: row; - justify-content: center; - align-content: center; - align-items: center; - position: absolute; - background-color: var(--ion-color-primary); - border-radius: 500px; - height: 1.2rem; - width: 1.2rem; - margin-left: 2.5rem; - margin-top: 1rem; -} \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/TODO.md b/03_source/mobile/src/pages/DemoReactWhatsAppClone/TODO.md deleted file mode 100644 index 78e249c..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/TODO.md +++ /dev/null @@ -1,5 +0,0 @@ -# TODO - -need to resolve path problem - -`demo-react-whatsapp-clone` sub path from the main diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ChatBottomDetails.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ChatBottomDetails.js deleted file mode 100644 index deab9ca..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ChatBottomDetails.js +++ /dev/null @@ -1,10 +0,0 @@ -import { IonIcon } from '@ionic/react'; -import { checkmarkDone, star } from 'ionicons/icons'; - -export const ChatBottomDetails = ({ message }) => ( - - {message.date} - {message.sent && } - {message.starred && } - -); diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ChatItem.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ChatItem.js deleted file mode 100644 index 460e044..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ChatItem.js +++ /dev/null @@ -1,38 +0,0 @@ -import { IonIcon, IonItem } from '@ionic/react'; -import { checkmarkDone } from 'ionicons/icons'; -import { ContactStore } from '../store'; -import { getContacts } from '../store/Selectors'; - -const ChatItem = ({ chat }) => { - const contacts = ContactStore.useState(getContacts); - const { chats, contact_id } = chat; - const { read, date, preview, received } = chats[chats.length - 1]; - const contact = contacts.filter((c) => c.id === contact_id)[0]; - const notificationCount = chats.filter((chat) => chat.read === false).length; - - return ( -
- avatar - - -
-
-

{contact.name}

-
-

- {read && received && } - {preview} -

-
- -
-

0 && 'chat-unread'}`}>{date}

- - {notificationCount > 0 &&
{notificationCount}
} -
-
-
- ); -}; - -export default ChatItem; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ChatRepliedQuote.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ChatRepliedQuote.js deleted file mode 100644 index 6365556..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ChatRepliedQuote.js +++ /dev/null @@ -1,14 +0,0 @@ -const Quote = ({ message, contact, repliedMessage }) => ( -
-

{contact.name}

-

{repliedMessage.preview}

-
-); - -export const ChatRepliedQuote = ({ message, contact, repliedMessage }) => { - if (message.reply && repliedMessage) { - return ; - } else { - return ''; - } -}; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ContactModal.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ContactModal.js deleted file mode 100644 index 3bbfa4e..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ContactModal.js +++ /dev/null @@ -1,42 +0,0 @@ -import { IonButton, IonButtons, IonContent, IonHeader, IonItem, IonLabel, IonList, IonTitle, IonToolbar } from '@ionic/react'; -import { ContactStore } from '../store'; -import { getContacts } from '../store/Selectors'; - -import './ContactModal.scss'; - -const ContactModal = ({ close }) => { - const contacts = ContactStore.useState(getContacts); - - return ( -
- - - New Chat - - - Cancel - - - - - - - - {contacts.map((contact) => { - return ( - - contact avatar - -

{contact.name}

-

Available

-
-
- ); - })} -
-
-
- ); -}; - -export default ContactModal; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ContactModal.scss b/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ContactModal.scss deleted file mode 100644 index 0ed4a84..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ContactModal.scss +++ /dev/null @@ -1,14 +0,0 @@ -.contact-item { - img { - border-radius: 500px; - height: 2.5rem; - width: 2.5rem; - margin-right: 1.5rem; - } - - ion-label { - h1 { - font-size: 1rem; - } - } -} diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ReplyTo.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ReplyTo.js deleted file mode 100644 index e4b5616..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/ReplyTo.js +++ /dev/null @@ -1,54 +0,0 @@ -import { CreateAnimation, IonButton, IonCol, IonIcon, IonLabel, IonRow } from '@ionic/react'; -import { closeCircleOutline } from 'ionicons/icons'; -import { useEffect } from 'react'; -import { useState } from 'react'; - -const ReplyTo = ({ contact, replyToMessage = false, replyToAnimationRef, setReplyToMessage, messageSent }) => { - const [cancellingReplyTo, setCancellingReplyTo] = useState(false); - - useEffect(() => { - messageSent && cancelReplyTo(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [messageSent]); - - const slideAnimation = { - property: 'transform', - fromValue: 'translateY(100px)', - toValue: 'translateY(0px)', - }; - - const replyToAnimation = { - duration: 300, - direction: !cancellingReplyTo ? 'normal' : 'reverse', - iterations: '1', - fromTo: [slideAnimation], - easing: 'ease-in-out', - }; - - // Cancel the reply-to - const cancelReplyTo = async () => { - setCancellingReplyTo(true); - await replyToAnimationRef.current.animation.play(); - setCancellingReplyTo(false); - setReplyToMessage(false); - }; - - return ( - - - - {contact} - {replyToMessage.preview} - - - - - - - - - - ); -}; - -export default ReplyTo; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/SubPages.jsx b/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/SubPages.jsx deleted file mode 100644 index 3c58900..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/SubPages.jsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Route } from 'react-router-dom'; - -const SubPages = (props) => { - return ( - <> - {props.routes.map((route, i) => { - const RouteComponent = route.component; - - return } exact={false} />; - })} - - ); -}; - -export default SubPages; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/Tabs.jsx b/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/Tabs.jsx deleted file mode 100644 index 2c0702a..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/components/Tabs.jsx +++ /dev/null @@ -1,35 +0,0 @@ -import { IonIcon, IonLabel, IonTabBar, IonTabButton, IonTabs, IonRouterOutlet } from '@ionic/react'; -import { Redirect, Route } from 'react-router-dom'; - -const Tabs = (props) => { - return ( - - - {props.tabs.map((tab, i) => { - const TabComponent = tab.component; - - if (tab.isTab) { - return } exact={true} />; - } else { - return } exact={false} />; - } - })} - - - - {props.tabs.map((tab, i) => { - if (tab.isTab) { - return ( - - - {tab.label && {tab.label}} - - ); - } - })} - - - ); -}; - -export default Tabs; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/index.tsx b/03_source/mobile/src/pages/DemoReactWhatsAppClone/index.tsx deleted file mode 100644 index 8a1fa21..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/index.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { IonIcon, IonLabel, IonRouterOutlet, IonTabBar, IonTabButton, IonTabs } from '@ionic/react'; - -import { cloudOutline, searchOutline } from 'ionicons/icons'; -import { Route, Redirect } from 'react-router'; - -import NavRoutes from './nav/NavRoutes.jsx'; - -import './style.scss'; - -function DemoReactWhatsAppClone() { - return ; -} - -export default DemoReactWhatsAppClone; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/nav/AllRoutes.jsx b/03_source/mobile/src/pages/DemoReactWhatsAppClone/nav/AllRoutes.jsx deleted file mode 100644 index d3417b6..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/nav/AllRoutes.jsx +++ /dev/null @@ -1,73 +0,0 @@ -// Main Tabs -import Status from '../pages/Status'; -import Calls from '../pages/Calls'; -import Chats from '../pages/Chats'; -import Settings from '../pages/Settings'; - -// Main tab children -import Chat from '../pages/Chat'; -import Starred from '../pages/Starred'; - -// Sub pages -// import InboxItem from "../../pages/InboxItem"; - -// Tab icons -import { callOutline, cameraOutline, chatbubblesOutline, discOutline, settingsOutline } from 'ionicons/icons'; - -// Import custom tab menu -import Tabs from '../components/Tabs'; -import SubPages from '../components/SubPages'; - -// Array of objects representing tab pages -// These will be the main tabs across the app - -// * PARAMS per tab object * -// isTab = true will make the tab appear -// default = the default tab page to open and be redirected to at "/" -// NOTE: there should only be one default tab (default: true) -// label = the label to show with the tab -// component = the component related to this tab page -// icon = icon to show on the tab bar menu -// path = the path which the tab is accessible -export const tabRoutes = [ - { label: 'Status', component: Status, icon: discOutline, path: '/tabs/status', default: false, isTab: true }, - { label: 'Calls', component: Calls, icon: callOutline, path: '/tabs/calls', default: false, isTab: true }, - { label: 'Camera', component: Calls, icon: cameraOutline, path: '/tabs/camera', default: false, isTab: true }, - { label: 'Chats', component: Chats, icon: chatbubblesOutline, path: '/tabs/chats', default: true, isTab: true }, - { label: 'Settings', component: Settings, icon: settingsOutline, path: '/tabs/settings', default: false, isTab: true }, -]; - -// Array of objects representing children pages of tabs - -// * PARAMS per tab object * -// isTab = should always be set to false for these -// component = the component related to this tab page -// path = the path which the tab is accessible - -// These pages should be related to tab pages and be held within the same path -// E.g. /tabs/tab1/child -const tabChildrenRoutes = [ - // { component: InboxItem, path: "/tabs/tab2/:id", isTab: false }, -]; - -// Array of objects representing sub pages - -// * PARAMS per tab object * -// component = the component related to this sub page -// path = the path which the sub page is accessible - -// This array should be sub pages which are not directly related to a tab page -// E.g. /child -const subPageRoutes = [ - { component: Chat, path: '/view-chat/:contact_id' }, - { component: Starred, path: '/starred-messages' }, -]; - -// Let's combine these together as they need to be controlled within the same IonRouterOutlet -const tabsAndChildrenRoutes = [...tabRoutes, ...tabChildrenRoutes]; - -// Render sub routes -export const AllSubPages = () => ; - -// Render tab menu -export const AllTabs = () => ; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/nav/NavRoutes.jsx b/03_source/mobile/src/pages/DemoReactWhatsAppClone/nav/NavRoutes.jsx deleted file mode 100644 index afafa52..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/nav/NavRoutes.jsx +++ /dev/null @@ -1,20 +0,0 @@ -import { IonRouterOutlet } from '@ionic/react'; -import { IonReactRouter } from '@ionic/react-router'; -import { Redirect, Route } from 'react-router-dom'; -import { AllSubPages, AllTabs, tabRoutes } from './AllRoutes.jsx'; - -const NavRoutes = () => { - return ( - - - } /> - - - t.default)[0].component} exact={true} /> - t.default)[0].path.toString()} /> - - - ); -}; - -export default NavRoutes; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Calls.css b/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Calls.css deleted file mode 100644 index e69de29..0000000 diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Calls.jsx b/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Calls.jsx deleted file mode 100644 index cd8c9b7..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Calls.jsx +++ /dev/null @@ -1,23 +0,0 @@ -import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar } from '@ionic/react'; -import './Calls.css'; - -const Calls = () => { - return ( - - - - Calls - - - - - - Calls - - - - - ); -}; - -export default Calls; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Chat.css b/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Chat.css deleted file mode 100644 index 3382f0d..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Chat.css +++ /dev/null @@ -1,289 +0,0 @@ -.chat-page ion-header, -.chat-page ion-toolbar { - - --min-height: 3.5rem; -} - -.chat-page ion-title { - - margin-left: -3.5rem; -} - -.chat-page ion-title p { - - padding: 0; - margin: 0; -} - -.chat-contact { - - display: flex; - flex-direction: row; - align-content: center; - justify-content: center; - align-items: center; -} - -.chat-contact img { - - height: 2rem; - width: 2rem; - border-radius: 500px; -} - -.chat-contact-details { - - display: flex; - flex-direction: column; - margin-left: 0.5rem; - text-align: left; -} - -.chat-contact-details p { - - font-size: 0.9rem; -} - -.chat-contact-details ion-text { - - font-size: 0.7rem; - font-weight: 400; -} - -.chat-bubble { - - border-radius: 5px; - margin-left: 1rem; - margin-right: 1rem; - margin-top: 0.8rem; - - padding: 0.5rem; - max-width: 80%; - clear: both; - - display: flex; - flex-direction: row; - transition: 0.2s all linear; -} - -.chat-bubble:last-child { - - margin-bottom: 0.8rem; -} - -.bubble-sent { - - background-color: var(--chat-bubble-sent-color); - float: right; -} - -.bubble-received { - - background-color: var(--chat-bubble-received-color); - float: left; -} - -.chat-bubble p { - - padding: 0; - margin: 0; -} - -.chat-footer { - - background-color: rgb(22, 22, 22); - border-top: 1px solid rgb(47, 47, 47); - padding-top: 0.2rem; - padding-bottom: 1rem; -} - -.chat-footer ion-textarea { - - background-color: rgb(31, 31, 31); - border: 1px solid rgb(36, 36, 36); - color: white; - border-radius: 25px; - padding-left: 0.5rem; - caret-color: var(--ion-color-primary); -} - -.chat-footer ion-icon { - - font-size: 1.5rem; - margin-top: 0.2rem; -} - -.chat-input-container { - - width: 70%; - margin-right: 0.75rem; -} - -.chat-send-button { - - margin: 0 !important; - padding: 0 !important; - position: absolute; - right: 17px; - margin-top: -0.2rem !important; - - display: flex; - flex-direction: row; - align-content: center; - align-items: center; - justify-content: center; -} - -.chat-send-button ion-icon { - - color: white; - background-color: var(--ion-color-primary); - font-size: 1.1rem; - border-radius: 500px; - padding: 0.5rem; -} - -.chat-time { - - color: rgb(165, 165, 165); - font-size: 0.75rem; - right: 0; - bottom: 0 !important; - margin: 0; - padding: 0; - margin-top: 5px; -} - -.bubble-arrow { - - position: absolute; - float: left; - left: 6px; - margin-top: -8px; - /* top: 0px; */ -} - -.bubble-arrow.alt { - - position: relative; - bottom: 0px; - left: auto; - right: -3px; - float: right; -} - -.bubble-arrow:after { - - content: ""; - position: absolute; - border-top: 15px solid var(--chat-bubble-received-color); - border-left: 15px solid transparent; - border-radius: 4px 0 0 0px; - width: 0; - height: 0; -} - -.bubble-arrow.alt:after { - - border-top: 15px solid var(--chat-bubble-sent-color); - transform: scaleX(-1); -} - -.chat-reply-to-row { - - bottom: 70px !important; - position: absolute; - - border-left: 4px solid rgb(224, 176, 18); - width: 100%; - background-color: rgb(22, 22, 22); - border-top: 1px solid rgb(47, 47, 47); - padding: 0.5rem; - padding-bottom: 0.8rem; -} - -.chat-reply-to-container { - - display: flex; - flex-direction: column; -} - -.chat-reply-to-name { - - color: rgb(224, 176, 18); - font-weight: 500; - margin-bottom: 0.5rem; -} - -.chat-reply-to-message { - - font-size: 0.8rem; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.all-chats { - - -} - -.chat-bottom-details { - - display: flex; - flex-direction: row; - width: 100%; - align-content: center; - align-items: center; - justify-content: flex-end; - margin-top: 0.4rem; -} - -.chat-bottom-details ion-icon { - - font-size: 0.6rem; - color: grey; - margin-left: 0.5rem; - margin-top: 0.05rem; -} - -.chat-bottom-details span { - - margin: 0; - padding: 0; - font-size: 0.75rem; - color: rgb(190, 190, 190); -} - -.in-chat-reply-to-container { - - background-color: rgba(0, 0, 0, 0.2); - border-left: 3px solid rgb(224, 176, 18); - height: fit-content; - padding: 0.5rem; - border-radius: 5px; - margin-bottom: 0.5rem; -} - -.in-chat-reply-to-container h1 { - - margin: 0; - padding: 0; - color: rgb(224, 176, 18); - font-size: 0.8rem; -} - -.in-chat-reply-to-container p { - - color: rgb(167, 167, 167); - font-size: 0.8rem; -} - -.bottom-container { - - position: absolute; - bottom: 4.5rem; - height: 5rem; - background-color: red; - width: 100%; -} \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Chat.jsx b/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Chat.jsx deleted file mode 100644 index 9bbab03..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Chat.jsx +++ /dev/null @@ -1,378 +0,0 @@ -import { IonBackButton, IonButton, IonButtons, IonCol, IonContent, IonFooter, IonGrid, IonHeader, IonIcon, IonPage, IonRow, IonText, IonTextarea, IonTitle, IonToolbar, CreateAnimation, createGesture, useIonViewWillEnter, IonActionSheet, IonToast } from "@ionic/react"; -import { addOutline, alertOutline, callOutline, cameraOutline, micOutline, send, shareOutline, starOutline, trashOutline, videocamOutline } from "ionicons/icons"; -import { useRef } from "react"; -import { useEffect, useState } from "react"; -import { useParams } from "react-router"; -import { ChatStore, ContactStore } from "../store"; -import { getNotificationCount, markAllAsRead, sendChatMessage, starChatMessage } from "../store/ChatStore"; -import { getChat, getChats, getContact } from "../store/Selectors"; - -import { useLongPress } from 'react-use'; -import "./Chat.css" -import ReplyTo from "../components/ReplyTo"; -import { ChatBottomDetails } from "../components/ChatBottomDetails"; -import { ChatRepliedQuote } from "../components/ChatRepliedQuote"; -import { useCamera } from "../hooks/useCamera"; -import { useGallery } from "../hooks/useGallery"; - -const Chat = () => { - - const params = useParams(); - - // Global State - const chat = ChatStore.useState(getChat(params.contact_id)); - const chats = ChatStore.useState(getChats); - const contact = ContactStore.useState(getContact(params.contact_id)); - const notificationCount = getNotificationCount(chats); - - const { takePhoto } = useCamera(); - const { prompt } = useGallery(); - - // Local state - const [ message, setMessage ] = useState(""); - const [ showSendButton, setShowSendButton ] = useState(false); - const [ replyToMessage, setReplyToMessage ] = useState(false); - const [ messageSent, setMessageSent ] = useState(false); - - const [ showActionSheet, setShowActionSheet ] = useState(false); - const [ actionMessage, setActionMessage ] = useState(false); - - const [ showToast, setShowToast ] = useState(false); - const [ toastMessage, setToastMessage ] = useState(""); - - // Refs - const contentRef = useRef(); - const swiperRefs = useRef([]); - const textareaRef = useRef(); - const sideRef = useRef(); - const sendRef = useRef(); - const replyToAnimationRef = useRef(); - - const actionSheetButtons = [ - - { - text: (actionMessage && actionMessage.starred) ? "Unstar Message" : "Star Message", - icon: starOutline, - handler: () => starChatMessage(params.contact_id, actionMessage.id) - }, - actionMessage && actionMessage.received ? - { - text: "Reply To Message", - icon: shareOutline, - handler: () => showReplyToMessage(actionMessage) - } - : - { - text: "Unsend Message", - icon: alertOutline, - handler: () => toaster("I haven't implemented unsend :) Simple store update though") - }, - { - text: "Delete Message", - icon: trashOutline, - handler: () => toaster("I haven't implemented delete :) Simple store update though"), - role: "destructive" - } - ]; - - useEffect(() => { - - !showActionSheet && setActionMessage(false); - }, [ showActionSheet ]); - - // Scroll to end of content - // Mark all chats as read if we come into a chat - // Set up our swipe events for animations and gestures - useIonViewWillEnter(() => { - - scrollToBottom(); - setupObserver(); - markAllAsRead(params.contact_id); - setSwipeEvents(); - }); - - // For displaying toast messages - const toaster = message => { - - setToastMessage(message); - setShowToast(true); - } - - // Scroll to end of content - const scrollToBottom = async () => { - - contentRef.current.scrollToBottom(); - } - - // Watch for DOM changes - // Then scroll to bottom - // This ensures that the new chat message has *actually* been rendered - // Check this: - // https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver - const setupObserver = () => { - - // Mutation Observers watch for DOM changes - // This will ensure that we scroll to bottom AFTER the new chat has rendered - const observer = new MutationObserver(() => { - - scrollToBottom(); - }); - - // We observe the ion-content (or containing element of chats) - observer.observe(contentRef.current, { - - childList: true - }); - } - - // Long press callback - const onLongPress = (e) => { - - const elementID = e.target.id; - const chatMessageID = elementID.includes("chatText") ? parseInt(elementID.replace("chatText_", "")) : elementID.includes("chatTime") ? parseInt(elementID.replace("chatTime_", "")) : parseInt(elementID.replace("chatBubble_", "")); - - const chatMessage = chat.filter(message => parseInt(message.id) === parseInt(chatMessageID))[0]; - - setActionMessage(chatMessage); - setShowActionSheet(true); - }; - - const longPressEvent = useLongPress(onLongPress, { - - isPreventDefault: true, - delay: 2000, - }); - - const showReplyToMessage = async message => { - - // Activate reply-to functionality - setReplyToMessage(message); - await replyToAnimationRef.current.animation.play(); - contentRef.current.scrollToBottom(300); - } - - const checkBubble = async (bubble, message, event) => { - - if (event.deltaX >= 120) { - - // Activate reply-to functionality - bubble.style.transform = "none"; - showReplyToMessage(message); - } else { - - // Put chat bubble back to original position - bubble.style.transform = "none"; - } - } - - // Function to move a bubble with the deltaX swipe - const moveBubble = (bubble, event) => { - - if (event.velocityX > 0) { - - bubble.style.transform = `translateX(${ event.deltaX }px)`; - } - } - - const setSwipeEvents = () => { - - chat.forEach((message, index) => { - - if (!message.sent) { - - const chatBubble = swiperRefs.current[index]; - - const swipeGesture = createGesture({ - el: chatBubble, - onEnd: e => checkBubble(chatBubble, message, e), - onMove: e => moveBubble(chatBubble, e) - }); - - swipeGesture.enable(); - } - }); - } - - const widthAnimation = { - - property: "width", - fromValue: "110%", - toValue: "100%" - }; - - const fadeAnimation = { - - property: "opacity", - fromValue: "100%", - toValue: "0%" - }; - - const sideButtonsAnimation = { - - duration: 200, - direction: showSendButton ? "normal" : "reverse", - iterations: "1", - fromTo: [ fadeAnimation ], - easing: "ease-in-out" - }; - - const sendButtonAnimation = { - - duration: showSendButton ? 300 : 100, - direction: !showSendButton ? "normal" : "reverse", - iterations: "1", - fromTo: [ fadeAnimation ], - easing: "ease-in-out" - }; - - const textareaAnimation = { - - duration: 200, - direction: !showSendButton ? "normal" : "reverse", - iterations: "1", - fromTo: [ widthAnimation ], - easing: "ease-in-out" - }; - - // Set the state value when message val changes - useEffect(() => { - - setShowSendButton(message !== ""); - }, [ message ]); - - // Play the animations when the state value changes - useEffect(() => { - - textareaRef.current.animation.play(); - sideRef.current.animation.play(); - sendRef.current.animation.play(); - }, [ showSendButton ]); - - const sendMessage = (image = false, imagePath = false) => { - - if (message !== "" || image === true) { - - sendChatMessage(params.contact_id, message, replyToMessage, replyToMessage ? replyToMessage.id : false, image, imagePath); - setMessage(""); - - setMessageSent(true); - setTimeout(() => setMessageSent(false), 10); - image && setTimeout(() => scrollToBottom(), 100); - } - } - - const handlePhoto = async () => { - - const returnedFilePath = await takePhoto(); - sendMessage(true, returnedFilePath); - } - - const handlePrompt = async () => { - - const returnedFilePath = await prompt(); - sendMessage(true, returnedFilePath); - } - - const replyToProps = { - - replyToAnimationRef, - replyToMessage, - setReplyToMessage, - contact: contact.name, - messageSent - }; - - return ( - - - - - 0) ? notificationCount : "" } /> - - -
- avatar -
-

{ contact.name }

- last seen today at 22:10 -
-
-
- - - toaster("As this is a UI only, video calling wouldn't work here.")}> - - - - toaster("As this is a UI only, calling wouldn't work here.")}> - - - -
-
- - - - { chat.map((message, index) => { - - const repliedMessage = chat.filter(subMessage => parseInt(subMessage.id) === parseInt(message.replyID))[0]; - - return ( -
swiperRefs.current[index] = ref } id={ `chatBubble_${ message.id }`} key={ index } className={ `chat-bubble ${ message.sent ? "bubble-sent" : "bubble-received" }` } { ...longPressEvent }> -
- - - - { message.preview } - { message.image && message.imagePath && chat message } - -
- -
-
- ); - })} - - setShowActionSheet(false) } buttons={ actionSheetButtons } /> - - setShowToast(false) } message={ toastMessage } position="bottom" duration="3000" /> -
- - { replyToMessage && } - - - - - - - - -
- - setMessage(e.target.value) } /> - -
- - - - - - - - - - - - - - - - -
-
-
-
- ); -} - -export default Chat; \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Chats.css b/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Chats.css deleted file mode 100644 index c1c674d..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Chats.css +++ /dev/null @@ -1,112 +0,0 @@ -.chat-row { - - display: flex; - flex-direction: row; - /* justify-content: space-between; */ - align-items: center; - /* align-content: center; */ - padding-left: 1rem; -} - -.chat-row ion-item { - - width: 100%; -} - -.chat-row img { - - height: 3rem; - width: 3rem; - border-radius: 500px; - background-color: inherit; -} - -.chat-content { - - padding-bottom: 1rem; - padding-top: 1rem; - width: 100%; -} - -.chat-content h2 { - - font-size: 1rem; - font-weight: 600; -} - -.chat-content p, -.chat-content h2 { - - margin: 0; - padding: 0; -} - -.chat-content p { - - font-size: 1rem; - margin-top: 0.2rem; - color: rgb(153, 153, 153); -} - -.chat-content p ion-icon { - - margin-right: 0.4rem; -} - -.chat-name-date { - - display: flex; - flex-direction: row; - justify-content: space-between; -} - -.chat-details .chat-date { - - color: rgb(153, 153, 153); - font-size: 0.8rem; - padding-left: 0.5rem;; -} - -.chat-details .chat-unread { - - color: var(--ion-color-primary); -} - -.chat-notification-count { - - margin: 0; - padding: 0; -} - -.chat-details { - - display: flex; - flex-direction: column; - align-content: flex-end; - justify-content: flex-end; - align-content: flex-end; - align-items: flex-end; -} - -.chat-notification { - - font-size: 0.7rem; - padding: 0.2rem; - background-color: var(--ion-color-primary); - border-radius: 500px; - display: flex; - flex-direction: column; - align-content: center; - justify-content: center; - align-content: center; - align-items: center; - height: 1rem; - width: 1rem; -} - -.chat-content-container { - - display: flex; - flex-direction: row; - justify-content: space-between; -} \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Chats.jsx b/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Chats.jsx deleted file mode 100644 index e2e454f..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Chats.jsx +++ /dev/null @@ -1,79 +0,0 @@ -import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar, IonSearchbar, IonButtons, IonButton, IonIcon, IonItem, IonModal } from '@ionic/react'; -import { checkmarkDone, createOutline } from 'ionicons/icons'; -import './Chats.css'; - -import { ChatStore, ContactStore } from '../store'; -import { getContacts, getChats } from '../store/Selectors'; -import { useEffect, useState } from 'react'; -import ChatItem from '../components/ChatItem'; -import { useRef } from 'react'; -import ContactModal from '../components/ContactModal'; - -const Chats = () => { - - const pageRef = useRef(); - const contacts = ContactStore.useState(getContacts); - const latestChats = ChatStore.useState(getChats); - - const [ results, setResults ] = useState(latestChats); - const [ showContactModal, setShowContactModal ] = useState(false); - - useEffect(() => { - - setResults(latestChats); - }, [ latestChats ]); - - const search = e => { - - const searchTerm = e.target.value; - - if (searchTerm !== "") { - - const searchTermLower = searchTerm.toLowerCase(); - - const newResults = latestChats.filter(chat => contacts.filter(c => c.id === chat.contact_id)[0].name.toLowerCase().includes(searchTermLower)); - setResults(newResults); - } else { - - setResults(latestChats); - } - } - - return ( - - - - - Edit - - - setShowContactModal(true) }> - - - - Chats - - - - - - Chats - - search(e) } /> - - - - { results.map((chat, index) => { - - return ; - })} - - setShowContactModal(false) }> - setShowContactModal(false) } /> - - - - ); -}; - -export default Chats; \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Settings.jsx b/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Settings.jsx deleted file mode 100644 index 79873c4..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Settings.jsx +++ /dev/null @@ -1,120 +0,0 @@ -import { IonCardSubtitle, IonCol, IonContent, IonHeader, IonIcon, IonItem, IonList, IonPage, IonRow, IonText, IonTitle, IonToolbar } from '@ionic/react'; -import { camera, cloudUpload, cloudUploadOutline, heart, helpOutline, informationOutline, key, laptop, laptopOutline, logoWhatsapp, mailUnreadOutline, notificationsOutline, pencil, qrCodeOutline, star } from 'ionicons/icons'; -import styles from './Settings.module.scss'; - -const Settings = () => { - - const settings = [ - - [ - { - title: "Starred Messages", - url: "/starred-messages", - icon: star, - color: "rgb(255, 208, 0)" - }, - { - title: "WhatsApp Web/Desktop", - icon: laptopOutline, - color: "rgb(33, 165, 114)" - } - ], - [ - { - title: "Account", - icon: key, - color: "rgb(0, 81, 255)" - }, - { - title: "Chats", - icon: logoWhatsapp, - color: "rgb(79, 182, 96)" - }, - { - title: "Notifications", - icon: mailUnreadOutline, - color: "rgb(233, 46, 46)" - }, - { - title: "Storage and Data", - icon: cloudUploadOutline, - color: "rgb(79, 182, 96)" - } - ], - [ - { - title: "Help", - icon: informationOutline, - color: "rgb(0, 81, 255)" - }, - { - title: "Tell a Friend", - icon: heart, - color: "rgb(228, 70, 70)" - } - ] - ]; - - return ( - - - - Settings - - - - - - Settings - - - - - avatar - - - Alan Montgomery - -
- This is my status! -
- - - - - - -
- - { settings.map((setting, index) => { - - return ( - - - - { setting.map((option, index) => { - - var itemStyle = { "--setting-item-color": option.color }; - - return ( - - - -

{ option.title }

-
- ); - })} -
- ); - })} - -
- from - IONIC React HUB -
-
-
- ); -}; - -export default Settings; \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Settings.module.scss b/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Settings.module.scss deleted file mode 100644 index 7388538..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Settings.module.scss +++ /dev/null @@ -1,69 +0,0 @@ -.settingsPage { - - ion-item { - - --background: rgb(27, 27, 27); - background: rgb(27, 27, 27); - border-top: 1px solid rgb(41, 41, 41); - border-bottom: 1px solid rgb(41, 41, 41); - padding: 0.5rem; - } -} - -.settingsList { - - ion-item { - - --background: rgb(27, 27, 27); - background: rgb(27, 27, 27); - // border: none !important; - border-top: 1px solid rgb(34, 34, 34); - border-bottom: 1px solid rgb(36, 36, 36); - padding: 0; - - p { - margin: 0; - } - - ion-icon { - - border-radius: 5px; - padding: 0.2rem; - font-size: 1.4rem; - margin-right: 1.2rem; - --setting-item-color: white; - background-color: var(--setting-item-color); - color: rgb(233, 46, 46); - } - } -} - -.smallText { - - font-size: 0.9rem; -} - -.statusAvatar { - - padding: 0.5rem; -} - -.statusAvatar { - - img { - - height: 3.5rem; - width: 3.5rem; - border-radius: 500px; - } -} - -.statusActions { - - ion-icon { - - padding: 0.5rem; - background-color: rgb(56, 56, 56); - border-radius: 500px; - } -} \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Starred.jsx b/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Starred.jsx deleted file mode 100644 index 7512537..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Starred.jsx +++ /dev/null @@ -1,87 +0,0 @@ -import { IonBackButton, IonContent, IonHeader, IonIcon, IonPage, IonTitle, IonToolbar, useIonViewWillEnter } from '@ionic/react'; -import { chevronForward } from 'ionicons/icons'; -import { useState } from 'react'; -import { ChatStore, ContactStore } from '../store'; -import { getChats, getContacts } from '../store/Selectors'; - -import "./Starred.scss"; - -const Starred = () => { - - const contacts = ContactStore.useState(getContacts); - const chats = ChatStore.useState(getChats); - - const [ starredMessages, setStarredMessages ] = useState(false); - - useIonViewWillEnter(() => { - - var tempChats = [ ...chats ]; - var starred = []; - - tempChats.forEach(tempChat => { - - tempChat.chats.forEach(chat => { - - if (chat.starred) { - - starred.push({ - - contact_id: tempChat.contact_id, - ...chat - }); - } - }); - }); - - setStarredMessages(starred); - }); - - return ( - - - - - Starred Messages - - - - - { starredMessages && starredMessages.map(starredMessage => { - - const { id, contact_id, date, preview, received } = starredMessage; - const contact = contacts.filter(c => c.id === contact_id)[0]; - - return ( -
-
- -
- starred avatar -

{ contact.name }

-
- -

{ date }

- -
-
-

{ preview }

- -
-
- ); - })} - - { starredMessages.length < 1 && - -
- no starred -

No Starred Messages

-

Tap and hold on any message to star it, so you can easily find it later.

-
- } -
-
- ); -}; - -export default Starred; \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Starred.scss b/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Starred.scss deleted file mode 100644 index 8bf228a..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Starred.scss +++ /dev/null @@ -1,117 +0,0 @@ -.starred-message { - - display: flex; - flex-direction: column; - margin-top: 1rem; -} - -.starred-header { - - display: flex; - flex-direction: row; - justify-content: space-between; -} - -.starred-contact { - - display: flex; - flex-direction: row; - align-content: center; - align-items: center; - margin-left: 1rem; - - img { - - height: 2rem; - width: 2rem; - border-radius: 500px; - } - - p { - - margin-left: 1rem; - font-size: 0.9rem; - font-weight: 500; - } -} - -.starred-date { - - margin-right: 1.5rem; - color: rgb(138, 138, 138); - font-size: 0.8rem; -} - -.starred-content { - - display: flex; - flex-direction: row; - align-content: center; - align-items: center; - justify-content: space-between; - margin-right: 1.5rem; - margin-left: 3.2rem; - - ion-icon { - - color: rgb(138, 138, 138); - font-size: 1rem; - } - - p { - - border-radius: 10px; - max-width: 75%; - padding: 0.5rem; - margin: 0; - margin-bottom: 1rem; - } -} - -.received-starred-content { - - p { - - background-color: var(--chat-bubble-received-color); - } -} - -.sent-starred-content { - - p { - - background-color: var(--chat-bubble-sent-color); - } -} - -.starred-content:not(:first-child) { - - border-bottom: 2px solid rgb(24, 24, 24); -} - -.no-starred { - - padding: 3rem; - margin: 0 auto; - text-align: center; - margin-top: 3rem; - - img { - - border-radius: 500px; - width: 10rem; - height: 10rem; - } - - h1 { - - color: rgb(165, 165, 165); - font-size: 1.1rem; - } - - p { - - color: rgb(165, 165, 165); - font-size: 0.9rem; - } -} \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Status.jsx b/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Status.jsx deleted file mode 100644 index 3b40f12..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Status.jsx +++ /dev/null @@ -1,53 +0,0 @@ -import { IonContent, IonCardTitle, IonIcon, IonCol, IonItem, IonHeader, IonPage, IonTitle, IonToolbar, IonButtons, IonButton, IonText, IonRow } from '@ionic/react'; -import { add, camera, pencil } from 'ionicons/icons'; -import styles from './Status.module.scss'; - -const Status = () => { - return ( - - - - - Privacy - - Status - - - - - - Status - - - - - avatar -
- -
- - - My Status - -
- Add to my status -
- - - - - - - - - - -
- -

No recent updates to show right now.

-
-
- ); -}; - -export default Status; diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Status.module.scss b/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Status.module.scss deleted file mode 100644 index 5962b55..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/pages/Status.module.scss +++ /dev/null @@ -1,73 +0,0 @@ -.statusPage { - - ion-item { - - --background: rgb(27, 27, 27); - background: rgb(27, 27, 27); - border-top: 1px solid rgb(41, 41, 41); - border-bottom: 1px solid rgb(41, 41, 41); - padding: 0.5rem; - } -} - -.updates { - - margin-top: 2rem; - text-align: center; - background: rgb(27, 27, 27); - border-top: 1px solid rgb(41, 41, 41); - border-bottom: 1px solid rgb(41, 41, 41); - padding: 1rem; - color: rgb(144, 144, 144); - - ion-text { - - text-align: center; - } -} - -.smallText { - - font-size: 0.9rem; -} - -.statusAvatar { - - padding: 0.5rem; -} - -.statusAvatar { - - img { - - height: 3.5rem; - width: 3.5rem; - border-radius: 500px; - } -} - -.statusActions { - - ion-icon { - - padding: 0.5rem; - background-color: rgb(56, 56, 56); - border-radius: 500px; - } -} - -.imageUpload { - - display: flex; - flex-direction: row; - justify-content: center; - align-content: center; - align-items: center; - position: absolute; - background-color: var(--ion-color-primary); - border-radius: 500px; - height: 1.2rem; - width: 1.2rem; - margin-left: 2.5rem; - margin-top: 1rem; -} \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/store/ChatStore.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/store/ChatStore.js deleted file mode 100644 index 3b4e6fb..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/store/ChatStore.js +++ /dev/null @@ -1,384 +0,0 @@ -import { Store } from 'pullstate'; - -const ChatStore = new Store({ - - chats: [ - { - id: 1, - contact_id: 1, - chats: [ - - { - id: 1, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: true, - sent: false, - date: "20:05", - read: false, - starred: false - }, - { - id: 2, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: false, - sent: true, - date: "20:05", - read: false, - starred: false - }, - { - id: 3, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: true, - sent: false, - date: "20:05", - read: false, - starred: false - }, - { - id: 4, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: false, - sent: true, - date: "20:05", - read: false, - starred: false - }, - { - id: 5, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: true, - sent: false, - date: "20:05", - read: false, - starred: false - }, - { - id: 6, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: false, - sent: true, - date: "20:05", - read: false, - starred: false - }, - { - id: 7, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: true, - sent: false, - date: "20:05", - read: false, - starred: false - }, - { - id: 8, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: false, - sent: true, - date: "20:05", - read: false, - starred: false - }, - { - id: 9, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: true, - sent: false, - date: "20:05", - read: false, - starred: false - }, - { - id: 10, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: false, - sent: true, - date: "20:05", - read: false, - starred: false - }, - { - id: 11, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: true, - sent: false, - date: "20:05", - read: false, - starred: false - }, - { - id: 12, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: false, - sent: true, - date: "20:05", - read: false, - starred: false - }, - { - id: 13, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: true, - sent: false, - date: "20:05", - read: false, - starred: false - }, - { - id: 14, - preview: "This is a test whatsapp message inside the whatsapp clone app", - received: false, - sent: true, - date: "20:10", - read: false, - starred: false - } - ] - }, - { - id: 2, - contact_id: 2, - chats: [ - - { - id: 1, - preview: "Excited for the Ioniconf 2021! The 23rd can't come quick enough", - received: false, - sent: true, - date: "Yesterday", - read: true, - starred: false - } - ] - }, - { - id: 3, - contact_id: 3, - chats: [ - - { - id: 1, - preview: "Excited for the Ioniconf 2021! The 23rd can't come quick enough", - received: false, - sent: true, - date: "Saturday", - read: true, - starred: false - } - ] - }, - { - id: 4, - contact_id: 4, - chats: [ - - { - id: 1, - preview: "Hey Alan, this is a test whatsapp message", - received: true, - sent: false, - date: "Friday", - read: false, - starred: false - } - ] - }, - { - id: 5, - contact_id: 5, - chats: [ - - { - id: 1, - preview: "Hey Alan, this is a test whatsapp message", - received: true, - sent: false, - date: "Thursday", - read: false, - starred: false - } - ] - }, - { - id: 6, - contact_id: 6, - chats: [ - - { - id: 1, - preview: "Hey Alan, this is a test received whatsapp message", - received: true, - sent: false, - date: "Wednesday", - read: false, - starred: false - }, - { - id: 2, - preview: "Hey Josh, this is a test sent whatsapp message", - received: true, - sent: true, - date: "Wednesday", - read: true, - starred: false - }, - { - id: 3, - preview: "Awesome man! This seems to be coming together OK!", - received: true, - sent: false, - date: "Wednesday", - read: true, - starred: false - } - ] - }, - { - id: 7, - contact_id: 7, - chats: [ - - { - id: 1, - preview: "Goodluck on the quest to space, the moon and mars!", - received: true, - sent: false, - date: "08/06/2021", - read: true, - starred: false - } - ] - }, - { - id: 8, - contact_id: 8, - chats: [ - - { - id: 1, - preview: "Hey Bill, This is a test sent message to your whatsapp", - received: true, - sent: false, - date: "05/06/2021", - read: true, - starred: false - } - ] - }, - { - id: 9, - contact_id: 10, - chats: [ - - { - id: 1, - preview: "This is Alans WhatsApp clone using the Ionic Framework and CapacitorJS for some native functionality.", - received: true, - sent: false, - date: "Wednesday", - read: false, - starred: false - }, - { - id: 2, - preview: "Yep, and don't forget the Ionic Animations for the slick UI transitions you see, and some Ionic Gestures for sliding etc, as well as some other things!", - received: true, - sent: true, - date: "Wednesday", - read: true, - starred: false - }, - { - id: 3, - preview: "Cool! It looks good, can we get another teaser?", - received: true, - sent: false, - date: "Wednesday", - read: true, - starred: false - }, - { - id: 4, - preview: "Sure... I'll post one on Twitter now!", - received: false, - sent: true, - date: "Wednesday", - read: true, - starred: false - } - ] - }, - ] -}); - -export const getNotificationCount = (allChats) => { - - let notificationCount = 0; - - allChats.forEach(chats => { - - chats.chats.forEach(chat => { - - if (!chat.read) { - - notificationCount++; - } - }) - }); - - return notificationCount; -} - -export const markAllAsRead = contactId => { - - ChatStore.update(s => { - - const chatIndex = s.chats.findIndex(chat => chat.contact_id === parseInt(contactId)); - - s.chats[chatIndex].chats.forEach(chat => { - - chat.read = true; - }); - }); -} - -export const sendChatMessage = (contactId, message, reply = false, replyID = false, image = false, imagePath = false) => { - - const today = new Date(); - const currentTime = `${ today.getHours() < 10 ? `0${ today.getHours() }` : today.getHours() }:${ today.getMinutes() < 10 ? `0${ today.getMinutes() }` : today.getMinutes() }`; - - ChatStore.update(s => { - - const chatIndex = s.chats.findIndex(chat => chat.contact_id === parseInt(contactId)); - const newChat = { - - id: s.chats[chatIndex].length + 1, - preview: message, - received: false, - sent: true, - date: currentTime, - read: true, - starred: false, - reply, - replyID, - image: image, - imagePath: imagePath - }; - - s.chats[chatIndex].chats.push(newChat); - }); -} - -export const starChatMessage = (contactId, messageId) => { - - ChatStore.update(s => { - - const chatIndex = s.chats.findIndex(chat => chat.contact_id === parseInt(contactId)); - const messageIndex = s.chats[chatIndex].chats.findIndex(message => message.id === parseInt(messageId)); - - s.chats[chatIndex].chats[messageIndex].starred = !s.chats[chatIndex].chats[messageIndex].starred; - }); -} - -export default ChatStore; \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/store/ContactStore.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/store/ContactStore.js deleted file mode 100644 index 655aa50..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/store/ContactStore.js +++ /dev/null @@ -1,59 +0,0 @@ -import { Store } from 'pullstate'; - -const ContactStore = new Store({ - - contacts: [ - { - id: 1, - name: "Amy Sister", - avatar: "/assets/amy.jpeg" - }, - { - id: 2, - name: "Max Lynch", - avatar: "/assets/max.jpeg" - }, - { - id: 3, - name: "Mike Hartington", - avatar: "/assets/mike.jpeg" - }, - { - id: 4, - name: "Henk Jurriens", - avatar: "/assets/henk.jpeg" - }, - { - id: 5, - name: "Simon Grimm", - avatar: "/assets/simon.jpeg" - }, - { - id: 6, - name: "Josh Morony", - avatar: "/assets/josh.jpeg" - }, - { - id: 7, - name: "Elon Musk", - avatar: "/assets/elon.jpeg" - }, - { - id: 8, - name: "Bill Gates", - avatar: "/assets/bill.jpeg" - }, - { - id: 9, - name: "Mark Zuckerberg", - avatar: "/assets/mark.jpeg" - }, - { - id: 10, - name: "Ionic Framework (not)", - avatar: "/assets/ionic.png" - }, - ] -}); - -export default ContactStore; \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/store/Selectors.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/store/Selectors.js deleted file mode 100644 index e6aefe7..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/store/Selectors.js +++ /dev/null @@ -1,13 +0,0 @@ -import { createSelector } from 'reselect'; - -const getState = state => state; - -// General getters -export const getContacts = createSelector(getState, state => state.contacts); -export const getChats = createSelector(getState, state => state.chats); - -// More specific getters -export const getChat = contactId => createSelector(getState, state => state.chats.filter(c => parseInt(c.contact_id) === parseInt(contactId))[0].chats); -export const getContact = contactId => createSelector(getState, state => state.contacts.filter(c => parseInt(c.id) === parseInt(contactId))[0]); - -export const getChatNotificationCount = contactId => createSelector(getState, state => (state.chats.filter(c => parseInt(c.contact_id) === parseInt(contactId))[0].chats).filter(chat => chat.read === false)); \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/store/index.js b/03_source/mobile/src/pages/DemoReactWhatsAppClone/store/index.js deleted file mode 100644 index c88c7f4..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/store/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export { default as ContactStore } from "./ContactStore"; -export { default as ChatStore } from "./ChatStore"; \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoReactWhatsAppClone/style.scss b/03_source/mobile/src/pages/DemoReactWhatsAppClone/style.scss deleted file mode 100644 index 37c1e1a..0000000 --- a/03_source/mobile/src/pages/DemoReactWhatsAppClone/style.scss +++ /dev/null @@ -1,103 +0,0 @@ -#about-page { - ion-toolbar { - position: absolute; - - top: 0; - left: 0; - right: 0; - - --background: transparent; - --color: white; - } - - ion-toolbar ion-back-button, - ion-toolbar ion-button, - ion-toolbar ion-menu-button { - --color: white; - } - - .about-header { - position: relative; - - width: 100%; - height: 30%; - } - - .about-header .about-image { - position: absolute; - - top: 0; - left: 0; - bottom: 0; - right: 0; - - background-position: center; - background-size: cover; - background-repeat: no-repeat; - - opacity: 0; - - transition: opacity 500ms ease-in-out; - } - - .about-header .madison { - background-image: url('/assets/WeatherDemo/img/about/madison.jpg'); - } - - .about-header .austin { - background-image: url('/assets/WeatherDemo/img/about/austin.jpg'); - } - - .about-header .chicago { - background-image: url('/assets/WeatherDemo/img/about/chicago.jpg'); - } - - .about-header .seattle { - background-image: url('/assets/WeatherDemo/img/about/seattle.jpg'); - } - - .about-info { - position: relative; - margin-top: -10px; - border-radius: 10px; - background: var(--ion-background-color, #fff); - z-index: 2; // display rounded border above header image - } - - .about-info h3 { - margin-top: 0; - } - - .about-info ion-list { - padding-top: 0; - } - - .about-info p { - line-height: 130%; - - color: var(--ion-color-dark); - } - - .about-info ion-icon { - margin-inline-end: 32px; - } - - /* - * iOS Only - */ - - .ios .about-info { - --ion-padding: 19px; - } - - .ios .about-info h3 { - font-weight: 700; - } -} - -#date-input-popover { - --offset-y: -var(--ion-safe-area-bottom); - - --max-width: 90%; - --width: 336px; -} diff --git a/03_source/mobile/src/pages/DemoSwiperjsTutorial/AppPages/Tab1.jsx b/03_source/mobile/src/pages/DemoSwiperjsTutorial/AppPages/Tab1.jsx deleted file mode 100644 index 54ab2b9..0000000 --- a/03_source/mobile/src/pages/DemoSwiperjsTutorial/AppPages/Tab1.jsx +++ /dev/null @@ -1,96 +0,0 @@ -import { - IonButton, - IonButtons, - IonCol, - IonContent, - IonHeader, - IonIcon, - IonPage, - IonRow, - IonTitle, - IonToolbar, - useIonRouter, -} from '@ionic/react'; - -import { Geolocation } from '@capacitor/geolocation'; -import { useEffect, useState } from 'react'; -import { SkeletonDashboard } from '../components/SkeletonDashboard'; -import { chevronBackOutline, refreshOutline } from 'ionicons/icons'; -import { CurrentWeather } from '../components/CurrentWeather'; - -function Tab1() { - const router = useIonRouter(); - - const [currentWeather, setCurrentWeather] = useState(false); - - useEffect(() => { - getCurrentPosition(); - }, []); - - const getCurrentPosition = async () => { - setCurrentWeather(false); - const coordinates = await Geolocation.getCurrentPosition(); - getAddress(coordinates.coords); - }; - - const getAddress = async (coords) => { - const query = `${coords.latitude},${coords.longitude}`; - const response = await fetch( - `https://api.weatherapi.com/v1/current.json?key=f93eb660b2424258bf5155016210712&q=${query}` - ); - - const data = await response.json(); - console.log(data); - setCurrentWeather(data); - }; - - // const router = useIonRouter(); - function handleBackClick() { - router.goBack(); - } - - return ( - - - - My Weather - - - getCurrentPosition()}> - - - - - - handleBackClick()}> - - - - - - - - - Dashboard - - - - - -

Here's your location based weather

-
-
- -
- {currentWeather ? ( - - ) : ( - - )} -
-
-
- ); -} - -export default Tab1; diff --git a/03_source/mobile/src/pages/DemoSwiperjsTutorial/AppPages/Tab2.jsx b/03_source/mobile/src/pages/DemoSwiperjsTutorial/AppPages/Tab2.jsx deleted file mode 100644 index 216544f..0000000 --- a/03_source/mobile/src/pages/DemoSwiperjsTutorial/AppPages/Tab2.jsx +++ /dev/null @@ -1,81 +0,0 @@ -import { - IonButton, - IonCol, - IonContent, - IonHeader, - IonPage, - IonRow, - IonSearchbar, - IonTitle, - IonToolbar, -} from '@ionic/react'; -import { useState } from 'react'; -import { CurrentWeather } from '../components/CurrentWeather'; - -function Tab2() { - const [search, setSearch] = useState(''); - const [currentWeather, setCurrentWeather] = useState(false); - - const performSearch = async () => { - getAddress(search); - }; - - const getAddress = async (city) => { - const response = await fetch( - `https://api.weatherapi.com/v1/current.json?key=f93eb660b2424258bf5155016210712&q=${city}&aqi=no` - ); - const data = await response.json(); - - if (data && data.current && data.location) { - setCurrentWeather(data); - } - }; - - return ( - - - - Search - - - - - - Search - - - - - - setSearch(e.target.value)} - /> - - - - - Search - - - - -
- {currentWeather ? ( - - ) : ( -

Your search result will appear here

- )} -
-
-
- ); -} - -export default Tab2; diff --git a/03_source/mobile/src/pages/DemoSwiperjsTutorial/components/CurrentWeather/WeatherProperty.tsx b/03_source/mobile/src/pages/DemoSwiperjsTutorial/components/CurrentWeather/WeatherProperty.tsx deleted file mode 100644 index 52949af..0000000 --- a/03_source/mobile/src/pages/DemoSwiperjsTutorial/components/CurrentWeather/WeatherProperty.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import { IonCardSubtitle, IonCol, IonIcon, IonNote, IonRow } from '@ionic/react'; -import { pulseOutline, sunnyOutline, thermometerOutline } from 'ionicons/icons'; -import { useEffect, useState } from 'react'; - -export const WeatherProperty = ({ type, currentWeather }: { type: any; currentWeather: any }) => { - const [property, setProperty] = useState(false); - - const properties = { - wind: { - isIcon: false, - icon: '/assets/WeatherDemo/wind.png', - alt: 'wind', - label: 'Wind', - value: `${currentWeather.current.wind_mph}mph`, - }, - feelsLike: { - isIcon: true, - icon: thermometerOutline, - alt: 'feels like', - label: 'Feels like', - value: `${currentWeather.current.feelslike_c}°C`, - }, - indexUV: { - isIcon: true, - icon: sunnyOutline, - alt: 'index uv', - label: 'Index UV', - value: currentWeather.current.uv, - }, - pressure: { - isIcon: true, - icon: pulseOutline, - alt: 'pressure', - label: 'Pressure', - value: `${currentWeather.current.pressure_mb} mbar`, - }, - }; - - useEffect(() => { - setProperty(properties[type]); - }, [type]); - - return ( - - - - {!property.isIcon && ( - {property.alt} - )} - {property.isIcon && ( - - )} - - - - {property.label} - {property.value} - - - - ); -}; diff --git a/03_source/mobile/src/pages/DemoSwiperjsTutorial/components/CurrentWeather/index.tsx b/03_source/mobile/src/pages/DemoSwiperjsTutorial/components/CurrentWeather/index.tsx deleted file mode 100644 index ceb4332..0000000 --- a/03_source/mobile/src/pages/DemoSwiperjsTutorial/components/CurrentWeather/index.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { IonCard, IonCardContent, IonGrid, IonRow, IonText, IonCardTitle } from '@ionic/react'; -import { WeatherProperty } from './WeatherProperty'; - -export const CurrentWeather = ({ currentWeather }: { currentWeather: any }) => ( - - - - -

- {currentWeather.location.region},{' '} - {currentWeather.location.country} -

-
- -
- condition - - -

{currentWeather.current.condition.text}

-
- - -

{new Date(currentWeather.location.localtime).toDateString()}

-
-
- - - {currentWeather.current.temp_c}℃ - - - - - - - - - - - - - -
-
-
-); diff --git a/03_source/mobile/src/pages/DemoSwiperjsTutorial/components/SkeletonDashboard/index.tsx b/03_source/mobile/src/pages/DemoSwiperjsTutorial/components/SkeletonDashboard/index.tsx deleted file mode 100644 index 234fb9b..0000000 --- a/03_source/mobile/src/pages/DemoSwiperjsTutorial/components/SkeletonDashboard/index.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import { - IonCard, - IonCardContent, - IonCardSubtitle, - IonCardTitle, - IonCol, - IonGrid, - IonIcon, - IonNote, - IonRow, - IonSkeletonText, - IonText, - IonThumbnail, -} from '@ionic/react'; -import { pulseOutline, sunnyOutline, thermometerOutline } from 'ionicons/icons'; - -export const SkeletonDashboard = () => ( - - - - -

- -

-
- -
- - - - - -

- -

-
- - -

- -

-
-
- - - - - - - - - - - wind - - - - Wind - - - - - - - - - - - - - - - Feels like - - - - - - - - - - - - - - - - - Index UV - - - - - - - - - - - - - - - Pressure - - - - - - - - -
-
-
-); diff --git a/03_source/mobile/src/pages/DemoSwiperjsTutorial/index.tsx b/03_source/mobile/src/pages/DemoSwiperjsTutorial/index.tsx deleted file mode 100644 index c0a996f..0000000 --- a/03_source/mobile/src/pages/DemoSwiperjsTutorial/index.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { IonIcon, IonLabel, IonRouterOutlet, IonTabBar, IonTabButton, IonTabs } from '@ionic/react'; - -import { cloudOutline, searchOutline } from 'ionicons/icons'; -import { Route, Redirect } from 'react-router'; - -import Tab1 from './AppPages/Tab1'; -import Tab2 from './AppPages/Tab2'; - -import './style.scss'; - -function DemoSwiperjsTutorial() { - return ( - - - - - - - - - - - - - {/* */} - - - - Dashboard - - - - Search - - - - ); -} - -export default DemoSwiperjsTutorial; diff --git a/03_source/mobile/src/pages/DemoSwiperjsTutorial/style.scss b/03_source/mobile/src/pages/DemoSwiperjsTutorial/style.scss deleted file mode 100644 index 37c1e1a..0000000 --- a/03_source/mobile/src/pages/DemoSwiperjsTutorial/style.scss +++ /dev/null @@ -1,103 +0,0 @@ -#about-page { - ion-toolbar { - position: absolute; - - top: 0; - left: 0; - right: 0; - - --background: transparent; - --color: white; - } - - ion-toolbar ion-back-button, - ion-toolbar ion-button, - ion-toolbar ion-menu-button { - --color: white; - } - - .about-header { - position: relative; - - width: 100%; - height: 30%; - } - - .about-header .about-image { - position: absolute; - - top: 0; - left: 0; - bottom: 0; - right: 0; - - background-position: center; - background-size: cover; - background-repeat: no-repeat; - - opacity: 0; - - transition: opacity 500ms ease-in-out; - } - - .about-header .madison { - background-image: url('/assets/WeatherDemo/img/about/madison.jpg'); - } - - .about-header .austin { - background-image: url('/assets/WeatherDemo/img/about/austin.jpg'); - } - - .about-header .chicago { - background-image: url('/assets/WeatherDemo/img/about/chicago.jpg'); - } - - .about-header .seattle { - background-image: url('/assets/WeatherDemo/img/about/seattle.jpg'); - } - - .about-info { - position: relative; - margin-top: -10px; - border-radius: 10px; - background: var(--ion-background-color, #fff); - z-index: 2; // display rounded border above header image - } - - .about-info h3 { - margin-top: 0; - } - - .about-info ion-list { - padding-top: 0; - } - - .about-info p { - line-height: 130%; - - color: var(--ion-color-dark); - } - - .about-info ion-icon { - margin-inline-end: 32px; - } - - /* - * iOS Only - */ - - .ios .about-info { - --ion-padding: 19px; - } - - .ios .about-info h3 { - font-weight: 700; - } -} - -#date-input-popover { - --offset-y: -var(--ion-safe-area-bottom); - - --max-width: 90%; - --width: 336px; -} diff --git a/03_source/mobile/src/pages/Favourites/index.tsx b/03_source/mobile/src/pages/Favourites/index.tsx index 672c11b..41320d2 100644 --- a/03_source/mobile/src/pages/Favourites/index.tsx +++ b/03_source/mobile/src/pages/Favourites/index.tsx @@ -38,11 +38,17 @@ import '../SpeakerList.scss'; import { getEvents } from '../../api/getEvents'; import { format } from 'date-fns'; import { Event } from './types'; -import { chevronBackCircleOutline, chevronBackOutline, chevronDownCircleOutline, heart, menuOutline } from 'ionicons/icons'; +import { + chevronBackCircleOutline, + chevronBackOutline, + chevronDownCircleOutline, + heart, + menuOutline, +} from 'ionicons/icons'; import AboutPopover from '../../components/AboutPopover'; import Loading from '../../components/Loading'; import NoSavedEvents from '../../components/NoSavedEvents'; -import paths from '../../paths'; +import PATHS from '../../PATHS'; interface OwnProps {} @@ -74,7 +80,7 @@ const EventList: React.FC = ({ events }) => { } function handleBrowseEventsClick() { - router.push(paths.EVENT_LIST, 'back'); + router.push(PATHS.EVENT_LIST, 'back'); } if (!events || events.length == 0) return ; @@ -97,7 +103,12 @@ const EventList: React.FC = ({ events }) => { - + @@ -171,7 +182,12 @@ const EventList: React.FC = ({ events }) => { {/* REQ0079/event-filter */} - +
= () => { */} - + Event - + Nearby - + Order - + Message - + Profile diff --git a/03_source/mobile/src/pages/MyProfile/NotLoggedIn/index.tsx b/03_source/mobile/src/pages/MyProfile/NotLoggedIn/index.tsx index 7a78ffa..43cd38f 100644 --- a/03_source/mobile/src/pages/MyProfile/NotLoggedIn/index.tsx +++ b/03_source/mobile/src/pages/MyProfile/NotLoggedIn/index.tsx @@ -53,7 +53,7 @@ import { settingsOutline, } from 'ionicons/icons'; import AboutPopover from '../../../components/AboutPopover'; -import paths from '../../../paths'; +import PATHS from '../../../PATHS'; import { getProfileById } from '../../../api/getProfileById'; import { defaultMember, Member } from '../../MemberProfile/type'; import SignUpPng from './SignUp.png'; @@ -79,11 +79,11 @@ const MyProfile: React.FC = ({ speakers, speakerSessions }) => const router = useIonRouter(); function handleShowSettingButtonClick() { - router.push(paths.SETTINGS); + router.push(PATHS.SETTINGS); } function handleNotImplementedClick() { - router.push(paths.NOT_IMPLEMENTED); + router.push(PATHS.NOT_IMPLEMENTED); } function handleRefresh(event: CustomEvent) { @@ -97,7 +97,7 @@ const MyProfile: React.FC = ({ speakers, speakerSessions }) => function handleForwardLoginPage() { try { setDisableForwardLoginButton(true); - router.push(paths.SIGN_IN); + router.push(PATHS.SIGN_IN); setDisableForwardLoginButton(false); } catch (error) { console.error(error); diff --git a/03_source/mobile/src/pages/MyProfile/index.tsx b/03_source/mobile/src/pages/MyProfile/index.tsx index 2b56562..310127c 100644 --- a/03_source/mobile/src/pages/MyProfile/index.tsx +++ b/03_source/mobile/src/pages/MyProfile/index.tsx @@ -53,7 +53,7 @@ import { settingsOutline, } from 'ionicons/icons'; import AboutPopover from '../../components/AboutPopover'; -import paths from '../../paths'; +import PATHS from '../../PATHS'; import { getProfileById } from '../../api/getProfileById'; import { defaultMember, Member } from '../MemberProfile/type'; import NotLoggedIn from './NotLoggedIn'; @@ -83,11 +83,11 @@ const MyProfilePage: React.FC = ({ speakers, speakerSessions, const router = useIonRouter(); function handleShowSettingButtonClick() { - router.push(paths.SETTINGS); + router.push(PATHS.SETTINGS); } function handleNotImplementedClick() { - router.push(paths.NOT_IMPLEMENTED); + router.push(PATHS.NOT_IMPLEMENTED); } function handleRefresh(event: CustomEvent) { diff --git a/03_source/mobile/src/pages/OrderDetail/index.tsx b/03_source/mobile/src/pages/OrderDetail/index.tsx index b24533f..ae08af6 100644 --- a/03_source/mobile/src/pages/OrderDetail/index.tsx +++ b/03_source/mobile/src/pages/OrderDetail/index.tsx @@ -19,7 +19,7 @@ import { connect } from '../../data/connect'; import * as selectors from '../../data/selectors'; import './style.scss'; -import paths from '../../paths'; +import PATHS from '../../PATHS'; interface OwnProps {} diff --git a/03_source/mobile/src/pages/OrderList/index.tsx b/03_source/mobile/src/pages/OrderList/index.tsx index b9686e5..7ac9a06 100644 --- a/03_source/mobile/src/pages/OrderList/index.tsx +++ b/03_source/mobile/src/pages/OrderList/index.tsx @@ -51,7 +51,7 @@ import { import AboutPopover from '../../components/AboutPopover'; import { getOrders } from '../../api/getOrders'; import Loading from '../../components/Loading'; -import paths from '../../paths'; +import PATHS from '../../PATHS'; interface OwnProps {} @@ -178,15 +178,15 @@ const OrderList: React.FC = ({ fetchOrderResult, speakerSessio } function handleShowOrderDetail(order_id: string) { - router.push(paths.getOrderDetail(order_id)); + router.push(PATHS.getOrderDetail(order_id)); } function handleNotImplemented() { - router.push(paths.NOT_IMPLEMENTED); + router.push(PATHS.NOT_IMPLEMENTED); } function handleBookmarksClick() { - router.push(paths.FAVOURITES_LIST); + router.push(PATHS.FAVOURITES_LIST); } if (status != 200) diff --git a/03_source/mobile/src/pages/Settings/index.tsx b/03_source/mobile/src/pages/Settings/index.tsx index d984aa7..3254b91 100644 --- a/03_source/mobile/src/pages/Settings/index.tsx +++ b/03_source/mobile/src/pages/Settings/index.tsx @@ -64,7 +64,7 @@ import { } from 'ionicons/icons'; import AboutPopover from '../../components/AboutPopover'; import { OverlayEventDetail } from '@ionic/react/dist/types/components/react-component-lib/interfaces'; -import paths from '../../paths'; +import PATHS from '../../PATHS'; import { logoutUser, setAccessToken, setIsLoggedIn } from '../../data/user/user.actions'; interface OwnProps {} @@ -108,23 +108,23 @@ const SettingsPage: React.FC = ({ } function handleLanguageClick() { - router.push(paths.CHANGE_LANGUAGE); + router.push(PATHS.CHANGE_LANGUAGE); } function handleNotImplementedClick() { - router.push(paths.NOT_IMPLEMENTED); + router.push(PATHS.NOT_IMPLEMENTED); } function handleDemoPageClick() { - router.push(paths.DEMO_PAGE); + router.push(PATHS.DEMO_PAGE); } function handleServiceAgreementClick() { - router.push(paths.SERVICE_AGREEMENT); + router.push(PATHS.SERVICE_AGREEMENT); } function handlePrivacyAgreementClick() { - router.push(paths.PRIVACY_AGREEMENT); + router.push(PATHS.PRIVACY_AGREEMENT); } const [showLogoutConfirmModal, setShowLogoutConfirmModal] = useState(false); diff --git a/03_source/mobile/src/pages/Tutorial/index.tsx b/03_source/mobile/src/pages/Tutorial/index.tsx index 7155b3c..13074b1 100644 --- a/03_source/mobile/src/pages/Tutorial/index.tsx +++ b/03_source/mobile/src/pages/Tutorial/index.tsx @@ -1,12 +1,21 @@ import React, { useRef, useEffect } from 'react'; -import { IonContent, IonPage, IonHeader, IonToolbar, IonButtons, IonButton, IonIcon, useIonViewWillEnter } from '@ionic/react'; +import { + IonContent, + IonPage, + IonHeader, + IonToolbar, + IonButtons, + IonButton, + IonIcon, + useIonViewWillEnter, +} from '@ionic/react'; import { arrowForward } from 'ionicons/icons'; import { setMenuEnabled } from '../../data/sessions/sessions.actions'; import { setHasSeenTutorial } from '../../data/user/user.actions'; import './Tutorial.scss'; import { connect } from '../../data/connect'; import { RouteComponentProps } from 'react-router'; -import paths from '../../paths'; +import PATHS from '../../PATHS'; interface OwnProps extends RouteComponentProps {} interface DispatchProps { @@ -33,7 +42,7 @@ const Tutorial: React.FC = ({ history, setHasSeenTutorial, setMen const startApp = async () => { await setHasSeenTutorial(true); await setMenuEnabled(true); - history.push(paths.EVENT_LIST, { direction: 'none' }); + history.push(PATHS.EVENT_LIST, { direction: 'none' }); }; return ( @@ -57,7 +66,8 @@ const Tutorial: React.FC = ({ history, setHasSeenTutorial, setMen Welcome to ICA

- The ionic conference app is a practical preview of the ionic framework in action, and a demonstration of proper code use. + The ionic conference app is a practical preview of the ionic framework in + action, and a demonstration of proper code use.

@@ -67,7 +77,8 @@ const Tutorial: React.FC = ({ history, setHasSeenTutorial, setMen

What is Ionic?

- Ionic Framework is an open source SDK that enables developers to build high quality mobile apps with web technologies like HTML, CSS, and JavaScript. + Ionic Framework is an open source SDK that enables developers to build high + quality mobile apps with web technologies like HTML, CSS, and JavaScript.

@@ -77,7 +88,9 @@ const Tutorial: React.FC = ({ history, setHasSeenTutorial, setMen

What is Ionic Appflow?

- Ionic Appflow is a powerful set of services and features built on top of Ionic Framework that brings a totally new level of app development agility to mobile dev teams. + Ionic Appflow is a powerful set of services and features built on top of + Ionic Framework that brings a totally new level of app development agility to mobile + dev teams.

diff --git a/03_source/mobile/src/paths.ts b/03_source/mobile/src/paths.ts deleted file mode 100644 index ed225bb..0000000 --- a/03_source/mobile/src/paths.ts +++ /dev/null @@ -1,99 +0,0 @@ -const paths = { - NOT_IMPLEMENTED: '/not_implemented', - TAB_NOT_IMPLEMENTED: '/tabs/not_implemented', - // - SETTINGS: '/settings', - // - EVENT_LIST: `/tabs/events`, - MESSAGE_LIST: `/tabs/messages`, - NEARBY_LIST: '/tabs/nearby', - // - ORDERS_LIST: '/tabs/orders', - // - ORDER_DETAIL: '/order_detail/:id', - getOrderDetail: (id: string) => `/order_detail/${id}`, - // - FAVOURITES_LIST: `/tabs/favourites`, - CHANGE_LANGUAGE: '/change_language', - SERVICE_AGREEMENT: '/service_agreement', - PRIVACY_AGREEMENT: '/privacy_agreement', - // - PROFILE: '/tabs/my_profile', - // - SIGN_IN: '/mylogin', - // - - DEMO_WEATHER_APP: '/demo-weather-app', - // - // - // - // - // - // - // - // - // - // - // - // - // - // - DEMO_ACCORDION_TUTORIAL: '/demo-accordion-tutorial', - DEMO_BANKING_UI: '/demo-banking-ui', - DEMO_CAPACITOR_GOOGLE_MAPS_TUTORIAL: '/demo-capacitor-google-maps-tutorial', - DEMO_COLOR_TUTORIAL: '/demo-color-tutorial', - // DEMO_ECOMMERCE_EXAMPLE: '/demo-ecommerce-example', - // DEMO_FACEBOOK_CLONE: '/demo-facebook-clone', - // DEMO_FAST_FOOD_APP: '/demo-fast-food-app', - // DEMO_FLOATING_TABS: '/demo-floating-tabs', - // DEMO_INSTAGRAM_CLONE: '/demo-instagram-clone', - // DEMO_KANBAN_BOARD: '/demo-kanban-board', - // DEMO_ORDERING_APP: '/demo-ordering-app', - // DEMO_PROFILE_EXAMPLE: '/demo-profile-example', - // DEMO_PULLSTATE_TUTORIAL: '/demo-pullstate-tutorial', - // DEMO_REACT_ADD_TO_CART: '/demo-react-add-to-cart', - // DEMO_REACT_CALCULATOR: '/demo-react-calculator', - // DEMO_REACT_DRAWING_CANVAS: '/demo-react-drawing-canvas', - // DEMO_REACT_HOOK_FORM_EXAMPLE: '/demo-react-hook-form-example', - // DEMO_REACT_ITEM_LIST: '/demo-react-item-list', - // DEMO_REACT_LIFECYCLES: '/demo-react-lifecycles', - // DEMO_REACT_LOGIN: '/demo-react-login', - // DEMO_REACT_MARVEL_APP: '/demo-react-marvel-app', - // DEMO_REACT_MOVIE_APP_WITH_ALGOLIA: '/demo-react-movie-app-with-algolia', - // DEMO_REACT_NOTES: '/demo-react-notes', - // DEMO_REACT_ONBOARDING_UI: '/demo-react-onboarding-ui', - // DEMO_REACT_PROFILE_DASHBOARD_UI: '/demo-react-profile-dashboard-ui', - // DEMO_REACT_QR_CODE: '/demo-react-qr-code', - // DEMO_REACT_QUOTES: '/demo-react-quotes', - // DEMO_REACT_SHOP_UI: '/demo-react-shop-ui', - // DEMO_REACT_TABS_MENUS_CUSTOM: '/demo-react-tabs-menus-custom', - // DEMO_REACT_THEME_SWITCHER: '/demo-react-theme-switcher', - // DEMO_SKELETON_TEXT: '/demo-skeleton-text', - // DEMO_STICKY_BOTTOM_SHEET_EXAMPLE: '/demo-sticky-bottom-sheet-example', - // DEMO_STORAGE_EXAMPLE: '/demo-storage-example', - // DEMO_SWIPERJS_TUTORIAL: '/demo-swiperjs-tutorial', - // DEMO_WEATHER_APP_UI: '/demo-weather-app-ui', - - DEMO_2FA_EXAMPLE: '/demo-2fa-example', - DEMO_REACT_WHATSAPP_CLONE: '/demo-react-whatsapp-clone', - - DEMO_BLOG_POST_UI: '/demo-blog-post-ui', - DEMO_CLUB_HOUSE: '/demo-club-house', - DEMO_DICTIONARY_APP: '/demo-dictionary-app', - DEMO_PAGE: '/tabs/demo-list', - DEMO_PINTEREST_FLOATING_TAB_BAR: '/demo-pinterest-floating-tab-bar', - DEMO_QR_SCANNER: '/demo-qr-scanner', - DEMO_QUIZ_APP: '/demo-quiz-app', - DEMO_QUOTE_APP: '/demo-quote-app', - DEMO_REACT_OVERLAY_HOOKS: '/demo-react-overlay-hooks', - DEMO_REACT_POLL_APP: '/demo-react-poll-app', - DEMO_REACT_SHOP: '/demo-react-shop', - DEMO_REACT_SWITCH_TABS: '/demo-react-switch-tabs', - DEMO_REACT_TRAVEL_APP: '/demo-react-travel-app', - DEMO_RECIPE_APP: '/demo-recipe-app', - DEMO_RESTAURANT_FINDER: '/demo-restaurant-finder', - DEMO_SCORE_BOARD: '/demo-score-board', - DEMO_SHOP_APP_UI: '/demo-shop-app-ui', - DEMO_SLIDING_PROFILE: '/demo-sliding-profile', -}; -export default paths; diff --git a/03_source/mobile/src/routes/DemoRoute.tsx b/03_source/mobile/src/routes/DemoRoute.tsx new file mode 100644 index 0000000..413003e --- /dev/null +++ b/03_source/mobile/src/routes/DemoRoute.tsx @@ -0,0 +1,119 @@ +// +// route for demo pages +// + +import { Route } from 'react-router'; +import PATHS from '../PATHS'; +import DemoWeatherAppUi from '../pages/DemoWeatherAppUi'; + +// import OrderDetails from './pages/OrderDetail'; +import DemoReactThemeSwitcher from '../pages/DemoReactThemeSwitcher'; +// import Demo2FaExample from '../pages/Demo2FaExample'; +import DemoAccordionTutorial from '../pages/DemoAccordionTutorial'; +import DemoBankingUi from '../pages/DemoBankingUi'; +import DemoBlogPostUi from '../pages/DemoBlogPostUi'; +import DemoCapacitorGoogleMapsTutorial from '../pages/DemoCapacitorGoogleMapsTutorial'; +import DemoClubHouse from '../pages/DemoClubHouse'; +import DemoColorTutorial from '../pages/DemoColorTutorial'; +import DemoDictionaryApp from '../pages/DemoDictionaryApp'; +import DemoEcommerceExample from '../pages/DemoEcommerceExample'; +import DemoFacebookClone from '../pages/DemoFacebookClone'; +import DemoFastFoodApp from '../pages/DemoFastFoodApp'; +import DemoFloatingTabs from '../pages/DemoFloatingTabs'; +import DemoInstagramClone from '../pages/DemoInstagramClone'; +import DemoKanbanBoard from '../pages/DemoKanbanBoard'; +import DemoOrderingApp from '../pages/DemoOrderingApp'; +import DemoPinterestFloatingTabBar from '../pages/DemoPinterestFloatingTabBar'; +import DemoProfileExample from '../pages/DemoProfileExample'; +import DemoPullstateTutorial from '../pages/DemoPullstateTutorial'; +import DemoQrScanner from '../pages/DemoQrScanner'; +import DemoQuizApp from '../pages/DemoQuizApp'; +import DemoQuoteApp from '../pages/DemoQuoteApp'; +import DemoReactAddToCart from '../pages/DemoReactAddToCart'; +import DemoReactCalculator from '../pages/DemoReactCalculator'; +import DemoReactDrawingCanvas from '../pages/DemoReactDrawingCanvas'; +import DemoReactHookFormExample from '../pages/DemoReactHookFormExample'; +import DemoReactItemList from '../pages/DemoReactItemList'; +import DemoReactLifecycles from '../pages/DemoReactLifecycles'; +import DemoReactLogin from '../pages/DemoReactLogin'; +import DemoReactMovieAppWithAlgolia from '../pages/DemoReactMovieAppWithAlgolia'; +import DemoReactNotes from '../pages/DemoReactNotes'; +import DemoReactOverlayHooks from '../pages/DemoReactOverlayHooks'; +import DemoReactPollApp from '../pages/DemoReactPollApp'; +import DemoReactProfileDashboardUi from '../pages/DemoReactProfileDashboardUi'; +import DemoReactQuotes from '../pages/DemoReactQuotes'; +import DemoReactShopUi from '../pages/DemoReactShopUi'; +import DemoReactSwitchTabs from '../pages/DemoReactSwitchTabs'; +import DemoReactTabsMenusCustom from '../pages/DemoReactTabsMenusCustom'; +import DemoReactTravelApp from '../pages/DemoReactTravelApp'; +import DemoRecipeApp from '../pages/DemoRecipeApp'; +import DemoRestaurantFinder from '../pages/DemoRestaurantFinder'; +import DemoScoreBoard from '../pages/DemoScoreBoard'; +import DemoShopAppUi from '../pages/DemoShopAppUi'; +import DemoSkeletonText from '../pages/DemoSkeletonText'; +import DemoSlidingProfile from '../pages/DemoSlidingProfile'; +import DemoStickyBottomSheetExample from '../pages/DemoStickyBottomSheetExample'; +import DemoStorageExample from '../pages/DemoStorageExample'; +import Demo2FaExample from '../pages/Demo2FaExample'; + +const AppDemoRoute: React.FC = () => { + // return + + return ( + <> + } /> + + } /> + } /> + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + ); +}; + +export default AppDemoRoute; diff --git a/03_source/mobile/yarn.lock b/03_source/mobile/yarn.lock index 169ec54..697cee3 100644 --- a/03_source/mobile/yarn.lock +++ b/03_source/mobile/yarn.lock @@ -4,15 +4,15 @@ "@ampproject/remapping@^2.2.0": version "2.3.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== dependencies: "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@babel/code-frame@^7.27.1": +"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.27.1": version "7.27.1" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== dependencies: "@babel/helper-validator-identifier" "^7.27.1" @@ -20,45 +20,45 @@ picocolors "^1.1.1" "@babel/compat-data@^7.27.2": - version "7.27.2" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz" - integrity sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ== + version "7.27.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.5.tgz#7d0658ec1a8420fc866d1df1b03bea0e79934c82" + integrity sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg== "@babel/core@^7.26.10": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz" - integrity sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ== + version "7.27.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.27.4.tgz#cc1fc55d0ce140a1828d1dd2a2eba285adbfb3ce" + integrity sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.27.1" - "@babel/helper-compilation-targets" "^7.27.1" - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helpers" "^7.27.1" - "@babel/parser" "^7.27.1" - "@babel/template" "^7.27.1" - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" + "@babel/generator" "^7.27.3" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-module-transforms" "^7.27.3" + "@babel/helpers" "^7.27.4" + "@babel/parser" "^7.27.4" + "@babel/template" "^7.27.2" + "@babel/traverse" "^7.27.4" + "@babel/types" "^7.27.3" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.27.1": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz" - integrity sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w== +"@babel/generator@^7.27.3": + version "7.27.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.5.tgz#3eb01866b345ba261b04911020cbe22dd4be8c8c" + integrity sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw== dependencies: - "@babel/parser" "^7.27.1" - "@babel/types" "^7.27.1" + "@babel/parser" "^7.27.5" + "@babel/types" "^7.27.3" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^3.0.2" -"@babel/helper-compilation-targets@^7.27.1": +"@babel/helper-compilation-targets@^7.27.2": version "7.27.2" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== dependencies: "@babel/compat-data" "^7.27.2" @@ -69,115 +69,115 @@ "@babel/helper-module-imports@^7.27.1": version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== dependencies: "@babel/traverse" "^7.27.1" "@babel/types" "^7.27.1" -"@babel/helper-module-transforms@^7.27.1": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz" - integrity sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g== +"@babel/helper-module-transforms@^7.27.3": + version "7.27.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz#db0bbcfba5802f9ef7870705a7ef8788508ede02" + integrity sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg== dependencies: "@babel/helper-module-imports" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@babel/traverse" "^7.27.3" "@babel/helper-plugin-utils@^7.27.1": version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== "@babel/helper-string-parser@^7.27.1": version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== "@babel/helper-validator-identifier@^7.27.1": version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== "@babel/helper-validator-option@^7.27.1": version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== -"@babel/helpers@^7.27.1": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz" - integrity sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ== +"@babel/helpers@^7.27.4": + version "7.27.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.6.tgz#6456fed15b2cb669d2d1fabe84b66b34991d812c" + integrity sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug== dependencies: - "@babel/template" "^7.27.1" - "@babel/types" "^7.27.1" + "@babel/template" "^7.27.2" + "@babel/types" "^7.27.6" -"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.27.1", "@babel/parser@^7.27.2": - version "7.27.2" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz" - integrity sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw== +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.27.2", "@babel/parser@^7.27.4", "@babel/parser@^7.27.5": + version "7.27.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.5.tgz#ed22f871f110aa285a6fd934a0efed621d118826" + integrity sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg== dependencies: - "@babel/types" "^7.27.1" + "@babel/types" "^7.27.3" "@babel/plugin-transform-react-jsx-self@^7.25.9": version "7.27.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz#af678d8506acf52c577cac73ff7fe6615c85fc92" integrity sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-react-jsx-source@^7.25.9": version "7.27.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz#dcfe2c24094bb757bf73960374e7c55e434f19f0" integrity sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/runtime-corejs3@^7.10.2": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.1.tgz" - integrity sha512-909rVuj3phpjW6y0MCXAZ5iNeORePa6ldJvp2baWGcTjwqbBDDz6xoS5JHJ7lS88NlwLYj07ImL/8IUMtDZzTA== + version "7.27.6" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.27.6.tgz#97644153808a62898e7c05f3361501417db3c48b" + integrity sha512-vDVrlmRAY8z9Ul/HxT+8ceAru95LQgkSKiXkSYZvqtbkPSfhZJgpRp45Cldbh1GJ1kxzQkI70AqyrTI58KpaWQ== dependencies: core-js-pure "^3.30.2" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.21.0", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz" - integrity sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.21.0", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.27.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.6.tgz#ec4070a04d76bae8ddbb10770ba55714a417b7c6" + integrity sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q== -"@babel/template@^7.27.1": +"@babel/template@^7.27.2": version "7.27.2" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== dependencies: "@babel/code-frame" "^7.27.1" "@babel/parser" "^7.27.2" "@babel/types" "^7.27.1" -"@babel/traverse@^7.27.1": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz" - integrity sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg== +"@babel/traverse@^7.27.1", "@babel/traverse@^7.27.3", "@babel/traverse@^7.27.4": + version "7.27.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.4.tgz#b0045ac7023c8472c3d35effd7cc9ebd638da6ea" + integrity sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA== dependencies: "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.27.1" - "@babel/parser" "^7.27.1" - "@babel/template" "^7.27.1" - "@babel/types" "^7.27.1" + "@babel/generator" "^7.27.3" + "@babel/parser" "^7.27.4" + "@babel/template" "^7.27.2" + "@babel/types" "^7.27.3" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz" - integrity sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.6": + version "7.27.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.6.tgz#a434ca7add514d4e646c80f7375c0aa2befc5535" + integrity sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q== dependencies: "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" "@capacitor/android@7.0.1": version "7.0.1" - resolved "https://registry.npmjs.org/@capacitor/android/-/android-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/@capacitor/android/-/android-7.0.1.tgz#16c45a305edeb8bcf0b083ea52abcc62ca4e5e70" integrity sha512-jukJJHfkcyEBOkFBJRD3EwXMIIQo7lSv0ExPWgsIliPdGXLAj6ElvK2JaYEzec3vKyLc4RTNFVv0PMEU0vnImg== "@capacitor/barcode-scanner@^2.0.3": @@ -188,9 +188,9 @@ html5-qrcode "2.3.8" "@capacitor/cli@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@capacitor/cli/-/cli-7.2.0.tgz" - integrity sha512-RNW9vtYYYSDmOdguYBSW0VpRnG/d6lGydlc9DLrJ7qbSPxFrotTz9IjkM48O+SruUma61DyuSqJttdbay2xSxg== + version "7.3.0" + resolved "https://registry.yarnpkg.com/@capacitor/cli/-/cli-7.3.0.tgz#8abc2385c4bf80a287cda414282be7cb9f7b0da4" + integrity sha512-p0E1ayxw0Njpid8xwOrnuBncdakWxDMbUL2JhDUft38q8tscF2beIIMVhdna1t4Ow55H0r8sdTurwtSjtomrVw== dependencies: "@ionic/cli-framework-output" "^2.2.8" "@ionic/utils-subprocess" "^3.0.1" @@ -216,15 +216,15 @@ integrity sha512-n4XEHma7apLOYvyeaR9S5u3uGzDYG7WeQxmtZlwP01HneIzMnusVgw4Im6I+pMBcoUN9TfVdf6eqKph97B1bAw== "@capacitor/core@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@capacitor/core/-/core-7.2.0.tgz" - integrity sha512-2zCnA6RJeZ9ec4470o8QMZEQTWpekw9FNoqm5TLc10jeCrhvHVI8MPgxdZVc3mOdFlyieYu4AS1fNxSqbS57Pw== + version "7.3.0" + resolved "https://registry.yarnpkg.com/@capacitor/core/-/core-7.3.0.tgz#208074f35d59d8150ec2ce40c8be9639f7f78965" + integrity sha512-t/DdTyBchQ2eAZuCmAARlqQsrEm0WyeNwh5zeRuv+cR6gnAsw+86/EWvJ/em5dTnZyaqEy8vlmOMdWarrUbnuQ== dependencies: tslib "^2.1.0" "@capacitor/geolocation@^7.1.2": version "7.1.2" - resolved "https://registry.npmjs.org/@capacitor/geolocation/-/geolocation-7.1.2.tgz" + resolved "https://registry.yarnpkg.com/@capacitor/geolocation/-/geolocation-7.1.2.tgz#394ce56c20c9347dfa8c702f3b7dfd8ab3053129" integrity sha512-J++OuOpn6Bjweo7SZ+jwI/dhVF9DNw6Wx0UHgQ4qfrATqmNKGNZ/BUljGhXiKJceSx2GIhfrYS7BYqo3uWibgQ== dependencies: "@capacitor/synapse" "^1.0.1" @@ -240,12 +240,12 @@ "@capacitor/ios@7.0.1": version "7.0.1" - resolved "https://registry.npmjs.org/@capacitor/ios/-/ios-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/@capacitor/ios/-/ios-7.0.1.tgz#f175f74543edc5faa13de927ababfffff450776f" integrity sha512-RN6S1C1k7ue57DFmJM4EizzsYBrahTTiMhcnlHspFLaojgHbFWZbYq1VriuRKysPU1ka/P+klsdtRFsB5K9jyw== "@capacitor/preferences@^7.0.0": version "7.0.1" - resolved "https://registry.npmjs.org/@capacitor/preferences/-/preferences-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/@capacitor/preferences/-/preferences-7.0.1.tgz#d1791a94fba8018497839fb7bd0bfa8b636dad6d" integrity sha512-XF9jOHzvoIBZLwZr/EX6aVaUO1d8Mx7TwBLQS33pYHOliCW5knT5KUkFOXNNYxh9qqODYesee9xuQIKNJpQBag== "@capacitor/share@^7.0.1": @@ -255,133 +255,133 @@ "@capacitor/synapse@^1.0.1": version "1.0.2" - resolved "https://registry.npmjs.org/@capacitor/synapse/-/synapse-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/@capacitor/synapse/-/synapse-1.0.2.tgz#0037c3741ba29fcc927bb3546120ec2847fd2221" integrity sha512-ynq39s4D2rhk+aVLWKfKfMCz9SHPKijL9tq8aFL5dG7ik7/+PvBHmg9cPHbqdvFEUSMmaGzL6cIjzkOruW7vGA== -"@esbuild/aix-ppc64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz#830d6476cbbca0c005136af07303646b419f1162" - integrity sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q== +"@esbuild/aix-ppc64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz#4e0f91776c2b340e75558f60552195f6fad09f18" + integrity sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA== -"@esbuild/android-arm64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz#d11d4fc299224e729e2190cacadbcc00e7a9fd67" - integrity sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A== +"@esbuild/android-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz#bc766407f1718923f6b8079c8c61bf86ac3a6a4f" + integrity sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg== -"@esbuild/android-arm@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.4.tgz#5660bd25080553dd2a28438f2a401a29959bd9b1" - integrity sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ== +"@esbuild/android-arm@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.5.tgz#4290d6d3407bae3883ad2cded1081a234473ce26" + integrity sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA== -"@esbuild/android-x64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.4.tgz#18ddde705bf984e8cd9efec54e199ac18bc7bee1" - integrity sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ== +"@esbuild/android-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.5.tgz#40c11d9cbca4f2406548c8a9895d321bc3b35eff" + integrity sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw== -"@esbuild/darwin-arm64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz#b0b7fb55db8fc6f5de5a0207ae986eb9c4766e67" - integrity sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g== +"@esbuild/darwin-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz#49d8bf8b1df95f759ac81eb1d0736018006d7e34" + integrity sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ== -"@esbuild/darwin-x64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz#e6813fdeba0bba356cb350a4b80543fbe66bf26f" - integrity sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A== +"@esbuild/darwin-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz#e27a5d92a14886ef1d492fd50fc61a2d4d87e418" + integrity sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ== -"@esbuild/freebsd-arm64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz#dc11a73d3ccdc308567b908b43c6698e850759be" - integrity sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ== +"@esbuild/freebsd-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz#97cede59d638840ca104e605cdb9f1b118ba0b1c" + integrity sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw== -"@esbuild/freebsd-x64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz#91da08db8bd1bff5f31924c57a81dab26e93a143" - integrity sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ== +"@esbuild/freebsd-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz#71c77812042a1a8190c3d581e140d15b876b9c6f" + integrity sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw== -"@esbuild/linux-arm64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz#efc15e45c945a082708f9a9f73bfa8d4db49728a" - integrity sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ== +"@esbuild/linux-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz#f7b7c8f97eff8ffd2e47f6c67eb5c9765f2181b8" + integrity sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg== -"@esbuild/linux-arm@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz#9b93c3e54ac49a2ede6f906e705d5d906f6db9e8" - integrity sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ== +"@esbuild/linux-arm@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz#2a0be71b6cd8201fa559aea45598dffabc05d911" + integrity sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw== -"@esbuild/linux-ia32@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz#be8ef2c3e1d99fca2d25c416b297d00360623596" - integrity sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ== +"@esbuild/linux-ia32@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz#763414463cd9ea6fa1f96555d2762f9f84c61783" + integrity sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA== -"@esbuild/linux-loong64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz#b0840a2707c3fc02eec288d3f9defa3827cd7a87" - integrity sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA== +"@esbuild/linux-loong64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz#428cf2213ff786a502a52c96cf29d1fcf1eb8506" + integrity sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg== -"@esbuild/linux-mips64el@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz#2a198e5a458c9f0e75881a4e63d26ba0cf9df39f" - integrity sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg== +"@esbuild/linux-mips64el@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz#5cbcc7fd841b4cd53358afd33527cd394e325d96" + integrity sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg== -"@esbuild/linux-ppc64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz#64f4ae0b923d7dd72fb860b9b22edb42007cf8f5" - integrity sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag== +"@esbuild/linux-ppc64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz#0d954ab39ce4f5e50f00c4f8c4fd38f976c13ad9" + integrity sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ== -"@esbuild/linux-riscv64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz#fb2844b11fdddd39e29d291c7cf80f99b0d5158d" - integrity sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA== +"@esbuild/linux-riscv64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz#0e7dd30730505abd8088321e8497e94b547bfb1e" + integrity sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA== -"@esbuild/linux-s390x@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz#1466876e0aa3560c7673e63fdebc8278707bc750" - integrity sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g== +"@esbuild/linux-s390x@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz#5669af81327a398a336d7e40e320b5bbd6e6e72d" + integrity sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ== -"@esbuild/linux-x64@0.25.4": - version "0.25.4" - resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz" - integrity sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA== +"@esbuild/linux-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz#b2357dd153aa49038967ddc1ffd90c68a9d2a0d4" + integrity sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw== -"@esbuild/netbsd-arm64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz#02e483fbcbe3f18f0b02612a941b77be76c111a4" - integrity sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ== +"@esbuild/netbsd-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz#53b4dfb8fe1cee93777c9e366893bd3daa6ba63d" + integrity sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw== -"@esbuild/netbsd-x64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz#ec401fb0b1ed0ac01d978564c5fc8634ed1dc2ed" - integrity sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw== +"@esbuild/netbsd-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz#a0206f6314ce7dc8713b7732703d0f58de1d1e79" + integrity sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ== -"@esbuild/openbsd-arm64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz#f272c2f41cfea1d91b93d487a51b5c5ca7a8c8c4" - integrity sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A== +"@esbuild/openbsd-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz#2a796c87c44e8de78001d808c77d948a21ec22fd" + integrity sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw== -"@esbuild/openbsd-x64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz#2e25950bc10fa9db1e5c868e3d50c44f7c150fd7" - integrity sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw== +"@esbuild/openbsd-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz#28d0cd8909b7fa3953af998f2b2ed34f576728f0" + integrity sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg== -"@esbuild/sunos-x64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz#cd596fa65a67b3b7adc5ecd52d9f5733832e1abd" - integrity sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q== +"@esbuild/sunos-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz#a28164f5b997e8247d407e36c90d3fd5ddbe0dc5" + integrity sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA== -"@esbuild/win32-arm64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz#b4dbcb57b21eeaf8331e424c3999b89d8951dc88" - integrity sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ== +"@esbuild/win32-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz#6eadbead38e8bd12f633a5190e45eff80e24007e" + integrity sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw== -"@esbuild/win32-ia32@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz#410842e5d66d4ece1757634e297a87635eb82f7a" - integrity sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg== +"@esbuild/win32-ia32@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz#bab6288005482f9ed2adb9ded7e88eba9a62cc0d" + integrity sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ== -"@esbuild/win32-x64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz#0b17ec8a70b2385827d52314c1253160a0b9bacc" - integrity sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ== +"@esbuild/win32-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz#7fc114af5f6563f19f73324b5d5ff36ece0803d1" + integrity sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g== "@googlemaps/js-api-loader@~1.16.8": version "1.16.8" @@ -398,7 +398,7 @@ "@hookform/resolvers@^4.1.3": version "4.1.3" - resolved "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-4.1.3.tgz#97a20cc0e88d3b66c50e1e9fd6e089a94c689e07" integrity sha512-Jsv6UOWYTrEFJ/01ZrnwVXs7KDvP8XIo115i++5PWvNkNvkrsTfGiLS6w+eJ57CYtUtDQalUWovCZDHFJ8u1VQ== dependencies: "@standard-schema/utils" "^0.3.0" @@ -410,42 +410,49 @@ "@ionic/cli-framework-output@^2.2.8": version "2.2.8" - resolved "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.8.tgz" + resolved "https://registry.yarnpkg.com/@ionic/cli-framework-output/-/cli-framework-output-2.2.8.tgz#29d541acc7773a6aaceec5f3b079937fbcef5402" integrity sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g== dependencies: "@ionic/utils-terminal" "2.3.5" debug "^4.0.0" tslib "^2.0.1" -"@ionic/core@8.5.7": - version "8.5.7" - resolved "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz" - integrity sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA== +"@ionic/core@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@ionic/core/-/core-8.6.0.tgz#90612d3d506b3123c9e8b0a3f09169ae6da51ada" + integrity sha512-s9/YH6yks4e4tceMJYGKIRyeHeZAh4YVk0uMPO7RQ9nkZTl8wZtB4PegH9bHqNY0tap0ZQQCNLwCfKmofUOnQg== dependencies: - "@stencil/core" "4.20.0" + "@stencil/core" "4.33.1" ionicons "^7.2.2" tslib "^2.1.0" "@ionic/react-router@^8.5.0": - version "8.5.7" - resolved "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.5.7.tgz" - integrity sha512-REEnLRIWh23DnqTugNT7VIO2D49GtmSHvxOmmTmaFTjhMXQ1ilzM35oh+Fr2pWU5NmCqD8am+RLfITQhIJI1hA== + version "8.6.0" + resolved "https://registry.yarnpkg.com/@ionic/react-router/-/react-router-8.6.0.tgz#801d393b56204b0bb559ea27f3be871017d44f7a" + integrity sha512-YpuFc11V2UR0ZImIrlHj1ijoHptXi4vYnZGdpp+wlNVhTBn7cmNp5idZecp/QzLs8I1XkCfagu3uJjKbbdDQHg== dependencies: - "@ionic/react" "8.5.7" + "@ionic/react" "8.6.0" tslib "*" -"@ionic/react@8.5.7", "@ionic/react@^8.5.0": - version "8.5.7" - resolved "https://registry.npmjs.org/@ionic/react/-/react-8.5.7.tgz" - integrity sha512-AgX4iu6SfuBhNgYr0H+K3oGsp7ESkCsnaqZdHRO2+GtKTmo4akMrFPihGj4LrZB/IaYwcvYQR/bPWHuZGJYsnw== +"@ionic/react@8.6.0", "@ionic/react@^8.5.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@ionic/react/-/react-8.6.0.tgz#ea382e7e304badbccec72d799d45889426512735" + integrity sha512-CXg6CyYN2PF9qYYOwo9nA1+z6yp8JFOK6x2TzgTITOHbz2gmP1r8Tmcil58IeKqTqpZJOX+VPIAgboZVElSmBg== dependencies: - "@ionic/core" "8.5.7" + "@ionic/core" "8.6.0" ionicons "^7.0.0" tslib "*" +"@ionic/storage@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@ionic/storage/-/storage-4.0.0.tgz#33197042abfbb88b6b6f6b051ca64a9566812c01" + integrity sha512-3N21P19Xk6cICLnSXZ3ilRqbSXAGSFeIF3HNqz+1kARcm0UFT/vwmZreaXtFyq437vvEWOfJ2enlj3JHLKS0FA== + dependencies: + localforage "^1.9.0" + "@ionic/utils-array@2.1.6": version "2.1.6" - resolved "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.6.tgz" + resolved "https://registry.yarnpkg.com/@ionic/utils-array/-/utils-array-2.1.6.tgz#eee863be945ee1a28b9a10ff16fdea776fa18c22" integrity sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg== dependencies: debug "^4.0.0" @@ -453,7 +460,7 @@ "@ionic/utils-fs@3.1.7", "@ionic/utils-fs@^3.1.7": version "3.1.7" - resolved "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.7.tgz" + resolved "https://registry.yarnpkg.com/@ionic/utils-fs/-/utils-fs-3.1.7.tgz#e0d41225272c346846867e88a0b84b1a4ee9d9c9" integrity sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA== dependencies: "@types/fs-extra" "^8.0.0" @@ -463,7 +470,7 @@ "@ionic/utils-object@2.1.6": version "2.1.6" - resolved "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.6.tgz" + resolved "https://registry.yarnpkg.com/@ionic/utils-object/-/utils-object-2.1.6.tgz#c0259bf925b6c12663d06f6bc1703e5dcb565e6d" integrity sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww== dependencies: debug "^4.0.0" @@ -471,7 +478,7 @@ "@ionic/utils-process@2.1.12": version "2.1.12" - resolved "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.12.tgz" + resolved "https://registry.yarnpkg.com/@ionic/utils-process/-/utils-process-2.1.12.tgz#17b05d66201859fe11f53b47be22b85aa90b9556" integrity sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg== dependencies: "@ionic/utils-object" "2.1.6" @@ -483,7 +490,7 @@ "@ionic/utils-stream@3.1.7": version "3.1.7" - resolved "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.7.tgz" + resolved "https://registry.yarnpkg.com/@ionic/utils-stream/-/utils-stream-3.1.7.tgz#224f8c99012aa54e7dbf59950de903b6a61cd811" integrity sha512-eSELBE7NWNFIHTbTC2jiMvh1ABKGIpGdUIvARsNPMNQhxJB3wpwdiVnoBoTYp+5a6UUIww4Kpg7v6S7iTctH1w== dependencies: debug "^4.0.0" @@ -491,7 +498,7 @@ "@ionic/utils-subprocess@^3.0.1": version "3.0.1" - resolved "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/@ionic/utils-subprocess/-/utils-subprocess-3.0.1.tgz#561608fecf432c28fd80f94c1563dc0d092581b7" integrity sha512-cT4te3AQQPeIM9WCwIg8ohroJ8TjsYaMb2G4ZEgv9YzeDqHZ4JpeIKqG2SoaA3GmVQ3sOfhPM6Ox9sxphV/d1A== dependencies: "@ionic/utils-array" "2.1.6" @@ -505,7 +512,7 @@ "@ionic/utils-terminal@2.3.5", "@ionic/utils-terminal@^2.3.4", "@ionic/utils-terminal@^2.3.5": version "2.3.5" - resolved "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.5.tgz" + resolved "https://registry.yarnpkg.com/@ionic/utils-terminal/-/utils-terminal-2.3.5.tgz#a48465f40496ee8f29c6d92e4506d5f19762ac3c" integrity sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A== dependencies: "@types/slice-ansi" "^4.0.0" @@ -520,7 +527,7 @@ "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -530,9 +537,16 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + "@jest/types@^24.9.0": version "24.9.0" - resolved "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" @@ -541,7 +555,7 @@ "@jest/types@^25.5.0": version "25.5.0" - resolved "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" @@ -551,7 +565,7 @@ "@jridgewell/gen-mapping@^0.3.5": version "0.3.8" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== dependencies: "@jridgewell/set-array" "^1.2.1" @@ -560,22 +574,22 @@ "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/set-array@^1.2.1": version "1.2.1" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.5.0" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" @@ -583,7 +597,7 @@ "@mdx-js/react@^3.1.0": version "3.1.0" - resolved "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.1.0.tgz#c4522e335b3897b9a845db1dbdd2f966ae8fb0ed" integrity sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ== dependencies: "@types/mdx" "^2.0.0" @@ -630,12 +644,12 @@ "@parcel/watcher-linux-x64-glibc@2.5.1": version "2.5.1" - resolved "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz#4d2ea0f633eb1917d83d483392ce6181b6a92e4e" integrity sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A== "@parcel/watcher-linux-x64-musl@2.5.1": version "2.5.1" - resolved "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz#277b346b05db54f55657301dd77bdf99d63606ee" integrity sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg== "@parcel/watcher-win32-arm64@2.5.1": @@ -655,7 +669,7 @@ "@parcel/watcher@^2.4.1": version "2.5.1" - resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.1.tgz#342507a9cfaaf172479a882309def1e991fb1200" integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== dependencies: detect-libc "^1.0.3" @@ -712,132 +726,200 @@ "@react-leaflet/core@^3.0.0": version "3.0.0" - resolved "https://registry.npmjs.org/@react-leaflet/core/-/core-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/@react-leaflet/core/-/core-3.0.0.tgz#34ccc280ce7d8ac5c09f2b3d5fffded450bdf1a2" integrity sha512-3EWmekh4Nz+pGcr+xjf0KNyYfC3U2JjnkWsh0zcqaexYqmmB5ZhH37kz41JXGmKzpaMZCnPofBBm64i+YrEvGQ== "@rolldown/pluginutils@1.0.0-beta.9": version "1.0.0-beta.9" - resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.9.tgz" + resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.9.tgz#68ef9fff5a9791a642cea0dc4380ce6cb487a84a" integrity sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w== -"@rollup/rollup-android-arm-eabi@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.1.tgz#f39f09f60d4a562de727c960d7b202a2cf797424" - integrity sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw== +"@rollup/rollup-android-arm-eabi@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.42.0.tgz#8baae15a6a27f18b7c5be420e00ab08c7d3dd6f4" + integrity sha512-gldmAyS9hpj+H6LpRNlcjQWbuKUtb94lodB9uCz71Jm+7BxK1VIOo7y62tZZwxhA7j1ylv/yQz080L5WkS+LoQ== -"@rollup/rollup-android-arm64@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.1.tgz#d19af7e23760717f1d879d4ca3d2cd247742dff2" - integrity sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA== +"@rollup/rollup-android-arm64@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.42.0.tgz#6798394241d1b26f8b44d2bbd8de9c12eb9dd6e6" + integrity sha512-bpRipfTgmGFdCZDFLRvIkSNO1/3RGS74aWkJJTFJBH7h3MRV4UijkaEUeOMbi9wxtxYmtAbVcnMtHTPBhLEkaw== -"@rollup/rollup-darwin-arm64@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.1.tgz#1c3a2fbf205d80641728e05f4a56c909e95218b7" - integrity sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w== +"@rollup/rollup-darwin-arm64@4.34.9": + version "4.34.9" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz#363467bc49fd0b1e17075798ac8e9ad1e1e29535" + integrity sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ== -"@rollup/rollup-darwin-x64@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.1.tgz#aa66d2ba1a25e609500e13bef06dc0e71cc0c0d4" - integrity sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg== +"@rollup/rollup-darwin-arm64@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.42.0.tgz#8642482ac2d21e7747a79b1cc3293d5711fefea3" + integrity sha512-JxHtA081izPBVCHLKnl6GEA0w3920mlJPLh89NojpU2GsBSB6ypu4erFg/Wx1qbpUbepn0jY4dVWMGZM8gplgA== -"@rollup/rollup-freebsd-arm64@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.1.tgz#df10a7b6316a0ef1028c6ca71a081124c537e30d" - integrity sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg== +"@rollup/rollup-darwin-x64@4.34.9": + version "4.34.9" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz#c2fe3d85fffe47f0ed0f076b3563ada22c8af19c" + integrity sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q== -"@rollup/rollup-freebsd-x64@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.1.tgz#a3fdce8a05e95b068cbcb46e4df5185e407d0c35" - integrity sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA== +"@rollup/rollup-darwin-x64@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.42.0.tgz#e15568b2fea4fdc526e86424150df9ec511fbaaf" + integrity sha512-rv5UZaWVIJTDMyQ3dCEK+m0SAn6G7H3PRc2AZmExvbDvtaDc+qXkei0knQWcI3+c9tEs7iL/4I4pTQoPbNL2SA== -"@rollup/rollup-linux-arm-gnueabihf@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.1.tgz#49f766c55383bd0498014a9d76924348c2f3890c" - integrity sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg== +"@rollup/rollup-freebsd-arm64@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.42.0.tgz#0ebdb3b470ccf6acf0eacae8177f34e27477559f" + integrity sha512-fJcN4uSGPWdpVmvLuMtALUFwCHgb2XiQjuECkHT3lWLZhSQ3MBQ9pq+WoWeJq2PrNxr9rPM1Qx+IjyGj8/c6zQ== -"@rollup/rollup-linux-arm-musleabihf@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.1.tgz#1d4d7d32fc557e17d52e1857817381ea365e2959" - integrity sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA== +"@rollup/rollup-freebsd-x64@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.42.0.tgz#675808bf4fe7c7fc454326510ab3be0857626d41" + integrity sha512-CziHfyzpp8hJpCVE/ZdTizw58gr+m7Y2Xq5VOuCSrZR++th2xWAz4Nqk52MoIIrV3JHtVBhbBsJcAxs6NammOQ== -"@rollup/rollup-linux-arm64-gnu@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz#f4fc317268441e9589edad3be8f62b6c03009bc1" - integrity sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA== +"@rollup/rollup-linux-arm-gnueabihf@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.42.0.tgz#05e881cc69f59415fe8c1af13554c60c7c49d114" + integrity sha512-UsQD5fyLWm2Fe5CDM7VPYAo+UC7+2Px4Y+N3AcPh/LdZu23YcuGPegQly++XEVaC8XUTFVPscl5y5Cl1twEI4A== -"@rollup/rollup-linux-arm64-musl@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz#63a1f1b0671cb17822dabae827fef0e443aebeb7" - integrity sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg== +"@rollup/rollup-linux-arm-musleabihf@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.42.0.tgz#eb990bf7c3c37749c3d5afed34e6adec1c927963" + integrity sha512-/i8NIrlgc/+4n1lnoWl1zgH7Uo0XK5xK3EDqVTf38KvyYgCU/Rm04+o1VvvzJZnVS5/cWSd07owkzcVasgfIkQ== -"@rollup/rollup-linux-loongarch64-gnu@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz#c659b01cc6c0730b547571fc3973e1e955369f98" - integrity sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw== +"@rollup/rollup-linux-arm64-gnu@4.34.9": + version "4.34.9" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz#1015c9d07a99005025d13b8622b7600029d0b52f" + integrity sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw== -"@rollup/rollup-linux-powerpc64le-gnu@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz#612e746f9ad7e58480f964d65e0d6c3f4aae69a8" - integrity sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A== +"@rollup/rollup-linux-arm64-gnu@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.42.0.tgz#3deeacff589e7f370aca5cef29d68d4c8fa0033c" + integrity sha512-eoujJFOvoIBjZEi9hJnXAbWg+Vo1Ov8n/0IKZZcPZ7JhBzxh2A+2NFyeMZIRkY9iwBvSjloKgcvnjTbGKHE44Q== -"@rollup/rollup-linux-riscv64-gnu@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz#4610dbd1dcfbbae32fbc10c20ae7387acb31110c" - integrity sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw== +"@rollup/rollup-linux-arm64-musl@4.34.9": + version "4.34.9" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz#8f895eb5577748fc75af21beae32439626e0a14c" + integrity sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A== -"@rollup/rollup-linux-riscv64-musl@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz#054911fab40dc83fafc21e470193c058108f19d8" - integrity sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw== +"@rollup/rollup-linux-arm64-musl@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.42.0.tgz#6db81ab065ef278faf83d875c77ff9cdd51abcfd" + integrity sha512-/3NrcOWFSR7RQUQIuZQChLND36aTU9IYE4j+TB40VU78S+RA0IiqHR30oSh6P1S9f9/wVOenHQnacs/Byb824g== -"@rollup/rollup-linux-s390x-gnu@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz#98896eca8012547c7f04bd07eaa6896825f9e1a5" - integrity sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g== +"@rollup/rollup-linux-loongarch64-gnu@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.42.0.tgz#90d35336ad4cbf318648e41b0e7ce3920c28ebc9" + integrity sha512-O8AplvIeavK5ABmZlKBq9/STdZlnQo7Sle0LLhVA7QT+CiGpNVe197/t8Aph9bhJqbDVGCHpY2i7QyfEDDStDg== -"@rollup/rollup-linux-x64-gnu@4.41.1": - version "4.41.1" - resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz" - integrity sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A== +"@rollup/rollup-linux-powerpc64le-gnu@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.42.0.tgz#6d21a0f18262648ec181fc9326b8f0ac02aa744d" + integrity sha512-6Qb66tbKVN7VyQrekhEzbHRxXXFFD8QKiFAwX5v9Xt6FiJ3BnCVBuyBxa2fkFGqxOCSGGYNejxd8ht+q5SnmtA== -"@rollup/rollup-linux-x64-musl@4.41.1": - version "4.41.1" - resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz" - integrity sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ== +"@rollup/rollup-linux-riscv64-gnu@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.42.0.tgz#e46e2d1125957694bfb5222ecd63dd6c9bd69682" + integrity sha512-KQETDSEBamQFvg/d8jajtRwLNBlGc3aKpaGiP/LvEbnmVUKlFta1vqJqTrvPtsYsfbE/DLg5CC9zyXRX3fnBiA== -"@rollup/rollup-win32-arm64-msvc@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz#7eeada98444e580674de6989284e4baacd48ea65" - integrity sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ== +"@rollup/rollup-linux-riscv64-musl@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.42.0.tgz#478a23f0fa0d832a0a6fa858a9f3d2eb201d44de" + integrity sha512-qMvnyjcU37sCo/tuC+JqeDKSuukGAd+pVlRl/oyDbkvPJ3awk6G6ua7tyum02O3lI+fio+eM5wsVd66X0jQtxw== -"@rollup/rollup-win32-ia32-msvc@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz#516c4b54f80587b4a390aaf4940b40870271d35d" - integrity sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg== +"@rollup/rollup-linux-s390x-gnu@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.42.0.tgz#4261c714cd750e3fb685a330dfca7bb8f5711469" + integrity sha512-I2Y1ZUgTgU2RLddUHXTIgyrdOwljjkmcZ/VilvaEumtS3Fkuhbw4p4hgHc39Ypwvo2o7sBFNl2MquNvGCa55Iw== -"@rollup/rollup-win32-x64-msvc@4.41.1": - version "4.41.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz#848f99b0d9936d92221bb6070baeff4db6947a30" - integrity sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw== +"@rollup/rollup-linux-x64-gnu@4.34.9": + version "4.34.9" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz#7193cbd8d128212b8acda37e01b39d9e96259ef8" + integrity sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A== + +"@rollup/rollup-linux-x64-gnu@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.42.0.tgz#45aa751bdf05ac696da417a37fdfd13f607e1fab" + integrity sha512-Gfm6cV6mj3hCUY8TqWa63DB8Mx3NADoFwiJrMpoZ1uESbK8FQV3LXkhfry+8bOniq9pqY1OdsjFWNsSbfjPugw== + +"@rollup/rollup-linux-x64-musl@4.34.9": + version "4.34.9" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz#29a6867278ca0420b891574cfab98ecad70c59d1" + integrity sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA== + +"@rollup/rollup-linux-x64-musl@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.42.0.tgz#9a0f8691dede53d1720ebb2aeef72e483cf69220" + integrity sha512-g86PF8YZ9GRqkdi0VoGlcDUb4rYtQKyTD1IVtxxN4Hpe7YqLBShA7oHMKU6oKTCi3uxwW4VkIGnOaH/El8de3w== + +"@rollup/rollup-win32-arm64-msvc@4.34.9": + version "4.34.9" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz#89427dcac0c8e3a6d32b13a03a296a275d0de9a9" + integrity sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q== + +"@rollup/rollup-win32-arm64-msvc@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.42.0.tgz#395ad8b6b6372a3888d2e96bf6c45392be815f4d" + integrity sha512-+axkdyDGSp6hjyzQ5m1pgcvQScfHnMCcsXkx8pTgy/6qBmWVhtRVlgxjWwDp67wEXXUr0x+vD6tp5W4x6V7u1A== + +"@rollup/rollup-win32-ia32-msvc@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.42.0.tgz#0d80305a14fff372ea5e90cd35c63c6b8efbd143" + integrity sha512-F+5J9pelstXKwRSDq92J0TEBXn2nfUrQGg+HK1+Tk7VOL09e0gBqUHugZv7SW4MGrYj41oNCUe3IKCDGVlis2g== + +"@rollup/rollup-win32-x64-msvc@4.34.9": + version "4.34.9" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz#1973871850856ae72bc678aeb066ab952330e923" + integrity sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw== + +"@rollup/rollup-win32-x64-msvc@4.42.0": + version "4.42.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.42.0.tgz#516c6770ba15fe6aef369d217a9747492c01e8b7" + integrity sha512-LpHiJRwkaVz/LqjHjK8LCi8osq7elmpwujwbXKNW88bM8eeGxavJIKKjkjpMHAh/2xfnrt1ZSnhTv41WYUHYmA== "@sheerun/mutationobserver-shim@^0.3.2": version "0.3.3" - resolved "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz" + resolved "https://registry.yarnpkg.com/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz#5405ee8e444ed212db44e79351f0c70a582aae25" integrity sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw== +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + "@standard-schema/utils@^0.3.0": version "0.3.0" - resolved "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/@standard-schema/utils/-/utils-0.3.0.tgz#3d5e608f16c2390c10528e98e59aef6bf73cae7b" integrity sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g== -"@stencil/core@4.20.0", "@stencil/core@^4.0.3": - version "4.20.0" - resolved "https://registry.npmjs.org/@stencil/core/-/core-4.20.0.tgz" - integrity sha512-WPrTHFngvN081RY+dJPneKQLwnOFD60OMCOQGmmSHfCW0f4ujPMzzhwWU1gcSwXPWXz5O+8cBiiCaxAbJU7kAg== +"@stencil/core@4.33.1", "@stencil/core@^4.0.3": + version "4.33.1" + resolved "https://registry.yarnpkg.com/@stencil/core/-/core-4.33.1.tgz#5cc48b46cfd455d87833a6d72b7604323a2379a8" + integrity sha512-12k9xhAJBkpg598it+NRmaYIdEe6TSnsL/v6/KRXDcUyTK11VYwZQej2eHnMWtqot+znJ+GNTqb5YbiXi+5Low== + optionalDependencies: + "@rollup/rollup-darwin-arm64" "4.34.9" + "@rollup/rollup-darwin-x64" "4.34.9" + "@rollup/rollup-linux-arm64-gnu" "4.34.9" + "@rollup/rollup-linux-arm64-musl" "4.34.9" + "@rollup/rollup-linux-x64-gnu" "4.34.9" + "@rollup/rollup-linux-x64-musl" "4.34.9" + "@rollup/rollup-win32-arm64-msvc" "4.34.9" + "@rollup/rollup-win32-x64-msvc" "4.34.9" + +"@testing-library/dom@*": + version "10.4.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-10.4.0.tgz#82a9d9462f11d240ecadbf406607c6ceeeff43a8" + integrity sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^5.0.1" + aria-query "5.3.0" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.5.0" + pretty-format "^27.0.2" "@testing-library/dom@^6.15.0": version "6.16.0" - resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-6.16.0.tgz" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-6.16.0.tgz#04ada27ed74ad4c0f0d984a1245bb29b1fd90ba9" integrity sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA== dependencies: "@babel/runtime" "^7.8.4" @@ -850,16 +932,21 @@ "@testing-library/react@^9.3.1": version "9.5.0" - resolved "https://registry.npmjs.org/@testing-library/react/-/react-9.5.0.tgz" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-9.5.0.tgz#71531655a7890b61e77a1b39452fbedf0472ca5e" integrity sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg== dependencies: "@babel/runtime" "^7.8.4" "@testing-library/dom" "^6.15.0" "@types/testing-library__react" "^9.1.2" +"@types/aria-query@^5.0.1": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" + integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== + "@types/babel__core@^7.20.5": version "7.20.5" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== dependencies: "@babel/parser" "^7.20.7" @@ -870,14 +957,14 @@ "@types/babel__generator@*": version "7.27.0" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": version "7.4.4" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" @@ -885,40 +972,45 @@ "@types/babel__traverse@*": version "7.20.7" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz#968cdc2366ec3da159f61166428ee40f370e56c2" integrity sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng== dependencies: "@babel/types" "^7.20.7" "@types/debug@^4.0.0": version "4.1.12" - resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== dependencies: "@types/ms" "*" "@types/estree-jsx@^1.0.0": version "1.0.5" - resolved "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.5.tgz#858a88ea20f34fe65111f005a689fa1ebf70dc18" integrity sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg== dependencies: "@types/estree" "*" -"@types/estree@*", "@types/estree@1.0.7", "@types/estree@^1.0.0": +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== + +"@types/estree@1.0.7": version "1.0.7" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== "@types/fs-extra@^8.0.0": version "8.1.5" - resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.1.5.tgz#33aae2962d3b3ec9219b5aca2555ee00274f5927" integrity sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ== dependencies: "@types/node" "*" "@types/geojson@*": version "7946.0.16" - resolved "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.16.tgz#8ebe53d69efada7044454e3305c19017d97ced2a" integrity sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg== "@types/google.maps@~3.58.1": @@ -928,19 +1020,19 @@ "@types/hast@^3.0.0": version "3.0.4" - resolved "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== dependencies: "@types/unist" "*" "@types/history@^4.7.11": version "4.7.11" - resolved "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== "@types/hoist-non-react-statics@^3.3.0": version "3.3.6" - resolved "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz#6bba74383cdab98e8db4e20ce5b4a6b98caed010" integrity sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw== dependencies: "@types/react" "*" @@ -948,80 +1040,87 @@ "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": version "2.0.6" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/istanbul-lib-report@*": version "3.0.3" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^1.1.1": version "1.1.2" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" "@types/jest-diff@*": - version "20.0.1" - resolved "https://registry.npmjs.org/@types/jest-diff/-/jest-diff-20.0.1.tgz" - integrity sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA== + version "24.3.0" + resolved "https://registry.yarnpkg.com/@types/jest-diff/-/jest-diff-24.3.0.tgz#29e237a3d954babfe6e23cc59b57ecd8ca8d858d" + integrity sha512-vx1CRDeDUwQ0Pc7v+hS61O1ETA81kD04IMEC0hS1kPyVtHDdZrokAvpF7MT9VI/fVSzicelUZNCepDvhRV1PeA== + dependencies: + jest-diff "*" "@types/jest@24.0.18": version "24.0.18" - resolved "https://registry.npmjs.org/@types/jest/-/jest-24.0.18.tgz" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.18.tgz#9c7858d450c59e2164a8a9df0905fc5091944498" integrity sha512-jcDDXdjTcrQzdN06+TSVsPPqxvsZA/5QkYfIZlq1JMw7FdP5AZylbOc+6B/cuDurctRe+MziUMtQ3xQdrbjqyQ== dependencies: "@types/jest-diff" "*" "@types/js-cookie@^2.2.6": version "2.2.7" - resolved "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz" + resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.7.tgz#226a9e31680835a6188e887f3988e60c04d3f6a3" integrity sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA== "@types/leaflet@^1.9.17": version "1.9.18" - resolved "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.18.tgz" + resolved "https://registry.yarnpkg.com/@types/leaflet/-/leaflet-1.9.18.tgz#8c295912419a9df21917b4380310f66e19c46cab" integrity sha512-ht2vsoPjezor5Pmzi5hdsA7F++v5UGq9OlUduWHmMZiuQGIpJ2WS5+Gg9HaAA79gNh1AIPtCqhzejcIZ3lPzXQ== dependencies: "@types/geojson" "*" "@types/mdast@^4.0.0": version "4.0.4" - resolved "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== dependencies: "@types/unist" "*" "@types/mdx@^2.0.0": version "2.0.13" - resolved "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.13.tgz#68f6877043d377092890ff5b298152b0a21671bd" integrity sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw== "@types/ms@*": version "2.1.0" - resolved "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== "@types/node@*": - version "22.15.21" - resolved "https://registry.npmjs.org/@types/node/-/node-22.15.21.tgz" - integrity sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ== + version "22.15.30" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.15.30.tgz#3a20431783e28dd0b0326f84ab386a2ec81d921d" + integrity sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA== dependencies: undici-types "~6.21.0" -"@types/react-dom@*", "@types/react-dom@19.0.4": +"@types/react-dom@*": + version "19.1.6" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.1.6.tgz#4af629da0e9f9c0f506fc4d1caa610399c595d64" + integrity sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw== + +"@types/react-dom@19.0.4": version "19.0.4" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.0.4.tgz#bedba97f9346bd4c0fe5d39e689713804ec9ac89" integrity sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg== "@types/react-redux@^7.1.34": version "7.1.34" - resolved "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.34.tgz" + resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.34.tgz#83613e1957c481521e6776beeac4fd506d11bd0e" integrity sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ== dependencies: "@types/hoist-non-react-statics" "^3.3.0" @@ -1031,7 +1130,7 @@ "@types/react-router-dom@^5.3.3": version "5.3.3" - resolved "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== dependencies: "@types/history" "^4.7.11" @@ -1040,34 +1139,48 @@ "@types/react-router@*", "@types/react-router@^5.1.20": version "5.1.20" - resolved "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.20.tgz#88eccaa122a82405ef3efbcaaa5dcdd9f021387c" integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q== dependencies: "@types/history" "^4.7.11" "@types/react" "*" -"@types/react@*", "@types/react@19.0.10": +"@types/react@*": + version "19.1.6" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.6.tgz#dee39f3e1e9a7d693f156a5840570b6d57f325ea" + integrity sha512-JeG0rEWak0N6Itr6QUx+X60uQmN+5t3j9r/OVDtWzFXKaj6kD1BwJzOksD0FF6iWxZlbE1kB0q9vtnU2ekqa1Q== + dependencies: + csstype "^3.0.2" + +"@types/react@19.0.10": version "19.0.10" - resolved "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.10.tgz#d0c66dafd862474190fe95ce11a68de69ed2b0eb" integrity sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g== dependencies: csstype "^3.0.2" "@types/slice-ansi@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@types/slice-ansi/-/slice-ansi-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/slice-ansi/-/slice-ansi-4.0.0.tgz#eb40dfbe3ac5c1de61f6bcb9ed471f54baa989d6" integrity sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ== -"@types/testing-library__dom@*", "@types/testing-library__dom@^6.12.1": +"@types/testing-library__dom@*": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/testing-library__dom/-/testing-library__dom-7.5.0.tgz#e0a00dd766983b1d6e9d10d33e708005ce6ad13e" + integrity sha512-mj1aH4cj3XUpMEgVpognma5kHVtbm6U6cHZmEFzCRiXPvKkuHrFr3+yXdGLXvfFRBaQIVshPGHI+hGTOJlhS/g== + dependencies: + "@testing-library/dom" "*" + +"@types/testing-library__dom@^6.12.1": version "6.14.0" - resolved "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz" + resolved "https://registry.yarnpkg.com/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz#1aede831cb4ed4a398448df5a2c54b54a365644e" integrity sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA== dependencies: pretty-format "^24.3.0" "@types/testing-library__react@^9.1.2": version "9.1.3" - resolved "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.3.tgz" + resolved "https://registry.yarnpkg.com/@types/testing-library__react/-/testing-library__react-9.1.3.tgz#35eca61cc6ea923543796f16034882a1603d7302" integrity sha512-iCdNPKU3IsYwRK9JieSYAiX0+aYDXOGAmrC/3/M7AqqSDKnWWVv07X+Zk1uFSL7cMTUYzv4lQRfohucEocn5/w== dependencies: "@types/react-dom" "*" @@ -1076,47 +1189,47 @@ "@types/unist@*", "@types/unist@^3.0.0": version "3.0.3" - resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== "@types/unist@^2.0.0": version "2.0.11" - resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== "@types/use-sync-external-store@^0.0.6": version "0.0.6" - resolved "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz#60be8d21baab8c305132eb9cb912ed497852aadc" integrity sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg== "@types/yargs-parser@*": version "21.0.3" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^13.0.0": version "13.0.12" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== dependencies: "@types/yargs-parser" "*" "@types/yargs@^15.0.0": version "15.0.19" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.19.tgz#328fb89e46109ecbdb70c295d96ff2f46dfd01b9" integrity sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA== dependencies: "@types/yargs-parser" "*" "@ungap/structured-clone@^1.0.0": version "1.3.0" - resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== "@vitejs/plugin-react@^4.3.4": - version "4.5.0" - resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.5.0.tgz" - integrity sha512-JuLWaEqypaJmOJPLWwO335Ig6jSgC1FTONCWAxnqcQthLTK/Yc9aH6hr9z/87xciejbQcnP3GnA1FWUSWeXaeg== + version "4.5.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.5.1.tgz#19432712467ad3b81f24c85d695a6febf8d4cc11" + integrity sha512-uPZBqSI0YD4lpkIru6M35sIfylLGTyhGHvDZbNLuMA73lMlwJKz5xweH7FajfcCAc2HnINciejA9qTz0dr0M7A== dependencies: "@babel/core" "^7.26.10" "@babel/plugin-transform-react-jsx-self" "^7.25.9" @@ -1127,12 +1240,12 @@ "@xmldom/xmldom@^0.8.8": version "0.8.10" - resolved "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== "@xobotyi/scrollbar-width@^1.9.5": version "1.9.5" - resolved "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz" + resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d" integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ== "@zxing/browser@0.0.7": @@ -1158,48 +1271,60 @@ ansi-escapes@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== dependencies: type-fest "^1.0.2" ansi-regex@^4.0.0: version "4.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== ansi-regex@^5.0.0, ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== ansi-styles@^3.2.0: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + ansi-styles@^6.0.0, ansi-styles@^6.1.0: version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== +aria-query@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + aria-query@^4.0.2: version "4.2.2" - resolved "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== dependencies: "@babel/runtime" "^7.10.2" @@ -1207,22 +1332,22 @@ aria-query@^4.0.2: astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== axios@^1.9.0: version "1.9.0" - resolved "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.9.0.tgz#25534e3b72b54540077d33046f77e3b8d7081901" integrity sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg== dependencies: follow-redirects "^1.15.6" @@ -1231,133 +1356,146 @@ axios@^1.9.0: bail@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base64-js@^1.5.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== big-integer@1.6.x: version "1.6.52" - resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== bplist-parser@^0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.2.tgz#3ac79d67ec52c4c107893e0237eb787cbacbced7" integrity sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ== dependencies: big-integer "1.6.x" brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" -braces@^3.0.2: +braces@^3.0.2, braces@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" browserslist@^4.24.0: - version "4.24.5" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz" - integrity sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw== + version "4.25.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.0.tgz#986aa9c6d87916885da2b50d8eb577ac8d133b2c" + integrity sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA== dependencies: - caniuse-lite "^1.0.30001716" - electron-to-chromium "^1.5.149" + caniuse-lite "^1.0.30001718" + electron-to-chromium "^1.5.160" node-releases "^2.0.19" update-browserslist-db "^1.1.3" buffer-crc32@~0.2.3: version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: es-errors "^1.3.0" function-bind "^1.1.2" -caniuse-lite@^1.0.30001716: - version "1.0.30001718" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz" - integrity sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw== +caniuse-lite@^1.0.30001718: + version "1.0.30001721" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz#36b90cd96901f8c98dd6698bf5c8af7d4c6872d7" + integrity sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ== + +catenary-curve@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/catenary-curve/-/catenary-curve-1.0.1.tgz#57c3061992735bfd34b274c401a96806fe30a21f" + integrity sha512-vSHQtYFjItV4wxUH5OkicA3Kmln6thBBWlJLiw2f4apfvkKw4BVe8bTbG6lnbJe60CIr8PyHzjSX27blSJ07Ww== ccount@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== chalk@5.3.0: version "5.3.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== chalk@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + character-entities-html4@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== character-entities-legacy@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== character-entities@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== character-reference-invalid@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== chokidar@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== dependencies: readdirp "^4.0.1" chownr@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== cli-cursor@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== dependencies: restore-cursor "^4.0.0" cli-truncate@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== dependencies: slice-ansi "^5.0.0" @@ -1365,75 +1503,75 @@ cli-truncate@^3.1.0: color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colorette@^2.0.20: version "2.0.20" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== combined-stream@^1.0.8: version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" comma-separated-tokens@^2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== commander@11.0.0: version "11.0.0" - resolved "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== commander@^12.1.0: version "12.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== convert-source-map@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== copy-to-clipboard@^3.3.1: version "3.3.3" - resolved "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== dependencies: toggle-selection "^1.0.6" core-js-pure@^3.30.2: version "3.42.0" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.42.0.tgz" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.42.0.tgz#e86c45a7f3bdcb608823e872f73d1ad9ddf0531d" integrity sha512-007bM04u91fF4kMgwom2I5cQxAFIy8jVulgr9eozILl/SZE53QOqnW/+vviC+wQWLv+AunBG+8Q0TLoeSsSxRQ== cross-spawn@^7.0.3, cross-spawn@^7.0.6: version "7.0.6" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" @@ -1442,14 +1580,14 @@ cross-spawn@^7.0.3, cross-spawn@^7.0.6: css-in-js-utils@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz#640ae6a33646d401fc720c54fc61c42cd76ae2bb" integrity sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A== dependencies: hyphenate-style-name "^1.0.3" css-tree@^1.1.2: version "1.1.3" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== dependencies: mdn-data "2.0.14" @@ -1457,72 +1595,82 @@ css-tree@^1.1.2: csstype@^3.0.2, csstype@^3.1.2: version "3.1.3" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== date-fns@^2.25.0: version "2.30.0" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== dependencies: "@babel/runtime" "^7.21.0" debug@4.3.4: version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.3.4, debug@^4.4.0: version "4.4.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== dependencies: ms "^2.1.3" decode-named-character-reference@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz#5d6ce68792808901210dac42a8e9853511e2b8bf" integrity sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w== dependencies: character-entities "^2.0.0" define-lazy-prop@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -dequal@^2.0.0: +dequal@^2.0.0, dequal@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== detect-libc@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== devlop@^1.0.0, devlop@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== dependencies: dequal "^2.0.0" +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + dom-accessibility-api@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.3.0.tgz#511e5993dd673b97c87ea47dba0e3892f7e0c983" integrity sha512-PzwHEmsRP3IGY4gv/Ug+rMeaTIyTJvadCb+ujYXYeIylbHJezIyNToe8KfEgHTCEYyC+/bUghYOGg8yMGlZ6vA== +dom-accessibility-api@^0.5.9: + version "0.5.16" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" + integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== + dunder-proto@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== dependencies: call-bind-apply-helpers "^1.0.1" @@ -1531,63 +1679,63 @@ dunder-proto@^1.0.1: eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.5.149: - version "1.5.157" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.157.tgz" - integrity sha512-/0ybgsQd1muo8QlnuTpKwtl0oX5YMlUGbm8xyqgDU00motRkKFFbUJySAQBWcY79rVqNLWIWa87BGVGClwAB2w== +electron-to-chromium@^1.5.160: + version "1.5.165" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.165.tgz#477b0957e42f071905a86f7c905a9848f95d2bdb" + integrity sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw== elementtree@^0.1.7: version "0.1.7" - resolved "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz" + resolved "https://registry.yarnpkg.com/elementtree/-/elementtree-0.1.7.tgz#9ac91be6e52fb6e6244c4e54a4ac3ed8ae8e29c0" integrity sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg== dependencies: sax "1.1.4" emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== env-paths@^2.2.0: version "2.2.1" - resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== error-stack-parser@^2.0.6: version "2.1.4" - resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== dependencies: stackframe "^1.3.4" es-define-property@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== es-errors@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== dependencies: es-errors "^1.3.0" es-set-tostringtag@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== dependencies: es-errors "^1.3.0" @@ -1596,54 +1744,54 @@ es-set-tostringtag@^2.1.0: hasown "^2.0.2" esbuild@^0.25.0: - version "0.25.4" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz" - integrity sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q== + version "0.25.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.5.tgz#71075054993fdfae76c66586f9b9c1f8d7edd430" + integrity sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ== optionalDependencies: - "@esbuild/aix-ppc64" "0.25.4" - "@esbuild/android-arm" "0.25.4" - "@esbuild/android-arm64" "0.25.4" - "@esbuild/android-x64" "0.25.4" - "@esbuild/darwin-arm64" "0.25.4" - "@esbuild/darwin-x64" "0.25.4" - "@esbuild/freebsd-arm64" "0.25.4" - "@esbuild/freebsd-x64" "0.25.4" - "@esbuild/linux-arm" "0.25.4" - "@esbuild/linux-arm64" "0.25.4" - "@esbuild/linux-ia32" "0.25.4" - "@esbuild/linux-loong64" "0.25.4" - "@esbuild/linux-mips64el" "0.25.4" - "@esbuild/linux-ppc64" "0.25.4" - "@esbuild/linux-riscv64" "0.25.4" - "@esbuild/linux-s390x" "0.25.4" - "@esbuild/linux-x64" "0.25.4" - "@esbuild/netbsd-arm64" "0.25.4" - "@esbuild/netbsd-x64" "0.25.4" - "@esbuild/openbsd-arm64" "0.25.4" - "@esbuild/openbsd-x64" "0.25.4" - "@esbuild/sunos-x64" "0.25.4" - "@esbuild/win32-arm64" "0.25.4" - "@esbuild/win32-ia32" "0.25.4" - "@esbuild/win32-x64" "0.25.4" + "@esbuild/aix-ppc64" "0.25.5" + "@esbuild/android-arm" "0.25.5" + "@esbuild/android-arm64" "0.25.5" + "@esbuild/android-x64" "0.25.5" + "@esbuild/darwin-arm64" "0.25.5" + "@esbuild/darwin-x64" "0.25.5" + "@esbuild/freebsd-arm64" "0.25.5" + "@esbuild/freebsd-x64" "0.25.5" + "@esbuild/linux-arm" "0.25.5" + "@esbuild/linux-arm64" "0.25.5" + "@esbuild/linux-ia32" "0.25.5" + "@esbuild/linux-loong64" "0.25.5" + "@esbuild/linux-mips64el" "0.25.5" + "@esbuild/linux-ppc64" "0.25.5" + "@esbuild/linux-riscv64" "0.25.5" + "@esbuild/linux-s390x" "0.25.5" + "@esbuild/linux-x64" "0.25.5" + "@esbuild/netbsd-arm64" "0.25.5" + "@esbuild/netbsd-x64" "0.25.5" + "@esbuild/openbsd-arm64" "0.25.5" + "@esbuild/openbsd-x64" "0.25.5" + "@esbuild/sunos-x64" "0.25.5" + "@esbuild/win32-arm64" "0.25.5" + "@esbuild/win32-ia32" "0.25.5" + "@esbuild/win32-x64" "0.25.5" escalade@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== estree-util-is-identifier-name@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz#0b5ef4c4ff13508b34dcd01ecfa945f61fce5dbd" integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg== eventemitter3@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== execa@7.2.0: version "7.2.0" - resolved "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== dependencies: cross-spawn "^7.0.3" @@ -1658,69 +1806,70 @@ execa@7.2.0: extend@^3.0.0: version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-shallow-equal@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz#d4dcaf6472440dcefa6f88b98e3251e27f25628b" integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw== fastest-stable-stringify@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz#3757a6774f6ec8de40c4e86ec28ea02417214c76" integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q== fd-slicer@~1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== dependencies: pend "~1.2.0" fdir@^6.4.4: - version "6.4.4" - resolved "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz" - integrity sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg== + version "6.4.5" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.5.tgz#328e280f3a23699362f95f2e82acf978a0c0cb49" + integrity sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw== fill-range@^7.1.1: version "7.1.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" follow-redirects@^1.15.6: version "1.15.9" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== foreground-child@^3.1.0: version "3.3.1" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: cross-spawn "^7.0.6" signal-exit "^4.0.1" form-data@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz" - integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w== + version "4.0.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.3.tgz#608b1b3f3e28be0fccf5901fc85fb3641e5cf0ae" + integrity sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" es-set-tostringtag "^2.1.0" + hasown "^2.0.2" mime-types "^2.1.12" fs-extra@^11.2.0: version "11.3.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.0.tgz#0daced136bbaf65a555a326719af931adc7a314d" integrity sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew== dependencies: graceful-fs "^4.2.0" @@ -1729,7 +1878,7 @@ fs-extra@^11.2.0: fs-extra@^9.0.0: version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" @@ -1739,7 +1888,7 @@ fs-extra@^9.0.0: fs-minipass@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" @@ -1751,17 +1900,17 @@ fsevents@~2.3.2, fsevents@~2.3.3: function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-intrinsic@^1.2.6: version "1.3.0" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: call-bind-apply-helpers "^1.0.2" @@ -1777,7 +1926,7 @@ get-intrinsic@^1.2.6: get-proto@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== dependencies: dunder-proto "^1.0.1" @@ -1785,12 +1934,12 @@ get-proto@^1.0.1: get-stream@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== glob@^11.0.0: version "11.0.2" - resolved "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.2.tgz#3261e3897bbc603030b041fd77ba636022d51ce0" integrity sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ== dependencies: foreground-child "^3.1.0" @@ -1802,46 +1951,46 @@ glob@^11.0.0: globals@^11.1.0: version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== gopd@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-symbols@^1.0.3, has-symbols@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== has-tostringtag@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: has-symbols "^1.0.3" hasown@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" hast-util-to-jsx-runtime@^2.0.0: version "2.3.6" - resolved "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz" + resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz#ff31897aae59f62232e21594eac7ef6b63333e98" integrity sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg== dependencies: "@types/estree" "^1.0.0" @@ -1862,14 +2011,14 @@ hast-util-to-jsx-runtime@^2.0.0: hast-util-whitespace@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== dependencies: "@types/hast" "^3.0.0" history@^4.9.0: version "4.10.1" - resolved "https://registry.npmjs.org/history/-/history-4.10.1.tgz" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== dependencies: "@babel/runtime" "^7.1.2" @@ -1881,7 +2030,7 @@ history@^4.9.0: hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: version "3.3.2" - resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: react-is "^16.7.0" @@ -1893,7 +2042,7 @@ howler@^2.2.4: html-url-attributes@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/html-url-attributes/-/html-url-attributes-3.0.1.tgz#83b052cd5e437071b756cd74ae70f708870c2d87" integrity sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ== html5-qrcode@2.3.8: @@ -1903,14 +2052,19 @@ html5-qrcode@2.3.8: human-signals@^4.3.0: version "4.3.1" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== hyphenate-style-name@^1.0.3: version "1.1.0" - resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz#1797bf50369588b47b72ca6d5e65374607cf4436" integrity sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw== +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== + immer@^9.0.16: version "9.0.21" resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" @@ -1918,46 +2072,46 @@ immer@^9.0.16: immutable@^5.0.2: version "5.1.2" - resolved "https://registry.npmjs.org/immutable/-/immutable-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.2.tgz#e8169476414505e5a4fa650107b65e1227d16d4b" integrity sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ== inherits@^2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^4.1.1: version "4.1.3" - resolved "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.3.tgz#4c359675a6071a46985eb39b14e4a2c0ec98a795" integrity sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg== inline-style-parser@0.2.4: version "0.2.4" - resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz#f4af5fe72e612839fcd453d989a586566d695f22" integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q== inline-style-prefixer@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-7.0.1.tgz#9310f3cfa2c6f3901d1480f373981c02691781e8" integrity sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw== dependencies: css-in-js-utils "^3.1.0" ionicons@^7.0.0, ionicons@^7.1.2, ionicons@^7.2.2: version "7.4.0" - resolved "https://registry.npmjs.org/ionicons/-/ionicons-7.4.0.tgz" + resolved "https://registry.yarnpkg.com/ionicons/-/ionicons-7.4.0.tgz#9c285aaa8089befbd6c5a89ae13292d364cd9ace" integrity sha512-ZK94MMqgzMCPPMhmk8Ouu6goyVHFIlw/ACP6oe3FrikcI0N7CX0xcwVaEbUc0G/v3W0shI93vo+9ve/KpvcNhQ== dependencies: "@stencil/core" "^4.0.3" is-alphabetical@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== is-alphanumerical@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== dependencies: is-alphabetical "^2.0.0" @@ -1965,103 +2119,118 @@ is-alphanumerical@^2.0.0: is-decimal@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-fullwidth-code-point@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== is-glob@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-hexadecimal@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-obj@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== is-stream@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" isarray@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== jackspeak@^4.0.1: version "4.1.1" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.1.1.tgz#96876030f450502047fc7e8c7fcf8ce8124e43ae" integrity sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ== dependencies: "@isaacs/cliui" "^8.0.2" +jest-diff@*: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + js-cookie@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== jsesc@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== json5@^2.2.3: version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -2075,27 +2244,39 @@ kdbush@^4.0.2: kleur@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== kleur@^4.1.5: version "4.1.5" - resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== +lazy-brush@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lazy-brush/-/lazy-brush-1.0.1.tgz#5bf099073237294d2f6fc9d6c5d1d705e891c5bf" + integrity sha512-xT/iSClTVi7vLoF8dCWTBhCuOWqsLXCMPa6ucVmVAk6hyNCM5JeS1NLhXqIrJktUg+caEYKlqSOUU4u3cpXzKg== + leaflet@^1.9.4: version "1.9.4" - resolved "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz" + resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.9.4.tgz#23fae724e282fa25745aff82ca4d394748db7d8d" integrity sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA== +lie@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" + integrity sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw== + dependencies: + immediate "~3.0.5" + lilconfig@2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== lint-staged@^13.2.0: version "13.3.0" - resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-13.3.0.tgz" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.3.0.tgz#7965d72a8d6a6c932f85e9c13ccf3596782d28a5" integrity sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ== dependencies: chalk "5.3.0" @@ -2111,7 +2292,7 @@ lint-staged@^13.2.0: listr2@6.6.1: version "6.6.1" - resolved "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-6.6.1.tgz#08b2329e7e8ba6298481464937099f4a2cd7f95d" integrity sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg== dependencies: cli-truncate "^3.1.0" @@ -2121,6 +2302,13 @@ listr2@6.6.1: rfdc "^1.3.0" wrap-ansi "^8.1.0" +localforage@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.10.0.tgz#5c465dc5f62b2807c3a84c0c6a1b1b3212781dd4" + integrity sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg== + dependencies: + lie "3.1.1" + lodash-es@^4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" @@ -2133,7 +2321,7 @@ lodash@^4.0.1, lodash@^4.17.15: log-update@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-5.0.1.tgz#9e928bf70cb183c1f0c9e91d9e6b7115d597ce09" integrity sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== dependencies: ansi-escapes "^5.0.0" @@ -2144,28 +2332,33 @@ log-update@^5.0.1: longest-streak@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" lru-cache@^11.0.0: version "11.1.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.1.0.tgz#afafb060607108132dbc1cf8ae661afb69486117" integrity sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A== lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" +lz-string@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== + material-colors@^1.2.1: version "1.2.6" resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46" @@ -2173,12 +2366,12 @@ material-colors@^1.2.1: math-intrinsics@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== mdast-util-from-markdown@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz#4850390ca7cf17413a9b9a0fbefcd1bc0eb4160a" integrity sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA== dependencies: "@types/mdast" "^4.0.0" @@ -2196,7 +2389,7 @@ mdast-util-from-markdown@^2.0.0: mdast-util-mdx-expression@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz#43f0abac9adc756e2086f63822a38c8d3c3a5096" integrity sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ== dependencies: "@types/estree-jsx" "^1.0.0" @@ -2208,7 +2401,7 @@ mdast-util-mdx-expression@^2.0.0: mdast-util-mdx-jsx@^3.0.0: version "3.2.0" - resolved "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz#fd04c67a2a7499efb905a8a5c578dddc9fdada0d" integrity sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q== dependencies: "@types/estree-jsx" "^1.0.0" @@ -2226,7 +2419,7 @@ mdast-util-mdx-jsx@^3.0.0: mdast-util-mdxjs-esm@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz#019cfbe757ad62dd557db35a695e7314bcc9fa97" integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== dependencies: "@types/estree-jsx" "^1.0.0" @@ -2238,7 +2431,7 @@ mdast-util-mdxjs-esm@^2.0.0: mdast-util-phrasing@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz#7cc0a8dec30eaf04b7b1a9661a92adb3382aa6e3" integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== dependencies: "@types/mdast" "^4.0.0" @@ -2246,7 +2439,7 @@ mdast-util-phrasing@^4.0.0: mdast-util-to-hast@^13.0.0: version "13.2.0" - resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz#5ca58e5b921cc0a3ded1bc02eed79a4fe4fe41f4" integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== dependencies: "@types/hast" "^3.0.0" @@ -2261,7 +2454,7 @@ mdast-util-to-hast@^13.0.0: mdast-util-to-markdown@^2.0.0: version "2.1.2" - resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz#f910ffe60897f04bb4b7e7ee434486f76288361b" integrity sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA== dependencies: "@types/mdast" "^4.0.0" @@ -2276,24 +2469,24 @@ mdast-util-to-markdown@^2.0.0: mdast-util-to-string@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== dependencies: "@types/mdast" "^4.0.0" mdn-data@2.0.14: version "2.0.14" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== micromark-core-commonmark@^2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz#c691630e485021a68cf28dbc2b2ca27ebf678cd4" integrity sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg== dependencies: decode-named-character-reference "^1.0.0" @@ -2315,7 +2508,7 @@ micromark-core-commonmark@^2.0.0: micromark-factory-destination@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz#8fef8e0f7081f0474fbdd92deb50c990a0264639" integrity sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA== dependencies: micromark-util-character "^2.0.0" @@ -2324,7 +2517,7 @@ micromark-factory-destination@^2.0.0: micromark-factory-label@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz#5267efa97f1e5254efc7f20b459a38cb21058ba1" integrity sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg== dependencies: devlop "^1.0.0" @@ -2334,7 +2527,7 @@ micromark-factory-label@^2.0.0: micromark-factory-space@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz#36d0212e962b2b3121f8525fc7a3c7c029f334fc" integrity sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg== dependencies: micromark-util-character "^2.0.0" @@ -2342,7 +2535,7 @@ micromark-factory-space@^2.0.0: micromark-factory-title@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz#237e4aa5d58a95863f01032d9ee9b090f1de6e94" integrity sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw== dependencies: micromark-factory-space "^2.0.0" @@ -2352,7 +2545,7 @@ micromark-factory-title@^2.0.0: micromark-factory-whitespace@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz#06b26b2983c4d27bfcc657b33e25134d4868b0b1" integrity sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ== dependencies: micromark-factory-space "^2.0.0" @@ -2362,7 +2555,7 @@ micromark-factory-whitespace@^2.0.0: micromark-util-character@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz#2f987831a40d4c510ac261e89852c4e9703ccda6" integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== dependencies: micromark-util-symbol "^2.0.0" @@ -2370,14 +2563,14 @@ micromark-util-character@^2.0.0: micromark-util-chunked@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz#47fbcd93471a3fccab86cff03847fc3552db1051" integrity sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA== dependencies: micromark-util-symbol "^2.0.0" micromark-util-classify-character@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz#d399faf9c45ca14c8b4be98b1ea481bced87b629" integrity sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q== dependencies: micromark-util-character "^2.0.0" @@ -2386,7 +2579,7 @@ micromark-util-classify-character@^2.0.0: micromark-util-combine-extensions@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz#2a0f490ab08bff5cc2fd5eec6dd0ca04f89b30a9" integrity sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg== dependencies: micromark-util-chunked "^2.0.0" @@ -2394,14 +2587,14 @@ micromark-util-combine-extensions@^2.0.0: micromark-util-decode-numeric-character-reference@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz#fcf15b660979388e6f118cdb6bf7d79d73d26fe5" integrity sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw== dependencies: micromark-util-symbol "^2.0.0" micromark-util-decode-string@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz#6cb99582e5d271e84efca8e61a807994d7161eb2" integrity sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ== dependencies: decode-named-character-reference "^1.0.0" @@ -2411,31 +2604,31 @@ micromark-util-decode-string@^2.0.0: micromark-util-encode@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz#0d51d1c095551cfaac368326963cf55f15f540b8" integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== micromark-util-html-tag-name@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz#e40403096481986b41c106627f98f72d4d10b825" integrity sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA== micromark-util-normalize-identifier@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz#c30d77b2e832acf6526f8bf1aa47bc9c9438c16d" integrity sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q== dependencies: micromark-util-symbol "^2.0.0" micromark-util-resolve-all@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz#e1a2d62cdd237230a2ae11839027b19381e31e8b" integrity sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg== dependencies: micromark-util-types "^2.0.0" micromark-util-sanitize-uri@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz#ab89789b818a58752b73d6b55238621b7faa8fd7" integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== dependencies: micromark-util-character "^2.0.0" @@ -2444,7 +2637,7 @@ micromark-util-sanitize-uri@^2.0.0: micromark-util-subtokenize@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz#d8ade5ba0f3197a1cf6a2999fbbfe6357a1a19ee" integrity sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA== dependencies: devlop "^1.0.0" @@ -2454,17 +2647,17 @@ micromark-util-subtokenize@^2.0.0: micromark-util-symbol@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz#e5da494e8eb2b071a0d08fb34f6cefec6c0a19b8" integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== micromark-util-types@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz#f00225f5f5a0ebc3254f96c36b6605c4b393908e" integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== micromark@^4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.2.tgz#91395a3e1884a198e62116e33c9c568e39936fdb" integrity sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA== dependencies: "@types/debug" "^4.0.0" @@ -2485,63 +2678,71 @@ micromark@^4.0.0: micromark-util-symbol "^2.0.0" micromark-util-types "^2.0.0" -micromatch@4.0.5, micromatch@^4.0.5: +micromatch@4.0.5: version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" picomatch "^2.3.1" +micromatch@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + mime-db@1.52.0: version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12: version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-fn@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== minimatch@^10.0.0: version "10.0.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== dependencies: brace-expansion "^2.0.1" minipass@^3.0.0: version "3.3.6" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" minipass@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== minipass@^7.1.2: version "7.1.2" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== minizlib@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" @@ -2549,22 +2750,22 @@ minizlib@^2.1.1: mkdirp@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@^2.1.3: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nano-css@^5.6.2: version "5.6.2" - resolved "https://registry.npmjs.org/nano-css/-/nano-css-5.6.2.tgz" + resolved "https://registry.yarnpkg.com/nano-css/-/nano-css-5.6.2.tgz#584884ddd7547278f6d6915b6805069742679a32" integrity sha512-+6bHaC8dSDGALM1HJjOHVXpuastdu2xFoZlC77Jh4cg+33Zcgm+Gxd+1xsnpZK14eyHObSp82+ll5y3SX75liw== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -2576,14 +2777,14 @@ nano-css@^5.6.2: stacktrace-js "^2.0.2" stylis "^4.3.0" -nanoid@^3.3.8: +nanoid@^3.3.11: version "3.3.11" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== native-run@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/native-run/-/native-run-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/native-run/-/native-run-2.0.1.tgz#a9b213c32824b007cbdd0279e0edd3c24bcc2f7a" integrity sha512-XfG1FBZLM50J10xH9361whJRC9SHZ0Bub4iNRhhI61C8Jv0e1ud19muex6sNKB51ibQNUJNuYn25MuYET/rE6w== dependencies: "@ionic/utils-fs" "^3.1.7" @@ -2600,43 +2801,43 @@ native-run@^2.0.1: node-addon-api@^7.0.0: version "7.1.1" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== node-releases@^2.0.19: version "2.0.19" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== npm-run-path@^5.1.0: version "5.3.0" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== dependencies: path-key "^4.0.0" object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== onetime@^5.1.0: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" onetime@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== dependencies: mimic-fn "^4.0.0" open@^8.4.0: version "8.4.2" - resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: define-lazy-prop "^2.0.0" @@ -2645,12 +2846,12 @@ open@^8.4.0: package-json-from-dist@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== parse-entities@^4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.2.tgz#61d46f5ed28e4ee62e9ddc43d6b010188443f159" integrity sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw== dependencies: "@types/unist" "^2.0.0" @@ -2663,17 +2864,17 @@ parse-entities@^4.0.0: path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-key@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== path-scurry@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== dependencies: lru-cache "^11.0.0" @@ -2681,34 +2882,34 @@ path-scurry@^2.0.0: path-to-regexp@^1.7.0: version "1.9.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.9.0.tgz#5dc0753acbf8521ca2e0f137b4578b917b10cf24" integrity sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g== dependencies: isarray "0.0.1" pend@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== picocolors@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== picomatch@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== pidtree@0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== pigeon-maps@^0.22.1: @@ -2718,7 +2919,7 @@ pigeon-maps@^0.22.1: plist@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== dependencies: "@xmldom/xmldom" "^0.8.8" @@ -2726,11 +2927,11 @@ plist@^3.1.0: xmlbuilder "^15.1.1" postcss@^8.5.3: - version "8.5.3" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz" - integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== + version "8.5.4" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.4.tgz#d61014ac00e11d5f58458ed7247d899bd65f99c0" + integrity sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w== dependencies: - nanoid "^3.3.8" + nanoid "^3.3.11" picocolors "^1.1.1" source-map-js "^1.2.1" @@ -2741,7 +2942,7 @@ prettier@^3.5.3: pretty-format@^24.3.0: version "24.9.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== dependencies: "@jest/types" "^24.9.0" @@ -2751,7 +2952,7 @@ pretty-format@^24.3.0: pretty-format@^25.1.0: version "25.5.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== dependencies: "@jest/types" "^25.5.0" @@ -2759,9 +2960,27 @@ pretty-format@^25.1.0: ansi-styles "^4.0.0" react-is "^16.12.0" +pretty-format@^27.0.2: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + prompts@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== dependencies: kleur "^3.0.3" @@ -2769,7 +2988,7 @@ prompts@^2.4.2: prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.8.1: version "15.8.1" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" @@ -2778,12 +2997,12 @@ prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.8.1: property-information@^7.0.0: version "7.1.0" - resolved "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d" integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ== proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== pullstate@^1: @@ -2799,6 +3018,16 @@ qr.js@0.0.0: resolved "https://registry.yarnpkg.com/qr.js/-/qr.js-0.0.0.tgz#cace86386f59a0db8050fa90d9b6b0e88a1e364f" integrity sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ== +react-canvas-draw@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/react-canvas-draw/-/react-canvas-draw-1.2.1.tgz#2e9183704866b0e9bbb9a93dbb37073a31b858ed" + integrity sha512-mCHE+Q91a26gUhyraHONedmbCI7dF/4BKdOxba7s4538QNfFWv/NfzLXWZrmjAQ4tO1vTvO+axX5YGIFjGc6uw== + dependencies: + catenary-curve "^1.0.1" + lazy-brush "^1.0.1" + prop-types "^15.6.2" + resize-observer-polyfill "^1.5.0" + react-color@^2.19.3: version "2.19.3" resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.19.3.tgz#ec6c6b4568312a3c6a18420ab0472e146aa5683d" @@ -2821,31 +3050,46 @@ react-confetti@^6.4.0: react-dom@19.0.0: version "19.0.0" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.0.0.tgz#43446f1f01c65a4cd7f7588083e686a6726cfb57" integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ== dependencies: scheduler "^0.25.0" react-hook-form@^7.55.0: version "7.57.0" - resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.57.0.tgz" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.57.0.tgz#d0bb0c84060c6b9282d99c64566ec919dfca9409" integrity sha512-RbEks3+cbvTP84l/VXGUZ+JMrKOS8ykQCRYdm5aYsxnDquL0vspsyNhGRO7pcH6hsZqWlPOjLye7rJqdtdAmlg== +react-iconly@^2.2.10: + version "2.2.10" + resolved "https://registry.yarnpkg.com/react-iconly/-/react-iconly-2.2.10.tgz#da7719a2f99d52dff53e318aa6b9b2a02f274d12" + integrity sha512-AZYJRzXMj7yw+KIFUkom3cWhvfbrdlbOLbBDuFnPJrbrgynmNCcJhX8dIQ/JGKq5XDo1P9j8Gico0xZnV/bXWA== + react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.4: version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + react-leaflet@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/react-leaflet/-/react-leaflet-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-5.0.0.tgz#945d40bad13b69e8606278b19446b00bab57376a" integrity sha512-CWbTpr5vcHw5bt9i4zSlPEVQdTVcML390TjeDG0cK59z1ylexpqC6M1PJFjV8jD7CF+ACBFsLIDs6DRMoLEofw== dependencies: "@react-leaflet/core" "^3.0.0" react-markdown@^10.1.0: version "10.1.0" - resolved "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz" + resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-10.1.0.tgz#e22bc20faddbc07605c15284255653c0f3bad5ca" integrity sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ== dependencies: "@types/hast" "^3.0.0" @@ -2879,7 +3123,7 @@ react-qr-reader@^3.0.0-beta-1: react-redux@^9.2.0: version "9.2.0" - resolved "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-9.2.0.tgz#96c3ab23fb9a3af2cb4654be4b51c989e32366f5" integrity sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g== dependencies: "@types/use-sync-external-store" "^0.0.6" @@ -2887,12 +3131,12 @@ react-redux@^9.2.0: react-refresh@^0.17.0: version "0.17.0" - resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.17.0.tgz#b7e579c3657f23d04eccbe4ad2e58a8ed51e7e53" integrity sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ== react-router-dom@^5.3.4: version "5.3.4" - resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== dependencies: "@babel/runtime" "^7.12.13" @@ -2905,7 +3149,7 @@ react-router-dom@^5.3.4: react-router@5.3.4, react-router@^5.3.4: version "5.3.4" - resolved "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== dependencies: "@babel/runtime" "^7.12.13" @@ -2920,17 +3164,17 @@ react-router@5.3.4, react-router@^5.3.4: react-spinners@^0.17.0: version "0.17.0" - resolved "https://registry.npmjs.org/react-spinners/-/react-spinners-0.17.0.tgz" + resolved "https://registry.yarnpkg.com/react-spinners/-/react-spinners-0.17.0.tgz#d518913e2192afaae76c5b781929ea3bd7b1910e" integrity sha512-L/8HTylaBmIWwQzIjMq+0vyaRXuoAevzWoD35wKpNTxxtYXWZp+xtgkfD7Y4WItuX0YvdxMPU79+7VhhmbmuTQ== react-universal-interface@^0.6.2: version "0.6.2" - resolved "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz" + resolved "https://registry.yarnpkg.com/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== react-use@^17.6.0: version "17.6.0" - resolved "https://registry.npmjs.org/react-use/-/react-use-17.6.0.tgz" + resolved "https://registry.yarnpkg.com/react-use/-/react-use-17.6.0.tgz#2101a3a79dc965a25866b21f5d6de4b128488a14" integrity sha512-OmedEScUMKFfzn1Ir8dBxiLLSOzhKe/dPZwVxcujweSj45aNM7BEGPb9BEVIgVEqEXx6f3/TsXzwIktNgUR02g== dependencies: "@types/js-cookie" "^2.2.6" @@ -2950,7 +3194,7 @@ react-use@^17.6.0: react@19.0.0: version "19.0.0" - resolved "https://registry.npmjs.org/react/-/react-19.0.0.tgz" + resolved "https://registry.yarnpkg.com/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd" integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== reactcss@^1.2.0: @@ -2962,7 +3206,7 @@ reactcss@^1.2.0: readable-stream@3: version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -2971,19 +3215,19 @@ readable-stream@3: readdirp@^4.0.1: version "4.1.2" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== redux@^4.0.0: version "4.2.1" - resolved "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== dependencies: "@babel/runtime" "^7.9.2" remark-parse@^11.0.0: version "11.0.0" - resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== dependencies: "@types/mdast" "^4.0.0" @@ -2993,7 +3237,7 @@ remark-parse@^11.0.0: remark-rehype@^11.0.0: version "11.1.2" - resolved "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.1.2.tgz#2addaadda80ca9bd9aa0da763e74d16327683b37" integrity sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw== dependencies: "@types/hast" "^3.0.0" @@ -3004,22 +3248,22 @@ remark-rehype@^11.0.0: reselect@^4.0.0: version "4.1.8" - resolved "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== -resize-observer-polyfill@^1.5.1: +resize-observer-polyfill@^1.5.0, resize-observer-polyfill@^1.5.1: version "1.5.1" - resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== resolve-pathname@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== restore-cursor@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== dependencies: onetime "^5.1.0" @@ -3027,12 +3271,12 @@ restore-cursor@^4.0.0: rfdc@^1.3.0: version "1.4.1" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rimraf@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.0.1.tgz#ffb8ad8844dd60332ab15f52bc104bc3ed71ea4e" integrity sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A== dependencies: glob "^11.0.0" @@ -3046,50 +3290,50 @@ rollup@^2.67.2: fsevents "~2.3.2" rollup@^4.34.9: - version "4.41.1" - resolved "https://registry.npmjs.org/rollup/-/rollup-4.41.1.tgz" - integrity sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw== + version "4.42.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.42.0.tgz#57990f059e96bbccccefd5a41d8d5aff15ac1cb8" + integrity sha512-LW+Vse3BJPyGJGAJt1j8pWDKPd73QM8cRXYK1IxOBgL2AGLu7Xd2YOW0M2sLUBCkF5MshXXtMApyEAEzMVMsnw== dependencies: "@types/estree" "1.0.7" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.41.1" - "@rollup/rollup-android-arm64" "4.41.1" - "@rollup/rollup-darwin-arm64" "4.41.1" - "@rollup/rollup-darwin-x64" "4.41.1" - "@rollup/rollup-freebsd-arm64" "4.41.1" - "@rollup/rollup-freebsd-x64" "4.41.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.41.1" - "@rollup/rollup-linux-arm-musleabihf" "4.41.1" - "@rollup/rollup-linux-arm64-gnu" "4.41.1" - "@rollup/rollup-linux-arm64-musl" "4.41.1" - "@rollup/rollup-linux-loongarch64-gnu" "4.41.1" - "@rollup/rollup-linux-powerpc64le-gnu" "4.41.1" - "@rollup/rollup-linux-riscv64-gnu" "4.41.1" - "@rollup/rollup-linux-riscv64-musl" "4.41.1" - "@rollup/rollup-linux-s390x-gnu" "4.41.1" - "@rollup/rollup-linux-x64-gnu" "4.41.1" - "@rollup/rollup-linux-x64-musl" "4.41.1" - "@rollup/rollup-win32-arm64-msvc" "4.41.1" - "@rollup/rollup-win32-ia32-msvc" "4.41.1" - "@rollup/rollup-win32-x64-msvc" "4.41.1" + "@rollup/rollup-android-arm-eabi" "4.42.0" + "@rollup/rollup-android-arm64" "4.42.0" + "@rollup/rollup-darwin-arm64" "4.42.0" + "@rollup/rollup-darwin-x64" "4.42.0" + "@rollup/rollup-freebsd-arm64" "4.42.0" + "@rollup/rollup-freebsd-x64" "4.42.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.42.0" + "@rollup/rollup-linux-arm-musleabihf" "4.42.0" + "@rollup/rollup-linux-arm64-gnu" "4.42.0" + "@rollup/rollup-linux-arm64-musl" "4.42.0" + "@rollup/rollup-linux-loongarch64-gnu" "4.42.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.42.0" + "@rollup/rollup-linux-riscv64-gnu" "4.42.0" + "@rollup/rollup-linux-riscv64-musl" "4.42.0" + "@rollup/rollup-linux-s390x-gnu" "4.42.0" + "@rollup/rollup-linux-x64-gnu" "4.42.0" + "@rollup/rollup-linux-x64-musl" "4.42.0" + "@rollup/rollup-win32-arm64-msvc" "4.42.0" + "@rollup/rollup-win32-ia32-msvc" "4.42.0" + "@rollup/rollup-win32-x64-msvc" "4.42.0" fsevents "~2.3.2" rtl-css-js@^1.16.1: version "1.16.1" - resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz" + resolved "https://registry.yarnpkg.com/rtl-css-js/-/rtl-css-js-1.16.1.tgz#4b48b4354b0ff917a30488d95100fbf7219a3e80" integrity sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg== dependencies: "@babel/runtime" "^7.1.2" safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== sass@^1.85.1: - version "1.89.0" - resolved "https://registry.npmjs.org/sass/-/sass-1.89.0.tgz" - integrity sha512-ld+kQU8YTdGNjOLfRWBzewJpU5cwEv/h5yyqlSeJcj6Yh8U4TDA9UA5FPicqDz/xgRPWRSYIQNiFks21TbA9KQ== + version "1.89.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.89.1.tgz#9281c52c85b4be54264d310fef63a811dfcfb9d9" + integrity sha512-eMLLkl+qz7tx/0cJ9wI+w09GQ2zodTkcE/aVfywwdlRcI3EO19xGnbmJwg/JMIm+5MxVJ6outddLZ4Von4E++Q== dependencies: chokidar "^4.0.0" immutable "^5.0.2" @@ -3097,66 +3341,71 @@ sass@^1.85.1: optionalDependencies: "@parcel/watcher" "^2.4.1" -sax@1.1.4, sax@>=0.6.0: +sax@1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.1.4.tgz#74b6d33c9ae1e001510f179a91168588f1aedaa9" integrity sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg== +sax@>=0.6.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== + scheduler@^0.25.0: version "0.25.0" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015" integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== screenfull@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.2.0.tgz#6533d524d30621fc1283b9692146f3f13a93d1ba" integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA== semver@^6.3.1: version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.6.3: version "7.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== set-harmonic-interval@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249" integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g== shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== sisteransi@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" @@ -3165,7 +3414,7 @@ slice-ansi@^4.0.0: slice-ansi@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== dependencies: ansi-styles "^6.0.0" @@ -3173,44 +3422,44 @@ slice-ansi@^5.0.0: "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== source-map@0.5.6: version "0.5.6" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA== source-map@^0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== space-separated-tokens@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== split2@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== stack-generator@^2.0.5: version "2.0.10" - resolved "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz" + resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.10.tgz#8ae171e985ed62287d4f1ed55a1633b3fb53bb4d" integrity sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ== dependencies: stackframe "^1.3.4" stackframe@^1.3.4: version "1.3.4" - resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== stacktrace-gps@^3.0.4: version "3.1.2" - resolved "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz#0c40b24a9b119b20da4525c398795338966a2fb0" integrity sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ== dependencies: source-map "0.5.6" @@ -3218,7 +3467,7 @@ stacktrace-gps@^3.0.4: stacktrace-js@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/stacktrace-js/-/stacktrace-js-2.0.2.tgz#4ca93ea9f494752d55709a081d400fdaebee897b" integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg== dependencies: error-stack-parser "^2.0.6" @@ -3227,12 +3476,12 @@ stacktrace-js@^2.0.2: string-argv@0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -3241,7 +3490,7 @@ string-argv@0.3.2: string-width@^4.1.0: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -3250,7 +3499,7 @@ string-width@^4.1.0: string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" @@ -3259,14 +3508,14 @@ string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" stringify-entities@^4.0.0: version "4.0.4" - resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== dependencies: character-entities-html4 "^2.0.0" @@ -3274,47 +3523,47 @@ stringify-entities@^4.0.0: "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^7.0.1: version "7.1.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" strip-final-newline@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== style-to-js@^1.0.0: version "1.1.16" - resolved "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz" + resolved "https://registry.yarnpkg.com/style-to-js/-/style-to-js-1.1.16.tgz#e6bd6cd29e250bcf8fa5e6591d07ced7575dbe7a" integrity sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw== dependencies: style-to-object "1.0.8" style-to-object@1.0.8: version "1.0.8" - resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.8.tgz#67a29bca47eaa587db18118d68f9d95955e81292" integrity sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g== dependencies: inline-style-parser "0.2.4" stylis@^4.3.0: version "4.3.6" - resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.6.tgz#7c7b97191cb4f195f03ecab7d52f7902ed378320" integrity sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ== supercluster@^8.0.1: @@ -3326,7 +3575,7 @@ supercluster@^8.0.1: supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" @@ -3338,7 +3587,7 @@ swiper@^11.2.8: tar@^6.1.11: version "6.2.1" - resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== dependencies: chownr "^2.0.0" @@ -3350,24 +3599,24 @@ tar@^6.1.11: throttle-debounce@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== through2@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== dependencies: readable-stream "3" tiny-invariant@^1.0.2: version "1.3.3" - resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== tiny-warning@^1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== tinycolor2@^1.4.1: @@ -3376,38 +3625,38 @@ tinycolor2@^1.4.1: integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== tinyglobby@^0.2.13: - version "0.2.13" - resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz" - integrity sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw== + version "0.2.14" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.14.tgz#5280b0cf3f972b050e74ae88406c0a6a58f4079d" + integrity sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ== dependencies: fdir "^6.4.4" picomatch "^4.0.2" to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + 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" toggle-selection@^1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== tree-kill@^1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== trim-lines@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== trough@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== ts-custom-error@^3.0.0: @@ -3417,12 +3666,12 @@ ts-custom-error@^3.0.0: ts-easing@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/ts-easing/-/ts-easing-0.2.0.tgz#c8a8a35025105566588d87dbda05dd7fbfa5a4ec" integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== tslib@*, tslib@^2.0.1, tslib@^2.1.0, tslib@^2.6.2, tslib@^2.8.1: version "2.8.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== tween-functions@^1.2.0: @@ -3432,22 +3681,22 @@ tween-functions@^1.2.0: type-fest@^1.0.2: version "1.4.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== typescript@^5.8.2: version "5.8.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== undici-types@~6.21.0: version "6.21.0" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== unified@^11.0.0: version "11.0.5" - resolved "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz" + resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.5.tgz#f66677610a5c0a9ee90cab2b8d4d66037026d9e1" integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== dependencies: "@types/unist" "^3.0.0" @@ -3460,28 +3709,28 @@ unified@^11.0.0: unist-util-is@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== dependencies: "@types/unist" "^3.0.0" unist-util-position@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== dependencies: "@types/unist" "^3.0.0" unist-util-stringify-position@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== dependencies: "@types/unist" "^3.0.0" unist-util-visit-parents@^6.0.0: version "6.0.1" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== dependencies: "@types/unist" "^3.0.0" @@ -3489,7 +3738,7 @@ unist-util-visit-parents@^6.0.0: unist-util-visit@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== dependencies: "@types/unist" "^3.0.0" @@ -3498,17 +3747,17 @@ unist-util-visit@^5.0.0: universalify@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== untildify@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== update-browserslist-db@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== dependencies: escalade "^3.2.0" @@ -3523,22 +3772,22 @@ use-sound@^5.0.0: use-sync-external-store@^1.4.0: version "1.5.0" - resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz#55122e2a3edd2a6c106174c27485e0fd59bcfca0" integrity sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A== util-deprecate@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== value-equal@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== vfile-message@^4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== dependencies: "@types/unist" "^3.0.0" @@ -3546,7 +3795,7 @@ vfile-message@^4.0.0: vfile@^6.0.0: version "6.0.3" - resolved "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== dependencies: "@types/unist" "^3.0.0" @@ -3554,7 +3803,7 @@ vfile@^6.0.0: vite@^6.2.0: version "6.3.5" - resolved "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz" + resolved "https://registry.yarnpkg.com/vite/-/vite-6.3.5.tgz#fec73879013c9c0128c8d284504c6d19410d12a3" integrity sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ== dependencies: esbuild "^0.25.0" @@ -3568,19 +3817,19 @@ vite@^6.2.0: wait-for-expect@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/wait-for-expect/-/wait-for-expect-3.0.2.tgz#d2f14b2f7b778c9b82144109c8fa89ceaadaa463" integrity sha512-cfS1+DZxuav1aBYbaO/kE06EOS8yRw7qOFoD3XtjTkYvCvh3zUvNST8DXK/nPaeqIzIv3P3kL3lRJn8iwOiSag== which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -3589,7 +3838,7 @@ which@^2.0.1: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -3598,7 +3847,7 @@ wrap-ansi@^7.0.0: wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -3607,7 +3856,7 @@ wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: xml2js@^0.6.2: version "0.6.2" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.6.2.tgz#dd0b630083aa09c161e25a4d0901e2b2a929b499" integrity sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA== dependencies: sax ">=0.6.0" @@ -3615,43 +3864,43 @@ xml2js@^0.6.2: xmlbuilder@^15.1.1: version "15.1.1" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== xmlbuilder@~11.0.0: version "11.0.1" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== yauzl@^2.10.0: version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" zod@^3.24.2: - version "3.25.46" - resolved "https://registry.npmjs.org/zod/-/zod-3.25.46.tgz" - integrity sha512-IqRxcHEIjqLd4LNS/zKffB3Jzg3NwqJxQQ0Ns7pdrvgGkwQsEBdEQcOHaBVqvvZArShRzI39+aMST3FBGmTrLQ== + version "3.25.56" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.56.tgz#4cff0340b7cd3778314dac1e74d6a663ffeef914" + integrity sha512-rd6eEF3BTNvQnR2e2wwolfTmUTnp70aUTqr0oaGbHifzC3BKJsoV+Gat8vxUMR1hwOKBs6El+qWehrHbCpW6SQ== zwitch@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==