From 79fefda61aea1c08d229cc291d2316d3bf9368c6 Mon Sep 17 00:00:00 2001 From: dharaneesh-r Date: Sat, 1 Aug 2026 15:38:42 +0530 Subject: [PATCH] initialised commit on the ui converted in mui to astryx and changed the design to doormile --- .env | 31 + .env.development | 3 + .env.staging | 3 + .gitignore | 9 - config-overrides.js | 48 + orig_invoicePreview_check.js | 484 ++ package-lock.json | 6060 +++++++---------- package.json | 35 +- public/favicon.png | Bin 4054 -> 185613 bytes public/index.html | 2 +- public/logo192.png | Bin 0 -> 185613 bytes src/App.js | 38 +- src/assets/images/auth/AuthBackground.js | 42 - src/assets/images/doormile-logo.png | Bin 0 -> 13651 bytes src/assets/images/doormile-mark.png | Bin 0 -> 83551 bytes src/components/@extended/Avatar.js | 119 - src/components/@extended/Breadcrumbs.js | 222 - src/components/@extended/Dot.js | 39 - src/components/@extended/IconButton.js | 186 +- src/components/@extended/LoadingButton.js | 231 - src/components/@extended/Snackbar.js | 152 +- src/components/@extended/Tooltip.js | 67 - src/components/@extended/Transitions.js | 116 - .../@extended/progress/CircularWithLabel.js | 32 - .../@extended/progress/CircularWithPath.js | 65 - .../@extended/progress/LinearWithIcon.js | 22 - .../@extended/progress/LinearWithLabel.js | 23 - src/components/Loader.js | 31 +- src/components/MainCard.js | 144 +- src/components/RTLLayout.js | 37 - src/components/ScrollX.js | 10 - src/components/SecondaryAction.js | 65 - src/components/cards/AuthFooter.js | 61 - src/components/cards/ComponentHeader.js | 49 - .../cards/e-commerce/FloatingCart.js | 55 - .../cards/e-commerce/ProductCard.js | 176 - .../cards/e-commerce/ProductReview.js | 52 - .../cards/skeleton/ProductPlaceholder.js | 44 - .../cards/statistics/AnalyticEcommerce.js | 66 - .../cards/statistics/AnalyticsDataCard.js | 56 - .../cards/statistics/HoverSocialCard.js | 86 +- src/components/logo/LogoIcon.js | 23 +- src/components/logo/LogoMain.js | 27 +- src/components/logo/index.js | 23 +- .../nearle_components/CircularLoader.js | 62 +- .../nearle_components/DateFilterDialog.js | 75 +- .../nearle_components/LoaderWithImage.js | 34 - .../nearle_components/MobileCard.js | 80 +- src/components/nearle_components/SearchBar.js | 44 +- .../nearle_components/updateNetworkStatus.js | 13 +- src/components/third-party/Notistack.js | 68 +- src/components/third-party/ReactTable.js | 588 +- src/components/third-party/SimpleBar.js | 62 - src/index.js | 16 +- src/layout/CommonLayout/FooterBlock.js | 419 +- src/layout/CommonLayout/Header.js | 363 +- src/layout/CommonLayout/index.js | 30 +- src/layout/MainLayout/AppSideNav.js | 176 + src/layout/MainLayout/AppTopNav.js | 119 + .../Drawer/DrawerContent/NavCard.js | 32 - .../DrawerContent/Navigation/NavCollapse.js | 503 -- .../DrawerContent/Navigation/NavGroup.js | 343 - .../DrawerContent/Navigation/NavItem.js | 282 - .../Drawer/DrawerContent/Navigation/index.js | 90 - .../MainLayout/Drawer/DrawerContent/index.js | 35 - .../Drawer/DrawerHeader/DrawerHeaderStyled.js | 22 - .../MainLayout/Drawer/DrawerHeader/index.js | 57 - src/layout/MainLayout/Drawer/HorizontalBar.js | 62 - .../MainLayout/Drawer/MiniDrawerStyled.js | 51 - src/layout/MainLayout/Drawer/index.js | 74 - src/layout/MainLayout/Footer.js | 23 +- src/layout/MainLayout/Header/AppBarStyled.js | 35 - .../Header/HeaderContent/MegaMenuSection.js | 301 - .../Header/HeaderContent/Message.js | 252 - .../Header/HeaderContent/MobileSection.js | 108 - .../Header/HeaderContent/Notification.js | 309 - .../HeaderContent/Profile/ProfileTab.js | 46 - .../HeaderContent/Profile/SettingTab.js | 53 - .../Header/HeaderContent/Profile/index.js | 237 - .../MainLayout/Header/HeaderContent/Search.js | 30 - .../MainLayout/Header/HeaderContent/index.js | 290 - src/layout/MainLayout/Header/index.js | 88 - src/layout/MainLayout/index.js | 105 +- src/menu-items/nearle.js | 6 +- src/menu-items/other.js | 155 - src/pages/auth/check-mail.js | 57 - src/pages/auth/code-verification.js | 29 - src/pages/auth/forgot-password.js | 41 - src/pages/auth/login.js | 41 - src/pages/auth/register.js | 41 - src/pages/auth/reset-password.js | 26 - src/pages/extra-pages/sample-page.js | 7 +- src/pages/maintenance/404.js | 62 +- src/pages/maintenance/500.js | 49 +- src/pages/maintenance/coming-soon.js | 121 +- src/pages/maintenance/under-construction.js | 37 +- src/pages/nearle/_shared/ordersDesign.js | 96 +- src/pages/nearle/accountsettings.js | 148 +- src/pages/nearle/api/api.js | 53 +- src/pages/nearle/clients/createCustomer.js | 419 +- src/pages/nearle/clients/customers.js | 175 +- src/pages/nearle/deliveries/deliveries.js | 1149 ++-- src/pages/nearle/dispatch/ActiveSection.js | 4 +- src/pages/nearle/dispatch/Dispatch.css | 22 +- src/pages/nearle/dispatch/Dispatch.js | 9 +- src/pages/nearle/dispatch/Preview.js | 137 +- src/pages/nearle/invoice/invoice.js | 745 +- src/pages/nearle/invoice/invoicePreview.js | 668 +- src/pages/nearle/locations/Locations.js | 32 +- .../locations/ResponsiveLocationDrawer.js | 734 +- src/pages/nearle/login.js | 365 +- src/pages/nearle/orders/OrdersPreview.js | 951 ++- .../nearle/orders/OrdersTableSkeleton.js | 49 - src/pages/nearle/orders/createorder1.js | 1804 +++-- src/pages/nearle/orders/details.js | 2343 +++---- src/pages/nearle/orders/map.js | 156 - src/pages/nearle/orders/miltiUploadBackup.js | 1609 ----- src/pages/nearle/orders/multiOrderBackup.js | 845 --- src/pages/nearle/orders/multipleOrders.js | 1328 ++-- src/pages/nearle/orders/orders.js | 927 +-- src/pages/nearle/orders/rough.js | 2559 ------- src/pages/nearle/reports/RiderLocationMap.js | 92 +- src/pages/nearle/reports/mapWithRoute.js | 67 +- src/pages/nearle/reports/orderSummary.js | 1658 ++--- src/pages/nearle/reports/ordersDetails.js | 1684 ++--- src/pages/nearle/reports/riderLogs.js | 1053 +-- src/pages/nearle/reports/ridersummary.js | 1281 ++-- src/pages/nearle/titleCard.js | 70 +- src/sections/auth/AuthCard.js | 39 - src/sections/auth/AuthWrapper.js | 55 - .../auth/auth-forms/AuthCodeVerification.js | 66 - .../auth/auth-forms/AuthForgotPassword.js | 126 - src/sections/auth/auth-forms/AuthLogin.js | 176 - src/sections/auth/auth-forms/AuthRegister.js | 282 - .../auth/auth-forms/AuthResetPassword.js | 201 - .../auth/auth-forms/FirebaseSocial.js | 82 - src/themes/astryx.js | 28 + src/themes/dt/tokens.js | 54 + src/themes/index.js | 86 - src/themes/overrides/Accordion.js | 27 - src/themes/overrides/AccordionDetails.js | 14 - src/themes/overrides/AccordionSummary.js | 33 - src/themes/overrides/Alert.js | 75 - src/themes/overrides/AlertTitle.js | 15 - src/themes/overrides/Autocomplete.js | 23 - src/themes/overrides/Badge.js | 41 - src/themes/overrides/Button.js | 202 - src/themes/overrides/ButtonBase.js | 11 - src/themes/overrides/ButtonGroup.js | 11 - src/themes/overrides/CardContent.js | 16 - src/themes/overrides/Checkbox.js | 126 - src/themes/overrides/Chip.js | 80 - src/themes/overrides/Dialog.js | 18 - src/themes/overrides/DialogContentText.js | 14 - src/themes/overrides/DialogTitle.js | 14 - src/themes/overrides/Fab.js | 82 - src/themes/overrides/IconButton.js | 28 - src/themes/overrides/InputBase.js | 13 - src/themes/overrides/InputLabel.js | 25 - src/themes/overrides/LinearProgress.js | 17 - src/themes/overrides/Link.js | 11 - src/themes/overrides/ListItemButton.js | 18 - src/themes/overrides/ListItemIcon.js | 14 - src/themes/overrides/LoadingButton.js | 17 - src/themes/overrides/OutlinedInput.js | 59 - src/themes/overrides/Pagination.js | 11 - src/themes/overrides/PaginationItem.js | 118 - src/themes/overrides/Popover.js | 13 - src/themes/overrides/Radio.js | 119 - src/themes/overrides/Slider.js | 69 - src/themes/overrides/Switch.js | 88 - src/themes/overrides/Tab.js | 24 - src/themes/overrides/TableBody.js | 27 - src/themes/overrides/TableCell.js | 44 - src/themes/overrides/TableFooter.js | 15 - src/themes/overrides/TableHead.js | 15 - src/themes/overrides/TablePagination.js | 16 - src/themes/overrides/TableRow.js | 25 - src/themes/overrides/Tabs.js | 13 - src/themes/overrides/ToggleButton.js | 20 - src/themes/overrides/Tooltip.js | 13 - src/themes/overrides/TreeItem.js | 18 - src/themes/overrides/Typography.js | 13 - src/themes/overrides/index.js | 99 - src/themes/palette.js | 67 - src/themes/shadows.js | 33 - src/themes/theme/default.js | 120 - src/themes/theme/index.js | 45 - src/themes/theme/theme1.js | 109 - src/themes/theme/theme2.js | 109 - src/themes/theme/theme3.js | 109 - src/themes/theme/theme4.js | 109 - src/themes/theme/theme5.js | 109 - src/themes/theme/theme6.js | 109 - src/themes/theme/theme7.js | 109 - src/themes/theme/theme8.js | 109 - src/themes/typography.js | 71 - yarn.lock | 2637 ++++--- 198 files changed, 13757 insertions(+), 31562 deletions(-) create mode 100644 .env create mode 100644 .env.development create mode 100644 .env.staging create mode 100644 orig_invoicePreview_check.js create mode 100644 public/logo192.png delete mode 100644 src/assets/images/auth/AuthBackground.js create mode 100644 src/assets/images/doormile-logo.png create mode 100644 src/assets/images/doormile-mark.png delete mode 100644 src/components/@extended/Avatar.js delete mode 100644 src/components/@extended/Breadcrumbs.js delete mode 100644 src/components/@extended/Dot.js delete mode 100644 src/components/@extended/LoadingButton.js delete mode 100644 src/components/@extended/Tooltip.js delete mode 100644 src/components/@extended/Transitions.js delete mode 100644 src/components/@extended/progress/CircularWithLabel.js delete mode 100644 src/components/@extended/progress/CircularWithPath.js delete mode 100644 src/components/@extended/progress/LinearWithIcon.js delete mode 100644 src/components/@extended/progress/LinearWithLabel.js delete mode 100644 src/components/RTLLayout.js delete mode 100644 src/components/ScrollX.js delete mode 100644 src/components/SecondaryAction.js delete mode 100644 src/components/cards/AuthFooter.js delete mode 100644 src/components/cards/ComponentHeader.js delete mode 100644 src/components/cards/e-commerce/FloatingCart.js delete mode 100644 src/components/cards/e-commerce/ProductCard.js delete mode 100644 src/components/cards/e-commerce/ProductReview.js delete mode 100644 src/components/cards/skeleton/ProductPlaceholder.js delete mode 100644 src/components/cards/statistics/AnalyticEcommerce.js delete mode 100644 src/components/cards/statistics/AnalyticsDataCard.js delete mode 100644 src/components/nearle_components/LoaderWithImage.js delete mode 100644 src/components/third-party/SimpleBar.js create mode 100644 src/layout/MainLayout/AppSideNav.js create mode 100644 src/layout/MainLayout/AppTopNav.js delete mode 100644 src/layout/MainLayout/Drawer/DrawerContent/NavCard.js delete mode 100644 src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavCollapse.js delete mode 100644 src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavGroup.js delete mode 100644 src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavItem.js delete mode 100644 src/layout/MainLayout/Drawer/DrawerContent/Navigation/index.js delete mode 100644 src/layout/MainLayout/Drawer/DrawerContent/index.js delete mode 100644 src/layout/MainLayout/Drawer/DrawerHeader/DrawerHeaderStyled.js delete mode 100644 src/layout/MainLayout/Drawer/DrawerHeader/index.js delete mode 100644 src/layout/MainLayout/Drawer/HorizontalBar.js delete mode 100644 src/layout/MainLayout/Drawer/MiniDrawerStyled.js delete mode 100644 src/layout/MainLayout/Drawer/index.js delete mode 100644 src/layout/MainLayout/Header/AppBarStyled.js delete mode 100644 src/layout/MainLayout/Header/HeaderContent/MegaMenuSection.js delete mode 100644 src/layout/MainLayout/Header/HeaderContent/Message.js delete mode 100644 src/layout/MainLayout/Header/HeaderContent/MobileSection.js delete mode 100644 src/layout/MainLayout/Header/HeaderContent/Notification.js delete mode 100644 src/layout/MainLayout/Header/HeaderContent/Profile/ProfileTab.js delete mode 100644 src/layout/MainLayout/Header/HeaderContent/Profile/SettingTab.js delete mode 100644 src/layout/MainLayout/Header/HeaderContent/Profile/index.js delete mode 100644 src/layout/MainLayout/Header/HeaderContent/Search.js delete mode 100644 src/layout/MainLayout/Header/HeaderContent/index.js delete mode 100644 src/layout/MainLayout/Header/index.js delete mode 100644 src/menu-items/other.js delete mode 100644 src/pages/auth/check-mail.js delete mode 100644 src/pages/auth/code-verification.js delete mode 100644 src/pages/auth/forgot-password.js delete mode 100644 src/pages/auth/login.js delete mode 100644 src/pages/auth/register.js delete mode 100644 src/pages/auth/reset-password.js delete mode 100644 src/pages/nearle/orders/OrdersTableSkeleton.js delete mode 100644 src/pages/nearle/orders/map.js delete mode 100644 src/pages/nearle/orders/miltiUploadBackup.js delete mode 100644 src/pages/nearle/orders/multiOrderBackup.js delete mode 100644 src/pages/nearle/orders/rough.js delete mode 100644 src/sections/auth/AuthCard.js delete mode 100644 src/sections/auth/AuthWrapper.js delete mode 100644 src/sections/auth/auth-forms/AuthCodeVerification.js delete mode 100644 src/sections/auth/auth-forms/AuthForgotPassword.js delete mode 100644 src/sections/auth/auth-forms/AuthLogin.js delete mode 100644 src/sections/auth/auth-forms/AuthRegister.js delete mode 100644 src/sections/auth/auth-forms/AuthResetPassword.js delete mode 100644 src/sections/auth/auth-forms/FirebaseSocial.js create mode 100644 src/themes/astryx.js create mode 100644 src/themes/dt/tokens.js delete mode 100644 src/themes/index.js delete mode 100644 src/themes/overrides/Accordion.js delete mode 100644 src/themes/overrides/AccordionDetails.js delete mode 100644 src/themes/overrides/AccordionSummary.js delete mode 100644 src/themes/overrides/Alert.js delete mode 100644 src/themes/overrides/AlertTitle.js delete mode 100644 src/themes/overrides/Autocomplete.js delete mode 100644 src/themes/overrides/Badge.js delete mode 100644 src/themes/overrides/Button.js delete mode 100644 src/themes/overrides/ButtonBase.js delete mode 100644 src/themes/overrides/ButtonGroup.js delete mode 100644 src/themes/overrides/CardContent.js delete mode 100644 src/themes/overrides/Checkbox.js delete mode 100644 src/themes/overrides/Chip.js delete mode 100644 src/themes/overrides/Dialog.js delete mode 100644 src/themes/overrides/DialogContentText.js delete mode 100644 src/themes/overrides/DialogTitle.js delete mode 100644 src/themes/overrides/Fab.js delete mode 100644 src/themes/overrides/IconButton.js delete mode 100644 src/themes/overrides/InputBase.js delete mode 100644 src/themes/overrides/InputLabel.js delete mode 100644 src/themes/overrides/LinearProgress.js delete mode 100644 src/themes/overrides/Link.js delete mode 100644 src/themes/overrides/ListItemButton.js delete mode 100644 src/themes/overrides/ListItemIcon.js delete mode 100644 src/themes/overrides/LoadingButton.js delete mode 100644 src/themes/overrides/OutlinedInput.js delete mode 100644 src/themes/overrides/Pagination.js delete mode 100644 src/themes/overrides/PaginationItem.js delete mode 100644 src/themes/overrides/Popover.js delete mode 100644 src/themes/overrides/Radio.js delete mode 100644 src/themes/overrides/Slider.js delete mode 100644 src/themes/overrides/Switch.js delete mode 100644 src/themes/overrides/Tab.js delete mode 100644 src/themes/overrides/TableBody.js delete mode 100644 src/themes/overrides/TableCell.js delete mode 100644 src/themes/overrides/TableFooter.js delete mode 100644 src/themes/overrides/TableHead.js delete mode 100644 src/themes/overrides/TablePagination.js delete mode 100644 src/themes/overrides/TableRow.js delete mode 100644 src/themes/overrides/Tabs.js delete mode 100644 src/themes/overrides/ToggleButton.js delete mode 100644 src/themes/overrides/Tooltip.js delete mode 100644 src/themes/overrides/TreeItem.js delete mode 100644 src/themes/overrides/Typography.js delete mode 100644 src/themes/overrides/index.js delete mode 100644 src/themes/palette.js delete mode 100644 src/themes/shadows.js delete mode 100644 src/themes/theme/default.js delete mode 100644 src/themes/theme/index.js delete mode 100644 src/themes/theme/theme1.js delete mode 100644 src/themes/theme/theme2.js delete mode 100644 src/themes/theme/theme3.js delete mode 100644 src/themes/theme/theme4.js delete mode 100644 src/themes/theme/theme5.js delete mode 100644 src/themes/theme/theme6.js delete mode 100644 src/themes/theme/theme7.js delete mode 100644 src/themes/theme/theme8.js delete mode 100644 src/themes/typography.js diff --git a/.env b/.env new file mode 100644 index 0000000..b59f623 --- /dev/null +++ b/.env @@ -0,0 +1,31 @@ +REACT_APP_VERSION = v2.1.0 +GENERATE_SOURCEMAP = false + +## Backend API URL +REACT_APP_API_URL=https://mock-data-api-nextjs.vercel.app/ + +## Google Map Key + +REACT_APP_GOOGLE_MAPS_API_KEY=AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8 +REACT_APP_RIDER_ACCESS_ID=AAAAILMpCEU:APA91bEavuOllBI6sFgYtxXAgNmAVwNA-MnCMHLGlR4_t7UqpLajAkdn3T0CZr_zaLBknLyim9ytFLMZgbeXmKqTad_PKCbqlYjHpaizVrLXtecxqyEy4UktIacK2UvHVUATHL-7VQQk +## Firebase - Google Auth + +REACT_APP_FIREBASE_API_KEY= +REACT_APP_FIREBASE_AUTH_DOMAIN= +REACT_APP_FIREBASE_PROJECT_ID= +REACT_APP_FIREBASE_STORAGE_BUCKET= +REACT_APP_FIREBASE_MESSAGING_SENDER_ID= +REACT_APP_FIREBASE_APP_ID= +REACT_APP_FIREBASE_MEASUREMENT_ID= + +## AWS + +REACT_APP_AWS_POOL_ID= +REACT_APP_AWS_APP_CLIENT_ID= + +## Auth0 + +REACT_APP_AUTH0_CLIENT_ID= +REACT_APP_AUTH0_DOMAIN= + +DISABLE_ESLINT_PLUGIN=true diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..94a4cee --- /dev/null +++ b/.env.development @@ -0,0 +1,3 @@ +REACT_APP_URL='https://jupiter.nearle.app/live/api/v1' +REACT_APP_URL2='https://jupiter.nearle.app/live/api/v2' +REACT_APP_STAFF_TOKEN='' diff --git a/.env.staging b/.env.staging new file mode 100644 index 0000000..0f8a209 --- /dev/null +++ b/.env.staging @@ -0,0 +1,3 @@ +REACT_APP_URL='https://jupiter.nearle.app/live/api/v1' +REACT_APP_URL2='https://jupiter.nearle.app/live/api/v2' +REACT_APP_STAFF_TOKEN='' \ No newline at end of file diff --git a/.gitignore b/.gitignore index db58a7c..6123c79 100644 --- a/.gitignore +++ b/.gitignore @@ -5,15 +5,6 @@ node_modules/ dist/ build/ -# Environment variables -.env -.env.development -.env.staging -.env.local -.env.development.local -.env.test.local -.env.production.local - # Logs logs *.log diff --git a/config-overrides.js b/config-overrides.js index 5c15969..ab3fee6 100644 --- a/config-overrides.js +++ b/config-overrides.js @@ -2,6 +2,54 @@ const webpack = require('webpack'); const WorkBoxPlugin = require('workbox-webpack-plugin'); module.exports = function override(config) { + // @astryxdesign/core ships as ESM with relative imports missing extensions + // (e.g. '../Tooltip/Tooltip'), which webpack 5 rejects under strict ESM + // resolution. Relax it for this package only rather than globally. + config.module.rules.push({ + test: /\.m?js$/, + include: /node_modules[\\/]@astryxdesign/, + resolve: { fullySpecified: false } + }); + + // react-scripts routes all other node_modules JS through + // babel-preset-react-app/dependencies (a lighter preset than the one used + // for src/), which doesn't include the import-attributes syntax plugin. + // @astryxdesign/core's i18n module uses `import x from './en.json' with + // { type: 'json' }` — the webpack version react-scripts@5 bundles predates + // native import-attributes support, so even once Babel can *parse* that + // syntax (via the syntax plugin) it still needs to be stripped from the + // output, or webpack's own parser trips on the untouched `with {...}` + // clause in babel-loader's output. Insert a dedicated oneOf rule ahead of + // the generic node_modules js/mjs rule — oneOf rules are mutually + // exclusive (first match wins), so the generic rule won't also try to + // process these files. + const stripImportAttributes = () => ({ + visitor: { + ImportDeclaration(path) { + if (path.node.attributes) path.node.attributes = []; + if (path.node.assertions) path.node.assertions = []; + } + } + }); + const oneOfRule = config.module.rules.find((rule) => Array.isArray(rule.oneOf)); + if (oneOfRule) { + oneOfRule.oneOf.unshift({ + test: /\.m?js$/, + include: /node_modules[\\/]@astryxdesign/, + resolve: { fullySpecified: false }, + loader: require.resolve('babel-loader'), + options: { + babelrc: false, + configFile: false, + compact: false, + presets: [[require.resolve('babel-preset-react-app/dependencies'), { helpers: true }]], + plugins: [require.resolve('@babel/plugin-syntax-import-attributes'), stripImportAttributes], + cacheDirectory: true, + cacheCompression: false + } + }); + } + config.resolve.fallback = { process: require.resolve('process/browser'), // zlib: require.resolve('browserify-zlib'), diff --git a/orig_invoicePreview_check.js b/orig_invoicePreview_check.js new file mode 100644 index 0000000..c38c7b8 --- /dev/null +++ b/orig_invoicePreview_check.js @@ -0,0 +1,484 @@ +import React, { useRef, useState, useEffect } from 'react'; +import { useLocation } from 'react-router-dom'; +import { useTheme } from '@mui/material/styles'; +// import nearleLogo from '../../assets/images/nearleLogo.png'; +import logo_nearle1 from '../../../assets/images/logo-nearle1.png'; +import axios from 'axios'; +import dayjs from 'dayjs'; +import Loader from 'components/Loader'; +import { enqueueSnackbar } from 'notistack'; +import { DownloadOutlined, PrinterFilled } from '@ant-design/icons'; +import ReactToPrint, { useReactToPrint } from 'react-to-print'; +import { SearchOutlined, LeftOutlined, RightOutlined } from '@ant-design/icons'; +import ArrowBackIcon from '@mui/icons-material/ArrowBack'; +// import jsPDF from 'jspdf'; +import { useNavigate } from 'react-router-dom'; +import { FaArrowLeft } from 'react-icons/fa6'; +import { FaIndianRupeeSign } from 'react-icons/fa6'; + +// import autoTable from 'jspdf-autotable'; +import { + Grid, + Button, + Divider, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TablePagination, + TableRow, + Tabs, + Tab, + Typography, + Box, + OutlinedInput, + InputAdornment, + IconButton, + Tooltip, + Dialog, + DialogTitle, + DialogContent, + Stack, + Chip, + DialogActions, + TextField +} from '@mui/material'; + +const InvoicePreview = () => { + const [selected, setselected] = useState({}); + const location = useLocation(); + const navigate = useNavigate(); + console.log('previewSelect', location.state); + const componentRef = useRef(null); + const [tabletype, settabletype] = useState(true); + const [paydialog, setpaydialog] = useState(false); + const [refnumber, setRefnumber] = useState(''); + const [remarks, setRemarks] = useState(''); + const theme = useTheme(); + useEffect(() => { + setselected(location.state); + }, []); + // ================================================= || formatNumberToRupees || ================================================= + + function formatNumberToRupees(value) { + return new Intl.NumberFormat('en-IN', { + style: 'currency', + currency: 'INR', + minimumFractionDigits: 2 + }).format(value); + } + + useEffect(() => { + console.log('refnumber', refnumber); + console.log('remarks', remarks); + }, [refnumber, remarks]); + + // ================================================= || updatePayment || ================================================= + + const updatePayment = async () => { + try { + const updateResponse = await axios.put(`${process.env.REACT_APP_URL}/invoice/updatestatus`, { + salesid: selected.salesid, + referenceno: refnumber, + referencedate: dayjs().format('YYYY-MM-DD HH:mm:ss'), + billstatus: 2, + paymentremarks: remarks + }); + if (updateResponse.status) { + enqueueSnackbar(' Updated Successfully ', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + } + console.log('updateResponse', updateResponse); + } catch (error) { + console.log('updateResponse', error); + } + }; + + return ( + <> + + {/* // ================================================= || Invoice Details || ================================================= */} + + + + { + navigate('/nearle/invoice'); + }} + > + + + + + + + Invoice Details + + + + + + + {/* */} + ( + + )} + content={() => componentRef.current} + /> + + + + {/* // ================================================= || Date row || ================================================= */} + + +
+ + + + + + {' '} + + + + + Invoice No : + + {`${'\u00a0\u00a0'}${selected.invoiceno}`} + + + + + + Date :{' '} + + + {dayjs(selected.transactiondate).format('DD-MM-YYYY')} + + + + + Due Date : + + {dayjs(selected.dueDate).format('DD-MM-YYYY')} + + + + {/* // ================================================= || from to || ================================================= */} + + + + + + + + + From: + + Nearle Technology Privite Limited. + + 424, 4thfloor, + + Red rose towers, + DB Road, RS Puram, + 641002. + care@nearle.in + 9047968666 + + + + + + + + + + + + To: + + {selected.tenantname} + {selected.address} + {selected.suburb} + {selected.city} + {selected.state}{' '} + + + + + + + + + + {/* // ================================================= || invoice table || ================================================= */} + + + + + + S.No + Particulars + Unit + Quantity + Rate + {/* {selected && selected.pricingtypeid === 73 && ( */} + Other Charges + {/* )} */} + Amount + + + {selected.tenantsalesdetails && ( + + + 1 + + + {`Invoice from ${dayjs(selected.tenantsalesdetails[0].fromdate).format('DD-MM-YYYY')} to ${dayjs( + selected.tenantsalesdetails[0].todate + ).format('DD-MM-YYYY')}`} + + + + {selected.tenantsalesdetails[0].pricingtype} + + + + {`${selected.tenantsalesdetails[0].quantity}km`} + + + {`₹ ${selected.tenantsalesdetails[0].baserate.toFixed(2)}`} + + {/* {selected.tenantsalesdetails[0].pricingtypeid == 73 && ( */} + + {`₹ ${selected.tenantsalesdetails[0].othercharges}.00`} + + {/* )} */} + + {`₹ ${selected.tenantsalesdetails[0].amount}.00`} + + + + )} +
+
+ + + + + + + Sub Total: + {formatNumberToRupees(selected.salesamount)} + + + Discount: + + - {formatNumberToRupees(selected.discountamt)} + + + + Tax: + + + {formatNumberToRupees(selected.taxamount)} + + + + + Grand Total: + + {formatNumberToRupees(Math.round(selected.totalamount))} + + + + + +
+ + + Notes: {selected.remarks} + + + +
+
+ + {/* ================================================= || updatePayment Dialog || ================================================= */} + { + setpaydialog(false); + }} + maxWidth={'sm'} + fullWidth + > + + + + ₹ + + + Update Payment + + + + + + Reference No + { + setRefnumber(e.target.value); + }} + /> + + + Remarks + { + setRemarks(e.target.value); + }} + /> + + + + + + + + + ); +}; + +export default InvoicePreview; diff --git a/package-lock.json b/package-lock.json index 5838755..ec982df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,17 +10,12 @@ "dependencies": { "@ant-design/colors": "^7.0.0", "@ant-design/icons": "^5.0.1", + "@astryxdesign/core": "^0.1.9", + "@astryxdesign/theme-neutral": "^0.1.9", "@custom-react-hooks/use-network": "^1.0.1", - "@emotion/cache": "^11.10.7", - "@emotion/react": "^11.10.6", - "@emotion/styled": "^11.10.6", - "@mui/base": "^5.0.0-alpha.126", - "@mui/icons-material": "^5.14.19", - "@mui/lab": "^5.0.0-alpha.127", - "@mui/material": "^5.12.1", - "@mui/x-date-pickers": "^6.18.2", "@react-google-maps/api": "^2.20.7", - "@reduxjs/toolkit": "^1.9.5", + "@reduxjs/toolkit": "^2.12.0", + "@stylexjs/stylex": "^0.19.0", "@svgr/webpack": "^7.0.0", "@tanstack/react-query": "^5.22.2", "antd": "^5.11.5", @@ -29,43 +24,42 @@ "buffer": "^6.0.3", "chance": "^1.1.11", "crypto-browserify": "^3.12.0", + "date-fns": "^2.30.0", "dayjs": "^1.11.10", "env-cmd": "^10.1.0", "formik": "^2.2.9", - "framer-motion": "^10.12.4", + "framer-motion": "^12.42.2", "geolib": "^3.3.4", "jsonwebtoken": "^9.0.0", "jwt-decode": "^3.1.2", "leaflet": "^1.9.4", "lodash": "^4.17.21", - "mui-daterange-picker": "^1.0.5", "notistack": "^3.0.1", "papaparse": "^5.5.3", "process": "^0.11.10", "prop-types": "^15.8.1", - "react": "^18.2.0", + "react": "^19.2.8", "react-app-rewired": "^2.2.1", "react-csv": "^2.2.2", "react-device-detect": "^2.2.3", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", - "react-dom": "^18.2.0", + "react-dom": "^19.2.8", "react-geocode": "^0.2.3", "react-google-autocomplete": "^2.7.3", "react-icons": "^4.12.0", - "react-intl": "^6.4.1", - "react-leaflet": "^4.2.1", + "react-intl": "^7.1.14", + "react-leaflet": "^5.0.0", "react-loading-icons": "^1.1.0", "react-phone-number-input": "^3.3.10", - "react-redux": "^8.0.5", + "react-redux": "^9.2.0", "react-router": "^6.10.0", "react-router-dom": "^6.10.0", "react-scripts": "^5.0.1", "react-timer-hook": "^3.0.5", - "react-to-print": "^2.15.1", + "react-to-print": "^3.3.0", "react-virtuoso": "^4.7.0", - "react18-input-otp": "^1.1.3", - "redux": "^4.2.1", + "redux": "^5.0.1", "simplebar": "^6.2.5", "simplebar-react": "^3.2.4", "stream-browserify": "^3.0.0", @@ -78,6 +72,9 @@ "devDependencies": { "@babel/core": "^7.21.4", "@babel/eslint-parser": "^7.21.3", + "@babel/plugin-syntax-import-attributes": "^7.29.7", + "@babel/preset-env": "^7.28.0", + "@babel/preset-react": "^7.27.1", "eslint": "^8.38.0", "eslint-config-prettier": "^8.8.0", "eslint-config-react-app": "^7.0.1", @@ -91,18 +88,6 @@ "react-error-overlay": "6.0.11" } }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@ant-design/colors": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.0.tgz", @@ -178,45 +163,109 @@ "react": ">=16.9.0" } }, - "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "node_modules/@astryxdesign/core": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@astryxdesign/core/-/core-0.1.9.tgz", + "integrity": "sha512-2ZNypZFfujMPxdU8M9Jbe77vwFPP1FYvA0Pk/3L3OLxEIzi98qLbRJjhDEHLbrflANSFVB4l5+qYpJjYtFFXMQ==", + "hasInstallScript": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.18.6" + "intl-messageformat": "^11.2.9" + }, + "peerDependencies": { + "@stylexjs/stylex": "^0.19.0", + "react": ">=19.0.0", + "react-dom": ">=19.0.0" + } + }, + "node_modules/@astryxdesign/core/node_modules/@formatjs/fast-memoize": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.1.7.tgz", + "integrity": "sha512-zXfhLpvA6T7+efdt9JLbBwZ00tT7NsBMDVnDu8rpHeNNv8KfRZAMo2gkG0k9lK/Nzc//3kJ9pImsfuJxk3KhUA==", + "license": "MIT" + }, + "node_modules/@astryxdesign/core/node_modules/@formatjs/icu-messageformat-parser": { + "version": "3.5.15", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-3.5.15.tgz", + "integrity": "sha512-5o4grXKotAB3JqQuisLApHG43g17N+paoRTa92Jiz35Zvfemq0cVf4EDvuxyHAzmsJji7igaEowicLO/VmfJ8Q==", + "license": "MIT", + "dependencies": { + "@formatjs/icu-skeleton-parser": "2.1.11" + } + }, + "node_modules/@astryxdesign/core/node_modules/@formatjs/icu-skeleton-parser": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-2.1.11.tgz", + "integrity": "sha512-j8cUmOJzVgkHuS0QiQ6ga76UIoLOFSAMWhs7aZJztH3aAdCOAE6vpC8KVvFB4cU10ON0y2/5oOVmPJ43s2lTwA==", + "license": "MIT" + }, + "node_modules/@astryxdesign/core/node_modules/intl-messageformat": { + "version": "11.2.12", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-11.2.12.tgz", + "integrity": "sha512-KW70Xxfcvy7vV3qODfvShWkFDPMqKDAa4N+hSyVBWGNtVhTUFYaqlD/l88DaYPKiVcPP4rPQ3qnH7i5K82Mg7g==", + "license": "BSD-3-Clause", + "dependencies": { + "@formatjs/fast-memoize": "3.1.7", + "@formatjs/icu-messageformat-parser": "3.5.15" + } + }, + "node_modules/@astryxdesign/theme-neutral": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@astryxdesign/theme-neutral/-/theme-neutral-0.1.9.tgz", + "integrity": "sha512-HZPJmzg0S+aKuxUBGJ1L9O+bBZzwzWlROey/7VilM8kUzHA4lYrFcIPzRixoiXs/qyR5sSfJE8YG7jsXuAuywA==", + "license": "MIT", + "dependencies": { + "lucide-react": "^1.18.0" + }, + "peerDependencies": { + "@astryxdesign/core": "0.1.9", + "react": ">=19" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -226,6 +275,12 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, "node_modules/@babel/eslint-parser": { "version": "7.21.3", "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", @@ -244,71 +299,47 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.21.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { @@ -325,18 +356,18 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", - "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -346,12 +377,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", - "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", + "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1" + "@babel/helper-annotate-as-pure": "^7.29.7", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -376,116 +409,88 @@ "@babel/core": "^7.4.0-0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dependencies": { - "@babel/types": "^7.18.6" - }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.21.0" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", + "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-wrap-function": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -495,38 +500,30 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dependencies": { - "@babel/types": "^7.20.2" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.20.0" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -544,73 +541,67 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", + "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", + "license": "MIT", "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "license": "MIT", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -618,12 +609,60 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz", + "integrity": "sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz", + "integrity": "sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz", + "integrity": "sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz", + "integrity": "sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -633,13 +672,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz", + "integrity": "sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -648,21 +688,20 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz", + "integrity": "sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-proposal-class-properties": { @@ -680,22 +719,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, "node_modules/@babel/plugin-proposal-decorators": { "version": "7.17.9", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz", @@ -715,66 +738,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", @@ -805,39 +768,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-optional-chaining": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", @@ -870,15 +800,10 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -886,21 +811,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -934,20 +844,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-decorators": { "version": "7.17.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", @@ -962,28 +858,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-flow": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", @@ -999,11 +873,27 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz", + "integrity": "sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1035,11 +925,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1118,6 +1009,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1156,12 +1048,46 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", + "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz", + "integrity": "sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1171,13 +1097,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz", + "integrity": "sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==", + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1187,11 +1114,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", + "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1201,11 +1129,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", + "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1214,20 +1143,50 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz", + "integrity": "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz", + "integrity": "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", + "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1237,12 +1196,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", + "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/template": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1252,11 +1212,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", + "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1266,12 +1228,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", + "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1281,11 +1244,59 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", + "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz", + "integrity": "sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz", + "integrity": "sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1295,12 +1306,27 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", + "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", + "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz", + "integrity": "sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1325,11 +1351,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", - "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", + "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1339,13 +1367,29 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", + "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz", + "integrity": "sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1355,11 +1399,27 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", + "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz", + "integrity": "sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1369,11 +1429,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz", + "integrity": "sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1383,12 +1444,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", + "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1398,13 +1460,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1414,14 +1476,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz", + "integrity": "sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==", + "license": "MIT", "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1431,12 +1494,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", + "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1446,12 +1510,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1461,11 +1526,61 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", + "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz", + "integrity": "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz", + "integrity": "sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz", + "integrity": "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1475,12 +1590,44 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", + "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz", + "integrity": "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz", + "integrity": "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1490,11 +1637,45 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", + "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz", + "integrity": "sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz", + "integrity": "sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1504,11 +1685,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz", + "integrity": "sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1532,11 +1714,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", - "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz", + "integrity": "sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1546,15 +1729,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", - "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz", + "integrity": "sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.19.0" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1564,11 +1748,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", - "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz", + "integrity": "sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==", + "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.18.6" + "@babel/plugin-transform-react-jsx": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1578,12 +1763,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", - "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz", + "integrity": "sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1593,12 +1779,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz", + "integrity": "sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1607,12 +1793,29 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz", + "integrity": "sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz", + "integrity": "sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1641,11 +1844,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", + "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1655,12 +1859,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz", + "integrity": "sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1670,11 +1875,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", + "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1684,11 +1890,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", + "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1698,11 +1905,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", + "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1729,11 +1937,28 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz", + "integrity": "sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz", + "integrity": "sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1743,12 +1968,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", + "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1757,86 +1983,99 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz", + "integrity": "sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/preset-env": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", - "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.7.tgz", + "integrity": "sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.20.7", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.20.7", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.0", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.2", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.20.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.4", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@babel/compat-data": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.29.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.29.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.29.7", + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.29.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.29.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.29.7", + "@babel/plugin-syntax-import-attributes": "^7.29.7", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.29.7", + "@babel/plugin-transform-async-generator-functions": "^7.29.7", + "@babel/plugin-transform-async-to-generator": "^7.29.7", + "@babel/plugin-transform-block-scoped-functions": "^7.29.7", + "@babel/plugin-transform-block-scoping": "^7.29.7", + "@babel/plugin-transform-class-properties": "^7.29.7", + "@babel/plugin-transform-class-static-block": "^7.29.7", + "@babel/plugin-transform-classes": "^7.29.7", + "@babel/plugin-transform-computed-properties": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-dotall-regex": "^7.29.7", + "@babel/plugin-transform-duplicate-keys": "^7.29.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-dynamic-import": "^7.29.7", + "@babel/plugin-transform-explicit-resource-management": "^7.29.7", + "@babel/plugin-transform-exponentiation-operator": "^7.29.7", + "@babel/plugin-transform-export-namespace-from": "^7.29.7", + "@babel/plugin-transform-for-of": "^7.29.7", + "@babel/plugin-transform-function-name": "^7.29.7", + "@babel/plugin-transform-json-strings": "^7.29.7", + "@babel/plugin-transform-literals": "^7.29.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.29.7", + "@babel/plugin-transform-member-expression-literals": "^7.29.7", + "@babel/plugin-transform-modules-amd": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-modules-systemjs": "^7.29.7", + "@babel/plugin-transform-modules-umd": "^7.29.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-new-target": "^7.29.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.29.7", + "@babel/plugin-transform-numeric-separator": "^7.29.7", + "@babel/plugin-transform-object-rest-spread": "^7.29.7", + "@babel/plugin-transform-object-super": "^7.29.7", + "@babel/plugin-transform-optional-catch-binding": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/plugin-transform-private-methods": "^7.29.7", + "@babel/plugin-transform-private-property-in-object": "^7.29.7", + "@babel/plugin-transform-property-literals": "^7.29.7", + "@babel/plugin-transform-regenerator": "^7.29.7", + "@babel/plugin-transform-regexp-modifiers": "^7.29.7", + "@babel/plugin-transform-reserved-words": "^7.29.7", + "@babel/plugin-transform-shorthand-properties": "^7.29.7", + "@babel/plugin-transform-spread": "^7.29.7", + "@babel/plugin-transform-sticky-regex": "^7.29.7", + "@babel/plugin-transform-template-literals": "^7.29.7", + "@babel/plugin-transform-typeof-symbol": "^7.29.7", + "@babel/plugin-transform-unicode-escapes": "^7.29.7", + "@babel/plugin-transform-unicode-property-regex": "^7.29.7", + "@babel/plugin-transform-unicode-regex": "^7.29.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.29.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1845,55 +2084,87 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "node_modules/@babel/preset-env/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.6.8" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/preset-react": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", - "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.29.7.tgz", + "integrity": "sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-react-display-name": "^7.18.6", - "@babel/plugin-transform-react-jsx": "^7.18.6", - "@babel/plugin-transform-react-jsx-development": "^7.18.6", - "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-transform-react-display-name": "^7.29.7", + "@babel/plugin-transform-react-jsx": "^7.29.7", + "@babel/plugin-transform-react-jsx-development": "^7.29.7", + "@babel/plugin-transform-react-pure-annotations": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1920,68 +2191,55 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" - }, "node_modules/@babel/runtime": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz", - "integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", - "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.4", - "@babel/types": "^7.21.4", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2280,139 +2538,6 @@ "react": ">=16.8.0" } }, - "node_modules/@emotion/babel-plugin": { - "version": "11.10.6", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.6.tgz", - "integrity": "sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.0", - "@emotion/memoize": "^0.8.0", - "@emotion/serialize": "^1.1.1", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.1.3" - } - }, - "node_modules/@emotion/cache": { - "version": "11.10.7", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.7.tgz", - "integrity": "sha512-VLl1/2D6LOjH57Y8Vem1RoZ9haWF4jesHDGiHtKozDQuBIkJm2gimVo0I02sWCuzZtVACeixTVB4jeE8qvCBoQ==", - "dependencies": { - "@emotion/memoize": "^0.8.0", - "@emotion/sheet": "^1.2.1", - "@emotion/utils": "^1.2.0", - "@emotion/weak-memoize": "^0.3.0", - "stylis": "4.1.3" - } - }, - "node_modules/@emotion/hash": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", - "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", - "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", - "dependencies": { - "@emotion/memoize": "^0.8.0" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", - "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" - }, - "node_modules/@emotion/react": { - "version": "11.10.6", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.6.tgz", - "integrity": "sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.10.6", - "@emotion/cache": "^11.10.5", - "@emotion/serialize": "^1.1.1", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@emotion/utils": "^1.2.0", - "@emotion/weak-memoize": "^0.3.0", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/serialize": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", - "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", - "dependencies": { - "@emotion/hash": "^0.9.0", - "@emotion/memoize": "^0.8.0", - "@emotion/unitless": "^0.8.0", - "@emotion/utils": "^1.2.0", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/sheet": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", - "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" - }, - "node_modules/@emotion/styled": { - "version": "11.10.6", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.6.tgz", - "integrity": "sha512-OXtBzOmDSJo5Q0AFemHCfl+bUueT8BIcPSxu0EGTpGk6DmI5dnhSzQANm1e1ze0YZL7TDyAyy6s/b/zmGOS3Og==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.10.6", - "@emotion/is-prop-valid": "^1.2.0", - "@emotion/serialize": "^1.1.1", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@emotion/utils": "^1.2.0" - }, - "peerDependencies": { - "@emotion/react": "^11.0.0-rc.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/unitless": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", - "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" - }, - "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", - "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@emotion/utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", - "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==" - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", - "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -2517,91 +2642,62 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@floating-ui/core": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.1.tgz", - "integrity": "sha512-QgcKYwzcc8vvZ4n/5uklchy8KVdjJwcOeI+HnnTNclJjs2nYsy23DOCf+sSV1kBwD9yDAoVKCkv/gEPzgQU3Pw==", - "dependencies": { - "@floating-ui/utils": "^0.1.3" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", - "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", - "dependencies": { - "@floating-ui/core": "^1.4.2", - "@floating-ui/utils": "^0.1.3" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz", - "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==", - "dependencies": { - "@floating-ui/dom": "^1.5.1" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", - "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" - }, "node_modules/@formatjs/ecma402-abstract": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.14.3.tgz", - "integrity": "sha512-SlsbRC/RX+/zg4AApWIFNDdkLtFbkq3LNoZWXZCE/nHVKqoIJyaoQyge/I0Y38vLxowUn9KTtXgusLD91+orbg==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz", + "integrity": "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==", + "license": "MIT", "dependencies": { - "@formatjs/intl-localematcher": "0.2.32", - "tslib": "^2.4.0" + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/intl-localematcher": "0.6.2", + "decimal.js": "^10.4.3", + "tslib": "^2.8.0" } }, "node_modules/@formatjs/fast-memoize": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.0.1.tgz", - "integrity": "sha512-M2GgV+qJn5WJQAYewz7q2Cdl6fobQa69S1AzSM2y0P68ZDbK5cWrJIcPCO395Of1ksftGZoOt4LYCO/j9BKBSA==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz", + "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==", + "license": "MIT", "dependencies": { - "tslib": "^2.4.0" + "tslib": "^2.8.0" } }, "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.3.1.tgz", - "integrity": "sha512-knF2AkAKN4Upv4oIiKY4Wd/dLH68TNMPgV/tJMu/T6FP9aQwbv8fpj7U3lkyniPaNVxvia56Gxax8MKOjtxLSQ==", + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz", + "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==", + "license": "MIT", "dependencies": { - "@formatjs/ecma402-abstract": "1.14.3", - "@formatjs/icu-skeleton-parser": "1.3.18", - "tslib": "^2.4.0" + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/icu-skeleton-parser": "1.8.16", + "tslib": "^2.8.0" } }, "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.3.18", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.18.tgz", - "integrity": "sha512-ND1ZkZfmLPcHjAH1sVpkpQxA+QYfOX3py3SjKWMUVGDow18gZ0WPqz3F+pJLYQMpS2LnnQ5zYR2jPVYTbRwMpg==", + "version": "1.8.16", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz", + "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==", + "license": "MIT", "dependencies": { - "@formatjs/ecma402-abstract": "1.14.3", - "tslib": "^2.4.0" + "@formatjs/ecma402-abstract": "2.3.6", + "tslib": "^2.8.0" } }, "node_modules/@formatjs/intl": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.7.1.tgz", - "integrity": "sha512-se6vxidsN3PCmzqTsDd3YDT4IX9ZySPy39LYhF7x2ssNvlGMOuW3umkrIhKkXB7ZskqsJGY53LVCdiHsSwhGng==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-3.1.8.tgz", + "integrity": "sha512-LWXgwI5zTMatvR8w8kCNh/priDTOF/ZssokMBHJ7ZWXFoYLVOYo0EJERD9Eajv+xsfQO1QkuAt77KWQ1OI4mOQ==", + "license": "MIT", "dependencies": { - "@formatjs/ecma402-abstract": "1.14.3", - "@formatjs/fast-memoize": "2.0.1", - "@formatjs/icu-messageformat-parser": "2.3.1", - "@formatjs/intl-displaynames": "6.3.1", - "@formatjs/intl-listformat": "7.2.1", - "intl-messageformat": "10.3.4", - "tslib": "^2.4.0" + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/icu-messageformat-parser": "2.11.4", + "intl-messageformat": "10.7.18", + "tslib": "^2.8.0" }, "peerDependencies": { - "typescript": "^4.7 || 5" + "typescript": "^5.6.0" }, "peerDependenciesMeta": { "typescript": { @@ -2609,32 +2705,13 @@ } } }, - "node_modules/@formatjs/intl-displaynames": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.3.1.tgz", - "integrity": "sha512-TlxguMDUbnFrJ4NA8fSyqXC62M7czvlRJ5mrJgtB91JVA+QPjjNdcRm1qPIC/DcU/pGUDcEzThn/x5A+jp15gg==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.14.3", - "@formatjs/intl-localematcher": "0.2.32", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/intl-listformat": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.2.1.tgz", - "integrity": "sha512-fRJFWLrGa7d25I4JSxNjKX29oXGcIXx8fJjgURnvs2C3ijS4gurUgFrUwLbv/2KfPfyJ5g567pz2INelNJZBdw==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.14.3", - "@formatjs/intl-localematcher": "0.2.32", - "tslib": "^2.4.0" - } - }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.2.32", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.32.tgz", - "integrity": "sha512-k/MEBstff4sttohyEpXxCmC3MqbUn9VvHGlZ8fauLzkbwXmVrEeyzS+4uhrvAk9DWU9/7otYWxyDox4nT/KVLQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz", + "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==", + "license": "MIT", "dependencies": { - "tslib": "^2.4.0" + "tslib": "^2.8.0" } }, "node_modules/@googlemaps/js-api-loader": { @@ -3363,15 +3440,23 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, "node_modules/@jridgewell/resolve-uri": { @@ -3382,14 +3467,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.0.tgz", - "integrity": "sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/source-map": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", @@ -3399,31 +3476,20 @@ "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@leichtgewicht/ip-codec": { @@ -3431,417 +3497,6 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, - "node_modules/@mui/base": { - "version": "5.0.0-alpha.126", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.126.tgz", - "integrity": "sha512-I5e52A0Muv9Gaoy2GcqbYrQ6dpRyC2UXeA00brT3HuW0nF0E4fiTOIqdNTN+N5gyaYK0z3O6jtLt/97CCrIxVA==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "@emotion/is-prop-valid": "^1.2.0", - "@mui/types": "^7.2.4", - "@mui/utils": "^5.12.0", - "@popperjs/core": "^2.11.7", - "clsx": "^1.2.1", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/base/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/@mui/core-downloads-tracker": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.12.1.tgz", - "integrity": "sha512-rNiQYHtkXljcvCEnhWrJzie1ifff5O98j3uW7ZlchFgD8HWxEcz/QoxZvo+sCKC9aayAgxi9RsVn2VjCyp5CrA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - } - }, - "node_modules/@mui/icons-material": { - "version": "5.14.19", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.14.19.tgz", - "integrity": "sha512-yjP8nluXxZGe3Y7pS+yxBV+hWZSsSBampCxkZwaw+1l+feL+rfP74vbEFbMrX/Kil9I/Y1tWfy5bs/eNvwNpWw==", - "dependencies": { - "@babel/runtime": "^7.23.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@mui/material": "^5.0.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/lab": { - "version": "5.0.0-alpha.127", - "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.127.tgz", - "integrity": "sha512-D+Q7MV06rn31g8ZgNcLxgsmh94PJYfyqXAcM3BokgMJ4u89QfwneSlaoHnQ9qitvWFyTz7Ic4HVMNT08FkRG7Q==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "@mui/base": "5.0.0-alpha.126", - "@mui/system": "^5.12.1", - "@mui/types": "^7.2.4", - "@mui/utils": "^5.12.0", - "clsx": "^1.2.1", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@mui/material": "^5.0.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/lab/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/@mui/material": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.12.1.tgz", - "integrity": "sha512-m+G9J6+FzIMhRqKV2y30yONH97wX107z9EWgiNCeS1/+y1CnytFZNG1ENdOuaJo1NimCRnmB/iXPvoOaSo6dOg==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "@mui/base": "5.0.0-alpha.126", - "@mui/core-downloads-tracker": "^5.12.1", - "@mui/system": "^5.12.1", - "@mui/types": "^7.2.4", - "@mui/utils": "^5.12.0", - "@types/react-transition-group": "^4.4.5", - "clsx": "^1.2.1", - "csstype": "^3.1.2", - "prop-types": "^15.8.1", - "react-is": "^18.2.0", - "react-transition-group": "^4.4.5" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/material/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/@mui/private-theming": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.12.0.tgz", - "integrity": "sha512-w5dwMen1CUm1puAtubqxY9BIzrBxbOThsg2iWMvRJmWyJAPdf3Z583fPXpqeA2lhTW79uH2jajk5Ka4FuGlTPg==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "@mui/utils": "^5.12.0", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/styled-engine": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.12.0.tgz", - "integrity": "sha512-frh8L7CRnvD0RDmIqEv6jFeKQUIXqW90BaZ6OrxJ2j4kIsiVLu29Gss4SbBvvrWwwatR72sBmC3w1aG4fjp9mQ==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "@emotion/cache": "^11.10.7", - "csstype": "^3.1.2", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - } - } - }, - "node_modules/@mui/system": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.12.1.tgz", - "integrity": "sha512-Po+sicdV3bbRYXdU29XZaHPZrW7HUYUqU1qCu77GCCEMbahC756YpeyefdIYuPMUg0OdO3gKIUfDISBrkjJL+w==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "@mui/private-theming": "^5.12.0", - "@mui/styled-engine": "^5.12.0", - "@mui/types": "^7.2.4", - "@mui/utils": "^5.12.0", - "clsx": "^1.2.1", - "csstype": "^3.1.2", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/types": { - "version": "7.2.10", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.10.tgz", - "integrity": "sha512-wX1vbDC+lzF7FlhT6A3ffRZgEoKWPF8VqRoTu4lZwouFX2t90KyCMsgepMw5DxLak1BSp/KP86CmtZttikb/gQ==", - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/utils": { - "version": "5.14.19", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.19.tgz", - "integrity": "sha512-qAHvTXzk7basbyqPvhgWqN6JbmI2wLB/mf97GkSlz5c76MiKYV6Ffjvw9BjKZQ1YRb8rDX9kgdjRezOcoB91oQ==", - "dependencies": { - "@babel/runtime": "^7.23.4", - "@types/prop-types": "^15.7.11", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/utils/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/@mui/x-date-pickers": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-6.18.2.tgz", - "integrity": "sha512-HJq4uoFQSu5isa/mesWw2BKh8KBRYUQb+KaSlVlWfJNgP3YhPvWZ6yqCNYyxOAiPMxb0n3nBjS9ErO27OHjFMA==", - "dependencies": { - "@babel/runtime": "^7.23.2", - "@mui/base": "^5.0.0-beta.22", - "@mui/utils": "^5.14.16", - "@types/react-transition-group": "^4.4.8", - "clsx": "^2.0.0", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@emotion/react": "^11.9.0", - "@emotion/styled": "^11.8.1", - "@mui/material": "^5.8.6", - "@mui/system": "^5.8.0", - "date-fns": "^2.25.0", - "date-fns-jalali": "^2.13.0-0", - "dayjs": "^1.10.7", - "luxon": "^3.0.2", - "moment": "^2.29.4", - "moment-hijri": "^2.1.2", - "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "date-fns": { - "optional": true - }, - "date-fns-jalali": { - "optional": true - }, - "dayjs": { - "optional": true - }, - "luxon": { - "optional": true - }, - "moment": { - "optional": true - }, - "moment-hijri": { - "optional": true - }, - "moment-jalaali": { - "optional": true - } - } - }, - "node_modules/@mui/x-date-pickers/node_modules/@mui/base": { - "version": "5.0.0-beta.25", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.25.tgz", - "integrity": "sha512-Iiv+IcappRRv6IBlknIVmLkXxfp51NEX1+l9f+dIbBuPU4PaRULegr1lCeHKsC45KU5ruxM5xMg4R/de03aJQg==", - "dependencies": { - "@babel/runtime": "^7.23.4", - "@floating-ui/react-dom": "^2.0.4", - "@mui/types": "^7.2.10", - "@mui/utils": "^5.14.19", - "@popperjs/core": "^2.11.8", - "clsx": "^2.0.0", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/x-date-pickers/node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", - "engines": { - "node": ">=6" - } - }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -4004,15 +3659,6 @@ "node": ">= 8" } }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, "node_modules/@rc-component/color-picker": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.4.1.tgz", @@ -4171,28 +3817,32 @@ "license": "MIT" }, "node_modules/@react-leaflet/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-2.1.0.tgz", - "integrity": "sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-3.0.0.tgz", + "integrity": "sha512-3EWmekh4Nz+pGcr+xjf0KNyYfC3U2JjnkWsh0zcqaexYqmmB5ZhH37kz41JXGmKzpaMZCnPofBBm64i+YrEvGQ==", + "license": "Hippocratic-2.1", "peerDependencies": { "leaflet": "^1.9.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^19.0.0", + "react-dom": "^19.0.0" } }, "node_modules/@reduxjs/toolkit": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.5.tgz", - "integrity": "sha512-Rt97jHmfTeaxL4swLRNPD/zV4OxTes4la07Xc4hetpUW/vc75t5m1ANyxG6ymnEQ2FsLQsoMlYB2vV1sO3m8tQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.12.0.tgz", + "integrity": "sha512-KiT+RzZbp6mQET+Mg+h2c97+9j1sNflUxQkIHI7Yuzf6Peu+OYpmkn6nbHWmLLWj+1ZODUJFwGZ7gx3L9R9EOw==", + "license": "MIT", "dependencies": { - "immer": "^9.0.21", - "redux": "^4.2.1", - "redux-thunk": "^2.4.2", - "reselect": "^4.1.8" + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" }, "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18", - "react-redux": "^7.2.1 || ^8.0.2" + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" }, "peerDependenciesMeta": { "react": { @@ -4203,6 +3853,16 @@ } } }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "11.1.15", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.15.tgz", + "integrity": "sha512-VrNANlmnWQnh5COXIIOQXM9oOJw7naGKlBT74ZOOR6lpVXc3gFEu9FJLDFcpCJ2j+NWr8TIwtWD//T6ZX6TKiQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, "node_modules/@remix-run/router": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz", @@ -4319,6 +3979,29 @@ "@sinonjs/commons": "^1.7.0" } }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, + "node_modules/@stylexjs/stylex": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@stylexjs/stylex/-/stylex-0.19.0.tgz", + "integrity": "sha512-CnUFp7YMaDLDeemsWOfJgoC/gKM5P/yBNMcpJaE6ChJmXr7s0DJwSeGTTlHJcqqwN9OW1qGtmARWLFhGZN1pTA==", + "license": "MIT", + "dependencies": { + "css-mediaquery": "^0.1.2", + "invariant": "^2.2.4", + "styleq": "0.2.1" + } + }, "node_modules/@surma/rollup-plugin-off-main-thread": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", @@ -5065,9 +4748,10 @@ "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==" }, "node_modules/@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT" }, "node_modules/@types/q": { "version": "1.5.5", @@ -5094,14 +4778,6 @@ "csstype": "^3.0.2" } }, - "node_modules/@types/react-transition-group": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.9.tgz", - "integrity": "sha512-ZVNmWumUIh5NhH8aMD9CR2hdW0fNuYInlocZHaZ+dgk/1K49j1w/HoAuK1ki+pgscQrOFRTlXeoURtuzEkV3dg==", - "dependencies": { - "@types/react": "*" - } - }, "node_modules/@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -5156,9 +4832,10 @@ "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" }, "node_modules/@types/use-sync-external-store": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", - "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" }, "node_modules/@types/ws": { "version": "8.5.3", @@ -6373,9 +6050,10 @@ } }, "node_modules/babel-preset-react-app": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", - "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.1.0.tgz", + "integrity": "sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==", + "license": "MIT", "dependencies": { "@babel/core": "^7.16.0", "@babel/plugin-proposal-class-properties": "^7.16.0", @@ -6384,6 +6062,7 @@ "@babel/plugin-proposal-numeric-separator": "^7.16.0", "@babel/plugin-proposal-optional-chaining": "^7.16.0", "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", "@babel/plugin-transform-flow-strip-types": "^7.16.0", "@babel/plugin-transform-react-display-name": "^7.16.0", "@babel/plugin-transform-runtime": "^7.16.4", @@ -6395,6 +6074,25 @@ "babel-plugin-transform-react-remove-prop-types": "^0.4.24" } }, + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -6419,6 +6117,18 @@ } ] }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.7.tgz", + "integrity": "sha512-APw5YuIQAg6L9w4sHDI6j26DGFJI6RpYOhnkMPdC9lWbkKvsyPHzDsve1yd73lk21yz7Y09Kci8B2Pp9FonzWA==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -6657,9 +6367,9 @@ ] }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.28.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz", + "integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==", "funding": [ { "type": "opencollective", @@ -6668,13 +6378,19 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "baseline-browser-mapping": "^2.10.44", + "caniuse-lite": "^1.0.30001806", + "electron-to-chromium": "^1.5.393", + "node-releases": "^2.0.51", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -6810,9 +6526,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001480", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz", - "integrity": "sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ==", + "version": "1.0.30001806", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", + "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==", "funding": [ { "type": "opencollective", @@ -6826,7 +6542,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -7229,11 +6946,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", - "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "license": "MIT", "dependencies": { - "browserslist": "^4.21.4" + "browserslist": "^4.28.1" }, "funding": { "type": "opencollective", @@ -7452,6 +7170,12 @@ "node": ">=10" } }, + "node_modules/css-mediaquery": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", + "integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==", + "license": "BSD" + }, "node_modules/css-minimizer-webpack-plugin": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", @@ -7745,9 +7469,10 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -7795,7 +7520,7 @@ "version": "2.30.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "peer": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.21.0" }, @@ -7813,11 +7538,12 @@ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -7829,9 +7555,10 @@ } }, "node_modules/decimal.js": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", - "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==" + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "license": "MIT" }, "node_modules/dedent": { "version": "0.7.0", @@ -8071,6 +7798,15 @@ "redux": "^4.2.0" } }, + "node_modules/dnd-core/node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -8106,15 +7842,6 @@ "utila": "~0.4" } }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -8240,9 +7967,10 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.283", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", - "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" + "version": "1.5.398", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.398.tgz", + "integrity": "sha512-AsvhAxopJGh6museTDMIjn6JpDYOfgu4RLlygomt87MUwBUqTfd/1EiPtx10/LZE8xpTvkP2E9Gafq7lkLtodQ==", + "license": "ISC" }, "node_modules/elliptic": { "version": "6.5.4", @@ -8396,6 +8124,15 @@ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -8450,9 +8187,10 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -9691,11 +9429,6 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -9974,20 +9707,24 @@ } }, "node_modules/framer-motion": { - "version": "10.12.4", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.12.4.tgz", - "integrity": "sha512-9gLtv8T6dui0tujHROR+VM3kdJyKiFCFiD94IQE+0OuX6LaIyXtdVpviokVdrHSb1giWhmmX4yzoucALMx6mtw==", + "version": "12.43.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.43.0.tgz", + "integrity": "sha512-1eaL3RvR/kAlbG7UYcpMptEyzPoENO0c6w7ZnB3/hh2vSAz/6uGAFn6fdoqTBguNstf3MsFhJHsD/0DHiclG+g==", + "license": "MIT", "dependencies": { + "motion-dom": "^12.43.0", + "motion-utils": "^12.39.0", "tslib": "^2.4.0" }, - "optionalDependencies": { - "@emotion/is-prop-valid": "^0.8.2" - }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, "react": { "optional": true }, @@ -9996,21 +9733,6 @@ } } }, - "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "optional": true, - "dependencies": { - "@emotion/memoize": "0.7.4" - } - }, - "node_modules/framer-motion/node_modules/@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "optional": true - }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -10056,9 +9778,13 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.5", @@ -10228,14 +9954,6 @@ "which": "bin/which" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -10425,6 +10143,18 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -10806,14 +10536,15 @@ } }, "node_modules/intl-messageformat": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.3.4.tgz", - "integrity": "sha512-/FxUIrlbPtuykSNX85CB5sp2FjLVeTmdD7TfRkVFPft2n4FgcSlAcilFytYiFAEmPHc+0PvpLCIPXeaGFzIvOg==", + "version": "10.7.18", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.18.tgz", + "integrity": "sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==", + "license": "BSD-3-Clause", "dependencies": { - "@formatjs/ecma402-abstract": "1.14.3", - "@formatjs/fast-memoize": "2.0.1", - "@formatjs/icu-messageformat-parser": "2.3.1", - "tslib": "^2.4.0" + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/icu-messageformat-parser": "2.11.4", + "tslib": "^2.8.0" } }, "node_modules/invariant": { @@ -10915,11 +10646,15 @@ } }, "node_modules/is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "license": "MIT", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13426,14 +13161,15 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-parse-even-better-errors": { @@ -13731,6 +13467,15 @@ "node": ">=10" } }, + "node_modules/lucide-react": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.28.0.tgz", + "integrity": "sha512-fARAFJULsGuDDydjp6+6blekG/sBIM29TerzLjc9bQUKAcEfrSc4ZQKb25KRz4OMKd87cZTb5dgq0w/T6KufVg==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -13992,34 +13737,27 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mui-daterange-picker": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mui-daterange-picker/-/mui-daterange-picker-1.0.5.tgz", - "integrity": "sha512-+7Mp9DXQw6iLGotwp1rKfMV8sJxtaEto0IVId54orkvrCdqTgn167nzLBz6hd34tJLftg6DKAygkUom7tmg5Bw==", + "node_modules/motion-dom": { + "version": "12.43.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.43.0.tgz", + "integrity": "sha512-azKON4d9S65PEoFUiQTMTgPheEmzf2QngdRc50AKfJp9Q9mmcBVw22c8eMq9k8kxOFHdL7+WZY7N/5F/lwiDag==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.16.7" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "peerDependencies": { - "@babel/runtime": "^7.16.7", - "@emotion/react": "^11.7.1", - "@emotion/styled": "^11.6.0", - "@mui/icons-material": "^5.0.4", - "@mui/material": "^5.2.6", - "@mui/system": "^5.0.6", - "date-fns": "^2.28.0", - "react": "^17.0.2", - "react-dom": "^17.0.2" + "motion-utils": "^12.39.0" } }, + "node_modules/motion-utils": { + "version": "12.39.0", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.39.0.tgz", + "integrity": "sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/multicast-dns": { "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", @@ -14084,9 +13822,13 @@ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "version": "2.0.51", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz", + "integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/normalize-path": { "version": "3.0.0", @@ -14531,9 +14273,10 @@ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -16740,12 +16483,10 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17019,15 +16760,15 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^19.2.8" } }, "node_modules/react-error-overlay": { @@ -17069,24 +16810,23 @@ } }, "node_modules/react-intl": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.4.1.tgz", - "integrity": "sha512-/aT5595AEMZ+Pjmt8W2R5/ZkYJmyyd6jTzHzqhJ1LnfeG36+N5huBtykxYhHqLc1BrIRQ1fTX1orYC0Ej5ojtg==", + "version": "7.1.14", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-7.1.14.tgz", + "integrity": "sha512-VE/0Wi/lHJlBC7APQpCzLUdIt3GB5B0GZrRW8Q+ACbkHI4j+Wwgg9J1TniN6zmLHmPH5gxXcMy+fkSPfw5p1WQ==", + "license": "BSD-3-Clause", "dependencies": { - "@formatjs/ecma402-abstract": "1.14.3", - "@formatjs/icu-messageformat-parser": "2.3.1", - "@formatjs/intl": "2.7.1", - "@formatjs/intl-displaynames": "6.3.1", - "@formatjs/intl-listformat": "7.2.1", + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/icu-messageformat-parser": "2.11.4", + "@formatjs/intl": "3.1.8", "@types/hoist-non-react-statics": "^3.3.1", - "@types/react": "16 || 17 || 18", + "@types/react": "16 || 17 || 18 || 19", "hoist-non-react-statics": "^3.3.2", - "intl-messageformat": "10.3.4", - "tslib": "^2.4.0" + "intl-messageformat": "10.7.18", + "tslib": "^2.8.0" }, "peerDependencies": { - "react": "^16.6.0 || 17 || 18", - "typescript": "^4.7 || 5" + "react": "16 || 17 || 18 || 19", + "typescript": "^5.6.0" }, "peerDependenciesMeta": { "typescript": { @@ -17100,16 +16840,17 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "node_modules/react-leaflet": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-4.2.1.tgz", - "integrity": "sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-5.0.0.tgz", + "integrity": "sha512-CWbTpr5vcHw5bt9i4zSlPEVQdTVcML390TjeDG0cK59z1ylexpqC6M1PJFjV8jD7CF+ACBFsLIDs6DRMoLEofw==", + "license": "Hippocratic-2.1", "dependencies": { - "@react-leaflet/core": "^2.1.0" + "@react-leaflet/core": "^3.0.0" }, "peerDependencies": { "leaflet": "^1.9.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^19.0.0", + "react-dom": "^19.0.0" } }, "node_modules/react-loading-icons": { @@ -17137,48 +16878,28 @@ } }, "node_modules/react-redux": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.5.tgz", - "integrity": "sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.3.0.tgz", + "integrity": "sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.12.1", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/use-sync-external-store": "^0.0.3", - "hoist-non-react-statics": "^3.3.2", - "react-is": "^18.0.0", - "use-sync-external-store": "^1.0.0" + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" }, "peerDependencies": { - "@types/react": "^16.8 || ^17.0 || ^18.0", - "@types/react-dom": "^16.8 || ^17.0 || ^18.0", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0", - "react-native": ">=0.59", - "redux": "^4" + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true }, - "@types/react-dom": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - }, "redux": { "optional": true } } }, - "node_modules/react-redux/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -17649,90 +17370,6 @@ "node": ">=4.0.0" } }, - "node_modules/react-scripts/node_modules/svgo/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/react-scripts/node_modules/svgo/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/react-scripts/node_modules/svgo/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/react-scripts/node_modules/svgo/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/react-scripts/node_modules/svgo/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/react-scripts/node_modules/svgo/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/react-scripts/node_modules/svgo/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/react-scripts/node_modules/svgo/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/react-scripts/node_modules/svgo/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/react-timer-hook": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/react-timer-hook/-/react-timer-hook-3.0.5.tgz", @@ -17743,27 +17380,12 @@ } }, "node_modules/react-to-print": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/react-to-print/-/react-to-print-2.15.1.tgz", - "integrity": "sha512-1foogIFbCpzAVxydkhBiDfMiFYhIMphiagDOfcG4X/EcQ+fBPqJ0rby9Wv/emzY1YLkIQy/rEgOrWQT+rBKhjw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/react-to-print/-/react-to-print-3.3.0.tgz", + "integrity": "sha512-7j9GIeNZA9glZlbv9mIbIHDOOx+WYfRMbJzh04NiSKjdaeGkxJuKjJQrtRuNKtt5AvEVVjrLCPokZ9yJX51Fvg==", + "license": "MIT", "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ~19" } }, "node_modules/react-virtuoso": { @@ -17778,15 +17400,6 @@ "react-dom": ">=16 || >=17 || >= 18" } }, - "node_modules/react18-input-otp": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/react18-input-otp/-/react18-input-otp-1.1.3.tgz", - "integrity": "sha512-55dZMVX61In2ngUhA4Fv0NMY4j5RZjxrJaSOAnJGJmkAhxKB6puVHYEmipyy2+W2CPydFF7pv+0NKzPUA03EVg==", - "peerDependencies": { - "react": "16.2.0 - 18", - "react-dom": "16.2.0 - 18" - } - }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -17843,30 +17456,31 @@ } }, "node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" }, "node_modules/redux-thunk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", - "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "license": "MIT", "peerDependencies": { - "redux": "^4" + "redux": "^5.0.0" } }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -17879,14 +17493,6 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, - "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regex-parser": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", @@ -17920,40 +17526,40 @@ } }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "license": "MIT", "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.2.1" }, "engines": { "node": ">=4" } }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz", + "integrity": "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==", + "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "bin": { - "jsesc": "bin/jsesc" - } - }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -18001,9 +17607,10 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.2.0.tgz", + "integrity": "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==", + "license": "MIT" }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", @@ -18011,17 +17618,22 @@ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "license": "MIT", "dependencies": { - "is-core-module": "^2.9.0", + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -18329,12 +17941,10 @@ } }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" }, "node_modules/schema-utils": { "version": "3.1.1", @@ -18378,9 +17988,10 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -18421,11 +18032,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "node_modules/serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -18639,14 +18245,6 @@ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -19006,6 +18604,12 @@ "postcss": "^8.2.15" } }, + "node_modules/styleq": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/styleq/-/styleq-0.2.1.tgz", + "integrity": "sha512-L0TR0NQb+X4/ktDEKmjWyp27gla+LUYi/by5k5SjKXf6/pvZP7wbwEB5J+tqxdFVPgzbsuz+d4RTScO/QZquBw==", + "license": "MIT" + }, "node_modules/stylis": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", @@ -19353,14 +18957,6 @@ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -19448,9 +19044,10 @@ } }, "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/tsutils": { "version": "3.21.0", @@ -19521,19 +19118,6 @@ "is-typedarray": "^1.0.0" } }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, "node_modules/ua-parser-js": { "version": "1.0.35", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", @@ -19567,9 +19151,10 @@ } }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -19578,6 +19163,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -19587,17 +19173,19 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -19644,9 +19232,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "funding": [ { "type": "opencollective", @@ -19655,14 +19243,19 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -19686,11 +19279,12 @@ } }, "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/util": { @@ -20770,15 +20364,6 @@ } }, "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, "@ant-design/colors": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.0.tgz", @@ -20842,39 +20427,93 @@ "throttle-debounce": "^5.0.0" } }, - "@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "@astryxdesign/core": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@astryxdesign/core/-/core-0.1.9.tgz", + "integrity": "sha512-2ZNypZFfujMPxdU8M9Jbe77vwFPP1FYvA0Pk/3L3OLxEIzi98qLbRJjhDEHLbrflANSFVB4l5+qYpJjYtFFXMQ==", "requires": { - "@babel/highlight": "^7.18.6" + "intl-messageformat": "^11.2.9" + }, + "dependencies": { + "@formatjs/fast-memoize": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.1.7.tgz", + "integrity": "sha512-zXfhLpvA6T7+efdt9JLbBwZ00tT7NsBMDVnDu8rpHeNNv8KfRZAMo2gkG0k9lK/Nzc//3kJ9pImsfuJxk3KhUA==" + }, + "@formatjs/icu-messageformat-parser": { + "version": "3.5.15", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-3.5.15.tgz", + "integrity": "sha512-5o4grXKotAB3JqQuisLApHG43g17N+paoRTa92Jiz35Zvfemq0cVf4EDvuxyHAzmsJji7igaEowicLO/VmfJ8Q==", + "requires": { + "@formatjs/icu-skeleton-parser": "2.1.11" + } + }, + "@formatjs/icu-skeleton-parser": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-2.1.11.tgz", + "integrity": "sha512-j8cUmOJzVgkHuS0QiQ6ga76UIoLOFSAMWhs7aZJztH3aAdCOAE6vpC8KVvFB4cU10ON0y2/5oOVmPJ43s2lTwA==" + }, + "intl-messageformat": { + "version": "11.2.12", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-11.2.12.tgz", + "integrity": "sha512-KW70Xxfcvy7vV3qODfvShWkFDPMqKDAa4N+hSyVBWGNtVhTUFYaqlD/l88DaYPKiVcPP4rPQ3qnH7i5K82Mg7g==", + "requires": { + "@formatjs/fast-memoize": "3.1.7", + "@formatjs/icu-messageformat-parser": "3.5.15" + } + } + } + }, + "@astryxdesign/theme-neutral": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@astryxdesign/theme-neutral/-/theme-neutral-0.1.9.tgz", + "integrity": "sha512-HZPJmzg0S+aKuxUBGJ1L9O+bBZzwzWlROey/7VilM8kUzHA4lYrFcIPzRixoiXs/qyR5sSfJE8YG7jsXuAuywA==", + "requires": { + "lucide-react": "^1.18.0" + } + }, + "@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "requires": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" } }, "@babel/compat-data": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==" + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==" }, "@babel/core": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + } } }, "@babel/eslint-parser": { @@ -20888,55 +20527,35 @@ } }, "@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", "requires": { - "@babel/types": "^7.21.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" } }, "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.29.7" } }, "@babel/helper-compilation-targets": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", "requires": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "dependencies": { "lru-cache": { @@ -20955,27 +20574,27 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", - "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", - "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", + "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1" + "@babel/helper-annotate-as-pure": "^7.29.7", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" } }, "@babel/helper-define-polyfill-provider": { @@ -20991,118 +20610,79 @@ "semver": "^6.1.2" } }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "requires": { - "@babel/types": "^7.18.6" - } + "@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==" }, "@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", "requires": { - "@babel/types": "^7.21.0" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" } }, "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", "requires": { - "@babel/types": "^7.18.6" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" } }, "@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" } }, "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.29.7" } }, "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", + "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-wrap-function": "^7.29.7", + "@babel/traverse": "^7.29.7" } }, "@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "requires": { - "@babel/types": "^7.20.2" + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", "requires": { - "@babel/types": "^7.20.0" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" } }, "@babel/helper-split-export-declaration": { @@ -21114,83 +20694,98 @@ } }, "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==" }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==" }, "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==" + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==" }, "@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", + "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" } }, "@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" } }, "@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==" + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "requires": { + "@babel/types": "^7.29.7" + } + }, + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz", + "integrity": "sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz", + "integrity": "sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz", + "integrity": "sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz", + "integrity": "sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz", + "integrity": "sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7" } }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz", + "integrity": "sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==", "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" } }, "@babel/plugin-proposal-class-properties": { @@ -21202,16 +20797,6 @@ "@babel/helper-plugin-utils": "^7.18.6" } }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, "@babel/plugin-proposal-decorators": { "version": "7.17.9", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz", @@ -21225,42 +20810,6 @@ "charcodes": "^0.2.0" } }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", @@ -21279,27 +20828,6 @@ "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, "@babel/plugin-proposal-optional-chaining": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", @@ -21320,24 +20848,9 @@ } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==" }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -21363,14 +20876,6 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, "@babel/plugin-syntax-decorators": { "version": "7.17.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", @@ -21379,22 +20884,6 @@ "@babel/helper-plugin-utils": "^7.16.7" } }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, "@babel/plugin-syntax-flow": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", @@ -21404,11 +20893,19 @@ } }, "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz", + "integrity": "sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==", "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-syntax-import-meta": { @@ -21428,11 +20925,11 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -21507,97 +21004,165 @@ "@babel/helper-plugin-utils": "^7.20.2" } }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - } - }, - "@babel/plugin-transform-block-scoped-functions": { + "@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "requires": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "@babel/plugin-transform-arrow-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", + "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz", + "integrity": "sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz", + "integrity": "sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==", + "requires": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", + "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", + "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-class-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz", + "integrity": "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz", + "integrity": "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", + "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", + "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/template": "^7.29.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", + "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", + "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", + "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz", + "integrity": "sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-explicit-resource-management": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz", + "integrity": "sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", + "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz", + "integrity": "sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-flow-strip-types": { @@ -21610,118 +21175,198 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", - "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", + "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" } }, "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", + "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz", + "integrity": "sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", + "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz", + "integrity": "sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz", + "integrity": "sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", + "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", "requires": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", "requires": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz", + "integrity": "sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==", "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", + "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", + "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz", + "integrity": "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz", + "integrity": "sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz", + "integrity": "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==", + "requires": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/traverse": "^7.29.7" } }, "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", + "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz", + "integrity": "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz", + "integrity": "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" } }, "@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", + "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz", + "integrity": "sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz", + "integrity": "sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz", + "integrity": "sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-react-constant-elements": { @@ -21733,57 +21378,65 @@ } }, "@babel/plugin-transform-react-display-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", - "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz", + "integrity": "sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", - "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz", + "integrity": "sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.19.0" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/types": "^7.29.7" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", - "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz", + "integrity": "sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==", "requires": { - "@babel/plugin-transform-react-jsx": "^7.18.6" + "@babel/plugin-transform-react-jsx": "^7.29.7" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", - "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz", + "integrity": "sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz", + "integrity": "sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-regexp-modifiers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz", + "integrity": "sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz", + "integrity": "sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-runtime": { @@ -21800,44 +21453,44 @@ } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", + "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz", + "integrity": "sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", + "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", + "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", + "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-typescript": { @@ -21852,146 +21505,180 @@ } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz", + "integrity": "sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz", + "integrity": "sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", + "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz", + "integrity": "sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" } }, "@babel/preset-env": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", - "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.7.tgz", + "integrity": "sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==", "requires": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.20.7", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.20.7", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.0", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.2", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.20.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.4", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@babel/compat-data": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.29.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.29.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.29.7", + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.29.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.29.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.29.7", + "@babel/plugin-syntax-import-attributes": "^7.29.7", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.29.7", + "@babel/plugin-transform-async-generator-functions": "^7.29.7", + "@babel/plugin-transform-async-to-generator": "^7.29.7", + "@babel/plugin-transform-block-scoped-functions": "^7.29.7", + "@babel/plugin-transform-block-scoping": "^7.29.7", + "@babel/plugin-transform-class-properties": "^7.29.7", + "@babel/plugin-transform-class-static-block": "^7.29.7", + "@babel/plugin-transform-classes": "^7.29.7", + "@babel/plugin-transform-computed-properties": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-dotall-regex": "^7.29.7", + "@babel/plugin-transform-duplicate-keys": "^7.29.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-dynamic-import": "^7.29.7", + "@babel/plugin-transform-explicit-resource-management": "^7.29.7", + "@babel/plugin-transform-exponentiation-operator": "^7.29.7", + "@babel/plugin-transform-export-namespace-from": "^7.29.7", + "@babel/plugin-transform-for-of": "^7.29.7", + "@babel/plugin-transform-function-name": "^7.29.7", + "@babel/plugin-transform-json-strings": "^7.29.7", + "@babel/plugin-transform-literals": "^7.29.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.29.7", + "@babel/plugin-transform-member-expression-literals": "^7.29.7", + "@babel/plugin-transform-modules-amd": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-modules-systemjs": "^7.29.7", + "@babel/plugin-transform-modules-umd": "^7.29.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-new-target": "^7.29.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.29.7", + "@babel/plugin-transform-numeric-separator": "^7.29.7", + "@babel/plugin-transform-object-rest-spread": "^7.29.7", + "@babel/plugin-transform-object-super": "^7.29.7", + "@babel/plugin-transform-optional-catch-binding": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/plugin-transform-private-methods": "^7.29.7", + "@babel/plugin-transform-private-property-in-object": "^7.29.7", + "@babel/plugin-transform-property-literals": "^7.29.7", + "@babel/plugin-transform-regenerator": "^7.29.7", + "@babel/plugin-transform-regexp-modifiers": "^7.29.7", + "@babel/plugin-transform-reserved-words": "^7.29.7", + "@babel/plugin-transform-shorthand-properties": "^7.29.7", + "@babel/plugin-transform-spread": "^7.29.7", + "@babel/plugin-transform-sticky-regex": "^7.29.7", + "@babel/plugin-transform-template-literals": "^7.29.7", + "@babel/plugin-transform-typeof-symbol": "^7.29.7", + "@babel/plugin-transform-unicode-escapes": "^7.29.7", + "@babel/plugin-transform-unicode-property-regex": "^7.29.7", + "@babel/plugin-transform-unicode-regex": "^7.29.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.29.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", + "semver": "^6.3.1" }, "dependencies": { - "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "@babel/helper-define-polyfill-provider": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "requires": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.6.8" } } } }, "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" } }, "@babel/preset-react": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", - "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.29.7.tgz", + "integrity": "sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-react-display-name": "^7.18.6", - "@babel/plugin-transform-react-jsx": "^7.18.6", - "@babel/plugin-transform-react-jsx-development": "^7.18.6", - "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-transform-react-display-name": "^7.29.7", + "@babel/plugin-transform-react-jsx": "^7.29.7", + "@babel/plugin-transform-react-jsx-development": "^7.29.7", + "@babel/plugin-transform-react-pure-annotations": "^7.29.7" } }, "@babel/preset-typescript": { @@ -22006,61 +21693,42 @@ "@babel/plugin-transform-typescript": "^7.21.3" } }, - "@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" - }, "@babel/runtime": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz", - "integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==", - "requires": { - "regenerator-runtime": "^0.14.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - } - } + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==" }, "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" } }, "@babel/traverse": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", - "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", "requires": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.4", - "@babel/types": "^7.21.4", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", + "debug": "^4.3.1" } }, "@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" } }, "@bcoe/v8-coverage": { @@ -22185,14 +21853,12 @@ "@csstools/postcss-unset-value": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", - "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", - "requires": {} + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==" }, "@csstools/selector-specificity": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", - "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "requires": {} + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==" }, "@ctrl/tinycolor": { "version": "3.6.1", @@ -22202,122 +21868,7 @@ "@custom-react-hooks/use-network": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@custom-react-hooks/use-network/-/use-network-1.0.1.tgz", - "integrity": "sha512-WbFVxsC18hjJiVIONAExVORlJlrOeYwzKsiYUCzrt5zCP0u9eLUPJuftF3DvEpoaQdjufazllWCPWKXT+dTY2g==", - "requires": {} - }, - "@emotion/babel-plugin": { - "version": "11.10.6", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.6.tgz", - "integrity": "sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.0", - "@emotion/memoize": "^0.8.0", - "@emotion/serialize": "^1.1.1", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.1.3" - } - }, - "@emotion/cache": { - "version": "11.10.7", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.7.tgz", - "integrity": "sha512-VLl1/2D6LOjH57Y8Vem1RoZ9haWF4jesHDGiHtKozDQuBIkJm2gimVo0I02sWCuzZtVACeixTVB4jeE8qvCBoQ==", - "requires": { - "@emotion/memoize": "^0.8.0", - "@emotion/sheet": "^1.2.1", - "@emotion/utils": "^1.2.0", - "@emotion/weak-memoize": "^0.3.0", - "stylis": "4.1.3" - } - }, - "@emotion/hash": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", - "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" - }, - "@emotion/is-prop-valid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", - "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", - "requires": { - "@emotion/memoize": "^0.8.0" - } - }, - "@emotion/memoize": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", - "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" - }, - "@emotion/react": { - "version": "11.10.6", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.6.tgz", - "integrity": "sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw==", - "requires": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.10.6", - "@emotion/cache": "^11.10.5", - "@emotion/serialize": "^1.1.1", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@emotion/utils": "^1.2.0", - "@emotion/weak-memoize": "^0.3.0", - "hoist-non-react-statics": "^3.3.1" - } - }, - "@emotion/serialize": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", - "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", - "requires": { - "@emotion/hash": "^0.9.0", - "@emotion/memoize": "^0.8.0", - "@emotion/unitless": "^0.8.0", - "@emotion/utils": "^1.2.0", - "csstype": "^3.0.2" - } - }, - "@emotion/sheet": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", - "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" - }, - "@emotion/styled": { - "version": "11.10.6", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.6.tgz", - "integrity": "sha512-OXtBzOmDSJo5Q0AFemHCfl+bUueT8BIcPSxu0EGTpGk6DmI5dnhSzQANm1e1ze0YZL7TDyAyy6s/b/zmGOS3Og==", - "requires": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.10.6", - "@emotion/is-prop-valid": "^1.2.0", - "@emotion/serialize": "^1.1.1", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@emotion/utils": "^1.2.0" - } - }, - "@emotion/unitless": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", - "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" - }, - "@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", - "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", - "requires": {} - }, - "@emotion/utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", - "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==" - }, - "@emotion/weak-memoize": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", - "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" + "integrity": "sha512-WbFVxsC18hjJiVIONAExVORlJlrOeYwzKsiYUCzrt5zCP0u9eLUPJuftF3DvEpoaQdjufazllWCPWKXT+dTY2g==" }, "@eslint-community/eslint-utils": { "version": "4.4.0", @@ -22388,112 +21939,62 @@ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==" }, - "@floating-ui/core": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.1.tgz", - "integrity": "sha512-QgcKYwzcc8vvZ4n/5uklchy8KVdjJwcOeI+HnnTNclJjs2nYsy23DOCf+sSV1kBwD9yDAoVKCkv/gEPzgQU3Pw==", - "requires": { - "@floating-ui/utils": "^0.1.3" - } - }, - "@floating-ui/dom": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", - "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", - "requires": { - "@floating-ui/core": "^1.4.2", - "@floating-ui/utils": "^0.1.3" - } - }, - "@floating-ui/react-dom": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz", - "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==", - "requires": { - "@floating-ui/dom": "^1.5.1" - } - }, - "@floating-ui/utils": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", - "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" - }, "@formatjs/ecma402-abstract": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.14.3.tgz", - "integrity": "sha512-SlsbRC/RX+/zg4AApWIFNDdkLtFbkq3LNoZWXZCE/nHVKqoIJyaoQyge/I0Y38vLxowUn9KTtXgusLD91+orbg==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz", + "integrity": "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==", "requires": { - "@formatjs/intl-localematcher": "0.2.32", - "tslib": "^2.4.0" + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/intl-localematcher": "0.6.2", + "decimal.js": "^10.4.3", + "tslib": "^2.8.0" } }, "@formatjs/fast-memoize": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.0.1.tgz", - "integrity": "sha512-M2GgV+qJn5WJQAYewz7q2Cdl6fobQa69S1AzSM2y0P68ZDbK5cWrJIcPCO395Of1ksftGZoOt4LYCO/j9BKBSA==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz", + "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==", "requires": { - "tslib": "^2.4.0" + "tslib": "^2.8.0" } }, "@formatjs/icu-messageformat-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.3.1.tgz", - "integrity": "sha512-knF2AkAKN4Upv4oIiKY4Wd/dLH68TNMPgV/tJMu/T6FP9aQwbv8fpj7U3lkyniPaNVxvia56Gxax8MKOjtxLSQ==", + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz", + "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==", "requires": { - "@formatjs/ecma402-abstract": "1.14.3", - "@formatjs/icu-skeleton-parser": "1.3.18", - "tslib": "^2.4.0" + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/icu-skeleton-parser": "1.8.16", + "tslib": "^2.8.0" } }, "@formatjs/icu-skeleton-parser": { - "version": "1.3.18", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.18.tgz", - "integrity": "sha512-ND1ZkZfmLPcHjAH1sVpkpQxA+QYfOX3py3SjKWMUVGDow18gZ0WPqz3F+pJLYQMpS2LnnQ5zYR2jPVYTbRwMpg==", + "version": "1.8.16", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz", + "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==", "requires": { - "@formatjs/ecma402-abstract": "1.14.3", - "tslib": "^2.4.0" + "@formatjs/ecma402-abstract": "2.3.6", + "tslib": "^2.8.0" } }, "@formatjs/intl": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.7.1.tgz", - "integrity": "sha512-se6vxidsN3PCmzqTsDd3YDT4IX9ZySPy39LYhF7x2ssNvlGMOuW3umkrIhKkXB7ZskqsJGY53LVCdiHsSwhGng==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-3.1.8.tgz", + "integrity": "sha512-LWXgwI5zTMatvR8w8kCNh/priDTOF/ZssokMBHJ7ZWXFoYLVOYo0EJERD9Eajv+xsfQO1QkuAt77KWQ1OI4mOQ==", "requires": { - "@formatjs/ecma402-abstract": "1.14.3", - "@formatjs/fast-memoize": "2.0.1", - "@formatjs/icu-messageformat-parser": "2.3.1", - "@formatjs/intl-displaynames": "6.3.1", - "@formatjs/intl-listformat": "7.2.1", - "intl-messageformat": "10.3.4", - "tslib": "^2.4.0" - } - }, - "@formatjs/intl-displaynames": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.3.1.tgz", - "integrity": "sha512-TlxguMDUbnFrJ4NA8fSyqXC62M7czvlRJ5mrJgtB91JVA+QPjjNdcRm1qPIC/DcU/pGUDcEzThn/x5A+jp15gg==", - "requires": { - "@formatjs/ecma402-abstract": "1.14.3", - "@formatjs/intl-localematcher": "0.2.32", - "tslib": "^2.4.0" - } - }, - "@formatjs/intl-listformat": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.2.1.tgz", - "integrity": "sha512-fRJFWLrGa7d25I4JSxNjKX29oXGcIXx8fJjgURnvs2C3ijS4gurUgFrUwLbv/2KfPfyJ5g567pz2INelNJZBdw==", - "requires": { - "@formatjs/ecma402-abstract": "1.14.3", - "@formatjs/intl-localematcher": "0.2.32", - "tslib": "^2.4.0" + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/icu-messageformat-parser": "2.11.4", + "intl-messageformat": "10.7.18", + "tslib": "^2.8.0" } }, "@formatjs/intl-localematcher": { - "version": "0.2.32", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.32.tgz", - "integrity": "sha512-k/MEBstff4sttohyEpXxCmC3MqbUn9VvHGlZ8fauLzkbwXmVrEeyzS+4uhrvAk9DWU9/7otYWxyDox4nT/KVLQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz", + "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==", "requires": { - "tslib": "^2.4.0" + "tslib": "^2.8.0" } }, "@googlemaps/js-api-loader": { @@ -23028,12 +22529,21 @@ } }, "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, "@jridgewell/resolve-uri": { @@ -23041,11 +22551,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" }, - "@jridgewell/set-array": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.0.tgz", - "integrity": "sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==" - }, "@jridgewell/source-map": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", @@ -23053,32 +22558,20 @@ "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==" }, "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@leichtgewicht/ip-codec": { @@ -23086,184 +22579,6 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, - "@mui/base": { - "version": "5.0.0-alpha.126", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.126.tgz", - "integrity": "sha512-I5e52A0Muv9Gaoy2GcqbYrQ6dpRyC2UXeA00brT3HuW0nF0E4fiTOIqdNTN+N5gyaYK0z3O6jtLt/97CCrIxVA==", - "requires": { - "@babel/runtime": "^7.21.0", - "@emotion/is-prop-valid": "^1.2.0", - "@mui/types": "^7.2.4", - "@mui/utils": "^5.12.0", - "@popperjs/core": "^2.11.7", - "clsx": "^1.2.1", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" - }, - "dependencies": { - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - } - } - }, - "@mui/core-downloads-tracker": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.12.1.tgz", - "integrity": "sha512-rNiQYHtkXljcvCEnhWrJzie1ifff5O98j3uW7ZlchFgD8HWxEcz/QoxZvo+sCKC9aayAgxi9RsVn2VjCyp5CrA==" - }, - "@mui/icons-material": { - "version": "5.14.19", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.14.19.tgz", - "integrity": "sha512-yjP8nluXxZGe3Y7pS+yxBV+hWZSsSBampCxkZwaw+1l+feL+rfP74vbEFbMrX/Kil9I/Y1tWfy5bs/eNvwNpWw==", - "requires": { - "@babel/runtime": "^7.23.4" - } - }, - "@mui/lab": { - "version": "5.0.0-alpha.127", - "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.127.tgz", - "integrity": "sha512-D+Q7MV06rn31g8ZgNcLxgsmh94PJYfyqXAcM3BokgMJ4u89QfwneSlaoHnQ9qitvWFyTz7Ic4HVMNT08FkRG7Q==", - "requires": { - "@babel/runtime": "^7.21.0", - "@mui/base": "5.0.0-alpha.126", - "@mui/system": "^5.12.1", - "@mui/types": "^7.2.4", - "@mui/utils": "^5.12.0", - "clsx": "^1.2.1", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" - }, - "dependencies": { - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - } - } - }, - "@mui/material": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.12.1.tgz", - "integrity": "sha512-m+G9J6+FzIMhRqKV2y30yONH97wX107z9EWgiNCeS1/+y1CnytFZNG1ENdOuaJo1NimCRnmB/iXPvoOaSo6dOg==", - "requires": { - "@babel/runtime": "^7.21.0", - "@mui/base": "5.0.0-alpha.126", - "@mui/core-downloads-tracker": "^5.12.1", - "@mui/system": "^5.12.1", - "@mui/types": "^7.2.4", - "@mui/utils": "^5.12.0", - "@types/react-transition-group": "^4.4.5", - "clsx": "^1.2.1", - "csstype": "^3.1.2", - "prop-types": "^15.8.1", - "react-is": "^18.2.0", - "react-transition-group": "^4.4.5" - }, - "dependencies": { - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - } - } - }, - "@mui/private-theming": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.12.0.tgz", - "integrity": "sha512-w5dwMen1CUm1puAtubqxY9BIzrBxbOThsg2iWMvRJmWyJAPdf3Z583fPXpqeA2lhTW79uH2jajk5Ka4FuGlTPg==", - "requires": { - "@babel/runtime": "^7.21.0", - "@mui/utils": "^5.12.0", - "prop-types": "^15.8.1" - } - }, - "@mui/styled-engine": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.12.0.tgz", - "integrity": "sha512-frh8L7CRnvD0RDmIqEv6jFeKQUIXqW90BaZ6OrxJ2j4kIsiVLu29Gss4SbBvvrWwwatR72sBmC3w1aG4fjp9mQ==", - "requires": { - "@babel/runtime": "^7.21.0", - "@emotion/cache": "^11.10.7", - "csstype": "^3.1.2", - "prop-types": "^15.8.1" - } - }, - "@mui/system": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.12.1.tgz", - "integrity": "sha512-Po+sicdV3bbRYXdU29XZaHPZrW7HUYUqU1qCu77GCCEMbahC756YpeyefdIYuPMUg0OdO3gKIUfDISBrkjJL+w==", - "requires": { - "@babel/runtime": "^7.21.0", - "@mui/private-theming": "^5.12.0", - "@mui/styled-engine": "^5.12.0", - "@mui/types": "^7.2.4", - "@mui/utils": "^5.12.0", - "clsx": "^1.2.1", - "csstype": "^3.1.2", - "prop-types": "^15.8.1" - } - }, - "@mui/types": { - "version": "7.2.10", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.10.tgz", - "integrity": "sha512-wX1vbDC+lzF7FlhT6A3ffRZgEoKWPF8VqRoTu4lZwouFX2t90KyCMsgepMw5DxLak1BSp/KP86CmtZttikb/gQ==", - "requires": {} - }, - "@mui/utils": { - "version": "5.14.19", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.19.tgz", - "integrity": "sha512-qAHvTXzk7basbyqPvhgWqN6JbmI2wLB/mf97GkSlz5c76MiKYV6Ffjvw9BjKZQ1YRb8rDX9kgdjRezOcoB91oQ==", - "requires": { - "@babel/runtime": "^7.23.4", - "@types/prop-types": "^15.7.11", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" - }, - "dependencies": { - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - } - } - }, - "@mui/x-date-pickers": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-6.18.2.tgz", - "integrity": "sha512-HJq4uoFQSu5isa/mesWw2BKh8KBRYUQb+KaSlVlWfJNgP3YhPvWZ6yqCNYyxOAiPMxb0n3nBjS9ErO27OHjFMA==", - "requires": { - "@babel/runtime": "^7.23.2", - "@mui/base": "^5.0.0-beta.22", - "@mui/utils": "^5.14.16", - "@types/react-transition-group": "^4.4.8", - "clsx": "^2.0.0", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" - }, - "dependencies": { - "@mui/base": { - "version": "5.0.0-beta.25", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.25.tgz", - "integrity": "sha512-Iiv+IcappRRv6IBlknIVmLkXxfp51NEX1+l9f+dIbBuPU4PaRULegr1lCeHKsC45KU5ruxM5xMg4R/de03aJQg==", - "requires": { - "@babel/runtime": "^7.23.4", - "@floating-ui/react-dom": "^2.0.4", - "@mui/types": "^7.2.10", - "@mui/utils": "^5.14.19", - "@popperjs/core": "^2.11.8", - "clsx": "^2.0.0", - "prop-types": "^15.8.1" - } - }, - "clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==" - } - } - }, "@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -23356,11 +22671,6 @@ } } }, - "@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" - }, "@rc-component/color-picker": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.4.1.tgz", @@ -23473,20 +22783,28 @@ "integrity": "sha512-tieX9Va5w1yP88vMgfH1pHTacDQ9TgDTjox3tLlisKDXRQWdjw+QeVVghhf5XqqIxXHgPdcGwBvKY6UP+SIvLw==" }, "@react-leaflet/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-2.1.0.tgz", - "integrity": "sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==", - "requires": {} + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-3.0.0.tgz", + "integrity": "sha512-3EWmekh4Nz+pGcr+xjf0KNyYfC3U2JjnkWsh0zcqaexYqmmB5ZhH37kz41JXGmKzpaMZCnPofBBm64i+YrEvGQ==" }, "@reduxjs/toolkit": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.5.tgz", - "integrity": "sha512-Rt97jHmfTeaxL4swLRNPD/zV4OxTes4la07Xc4hetpUW/vc75t5m1ANyxG6ymnEQ2FsLQsoMlYB2vV1sO3m8tQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.12.0.tgz", + "integrity": "sha512-KiT+RzZbp6mQET+Mg+h2c97+9j1sNflUxQkIHI7Yuzf6Peu+OYpmkn6nbHWmLLWj+1ZODUJFwGZ7gx3L9R9EOw==", "requires": { - "immer": "^9.0.21", - "redux": "^4.2.1", - "redux-thunk": "^2.4.2", - "reselect": "^4.1.8" + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "dependencies": { + "immer": { + "version": "11.1.15", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.15.tgz", + "integrity": "sha512-VrNANlmnWQnh5COXIIOQXM9oOJw7naGKlBT74ZOOR6lpVXc3gFEu9FJLDFcpCJ2j+NWr8TIwtWD//T6ZX6TKiQ==" + } } }, "@remix-run/router": { @@ -23575,6 +22893,26 @@ "@sinonjs/commons": "^1.7.0" } }, + "@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==" + }, + "@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==" + }, + "@stylexjs/stylex": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@stylexjs/stylex/-/stylex-0.19.0.tgz", + "integrity": "sha512-CnUFp7YMaDLDeemsWOfJgoC/gKM5P/yBNMcpJaE6ChJmXr7s0DJwSeGTTlHJcqqwN9OW1qGtmARWLFhGZN1pTA==", + "requires": { + "css-mediaquery": "^0.1.2", + "invariant": "^2.2.4", + "styleq": "0.2.1" + } + }, "@surma/rollup-plugin-off-main-thread": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", @@ -23589,50 +22927,42 @@ "@svgr/babel-plugin-add-jsx-attribute": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-7.0.0.tgz", - "integrity": "sha512-khWbXesWIP9v8HuKCl2NU2HNAyqpSQ/vkIl36Nbn4HIwEYSRWL0H7Gs6idJdha2DkpFDWlsqMELvoCE8lfFY6Q==", - "requires": {} + "integrity": "sha512-khWbXesWIP9v8HuKCl2NU2HNAyqpSQ/vkIl36Nbn4HIwEYSRWL0H7Gs6idJdha2DkpFDWlsqMELvoCE8lfFY6Q==" }, "@svgr/babel-plugin-remove-jsx-attribute": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-7.0.0.tgz", - "integrity": "sha512-iiZaIvb3H/c7d3TH2HBeK91uI2rMhZNwnsIrvd7ZwGLkFw6mmunOCoVnjdYua662MqGFxlN9xTq4fv9hgR4VXQ==", - "requires": {} + "integrity": "sha512-iiZaIvb3H/c7d3TH2HBeK91uI2rMhZNwnsIrvd7ZwGLkFw6mmunOCoVnjdYua662MqGFxlN9xTq4fv9hgR4VXQ==" }, "@svgr/babel-plugin-remove-jsx-empty-expression": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-7.0.0.tgz", - "integrity": "sha512-sQQmyo+qegBx8DfFc04PFmIO1FP1MHI1/QEpzcIcclo5OAISsOJPW76ZIs0bDyO/DBSJEa/tDa1W26pVtt0FRw==", - "requires": {} + "integrity": "sha512-sQQmyo+qegBx8DfFc04PFmIO1FP1MHI1/QEpzcIcclo5OAISsOJPW76ZIs0bDyO/DBSJEa/tDa1W26pVtt0FRw==" }, "@svgr/babel-plugin-replace-jsx-attribute-value": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-7.0.0.tgz", - "integrity": "sha512-i6MaAqIZXDOJeikJuzocByBf8zO+meLwfQ/qMHIjCcvpnfvWf82PFvredEZElErB5glQFJa2KVKk8N2xV6tRRA==", - "requires": {} + "integrity": "sha512-i6MaAqIZXDOJeikJuzocByBf8zO+meLwfQ/qMHIjCcvpnfvWf82PFvredEZElErB5glQFJa2KVKk8N2xV6tRRA==" }, "@svgr/babel-plugin-svg-dynamic-title": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-7.0.0.tgz", - "integrity": "sha512-BoVSh6ge3SLLpKC0pmmN9DFlqgFy4NxNgdZNLPNJWBUU7TQpDWeBuyVuDW88iXydb5Cv0ReC+ffa5h3VrKfk1w==", - "requires": {} + "integrity": "sha512-BoVSh6ge3SLLpKC0pmmN9DFlqgFy4NxNgdZNLPNJWBUU7TQpDWeBuyVuDW88iXydb5Cv0ReC+ffa5h3VrKfk1w==" }, "@svgr/babel-plugin-svg-em-dimensions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-7.0.0.tgz", - "integrity": "sha512-tNDcBa+hYn0gO+GkP/AuNKdVtMufVhU9fdzu+vUQsR18RIJ9RWe7h/pSBY338RO08wArntwbDk5WhQBmhf2PaA==", - "requires": {} + "integrity": "sha512-tNDcBa+hYn0gO+GkP/AuNKdVtMufVhU9fdzu+vUQsR18RIJ9RWe7h/pSBY338RO08wArntwbDk5WhQBmhf2PaA==" }, "@svgr/babel-plugin-transform-react-native-svg": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-7.0.0.tgz", - "integrity": "sha512-qw54u8ljCJYL2KtBOjI5z7Nzg8LnSvQOP5hPKj77H4VQL4+HdKbAT5pnkkZLmHKYwzsIHSYKXxHouD8zZamCFQ==", - "requires": {} + "integrity": "sha512-qw54u8ljCJYL2KtBOjI5z7Nzg8LnSvQOP5hPKj77H4VQL4+HdKbAT5pnkkZLmHKYwzsIHSYKXxHouD8zZamCFQ==" }, "@svgr/babel-plugin-transform-svg-component": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-7.0.0.tgz", - "integrity": "sha512-CcFECkDj98daOg9jE3Bh3uyD9kzevCAnZ+UtzG6+BQG/jOQ2OA3jHnX6iG4G1MCJkUQFnUvEv33NvQfqrb/F3A==", - "requires": {} + "integrity": "sha512-CcFECkDj98daOg9jE3Bh3uyD9kzevCAnZ+UtzG6+BQG/jOQ2OA3jHnX6iG4G1MCJkUQFnUvEv33NvQfqrb/F3A==" }, "@svgr/babel-preset": { "version": "7.0.0", @@ -24113,9 +23443,9 @@ "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==" }, "@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==" }, "@types/q": { "version": "1.5.5", @@ -24142,14 +23472,6 @@ "csstype": "^3.0.2" } }, - "@types/react-transition-group": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.9.tgz", - "integrity": "sha512-ZVNmWumUIh5NhH8aMD9CR2hdW0fNuYInlocZHaZ+dgk/1K49j1w/HoAuK1ki+pgscQrOFRTlXeoURtuzEkV3dg==", - "requires": { - "@types/react": "*" - } - }, "@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -24204,9 +23526,9 @@ "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" }, "@types/use-sync-external-store": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", - "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==" }, "@types/ws": { "version": "8.5.3", @@ -24534,8 +23856,7 @@ "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "requires": {} + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" }, "acorn-node": { "version": "1.8.2", @@ -24619,8 +23940,7 @@ "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "requires": {} + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" }, "ansi-escapes": { "version": "4.3.2", @@ -25048,8 +24368,7 @@ "babel-plugin-named-asset-import": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "requires": {} + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==" }, "babel-plugin-polyfill-corejs2": { "version": "0.3.3", @@ -25112,9 +24431,9 @@ } }, "babel-preset-react-app": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", - "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.1.0.tgz", + "integrity": "sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==", "requires": { "@babel/core": "^7.16.0", "@babel/plugin-proposal-class-properties": "^7.16.0", @@ -25123,6 +24442,7 @@ "@babel/plugin-proposal-numeric-separator": "^7.16.0", "@babel/plugin-proposal-optional-chaining": "^7.16.0", "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", "@babel/plugin-transform-flow-strip-types": "^7.16.0", "@babel/plugin-transform-react-display-name": "^7.16.0", "@babel/plugin-transform-runtime": "^7.16.4", @@ -25132,6 +24452,19 @@ "@babel/runtime": "^7.16.3", "babel-plugin-macros": "^3.1.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + }, + "dependencies": { + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + } } }, "balanced-match": { @@ -25144,6 +24477,11 @@ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, + "baseline-browser-mapping": { + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.7.tgz", + "integrity": "sha512-APw5YuIQAg6L9w4sHDI6j26DGFJI6RpYOhnkMPdC9lWbkKvsyPHzDsve1yd73lk21yz7Y09Kci8B2Pp9FonzWA==" + }, "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -25347,14 +24685,15 @@ } }, "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.28.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz", + "integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==", "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "baseline-browser-mapping": "^2.10.44", + "caniuse-lite": "^1.0.30001806", + "electron-to-chromium": "^1.5.393", + "node-releases": "^2.0.51", + "update-browserslist-db": "^1.2.3" } }, "bser": { @@ -25449,9 +24788,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001480", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz", - "integrity": "sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ==" + "version": "1.0.30001806", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", + "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==" }, "case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -25763,11 +25102,11 @@ "integrity": "sha512-1uLykR+iOfYja+6Jn/57743gc9n73EWiOnSJJ4ba3B4fOEYDBv25MagmEZBxTp5cWq4b/KPx/l77zgsp28ju4w==" }, "core-js-compat": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", - "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", "requires": { - "browserslist": "^4.21.4" + "browserslist": "^4.28.1" } }, "core-js-pure": { @@ -25887,8 +25226,7 @@ "css-declaration-sorter": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", - "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", - "requires": {} + "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==" }, "css-has-pseudo": { "version": "3.0.4", @@ -25923,6 +25261,11 @@ } } }, + "css-mediaquery": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", + "integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==" + }, "css-minimizer-webpack-plugin": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", @@ -25981,8 +25324,7 @@ "css-prefers-color-scheme": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "requires": {} + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==" }, "css-select": { "version": "4.3.0", @@ -26086,8 +25428,7 @@ "cssnano-utils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "requires": {} + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==" }, "csso": { "version": "4.2.0", @@ -26118,9 +25459,9 @@ } }, "csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==" }, "damerau-levenshtein": { "version": "1.0.8", @@ -26161,7 +25502,6 @@ "version": "2.30.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "peer": true, "requires": { "@babel/runtime": "^7.21.0" } @@ -26172,17 +25512,17 @@ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } }, "decimal.js": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", - "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==" + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==" }, "dedent": { "version": "0.7.0", @@ -26373,6 +25713,16 @@ "@react-dnd/asap": "^5.0.1", "@react-dnd/invariant": "^4.0.1", "redux": "^4.2.0" + }, + "dependencies": { + "redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "requires": { + "@babel/runtime": "^7.9.2" + } + } } }, "dns-equal": { @@ -26404,15 +25754,6 @@ "utila": "~0.4" } }, - "dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, "dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -26507,9 +25848,9 @@ } }, "electron-to-chromium": { - "version": "1.4.283", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz", - "integrity": "sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==" + "version": "1.5.398", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.398.tgz", + "integrity": "sha512-AsvhAxopJGh6museTDMIjn6JpDYOfgu4RLlygomt87MUwBUqTfd/1EiPtx10/LZE8xpTvkP2E9Gafq7lkLtodQ==" }, "elliptic": { "version": "6.5.4", @@ -26634,6 +25975,11 @@ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, "es-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -26681,9 +26027,9 @@ } }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" }, "escape-html": { "version": "1.0.3", @@ -26932,8 +26278,7 @@ "version": "8.8.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", - "dev": true, - "requires": {} + "dev": true }, "eslint-config-react-app": { "version": "7.0.1", @@ -27128,8 +26473,7 @@ "eslint-plugin-react-hooks": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "requires": {} + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==" }, "eslint-plugin-testing-library": { "version": "5.7.2", @@ -27569,11 +26913,6 @@ "pkg-dir": "^4.1.0" } }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -27752,29 +27091,13 @@ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" }, "framer-motion": { - "version": "10.12.4", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.12.4.tgz", - "integrity": "sha512-9gLtv8T6dui0tujHROR+VM3kdJyKiFCFiD94IQE+0OuX6LaIyXtdVpviokVdrHSb1giWhmmX4yzoucALMx6mtw==", + "version": "12.43.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.43.0.tgz", + "integrity": "sha512-1eaL3RvR/kAlbG7UYcpMptEyzPoENO0c6w7ZnB3/hh2vSAz/6uGAFn6fdoqTBguNstf3MsFhJHsD/0DHiclG+g==", "requires": { - "@emotion/is-prop-valid": "^0.8.2", + "motion-dom": "^12.43.0", + "motion-utils": "^12.39.0", "tslib": "^2.4.0" - }, - "dependencies": { - "@emotion/is-prop-valid": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "optional": true, - "requires": { - "@emotion/memoize": "0.7.4" - } - }, - "@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "optional": true - } } }, "fresh": { @@ -27809,9 +27132,9 @@ "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "function.prototype.name": { "version": "1.1.5", @@ -27932,11 +27255,6 @@ } } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -27953,8 +27271,7 @@ "goober": { "version": "2.1.13", "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.13.tgz", - "integrity": "sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ==", - "requires": {} + "integrity": "sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ==" }, "gopd": { "version": "1.0.1", @@ -28067,6 +27384,14 @@ "minimalistic-assert": "^1.0.1" } }, + "hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "requires": { + "function-bind": "^1.1.2" + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -28247,8 +27572,7 @@ "icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "requires": {} + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==" }, "idb": { "version": "7.0.1", @@ -28339,14 +27663,14 @@ } }, "intl-messageformat": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.3.4.tgz", - "integrity": "sha512-/FxUIrlbPtuykSNX85CB5sp2FjLVeTmdD7TfRkVFPft2n4FgcSlAcilFytYiFAEmPHc+0PvpLCIPXeaGFzIvOg==", + "version": "10.7.18", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.18.tgz", + "integrity": "sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==", "requires": { - "@formatjs/ecma402-abstract": "1.14.3", - "@formatjs/fast-memoize": "2.0.1", - "@formatjs/icu-messageformat-parser": "2.3.1", - "tslib": "^2.4.0" + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/icu-messageformat-parser": "2.11.4", + "tslib": "^2.8.0" } }, "invariant": { @@ -28417,11 +27741,11 @@ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" }, "is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", "requires": { - "has": "^1.0.3" + "hasown": "^2.0.3" } }, "is-date-object": { @@ -29366,8 +28690,7 @@ "jest-pnp-resolver": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "requires": {} + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" }, "jest-regex-util": { "version": "27.5.1", @@ -30218,9 +29541,9 @@ } }, "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==" }, "json-parse-even-better-errors": { "version": "2.3.1", @@ -30464,6 +29787,11 @@ "yallist": "^4.0.0" } }, + "lucide-react": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.28.0.tgz", + "integrity": "sha512-fARAFJULsGuDDydjp6+6blekG/sBIM29TerzLjc9bQUKAcEfrSc4ZQKb25KRz4OMKd87cZTb5dgq0w/T6KufVg==" + }, "magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -30660,19 +29988,24 @@ "minimist": "^1.2.6" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mui-daterange-picker": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mui-daterange-picker/-/mui-daterange-picker-1.0.5.tgz", - "integrity": "sha512-+7Mp9DXQw6iLGotwp1rKfMV8sJxtaEto0IVId54orkvrCdqTgn167nzLBz6hd34tJLftg6DKAygkUom7tmg5Bw==", + "motion-dom": { + "version": "12.43.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.43.0.tgz", + "integrity": "sha512-azKON4d9S65PEoFUiQTMTgPheEmzf2QngdRc50AKfJp9Q9mmcBVw22c8eMq9k8kxOFHdL7+WZY7N/5F/lwiDag==", "requires": { - "@babel/runtime": "^7.16.7" + "motion-utils": "^12.39.0" } }, + "motion-utils": { + "version": "12.39.0", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.39.0.tgz", + "integrity": "sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, "multicast-dns": { "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", @@ -30722,9 +30055,9 @@ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "version": "2.0.51", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz", + "integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==" }, "normalize-path": { "version": "3.0.0", @@ -31039,9 +30372,9 @@ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "picomatch": { "version": "2.3.1", @@ -31180,8 +30513,7 @@ "postcss-browser-comments": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", - "requires": {} + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==" }, "postcss-calc": { "version": "8.2.4", @@ -31279,26 +30611,22 @@ "postcss-discard-comments": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "requires": {} + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==" }, "postcss-discard-duplicates": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "requires": {} + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==" }, "postcss-discard-empty": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "requires": {} + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==" }, "postcss-discard-overridden": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "requires": {} + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==" }, "postcss-double-position-gradients": { "version": "3.1.2", @@ -31320,8 +30648,7 @@ "postcss-flexbugs-fixes": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "requires": {} + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==" }, "postcss-focus-visible": { "version": "6.0.4", @@ -31342,14 +30669,12 @@ "postcss-font-variant": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "requires": {} + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==" }, "postcss-gap-properties": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", - "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", - "requires": {} + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==" }, "postcss-image-set-function": { "version": "4.0.7", @@ -31372,8 +30697,7 @@ "postcss-initial": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "requires": {} + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==" }, "postcss-js": { "version": "4.0.0", @@ -31436,14 +30760,12 @@ "postcss-logical": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "requires": {} + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==" }, "postcss-media-minmax": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "requires": {} + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==" }, "postcss-merge-longhand": { "version": "5.1.6", @@ -31504,8 +30826,7 @@ "postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "requires": {} + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==" }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -31563,8 +30884,7 @@ "postcss-normalize-charset": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "requires": {} + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==" }, "postcss-normalize-display-values": { "version": "5.1.0", @@ -31657,8 +30977,7 @@ "postcss-page-break": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "requires": {} + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==" }, "postcss-place": { "version": "7.0.5", @@ -31752,8 +31071,7 @@ "postcss-replace-overflow-wrap": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "requires": {} + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==" }, "postcss-selector-not": { "version": "6.0.1", @@ -31953,8 +31271,7 @@ "qrcode.react": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.1.0.tgz", - "integrity": "sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==", - "requires": {} + "integrity": "sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==" }, "qs": { "version": "6.11.0", @@ -32426,12 +31743,9 @@ } }, "react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "requires": { - "loose-envify": "^1.1.0" - } + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==" }, "react-app-polyfill": { "version": "3.0.0", @@ -32621,12 +31935,11 @@ } }, "react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "requires": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.27.0" } }, "react-error-overlay": { @@ -32659,24 +31972,21 @@ "react-icons": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz", - "integrity": "sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==", - "requires": {} + "integrity": "sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==" }, "react-intl": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.4.1.tgz", - "integrity": "sha512-/aT5595AEMZ+Pjmt8W2R5/ZkYJmyyd6jTzHzqhJ1LnfeG36+N5huBtykxYhHqLc1BrIRQ1fTX1orYC0Ej5ojtg==", + "version": "7.1.14", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-7.1.14.tgz", + "integrity": "sha512-VE/0Wi/lHJlBC7APQpCzLUdIt3GB5B0GZrRW8Q+ACbkHI4j+Wwgg9J1TniN6zmLHmPH5gxXcMy+fkSPfw5p1WQ==", "requires": { - "@formatjs/ecma402-abstract": "1.14.3", - "@formatjs/icu-messageformat-parser": "2.3.1", - "@formatjs/intl": "2.7.1", - "@formatjs/intl-displaynames": "6.3.1", - "@formatjs/intl-listformat": "7.2.1", + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/icu-messageformat-parser": "2.11.4", + "@formatjs/intl": "3.1.8", "@types/hoist-non-react-statics": "^3.3.1", - "@types/react": "16 || 17 || 18", + "@types/react": "16 || 17 || 18 || 19", "hoist-non-react-statics": "^3.3.2", - "intl-messageformat": "10.3.4", - "tslib": "^2.4.0" + "intl-messageformat": "10.7.18", + "tslib": "^2.8.0" } }, "react-is": { @@ -32685,11 +31995,11 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "react-leaflet": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-4.2.1.tgz", - "integrity": "sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-5.0.0.tgz", + "integrity": "sha512-CWbTpr5vcHw5bt9i4zSlPEVQdTVcML390TjeDG0cK59z1ylexpqC6M1PJFjV8jD7CF+ACBFsLIDs6DRMoLEofw==", "requires": { - "@react-leaflet/core": "^2.1.0" + "@react-leaflet/core": "^3.0.0" } }, "react-loading-icons": { @@ -32710,23 +32020,12 @@ } }, "react-redux": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.5.tgz", - "integrity": "sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.3.0.tgz", + "integrity": "sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==", "requires": { - "@babel/runtime": "^7.12.1", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/use-sync-external-store": "^0.0.3", - "hoist-non-react-statics": "^3.3.2", - "react-is": "^18.0.0", - "use-sync-external-store": "^1.0.0" - }, - "dependencies": { - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - } + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" } }, "react-refresh": { @@ -33031,74 +32330,6 @@ "stable": "^0.1.8", "unquote": "~1.1.1", "util.promisify": "~1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } } } } @@ -33106,37 +32337,17 @@ "react-timer-hook": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/react-timer-hook/-/react-timer-hook-3.0.5.tgz", - "integrity": "sha512-n+98SdmYvui2ne3KyWb3Ldu4k0NYQa3g/VzW6VEIfZJ8GAk/jJsIY700M8Nd2vNSTj05c7wKyQfJBqZ0x7zfiA==", - "requires": {} + "integrity": "sha512-n+98SdmYvui2ne3KyWb3Ldu4k0NYQa3g/VzW6VEIfZJ8GAk/jJsIY700M8Nd2vNSTj05c7wKyQfJBqZ0x7zfiA==" }, "react-to-print": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/react-to-print/-/react-to-print-2.15.1.tgz", - "integrity": "sha512-1foogIFbCpzAVxydkhBiDfMiFYhIMphiagDOfcG4X/EcQ+fBPqJ0rby9Wv/emzY1YLkIQy/rEgOrWQT+rBKhjw==", - "requires": {} - }, - "react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/react-to-print/-/react-to-print-3.3.0.tgz", + "integrity": "sha512-7j9GIeNZA9glZlbv9mIbIHDOOx+WYfRMbJzh04NiSKjdaeGkxJuKjJQrtRuNKtt5AvEVVjrLCPokZ9yJX51Fvg==" }, "react-virtuoso": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/react-virtuoso/-/react-virtuoso-4.7.0.tgz", - "integrity": "sha512-cpgvI1rSOETGDMhqVAVDuH+XHbWO1uIGKv5I6l4CyC71xWYUeGrE5n7sgTZklROB4+Vbv85pcgfWloTlY48HGQ==", - "requires": {} - }, - "react18-input-otp": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/react18-input-otp/-/react18-input-otp-1.1.3.tgz", - "integrity": "sha512-55dZMVX61In2ngUhA4Fv0NMY4j5RZjxrJaSOAnJGJmkAhxKB6puVHYEmipyy2+W2CPydFF7pv+0NKzPUA03EVg==", - "requires": {} + "integrity": "sha512-cpgvI1rSOETGDMhqVAVDuH+XHbWO1uIGKv5I6l4CyC71xWYUeGrE5n7sgTZklROB4+Vbv85pcgfWloTlY48HGQ==" }, "read-cache": { "version": "1.0.0", @@ -33187,18 +32398,14 @@ } }, "redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "requires": { - "@babel/runtime": "^7.9.2" - } + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" }, "redux-thunk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", - "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", - "requires": {} + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==" }, "regenerate": { "version": "1.4.2", @@ -33206,9 +32413,9 @@ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", "requires": { "regenerate": "^1.4.2" } @@ -33218,14 +32425,6 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, - "regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "requires": { - "@babel/runtime": "^7.8.4" - } - }, "regex-parser": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", @@ -33247,31 +32446,29 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" }, "regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", "requires": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.2.1" } }, + "regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==" + }, "regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz", + "integrity": "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==", "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" - } + "jsesc": "~3.1.0" } }, "relateurl": { @@ -33312,9 +32509,9 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.2.0.tgz", + "integrity": "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==" }, "resize-observer-polyfill": { "version": "1.5.1", @@ -33322,11 +32519,12 @@ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", "requires": { - "is-core-module": "^2.9.0", + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -33524,12 +32722,9 @@ } }, "scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "requires": { - "loose-envify": "^1.1.0" - } + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==" }, "schema-utils": { "version": "3.1.1", @@ -33563,9 +32758,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, "send": { "version": "0.18.0", @@ -33601,11 +32796,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" } } }, @@ -33788,11 +32978,6 @@ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" - }, "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -34058,8 +33243,7 @@ "style-loader": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", - "requires": {} + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==" }, "stylehacks": { "version": "5.1.0", @@ -34070,6 +33254,11 @@ "postcss-selector-parser": "^6.0.4" } }, + "styleq": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/styleq/-/styleq-0.2.1.tgz", + "integrity": "sha512-L0TR0NQb+X4/ktDEKmjWyp27gla+LUYi/by5k5SjKXf6/pvZP7wbwEB5J+tqxdFVPgzbsuz+d4RTScO/QZquBw==" + }, "stylis": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", @@ -34320,11 +33509,6 @@ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -34398,9 +33582,9 @@ } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "tsutils": { "version": "3.21.0", @@ -34452,12 +33636,6 @@ "is-typedarray": "^1.0.0" } }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "peer": true - }, "ua-parser-js": { "version": "1.0.35", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", @@ -34475,9 +33653,9 @@ } }, "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==" }, "unicode-match-property-ecmascript": { "version": "2.0.0", @@ -34489,14 +33667,14 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==" }, "unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==" }, "unique-string": { "version": "2.0.0", @@ -34527,12 +33705,12 @@ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" }, "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" } }, "uri-js": { @@ -34553,10 +33731,9 @@ } }, "use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "requires": {} + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==" }, "util": { "version": "0.12.5", @@ -34718,8 +33895,7 @@ "acorn-import-assertions": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "requires": {} + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" } } }, @@ -34846,8 +34022,7 @@ "ws": { "version": "8.9.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", - "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", - "requires": {} + "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==" } } }, @@ -35300,8 +34475,7 @@ "ws": { "version": "7.5.7", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "requires": {} + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==" }, "xlsx": { "version": "0.18.5", diff --git a/package.json b/package.json index d35bb8d..a1a0f9f 100644 --- a/package.json +++ b/package.json @@ -5,17 +5,12 @@ "dependencies": { "@ant-design/colors": "^7.0.0", "@ant-design/icons": "^5.0.1", + "@astryxdesign/core": "^0.1.9", + "@astryxdesign/theme-neutral": "^0.1.9", "@custom-react-hooks/use-network": "^1.0.1", - "@emotion/cache": "^11.10.7", - "@emotion/react": "^11.10.6", - "@emotion/styled": "^11.10.6", - "@mui/base": "^5.0.0-alpha.126", - "@mui/icons-material": "^5.14.19", - "@mui/lab": "^5.0.0-alpha.127", - "@mui/material": "^5.12.1", - "@mui/x-date-pickers": "^6.18.2", "@react-google-maps/api": "^2.20.7", - "@reduxjs/toolkit": "^1.9.5", + "@reduxjs/toolkit": "^2.12.0", + "@stylexjs/stylex": "^0.19.0", "@svgr/webpack": "^7.0.0", "@tanstack/react-query": "^5.22.2", "antd": "^5.11.5", @@ -24,43 +19,42 @@ "buffer": "^6.0.3", "chance": "^1.1.11", "crypto-browserify": "^3.12.0", + "date-fns": "^2.30.0", "dayjs": "^1.11.10", "env-cmd": "^10.1.0", "formik": "^2.2.9", - "framer-motion": "^10.12.4", + "framer-motion": "^12.42.2", "geolib": "^3.3.4", "jsonwebtoken": "^9.0.0", "jwt-decode": "^3.1.2", "leaflet": "^1.9.4", "lodash": "^4.17.21", - "mui-daterange-picker": "^1.0.5", "notistack": "^3.0.1", "papaparse": "^5.5.3", "process": "^0.11.10", "prop-types": "^15.8.1", - "react": "^18.2.0", + "react": "^19.2.8", "react-app-rewired": "^2.2.1", "react-csv": "^2.2.2", "react-device-detect": "^2.2.3", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", - "react-dom": "^18.2.0", + "react-dom": "^19.2.8", "react-geocode": "^0.2.3", "react-google-autocomplete": "^2.7.3", "react-icons": "^4.12.0", - "react-intl": "^6.4.1", - "react-leaflet": "^4.2.1", + "react-intl": "^7.1.14", + "react-leaflet": "^5.0.0", "react-loading-icons": "^1.1.0", "react-phone-number-input": "^3.3.10", - "react-redux": "^8.0.5", + "react-redux": "^9.2.0", "react-router": "^6.10.0", "react-router-dom": "^6.10.0", "react-scripts": "^5.0.1", "react-timer-hook": "^3.0.5", - "react-to-print": "^2.15.1", + "react-to-print": "^3.3.0", "react-virtuoso": "^4.7.0", - "react18-input-otp": "^1.1.3", - "redux": "^4.2.1", + "redux": "^5.0.1", "simplebar": "^6.2.5", "simplebar-react": "^3.2.4", "stream-browserify": "^3.0.0", @@ -109,6 +103,9 @@ "devDependencies": { "@babel/core": "^7.21.4", "@babel/eslint-parser": "^7.21.3", + "@babel/plugin-syntax-import-attributes": "^7.29.7", + "@babel/preset-env": "^7.28.0", + "@babel/preset-react": "^7.27.1", "eslint": "^8.38.0", "eslint-config-prettier": "^8.8.0", "eslint-config-react-app": "^7.0.1", diff --git a/public/favicon.png b/public/favicon.png index 73597f04c094157c52d147c74ff9fdbee2df066b..627db93aab62ce20c41158bd95e69c4f1ee17048 100644 GIT binary patch literal 185613 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 z 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 IM6N<$g6DeM00000 diff --git a/public/index.html b/public/index.html index 175f73a..8a601f9 100644 --- a/public/index.html +++ b/public/index.html @@ -17,7 +17,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - Nearle Express + Doormile Dailygrubs Console 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 z z6?mq?a*lFOw%=gOTqX98D5*wRq{~S3ph;$x9Jlv|Eq7Z6v*4Ky!s$qS0R_dtE&tY7 zlVdgt=$Sn(>lNLNmHw)INIg&Ng~ggrkxw>>S-BgxPabmY#sVu0Wgb4CfJVdFEjy0| zdO0H^os&H1Yynv@j?@!9xSa-nnZab=sM@2%Ot8(Fvn~?jLYbBqf3LeZ;j)}$3$-W6 z%yy0Z{q2KpfqSd{8#UKYylSlY^?X7r85N$xh`HEH?Y{f^ee{mgi`)tLJ*#l!8G9EB_^WlW@%JvUI5Am#hO8^^>@ zCLaXZO$id+-T5KGvnIr&xGYM&jxDD;Z^O~h%i`&iV5+zH$1qunf<-W$UxSDgxV*=q zvfXRQrG4+z`{0$SiDJds+e_TfN?-e24uvs~t)&5JFdi)*^)MwjGjJ7ArNO=&s~?h% z-lQ-U{S*j3nDhmVVLf-qmDIO8{3J)k)v0vMQirsSKb)6W7c<9D?tHfRJYUvXQERka z*1rF?%^^5Ekg{DD!1I(hszxKdUG5!2mVWW`3s@NT{n|g5cz&4zQqin;gtoI~}I`H-D# z(fn{pxBDmt)hM?A^u9`-mf#?L3Rf`cSHofSpq!h~8MQFi{b-=&-{z?N};a4Ga+%e#qy$AQY zXm%-M@O_lqu($jb;Asj1{7zTn@kPZcbl2Le;}F!gzSV!D)pJ_NN5Wb5f~%r1M!0D& zG4G9${u~=c`B1u>BYeecJQ=`oJQ^S=*7qGp?*$d&hiXhhNufXrItKZQduO8Cf*}^K znz%D!Py_QYw!cF%5HRi4$)+$V)tWBu=(U^N8wN z)rWVAU6v8^Et!j7pJ=XK*Tx&ao`TQh2LkH6ujOd)SR?><)~{JsX_IwtiN}`Db!wz? zU8FIrjaxR8^oyjM>a&hGGmAB?u8GhiJBt<4tHO_X2}~)TeoBvpVN1eXB){y;b$&=h zxYSYCf2DnAv>G)siTytP!;cB%L~4k*Y-|gxj|)kXKAEd#uw%78`iK$_ZmkRtJt!1!4UO|{k zT{Q*uKdzdK$HE_vg(Jf46<4?^Ik%0SF#tQ9Ze5w&?H4F^TR1;hdQJfF;(*MX%niz& znv$~BkKt#ylrdc{fq)Ca!xl_SjiO;ZTWa$6lGInWNNogwlwz7b&dbYLfW0$xs~Z)qW^op5oypgcS%2A=8NS= z)V!8^k|u3F6Zma-MA>`dCYjO!SCjLHuHv+|moLTN=V(RP#YY7$-Qd5jE_K~?Hx-C- z6)+usD@RKyxi-sBmFuw@p=xy`1;X~?%Ogyky|VMCCQLYRUYap`r|biODc%2~DUnzb z&80!?ujj*tOmy*WN-75uVc%S{Z~2YH4-Fc}cz%e$eX51)_$Wc_ZGG*87tUx*- zEdFTt`bY`+YvIWmP?TqKF{~)?^Y8sc;0mZc%oQBQX!573&N}EFR25cNV~{3v<}ZQ( zYo0e~~Df56kI=>80G}@%kO9!czs|=;|f2Z(eE|V~6Xxn_2df zKBctI8S5g{SgO~XPYNB?gxk>4D!dLjGcQnRPhU9xH2B0LXt{ehEBK``PU@4Q939zi ziggP{6aAHuEJw2ufG_;CeQRhl(zUlQ;k_?rR@p*Qtoa)gplQ#8FWcHjyf`xi&Mky2 zar#F0-ep@?PA>G#OcZCm26gA6?PNgXxYfIdo9K{#1>`k|72783KQ#^{or1cA`4f#S2HSN_s%G{1aw$ z{|b{K5y}-IBIK12H2VAm1y))EZ{M!dfKkTnzYr)bjGXL7pV@a zu|dcl1PdO?Ams0dlwxK~ZH~f*GfK;#slS1;pSO+-TI}s;v7o-?yu~)gt=0ruKFUtV z!o1MSOeM(f6&s#vofUyJVTwP0lhP_i*eyN9&ay(9iJupKnj&ix!$N) zUmZT>p-{<~ul3%vQ(;~VeI#h0z>Y|GL}>7okrK5?-@g?NfPBHrtL_MZ7qEb7nB$6; z21+>DCU&H}o1l_X@_1!ou(+rXR)JFE|&@U)! zD7W^K%jqALWmj2qmwkwY3)~DyB)@^MhF(eoxb%2<0WgtvFd@0MvAAN&orMjAa`fN)w#)miStG4#36k<;0bFcg7K5*4o z5quL>_zMehaM*@Eb)x<=feiDH$i9nyfa`{uwykWXsd7B`$`NNbVb{2T^;KG!Gk})J zGo*c=x}MHxq8Pzz1af#k)W4e@YTyWZ?3>#JS)^9MA?xBDGzXm2pkU=N6qTDKsXr1{xEnghmcE!kSzFmOlg`tH7H}0 zBD-iK&}5V?9Nh^vyCGKu3)mJ0mcEP(ar-o4ni?8VIOxEzltVpL!YqmWJlrA;L8vYa zTY@La@oH=4swtN#F6KCn{2y=Ou2{0rU84M&`$Z)Jrap}1yfIIUi|!4bRj%-WWTI;X z--D^gpIXyg@_M$C>hX9f0Xb0awDI%VquuVslDQ~iYTsW;;D(GTAg&a>d{Y}91}Do^ zajg>Wrh`w?9>jMK^}`8butYtbYYQ)was$b0RzKq-$eC!^O#Ef26TTyK@!c1tZ#noP zHT0}@hB-%o_-bC+MgpY5VBIe-8W-uXsY;k6iuzhiJWGf{8Up30;C!r5_8S}X+_wm@ zE_bP*FR_bx*EMuJf)wR zpPdNiXTiijOs#a?j71$P0~`E69(DOIh%ecizhtZz$kGULlMy9l+{%jtFCFoo7R5sK1~%F>@C$&A7G+Ln}9qHUG<><7$k zCrF$IwNU%NKV{AAoO&)GlNcwuZ@R!<1Y}aa;@c2W*^N#lIBGXPJ-!MUc_IA?CyAw~ zTXIGA^t;Vi8WsVEct4Tw4BLDenb-qCfk3hnq8f~6cZeYR2@VE;y%x!}7b<~<_7+r6 zL5haJkmFOtpIX5b6i_zaf;P0u#MQGLsu3&#rZL&+`hWJ+a;3rmOfZAzt1MaD&jdnz zKgYvwQ7;FCR{6P&n8o*Eq6i-~*127@`>7i1>H(eu$bKw{iChgZUi5$K$!Nlo9XJN2 z3T91zOP!3Czo`s>1o)2t`H?HcH$d!!^blPTg|DJEC{lj2Vnou0YFC9bO_~_|V6|eT z*cZRtgl2cU5)9-dOM8owUrGGf0gpYk;@lY>HG2rd|0;Q}o6#)aSGtjPXxSbEsLk*> zSDi?Ao?h&$jB{Q~!3SBay!f_0#|n0*>VOof-GY!&I>sY5$1H%08T`zQ$!0(+h^8oB ztkE-Ms+{v>Ta98K5#%~x={W)OQ5|~=22}j|Y6JR3{~3`zL}cCQreTx9_l_q08+k~Y zl0&~fNBJ83E6nl|&RQaEOaXPhHSb0w{-1eBaNcjxw*mqc4fa@!K4zBIs3^7w6@}_{ zfPbjH8TFp!G`HrJ-g?uNBWOKg#rq?Cu8DxM(|WeE#5do`FuEhHimDo6T$!lkcbuy( zEDI;?r2Ek+Z$hf54Ln4?sJ&SJ^hSA3;I|eO~2u-ra1`Kd=9d z%d`FAt?;;QB$K)+x&FCFzDVQufetKdx)~`pfIlYfbSzgi-XUOck8Wt}t;G2|z?{Ir z4q5T^L~>(|UCE_bV^4xYHas=aWLy~fOu7e^!U2XCstT&hKD@FRHPB2iFu19^v;?VL zSGvJaT2!%T5@&Dc&y%spXMbVTulWOmL;yPo=mU6(PZk-2w<+n~>P7~3j(UVU&RW=Bky zq<& zPbh){HTE<~^!_6cBzzr{2kzeVA;81GjeX_tcj;l(z<|e862N`E^}&QbKfhql;QZI8 zv*O@bA-ej0t*@AQEBo)=8i2_VfEwpPa#{&pEONlz=b~hID!>$@a1E3>hz`Q_`XX<=XT8-*XCD{gQN)nsZ-_RCyhd-ZG%?|7HLuj^R68Y_@st zwM@BDaDh#Fdz075hHCQ}DX1huMw&ko)S}NLaA~WG{udI#3tLa)n=Quxdl>q@U zZ*Kx(!29-sMw%z4W#nM*{kA-uM7|Ev;Vzg8YTyO@6~<#h$Z*PP*Ss@ZUX>l4b#GqV z@a)t+!=mttdsYsrh|y5}K|m&(>b8Zs-`Cs99_F3wLG>X+H`;}h4p^2(!@1H{mtwqNM$+~-0IA4QBLy;=d56W7V! zUed=Hfe&_&QijKgS$y0$!VZfarSl0+?sY!&r|_NKo(2j|wTehM3@;k$Q7f9UKwOWX z5GQg$vx-%R&D5a-+EL)lG?ex`9Dac`@1I6ft`fUf4w2aR3raplZ}&^WrN8|qU4Wae zn|snE=Zka64gSi%v8*qN27F1OG-qxoU#z;BjC3bqHe!pv&Btyi$BhRzt#_o+-jf}N}wR-avAu+>Yg^E0xYD+c)|EnYfSGa zk0fa6_Z|D13T;R`m6j!L@BwoJT_C>QYcvTx zXrO7RY^TLMZaib9og5y(G}TVl-g&9`i@V~oBuA`J%rLYTS}CAfFWDc+{9?A!S!mB1 z{ND7T;vv~zbinHwXH((;x6c`N-lfx-B#0t6Vmu~Haus(IMSsm8|h z_hdOS?zRR`MuEH67+_?Qstx_=VrtNS%Da^isxAp z8B8_cM%V%NM=Zb8-X+zXlvXH+ZxzuSzj|N%5*1@(BxvLz>c&L4W&D ziVf(U>a#4K2DAK<5Q z*QeJQHXxq{p!=_ZY=`Gei>FBbTjP!XIrfHq&F^lfyPc=n1#X7Jh!82nd8hd~$l4Lc z_f)9DqKJn(o06#8&Cd>6>sm0$kHwd zjNv?snZm55@Bigb9i~j&B6b5xB_5jf8_+{Jq|SR2@)hetc{2BqLix8o34;b}?s*b{ z606zsUZXWrqyE1Y8XUj}GNThLo_LL&RLO||gMzF=$Hlw19J>3_Mb&*_G+a!8F|-o! zJ0A6!ih3n9TXsn~~qEm$zl!Q1yw> zsowXBQJrUufJ9yVzE73@y>T6<=#;u4>`X)ZrS7fWjf4$*?9x;Rv`RF=$YU(U?d+#t zpP2DT$?;o^=_*(xMSqpU>M}=IvxeSn0P`TXnBFE-km+Qb%}Un4`_74@?qxD3X>tzk z!ygs@aw~*~FwGjE(cd3%(jdc$#G%!-wYaGA`iE4+$UZI;O+z)TAXP)aF+dyx8&omW z)E9(rdUiI@0}(?U8JqUveIKX&7P?9-so-B%rQH;5ERDk$0bfQX&t* zu;RTY*7yiXAwrj7aWo=1TTY8Jq$Z*j3OJgj4AmN2KmE)vBmgyt?S>`sRb3FH78DU3 zy276<8F)cm_N2KxTn5Z}7~>y&KFwUE#}dDTmv!64w|AWtZLTct$-ZI)ju`%CGBepqDX6tvzLnN3zs#}&9J{R;sYo`$s^>p; znwuscG5{%-zulAVcwx*uLE#-~JZkYL(@<9QyrFq3=0U z?({~kXh82Ah3{eM=bYth54c$QJrDgwDBekuJ(>PHm~H`&w*?P!YGYd_uCa;tO~zL1Fc^rk9GPL=4rj#2F9DjYz$kV5) z&Dqv1JuQ~Ndo=2Th?Ss&JPcNDzt{lk*^?_B7hX-q7Q3LzKQIAVyZ z%(^##lQjS(QaLfddZ}?vzN7qySN7#tSyi6(%|Jm~?Br*n5{h2QG~j$Z+T(MscSXRw zEn~_`tid~Ir9cqP|nAx8%fHe&uG+h@s zv|hV=AKHBlQCKCy9Rkud-dms5!1r!^mRkFg@L=PdDjzab1L#3j;K%}>EuBSoBEwlk z0&K9r){)r3)B%i^A-d&~`|nYG8&m9o0Gc9Sb-Iig@tO-K!`r!84}dhYIGt<&yXd4- zzVa$c_nW-a{b4lf(YEqiHRoJ&nEhlm=$Y)y6nM}R)|#SNAjfA_HY>Z;b(H>UUrVs2 zCK7s}1ONWS;{~OelqiTS-bg={{)6fRFh>@a=cK$v5(Jk)ahG|KIY;8Jn|j-;tFU(V ziF?npUgWm@WDk62K(Ylb<5!8A?fbCH1dAa;UT36;yEFc2Z+N1_cz16Fw%~6~C0`{d zl!uGaUNhe(*VK#>CAaf1ep?TX({4GZywV%QOgtQXTS%}z?y<-aIIT2Heb_we8N!I} zx90H^2u7=K${=S;SmYwH8Tl6yC5aeH6BoR&#mqWZiGK*`mR3ox$qZf(v_!ps;{xBu zNKLd?A~$;L0MSB7wkPLBZ^ckYZMyXOPkj^_p%6LQ%)2|e#kJaT^dFzpJT}tHbgN69 z$;nh&U`vdHQsiEJ&kg^+vFM*Rqm(tWtWIwlABo1S09PT%@t>73^(D{vHdr740$|pH z;1nQA()=S|g{m9IX}{4Pif}07H=RfUDX|3oEj_R4BeiI>X0TO)70v#e1mA8C1*x{B z1mi|>pdHDKfMvpb_1Je}0Q7b)UqEy~1RqZQon}`TCLQiYKPV`S4i=ggt_~+TfeTtB zF+ncTIf)UY|+VFe8C0S_z!(&g+dNOmG*9j~7%RMLHK}DLiV7woHn@;ZZ*IV>sWyhVT92@0_ zRi_O3FLvC`v40{+P#=9dFF0Pu4GLU`9v<=ClseoLz-XiIpbN?`1HRz`w#VM8nS3ja z33E=q6oe9iLZ4fSY;D{fy2@~c?|2}tz;#9tTQeFS8tllC*5%|WJ8P!2cb|Y#XJZKW z`v$LyyKhsl$cJumiD4-i2J@z}bmYKqAjPR}phLu^FoB?oBqq!vlRY^#u>k)T=A6S{ z6yJf+dz~DFthE6z#*iAOT~56V($av2_3Egt+ikDN$R5(=l}Msr_}i@fF`-PgNko^6{i-(Zv!*2mQ=ElD6z+?U>=2f zY#xI5qE8z;N^mssGR9u8^EVUc#5xQ&#(DiL4pB3fa?4HdvcgJzr51_D2EG(kkVlOX z#^al_&fowa{6>ok#_UXtn(!Rfple>DABOKH_tfX#;m3e=`}Ieh?vX zE}j5vE7VYHgE-urCNjca1q46U#7)x*Dvf#a0YQkn<8VNM$)IMk?peV0jyyBHG;XWc z6apwHr8fdj{$8i(G-8_24P7-l7XX0_bWW;aEw0U(<4DwoR15SN@ovC(c|(g zfGwU&xRe4Ed*7_zUk*q{IsANd_gIv)71B|E`vGJhdK|S%psWM|@40o+xm{1?ycw5= z^G&X0ny(pN7wP}|9|HG0c?iTbKtm~ha6!ge_dwcVp$<-)X8gmp3|V7~Hyunviqb;| zlARy8cod@PN&8ajdPRT*HeL1mx46+Mo8k5pdQf5Sd zfNnBWJ6~9tkD<#I--HAG8)+1KVaJ6ht#IeG7f>gx?E(}F)i%>fLxs8j1vPr%FMYyP zMv9XJdT)F_EKq;~BDI2&K}u9I+3(GeQ6x@Mr2;mu_G*}GUMDA( zag|g@S<}&t6Mkh_aRu#A4xMLNzYBVwYQY-;mM*dr2Q{q_)@>&LPq3Y37y|D`<-}bp zf3rf}B|fsG<^wG(Etk1K%=zw_0`->B_#0VaoJdRrkx2-DdQgrE9qrOr`97EwI?Z!3 z&=*GM{F12}76QO7E(u&i`-w&|l${w+U<`#mnl}8R7U{y$e?J_d)g+365?kOu3N7$J zYt%q_^Wu5l7NUrZEUo|=RZBy`hL{(WGqte+TBn+ZVRHs7>$+dg$C|XbF%-pe{Gt^0 z(8wargChOahv`Ua)4=BP0;gojT?+>iZkuTm^#-B52_|9rI45}tp>`~pE(f}K>* z`q=K&!$)+Web8?5<%B)|YU2rzrj9qezq{m1YA>|Hl|U|^UM1l)xJgGpU)M$w?8zd$rX@4t;JkqE7_g}Ui-%!km!22#eSM~dQ&L`s{rV5i|v&Pe|( zCthqs8szN=Y|slUC#z8w1b}K1^x<{Su@+aO8m>34K*GUT!~ds8a(5Qnt7_{@?g7q_ zE!GD2Evsn8lHb8YD8VUkV7vE7((3&8d$}lzn}Y8qgdFK%L)u#yuWCj<0|6|TKj1w{ zEZTZA3}B}661}#_c|C1nc76s9z3h~%`SZE-SrEONtpCR$11V{hay*7vW8~B-9AJf@ zl^=ea(~~k^x{XVVTc&vdq@%G7+CkoLLTtOXV&=lF943-LkkT{@J>r#4ybBgK$)iMu z&CCFW-m-Ig(zh}%g#IcZsAQqt90CoD*g@VJu1Or+xpqO`x(c{%Z58nscT zUaqH5FBcP;Oo$_k;NGq2)0s}So3pBf1%SX01hT#`fK~;^N_oY+@hL|3iJ<)SYV9J> zw_JiW;mtmMj%*CP<^po!=fcn8`3mJHd9M3><&3J?4@*H>0m;G0pLealAJI-N1@{*` z04R9`JKD1tHJbYxI8p*MR=mgCZxeC1s^AZ4|1iqK^#=R*LS?XqI^xlX?7m@rn2#$j z@762~S07SZ6ow~ZG7Ji6^5=gY+VTB;sYad1}aVsBbXCS7B(A2>+LdeK@3?_hIBRzPwsRXAxRai=;--_*qf6&u*ui-M z94V+)egF8mRAuVonahO4Vslyv@YbD^v89_klil4sudj@;d`$5iH;OX+=9 zJ$K)WdTVHJhjj~}i*9UD?TO{cz*}+|C2G+{fXe+-qUk#PxPhT)udf>#IiBw+S=a83 z2&v2$j8^~zK8%I)n_4vrfFX{Y%+sQxveu0YVkU{^R4`D{UQ0yd3>tL@BYnfo{#qwv=drw&#iq z7>#)u@nPSdGPROx3WqL5z~Ha_8>^f{rx+iF50`RH*bwGIiI7DH$co}c^~x(?NC)Bi zx$e3eS5a9wDGq)t`QZ9$N7^rY5>0_GIFbm+d*96GL+O!GK;wA5bZR=VQS|Dt-CUfH zkAh580->5hvCOQ@tF3tUUcdH0v1r`5vJE9@IBSqNUL12vwg0|yuTubFpyo~=BgbP! z3CDe*tolk*5;$02tqDj>5>Y=)DU(<0hZp+b$(Fu#}oIz5IVI`nLKGa-z^oJZ3M4eslg3otvx_@S`pyA z=>Sos0-MdKLhvOQl1#zBHS*lKJb3pK9%Oq0Y*Er(D9E?|y~1hx7(PgUpqlr7l4}v=$f~M+H_Ckx$?SjoC1Sv80r={3dek8 zA8U6RUiI}@Rt9seNIfX<#V|~fNRwq$L24#TL<93F=X&Vm?Xhah6exzsJy9IpnK0$d zX>WeP0n_=+DpCX%yVsd{J(1bbU_h7kU5Qxf{V7|tgLeoXXaI<8cw{}7&cgF|@J)}L ziLVC*PUVsJ$p*}uejj+Ujt(*;U9rWeefS16oI1Xe$lvQYU8CY8ALD$9r8*MEK4Z{g zsMm24d+4T_QOOQHWdy+nt<@G>>??fxgx(k+4m95LeWeWnF{F}%S(Gh!qju?dz?i^g zSW>-Et-#nyH80;FK84cznGaKwlnPA__JVxB;IKMs;btCalW&%wjPlO1Bi6eX z)FyM{Y5W9Uw*q-3iI;b?86Xer-qLh>`8D%s07rUU%V%vaRN{eAUId9(h<=VQOrPji ze1NS0*QN{fMTi%sfR`_4UV`47d&<~7Mc)c?PE(SW#^g#7E2F6tk3>B7quM?|gAXo)~GuBMc@`0r3^T_sp6dPT?Zi zufd}IQcT=rW^;`R(ocu=At)_JB8ze3Yw~t_6 z>`WEWn!6D67t_=^R+BX`_gVyve#bXlvH2B3s)_*t+!=e-29BMC9nfO~>y`%rOj{CH z_i*3HZf#^#+exPP+lU;Vn64A~&TI@`nPhXKYWQh%7EF$7K|nWl`(320VW4pNTNIv; zJ~oG-{Sz5qW2$7i;Ij{ewivx`_mX+*YuemQN&I|_s&u?Ok-CZ>xa!2w*&<{-VUZ^ap0exs!=E^RVS^)H`FqCR5p9uaqeyUs(jw z$dfL*geV^b)x7M)AE!Uv5Sp2>;$~k$96|Gz+NebG!Mr6HW{`{AzKDyq6LdU4^$Jj`G*Ll)!VKsZ*GRN04hoQ067bPU+k z>sfhA?hnD-Z{HG}90X5J!P^zA6W|5CY5z)yk2YCRvcROEx|@I!4a`PIvqXvtY7Z>X zhU)3%IPD7=L6OMsBLi*Af^iq2T1PdsILX`yIrXI;3*XanJHW&)9&- zpEx0z$(nO@_q_g=_$LNNehomeha7N51N7>fNp7~T4PZd>Ee zxv&D|r_)|RDdFN#R(umWF~nK6BvtaHh@ojASf*B#l`S)u)iyaJqDWP!iGNb_uF&rC zj|@yUzkCs3)34T&+|$0h>Yd>ViTYtzEp~b{#zZOPk8EPlnhHWjuezhmcvB99b3_DU z>0fHy>*Kj_BLn4hkm6Pd-JW!lq$8w33Wo>;`f;Fzj6f-R*be=@v)PX@yq8=&&G-Pa< z^Lams_}ivl@^G2VJobV0-kiqi`K3j3p3t~e!yk=;KD@W^n^(IvpN(7}G_*TQlq#DZtcQ{q#bn{{qLyNV+SmA`F9D`1;8k%gB~-uS)0q%Z@duN zhK~?2aFw9n0xtuw;YNaru{Pqd3(U@sc*11WMSSt~4m0vpLP=8o0*KhXpQzxX61)h8 zD7B?VDwRf5y6^sdD5IcX4|0Ox(^P+k$~ePd@> zx`V}+#>m5a_yYPRaXQbUg<;V=cmX)E6G*IH2yUEn2vBXl`%Q-}`SnrYnD~$m>-|2u zVB}q+z`ROU?>T!;_rgbZYM=sP^n%qJ%;Z}rRNyhLKOFRVE16Mq?nVU z1kPwc4w_b=B=wApkSF<~Yg@y(pyAgXm(-Fz|HiJZzlC=Dqyb?LmMvnpo6Ocic+7yk zCZpTC49W>kawFd#3pZdm4y10dLw}u9A>!B}$Bd(dyIXT9}O)onEqSJ()B3Q`no z1S4y?Zdm#%G*%MXhU!d$f&pH(8^zZ?HWcB)viDL^B{jG8SJKo|>?0 z7Fb5HM0nN>7lB^9Jx|j~dR?YEHSt8H1(lmp(sJvwbtjOeUh_nnN(Iik@?Cq?i4uNh z%b38Nh17?v%8BUNyv7_lHULTdlg%@3bHSHaf6cAHG$ z6!cin0LJ7=C)j50@BpY%Ax%A$Yvv!4*<`yf7wmv4i0j__zB4=|izgzIP#m!D>_G`^ z*{}W96FY@~i+B3XeLW=EU0beZR_2>E{MLAT`1INn&YQKR-_p<3=XD^4HI{D#rblqU|KemSG7V5Cl!}LdKr5AB_1Ac8{@E5$% zi{TG{Rn;2sn}dpsC2zJthmsbXnKN+Io;-<)(OzuRR{~4_BCK_I4}-RxhZ8-1-@%26 z%5U@iOtK{SqxS1W=0#UD%dQF^#*{ivIfPeAw$@%!1fC3d_@v05Z?f@L-6N!{*O#1C zb7T~u$VvpINt>>fkg9IT0bZREt+eipA|>>9Bh;nA$ecbemfF*&5#kfd(J#d?5HF zy_ZVmKRGqJw)KLf2V)$aenT=Joij$;V$WIdO}OUrGoJ?yHO(!04CaZ6rgX>;=|xO{ zM>$f_TE2~q?cC)de@?T<>WxS&;Q0)w;Q8%m=gG~C25yK0#XIDsO>iG@0}7a}bKZ%O zWQysHf_+l9Xq!+8Tf;w-CCXsdzs4uW#mR3B;qm_jmOVKJjXYslJTDS)0`q`)pC=eUxCuAlX5l0*XOU+xMIVjrs{oZ64566#bU;KG?*f1#G{y|_S&^*#A zqUD4qN5D{^1CGOSdS$(J@0^U|il8<)=-!0sZDjb4zqm3oaSl%XSCel#Wy$0v{|*C$ zm|^Ll&+{RQxiwyNPi>oRZJf_&8uwtt?~=0lQWoJ~zQh-iEXx`(xiq68{<2OoY=Em! z3pS{zr~Pu2&0Bb6XCieqHt%)omNEuefMm5RSYT(N^Y?2(d%B<`<#0iOB0r&lvQUgj z`7Q6G)UA6tY@2q-cb3Z|$CuH{{ikfFf`itIc2K6wW$D(Iuio=F^8K4x+pOe>zbBt* z#4=QQ7+q;$)+2nmPkFp73qq=h;C8p+nFk-uRKnpwCu@P!m~T-yua66H7$|^hLLVn? zoS+XPFhph4+Joc$^;j2)&KaTlEz!35paw({n28#o5AnfL#@~dTRL0K>{}cTd3nvog zNO1jLJO*8+%+I#z3O;8zF=_*MU=7iy)ySrIola0O0mW3D*GYpM_i>_<06Q&*VBR2u zKi>WMt2$)TU${b=gE2eNSx$wePiWJo-Y^HDG}W?-LLe8>bjU7)R6S zivoBe0K?sSGv-WQ_?}BhF3|8ZW5)or(wM4)X!YaZR@&a82wan|6N1i2ixQTtb&#%= z5S>*Koq~_PnLga*m_{s8#{(tXR*u~Za5%T+-+TLx`$Yo< z0V*TR(?5cjp>V!1Xby0Wdmp)pvmFcr(k}-w&hvq#A|Jo5@XNsm6^ehZ|K>NKr@nUa z4(qH+HG)A^J7O`i!kpdIwEc^6PNDYsKvP6hrybD6>F#%PWeCHFqaVsM*dUd#!?yfP z@@$n<-41YkU4^Nmcv-)1M|w*NUQW17chZo4R)1HbCh=Nm00lznH|IegEii$|$Q~Ov z+jn#?fhjFgEQDcS9d%Q0rzY2#1U#_ko+6}7Al(8nvb?5zxpX>{X?fK#*DPt~5FY}&($DLCu>~);S z)2HR^#Ht?hq;Ru<5-t4nKGg4#&$YU1Y|h#H4F)UTo-#pWc)gKkH&6J?lnVPYd9JBJ z+ro2;(AnC}cce+6{HlO;EydmEKqvt+mHFQj4#oN5icf zG8elQ&2qc6tN_SX^@5?PAnR^B>Gy4EwexQ%{N=2WX5?1dereM5Qh<8K?t;we6^Q51 zosYNMYYG0c^15hr{}M;X=EUjKc-My6O__l%3pWW^HWlvLSvud~48g+&cS-5S23-eO zFy)Gb*xm{G^DzBPj9c%O;Kwvwvd@%q@T*;Q)IQmMHllO<@%m_KGOZdmr|qy)@&)Hp zJ;Miy`r?02dJ&?dv~k+<2Q#1VbrII=eb5TDc8?8yRsv46XcI4$VgE5j8Va-LHB)8p zv{Vs%WClSG6LG>%xUtYlur%bxGw<^>M;(bDJKw$2_FbUV4O4e@hQAHXw?*6Qm(yPp zSJ~C)zrM|$m037~nx%~wU=Ec@`ia=r|3)tzn5}-8P;yf1#Z~2cKSBzGC)Se{#47e` zs1pnoo`rcBAV9IFVK5!e#~J13EXt7eG7xuB z-UCVanm^J?ZHV1$T-Y)7fl7GsTo*_-9^SUuoT(aO0!l_ZAz5v3q+ho#XeNl^%CH5w zpi~jGOS33J(3NjGt#yrY^C*md1Elw4<|^}8y}Co3kDDt62?@@>Yl)i zY7>7Lmbo(q-UtU7=5#rBp2%DSJh@j0&+-_j=F9G!YwEl|jGKSI`V8dkslxsID?2N!xQU-$^TbpGBQ z69>8j)9CPkv}+#qK-U{G{k5UC6sA(wk2FXFvhIte$QVHa zdQZVsS{3>syVgROGV;^in}c#0kxcHyk*JwDWIz+jv+!PCk99x1KSSM{9^03@4}%i) z)y9=QG*RTzxwR;0_Xt1lRS+=&C&w(bWEWZ{9EM8)Z0@xDPR<Lu zM5Ag;OvG&F{rDPSlu902j_-$e^Jw(f$_iA?Lx5Hf8AUvOQ8%(yz%KFYIcbR8;8wji z9gl)5(NdfSYE2r#=M5{_b)DhbYFT>raf~MxS$|(kc9FJ00m$*kw+4c-OUsltaZh=wM7^3Dp5|nPn$6 zoS!^g%tqpD1@EH;mlZJc8ZJ6i>9^;RW&{i7FbX&PURt#T3x z9^J8fusXJ-D9``;_k(#+Y#{j2XQxk=^S%SzdjNh$C@(<-oT)yW;oH6wL)qBx5=(l^ zW_9<~=rX%}9L0gF8Q$1@!e1DGtTUbB9TR)x`UG}eq|Jd^QTS7fqmYz0EMYE#fHP%4 zY=8sPj<)O+bu(LApp@XUI#q#sCgNGmgB;WJKgZZ0@5V^;e19)ygm0mL<+|0Rm6n~^ z+i?Ium5dhOSP~UQh+c)nM|a(id%}4S73ojv8GBL0;iH*HZ{r_(z~_z%z{0Rm^0gCH zf4I{cMuKiw5kL2+s;_#6L*GrUY>$mR6?}ogfP8(K@SwDyHVOiQjA>U-ad}sYSYl3u ztWbIpGVXS5hf~;d%fAtuxBvJcj8KfiE^kX){6OA>8H~x&o~{MV`<@@ty)g&)z*72p z?Y9SjXblfv(zf8~?)NJFt)}Hv(1r;V%^I4{`6Nx@K?p)qa`L=`(x2C8WMJ>F!mEe05AQ$8qMtF0wvh|I;bzhiU7n(E5uKXlycxXw@hVVUfyU}Tw(3Y#=pBxE!u_DKVeF&+Iv?w}r>i zx-@xn!(OnrY?6Zt>8M3mI!2(8VZ%Z|&TTG+@{F zUDAT4QT#zm3G%)03}R(0=<646T;bL|%t!czyTiQ;?ApY*0;l%*fF8}hterppKYrw` z`3R6khx&+X3dySF4`j%IWCqo}ccu5?f+n`qsjXR^&!Xm2B-347LDa=IuXEh2xIq?S zla_0&kl@uJvHKYt;Hf|j^}A%*HvSqVeG&ZweLOsgnnkBMf?8X;-x_Z5XRU*oB7ku+ zjykROgK^012udO^LJ%Wx&AH31{as%Edked8yfeJ#>?KVayG%Kg3(i`|{~a6|2_~C- zO^sn_I(uE3&b&^S|LNL2b7It<4+SO+E>WT$g2zT8F|~(khy{Fi5c#y>)CMtWz|F|Av*@c4gOn$q zY+|7acq#x6+~%gHD}vOj7ZJchIsWmc)DM<=KPrqxf6JX8KvNcy*khkVB`tWYUu%TP``-R)4w?u^=Rr%cZ?#2I1qGL91uJ z1j1_%8Nbr^R0Q>{8pTdYp850?8D9-c`fo7yqz2sVo#lpDKnYw&ATLK!fLZ}`2a`b< z6fKbqpNQzpw|k|xH0bpYfT=VE^@kbOv0-Q2;OtSF)+bQ127g)=&smIvYC(W?1AI3f z2-2da6b=6urMrvAMx|3bq|YHs!ONY$y#%vCGtj}sTHMNj*>MBC#|4;y4oioYcK|8Y z@sH&Kt=xDP;~mk{YcDi!fVIH#Pg8k^8SBM9o>#ncQ+TYSjqR|I4uF2RoG)LUgyER* z0oUXWkCP{TH^DBd=eU@ynKcMD9Q1`suh=L?CQqXzd$F4p3a@ojc9I*L4G)d{Os~V% z*ABjEvu*?G=#AI4QkKU<)(t@yp8^a^6OaMTiUtr4HrXhu7^?n(yuM%Yn>rw(0i;pG z2%#gS?HpNG8*I)HyQLKdg4}sD;cRSNa(AQ0dFvY0c*P_50iq%_I)Q)5>l7cAnt@o3 zFHtv`FqbS)MiJzT*zG-ajf3K!chkwqmAkL8Y-}B9uE7k8^rX)fY3)fAtqtb+;N|(> z#^I{VF_xZT#aPbx$oY8hMhrQqj`y)c(|IftsQPVTe>NDvfzw|sJ*xH5^fQsd3M9w4 z4e_7J6RZGbE7b*p+x=jce)b87Uu}CkTzDrC5FN3CM8Bd-0>_l^L9+ZL%3IhCm@Sx# zW8C{>bTWJUHp5LU3u79wkYa9_4)UV9jW`5T!-2v7Ds)(K&T2|x!<_TFD`&sLM33dd zalgs<0Nbt(4670q1FhYPc$^SOkvhJ=$a35RWAf`llL84==m9-#w#_)Y|MAPd9$Eij zrO6FJ{jqlbP>-YSKZVhUy{?EVb}*(b?JmNjCjXmSzDW}CFhw$h$A{jwHs{AKC>LCStI0ez=%B42F{p5GO4RxB#(Y)%K&97^#CDdMw!T~bT;>I z3oL7r)GMV(Kp&{n2_}q^j8L=dU_T@VWuqzw@uy1y11}d+pQ5Mu0g@nRP~t@IQ9$o_ zoSY{kP-nRXG@yhq-ZL5!5i(%m>>H>M)UpmVV@MWO@^D_zAd0{SS|b(SDhu?5T%eSi zV{(FAd8sfI9Mj%3d?KIhq*M*afC@GLf1$WPr+g{rnCjPUiH=aN-njOJqF9V~j@ECG zMl8B;ub>aOrBw8yzP&QYI;M7MMu6^`p23$HWJJtBiVM*7}Dpc?J(R3FT${tn9;|^G^i5(qQR~*9!or>to z+rsUbkye6Q=_@n$h62}PK217QExG|$0VfP!<)<$e^ddI1W-3a(wh|&NWBd6;otfVAhTrl)!;Lz2zBbP-jcNk1&JxDH52owm6AN0U^_W^zhS? zUi_KQ!GFMiHxbH+T|ilSZK3*ns->0Udgb zlKkalPoXO#T70%l;m`vG-g`A|E=~^K*;98TN$H*%=afOwy>D z(K7lgVBYI|SncP3pXrdO#yw z5(d>B(V`x${#Il!!$1lZR;c&HaM`5M%B#7h;KW$)F01}-@d=6qklr$(d*HAQK_@K> z|0?m^Z3aXJ*og-_%Rcz2B)lwqGW0|U0A_;GsTx@|Zk zP{k|ymhgB6Q}=VZLC35d-lV&va;HiLszIK7B{Yd3EUwJq$w=JKl z_W>V!`UiV%jh zXM0C^{rus;FY=mSI)-{01mms5c{)=&FpUx&da7smbm@D##-I--X2+6elf%?h;USnw z$Y``>BLtqGh!-m}b?bX_4c3dWz`L3oQx*NgDCL_CLtk72DnPnzV%XmPUT4Za7stCX z3UbM)I~XPc=B3^lRbvsfngH#qQs)lj0-HCV6c$R2;;&`)nIjZU5xHd7R2D}9uWrQ& z$zgNzz2<^5+Sk=l&IX(h&zJDx*nja?N~(g41dIFoe{`N>D1AFHU=pp53IYrCMC?oH z8c>j6Ijp=V@wn_V4CUpF9bSVX=RRBga?;&p zMkp~Mdc+f0-lF$=b>I_sH79D@2jb>ORQo6JGb8#x7dj~F;K0B69I5NhfIxgFYtVu6 zQ35HYzbNl`VA!!itZ|q~DRPs=mCq06lvoN91`Z|1F`UsbO6qLgFJVXhk9m8kv0E;O|$AR{Dew&d}Wby1siU;X8X^l&sMClWAW6K!{NfS0~S)?xfr*rXP z;hyeSRl*3uP@1Jbf2_y<_E9iZHT*>G)i0355d0p>D*(%DG;#Gwhd>3E!&uQFBqxK< z8>j-LeU#}-Q647wSuQns#}6ZBTzG(SWO@JrJNoVq4;Wy>o5ie0zIAw!q5OS=IHD>X zMwbhD|D*GPu3>L)gD~pnoKnd)HG@yAKSr+Nfp^(uo6>WzZE?(DN=E8kRSKMgR z*a&H=in~VH-`1Xuwbz1eN@4Yu-t-zzA{x$Z5z`(>ZGK*u-mzGiM!g;AAj zuFt^|OYOnhGv{y7M~Dh;c9QrKCg*VJIIo0UZnZ-n8HJ4P3;nzKqv)U<#wnBQoJ@>{ zz1>MZUnz#V((w#jk!znfhEee=%w!JV6~f$3yQzD#v+q5p;8c@^IGZt~=NB_iCp^8AhX0O#&;S^WeAy z&$TMQ5H>N!;Kxv1Xt+B_L3;b|zrQCzCxsuvd-Hy=AU~XIIyl>pi|e9I80&7*6U4|j z=|>Hq``nNQf9m7s;g-o(LM@9>Zw_MM8u{Z)ZV&-;>peSTAWk6FAf<~_U<)VSSYo~> zHNk=cie!S4__uk4216XBG7LYj&%nw2GfQTOB_z}&5R>2n-IMCWWNpwC4Z%*th-Oe4 zcLT4zzqI(zmv5c)vz_PfD7r^^JLAf#{jhdQa(1R2QG@UM1&?nHQrY6mJ;il#GkW#*j z-Ek3Fa_)!q*eH!XSHrw_T&GjM>O_R55llQK*~V@1ej`Zk?F&YsY-!HZ@L!H{Z5+)5 z)5b!1N8F}Z8#004|FG7RKn=6wOOq@p{MtKnbR61i3(xSa{NZz4q>)`yaPwpVzoz^U=1I}Nx?L> ziLd2ji4TeJwS9&|Vv3d@W}g=)Mm$eVT^z`>m@KQ%fj1k=AF1Ok2N8b?!?EqiKQt=L zZwzGKu_n>gm$CCk{BDUC;;tW2dh6|auWQ{?0czG9Y&8KWr`$hua6tioW8+)1z80o1 zzreg3AEiz+68k|xJyC4-)70jDmUJ|BZ`jA7p0|lprPRR7Gg=JiyJ08|Gw}YHhdw5y zy`08vuz%+-E%u0V+O0%Cj)? zM9)4Stf6>ELK7%EKQPK03%8hOwocex?2w+yWs%9a9i3=o{ZCB}HdwF|(XraU-v>&8 zIwr-X+-t~pyq^{YV16#hkJZJO@vKt`1-2B*CM?$>#5SdID+P_tfi-?E<87jMB!W0n zbo-gmVc&JM68)VaN1U=r{-}UGJo%C*)8~N6GlfSd7Zc;|2b`29#+^CDcK&^O(ypxY z6h>KO6}@s*DGJLoTHK%vPaW~%mJCC+iEY4B>m*mo>?CFxu@NZ?h?P1iG0^yN0&lkJGb5i>UdlJIGgm_+%D?=C@Z%nPx(>j0QjfPTDXc4Q9rx=V} zxnvWB{AT>YXQLu7H7@?wB|rhg!?t#{L7riG%no6n-}^1hgyPvwQNDDbecVq=w6|Qp`tvJ(-ay?zi^MLp6@`<@ zGSAg*n2}k@YtdMYaXQ{K!snej+g~4i96cuKu1Cq_;WaU>4bIyXS8(Gy7|H7@neny8 z>AL2&c6V?uzqx2JCHxj=%}rM{o%+3lO(p0R^S}(Eq8SH^?R|! z8~=hSnt|sR5(f@VXgl-IR;lj{V1AmP|2f~ww_w-qha3jksOP(m%av8D?jxhzoOVC0 z;1MSZSfyp~AXRqMl8dYE+otlxKZ2|mGT+~ML`f!!Tum2!{6Pk@=+;!j@#&s)k7Z&;?ujs^KIi9GQA>{S|Gx*s^h5jW=!GwXc ztgF6cQ0bhuc?EsHu3a=eNE>YlpPLl9>0~71Zh~UG>r%62c ze3Lxg6qWjKmu@o9|bchn?6OI>DsdCdNL#Eyso6zPs z@B@0y&f)%~T%(bEe!jTZ;l@mm`jUj42gij)HE;xdadN&^T-#n>8{Tc8D8PjHP|Pt* zKyDimS9)l9o{vO(TScE)wMdBOi!xm6zBR4;$bbcg9M*a_;~RC1Kf9Pw5(}%WREaT` zi?{ST5@pZdgOfK~sk1y9rbGuw-*E}@pgWa@=V|P6hvVv~J2hnHk`}?`EtkTzQrdQL z3RN8fd`Rb|pXf5VxFG$F#rqw9EDO1Hd1cDgZcuwdPwYseP;emiHQGwo*~hm&Lp)&o zaY9dfx6ppEVN;eQ37;)z#Jqa=+}3vci7`sWf$t0u#21HY5uqH z`FV3q8{_OQ9?KJ~^A^)x&^_YTE6d`g>OT-c;eSRwqFSKj+@+8{DyUGb?}5R)w7nQ~ zm%P#8%loyn&-?m9sj4$Wr{iQKzwc$&;xM3_xwM{td9shG75U)wiRW<9d>>V{{pmC8 zGwZ|)wh3(n8ZxZM*$X!A5N zFUi50HsXRDs4C0!q;^mX_~c?0ca(#8YZNw8czIJWtn!eZoW;77sz6h))W{N-2U(6E zzt2C@#`;3+_^$7ArB4R_8Gbn+ytEIRr-8|=!qhL$Ucnst?RcJph%WoPk5LG<^*1-dC@JZt-;wmd2%gj_xngS7i$od z%e~y?2ZFj5yj5bhxOw^7(MS2B!D0FE%%id9&oi)MT5L7giD=!ui3-;)2Og;yrPM!X z>!t0Ix12u{EdIR=FG~En)Hi*WMqTwN<4j(>YudHy-`FrZEJ>q>;=k$y??V>&g>2&) zmX=vP9~IOD<@C)FQW4D-=JOk>#ah1=-Fb=I5tkIoknD&pqz=1smPW$lphB$K!p+6p9W+VI_ zCQEA0x?ZqGU$$3c6}YS4{;*$npE%rhwH_aJ&f|T|_q4c-^ZOr3SHTcf+q9Qv>5x!5 zmj+QnI;E6ukOt}QT4HJGQW~VYQyNK??gr_U&fV`k@AnJN?z!(XGgr(E_C2=dIq;2i z8uixB=_+zeyOw@f+{VHZPTzhU>2<3yKsuy`T1L;nx*IFm^ui%T!rc^3oi*;EMtSB1%XfA6p5wP_Ak3WEFt zmRtJ|%*(}4pmiC*#}Tjk&wh}k6`g`(kk!vA(sKu^Uk3*5MCA4acRvUgcmETGQ|Su> zVt?YB5IRnx2T}Eq2xY&RdBZ4N=uHH9`!#b><;U9|kDV*TUq{GxEM6T6?Yc3b@NcHn zH>A65aO<>T0nA0XbrH!3C#gx1hmv|q&>_0G%yQl4jGa8qH_4c#N?g77ao>fTi@tjO zuE`_wFausp$=us}a`s6M_@hFmo;x;Vt^`O7G#rI11oh)DB~e`x$--`Ul@*5=!- zyzY2`Dyd7-iuNspkS(Aju)m1csvC-r7x3ifU+{56Ra?i(bOxsBZOZ=3=T`>|GIUu0Y(Q#W`il6+y>RHXN!IHdgl&8B>6->ZZwT}b*?NVojdjC=!&(X*&qT`NqMaH zrKkr;)Z7(LarZq6C43;g_Gw{S1fe!Tl!zsgU3wlq*7|#BS^Ayvx}2{+CCa>U>_cfa zAJlG-Qzpw?IlIZ7?o(NMTdf~qVUKAi@P77<3|MgrU>V=7BIglsZi?l zTqocxkP^N?=6n@nEO*&Mr~S}kDE#vB-XNcSuC-yzW#Pi{wB*+8Ku4vo*l*h>>&c@G zi(|*-d|Jfy1yC8x7_EgC4duw#S;eulZ1IIGGvb7xyc2qMdi!qi^-ZRi`F8FzA#W!C z`4Lr<@22Ki?E^#fMxnYPnu(gMLM)8gqo6c`9g_Mf{}n{CD)`1V^?8`;6CWd{UG$tq zzQ?a3Mh>v&5o(a4`nS%{C467a*=5cRIOEz(#u~iZhp7zFma0f!jg8e>CnpqceC6*d zL`oR%eMzlrgFUhMUXlRSJQOOvkC~~R6M!TqcB}Ov;NP+}rC1-ZEbR>Ky8UIdM+MRu zu>-&*!$!yaHoU206x0;Nt5CSm9BlA=UD1A**)+R+7xQ7eEb)^Sy)XoF7lL_(x9X!r zHJ-buA(G4TM_t5FckI+`x=pHYDkXt7SpACYZ(Do#Akl&Bm56^rIUDH7l?1*;FL8pc z`bR#bws?QqC8Imr3`v>)d*FLJ9jU*HEX@Ty-D+jDw3~}xU^OK%E4>;;6@S^S`6pS@ z6L($t1BpyIIADbW!tGbnBcC^M@k(jb-mCqHN0a0s37C>EnN2}06}c5LLWskW-mE`^ zZ+-mwr4I{h^xu>~1GH32Cvj4GQVe(`Q}}Y2+6q-xr+Gqvhjc3q1BQJ2>5C zNc@_yBw9e;czrvTp2&G^{XdYn8S!4Fw<|{7oUWbI9_yke*^_U+pb^!^z4DT-aZdLDC~Y zMcI@{eQ3L0Cp+`Qd_;6ZLw_2J4JvcZ^eZ!ss7*jh;7*{n&ejylgQ@o>TiTeeNR3oY zKPHR6z~CQXzEc`_>FEz{*u%!PC=`fm8q?$Fvn`jN5(KM`GC~Kbq9Y|I8ie((6-Aa> z&M<1bJ$v3aNpP5!u&4AV={M5~_Dv?q$lAdH2gRB8Vm43;ZXT6SR_n=T$r0zo!&^#Sp-S#s zZV?L~+Lg%k9Jd6*0Px59YyFl0!k-;XB6RDdLnMKpdKcs8?Et$*-#rV!tU>$~H`(lp(A`-bvDEBK z4k5&Pc<|8}zp-CBJx4t)OFaLKgW4pN<^JkB%@1s1ngDV2ZS%t=JyoS3)Y16Zt_>$YUyXw*hQ~sQI}YGR3E&#ngyJn)R4x z#Io`CrCoDN;1ajd}O9I`KBy=PN9I&PP|N{*2oM_(%8TMwuG#-dof2~LRwgiqZvqPqe4g~ z*7^P=<3bjquewkA#l2BCU43HLb$Js~Pu&NLj3$uPrPn&~11n;C)QtMryDe-RavnnK zuhxbq6u)JHV;X5Okw2QBG#_3UCqvhVW^}qk0}w~Xc~5^EIBbVJ6&iigiGRR@=D6!0 z8#wM#nf^9A3<7Lu2aAzU8JF68Dt`T+>_k7B+j|Xzd|^S*m>Xf3X0iRBuD+1|sDZiT ztPJB{X#u23QlDcSdq*rcEgGd|MFfBQ46H4nClKAGfCPENXsbbjMkVhBSqqUj-sXQE z%gmA9oSomq5ThshW!I8`!=XLuImO!W8DEm%0sBxTo=R!|uZbxk;64H4J)e}+JuM_V zW6637%RSOj&C!u6qp-B`!89j94)P67-ktrm8%;ZwWMG&BGs}{T^3?f z{G;7ThD?9A%-|4gpmI$U<9ppcMZqpw53nC>ZxK^bVr}UQ{Q7bwE_cNLi5$<2`f|ma zN#gY%Z{*c))^&7A?Z-pKyL&{JL%mjDb@<&F-*A)5)nTagW$DZ3MIC!}*SMbc)jclt zKDzRC-2&4`BZ6~8E(H9UiYR&C>m9veOpNSEs%$-f_Tp@`_+JX+5USs%nKMwlcMeU! zH!g~JzDhvtVUs9%p2*N88}zrJDuRHut7MA;KM=9#(7D1$Y5{( zx%`QEuB;4v6}<2Q4B>hhqMrJVj_7p1wp=*>42AWD38xz2&*o@U$k$-xf`i-zW(4@t zSvtayIhM6B@LVXA*GzSSbGe#Ye{zBp6qFTGwdsjL?`zth ztkEQ;DiMKH^-}cR762`pQ^dekoYwe|^9=kP?#lz{_Jo=RGqYBecE#@yDXSWxKCpDA znfkR;)1;C9`^~;fo_jx<-r?*P7SmxXrKVQ!XVJ)F&`;Lg1*`;L|JZkbrp*#(;wir| z8q!{+{w_`)`C9&ruyZdj|BgwgqX$8@t6G=fW(463Zt=c&l@JAc6XjEg9?ib^vx%kw zAS^%0_$N^;x6B&(-~x1`+kaAQfoOM+!v{ieqk4j*Thj;AXOy;!J2u@*bd1*z!5usg zy|?az(N)Cn`xYIL^7tu*GsClgU(lgkPZKy~3i)Qu5~I`o=b&XgFDnmg9_XHR&3z7FL- zSYo#?lec)7f|q za#SRPHtyDgn)8if1Ll3NmvJ_lseQ#ExH=$fyG+JD;wTrzPT;1;&Kk4*l#~g$75h)W z-QG{{3cLA5nR}N+<0=!-{trEWXdBzqBab%L7twE0sfI~{12l?bw)f*)oTgu&XVlGI zJ3aaxKW7nCUe+`?q=aETHJ63{!#((mt>Ez{JA67DlzIeM!v^|i&+IY}1LXpJDkTBBfH zY`qCS5q>0-gt_45>*w5~8a}_H!R*%CS5*^o9Yu<&oH0V`IA;o*3L#;*cS5DeK_bcD zP(M(I(0;{FUpw@KFO7A$oI8m}_2=d^z%h_o!dpX8$bHU) z>rU~-u$|>BvBg1fx?LQPkOK z`}Gv>_y|!=Kl;H99Cnnq7WB{08U!DHIu(d^^c)Up3kBFOc29^;u=1j%IMA4O#`R{_ z3=PPwkCV{hpyj532mt;6=c$=X(?gGb5i|5GlW0eUB8bsXmt^nHS-1VW2)f84cVjc z+b!T^BN&YDg!DBUh5? z9>yv|W7RX2B}4&p1QW=*VfFb95W4t+LIu~L70HNDfZ3;nU!?;aZyy!4i5=HKv!N71 z(!smz#gdW|Pz8N`3XM0r%ND4hy%eMnGCkQB@?7#8w3>x&m>k7mvu zBWDZ?W{3++)3T@vp0csN=lr+9*qoiK{-NREg&IH7GdTNLqr1YAL03OKbIklMF7x$2 z0~!fivkz!CzQ>q$I8gMtI!D}@c{|mFJ_RgW6ij-U``!1z(yCq`1Omfi3%drDm^(i4rqH#ikz z)|Eq-6d7R4R>32QT(QRN!pn?spj4si$(#Xw}3os>A^Y1g+lA6Oc z4yoU+n|i5DEV?WEpG852LqzdX?dbePvDkn9lE3K_BD}axu7>HG4}&TleP#Xa_`jK# z>x<@V`WGVBLpO!jT)uDxO-Q?oR#FxYyaG`ck~a@U7VgOJe_TlX)wp+Xk~d0$Z9RWz zJzt(pGj;*B{qGh0JHka}M0Yc^$(&3^Z{pJpGGMFH1!0BIX35gC{fm(jqqC>Z>HCj8 z#DE_X13YiTEX}xvy65uxMEg-YW;x#iu&?2EHEPpqbuh|q?hB?gA^hlF`;9^~%EId0 zg6Ibw{CZbp>waV1!$w|4t_32T!ivstjvsD{2$+6qs%%^Dd4rr=c&v6?$nMldT@4r# z%Lq~?CR(ahH=<9K(UYCwvv46rrF)m4N?vsv*KfP5Vf@U67qAsmN+W_PkiHWetNVN{ zVCXJaL2_TmAmzA+_W{1mj`lclfK&T5H)D)0ALh zjX1U7?bdF}LhYlKSRloSo0cU4mEbyPZbz^y=IGbltzd;XYeT3%wP#lX=NB2mi_> zk_j=BMiM{i#xPRUL}qPI@sWoids6V|1Nt?3pMF5q`j>yhhu&=NmeW9urTZoNMdZE0 zcO(8}n$}awa8v|v6dpPx9uF#rH_-9tg~#qEn$jQVyg#Nu?BQ~z?q5>BPUMzG+uNdm zU%O9x=prJzaUq#%ulQd)VRzz-4t3d#^Ip>#h~Os@y&IRUM5MI7q3wO!ZiYWrmns}b zbi>P1cY{7*@Hv}+ww|gn?pL12{_yA#xWZY`0JtBT`>*Uy7#dcRUoE<{>aof9d zD$|uHYY5d;?NAV-(v3KedlKv?8(>ebKM)!r))9EKd&Xw@JdoVkDx~o7y1oO#aDP`y zzKnCS^w;iVv4#)18I(sqlrxQcgJ{E6MCCCPZm1ad7cU=6Qdx455qa9%q)cl92MA)A zQIBGY=}yDaqA+-y_YjlfeXLNQzC+b|!aw=vse>tNq~AA+(q=@omIh+k=Pw8LxQXi)ljcRz^giOT&sj?G|r9 z=_5lb`XT(Kn&5=SU-`5E@;KbnxzT^?_UHLn?D+W-L6es29Zu$hg(uVwl7fD(nrppn z*8>&_qJM$j1q?eb|ERxEl(3?{_y+EKDa52Q)n1kiQ$rO_4y&TVgK5YCOl8>VS8qq^ z$rbvTzEbT>RJ30Twsr)l`M1jOWwG?zX-$p5V<0~ajhg~kdZX}-;lsEnqHb8b8x?D) zl5WWOlA@A3z}2|)NA74}%Ioj|1|g2_lh~^gvYR zbr&Rr)t3EOM?Um39_sCWe7g(v7r#Xn{$>x6ln4n5koL0Krl@9eQJ)jK@%muwwHD{i zp!7Uv+GB~>rfH)nt0SzUk>q47c;dzk>Cq_O>&q7v>AlIYS|@WnqmR{@4-VJ>4H;1- zb-}ag7~6$O+R+WHJi!OPXr?v^*`O~pk%ndpY@>J`Aa`a0AU@Cj`a2zRs&8MU2thQ6 zKcGF?;+9RCp6>0gAC+u$Z?9IW)Gyxb-(3#~@zXND7Aa4l4S=Eci*8ksuE!qVaFRc6 z`0+Sz&mM}QBH61ypVj0i;mG__BKU*Z=v5*rlKy8%%bi&|%4k{2+JMqc?RfS%!};RB zfV~Ny8DIq+#+V9oB}M_JK9bL5K$>(|$ccGa0}x1C&G!CYcktXX<%+sdliE+?VkdoN z)b#{~a7^Tr5wNFjt7c zrrk3$K*8hGC3QRW8|x1O3_;9)qHqSV-HdbB6rhGOs^EwBEln7{6|oaeZna0dZYv>{ z9XVJDrLTf2kfmf!niUCD$6jh-*ZN82v9WO|E-+h9&7I(>b^Hu~FLGw`-1K?@gW}W| z;gifdNi&0e<{}jiARFo2ynJ>{J1nvUrpw@huQ6uaoBshw8#9eI5t_}c({4tm&OZ8^`3F$wR>&z_;On|p??8ovm@!gQBo_XhpgHGF}7cI0`*@78jV%boRHm1%W zrAa6OPN|)g(XFB{odfK7G6CyIfQeAX=U7ZsP zUi};Y{;5VY(=WH#0&3iAPQD@{V?Zy z|3Az<$&rYt@qu!~Aq+?p2Z4Fq>q8SC=S@~=5OJ@#Qz#RX5r0!yZw;mZTbpTYB5Kfo zZm#f9s7HoU?@C`M{^kbY;!G{^>~$3t3`6dF|GirbNjcowprgq0uczbCfD@F!oW>jf zSo07D2iN!8Q44-~=z7j#*+6h9lpwyn=+j4$>>RoMe7D*{2R-G#7K&wMMdHgTos`k6 zC__zKzynIFEIvjg;IXt>?@EtzA7+qJa{cil;PC1HlnCAYuMg1gRt<<#F|-=B;m#-R z(f;#KE&my$!%lp%UgYsYPtU}QTR5Z^Z2LLY`w9VwaYr8)xXW(+`#0dGQ3I2b;x`g) zn^L`fRcm7Uch$=T&|_1jahsy8KZAND+DD)IeNjw{+Ua*$a?5}huLo3O|2u&7V}ZC2 zz@A7bvfFxhgo>Bs38-BtZ@pH7I>a@sCg42ni03BQi>|>Z)HNj-4U#U*b)!>_S?TYj zSK8T(KW&VlW~({X?(ODE77z<67;E8Fwo(m4`J@8h!sdCZHb@lp>Ubb&j!0QUFiJoW zGk>J0*AoxSbpW!G)`Elt@Lp?EovzN6AgUOqzdju6yhdyr_i*cM>~|pwALnUMDy}q~ z?HX2TvK>nVs)zp4!1)#D4f8{u^2X-=2;Ib}bblg?MTu~}+cuWiIrvoTAO}VxQkYV$ zb$~SqseflMd@u&IAIsDQ$ICI-2O##*VwS`)f`G@uw3rGd(vbP)!@6r>2Q^Td2=RYt z+EusV=vsNp5fFq6&w5VDBM)rywi}zlYi$%v$aV%Pg5tS%OllDkqW!!^2W5A*u^Z6d&5^=_sEs3QE*G|*5NunCU&th@%-A_nZK6$X(tF*}_gjvuN zQ33xsq&ED&=n1yzmoiutTOI={+#iId9jott8u{+O{t$32TzcwDsLWLnf(T@LJPQfc z6*n0Q?fbcBdfa~|xjBV>H z4AxcXd*aX*!+3xZBlG0{Zj{zz4CK*nx_6Yilz!lnh?U;y0kD)R7HwiAC*V$iU}b9q zf-2{)w6Kde+#A3hBpQns0}JPdY7AEx-7H*G#GC9q@W|-aG)y5DoPOW~=TIs0ESLc$ zMssiOaBKYq1v2vM+v&#%5fNNSx*9mNZ~;!}p8Xed6JywZF)|T2yPxdbCyf#d$I-Nm zSSL3o92|ez=A5Jmi0xgt)}ezStm;9Su3?Cb5%9BauVi9 z2>-u9ZB)IiMl&T9$$h@Q)6eXZZjcCrG$CsOW$d=l5~=z3g|CHzteQc>UrfTl3xx^l zeB!!NPr8Um)YFIi!e8`A-9i_8*`Yw! z#kgwgmDKgNfE`T?iV+dquDSNAqNLV)UHW{?vb6}gg@}>uTOS^nA0qSPpBky$uakxL zskMZZqZe^6&t?uKt2lS}b``nB86r0_ZH*66tykJm+^=kg1vZZd2R}n3!x=feNgE< zo>>>W-f=QNj9Hhlvqe`nx_zEj@aiTE2f`5sqUv6+aBzs{0p7vm4D6Y`8!AUQx%v*@ zCWl}V!ToH>;sW7E=VYXtRt=HzEE8XY4hD$+XiiQT>6-|^dc6!|wk*lmB_(WK2#W3o zq?X98C=&#C6|Gkvb)W3@?R(p%2F)kXFry->thP}^UZsZ*AzbWb>$F>47=Xg)Lwv^^ zrUEDnYt`Jr8*^>~#Elt65jnNajM=yRn{X*NCuA<{k)}64K7e#*&uF6_iWT_CdpBPW zccJIIFd*-`B>jTeeVpkuqk;*{=^bQ+tMkbgMK998aV~FHFqW0-63k}oA$Hl5MOlF! zdW-PRGi6WE#=w+*x4`Bvsdn-!4tIT#59ITozE33)vR$$G(|^nRrywNca^YY>K>qU7 z*MW2WYukSxc|LJXt(wjb>r*nLsIwwaRH1JERzb{W=>%+AQa(M7=UqH0)rydjW(N{0 zysHvZkS|)VnImk>-BZX-gkZbL?yH_G=zSl%npyD!lYKRCdub`^zVz}vz?Vm*g!nJ-{Q z!MP=jVc!2jKO_AnRduTT_xL)OF*dGAGToM$NN*Zd(wkUnm0G4Z@VZFHUJxAv>w6#5I0X8$TQf*OuA6b8Hc@;abjS8I*^?F19hihZ*k$ptrbPpF zg36%FNn22<`2m(Sl6TUY;X#gY_wM_5C#)d6+GqoTSFy{nH@K% zFg&?Ry5fnh46&ku=C(@JwV(=$Ou(pHLW$Y1gBks9ifx7AQeENU^`%iOk77=`B9j?A zX}?L^k6->5hi?It{A2e> z=Lwa8I8moxW}&>tywcZaxXNTs_DM?rb8!e;z;mXKu2L+AK{vBz{+>3ZlwgQIFnNpKMdG^eWfG zf)b%BV$DA&J&-pxkFrtTQ)xStJv|dZ$vAtLyVAr$a*u zU`?X3$NEOBv=udokVQWyuJaG)>HrK@8t7a^(|9emKlgzbfT(FGTFM|sJ>s2{yvHPM zEkey^ao711azt#$W`f81a@#;Hdyp-zE__zwE8+mfnw!%#HS9!PI82!b5?t*!S*@J_ z)YoSkzR!iODG9#~3l8A^W$KYhmRD~`5EQDii=Re_v9oWEvLIJnZ^ejp!bI_C2JndFL+H;rJF%v85c zv~F2kO2{G%U-x-quUM#o+>_{_P!L57a{nqf9y zxkiBJx#`So*FYRFA5(jd?&QUe%{&rvYRhR60wjYYc=?j%o(d7ke#ID~bc z?MKrc0~(8iaZ~pIC#YD$Negm^@zy_u8amGHfBw@tuPmn^w37ysC~xhm;nI{UT8OM z;=^^=ak~Ma>bMKy@$;DSGh^^2xkpG##y)QV)D(Ol^Ji~EyuqQtH&*6pt@0}Ol%h8+ zcue>1XQ=MoB1$FQ1_?&%uh%x(-kQ80qloSt{{9ig01BTtK9DyKVbqZxNgN$KYY|=- zT&t$>K=yCXQ7SPl7|Wyh_3Mf zc%hZ}!2#~ln_|26 zJYR5kd;gT;G#$a)jEzz`+W%%sF|2!+cr166Y ztkssY^~Xu>MyS2u>fC^#nzl75=6Y-A`VlJOi^k1eaU8ox%aXKl2r1l-x#;p`BZ~3%cCYxm`kS(KZPeKpWFG*i0;68-3CQ3P^RYIQjUagO6&YJRhx^T~Ci(W}F84Gj`*xD1f%^ zq)+zANGP?Msc}jqAVm-#yp6V!wQhkX7oPml=#9$}CZWd`*Y>iLx)A#5GHTGjLI<+4 zMq8xF0@aFLh{@~7D&LV}NHg-^TqY+eK+QvAJBoiad@kbM4ZM5v0lGH?0KtBC62kit z;u2xj)?3xoyXp58z@WFUPtWl^6t7fkx@QMrbKp2NAh3J;cvF#pBg*~T<6Z70z`MjQSC`Pez*UdwN2l7xNrTL@>pq#0Dh78Owz9TbPy(8 z&i(VOZNBhPRwh-ueN5i-Y8ost{6JJG1C)Pm?P!bk*x0vlA~~^3tvfgD+WMDGYG>*f zr^5Tqg@!UGAjzummADh~$DR(g_8Tm1)Dl{+pRbPZ5ZbFcM(o2kXTxuI&z_msYJQCB zV|!}rXfqze2XC2d@6X>yyuOOFd+mI^Gn$$4Q1)qY`1%vJ1i?jDpRth)j8v!VoNE+D zTf~68;DEw{Y4>6NyRo1a_oph04nH|b3BrP3B2A2#En`0OV?0{K z>$Yy0wQ6$a^Sxk=EXTp&QLe-d zFkgCbtRQNMeq0!)nxA>3p1uhqz5YIJPsH_|QQ;t3>Gef#N5X0yNuHRe*h~KyCO*f^ zS_jf6gCDnaDKviQksN~GIC2x-p#PMDU^OM_v62;4a7%kG?-DDeVU933a?WghOK~o| z6gF=rX}sPhr6zMMYgF%~-`3SN7xHs+O)JyBzn_AnjOYUn;+@mnZ$3UKcF*X(bVw#V zY7iuo(Fc!uSS)Es1{;$)qj#FeC0PhSCp`I%;0sRl8 z7UQec#|$<<6u=&cp7_YlDP+}ZdRw$w2}ySgRc_Z|E*2mMnE`i2w4g>3D9Y7e1{P)1 zhK`Wfj{ymax26W@t{Q}fRH95Y-D~VB@Ajv)#GrR(4+Wjs4G;Qs*Up ztQoD+aral;wDSP+>4E0GA+GERL8yRn#N_RIk>c&amALj9^i5+ivW^Z%YTbDQhHAh+ zCcp%VM=zz_CwDsjO;F3{Bq zwp6?%Y0%XdCKu0GYrOn&8FH1zIj1}_B2ZM&XkSuO{-kX|)2k50HVq?2PEbe!kNcuH zS^;3J{pEiP(e*!9gLmj~(Azf6o-tY43R}_%(*!mF6L8b(&W&wdf4I3K(uxpEdcmiV zXNs8aCla>tV=3K=aw0P!G?f*F*z(9)O0qyp@Y+6R_*wwPkGjNE?Z|=3)V`>Ek`Zg; zN$VbCLv=|kQ52D$R%`Ky9Ag15wkviL4(2c9u)e7V#m;0+8KzHXNj$4fgtS zOY$F;O*S4XTC-tidPH8ueVJ}qyC_XB(JrwigoA#ALDKpr-fWngg&NKg7%AR#TJJ}k zN#`=|2zYTOGcsiTawz%jEtTx~p~$1(I{TJcxz9Jc$b z-z{y*Ne79&QGZDnizcT7`dT}bXOXj0e^QctbA^xVy)H#VNSB8SYB^;xw@0tWt~u%V zFx33B`sL;>@<0|>G?=5m1XEnw7iIqiw)4D7tuE+Wjx|vNGT}3(CWK-Fzg2hC9HR3kN3Z%GznIcjqmo#SJ9n3DA*gT z(e%zPn6pSli^OSR#5P^#?>L`$V9gQ(X4#+(W3hEQBF7#5LngGXF-YD-1w}c&)yK4p zwQ$r#%g2v;e6Vqw$jDGDN8E~Ija{1T)vp{mURjxv5A<^7?k$IIpu7Q#e!0(`#mZZ9G9y^k?}s`tgTX=3eVjy_wZ|gvZm6 zZ%$y0_QPeM4Sg312fgw$ipU-*ohMp)tU(saOr}<5j_s4(V`#9{7?KT!$|j8jL>#86 z1xI!pZZ^LP{9|8otAg0Rtxkq2b79wL?kgfQGYk{qgg5$cp-MFTMh^0i{OonTN}dDC z!=j9?o7(=qQq1z-sR+upm-w-nUb^aWscaVIZG#>ewZyEw zd)x93>?OY{BI9vOok9Z*mmOa*Q#;_UeU$1ueFKr@n4QO^<$E0t$Q8X5)W?i*#GXI< zzzr888d|YHd$_($D-$g*ZEO9#UU4~3-P(m!G96sw#iK zCqlo+et8lDwJ$q6yw2^FUOSV*9sqS+?(VR*;*NEoPRO5~lL)CCkxqK!pr4pN>R5nj z+BBL|fWx`a$+f_M`HY8Qz@MJswOfAI=J83pAQ!%LtLo#MerQ*eBqa9jbbC*KIVBMt zm@MOrc(?;J#jr81EuZ*u@RY^ zaZ;$Y!(VB^Y3|ruk{SymoI@(V+}{)&B1(vr#8i3mUxg1j42*DgBt!@ZPFyePcfHO( znUH2JuCYKQUh~A4)rcdM<-yYpj56>Ha3BDEd@@=eUkl`Q`Nj; z5Rfg~H>Z%UL9o<#&WYe~isHFCJ#y-6Oqu(rQV#9vh!m2r&-|l9V|u!3 z`-AHj=+*PE!)jxJpDX?4gNugw&b^N6+BN+KMi$HI0y{JAD>?n3Xc@+a<>ox^ds%z0 zQmAR{dR}dsy8y7z`;tR!)I5CI0%t+R{YF$QMyw;WD0TjWH$tj@(wxV>iI9VvolskU z+8RGMsF3}qCZ&NM=@0h|b1t9Lq(o3&c8Qn~Kf$PCZ-_Jn71uYpf`Kf-@496LqAfj9 zph4J|PTDI9!<`Z$FSQC>NVc@qBeVB5Lv~LJn~zl&JOJoV77H9MTgevKQ~1`ROw#^Y zGnx|S9K-bG$E6j{s(+|2r>1BRL~7p-Np`GniyIntpSwC#@Y(;NstPR`OCT;0TX|V- zb1LS)Ne0Wwwb6DvikCW3os!OCAdr%;g&Nt ztDEBn)h_NGZiGx6IS=OYFE#-0Jvu5rFo;v}-Jnxb-P67XKu3#OQwx>?>GyVUNC z*TE1bdIr+M0i}gMp}WxHZhvs z`(^E zoo;^zt(A?@$uH)kCu2${P#5WNnDASEpL6WByNfKf_%)+}-&qQD3ox3@=42b&AnkuH za+chewXV7qfmM;}9O4-H@x4E7&sIT{v9VUp0ZyCKoJT#{VJ=d_!;cQ@jwX7g-0mIOhusx4cgKj)-$;pF%_za#jVA3=bgQe^NSe4Av@sz*Xa6jvdP46M0t`x`OX)9l=8QRa<7kr#; zuS&be1O1aMwCle_xeF7?pcqQzB2C%g_|kv&5Liscl@CBfL1mOYowaE&AvA=wK76qb z?awgJ%ITC^@_{2t=`4ZggXza^9!YtE!h|Eitm~3#dv#+762Fr@Oa-aW7sXAy3m^OT zIVoV@K`8OmYZlt);;sB$(k>GHz-@omR{9PG18^?%MiWP|OL4eyC$OV5OZ0NnPSgU&`7_u9tX)*7_7 z-&0qRW@Q+jVBwzhZP&E?e7l?i{%w<(r)6EwnV{|_yfZNA+Sg<^b@9{sE$sAD4eIjX ztShDX{dAuDyhv8V4?G8{@&h76?^B{|>`L5$_0A+4E${2@4M06A{op z(_q5Sf~}GEVG}cRO-Uz4F^8i(cf!BF#3Y%Qf<|0`xmAQ7^qrg=C#D~owb7AI`D9G! zbp~C}_nno^<9(PD<&j+rZ((bb4sm!x{IFJHQlctDq1mSN$7ajd_=6wkpP}&`9 zgx?BI9kYA4I2NMg(mN~%oK#2V6JarBn!Rfc)ffO@o=&wOkbW7zQAjW+1Sl(!zn_jR4*EXR?}`a# zHU0wJ5Ogh%J0G3Uq=|I}r%oMzg@`tGnpXvMg34_>GtCUJ7Un2GSh5 z3BkDT35{b(WX3UHmm40lhS#Ph3AND!XXfdlAQnIC+t+=eWfwVFGp!r}x zwVa(I6v{Xnq+3M#sW&?NU~b4z!P_8Zb0$l3NsHJbPX@Oj@o)Y6Eh~=)v~dnbcFPaU z1B9l`+XMarqc5iVejUnP=#*C$9Z9sW-7;<2UX`p!tv>p&d5X&d=a)M+oW@O)o}YVw zhs47K`u2gp2qgiY$+l~jtmJoql)ki{9h=rdk@1c)SN1`Tsoq&9Jz@|FOKfmuJUb$X z+lV${@T&7{AXp=*}50cA0 zJScXx1bHm3h==M>Y%~YL@@3!7DlOY#(go$d$%fBv|Bz^fb2W=)QUm^tGRc8RACcaa z19A7*wAF&V*|O<9{}WD0BGX-5ec`LqD}f>7GYuEw9Gwz*L#cATg8dn1xWJ4eQJ#E1 zO!Zosr!%iA4sEcR_ET6ghNQxr`fU1?lIivYy9v}Qez10v3+$Dt#mKEoYI-P${?lm<;;+N^kJe$Qk-9u>$1hmP%G@ig`8kdCWW#38e zb{*l*g+g!<$tT!gQdx3hRnHK4P)f=kt_XK067Yl>)?Bb=N!S0ypvZ*B z>V*~;)DQO&yb+P1O>^Q1d&mh1l7Sg?1M=|5j>rvQeO&BZ5c@`U{5LJDAlxcVyH3Np z?B&~2VwP)ZEV+fcZzY6JiA}xzUtCo%pK(vkfk?BK%9$TMpuR`{_k`{nK@)5<6%+g} zCnk6Il)ZD1;4tFwtN^4R>8K7eJ|U$8j9$W^2WNVtE=`ocMUr4_C?@9yJE^jl2uHTR zvTs?dm@8)muzyfe+>nFiLpf2?Huy`YAq1*FjN_XxxK(FWrJTqVdGdLuKIxSSqm@bGao7pVHj|9!xuF4e7XfaU0*#PL9+ z^JBY9xM|fF5ca#F|07b{F+tX~*jQPn0AC=hpm8R<1&j)9OzEb}@SxCF&G>Btt}w+7 zRmGrOyg5>CbdvE`wqT?IqhD0b@}ilKC5$oj2h*MB_l@#R`R9rxO?Sk&{=-FyhKRK^ z_E@u0asv7`-3Q5wPcpZGaG-X00el3=$(8!rNt=Uvngr`Dv_DCQ%@J@F(RAi3u!>lW z?3jhB+q!O9cB0B592@N3Tz9`96!O^3JjoK0FScv=W45f0XIoy=i90xXK>a)EY+=%N zXJH;Y6$I83p^Umerz&RsD!$qu{Z|?D8O`99{?egyx8i5d1H^`(`dUuX3-GBg>kiC> zTr0F;p8_f+J> z%=jvnCowf}_D}EBPM~kkUkIL)ON@3ILB!KNo3}qh^2F$)%a$O~$Ace8CGDNG;2LdA z3~C@1vj(cS6L*Txp~+bgyinV_*^^xCxXvj2Q1*kUvQ(9iJfhKVC8NU&D-15I0mzJ` zRWh6I`pUgLT=n08Ua*275=Ki`N{7x=p$C$Gyu;%DB`(Dw=fm9N7PomALdOz z=NbdV9nC`sQZuMc3R??dcnG^Ujq;$zKbGC*9lUe4cCSx*HeR{xsMtgenl$|L7b?*7 zKkDc29K~+0IqEg4WG(nXC)1#xIH0;^v}O(T7n>I@Pp0h^j~;qNTRi`Rnv_D7hnPRU z2=HI~(v>vqvnnXOuEONHaMfro+K`){UP6C{A6fKZEEk)0ol7S6J{0!m#s*|+tM10l z|7`eBa(p-4I$!=e`V-NC=NEB-*V%yOAN#>or3X$P-f6Mp4nz~qA0`ix+L)L}NfBe) z2UckcF$k{}l}0Y4CqaAop{d7)0VQjTT|3C|BM&~|yO+;+DB95g(F&jef;8%679Jx6 zMU9dGj>g~uW^Wo+moXAXL>oww^rwwiqEgG(drebAe;TM%!h%3}9Z?v@yyGjs^bQS? zsBQkA5jNk+UdOE4s%@}%_F9+#A;hhtNT%|V{PIYk&s=2uPcXqhjWpZ7w)kZ#$mz}2 zR>SSl>pM%nR?vI{y|jZB?myxqVC^g~PyJDyMkm!KGut5eX*1&3_2^aGF z0av5?S){+e{f;Skcq@YE<`9m+-;r!VbM^L2)S!#n56iXCCE8M>^RbqLC)5NGCMK)U zdc)quG*(-b4?B_=nECeHhP`|k_%pq_ww=U3jqUh-G~%Q?b7GYIWhKjSKrQH@EvfTu zg)7#KRkk~bB5|oX7;(w!UpT&kn$ta!!p%ThqQqKt@@Qxl;1%Mu0kE*nW3{-`2@nK& z7%47qfnc5oqL&PQ311SOn6p~zjyzXFaP7ky0c_CDASP==x^9Uw9G7erz0j3q=4pV9 zcr-NP=AmE6eo_9kQ2h>}x+XY}6yhHg;{gU{GbZi zGPL~=F|kB+q|QD};o7(w<_fYw!k#O!avM6iIRWUaMyY#Vi8Qw^6!m`EOi2v59afy` z6B$lBQkl$x4iacUf7heGq>>4Q?UfsD25sItCj!|YxH3WSx7ZvwX$s7rSrqNk$Z5DbHEFA|F|(HcIHEJJ)|7&! zczv}`a&45p&K~xoLz(o9BVT$2)|_P*-;xLYEsCb2w9?0OyNQkx3e)jH4dr?i@w_zb z55ekX5)DG`m`=pkG3KCcpNgg~LMZD7gNp+#7&oQjm=c5iV9_4l_m-24M2cI^9@WBd zrVx9q%6it3$?q-^g*sVQjZ$*WkAovMea}R$4bI4pzaqY;LXxCz~A`U3b>Bm5T~^PciIvN98;kb7}Sr!mo4SLPpyGt z`T7w{7H3&}0oqurkXvL1IyBfatUiN3l(&XEcMSOrq*5EX+=bu6-3R=ag1y?#zu(ic zmbwUQlUrTa-*1t(ty&LvHJmgF#^MAP?mqhY{~X-Xk>!Vpv9lv&u;LAQEqAUHT5i`} zo7rQG8FL`a*QL6Mo7Z|5J-{fI{p;Fh?J)r-k}R5Usp9(V=7!gI=8h0xrqayWZ_W!u!)y1ndg0Pqj4Ohv!yS;kM}a&(Z%Mo1)qHfakR~T+f6UqFT_qwN_C; z+}mKGh56VAnv;bf6lm6qs!;mxokoJ6g1id%YIBliWO zXnG?bB*j$|bk$<%_T!_L+sXYJ;TLFx9v|K$dEKL1p5>5p1d`0}QW1dRV;R6AjE9Y! zRutKsXQ+T8dmyWOb>ZCsf8_KU8S2O8P}j-nzI$Ecb`Z%o7E1>oqtl$rejc})AU4Na z44TS9K1*LH8glp8NMBB*iyHTnZ$xfR-R>f@#|8=C^R0jjk%n6q1m*UATX`x$xAzj! zln^O5@+>cba1jvFZk9kI8R(Vpk<_#xqURZTu-Bw#s1XOoOgRFF#0>1ovo8beA<=07 zIz7xoH6F7Na#-k2A0HiyPvlchog?K=JlT-X>`D6#JQ}uu85Y^R@-#>FmPGS zt3@gSk%I~#EPWkq4aAZtrlu=TL7vQPtxybZ4d82xb|p?qTnP!7A8Iv$p`@j5zi^r8G!2x8v_9wD6z6ab73Ywg;8QHPkcDk7ntq(v! zC{#s8H9u+L1cXT8q9U)lovDrgj#Z-3c} z^^gjGFcr?dh~~v4m-NQ~CfJv5uRT-i2StCBSMyta)#eU4rIZwkKKs6Y2BdXw1OtCo&is`j;txiCr72|IL!q$ZEU0rpjSx{Kn1)qI(Z$J5FY^OSv~3e>6c z>6U$Dok2(AAIx^lQq zERokYpA~&;N5NC2bGZi`f^JQZ0@Vm^v?^K>Rk!B{^35F9a_FJpA+S;lNP@7beD z$~d(9eJYrj<|-~PIzZGy2f993;SovXt-xJ_C2@foY7jYY(_`Pz!U#lP6>Ee*DL|&a zE@r-6zPixjBseuQ-#ivsfSYY2&aN4@{^BE*>bf*DQC-s)Ejh=gbBO>O zl`OKGf{e%ya+oV*GvBn~(*BNIYY=wbE23`smn(MY<2wK<{j11B{kFkt1`7>0BQ-Ez zE@d$RDHQvY42FuM8)j{OQxqQueElLIfNGeTvz*q81ma$-7ZJ~gn~8p9EUm;|{tYL@ z;r8|m@S1hEb$DA5DGdZBs;=4Lh;MJiF+K@t0upZhbyh0Q7tIgZR-XxJ$Y?fGG{QTBo^8cdODLv{sBHuSuc6+2aOrj z?#yLS8!!lFpo88%je_9J@yI#zgI1J&?TcL!#msahsggHG^Y7qE_ zP6h==Cy`GP6zK-SRg|gV{LudB{Y~e{HC+#e0`Z?IsF_d*3do;6=c^tv{bggjuJU}G zGfWfuEJU|e_9bOnbKd+Z&UV4XD7;Xm-iPD_LNLeeo-d|dxQ70_l(K7Nq?yYdV2B3v zz+Ts}^$sJzmh@ZYl{-bCBie~s3L%!$78t>=I~($24d!^DNrsr|10?>o<7{824V&x< za+I@s19?BPZ{5r!_(Xhc)XR~ARTtez6$EmqGyxtW&)eI<#nQxnJ+YamvuL%@6!yGg z$q^;%k^$!KGNFmItV77 z)57g0{vFR`g+uDG=KU(=KO(rceya$VLmmE--}O46BL^HBfko?A;J78sxWspU#o?+I z9WZfQW^P0^O$yxQcDV;P|<#(%B}w#Pp^Ahvg-ch{qE`W#6k{0n+0 zamEvsCesN8(55yE{cBI+$a^I2ls#&fgR9|Y9|7y z+?@LM9O4kDrOn~CV}1Xw%uc>xIblEyR1dzmD*jk1Dj28xyQob2HRoQ6d#8K|PT;ip zBb16IuYY1ufD~v__}&A=1|@&8gk-69457|(D)*lqv-=~Ak=uchAI;{cFB|O&e*#5A z8Y+teC`pULffYYvoRSw(C~nt05B;4Eah8ecjXbd6UHkjXMYn`~VG}Uk;`vq^URC>6 zGo3PymHG2m>1e^glkL^UO1HzFC%}&98sVvGQ%dpJ2d@~2$~m_p2a_R@);8t z$?QYZcIM3k?$#eWJ%uzZ6@vLA7G4sC3J2eSeeBqEojic{3i7g2>Q zXx0|`Nl4uJ4L);zbGjunc%9opFgi$Kq78TR9=DIbTz&SH3xp0%kAwdtnSH!gVdeLh z<;K=Wc;W*}z{ghv<)A79S4c0S<+@fxvjBgeO1=r8i5)=IR0t~5JvW^HEpt1h0W#ug z23O1pFYmS?fo$Jh)&6VO+CX%akl&y8-u%4ZJ6q$=I$}{lCGmAY*)_57Cqw{TL5RN@k`Za1$Dd zen?%>$>tc~oQ~t?p@6&Or5DA|L9VDfu2oE?Vz&SacA~ri5QqfD+?(ag1 z^;`-|fogWlS;uUE@OdeEX=3y~)gYz9+ZXwlZP76=?NU4#EJfJ%*-}Yq0L|4d^#w9z zAC=aZw15I`e7onk(Bu;p}ghvO`=2(S$tA-4d=~00Hx*;UckyK zc4&a*`1Srgzt*!|j4$ELd*pu0nD?BCytnE-x+% z2#jE-25naR<11c^e9_6moqEH;FmS%Zjk>z}N^tmO=nOb?;HPjCW3IqD zP$pwwL9s$yNrmf3K%7<+Jr+Nm8MWT$Inv2XKD9`T#^5$`9sTvAx~1>y4di23gd5or z#d~wlxU%HtjEpL!vTYaskIxV>HQ+$9UpUW8KCr?)v;maD2*u?B1zvAqMHJcaBm%rz z$^WyU0k?6-*&mj>#~5Yz8~t-9^+4Ofv65bdK=Jb@V}jZi^_6N0!@*>ao`qs?ckKAY z9!yH<_419|HJm6S;@e=2*=W`Fe#iU`#~s9WejT|}tt3H{w~=!$s$F)zbD3yOP%vVg z5*ySoqB7=_Z-b((;gm^L{b6SKb(}*lf2Gt;U}9~ND7MLRy{JN0*Y&xgX%#tsJjp>2 z?wBH1n4-f)+ILLGt@T4!BmSll*p$=okuFP;kb6RIQTt&2 zzpz~)7mYoAYVv?bM4RACu9dZBE(T2ku_3qRF3rQrFOEPAK!+KGCgzT<67lsQMQkAS zy7jx7SYWD*qJY5Y;Vt~o_WpDfO`kgqim}J_%xak|@JV>&=zixZ1H&8ekY#b(1OwnL zAGTYXOPxpTJ9jm_uVjvgH=C1TBqAK+rAS9Km^U*}Dz`@X{y^Y&)Gx{jAwT$+GAt)e z+Hh)(@bOvVX>~y)og4?i6eV>tXbyD7_)91r!tP3wQD`s8RlgMd&q?lurauO4-WPW2 z$yNqHSzkqvpsy7&DH`y&Ri@y0%M0ic-9cbWa9i5UQP98Mi}C(dflyu^wWBqLl6MHS z$FWNcAN#@`ps}WI%XXKYL+W_&ZIplPf{-c^pnAQKyD#$7h*suH{34&{Gn363zFbV9 z88yk4bDzEQghKGdB_KceesIURFWFncBkZV|l4xhBLx-Ajdz-5Z2%O%viYPjO+P7X7 z@(MMZ6l)78dfzlhS3+2%C1PKrgw%VUHGDrR8a3WelQE0j@^3nAFkt9RYtpm>x7<=` zHaw6T^q}{SntmHTC=*s3B6)+qSY$W|Kt$wjE^!OIRA_k6BF8;|tiRNxX&1~NHTy&H zj|@;>%($<%dw95FHtJt||2hYJ*iNYT9bR^?D;VSFMYi{IPy0X?o-y@mAZ(4;|K3_+ zsTXe@;9+t83s(FSX|xn_p-F9ItTfByf7pG3xGI>&892|P=bxf+4%&4enh`EJ2z#)A z$S73db4!~TQAOy)aW~sYASQ+2RJ7LOxZ^UZ|ETzlmROxkR<())+WL;hRS3HFJK%Gb=E{() z{}qlSJ&iPYD?@|$1gv3D#7*SVXW%x!gaL{MtU!OFXrSjzt#=Q*g3o#9>7T4#DOW6c zk+s_8AFE=VC6Wbnd+2G$^Zr?&D9}(BjSh|;hsHo4mS~SZ{hICjmLlIfbC;;B zL=}|NeUk+9$}Y*9F?Q*9T*AQ{2~XwgT$!8?DqZudu~ zmJoWlVwCC+bfBUK z0%+uN9rs7kuARzs4nyN*(B9uOPE%*>7ILBXmjkM0DqK?rOyzQ?lF|2EF4ki#}7+ zy)$5%6Psx^>TQZH<*$7FysM((QnTtG6u^87)0=%H>x%*;?El#~-*gqbu3QJb^vrls zG12kOowq`POJH&#eKcoI9)JZ)aR&(ysxTHx*5&BZ^xeX|u@k@j9uM+FFSP5iI~NQJDyo z4g%Zm75V060FgC|r`CGJG@#R(lDL=N!`fruvq@AR@q@L-%oHGac~$mww5O{q{QvzITWc_~Q(nft*wn z2g|;-%?$VxN%VbPUa^;Axf*D$Qe(;&yt|W)=0~EqW%!NL1buXx&;+;*WMB`G4W+1D zv^mjKnq?c>)3^GOx;;B`n9=z9zs+q_3S3kv&wX=uI42L`w zOije}Cu>WQe%C!p6~ zty5bs1tA>lm|||j&QSh$9{Qr(YRFsWbx1Smv_1IN`U}upe~Ubn^T_lCRR}wu$t>(t zsT`@G2l7T%bQ z`8ooIX3opJNZ6%zIEt%*@og9*ZzUE`q290-P*S@()Ur5Acz)AyQzYN#@|#Oo3E!>3(NL5ZcoHr!>Tons z9j2n~Wm)c!F7EzwPV=A z{;ZM%TsUtXT=zDkwO*{Vx%D{?9I==q8qhgkoN)j)&Y!PgN!G~0(s#o-aa0vsTGz{0 z>!l-mPX3Pm=s>L3EW~X1@tRsfkAAqPlK$4(Pgj)}2_q`@- zJH}srFR{cz-H!tg!eI3_$9-BYEgdqXFr8=+34x=f2Gtz7NkZ&Rdb%AcuR5J0L)M?% z{@Uq@e-od{fJGXZQZg2rx{tu-l(4k*K1MnDVWB?~B zW?ePEUA(qr6^32nB5dhrQ!v!t;C$INM5~%j6HMOappd=CD)xl>PgZ)ZwEmTS&VQs0 z@HcCfTr|3pn&4!UGzX_0A!Fxi656Z`DA^CbcuSiPh&|4p7*p8~s*QtG{O7rqhKgwLYuGh?5j%)G0$85qc`FYmie+zrOyvhAaDL9(>NBI&grbfE5b;PG*a^h%N;D;i zG?DMU<{k82C^D7yUQMu@XBqA=){etFYbH!S6aY3sBep0OKzC|MU;~e$L~HLx3i7gm z_3lhh*V?N&N}(xa8D>7n+F~L=#hVaW60ekF>N_Fe+ZmGXmugbwWiprWh(t`cvXyvS zDR#@9kZDMO#i&@FKdz>fn8^A}_y8#ZkpiklEO7v_@h{gu&|KsHEI1|UXA-#`8bkHe zTU{eER&f#T=3hgR`wwjj`5B-d^hc)Tf{6}s=Etb$gQ}+6FDDNn9RMGq-g}CTUYA^J zfE&rEnVyBUxdp2CP z^WVbB*r?vGiZtAuuU=C$S(Q{rpIs!>CMmZZ=%f(UY%l1!6tX~G-`4Z;7WX77x|pi- zB+2*q5jRDd-m0S~{yBy!R#dNr0juNSb%ttdBYu|N&+$CC&L4AuC<@`x=9nHkszLwh z#BUHs1v7|Mne3Nnj9izidT5i+TKkAr_fEC*SLoL~G;E8lMf0@!!JM-;QjJU}M^R&o z85%^kyI&##>`4!AWZnOA@)?PiW0|7cJEBX+Zc@YC$J>+$kz&PF1jck^?%RHi7!W0dSyIr|T{` zVBh~z9EcC>W{u&LZ^=N+466c1T8q>(0v z(c=>V4DIA3!KPd#*@-$?v!%p`kDwHwG1hBsmN`4VLb zRha+XdfnE}(IO}c7@fFe%9_RfEuf>6Sj8PQY9TL5)+!)w43bboX2yDQMhIWPE>1ck zUX}U_Q5J-*)L7Y9Nl?IDmSRDy zzDHG4!k_`w@pQcYC=6kZ*EL0U^-U${JqnYu>-|R1c<86CqfFzvmq~f+0#AW7{An0T z+@eytxh=7lEf{AeMXX%qok5=0s3hU&FmxG$;s*qT;g$@6k!bH;X}ug#M7&oQomhDV z(P5VLvM6salKK`>k4Lk&7GpsXA4N~Q2hYXzAi+bLQRS7W*iwg;lL?~u($mk!h&FEB zZ$8NvXy;4Vo-jAI^o(Sc=gfc0pW||YWlLL*s8Skxe=GdY1Z7rx_L1x98FrWYrFujs zK~?2v{_4j*m+%nTY6#FJF6HS%_9e?8cZ^z$_LiAizJ2Ad1b?}msr%_0Mja3H?+5mO zojr|FaQtvVigT4y(ZT3}oaP^$mUr+`fQCL=E8eevk-I+iu~VvhU8F^LMDg&;BMeRv z^b|=%OgP}WH%M_{jEUmHs547*q><`UfK}3U}gD!tA~Ou9#6e#elkt|ILmKxc9uyIFXL#0B)Y)sqzVd;+!FiUy$EVLS~Lv zVgnjOdqEf@#lYGD6*{b_Q}R#`0u>T@(bx8%#~RKreFmN*V+INg_7v zC&}v~HcDxKj{+u84K@YC;j-lQJ?89*fR^b-Qb{i=U-8L#lX8p&X^-T;cT<^OtOeC! zj?;m#yzyNx?v*tj8Nzbb;?BLs=6Tm0gb_hcb|+eBSk~& zSJsHP_RQk^2fv#b&2-W>P_;oQ@-47gk~W-wKwc$&{O38~pwEoE_C9Y#A7-vz)UFQP zwIW}~jz9LQJt;P+XHojIy^_BZ?4L>YS9UXPRgVGgx83AYnP2yu zzagf1h^_5XZw{N-Yvi{H>OzoW{8-V(FtOD31cPdA zY5*BRX(1av)6d{3x5Od3 z1*liWq;{MdzTCPvFq1>aBTrqv#iC51TB&qG;q36-q1mzL>AcYwLw5Ne4L34h6d9WK zJDCxK5H7}H3U^wVRn$~M_G6e|kAdQ1bj(E~8^J4KV(H1^P8a}8l5uRpP62gEU8a-& zuw*XzyN!N)SFf71jywVuXp06%dES2?Wu zOJT|0xsK8WRt#W6Xz5M?zvYR|EI2RGSCxFEKuF z?D*MEahuGOc|?WcSMdn~;GNOpqHMU*RXZ}#>44)&46XL~DQ$jZ>0}tX#K*~AQQ=UQ zW2Z5*mNtuzF55SHFzkpsc%=D6QT9lna9Q~VS*z_UG-s*LiJU!Vi%F6+N-E{HMIDUbRWJW95>hgghaxn#M|zuuDR=apEuy0li$P5Aj_e z0?_3!(xlItRY_~9Zu*9d%u+@udnp_JZ=KKrmowVl>?#TlKXKeSDkgRj z+?L1+k}@U%c<(4gzItS^dweBiNxF=6jN+3ri2F8s-Ipxf2|f)?&mEqbaQ zc)UNNH%(V$sq~ZuH!NI= zen&6%SHt)wq&K<)3i9Hyw`tKp(ei&C49(^iVvB`+#<)q{5N-ir)3^_1x) z+JdA3DNp$<)WYQL$2mev=>VX!;g{I%N^X5Nx4{-q&<6Ze9KIKLm!`gWjU$?YL|KH7 zp-I!FQp={BDI0(K2)j;*f&s17@$DUU_fsZhHUGCz{#G~XiSn6m1}X1mjVOfk6p)wK z8USTvnM6GQ9G2!yCBF+cRq=fU^9g1CA3+17{BKaTe<3vF@$*RPuPFv_%FNGN?NG&_ za{P8PX+#*Hvt}p{RYyx9CcK`M<8x8=S(tC2Q{dKx3;3LAP0Lz`EtItDO_zEV&0hk8?)( zWz2RJ99E<$gmk}Syui~z%p!e8r`BU4mSQ88P?{{mK+EH@Z*~gyhZ?l`Xb6&bi+M+d zMs@lfdI32Y@x2HTlY0BLC7*GKj@>q7c9zat%${0oZ}i+`;E|zyMRCjFv|p?86Cl^j zsUZOv)ou%(U)PIkpFxc$>+QkSeQ3IviLK4ZwuC;=3MZW!}Z_5zS4H`Hzm5G91>pQ%VPo{`?C?E zj}n1oOdgL2qKyF)ZZ1B*OYuMFHkH0Uay2g@Ee$P{6~oTbZLiTI19Ok7h1OdlI+aD5 znuMN`uQN*fzHH>_OjBvcvA2p*+MBZzQ$dC8Pe~MknIRzdQY=n<>b7$xh9ZbxnX}wA z8xe;D0w>Pg82|mR*G}WYY&TW#Q5>sL3!hg6{0W-ON5mdbs+`cLkV>A1mFhZEFZzDG zOv3K6M4b(%ZkjAvmQSX4*-}otL8u$F{rOy;R%%TCS&P1n zR=B(QQ}WssT6_oEYYOcTeCM;9+hzMtSFC(AT$KgN`z>g&!`7;EG!M#ai3%x{@9~q< zc8&%U+!oi6(eh1ccoNXz`;YPe;|)vzn4tk;6c3&EJw^1$jeBIxx-{VKL;ddxeFbW# zqO>a*Q6y5)#ZY(xSb3rg!|jTlY`rvCu>#=meySz@RJ2|oWF9VOEbwLFOZhkB>n%_E zcxmE*Mw`>ZLQtJ~Pj>Hxcan+C{|aNE-?eJEol{dlm9#j;kYBDW+W$)uQW+<9WAsyy zB;cof+*IN-)Y=Ql*#8Y2D$o8Mx!Ofu9!GNnPoJcPC~1P~k!OQ0@C%&q$LiTk-O);4 zaO>~MAu=nqSJ_IYtjsC>!gq9UTkg6hXRk#OfGGCDg^hTwhcI2xCP~5^h1J=i27Q>b z3TwFo`$1WtXh!hEjaWZ{oal>o+mVgAEm!j-E0@9z;%tks2@8PrmpkdH&)P)DG7PBl z=|_%}p0AYX9`1w8!o+A-Hslw4;ZC+^MsaC{3pjp?{nLeoMFRpq|6qZ{Bug;h^I&KE z4O9yGpx`97U!k#f8!!-eW#|&B?bz(h^DveF{$qm9iyF|$fH0>`*6z^|LvSuBw8eKe zpbWMnT>}XuxcgZyChfZ$9UUn4{#+Q4ELw>~n3qQNp8iH!me#UWz>2d*ELjs!w!28a z6->kHGUzV_ZAK`fy)SW=E$H4$r>6?sn~e1&a;Io&Mca9Dh5!vyH zoi^e+)Gseqs3DhkckcRLtTV)zdB0Cz(3>X-3J2{+{sQkY!0Og_wrsHJLfPt0icC<5 zK$m^ETJt*a+Sai;z2sTKxA6_>qCc!qQz#FkHw^pwxELjdSwrZpXN55?qVZMeV$Aw0 zsD$&uR}_ESF0?+fF;O3;ltbAX^7_F5P?loLi=R00{{)4;ygz9b$V=z8gf~j(TivXW zUkbU7Uy^n<^wI*#&_}l{3^VTTfL{W161LZgN4t_%2AtO{)IPQ$vC#kd8Ef)*B zK-7uPZg7r`#Bd(h4>g5 zR&;-~TVB)u$hqN(!bBzf?F9c5Ejr1G)s)i5R&TCv$4)2A4w<)%V&4-6sw+Tul_;*L zH1J!2VX7Az8H(a*g;F{hD$o>?YOJ2bp@Lxx$PtnRPTvO=a+=ilsX9o=8#UW$#plJf7r{Ka>RKe-yCPZ{E64U&RsJ@_bUxAWS8IZAW(2LL?h5A^ z+mdRvmkN|;(4%;W!_&u-rdmBG2*61(Q-oxImTwBtE<<@9zmT1mDCcP|#qIL1Xwv;K zcJCrbR^q3PoX<{K%QwQftO6K751@`wT)IzV_-;d6VH%q4;Zrtdx(ggl1x`g8UKjcV zw+Sq>Ng(>^u~T?Cj(fC;xy(etj39ia-m?6sltK9~{GwExP0@`^XC}SRoQWZqB9q5A z&66nk%;KoQl7e=QY>a#rP1l}mrQgmDv$CHKW^WU4pV38ZoF^pKTw0sI@CnDhc5kK; zk?pMl<|f&M%%7@EjQSuUJr|i92}*V< z^UW?W0pUNRsi6+P)F%|>*U}`(5FT#l499y{J^!#7c*7xiefxLwsPil>~f(Yq^O!nyL%Y z0l$vLkr#q0WTVqIJK*kfYeK0?;f=jOM!v~3W_k2cvFQ(^E2iL6v~0rLd^a2g zt6ZjH#XbTbU8^0JA|6gbjt*PHsV!9lRgYIrL@dSVwWX>#1oHl%7YOD6a=LXsarNfu zfXQYr!{<=Rxix4x6)e^kOXJLH&+$11K8@~W0ExzA zmFi^xSl{wY!`8-9Slf1@eumy1L%WKiBw7wb&Sj>8!wDwTQ+eI zKOCdRxNjkFEig(TA9d=qOTfqo&@M6m26^_-A;?T0U$q#F9JZ8jGl$^^6-eM=s>Ol`k3WP_tz3J?$UqFi2JAEh zccr`qqeMVey@1)Ayo;MBB^Mb6WmvhIzqgyD8VCz;swp3_J4!;3!m#<^E11%Pq?tB? zvEVkHS>YTzEr;|pLjntANkLXW>+X)Q0X!HK{SQ?os?1YT`Q@ehBnQ|LRJ6X1BZFc% z1-jvn1@WB70tdy*8hK`!QOAg&7csd{7ey>z*pVfW45Enwet!cB<11h9jbnqYu( z-RwYe9Cs>6`&`w7sSYucqm3H>^0bdc^~4N;Aoc`wSlJiCh;>mCA$BR)Nh+*Tw@lVj zM~dFlD*69=WpRX2Vdx2L)3p03!(bQ(LaqNy_>9gD!ywu8#-vG+z!sn%p!GeyMd3 zh}&slwL(YFCwg)kz~HGdr8}H3^WrRZ9Qi&XY3qQAj4l*{SAjJL#mXZb5*!wgh3!$y za~_9sI|bN(fsBFh#iWY(p`1SCzZtYGM-8mSbi*t1!Ti)z;=h(e5%`|yO$GJFOSpGy zn7CNN#9?~WHSo0FZnfUz!nBk@O$<*EAW!!S2sZ_4f~((jd>oelA_iA4WX=Y6_FT?N zQ-wX(IDgjK5GPS&!#N|PS!)Bf%m1+YfIB}_SnShN-C}?HcAAKZWH4dttfl_q+eSGToG_vu$Y4E(hlk(bgPGJLMzRO zcx{gr-bY8#_DSVR$ff!C9857Pj-MlUaPbHJsCg1Ef9+`bDq8iLteh{UhauTV^`~SWTzkMrkNf;SsO&W>Z<$X-sY$052slmE}vpvjkVuh!-~V) zmph|d||LG*yq`gEJsV*GIS&3$?bqxI)m~zI2i3NApjANd%_e21;$FbW~IXOtm zv}jljoVq#nf4;9OyE$w9(<78s*BFJkwOb3N9>QYhS(_WWoHOjkwbowZ6P0R!I-I~m z(RcHqumuQg_#mM7Wdtd471-#WpfZ^Leb6mV>Sjpidy8TR;%j?)=^;38Dd%j*wj84? z5>`7>sd4$*ks2cfPD4WshW`9(wH|jO768aTy{Uo4VWHwubYy|K+B_-0%aNq9O+1Vu zC4yV1w;px)qb1qh^NXtfa3+o`k*Ycth#mBF`HMHSwgRl7ic^G8p?s=~Dp)L?JFb}m z{T0HncH9mme-*vOo}`r`CZ_pedvr-a@gKl&S^Ts{GCFsQ_8qtNeJB8MkumYvj4LI@ z{!1^0kJ<1abVQQsvcJ^(N?4B5HG3zhvg#~=P4?e4ZjwaEZ8n2;>sPz{L>%vRD;x(R zX2EJNKcZq7CW8;LdllLZ3i^a0d2dukknupN^XCmESO zHy6Z3_jfuE;jc4Kbbz-Yt^VQJ*u|vp>N6kxJ->@xII#HKTpCay11KvS>;s{66Y%7})Z?5Sv6>@fnp@f5~-2*zCO;|sfAxtm78K?2)CIw9l6JyCBxsT7pK6qS>Y zGBN^q(K$C83zdE+Fp!hYTU+<0!|$J=gH%)}4LJW`eQ&Wrfo>}My3Nj3^G#1d{q#)o z(Lg@|3upioOl8>cWdr54@a7Aj&e~!=?Qbv?>`N^ z=KNm>Z)R?|{>b&H=;J?n{v?$J^x9!o4Dq7iGaxL)X|7q$FW zKA`Tpfe38C2$B}?3RVed)CwJS*e(2V<8K=hU;rMgnd_Ykp%I7&g-jP+5!k;XWZ4(D z+U?EW^AS2mU zs$ImGpE#}kNG3oqEzj9NSW>(K)MWo<0g^N zi_Gur&2Pmm0b6QZ8{V}~pH#2zkqP4Y1+3Q3;9LVl+P{t%>u* zJ^VtnfKxoPvUK{ryu`U*9nYy%mkdfy1*OAZm4N~fDd6+runWT1TDBc^6AmK(B7U`l zQR#|O%hM!G&<2-?=J??Scq8tA1yb&YbiB+}G6wiG7!bM;a=Md#2-y$Lozf+i-UQxs z)bOfp-U|GHXs~zeCk+dywT)Ze5x60G%iRX;*8MXE#Qt@=NI@U9sFshvI8uE!P>+%; z8;4U9Ddp|9zVi;JTpj-clXfzu_(3)g*UPV#gu?7OiN5Y~3W6oubH@r;pw){8DmTAZ zLMMwXsX1*6AY?INrfvKpl;qv~Z=jenLD`B%`^JL+*LNPGd4J+GG&XClYJOZ#-wxTF zJWN=@rUyrBo!O8+>=CT?Kq#LM?LOIlYhTit@vI3d*O=FX`cBFZtd7 z*``rzy$N$I@Un;?(*QnZ&`JqF^xkyR18*e_C!;iA zI!tRn+oPs5JrH2@O2g&^c(%w25PL12Q-N=p_DX^0zRRzWXT=G~8JI2DGuoT=L-bzJ zFtKoBK>OH|h~FVAgOM*R%aY|e^l!fyPD(~MYHR_m7BB<3bH zbs`_&=msa%JKMd+Jr>nDB;TX5xTb&#-W$`tp;yKfPo}yFbM^bB{EQ2UFc64~!#9T6 zbXK!x9Z*qM5EO~J^=}KOavZ@Y_e)hQGTXEU5Q}_#C9}@sI}K~|5r}P}v=>vf+!uh5 z@QQfc@8ze83U;$mHJbqc4(j*Bji&CDH=#MQJ~#Cfb{$RFAltJK&Up1+$T%!4jOT!> zC-qHZHk{Pe03L7-@x2|h@AewMK?C}+d_BQPIFnC`Vs`gG+|0^ou=wx%Ev8nYXV5!i zd?Btj66T)>^5l|o41rx5SJ_vL89mdr92@X9>V>5NUdEqZ zV$xt@59a=ksgZSlb=M%u%2D;E;*nfW;Ph|I=D@;U;Z(+PlX7`bQ6q7~Q_!bDdf zA_g(}R!oVatUUMtJ4`<7Llm5OpW(Uk=Utvc=m3zlsF<$_%t8$@UqsZ5$E614&ZiZ~G#K&_c{043P=cr6HM>m$gCdvJGKzdP; z*H8)IOVH>dK`uk+*TZI?jjsutCcy{nofd3^JW*m3fLuPDj6UyiB@k%L( zuGsnO?syh3AWI5Uc%QI^W99BSx?c$cA?;F zh|2qM?py_7P`I(sH_5ywEWAJuQ9+L7=j;Z`5|_s(*CY750?+= zya&F|1{Mq-{T)~|+6cYTn7V!sh7EbfPsUW$o2QcTh`>y&;xXCqA7&2`uvqe54Vu=E31}i%PIskGk0ZAunB8$eG}cffU}}V&vC1 zy3z1gGMVSmLv4j1><|1%mUGuX_f6ywpVguQJ=QFXBO+6!^-3mMMBde5RRqd%7XnuE z^H^S1R8-^p^m$uuZa=#BJPj0`#KA$anWLw5t+QZ42Ml2x`nLpY`CA0U zFnr>?&}{*p#{&-FBOnm;p3eQjG?N@URF6o1^@EAQZX>qu^k+y7_G`q6%hStLc040v zi;|{V@*q->4%iR27vh&49?I#Krx1sNR@m+=TnZOcr;ExbakOmLm;@srVbD_Zp%`HM zU;99#A%+Z7^m0z-=Wm%vWSvbj$-=GQ-dEdNa&FT!rttp30PMF2EwSQ&A| z0-_>C!17^J&E5%-bE?iI+MkL%wZ+htPxn-ZiKIGtf*| zVOm+N0@VYsLdtLu0S%boGEj*{`?qaO0vmC=4oq zAk(nc>el5(=YhnWCkX`V{^S<)K|?%J7AmS!fz~&!Y;WTiOgNb5>X8vGno{FSd#xP% z_bhVayPTObJj3n>-2prd@j!Br_kaFE02vCv;?E65e}=F7XnpBhKn;9b19&a%GfClz zej`ljETPBzhg*>SrPKv(T39R|2Sz&iX8&S4_;DQrgwqD(Pj~8_9!@Og5BCuQrAj37 z%AnYEj}wS?8@9Qe<3=ot-Lm+gNR|@TL+!7_AJPdz=zw_HeEaL;t<)%3)9#!a!4@Im zlLDy853g3qaV6-k6g3-^pL=rIHb3y!icI5K#&+W@As}8DG6ji-1`0qH;E{$* zsQ8ky26Y!JqHvZkZXF>1581HpMS6zPPJYxCywVq*==6j5pxSswY+19Ay zvPv&FWl$JDO&ov=s@mUJz43TXR-| z6>E`NblQE3T_^P*f(=FWC*!9f==6Ux>~(L;bL&uBcsHF7&S_#p zWr^3&B`T)0#U!6qaSQ}DtNc4A4K}DMi)vp|De9#Y)Gi{&jh=|D1uNZeAo8 z$8`D&h}Js!dA@(+!dy~a8O9roGr?G1&(fmi2Cp#O9Z<>)%2bxR_Ze2#sy zY`$<$(BcHk)M#qkcExLKfEnUeTXPIc?=t#ZpX`6gceD50*KHk5Z^23CCNlNH%GaJt z#Sxq4aOH$5m4HmN)MX$MRIv!o_Gl0x2n^p_q zCF=%eR6j07@9K^%0~~9^G9-lI&lMX)paz1B*?J2q#iW!>(6@@r_r7pb&{REVlLKl0 zDCaW34T)~BpNA9c;ueSUF!AXxZs_iX1I{=MpxomDks6?$Hn`TnU&Ip#+X*dC#P@V` zBd8eVY^k#dyjuZ+LskZ;42#iw_s{!@CA1B@H@C(BjBlJ=99qt`;E*rtKmTP1%JQY< z7KVpb{J&6o=2kWJ^3c7qz7F8?W8E*3kxdthm%AVCdHIiZcB2JNv{rtWdRq{=inhW3 zms|x%n~?7R!9P8gSB|Kpb1Yknzk;WBJxD8;2>~TU?0NvUy7?Gq7MNT#8Bu-G7F*LZ>L$8tHwl;CDlEJ@I!?8l&`89uZj30(8n&WB=r9{(t+~|R7v_K#5!j~L zA5PML#g=x~`;5JF_36HNcC?3=XPq$NeH|*Zsduiziiw(YUte5YWiC={gsRp5qfo=A zJ$*lqkn8*zDYcrPew9Eu3~qu0{V>y+&dieC^JJ~?7h-qqRTV&}4$lvxwU%7>-%%B} zI}iV#C4ois9pyWj7tF%a17*2p+wdkagG+J{?)$5u2Biq0J4;}3`;9V|zu#b~!xi<_X zNXa!&GI;(`w3B0lGy&!h$P-L3OJ44L%+S(WVCTgabMM)MEE{;uL8K}I%lxr65F8b( zl9ufT7yPB*{pA#ZPzgo+^~UZjFx{6{F8gHmNS*CIFHc4f5=!VgJ&qY43B{;c;a|}C zix{@2`K(N-Wzhq>Y*ExkcG26r0sxzpLz6*>%lX;v%fBjTBy2r`?Q4RlrX6pcvpG&? zOSaYTb}yhOk>C5Vhya`9^ReOQPKfD$5Ldvy$3&l`nF+0r^fsWPAML!B@)3IIu{PAi znb70EWsbw($cAS>z{Q)l1KMnz5(FT)X-b$L1aA6z2)vF`fGEhUM^qJ_8s;*ryX@IK z&7{swfHPc^{uN`%-f`b132>lclPm3*|j196#e`N>1sp<_<;<-D;HNx1vUJ2o6 z@i@x3o8gRq%byrd#e7Z3W~kAs)z1t-~IG&HTeR8FR8tgDXLzcP3*H-&)- z^=BvLMHCT)1@zxs=*o~DNi5{k*MkD&E#VwCw=@$(pzw77G5D2eH7KcHpxJE@ z%Df-3#i~RD!9Oot@8ABHVmcYED`JQWIgREM|Di@84{Z2(TlRc3Vik97qE%-A!GE#h zu0ZEq$$oi|8xZ4=ba(@op=T=g?_4D6Z3Y?Z?c?>EJY?z-_@@iS`acPeF~YoLoQFEo zrR!r_q_ik?#O=%G_3udbNZ6W^{RNZ@O8^N|o~Wm(RO1v|kAMl)WbSud{vEt{;0D3h&bRg%)pbnUs86N=zO! z9+Jga__D6}`RzFru={){$@TeO-4C<9R3NRAmRCwgmzb-G%Li0R(|lg(A0hKge-Jxp zgcGVz;n#~FlVp4bV9xv;q`8ijgqIA(MeLQ1a6TO*VM`;@Hduz7UM-`2|FO-U7HBw# z3pYndZNpN@*`ECN?dMFXat&G8^?kC7=t|JyBbn5GIQ}Q^1Mfu`YtkGE-vC7Mu0NyL z%sCO~znJAy_%bL?GrI2;*eQ|x@KlRV^8551danS5{BuYsl7Lp~EA1VX;U66Fs_1oZ%Wkj z%PtLqt(hTy-{_a+h%p65jU-^v0@#Dpv*u8mqgQOq9iL8GPpsIzJwDY5dr=QuMZkMW z2J&FjeJUC)Ysz_~$?jFwfJlC+Hm&)M3u1v8(GIe3mkzdj>*z92ub<6rq?&2H85{d~ z-0;5pK28wm9Mz2RwvQC!yI>T63P`w$UdG6{jC2sidzwMRW7OP2D6N`jRUQ`VUdYBLzo9gVv>$B6B_rbecr{D7~ zt3nXMcW8`fS?TM3WV3MWNjl{H1&_E~b@+>G4@*&$2J~P}EM{nHLv}q%@bB_Bu#S8n zT{1t=*c97p1@oe-30i(Qz;y=={4H=xCb}xM0f5xhT>&Am170EWBQ#6|P>(P0bz2l4 z`Ty2KicHG9-7-Td!-9!^+ z=fJk;y`LIBC>F!$G#SY3ZegOigxV;>wpP~`g|6i0WhDrA1&(`;g9RDM;S6BKU*H#h zcof~tj+ggzM%Hv4?d7F*ug!e~kYyL=kI~Y_>H{Y|ORV(6-Qh+(vbLdE5_Z=_c^mbl z*ggNi0P%K1;We>cct}Dt|Mjmty47*P@C=`qoDS-Vuzm7krrfDp7?@;uAil$4cx3-a z9~Ej?t)yb8?mX~N9Y?|d13w|SE$14r8dxnz{%ACmhgz5T3Qi$C4(ee<+4D^*g{xhP z#Hl?T>g`#2;@{TS|5(rpoY}tNC3fn3F;?|G5K-StF!_>qwy$WJ{cvF@2*D#dCzT{+9vGIPHZz34MIZIx)Soi)&9R@!jk2x8h2i{zt>wcB>$-Ruj!#)mmgHt19-U$EZZ$x4f z5-@662*A!r;!PaT9qmO`AJCzvm+|7`+luh<*Om9Ctu6^qiF>=jlys9iee|YS>9uxC zjBY4iH9n!XPdI0ASc&dGs4=)>I46*@9>y3O7&v?TM5bKP;+7+P8s{XpV&whK*u#{K z0B9VaN)dhCQkNpE@pFgHA>Hs*Cm4lPDHKX8=?kL&N^A4qZ37e3FFn#ZiJUcxM8N$E z?&)9Pz2|x#{%E_kw1)UlG4Gmj>+MaHuP5SVr+_+RgEY`#K_{)gF~8lxi+`#N2~|qM zeop0r|LrtlbiA6TuaL|pam1Qo5+PzQ9K=1Uq*CPPs8DxYpjs?-#~*d-PRqGPm2XJP zl#91P_ts%t9EZ$o;e(D~nuG*?GyTcg=o7{$9k18jtk~bQAbt2 zjNCR&S<(DHahe$)Ws0$wEu}Q=bz5wO=PIXAYu`%un>Q~A;cx!Yh!(bcwfmJ9+J%RJ zC_F`B;E&}eA~I9hK!qDc=+O0T$(l|NfkurgiLRvSG)y#Tu4tVZU_H{&@{D|mh7Yl- z&0CyfaXgLMkC}O&`G|3GaVHqDw`ZI_b~Tc>2@rf62z*bxi*p0W9J)atGwyQ0P*BM4 z$3)rX;ZjVIapfhDx{Aq=Kx#ZeX;zIq34u?0V}ayZ zqVPF+uP|39`Xd0!v-3Ah>z^b8jr=VF#a-|58QEO1ovo5@q+Cl7GT6_S06isqGz{8z zZQDe2b_2F*h#bstkKUk#n@}=s`^mcm*|+oCyO(MON)dO6lPvLs*E-}cxYIKA>QkY( zvJ^L2H3{FmyV(!Cfjtc}mmUUGbn0mS^|xgId-qtO8=7dz&}r0h_W55lJ|)UIP-3G8 z`RlB>+uuo-D>&QQp*sDN0`qRJ7-FVYN`xX2=dXLe8)>e8bZ7f~J#6<{c3@C3x#|4u zE?oQN6Lt}X27a!4gtmEZ#|Tady3Q0 z-ln%D9$aZ?7}5_ul*l9aiP?+6i^x+F1F^XjBooIctfek8C2qt9C$ynRVQ+MKLVRdc z5y20+$IG+XdphOP^u%r-Bn_LyZMdlxzBH&Xe&>9dPLZoM;x__qxmz}n=c(xsfqs2? z(!-gId-JXU+@bK#QY-n|qPZXpaIdh$X!35K`xuAWr?6iF`LY9otRVDhFLq%ax5^P! zW?BOE`W0WhA1P)_?w`DTiIMbuX4(!o{?v^kxo&-5 zP(F7E+Ai9%RU(BShDS`RhN@6xy=>kN8byvkC=_0a`l+ZOWg1B_3$~Fj^FdSVYs=m` zEg?Y;8oaw$7Y^tJ#G>W{iqwgNo+sgAS8V<4YKzQ6;?A%h=Sa;j6x~#M;8NbjNkL2p zuje;*N%?vp6D$0{lBvo^R8XrT>V&WuLan4#9<5q)ni+m|=OBXW_JKb&Le?85NGP!4 z+CUVU)_qlma%BEvf7H`oBh-paWqw)5Q3)40Uyx3A~>j$-w_HBseRHc zuUdf$LegawkQTJ$R+#EU+5IaU{Fxv>oIy^5nM?4?(R3Wfm}HTh@GF%%5VzCfs&eRI zN94P;sf+PI&1Qd-iC9&z(s~y>{P%B3A0=K5)uxRCh1G)&TIwb=?ZFqWK@%R@s^kIa z&s?UQ3tKQ>;IRZMO5AlkNmJooS4z{)R`0A}l62=Vjq5<$k-tp2xO(mEg7oE-YF@^k z=2T`X6%Mo{rXKw6e&w^T_2iHxY~2L?9*=^_alC>Uh6nZ_?pTN%FNtuS^% zX54vvacf@k6m&{=ia$@F6Oyx~pez+XuH}BxmTVj>sp(=!h^>50wk#s$hEf|?+X_G? z@=LQIHC%!U{*J6csJEsmWJE^P zcNCgH30Z{eagtu8)YL>#^HV_V-u7`C=aF$kk5j}ebX}RfzFca%&#V2*AX`mr^Fp{L zd&HJqBT~Ckp5XAoVF+egxQkf13QfGF3OeGjkA^jfBIjF`4K*#ATcJflDaXq+wp`cM zhfbGKQSn4T}4YKY7)uq{y+QP+!^a zv=#`oHRT~*v_a=5+@K&WrAN_ql&O#{; zcoi-V%|j)14skOh34!YCt)Y0iGBdIS9O!6V}PO2OmRGi}E(~mS}<-R&f?) z%gA_7eQr1|BL-TEq>Ki3>-3!PKvZt_4$@`%D}5xw57s%XNS1-7m?>$qAv4I@UW*wV zO9W;}luH={IvVx;Jo1SB^5AO>S!nIpP16+g6Kv3T;9=La%P_!C%Gj_H-2W^xS%}JASIA#nNfhVQ?7r76n-uUs z`~E?T)Yj)lET63*-IRjkV~It&{vh@H{gu~u+4)M2IyYL1Y(5%ud!e75G2HhAV1h87DZ@WV*Hq% zO2`*3;o*6+dc}89`%+)iL5|;SLoFdGadSX_AhvaNnMW@xlQVE~yH0{~*+HaEpB}L) z(LNm$iSl(vFIMCQN8ul|4Vq#O2U34n0S^zl6OuHUc+^D3aaI1@1UWwlCH~3&oCZp& zYz&W0mi*`e*9mz}&%A!;(!1%3*uR@0A{l0rDs%R$TH zjixl%Zw9VT43A-AoW`XV{rd{Cr@8@GOie2c+lO4 znV#BZ5kuofYBjSV+L;slB=jo9cYDxZXu|TX<{C$7_Hxh_!uFfY7l|5O=vO1LnPXZO ztSS5Q{zU;z4<%Yv7jC9?Z{s)v8cNY}>i{_zVH~0N)kvuXoFC3|6xAlmL#g7&ojDSG z3GLFK&ldFd5b#cv^PZB~u`oLb-hM){n|`1&-8BA~x=bvvZjcN6o@|RYa3|UZRS)Yr zEb9Wr+sy!zeBDpSRh;XEXPzL8N}spCoN7D(;2dwVy1Bwg;P=1N72{7y78m8XCJ;GZ zj8%}-8SjUs5-;N3x9uE&g$i=-qW?+S7fM}W#N}__#3UMY5){mEwl&RMTzoM&Rl|^P zEV(k_;-+|g(I@D<4bUzig9OC=l2)`|r37A4US|OSGmxKnQZ!V1mb<(>r z>Q2mUn;{ww=bUf%A$>oA7OhwkLVb`!YQHD;&xy5wrgtmwXc#NL|HVUp7KRwn@#4N1 zT^A{XY5WUeBkvy!Q38LqV5QL7QevV+lA7WMi`$E+*Z9UrXA_=fA!e?O3a?g?s(6ru z&B+$E;Kd9l7mHr(Z&d@(54*Ms4D~hYVc7fb|3BtuK%?`-XmtBMh$PG#AzUKe_o~k- zM}(9I@k52=4-l&)3a;RjClBkgxwVCnS9sM=vM6#UQ%XiC1Z;^f*h`>B&e278xTx17 zfwLK|vm{PY?=Q^l`5V^Qq%6nX`tVU8nIZ*{8Z7=Sl~H5j-`JGV{HxzSY~Nj!xpBuzG0g|CDdK`b~g9 z^PTci;+n@_FD1o1uY~TMC;!&3TgnqN1X(bIz1_ePeC8mgn>1Jdk*qtn&@MbcWF&yX z9M)fIzwEr5!(ey1>)1XErchcQSJIt#h8GKi{c|UmE(jWVkA17M_Q8%uf?T#^C- znn(n9)s)x5-0i`?CX?t)-)D(d-1cmgUZ0-7{mDA_jKpZp5kt6_a3`s;9_fCdi@5Xy zc`yz22L=m0KML_BVYsb{OLm71az+m5`Cq9JZ>)BCGC$|mx`>Uz`g0Em6d56d?)Ekj zx9~v9;tZha*V-?N9H-0F1>q7-2E#h@H5*xOQ_}@tRx!#L{rYHqU(ScCT?U8KeFc_( z-DE4k1XRijWJOfHh!@r&V8R1jMmJXop5VHDI<0r_cwv*r6__1QxhJzIZP&)1U<$lk zZdA|QB#P4ALN318o8G$3KlVpLyQH}*yUZO`Xxs&V)av1J4>ruesLVeKPsheFj5~W( zzcUqyipQviiK$01j$W6|^9ChF0ucxQ=-vf}*2Gyr)BX0-4EX-p-%NjV$^tb|@^w3e zNc;Wgp06?!e6ayXkm}Z}#!sLM43IJ&&~%W{3rfz6zY1wz?)GByb^jgBBczZTN|z|x zDEsS=!j1}ELQ-Vz;PRZ-Lr&VFg!ogwroF?Sp(7Vp9V+dovvbLI$4GVqX?cvQobi&s zx9)f0?_4g52)fl}Vzh3FH_>K|cL87?TbS*c9n5H;j8Jk@xiH@*mm9(WHXRAHQhLb3cs z{ug)oJq`=XO!mGQDULcDMj~|m;Dc{O=auJBV)-t;=#pJPDh!;HbsB-xxd2qTngCZ3 zGM@t~{Hi4nd|BZvVVz$(9widh-DjMP=2MQB-d%%?{cyeKc;tR5x5dO?-sLqJxK+pZ zT4aRbIe#kAh-X2Gr*CBV$!m~jYG#-!enje0E)W!^=se?HA+IuCWT6;ek14joTFa}) zr<^&A3{Fx#zCi)>&gT(VQonhL^2h<9Th&ofT?vnX9SNYO{bh_p!HPjeFdC``@5EA3 z-OTu#r27%G*f;={2oVxKvE`m!SyeH!vUos|D)n?u8!l-Ukb6zIQek5KSNWv!kZ5TR zEx;xMKgY(0UC^TKMVtBhC@Tw7V5!DgqR(Rb^fxleXNSM-d8aMMo)!;v{)u{Mkt}f> zKi{*d@Nl^Z!&>f)C1O4R+^f}|_tQwfZ2s;ezxcFRrS9oc=$f+~e7zcht2Q~3=cu2B zIi{3d4`_>!3ob~kPm!$|PakuS$Km%@&SOEFxtjk+G2{l03bm?_^bi_QI(z=QD1xBi zuiMjPwQgRw6IpY??|mnmd!<|YpfP{F#&Svjme*T@Jzo3mR-_sJkL~was>#u`fq*Wb zM-#(Em@k6`C<2>uT$wEWjuoU1C$EJEluP7kd>hq}H6IwXO4uBZr6Gq=`fkvoW}zQC_IA^Zv9PxoJ@{1(ygSEs#O14$#9(rh<2)M!M!gu$wOX)E>h zW^z%)Yi1(vg!%Kf@*wP4(=Cl6A-cv8svSlA7g4do z!4r#57&c!wA5{l849JcTjrx}Xv&(C0M(k_jRW$@Ve~AmiM8q{5zTM_@Fcs43!r0&R zRcD`oJNA_gI3^V=$ONIc3?%fkHu9#dLYS}Zo?+R8^Iu!hO#J}|A9WE)5UfqoY8URp zhvzsFFkFBy^Npj!@`@!xSz~`>$?T5mEhLoMz+`qfD5chYmvm(g0Hsh3Am%rf}+oGOi%IH&F@%@~k!AOsPDC;y#dP{`NsvVM682 zlDw6dEqa~%;S7(ky#ff@tY~?&)FkTyqR4eLB9D7nJ#TEY2ZOqtAM>`vrM-WuNjX~~ zkjmEfPhcmI;!9LttFVooyQQ7_E9?ij$Kin9GBB`0yue~u{}rw}%g;@tx@dT--N3!-u%Gh-XL#K=3st?j@@U@KSnvAu{w@`zc1~&!E#wDG^ zkjQ9Q3Vmo53Cy5_xqGWYRq3Zq^s|016HD`on9%jlH-vk<$!NWJJ^P|K5*CX}gJ_wj zYqJOC%*-Z+R{c+%by-uc;^n3*5))55Wz%kV+uf)%xKSac;xzM74spEQmkA;_I1!h= z>5m*lrml)5y%(erSVxnCMd==Q+v)9Y^)6Uz8Rqj0{As&g`7Yg1CnUOQp0gn!HBxn7 z@@?1-EWbL0Gz!0wjxl$VR5-ZpJ(p>& z9xS$J$X^4IO^+X3pxEDSzrJdjIpqtcJZ%>1S}=l?aNdPY3Wd0$Cr(dIzuvs1$*J-Z zq3MIEF~hSIVk~8*w;rqlYkP!*LI!V!((fllrEW)upLhbf*p-UFTpBD0++nB7e)&@7 zDiw!DJCY?gy%;@Ks3LLga94PD0i89*<(%#j%I{srjS+BRYHo1kE} zB|CfHAggE!f)QI5x6{85N5Z>qVwc=R_-Ewvie1K4`qc-^k~J|%mfR7xe7y4Wo73`S z(Pe1R1hZrx_TATMC5;>PvZkGmkXk}q&pK&Bz@Y+yBNsn~_`(LGOVZz;nLj@z{PJVk zr3@w&#tA|8EPFo9%3?P;x`<5ld4aY1h4l~h#C8>$WIRalJAfqNI8DBt=5yrfY!DEu z+Su$!9+%dPmu=6bfDJNSM%ilBiU)Cf+ZnV=SNK;{G{fGi2%ueb>N4o#Nzh~t|J~>I zrS1__hz+*`kN<-v@ISNOGx8n3L_=^I(&htcx=0NN3kxC98^hT6;$8GgJm!DtqY>Sf zcYrMgso0Is@qMPFT#Vqu|2@lIBW>-Q*Mm1~_H8mRR85DTYvXRo#5n-r_e76rulymO zcr<%m+_MV}Wm?hn)4r z_{9Tyd{fMr@bzd=8Y`?jp?e<_1+Unpsqw<)1AgDNF-%wO*I6>;Acp{Iob<>~k+09nJkngLYpVXQf zB6!D#6B$ie1(q#4Z_f5P@~}Wh`5~tB5+BdS2d_x&-UJa> zLl5-sd0_{~g3c5gPBP~o3~S#;Yn%u^{t-b%jX5Yv{1cCSqlp9)j3Tqkxm;wveEqt{ z`LNd*fSmH;53SpUinm!^b|L0t-OaJ@=y1c79^|bc0_4d}P@SP+*6KWX%Xg6-MDQy!6Ck5@y7RUYse)94tMw{EOv1P7-&-U1T?az<04W6cOccr4*v~lvW3huS!Tb) z*Cm8-ld@SS84WoW!?0X-gLvy7xx*o*)inhwDzF7~pXw=VOrKfTIQ$+ZM{4|`1VeNk1~8n330hE>ia9|r=mJrNp~B-ke6DBpUpa0@QUdnB z&-cJ?L+{`q)yZmHMSnqbdrXerAfx?jNrg6fci9KM=F@Y#S=i#%0M=|oY!+VOOUnn+ z$##V4Aun(^JocoI@$rAMh7gO$Vq6M>z79g;Nx>7*em}-T7P=+R`iT7T{mS*|ZBM#R zFU$Xv@+>SuMSmv6JXMow{YDOuKzli`W$!sKdI*lDJw62s2^D@`LDbF0p58WbUO@7) zMU$RDIA>X2B>()BNx#!aB8&>wwDbf1ZX z>~*16gYnw#6Qn+(hUPWSUSSY@XYV`fc_S({^r;o4R)Y0>$ygPk#W^9p7ofYzYB72G z?whFFiYKFy{K&HU82Y)XSZ+BCZrGWR*Gl-*qKUlS<}jBqdy}7le*=cP>LHgOt5>Vi zMQYxnctlHa-}rB;-C&dCcj}yPy&i^Y{!>MBZCmSGmv;L|x_&!c4}j&g=R$_B9f~>U zCMulb40WAPVwWpO_`^Xfm`D?(wuxd%Xdj}LW-YQFgc)~%1D{pw9;w1u0o^M)cNfzB zu1wd|?L+25%tQHlB4CWeW>NKAwz0yw^E|L&*ax`6#6MoOIOYx9^P@eSu@ zEHh}7}M~v6K;Ck@9BxU+&)SJcI;v=alZJ9_n5BQMWFnWz)UXTHw|4 z5V&;n3KqD+^z;*jb~w^ml>-E8G>uAG(u)7G;^a$9SPAdaO#C|)6+b1Umq3nu!xUt? z8zG2P+kN89|4qa_1iX>lUWM1&_wW?ok9(L*;BYsf$0{&s@TP`4MW3+>g*V>rK^to= zWBXykKxOclOZaKV#$HmKu$e6q726d}6vgN(azq!FP-dhS4~2My3fYDoS*Qi_(_mu& z_YcdCb|j3mO~WS)%`TpG3C#T@&dtqiT2P2L6~}eC?<7b5FjdN|dRq*P7)^gTf`Ya` zv6wd*{Q=b+?7e8QSwhwn_3I*>g|QJl?~lX5p5t#?bwnvn8zBY{jK3DIjdYnB*ASz4 zJObXRCf?@QslAu`-n&lu-hJC0!}KB_Xa&x-U&T%`egFot9H$S2N2Uue6h8i%_MR3ZNM)WDCd+=!a^cH>1mYKit}fP5wjdye@+sSHVzEb|!2!&{KSG2v zT9K4S3@#XF=`v0+pq9xPel4#?TjSyB4RjY?&}5~yUI*;3yLJCebZ6-JE=kere(_+Xr!zbiug*3FoS zs-L$n(hns#f^eAH@2x0o2ej(CTx6~^SYPwtQjn+&P{eCAymye8B8v=EmZ5SK{;hP{YLAdl^~Nr^WD*bU}4kpm)3GnpY%5c{6r2@&FB%oIPO&V zh@^mPTpW16Ls}bhN0DoSL42|>7p58kNjVb@htkmqq-}=^nAXoyb~Ao=z%eIYfF#Fy zv-&)Qb~d-URsMcz1o3aEsH7@v3IEAZl3vNKa|-3&k_{T5gs2XZe@7nny9Br6XNP8x z3(rB|;+z%&f)iZ0HTE4gwcE4n;EO?Zk4t5xI-$`$jIf>dNeumpXcC*TXlT6>@$fp& zuJC9g`;QCVa-9sV0n~5-fr1~{Yi_xrLD?mylHVMF98X=OuVxqelF?>>g_@}?ir0KWGtRZvI zo9v!QCW+=+ql2#BsywVSeVX|0cBI)NZ+G;?Q~=brHR=0QvU_dQKV|)v$w+4!Ci^BSeiQOuJY7+w2g~NfA32PK>$z zYXQy%Z5g@OXl|O>o41keM6yV~&E6({`)y+3T3199+kCq2YLY*ct-?WtX|&wgmTzZgLq z%+-%3gd;yUVP80{TDi_|d?J!SqB+w=5D6S~N7Ar`eTSL8r8M^An z^$I@G*NNUv#Xq4uws3Y0|3}nUM@9L4U(e9p(%m8;NQZQZNSB1P4vmyFLw5;CH_}o{ zigbf8NQcthoip=$^z(h!yB2@WTAX$7x#u~t_dd33TpbusBWe6M4Y(Hhl3zHvvDT#} zDd$;M7M+50Nl;czT^zIY>ij7{7B#0<1f7BfIxa$wujj{vent+!H^M`hNF+Y;xOCT< z=H8Yjub;sfpVd^!2lTK9&;yhDQ#M>8vt}qyW40f$k;=j_A*CRJvZ-?;Do66>Hlt(_ z4P9Dx#C+hXGNfojI%6fCgO?2EWlm&;0=|?gQHYSW(&&gR$U0s-qF^CMRiR+aKlgXI z|6-5jox#~d}9Thn%NqFAFOCkUbj}dek&fH=lnoAK7TD!nD?Ux=htPS4uyD( zeU2FFt`%X(oTt1FR?z43d}+-+R3Gw#|d zH#wMKfgeT85{Ja*DlhDhw;8MsR^h(-lR?HI~|l$)QkIGNnb} zR6U{!Gl5WhiFL=ij}OOB9&yC0R$g0^fjk3%<}x1*$q>eE?jl$OE z>|8*qI3zY)bZvy3=~n@W~N$b950m|=nXjWGpiko&RKwDG(r}RE1QS_UL>FgJ;%tYR-sgNav+b|RN z&eGx>pQOTeSxXFql|Kc^mi*c@r&j5>;A%u(P?I%Y+?i3x$`pu0^}F~Q2=s-Aql?08 zuU$sqH!qG^OIW@anZlKi@X%YIF9ddo@6NRAVJLQ;dTiOr)~o zq0VC78o$E%JK$b9(PR4nH%vTwe(D7xIe;w^iY=D~i?N?cQcpvox~fJB;bpR(&E%-oL||HuOU zmaCEd!;Ezl`$x`DxB6#uVUdFUWQz6tKse1eGk1c~Pg^;G;Uvh%uFg2!3hNZd<>%Ap zhcUo7w11~3p-51?e@rt-`l4X@_cJZ}mtA#^?*2!~JEHqjIqR|wW}s3NHG`IUl+;RW z-=L~HUqYKuc@Q}`lCxn*=9}=qI{!C@c9Qatt^6sX2u0p`S&D%|0<0&!=VpEFbd)#0 z4+q;WsK2RRqdtuX{~-(Y4^~q4w53Q(>-W{c<}x8{ee`zqImvQ14h##L!W` zlVkdp?S=OizDqH2zWF4{!~+m4i^UZ>_!E| zB}FTYFv@`Uy@X?*s=(lNU#J`%XoFj>^e{QjXKW5TpQ(#QM(`8k?l_|N_|pUru6kYM zgmRveh5b{^KdZS;te?1Ln%y!xWmq2|As7i(1(Rd>J4gmEZ2$wwRgi zh@=X<5$jFk-I)DeS>@a^$1`gz)2W!Z+fZ%KNr+dsvpo1bp_Vb1Sg#Z*8zx976gQ3J z7Yv5Q?yC6Rk+6zOnCo6h1RU6^6OoO##qIi&!O*EA4RWTa z8FFs;Mjs^SIj*|YW&#%4yP!FiT+=Pq&PWAKdaBM7x@(J@_^2`Ua6B!7V}_bjj-X)Yl%V!eEuIxYOkx26M`y86vm&$p8&Gq~B`Rd~6v(wFO@{E8JumxaY`G?Fn51?O6m;gsRTc zdz|1e`49qaZ%TFXJ}YxpZSgc| z9UkHoA=O*nu!1$Xv0o-YHfd~R|T$K7w+Xg>5G z3KufUEBou`+GC@W`w(=sldlD7TT#BYp8`s+`!z-IrAgvF$hpSdt{B#tZ7HK}k$Wy= zo&&rv`f?u@`14q-Utlo))6_AlpS0%a5sbRPmUhJI=W3@ngRGks>2WCd{wLt*$#GT; zNhqC|R=iNkV3Zt;lhdG(8!8TF*R}U95lVB!Aa_?H-R7UmtE`<4kWl+YO5ZiAgPY$x zoP=>FFNSo*TgV6)^}2$LIXlNT2aMmrGsL`24-P$8WuHAKx2S6>2Q7kxMNaX`wg=14 z5#cC~Qr-k%E5%<2+aIW1_y4SA1hNos>w8=k7+7Ylqcn8Wi$CV>aM7z@wf@?sq4iGN z@>EXk`;Not&B8YSdIAy@r~GB>bs+guV1xIMc=d2ehJWSGEx zrqc!Vj^qGB$V%4nY1kz~dBW>g9Yku~n$3$cvIS{p$;Cl>l_c{6hk#K6v_V94p(>GI zZS_a?oZs=M1*KCgxG^Mgz3U5Hzu<#%&V^14CA!)MPAz*Gh{+@ya<+m&($q8KW9G~U*J*2~K^0{W_=q8F0JLRf?T0M8Hw+J&yy znx>TJN6>REi3XI(&dF@%`?egi8p56GpZ$Mec}rcLQ0tot2@aTXpTTX|*BlN-?#DYu zage5YZCLuoF$_BrtnT)5gs)wnhusy_i&TbuNy234iKlT|y$r{R*F`&7mqH_to|kv` zvXP)vRhX!^W_s)XAp!a4j_h&229a25GWLBW8Ays!1XYx*GyhJKB1JLz4N+8)e%IXv zTdfLrv1aJNc}SPkMKLcZ6Mse!^;Sg0^5nXy&eCCX>Z3+rSgX2q7~xZG;SAkqVZnQq zsN}c1F0$8`8`6!PJq^0r<%9*zKN!m2nJJZzC(JW{^@Vv}DHCN(pwHH=qVK!!$;+b) zl5iKP1M^9~;hrJ~i$$+quF<;~>F$R>1i3h`B+Y8Itpt)N@9b95U$%^+|Ih~<3rw^A z)_Oo4?uv;=(X(?QT~;QVW9i9a7CQe21D;I5=(%AbF?||LJfiDbEt?vnrOtl90zNwa zQ=>W6OeJHSN@&BVgrY*mCRRlAmG?X7N0T&~uREH)JRxll!4+PC_+cq1bxSJ(SiO*x z@f-l?W4^WeWu~`#od&HqT6ry-`H1jrKQQo_4GyQoVSX$I7YKH>{T+00a81OXed=x8 zv6)9Qx6~@4we$^rVqQSB>lFZb=ogA8sI{dzP@`5FyslgB^AQ--ZT-1pQ?UC@xQ-A*q;bilRP5WaCBQVN|$VMb4WfbHhxoNB-OI(EsxPi zwY_JBC{IOke)t0bH7QmDhS(Va^{rw4IP6-ZW;FfFY1fx5Aa81LzV~}uiW+aVkQg5& zc~rp#l%YRK*n8c==w-2HwbjuvYm3JGS5vr=yqO7uvAcXUG%)v3VwLBYDE+y<$X+iOpCRvOLUI z&EE9OnXY-8K&(e5Oz3+)NJl35GFaYAbA6of--u~vZg!bX2-hr#_0u7htNdhj^{cP8 zil{A`T;*_`YhPL%9;mfx8ANO&ou~p{2}#Cq;erODoaouSAgW?XL%WFk= zJ^PrK`~pfXC4WSTTL07{PAj_Be-@?bi-{*dkkvppNNJQi3&$6;rL5yTaK{MwuoTlf z{28DNpxFCO`1Nj$%ii6lt+c40cnEXdlFEPl_mn$LhemMycDC z94yM+y?3bV-Uc&H@vqy5MUT|mFUuf3I+O#>-|n1pw(X%9Yg&mAymCJZcKM1fm>o!+ ziQFLcTKXd1NGNlr(L&DSBaMFYb0veCR@8d?#s!93qvrv#)&=L6lz%h*bx-w#Q1<5Bq`u?!E-LVxVZ>#@@vW-B z6m}`2nL1bgx>Ltl)z2z{a-znGt{fDZP$E2~_?g4fE;ek+^?DR7( z(H>;^)5)jD6|rA#7=}7l-qn03UOnP<2cSQ>2Alq@gQ?aQ29THn zQX~|U=#q?68{FxjCX=9PUtIrT14qV1BD)05-O}-9s3uvJ3En;O7s~czesaju^^yr9 zdSD*A1ZP}y&P?KK18pGvy3Ka!3z^-@(Kw9tgRQBXIFfN+#kT(Z#3Ku!s(Hg%2_@z} zz%*Y3+OWz^?o!YAr88kM(C6-7J3g}=%b``maBBWN`!iAj-d$rn{ewbbuunpvJJ356 z!XR*y&Kt9B78U)p=QEByBzsI{#}FT$n?nHD1Xtg~58jp_@qXDuOtM<^0SDAhF<4 zfFkGG<{@IYqJM#-@bAC#qd-1WYsXzYpH{bUO(LU5cV(M@&;b~p3BR*Ch!~tT)F|`H z(7NRIt+zjp+$GQE9e>6?GkmR*vhC7o<4s@;ZglZ=cQr`XY_hzOn4pV}Dn!VU+6Qqp z4)gp~*UriO2sebdl3dqG(K)dCjCWNYNPeR@_;?;yZ=X8IyWTRly}zrA{Budfd`qGv zM;_}+6~2F%{RM~GUA0GFRr~^iSI&_)aFu5g0*rzIFxM&flcsF+%j=pCT(=$D??J1d zUIyeBL=EbHDVzXycRUnL>XV>M?S^Iq7f0iKuU%eUd;Fy`3G0kzS!r)~TWjwyLg-7} z;*zntBz1_$pP;jNSu-y^gRXtuz0UFg?$qb`h5QAFv{Z!|Ccgw230?Qt-86%%!-#YL zM9sB{K}5Z<0XVaw->RRXBMnh%?3ZXD!?4w)H%GEz`O{?~YVn8u|qM zKnOC`3x+lvAMY~wrWK5bx4N+xIybS6KjG| z*w~2Fut4Q{p^GIxrAskfn#kq8;STo9LWsjZ&|}~#M8Q*>m;meB+dT|`7BgD8Kj+y1 ze-IG6jT_yQ9T^(PueA_3Gj6&SuBz||=s0&mDzV*e73X&FIZY1mlC&vkPRy+f`)6*K zu7%mBHGl23vjsvVN7a?E!rNEMmh;R&ZKUMaMXT`k=Zf6ajePBs8f886PjE$|Ki-wv zeoEN98!>~aqik!>P*r5Wayk@46gL3Znpvr$OVOEl zdd?0-es%@?g&FV{3%t&85WvEa1%;>b%DmFiVkb~8H1wJx_IiKWMG17&1sC1p3%USq zqtA)b2ilzp&S93KIYi7dqxd@vfCMvhZB(KTvZWyqragV>YIyEKu$urPazLj{c%QFg zHfyV3{*l4*`Km3w8FKB@Uw|V&rDU3zLY#r`;^Dv zv=6UE-+taOG5JCwFro6#1+pTqh*{Jb#qZhiybV3lb=XFqayyR$j)l|9!lb?@Pe&KY zo1M`6F$7lY$6t89efI^9k4-soQoZJ1VGq4{>**aE%-Hrsm(S`s9z><%8~I`&p!N@+ z?IEVD!!m|o&>Kl`qbilhrdJmE-9<&3xU}XyRMLsa0EpZaD_b4*{Id7OAilb6f|akJ zc1lWRXtZ73e!(_OK0mJ>d-2E{tz^GDTERTcVOd^cP!ncL&DYH&y2*{<`~!1!j9~P^ z=i1AcYrFux^tWnRFp8&sT!M&9jA6TL8_Up|Z{a z9HC$^ECwRwYJ z*UxRyU4%I@SG>ibj~mmkoR5q$HdiPLW^y_!t&Y?n(9rQ7nu?_xUvDg zV0V%zXCe;k$EADE9wcJ=Pc-bCaA>K=N%N3|i^&mr*|)owzn)_G`qDgkuVy5oZHxEE zokQu!JMx%~#Zp#4(ChO`g1dJs#!C_NMRYt$>Q)U2>`6kihDmxs%8oz}g3AO@faFjD zhvt;0t9U~`w-+i@8T^pyvpVAkhCYdGTS1A#$LFMLpw5anjXPl(?^JuIg%e?p)>nG_ zJKtWDeU%FzU>-*=`qZt5FD4q+;T>-041?*%9aX`MqPjU~5*f77sHmK=7jhyj+1zKl zW-wec1`M_Ur5CBhQC;dBNLzH|NEfp$3q2ed$IR zqz>kqod{GBxrclVpbNKoZxB4cFv=Wu(OO`s;I$yg%NW*L$|PL)H}Y(R+DWqAU7=O*z_}Gs0zWX$+@U($91uSPkDg-5dk6*}XWHk2?ikrBBg4 ziYs*aMGTSl!OvX7M)GlqmLff;hmb{F10?K`nd<7LH$tDUyC@S4tUwCx6SC=-5qa`X zlb&Q|evf?K-H#aycGmhdD}O1Zj)maeHVGG8SD3Lp^A-0MssvjhBSPvL{W8%$ugl=|90P?<6>^;*&%4^VR8n zW>C4E#QRQ$!%pFBUu}7Oy(WjG%h$8w@Y@=N>FY>P0fAKQ3WiTJShGd=5%|^DyUT^u zC_H3A`@oXx3^oKk|LlWwe7%6KxkSJJ>5WSB7Z7%R#j- z>pSi<&Gck0c$y#9f*G+G-0S8%kSZNFIE{$wr-|N|9)W1d(ca(Obwo7idd*v%@+CjX zUF5gy+}@=nn$#x-UPCEFAUTG7nVtD$7)Eut+R)qe8ylxQRnRrX0~U^tW_vZh~%t@8SLSu6(sYO8*zS|VNy1M zVy2V7w{2Zc6iVpKU`N^Z<}dHRJk{dFv8*&+2z@JGT9bvQTaW;Fq~ zaXprxwKBiBhca5|-cponMHP-fUP5wS}2F@iq!W(^&B2#m*}Rs)Y? zmMc`F>m&5Z-uQvFJ&iYq^_yWvj@sL7O$;F-%V9T#w-B*IYpEBm zBb)gR7Sl`;MOdohqy4?bQq&eG zWeH}_RI3u)0<;m!$<29;Sfm7x7F90uqECR5Iy7i`IljA53P`SR>20Qw;+$<-v5pXG z_gBg-<-`I~0ZeaATyv4H_N0EN$!$&b=?zK$gfEx6KDLl%l$b+&#+Lntt}C1P{^~Kz zr-|h*c|UQySWCUXU^`?PUGwmfW4|RJxPb0(`$q$~R9rxo;laGFu-6DPOZzwD0D|G+ zSCUVEO4}pdkB`;xJ#DiLO1-mV4KDPg9;E9=CQWVGHIcmgxY~G!w_FRyKAF-&W~0GG z-2Gpy;Tq>O!dCawv&``BO1{F0Q{PYDoAy8=4&AEni0xGhPs&Hkb3M*(%9(jygWGU| zMhZ$uv_W$n54cbd5JLJhrl$6>Jw*fT<1f3(QF`|rU+O>Yx9Sk9qR3s0Xx*S<@|%3z zx>_M-bHQHCBZl6cbq%Zg@fyW(iW&v?Bkn-@I2<-^5E~j3)~Rtq7$MqEq(zP7AY=xLmsbRXHS+Kj%Bc1?(P@JVn5knx;K_F$-FfoG0WQQ~{eKe^tKe zTsFv~u=@exYwv|nuhGNAoP~w+JV;JPvdr=03+Ko%hZ{*ixT3V_t+koSF1Y9y$h&K- z59;#Q+fTPoL02gyEqYhv6n5mPiD;I-k37TPHg0CBIeIw-)-!}MVqt!aZg}?nn{~az zk2d&r$Ex9ogW8P2>8Jh#HPkIb45JSmqvz_1vu*Q{vLVL1Z{!&BX&;xXBb@ccQfl)O z9X*hw*lU+>lLTMMmo+?cllmZ5_#}-bYa}@C%$@E{j)KD!wyf&J2EK-XEqr!46o5Kh zZ7bpT)R@nXu(M$S5j*(AB7Y+{^eBaLr}N7PtCetLEqcmu`goUz7e+5Hp{1dU_~Y^w znsN`lMRhk%5tK>sp7e28bKqnIZ%cA5Ls~!@*3@QYqd|XdV8l8m)%31{Xaswb z83W2s1dBDT7{E_MWi8wG_AgO(X($_GYD-v}9HhRHCdl|2({PYhZ(|I3gu1erZmJ6C z92mfe=BcAn zE-nkP4cn)>f!wY}Btpz}UnJh(-L2|W&m|F>EbupHP_c0L*pqpp<4>Mx%+&gLy>Odz zgBm)D%`JtCXgEQH=J2-GoD}qGQoZw=)r?FfgaK`zIz=~rs@k>WuKY|5cm$#@v$wXO z9@*BdR`JabrkKy&w#~<0moj~Kryu8f{rTCF&n`;7VtQ!BxuPM@PZu2Y3;5oLx%cqD zlK>DaTAA&oKn?r9TdE~I87$8H@Dv}<0sv&&j7ZyEH)Uq6kVhlltJab%e+aXL#C$83 zq-Yrv9u?bExERfnIP%eq>Ou{!c4Zw-MY)W5rMJP%K&di(aSm$Ny=>4nZv{;;r--_v z`ylobCVu~pJ2{~oo~U(3>S=gC-R%QNeDz`u9e3gfH~72hUIA=rexE;M{kyARK7s+I z4aUz>rE}%i108a<=9E|&&=>0|m&9uI4NQV_#JF_@TJ9GY`IpW}vejwKN(QWyK6ek^ z3%1lJw^xMS0g5;vOahwDbnWIUKYFY((8_{v_ouM=(%i^jFO-?2fq_yc!T7J$#K;#p ztnImnomdeTf~<+YR?q)7hvWfBTB@U+?YT;GiF$R|Ka;xe8xd(QH0MJB#?(&yeeHT{ zR$`zVOA~zmQ(v9lbD6qleWPR&145{`W1cA*&k5X~iV;qPW5hQ+iEsiJe8gqbiziE8 zf>e-}8EE0d2v_uNJi4gqv4~3c3zY#8fJ);HK>ZKOFMZj!FQq^yt)wsYg!}4u(&OkPak-?YF zhoXd&7>3N~h7ftxO*xkT*)ui7BlMZ^Q8KT`;UpFgt81xL?4CHaw2yezxM{c-H-{gYJz*nvKMT=-h_5v-fMMsxW4Y^j9wcXcg?b zl7`Qv#}SCpkSXG>)MN3*-~XO^nKNg>=1d@}Q+X(2`Ok3oP@m(Xg)n=8GIJHCrU8Un zE;ByZk!A6BQ0};Ce2F5i|6$om-+1+KP-A5_r%T6*t}@`y^hOg1n$D(_%`mzYW@rgH zr>ZR}Js&*(wpK$5!_!z`w2sU;P50pC9?G46s#)dyQs_bDKJ0$o%<3YEqvh;pAyg2_ zt_b=YdWiNO-*UW{o>kn7+J^Z~3k_DAVpg_HAf=*yPiwUqMkU16ksZYAr)Y>_Ouijc zsB%3sdt`+PGT4;r;i4$aE*qt@%Wle~ z;9@7sdP8f748 zeh$QuY7vyBX$%N7(MHLCx*L+-1+=#p6#u;~3tAEtc7AJd_;{6njs_y)*bllcTUlOr zw15yI%}(eY$%`dMTD&6p_+Cv)q*9nt zfU^jsruePcp=fnUXW}93i55WyOqGpN@cdB~y5rL?PLh;Ke1Vc)>vWRG`hWO$J}4$W z&nL|;HT&ITy_!p=6w znZ37^S5k)&4SXo6B`sXDRQfFmd{Jn7sd^y?AQvgIor(BF z`zJg^TWA}RYfW>fSy>i@c-;`SdUg^qc67}Hrv%M|m;8Kv-S}Z7%u%BK@o%ES70+QR z(w$Kq{YYFQs?`0ZQdfrIpwJg`IG|+0h7N8`y*hq0Y@?burmR<|9T}K`BRw! zLpf3ERpHuJYSfjaz>YNwL5{!rPd+twLKp!bo*Yb&*`u9^LU+LbK4C;?DPu|W1VsQR z4PmwnbzDYL0n^7$h~0%%pSZ;B_Dq1hyeO^GpGFIAvtY%*E4^=H8R)MbsRpOs3s`Z@ z7Gx_MAvvgkVn@n721y6yNMXaUz$_>242jX?4!<3s3xlz3=Sx;%uCDTXRin;6(-hIP z$r@lD1`3itcy2W{%Ey67T7WIpt1l`@AQQ=%|L?dO)cSTKEom~38QS+{9pFbANr2WD zWR)-0Fm~~`tz`Zib>yy3b4k}8V#1xEFIRnMI{?is-YCR{yWjr|oP8fL{61GxOd~&_ z%ShqxaeV=Ipq>nXlqwJSgF~ER^8%Voyx2+JWk+fkpe0h`J^tyXAxhta^7s5QfAG-%MF2apcpJPBt1Mvb(tnj_7IESBvppskqSSZfr@JYhaz14+GC-za0xBWUKsCf!0qe09 zz0N>G0dd@ZE3>6;6)!1p*%~rL{xbU3c0$e3Ej9_=otih2>EJab9a)({CPmN#1B6aH z2L;PbS4ieq4vHX!fiq3fzataE^N?7$@_Lr_`kK5EzLQ4je_;zurf|VC_N7IRRFM+A zcs;!Ua8aN>lR= z+5g$2sy8YZCDkXm*nY3`S1)bJlK8Do2=b>7Hwc1Q3S>%E5++x=PLmEBV=-XTCGN#} z!)>A|_EVN?pnyVoC1B|9&FO>;+u4F|QqTHXKaX~5X1sHy#T>F`AdJyg4BIr8 zFNM3(7LMgUlt+<)O2`#Kd1xnrQ?INrUlGcb7Jt$`$@-XnIcuhTf2xck-*e(#k2h5? zy=vR^?*1I1#EMp`DRVqt-F21sK>enCqiJG7sJ!W?_TPvVx*##-k_t1ei#(J@JhG>q zukt0k;z`mQ)iKbdRUZ0L&6Gy12rxx0R+|uH`jTVIGhaGiSsR?CB@Ww4mAlefL<6Io za!eZ^{^@4|)Zb8`N&(l_n5gD=58haTYbYu4Mq!^Usn{h`tdd%JP#~YMzcR)Dil^JT zzdVNBC!2kJ%Ilv)i?Ua5s{YTK@`U|6CnY9Qr+KAgz1e)^U6vL-Rd7b68@EmZ%0T9R z0U3Uei>V;RuuHsQ*dW`xA}ga(Y2^M*@Eo{DUrbG5Q}B{vPUAhwbu=#4HCO7Wu*Z1{ z5g+Fep%_7?h9nMtUJIV$S+Iv`I(r;SetUie-|dDtD-NXF&Q8{;XL0WAcb?_R%=cAm zHyDcr^4;T$q2w75{V0Pl`Kt&LB5Og4**++1ctEELm*!;XBfI|Mm(l#!}FOT*2 zpk1{8K7BYc{Mdc$#hV+gv|k+%X-I{m%S#}^*;yqT5cb2OZL_}qv5gqI5_4e69P5rz z=J(k;P4`}SvEyWat!(z<36obTGUaPCSHx}MUkjB0pghz`oS?kc8{fl^ zjg7!xK4)wUxaNulWF2C?mJ%#dCW$}r%@7N2?HRIvtB>TQ3^ zsKX}?ch+jb-Q=4Vi{lF`tC6VpJgIQXi~v;;+SP@BG}LaHHKj1kLr^YA-@g}4;=@}E zlI1z|Xtd>k2*p>~Eu?4r z0C9l#P0W2=K zK5hi!kPH?-lYzZDzur@7ZK!BfS_2%(D1UBCeRhIAI^V1R#m?_q;#VR|=psNEBo5PJ zlxVB?TpaH*B+fw}l00O-fl#(+Xsp$dalKS+XUw(2^kyOcd#4s$o?I1LKSyzE@_``M zyVIi~C%}^)g|_5J?-3QPms1;N$WHh?Lt!siXTp2yF@#VN&Vc4Y2NfIdfj(%EtN*qVX>PMA?g{O|}NVvqX&EO`!|1UYddZ(sc$H9KOc5z-~zW5<9ykPMt ztb_(;MZ6by9R?0b+i2%_uum>eu4b|{8nlU69Xsf+N-&GOYH<_oM{j^*y19R4)_*gk zw=oqMtz-7#-Qh3H6%MXbXB;3qUG<_bEQ#`d@`>s86nEukCc(uaRQ-#tAQx0TRGd{s zMtRnvQMgO}9iPiO-P~1?*&WVzKVXZ|*GC`zXB;NiSblnlC1JE|Bm5+7?tPDA?Z7X- ztjCgJH8*DO0BJn_3S~EB3HYlsR)6d+ivo;A(RLUqqderm(gfv1hM#2DGEhX<-yBltd&fUJJ-*^%*d{a070$sBamq4$}!j`3sm(f=?o?Wv2TkGT^#^q}>v{cR?Q$CDSaD~c7k zi6iL0>&ohGWr89NJ+=3sKNI0nF4q|!Sdhm7H7H_qM%pzDp}UgFI5N90{1&taM5_Y8 z{afQ3d$v^@oppW_8Lht|gJ4G5V5)?Ix!HtvGbF*^&fqk*d96QV)9&>C<$oS;sp%w7 zW~>=2TZhp{OXjPICs!9qj?=}~fb`*s*Mz*yi2OtciI1rB7J!|dCNPWHv$t8!cZ7G1 zHmY(_*lM?6Z*t1T5sju<*Ul4|vp_?|ISF+sK(or_s&>>^5(Gv*B`jBU3Ef%qJ=LJr zk{;YQk34FaE)5%}Cj>*q7c`gJQGZDPAphI@3cJjL+n1(z|G!TXCZ6cSHJJ{CdVrG5 zUUO8o4zrJO$ykq51pV5{nHa97sD2R(w1 znqt_S>~i=_=+K3A3{a__KmA~ImJ{WP2_gO$9z%GBhMe@RN-S%4q*l`F*_B^akM_v8 zP&oPN>(RIqVl5XF0;3$IAH;x!=7^gt(d)m=xw}1_db8en63@j!mLH>!n#@h}K$ahC zfY~GSK}U7Gt_-8sl#u0=?;<(AcW>MzUcnxBpq6X|BV})CT`)BZOGx4OmZlKimv7Es zQM69e3LFC*BMy)}&UI!uL^3`EvEus8)QcKSKHY6Wp8gmg&+7hZ zK#ZewK6B^WK>G0$9+W=1|J?kCToi#0o@^aj6CAm+O>3oDCHvR8E_o%@_{&}_=!OT$ zmB%&$z==A$lz!%vH*%ozF|i}<7OYLy%h%`?7AUuSc%qM-xE=YN zT4KjOzvR1jGXM?L1RXWQzKS&`5$#cnZ#FsRcHlM$6~PuG4m%!rd;-s&Y=}5$XM$8c z8r7d%{PXhzwnvrX^sv0*7 z8nbyR`gRkQ+7*JsPL=A5S78z=M8I(`i+!(TZk7Ws@#*_A2gaB&4y_m$$6fSRsWOSL zM&1gUZ@H&TQl*DuYs~I{KTx6J`)!~i1*njP+ z6*&#v|6q1Dgk+Cri@P|r{~Z}wMe2wNNM=>mfdS!gAT!0^0Zu3>(4JIg zHX)jAiAQtU&G+BE-Ds-G)PWQ5sKp2H$RsrXdQ~6U-}s<4J0uNSd}aY?EwV+Rp1`O$ z3h#dC`a&3psG6tqPKu0{oy85W|gf?`eLoH(Pkk6-W#H0x9E(6Fw3D)BEqF zG#!z-%d#r`C{1v)OZ#{_&hUK0;FY<;v2_f3cM<&b&1aSO-%IIZY~KZ<34H&4`<<)^ zqxn+0$ThZVSd8s3HmEqDF^JQR_h`|8m=6HP4?)Ai-!|f(KpVwq}e+ypjZY=dXnZmFY0r z$7;n+Ky$%_?(W$K9iDrdQj}Qa`)+onpHl>4ai_;DonXn;ak|HdgZKPi6`C!3T7>rS zt!br%hr{kimM!-QtCa$J-Y(NITGtIc#h&@sYS2_}rXK*2;ojIGv&5A04TCH(qW>L~ zoE#U)l>l*cUm^`PcwsXKEQ+t9C+t;+o&-S2f=DMy?yIceLCh{l)AR@!d8}SgQ z{ss_2?sruwM$2GP7JHjEmC|5$q1(8e?WFJpA%2mCIpt@fsIP{wm#l9??y3*c9CLTS z8X0RY%|x`DJ&-GLhK@bqRXWITaoFrZ2UQ$kx~-G^%da#5S4Z`t2RMbw%i}fMltBv! z`AH+aAejdEtecliKNb^ixK$4&mAuni5pijR7PsUfnVE07Zm{|+e|oc?^9S(FlT>>w zu*~^h^A`?4V`oPvDp0B11B1Zl_b*_m$C4~}jD$03BTpDyxao|ZVUrER${b&vEdDYf z^yI~?-jqp?$*f4zs`At&E}tuTYS!-$T~_~k#rXNEX$xiMg( zpCi%l(_T&nMWR1V4cGF7ok%0FCXv9xItav1nVVWh8$?n8lKFy^PliK7qgY%@dr+Qu zWbU=#SIKcaZPxt`tTJZ*xN|dy&ewkOqL+m~w7U@-NKwTl$D;>pT z;@@>CWLy%uh47W;l}47t(h;9Ey2N~hB<1Dhg$b1>SN6nlo2P`PO19=;-At5mFXqb0 zFr3=xoRP~6mVh`eu%`>w6YwOT4D`=H^D=nOl~0pl@1Q@S)kxq27HUTa-IZac6>2mw zr+(SBDAZCZnt={#^+IEImG(!pm0GmW)eDA0PvQo+kjk`$dAaveEyB7CShmq!4D z3@OyPf*5K}?&AfYUa^zuJ?C>nNaFeJF_Xohhtm5KpugM>GY&n{U1XTQ*%7b0(oX@H z86OVgIIo-rVx{jS7se#9Gi?sJQP93u@cexmm$Eh*91@$rUO8kF5*|V6eZrqf96CKS zngh<2e_Yd9$3{ml#w&MAGOWyiajrx0KDK-^2*-5Td_bkO{(%PlM1!l82nDEYgGV|* zUf7*q_Rh0g3s5m{>s)OX`Dza?bWTbR^F^|h2P*fqT!sh3)C}25+ru2VY9X(vl$Z%P z(guJ^qWdw~YVjl>n-ccGa^as74eqLT`I{5UnI7Ew3|cCFr|W1zHx4`z0M-Y9`P3*U zBBfCbw@VSzDLkkX^&yEi76VM@6Y!PLl5L7YIc2`Atzo!E0{Cy%k``H zfWU#Ew>x~K@1-s^fGV*u09gvCj=c5q%rHhPH&?S1WI&7A@G2!@26d51)<^ zXn!SbU+M5eZC%tD>yn;6Q8X=@a6wa-O5oQ~zJEkv(LXfc=J0}_y)P4dl*nCXVv#dU z#~G2>mP9&x1lk4R?M%{sfzviVWKZ)a?+@VkusuAR(y?`%$tK?ax?xqud%r1s;qWYPU(M^%T>3zdmbR2~K(FEq5v69b8|gj#MuT0o&mpjt7slUP zHO0+1DqLwMI4?9Q0Zp;)@Q!UD1ZA zxSqy}J7?kZX3qIfp*w;Q#GMSBW*P!zKA_&_0bqq*npw}*u^&T5Wp&WZ5|+R`DE71e zdzl~+VX58H)DBIkF*ggK87HF1uy`-jDDgNc6+@E-JVUvE#VWzNs*5~(N zN~eS2b+oKsxGIfyVgSPUm%C8_)IGxIAOuNgS|yhs6B?0*cXP0?=!nAc6Z=y@0s;TL z?%hpRm|<_z`&EYQ17!*H6@A&{q?39 z?|W|eu&1%UYZo}y-U6syf!ndK-uyDMe{vcg|9B&jv+g93re5^Lj%q^ za?^O{O(R;q=!Brxk#uK)r3decDF{i^IrAbwts4xWOfMD5I_*IvkLw8QaqxJDfAN;? z&mkUS1`!iYi9oBDY{58x5`(i1mB+fCQBy1@gt#8&am$u|nmW$d>Qc>M*qqyp`qwr< zd)f6&gU)x}VCG*N4XC^5)$6dH5O4PoB}^g0KCEQ2Go$uIGW?)EMcxRv>eI(kdZ42j zpVXkdhAVH&+^@E(>kncLMwnDe_l4Faew>#F)caYghZP_mYhH1fHgM zc6|2c$0|d62mqB0HskMd2vw%*=V$JVCKJ#;pgh^=Si^f; zkqvc4eSz4=@>vVJgDPiC;WOx|=INf=Nm#Iw0pSDZO{z>tBmxL5j2P7KXMoav->|fMyaG8L{j0l=wGc z8wS-1_q!Y{YB}-lox~5s*j%94^7s`<>MJic10s}oGSFVc9?hK=NEy|zP^u~9&Iq>C zo4H|XN=R2n8GEiip!8Gzba6ST-9v(#1tX%$6%s<`7bAniJse;T*w{rsVtz7queC=L znml5)@Oit-LB-|0%@UIg3hv(*E^59Wm$~_5a?$GXLG!9GkTh;n`evpenSP*J`1kZ{oIzLTOn5=*;|Pm{~76zcHt|5!Q;zo@#eiw{G0 zhqN?EgVGG$(nxm*2+|!xhqR=0NGmNV-68_g(t>n%&CGjwe(yiP=W^%VbN1PLt?%k6 z0;5mVZ^YXYm^TwlL!cs}5N}Bzu&?c~4`H#RU!9QJ(<5d*ZWV~0R)8$B*{-h|yRjFfP66nJj#CSMiahKS$* zQ-jwBM}wvMLRn8GxcfTJi9&20k?ghQL)NjoM7gv7EY&|YX7-zUu%WpdGX22A=?{_p z>e*m^>^=1;BD~T7uzyB6uUVQOhm%gPfoAVs=A29;4tG^+;BR_?DB$x6t24KvSc+0z z`9M;g#RBLD;>Qt><_q_o1ID zw+WL_ufq67b(slP?k$7ln#=>g$x07~R$Z%r23QAGPm(U4)W|ZFhJg_Tc0&tUx?abm zG%y+72$MQ#psG4Ez|fx>1= zb)h1|a`p&{xs>8l8|)e~b6zW#kmp2Of)5GhT7zLK97E&djujY&AVa3UA8$_xC-@1u z#n>FBjwk;KZ$S~H?f7Cg;$&ZttE?Xckd`G!lN7UTm{iCMNu*-ajF`aq0e@1#KYoxJ z+)Y3eepmfd+BsL+Wf7N+u6E$Zt3w~Li`gHs6Z{bw0(i0ejMr{o0c}BYAd+f*pumpU z)E%RO z6lpG@NV1anaL0CCorro6^6|r2wRLb&VhSM$Nd@T=AL+51BQ#km4*cfNZhUfN4FFZU z0FI~HGDZ)?=45v2WFOjhlR;8>P4WZ{Dtl@vY~#ri%O?X`z%{Bjx+}k-TE}6a+|JLf zH}WmI+GO%kYZm`$NcvV|$;7xl&#TY@Ee`TMG(f=H^v60#9J!3hd z!%P;Jx;z=z%FY*MgE&d@5?tT^=-$w^VzEAQDiGV{Bf5t`kohI9e z5op$RcA5F5DRPcW2h{;$W6k1A&{#`rTtujqsi54Un4q=NXy=A8(w~0om`hK~Kg>JD zn}0o~Tt|Mp#WCzt(u*lzsz06H8$s7^{B>BT&D!D*U(}Y|y!~&i)HeOg$?^QgY=4CK zrr3v-I_wRbd;DL{Pf31=i-RmLU@)JOTwF6dwgX|y?pkyZ z0&{%~P?Hj9lD}YbZcW@QJeex5KO;5|>vR_TxhP=ywqZGn6@B3ZY)%1b^BMYWLSiqu zq4e|d5Ba43AIwL_nLZ^N^3O(`{~e1R>%yC4(97Vh<=}kXZhNU1&k>2IL z{2p{-gBk|(nOXkU33cLn_>*rxo(JrT`@ie}%}iNF09R*>kQ4B&IK;l1@iMEyQ^7h3boRXHTuXmJ1S^n#GC`^h#oU>GE0 zQmK)Q=s@~2Awg4AK2iK>l4eOcmKqvl4 z61znNN!rP@AwclW?)SxA_|M@fx86^Hm3X2BovEII5|j7RzpC%);?O7dY>n8*@!!^} zFSb~)4^^{yki^n4(MBEr$B^hJjiAp+_eR_obl7Gw6zeC2s*8i1?--#XD$FI^X8 z-5?p8bXZmQ^|7byX##|JuI?fcf0ibLk1KcE{}Kt-h{VT%#9NdgD*w~;RJ^T+tm5O+ z3aNFUVgXZg^4;!j7U4xsR`{jF+>4Joh?{|zI24xHLrPeHyLJ2I5m%H)f)1C&BiT-d zd8itnqh8Dl%n7dZYoJT!{gw<4sblrj6A9E|kAAODI&dFi1oxu(WI}7~(u!Ky4S$;^ z^+b6U;L^VIQ$HUChwyW6ewAe%cZL>5I1S!fPt*3Zk=opsmAy9 z1Efi{fXbg#iu0v(kwW|*>Jg9Z%U3ytFNMJM7~f^;&HjvB(}+&-dQwcWp>zG)(87V7 zvK{JD0>r+_;9f%jmfI+R;ZEI+p$SR%13vpAGh?_Ozj=M(SnXO&XwI?RTCI!BeH(cj z8(_Y<$XB|6KVCFIj_=%mL#+ty0p(mmP7$3TI<9%=N9&dd2RBZ|!BEjyZVos9%gxuRH-TpC@$NI%Yf%HSY@<4Ewk{lm6*7V=#0ac>rRw!xsmD zCT*?wq&-J#`8PI@;33m4sKCmF2yjy#O&Dc5<)!v;UOu&7X@yO*JELf# zMN`lXUgrnZs-IgEmGNqW2(F{%syO~uP-0h5+0#86+o?bD5n{Z0yB0Mq1ZpX#!t+9k zkzY5HW+XlwG-i`YlAH3};_x&NCNy$j3K>kG{&<3_R$}(*-P4Oq{4=9$9`joud(S71 z8E4H6V*HpO2^U;$zzzQcb9j>%{Kog>K-s1JR}IGfoEb&lkrMo%g%=j)F-egyHx>(h zIa}{X6;h-eEZ#?=r~r!Sv{V`=gpr0^q`fRO6UqbCj8S263sd>ON~%X(ATPLlLHBRp z`1qEG6wKrhR2w(KLpqMtJLw7J;^C}a5F8dg-ol=fuk}Zg2^9B-JVN(<31hc z5k`^fMPoBVC(=m~x2lW!Ydz~+K9;~hpYQq-+v)Y&SFA;b84#IafrAD_=L7Rqh!RDV zrR%v1cUJTe1O{&B7GBbTvvV_Y72k{8)qXccU8iHdBfmyt2Vn$^8G}|e|Ass(MJ2ce zgPiGWYGhlS1?81mWRP&}lJY>l8*Z&&-%z)t?vK^-2 z{RA|`RWg}KR~0p!7kESJ6!v+(i7#;MyQi0sYX z+oIHJtK#LR#nBw5GXP+DjzOS^shVyKK=<)S8@(f?sjR=|u4I3R(#gqHAsB zw@i)L2e~z$?jMf6js?HH$y$%<1+_IKqJhh2-=yZ`|L+I2j4Vv z+XO}GsG1i%@=MQHp9_AqE+>;3#Bb|*j`ZNfH zu*T47s2A47r8KRyy3bpl2CmqJL^G%Ne#Z&DoU$C9JjZ>5N5qCcZhfUrmlujY~s#KQ}< z@@9lVlcaj?s+dW)u9MJH;4;uo1EL)Mb3txbYY z0@DaLQR$)sjXdNlox7)bN*RXJ$&TN57sA0+Nu1SSp8HyugtkT(h&44-J(k08dP>sv z0m2h7XGZqMijbCAaCH^WVJoCj*e{il;R1rV8iF^G)cF#U2J>U=}tMQ%aeP1UIA z!}CU|b%PH}?3>uzMSyL5Dj4n%!(##}dERxg^8!gP2o?NPcZEik#>WdlDv(fVbx-rUkRPF@uI z;{-kY&m#@G`YU`!LdEH+=%UR&k4gXgQBI1H814{YM{uRL2r%LhJ;?Q61ezypCxlLj zD_jb{buHmaoD)4>`;(8q4)MWl;Jqo{%h2Zru_(YyYJT^AOWuA8me_rkRUKRrqcSxE z#G&2R0;ib_s3M2y^}>l@<)DMXH@4aFchw&siC;&dUW7H)=ZS*h_XQiyfy8zb)C-OgVY z>=ePbLoWz}6_gw-Pp9yHIZNyoRfWGm1vw&Is#)i`ED_p5%Gq^mZAem?`zRG+5}+!T z3t_3YcpF*d?;0jJ5~+hDKD9FNZ&#B)9lG=!1!K|qrN008_K3Q(g3*0{{mbubga)Wt?K+$& zEYco?@qlbp0Y{R;54o6`$8zMW#`f)J(0FJ_NG`IT+bi$Ei>@<7{*WY&EubGlniM98 zwD??V8};V8@BXAxFWFnkvD?YzAA{6=q<->R>$5xD9IZdANkb)X7{xn1#FMF7aK69; zo{pURvi+@mqr0}eH8)>Rm)+|JfV%zk4H%L{qg%cdWSE%)*BYE3!3Ltd*J@vSojpV2 zY@b^c|6r3D_(-^W51`l%K5wRZ6^~iPd9~`0SKeC43;ScG>w)*n;kzfSh2TO5K420ufpZ5e(A#V}S{pye+ma*yU3E<)_M@Hr1^AAg>-_pA-B9Qd&W`kC4c zwS+zuAW&KCMJV{zAYHz2O-NrcnU^3Ib&7M~y1Zcc9paJB)uo%x`3=RQ0SWVbs2FC!J;ON*V9SqxiUrVEeNC#rgB-{4Suu zAB4gcca1tf2CTlQ*QU|d{(vA6Kv4GR>;2@!ct8aXAM`N8ry&h_)ppLl3UNrGpVvy0 z!PNEm16^NpbuBV5aed=LXEGK>gDK6EKFDwy-b0g1D>!EL&5p9u^#XOFjihh7eJc2u z;-vQwyS>3TFaVrHd{#uIS|+5wf3iCEmjA|7h}^7_Ypg3J2PiiHXYQnDS2n3+VQCoE z3Sc)i!U6bWP-IH+8G7SAwjnPzbF(V9j}KUp?!%tGNm#hLcp`M@8_;^duZ2`u|D^-n zu7O@@0QbPB#(o4cYTjda@dqT-SyWBv@JbC`;G~1>$&&Hu51{<(cX0`y5(+V4+QLT1 zqNBx{^i(;-1+3Psr3{oATvnky&5at;{m;jWhKt2esa`-8fDH!28>z5(TGklIzPQA$ zwK~n{;Pu@!RjM^bA8)dF`Lf~+R64~Nc&qC2DTY+VRdgw(>r{>Np^tPoU&NZcdQfx# z*bE8NFL`wGKtMk`1svi^Uxa#W22!j<<$jYX4`L3J)rtNTD*fGU0=cd`;ALNuM09;K z%PI;k5yi&{&%Y?hW6dtl7Luiac=V=RZ}GB};Ztc3Sh-xR$Xy=j@_M7d?x{Y->LCm2 zs-ymTl%9%sG|sslfUW~b3c$%Rmu&eCaxZE4Fh$ESiinnB{04R3a+46mODy)CDdO!8 zL?z302NNARulL5?lS+Hf?m=jhCD7Jwyrft#9%!DH1m!-cmAa<@WUq~Fv4R^Y@{b>9 zcE6c1Qyy{RqIeyk-yd*j2uOc(Gnl>yY7HPkIMZf~$xO_V9sdwn_RI9Yt11#_v0*?z>?adpqXR zy_1&Ov$^VACbPxdfxI)AiFT2`mwn?qh6}NBpiNcs!lN%qg-3_e1m@y&cGm7Ybc|FC z?WaISJz#ebtNZr?X71(14$ueLoR;ICjP5i-E3t=vghX^+Qc)E~GcIFpr&mxJEA&au z{3}Ojp4aZx#WBlKlLJ|ey|DWo-p!v$g)gZ?Rqw^x@j8Peld7%Pm_cSw4Y`?TPse9? zIw)UCYO=loE6NfeDZGoR? z(6*Zx#|SpD#~p6>Qs1RuT9g8z=q8G1&;!-3VLi_C{$%8YJX8>6Tq*f(5hy=1v*7>V zv1a$Y42Y+C;sHsmdcM5aC?YYcSHV0G)fjQWN^w8>QYng2>K!pwDZ`hB6Fp9MIl6r- zWReg~!jM1W*z(*cfa!?bgb1BS8n}R!022&?ukon9w9DGhDD&)R-c}bsJ#^HZgQ%Xj zN%K)PiNA-7^T2|&hBe@K-lO zMF~(?XH4a+Is3+Y^A0>J#5_X&_!l~XiY?&R*DBVrp9r_?5I1HG#7JAG%fr(WmSG6} zw_)k)I$39f3CK@S$64v(27b$9Ozf`S4e$CD<8$Y)7Pio&=5vOxzL z0Wpdju=tr8YP*moyxUd^03n$z^1-{V5mC5h;ldza(0Fe0Q4e>z*8BHzhqooXJGF3v zJXNxUg9FV&?O|s`vwuk{!VA=eyFUNay}t)+J$*JFcp=s4^cM0YrSE;vqXwcmv1P^3 zPJfugB@T^GWQlQXa{19k+q0cXSP0y4n`B(am=`Jqe=4EW%VSTv{{X6&9o>OU9zZ&* zkNN=~Ux||V^yDbj!_(;S_MZZe&Ed;b2f(x1!5RVd>ZU_U5t0JifZ0VukUA%&pzxO2 zmY=3Ai1)+?T8dh|gJ$$3%HaLQg_Di&SErzV?tjc_-I!bekog@tM30DJku#AN$H>#0FOWW=^0?EwQY`XXVx zfkf4_7Dxm2jTWu4bfent^VE5J6y zxLl|T2%0@Njhn4M;%B~R?IZ5{{B-nJxe|rELux{zcteBawS*~!S$3jaYuS`MJhyb* zyO0FMJ=rKP?BM>vl>p?*V_*Z7)pcT=hy60cx~Sgaq_}h7ERWWRN7D zVA6&`QMSe|H5fJ;TqhldOlD38%EoKajYu7@Z%qS;O&L0g)5dcYsj^A!%b+hTtA@OsLI6UNnlrDH9$g?g&bZN-L{uX%=> zy00(97+R(!8754=6V=s#>Y)NQ#+XgY(de{uLLFKuWwpDl+rQ7OOhnRH#&}o zPhm-gt)=>2sG1vdnjbEkT*nfHQ*^ccjOQ&Q`*{@}%MSxb;6HYBi+lDpHN}Eu| zsDI>%Q@E%^B*}0fBDfjeO+ts$^k0*1`OdM3h^M&iP`S-emE?`(Um@ zr^Htp!!&qr*XrzWxvruViM9TePy&?O6H)}yFcas&0%J5z9cT24{7Tmp<`msc%P zOW$#$fIp&E0?z)r&2-Rl^&WC5{<~U}ZXUx```N;xc)S4$0CSlF=7{#9*BArjbP=bQ zHB~@TfE+0kFCZmdaE{e8b^8A9==Z+4oTVzy(k(9JlwxS)x62WgYr`||_k7uuhUJ6R zKX1oYTg+WwBeTr*$H@!Z6o^%$<7VcE=hp_J(Zr&4UE}R>S8ykYMz!nj4N_~rfg(Wb znE^3wsFvDKB}BRia*vBHHYrz?S9has2MR&$njhUO#DUM$<6qI%nsBF)2s7`%XpkjB z8uuBK(`N@)cU0dy>i8k1;tRW?D@N8rph440&@%|WGI1jeX%~@W1g_qetm(wi{bud2 z4@~!p8DFfEBqKv}P6l>MG>Tfk;j4=xOVEZBCM71>C|4ukk?mL#V{-8we>~&4bK^d( z-C~jDdt}$nn2@GoY}Rum)S02Id$+Ol={{}zx(fO6B0xb63A z9t0{ZKbqhsM8<=W+8cvSM&J9Y5AN%APo_&!@o|!50zoAjAH`(l@%FjjjAK)Q9|L8Q zIJJL74kOHBc4d)akDPF8kr1T_UReL_M+}v5WffDy3?ydbfp+Lr0-pi)_=4^IDwNGFmGiv#E5zLcEo%&rJI@zUORYJUnhip&NcpaJ& zZao^%IheGJ2`G6SLv@f$zLL#pG2q?JHJ*{U8}z&zdj&e#LkhRZ6*=Hc5tYNo3^| z8@>5!u|Z|waWpGtO;ICq%Bu_ok-X4mPeKOr{LpJaO#GeH#u{IEkjSTPw(U1$gQK^b zMGvJF++zwH$0!?}KvO~UMKVjz8gf>NWM&HJkC&5iUOvSx4du`hq#N%(DLC?X*;m&} zSgzfbIFa1noFMmtUV5FgvNx2t`3F5*Bo^g5ybNxFbO9*YNn%8!{rbf~Qawci?qo?y z738>50kq}?tf}Xkx+f4lOvc*O5(hvfN!WiQ5ti~mCx8D>zwPU?ql%0GjE|$+zHpUk zV;QPJJV@Mxs}*friSyM4*~3l>(Z|ZWlS*Dv-G=H)-I|YXx()M5k{1Hs9#nmTN@q0y z9is|THY))2E#TM-_@Syb^}@JGuy%vC{haP{prP>7X{9DX#&@7sVkp8NO=v6hIR@Kp zOiLYt-%531a1klQn;<6|9r>VAx1a$4E*L}>((hJ(jNWp{%$5$A$iT(>6DKeptzi-% zFuZ?PR>NwmXqXqEQ?oh!>9f{0V%zeOKf`~(6XxH6TI9c&Z?MQhv#N=9S_6IGd}BR? zfYa@YURua8q};#nTo#x~&(@R=(F5fZ7eR{1o_+w;$<;=1&&9sS6pChRB68mLX!^O@ zetmiUKmG3B)06j#?wtMQ<9ErUT>GNm%v9d{fy}-N);gYgY?d{;s@mc?CfFcbU2MCu zN}bpJvo~l11FT^mxX5s&JMN@+{c}KqnsuK13)ApyDu%>MXlhlLnJClrfkk_wD+X9p z^7o&}Qv%+FyX=(j0iqLt+Q}0%v(FQYfJYz9Hcc3?6f;x3?+VfN0CT-9`0y;#JbtKT zp5DmM(UiO$18#}W$L9Q(XY^;c=8OM+hpHnTNz8R9Td34a3^qKZT*2Q;pl|;iD4T27 zLU7j}*mFB*kyiiotldzip6*JOnnWpZA%E1TCFoVivttJ$wep9+{DDV%epo&&9{Fhh)9gMt}OX+b$jgKx&t|B(I)${nwh)Vs`M8e8M% zk-ii*&KSvmGNC)1$8>qq4SJLbdi@0+kqyW%Wxk#RGX}QW*^mA_Y{1xcg+FED-|68* zaKfQRt-RHdf9nP>^;kjqj58s+__}Tyf+iF8by0-grdMfT()YF~%X?8VMf}hLP$K{k z6Jd%AAVEN=o`3|H;uzn#5mk06$WJ^*jZ<_zSOWc7>;_u?}6Al>Z&L>^raznZW>yCz#^A^DF=W`=n$gSnDgNmvcjN@X1x#{kZU<*9-EF<+L3N$fK-GdJ__ZL#7qiVGXbBP zg#`xlnA~600+}U1Ib^%)#FUf0N~nqvZvev#{qLpA&d#5Jvx=Myl;Y*RUzB3^7`aCw zVNIZ|nIsh?W&gCkxO587w_R;EacX~0^sf#h8Ykb(L`)I)iK#=SPS&+9xy z_VeT`zCJq}#GdrM+yH=}Y*yIY&zB`|?HENYIP8bsz)UxtKWP&HXJ7Xh<4wfbJWVNc zf22}m>Mw?FzZd5Rt8)91nE+Xc*~ZLl*b17qo&%VO3I7Gl2*59WG|vhfSg;<*z4BV@n-5}}$NEE4*O zdcoVFTr)%B6rYy{3ng;f%f1TY%tS%I%CF7jn(zkV&)tdwd#5r+PN>qpbQM|lV(?(;QL#J}{coW< zOTovp^L*Dou}1*;_@_*B+3Q&$O-hO?iXYPWk*%`@DC&MR40#~sM^^NCSrJN^5njUA zJG`Q=unyKs?YjY$Q?3`kC>bpZ?GKA31-I-)P>7=aKy`XJdpYuWC^Xr8)2sS+fn~BNWa6qYmg8cpupMMT|6;44 zcd93uizpQ&Z?MJXa5s!^_ zU~ZZW9;u5bGFlRns4I~h1yHYUoX1TD-N^&4_Ev*K;a4~>m|p(%X}LG99#X4)V@_NR z`QJY%rw(?lz0bnysBU;}NiL4hJU^I0Zr(doT`PN@@jyUH(Pz(zGI3TI$A2*s8fNcr zjl^vZO12XjRhf*DH{`6_%jzdIZy->1$In{*M~*)f9>DyE85O7kyu(wy{5N%=h=H}y ze_F?MQrA~PeD@>M6hT|cK=Lo~wZV@QPAtRV%n(X!iWW{%7CMgWRAaRf8IP`rK>pB_ z>7@RTKwU48$#W6+&_Mp3e71gb6m%>`KaoRE{d7e{A*{z(rm9NItn3wkxPIf*b|Z}g zztx|l4FcEu5+7zTVGR;}X*kOK{*USHIW{PLr$!sZ_Q2}=nb=~WuTJz&ipe)3T%cJ6 z^koIVh@uqDZJ%{VsUM0D)8hXz{reKT1%posazSu4`yy{l`&^!zsmIj}#e@mJmcjo{2GB9JL@@ZBR>-b|AF`y*~D z=#kGpTL62G)(T|#^!Z?j1IJF-Pd`u>vPEKpOK8>ZF-w72_bEI7x71VvV%!ef=><0+ zHOd6~LID{44;fIV*dVJ!A}*$DI^*&^s0M@-12P$5#`T;aJ}d zg_E&FYQ|W-yjiec&l5Ph0K0e$P~`~HHKK8q=Y;^`$}i8QN{~C6LK}2L{AqNP>9q(P zlgA2xSwT0W~V;vE-%`PT9IZaK|aPI*)@d9KdK zgIhQJ(DJ8!Le|d{Clc3%@oGST!f%V+X08+Ut#1S|wA|qDHT(l{EDv?V!5WVmuBTp> zPal~~S?uIGg^Fv6dpIoZE z5+8@iZ`sHUlmMP3sdn0$2H58ZsF1u52byLaV4K%;@vM%7TV1uaqI}OWrLP=|?ti=+ zdYv-2SHY_jq}@t?(ym>JE(8Ed+Us z;RC$@KffI`Dx1O3<;3?TgXKN!CDEA#V&%shS87ad)Qz5%`N#Tpbf4~6NK$o%f4tP#%YgdVDE-uHk%&me z6c#9B^z7Z+gZTqtafxWuO%pM7n&hlNY?|QQmV6v>!lE35DP*4_u zNVpo2L~t}5tV&tFqXTFw{=!?>cYE!S37#3UOOxrGn&%lWdYqN$ea^MAfOI~-cjJx} z4D0PJx>k_vn*wuY5F3WqQ!CBC6tf3ftsY`odcS`&hIt~sr`HIVpBUWD0S?4{Q5^Uh zUCHfwUJP@)r4X~0E6px56PoG)z%B! zfH2<#V1^aLV;VEiF!%+{ETI-I0A|En3Txpa8)^*1^E;X$%dvE#up%HN_Pv?eBT#nxQLvIKCON z$(B8oub&s}h5OCK+TZV&Pj$JAWRv|;%rc`wF%&zl6p*7=`9WGGpZ5r*?Wr)KELwfK z-cI~PJADl@*DaVXt9xh1$V;lljz^6Yk3?|?bEbG$^r8r~AS zpR7rWQZ+aNlpX)fmgOxA(pM^#T5|j$|9m1DJ}fntw0^}0qU=%t1iJdI2ar170(S=F z-nG4+h_hIzIGTjam2<+pTRvtvRP}g}Qt8plw+yo%`KKD0yu06?qvFFkvl0-2BWM4Hn_gin;Cp!q&CTnmJj0=7!nv2UYvj-jIUw z*^nyYTEe#l2t&#UCUIyMx4923J&JJ+eC>#qHMtj&VyC7o%xfO@F0+RvndI$0< zaPXy=Gy-iEe0fi}lU&)iekV1VxQI2s^V$#6o3vYhpK)X8-Q=zPn(z*~6lr^}yOKF$ zxtacf4L6~1K`5l}eq2f7L0nryJZagO%Ch`7{Lhy%aD`@d^q%Al43BPqvgkdy?Zgqw zEai20fpLiqqod)7_v>(vxmbgZl?zMeDNr8{m8FppB$6kNdpY05L!)mfKGEVmqO* z2^A6@z4`F(EI>&hT~*N*@4I&Rrm;a(gCi;jIA!ELJEe5^W-m2`!UrP+#0#k%;)U5x z#wFL(=CGqYcpUbn?^v^fAEQu~=9XGDRlxmI#FIxoY+XP$0Xa}UwpX*%UQ?()s%8tQ=WQ|w}Wii=P>mnn1D*u z_D5A_;WqIJ@^|f{<%l=$h`(Ih$pMTQV^4y=Pgm3FNKIpG85(Dxs$0F&5J@i%TRT5Q zG;)Mi($_vKvP-|0=w8>m6Q!B)h#nWC8vh~N&vt$7_Sc+}LgxCP7m&9kinY{IBEAkC zr!7U|q{=3=6w~17J2Dfl@N_(Kr^D8f++!tH%={o6g;{MNXD=8o^Y+DeJ@k^J-Iw;l z7jjKp<{#K#Nd6z3m*`fq578l4OYqms@JI8iBk0)EL?g=ys8=z>_H_F~b}A;Y9XAVw zEb%o9l`*NK3(7{z+G`=F1k3M$92EF){pL}N$Sn?#w8P1W-XkbO&r0@k@c3(gHV0Og zs4-4^^TAT0Ex&7Wc+nui{_gr`$nWXM-7mBQz_#)?*%oL-^u-KX3=}U*NQok!Jl+f; z8h4s)mF*)c<>Yt5G*uoqYo~ntzWUqdyuGT7u}g|S6Nes;Up?iP+>Jkhvt=rM#6ASU zTs1>NDdKIA*MxL^y()8}6p%SagRiVp9!k75%Wr5G_kZVh9~5bFx<~8Y#3Q;p#gI}D zIZtE}kav1sdM?vrhYvW6n9hZ$&m+jBLc+)G>KDMQLrhH9#H{M>G?44p?u~bDO2^-< zAuPS*#P8!Vfvgmpc#x$sAw9~U$(kv9JOAr^v+9oK#?>9zFQ0aedCv*YiAys?0b6@} zds#<&d&WiQTF0T(W-}Ebblp_g_2H|dL1)_Bs2pv2=wSE79m;)L;{8L}`&%D>5%?Fm zY8qsa+)f5E^>0RS^kowW4MZmO+emTDmKydWNcf=^68l)$IC68-m--vDq~ecp%g-Ky z-+3kLeaM`?sM}$n?ZWvQW!5H?S63|kI*PVc!gR!WUom*zyNPBY?z-AM?ss}-@3C|C zz+zgB_zE?bbG$cvkaVhHGD+tf27apcr%Job%Cg}KlQD=y%sw_c-`U|sMVF_N*U61K zejkrUAC-7qp;4rR^2O^tz=V~-j4E>P$2+$B+Nfho!yzYz8rzPfgan*A%fV9nCwis( zW}xus~_+ww;ME0#3Ib5AuR1NV zAY$vy(|lhvMfkO4E-VK<8G4S|wBwEu(4i%dQ*9K@zPI)TVFpCqiGPK>DM1aIjWzKW zofTytCre43qd9W*Gz?j4K{_sbZNJn)<^16Dy!$QrhX8NzuS2&Mn|fwqw9lUO4uNH& zrK*)-pWg_uNvVovxcGbK`+q;s@t_P=;kTwlX4MMt0)6X`){+nho!mP3zD1j&pbmqG ze{c;Xsuwq(VbFkNezDgyI&u@_hs6=RPSe$1f&S=h`fF0qE{xACr#Df?IR$J@G?n z4Va(VX6U?}@PI!GtAv5~eETmg+SsH>A0 zl*1amVnJwE)8Y2il2LzpFlUlzbzZ`?IZ`<9s3I9_jAS zyQd8Er=PczUv5lGvs-<422)8Q`(?hj!~ zXq3GY&G4>xgY6D$;`3zeWqK)fw5w`Ce;qi`Rhy059ux#D3gXDlfXQa4ko%HQbr-lT zq0_a+DPnr|<*bOrV(iQ8U^^p|v21&zb=f!GH+ntx8Q1$-lr|qhZz3$Lh*r;ZDrm%z zTwF0$*(?7+!v6HiI!^J3JvvHuIQM!k+Z4GdOR4be+VEw)-!Cua4*Xf;qRnADP}fJ{ ztd2KpYD|deGp^qZKk2=OJ<$8nSM?U81@pR!(0yW|a4gxzzjC7@91jIP4eUlw>z>-Z z5qHxYv_kAr>X9-=WDPpecpdXj{9Y)G(|wjQ{;RQ8+(%PORWO=+$ar}ERps4@=(qE! z#$S4l-MODL{Qa>)#gUI>ejD(1dl9=YHCNC}z4w5)=e+7&VaRk=c(1c|H{CKV3Eumw z9!A8`X=Kim!zcC5{9?C5Fvx5$l0S4<*z{60I{4kMJa{|jxkhf3kGI_HzL0uBq|Y|a zJ~Hb^QFu`!MyG;y&=>Lxhd<4KW-}FB%4`NrcJHJPRL<$8*u3CnvCRuof%hns&PR2@ z7uE~sagZc1*KcNk_cgiQb98}B9lE?upVWWjJ&+F%99rXK z4$Z#=-?@f%G2%K52=ONtnnXeEloD1i6o>VEf=>q6ecwi{=h1{g%oKEMtB2nT8_H5Y z@LKe`dQ_PVenboYSX#`0r@Y;xyKXsjw5^+VH8fevn)3Z*k<6(-LO?RK&PdUAm@Lig z#>lDb%1-#Ci?}o3M(tabeyR4(9=r6;2yNWxUqo%`1j`9)@r5-gWVf%uITK3Pvo`M{ zoFeI_(j%jQ_Jce3phE2UE&xFpUhqJqGOSVJcF5FcMAK}|$ba-15+X>JdlZsCSLV<`Bf1CxX z_L)94(+Mxj-K2}o*E;z9POrVapAWl5s$Ljm9b8;S8m^t_@DN^L{8Tau*3DekM%MaT zqoUELLi&wySX1J*s%kdVH27O1MELXm!@n!`x%s3^D+sQ_=;kla+|TXu**R6Izw9kl zpa+vYL@6lLxX5pudSYbdv@n($QkI%Y)0bRiPHLAU$IN}4wN=@Iv^=jdePBDU&z;nQ zKGFjhz;&Oid0~$5T`&cR-bnZp^MeB@UsCxrUpfR;dv?t-MxnnSkmdD^K`-Cd9YZlX zku>YMW-eaE^M=e~P=M^cKB4A`mN#6d&IFC}^654n3-vIx|6KeWZ9${c{H)_EIe_(l_=|U-S_a#m`OwpRZcsW zLvp{+*Z4Vph&&upAyfH1#^m70zW3-xnWj=^&ce(o5KOOgXDk5%aC`<)u`(;sR0 z9t6v9K#p>|0tD}Q*}ov0wJNB^BJaG-Y~s}~kVIOaAbZeIZp!BaNj15iM|p^aJP2f_ zd!DQ#J<)&Sl2cC>M7^z`%2>D&p zy=SQBOrhxBRcpLrDky~W`(=gTqFd^A7=OBqE!K!NcR{osXO%^WAzP2*yKp_H@D(#% zV)S!kq5i#t$i{kn@3-iO*F?Epxcj0F9q*d|S(0L1nEkA7J8CbN=I=MngnZVDS96d) zhnQL=!{G1gXXuyYA0{6=lJ^N&cy^? zznB;f)YqW&JV3hgSQzTtyKaai3OJ+XR$;4a!>A-(M4oYyRIP}usk z4r>{_YmcX42yWxK$HeyRA9Yq@3+&~Q$~t3e63?V0y9s;HFXwH!axyNaP%GSArISBf zQbqZ{g*o+HD;xIC`LqUHVC?DevI?R(<7N^opnZ`qzq>W)?h};G%E>RGs=-=GVXHpv-b^DxQ>-KUN7AX#) zhH>Z1jFgJaIsE^5l?Nco_kTB80EX;RSfaIb^$mgrpJ-G51>(bnXHB z?gmz7kHMR!2Y=U`p1DqM^$*?rjn(lRV;1$aG>*N z(c5Cb$3mv&SV~)uboPIR&>dQY2|TU&TV0DR7RhwtSbWK_y4lCkvi3C7p99+oS^_8U zeL%7bF;)V&EweNW57;KTDCSGKC&?dCSzhk1=v^H~t~y5vYvLbwLWA$;yBznfD(H~p zpY)8a>eeS{o*l2@+lc(N@C&|ou)>E+o8BCBsMHj1_}eb{r7Ryc&Ao&l_$cu9UEb1N zNJTOsGn2!w7o*cuI8R8pRTOr58uSVi&on@VkU}pO&>~VqUgyBNg%^xm zV!6xd1*dw@d*t7ix36wURW~s=wz4jc`dsbrbaq~KswI`(BC%#d*~sa<6eI&fuecS) z>lW~Sfbl!B;o|obqVwvIroFJ4SnXdsx|cZpG`7pT>)=7s84A`&Uk4(v@z^Il)XI#@ zy5A6Rq{ZEO=~t8EQFf{`bHn(EJj3R(k!K1KgwbPgP5(e=t;|V9pf92*lE6R&(T0B# zTE12g{5%A_k>KFl^Ij?8XD1&Ne+N%~DNhLbs50AWK+UErU$PiT8_4>H{iKEKrj^0& zxQH3!vT^F`1U?I^e~2Mfy)w@7iIgyNPxiFWfj93Pj}=;u|JHnkW-M9Zk~dU+GQ)bnvu`+D{zLACxO~40?KWwXk%+Z6 zsURx%jmi$vZ&)JhL0{Id2JC51?RH7@({Iq}zTw%~`2w2V#HR<|WB$OoII83X#nt2k zZexK^N`)@$&*Vm}#3!aypA^a+qy_5xjUeiboeg&-$=gc>R|4 z!s3Gj=Wjl@9cJ-8$SFUB7ngOmFt5f)#VOF{s3Y1%-?NvoOb!6qq0w1%a`lmwbnDTf z{3Y_{SqxpDe-I^eM~(CkuQ|osw!gdk3|?V?S8Fu3wx!P3Y?`c~sJ|5<#0#Z-K~!-Q zDdy?oXwivpCt)eDT$C3fI#+@CD3-!-RMR1EYCJ&axG%2D#JWCjeqkxae)qkT#N6kM zB);TA!yAKeli&9E1@og*KFgu1+z->B~Fq_dDQ{a!(kyo=qlKIYiW^`Or_wQku7 z@;Ps5{&Y6u`a1QFrk56U+QkfS{!~b5@9wDX{;|E_^L~3m@CgBMx zro3d~sFD!I{d^|5eN9ArnBFP5vtbY4Nkll*8V!VQX-T$ z_)4wDZyyiuf~*+IIf|YNG$^e-f@2MYDSt@nPb$T*A($CDA3cKiMgp1IS#x*MzGCC-iCfBwBuB9!GC z)aKKDvDS>7UuJ+ri#myPU+B~k8F^`6-qRj0v#Qbm$s2uNDsi}?y?L2$aXyITw5pkQ z%kvw#MYBIw^QDrAuhA1q7=+GQE6FhZ#Z@;%Cf|xVakovouHo9dG{Xn32r%feJl%CS zK<7pS(HgIW;kq!HGMSh3eUbRj)gdHp54TmfzN-gx>$K4`Mb3`DocaterTI$o`V$jCf6m4Ke=elC7ytx^@r{hWg#S>ocvtu6kT3dV=* zV-N9+z18DJ|LF3U6UvLujG%^o$Ctb-fK`@26bwq4FlPC)cu>E!M|SWzVNDJ*$$rR}&Yd!T+lD zf;OGO8rnP%Y;5R;N$#>=E4|CfSy(1Pb9>|-4GYTvY*@# zM%;HYW&D^OuMXikCvndyWp+rVBI(`Vv1G2g87AOunZb&An8<6#^r_+cnrcDMder2p z70p?zoC{kXgAGoiUq4~(a+k1~SCx;=b*+jTpN}*cihi3AEIF}lAjSr}AVNB#&9d0}r!P{*@19PRO7@gf0>N z>416J*_o?KyCfE^i@D2Z4$3(Qqhg&xG_5vl+0%|7vr2ODHfeoCA70M?WBGKniF&pK z@%g#K?bf*Gmo_31BdkQD+N&l%aboq#P4`125UP1)%!=(sBI~|i3lPKhaf}=;e)#z%`d6p zmF6yL(JsW&bDO#vy`&`W>G-bm9-^VY1$bKy2By3Z-mLbo7*9WSC z4Erl#EH?cE>PN7nGZp>dUFDqE*onGF#T}2hwWfC@$Y?fl`3R*yH_{bRv@lhlELkCk zaxFgX-p?%VZET4f8kIg5;WI72T}6Q7-?(_0&IanZJ4|@V5}0lgk}Dq#00zlWu!r^> z%d3x$NsHHP35!Y+ZNGSE-Ew@xvSo#dJ_HvtMTzI7!9t|@;Mn0~m1CfsmOS#KYAzg( zompQOYMUGWLfM!&^VE+MQ#G-mtMx?GBY&%FMBDC;aEN7MDxs2|=)^fy-DE;CfC7=|>wLz(a@=A#USTM4agHSPhDo!P$f7ZOly| z1|7=Ajox8t-~rEq;e;6-2ixP7Bu`}8zg0jX4p}!btPmu!B9C>2ZZ=(GGUH+J``>NV zY%tUmmKRKm@W|b>EBXjc((Ktl-WePkl*8|T zlA#gA|BMC$@jK=*W4RUyi(3!=)dF()XHW%nV9hOScxj|;eYTMEyIy-a)J(4-eb|X{ zPUyO0X28Dp6ouTYKW{nmE2!%a#RF=X#&FiBy~hfioMskwIaWqJ9CR>u+nYu_DtcQR zk$dS91sBB|pLY%(zPB9`l*~TG7T2~FM-Z&Lhc8*ieIF$WTMfDrf*ofHdfzHEMuBnE zxFaEI9uGHkFJm0C_z)*vc?Wb_)wd~Z8mev(sGXtPu=?@xXV60Q1xLAjAmiVdBxp<` z`^t&%jAra(x^OM>X#(zBI{`o_9T#h#5;dE<~)5rKv$uWWB zOT3#ii9g3PIF6Pj^7qQ`3{Q@W%}ovMr7l;G%;k|>b&dsp+zo>r+XAq-Q^VNRlxuA! z)mwGtzrS8Xfw2r}{3uzHXydfQNbp0ksKEb)i+?MeYCS%8(OND*bVuvk5|zWn_`1#brV|mM-!U=+M(S9 zwXn&lXQYB-*jx2y@@87owyDa%;QHz1SH~JitkWB7(D^^8+20v#h6HP?PDE<)SePk= zGIL~p3=m(xWFU@ zQ0}(!n1x(R&V`)_)*WcAkeBCbN$_Du^$m0m5~yV>^%5z%_aEK8+}sleTQrnh9wiCy zPo;Vh=oGrwyvo^P=UdkAU7>sc-;6HNgiSqq6}xIccL8SBdzyvGsNKmZChTq|2qWv? z$6BA!?*H;46aVES`=_OOIB-sE)k8CTuy6Mscsu6Qc-U=Z&~KqgU-6B;e|WfLk7{LP z1r4~TE6n|ngWHhfZb00jbua~0l;2ILVOGXboA2((H}-UKK{4kzd%Gia&G;rIkxq`v zqg>#FdOinBse4rVTTx~$7`UlL!=kHpGK?e{{xU|#wiCVHz<3C?{c2(98h^tX%{ zs9^>r(D1=l3oym5REA~?Jdr3UjXtUKtTy1Jfo{inh4A^0R`rg*- zBlAZCrYGGhPFZ})3gnNt>c^9b@m#Wi_Yh>=r8*!gu4T-JKO1!urbEwh7#u~NN>oS? zVbP2Y?1b!l%)a^|Ch}uj#jSB&qt3BacayM}hW5?BAyO3AM6jDT1xg;k9UEL(bD9N% z&Qhhj2rI5a3W_FEsFo87K-Tdi@a*Sr>yRrPa9Vy*%{>`;D16xInZLKxLB!2HJ}AFV zCR#}ONkA;jj0^hRfLnMD_bS$@MT2p-7wdR>NYfGjWNOzS>lvgkYA!wIXi$3C`{?Y` zitl7$hj+36iSHqe7Gipt{BAq{Hto>{AMXo#^**pb~tW=?$}{;fS(xSa^PQv;p~1!y)ERef#K-y&h1 z0aEo=wC60qB^hdd(kgW)G~SH5QvaGZY+Fst3$<_ixbMlroETJyeh9vqd0SJwVMwT| zGAtQP(^dhaKV37#5hT7pTzp1k6$F{<>G@_>v$EB_OrqdRIbnSK6K3Dc42$reHwhQq)|Dr{LS|3LwpA{Yiy?Y z4D_Vzg~muUxBXeB8s%8>NU5FG z4dukG2_OW@Z2yE>=*;DI;68^3h0WCz9tFw#yAMy7sU7Z{1jwRz0w*ae<*!+1wM!s4 z%U5kD$n>`XbCbRK_^IBzld5>~$#F3+-9vd8(a@!-ZE$*SJma8WaJZSV|*T5SKabYHoie zw}1KW>yx1Yi8eQ(_L*8(C+uvTwpMJ`^;Y+B~X@&xUjwq`&0Xm9hN_58<8jzUTMt@D;)dCSQ83ns8SXK;o*$ z)zRQnensR49yr&^_rO94AUK*=%ZB0eVC9_^>`r9sSoqo+)9WcuboHjgiLIJ*o3Qju zP6nZ3#~^I0EY>S>3t$)fDr1Bw>@0qgM)gsPcI#=%WG*u)jT@8i?02NU^k&~-f!9jq zY8aRy{cO9kFBry)IOkMI(p(}!8zbg^hruxiL9YbhmCrz4*3+)39Nh%a$xb=Z$rE2fGO^4@0SKKJ8G0*$RvFj3yi|p)v8PUS?w|zVZknom>ua!&c zfeHqk0R7;8o>F4}4{Cd@T$zN^3e|9)+( zQ3@=cn$e1+_p~%9_PJ!}d0gyw8Qx|Gs1C3i5 z-S9#)G8`0H1*`bVWRWd_s1r#0>W(~{+g2SKn0#MdLiYe+s7@OlTX<{0O5n6{7R{)7 z7Ggno#BZ+cA>dh$cDC(gWl(NWwHn0xtqO{kRsdo_)$$10G_$A4s^w zE9(lo0{U@Y)F_T}|ES<{(ERh+zvfR{<&*6xDj$lz*oC7<(1Zj2D`8p^P};fEXW~Z) z7aNdn`Ys4mHMF6zO!-p<55cgD6MbgRTd|@qRH~UWK6r;aqoo;rk{5sa=v%g>abR89 zqKw1;DdmIi7o+K_9bfeCEW*_T!ZslOIh% zrP)J^^9vW2)bJP;D~iHH&Y$kt*pp|TZOgDT{nbt6r;vLZ&;1LW%vM65Pwz}hU;Ny$ z5-UHwkd|Isi2;65EcD-)7w0s?2c@%cQwQS={6IC!Q4xY?A#*ftZX&i|1wR(&Hi*(PW(mnb+I zoE>g1aBPZ0<7ALcx+spatDq>hO2*f}cJe|Iz~zh9O*oLW(bsUMJND;#(v9c3z}Jmj z;OrhDJt_3#;p>PL4t6@bAOg{LpxZK-;myND>vJ4@EH{*PPCkID^Xbi2+d_j19)Wy; z7S~MjnE(7OEXkf^NPS`oT)0SyDTn>LT^R~1@i_7)*~9m)^Q?8-(=Xi5jyN41gN|Z; z`_$?s{xjdI*&ZPD9k>G181^qb>EM-0Aj7eb?dTK}InN-Zt9^-Uj7sVPcI?(-KLn?S z81B#`K1xuEGCIY-(U3L-8mz8(uQur(X~N9Zuu1?WL??Bm}JZi-E)Zq^R7sw0}TwCWK z$Blk5qSo!*e(j4++kRw|8GnQ%MNcTSh(oCFGU~8)g||%kY%qNWJuRC8)QqcN;l-&d zw$+_vS9mbwce>zZimd3HJ7_ih50$a%6T9wgStb)Igjq+o2{wb@0_iLk{xp( z(s_oHNi&+lr{ejy;w}cM+Ow-W5}UV`w$lafH8+%p3C;5`khzrd=j|gZAp_fuN2}K7 zj=*_+YrO9zQj`bGX*jixyjQ-D3ji?gpxPjM9HW|{{~i(rk6_2($_(iP7HqW6_itzN z=)Ct{#M|w#UENihN-v}3^X*odd$S4LG5v5XV#*%Hp-9MSmOLd2m!c(|)yX=3!Le%@ z`z>pXgIWfW#zI}+O6KL~sha7J4ZNtI+WUQE(^0Igr+n&0?I74~R(Vj=h@Dpkew7Q+ zZO&*Q>AnL1+=BG&ZGMIi*$|mxA!$gy#i`b3c?=_qK&IuC=o7s}@jhi`96^k=QF$pT zc|kCaay=%AgPye$L}~rWuzawB@m{p<__4GwOMCtVLN=-BrcSp@^qH-VC}KJiI^AL7 zfi$?|vp)IZgNlYLsj-=DdrCMf8JkW~G2`Kjky;p}%ik^1+nPe-;^Ncurq}Z=EG%b7 zh3>X&Px_Rq&~)$2zxHqbtPWM!4c25j<+>>qoKnfLOPGTv46&|g-BbZed~RcgZ_LYa zn%Q2f2+adx;EL~=H8e!;$p&?0n?bl_d~wz}!xvwjE7a@tTPjI;NLweoH}@iA^Fkr+ zx-CHSzqUBe_&li>GX;op_}dN1-WgT7aulj;BRdr_YiE-}3|*y)u!{~{-auAZjN1B@ z-!JA%#ad-ho$W&el6=*dGT_fglskan`G;hZB+vZ{o^3cZ6qm_?PS*W+S3y;8TluFg zOvCl=cYN${S**5zC>Bby`5mw+5~DQstZAiJYIXr!cv>uq39bquRRi6`tsS(%P1HK}-HBkfZDqVaIk zZ(0?RbzeX@1v0J;+k8=@eNGKzto2pA4SJwM@~BUQrT4Dt4e!j{c1o~u{=yhTCiP9E zetf}biTA!In-Xp-MlaYNAnVgJ1sbPNvnHq|NtY54Q8HvP{=7J4PvG?31ccZ`KUn24 zfXxNhW)5ogIR)*=UC_rfGkr?=9Q@g4UGU;=4tq4i3*n`3=1!sziUSw2&|5-r3X4s+ zDk;=Ci-hgyMpakW*6hOa9?|TLPZFL{v(u2inlX}%`(+n{}f9yO1%X@Mm=Ft%-Q=LJm!l zN%C>$Yqd__Im%OwjS^W^w|ap1HXCHURD=fEa)7C<+Rw*2+I-0vlpS$Y75@BZxW-}l zj+D5_xwidlyLfLeyqPgYM>(1=)@xy@B{ z%tdhB?IA)mA((upi;wKcE8(aCqUt1g})SHeo3(t*f7r=KG2R0&lB}x{Uk;)(5D(ry8{-DN1cTuvjD1m>wf}OLB=J5X3b1v4Zh(AsNN%#?PWjtAc|5%(bE2a{x~Y~P!K4# zn>6AkCq?@Zy$Syd7UjoOyYxd2c>7l@yP~Nb^=@!xeu*4L@iE|-naH|LMhQ~-QMZ8n zta9}hF;(~ow5Q!%tUL{6>`=mH6aQ@mu@WQv_fgTJs!i-m$#%8p@EzZWg8FXL0|A~U7rNzraf*7SPh2GeGkhC1c_LF$w(W&0z91^K{ZHUdtpB{hH%tMo4 zcLs1{agTJ0Lj6dLM%@SSi07D)q%##5y^$ zajzq*IRkc0X>@vtl&HB=Uc%DT$a}`Zzd+k_vd@`MrlSjZDAdxSl)Ya(4uz$kG1-?) zra2SUUdXLq)i!^x`?x>vm?*Ty5~N(Ro@dVFxz6HyGSq+h;Qgb6w+b!fqB2qXrI&$t zY-CZmLl)FQ(;aN%XSSkT)`m`~9xwaMFtPs;`J(ti$6%wd1zlqzIn9dMW`#)j+KLjD zowY_-oKxt~nLBW_x~JNJ<0&la0*#EoR}TPPM)6b*Z{bD@HRl}x2fVr`Y>?@KAuamk zrm(Ww+yv5gj{x7}0|M?L(kJ^xk+Grscp5^iDmtz2?C=6w`4~zQ6AHa|N&mFjydlo_ zv$hW}35#Bm5`Ow`KT~wP-XbiG6iQ568u(%qF)Jb=*C@~I11@IV5)6+Z`0 z3-5=|MGzy;Z#TNMCksMGRcOwFl0AhuR+c$BjvXvkH3Jp+<1W@-w95RF%&NBcKi9sH zJCZ>Ot*Lgh!RRg4nADJ!k=G1YXT!r?c`E?}e6N*l!rKw^fYmR~qTF zvUa_7%vD~xB>a83s-BrZz}bh~B>cqKIQ$bh5U=)w%Fc$@bUu(U+MX+} zi#N-1vFNLI5w+HlbbgW8c(5m*L#l(1+LzYHnObouHtnJ{O}?<*yi3+5pIdqm1hxKP z^zGYMpTkRyl>WYI@$zhhgh+fNZ;|%PZ+Q>%8w__g^|IT^4Z(@|{~mfWAUB}HczIy~ zgmp@TNh;{IRZ3YrK4%1y90i$1+3fK~K9YSdd(c0D*@njPiKS?N9Y5r|8P$Oh?&3B| zf|yQeI$#!Yyxd(~!rnMa7hPFGTOVd31YRiWlMEz2BOL2ZBg6L2gEjFlXFS)<$9|p( zWsEy&v`Nv#^Ph)%W?jx_-Jgc z3y$?pXhfnPeUW%(r_5%s<=h9!JmpKUM6)qdF+4pRr=&`p__x&i`6rg|MbP*vaMfzXzX(ZyCL!oQ?ZCcu2U1Y6$pO|!Y_qIi;bx-P5b{Y@{N;@!Xo=;%q2Dqf9j5c4b2kVL~v;?M^+k*65MA2;1nMp;h{P;Icv3 z@{x9xtH$lVkQvDq!qFww)A+lg2P7tS9p4Rd7 z*(Vkzl|jW-$=Df9uP^Qqqw^FMk5J>>lc|=JR3<*jvuMJtv%`G5>6IjrA6vs*eCtR0 z_MFa@mpxemR=zV0Gp-Kb#Sw9ngExFwn#8s0slX@Jaa}(^_mnaro>L~2 zvGK3t@I!aZ%fDp;vM198b}UE^&YO>k_E%oJxX{078~YRF5ZEC)PQtqyQ)I#AMDDGh&7t^{{UOJ@!COQbg%HWs&~h??iLv-3jDbzOE(fqXedjWGD2{mdoMg= zIsZWri|KH8O==Q-YKSb+7muj=&vb)_13jM8QIB;ca+Dw^iGB@5RBqkj0t1X>%J?KX zhklDv8eX$A*6LqF)MtkTCycFmoNFYWGpQGHx#BX!Yw8b{(BuoFZ#Tdc?~Q8@#f2-O z{_Fal)#xZRpQ3L4lwDH;7E7xlq*9_nC0=58edVXGsTDFM z^Nz=eE@Zqa|JypYYHr{;uWxYsqS&@$a4F?BSqgD}90x7)g(iZeEXoGsjH{#LPq(_{bYvj~za(UVst zLIyCH@jS#rC{G)KMmeP~znJEZ4rMMM3CA4$Hg;LB2rY_OUl5LPAv5`<4F!0H*d;?u z@BzDz9J}|wDKX4>cAVjgP0%D`*FP*f(N^tB%RthGZdWqYdY%pC`0eD@;|Uo!Z1?rB_S^V+!@lWr zfLz9jSx9=Z7SgpuRdLjQ)bVfQ=weCML6I!E;8XGiBetl`q0FLhiX)pP^7na~?jGEx z+pF`l%O2DS30vQW(2rj@f8bu(xD&wiGFFiB+IHri%L5)0gdP%hf-6LdoSag5)4zB^ z3x%#YP+?uoNwE{K>uoQq&J(6Cj+yRXatagUD(h*>Z!EY`X3bNDS(cA2!k7gpeU{xWug%K^-3-f1MmM4kq> zl(kXA;q{4|&oNs7tJ&{aWv~+100yd+i*SHxf9;oPt6Z_}bUy%oEIXoqBdGTIy=}tX zUkb=Es!WIiveJbPWqvQ=ogA%mX?O)=>4Ex!DDoeGyRz`3US8^ zB$ml_@f!IO23%_7%|r6z{7K>1ENqiV1LEO02kafWW zXSc@LYU6Qdw@^Y3Bj*%Q`V}@162RCEP{H46lGBG}ot!s#&~W{_VeLP9F!~Wlq`C#x zMW>rCgAIodgi(b1Cs)t~{wr{@&uj?*IJP~Q6q6@maqaG6ckzHMiE1!uDgA zHtb5+O^kN!SVeIgAa2RUnPrh?x-W5L97uz?8eWmlV;I!{KYpFc!Tt#(L0wf1^(BrK zYi)!4$jXBQCB9v6j$?qgA>z(A4o*N=il(-ekmC>NBH|365*uVZz<>C@ z7$1FX1zbMLyK*jWj?2<~r>L z83cia6=&~b!w45TZ#KL`A_ZPBfONX^7sF53JRog(Z2`=D3npv(fNyp2Am3v_&BtkW z*I>3upN&Q{WJ3p#_h`~dyGc#@K z_GE7&tyVQp5tNjM68nUIv!eD}m#9DPN)#2A(wLhj_Bl=-j^+E0Wi!~462hp{y(H-I zG4tfRe&$b_^S~iFd*R90?(?^ki6hLDXCOFgctv1t;EI3S5*#V%dc1m9CX_sO1=h0R zxmpwMur_E>-l#|iug^XCCa5MAmJ^r&zoN(N*f)fLXq%q@mN6UOuXVG*Y#P# z>X~m#h3CdxD8uLx73%$YGbJ2;y={Hu(yK`R4U=5@V7+gm2KJZ*(*LX~7B&j(2R^%j zxpx|T`jdYnl#S{;0#xaQ|NZ0cdxC8!?%^~3Cl0Pk>FH#`L<)71L)jG22FLUjZq7sZ|LhREMPe2Z84OKXk0ngS~@(eHlYtMe~0hie8`VglJ@n9b{f1x7~0E~o!6v>Wrv=ZBwg$`F1+J`MaRZEVL^l# zhy`q00%14%&YC5PC1qn*FibSb`I(Q_%;Q^cvh4AEjM;%Qkmg$>+Bz%(B zgn-~>P7ee~(3)#6Al5|MHvK`^#0KPi5ju}}r0}Y~!r#q#%X|}kMh4_c4oz~=W9|ln zJHq8!5h7jRmGu!OGgL-vNgPB}p)F%~q18g#q;Kzksw>o@ZaGrXoKFlv|W$}Yd-17SnZg8~Ji=*E+Eu4~ne{^zp;HZ}h=X$bT0cMbf05PJC`54o&Mk2hL;@^H9* z-*pfQD*3rmN6eWN>XTlyj&H_;Engs1-q6JBZrS#o+t0JZ=rDhS+E^{@BERj+vA}Rs zob#Y;6sCh!RgjG9BZSs^d3j@G1d}P7?*9nA{9brcz~OM`YoYk>sRt7IIsf { return ( <> - - - {/* */} - - - {/* */} - <> - - - - - - {/* */} - - - {/* */} - + {/* MUI's ThemeProvider/CssBaseline wrapper was removed here — + every reachable component now renders through Astryx (whose own theme + reset.css + are loaded globally in src/index.js), so nothing left in the render tree consumes + MUI theme context. src/themes/* is unreachable dead code now (not deleted outright + without a full audit of its many override sub-files, but no longer mounted). */} + + {/* */} + + + {/* */} + <> + + + + + + {/* */} + + + {/* */} ); }; diff --git a/src/assets/images/auth/AuthBackground.js b/src/assets/images/auth/AuthBackground.js deleted file mode 100644 index 361ffff..0000000 --- a/src/assets/images/auth/AuthBackground.js +++ /dev/null @@ -1,42 +0,0 @@ -// material-ui -import { useTheme } from '@mui/material/styles'; -import { Box } from '@mui/material'; - -// project-imports -import { ThemeDirection, ThemeMode } from 'config'; - -// ==============================|| AUTH BLUR BACK SVG ||============================== // - -const AuthBackground = () => { - const theme = useTheme(); - return ( - - - - - - - - ); -}; - -export default AuthBackground; diff --git a/src/assets/images/doormile-logo.png b/src/assets/images/doormile-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1cbe324359d358f60159f03d6dcd1ed4531b38b4 GIT binary patch literal 13651 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/doormile-mark.png b/src/assets/images/doormile-mark.png new file mode 100644 index 0000000000000000000000000000000000000000..f64351844eb8674eeada1cad25774313d5258af3 GIT binary patch literal 83551 zcmeFZ^;=Zm7dA|Tgn%F+4T>TSQj!V?NC`+u!%)&79fKfU(hZVIcgN5T1JWQ}(hN1^ z%zMVq^FDvXbA9H_}KMDL#0{@f1|0MALrUXtDm(WN_N#|ddPZ7;Uvi*ybpy3y2B&4KlQMJmO4b%00 z4EPU$=;_AyFGiYGsI$UFe*; zH`^Y1d8Wn#MBG!tf6>+|*T|Zj5D2hhn5gO0?Ox4S7(&l$v|j+vXiB4E??*o6%dP7d znUIww=@@bLdhla|_s-x7f^`6XcK2;FutHB8TWiE$$D}g}y>X|Y*9`Mk- z8tNhIf(MWUGHeWH<~T2WG#QzvoUhiB-{(pJ6RQ9BMjY$CI;SAQK${A9{Mo-xxd|%Y z6fCe20^g4N7yU)kSnrsjDtg#5GN7OT<`oTKy=Pv0R{|gkP{_X#Gue2**s1~^VCKFA zlsM+;)6OFfXz@{xw6FoPj4dlrfXG|_o7XNEwWs=Tz%0A@sCVj9Q15thrCmiN#Ki7v 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ℑLH^vV6!ltU%*7=%^zH&!eaFX1 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 V!zj{wQHMGNsHWkAiu;al{txy&3PS(@ literal 0 HcmV?d00001 diff --git a/src/components/@extended/Avatar.js b/src/components/@extended/Avatar.js deleted file mode 100644 index 2450bfe..0000000 --- a/src/components/@extended/Avatar.js +++ /dev/null @@ -1,119 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { styled, useTheme } from '@mui/material/styles'; -import MuiAvatar from '@mui/material/Avatar'; - -// project import -import getColors from 'utils/getColors'; - -// ==============================|| AVATAR - COLOR STYLE ||============================== // - -function getColorStyle({ theme, color, type }) { - const colors = getColors(theme, color); - const { lighter, light, main, contrastText } = colors; - - switch (type) { - case 'filled': - return { - color: contrastText, - backgroundColor: main - }; - case 'outlined': - return { - color: main, - border: '1px solid', - borderColor: main, - backgroundColor: 'transparent' - }; - case 'combined': - return { - color: main, - border: '1px solid', - borderColor: light, - backgroundColor: lighter - }; - default: - return { - color: main, - backgroundColor: lighter - }; - } -} - -// ==============================|| AVATAR - SIZE STYLE ||============================== // - -function getSizeStyle(size) { - switch (size) { - case 'badge': - return { - border: '2px solid', - fontSize: '0.675rem', - width: 20, - height: 20 - }; - case 'xs': - return { - fontSize: '0.75rem', - width: 24, - height: 24 - }; - case 'sm': - return { - fontSize: '0.875rem', - width: 32, - height: 32 - }; - case 'lg': - return { - fontSize: '1.2rem', - width: 52, - height: 52 - }; - case 'xl': - return { - fontSize: '1.5rem', - width: 64, - height: 64 - }; - case 'md': - default: - return { - fontSize: '1rem', - width: 40, - height: 40 - }; - } -} - -// ==============================|| STYLED - AVATAR ||============================== // - -const AvatarStyle = styled(MuiAvatar, { shouldForwardProp: (prop) => prop !== 'color' && prop !== 'type' && prop !== 'size' })( - ({ theme, variant, color, type, size }) => ({ - ...getSizeStyle(size), - ...getColorStyle({ variant, theme, color, type }), - ...(size === 'badge' && { - borderColor: theme.palette.background.default - }) - }) -); - -// ==============================|| EXTENDED - AVATAR ||============================== // - -export default function Avatar({ variant = 'circular', children, color = 'primary', type, size = 'md', ...others }) { - const theme = useTheme(); - - return ( - - {children} - - ); -} - -Avatar.propTypes = { - children: PropTypes.node, - color: PropTypes.string, - type: PropTypes.string, - size: PropTypes.string, - variant: PropTypes.string -}; diff --git a/src/components/@extended/Breadcrumbs.js b/src/components/@extended/Breadcrumbs.js deleted file mode 100644 index 72d7cb1..0000000 --- a/src/components/@extended/Breadcrumbs.js +++ /dev/null @@ -1,222 +0,0 @@ -import PropTypes from 'prop-types'; -import { useEffect, useState } from 'react'; -import { Link, useLocation } from 'react-router-dom'; - -// material-ui -import MuiBreadcrumbs from '@mui/material/Breadcrumbs'; -import { useTheme } from '@mui/material/styles'; -import { Divider, Grid, Typography } from '@mui/material'; - -// project import -import MainCard from 'components/MainCard'; - -// assets -import { ApartmentOutlined, HomeFilled, HomeOutlined } from '@ant-design/icons'; - -// ==============================|| BREADCRUMBS ||============================== // - -const Breadcrumbs = ({ - card, - divider = true, - icon, - icons, - maxItems, - navigation, - rightAlign, - separator, - title, - titleBottom, - sx, - ...others -}) => { - const theme = useTheme(); - const location = useLocation(); - const [main, setMain] = useState(); - const [item, setItem] = useState(); - - let currentPath = location.pathname; - - // only used for component demo breadcrumbs - if (currentPath.includes('/components-overview/breadcrumbs')) { - currentPath = '/apps/kanban/board'; - } - - if (currentPath.includes('/apps/kanban/backlogs')) { - currentPath = '/apps/kanban/board'; - } - - useEffect(() => { - if (currentPath.includes('/apps/profiles/user/payment')) { - setItem(undefined); - } - }, [item, currentPath]); - - const iconSX = { - marginRight: theme.spacing(0.75), - marginTop: `-${theme.spacing(0.25)}`, - width: '1rem', - height: '1rem', - color: theme.palette.secondary.main - }; - - // set active item state - const getCollapse = (menu) => { - if (menu.children) { - menu.children.filter((collapse) => { - if (collapse.type && collapse.type === 'collapse') { - getCollapse(collapse); - if (collapse.url === currentPath) { - setMain(collapse); - setItem(collapse); - } - } else if (collapse.type && collapse.type === 'item') { - if (currentPath.includes(collapse.url)) { - setMain(menu); - setItem(collapse); - } - } - return false; - }); - } - }; - - useEffect(() => { - navigation?.items?.map((menu) => { - if (menu.type && menu.type === 'group') { - getCollapse(menu); - } - return false; - }); - }); - - // item separator - const SeparatorIcon = separator; - const separatorIcon = separator ? : '/'; - - let mainContent; - let itemContent; - let breadcrumbContent = ; - let itemTitle = ''; - let CollapseIcon; - let ItemIcon; - - // collapse item - if (main && main.type === 'collapse' && main.breadcrumbs === true) { - CollapseIcon = main.icon ? main.icon : ApartmentOutlined; - mainContent = ( - - {icons && } - {main.title} - - ); - breadcrumbContent = ( - - - - - - {icons && } - {icon && !icons && } - {(!icon || icons) && 'Home'} - - {mainContent} - - - {title && titleBottom && ( - - {main.title} - - )} - - {card === false && divider !== false && } - - ); - } - - // items - if (item && item.type === 'item') { - itemTitle = item.title; - - ItemIcon = item.icon ? item.icon : ApartmentOutlined; - itemContent = ( - - {icons && } - {itemTitle} - - ); - - // main - if (item.breadcrumbs !== false) { - breadcrumbContent = ( - - - {title && !titleBottom && ( - - {item.title} - - )} - - - - {icons && } - {icon && !icons && } - {(!icon || icons) && 'Home'} - - {mainContent} - {itemContent} - - - {title && titleBottom && ( - - {item.title} - - )} - - {card === false && divider !== false && } - - ); - } - } - - return breadcrumbContent; -}; - -Breadcrumbs.propTypes = { - card: PropTypes.bool, - divider: PropTypes.bool, - icon: PropTypes.bool, - icons: PropTypes.bool, - maxItems: PropTypes.number, - navigation: PropTypes.object, - rightAlign: PropTypes.bool, - separator: PropTypes.oneOfType([PropTypes.func, PropTypes.object]), - title: PropTypes.bool, - titleBottom: PropTypes.bool, - sx: PropTypes.oneOfType([PropTypes.object, PropTypes.string]) -}; - -export default Breadcrumbs; diff --git a/src/components/@extended/Dot.js b/src/components/@extended/Dot.js deleted file mode 100644 index 33403b9..0000000 --- a/src/components/@extended/Dot.js +++ /dev/null @@ -1,39 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { Box } from '@mui/material'; - -// project import -import getColors from 'utils/getColors'; - -const Dot = ({ color, size, variant, sx }) => { - const theme = useTheme(); - const colors = getColors(theme, color || 'primary'); - const { main } = colors; - - return ( - - ); -}; - -Dot.propTypes = { - color: PropTypes.string, - size: PropTypes.number, - variant: PropTypes.string, - sx: PropTypes.oneOfType([PropTypes.object, PropTypes.string]) -}; - -export default Dot; diff --git a/src/components/@extended/IconButton.js b/src/components/@extended/IconButton.js index 3790509..e1ba243 100644 --- a/src/components/@extended/IconButton.js +++ b/src/components/@extended/IconButton.js @@ -1,160 +1,56 @@ import PropTypes from 'prop-types'; - import { forwardRef } from 'react'; -// material-ui -import MuiIconButton from '@mui/material/IconButton'; -import { alpha, styled, useTheme } from '@mui/material/styles'; - -// project imports -import getColors from 'utils/getColors'; -import getShadow from 'utils/getShadow'; - -// ==============================|| ICON BUTTON - COLOR STYLE ||============================== // - -function getColorStyle({ variant, theme, color }) { - const colors = getColors(theme, color); - const { lighter, light, dark, main, contrastText } = colors; - - const buttonShadow = `${color}Button`; - const shadows = getShadow(theme, buttonShadow); - - const commonShadow = { - '&::after': { - boxShadow: `0 0 6px 6px ${alpha(main, 0.9)}` - }, - '&:active::after': { - boxShadow: `0 0 0 0 ${alpha(main, 0.9)}` - }, - '&:focus-visible': { - outline: `2px solid ${dark}`, - outlineOffset: 2 - } - }; - - switch (variant) { - case 'contained': - return { - color: contrastText, - backgroundColor: main, - '&:hover': { - backgroundColor: dark - }, - ...commonShadow - }; - case 'light': - return { - color: main, - backgroundColor: lighter, - '&:hover': { - backgroundColor: light - }, - ...commonShadow - }; - case 'shadow': - return { - boxShadow: shadows, - color: contrastText, - backgroundColor: main, - '&:hover': { - boxShadow: 'none', - backgroundColor: dark - }, - ...commonShadow - }; - case 'outlined': - return { - '&:hover': { - backgroundColor: 'transparent', - color: dark, - borderColor: dark - }, - ...commonShadow - }; - case 'dashed': - return { - backgroundColor: lighter, - '&:hover': { - color: dark, - borderColor: dark - }, - ...commonShadow - }; - case 'text': - default: - return { - '&:hover': { - color: dark, - backgroundColor: lighter - }, - ...commonShadow - }; - } -} - -// ==============================|| STYLED - ICON BUTTON ||============================== // - -const IconButtonStyle = styled(MuiIconButton, { shouldForwardProp: (prop) => prop !== 'variant' && prop !== 'shape' })( - ({ theme, variant, shape, color }) => ({ - position: 'relative', - '::after': { - content: '""', - display: 'block', - position: 'absolute', - left: 0, - top: 0, - width: '100%', - height: '100%', - borderRadius: shape === 'rounded' ? '50%' : 4, - opacity: 0, - transition: 'all 0.5s' - }, - - ':active::after': { - position: 'absolute', - borderRadius: shape === 'rounded' ? '50%' : 4, - left: 0, - top: 0, - opacity: 1, - transition: '0s' - }, - ...(shape === 'rounded' && { - borderRadius: '50%' - }), - ...(variant === 'outlined' && { - border: '1px solid', - borderColor: 'inherit' - }), - ...(variant === 'dashed' && { - border: '1px dashed', - borderColor: 'inherit' - }), - ...(variant !== 'text' && { - '&.Mui-disabled': { - backgroundColor: theme.palette.grey[200] - } - }), - ...getColorStyle({ variant, theme, color }) - }) -); +import { IconButton as AstryxIconButton } from '@astryxdesign/core/IconButton'; // ==============================|| EXTENDED - ICON BUTTON ||============================== // +// Thin Astryx-backed replacement for the old MUI-styled extended IconButton. +// Preserves the previous call shape (variant/shape/color/children-as-icon) so existing +// call sites don't need individual rewrites — the old MUI variant/color combinatorics +// (contained/light/shadow/outlined/dashed/text × primary/secondary/error/...) are +// collapsed onto Astryx's variant enum (primary/secondary/ghost/destructive). -const IconButton = forwardRef(({ variant = 'text', shape = 'square', children, color = 'primary', ...others }, ref) => { - const theme = useTheme(); +const VARIANT_MAP = { + contained: 'primary', + shadow: 'primary', + light: 'secondary', + outlined: 'secondary', + dashed: 'secondary', + text: 'ghost' +}; - return ( - - {children} - - ); -}); +const SIZE_MAP = { + small: 'sm', + medium: 'md', + large: 'lg' +}; + +const IconButton = forwardRef( + ({ variant = 'text', shape, children, color = 'primary', size, 'aria-label': ariaLabel, label, style, ...others }, ref) => { + const resolvedVariant = color === 'error' || color === 'destructive' ? 'destructive' : VARIANT_MAP[variant] || 'ghost'; + + return ( + + ); + } +); IconButton.propTypes = { variant: PropTypes.string, shape: PropTypes.string, children: PropTypes.node, - color: PropTypes.string + color: PropTypes.string, + size: PropTypes.string, + label: PropTypes.string, + style: PropTypes.object }; IconButton.displayName = 'IconButton'; diff --git a/src/components/@extended/LoadingButton.js b/src/components/@extended/LoadingButton.js deleted file mode 100644 index 3b0d711..0000000 --- a/src/components/@extended/LoadingButton.js +++ /dev/null @@ -1,231 +0,0 @@ -import PropTypes from 'prop-types'; -import { forwardRef } from 'react'; - -// material-ui -import MuiLoadingButton from '@mui/lab/LoadingButton'; -import { alpha, styled, useTheme } from '@mui/material/styles'; - -// project imports -import getColors from 'utils/getColors'; -import getShadow from 'utils/getShadow'; - -// ==============================|| LOADING BUTTON - COLOR STYLE ||============================== // - -function getColorStyle({ variant, theme, color, loadingPosition }) { - const colors = getColors(theme, color); - const { lighter, main, dark, contrastText } = colors; - - const buttonShadow = `${color}Button`; - const shadows = getShadow(theme, buttonShadow); - - const loadingIndicator = { - '& .MuiLoadingButton-loadingIndicator': { - color: main - } - }; - - const loadingColor = { - ...(loadingPosition && - loadingPosition !== 'center' && { - color: main - }) - }; - - const commonShadow = { - '&::after': { - boxShadow: `0 0 6px 6px ${alpha(main, 0.9)}` - }, - '&:active::after': { - boxShadow: `0 0 0 0 ${alpha(main, 0.9)}` - }, - '&:focus-visible': { - outline: `2px solid ${dark}`, - outlineOffset: 2 - } - }; - - switch (variant) { - case 'contained': - return { - backgroundColor: main, - ...(loadingPosition && - loadingPosition !== 'center' && { - color: contrastText - }), - '& .MuiLoadingButton-loadingIndicator': { - color: contrastText - }, - '&:hover': { - backgroundColor: dark, - color: contrastText - }, - ...commonShadow - }; - case 'light': - return { - backgroundColor: main, - ...(loadingPosition && - loadingPosition !== 'center' && { - color: contrastText - }), - '& .MuiLoadingButton-loadingIndicator': { - color: contrastText - }, - '&:hover': { - backgroundColor: dark, - color: contrastText - }, - ...commonShadow - }; - case 'shadow': - return { - boxShadow: shadows, - backgroundColor: main, - ...(loadingPosition && - loadingPosition !== 'center' && { - color: contrastText - }), - '& .MuiLoadingButton-loadingIndicator': { - color: contrastText - }, - '&:hover': { - boxShadow: 'none', - backgroundColor: dark, - color: contrastText - }, - ...commonShadow - }; - case 'outlined': - return { - backgroundColor: 'transparent', - borderColor: main, - ...loadingColor, - ...loadingIndicator - }; - case 'dashed': - return { - backgroundColor: lighter, - borderColor: main, - ...loadingColor, - ...loadingIndicator, - ...commonShadow - }; - case 'text': - default: - return { - color: main, - ...loadingIndicator, - ...commonShadow - }; - } -} - -// ==============================|| STYLED - LOADING BUTTON ||============================== // - -const LoadingButtonStyle = styled(MuiLoadingButton, { shouldForwardProp: (prop) => prop !== 'shape' && prop !== 'variant' })( - ({ theme, variant, shape, color, loading, loadingPosition }) => ({ - '::after': { - content: '""', - display: 'block', - position: 'absolute', - left: 0, - top: 0, - width: '100%', - height: '100%', - borderRadius: shape === 'rounded' ? '50%' : 4, - opacity: 0, - transition: 'all 0.5s' - }, - - ':active::after': { - position: 'absolute', - borderRadius: shape === 'rounded' ? '50%' : 4, - left: 0, - top: 0, - opacity: 1, - transition: '0s' - }, - ...(variant === 'text' && { - ...getColorStyle({ variant, theme, color, loadingPosition }), - '&.MuiButton-sizeMedium': { - height: 36 - }, - '&.MuiButton-sizeSmall': { - height: 30 - }, - '&.MuiButton-sizeLarge': { - height: 44 - } - }), - ...(shape && { - minWidth: 0, - '&.MuiButton-sizeMedium': { - width: 36, - height: 36 - }, - '&.MuiButton-sizeSmall': { - width: 30, - height: 30 - }, - '&.MuiButton-sizeLarge': { - width: 44, - height: 44 - }, - ...(shape === 'rounded' && { - borderRadius: '50%' - }) - }), - - ...(variant === 'outlined' && { - border: '1px solid' - }), - ...(variant === 'dashed' && { - border: '1px dashed' - }), - ...((variant === 'contained' || variant === 'shadow') && - !loading && { - color: '#fff' - }), - ...(variant !== 'text' && { - ...getColorStyle({ variant, theme, color, loadingPosition }) - }), - - '&.Mui-disabled': { - ...(variant !== 'text' && { - ...getColorStyle({ variant, theme, color, loadingPosition }) - }) - } - }) -); - -// ==============================|| EXTENDED - LOADING BUTTON ||============================== // - -const LoadingButton = forwardRef(({ variant = 'text', shape, children, color = 'primary', ...others }, ref) => { - const theme = useTheme(); - - return ( - - {children} - - ); -}); - -LoadingButton.propTypes = { - variant: PropTypes.string, - shape: PropTypes.string, - children: PropTypes.node, - color: PropTypes.string -}; - -LoadingButton.displayName = 'LoadingButton'; - -export default LoadingButton; diff --git a/src/components/@extended/Snackbar.js b/src/components/@extended/Snackbar.js index 1fa9b53..5c0c843 100644 --- a/src/components/@extended/Snackbar.js +++ b/src/components/@extended/Snackbar.js @@ -1,127 +1,55 @@ -// material-ui -import { Alert, Button, Fade, Grow, Slide } from '@mui/material'; -import MuiSnackbar from '@mui/material/Snackbar'; +import { Toast } from '@astryxdesign/core/Toast'; +import { Button } from '@astryxdesign/core/Button'; // project-import -import IconButton from './IconButton'; import { dispatch, useSelector } from 'store'; import { closeSnackbar } from 'store/reducers/snackbar'; -// assets -import { CloseOutlined } from '@ant-design/icons'; - -// animation function -function TransitionSlideLeft(props) { - return ; -} - -function TransitionSlideUp(props) { - return ; -} - -function TransitionSlideRight(props) { - return ; -} - -function TransitionSlideDown(props) { - return ; -} - -function GrowTransition(props) { - return ; -} - -// animation options -const animation = { - SlideLeft: TransitionSlideLeft, - SlideUp: TransitionSlideUp, - SlideRight: TransitionSlideRight, - SlideDown: TransitionSlideDown, - Grow: GrowTransition, - Fade -}; - // ==============================|| SNACKBAR ||============================== // +// Redux-driven single-toast surface (separate from the notistack-based `enqueueSnackbar` +// calls used elsewhere in the app). Rebuilt on Astryx's `Toast` primitive — `variant` +// picks default vs. alert-style presentation, `alert.color` maps onto Toast's narrower +// info/error `type`, and `anchorOrigin` positions the fixed wrapper the same way the MUI +// Snackbar's anchorOrigin used to. const Snackbar = () => { const snackbar = useSelector((state) => state.snackbar); - const { actionButton, anchorOrigin, alert, close, message, open, transition, variant } = snackbar; + const { actionButton, anchorOrigin, alert, message, open, variant } = snackbar; - const handleClose = (event, reason) => { - if (reason === 'clickaway') { - return; - } - dispatch(closeSnackbar()); - }; + const handleClose = () => dispatch(closeSnackbar()); + + if (!open) return null; + + const isError = variant === 'alert' && alert?.color === 'error'; + const showUndo = variant === 'default' ? true : actionButton !== false; + + const vertical = anchorOrigin?.vertical === 'top' ? 'top' : 'bottom'; + const horizontal = anchorOrigin?.horizontal === 'left' ? 'left' : anchorOrigin?.horizontal === 'center' ? 'center' : 'right'; return ( - <> - {/* default snackbar */} - {variant === 'default' && ( - - - - - - - } - /> - )} - - {/* alert snackbar */} - {variant === 'alert' && ( - - - {actionButton !== false && ( - - )} - {close !== false && ( - - - - )} - - } - sx={{ - ...(alert.variant === 'outlined' && { - bgcolor: 'grey.0' - }) - }} - > - {message} - - - )} - +

+ + UNDO + + ) : undefined + } + onDismiss={handleClose} + /> +
); }; diff --git a/src/components/@extended/Tooltip.js b/src/components/@extended/Tooltip.js deleted file mode 100644 index 63f1f91..0000000 --- a/src/components/@extended/Tooltip.js +++ /dev/null @@ -1,67 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { styled, useTheme } from '@mui/material/styles'; -import { Box, tooltipClasses, Tooltip as MuiTooltip } from '@mui/material'; - -// project import -import getColors from 'utils/getColors'; - -// ==============================|| TOOLTIP - VARIANT ||============================== // - -function getVariantStyle({ color, theme, labelColor }) { - const colors = getColors(theme, color); - const { main, contrastText } = colors; - let colorValue = color ? color : ''; - - if (['primary', 'secondary', 'info', 'success', 'warning', 'error'].includes(colorValue)) { - return { - [`& .${tooltipClasses.tooltip}`]: { - backgroundColor: main, - color: labelColor ? labelColor : contrastText - }, - [`& .${tooltipClasses.arrow}`]: { - color: main - } - }; - } else { - return { - [`& .${tooltipClasses.tooltip}`]: { - backgroundColor: colorValue, - color: labelColor ? labelColor : contrastText, - boxShadow: theme.shadows[1] - }, - [`& .${tooltipClasses.arrow}`]: { - color: colorValue - } - }; - } -} - -// ==============================|| STYLED - TOOLTIP COLOR ||============================== // - -const TooltipStyle = styled(({ className, ...props }) => , { - shouldForwardProp: (prop) => prop !== 'color' && prop !== 'labelColor' -})(({ theme, color, labelColor }) => ({ - ...(color && getVariantStyle({ color, theme, labelColor })) -})); - -// ==============================|| EXTENDED - TOOLTIP ||============================== // - -export default function CustomTooltip({ children, arrow, labelColor = '', ...rest }) { - const theme = useTheme(); - return ( - - - {children} - - - ); -} - -CustomTooltip.propTypes = { - children: PropTypes.element, - arrow: PropTypes.bool, - labelColor: PropTypes.string, - rest: PropTypes.array -}; diff --git a/src/components/@extended/Transitions.js b/src/components/@extended/Transitions.js deleted file mode 100644 index 1b4377b..0000000 --- a/src/components/@extended/Transitions.js +++ /dev/null @@ -1,116 +0,0 @@ -import PropTypes from 'prop-types'; -import { forwardRef } from 'react'; - -// material-ui -import { Collapse, Fade, Box, Grow, Slide, Zoom } from '@mui/material'; - -// ==============================|| TRANSITIONS ||============================== // - -const Transitions = forwardRef(({ children, position = 'top-left', type = 'grow', direction = 'up', ...others }, ref) => { - let positionSX = { - transformOrigin: '0 0 0' - }; - - switch (position) { - case 'top-right': - positionSX = { - transformOrigin: 'top right' - }; - break; - case 'top': - positionSX = { - transformOrigin: 'top' - }; - break; - case 'bottom-left': - positionSX = { - transformOrigin: 'bottom left' - }; - break; - case 'bottom-right': - positionSX = { - transformOrigin: 'bottom right' - }; - break; - case 'bottom': - positionSX = { - transformOrigin: 'bottom' - }; - break; - case 'top-left': - default: - positionSX = { - transformOrigin: '0 0 0' - }; - break; - } - - return ( - - {type === 'grow' && ( - - {children} - - )} - - {type === 'collapse' && ( - - {children} - - )} - - {type === 'fade' && ( - - {children} - - )} - - {type === 'slide' && ( - - {children} - - )} - - {type === 'zoom' && ( - - {children} - - )} - - ); -}); - -Transitions.propTypes = { - children: PropTypes.node, - type: PropTypes.oneOf(['grow', 'fade', 'collapse', 'slide', 'zoom']), - position: PropTypes.oneOf(['top-left', 'top-right', 'top', 'bottom-left', 'bottom-right', 'bottom']), - direction: PropTypes.oneOf(['up', 'down', 'left', 'right']) -}; - -export default Transitions; - -export const PopupTransition = forwardRef(function Transition(props, ref) { - return ; -}); diff --git a/src/components/@extended/progress/CircularWithLabel.js b/src/components/@extended/progress/CircularWithLabel.js deleted file mode 100644 index 4348dfc..0000000 --- a/src/components/@extended/progress/CircularWithLabel.js +++ /dev/null @@ -1,32 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { Box, CircularProgress, Typography } from '@mui/material'; - -// ==============================|| PROGRESS - CIRCULAR LABEL ||============================== // - -export default function CircularWithLabel({ value, ...others }) { - return ( - - - - {`${Math.round(value)}%`} - - - ); -} - -CircularWithLabel.propTypes = { - value: PropTypes.number -}; diff --git a/src/components/@extended/progress/CircularWithPath.js b/src/components/@extended/progress/CircularWithPath.js deleted file mode 100644 index 2e85f3a..0000000 --- a/src/components/@extended/progress/CircularWithPath.js +++ /dev/null @@ -1,65 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { Box, CircularProgress, Typography, circularProgressClasses } from '@mui/material'; - -// ==============================|| PROGRESS - CIRCULAR PATH ||============================== // - -export default function CircularWithPath({ value, size, variant, thickness, showLabel, pathColor, sx, ...others }) { - return ( - - - {showLabel && ( - - - {value ? `${Math.round(value)}%` : '0%'} - - - )} - - - ); -} - -CircularWithPath.propTypes = { - value: PropTypes.number, - size: PropTypes.number, - variant: PropTypes.string, - thickness: PropTypes.number, - showLabel: PropTypes.bool, - pathColor: PropTypes.string, - sx: PropTypes.array, - others: PropTypes.array -}; diff --git a/src/components/@extended/progress/LinearWithIcon.js b/src/components/@extended/progress/LinearWithIcon.js deleted file mode 100644 index c1da65a..0000000 --- a/src/components/@extended/progress/LinearWithIcon.js +++ /dev/null @@ -1,22 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { Box, LinearProgress } from '@mui/material'; - -// ==============================|| PROGRESS - LINEAR ICON ||============================== // - -export default function LinearWithIcon({ icon, value, ...others }) { - return ( - - - - - {icon} - - ); -} - -LinearWithIcon.propTypes = { - icon: PropTypes.node, - value: PropTypes.number -}; diff --git a/src/components/@extended/progress/LinearWithLabel.js b/src/components/@extended/progress/LinearWithLabel.js deleted file mode 100644 index 46adb2d..0000000 --- a/src/components/@extended/progress/LinearWithLabel.js +++ /dev/null @@ -1,23 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { Box, LinearProgress, Typography } from '@mui/material'; - -// ==============================|| PROGRESS - LINEAR WITH LABEL ||============================== // - -export default function LinearWithLabel({ value, ...others }) { - return ( - - - - - - {`${Math.round(value)}%`} - - - ); -} - -LinearWithLabel.propTypes = { - value: PropTypes.number -}; diff --git a/src/components/Loader.js b/src/components/Loader.js index d916a8a..008f314 100644 --- a/src/components/Loader.js +++ b/src/components/Loader.js @@ -1,25 +1,18 @@ -// material-ui -import { styled } from '@mui/material/styles'; -import LinearProgress from '@mui/material/LinearProgress'; - -// loader style -const LoaderWrapper = styled('div')(({ theme }) => ({ - position: 'fixed', - top: 0, - left: 0, - zIndex: 2001, - width: '100%', - '& > * + *': { - marginTop: theme.spacing(2) - } -})); +import { ProgressBar } from '@astryxdesign/core/ProgressBar'; // ==============================|| Loader ||============================== // - +// Used as the fallback for every lazy-loaded route (see +// components/Loadable.js) — including while `layout/MainLayout` itself (which +// carries the app's brand-red wrapper) is +// still loading. During that window this renders OUTSIDE the theme boundary, +// so ProgressBar's "accent" variant (var(--color-accent)) would fall back to +// Astryx's stock default (blue) instead of the brand red used everywhere +// else. Pin --color-accent locally so this loader is always brand red +// regardless of whether an ancestor has mounted yet. const Loader = () => ( - - - +
+ +
); export default Loader; diff --git a/src/components/MainCard.js b/src/components/MainCard.js index 531a7ed..027b4f1 100644 --- a/src/components/MainCard.js +++ b/src/components/MainCard.js @@ -1,113 +1,103 @@ import PropTypes from 'prop-types'; import { forwardRef } from 'react'; -// material-ui -import { useTheme } from '@mui/material/styles'; -import { Card, CardContent, CardHeader, Divider, Typography } from '@mui/material'; +import { Card } from '@astryxdesign/core/Card'; +import { HStack } from '@astryxdesign/core/HStack'; +import { VStack } from '@astryxdesign/core/VStack'; +import { Heading } from '@astryxdesign/core/Heading'; +import { Text } from '@astryxdesign/core/Text'; +import { Divider } from '@astryxdesign/core/Divider'; -// project-imports -import { ThemeMode } from 'config'; +// Legacy pages still pass MUI `sx`-shaped objects (spacing shorthand + a few +// literal CSS properties) into MainCard/contentSX. Rather than rewrite every +// call site, translate the handful of shorthand keys actually used in this +// codebase (p/m + directional variants) into real CSS and pass the rest +// through as-is — covers every current usage without a full sx engine. +const SPACING_UNIT = 8; +const SPACING_KEYS = { + p: ['padding'], + pt: ['paddingTop'], + pb: ['paddingBottom'], + pl: ['paddingLeft'], + pr: ['paddingRight'], + px: ['paddingLeft', 'paddingRight'], + py: ['paddingTop', 'paddingBottom'], + m: ['margin'], + mt: ['marginTop'], + mb: ['marginBottom'], + ml: ['marginLeft'], + mr: ['marginRight'], + mx: ['marginLeft', 'marginRight'], + my: ['marginTop', 'marginBottom'] +}; -// header style -const headerSX = { - p: 2.5, - '& .MuiCardHeader-action': { m: '0px auto', alignSelf: 'center' } +const sxToStyle = (sx) => { + if (!sx || typeof sx !== 'object') return undefined; + const style = {}; + Object.entries(sx).forEach(([key, value]) => { + if (SPACING_KEYS[key] && typeof value === 'number') { + SPACING_KEYS[key].forEach((cssProp) => { + style[cssProp] = value * SPACING_UNIT; + }); + } else if (key === 'bgcolor') { + style.backgroundColor = value; + } else if (typeof value !== 'object') { + style[key] = value; + } + }); + return style; }; // ==============================|| CUSTOM - MAIN CARD ||============================== // const MainCard = forwardRef( - ( - { - border = true, - boxShadow, - children, - subheader, - content = true, - contentSX = {}, - darkTitle, - divider = true, - elevation, - secondary, - shadow, - sx = {}, - title, - modal = false, - ...others - }, - ref - ) => { - const theme = useTheme(); - boxShadow = theme.palette.mode === ThemeMode.DARK ? boxShadow || true : boxShadow; + ({ boxShadow, children, subheader, content = true, contentSX = {}, darkTitle, divider = true, elevation, secondary, sx = {}, title, ...others }, ref) => { + const style = sxToStyle(sx); + const isTransparent = style?.backgroundColor === 'transparent'; return ( - {/* card header and action */} - {!darkTitle && title && ( - + {title && ( + + + {darkTitle ? ( + {title} + ) : typeof title === 'string' ? ( + {title} + ) : ( + title + )} + {secondary} + + {subheader && {subheader}} + {divider && } + )} - {darkTitle && title && {title}} action={secondary} />} - - {/* content & header divider */} - {title && divider && } - - {/* card content */} - {content && {children}} - {!content && children} + {content ?
{children}
: children}
); } ); MainCard.propTypes = { - border: PropTypes.bool, boxShadow: PropTypes.bool, children: PropTypes.node, subheader: PropTypes.oneOfType([PropTypes.node, PropTypes.string]), content: PropTypes.bool, - contentClass: PropTypes.string, contentSX: PropTypes.object, darkTitle: PropTypes.bool, divider: PropTypes.bool, elevation: PropTypes.number, secondary: PropTypes.oneOfType([PropTypes.node, PropTypes.string, PropTypes.object]), - shadow: PropTypes.string, sx: PropTypes.object, - title: PropTypes.oneOfType([PropTypes.node, PropTypes.string, PropTypes.object]), - modal: PropTypes.bool + title: PropTypes.oneOfType([PropTypes.node, PropTypes.string, PropTypes.object]) }; export default MainCard; diff --git a/src/components/RTLLayout.js b/src/components/RTLLayout.js deleted file mode 100644 index 60e7bbd..0000000 --- a/src/components/RTLLayout.js +++ /dev/null @@ -1,37 +0,0 @@ -import PropTypes from 'prop-types'; -import { useEffect } from 'react'; - -// material-ui -import { CacheProvider } from '@emotion/react'; -import createCache from '@emotion/cache'; - -// third-party -import rtlPlugin from 'stylis-plugin-rtl'; - -// project import -import { ThemeDirection } from 'config'; -import useConfig from 'hooks/useConfig'; - -// ==============================|| RTL LAYOUT ||============================== // - -const RTLLayout = ({ children }) => { - const { themeDirection } = useConfig(); - - useEffect(() => { - document.dir = themeDirection; - }, [themeDirection]); - - const cacheRtl = createCache({ - key: themeDirection === ThemeDirection.RTL ? 'rtl' : 'css', - prepend: true, - stylisPlugins: themeDirection === ThemeDirection.RTL ? [rtlPlugin] : [] - }); - - return {children}; -}; - -RTLLayout.propTypes = { - children: PropTypes.node -}; - -export default RTLLayout; diff --git a/src/components/ScrollX.js b/src/components/ScrollX.js deleted file mode 100644 index eb4d863..0000000 --- a/src/components/ScrollX.js +++ /dev/null @@ -1,10 +0,0 @@ -// material-ui -import { styled } from '@mui/material/styles'; - -const ScrollX = styled('div')({ - width: '100%', - overflowX: 'auto', - display: 'block' -}); - -export default ScrollX; diff --git a/src/components/SecondaryAction.js b/src/components/SecondaryAction.js deleted file mode 100644 index d413aa6..0000000 --- a/src/components/SecondaryAction.js +++ /dev/null @@ -1,65 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { Avatar, ButtonBase, Link, Tooltip } from '@mui/material'; - -// ==============================|| CARD - SECONDARY ACTION ||============================== // - -const CardSecondaryAction = ({ title, link, icon }) => { - const theme = useTheme(); - - return ( - - - {!icon && ( - - - - - - - - - - - - - - - - )} - {icon && ( - - {icon} - - )} - - - ); -}; - -CardSecondaryAction.propTypes = { - title: PropTypes.string, - link: PropTypes.string, - icon: PropTypes.oneOf([PropTypes.node, PropTypes.string]) -}; - -export default CardSecondaryAction; diff --git a/src/components/cards/AuthFooter.js b/src/components/cards/AuthFooter.js deleted file mode 100644 index 75622ae..0000000 --- a/src/components/cards/AuthFooter.js +++ /dev/null @@ -1,61 +0,0 @@ -// material-ui -import { Container, Link, Stack, Typography, useMediaQuery } from '@mui/material'; - -// ==============================|| FOOTER - AUTHENTICATION ||============================== // - -const AuthFooter = () => { - const matchDownSM = useMediaQuery((theme) => theme.breakpoints.down('sm')); - - return ( - - - - This site is protected by{' '} - - Privacy Policy - - - - - - Terms and Conditions - - - Privacy Policy - - - CA Privacy Notice - - - - - ); -}; - -export default AuthFooter; diff --git a/src/components/cards/ComponentHeader.js b/src/components/cards/ComponentHeader.js deleted file mode 100644 index 20178bb..0000000 --- a/src/components/cards/ComponentHeader.js +++ /dev/null @@ -1,49 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { Box, Grid, Link, Stack, Typography } from '@mui/material'; - -// assets -import { GlobalOutlined, NodeExpandOutlined } from '@ant-design/icons'; - -// ==============================|| COMPONENTS - BREADCRUMBS ||============================== // - -const ComponentHeader = ({ title, caption, directory, link }) => ( - - - {title} - {caption && ( - - {caption} - - )} - - - {directory && ( - - - - {directory} - - - )} - {link && ( - - - - {link} - - - )} - - -); - -ComponentHeader.propTypes = { - title: PropTypes.string, - caption: PropTypes.string, - directory: PropTypes.string, - link: PropTypes.string -}; - -export default ComponentHeader; diff --git a/src/components/cards/e-commerce/FloatingCart.js b/src/components/cards/e-commerce/FloatingCart.js deleted file mode 100644 index 2f51aa7..0000000 --- a/src/components/cards/e-commerce/FloatingCart.js +++ /dev/null @@ -1,55 +0,0 @@ -import { sum } from 'lodash'; -import { Link } from 'react-router-dom'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { Fab, Badge } from '@mui/material'; - -// project import -import { useSelector } from 'store'; - -// assets -import { ShoppingCartOutlined } from '@ant-design/icons'; - -// ==============================|| CART ITEMS - FLOATING BUTTON ||============================== // - -const FloatingCart = () => { - const theme = useTheme(); - - const cart = useSelector((state) => state.cart); - const totalQuantity = sum(cart.checkout.products.map((item) => item.quantity)); - - return ( - - - - - - ); -}; - -export default FloatingCart; diff --git a/src/components/cards/e-commerce/ProductCard.js b/src/components/cards/e-commerce/ProductCard.js deleted file mode 100644 index d1e3b15..0000000 --- a/src/components/cards/e-commerce/ProductCard.js +++ /dev/null @@ -1,176 +0,0 @@ -import PropTypes from 'prop-types'; -import { useEffect, useState } from 'react'; -import { Link } from 'react-router-dom'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { Box, Button, CardContent, CardMedia, Chip, Divider, Grid, Rating, Stack, Typography } from '@mui/material'; - -// project import -import MainCard from 'components/MainCard'; -import IconButton from 'components/@extended/IconButton'; -import SkeletonProductPlaceholder from 'components/cards/skeleton/ProductPlaceholder'; -import { useDispatch, useSelector } from 'store'; -import { addProduct } from 'store/reducers/cart'; -import { openSnackbar } from 'store/reducers/snackbar'; - -// assets -import { HeartOutlined, HeartFilled } from '@ant-design/icons'; - -const prodImage = require.context('assets/images/e-commerce', true); - -// ==============================|| PRODUCT CARD ||============================== // - -const ProductCard = ({ id, color, name, brand, offer, isStock, image, description, offerPrice, salePrice, rating }) => { - const theme = useTheme(); - const dispatch = useDispatch(); - - const prodProfile = image && prodImage(`./${image}`); - const [productRating] = useState(rating); - const [wishlisted, setWishlisted] = useState(false); - const cart = useSelector((state) => state.cart); - - const addCart = () => { - dispatch(addProduct({ id, name, image, salePrice, offerPrice, color, size: 8, quantity: 1, description }, cart.checkout.products)); - dispatch( - openSnackbar({ - open: true, - message: 'Add To Cart Success', - variant: 'alert', - alert: { - color: 'success' - }, - close: false - }) - ); - }; - - const addToFavourite = () => { - setWishlisted(!wishlisted); - dispatch( - openSnackbar({ - open: true, - message: 'Added to favourites', - variant: 'alert', - alert: { - color: 'success' - }, - close: false - }) - ); - }; - - const [isLoading, setLoading] = useState(true); - useEffect(() => { - setLoading(false); - }, []); - - return ( - <> - {isLoading ? ( - - ) : ( - - - - - - {!isStock && } - {offer && } - - {wishlisted ? ( - - ) : ( - - )} - - - - - - - - - {name} - - - {brand} - - - - - - - - ${offerPrice} - {salePrice && ( - - ${salePrice} - - )} - - - - ({productRating?.toFixed(1)}) - - - - - - - - - - )} - - ); -}; - -ProductCard.propTypes = { - id: PropTypes.number, - color: PropTypes.string, - name: PropTypes.string, - brand: PropTypes.string, - isStock: PropTypes.bool, - image: PropTypes.string, - description: PropTypes.string, - offerPrice: PropTypes.number, - salePrice: PropTypes.number, - offer: PropTypes.string, - rating: PropTypes.number -}; - -export default ProductCard; diff --git a/src/components/cards/e-commerce/ProductReview.js b/src/components/cards/e-commerce/ProductReview.js deleted file mode 100644 index bf45f2f..0000000 --- a/src/components/cards/e-commerce/ProductReview.js +++ /dev/null @@ -1,52 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { Grid, Rating, Stack, Typography } from '@mui/material'; - -// project imports -import Avatar from 'components/@extended/Avatar'; - -// assets -import { StarFilled, StarOutlined } from '@ant-design/icons'; - -const avatarImage = require.context('assets/images/users', true); - -// ==============================|| PRODUCT DETAILS - REVIEW ||============================== // - -const ProductReview = ({ avatar, date, name, rating, review }) => ( - - - - - - - {name} - - - {date} - - } - emptyIcon={} - precision={0.1} - readOnly - /> - - {review} - - - -); - -ProductReview.propTypes = { - avatar: PropTypes.string, - date: PropTypes.string, - name: PropTypes.string, - rating: PropTypes.number, - review: PropTypes.string -}; - -export default ProductReview; diff --git a/src/components/cards/skeleton/ProductPlaceholder.js b/src/components/cards/skeleton/ProductPlaceholder.js deleted file mode 100644 index 3002169..0000000 --- a/src/components/cards/skeleton/ProductPlaceholder.js +++ /dev/null @@ -1,44 +0,0 @@ -// material-ui -import { CardContent, Grid, Skeleton, Stack } from '@mui/material'; - -// project import -import MainCard from 'components/MainCard'; - -// ===========================|| SKELETON - PRODUCT CARD ||=========================== // - -const ProductPlaceholder = () => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); - -export default ProductPlaceholder; diff --git a/src/components/cards/statistics/AnalyticEcommerce.js b/src/components/cards/statistics/AnalyticEcommerce.js deleted file mode 100644 index 5610371..0000000 --- a/src/components/cards/statistics/AnalyticEcommerce.js +++ /dev/null @@ -1,66 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { Box, Chip, Grid, Stack, Typography } from '@mui/material'; - -// project import -import MainCard from 'components/MainCard'; - -// assets -import { FallOutlined, RiseOutlined } from '@ant-design/icons'; - -// ==============================|| STATISTICS - ECOMMERCE CARD ||============================== // - -const AnalyticEcommerce = ({ color = 'primary', title, count, percentage, isLoss, extra }) => ( - - - - {title} - - - - - {count} - - - {percentage && ( - - - {!isLoss && } - {isLoss && } - - } - label={`${percentage}%`} - sx={{ ml: 1.25, pl: 1 }} - size="small" - /> - - )} - - - - - You made an extra{' '} - - {extra} - {' '} - this year - - - -); - -AnalyticEcommerce.propTypes = { - title: PropTypes.string, - count: PropTypes.string, - percentage: PropTypes.number, - isLoss: PropTypes.bool, - color: PropTypes.string, - extra: PropTypes.string -}; - -export default AnalyticEcommerce; diff --git a/src/components/cards/statistics/AnalyticsDataCard.js b/src/components/cards/statistics/AnalyticsDataCard.js deleted file mode 100644 index 9d96fec..0000000 --- a/src/components/cards/statistics/AnalyticsDataCard.js +++ /dev/null @@ -1,56 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { Box, Chip, Stack, Typography } from '@mui/material'; - -// project import -import MainCard from 'components/MainCard'; - -// assets -import { RiseOutlined, FallOutlined } from '@ant-design/icons'; - -// ==============================|| STATISTICS - ECOMMERCE CARD ||============================== // - -const AnalyticsDataCard = ({ color = 'primary', title, count, percentage, isLoss, children }) => ( - - - - - {title} - - - - {count} - - {percentage && ( - - {!isLoss && } - {isLoss && } - - } - label={`${percentage}%`} - sx={{ ml: 1.25, pl: 1 }} - size="small" - /> - )} - - - - {children} - -); - -AnalyticsDataCard.propTypes = { - title: PropTypes.string, - count: PropTypes.string, - percentage: PropTypes.number, - isLoss: PropTypes.bool, - color: PropTypes.string, - children: PropTypes.node -}; - -export default AnalyticsDataCard; diff --git a/src/components/cards/statistics/HoverSocialCard.js b/src/components/cards/statistics/HoverSocialCard.js index 936c35e..d5ce006 100644 --- a/src/components/cards/statistics/HoverSocialCard.js +++ b/src/components/cards/statistics/HoverSocialCard.js @@ -1,8 +1,5 @@ import PropTypes from 'prop-types'; -// material-ui -import { Box, Card, CardContent, Grid, Typography } from '@mui/material'; - // ===========================|| HOVER SOCIAL CARD ||=========================== // const HoverSocialCard = ({ @@ -16,53 +13,42 @@ const HoverSocialCard = ({ // const primaryIcon = iconPrimary ? : null; return ( - - - - - {/* {percentage.toString()} % */} - {percentage ? `${percentage.toString()} %` : ''} - - {/* {primaryIcon} */} - - - - - {secondary} - - - - - {primary} - - - - - + <> + +
+
+
+ + {/* {percentage.toString()} % */} + {percentage ? `${percentage.toString()} %` : ''} + + {/* {primaryIcon} */} +
+
+ {secondary} + {primary} +
+
+
+ ); }; diff --git a/src/components/logo/LogoIcon.js b/src/components/logo/LogoIcon.js index cfc19e2..4e8c46b 100644 --- a/src/components/logo/LogoIcon.js +++ b/src/components/logo/LogoIcon.js @@ -1,5 +1,10 @@ -// material-ui -import { useTheme } from '@mui/material/styles'; +// Brand colors — this app runs in light mode only (see config.js `mode: ThemeMode.LIGHT`), +// so the values previously read from the MUI theme's `primary` palette are inlined as +// static brand-red tones matching the BRAND/BRAND_LIGHT convention used across the +// Astryx-converted pages. +const PRIMARY_MAIN = '#C01227'; +const PRIMARY_DARK = '#910E1D'; +const PRIMARY_DARKER = '#6B0A15'; /** * if you want to use image instead of uncomment following. @@ -13,8 +18,6 @@ import { useTheme } from '@mui/material/styles'; // ==============================|| LOGO ICON SVG ||============================== // const LogoIcon = () => { - const theme = useTheme(); - return ( /** * if you want to use image instead of svg uncomment following, and comment out element. @@ -25,7 +28,7 @@ const LogoIcon = () => { { /> - - + + - - + + diff --git a/src/components/logo/LogoMain.js b/src/components/logo/LogoMain.js index 72adc22..2f5fafa 100644 --- a/src/components/logo/LogoMain.js +++ b/src/components/logo/LogoMain.js @@ -1,8 +1,14 @@ import PropTypes from 'prop-types'; -// material-ui -import { useTheme } from '@mui/material/styles'; -import { ThemeMode } from 'config'; +// Brand colors — this app runs in light mode only (see config.js `mode: ThemeMode.LIGHT`), +// so the values previously read from the MUI theme's `primary` palette are inlined as +// static brand-red tones matching the BRAND/BRAND_LIGHT convention used across the +// Astryx-converted pages. +const PRIMARY_MAIN = '#C01227'; +const PRIMARY_DARK = '#910E1D'; +const PRIMARY_DARKER = '#6B0A15'; +const COMMON_WHITE = '#fff'; +const COMMON_BLACK = '#000'; /** * if you want to use image instead of uncomment following. @@ -15,7 +21,6 @@ import { ThemeMode } from 'config'; // ==============================|| LOGO SVG ||============================== // const LogoMain = ({ reverse }) => { - const theme = useTheme(); return ( /** * if you want to use image instead of svg uncomment following, and comment out element. @@ -27,7 +32,7 @@ const LogoMain = ({ reverse }) => { { /> - - + + - - + + diff --git a/src/components/logo/index.js b/src/components/logo/index.js index bb2e7af..ca529b9 100644 --- a/src/components/logo/index.js +++ b/src/components/logo/index.js @@ -1,9 +1,6 @@ import PropTypes from 'prop-types'; import { Link } from 'react-router-dom'; -// material-ui -import { ButtonBase } from '@mui/material'; - // project import import LogoMain from './LogoMain'; import LogoIcon from './LogoIcon'; @@ -11,16 +8,28 @@ import { APP_DEFAULT_PATH } from 'config'; // ==============================|| MAIN LOGO ||============================== // -const LogoSection = ({ reverse, isIcon, sx, to }) => ( - +const LogoSection = ({ reverse, isIcon, style, to }) => ( + {isIcon ? : } - + ); LogoSection.propTypes = { reverse: PropTypes.bool, isIcon: PropTypes.bool, - sx: PropTypes.object, + style: PropTypes.object, to: PropTypes.string }; diff --git a/src/components/nearle_components/CircularLoader.js b/src/components/nearle_components/CircularLoader.js index efa9da8..d871e9e 100644 --- a/src/components/nearle_components/CircularLoader.js +++ b/src/components/nearle_components/CircularLoader.js @@ -1,47 +1,31 @@ -import { styled } from '@mui/material/styles'; -import CircularProgress from '@mui/material/CircularProgress'; -import nelogo from '../../assets/images/logo-sm.png'; - -// Styled Loader Wrapper -const LoaderWrapper = styled('div')(() => ({ - position: 'fixed', - top: '50%', - left: '50%', - transform: 'translate(-50%, -50%)', - zIndex: 2001, - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - background: 'rgba(255, 255, 255, 0.7)', // Light overlay effect - padding: '20px', - borderRadius: '10px' // Soft rounded border -})); - -// Styled Logo Wrapper -const LogoWrapper = styled('div')(() => ({ - position: 'absolute', - width: '40px', // Adjust based on your logo size - height: '40px', - display: 'flex', - alignItems: 'center', - justifyContent: 'center' -})); +import { Spinner } from '@astryxdesign/core/Spinner'; +import nelogo from '../../assets/images/doormile-mark.png'; // ==============================|| Custom Circular Loader with Logo ||============================== // const CircularLoader = () => ( - - {/* Circular Loader */} - +
+
+ +
- {/* Logo Positioned at the Center */} - +
Logo - - +
+
); export default CircularLoader; diff --git a/src/components/nearle_components/DateFilterDialog.js b/src/components/nearle_components/DateFilterDialog.js index 1f8a105..62dec42 100644 --- a/src/components/nearle_components/DateFilterDialog.js +++ b/src/components/nearle_components/DateFilterDialog.js @@ -1,11 +1,19 @@ -import { Dialog, DialogTitle, DialogContent, Typography, Stack, Button, DialogActions, Paper } from '@mui/material'; - -import { DateRangePicker } from 'mui-daterange-picker'; +import { useState } from 'react'; +import { Dialog } from '@astryxdesign/core/Dialog'; +import { DialogHeader } from '@astryxdesign/core/Dialog'; +import { Layout, LayoutFooter } from '@astryxdesign/core/Layout'; +import { Calendar } from '@astryxdesign/core/Calendar'; +import { Button } from '@astryxdesign/core/Button'; +import { HStack } from '@astryxdesign/core/HStack'; +import { VStack } from '@astryxdesign/core/VStack'; import dayjs from 'dayjs'; - import { addDays, addWeeks, addMonths, startOfWeek, endOfWeek, startOfMonth, endOfMonth } from 'date-fns'; +const iso = (d) => dayjs(d).format('YYYY-MM-DD'); + export default function DateFilterDialog({ open, onClose, onApply }) { + const [range, setRange] = useState(null); + const definedRanges = [ { label: 'Today', startDate: new Date(), endDate: new Date() }, { label: 'Yesterday', startDate: addDays(new Date(), -1), endDate: addDays(new Date(), -1) }, @@ -17,37 +25,42 @@ export default function DateFilterDialog({ open, onClose, onApply }) { { label: 'Last Month', startDate: startOfMonth(addMonths(new Date(), -1)), endDate: endOfMonth(addMonths(new Date(), -1)) } ]; - const handleSelect = (range) => { - if (!range?.startDate || !range?.endDate) return; - onApply({ - startDate: dayjs(range.startDate).format('YYYY-MM-DD'), - endDate: dayjs(range.endDate).format('YYYY-MM-DD'), - label: range.label || '' - }); + const apply = (startDate, endDate, label = '') => { + onApply({ startDate: iso(startDate), endDate: iso(endDate), label }); onClose(); }; + const handleOpenChange = (next) => !next && onClose(); + return ( - onclose()} fullWidth maxWidth="sm"> - - - Select Date Range - - - - - - - - + + } + content={ + + + {definedRanges.map((r) => ( + ); } diff --git a/src/components/nearle_components/LoaderWithImage.js b/src/components/nearle_components/LoaderWithImage.js deleted file mode 100644 index 10e1395..0000000 --- a/src/components/nearle_components/LoaderWithImage.js +++ /dev/null @@ -1,34 +0,0 @@ -// LoaderWithImage.jsx -import React from 'react'; -import { Box, CircularProgress } from '@mui/material'; -import nelogo from '../../assets/images/logo-sm.png'; - -export default function LoaderWithImage({ size = 70, imgSize = 40, alt = 'loader' }) { - return ( - - - - - {alt} - - - ); -} diff --git a/src/components/nearle_components/MobileCard.js b/src/components/nearle_components/MobileCard.js index 31e2f69..87f2ebd 100644 --- a/src/components/nearle_components/MobileCard.js +++ b/src/components/nearle_components/MobileCard.js @@ -1,5 +1,4 @@ import PropTypes from 'prop-types'; -import { Box, Paper, Stack, Typography } from '@mui/material'; // ============================================================================ // MobileCard — shared primitives that turn a desktop data-table row into an @@ -18,57 +17,60 @@ const PRIMARY_TEXT = '#0f172a'; // Vertical list wrapper — drop-in replacement for / // on mobile. `scroll` makes it an internal scroll region (matches the table's // maxHeight behaviour); omit it to let the page scroll naturally. -export const MobileCardList = ({ children, scroll = false, onScroll, sx, ...rest }) => ( - ( +
{children} - +
); MobileCardList.propTypes = { children: PropTypes.node, scroll: PropTypes.bool, onScroll: PropTypes.func, - sx: PropTypes.object + style: PropTypes.object }; // Card shell — coloured accent rail on the left, a header slot (status badge / // title / action buttons), then any field grid / collapse content as children. -export const MobileCard = ({ accent = '#662582', header, footer, selected = false, onClick, children, sx }) => ( - ( +
(e.key === 'Enter' || e.key === ' ') && onClick(e) : undefined} + style={{ position: 'relative', overflow: 'hidden', // Cards live inside a flex-column list; without this, a scroll-capped // list (maxHeight) would SHRINK each card to a sliver (flex-shrink:1) // and clip its content instead of scrolling. Keep natural height. flexShrink: 0, - borderRadius: 2.5, - border: '1px solid', - borderColor: selected ? accent : BORDER, + borderRadius: 10, + border: `1px solid ${selected ? accent : BORDER}`, background: selected ? `${accent}0a` : '#fff', boxShadow: '0 4px 14px rgba(15,23,42,0.05)', transition: 'border-color 0.15s, box-shadow 0.15s', - ...sx + ...style }} > - - +
+
{header} {children} {footer} - - +
+
); MobileCard.propTypes = { @@ -78,37 +80,37 @@ MobileCard.propTypes = { selected: PropTypes.bool, onClick: PropTypes.func, children: PropTypes.node, - sx: PropTypes.object + style: PropTypes.object }; // Grid wrapper for MobileField cells. Two columns by default; pass `columns` // to change. Keeps every card's body alignment identical. -export const MobileFieldGrid = ({ children, columns = 2, sx }) => ( - ( +
{children} - +
); MobileFieldGrid.propTypes = { children: PropTypes.node, columns: PropTypes.number, - sx: PropTypes.object + style: PropTypes.object }; // A single label/value cell. `full` makes it span the whole row; `value` can be // a string/number or any node (chip, stack, etc.). export const MobileField = ({ label, value, children, full = false, align = 'left' }) => ( - - +
{value ?? '—'} - +
)} -
-
+
+ ); MobileField.propTypes = { diff --git a/src/components/nearle_components/SearchBar.js b/src/components/nearle_components/SearchBar.js index c06a6f9..6b078ce 100644 --- a/src/components/nearle_components/SearchBar.js +++ b/src/components/nearle_components/SearchBar.js @@ -1,11 +1,9 @@ // SearchBar.jsx import React, { useEffect, useRef } from 'react'; -import { FormControl, OutlinedInput, InputAdornment, IconButton, useTheme } from '@mui/material'; -import SearchOutlined from '@mui/icons-material/SearchOutlined'; -import ClearIcon from '@mui/icons-material/Clear'; +import { TextInput } from '@astryxdesign/core/TextInput'; +import { MdSearch } from 'react-icons/md'; -const SearchBar = ({ value, onChange, sx, placeholder = 'Search (Ctrl + K)' }) => { - const theme = useTheme(); +const SearchBar = ({ value, onChange, style, placeholder = 'Search (Ctrl + K)' }) => { const inputRef = useRef(null); /* ============================================= || handleKeyPress (CTRL + K) and ESC ||============================================= */ @@ -28,30 +26,18 @@ const SearchBar = ({ value, onChange, sx, placeholder = 'Search (Ctrl + K)' }) = }, []); return ( - - - - - } - endAdornment={ - onChange({ target: { value: '' } })}> - - - } - /> - + } + hasClear + value={value} + onChange={(v) => onChange({ target: { value: v } })} + size="lg" + style={style} + /> ); }; diff --git a/src/components/nearle_components/updateNetworkStatus.js b/src/components/nearle_components/updateNetworkStatus.js index b5f9e15..7734902 100644 --- a/src/components/nearle_components/updateNetworkStatus.js +++ b/src/components/nearle_components/updateNetworkStatus.js @@ -1,7 +1,5 @@ import { useEffect, useState, useRef } from 'react'; -import { useTheme } from '@mui/material/styles'; -import WifiOffIcon from '@mui/icons-material/WifiOff'; -import WifiIcon from '@mui/icons-material/Wifi'; +import { MdWifiOff, MdWifi } from 'react-icons/md'; const NOTIFICATION_STYLE = { position: 'fixed', @@ -21,7 +19,6 @@ const NOTIFICATION_STYLE = { }; const InternetStatus = () => { - const theme = useTheme(); const [isOnline, setIsOnline] = useState(navigator.onLine); const [showBackOnline, setShowBackOnline] = useState(false); const wasOffline = useRef(!navigator.onLine); @@ -64,13 +61,13 @@ const InternetStatus = () => {
- + No Internet Connection
)} @@ -79,13 +76,13 @@ const InternetStatus = () => {
- + Back Online
)} diff --git a/src/components/third-party/Notistack.js b/src/components/third-party/Notistack.js index f718927..88f04aa 100644 --- a/src/components/third-party/Notistack.js +++ b/src/components/third-party/Notistack.js @@ -1,8 +1,5 @@ import PropTypes from 'prop-types'; -//material-ui -import { styled } from '@mui/material/styles'; - // third-party import { SnackbarProvider } from 'notistack'; @@ -12,24 +9,16 @@ import { useSelector } from 'store'; // assets import { CheckCircleOutlined, CloseCircleOutlined, InfoCircleOutlined, WarningOutlined } from '@ant-design/icons'; -// custom styles -const StyledSnackbarProvider = styled(SnackbarProvider)(({ theme }) => ({ - '&.notistack-MuiContent-default': { - backgroundColor: theme.palette.primary.main - }, - '&.notistack-MuiContent-error': { - backgroundColor: theme.palette.error.main - }, - '&.notistack-MuiContent-success': { - backgroundColor: theme.palette.success.main - }, - '&.notistack-MuiContent-info': { - backgroundColor: theme.palette.info.main - }, - '&.notistack-MuiContent-warning': { - backgroundColor: theme.palette.warning.main - } -})); +// Semantic notification colors — static (this app runs light-mode only), matching the +// brand palette used across the Astryx-converted pages (BRAND red for the default/ +// primary notistack variant, standard semantic tones for error/success/info/warning). +const notistackColors = ` + .notistack-MuiContent-default { background-color: #C01227 !important; } + .notistack-MuiContent-error { background-color: #ef4444 !important; } + .notistack-MuiContent-success { background-color: #10b981 !important; } + .notistack-MuiContent-info { background-color: #3b82f6 !important; } + .notistack-MuiContent-warning { background-color: #f59e0b !important; } +`; // ===========================|| SNACKBAR - NOTISTACK ||=========================== // @@ -38,23 +27,26 @@ const Notistack = ({ children }) => { const iconSX = { marginRight: 8, fontSize: '1.15rem' }; return ( - , - error: , - warning: , - info: - } - : undefined - } - hideIconVariant={snackbar.iconVariant === 'hide' ? true : false} - > - {children} - + <> + + , + error: , + warning: , + info: + } + : undefined + } + hideIconVariant={snackbar.iconVariant === 'hide' ? true : false} + > + {children} + + ); }; diff --git a/src/components/third-party/ReactTable.js b/src/components/third-party/ReactTable.js index 26d9eec..94a665a 100644 --- a/src/components/third-party/ReactTable.js +++ b/src/components/third-party/ReactTable.js @@ -1,514 +1,43 @@ import PropTypes from 'prop-types'; -import React, { forwardRef, useEffect, useRef, useState } from 'react'; -// material-ui -import { styled, useTheme } from '@mui/material/styles'; -import { - Box, - Button, - Checkbox, - Chip, - CircularProgress, - FormControl, - Grid, - ListItemText, - MenuItem, - OutlinedInput, - Pagination, - Select, - Stack, - TableCell, - TableRow, - TextField, - Tooltip, - Typography -} from '@mui/material'; - -// project-import -import { ThemeMode } from 'config'; +import { Button } from '@astryxdesign/core/Button'; +import { Tooltip } from '@astryxdesign/core/Tooltip'; +import { Spinner } from '@astryxdesign/core/Spinner'; // third-party import { CSVLink } from 'react-csv'; -import { getEmptyImage } from 'react-dnd-html5-backend'; -import { useDrop, useDrag, useDragLayer } from 'react-dnd'; // assets -import { CaretUpOutlined, CaretDownOutlined, DragOutlined, CheckOutlined, DownloadOutlined } from '@ant-design/icons'; +import { DownloadOutlined } from '@ant-design/icons'; -// ==============================|| HEADER HEADER ||============================== // - -export const HeaderSort = ({ column, sort }) => { - const theme = useTheme(); - return ( - - {column.render('Header')} - {!column.disableSortBy && ( - - - - - )} - - ); -}; - -HeaderSort.propTypes = { - column: PropTypes.any, - sort: PropTypes.bool -}; - -// ==============================|| TABLE PAGINATION ||============================== // - -export const TablePagination = ({ gotoPage, rows, setPageSize, pageSize, pageIndex }) => { - const [open, setOpen] = useState(false); - - const handleClose = () => { - setOpen(false); - }; - - const handleOpen = () => { - setOpen(true); - }; - - const handleChangePagination = (event, value) => { - gotoPage(value - 1); - }; - - const handleChange = (event) => { - setPageSize(+event.target.value); - }; - - return ( - - - - - - Row per page - - - - - - - Go to - - { - const page = e.target.value ? Number(e.target.value) : 0; - gotoPage(page - 1); - }} - sx={{ '& .MuiOutlinedInput-input': { py: 0.75, px: 1.25, width: 36 } }} - /> - - - - - - - ); -}; - -TablePagination.propTypes = { - gotoPage: PropTypes.func, - setPageSize: PropTypes.func, - pageIndex: PropTypes.number, - pageSize: PropTypes.number, - rows: PropTypes.array -}; - -// ==============================|| SELECTION - PREVIEW ||============================== // - -export const IndeterminateCheckbox = forwardRef(({ indeterminate, ...rest }, ref) => { - const defaultRef = useRef(); - const resolvedRef = ref || defaultRef; - - return ; -}); - -IndeterminateCheckbox.propTypes = { - indeterminate: PropTypes.bool -}; - -export const TableRowSelection = ({ selected }) => ( - <> - {selected > 0 && ( - - )} - -); - -TableRowSelection.propTypes = { - selected: PropTypes.number -}; - -// ==============================|| DRAG & DROP - DRAGGABLE HEADR ||============================== // - -export const DraggableHeader = ({ children, column, index, reorder }) => { - const theme = useTheme(); - const ref = useRef(); - const { id, Header } = column; - - const DND_ITEM_TYPE = 'column'; - - const [{ isOverCurrent }, drop] = useDrop({ - accept: DND_ITEM_TYPE, - drop: (item) => { - reorder(item, index); - }, - collect: (monitor) => ({ - isOver: monitor.isOver(), - isOverCurrent: monitor.isOver({ shallow: true }) - }) - }); - - const [{ isDragging }, drag, preview] = useDrag({ - type: DND_ITEM_TYPE, - item: () => ({ - id, - index, - header: Header - }), - collect: (monitor) => ({ - isDragging: monitor.isDragging() - }) - }); - - useEffect(() => { - preview(getEmptyImage(), { captureDraggingState: true }); - }, [preview]); - - drag(drop(ref)); - - let borderColor = theme.palette.text.primary; - if (isOverCurrent) { - borderColor = theme.palette.primary.main; - } - - return ( - - {children} - - ); -}; - -DraggableHeader.propTypes = { - column: PropTypes.any, - sort: PropTypes.bool, - reorder: PropTypes.func, - index: PropTypes.number, - children: PropTypes.node -}; - -// ==============================|| DRAG & DROP - DRAG PREVIEW ||============================== // - -const DragHeader = styled('div')(({ theme, x, y }) => ({ - color: theme.palette.text.secondary, - position: 'fixed', - pointerEvents: 'none', - left: 12, - top: 24, - transform: `translate(${x}px, ${y}px)`, - opacity: 0.6 -})); - -export const DragPreview = () => { - const theme = useTheme(); - const { isDragging, item, currentOffset } = useDragLayer((monitor) => ({ - item: monitor.getItem(), - itemType: monitor.getItemType(), - initialOffset: monitor.getInitialSourceClientOffset(), - currentOffset: monitor.getSourceClientOffset(), - isDragging: monitor.isDragging() - })); - - const { x, y } = currentOffset || {}; - - return isDragging ? ( - - {item.header && ( - - - {item.header} - - )} - - ) : null; -}; - -// ==============================|| DRAG & DROP - DRAGGABLE ROW ||============================== // - -export const DraggableRow = ({ index, moveRow, children }) => { - const DND_ITEM_TYPE = 'row'; - - const dropRef = useRef(null); - const dragRef = useRef(null); - - const [, drop] = useDrop({ - accept: DND_ITEM_TYPE, - hover(item, monitor) { - if (!dropRef.current) { - return; - } - const dragIndex = item.index; - const hoverIndex = index; - if (dragIndex === hoverIndex) { - return; - } - - const hoverBoundingRect = dropRef.current.getBoundingClientRect(); - const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2; - const clientOffset = monitor.getClientOffset(); - const hoverClientY = clientOffset.y - hoverBoundingRect.top; - if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) { - return; - } - if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) { - return; - } - - moveRow(dragIndex, hoverIndex); - item.index = hoverIndex; - } - }); - - const [{ isDragging }, drag, preview] = useDrag({ - type: DND_ITEM_TYPE, - item: { index }, - collect: (monitor) => ({ - isDragging: monitor.isDragging() - }) - }); - - const opacity = isDragging ? 0 : 1; - - preview(drop(dropRef)); - drag(dragRef); - - return ( - - - - - {children} - - ); -}; - -DraggableRow.propTypes = { - moveRow: PropTypes.func, - index: PropTypes.number, - children: PropTypes.node -}; - -// ==============================|| COLUMN HIDING - SELECT ||============================== // - -const ITEM_HEIGHT = 48; -const ITEM_PADDING_TOP = 8; -const MenuProps = { - PaperProps: { - style: { - maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP, - width: 200 - } - } -}; - -export const HidingSelect = ({ hiddenColumns, setHiddenColumns, allColumns }) => { - const handleChange = (event) => { - const { - target: { value } - } = event; - - setHiddenColumns(typeof value === 'string' ? value.split(',') : value); - }; - - const theme = useTheme(); - let visible = allColumns.filter((c) => !hiddenColumns.includes(c.id)).length; - - return ( - - - - ); -}; - -HidingSelect.propTypes = { - setHiddenColumns: PropTypes.func, - hiddenColumns: PropTypes.array, - allColumns: PropTypes.array -}; - -// ==============================|| COLUMN SORTING - SELECT ||============================== // - -export const SortingSelect = ({ sortBy, setSortBy, allColumns }) => { - const [sort, setSort] = useState(sortBy); - - const handleChange = (event) => { - const { - target: { value } - } = event; - setSort(value); - setSortBy([{ id: value, desc: false }]); - }; - - return ( - - - - ); -}; - -SortingSelect.propTypes = { - setSortBy: PropTypes.func, - sortBy: PropTypes.string, - allColumns: PropTypes.array -}; +// ============================================================================ +// This file previously held a large grab-bag of react-table + MUI + react-dnd +// helper components (HeaderSort, TablePagination, IndeterminateCheckbox, +// TableRowSelection, DraggableHeader/DragPreview/DraggableRow, HidingSelect, +// SortingSelect, EmptyTable). None of them had any remaining consumers anywhere +// in the app (verified via grep across src/) — they were leftover MUI/react-table +// scaffolding from the original admin template, never wired into any of the +// plain-HTML/Astryx tables actually used by this app's pages. Removed as part of +// the MUI removal pass rather than converting dead code. `CSVExport` is the one +// export with a real consumer (reports/ordersDetails.js) and is kept, rebuilt on +// Astryx primitives. +// ============================================================================ // ==============================|| CSV EXPORT ||============================== // export const CSVExport = ({ data, filename, headers, label, style, btnLoading, onClick }) => { return ( - - + + @@ -526,70 +55,3 @@ CSVExport.propTypes = { btnLoading: PropTypes.bool, onClick: PropTypes.func }; -// ==============================|| EMPTY TABLE - NO DATA ||============================== // - -const StyledGridOverlay = styled(Stack)(({ theme }) => ({ - height: '400px', - '& .ant-empty-img-1': { - fill: theme.palette.mode === ThemeMode.DARK ? theme.palette.secondary[200] : theme.palette.secondary[400] - }, - '& .ant-empty-img-2': { - fill: theme.palette.secondary.light - }, - '& .ant-empty-img-3': { - fill: theme.palette.mode === ThemeMode.DARK ? theme.palette.secondary.A200 : theme.palette.secondary[200] - }, - '& .ant-empty-img-4': { - fill: theme.palette.mode === ThemeMode.DARK ? theme.palette.secondary.A300 : theme.palette.secondary.A100 - }, - '& .ant-empty-img-5': { - fillOpacity: theme.palette.mode === ThemeMode.DARK ? '0.09' : '0.95', - fill: theme.palette.mode === ThemeMode.DARK ? theme.palette.secondary.darker : theme.palette.secondary.light - } -})); - -export const EmptyTable = ({ msg, colSpan }) => { - return ( - - - - - - - - - - - - - - - - - - - - {msg} - - - - - ); -}; - -EmptyTable.propTypes = { - msg: PropTypes.string, - colSpan: PropTypes.number -}; diff --git a/src/components/third-party/SimpleBar.js b/src/components/third-party/SimpleBar.js deleted file mode 100644 index 99b5e9d..0000000 --- a/src/components/third-party/SimpleBar.js +++ /dev/null @@ -1,62 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { alpha, styled } from '@mui/material/styles'; -import { Box } from '@mui/material'; - -// third-party -import SimpleBar from 'simplebar-react'; -import { BrowserView, MobileView } from 'react-device-detect'; - -// root style -const RootStyle = styled(BrowserView)({ - flexGrow: 1, - height: '100%', - overflow: 'hidden' -}); - -// scroll bar wrapper -const SimpleBarStyle = styled(SimpleBar)(({ theme }) => ({ - maxHeight: '100%', - '& .simplebar-scrollbar': { - '&:before': { - backgroundColor: alpha(theme.palette.grey[500], 0.48) - }, - '&.simplebar-visible:before': { - opacity: 1 - } - }, - '& .simplebar-track.simplebar-vertical': { - width: 10 - }, - '& .simplebar-track.simplebar-horizontal .simplebar-scrollbar': { - height: 6 - }, - '& .simplebar-mask': { - zIndex: 'inherit' - } -})); - -// ==============================|| SIMPLE SCROLL BAR ||============================== // - -export default function SimpleBarScroll({ children, sx, ...other }) { - return ( - <> - - - {children} - - - - - {children} - - - - ); -} - -SimpleBarScroll.propTypes = { - children: PropTypes.node, - sx: PropTypes.object -}; diff --git a/src/index.js b/src/index.js index 0faf8f8..9696631 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,5 @@ import { createRoot } from 'react-dom/client'; -import { BrowserRouter } from 'react-router-dom'; +import { BrowserRouter, Link } from 'react-router-dom'; // third-party import { Provider as ReduxProvider } from 'react-redux'; @@ -7,6 +7,13 @@ import { Provider as ReduxProvider } from 'react-redux'; // scroll bar import 'simplebar/dist/simplebar.css'; +// Astryx design system — zero-specificity :where() reset + component base +// styles, safe to load alongside MUI/Emotion (see themes/astryx.js for the +// brand theme applied per-page during migration). +import '@astryxdesign/core/reset.css'; +import '@astryxdesign/core/astryx.css'; +import { LinkProvider } from '@astryxdesign/core/Link'; + // apex-chart import 'assets/third-party/apex-chart.css'; import 'assets/third-party/react-table.css'; @@ -32,7 +39,12 @@ root.render( {/* */} - + {/* Makes every Astryx nav/link component (SideNavItem, TopNavHeading, + DropdownMenu, ...) route through React Router's Link instead of a + hard
reload. */} + + + {/* */} diff --git a/src/layout/CommonLayout/FooterBlock.js b/src/layout/CommonLayout/FooterBlock.js index bc94eb3..76659d9 100644 --- a/src/layout/CommonLayout/FooterBlock.js +++ b/src/layout/CommonLayout/FooterBlock.js @@ -1,18 +1,14 @@ import PropTypes from 'prop-types'; -// material-ui -import { styled, useTheme } from '@mui/material/styles'; -import { Box, Button, Container, CardMedia, Divider, Stack, Grid, Link, Typography } from '@mui/material'; - // third party import { motion } from 'framer-motion'; // project import -import { ThemeDirection, ThemeMode } from 'config'; import useConfig from 'hooks/useConfig'; // assets import { SendOutlined } from '@ant-design/icons'; +import { Button } from '@astryxdesign/core/Button'; import imgfooterlogo from 'assets/images/landing/codedthemes-logo.svg'; import imgfootersoc1 from 'assets/images/landing/img-soc1.svg'; import imgfootersoc2 from 'assets/images/landing/img-soc2.svg'; @@ -21,295 +17,172 @@ import AnimateButton from 'components/@extended/AnimateButton'; const dashImage = require.context('assets/images/landing', true); -// link - custom style -const FooterLink = styled(Link)(({ theme }) => ({ - color: theme.palette.text.secondary, - '&:hover': { - color: theme.palette.primary.main - }, - '&:active': { - color: theme.palette.primary.main - } -})); +// Note: like Header.js, this footer only renders for CommonLayout's 'landing' variant, +// which this app's actual routing never selects — it's leftover template-vendor marketing +// chrome (CodedThemes/Mantis branding), kept dead-in-practice but converted off MUI since +// it's still part of the FooterBlock lazy chunk. Static grey/white tones replace the old +// theme.palette reads (this app runs light-mode only). + +const GREY_A700 = '#1f1f1f'; +const GREY_800 = '#262626'; +const WHITE = '#fff'; + +const footerLinkStyle = { color: 'rgba(255,255,255,0.6)', textDecoration: 'none', fontSize: 14 }; // ==============================|| LANDING - FOOTER PAGE ||============================== // const FooterBlock = ({ isFull }) => { - const theme = useTheme(); const { presetColor } = useConfig(); - const textColor = theme.palette.mode === ThemeMode.DARK ? 'text.primary' : 'background.paper'; - - const linkSX = { - color: theme.palette.common.white, - fontSize: '0.875rem', - fontWeight: 400, - opacity: '0.6', - cursor: 'pointer', - '&:hover': { - opacity: '1' - } - }; const frameworks = [ { title: 'CodeIgniter', link: 'https://links.codedthemes.com/dEGKs' }, - { - title: 'React MUI', - link: 'https://links.codedthemes.com/Aprwb' - }, - { - title: 'Angular', - link: 'https://links.codedthemes.com/EIvof' - }, - { - title: 'Bootstrap 5', - link: 'https://codedthemes.com/item/mantis-bootstrap-admin-dashboard/' - }, - { - title: '.Net', - link: 'https://links.codedthemes.com/GPZhD' - } + { title: 'React MUI', link: 'https://links.codedthemes.com/Aprwb' }, + { title: 'Angular', link: 'https://links.codedthemes.com/EIvof' }, + { title: 'Bootstrap 5', link: 'https://codedthemes.com/item/mantis-bootstrap-admin-dashboard/' }, + { title: '.Net', link: 'https://links.codedthemes.com/GPZhD' } ]; + const helpLinks = [ + { title: 'Blog', link: 'https://links.codedthemes.com/nOuhw' }, + { title: 'Documentation', link: 'https://links.codedthemes.com/BQFrl' }, + { title: 'Change Log', link: 'https://links.codedthemes.com/rhzvh' }, + { title: 'Support', link: 'https://codedthemes.support-hub.io/' } + ]; + + const storeHelpLinks = [ + { title: 'License', link: 'https://mui.com/store/license/' }, + { title: 'Refund Policy', link: 'https://mui.com/store/customer-refund-policy/' }, + { title: 'Submit a Request', link: 'https://support.mui.com/hc/en-us/sections/360002564979-For-customers' } + ]; + + const moreProducts = [ + { title: 'Berry React Material', link: 'https://links.codedthemes.com/zyACc' }, + { title: 'Free Berry React', link: 'https://links.codedthemes.com/WztNI' }, + { title: 'Free Mantis React', link: 'https://links.codedthemes.com/sTUAK' } + ]; + + const FooterColumn = ({ title, links }) => ( + + ); + return ( <> {isFull && ( - - - - - - - - - Roadmap - - - - +
+
+ Roadmap + + Upcoming Release + + What is next? Checkout the Upcoming release of Mantis React. +
+ + - - - - - - - - + Roadmap + + +
+
+
+ + )} - - - - - - - - - - - - Since 2017, More than 50K+ Developers trust the CodedThemes Digital Product. Mantis React is Manage under their - Experienced Team Players. - - - - - - - - - - - Help - - - - Blog - - - Documentation - - - Change Log - - - Support - - - - - - - - Store Help - - - - License - - - Refund Policy - - - Submit a Request - - - - - - - - Mantis Eco-System - - - {frameworks.map((item, index) => ( - - {item.title} - {/* {item.isUpcoming && } */} - - ))} - - - - - - - More Products - - - - Berry React Material - - - Free Berry React - - - Free Mantis React - - - - - - - - - - - - - - - - © Made with love by Team CodedThemes - - - - - - - - - - - - - - - - - - - - - - - - +
+
+
+ +
+ Logo + + Since 2017, More than 50K+ Developers trust the CodedThemes Digital Product. Mantis React is Manage under their + Experienced Team Players. + +
+
+ +
+ + + + +
+
+
+
+ +
+ +
+
+ © Made with love by Team CodedThemes +
+ {[imgfootersoc1, imgfootersoc2, imgfootersoc3].map((src, i) => ( + + + + ))} +
+
+
); }; diff --git a/src/layout/CommonLayout/Header.js b/src/layout/CommonLayout/Header.js index 2396bef..1364bda 100644 --- a/src/layout/CommonLayout/Header.js +++ b/src/layout/CommonLayout/Header.js @@ -1,31 +1,12 @@ import PropTypes from 'prop-types'; -import * as React from 'react'; -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { Link as RouterLink } from 'react-router-dom'; -// material-ui -import AppBar from '@mui/material/AppBar'; -import { useTheme } from '@mui/material/styles'; -import { - useMediaQuery, - Box, - Button, - Chip, - Container, - Drawer, - Link, - List, - ListItemButton, - ListItemIcon, - ListItemText, - Stack, - Toolbar, - Typography, - useScrollTrigger -} from '@mui/material'; +import { Button } from '@astryxdesign/core/Button'; +import { Badge } from '@astryxdesign/core/Badge'; // project import -import { APP_DEFAULT_PATH, ThemeMode } from 'config'; +import { APP_DEFAULT_PATH } from 'config'; import IconButton from 'components/@extended/IconButton'; import AnimateButton from 'components/@extended/AnimateButton'; import Logo from 'components/logo'; @@ -34,212 +15,170 @@ import Logo from 'components/logo'; import { MenuOutlined, LineOutlined } from '@ant-design/icons'; // ==============================|| COMPONENTS - APP BAR ||============================== // +// Note: this header only renders for CommonLayout's 'landing'/'simple'/'component' variants, +// none of which this app's routing actually selects (both routes.js call sites use the +// default 'blank' layout) — it's demo-template chrome pointing at the original template +// vendor's marketing links, kept dead-in-practice but still converted off MUI since it's +// still a separately-bundled lazy chunk. -// elevation scroll -function ElevationScroll({ layout, children, window }) { - const theme = useTheme(); - // const theme = useTheme(); +// Small local hook replacing MUI's useScrollTrigger — flips true once the page has +// scrolled past `threshold` px, used to swap the header's background in on scroll. +const useScrolled = (threshold = 10) => { + const [scrolled, setScrolled] = useState(() => (typeof window !== 'undefined' ? window.scrollY > threshold : false)); + useEffect(() => { + const onScroll = () => setScrolled(window.scrollY > threshold); + window.addEventListener('scroll', onScroll, { passive: true }); + return () => window.removeEventListener('scroll', onScroll); + }, [threshold]); + return scrolled; +}; - const trigger = useScrollTrigger({ - disableHysteresis: true, - threshold: 10, - target: window ? window() : undefined - }); +const useIsMobile = (breakpoint = 900) => { + const [isMobile, setIsMobile] = useState(() => (typeof window !== 'undefined' ? window.innerWidth < breakpoint : false)); + useEffect(() => { + const onResize = () => setIsMobile(window.innerWidth < breakpoint); + window.addEventListener('resize', onResize); + return () => window.removeEventListener('resize', onResize); + }, [breakpoint]); + return isMobile; +}; - const backColorScroll = theme.palette.mode === ThemeMode.DARK ? theme.palette.grey[50] : theme.palette.grey[800]; +const headerLinkStyle = { padding: '0 8px', color: '#fff', textDecoration: 'none', fontWeight: 600, fontSize: 14 }; + +const Header = ({ handleDrawerOpen, layout = 'landing' }) => { + const scrolled = useScrolled(10); + const isMobile = useIsMobile(); + const [drawerOpen, setDrawerOpen] = useState(false); + + const backColorScroll = '#262626'; const backColor = layout !== 'landing' ? backColorScroll : 'transparent'; - return React.cloneElement(children, { - style: { - backgroundColor: trigger ? backColorScroll : backColor - } - }); -} - -const Header = ({ handleDrawerOpen, layout = 'landing', ...others }) => { - const theme = useTheme(); - const matchDownMd = useMediaQuery(theme.breakpoints.down('md')); - const [drawerToggle, setDrawerToggle] = useState(false); - - /** Method called on multiple components with different event types */ - const drawerToggler = (open) => (event) => { - if (event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) { - return; - } - setDrawerToggle(open); - }; + const drawerLinks = [ + { label: 'Dashboard', href: '/login' }, + { label: 'All Components', href: '/components-overview/buttons' }, + { label: 'Free Version', href: 'https://links.codedthemes.com/sTUAK' }, + { label: 'Documentation', href: 'https://links.codedthemes.com/BQFrl' }, + { label: 'Support', href: 'https://codedthemes.support-hub.io/' }, + { label: 'Purchase Now', href: 'https://links.codedthemes.com/Aprwb', badge: 'v1.0' } + ]; return ( - - - - - - +
+
+
+ {!isMobile && ( + <> +
- - - - - - Dashboard - - - Components - - - Documentation - - + +
+
+ + Dashboard + + + Components + + + Documentation + - - - - - - - - - {layout === 'component' && ( -
+ + )} + + {isMobile && ( +
+ +
+ + - )} - {layout !== 'component' && ( - - )} + setDrawerOpen(true)} > - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+ + {drawerOpen && ( + <> +
setDrawerOpen(false)} + onKeyDown={(e) => (e.key === 'Enter' || e.key === ' ') && setDrawerOpen(false)} + style={{ position: 'fixed', inset: 0, backgroundColor: 'rgba(0,0,0,0.4)', zIndex: 1199, border: 'none' }} + /> +
setDrawerOpen(false)} + style={{ + position: 'fixed', + top: 0, + left: 0, + right: 0, + zIndex: 1200, + backgroundColor: '#1e1e1e', + padding: '8px 0' + }} + > + +
+ + )} +
+ )} +
+
+
); }; diff --git a/src/layout/CommonLayout/index.js b/src/layout/CommonLayout/index.js index f304f8e..ceb9d7a 100644 --- a/src/layout/CommonLayout/index.js +++ b/src/layout/CommonLayout/index.js @@ -2,37 +2,21 @@ import PropTypes from 'prop-types'; import { lazy, Suspense } from 'react'; import { Outlet } from 'react-router-dom'; -// material-ui -import { Container, Toolbar } from '@mui/material'; +import { ProgressBar } from '@astryxdesign/core/ProgressBar'; // project import import { dispatch, useSelector } from 'store'; import { openComponentDrawer } from 'store/reducers/menu'; -// material-ui -import { styled } from '@mui/material/styles'; -import LinearProgress from '@mui/material/LinearProgress'; - const Header = lazy(() => import('./Header')); const FooterBlock = lazy(() => import('./FooterBlock')); // ==============================|| Loader ||============================== // -const LoaderWrapper = styled('div')(({ theme }) => ({ - position: 'fixed', - top: 0, - left: 0, - zIndex: 2001, - width: '100%', - '& > * + *': { - marginTop: theme.spacing(2) - } -})); - const Loader = () => ( - - - +
+ +
); // ==============================|| MINIMAL LAYOUT ||============================== // @@ -56,10 +40,10 @@ const CommonLayout = ({ layout = 'blank' }) => { )} {layout === 'component' && ( }> - +
- - +
+
)} {layout === 'blank' && } diff --git a/src/layout/MainLayout/AppSideNav.js b/src/layout/MainLayout/AppSideNav.js new file mode 100644 index 0000000..b60cd8f --- /dev/null +++ b/src/layout/MainLayout/AppSideNav.js @@ -0,0 +1,176 @@ +import PropTypes from 'prop-types'; +import { useLocation } from 'react-router-dom'; +import { useIntl } from 'react-intl'; + +import { SideNav, SideNavSection, SideNavItem } from '@astryxdesign/core/SideNav'; +import { Icon } from '@astryxdesign/core/Icon'; + +import nearle from 'menu-items/nearle'; +import { DT } from 'themes/dt/tokens'; + +// Thin wrapper around Astryx's SideNav, driven by menu-items/nearle.js. +// react-router routing works via the app-root LinkProvider (see src/index.js) +// — no per-item Link bridging needed. + +const AppSideNav = ({ isCollapsed, onCollapsedChange }) => { + const { pathname } = useLocation(); + const intl = useIntl(); + + const renderMenuItem = (item) => { + // item.id isn't the same as the message key in this app's menu config + // (e.g. id: 'dispatch' but title: ), + // so pull the real key off the title element rather than assuming they + // match. + const label = intl.formatMessage({ id: item.title.props.id }); + // Wrap explicitly in Astryx's own rather than passing the bare + // component and letting SideNavItem's renderIconSlot auto-detect it: + // that detection only matches plain functions/forwardRef objects, not + // React.memo-wrapped ones (several @ant-design/icons v5 icons, as well + // as @mui/icons-material icons, are memo-wrapped) — those fell through + // and got returned as a raw, uninstantiated element, crashing with + // "Objects are not valid as a React child". Wrapping here always + // renders through Icon's own component-mode path, which handles any + // component type and gives every icon the same normalised size/colour + // regardless of source library (this menu mixes @ant-design/icons and + // @mui/icons-material). + const icon = item.icon ? : undefined; + + if (item.type === 'collapse') { + const isChildSelected = item.children.some((child) => pathname.startsWith(child.url)); + return ( + + {item.children.map(renderMenuItem)} + + ); + } + + return ; + }; + + return ( + <> + + {nearle.children.map(renderMenuItem)} + + + + ); +}; + +AppSideNav.propTypes = { + isCollapsed: PropTypes.bool.isRequired, + onCollapsedChange: PropTypes.func.isRequired +}; + +export default AppSideNav; diff --git a/src/layout/MainLayout/AppTopNav.js b/src/layout/MainLayout/AppTopNav.js new file mode 100644 index 0000000..c248a70 --- /dev/null +++ b/src/layout/MainLayout/AppTopNav.js @@ -0,0 +1,119 @@ +import { useEffect, useRef, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; + +import { TopNav, TopNavHeading } from '@astryxdesign/core/TopNav'; +import { DropdownMenu } from '@astryxdesign/core/DropdownMenu'; +import { Avatar } from '@astryxdesign/core/Avatar'; +import { HStack } from '@astryxdesign/core/HStack'; +import { Text } from '@astryxdesign/core/Text'; + +import { WindowsOutlined, EditOutlined, LogoutOutlined } from '@ant-design/icons'; +import { TbBoxMultiple1 } from 'react-icons/tb'; +import { GrMultiple } from 'react-icons/gr'; +import { TbUserEdit } from 'react-icons/tb'; + +import avatar1 from 'assets/images/users/avatar-1.png'; +import logo from 'assets/images/doormile-logo.png'; +import { DT } from 'themes/dt/tokens'; + +// doormile-logo.png is a white asset; recolour to brand red for this +// light TopNav surface (same trick login.js uses for its white-card logo). +const logoStyle = { + height: 24, + width: 'auto', + filter: 'brightness(0) saturate(100%) invert(15%) sepia(93%) saturate(5437%) hue-rotate(346deg) brightness(81%) contrast(92%)' +}; + +// ==============================|| MAIN LAYOUT - TOP NAV ||============================== // + +const AppTopNav = () => { + const navigate = useNavigate(); + const topNavRef = useRef(null); + const [headerHeight, setHeaderHeight] = useState(null); + + const tenantname = localStorage.getItem('tenantname') || ''; + const fullname = localStorage.getItem('fullname') || ''; + + const handleLogout = () => { + localStorage.clear(); + navigate('/login'); + }; + + // AppShell (height="auto") pins the sticky side nav below the header using + // a --appshell-header-height CSS var it measures itself via ResizeObserver. + // On some routes that measurement lags/settles wrong, so the side nav's + // sticky offset is off. Re-measure the header independently here and + // force the same variable with !important on the shell root — an + // author-stylesheet !important rule beats AppShell's own non-important + // inline style.setProperty() call on that same element, so this always + // wins regardless of what the internal measurement produced. + useEffect(() => { + const el = topNavRef.current; + if (!el) return undefined; + + const updateHeight = () => setHeaderHeight(el.getBoundingClientRect().height); + updateHeight(); + + const observer = new ResizeObserver(updateHeight); + observer.observe(el); + return () => observer.disconnect(); + }, []); + + return ( + <> + + } headingHref="/nearle/dispatch" /> + + } + endContent={ + + , isIconOnly: true, variant: 'ghost' }} + items={[ + { label: 'Create Orders', icon: , onClick: () => navigate('nearle/orders/create') }, + { label: 'Create Group Orders', icon: , onClick: () => navigate('nearle/orders/create/grouporders') }, + { label: 'Customers', icon: , onClick: () => navigate('nearle/customers') } + ]} + /> + + , + variant: 'ghost' + }} + items={[ + { label: 'View Profile', icon: , onClick: () => navigate('/accountsettings') }, + { type: 'divider' }, + { label: 'Logout', icon: , onClick: handleLogout } + ]} + /> + + } + /> + {headerHeight != null && ( + + )} + + ); +}; + +export default AppTopNav; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/NavCard.js b/src/layout/MainLayout/Drawer/DrawerContent/NavCard.js deleted file mode 100644 index 82905e1..0000000 --- a/src/layout/MainLayout/Drawer/DrawerContent/NavCard.js +++ /dev/null @@ -1,32 +0,0 @@ -// material-ui -import { Button, Link, CardMedia, Stack, Typography } from '@mui/material'; - -// project import -import MainCard from 'components/MainCard'; - -// assets -import avatar from 'assets/images/users/avatar-group.png'; -import AnimateButton from 'components/@extended/AnimateButton'; - -// ==============================|| DRAWER CONTENT - NAVIGATION CARD ||============================== // - -const NavCard = () => ( - - - - - Help? - - Get to resolve query - - - - - - - -); - -export default NavCard; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavCollapse.js b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavCollapse.js deleted file mode 100644 index 3504851..0000000 --- a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavCollapse.js +++ /dev/null @@ -1,503 +0,0 @@ -import PropTypes from 'prop-types'; -import React, { useEffect, useState, useMemo } from 'react'; -import { useLocation, useNavigate } from 'react-router-dom'; - -// material-ui -import { styled, useTheme } from '@mui/material/styles'; -import { - Box, - Collapse, - ClickAwayListener, - List, - ListItemButton, - ListItemIcon, - ListItemText, - Paper, - Popper, - Typography, - useMediaQuery -} from '@mui/material'; - -// project import -import NavItem from './NavItem'; -import Dot from 'components/@extended/Dot'; -import SimpleBar from 'components/third-party/SimpleBar'; -import Transitions from 'components/@extended/Transitions'; - -import useConfig from 'hooks/useConfig'; -import { dispatch, useSelector } from 'store'; -import { activeItem } from 'store/reducers/menu'; -import { MenuOrientation, ThemeMode } from 'config'; - -// assets -import { BorderOutlined, DownOutlined, UpOutlined, RightOutlined } from '@ant-design/icons'; - -// mini-menu - wrapper -const PopperStyled = styled(Popper)(({ theme }) => ({ - overflow: 'visible', - zIndex: 1202, - minWidth: 180, - '&:before': { - content: '""', - display: 'block', - position: 'absolute', - top: 38, - left: -5, - width: 10, - height: 10, - backgroundColor: theme.palette.background.paper, - transform: 'translateY(-50%) rotate(45deg)', - zIndex: 120, - borderLeft: `1px solid ${theme.palette.grey.A800}`, - borderBottom: `1px solid ${theme.palette.grey.A800}` - } -})); - -// ==============================|| NAVIGATION - LIST COLLAPSE ||============================== // - -const NavCollapse = ({ menu, level, parentId, setSelectedItems, selectedItems, setSelectedLevel, selectedLevel }) => { - const theme = useTheme(); - - const downLG = useMediaQuery(theme.breakpoints.down('lg')); - const menuState = useSelector((state) => state.menu); - - const { drawerOpen } = menuState; - const { menuOrientation } = useConfig(); - const navigation = useNavigate(); - - const [open, setOpen] = useState(false); - const [selected, setSelected] = useState(null); - - const [anchorEl, setAnchorEl] = useState(null); - - const handleClick = (event) => { - setAnchorEl(null); - setSelectedLevel(level); - if (drawerOpen) { - setOpen(!open); - setSelected(!selected ? menu.id : null); - setSelectedItems(!selected ? menu.id : ''); - if (menu.url) navigation(`${menu.url}`); - } else { - setAnchorEl(event?.currentTarget); - } - }; - - const handlerIconLink = () => { - if (!drawerOpen) { - if (menu.url) navigation(`${menu.url}`); - setSelected(menu.id); - } - }; - - const handleHover = (event) => { - setAnchorEl(event?.currentTarget); - if (!drawerOpen) { - setSelected(menu.id); - } - }; - - const miniMenuOpened = Boolean(anchorEl); - - const handleClose = () => { - setOpen(false); - if (!miniMenuOpened) { - if (!menu.url) { - setSelected(null); - } - } - setAnchorEl(null); - }; - - useMemo(() => { - if (selected === selectedItems) { - if (level === 1) { - setOpen(true); - } - } else { - if (level === selectedLevel) { - setOpen(false); - if (!miniMenuOpened && !drawerOpen && !selected) { - setSelected(null); - } - if (drawerOpen) { - setSelected(null); - } - } - } - }, [selectedItems, level, selected, miniMenuOpened, drawerOpen, selectedLevel]); - - const { pathname } = useLocation(); - - useEffect(() => { - if (pathname === menu.url) { - setSelected(menu.id); - } - // eslint-disable-next-line - }, [pathname]); - - const checkOpenForParent = (child, id) => { - child.forEach((item) => { - if (item.url === pathname) { - setOpen(true); - setSelected(id); - } - }); - }; - - useEffect(() => { - setOpen(false); - if (!miniMenuOpened) { - setSelected(null); - } - if (miniMenuOpened) setAnchorEl(null); - if (menu.children) { - menu.children.forEach((item) => { - if (item.children?.length) { - checkOpenForParent(item.children, menu.id); - } - if (pathname && pathname.includes('product-details')) { - if (item.url && item.url.includes('product-details')) { - setSelected(menu.id); - setOpen(true); - } - } - if (item.url === pathname) { - setSelected(menu.id); - setOpen(true); - } - }); - } - - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [pathname, menu.children]); - - useEffect(() => { - if (menu.url === pathname) { - dispatch(activeItem({ openItem: [menu.id] })); - setSelected(menu.id); - setAnchorEl(null); - setOpen(true); - } - }, [pathname, menu]); - - const navCollapse = menu.children?.map((item) => { - switch (item.type) { - case 'collapse': - return ( - - ); - case 'item': - return ; - default: - return ( - - Fix - Collapse or Item - - ); - } - }); - - const isSelected = selected === menu.id; - const borderIcon = level === 1 ? : false; - const Icon = menu.icon; - const menuIcon = menu.icon ? : borderIcon; - // const textColor = theme.palette.mode === ThemeMode.DARK ? 'grey.400' : 'text.primary'; - // const iconSelectedColor = theme.palette.mode === ThemeMode.DARK && drawerOpen ? theme.palette.text.primary : theme.palette.primary.main; - const popperId = miniMenuOpened ? `collapse-pop-${menu.id}` : undefined; - const FlexBox = { display: 'flex', justifyContent: 'space-between', alignItems: 'center', width: '100%' }; - const textColor = 'white'; - const iconSelectedColor = 'white'; - // const isSelected = true; - - return ( - <> - {menuOrientation === MenuOrientation.VERTICAL || downLG ? ( - <> - - {menuIcon && ( - - {menuIcon} - - )} - {(drawerOpen || (!drawerOpen && level !== 1)) && ( - - {menu.title} - - } - secondary={ - menu.caption && ( - - {menu.caption} - - ) - } - /> - )} - {(drawerOpen || (!drawerOpen && level !== 1)) && - (miniMenuOpened || open ? ( - - ) : ( - - ))} - - {!drawerOpen && ( - - {({ TransitionProps }) => ( - - - - - {navCollapse} - - - - - )} - - )} - - {drawerOpen && ( - - {navCollapse} - - )} - - ) : ( - <> - - - {menuIcon && ( - - {menuIcon} - - )} - {!menuIcon && level !== 1 && ( - - - - )} - - {menu.title} - - } - /> - {miniMenuOpened ? : } - - - {anchorEl && ( - - {({ TransitionProps }) => ( - - - - - {navCollapse} - - - - - )} - - )} - - - )} - - ); -}; - -NavCollapse.propTypes = { - menu: PropTypes.object, - level: PropTypes.number, - parentId: PropTypes.string, - setSelectedItems: PropTypes.func, - selectedItems: PropTypes.string, - setSelectedLevel: PropTypes.func, - selectedLevel: PropTypes.number -}; - -export default NavCollapse; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavGroup.js b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavGroup.js deleted file mode 100644 index 7017fe3..0000000 --- a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavGroup.js +++ /dev/null @@ -1,343 +0,0 @@ -import PropTypes from 'prop-types'; -import { Fragment, useEffect, useState } from 'react'; -import { useLocation } from 'react-router'; - -// material-ui -import { styled, useTheme } from '@mui/material/styles'; -import { - Box, - ClickAwayListener, - List, - ListItemButton, - ListItemIcon, - ListItemText, - Paper, - Popper, - Typography, - useMediaQuery -} from '@mui/material'; - -// third-party -import { FormattedMessage } from 'react-intl'; - -// project import -import NavItem from './NavItem'; -import NavCollapse from './NavCollapse'; -import SimpleBar from 'components/third-party/SimpleBar'; -import Transitions from 'components/@extended/Transitions'; - -import { MenuOrientation } from 'config'; -import useConfig from 'hooks/useConfig'; -import { dispatch, useSelector } from 'store'; -import { activeID } from 'store/reducers/menu'; - -// assets -import { DownOutlined, RightOutlined } from '@ant-design/icons'; - -// ==============================|| NAVIGATION - LIST GROUP ||============================== // - -const PopperStyled = styled(Popper)(({ theme }) => ({ - overflow: 'visible', - zIndex: 1202, - minWidth: 180, - '&:before': { - content: '""', - display: 'block', - position: 'absolute', - top: 5, - left: 32, - width: 12, - height: 12, - transform: 'translateY(-50%) rotate(45deg)', - zIndex: 120, - borderWidth: '6px', - borderStyle: 'solid', - borderColor: `${theme.palette.background.paper} transparent transparent ${theme.palette.background.paper}` - } -})); - -const NavGroup = ({ item, lastItem, remItems, lastItemId, setSelectedItems, selectedItems, setSelectedLevel, selectedLevel }) => { - const theme = useTheme(); - const { pathname } = useLocation(); - - const { menuOrientation } = useConfig(); - const menu = useSelector((state) => state.menu); - const { drawerOpen, selectedID } = menu; - - const downLG = useMediaQuery(theme.breakpoints.down('lg')); - - const [anchorEl, setAnchorEl] = useState(null); - const [currentItem, setCurrentItem] = useState(item); - - const openMini = Boolean(anchorEl); - - useEffect(() => { - if (lastItem) { - if (item.id === lastItemId) { - const localItem = { ...item }; - const elements = remItems.map((ele) => ele.elements); - localItem.children = elements.flat(1); - setCurrentItem(localItem); - } else { - setCurrentItem(item); - } - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [item, lastItem, downLG]); - - const checkOpenForParent = (child, id) => { - child.forEach((ele) => { - if (ele.children?.length) { - checkOpenForParent(ele.children, currentItem.id); - } - if (ele.url === pathname) { - dispatch(activeID(id)); - } - }); - }; - const checkSelectedOnload = (data) => { - const childrens = data.children ? data.children : []; - childrens.forEach((itemCheck) => { - if (itemCheck.children?.length) { - checkOpenForParent(itemCheck.children, currentItem.id); - } - if (itemCheck.url === pathname) { - dispatch(activeID(currentItem.id)); - } - }); - }; - - useEffect(() => { - checkSelectedOnload(currentItem); - if (openMini) setAnchorEl(null); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [pathname, currentItem]); - - const handleClick = (event) => { - if (!openMini) { - setAnchorEl(event?.currentTarget); - } - }; - - const handleClose = () => { - setAnchorEl(null); - }; - - const Icon = currentItem?.icon; - const itemIcon = currentItem?.icon ? ( - - ) : null; - - const navCollapse = item.children?.map((menuItem) => { - switch (menuItem.type) { - case 'collapse': - return ( - - ); - case 'item': - return ; - default: - } - }); - - const moreItems = remItems.map((itemRem, i) => ( - - {itemRem.title && ( - - {itemRem.title} - - )} - {itemRem?.elements?.map((menu) => { - switch (menu.type) { - case 'collapse': - return ( - - ); - case 'item': - return ; - default: - return ( - - Menu Items Error - - ); - } - })} - - )); - - // menu list collapse & items - const items = currentItem.children?.map((menu) => { - switch (menu.type) { - case 'collapse': - return ( - - ); - case 'item': - return ; - default: - return ( - - Menu Items Error - - ); - } - }); - - const popperId = openMini ? `group-pop-${item.id}` : undefined; - - return ( - <> - {menuOrientation === MenuOrientation.VERTICAL || downLG ? ( - - - {item.title} - - {item.caption && ( - - {item.caption} - - )} - - ) - } - sx={{ mt: drawerOpen && item.title ? 1.5 : 0, py: 0, zIndex: 0 }} - > - {navCollapse} - - ) : ( - - - {itemIcon && ( - - {currentItem.id === lastItemId ? : itemIcon} - - )} - - {currentItem.id === lastItemId ? : currentItem.title} - - } - /> - {openMini ? ( - - ) : ( - - )} - {anchorEl && ( - - {({ TransitionProps }) => ( - - - - - {currentItem.id !== lastItemId ? items : moreItems} - - - - - )} - - )} - - - )} - - ); -}; - -NavGroup.propTypes = { - item: PropTypes.object, - lastItem: PropTypes.number, - remItems: PropTypes.array, - lastItemId: PropTypes.string, - setSelectedItems: PropTypes.func, - selectedItems: PropTypes.string, - setSelectedLevel: PropTypes.func, - selectedLevel: PropTypes.number -}; - -export default NavGroup; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavItem.js b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavItem.js deleted file mode 100644 index 61072d3..0000000 --- a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavItem.js +++ /dev/null @@ -1,282 +0,0 @@ -import PropTypes from 'prop-types'; -import { forwardRef, useEffect } from 'react'; -import { Link } from 'react-router-dom'; -import { useDispatch, useSelector } from 'react-redux'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { Avatar, Chip, ListItemButton, ListItemIcon, ListItemText, Typography, useMediaQuery } from '@mui/material'; - -// project import -import Dot from 'components/@extended/Dot'; - -import { MenuOrientation, ThemeMode } from 'config'; -import useConfig from 'hooks/useConfig'; -import { activeItem, openDrawer, setSelectedMenu } from 'store/reducers/menu'; - -// ==============================|| NAVIGATION - LIST ITEM ||============================== // - -const NavItem = ({ item, level }) => { - const theme = useTheme(); - const dispatch = useDispatch(); - - const { menuOrientation } = useConfig(); - const { drawerOpen, openItem } = useSelector((state) => state.menu); - - const downLG = useMediaQuery(theme.breakpoints.down('lg')); - - let itemTarget = '_self'; - if (item.target) { - itemTarget = '_blank'; - } - - let listItemProps = { component: forwardRef((props, ref) => ) }; - if (item?.external) { - listItemProps = { component: 'a', href: item.url, target: itemTarget }; - } - - const Icon = item.icon; - - const isSelected = openItem.findIndex((id) => id === item.id) > -1; - - const itemIcon = item.icon ? ( - - ) : ( - false - ); - - // const { pathname } = useLocation(); - const pathname = document.location.pathname; - - // active menu item on page load - useEffect(() => { - if (pathname && pathname.includes('product-details')) { - if (item.url && item.url.includes('product-details')) { - dispatch(activeItem({ openItem: [item.id] })); - } - } - - if (pathname && pathname.includes('kanban')) { - if (item.url && item.url.includes('kanban')) { - dispatch(activeItem({ openItem: [item.id] })); - } - } - - if (pathname.includes(item.url)) { - dispatch(activeItem({ openItem: [item.id] })); - } - - // eslint-disable-next-line - }, [pathname]); - - useEffect(() => { - dispatch(setSelectedMenu(pathname)); - }, [pathname]); - - const textColor = theme.palette.mode === ThemeMode.DARK ? 'grey.400' : '#fff'; - const iconSelectedColor = theme.palette.mode === ThemeMode.DARK && drawerOpen ? 'text.primary' : 'primary.main'; - - return ( - <> - {menuOrientation === MenuOrientation.VERTICAL || downLG ? ( - { - // dispatch(setSelectedMenu(item)); - }} - sx={{ - zIndex: 1201, - pl: drawerOpen ? `${level * 28}px` : 1.5, - py: !drawerOpen && level === 1 ? 1.25 : 1, - ...(drawerOpen && { - '&:hover': { - bgcolor: '#7b1fa2' - }, - '&.Mui-selected': { - bgcolor: theme.palette.mode === ThemeMode.DARK ? 'divider' : 'primary.lighter', - borderRight: `2px solid ${theme.palette.primary.main}`, - color: iconSelectedColor, - '&:hover': { - color: iconSelectedColor, - bgcolor: theme.palette.mode === ThemeMode.DARK ? 'divider' : 'primary.lighter' - } - } - }), - ...(!drawerOpen && { - bgcolor: '#662582', - '&:hover': { - bgcolor: '#662582' - }, - '&.Mui-selected': { - '&:hover': { - bgcolor: 'transparent' - }, - bgcolor: 'transparent' - } - }) - }} - {...(downLG && { - onClick: () => { - dispatch(openDrawer(false)); - } - })} - > - {itemIcon && ( - - {itemIcon} - - )} - {(drawerOpen || (!drawerOpen && level !== 1)) && ( - - {item.title} - - } - /> - )} - {(drawerOpen || (!drawerOpen && level !== 1)) && item.chip && ( - {item.chip.avatar}} - /> - )} - - ) : ( - - {itemIcon && ( - - {itemIcon} - - )} - - {!itemIcon && ( - - - - )} - - {item.title} - - } - /> - {(drawerOpen || (!drawerOpen && level !== 1)) && item.chip && ( - {item.chip.avatar}} - /> - )} - - )} - - ); -}; - -NavItem.propTypes = { - item: PropTypes.object, - level: PropTypes.number -}; - -export default NavItem; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/index.js b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/index.js deleted file mode 100644 index 23a4afc..0000000 --- a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/index.js +++ /dev/null @@ -1,90 +0,0 @@ -import { useLayoutEffect, useState } from 'react'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { Box, Typography, useMediaQuery } from '@mui/material'; - -import { HORIZONTAL_MAX_ITEM, MenuOrientation } from 'config'; -import { useSelector } from 'store'; -import useConfig from 'hooks/useConfig'; - -// project import -import NavGroup from './NavGroup'; -import menuItem from 'menu-items'; - -// ==============================|| DRAWER CONTENT - NAVIGATION ||============================== // - -const Navigation = () => { - const theme = useTheme(); - - const downLG = useMediaQuery(theme.breakpoints.down('lg')); - - const { menuOrientation } = useConfig(); - const { drawerOpen } = useSelector((state) => state.menu); - const [selectedItems, setSelectedItems] = useState(''); - const [selectedLevel, setSelectedLevel] = useState(0); - const [menuItems, setMenuItems] = useState({ items: [] }); - - useLayoutEffect(() => { - setMenuItems(menuItem); - // eslint-disable-next-line - }, [menuItem]); - - const isHorizontal = menuOrientation === MenuOrientation.HORIZONTAL && !downLG; - - const lastItem = isHorizontal ? HORIZONTAL_MAX_ITEM : null; - let lastItemIndex = menuItems.items.length - 1; - let remItems = []; - let lastItemId; - - // first it checks menu item is more than giving HORIZONTAL_MAX_ITEM after that get lastItemid by giving horizontal max - // item and it sets horizontal menu by giving horizontal max item lastly slice menuItem from array and set into remItems - - if (lastItem && lastItem < menuItems.items.length) { - lastItemId = menuItems.items[lastItem - 1].id; - lastItemIndex = lastItem - 1; - remItems = menuItems.items.slice(lastItem - 1, menuItems.items.length).map((item) => ({ - title: item.title, - elements: item.children, - icon: item.icon - })); - } - - const navGroups = menuItems.items.slice(0, lastItemIndex + 1).map((item) => { - switch (item.type) { - case 'group': - return ( - - ); - default: - return ( - - Fix - Navigation Group - - ); - } - }); - return ( - ul:first-of-type': { mt: 0 }, - display: isHorizontal ? { xs: 'block', lg: 'flex' } : 'block' - }} - > - {navGroups} - - ); -}; - -export default Navigation; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/index.js b/src/layout/MainLayout/Drawer/DrawerContent/index.js deleted file mode 100644 index a67ce82..0000000 --- a/src/layout/MainLayout/Drawer/DrawerContent/index.js +++ /dev/null @@ -1,35 +0,0 @@ -// material-ui -import { useMediaQuery, useTheme } from '@mui/material'; - -// project import -import NavCard from './NavCard'; -import Navigation from './Navigation'; -import SimpleBar from 'components/third-party/SimpleBar'; -import { useSelector } from 'store'; - -// ==============================|| DRAWER CONTENT ||============================== // - -const DrawerContent = () => { - const theme = useTheme(); - const matchDownMD = useMediaQuery(theme.breakpoints.down('lg')); - - const menu = useSelector((state) => state.menu); - const { drawerOpen } = menu; - - return ( - - - {/* {drawerOpen && !matchDownMD && } */} - - ); -}; - -export default DrawerContent; diff --git a/src/layout/MainLayout/Drawer/DrawerHeader/DrawerHeaderStyled.js b/src/layout/MainLayout/Drawer/DrawerHeader/DrawerHeaderStyled.js deleted file mode 100644 index 2f8a1ff..0000000 --- a/src/layout/MainLayout/Drawer/DrawerHeader/DrawerHeaderStyled.js +++ /dev/null @@ -1,22 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { styled } from '@mui/material/styles'; -import { Box } from '@mui/material'; - -// ==============================|| DRAWER HEADER - STYLED ||============================== // - -const DrawerHeaderStyled = styled(Box, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => ({ - ...theme.mixins.toolbar, - display: 'flex', - alignItems: 'center', - justifyContent: open ? 'flex-start' : 'center', - paddingLeft: theme.spacing(open ? 3 : 0) -})); - -DrawerHeaderStyled.propTypes = { - theme: PropTypes.object, - open: PropTypes.bool -}; - -export default DrawerHeaderStyled; diff --git a/src/layout/MainLayout/Drawer/DrawerHeader/index.js b/src/layout/MainLayout/Drawer/DrawerHeader/index.js deleted file mode 100644 index 5f5a2c7..0000000 --- a/src/layout/MainLayout/Drawer/DrawerHeader/index.js +++ /dev/null @@ -1,57 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { useMediaQuery } from '@mui/material'; - -// project import -import DrawerHeaderStyled from './DrawerHeaderStyled'; -import Logo from 'components/logo'; - -import { MenuOrientation } from 'config'; -import useConfig from 'hooks/useConfig'; - -import logo from 'assets/images/logo-nearle9.png'; -import logo1 from 'assets/images/logo-sm1.png'; -// ==============================|| DRAWER HEADER ||============================== // - -const DrawerHeader = ({ open }) => { - const theme = useTheme(); - const downLG = useMediaQuery(theme.breakpoints.down('lg')); - - const { menuOrientation } = useConfig(); - const isHorizontal = menuOrientation === MenuOrientation.HORIZONTAL && !downLG; - - return ( - - {/* */} - - {open && ( - logo - )} - {!open && logo} - - ); -}; - -DrawerHeader.propTypes = { - open: PropTypes.bool -}; - -export default DrawerHeader; diff --git a/src/layout/MainLayout/Drawer/HorizontalBar.js b/src/layout/MainLayout/Drawer/HorizontalBar.js deleted file mode 100644 index 5096d22..0000000 --- a/src/layout/MainLayout/Drawer/HorizontalBar.js +++ /dev/null @@ -1,62 +0,0 @@ -import React from 'react'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { AppBar, Box, Container, useScrollTrigger } from '@mui/material'; - -// project imports -import Navigation from './DrawerContent/Navigation'; -import useConfig from 'hooks/useConfig'; - -// ==============================|| HORIZONTAL MENU LIST ||============================== // - -function ElevationScroll({ children, window }) { - const theme = useTheme(); - // Note that you normally won't need to set the window ref as useScrollTrigger - // will default to window. - // This is only being set here because the demo is in an iframe. - const trigger = useScrollTrigger({ - disableHysteresis: true, - threshold: 0, - target: window - }); - - theme.shadows[4] = theme.customShadows.z1; - - return React.cloneElement(children, { - elevation: trigger ? 4 : 0 - }); -} - -// ==============================|| HORIZONTAL MENU LIST ||============================== // - -const CustomAppBar = () => { - const theme = useTheme(); - const { container } = useConfig(); - - return ( - - - - - - - - - - ); -}; - -export default CustomAppBar; diff --git a/src/layout/MainLayout/Drawer/MiniDrawerStyled.js b/src/layout/MainLayout/Drawer/MiniDrawerStyled.js deleted file mode 100644 index ec2de91..0000000 --- a/src/layout/MainLayout/Drawer/MiniDrawerStyled.js +++ /dev/null @@ -1,51 +0,0 @@ -// material-ui -import { styled } from '@mui/material/styles'; -import Drawer from '@mui/material/Drawer'; - -// project import -import { DRAWER_WIDTH, ThemeMode } from 'config'; - -const openedMixin = (theme) => ({ - width: DRAWER_WIDTH, - // borderRight: `1px solid ${theme.palette.divider}`, - borderRight: 'none', - transition: theme.transitions.create('width', { - easing: theme.transitions.easing.sharp, - duration: theme.transitions.duration.enteringScreen - }), - overflowX: 'hidden', - boxShadow: theme.palette.mode === ThemeMode.DARK ? theme.customShadows.z1 : 'none', - backgroundColor:'#662582', -}); - -const closedMixin = (theme) => ({ - transition: theme.transitions.create('width', { - easing: theme.transitions.easing.sharp, - duration: theme.transitions.duration.leavingScreen - }), - // overflowX: 'hidden', - width: theme.spacing(7.5), - borderRight: 'none', - boxShadow: theme.customShadows.z1, - backgroundColor:'#662582', -}); - -// ==============================|| DRAWER - MINI STYLED ||============================== // - -const MiniDrawerStyled = styled(Drawer, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => ({ - width: DRAWER_WIDTH, - flexShrink: 0, - whiteSpace: 'nowrap', - boxSizing: 'border-box', - - ...(open && { - ...openedMixin(theme), - '& .MuiDrawer-paper': openedMixin(theme) - }), - ...(!open && { - ...closedMixin(theme), - '& .MuiDrawer-paper': closedMixin(theme) - }) -})); - -export default MiniDrawerStyled; diff --git a/src/layout/MainLayout/Drawer/index.js b/src/layout/MainLayout/Drawer/index.js deleted file mode 100644 index 18e1d55..0000000 --- a/src/layout/MainLayout/Drawer/index.js +++ /dev/null @@ -1,74 +0,0 @@ -import PropTypes from 'prop-types'; -import { useMemo } from 'react'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { Box, Drawer, useMediaQuery } from '@mui/material'; - -// project import -import DrawerHeader from './DrawerHeader'; -import DrawerContent from './DrawerContent'; -import MiniDrawerStyled from './MiniDrawerStyled'; - -import { DRAWER_WIDTH } from 'config'; -import { dispatch, useSelector } from 'store'; -import { openDrawer } from 'store/reducers/menu'; - -// ==============================|| MAIN LAYOUT - DRAWER ||============================== // - -const MainDrawer = ({ window }) => { - const theme = useTheme(); - const matchDownMD = useMediaQuery(theme.breakpoints.down('lg')); - - const menu = useSelector((state) => state.menu); - const { drawerOpen } = menu; - - // responsive drawer container - const container = window !== undefined ? () => window().document.body : undefined; - - // header content - const drawerContent = useMemo(() => , []); - const drawerHeader = useMemo(() => , [drawerOpen]); - - return ( - - {!matchDownMD ? ( - - {drawerHeader} - {drawerContent} - - ) : ( - dispatch(openDrawer(!drawerOpen))} - ModalProps={{ keepMounted: true }} - sx={{ - display: { xs: 'block', lg: 'none' }, - '& .MuiDrawer-paper': { - boxSizing: 'border-box', - width: DRAWER_WIDTH, - borderRight: `1px solid ${theme.palette.divider}`, - backgroundImage: 'none', - boxShadow: 'inherit', - bgcolor:'#662582' - } - }} - > - {drawerHeader} - {drawerContent} - - )} - - ); -}; - -MainDrawer.propTypes = { - window: PropTypes.object -}; - -export default MainDrawer; diff --git a/src/layout/MainLayout/Footer.js b/src/layout/MainLayout/Footer.js index 722cd7e..d390201 100644 --- a/src/layout/MainLayout/Footer.js +++ b/src/layout/MainLayout/Footer.js @@ -1,23 +1,22 @@ -import { Link as RouterLink } from 'react-router-dom'; - -// material-ui -import { Link, Stack, Typography } from '@mui/material'; +import { HStack } from '@astryxdesign/core/HStack'; +import { Text } from '@astryxdesign/core/Text'; +import { Link } from '@astryxdesign/core/Link'; const Footer = () => ( - - © All rights reserved - - + + © All rights reserved + + About us - + Privacy - + Terms - - + + ); export default Footer; diff --git a/src/layout/MainLayout/Header/AppBarStyled.js b/src/layout/MainLayout/Header/AppBarStyled.js deleted file mode 100644 index f10b097..0000000 --- a/src/layout/MainLayout/Header/AppBarStyled.js +++ /dev/null @@ -1,35 +0,0 @@ -import PropTypes from 'prop-types'; - -// material-ui -import { styled } from '@mui/material/styles'; -import AppBar from '@mui/material/AppBar'; - -// project import -import { DRAWER_WIDTH } from 'config'; - -// ==============================|| HEADER - APP BAR STYLED ||============================== // - -const AppBarStyled = styled(AppBar, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => ({ - zIndex: theme.zIndex.drawer + 1, - transition: theme.transitions.create(['width', 'margin'], { - easing: theme.transitions.easing.sharp, - duration: theme.transitions.duration.leavingScreen - }), - ...(!open && { - width: `calc(100% - ${theme.spacing(7.5)})` - }), - ...(open && { - marginLeft: DRAWER_WIDTH, - width: `calc(100% - ${DRAWER_WIDTH}px)`, - transition: theme.transitions.create(['width', 'margin'], { - easing: theme.transitions.easing.sharp, - duration: theme.transitions.duration.enteringScreen - }) - }) -})); - -AppBarStyled.propTypes = { - open: PropTypes.bool -}; - -export default AppBarStyled; diff --git a/src/layout/MainLayout/Header/HeaderContent/MegaMenuSection.js b/src/layout/MainLayout/Header/HeaderContent/MegaMenuSection.js deleted file mode 100644 index 6614494..0000000 --- a/src/layout/MainLayout/Header/HeaderContent/MegaMenuSection.js +++ /dev/null @@ -1,301 +0,0 @@ -import { useRef, useState } from 'react'; -import { Link } from 'react-router-dom'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { - Button, - Box, - CardMedia, - ClickAwayListener, - Grid, - List, - ListItemButton, - ListItemIcon, - ListItemText, - ListSubheader, - Paper, - Popper, - Stack, - Typography -} from '@mui/material'; - -// project import -import MainCard from 'components/MainCard'; -import Dot from 'components/@extended/Dot'; -import IconButton from 'components/@extended/IconButton'; -import Transitions from 'components/@extended/Transitions'; -import { DRAWER_WIDTH, ThemeMode } from 'config'; - -// assets -import { ArrowRightOutlined, WindowsOutlined } from '@ant-design/icons'; -import backgroundVector from 'assets/images/mega-menu/back.svg'; -import imageChart from 'assets/images/mega-menu/chart.svg'; -import AnimateButton from 'components/@extended/AnimateButton'; - -// ==============================|| HEADER CONTENT - MEGA MENU SECTION ||============================== // - -const MegaMenuSection = () => { - const theme = useTheme(); - - const anchorRef = useRef(null); - const [open, setOpen] = useState(false); - const handleToggle = () => { - setOpen((prevOpen) => !prevOpen); - }; - - const handleClose = (event) => { - if (anchorRef.current && anchorRef.current.contains(event.target)) { - return; - } - setOpen(false); - }; - - const iconBackColorOpen = theme.palette.mode === ThemeMode.DARK ? 'grey.200' : 'grey.300'; - const iconBackColor = theme.palette.mode === ThemeMode.DARK ? 'background.default' : 'grey.100'; - - return ( - - - - - - {({ TransitionProps }) => ( - - - - - - - - - - Explore Components - - - Try our pre made component pages to check how it feels and suits as per your need. - - - - - - - - - - - - - - - - - Authentication - - - } - > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Other Pages - - - } - > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SAAS Pages - - - } - > - - - - - - - - - - - - - - - - - - - - - - - )} - - - ); -}; - -export default MegaMenuSection; diff --git a/src/layout/MainLayout/Header/HeaderContent/Message.js b/src/layout/MainLayout/Header/HeaderContent/Message.js deleted file mode 100644 index 289db22..0000000 --- a/src/layout/MainLayout/Header/HeaderContent/Message.js +++ /dev/null @@ -1,252 +0,0 @@ -import { useRef, useState } from 'react'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { - Avatar, - Box, - ClickAwayListener, - Divider, - List, - ListItemButton, - ListItemAvatar, - ListItemText, - ListItemSecondaryAction, - Paper, - Popper, - Typography, - useMediaQuery -} from '@mui/material'; - -// project import -import MainCard from 'components/MainCard'; -import IconButton from 'components/@extended/IconButton'; -import Transitions from 'components/@extended/Transitions'; -import { ThemeMode } from 'config'; - -// assets -import avatar2 from 'assets/images/users/avatar-2.png'; -import avatar3 from 'assets/images/users/avatar-3.png'; -import avatar4 from 'assets/images/users/avatar-4.png'; -import avatar5 from 'assets/images/users/avatar-5.png'; -import { MailOutlined, CloseOutlined } from '@ant-design/icons'; - -// sx styles -const avatarSX = { - width: 48, - height: 48 -}; - -const actionSX = { - mt: '6px', - ml: 1, - top: 'auto', - right: 'auto', - alignSelf: 'flex-start', - transform: 'none' -}; - -// ==============================|| HEADER CONTENT - MESSAGES ||============================== // - -const Message = () => { - const theme = useTheme(); - const matchesXs = useMediaQuery(theme.breakpoints.down('md')); - - const anchorRef = useRef(null); - const [open, setOpen] = useState(false); - const handleToggle = () => { - setOpen((prevOpen) => !prevOpen); - }; - - const handleClose = (event) => { - if (anchorRef.current && anchorRef.current.contains(event.target)) { - return; - } - setOpen(false); - }; - - const iconBackColorOpen = theme.palette.mode === ThemeMode.DARK ? 'grey.200' : 'grey.300'; - const iconBackColor = theme.palette.mode === ThemeMode.DARK ? 'background.default' : 'grey.100'; - - return ( - - - - - - {({ TransitionProps }) => ( - - - - - - - } - > - - - - - - - It's{' '} - - Cristina danny's - {' '} - birthday today. - - } - secondary="2 min ago" - /> - - - 3:00 AM - - - - - - - - - - - Aida Burg - {' '} - commented your post. - - } - secondary="5 August" - /> - - - 6:00 PM - - - - - - - - - - There was a failure to your setup. - - } - secondary="7 hours ago" - /> - - - 2:45 PM - - - - - - - - - - - Cristina Danny - {' '} - invited to join{' '} - - Meeting. - - - } - secondary="Daily scrum meeting time" - /> - - - 9:10 PM - - - - - - - View All - - } - /> - - - - - - - )} - - - ); -}; - -export default Message; diff --git a/src/layout/MainLayout/Header/HeaderContent/MobileSection.js b/src/layout/MainLayout/Header/HeaderContent/MobileSection.js deleted file mode 100644 index a2f7fc7..0000000 --- a/src/layout/MainLayout/Header/HeaderContent/MobileSection.js +++ /dev/null @@ -1,108 +0,0 @@ -import { useEffect, useRef, useState } from 'react'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { AppBar, Box, ClickAwayListener, Paper, Popper, Toolbar } from '@mui/material'; - -// project import -import Search from './Search'; -import Profile from './Profile'; -import IconButton from 'components/@extended/IconButton'; -import Transitions from 'components/@extended/Transitions'; -import { ThemeMode } from 'config'; - -// assets -import { MoreOutlined } from '@ant-design/icons'; - -// ==============================|| HEADER CONTENT - MOBILE ||============================== // - -const MobileSection = () => { - const theme = useTheme(); - - const [open, setOpen] = useState(false); - const anchorRef = useRef(null); - - const handleToggle = () => { - setOpen((prevOpen) => !prevOpen); - }; - - const handleClose = (event) => { - if (anchorRef.current && anchorRef.current.contains(event.target)) { - return; - } - - setOpen(false); - }; - - const prevOpen = useRef(open); - useEffect(() => { - if (prevOpen.current === true && open === false) { - anchorRef.current.focus(); - } - - prevOpen.current = open; - }, [open]); - - const iconBackColorOpen = theme.palette.mode === ThemeMode.DARK ? 'grey.200' : 'grey.300'; - const iconBackColor = theme.palette.mode === ThemeMode.DARK ? 'background.default' : 'grey.100'; - - return ( - <> - - - - - - - {({ TransitionProps }) => ( - - - - - - {/* */} - - - - - - - )} - - - ); -}; - -export default MobileSection; diff --git a/src/layout/MainLayout/Header/HeaderContent/Notification.js b/src/layout/MainLayout/Header/HeaderContent/Notification.js deleted file mode 100644 index da79bf5..0000000 --- a/src/layout/MainLayout/Header/HeaderContent/Notification.js +++ /dev/null @@ -1,309 +0,0 @@ -import { useRef, useState } from 'react'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { - Avatar, - Badge, - Box, - ClickAwayListener, - Divider, - List, - ListItemButton, - ListItemAvatar, - ListItemText, - ListItemSecondaryAction, - Paper, - Popper, - Tooltip, - Typography, - useMediaQuery -} from '@mui/material'; - -// project import -import MainCard from 'components/MainCard'; -import IconButton from 'components/@extended/IconButton'; -import Transitions from 'components/@extended/Transitions'; -import { ThemeMode } from 'config'; - -// assets -import { BellOutlined, CheckCircleOutlined, GiftOutlined, MessageOutlined, SettingOutlined } from '@ant-design/icons'; - -// sx styles -const avatarSX = { - width: 36, - height: 36, - fontSize: '1rem' -}; - -const actionSX = { - mt: '6px', - ml: 1, - top: 'auto', - right: 'auto', - alignSelf: 'flex-start', - - transform: 'none' -}; - -// ==============================|| HEADER CONTENT - NOTIFICATION ||============================== // - -const Notification = () => { - const theme = useTheme(); - const matchesXs = useMediaQuery(theme.breakpoints.down('md')); - - const anchorRef = useRef(null); - const [read, setRead] = useState(0); - const [open, setOpen] = useState(false); - const handleToggle = () => { - setOpen((prevOpen) => !prevOpen); - }; - - const handleClose = (event) => { - if (anchorRef.current && anchorRef.current.contains(event.target)) { - return; - } - setOpen(false); - }; - - const iconBackColorOpen = theme.palette.mode === ThemeMode.DARK ? 'grey.200' : 'grey.300'; - const iconBackColor = theme.palette.mode === ThemeMode.DARK ? 'background.default' : 'grey.100'; - - return ( - - - - - - - - - - {({ TransitionProps }) => ( - - - - - {read > 0 && ( - - setRead(0)}> - - - - )} - - } - > - - 0}> - - - - - - - It's{' '} - - Cristina danny's - {' '} - birthday today. - - } - secondary="2 min ago" - /> - - - 3:00 AM - - - - - 0}> - - - - - - - - Aida Burg - {' '} - commented your post. - - } - secondary="5 August" - /> - - - 6:00 PM - - - - - - - - - - - - Your Profile is Complete   - - 60% - {' '} - - } - secondary="7 hours ago" - /> - - - 2:45 PM - - - - - - - - C - - - - - Cristina Danny - {' '} - invited to join{' '} - - Meeting. - - - } - secondary="Daily scrum meeting time" - /> - - - 9:10 PM - - - - - - - View All - - } - /> - - - - - - - )} - - - ); -}; - -export default Notification; diff --git a/src/layout/MainLayout/Header/HeaderContent/Profile/ProfileTab.js b/src/layout/MainLayout/Header/HeaderContent/Profile/ProfileTab.js deleted file mode 100644 index 82af071..0000000 --- a/src/layout/MainLayout/Header/HeaderContent/Profile/ProfileTab.js +++ /dev/null @@ -1,46 +0,0 @@ -import PropTypes from 'prop-types'; -import { useState } from 'react'; - -// material-ui -import { List, ListItemButton, ListItemIcon, ListItemText } from '@mui/material'; - -// assets -import { LogoutOutlined, UserOutlined } from '@ant-design/icons'; -import { useNavigate } from 'react-router'; - -// ==============================|| HEADER PROFILE - PROFILE TAB ||============================== // - -const ProfileTab = ({ handleLogout }) => { - const [selectedIndex, setSelectedIndex] = useState(null); - const navigate = useNavigate(); - const handleListItemClick = (event, index) => { - setSelectedIndex(index); - if (index == 0) { - navigate('/accountsettings'); - } - }; - - return ( - - handleListItemClick(event, 0)}> - - - - - - - - - - - - - - ); -}; - -ProfileTab.propTypes = { - handleLogout: PropTypes.func -}; - -export default ProfileTab; diff --git a/src/layout/MainLayout/Header/HeaderContent/Profile/SettingTab.js b/src/layout/MainLayout/Header/HeaderContent/Profile/SettingTab.js deleted file mode 100644 index a656563..0000000 --- a/src/layout/MainLayout/Header/HeaderContent/Profile/SettingTab.js +++ /dev/null @@ -1,53 +0,0 @@ -import { useState } from 'react'; - -// material-ui -import { List, ListItemButton, ListItemIcon, ListItemText } from '@mui/material'; - -// assets -import { CommentOutlined, LockOutlined, QuestionCircleOutlined, UserOutlined, UnorderedListOutlined } from '@ant-design/icons'; - -// ==============================|| HEADER PROFILE - SETTING TAB ||============================== // - -const SettingTab = () => { - const [selectedIndex, setSelectedIndex] = useState(0); - const handleListItemClick = (event, index) => { - setSelectedIndex(index); - }; - - return ( - - handleListItemClick(event, 0)}> - - - - - - handleListItemClick(event, 1)}> - - - - - - handleListItemClick(event, 2)}> - - - - - - handleListItemClick(event, 3)}> - - - - - - handleListItemClick(event, 4)}> - - - - - - - ); -}; - -export default SettingTab; diff --git a/src/layout/MainLayout/Header/HeaderContent/Profile/index.js b/src/layout/MainLayout/Header/HeaderContent/Profile/index.js deleted file mode 100644 index 39393b0..0000000 --- a/src/layout/MainLayout/Header/HeaderContent/Profile/index.js +++ /dev/null @@ -1,237 +0,0 @@ -import PropTypes from 'prop-types'; -import { useRef, useState } from 'react'; -import { useNavigate } from 'react-router'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { Box, ButtonBase, CardContent, ClickAwayListener, Grid, Paper, Popper, Stack, Tab, Tabs, Tooltip, Typography } from '@mui/material'; - -// project import -import ProfileTab from './ProfileTab'; -import SettingTab from './SettingTab'; -import Avatar from 'components/@extended/Avatar'; -import MainCard from 'components/MainCard'; -import Transitions from 'components/@extended/Transitions'; -import IconButton from 'components/@extended/IconButton'; - -import { ThemeMode } from 'config'; -// import useAuth from 'hooks/useAuth'; - -// assets -import avatar1 from 'assets/images/users/avatar-1.png'; -import { LogoutOutlined, SettingOutlined, UserOutlined } from '@ant-design/icons'; - -// tab panel wrapper -function TabPanel({ children, value, index, ...other }) { - return ( - - ); -} - -TabPanel.propTypes = { - children: PropTypes.node, - index: PropTypes.any.isRequired, - value: PropTypes.any.isRequired -}; - -function a11yProps(index) { - return { - id: `profile-tab-${index}`, - 'aria-controls': `profile-tabpanel-${index}` - }; -} - -// ==============================|| HEADER CONTENT - PROFILE ||============================== // - -const Profile = () => { - const theme = useTheme(); - const navigate = useNavigate(); - - // const { logout, user } = useAuth(); - const handleLogout = async () => { - try { - // await logout(); - - // navigate(`/login`, { - // state: { - // from: '' - // } - // }); - localStorage.removeItem('firstname'); - localStorage.removeItem('appuserid'); - localStorage.removeItem('authname'); - localStorage.removeItem('roleid'); - localStorage.removeItem('tenantid'); - localStorage.removeItem('sessionStartTime'); - localStorage.clear(); - - -navigate('/login') - - } catch (err) { - console.error(err); - } - }; - - const anchorRef = useRef(null); - const [open, setOpen] = useState(false); - const handleToggle = () => { - setOpen((prevOpen) => !prevOpen); - }; - - const handleClose = (event) => { - if (anchorRef.current && anchorRef.current.contains(event.target)) { - return; - } - setOpen(false); - }; - - const [value, setValue] = useState(0); - - const handleChange = (event, newValue) => { - setValue(newValue); - }; - - const iconBackColorOpen = theme.palette.mode === ThemeMode.DARK ? 'grey.200' : 'grey.300'; - - return ( - - - - - - - {/* {user?.name} */} - - - - - - {({ TransitionProps }) => ( - - - - - - - - - - - - {/* {user?.name} */} - {localStorage.getItem('fullname') || ''} - - - {/* UI/UX Designer */} - - - - - - - - - onClick={()=>{ - handleLogout() - }}> - - - - - - - - - - - } - label="Profile" - {...a11yProps(0)} - /> - {/* } - label="Setting" - {...a11yProps(1)} - /> */} - - - - - - - - - - - - - )} - - - ); -}; - -export default Profile; diff --git a/src/layout/MainLayout/Header/HeaderContent/Search.js b/src/layout/MainLayout/Header/HeaderContent/Search.js deleted file mode 100644 index 4124c7e..0000000 --- a/src/layout/MainLayout/Header/HeaderContent/Search.js +++ /dev/null @@ -1,30 +0,0 @@ -// material-ui -import { Box, FormControl, InputAdornment, OutlinedInput } from '@mui/material'; - -// assets -import { SearchOutlined } from '@ant-design/icons'; - -// ==============================|| HEADER CONTENT - SEARCH ||============================== // - -const Search = () => ( - - - - - - } - aria-describedby="header-search-text" - inputProps={{ - 'aria-label': 'weight' - }} - placeholder="Ctrl + K" - /> - - -); - -export default Search; diff --git a/src/layout/MainLayout/Header/HeaderContent/index.js b/src/layout/MainLayout/Header/HeaderContent/index.js deleted file mode 100644 index 3404b0f..0000000 --- a/src/layout/MainLayout/Header/HeaderContent/index.js +++ /dev/null @@ -1,290 +0,0 @@ -import { useMemo, useState } from 'react'; - -// material-ui -import { - Box, - useMediaQuery, - Stack, - Tooltip, - IconButton, - Popper, - ClickAwayListener, - List, - ListItemButton, - ListItemText, - Grid, - ListItemIcon, - Typography -} from '@mui/material'; - -import Transitions from 'components/@extended/Transitions'; - -// project import -import Search from './Search'; -import Message from './Message'; -import Profile from './Profile'; -import Notification from './Notification'; -import MobileSection from './MobileSection'; -import MegaMenuSection from './MegaMenuSection'; -import { useNavigate } from 'react-router'; -import { - MailOutlined, - // DashboardOutlined, - UserOutlined, - CustomerServiceOutlined, - WindowsOutlined -} from '@ant-design/icons'; -import { useTheme } from '@mui/material/styles'; -import { TbBoxMultiple1 } from 'react-icons/tb'; -import { GrMultiple } from 'react-icons/gr'; -import { FaUserPen } from 'react-icons/fa6'; -import { TbUserEdit } from 'react-icons/tb'; - -// ==============================|| HEADER - CONTENT ||============================== // - -const HeaderContent = () => { - const matchesXs = useMediaQuery((theme) => theme.breakpoints.down('md')); - - // eslint-disable-next-line react-hooks/exhaustive-deps - const megaMenu = useMemo(() => , []); - - const [open, setOpen] = useState(false); - const [anchorEl, setAnchorEl] = useState(null); - const theme = useTheme(); - // eslint-disable-next-line react-hooks/exhaustive-deps - // const megaMenu = useMemo(() => , []); - const iconBackColorOpen = 'grey.300'; - const iconBackColor = 'grey.100'; - const navigate = useNavigate(); - - const handleToggle = (e) => { - setOpen(!open); - setAnchorEl(e.currentTarget); - }; - const handleClickAway = () => { - setOpen(false); - }; - - return ( - <> - {/* {!matchesXs && } */} - - {/* {!matchesXs && megaMenu} */} - - {localStorage.getItem('tenantname') || ''} - - {matchesXs && } - - - - - - - - - - {/* */} - - - {/* */} - - { - // console.log(const location = useLocation();) - navigate('nearle/orders/create'); - handleClickAway(); - }} - > - - - - - Create Orders - - } - /> - - { - // console.log(const location = useLocation();) - navigate('nearle/orders/create/grouporders'); - handleClickAway(); - }} - > - - - - - Create Group Orders - - } - /> - - {/* { - navigate('/clients/create') - handleClickAway() - }} > - - - - - Create Client - - - } - /> - */} - { - navigate('nearle/customers'); - handleClickAway(); - }} - > - - - - - Customers - - } - /> - - - {/* - { - navigate('/create_order') - handleClickAway() - }}> - - - - - - - - - { - navigate('/create_client') - handleClickAway() - }}> - - - - - - - - - { - navigate('/create_staff') - handleClickAway() - }}> - - - - - - */} - - - {/* */} - - - - - - {/* */} - - {/* */} - {/* {!matchesXs && } - {matchesXs && } */} - - - - - - - ); -}; - -export default HeaderContent; diff --git a/src/layout/MainLayout/Header/index.js b/src/layout/MainLayout/Header/index.js deleted file mode 100644 index e1cddfb..0000000 --- a/src/layout/MainLayout/Header/index.js +++ /dev/null @@ -1,88 +0,0 @@ -import { useMemo } from 'react'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { AppBar, Toolbar, useMediaQuery } from '@mui/material'; - -// project import -import AppBarStyled from './AppBarStyled'; -import HeaderContent from './HeaderContent'; -import IconButton from 'components/@extended/IconButton'; - -import { MenuOrientation } from 'config'; -import useConfig from 'hooks/useConfig'; -import { dispatch, useSelector } from 'store'; -import { openDrawer } from 'store/reducers/menu'; - -// assets -import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'; - -// ==============================|| MAIN LAYOUT - HEADER ||============================== // - -const Header = () => { - const theme = useTheme(); - const downLG = useMediaQuery(theme.breakpoints.down('lg')); - const { menuOrientation } = useConfig(); - - const menu = useSelector((state) => state.menu); - const { drawerOpen } = menu; - - const isHorizontal = menuOrientation === MenuOrientation.HORIZONTAL && !downLG; - - // header content - const headerContent = useMemo(() => , []); - - // common header - const mainHeader = ( - - {!isHorizontal ? ( - dispatch(openDrawer(!drawerOpen))} - edge="start" - sx={{ - color: '#fff', - bgcolor: 'transparent', - ml: { xs: 0, lg: -2 }, - fontSize: '25px', - ':hover': { - color: '#fff', - bgcolor: 'transparent' - } - }} - > - {!drawerOpen ? : } - - ) : null} - {headerContent} - - ); - - // app-bar params - const appBar = { - position: 'fixed', - color: 'inherit', - elevation: 0, - sx: { - borderBottom: `1px solid ${theme.palette.divider}`, - zIndex: 1200, - width: isHorizontal ? '100%' : drawerOpen ? 'calc(100% - 260px)' : { xs: '100%', lg: 'calc(100% - 60px)' }, - // boxShadow: theme.customShadows.z1 - bgcolor: '#662582' - } - }; - - return ( - <> - {!downLG ? ( - - {mainHeader} - - ) : ( - {mainHeader} - )} - - ); -}; - -export default Header; diff --git a/src/layout/MainLayout/index.js b/src/layout/MainLayout/index.js index 0c6c9f6..7012d60 100644 --- a/src/layout/MainLayout/index.js +++ b/src/layout/MainLayout/index.js @@ -1,67 +1,64 @@ -import { useEffect } from 'react'; +import { useState } from 'react'; import { Outlet } from 'react-router-dom'; -// material-ui -import { useTheme } from '@mui/material/styles'; -import { useMediaQuery, Box, Container, Toolbar } from '@mui/material'; +// Astryx design system — see themes/astryx.js. This replaces the old MUI +// Drawer/Header/HorizontalBar shell; horizontal menu orientation +// (config.menuOrientation) was dropped since it was never exposed as a +// user-facing toggle in this app — see AppSideNav.js. +import { AppShell } from '@astryxdesign/core/AppShell'; +import { Theme } from '@astryxdesign/core/theme'; +import { dailygrubsTheme } from 'themes/astryx'; -// project import -import Drawer from './Drawer'; -import Header from './Header'; -import Footer from './Footer'; -import HorizontalBar from './Drawer/HorizontalBar'; -import Breadcrumbs from 'components/@extended/Breadcrumbs'; - -import { MenuOrientation } from 'config'; -import navigation from 'menu-items'; -import useConfig from 'hooks/useConfig'; -import { dispatch } from 'store'; -import { openDrawer } from 'store/reducers/menu'; +import AppTopNav from './AppTopNav'; +import AppSideNav from './AppSideNav'; // ==============================|| MAIN LAYOUT ||============================== // const MainLayout = () => { - const theme = useTheme(); - // const matchDownXL = useMediaQuery(theme.breakpoints.down('xl')); - const matchDownXL = useMediaQuery(`(max-width: 1440px)`); - - const downLG = useMediaQuery(theme.breakpoints.down('lg')); - - const { container, miniDrawer, menuOrientation } = useConfig(); - - const isHorizontal = menuOrientation === MenuOrientation.HORIZONTAL && !downLG; - - // sidebar should default to closed regardless of screen size - useEffect(() => { - if (!miniDrawer) { - dispatch(openDrawer(false)); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [matchDownXL]); + // Lifted here (rather than left as SideNav's own uncontrolled state) so the + // TopNav logo can track the sidebar's collapse state. Defaults to collapsed + // on every load/reload (not persisted). + const [isSidebarCollapsed, setIsSidebarCollapsed] = useState(true); return ( - -
- {!isHorizontal ? : } - - - - {/* */} + + {/* height="auto" (not "fill"): "fill" scrolls the content area in its + own container, and the app's useInfiniteQuery pattern observes a + sentinel against the window's viewport (IntersectionObserver + root=null), which only fires correctly with normal document-level + scroll. */} + } + sideNav={} + mobileNav={{ breakpoint: 'lg' }} + > +
- {/*
*/} - - - +
+ +
+
); }; diff --git a/src/menu-items/nearle.js b/src/menu-items/nearle.js index be8a356..46cc2be 100644 --- a/src/menu-items/nearle.js +++ b/src/menu-items/nearle.js @@ -4,9 +4,7 @@ import { AiOutlineBarChart } from 'react-icons/ai'; import { AiOutlineDashboard } from 'react-icons/ai'; import { TbListDetails } from 'react-icons/tb'; import { LiaFileInvoiceSolid } from 'react-icons/lia'; -import DirectionsBikeOutlinedIcon from '@mui/icons-material/DirectionsBikeOutlined'; -import RouteOutlinedIcon from '@mui/icons-material/RouteOutlined'; -import MopedOutlinedIcon from '@mui/icons-material/MopedOutlined'; +import { MdDirectionsBike as DirectionsBikeOutlinedIcon, MdRoute as RouteOutlinedIcon, MdMoped as MopedOutlinedIcon } from 'react-icons/md'; // assets import { @@ -25,7 +23,7 @@ import { SettingOutlined } from '@ant-design/icons'; import { Path } from 'leaflet'; -import { LocationOnOutlined } from '@mui/icons-material'; +import { MdLocationOn as LocationOnOutlined } from 'react-icons/md'; // icons const icons = { diff --git a/src/menu-items/other.js b/src/menu-items/other.js deleted file mode 100644 index b783af4..0000000 --- a/src/menu-items/other.js +++ /dev/null @@ -1,155 +0,0 @@ -// third-party -import { FormattedMessage } from 'react-intl'; -import { AiOutlineBarChart } from 'react-icons/ai'; -import { AiOutlineDashboard } from 'react-icons/ai'; -import { TbListDetails } from 'react-icons/tb'; -import { LiaFileInvoiceSolid } from 'react-icons/lia'; -import MopedOutlinedIcon from '@mui/icons-material/MopedOutlined'; - -// assets -import { - BorderOutlined, - BoxPlotOutlined, - ChromeOutlined, - DeploymentUnitOutlined, - GatewayOutlined, - MenuUnfoldOutlined, - QuestionOutlined, - SmileOutlined, - StopOutlined, - DashboardOutlined, - ClockCircleOutlined, - UserOutlined, - SettingOutlined -} from '@ant-design/icons'; - -// icons -const icons = { - ChromeOutlined, - MenuUnfoldOutlined, - BoxPlotOutlined, - StopOutlined, - BorderOutlined, - SmileOutlined, - GatewayOutlined, - QuestionOutlined, - DeploymentUnitOutlined, - DashboardOutlined, - ClockCircleOutlined, - UserOutlined, - SettingOutlined -}; - -// ==============================|| MENU ITEMS - SUPPORT ||============================== // - -const other = { - id: 'other', - title: , - type: 'group', - children: [ - // { - // id: 'dashboard', - // title: , - // type: 'item', - // url: '/dashboard', - // icon: icons.DashboardOutlined - // }, - { - id: 'orders', - title: , - type: 'item', - url: 'nearle/orders', - icon: AiOutlineDashboard - }, - { - id: 'deliveries', - title: , - type: 'item', - url: 'nearle/deliveries', - icon: MopedOutlinedIcon - }, - { - id: 'customers', - title: , - type: 'item', - url: 'nearle/customers', - icon: icons.UserOutlined - }, - { - id: 'reports', - title: , - type: 'collapse', - icon: AiOutlineBarChart, - children: [ - { - id: 'OrderSummary', - title: , - type: 'item', - url: 'reports/ordersummary', - icon: TbListDetails - }, - { - id: 'OrdersDetails', - title: , - type: 'item', - url: 'reports/ordersdetails', - icon: TbListDetails - }, - { - id: 'RiderSummary', - title: , - type: 'item', - url: 'reports/ridersummary', - icon: TbListDetails - }, - { - id: 'RiderLogs', - title: , - type: 'item', - url: 'reports/riderlogs', - icon: TbListDetails - } - ] - }, - { - id: 'invoice', - title: , - type: 'item', - url: '/invoice', - icon: LiaFileInvoiceSolid - } - - // { - // id: 'account', - // title: , - // type: 'item', - // url: '/accountsettings', - // icon: icons.SettingOutlined - // }, - // { - // id: 'documentation', - // title: , - // type: 'item', - // url: 'https://links.codedthemes.com/BQFrl', - // icon: icons.QuestionOutlined, - // external: true, - // target: true, - // chip: { - // label: 'gitbook', - // color: 'secondary', - // size: 'small' - // } - // }, - // { - // id: 'roadmap', - // title: , - // type: 'item', - // url: 'https://links.codedthemes.com/RXnKQ', - // icon: icons.DeploymentUnitOutlined, - // external: true, - // target: true - // } - ] -}; - -export default other; diff --git a/src/pages/auth/check-mail.js b/src/pages/auth/check-mail.js deleted file mode 100644 index cce339d..0000000 --- a/src/pages/auth/check-mail.js +++ /dev/null @@ -1,57 +0,0 @@ -import { Link } from 'react-router-dom'; - -// material-ui -import { useTheme } from '@mui/material/styles'; -import { Box, Button, Grid, Divider, Typography, useMediaQuery } from '@mui/material'; - -// project import -import useAuth from 'hooks/useAuth'; -import AnimateButton from 'components/@extended/AnimateButton'; -import AuthWrapper from 'sections/auth/AuthWrapper'; - -// ================================|| CHECK MAIL ||================================ // - -const CheckMail = () => { - const theme = useTheme(); - const matchDownSM = useMediaQuery(theme.breakpoints.down('sm')); - - const { isLoggedIn } = useAuth(); - - return ( - - - - - Hi, Check Your Mail - - We have sent a password recover instructions to your email. - - - - - - - - - - - Sign up with - - - - - ); -}; - -export default CheckMail; diff --git a/src/pages/auth/code-verification.js b/src/pages/auth/code-verification.js deleted file mode 100644 index 8a8098d..0000000 --- a/src/pages/auth/code-verification.js +++ /dev/null @@ -1,29 +0,0 @@ -// material-ui -import { Grid, Stack, Typography } from '@mui/material'; - -// project import -import AuthWrapper from 'sections/auth/AuthWrapper'; -import AuthCodeVerification from 'sections/auth/auth-forms/AuthCodeVerification'; - -// ================================|| CODE VERIFICATION ||================================ // - -const CodeVerification = () => ( - - - - - Enter Verification Code - We send you on mail. - - - - We`ve send you code on jone. ****@company.com - - - - - - -); - -export default CodeVerification; diff --git a/src/pages/auth/forgot-password.js b/src/pages/auth/forgot-password.js deleted file mode 100644 index 79a8543..0000000 --- a/src/pages/auth/forgot-password.js +++ /dev/null @@ -1,41 +0,0 @@ -import { Link } from 'react-router-dom'; - -// material-ui -import { Grid, Stack, Typography } from '@mui/material'; - -// project import -import useAuth from 'hooks/useAuth'; -import AuthWrapper from 'sections/auth/AuthWrapper'; -import AuthForgotPassword from 'sections/auth/auth-forms/AuthForgotPassword'; - -// ================================|| FORGOT PASSWORD ||================================ // - -const ForgotPassword = () => { - const { isLoggedIn } = useAuth(); - - return ( - - - - - Forgot Password - - Back to Login - - - - - - - - - ); -}; - -export default ForgotPassword; diff --git a/src/pages/auth/login.js b/src/pages/auth/login.js deleted file mode 100644 index 0742fa4..0000000 --- a/src/pages/auth/login.js +++ /dev/null @@ -1,41 +0,0 @@ -import { Link } from 'react-router-dom'; - -// material-ui -import { Grid, Stack, Typography } from '@mui/material'; - -// project import -import useAuth from 'hooks/useAuth'; -import AuthWrapper from 'sections/auth/AuthWrapper'; -import AuthLogin from 'sections/auth/auth-forms/AuthLogin'; - -// ================================|| LOGIN ||================================ // - -const Login = () => { - const { isLoggedIn } = useAuth(); - - return ( - - - - - Login - - Don't have an account? - - - - - - - - - ); -}; - -export default Login; diff --git a/src/pages/auth/register.js b/src/pages/auth/register.js deleted file mode 100644 index c9d0cad..0000000 --- a/src/pages/auth/register.js +++ /dev/null @@ -1,41 +0,0 @@ -import { Link } from 'react-router-dom'; - -// material-ui -import { Grid, Stack, Typography } from '@mui/material'; - -// project import -import useAuth from 'hooks/useAuth'; -import AuthWrapper from 'sections/auth/AuthWrapper'; -import FirebaseRegister from 'sections/auth/auth-forms/AuthRegister'; - -// ================================|| REGISTER ||================================ // - -const Register = () => { - const { isLoggedIn } = useAuth(); - - return ( - - - - - Sign up - - Already have an account? - - - - - - - - - ); -}; - -export default Register; diff --git a/src/pages/auth/reset-password.js b/src/pages/auth/reset-password.js deleted file mode 100644 index aa4c286..0000000 --- a/src/pages/auth/reset-password.js +++ /dev/null @@ -1,26 +0,0 @@ -// material-ui -import { Grid, Stack, Typography } from '@mui/material'; - -// project import -import AuthWrapper from 'sections/auth/AuthWrapper'; -import AuthResetPassword from 'sections/auth/auth-forms/AuthResetPassword'; - -// ================================|| RESET PASSWORD ||================================ // - -const ResetPassword = () => ( - - - - - Reset Password - Please choose your new password - - - - - - - -); - -export default ResetPassword; diff --git a/src/pages/extra-pages/sample-page.js b/src/pages/extra-pages/sample-page.js index 5ed2c60..0e1f076 100644 --- a/src/pages/extra-pages/sample-page.js +++ b/src/pages/extra-pages/sample-page.js @@ -1,5 +1,4 @@ -// material-ui -import { Typography } from '@mui/material'; +import { Text } from '@astryxdesign/core/Text'; // project import import MainCard from 'components/MainCard'; @@ -8,12 +7,12 @@ import MainCard from 'components/MainCard'; const SamplePage = () => ( - + Lorem ipsum dolor sit amen, consenter nipissing eli, sed do elusion tempos incident ut laborers et doolie magna alissa. Ut enif ad minim venice, quin nostrum exercitation illampu laborings nisi ut liquid ex ea commons construal. Duos aube grue dolor in reprehended in voltage veil esse colum doolie eu fujian bulla parian. Exceptive sin ocean cuspidate non president, sunk in culpa qui officiate descent molls anim id est labours. - + ); diff --git a/src/pages/maintenance/404.js b/src/pages/maintenance/404.js index 3e9b0e8..db1648b 100644 --- a/src/pages/maintenance/404.js +++ b/src/pages/maintenance/404.js @@ -3,8 +3,11 @@ import { Link } from 'react-router-dom'; // project import import { APP_DEFAULT_PATH } from 'config'; -// material-ui -import { Box, Button, Grid, Stack, Typography } from '@mui/material'; +import { VStack } from '@astryxdesign/core/VStack'; +import { Center } from '@astryxdesign/core/Center'; +import { Heading } from '@astryxdesign/core/Heading'; +import { Text } from '@astryxdesign/core/Text'; +import { Button } from '@astryxdesign/core/Button'; // assets import error404 from 'assets/images/maintenance/Error404.png'; @@ -14,42 +17,25 @@ import TwoCone from 'assets/images/maintenance/TwoCone.png'; function Error404() { return ( - <> - - - - - - mantis - - - - - mantis - - - - - - - Page Not Found - - The page you are looking was moved, removed, renamed, or might never exist! - - - - - - +
+ +
+
+ mantis +
+
+ mantis +
+
+ + Page Not Found + + The page you are looking was moved, removed, renamed, or might never exist! + +
); } diff --git a/src/pages/maintenance/500.js b/src/pages/maintenance/500.js index da019bb..e6e52b6 100644 --- a/src/pages/maintenance/500.js +++ b/src/pages/maintenance/500.js @@ -3,9 +3,11 @@ import { Link } from 'react-router-dom'; // project import import { APP_DEFAULT_PATH } from 'config'; -// material-ui -import { useTheme } from '@mui/material/styles'; -import { useMediaQuery, Box, Button, Grid, Stack, Typography } from '@mui/material'; +import { VStack } from '@astryxdesign/core/VStack'; +import { Center } from '@astryxdesign/core/Center'; +import { Heading } from '@astryxdesign/core/Heading'; +import { Text } from '@astryxdesign/core/Text'; +import { Button } from '@astryxdesign/core/Button'; // assets import error500 from 'assets/images/maintenance/Error500.png'; @@ -13,32 +15,23 @@ import error500 from 'assets/images/maintenance/Error500.png'; // ==============================|| ERROR 500 - MAIN ||============================== // function Error500() { - const theme = useTheme(); - const matchDownSM = useMediaQuery(theme.breakpoints.down('sm')); - return ( - <> - - - - mantis - - - - - - Internal Server Error - - - Server error 500. we fixing the problem. please try again at a later stage. - - - - - - +
+ +
+ mantis +
+ + + Internal Server Error + + + Server error 500. we fixing the problem. please try again at a later stage. + +
); } diff --git a/src/pages/maintenance/coming-soon.js b/src/pages/maintenance/coming-soon.js index a8c5bdb..bd39558 100644 --- a/src/pages/maintenance/coming-soon.js +++ b/src/pages/maintenance/coming-soon.js @@ -1,8 +1,13 @@ import PropTypes from 'prop-types'; +import { useState } from 'react'; -// material-ui -import { useTheme } from '@mui/material/styles'; -import { useMediaQuery, Box, Button, Grid, Stack, TextField, Typography } from '@mui/material'; +import { VStack } from '@astryxdesign/core/VStack'; +import { HStack } from '@astryxdesign/core/HStack'; +import { Center } from '@astryxdesign/core/Center'; +import { Heading } from '@astryxdesign/core/Heading'; +import { Text } from '@astryxdesign/core/Text'; +import { TextInput } from '@astryxdesign/core/TextInput'; +import { Button } from '@astryxdesign/core/Button'; // third party const { useTimer } = require('react-timer-hook'); @@ -13,25 +18,20 @@ import MainCard from 'components/MainCard'; // ==============================|| COMING SOON - MAIN ||============================== // -const TimerBox = ({ count, label }) => { - const theme = useTheme(); - const matchDownSM = useMediaQuery(theme.breakpoints.down('sm')); - - return ( - - - - {count} - - - - {label} - - - - - ); -}; +const TimerBox = ({ count, label }) => ( + + +
+ {count} +
+
+ + {label} + +
+
+
+); TimerBox.propTypes = { count: PropTypes.number, @@ -43,51 +43,42 @@ function ComingSoon() { time.setSeconds(time.getSeconds() + 3600 * 24 * 2 - 3600 * 15.5); const { seconds, minutes, hours, days } = useTimer({ expiryTimestamp: time }); + const [email, setEmail] = useState(''); return ( - <> - - - - mantis - - - - - - Coming Soon - - - Something new is on its way - - - - - - - : - - : - - : - - - - - - - Be the first to be notified when Mantis launches. - - - - - - - - - +
+ +
+ mantis +
+ + + Coming Soon + + + Something new is on its way + + + + + : + + : + + : + + + + + Be the first to be notified when Mantis launches. + + + +
); } diff --git a/src/pages/maintenance/under-construction.js b/src/pages/maintenance/under-construction.js index 9829e84..86e174b 100644 --- a/src/pages/maintenance/under-construction.js +++ b/src/pages/maintenance/under-construction.js @@ -3,8 +3,11 @@ import { Link } from 'react-router-dom'; // project import import { APP_DEFAULT_PATH } from 'config'; -// material-ui -import { Box, Button, Grid, Stack, Typography } from '@mui/material'; +import { VStack } from '@astryxdesign/core/VStack'; +import { Center } from '@astryxdesign/core/Center'; +import { Heading } from '@astryxdesign/core/Heading'; +import { Text } from '@astryxdesign/core/Text'; +import { Button } from '@astryxdesign/core/Button'; // assets import construction from 'assets/images/maintenance/under-construction.svg'; @@ -13,26 +16,22 @@ import construction from 'assets/images/maintenance/under-construction.svg'; function UnderConstruction() { return ( - - - +
+ +
mantis - - - - - +
+ + Under Construction - - + + Hey! Please check out this site later. We are doing some maintenance on it right now. - - - - - + +
); } diff --git a/src/pages/nearle/_shared/ordersDesign.js b/src/pages/nearle/_shared/ordersDesign.js index 99900a9..a9a385e 100644 --- a/src/pages/nearle/_shared/ordersDesign.js +++ b/src/pages/nearle/_shared/ordersDesign.js @@ -20,7 +20,6 @@ // ============================================================================ import React from 'react'; -import { Avatar, Box, Paper, Stack, Typography } from '@mui/material'; import { MdLocalShipping, MdHourglassEmpty, @@ -50,8 +49,8 @@ export const DT = { surfaceAlt: '#f8fafc' }; -export const BRAND = '#662582'; -export const BRAND_LIGHT = '#9255AB'; +export const BRAND = '#C01227'; +export const BRAND_LIGHT = '#D25463'; const dtA = (c, suffix) => `${c}${suffix}`; export const tint = (c) => dtA(c, '08'); @@ -108,15 +107,14 @@ export const StatusBadge = ({ status, minWidth = 86 }) => { }; const Icon = meta.icon; return ( - { }} > {meta.label} - + ); }; @@ -136,39 +134,39 @@ export const StatusBadge = ({ status, minWidth = 86 }) => { // TimelineCell — time large/bold/high-contrast, date small/muted/secondary. // No decorative dot. // ---------------------------------------------------------------------------- +const noWrapStyle = { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }; + export const TimelineCell = ({ value, utc: useUtc = false }) => { if (!value) { - return ( - - ); + return ; } const d = useUtc ? dayjs(value).utc() : dayjs(value); return ( - - + {d.format('hh:mm A')} - - + {d.format('DD MMM YYYY')} - - + +
); }; @@ -180,22 +178,17 @@ export const MetricPill = ({ value, color, icon, isMoney = false }) => { const display = isMoney ? formatNumberToRupees(n) : Number.isFinite(n) ? n : value || 0; const isZero = !Number.isFinite(n) || n === 0; if (isZero) { - return ( - - {display} - - ); + return {display}; } return ( - { > {icon} {display} - + ); }; // ---------------------------------------------------------------------------- // SoftPaper — autocomplete dropdown surface. // ---------------------------------------------------------------------------- -export const SoftPaper = (props) => ( - ( +
); @@ -230,17 +223,22 @@ export const SoftPaper = (props) => ( // AccentAvatar — colored circular icon used inside filter chips & headers. // ---------------------------------------------------------------------------- export const AccentAvatar = ({ color, selected, size = 24, children }) => ( - {children} - +
); // ---------------------------------------------------------------------------- diff --git a/src/pages/nearle/accountsettings.js b/src/pages/nearle/accountsettings.js index 3e00053..08dc38e 100644 --- a/src/pages/nearle/accountsettings.js +++ b/src/pages/nearle/accountsettings.js @@ -1,4 +1,3 @@ -import { Grid, List, ListItem, Stack, Typography, useMediaQuery } from '@mui/material'; import { enqueueSnackbar } from 'notistack'; import axios from 'axios'; @@ -9,8 +8,29 @@ import Loader from 'components/Loader'; import Footer from 'layout/MainLayout/Footer'; import TitleCard from './titleCard'; +import { VStack } from '@astryxdesign/core/VStack'; +import { Text } from '@astryxdesign/core/Text'; +import { Divider } from '@astryxdesign/core/Divider'; + +import logger from 'utils/logger'; + +const Field = ({ label, value }) => ( + + {label} + {value || ''} + +); + +const Row = ({ children, hasDivider }) => ( + +
+ {children} +
+ {hasDivider && } +
+); + const Accountsettings = () => { - const matchDownMD = useMediaQuery((theme) => theme.breakpoints.down('md')); const [info, setInfo] = useState({}); const [loading, setLoading] = useState(false); @@ -25,14 +45,14 @@ const Accountsettings = () => { await axios .get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tid}`) .then((res) => { - console.log(res); + logger.info(res); if (res.data.status) { setInfo(res.data.details); } setLoading(false); }) .catch((err) => { - console.log(err); + logger.error(err); enqueueSnackbar(err.message, { variant: 'error', anchorOrigin: { vertical: 'top', horizontal: 'right' }, @@ -47,101 +67,31 @@ const Accountsettings = () => { {loading && } - - - - - - - - - Name - {info.tenantname || ''} - - - - - Company Name - {info.companyname || ''} - - - - - - - - - Registration No - {info.registrationno || ''} - - - - - Info - {info.info || ''} - - - - - - - - - Phone - {info.primarycontact || ''} - - - - - State - {info.state || ''} - - - - - - - - - - Email - {info.primaryemail || ''} - - - - - City - {info.city || ''} - - - - - - - - - Suburb - {info.suburb || ''} - - - - - Zip Code - {info.postcode || ''} - - - - - - - Address - {info.address || ''} - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/pages/nearle/api/api.js b/src/pages/nearle/api/api.js index 399b6b8..88694c0 100644 --- a/src/pages/nearle/api/api.js +++ b/src/pages/nearle/api/api.js @@ -1,5 +1,6 @@ import axios from 'axios'; import { OpenToast } from 'components/nearle_components/OpenToast'; +import logger from 'utils/logger'; const tenid = localStorage.getItem('tenantid'); export const fetchOrders = async ({ pageParam = 1, queryKey }) => { @@ -55,14 +56,14 @@ export const fetchorderscount = async ({ queryKey }) => { // ==============================|| fetchOrderSummary (orders)||============================== // export const fetchOrderSummary = async () => { const response = await axios.get(`${process.env.REACT_APP_URL}/orders/getordersummary`); - console.log('fetchOrderSummary', response.data.details); + logger.info('fetchOrderSummary', response.data.details); return response.data.details; }; // ==============================|| fetchLocationSummary (orders)||============================== // export const fetchLocationSummary = async () => { const response = await axios.get(`${process.env.REACT_APP_URL}/orders/getlocationsummary`); - console.log('fetchLocationSummary', response.data.details); + logger.info('fetchLocationSummary', response.data.details); return response.data.details; }; @@ -70,7 +71,7 @@ export const fetchLocationSummary = async () => { // ==============================|| fetchOrderInsight (orders)||============================== // export const fetchOrderInsight = async () => { const response = await axios.get(`${process.env.REACT_APP_URL}/orders/getorderinsight`); - console.log('fetchOrderInsight', response.data.details); + logger.info('fetchOrderInsight', response.data.details); return response.data.details; }; @@ -78,14 +79,14 @@ export const fetchOrderInsight = async () => { // ==============================|| fetchDeliveryInsight (delivery)||============================== // export const fetchDeliveryInsight = async () => { const response = await axios.get(`${process.env.REACT_APP_URL}/deliveries/getdeliveryinsight`); - console.log('fetchDeliveryInsight', response.data.details); + logger.info('fetchDeliveryInsight', response.data.details); return response.data.details; }; // ==============================|| fetchDeliveryLocationSummary (delivery)||============================== // export const fetchDeliveryLocationSummary = async () => { const response = await axios.get(`${process.env.REACT_APP_URL}/deliveries/getlocationsummary`); - console.log('fetchDeliveryLocationSummary', response.data.details); + logger.info('fetchDeliveryLocationSummary', response.data.details); return response.data.details; }; @@ -121,7 +122,7 @@ export const fetchAllTenants = async ({ queryKey }) => { const response = await axios.get(url); // tenants/search/?keyword=${search} - console.log('fetchAllTenants', response.data.details); + logger.info('fetchAllTenants', response.data.details); return response.data.details; }; @@ -129,7 +130,7 @@ export const fetchAllTenants = async ({ queryKey }) => { export const fetchCustomersList = async ({ queryKey }) => { const [pages] = queryKey; const response = await axios.get(`${process.env.REACT_APP_URL}/customers/getallcustomers/?pageno=${pages}&pagesize=10`); - console.log('fetchCustomersList', response.data.details); + logger.info('fetchCustomersList', response.data.details); return response.data.details; }; // ==============================|| gettenantcustomers (customers)||============================== // @@ -158,39 +159,39 @@ export const gettenantcustomers = async ({ pageParam = 1, queryKey }) => { export const fetchCustomersListBySearch = async ({ queryKey }) => { const [search] = queryKey; const response = await axios.get(search.lenght > 3 && `${process.env.REACT_APP_URL}/customers/search/?keyword=${search}`); - console.log('fetchCustomersListBySearch', response.data.details); + logger.info('fetchCustomersListBySearch', response.data.details); return response.data.details; }; // ==============================|| fetchOrdersSummary (rider summary)||============================== // export const fetchOrdersSummary = async ({ queryKey }) => { - console.log('queryKey for fetchOrdersSummary', queryKey); + logger.info('queryKey for fetchOrdersSummary', queryKey); const [startdate, enddate] = queryKey; const response = await axios.get( `${process.env.REACT_APP_URL}/deliveries/getreportsummary/?tenantid=${tenid}&fromdate=${startdate}&todate=${enddate}` ); - console.log('fetchOrdersSummary', response.data.details); + logger.info('fetchOrdersSummary', response.data.details); return response.data.details; }; // ==============================|| getreportlocationsummary (orders summary)||============================== // export const getreportlocationsummary = async ({ queryKey }) => { - console.log('queryKey for getreportlocationsummary', queryKey); + logger.info('queryKey for getreportlocationsummary', queryKey); const [startdate, enddate, locationId, debouncedSearch] = queryKey; const response = await axios.get( `${process.env.REACT_APP_URL}/deliveries/getreportlocationsummary/?tenantid=${tenid}&locationid=${locationId}&fromdate=${startdate}&todate=${enddate}&keyword=${debouncedSearch}` ); - console.log('getreportlocationsummary', response.data.details); + logger.info('getreportlocationsummary', response.data.details); return response.data.details; }; // ==============================|| getriderlocationreportsummary (orders summary)||============================== // export const getriderlocationreportsummary = async ({ queryKey }) => { - console.log('queryKey for getriderlocationreportsummary', queryKey); + logger.info('queryKey for getriderlocationreportsummary', queryKey); const [startdate, enddate, locationId] = queryKey; const response = await axios.get( `${process.env.REACT_APP_URL}/deliveries/getriderlocationreportsummary/?tenantid=${tenid}&locationid=${locationId}&fromdate=${startdate}&todate=${enddate}` ); - console.log('getriderlocationreportsummary', response.data.details); + logger.info('getriderlocationreportsummary', response.data.details); return response.data.details; }; @@ -202,7 +203,7 @@ export const fetchLocations = async () => { ...response.data.details, { partnername: 'All', partnerid: -1 } // Add your new object here ]; - console.log('fetchLocations', updatedLocations); + logger.info('fetchLocations', updatedLocations); return updatedLocations; }; @@ -216,7 +217,7 @@ export const gettenantlocations = async ({ queryKey }) => { } catch (error) { // Must return an array — downstream consumers do `.map`/`.length` and a // string here crashes the entire Locations page. - console.error('Error fetching tenant locations:', error); + logger.error('Error fetching tenant locations:', error); return []; } }; @@ -227,7 +228,7 @@ export const fetchDeliverySummary = async ({ queryKey }) => { const response = await axios.get( `${process.env.REACT_APP_URL}/deliveries/deliverysummary?tenantid=${tenid}&locationid=${locationId}&fromdate=${startdate}&todate=${enddate}` ); - console.log('fetchDeliverySummary', response.data.details); + logger.info('fetchDeliverySummary', response.data.details); return response.data.details; }; // ==============================|| fetchAppLocations (report summary))||============================== // @@ -238,7 +239,7 @@ export const fetchAppLocations = async () => { ...response.data.details, { partnername: 'All', applocationid: -1 } // Add your new object here ]; - console.log('fetchAppLocations', updatedLocations); + logger.info('fetchAppLocations', updatedLocations); return updatedLocations; }; @@ -246,12 +247,12 @@ export const fetchAppLocations = async () => { // ==============================|| fetchRidersSummary (riders summary)||============================== // export const fetchRidersSummary = async ({ queryKey }) => { - console.log('queryKey for fetchRidersSummary', queryKey); + logger.info('queryKey for fetchRidersSummary', queryKey); const [tenantid, startdate, enddate] = queryKey; const response = await axios.get( `${process.env.REACT_APP_URL}/deliveries/getridersummary/?tenantid=${tenantid}&fromdate=${startdate}&todate=${enddate}` ); - console.log('fetchRidersSummary', response.data.details); + logger.info('fetchRidersSummary', response.data.details); return response.data.details; }; @@ -281,19 +282,19 @@ export const fetchorderdetails = async ({ pageParam = 0, queryKey }) => { }; // export const fetchorderdetails = async ({ queryKey }) => { -// console.log('queryKey of fetchorderdetails', queryKey); +// logger.info('queryKey of fetchorderdetails', queryKey); // const [startdate, enddate, currentStatus] = queryKey; // const response = await axios.get( // `${process.env.REACT_APP_URL}/deliveries/getdeliveries/?tenantid=${tenid}&fromdate=${startdate}&todate=${enddate}&status=${ // currentStatus == 'All' ? '' : currentStatus // }` // ); -// console.log('fetchorderdetails', response.data.details); +// logger.info('fetchorderdetails', response.data.details); // return response.data.details; // }; // ==============================|| fetchCount (orders detail)||============================== // export const fetchCount = async ({ queryKey }) => { - console.log('queryKey of fetchCount', queryKey); + logger.info('queryKey of fetchCount', queryKey); const [startdate, enddate] = queryKey; const response = await axios.get(`${process.env.REACT_APP_URL}/orders/getorders/?fromdate=${startdate}&todate=${enddate}`); const calculateOrderCounts = () => { @@ -314,7 +315,7 @@ export const fetchCount = async ({ queryKey }) => { return { deliveredCount, pendingCount, cancelledCount }; }; - console.log('fetchCount', calculateOrderCounts()); + logger.info('fetchCount', calculateOrderCounts()); return calculateOrderCounts(); }; @@ -333,7 +334,7 @@ export const fetchRidersLogs = async ({ queryKey }) => { startdate || '' }&keyword=${riderSearch || ''}` ); - console.log('fetchRidersLogs', riderLogsResponse.data.details); + logger.info('fetchRidersLogs', riderLogsResponse.data.details); return riderLogsResponse.data.details; }; @@ -475,7 +476,7 @@ export const getallriders = async () => { const res = await axios.get(`${process.env.REACT_APP_URL}/partners/getallriders?partnerid=64`); return res.data.details; } catch (err) { - console.log('getallriders', err.message); + logger.error('getallriders', err.message); } }; diff --git a/src/pages/nearle/clients/createCustomer.js b/src/pages/nearle/clients/createCustomer.js index 0529363..711055c 100644 --- a/src/pages/nearle/clients/createCustomer.js +++ b/src/pages/nearle/clients/createCustomer.js @@ -1,41 +1,29 @@ import { React, useEffect, useState } from 'react'; -// material-ui -import { useTheme } from '@mui/material/styles'; -import { - Box, - Button, - FormLabel, - Grid, - InputLabel, - MenuItem, - Select, - Stack, - TextField, - Typography, - IconButton, - Autocomplete, - InputAdornment -} from '@mui/material'; -import MyLocationIcon from '@mui/icons-material/MyLocation'; +import { Button } from '@astryxdesign/core/Button'; +import { TextInput } from '@astryxdesign/core/TextInput'; +import { HStack } from '@astryxdesign/core/HStack'; +import { Text } from '@astryxdesign/core/Text'; // project import -import Avatar from 'components/@extended/Avatar'; import MainCard from 'components/MainCard'; import axios from 'axios'; -import { usePlacesWidget } from 'react-google-autocomplete'; import Loader from 'components/Loader'; import Geocode from 'react-geocode'; import { enqueueSnackbar } from 'notistack'; import { useNavigate } from 'react-router'; -import CloseIcon from '@mui/icons-material/Close'; import TitleCard from '../titleCard'; +import logger from 'utils/logger'; + +const FieldGrid = ({ children }) => ( +
{children}
+); + const CreateCustomer = () => { const appId = localStorage.getItem('applocationid'); - const theme = useTheme(); const [selectedImage, setSelectedImage] = useState(undefined); const [avatar, setAvatar] = useState(); const [businessname, setBusinessname] = useState(''); @@ -103,8 +91,8 @@ const CreateCustomer = () => { autocomplete.addListener('place_changed', () => { const place = autocomplete.getPlace(); setInputValue2(`${place.name}, ${place.formatted_address}`); - console.log('new place', place); // Do something with the selected place - console.log(' pick (new place) lat lng', { lat: place.geometry.location.lat(), lng: place.geometry.location.lng() }); // Do something with the selected place + logger.info('new place', place); // Do something with the selected place + logger.info(' pick (new place) lat lng', { lat: place.geometry.location.lat(), lng: place.geometry.location.lng() }); // Do something with the selected place // to trigger getDistance setStartPoint({ latitude: place.geometry.location.lat(), longitude: place.geometry.location.lng() }); setAddress(`${place.name} ${place.formatted_address}`); @@ -164,7 +152,7 @@ const CreateCustomer = () => { latitude: place.geometry.location.lat(), longitude: place.geometry.location.lng() }); - console.log('Pick Address:', address); + logger.info('Pick Address:', address); }); } }, [inputValue2]); @@ -174,18 +162,18 @@ const CreateCustomer = () => { await axios .get(`${process.env.REACT_APP_URL}/utils/getapplocations/?applocationid=${appId}`) .then((res) => { - console.log('getapplocations', res); - const { opentime, closetime, latitude, longitude, radius } = res.data.details[0]; + logger.info('getapplocations', res); + const { opentime, closetime, latitude, longitude, radius } = res.data.details?.[0] || {}; if (res.data.status) { setAppLocaLat(latitude); setAppLocaLng(longitude); setAppLocaRadius(radius); - console.log('radius', radius); + logger.info('radius', radius); } setLoading(false); }) .catch((err) => { - console.log(err); + logger.error(err); setLoading(false); }); }; @@ -201,11 +189,11 @@ const CreateCustomer = () => { // ...locationRes.data.details, // { partnername: 'All', applocationid: -1 } // ]; - // console.log('fetchAppLocations', updatedLocations); - console.log('fetchAppLocations', locationRes.data.details); + // logger.info('fetchAppLocations', updatedLocations); + logger.info('fetchAppLocations', locationRes.data.details); setLocations(locationRes.data.details); } catch (err) { - console.log('locationRes', err); + logger.error('locationRes', err); } }; useEffect(() => { @@ -220,7 +208,7 @@ const CreateCustomer = () => { .get(`${process.env.REACT_APP_URL}/tenants/gettenants/?applocationid=${id}&status=active`) .then((res) => { - console.log(res); + logger.info(res); if (res.data.status) { let arr = []; res.data.details.map((val) => { @@ -234,7 +222,7 @@ const CreateCustomer = () => { setLoading(false); }) .catch((err) => { - console.log(err); + logger.error(err); setLoading(false); }); }; @@ -242,7 +230,7 @@ const CreateCustomer = () => { const gettenantlocations = async (id) => { try { const res = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantlocations/?tenantid=${id}`); - console.log('gettenantlocations', res.data.details); + logger.info('gettenantlocations', res.data.details); if (res.data.details.length == 1) { setIsLocation(true); setTenantlocations(res.data.details); @@ -254,7 +242,7 @@ const CreateCustomer = () => { setIsBusiness(false); // became true after select from tenanatLocations } } catch (err) { - console.log('gettenantlocations', err); + logger.error('gettenantlocations', err); } }; @@ -271,14 +259,14 @@ const CreateCustomer = () => { await axios .get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tid}`) .then((res) => { - console.log('fetchtenantinfo', res.data.details); + logger.info('fetchtenantinfo', res.data.details); if (res.data.status) { setTenantinfo(res.data.details); } setLoading(false); }) .catch((err) => { - console.log(err); + logger.error(err); setLoading(false); }); }; @@ -314,21 +302,21 @@ const CreateCustomer = () => { customertoken: '', primaryaddress: 1 }; - console.log(obj); + logger.info(obj); setLoading(true); try { await axios .post(`${process.env.REACT_APP_URL}/customers/create`, obj) .then((res) => { - console.log(res); + logger.info(res); if (res.data.status) { enqueueSnackbar(' Created Successfully ', { variant: 'success', anchorOrigin: { vertical: 'top', horizontal: 'right' }, autoHideDuration: 2000 }); - navigate('/customers'); + navigate('/nearle/customers'); } else if (res.data.message == 'Customer Already available') { enqueueSnackbar('Customer Already available', { variant: 'error', @@ -339,7 +327,7 @@ const CreateCustomer = () => { setLoading(false); }) .catch((err) => { - console.log(err); + logger.error(err); setLoading(false); enqueueSnackbar(err.message, { @@ -349,7 +337,7 @@ const CreateCustomer = () => { }); }); } catch (err) { - console.log(err); + logger.error(err); setLoading(false); } }; @@ -359,241 +347,136 @@ const CreateCustomer = () => { {loading && } navigate('/nearle/customers')}> - Back - - } + secondary={ - - - + +
); diff --git a/src/pages/nearle/clients/customers.js b/src/pages/nearle/clients/customers.js index 3b1fc7b..75253a5 100644 --- a/src/pages/nearle/clients/customers.js +++ b/src/pages/nearle/clients/customers.js @@ -1,38 +1,22 @@ import React, { useRef, useEffect, useState } from 'react'; import TitleCard from '../titleCard'; -import { - Button, - Chip, - CircularProgress, - FormControl, - IconButton, - InputAdornment, - OutlinedInput, - Stack, - Table, - TableBody, - TableCell, - TableContainer, - TableHead, - TableRow, - Typography -} from '@mui/material'; +import { Button } from '@astryxdesign/core/Button'; +import { Badge } from '@astryxdesign/core/Badge'; +import { Spinner } from '@astryxdesign/core/Spinner'; import MainCard from 'components/MainCard'; -import { useInfiniteQuery, useQuery } from '@tanstack/react-query'; +import { useInfiniteQuery } from '@tanstack/react-query'; import { gettenantcustomers } from '../api/api'; -import { useTheme } from '@mui/material/styles'; import { useNavigate } from 'react-router'; -import { FormOutlined, SearchOutlined } from '@ant-design/icons'; import SearchBar from 'components/nearle_components/SearchBar'; import { Empty } from 'antd'; +import logger from 'utils/logger'; + const Customers = () => { const navigate = useNavigate(); - const theme = useTheme(); const loadMoreRef = useRef(); const containerRef = useRef(); - const [page, setPage] = React.useState(0); - const [rowsPerPage, setRowsPerPage] = React.useState(10); + const [rowsPerPage] = React.useState(10); const [customerSearch, setCustomerSearch] = useState(''); const [debounceCustomerSearch, setDebounceCustomerSearch] = useState(''); @@ -46,9 +30,6 @@ const Customers = () => { const { data: customerdata, - isLoading: isLoadingCustomer, - isError: isErrorCustomer, - error: errorCustomer, fetchNextPage, hasNextPage, isFetchingNextPage @@ -59,7 +40,7 @@ const Customers = () => { }); const rows = customerdata ? customerdata.pages.flatMap((p) => p.details) : []; useEffect(() => { - customerdata && console.log(customerdata); + customerdata && logger.info(customerdata); }, [customerdata]); useEffect(() => { if (!hasNextPage) return; @@ -70,7 +51,7 @@ const Customers = () => { } }, { - root: document.querySelector('.MuiTableContainer-root'), // 👈 or explicitly TableContainer + root: containerRef.current, rootMargin: '0px', threshold: 1.0 } @@ -94,112 +75,80 @@ const Customers = () => { <> navigate('/nearle/customers/create')}> - Create Customers - - } + secondary={
); diff --git a/src/pages/nearle/deliveries/deliveries.js b/src/pages/nearle/deliveries/deliveries.js index 949663c..f43d006 100644 --- a/src/pages/nearle/deliveries/deliveries.js +++ b/src/pages/nearle/deliveries/deliveries.js @@ -6,36 +6,18 @@ var utc = require('dayjs/plugin/utc'); dayjs.extend(utc); import axios from 'axios'; -import { - Avatar, - Box, - Button, - Grid, - IconButton, - Paper, - Stack, - Typography, - Table, - TableCell, - TableBody, - TableHead, - Dialog, - TableRow, - DialogContent, - Tooltip, - Skeleton, - CircularProgress, - InputBase, - Backdrop, - TableContainer -} from '@mui/material'; +import { Button } from '@astryxdesign/core/Button'; +import { IconButton } from '@astryxdesign/core/IconButton'; +import { TextInput } from '@astryxdesign/core/TextInput'; +import { Tooltip } from '@astryxdesign/core/Tooltip'; +import { Spinner } from '@astryxdesign/core/Spinner'; +import { AlertDialog } from '@astryxdesign/core/AlertDialog'; import { MdAccessTime, MdCancel, MdCheckCircle, MdClose, MdCurrencyRupee, - MdDeleteOutline, MdHistoryToggleOff, MdHourglassEmpty, MdInventory2, @@ -43,7 +25,6 @@ import { MdSearch, MdStraighten, MdCalendarMonth, - MdReceiptLong, MdClear, MdNotes } from 'react-icons/md'; @@ -54,6 +35,7 @@ import CircularLoader from 'components/nearle_components/CircularLoader'; import { useQuery, useInfiniteQuery } from '@tanstack/react-query'; import { useNavigate } from 'react-router-dom'; +import logger from 'utils/logger'; // ============================================================================ // Design tokens — shared with the rest of the redesigned operator pages. // ============================================================================ @@ -77,8 +59,8 @@ const soft = (c) => dtA(c, '18'); const ring = (c) => dtA(c, '26'); const edge = (c) => dtA(c, '55'); -const BRAND = '#662582'; -const BRAND_LIGHT = '#9255AB'; +const BRAND = '#C01227'; +const BRAND_LIGHT = '#D25463'; // Semantic per-row status palette — colors per brand standard: const ROW_STATUS_META = { @@ -98,11 +80,64 @@ const ROW_STATUS_META = { // Top-level pill tabs. const DELIVERIES_STATUS_TABS = [ - { idx: 0, status: 'pending', label: 'Pending', color: '#f59e0b', icon: MdHourglassEmpty, countKey: 'pending' }, - { idx: 1, status: 'delivered', label: 'Delivered', color: '#10b981', icon: MdCheckCircle, countKey: 'delivered' }, - { idx: 2, status: 'cancelled', label: 'Cancelled', color: '#ef4444', icon: MdCancel, countKey: 'cancelled' } + { idx: 0, status: 'pending', label: 'Pending', color: BRAND, icon: MdHourglassEmpty, countKey: 'pending' }, + { idx: 1, status: 'delivered', label: 'Delivered', color: BRAND, icon: MdCheckCircle, countKey: 'delivered' }, + { idx: 2, status: 'cancelled', label: 'Cancelled', color: BRAND, icon: MdCancel, countKey: 'cancelled' } ]; +// Brand-styled scrollbars + hover affordances reused across this page. +const deliveriesStyles = ` + .dlv-scroll::-webkit-scrollbar { width: 10px; height: 10px; } + .dlv-scroll::-webkit-scrollbar-thumb { background-color: ${edge(BRAND)}; border-radius: 8px; } + .dlv-scroll::-webkit-scrollbar-thumb:hover { background-color: ${BRAND}; } + .dlv-scroll::-webkit-scrollbar-track { background-color: ${DT.surfaceAlt}; } + + .dlv-tabs-scroll::-webkit-scrollbar { height: 6px; } + .dlv-tabs-scroll::-webkit-scrollbar-thumb { background-color: ${DT.borderSubtle}; border-radius: 4px; } + + .dlv-date-pill:hover { border-color: #f59e0b !important; box-shadow: 0 0 0 3px ${ring('#f59e0b')}; } + + .dlv-kpi-card:hover { transform: translateY(-1px); box-shadow: ${DT.shadowMd}; border-color: ${edge(BRAND)} !important; } + + .dlv-tab-pill:hover { border-color: ${BRAND} !important; } + .dlv-tab-pill.is-active:hover { box-shadow: 0 6px 18px ${ring(BRAND)}; } + .dlv-tab-pill:not(.is-active):hover { box-shadow: 0 0 0 3px ${ring(BRAND)}; } + + .dlv-row:hover { background-color: ${DT.surfaceAlt}; box-shadow: inset 3px 0 0 ${BRAND}; } + + .dlv-header-row { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 8px; } + @media (min-width: 600px) { + .dlv-header-row { flex-direction: row; align-items: center; gap: 12px; } + } + + .dlv-kpi-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; } + @media (min-width: 900px) { + .dlv-kpi-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; } + } + + .dlv-tabs-search-row { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap-reverse; } + .dlv-search-wrap { width: 100%; flex: 1 1 100%; } + @media (min-width: 600px) { + .dlv-search-wrap { width: 240px; flex: 0 0 auto; } + } + @media (min-width: 1200px) { + .dlv-search-wrap { width: 280px; } + } + + @keyframes dlv-shimmer { 0% { background-position: -200px 0; } 100% { background-position: 200px 0; } } + .dlv-skel { + display: inline-block; + border-radius: 4px; + background: linear-gradient(90deg, ${DT.divider} 25%, ${DT.borderSubtle} 37%, ${DT.divider} 63%); + background-size: 400px 100%; + animation: dlv-shimmer 1.4s ease infinite; + } +`; + +const SkeletonBar = ({ width = '100%', height = 14 }) => ( + +); + const StatusBadge = ({ status }) => { const meta = ROW_STATUS_META[String(status || '').toLowerCase()] || { label: status || '—', @@ -111,15 +146,14 @@ const StatusBadge = ({ status }) => { }; const Icon = meta.icon; return ( - { }} > {meta.label} - + ); }; @@ -140,22 +174,17 @@ const MetricCell = ({ value, color, icon, isMoney = false }) => { const display = isMoney ? `₹${Number.isFinite(n) ? n.toFixed(2) : '0.00'}` : Number.isFinite(n) ? n : value || 0; const isZero = !Number.isFinite(n) || n === 0; if (isZero) { - return ( - - {display} - - ); + return {display}; } return ( - { > {icon} {display} - + ); }; +const noWrapStyle = { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }; + const Deliveries = () => { const navigate = useNavigate(); const tid = localStorage.getItem('tenantid'); @@ -259,7 +290,7 @@ const Deliveries = () => { } }) .catch((err) => { - console.log(err); + logger.error(err); }); }; @@ -320,13 +351,17 @@ const Deliveries = () => { // KPI tile definitions. const kpiCards = [ - { key: 'pending', label: 'Pending Deliveries', color: '#f59e0b', icon: MdHourglassEmpty, value: percentageData?.uncoveredOrders, percentage: percentageData?.percentage2 }, - { key: 'delivered', label: 'Delivered Deliveries', color: '#10b981', icon: MdCheckCircle, value: percentageData?.coveredOrders, percentage: percentageData?.percentage3 }, - { key: 'cancelled', label: 'Cancelled Deliveries', color: '#ef4444', icon: MdCancel, value: percentageData?.cancelled, percentage: percentageData?.percentage4 } + { key: 'pending', label: 'Pending Deliveries', color: BRAND, icon: MdHourglassEmpty, value: percentageData?.uncoveredOrders, percentage: percentageData?.percentage2 }, + { key: 'delivered', label: 'Delivered Deliveries', color: BRAND, icon: MdCheckCircle, value: percentageData?.coveredOrders, percentage: percentageData?.percentage3 }, + { key: 'cancelled', label: 'Cancelled Deliveries', color: BRAND, icon: MdCancel, value: percentageData?.cancelled, percentage: percentageData?.percentage4 } ]; + const colCount = currentStatus === 'created' ? 11 : 10; + return ( + + {(fetchpercentageIsLoading || isLoadingGetDeliveries) && ( <> @@ -335,140 +370,132 @@ const Deliveries = () => { )} {/* ============================================= || Sticky top shell || ============================================= */} - - - {/* ============================================= || Header (compact) || ============================================= */} - - - {/* LEFT: icon + title + live subtitle */} - - - - - - + {/* LEFT: icon + title + live subtitle */} +
+
- Deliveries - - - +
+
+ - - Live · {locoName} · {datestatus} - - - - + > + Deliveries + +
+ + + Live · {locoName} · {datestatus} + +
+
+
- {/* RIGHT: date pill */} - - setDateOpen(true)} - sx={{ - display: 'inline-flex', - alignItems: 'center', - gap: 0.75, - px: 1.25, - py: 0.625, - borderRadius: 999, - cursor: 'pointer', - bgcolor: tint('#f59e0b'), - border: `1.5px solid ${edge('#f59e0b')}`, - color: '#b45309', - fontWeight: 800, - fontSize: 12, - transition: 'all 0.18s', - '&:hover': { borderColor: '#f59e0b', boxShadow: `0 0 0 3px ${ring('#f59e0b')}` } - }} - > - - {dayjs(startdate).format('DD/MM/YY')} – {dayjs(enddate).format('DD/MM/YY')} - - -
-
+ {/* RIGHT: date pill */} + +
setDateOpen(true)} + className="dlv-date-pill" + role="button" + tabIndex={0} + onKeyDown={(e) => (e.key === 'Enter' || e.key === ' ') && setDateOpen(true)} + style={{ + display: 'inline-flex', + alignItems: 'center', + gap: 6, + padding: '5px 10px', + borderRadius: 999, + cursor: 'pointer', + backgroundColor: tint('#f59e0b'), + border: `1.5px solid ${edge('#f59e0b')}`, + color: '#b45309', + fontWeight: 800, + fontSize: 12, + transition: 'all 0.18s' + }} + > + + {dayjs(startdate).format('DD/MM/YY')} – {dayjs(enddate).format('DD/MM/YY')} +
+
+ + - {/* ============================================= || KPI Cards (compact) || ============================================= */} - - {kpiCards.map((item) => { - const Icon = item.icon; - return ( - - + {kpiCards.map((item) => { + const Icon = item.icon; + return ( +
- { background: item.color }} /> - - - +
+ {item.label} - - - +
+ - {item.value == null ? : item.value} - + {item.value == null ? : item.value} + {item.percentage != null && item.value != null && ( - - {item.percentage}% - + {item.percentage}% )} - - - +
+
- - - - - ); - })} - +
+
+
+ ); + })} + - {/* ============================================= || Status Tabs + Search (compact) || ============================================= */} - - - - {DELIVERIES_STATUS_TABS.map((t) => { - const Icon = t.icon; - const active = tabvalue === t.idx; - const count = t.countKey === 'created' ? (percentageData?.created ?? 0) - : t.countKey === 'pending' ? (percentageData?.uncoveredOrders ?? 0) - : t.countKey === 'delivered' ? (percentageData?.coveredOrders ?? 0) - : (percentageData?.cancelled ?? 0); - return ( - handleChangetab(e, t.idx)} - sx={{ - display: 'inline-flex', - alignItems: 'center', - gap: { xs: 0.625, md: 0.875 }, - pl: 0.5, - pr: { xs: 1, md: 1.25 }, - py: 0.5, - flexShrink: 0, - cursor: 'pointer', - borderRadius: 999, - border: `1.5px solid ${active ? t.color : edge(t.color)}`, - bgcolor: active ? t.color : tint(t.color), - color: active ? '#fff' : t.color, - fontWeight: 700, - boxShadow: active ? `0 6px 18px ${ring(t.color)}` : 'none', - transition: 'all 0.18s', - '&:hover': { - borderColor: t.color, - boxShadow: active ? `0 6px 18px ${ring(t.color)}` : `0 0 0 3px ${ring(t.color)}` - } - }} - > - - - - - {t.label} - - - {count} - - - ); - })} - - - - +
- - { + const Icon = t.icon; + const active = tabvalue === t.idx; + const count = + t.countKey === 'created' + ? (percentageData?.created ?? 0) + : t.countKey === 'pending' + ? (percentageData?.uncoveredOrders ?? 0) + : t.countKey === 'delivered' + ? (percentageData?.coveredOrders ?? 0) + : (percentageData?.cancelled ?? 0); + return ( +
handleChangetab(e, t.idx)} + role="button" + tabIndex={0} + onKeyDown={(e) => (e.key === 'Enter' || e.key === ' ') && handleChangetab(e, t.idx)} + className={`dlv-tab-pill${active ? ' is-active' : ''}`} + style={{ + display: 'inline-flex', + alignItems: 'center', + gap: 7, + paddingLeft: 4, + paddingRight: 10, + paddingTop: 4, + paddingBottom: 4, + flexShrink: 0, + cursor: 'pointer', + borderRadius: 999, + border: `1.5px solid ${active ? t.color : edge(t.color)}`, + backgroundColor: active ? t.color : tint(t.color), + color: active ? '#fff' : t.color, + fontWeight: 700, + boxShadow: active ? `0 6px 18px ${ring(t.color)}` : 'none', + transition: 'all 0.18s' + }} + > +
+ +
+ {t.label} + + {count} + +
+ ); + })} +
+ +
+ setSearchword(e.target.value)} - autoComplete="off" - sx={{ - flex: 1, - fontSize: 13, - fontWeight: 600, - color: DT.textPrimary, - '& input::placeholder': { color: DT.textMuted, opacity: 1 } + onChange={(v) => { + setSearchword(v); + if (v === '') refetchDeliveries(); }} + startIcon={} + hasClear + width="100%" /> - {searchword && ( - { - setSearchword(''); - refetchDeliveries(); - }} - sx={{ p: 0.25, color: BRAND }} - > - - - )} - - - - - - {/* end sticky shell */} +
+ + + + {/* end sticky shell */} {/* ============================================= || Table (dense, sticky header) || ============================================= */} - - - - - - # - Delivery Location - Pickup - Drop - Qty - COD - Kms - Charges - Notes - Status - {currentStatus === 'created' && Actions} - - +
+ + + {[ + { label: '#', align: 'left' }, + { label: 'Delivery Location', align: 'left' }, + { label: 'Pickup', align: 'left' }, + { label: 'Drop', align: 'left' }, + { label: 'Qty', align: 'center' }, + { label: 'COD', align: 'right' }, + { label: 'Kms', align: 'center' }, + { label: 'Charges', align: 'right' }, + { label: 'Notes', align: 'left' }, + { label: 'Status', align: 'left' }, + ...(currentStatus === 'created' ? [{ label: 'Actions', align: 'right' }] : []) + ].map((col) => ( + + ))} + + - + {isLoadingGetDeliveries && rows.length === 0 && Array.from({ length: 10 }).map((_, idx) => ( - - {Array.from({ length: currentStatus === 'created' ? 11 : 10 }).map((__, ci) => ( - - - + + {Array.from({ length: colCount }).map((__, ci) => ( + ))} - + ))} {!isLoadingGetDeliveries && rows.length === 0 && ( - - - - + + )} {rows.map((row, index) => { return ( - - - - {page * rowsPerPage + index + 1} - - + + - - + - - - - {row.pickupcustomer} - - - {row.pickupcontactno} - - - + - - - - {row.deliverycustomer} - - - {row.deliverycontactno} - - - + - + - + - + - + - + - + {currentStatus === 'created' && ( - + )} - + ); })} {rows.length !== 0 && ( - - - + + )} - -
+ {col.label} +
+ +
+
+
- - - No {currentStatus} deliveries - - +
+ No {currentStatus} deliveries + {searchword ? 'Try a different keyword or clear the search.' : 'Adjust the location, status, or date range above.'} - + {searchword && ( + style={{ color: BRAND, marginTop: 4 }} + /> )} - - - +
+
+ {page * rowsPerPage + index + 1} + +
{row.locationname} {row.locationsuburb && ` - ${row.locationsuburb}`} - - - - {row.orderid} - +
+ + {row.orderid} - +
{(() => { - const dateObj = row.pickupslot && dayjs(row.pickupslot).isValid() - ? dayjs(row.pickupslot) - : dayjs(row.deliverydate || row.orderdate); + const dateObj = + row.pickupslot && dayjs(row.pickupslot).isValid() + ? dayjs(row.pickupslot) + : dayjs(row.deliverydate || row.orderdate); return ( <> - + {dateObj.format('hh:mm A')} - - + + · {dateObj.format('DD MMM YY')} - + ); })()} - - +
+
+
+ {row.pickupcustomer} + {row.pickupcontactno} + + {row.pickupsuburb || (row.pickupaddress ? `${row.pickupaddress.slice(0, 20)}…` : '—')} - + - - +
+
+
+ {row.deliverycustomer} + {row.deliverycontactno} + + {row.deliverysuburb || (row.deliveryaddress?.length > 20 ? `${row.deliveryaddress.slice(0, 20)}…` : row.deliveryaddress || '—')} - + - - +
+
} /> - + } isMoney /> - + } /> - + } isMoney /> - + {row.ordernotes ? ( - +
- {row.ordernotes} - - + +
) : ( - - — - + )} - +
- + {row.orderstatus === 'created' && ( - + } + variant="ghost" + size="sm" onClick={(e) => { e.stopPropagation(); setOrderheaderid(row.orderheaderid); setCancelOpen(true); }} - sx={{ - bgcolor: tint('#ef4444'), + style={{ + backgroundColor: tint('#ef4444'), border: `1px solid ${edge('#ef4444')}`, color: '#ef4444', - borderRadius: 999, - p: 0.75, - '&:hover': { - bgcolor: soft('#ef4444'), - borderColor: '#ef4444' - } + borderRadius: 999 }} - > - - + /> )} - +
+
{isFetchingNextPage || hasNextPage ? ( <> - - - Loading more deliveries… - + + Loading more deliveries… ) : ( - + {rows.length} delivery{rows.length === 1 ? '' : 's'} · End of list - + )} - - - +
+
-
-
+ + + + {/* ============================================= || Cancel Order Dialog || ============================================= */} - setCancelOpen(false)} maxWidth="xs" PaperProps={{ sx: { borderRadius: 3 } }}> - - - - - - - Cancel Delivery - - - - - - - Are you sure you want to cancel this delivery? This action cannot be undone. - - - - - - - - + {/* ============================================= || Date Filter || ============================================= */} - +
Loading active deliveries...
); diff --git a/src/pages/nearle/dispatch/Dispatch.css b/src/pages/nearle/dispatch/Dispatch.css index 3bd66fb..5b8a4b6 100644 --- a/src/pages/nearle/dispatch/Dispatch.css +++ b/src/pages/nearle/dispatch/Dispatch.css @@ -3,11 +3,11 @@ --bg-sub: #f8fafc; --bg-card: #ffffff; --border: #e2e8f0; - --border-active: #9255AB; + --border-active: #D25463; --text: #1e293b; --text-muted: #64748b; - --accent: #9255AB; - --accent-soft: rgba(146, 85, 171, 0.08); + --accent: #D25463; + --accent-soft: rgba(210, 84, 99, 0.08); --kitchen: #f59e0b; --kitchen-soft: rgba(245, 158, 11, 0.1); --success: #22c55e; @@ -68,7 +68,7 @@ width: 32px; height: 32px; border-radius: 8px; - background: linear-gradient(135deg, #9255AB, #662582); + background: linear-gradient(135deg, #D25463, #C01227); display: flex; align-items: center; justify-content: center; @@ -1321,7 +1321,7 @@ /* Unified active style for hourly slot chips — single accent gradient instead of per-wave colors since 12 different colors would be visually noisy. */ .dispatch-container .batch-btn.batch-slot.active { - background: linear-gradient(135deg, #9255AB, #662582); + background: linear-gradient(135deg, #D25463, #C01227); } .dispatch-container .batch-btn-icon { @@ -1684,14 +1684,14 @@ } .dispatch-container .sidebar-toggle-tab:hover { - background: linear-gradient(135deg, #7b2fad, #9255AB); + background: linear-gradient(135deg, #DD7E8A, #D25463); color: #fff; transform: translate(-50%, -50%) scale(1.06); - box-shadow: 0 6px 16px rgba(146, 85, 171, 0.35); + box-shadow: 0 6px 16px rgba(210, 84, 99, 0.35); } .dispatch-container .sidebar-toggle-tab:focus-visible { - outline: 2px solid var(--accent, #9255AB); + outline: 2px solid var(--accent, #D25463); outline-offset: 2px; } @@ -1755,7 +1755,7 @@ width: 3px; height: 14px; border-radius: 2px; - background: linear-gradient(180deg, var(--accent), #662582); + background: linear-gradient(180deg, var(--accent), #C01227); } .dispatch-container .sb-title-text { @@ -1802,7 +1802,7 @@ padding: 4px 10px 4px 8px; border-radius: 999px; background: var(--accent-soft); - border: 1px solid rgba(146, 85, 171, 0.22); + border: 1px solid rgba(210, 84, 99, 0.22); color: var(--accent); font-size: 11px; font-weight: 700; @@ -2158,7 +2158,7 @@ .dispatch-container .adcard.is-active { border-color: var(--ad-accent, var(--accent)); - box-shadow: 0 0 0 2px rgba(146, 85, 171, 0.15), var(--shadow-lg); + box-shadow: 0 0 0 2px rgba(210, 84, 99, 0.15), var(--shadow-lg); background: var(--accent-soft); } diff --git a/src/pages/nearle/dispatch/Dispatch.js b/src/pages/nearle/dispatch/Dispatch.js index 51bf35a..9ec35c5 100644 --- a/src/pages/nearle/dispatch/Dispatch.js +++ b/src/pages/nearle/dispatch/Dispatch.js @@ -50,7 +50,6 @@ import { MdInsights, MdRefresh } from 'react-icons/md'; -import { CircularProgress } from '@mui/material'; import { fetchDeliveries, fetchAppLocations, getRiderPeriodicLogs, fetchRidersLogs, fetchBatchEfficiency } from '../api/api'; import { STATUS_STYLES, @@ -1819,7 +1818,7 @@ const Dispatch = ({ queryKey: ['deliveryLogs', deliveryid], queryFn: async () => { const res = await axios.get( - `${process.env.REACT_APP_URL3}/deliveries/getdeliverylogs/?deliveryid=${deliveryid}` + `${process.env.REACT_APP_URL}/deliveries/getdeliverylogs/?deliveryid=${deliveryid}` ); // Accept several possible response shapes — the live API has shipped // {details:[…]}, plain arrays, and {data:[…]} variants over time, and @@ -2103,7 +2102,7 @@ const Dispatch = ({ setOsrmRoutes(prev => ({ ...prev, [cacheKey]: false })); } } catch (e) { - console.error('OSRM Fetch error:', e); + logger.error('OSRM Fetch error:', e); osrmRoutesRef.current[cacheKey] = false; setOsrmRoutes(prev => ({ ...prev, [cacheKey]: false })); } @@ -2174,7 +2173,7 @@ const Dispatch = ({ } } } catch (e) { - console.warn('OSRM Match error, trying route fallback:', e); + logger.warn('OSRM Match error, trying route fallback:', e); } // Attempt 2 — waypoint routing through a coarser subsample. Always @@ -2194,7 +2193,7 @@ const Dispatch = ({ } storeFailure(); } catch (e) { - console.error('OSRM Route fallback error:', e); + logger.error('OSRM Route fallback error:', e); storeFailure(); } }, []); diff --git a/src/pages/nearle/dispatch/Preview.js b/src/pages/nearle/dispatch/Preview.js index c372f8f..0ac7916 100644 --- a/src/pages/nearle/dispatch/Preview.js +++ b/src/pages/nearle/dispatch/Preview.js @@ -1,25 +1,17 @@ import React, { useEffect, useMemo, useState } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; -import { - Backdrop, - Box, - Button, - Card, - Chip, - IconButton, - Stack, - Tab, - Tabs, - Tooltip, - Typography -} from '@mui/material'; import { useMutation } from '@tanstack/react-query'; import dayjs from 'dayjs'; -import ArrowBackIcon from '@mui/icons-material/ArrowBack'; import { HiOutlineArrowLeft } from 'react-icons/hi'; import { IoReload } from 'react-icons/io5'; import { MdTwoWheeler } from 'react-icons/md'; +import { Button } from '@astryxdesign/core/Button'; +import { IconButton } from '@astryxdesign/core/IconButton'; +import { Tooltip } from '@astryxdesign/core/Tooltip'; +import { Stack } from '@astryxdesign/core/Stack'; +import { Heading } from '@astryxdesign/core/Heading'; + import { createAutomationDeliveries, createOptimisationDeliveries, @@ -32,6 +24,7 @@ import CSVExport from 'components/third-party/ReactTable'; import CircularLoader from 'components/nearle_components/CircularLoader'; import Dispatch from './Dispatch'; import { stepColor } from './dispatchShared'; +import { BRAND, DT } from '../_shared/ordersDesign'; const tuningTypes = [ { tuneid: 1, type: 'Balanced', value: 'balanced' }, @@ -416,81 +409,79 @@ const Preview = () => { }; return ( - - theme.zIndex.modal + 1 }} - open={isLoading} - > - - + {isLoading && ( +
+ +
+ )} - - - - + + + } + variant="secondary" onClick={() => navigate('/nearle/orders')} - sx={{ - bgcolor: '#ffffff', - border: '1px solid #e2e8f0', - color: '#662582', - boxShadow: '0 2px 8px rgba(0, 0, 0, 0.04)', - '&:hover': { bgcolor: '#f8fafc', borderColor: '#662582' } + style={{ + backgroundColor: '#ffffff', + border: `1px solid ${DT.borderSubtle}`, + color: BRAND, + boxShadow: '0 2px 8px rgba(0, 0, 0, 0.04)' }} - > - - + /> - + Assign Orders - + + /> - + - +
{dispatchPreviewData && ( { embedded /> )} - +
-
+ + ); }; diff --git a/src/pages/nearle/invoice/invoice.js b/src/pages/nearle/invoice/invoice.js index 368557c..03c54be 100644 --- a/src/pages/nearle/invoice/invoice.js +++ b/src/pages/nearle/invoice/invoice.js @@ -1,42 +1,25 @@ import React, { useEffect, useState, useRef } from 'react'; -import { - Avatar, - Box, - Grid, - IconButton, - Paper, - Stack, - Table, - TableBody, - TableCell, - TableContainer, - TableHead, - TablePagination, - TableRow, - Tooltip, - Typography, - Skeleton, - InputBase -} from '@mui/material'; +import { IconButton } from '@astryxdesign/core/IconButton'; +import { Tooltip } from '@astryxdesign/core/Tooltip'; +import { Pagination } from '@astryxdesign/core/Pagination'; import axios from 'axios'; import dayjs from 'dayjs'; import { useNavigate } from 'react-router-dom'; +import { Skeleton } from 'antd'; import { MdReceiptLong, - MdAccessTime, MdCheckCircle, MdHourglassEmpty, - MdWarning, MdSearch, MdClear, MdVisibility, MdInventory2, - MdCalendarMonth, MdEventBusy } from 'react-icons/md'; import Loader from 'components/Loader'; +import logger from 'utils/logger'; // ============================================================================ // Design tokens — shared with the rest of the redesigned operator pages. // ============================================================================ @@ -60,15 +43,17 @@ const soft = (c) => dtA(c, '18'); const ring = (c) => dtA(c, '26'); const edge = (c) => dtA(c, '55'); -const BRAND = '#662582'; -const BRAND_LIGHT = '#9255AB'; +const BRAND = '#C01227'; +const BRAND_LIGHT = '#D25463'; + +const noWrapStyle = { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }; // Status palette for the four invoice buckets. const INVOICE_STATUS_TABS = [ - { idx: 0, billStatus: 0, label: 'All', color: BRAND, icon: MdReceiptLong, countKey: 'totalcount' }, - { idx: 1, billStatus: 1, label: 'Open', color: '#f59e0b', icon: MdHourglassEmpty, countKey: 'pendingcount' }, - { idx: 2, billStatus: 2, label: 'Overdue', color: '#ef4444', icon: MdEventBusy, countKey: 'overduecount' }, - { idx: 3, billStatus: 3, label: 'Paid', color: '#10b981', icon: MdCheckCircle, countKey: 'paidcount' } + { idx: 0, billStatus: 0, label: 'All', color: BRAND, icon: MdReceiptLong, countKey: 'totalcount' }, + { idx: 1, billStatus: 1, label: 'Open', color: BRAND, icon: MdHourglassEmpty, countKey: 'pendingcount' }, + { idx: 2, billStatus: 2, label: 'Overdue', color: BRAND, icon: MdEventBusy, countKey: 'overduecount' }, + { idx: 3, billStatus: 3, label: 'Paid', color: BRAND, icon: MdCheckCircle, countKey: 'paidcount' } ]; function formatNumberToRupees(value) { @@ -79,6 +64,17 @@ function formatNumberToRupees(value) { }).format(value || 0); } +// Brand-styled scrollbar + row hover reused across the page. +const scrollbarStyle = ` + .inv-scroll::-webkit-scrollbar { width: 10px; height: 10px; } + .inv-scroll::-webkit-scrollbar-thumb { background-color: ${edge(BRAND)}; border-radius: 8px; } + .inv-scroll::-webkit-scrollbar-thumb:hover { background-color: ${BRAND}; } + .inv-scroll::-webkit-scrollbar-track { background-color: ${DT.surfaceAlt}; } + .inv-row:hover { background-color: ${tint(BRAND)}; box-shadow: inset 3px 0 0 ${BRAND}; } + .inv-kpi-card:hover { transform: translateY(-1px); box-shadow: ${DT.shadowMd}; } + .inv-search-pill:focus-within { border-color: ${BRAND} !important; box-shadow: 0 0 0 3px ${ring(BRAND)}; } +`; + const Invoice = () => { const navigate = useNavigate(); const [page, setPage] = useState(0); @@ -114,9 +110,9 @@ const Invoice = () => { return () => clearTimeout(t); }, [search]); - const handleChangePage = (event, newPage) => setPage(newPage); - const handleChangeRowsPerPage = (event) => { - setRowsPerPage(+event.target.value); + const handleChangePage = (newPage) => setPage(newPage - 1); + const handleChangeRowsPerPage = (newRowsPerPage) => { + setRowsPerPage(newRowsPerPage); setPage(0); }; @@ -126,7 +122,7 @@ const Invoice = () => { const insightResponse = await axios.get(`${process.env.REACT_APP_URL}/invoice/getinvoiceinsight/?tenantid=${tenid}`); setInsightdata(insightResponse.data.details || {}); } catch (error) { - console.log('insightResponse', error); + logger.error('insightResponse', error); } }; useEffect(() => { @@ -141,7 +137,7 @@ const Invoice = () => { const deliveyResponse = await axios.get(url); setDeliveryList(deliveyResponse.data.details || []); } catch (error) { - console.log('fetchdeliverylist', error); + logger.error('fetchdeliverylist', error); } finally { setIsLoader(false); } @@ -171,436 +167,363 @@ const Invoice = () => { return ( <> + + {isloader && } {/* ============================================= || Header (compact) || ============================================= */} - - - +
- - - - Invoices - - - +
+ Invoices +
+ - + Live · {INVOICE_STATUS_TABS[value].label} - - - - - + +
+
+
+ {/* ============================================= || KPI Cards (compact, clickable) || ============================================= */} - +
{kpiCards.map((item) => { const Icon = item.icon; const active = value === item.idx; return ( - - handleChangetab(item.idx)} - sx={{ - cursor: 'pointer', - position: 'relative', - overflow: 'hidden', - px: { xs: 1.25, sm: 1.5 }, - py: { xs: 0.875, sm: 1.125 }, - borderRadius: 2, - border: '1px solid', - borderColor: active ? edge(item.color) : DT.borderSubtle, - background: '#fff', - boxShadow: active ? `0 4px 14px ${ring(item.color)}` : 'none', - transition: 'transform 0.15s, box-shadow 0.15s, border-color 0.15s', - '&:hover': { - transform: 'translateY(-1px)', - boxShadow: DT.shadowMd, - borderColor: edge(item.color) - } - }} - > - - - - - {item.label} Invoices - - - {insightdata && insightdata[item.countKey] != null ? ( - insightdata[item.countKey] - ) : ( - - )} - - - handleChangetab(item.idx)} + onKeyDown={(e) => (e.key === 'Enter' || e.key === ' ') && handleChangetab(item.idx)} + style={{ + cursor: 'pointer', + position: 'relative', + overflow: 'hidden', + padding: '10px 14px', + borderRadius: 8, + border: `1px solid ${active ? edge(item.color) : DT.borderSubtle}`, + background: '#fff', + boxShadow: active ? `0 4px 14px ${ring(item.color)}` : 'none', + transition: 'transform 0.15s, box-shadow 0.15s, border-color 0.15s' + }} + > +
+
+
+ - - - - - + {item.label} Invoices + + + {insightdata && insightdata[item.countKey] != null ? ( + insightdata[item.countKey] + ) : ( + + )} + +
+
+ +
+
+
); })} -
+
{/* ============================================= || Status Tabs + Search (compact) || ============================================= */} - - - +
+
{INVOICE_STATUS_TABS.map((t) => { const Icon = t.icon; const active = value === t.idx; const count = insightdata?.[t.countKey] ?? 0; return ( - handleChangetab(t.idx)} - sx={{ + onKeyDown={(e) => (e.key === 'Enter' || e.key === ' ') && handleChangetab(t.idx)} + style={{ display: 'inline-flex', alignItems: 'center', - gap: { xs: 0.625, md: 0.875 }, - pl: 0.5, - pr: { xs: 1, md: 1.25 }, - py: 0.5, + gap: 7, + paddingLeft: 4, + paddingRight: 10, + paddingTop: 4, + paddingBottom: 4, flexShrink: 0, cursor: 'pointer', borderRadius: 999, border: `1.5px solid ${active ? t.color : edge(t.color)}`, - bgcolor: active ? t.color : tint(t.color), + backgroundColor: active ? t.color : tint(t.color), color: active ? '#fff' : t.color, fontWeight: 700, boxShadow: active ? `0 6px 18px ${ring(t.color)}` : 'none', - transition: 'all 0.18s', - '&:hover': { - borderColor: t.color, - boxShadow: active ? `0 6px 18px ${ring(t.color)}` : `0 0 0 3px ${ring(t.color)}` - } + transition: 'all 0.18s' }} > - - - - {t.label} - - + {t.label} + {count} - - + +
); })} - +
- - +
- setSearch(e.target.value)} autoComplete="off" - sx={{ + style={{ flex: 1, fontSize: 13, fontWeight: 600, color: DT.textPrimary, - '& input::placeholder': { color: DT.textMuted, opacity: 1 } + border: 'none', + outline: 'none', + background: 'transparent' }} /> {search && ( - setSearch('')} sx={{ p: 0.25, color: BRAND }}> - - + } + variant="ghost" + size="sm" + onClick={() => setSearch('')} + style={{ color: BRAND }} + /> )} - - - - +
+ + + {/* ============================================= || Table (dense, sticky header) || ============================================= */} - - - - - - # - Client - Invoice Id - Invoice Date - Due Date - Count - Amount - Action - - +
+
+ + + {['#', 'Client', 'Invoice Id', 'Invoice Date', 'Due Date', 'Count', 'Amount', 'Action'].map((h, i) => ( + + ))} + + - - {isloader && filteredList.length === 0 && ( + + {isloader && + filteredList.length === 0 && Array.from({ length: 10 }).map((_, idx) => ( - + {Array.from({ length: 8 }).map((__, ci) => ( - - - + ))} - - )) - )} + + ))} {!isloader && filteredList.length === 0 && ( - - - - + + )} {filteredList.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage).map((item, index) => { const tabMeta = INVOICE_STATUS_TABS[value]; return ( - { setIsLoader(true); setTimeout(() => { @@ -609,31 +532,28 @@ const Invoice = () => { }, 300); }} > - - - {page * rowsPerPage + index + 1} - - + - - + - - + { }} > {item.invoiceno} - - + + - + - + - - + { }} > {item.itemcount ?? 0} - - + + - - + - - + + ); })} - -
+ {h} +
+ +
+
+
- - +
+ No {INVOICE_STATUS_TABS[value].label.toLowerCase()} invoices - - + + {search ? 'Try a different invoice number or clear the search.' : 'Switch tabs above to load invoices.'} - + {search && ( - setSearch('')} - sx={{ - mt: 0.5, + style={{ + marginTop: 4, border: 'none', cursor: 'pointer', display: 'inline-flex', alignItems: 'center', - gap: 0.5, + gap: 4, height: 28, - px: 1, + padding: '0 8px', fontSize: 12, fontWeight: 700, color: BRAND, - borderRadius: 1.25, - background: 'transparent', - '&:hover': { bgcolor: tint(BRAND) } + borderRadius: 6, + background: 'transparent' }} > Clear search - + )} - - - +
+
+ {page * rowsPerPage + index + 1} + +
{item.tenantname} - - +
+
{item.contactperson} - - +
+
{item.transactiondate ? ( - - +
+ {dayjs(item.transactiondate).format('hh:mm A')} - - + + {dayjs(item.transactiondate).format('DD MMM YYYY')} - - + +
) : ( - + )} - +
{item.duedate ? ( - - +
+ {dayjs(item.duedate).format('hh:mm A')} - - + + {dayjs(item.duedate).format('DD MMM YYYY')} - - + +
) : ( - + )} - +
+ {formatNumberToRupees(item.totalamount)} - - + + + } + size="sm" onClick={(e) => { e.stopPropagation(); setIsLoader(true); @@ -713,43 +634,35 @@ const Invoice = () => { navigate('/nearle/invoice/preview', { state: item }); }, 300); }} - sx={{ - bgcolor: tint(BRAND), + style={{ + backgroundColor: tint(BRAND), border: `1px solid ${edge(BRAND)}`, color: BRAND, - borderRadius: 999, - p: 0.75, - '&:hover': { - bgcolor: soft(BRAND), - borderColor: BRAND - } + borderRadius: 999 }} - > - - + /> - - +
-
+ + + - -
+
+ +
+ ); }; diff --git a/src/pages/nearle/invoice/invoicePreview.js b/src/pages/nearle/invoice/invoicePreview.js index c38c7b8..7773676 100644 --- a/src/pages/nearle/invoice/invoicePreview.js +++ b/src/pages/nearle/invoice/invoicePreview.js @@ -1,61 +1,58 @@ import React, { useRef, useState, useEffect } from 'react'; import { useLocation } from 'react-router-dom'; -import { useTheme } from '@mui/material/styles'; // import nearleLogo from '../../assets/images/nearleLogo.png'; -import logo_nearle1 from '../../../assets/images/logo-nearle1.png'; +import logo_nearle1 from '../../../assets/images/doormile-mark.png'; import axios from 'axios'; import dayjs from 'dayjs'; import Loader from 'components/Loader'; import { enqueueSnackbar } from 'notistack'; -import { DownloadOutlined, PrinterFilled } from '@ant-design/icons'; -import ReactToPrint, { useReactToPrint } from 'react-to-print'; -import { SearchOutlined, LeftOutlined, RightOutlined } from '@ant-design/icons'; -import ArrowBackIcon from '@mui/icons-material/ArrowBack'; -// import jsPDF from 'jspdf'; +import { PrinterFilled } from '@ant-design/icons'; +import { useReactToPrint } from 'react-to-print'; import { useNavigate } from 'react-router-dom'; import { FaArrowLeft } from 'react-icons/fa6'; -import { FaIndianRupeeSign } from 'react-icons/fa6'; +// import jsPDF from 'jspdf'; +import logger from 'utils/logger'; // import autoTable from 'jspdf-autotable'; -import { - Grid, - Button, - Divider, - Table, - TableBody, - TableCell, - TableContainer, - TableHead, - TablePagination, - TableRow, - Tabs, - Tab, - Typography, - Box, - OutlinedInput, - InputAdornment, - IconButton, - Tooltip, - Dialog, - DialogTitle, - DialogContent, - Stack, - Chip, - DialogActions, - TextField -} from '@mui/material'; +import { Button } from '@astryxdesign/core/Button'; +import { IconButton } from '@astryxdesign/core/IconButton'; +import { Tooltip } from '@astryxdesign/core/Tooltip'; +import { Badge } from '@astryxdesign/core/Badge'; +import { Dialog, DialogHeader } from '@astryxdesign/core/Dialog'; +import { Layout, LayoutContent, LayoutFooter } from '@astryxdesign/core/Layout'; +import { TextInput } from '@astryxdesign/core/TextInput'; +import { TextArea } from '@astryxdesign/core/TextArea'; + +// ============================================================================ +// Design tokens — kept in sync with the Invoices list page (invoice.js) so the +// list → preview flow reads as one surface. +// ============================================================================ +const DT = { + textPrimary: '#0f172a', + textSecondary: '#64748b', + textMuted: '#94a3b8', + borderSubtle: '#e2e8f0', + divider: '#f1f5f9', + surfaceAlt: '#f8fafc' +}; +const dtA = (c, suffix) => `${c}${suffix}`; +const soft = (c) => dtA(c, '18'); + +const BRAND = '#C01227'; +const SUCCESS = '#10b981'; +const ERROR = '#ef4444'; const InvoicePreview = () => { const [selected, setselected] = useState({}); const location = useLocation(); const navigate = useNavigate(); - console.log('previewSelect', location.state); + logger.info('previewSelect', location.state); const componentRef = useRef(null); + const handlePrint = useReactToPrint({ contentRef: componentRef }); const [tabletype, settabletype] = useState(true); const [paydialog, setpaydialog] = useState(false); const [refnumber, setRefnumber] = useState(''); const [remarks, setRemarks] = useState(''); - const theme = useTheme(); useEffect(() => { setselected(location.state); }, []); @@ -70,8 +67,8 @@ const InvoicePreview = () => { } useEffect(() => { - console.log('refnumber', refnumber); - console.log('remarks', remarks); + logger.info('refnumber', refnumber); + logger.info('remarks', remarks); }, [refnumber, remarks]); // ================================================= || updatePayment || ================================================= @@ -92,390 +89,311 @@ const InvoicePreview = () => { autoHideDuration: 1000 }); } - console.log('updateResponse', updateResponse); + logger.info('updateResponse', updateResponse); } catch (error) { - console.log('updateResponse', error); + logger.error('updateResponse', error); } }; return ( <> - +
{/* // ================================================= || Invoice Details || ================================================= */} - - +
+ } + variant="ghost" onClick={() => { navigate('/nearle/invoice'); }} - > - - + style={{ color: BRAND }} + /> - - - Invoice Details - - + Invoice Details + - - +
+
- +
{/* */} - ( - - )} - content={() => componentRef.current} - /> - - + /> */} +
+ {/* // ================================================= || Date row || ================================================= */} - +
- - - +
+
- - - {' '} - +
+
+ Nearle{' '} +
- - - Invoice No : - - {`${'\u00a0\u00a0'}${selected.invoiceno}`} - - - - - - Date :{' '} - - - {dayjs(selected.transactiondate).format('DD-MM-YYYY')} - - - - - Due Date : - - {dayjs(selected.dueDate).format('DD-MM-YYYY')} - - - +
+ Invoice No : + {`${'  '}${selected.invoiceno}`} +
+
+
+
+ Date : + {dayjs(selected.transactiondate).format('DD-MM-YYYY')} +
+
+ Due Date : + {dayjs(selected.duedate).format('DD-MM-YYYY')} +
+
+
{/* // ================================================= || from to || ================================================= */} - - - - - - - - From: - - Nearle Technology Privite Limited. - - 424, 4thfloor, - - Red rose towers, - DB Road, RS Puram, - 641002. - care@nearle.in - 9047968666 - - - - - - - - - - - - To: - - {selected.tenantname} - {selected.address} - {selected.suburb} - {selected.city} - {selected.state}{' '} - - - - - - - - - +
+
+
+
+ From: +
+ Nearle Technology Privite Limited. + + 424, 4thfloor, + + Red rose towers, + DB Road, RS Puram, + 641002. + care@nearle.in + 9047968666 +
+
+
+ +
+
+ To: +
+ {selected.tenantname} + {selected.address} + {selected.suburb} + {selected.city} + {selected.state}{' '} +
+
+
+
+
+
{/* // ================================================= || invoice table || ================================================= */} - - - - - S.No - Particulars - Unit - Quantity - Rate - {/* {selected && selected.pricingtypeid === 73 && ( */} - Other Charges - {/* )} */} - Amount - - +
+
+ + + {['S.No', 'Particulars', 'Unit', 'Quantity', 'Rate', 'Other Charges', 'Amount'].map((h, i) => ( + + ))} + + {selected.tenantsalesdetails && ( - - - 1 - - + + + + + - - {`${selected.tenantsalesdetails[0].quantity}km`} - - - {`₹ ${selected.tenantsalesdetails[0].baserate.toFixed(2)}`} - - {/* {selected.tenantsalesdetails[0].pricingtypeid == 73 && ( */} - - {`₹ ${selected.tenantsalesdetails[0].othercharges}.00`} - - {/* )} */} - - {`₹ ${selected.tenantsalesdetails[0].amount}.00`} - - - + + + + + + )} -
+ {h} +
1 + {`Invoice from ${dayjs(selected.tenantsalesdetails[0].fromdate).format('DD-MM-YYYY')} to ${dayjs( selected.tenantsalesdetails[0].todate ).format('DD-MM-YYYY')}`} - - - - {selected.tenantsalesdetails[0].pricingtype} - + + + {selected.tenantsalesdetails[0].pricingtype} + + {`${selected.tenantsalesdetails[0].quantity}km`} + + {`₹ ${selected.tenantsalesdetails[0].baserate.toFixed(2)}`} + + {`₹ ${selected.tenantsalesdetails[0].othercharges}.00`} + + {`₹ ${selected.tenantsalesdetails[0].amount}.00`} +
-
- - - - - - - Sub Total: - {formatNumberToRupees(selected.salesamount)} - - - Discount: - + +
+
+
+
+
+
+
+ Sub Total: + {formatNumberToRupees(selected.salesamount)} +
+
+ Discount: + - {formatNumberToRupees(selected.discountamt)} - - - - Tax: - + +
+
+ Tax: + + {formatNumberToRupees(selected.taxamount)} - - - - - Grand Total: - - {formatNumberToRupees(Math.round(selected.totalamount))} - - - - - - - - - Notes: {selected.remarks} - + +
+
+ Grand Total: + + {formatNumberToRupees(Math.round(selected.totalamount))} + +
+
+
+
+
+
+
+
+ Notes: {selected.remarks} +
- +
- +
{/* ================================================= || updatePayment Dialog || ================================================= */} { - setpaydialog(false); + isOpen={paydialog} + onOpenChange={(open) => { + setpaydialog(open); }} - maxWidth={'sm'} - fullWidth + width={440} + purpose="form" > - - - - ₹ - - - Update Payment - - - - - - Reference No - { - setRefnumber(e.target.value); - }} + setpaydialog(open)} + style={{ backgroundColor: BRAND, color: '#fff' }} /> - - - Remarks - { - setRemarks(e.target.value); - }} - /> - - - - - - + } + content={ + +
+ { + setRefnumber(v); + }} + /> +