diff --git a/.DS_Store b/.DS_Store index 2ec0758..9b5e60b 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/api/package.json b/api/package.json index 73789d8..187a348 100644 --- a/api/package.json +++ b/api/package.json @@ -28,7 +28,7 @@ "@nestjs/core": "^10.0.0", "@nestjs/passport": "^10.0.3", "@nestjs/platform-express": "^10.0.0", - "@noahspan/noahspan-modules": "^0.2.7", + "@noahspan/noahspan-modules": "^0.3.4", "@schematics/angular": "^17.3.7", "dotenv": "^16.4.5", "reflect-metadata": "0.1.13", diff --git a/api/src/app.controller.ts b/api/src/app.controller.ts index 95bf557..5b953a1 100644 --- a/api/src/app.controller.ts +++ b/api/src/app.controller.ts @@ -1,4 +1,4 @@ -import { Controller, Get, Query } from '@nestjs/common'; +import { Controller, Get, Headers, Query } from '@nestjs/common'; import { AppConfigService, MsGraphService, @@ -42,12 +42,14 @@ export class AppController { async getProfilePhoto(@Query() query: any): Promise {} @Get('userProfile') - async getUserProfile(@Query() query: any) { + async getUserProfile(@Headers() headers: any) { try { - const username: string = query.username; + const graphToken: string = await this.msGraphService.getMsGraphAuth( + headers.authorization.replace('Bearer ', '') + ); const client: MsGraphClient = - await this.msGraphService.getMsGraphClient(); - const userProfile = await client.api(`users/${username}`).get(); + await this.msGraphService.getMsGraphClientDelegated(graphToken); + const userProfile = await client.api(`me`).get(); return userProfile; } catch (error) { diff --git a/api/src/app.module.ts b/api/src/app.module.ts index 53f84ba..a942edc 100644 --- a/api/src/app.module.ts +++ b/api/src/app.module.ts @@ -9,6 +9,8 @@ import { } from '@noahspan/noahspan-modules'; import { ConfigModule } from '@nestjs/config'; import { APP_GUARD } from '@nestjs/core'; +import { PilotModule } from './pilot/pilot.module'; +import { PilotController } from './pilot/pilot.controller'; @Module({ imports: [ @@ -28,9 +30,10 @@ import { APP_GUARD } from '@nestjs/core'; tenantId: process.env.TENANT_ID, clientId: process.env.CLIENT_ID, clientSecret: process.env.CLIENT_SECRET - }) + }), + PilotModule ], - controllers: [AppController], + controllers: [AppController, PilotController], providers: [ { provide: APP_GUARD, diff --git a/api/src/pilot/certificate/certificate.entity.ts b/api/src/pilot/certificate/certificate.entity.ts new file mode 100644 index 0000000..e578c08 --- /dev/null +++ b/api/src/pilot/certificate/certificate.entity.ts @@ -0,0 +1,7 @@ +export class Certificate { + partitionKey: string; + rowKey: string; + type: string; + issueDate: Date; + number?: string; +} diff --git a/api/src/pilot/certificate/certificate.service.ts b/api/src/pilot/certificate/certificate.service.ts new file mode 100644 index 0000000..1cd384a --- /dev/null +++ b/api/src/pilot/certificate/certificate.service.ts @@ -0,0 +1,37 @@ +import { Injectable } from '@nestjs/common'; +import { Repository, InjectRepository } from '@nestjs/azure-database'; +import { Certificate } from './certificate.entity'; + +@Injectable() +export class CertificateService { + private readonly partitionKey: string = 'certificate'; + + constructor( + @InjectRepository(Certificate) + private readonly certificateRepository: Repository + ) {} + + async find(rowKey: string): Promise { + return await this.certificateRepository.find(this.partitionKey, rowKey); + } + + async findAll(): Promise { + return await this.certificateRepository.findAll(); + } + + async create(certificate: Certificate): Promise { + return await this.certificateRepository.create(certificate); + } + + async update(rowKey: string, certificate: Certificate): Promise { + return await this.certificateRepository.update( + this.partitionKey, + rowKey, + certificate + ); + } + + async delete(rowKey: string): Promise { + await this.certificateRepository.delete(this.partitionKey, rowKey); + } +} diff --git a/api/src/pilot/endorsement/endorsement.entity.ts b/api/src/pilot/endorsement/endorsement.entity.ts new file mode 100644 index 0000000..8d37866 --- /dev/null +++ b/api/src/pilot/endorsement/endorsement.entity.ts @@ -0,0 +1,6 @@ +export class Endorsement { + partitionkey: string; + rowKey: string; + type: string; + issueDate: Date; +} diff --git a/api/src/pilot/endorsement/endosement.service.ts b/api/src/pilot/endorsement/endosement.service.ts new file mode 100644 index 0000000..9e6a2c6 --- /dev/null +++ b/api/src/pilot/endorsement/endosement.service.ts @@ -0,0 +1,37 @@ +import { InjectRepository, Repository } from '@nestjs/azure-database'; +import { Injectable } from '@nestjs/common'; +import { Endorsement } from './endorsement.entity'; + +@Injectable() +export class EndosementService { + private readonly partitionKey: string = 'endorsement'; + + constructor( + @InjectRepository(Endorsement) + private readonly endorsementRepository: Repository + ) {} + + async find(rowKey: string): Promise { + return await this.endorsementRepository.find(this.partitionKey, rowKey); + } + + async findAll(): Promise { + return await this.endorsementRepository.findAll(); + } + + async create(endorsement: Endorsement): Promise { + return await this.endorsementRepository.create(endorsement); + } + + async update(rowKey: string, endorsement: Endorsement): Promise { + return await this.endorsementRepository.update( + this.partitionKey, + rowKey, + endorsement + ); + } + + async delete(rowKey: string): Promise { + await this.endorsementRepository.delete(this.partitionKey, rowKey); + } +} diff --git a/api/src/pilot/medical/medical.entity.ts b/api/src/pilot/medical/medical.entity.ts new file mode 100644 index 0000000..bff88d9 --- /dev/null +++ b/api/src/pilot/medical/medical.entity.ts @@ -0,0 +1,6 @@ +export class Medical { + partitionKey: string; + rowKey: string; + certificateClass: string; + certificateExpiration: Date; +} diff --git a/api/src/pilot/medical/medical.service.ts b/api/src/pilot/medical/medical.service.ts new file mode 100644 index 0000000..602741f --- /dev/null +++ b/api/src/pilot/medical/medical.service.ts @@ -0,0 +1,33 @@ +import { Injectable } from '@nestjs/common'; +import { Repository, InjectRepository } from '@nestjs/azure-database'; +import { Medical } from './medical.entity'; + +@Injectable() +export class MedicalService { + private readonly partitionKey: string = 'medical'; + + constructor( + @InjectRepository(Medical) + private readonly profileRepository: Repository + ) {} + + async find(rowKey: string): Promise { + return this.profileRepository.find(this.partitionKey, rowKey); + } + + async findAll(): Promise { + return this.profileRepository.findAll(); + } + + async create(profile: Medical): Promise { + return this.profileRepository.create(profile); + } + + async update(rowKey: string, profile: Medical): Promise { + return this.profileRepository.update(this.partitionKey, rowKey, profile); + } + + async delete(rowKey: string) { + return this.profileRepository.delete(this.partitionKey, rowKey); + } +} diff --git a/api/src/pilot/pilot.controller.ts b/api/src/pilot/pilot.controller.ts new file mode 100644 index 0000000..8c5f0a1 --- /dev/null +++ b/api/src/pilot/pilot.controller.ts @@ -0,0 +1,18 @@ +import { Body, Controller, Get, Post, Put, Query } from '@nestjs/common'; +import { Public } from '@noahspan/noahspan-modules'; +import { PilotDTO } from './pilot.dto'; +import { Pilot } from './pilot.entity'; + +@Controller('pilots') +export class PilotController { + constructor() {} + + @Public() + @Post() + async createPilot(@Body() pilotDto: PilotDTO) { + const pilot = new Pilot(); + Object.assign(pilot, pilotDto); + + console.log(pilot); + } +} diff --git a/api/src/pilot/pilot.dto.ts b/api/src/pilot/pilot.dto.ts new file mode 100644 index 0000000..92071ba --- /dev/null +++ b/api/src/pilot/pilot.dto.ts @@ -0,0 +1,11 @@ +import { Certificate } from './certificate/certificate.entity'; +import { Endorsement } from './endorsement/endorsement.entity'; +import { Medical } from './medical/medical.entity'; +import { Profile } from './profile/profile.entity'; + +export class PilotDTO { + profile?: Profile; + medical?: Medical; + certificate?: Certificate; + endosement?: Endorsement; +} diff --git a/api/src/pilot/pilot.entity.ts b/api/src/pilot/pilot.entity.ts new file mode 100644 index 0000000..42a7346 --- /dev/null +++ b/api/src/pilot/pilot.entity.ts @@ -0,0 +1,11 @@ +import { Certificate } from './certificate/certificate.entity'; +import { Endorsement } from './endorsement/endorsement.entity'; +import { Medical } from './medical/medical.entity'; +import { Profile } from './profile/profile.entity'; + +export class Pilot { + profile: Profile; + medical: Medical; + certificates: Certificate; + endorsements: Endorsement; +} diff --git a/api/src/pilot/pilot.module.ts b/api/src/pilot/pilot.module.ts new file mode 100644 index 0000000..77a4bdf --- /dev/null +++ b/api/src/pilot/pilot.module.ts @@ -0,0 +1,17 @@ +import { Module } from '@nestjs/common'; +import { PilotController } from './pilot.controller'; +import { PilotService } from './pilot.service'; +import { AzureTableStorageModule } from '@nestjs/azure-database'; +import { Pilot } from './pilot.entity'; + +@Module({ + imports: [ + AzureTableStorageModule.forFeature(Pilot, { + table: 'Pilot', + createTableIfNotExists: true + }) + ], + controllers: [PilotController], + providers: [PilotService] +}) +export class PilotModule {} diff --git a/api/src/pilot/pilot.service.ts b/api/src/pilot/pilot.service.ts new file mode 100644 index 0000000..9137848 --- /dev/null +++ b/api/src/pilot/pilot.service.ts @@ -0,0 +1,17 @@ +import { Inject, Injectable } from '@nestjs/common'; +import { Repository, InjectRepository } from '@nestjs/azure-database'; +import { Medical } from './medical/medical.entity'; +import { Profile } from './profile/profile.entity'; +import { ProfileService } from './profile/profile.service'; +import { Pilot } from './pilot.entity'; + +@Injectable() +export class PilotService { + constructor( + @InjectRepository(Pilot) private readonly pilotRepository: Repository + ) {} + + async create(pilot: Pilot): Promise { + return await this.pilotRepository.create(pilot); + } +} diff --git a/api/src/pilot/profile/profile.entity.ts b/api/src/pilot/profile/profile.entity.ts new file mode 100644 index 0000000..a1a183c --- /dev/null +++ b/api/src/pilot/profile/profile.entity.ts @@ -0,0 +1,11 @@ +export class Profile { + partitionKey: string; + rowKey: string; + firstName: string; + lastName: string; + address: string; + city: string; + state: string; + postalCode: string; + lastFlightReview: Date; +} diff --git a/api/src/pilot/profile/profile.service.ts b/api/src/pilot/profile/profile.service.ts new file mode 100644 index 0000000..8d5cc00 --- /dev/null +++ b/api/src/pilot/profile/profile.service.ts @@ -0,0 +1,37 @@ +import { Injectable } from '@nestjs/common'; +import { Repository, InjectRepository } from '@nestjs/azure-database'; +import { Profile } from './profile.entity'; + +@Injectable() +export class ProfileService { + private readonly partitionKey: string = 'profile'; + + constructor( + @InjectRepository(Profile) + private readonly profileRepository: Repository + ) {} + + async find(rowKey: string): Promise { + return await this.profileRepository.find(this.partitionKey, rowKey); + } + + async findAll(): Promise { + return await this.profileRepository.findAll(); + } + + async create(profile: Profile): Promise { + return await this.profileRepository.create(profile); + } + + async update(rowKey: string, profile: Profile): Promise { + return await this.profileRepository.update( + this.partitionKey, + rowKey, + profile + ); + } + + async delete(rowKey: string): Promise { + await this.profileRepository.delete(this.partitionKey, rowKey); + } +} diff --git a/app/package.json b/app/package.json index 3512c5b..410ae3d 100644 --- a/app/package.json +++ b/app/package.json @@ -10,13 +10,13 @@ "preview": "vite preview" }, "dependencies": { - "@azure/msal-react": "^2.0.15", + "@azure/msal-browser": "^3.17.0", + "@azure/msal-react": "^2.0.19", "@fortawesome/fontawesome-svg-core": "^6.5.2", "@fortawesome/free-regular-svg-icons": "^6.5.2", "@fortawesome/free-solid-svg-icons": "^6.5.2", "@fortawesome/react-fontawesome": "^0.2.2", - "@nextui-org/react": "^2.3.6", - "@noahspan/noahspan-components": "^0.2.5", + "@noahspan/noahspan-components": "^0.3.0", "axios": "^1.7.2", "framer-motion": "^11.1.7", "react": "^18.2.0", @@ -25,6 +25,7 @@ "react-router-dom": "^6.23.0" }, "devDependencies": { + "@microsoft/microsoft-graph-types": "^2.40.0", "@types/react": "^18.2.66", "@types/react-dom": "^18.2.22", "@vitejs/plugin-react": "^4.2.1", diff --git a/app/src/App.tsx b/app/src/App.tsx index 2a6971f..3eb41b1 100644 --- a/app/src/App.tsx +++ b/app/src/App.tsx @@ -5,10 +5,25 @@ import { useAppContext } from './hooks/appContext/UseAppContext'; import { AxiosInstance, AxiosResponse } from 'axios'; import { useHttpClient } from './hooks/httpClient/UseHttpClient'; import { useFeatureFlag } from './hooks/featureFlag/UseFeatureFlag'; +import { useMsal } from '@azure/msal-react'; +import SiteNav from './components/siteNav/SiteNav'; +import { EventMessage, EventPayload, EventType } from '@azure/msal-browser'; +import { User } from '@microsoft/microsoft-graph-types'; + +type EventPayloadExtended = EventPayload & { accessToken: string }; const App: React.FC = () => { const httpClient: AxiosInstance = useHttpClient(); const appContext = useAppContext(); + const { instance } = useMsal(); + const handleSignIn = async () => { + await instance.loginRedirect({ + scopes: [`api://${import.meta.env.VITE_CLIENT_ID}/user_impersonation`] + }); + }; + const handleSignOut = () => { + instance.logoutRedirect(); + }; useEffect(() => { const getFeatureFlags = async () => { @@ -33,12 +48,51 @@ const App: React.FC = () => { getFeatureFlags(); }, []); + useEffect(() => { + const callback = instance.addEventCallback( + async (message: EventMessage) => { + if (message.eventType === EventType.LOGIN_SUCCESS) { + try { + const eventPayload: EventPayloadExtended = + message.payload as EventPayloadExtended; + const response: AxiosResponse = await httpClient.get( + `api/userProfile`, + { + headers: { + Authorization: `Bearer ${eventPayload.accessToken}` + } + } + ); + const userProfile: User = response.data; + + appContext.dispatch({ + type: 'SET_USER_PROFILE', + payload: userProfile + }); + } catch (error) { + console.log(error); + } + } + } + ); + + return () => { + if (callback) { + instance.removeEventCallback(callback); + appContext.dispatch({ type: 'SET_USER_PROFILE', payload: {} }); + } + }; + }, []); + return ( - - {useFeatureFlag('flying-pilots')?.enabled && ( - } /> - )} - + <> + + + {useFeatureFlag('flying-pilots')?.enabled && ( + } /> + )} + + ); }; diff --git a/app/src/components/logbook/Logbook.tsx b/app/src/components/logbook/Logbook.tsx index cd29641..ebb744e 100644 --- a/app/src/components/logbook/Logbook.tsx +++ b/app/src/components/logbook/Logbook.tsx @@ -1,9 +1,6 @@ -import SiteNav from '../siteNav/SiteNav'; - const Logbook: React.FC = () => { return (
-
Logbook goes here
); diff --git a/app/src/components/pilotForm/PilotForm.tsx b/app/src/components/pilotForm/PilotForm.tsx index 77b07ae..8b3a353 100644 --- a/app/src/components/pilotForm/PilotForm.tsx +++ b/app/src/components/pilotForm/PilotForm.tsx @@ -7,78 +7,150 @@ // Select, // SelectItem // } from '@nextui-org/react'; -// import { useForm, Controller, SubmitHandler } from 'react-hook-form'; +// import { useForm, Controller, FormProvider, SubmitHandler, Form } from 'react-hook-form'; +// import PilotFormCertificates from '../pilotFormCertificates/PilotFormCertificates'; // const PilotForm: React.FC = () => { -// const { control, handleSubmit } = useForm(); +// const methods = useForm({ +// defaultValues: { +// certificates: [ +// { +// type: '', +// number: '', +// dateOfIssue: null +// } +// ] +// } +// }); +// const { control, handleSubmit } = methods; // const onSubmit = (data: unknown) => { // console.log(data); // }; // return ( -//
-//
-//
-// -//
-//
-// } -// /> -//
-//
-// -//
-//
-// } -// /> -//
-//
-// -// -//
-//
-// +// +// +// +// +//
+//
+// +//
+//
+// } +// /> +//
+//
+// +//
+//
+// } +// /> +//
+//
+// +//
+//
+// } +// /> +//
+//
+// +//
+//
+// } +// /> +//
+//
+// +//
+//
+// } +// /> +//
+//
+// +//
+//
+// } +// /> +//
+//
+//
+//
+ +// +// +// +// +// +// +// + +// +// +// +// +//
+//
+// +//
+//
+// ( +// +// )} +// /> +//
+//
+// +//
+//
+// } +// /> +//
//
-//
-// ( -// -// )} -// /> -//
-//
-// -//
-//
-// } -// /> -//
-//
-// -// -// +// +// +// +// // ); // }; diff --git a/app/src/components/pilotFormCertificates/IPilotFormCertificates.ts b/app/src/components/pilotFormCertificates/IPilotFormCertificates.ts new file mode 100644 index 0000000..8bfda2d --- /dev/null +++ b/app/src/components/pilotFormCertificates/IPilotFormCertificates.ts @@ -0,0 +1,5 @@ +import { Certificate } from './certificate.type'; + +export interface IPilotFormCertificates { + certificates: Certificate[]; +} diff --git a/app/src/components/pilotFormCertificates/PilotFormCertificates.tsx b/app/src/components/pilotFormCertificates/PilotFormCertificates.tsx new file mode 100644 index 0000000..bff5d84 --- /dev/null +++ b/app/src/components/pilotFormCertificates/PilotFormCertificates.tsx @@ -0,0 +1,104 @@ +// import { IPilotFormCertificates } from './IPilotFormCertificates'; +// import { Button, DatePicker, Input, Select, SelectItem } from '@nextui-org/react'; +// import { Controller, useFieldArray, useFormContext } from 'react-hook-form' + +// const PilotFormCertificates: React.FC = ({ certificates }: IPilotFormCertificates) => { +// const { control, formState: { errors } } = useFormContext(); + +// const { fields, append, remove } = useFieldArray({ +// name: 'certificates', +// control +// }) + +// return ( +//
+//
+// +//
+//
+// +//
+//
+// +//
+//
+ +//
+ +// {fields.map((field, index) => { +// return ( +// <> +// {/* //
*/} +//
+// { +// console.log(field) +// return ( +// +// ) +// }} +// /> +//
+//
+// { +// return ( +// +// ) +// }} +// /> +//
+//
+// { +// return ( +// +// ) +// }} +// /> +//
+//
+// +//
+// {/*
*/} +// +// ) +// })} +// +//
+// ) +// } + +// export default PilotFormCertificates; diff --git a/app/src/components/pilotFormCertificates/certificate.type.ts b/app/src/components/pilotFormCertificates/certificate.type.ts new file mode 100644 index 0000000..4d3c3be --- /dev/null +++ b/app/src/components/pilotFormCertificates/certificate.type.ts @@ -0,0 +1,5 @@ +export type Certificate = { + type: string; + number: string; + dateOfIssue: Date; +}; diff --git a/app/src/components/pilots/Pilots.tsx b/app/src/components/pilots/Pilots.tsx index 7be90c5..beeff67 100644 --- a/app/src/components/pilots/Pilots.tsx +++ b/app/src/components/pilots/Pilots.tsx @@ -1,16 +1,6 @@ import { useState } from 'react'; -import SiteNav from '../siteNav/SiteNav'; // import PilotForm from '../pilotForm/PilotForm'; -import { Button } from '@nextui-org/react'; -import { - Drawer, - DrawerBody, - DrawerContent, - DrawerFooter, - DrawerHeader -} from '@noahspan/noahspan-components'; -import { faPlus } from '@fortawesome/free-solid-svg-icons'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { Button, Drawer } from '@noahspan/noahspan-components'; const Pilots: React.FC = () => { const [isDrawerOpen, setIsDrawerOpen] = useState(false); @@ -20,24 +10,26 @@ const Pilots: React.FC = () => { return (
- + blah

Pilots

- - + + Blah + {/*

Add Pilot

- {/* */} + + +
@@ -56,7 +48,7 @@ const Pilots: React.FC = () => {
-
+
*/}
diff --git a/app/src/components/siteNav/SiteNav.tsx b/app/src/components/siteNav/SiteNav.tsx index 8dbac0b..e3cc5ce 100644 --- a/app/src/components/siteNav/SiteNav.tsx +++ b/app/src/components/siteNav/SiteNav.tsx @@ -1,65 +1,116 @@ +// import { Link as ReactRouterLink } from 'react-router-dom'; +import { useAppContext } from '../../hooks/appContext/UseAppContext'; import { - Avatar, - Link, + Button, + Menu, + MenuHandler, + MenuItem, + MenuList, Navbar, NavbarBrand, - NavbarContent, - NavbarItem, - Button -} from '@nextui-org/react'; -import { Link as ReactRouterLink } from 'react-router-dom'; -import { useIsAuthenticated, useMsal } from '@azure/msal-react'; -import { useAppContext } from '../../hooks/appContext/UseAppContext'; -import { Logo, Plane } from '@noahspan/noahspan-components'; + NavbarLinks, + NavbarMenu, + NavbarItemProps, + Plane, + Typography +} from '@noahspan/noahspan-components'; +import { useIsAuthenticated } from '@azure/msal-react'; -const SiteNav: React.FC = () => { - const isAuthenticated = useIsAuthenticated(); - const { accounts, instance } = useMsal(); - const initializeLogin = () => { - instance.loginRedirect(); - }; +interface SiteNavProps { + handleSignIn: () => void; + handleSignOut: () => void; +} + +const SiteNav: React.FC = ({ + handleSignIn, + handleSignOut +}: SiteNavProps) => { const appContext = useAppContext(); + const isAuthenticated = useIsAuthenticated(); + const navItems: NavbarItemProps[] = [ + { + name: 'Pilots', + url: '#' + } + ]; return ( - + - - + {' '} + - - - {appContext.state.featureFlags.find( - (featureFlag) => featureFlag.key === 'flying-pilots' - )?.enabled && ( - - Pilots - + + +
+ {isAuthenticated && ( + + +
+ + {appContext.state.userProfile.displayName} + +
+
+ + + + + +
)} - - - - {!isAuthenticated && ( - - )} - {isAuthenticated && } - + {!isAuthenticated && ( + + )} +
+ {/* setOpenNav(!openNav)} + > + + */} +
); + + // return ( + // + // + // + // + // + // + // + // {appContext.state.featureFlags.find( + // (featureFlag) => featureFlag.key === 'flying-pilots' + // )?.enabled && ( + // + // Pilots + // + // )} + // + // + // + // + // + // + // ); }; export default SiteNav; diff --git a/app/src/context/appContext/AppContextProvider.tsx b/app/src/context/appContext/AppContextProvider.tsx index 6e51c50..78dbd61 100644 --- a/app/src/context/appContext/AppContextProvider.tsx +++ b/app/src/context/appContext/AppContextProvider.tsx @@ -9,7 +9,8 @@ const AppContextProvider: React.FC = ( props: IAppContextProviderProps ) => { const intialState: IAppContextState = { - featureFlags: [] + featureFlags: [], + userProfile: {} }; const [state, dispatch] = useReducer(reducer, intialState); const contextValue: IAppContextProps = useMemo(() => { diff --git a/app/src/context/appContext/IAppContextState.ts b/app/src/context/appContext/IAppContextState.ts index 44bfc8e..a953966 100644 --- a/app/src/context/appContext/IAppContextState.ts +++ b/app/src/context/appContext/IAppContextState.ts @@ -1,3 +1,6 @@ +import { User } from '@microsoft/microsoft-graph-types'; + export interface IAppContextState { featureFlags: { key: string; enabled: boolean }[]; + userProfile: User; } diff --git a/app/src/context/appContext/reducer.ts b/app/src/context/appContext/reducer.ts index 8803644..b996ffd 100644 --- a/app/src/context/appContext/reducer.ts +++ b/app/src/context/appContext/reducer.ts @@ -1,9 +1,9 @@ +import { User } from '@microsoft/microsoft-graph-types'; import { IAppContextState } from './IAppContextState'; -export type Action = { - type: 'SET_FEATURE_FLAGS'; - payload: { key: string; enabled: boolean }[]; -}; +export type Action = + | { type: 'SET_FEATURE_FLAGS'; payload: { key: string; enabled: boolean }[] } + | { type: 'SET_USER_PROFILE'; payload: User }; export const reducer = ( state: IAppContextState, @@ -16,6 +16,12 @@ export const reducer = ( featureFlags: action.payload }; } + case 'SET_USER_PROFILE': { + return { + ...state, + userProfile: action.payload + }; + } default: { return state; } diff --git a/app/src/main.tsx b/app/src/main.tsx index f0abece..6081529 100644 --- a/app/src/main.tsx +++ b/app/src/main.tsx @@ -1,34 +1,28 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; -import { MsalProvider } from '@azure/msal-react'; -import { Configuration, PublicClientApplication } from '@azure/msal-browser'; -import { NextUIProvider } from '@nextui-org/react'; import App from './App.tsx'; -import { BrowserRouter } from 'react-router-dom'; import AppContextProvider from './context/appContext/AppContextProvider.tsx'; +import { BrowserRouter } from 'react-router-dom'; import './index.css'; import '@noahspan/noahspan-components/noahspan-components.css'; +import { PublicClientApplication } from '@azure/msal-browser'; +import { MsalProvider } from '@azure/msal-react'; -const configuration: Configuration = { +const pca: PublicClientApplication = new PublicClientApplication({ auth: { - clientId: 'd3562a45-050d-4f9a-baed-0497c7156924', - authority: - 'https://login.microsoftonline.com/0f23652e-4b15-420f-991e-3d6fc769a31d', - redirectUri: 'http://localhost:5173' + clientId: import.meta.env.VITE_CLIENT_ID, + authority: `https://login.microsoftonline.com/${import.meta.env.VITE_TENANT_ID}`, + redirectUri: import.meta.env.VITE_REDIRECT_URL } -}; - -const pca = new PublicClientApplication(configuration); +}); ReactDOM.createRoot(document.getElementById('root')!).render( - - - - - + + + diff --git a/app/src/vite-env.d.ts b/app/src/vite-env.d.ts index 29c29a1..46e0e9b 100644 --- a/app/src/vite-env.d.ts +++ b/app/src/vite-env.d.ts @@ -2,6 +2,9 @@ interface ImportMetaEnv { readonly VITE_API_URL: string; + readonly VITE_CLIENT_ID: string; + readonly VITE_TENANT_ID: string; + readonly VITE_REDIRECT_URL: string; } interface ImportMeta { diff --git a/app/tailwind.config.js b/app/tailwind.config.js index f3089eb..00eb600 100644 --- a/app/tailwind.config.js +++ b/app/tailwind.config.js @@ -1,15 +1,9 @@ -const { nextui } = require('@nextui-org/react'); - /** @type {import('tailwindcss').Config} */ export default { - content: [ - './index.html', - './src/**/*.{js,ts,jsx,tsx}', - '../node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}' - ], + content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'], theme: { extend: {} }, darkMode: 'class', - plugins: [nextui()] + plugins: [] }; diff --git a/infrastructure/storage_account.tf b/infrastructure/storage_account.tf index d526d9f..3e61f22 100644 --- a/infrastructure/storage_account.tf +++ b/infrastructure/storage_account.tf @@ -1,7 +1,23 @@ -resource "azurerm_storage_account" "storage_account" { - name = var.STORAGE_ACCOUNT_NAME +resource "azurerm_storage_account" "storage_account_dev" { + name = "${var.STORAGE_ACCOUNT_NAME}dev" resource_group_name = data.azurerm_resource_group.resource_group.name location = data.azurerm_resource_group.resource_group.location account_tier = "Standard" - account_replication_type = "GRS" + account_replication_type = "LRS" +} + +resource "azurerm_storage_account" "storage_account_staging" { + name = "${var.STORAGE_ACCOUNT_NAME}staging" + resource_group_name = data.azurerm_resource_group.resource_group.name + location = data.azurerm_resource_group.resource_group.location + account_tier = "Standard" + account_replication_type = "LRS" +} + +resource "azurerm_storage_account" "storage_account_prod" { + name = "${var.STORAGE_ACCOUNT_NAME}prod" + resource_group_name = data.azurerm_resource_group.resource_group.name + location = data.azurerm_resource_group.resource_group.location + account_tier = "Standard" + account_replication_type = "LRS" } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 5a0a1e0..717d833 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,16 +12,22 @@ "app", "tests" ], + "dependencies": { + "@microsoft/mgt-element": "^4.2.2", + "@microsoft/mgt-msal2-provider": "^4.2.2" + }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^7.2.0", "@typescript-eslint/parser": "^7.2.0", + "concurrently": "^8.2.2", "eslint": "^8.42.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.6", "husky": "^9.0.11", "lint-staged": "^15.2.2", - "prettier": "3.2.5" + "prettier": "3.2.5", + "wait-on": "^7.2.0" } }, "api": { @@ -36,7 +42,7 @@ "@nestjs/core": "^10.0.0", "@nestjs/passport": "^10.0.3", "@nestjs/platform-express": "^10.0.0", - "@noahspan/noahspan-modules": "^0.2.7", + "@noahspan/noahspan-modules": "^0.3.4", "@schematics/angular": "^17.3.7", "dotenv": "^16.4.5", "reflect-metadata": "0.1.13", @@ -65,13 +71,13 @@ "name": "@noahspan/flying-client", "version": "0.1.0", "dependencies": { - "@azure/msal-react": "^2.0.15", + "@azure/msal-browser": "^3.17.0", + "@azure/msal-react": "^2.0.19", "@fortawesome/fontawesome-svg-core": "^6.5.2", "@fortawesome/free-regular-svg-icons": "^6.5.2", "@fortawesome/free-solid-svg-icons": "^6.5.2", "@fortawesome/react-fontawesome": "^0.2.2", - "@nextui-org/react": "^2.3.6", - "@noahspan/noahspan-components": "^0.2.5", + "@noahspan/noahspan-components": "^0.3.0", "axios": "^1.7.2", "framer-motion": "^11.1.7", "react": "^18.2.0", @@ -80,6 +86,7 @@ "react-router-dom": "^6.23.0" }, "devDependencies": { + "@microsoft/microsoft-graph-types": "^2.40.0", "@types/react": "^18.2.66", "@types/react-dom": "^18.2.22", "@vitejs/plugin-react": "^4.2.1", @@ -121,6 +128,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, "engines": { "node": ">=10" }, @@ -646,30 +654,30 @@ } }, "node_modules/@azure/msal-browser": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.14.0.tgz", - "integrity": "sha512-Un85LhOoecJ3HDTS3Uv3UWnXC9/43ZSO+Kc+anSqpZvcEt58SiO/3DuVCAe1A3I5UIBYJNMgTmZPGXQ0MVYrwA==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", + "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", "dependencies": { - "@azure/msal-common": "14.10.0" + "@azure/msal-common": "14.12.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "14.10.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.10.0.tgz", - "integrity": "sha512-Zk6DPDz7e1wPgLoLgAp0349Yay9RvcjPM5We/ehuenDNsz/t9QEFI7tRoHpp/e47I4p20XE3FiDlhKwAo3utDA==", + "version": "14.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", + "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-node": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.1.tgz", - "integrity": "sha512-I9Pc78mXwj/K8ydSgTfZ5A20vQ/xvfgnnhSCkienZ29b59zFy/hb2Vxmc6Gvg5pNkimSqkPnAtGoBMxYOLBm1A==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", + "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", "dependencies": { - "@azure/msal-common": "14.11.0", + "@azure/msal-common": "14.12.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, @@ -677,23 +685,15 @@ "node": ">=16" } }, - "node_modules/@azure/msal-node/node_modules/@azure/msal-common": { - "version": "14.11.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.11.0.tgz", - "integrity": "sha512-B6+IKLFs7Lsr06vjX8dPN61ENpTgiFrHf+CVo1UasHcmk5uEOq5D4thrbjsauKX+xtFryYsCDtznVDmWS4/sCg==", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/@azure/msal-react": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@azure/msal-react/-/msal-react-2.0.16.tgz", - "integrity": "sha512-fToFi/wG5e81Dir7Lw3/a2rZRRxvyD89ufI/GeVxcK3rblzJ6BT7fUoYnQsYTB6VR+z3MzRHpbJ3XgfESRk5ng==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@azure/msal-react/-/msal-react-2.0.19.tgz", + "integrity": "sha512-i5Tv/BAl/Pd1iVecuEFKJ8Oe/Fx8UMRTUltvGvvCTp+gtPgS7Vc4lWs9PmZuwk8l6BNFExVVHJCVOXl05JQCOw==", "engines": { "node": ">=10" }, "peerDependencies": { - "@azure/msal-browser": "^3.14.0", + "@azure/msal-browser": "^3.17.0", "react": "^16.8.0 || ^17 || ^18" } }, @@ -1311,7 +1311,7 @@ "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "devOptional": true, + "dev": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -1323,7 +1323,7 @@ "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "devOptional": true, + "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -1598,6 +1598,21 @@ "resolved": "https://registry.npmjs.org/@cucumber/tag-expressions/-/tag-expressions-6.1.0.tgz", "integrity": "sha512-+3DwRumrCJG27AtzCIL37A/X+A/gSfxOPLg8pZaruh5SLumsTmpvilwroVWBT2fPzmno/tGXypeK5a7NHU4RzA==" }, + "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/@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/@esbuild/aix-ppc64": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", @@ -2093,49 +2108,58 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@formatjs/ecma402-abstract": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", - "integrity": "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==", + "node_modules/@floating-ui/core": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", + "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", "dependencies": { - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" + "@floating-ui/utils": "^0.2.0" } }, - "node_modules/@formatjs/fast-memoize": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", - "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", + "node_modules/@floating-ui/dom": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", + "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", "dependencies": { - "tslib": "^2.4.0" + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" } }, - "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.7.8", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz", - "integrity": "sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==", + "node_modules/@floating-ui/react": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.19.0.tgz", + "integrity": "sha512-fgYvN4ksCi5OvmPXkyOT8o5a8PSKHMzPHt+9mR6KYWdF16IAjWRLZPAAziI2sznaWT23drRFrYw64wdvYqqaQw==", "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/icu-skeleton-parser": "1.8.2", - "tslib": "^2.4.0" + "@floating-ui/react-dom": "^1.2.2", + "aria-hidden": "^1.1.3", + "tabbable": "^6.0.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, - "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz", - "integrity": "sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==", + "node_modules/@floating-ui/react-dom": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-1.3.0.tgz", + "integrity": "sha512-htwHm67Ji5E/pROEAr7f8IKFShuiCKHwUC/UY4vC3I5jiSvGFAYnSYiZO5MlGmads+QqvUkR9ANHEguGrDv72g==", "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "tslib": "^2.4.0" + "@floating-ui/dom": "^1.2.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, - "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", - "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", - "dependencies": { - "tslib": "^2.4.0" - } + "node_modules/@floating-ui/react/node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", + "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" }, "node_modules/@fortawesome/fontawesome-common-types": { "version": "6.5.2", @@ -2206,6 +2230,21 @@ "react": ">=16.3" } }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -2261,39 +2300,6 @@ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, - "node_modules/@internationalized/date": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.4.tgz", - "integrity": "sha512-qoVJVro+O0rBaw+8HPjUB1iH8Ihf8oziEnqMnvhJUSuVIrHOuZ6eNLHNvzXJKUvAtaDiqMnRlg8Z2mgh09BlUw==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@internationalized/message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.4.tgz", - "integrity": "sha512-Dygi9hH1s7V9nha07pggCkvmRfDd3q2lWnMGvrJyrOwYMe1yj4D2T9BoH9I6MGR7xz0biQrtLPsqUkqXzIrBOw==", - "dependencies": { - "@swc/helpers": "^0.5.0", - "intl-messageformat": "^10.1.0" - } - }, - "node_modules/@internationalized/number": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.3.tgz", - "integrity": "sha512-rd1wA3ebzlp0Mehj5YTuTI50AQEx80gWFyHcQu+u91/5NgdwBecO8BH6ipPfE+lmQ9d63vpB3H9SHoIUiupllw==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@internationalized/string": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.3.tgz", - "integrity": "sha512-9kpfLoA8HegiWTeCbR2livhdVeKobCnVv8tlJ6M2jF+4tcMqDo94ezwlnrUANBWPgd8U7OXIHCk2Ov2qhk4KXw==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -2815,6 +2821,7 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2828,6 +2835,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, "engines": { "node": ">=6.0.0" } @@ -2836,6 +2844,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, "engines": { "node": ">=6.0.0" } @@ -2859,11 +2868,33 @@ "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", + "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + }, + "node_modules/@lit/reactive-element": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", + "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.2.0" + } + }, + "node_modules/@lit/task": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@lit/task/-/task-1.0.1.tgz", + "integrity": "sha512-fVLDtmwCau8NywnFIXaJxsCZjzaIxnVq+cFRKYC1Y4tA4/0rMTvF6DLZZ2JE51BwzOluaKtgJX8x1QDsQtAaIw==", + "dependencies": { + "@lit/reactive-element": "^1.0.0 || ^2.0.0" + } + }, "node_modules/@ljharb/through": { "version": "2.3.13", "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", @@ -2884,6 +2915,174 @@ "node": ">=8" } }, + "node_modules/@material-tailwind/react": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@material-tailwind/react/-/react-2.1.9.tgz", + "integrity": "sha512-3uPlJE9yK4JF9DEQO4I1QbjR8o05+4fysLqoZ0v38TDOLE2tvDRhTBVhn6Mp9vSsq5CoJOKgemG7kbkOFAji4A==", + "dependencies": { + "@floating-ui/react": "0.19.0", + "classnames": "2.3.2", + "deepmerge": "4.2.2", + "framer-motion": "6.5.1", + "material-ripple-effects": "2.0.1", + "prop-types": "15.8.1", + "react": "18.2.0", + "react-dom": "18.2.0", + "tailwind-merge": "1.8.1" + }, + "peerDependencies": { + "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18" + } + }, + "node_modules/@material-tailwind/react/node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@material-tailwind/react/node_modules/framer-motion": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz", + "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==", + "dependencies": { + "@motionone/dom": "10.12.0", + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "popmotion": "11.0.3", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + }, + "optionalDependencies": { + "@emotion/is-prop-valid": "^0.8.2" + }, + "peerDependencies": { + "react": ">=16.8 || ^17.0.0 || ^18.0.0", + "react-dom": ">=16.8 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@material-tailwind/react/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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@material-tailwind/react/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==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/@material-tailwind/react/node_modules/tailwind-merge": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.8.1.tgz", + "integrity": "sha512-+fflfPxvHFr81hTJpQ3MIwtqgvefHZFUHFiIHpVIRXvG/nX9+gu2P7JNlFu2bfDMJ+uHhi/pUgzaYacMoXv+Ww==" + }, + "node_modules/@microsoft/mgt-element": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@microsoft/mgt-element/-/mgt-element-4.2.2.tgz", + "integrity": "sha512-bgChuxPhn9/Ik+5nzYMfDR3tFedNXHZ5H4PD5vOs0LzWeXEklpQdLFRPcavoFQ0BapdFho+2qgWhN99RhSWO7A==", + "dependencies": { + "@lit/task": "^1.0.0", + "@microsoft/microsoft-graph-client": "3.0.2", + "idb": "8.0.0", + "lit": "^3.1.2" + } + }, + "node_modules/@microsoft/mgt-element/node_modules/@microsoft/microsoft-graph-client": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-3.0.2.tgz", + "integrity": "sha512-eYDiApYmiGsm1s1jfAa/rhB2xQCsX4pWt0vCTd1LZmiApMQfT/c0hXj2hvpuGz5GrcLdugbu05xB79rIV57Pjw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependenciesMeta": { + "@azure/identity": { + "optional": true + }, + "@azure/msal-browser": { + "optional": true + }, + "buffer": { + "optional": true + }, + "stream-browserify": { + "optional": true + } + } + }, + "node_modules/@microsoft/mgt-msal2-provider": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@microsoft/mgt-msal2-provider/-/mgt-msal2-provider-4.2.2.tgz", + "integrity": "sha512-ZAynXbGh8OsRJOQG9mDSfbWEeXP0rtXsSqbVB7soW9CFFmTrgdM1d/HoKmvwjXI75L7kWsov74YpDcdwxgcwVA==", + "dependencies": { + "@azure/msal-browser": "^2.38.3", + "@microsoft/mgt-element": "4.2.2", + "@microsoft/microsoft-graph-client": "3.0.2" + } + }, + "node_modules/@microsoft/mgt-msal2-provider/node_modules/@azure/msal-browser": { + "version": "2.39.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.39.0.tgz", + "integrity": "sha512-kks/n2AJzKUk+DBqZhiD+7zeQGBl+WpSOQYzWy6hff3bU0ZrYFqr4keFLlzB5VKuKZog0X59/FGHb1RPBDZLVg==", + "dependencies": { + "@azure/msal-common": "13.3.3" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@microsoft/mgt-msal2-provider/node_modules/@azure/msal-common": { + "version": "13.3.3", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-13.3.3.tgz", + "integrity": "sha512-n278DdCXKeiWhLwhEL7/u9HRMyzhUXLefeajiknf6AmEedoiOiv2r5aRJ7LXdT3NGPyubkdIbthaJlVtmuEqvA==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@microsoft/mgt-msal2-provider/node_modules/@microsoft/microsoft-graph-client": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-3.0.2.tgz", + "integrity": "sha512-eYDiApYmiGsm1s1jfAa/rhB2xQCsX4pWt0vCTd1LZmiApMQfT/c0hXj2hvpuGz5GrcLdugbu05xB79rIV57Pjw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependenciesMeta": { + "@azure/identity": { + "optional": true + }, + "@azure/msal-browser": { + "optional": true + }, + "buffer": { + "optional": true + }, + "stream-browserify": { + "optional": true + } + } + }, "node_modules/@microsoft/microsoft-graph-client": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-3.0.7.tgz", @@ -2910,6 +3109,70 @@ } } }, + "node_modules/@microsoft/microsoft-graph-types": { + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.40.0.tgz", + "integrity": "sha512-1fcPVrB/NkbNcGNfCy+Cgnvwxt6/sbIEEFgZHFBJ670zYLegENYJF8qMo7x3LqBjWX2/Eneq5BVVRCLTmlJN+g==", + "dev": true + }, + "node_modules/@motionone/animation": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.18.0.tgz", + "integrity": "sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw==", + "dependencies": { + "@motionone/easing": "^10.18.0", + "@motionone/types": "^10.17.1", + "@motionone/utils": "^10.18.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/dom": { + "version": "10.12.0", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz", + "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==", + "dependencies": { + "@motionone/animation": "^10.12.0", + "@motionone/generators": "^10.12.0", + "@motionone/types": "^10.12.0", + "@motionone/utils": "^10.12.0", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/easing": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.18.0.tgz", + "integrity": "sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg==", + "dependencies": { + "@motionone/utils": "^10.18.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/generators": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.18.0.tgz", + "integrity": "sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg==", + "dependencies": { + "@motionone/types": "^10.17.1", + "@motionone/utils": "^10.18.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/types": { + "version": "10.17.1", + "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.1.tgz", + "integrity": "sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A==" + }, + "node_modules/@motionone/utils": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.18.0.tgz", + "integrity": "sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==", + "dependencies": { + "@motionone/types": "^10.17.1", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, "node_modules/@nestjs/azure-database": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@nestjs/azure-database/-/azure-database-3.0.0.tgz", @@ -3235,1382 +3498,22 @@ } } }, - "node_modules/@nextui-org/accordion": { - "version": "2.0.32", - "resolved": "https://registry.npmjs.org/@nextui-org/accordion/-/accordion-2.0.32.tgz", - "integrity": "sha512-iwvEd89SdOrtCxeX2Pq44wmgFm6a01sCq79BgCKuqMcsCFekZ5/yQu09R3kBB6Kne4ghZWF6MXgmzOgbS04atg==", - "dependencies": { - "@nextui-org/aria-utils": "2.0.18", - "@nextui-org/divider": "2.0.27", - "@nextui-org/framer-utils": "2.0.18", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-aria-accordion": "2.0.4", - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/tree": "^3.7.6", - "@react-types/accordion": "3.0.0-alpha.19", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/aria-utils": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/@nextui-org/aria-utils/-/aria-utils-2.0.18.tgz", - "integrity": "sha512-9ZIZgWFU26csBnfAxsG5HEcz/nLmbeUusbi3kME3sm69iu5B0+A0WSABW+Ffk1Vhtyh73zJZRpA8baC673+5tQ==", - "dependencies": { - "@nextui-org/react-rsc-utils": "2.0.12", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/system": "2.1.2", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/autocomplete": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@nextui-org/autocomplete/-/autocomplete-2.0.16.tgz", - "integrity": "sha512-cVkFTiiM6Io7XPKMMdNZdTg9OpC/SVOsO48RrbxIv9Nl2HzvQYadhsiYett3skSMTy4u3Az8FJPUp+ql0GmxxA==", - "dependencies": { - "@nextui-org/aria-utils": "2.0.18", - "@nextui-org/button": "2.0.31", - "@nextui-org/input": "2.1.21", - "@nextui-org/listbox": "2.1.19", - "@nextui-org/popover": "2.1.21", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/scroll-shadow": "2.1.16", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/spinner": "2.0.28", - "@nextui-org/use-aria-button": "2.0.7", - "@nextui-org/use-safe-layout-effect": "2.0.5", - "@react-aria/combobox": "^3.8.4", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/combobox": "^3.8.2", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/avatar": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/@nextui-org/avatar/-/avatar-2.0.27.tgz", - "integrity": "sha512-rmEWhzg7bHOYWCvcFWBjex80aRtnLE7QyHWTHr9+KtOQRJRtv33Kxy5JfDcCQ6vKBz/ZPAWJ76ftUaba3yvXjQ==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-image": "2.0.5", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/badge": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/@nextui-org/badge/-/badge-2.0.27.tgz", - "integrity": "sha512-7JH8X7F4FvsPjygToTId87/syh0ZPS6GK8z3zCZHu7zgA10FrwbCyQGuTpznF2GAnmtW3DxTWpemOOJD0dMJbQ==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/system-rsc": "2.1.1" - }, - "peerDependencies": { - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/breadcrumbs": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@nextui-org/breadcrumbs/-/breadcrumbs-2.0.7.tgz", - "integrity": "sha512-4xD3hUy5QFtYSZWxjY8Cprq4BpSPfqkR9RyVmG9q5MCeJ8zJQTZlEZ1VCZjnwx4Mtif4kDxAgEm/eBhn6dW7mA==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@react-aria/breadcrumbs": "^3.5.11", - "@react-aria/focus": "^3.16.2", - "@react-aria/utils": "^3.23.2", - "@react-types/breadcrumbs": "^3.7.3", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/button": { - "version": "2.0.31", - "resolved": "https://registry.npmjs.org/@nextui-org/button/-/button-2.0.31.tgz", - "integrity": "sha512-EqrmTLhJaIFqDCK247XHuEE0c10A1mnRpIoMEgwP5GUjAFC/5itpdU80zRDi4zWXUaI6ppaVpZqWnDOCK5Qvwg==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/ripple": "2.0.28", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/spinner": "2.0.28", - "@nextui-org/use-aria-button": "2.0.7", - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/calendar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nextui-org/calendar/-/calendar-2.0.4.tgz", - "integrity": "sha512-B1OqFBt9Z8jh42qPW6u5W0fsyf1iYs2d1hdhHfVEvFgK7E1KoNaVe03pwZsZV/tYTW/Mh5zSuNwWhhWxphzrHA==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@nextui-org/button": "2.0.31", - "@nextui-org/framer-utils": "2.0.18", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-aria-button": "2.0.7", - "@react-aria/calendar": "3.5.1", - "@react-aria/focus": "^3.14.3", - "@react-aria/i18n": "^3.8.4", - "@react-aria/interactions": "^3.19.1", - "@react-aria/utils": "^3.21.1", - "@react-aria/visually-hidden": "^3.8.6", - "@react-stately/calendar": "3.4.1", - "@react-stately/utils": "^3.8.0", - "@react-types/button": "^3.9.0", - "@react-types/calendar": "3.4.1", - "@react-types/shared": "3.21.0", - "@types/lodash.debounce": "^4.0.7", - "lodash.debounce": "^4.0.8", - "scroll-into-view-if-needed": "3.0.10" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/calendar/node_modules/@react-types/shared": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.21.0.tgz", - "integrity": "sha512-wJA2cUF8dP4LkuNUt9Vh2kkfiQb2NLnV2pPXxVnKJZ7d4x2/7VPccN+LYPnH8m0X3+rt50cxWuPKQmjxSsCFOg==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@nextui-org/card": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/@nextui-org/card/-/card-2.0.28.tgz", - "integrity": "sha512-Vwa7Poi1kxqjnTWQS9FAGlQw301RqkMlY5cnYQCGeKNbFX+y6u1MlqTSi8ed6RqmdjO23j1zG2+XlBieFyJ9Mg==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/ripple": "2.0.28", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-aria-button": "2.0.7", - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/checkbox": { - "version": "2.0.29", - "resolved": "https://registry.npmjs.org/@nextui-org/checkbox/-/checkbox-2.0.29.tgz", - "integrity": "sha512-Ed1ahtrFoewt61TPi3aDFZAeA2+Dn+D4A798A2OPBPMHLe70xBPL84Vi35okeY3bzUdBwWQKLMGXbz9nM26sZA==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-callback-ref": "2.0.5", - "@nextui-org/use-safe-layout-effect": "2.0.5", - "@react-aria/checkbox": "^3.14.1", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/checkbox": "^3.6.3", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/chip": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/@nextui-org/chip/-/chip-2.0.28.tgz", - "integrity": "sha512-oD28KZx+PuaWkHlizvMgOAxIkL9cblwun0IhqEztKcR2DMRVdH/4r8/Zdo6QQFDhXlUU0Ub5+WUOyHndwNj0pg==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/checkbox": "^3.7.1" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/code": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/@nextui-org/code/-/code-2.0.27.tgz", - "integrity": "sha512-gDK48LMNSgQIeUs5WZ53s/hRqDfTMuDdDNgQcmt0bRWMlUC2BTuBfQGzK4y9wbJA9mlWocia7ZDWRWyJrB4vjQ==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/system-rsc": "2.1.1" - }, - "peerDependencies": { - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/date-input": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nextui-org/date-input/-/date-input-2.0.3.tgz", - "integrity": "sha512-7WMJGptHHl+P0LpKk3a7e/Dj86Np66RGLVzWWlFipe7hrg+wJCdkuWCyj6V9mNgH/sdkVKhfkGYT2MogNbOhdA==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@react-aria/datepicker": "^3.9.3", - "@react-aria/i18n": "^3.8.4", - "@react-aria/utils": "^3.21.1", - "@react-stately/datepicker": "^3.9.2", - "@react-types/datepicker": "^3.7.2", - "@react-types/shared": "3.21.0" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/date-input/node_modules/@react-types/shared": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.21.0.tgz", - "integrity": "sha512-wJA2cUF8dP4LkuNUt9Vh2kkfiQb2NLnV2pPXxVnKJZ7d4x2/7VPccN+LYPnH8m0X3+rt50cxWuPKQmjxSsCFOg==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@nextui-org/date-picker": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@nextui-org/date-picker/-/date-picker-2.0.7.tgz", - "integrity": "sha512-03Jys6JMthgX1BMW9R1MKPkHkoetXf4bYZRETAXU5Y9cY1TcosY0FiDEwAUCjlusYOq2UWMRYH4q83tCmir6ag==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@nextui-org/button": "2.0.31", - "@nextui-org/calendar": "2.0.4", - "@nextui-org/date-input": "2.0.3", - "@nextui-org/popover": "2.1.21", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@react-aria/datepicker": "^3.9.3", - "@react-aria/i18n": "^3.8.4", - "@react-aria/utils": "^3.21.1", - "@react-stately/datepicker": "^3.9.2", - "@react-stately/overlays": "^3.6.3", - "@react-stately/utils": "^3.8.0", - "@react-types/datepicker": "^3.7.2", - "@react-types/shared": "3.21.0" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/date-picker/node_modules/@react-types/shared": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.21.0.tgz", - "integrity": "sha512-wJA2cUF8dP4LkuNUt9Vh2kkfiQb2NLnV2pPXxVnKJZ7d4x2/7VPccN+LYPnH8m0X3+rt50cxWuPKQmjxSsCFOg==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@nextui-org/divider": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/@nextui-org/divider/-/divider-2.0.27.tgz", - "integrity": "sha512-530oEHonzaxKxspoaKnBFJ4InGqXv2FgOYzEPAMWoMmLb4/zp7e5lRipFKqRsN+zdwIkRNH6c0VJmHfyWI+bUg==", - "dependencies": { - "@nextui-org/react-rsc-utils": "2.0.12", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/system-rsc": "2.1.1", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/dropdown": { - "version": "2.1.23", - "resolved": "https://registry.npmjs.org/@nextui-org/dropdown/-/dropdown-2.1.23.tgz", - "integrity": "sha512-4wAzUbKztvuzzuJcLuDKhvnxB++EQ2aATbCdnfcBA5IyBxj6k4lbalgmSQxtx6D4dm5iJeiOWCJHRZgsIqkxRg==", - "dependencies": { - "@nextui-org/menu": "2.0.22", - "@nextui-org/popover": "2.1.21", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@react-aria/focus": "^3.16.2", - "@react-aria/menu": "^3.13.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/menu": "^3.6.1", - "@react-types/menu": "^3.9.7" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/framer-utils": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/@nextui-org/framer-utils/-/framer-utils-2.0.18.tgz", - "integrity": "sha512-RNI5/wKjgLNjEaVdLrXH8J/mkC7HKZ6S99JNFmviU1JiVgWzwHKtuci5ZPDntUFGg6G8kX6P7OCDh+d/pMJQAA==", - "dependencies": { - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/system": "2.1.2", - "@nextui-org/use-measure": "2.0.1" - }, - "peerDependencies": { - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/image": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/@nextui-org/image/-/image-2.0.27.tgz", - "integrity": "sha512-EJa1bsZL8zsnTOVd+ZY04ldBz177CO/igz16rpRjo1KPMDX0fxlcjUbUopMfujIASytA68Yq4U1rxfO/xJthuQ==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-image": "2.0.5" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/input": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/@nextui-org/input/-/input-2.1.21.tgz", - "integrity": "sha512-jwTD4RnpTuieSuLOYqW7Dw2To6E9OVJtcyRBYNIT6GaejT3YG4qaST7BMKz0pJW6mgF9M+pDeKcdOvOqEbOoDg==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-safe-layout-effect": "2.0.5", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "react-textarea-autosize": "^8.5.3" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/kbd": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/@nextui-org/kbd/-/kbd-2.0.28.tgz", - "integrity": "sha512-raH2Nw+wAHO54swTduLLs/Vdg2/mbMHEe0Y7ud6D13lPexWHVfxUzt7C39/9y8nKh0SpgOkcWV+EmQBydLAI7A==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/system-rsc": "2.1.1", - "@react-aria/utils": "^3.23.2" - }, - "peerDependencies": { - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/link": { - "version": "2.0.29", - "resolved": "https://registry.npmjs.org/@nextui-org/link/-/link-2.0.29.tgz", - "integrity": "sha512-OfOi7GLj3apimwAsAXTRZ8/B0tWvx/yXLZFtEe9676+tlLND1nfmWyBHdDIx5WMMiLc3Q1M3FkNrZvigeKQIbQ==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-aria-link": "2.0.16", - "@react-aria/focus": "^3.16.2", - "@react-aria/link": "^3.6.5", - "@react-aria/utils": "^3.23.2", - "@react-types/link": "^3.5.3" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/listbox": { - "version": "2.1.19", - "resolved": "https://registry.npmjs.org/@nextui-org/listbox/-/listbox-2.1.19.tgz", - "integrity": "sha512-9qQs9KwdDHZ3VaSz4SkYcqn8onuSMCiZElta1vyqJGMWW6JYjJ4DtUOiyqwJdzZOQLIlxazT+GCWjjFUZwFZlQ==", - "dependencies": { - "@nextui-org/aria-utils": "2.0.18", - "@nextui-org/divider": "2.0.27", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-is-mobile": "2.0.7", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/listbox": "^3.11.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/menu": "^3.9.7", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/menu": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@nextui-org/menu/-/menu-2.0.22.tgz", - "integrity": "sha512-zU1MbyDPk0QNAVZUSDJSMmdVxpFzWHyiLqOtS+b+kZLdn0va+QBR6LPj237PhyQueChNyz/y8eDDbJ0D6bWf/g==", - "dependencies": { - "@nextui-org/aria-utils": "2.0.18", - "@nextui-org/divider": "2.0.27", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-aria-menu": "2.0.2", - "@nextui-org/use-is-mobile": "2.0.7", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/menu": "^3.13.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/menu": "^3.6.1", - "@react-stately/tree": "^3.7.6", - "@react-types/menu": "^3.9.7", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/modal": { - "version": "2.0.33", - "resolved": "https://registry.npmjs.org/@nextui-org/modal/-/modal-2.0.33.tgz", - "integrity": "sha512-YCgWUMNiVMXAgd6SmU4yH7Ifrz+cmtlF2sK9DBL8kaIZtqAjuhPQj0uQnetvXpY649vomJWVdh9QYHNfD1Jv1Q==", - "dependencies": { - "@nextui-org/framer-utils": "2.0.18", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-aria-button": "2.0.7", - "@nextui-org/use-aria-modal-overlay": "2.0.8", - "@nextui-org/use-disclosure": "2.0.7", - "@react-aria/dialog": "^3.5.12", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/overlays": "^3.6.5", - "@react-types/overlays": "^3.8.5" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/navbar": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/@nextui-org/navbar/-/navbar-2.0.30.tgz", - "integrity": "sha512-Iaw3BU0gdX14nBtZUUFRnsXodnCe1Sbsv9Xk7OI44p+KbOhySgfcjf4iFcXM0vfTOMlOkBSsUzR9bt+/69G5pw==", - "dependencies": { - "@nextui-org/framer-utils": "2.0.18", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-aria-toggle-button": "2.0.7", - "@nextui-org/use-scroll-position": "2.0.5", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/toggle": "^3.7.2", - "@react-stately/utils": "^3.9.1", - "react-remove-scroll": "^2.5.6" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/pagination": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/@nextui-org/pagination/-/pagination-2.0.30.tgz", - "integrity": "sha512-tdlSbNTpqr+aww8h9+7d2Iu0ZX6GGtREeVAbf2+jr5j7VF/VVMVm2eaLJ4m1vw7VQIrEMwKNrcP8QCMMT0a+SQ==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-pagination": "2.0.6", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "scroll-into-view-if-needed": "3.0.10" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/popover": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/@nextui-org/popover/-/popover-2.1.21.tgz", - "integrity": "sha512-Loa6eoAYW0DacDIW+/SC//0LhDDAMnUcd8R9axXtKd00N0Zgnj3YpUJoyLRYvwl5I/FWwV1nCOAvndzW6JJvpQ==", - "dependencies": { - "@nextui-org/aria-utils": "2.0.18", - "@nextui-org/button": "2.0.31", - "@nextui-org/framer-utils": "2.0.18", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-aria-button": "2.0.7", - "@nextui-org/use-safe-layout-effect": "2.0.5", - "@react-aria/dialog": "^3.5.12", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/overlays": "^3.6.5", - "@react-types/button": "^3.9.2", - "@react-types/overlays": "^3.8.5", - "react-remove-scroll": "^2.5.6" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/progress": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/@nextui-org/progress/-/progress-2.0.28.tgz", - "integrity": "sha512-3Wp6mUeKzw0onLB7/JR1HI3+Y4zf0immVnQp3TYr2zvM5PLAy6RXKtACEGkJanBPfvx4tv3YAIF3419WMvmniw==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-is-mounted": "2.0.5", - "@react-aria/i18n": "^3.10.2", - "@react-aria/progress": "^3.4.11", - "@react-aria/utils": "^3.23.2", - "@react-types/progress": "^3.5.2" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/radio": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/@nextui-org/radio/-/radio-2.0.28.tgz", - "integrity": "sha512-h8SSQTDj0NzB13r77RrcEDuWNSpE00ioO7GJKTROd09YQSmck/AID1+ktsDMRQYjoPMPJ7vgwJHuRoKIjXn1CQ==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/radio": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/radio": "^3.10.2", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/react": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/@nextui-org/react/-/react-2.3.6.tgz", - "integrity": "sha512-mA3IgPBmVZLpwLxn1t97fpwjBL+dZdAt4x9+3TjJfEQjbH9j/FvUsOAIpaT53BMcDIWrqP3Co3yR+AbplgSiEg==", - "dependencies": { - "@nextui-org/accordion": "2.0.32", - "@nextui-org/autocomplete": "2.0.16", - "@nextui-org/avatar": "2.0.27", - "@nextui-org/badge": "2.0.27", - "@nextui-org/breadcrumbs": "2.0.7", - "@nextui-org/button": "2.0.31", - "@nextui-org/calendar": "2.0.4", - "@nextui-org/card": "2.0.28", - "@nextui-org/checkbox": "2.0.29", - "@nextui-org/chip": "2.0.28", - "@nextui-org/code": "2.0.27", - "@nextui-org/date-input": "2.0.3", - "@nextui-org/date-picker": "2.0.7", - "@nextui-org/divider": "2.0.27", - "@nextui-org/dropdown": "2.1.23", - "@nextui-org/framer-utils": "2.0.18", - "@nextui-org/image": "2.0.27", - "@nextui-org/input": "2.1.21", - "@nextui-org/kbd": "2.0.28", - "@nextui-org/link": "2.0.29", - "@nextui-org/listbox": "2.1.19", - "@nextui-org/menu": "2.0.22", - "@nextui-org/modal": "2.0.33", - "@nextui-org/navbar": "2.0.30", - "@nextui-org/pagination": "2.0.30", - "@nextui-org/popover": "2.1.21", - "@nextui-org/progress": "2.0.28", - "@nextui-org/radio": "2.0.28", - "@nextui-org/ripple": "2.0.28", - "@nextui-org/scroll-shadow": "2.1.16", - "@nextui-org/select": "2.1.27", - "@nextui-org/skeleton": "2.0.27", - "@nextui-org/slider": "2.2.9", - "@nextui-org/snippet": "2.0.35", - "@nextui-org/spacer": "2.0.27", - "@nextui-org/spinner": "2.0.28", - "@nextui-org/switch": "2.0.28", - "@nextui-org/system": "2.1.2", - "@nextui-org/table": "2.0.33", - "@nextui-org/tabs": "2.0.29", - "@nextui-org/theme": "2.2.3", - "@nextui-org/tooltip": "2.0.33", - "@nextui-org/user": "2.0.28", - "@react-aria/visually-hidden": "^3.8.10" - }, - "peerDependencies": { - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/react-rsc-utils": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@nextui-org/react-rsc-utils/-/react-rsc-utils-2.0.12.tgz", - "integrity": "sha512-s2IG4pM1K+kbm6A2g3UpqrS592AExpGixtZNPJ2lV5+UQi1ld3vb4EiBIOViZMoSCNCoNdaeO5Yqo6cKghwCPA==" - }, - "node_modules/@nextui-org/react-utils": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@nextui-org/react-utils/-/react-utils-2.0.13.tgz", - "integrity": "sha512-4DM1Cph1lVY64T/HDyEqcxYkInXx6hdL1Kp9StLza9yqgYmVipTaPkWZdmWbfkhP+dVVqrH3DVFfHtpLTQ625w==", - "dependencies": { - "@nextui-org/react-rsc-utils": "2.0.12", - "@nextui-org/shared-utils": "2.0.5" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/ripple": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/@nextui-org/ripple/-/ripple-2.0.28.tgz", - "integrity": "sha512-tAxuPjVncx6rSzdHqcFGiprlUo7p+tkTf0c9RMC47DtgIG1DLhFVr0z6QkggmLd1Tgwcj4a3Oyj/PAQMDRxswg==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/scroll-shadow": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/@nextui-org/scroll-shadow/-/scroll-shadow-2.1.16.tgz", - "integrity": "sha512-QkOHNFQqEdfSj6iAKd4SusZpmyaJcBFCvx4zLLrWCXGS0+0KWvuaq/dOE8PXSPo4vts4TGDQp6qQGhk0BFvttg==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-data-scroll-overflow": "2.1.4" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/select": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/@nextui-org/select/-/select-2.1.27.tgz", - "integrity": "sha512-SLEOir+I09y9wA1reIJRefovyR48Pn+L6oMIiZqYCA0ndGnz3K1g2gsSZ6fyCb9obwZvjzFGvIsrYkW0btUzlA==", - "dependencies": { - "@nextui-org/aria-utils": "2.0.18", - "@nextui-org/listbox": "2.1.19", - "@nextui-org/popover": "2.1.21", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/scroll-shadow": "2.1.16", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/spinner": "2.0.28", - "@nextui-org/use-aria-button": "2.0.7", - "@nextui-org/use-aria-multiselect": "2.1.5", - "@nextui-org/use-safe-layout-effect": "2.0.5", - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/shared-icons": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@nextui-org/shared-icons/-/shared-icons-2.0.7.tgz", - "integrity": "sha512-GsotFeRbwxhc2eQt7Z6edcVYfklpaSzo93Xodryb82SokRaSOKt9BEpUXgk2TExAvJMjDnB4T8nk8ANWsFaXOw==", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/shared-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/shared-utils/-/shared-utils-2.0.5.tgz", - "integrity": "sha512-aFc/CUL8RVfBh0IotIpxkpKjyUPc/zJaMJd5pRCQA1kIpKLdSrlh3//MLYMaP/fo/NQtE3DPeXqfKhHRr1fkEw==" - }, - "node_modules/@nextui-org/skeleton": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/@nextui-org/skeleton/-/skeleton-2.0.27.tgz", - "integrity": "sha512-AolxdzJ4xCyb7i2DwZ1iQGSaLGUBYh/rorO8llBqsXDpvhBANcFF3DbRO3kQ+EVGr5AEbEeurd3RabC2F6wVDA==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/system-rsc": "2.1.1" - }, - "peerDependencies": { - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/slider": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/@nextui-org/slider/-/slider-2.2.9.tgz", - "integrity": "sha512-y/Oxhl1OkY7amgYpHZwCF4dF6Uop0Pb+k6m6CNCeXIBL3KFT1Hw9yd17NrV05BekA1llfJrVHEvzneBuTTbbbA==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/tooltip": "2.0.33", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/slider": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/slider": "^3.5.2" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/snippet": { - "version": "2.0.35", - "resolved": "https://registry.npmjs.org/@nextui-org/snippet/-/snippet-2.0.35.tgz", - "integrity": "sha512-2GYxzt6ZBqgEn6XYgi+uU8YMPfMPCAORMXiw/Q+QTuoLQPgKFqsjnQKV7FI581Dax61mIMI5QL5WsQ0oG6PtFw==", - "dependencies": { - "@nextui-org/button": "2.0.31", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/tooltip": "2.0.33", - "@nextui-org/use-clipboard": "2.0.5", - "@react-aria/focus": "^3.16.2", - "@react-aria/utils": "^3.23.2" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/spacer": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/@nextui-org/spacer/-/spacer-2.0.27.tgz", - "integrity": "sha512-2zYe6PR7Mk4xQpzEhAAkZ8fBp75h7XhgSB7u1aiqW2hJzcuD82hn1SLoUacrYJeO/FBO5UJKQmc8LT63JtuzWQ==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/system-rsc": "2.1.1" - }, - "peerDependencies": { - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/spinner": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/@nextui-org/spinner/-/spinner-2.0.28.tgz", - "integrity": "sha512-hlixGubd91KFSHIjwE0/vLmkSOtUwl56uFrsHBred2pqq8/1CAVlN7aINwoUotZRc5W0T7lyEQGvf88t0Dd3CA==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/system-rsc": "2.1.1" - }, - "peerDependencies": { - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/switch": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/@nextui-org/switch/-/switch-2.0.28.tgz", - "integrity": "sha512-cogzyB7Ng95WP/neMBWgOLRkw2GC/qLQoW0gTuuT53lTEnAtatFikNoL30CyA/EZzz7YsUjLH2W+9kBiZLtITQ==", - "dependencies": { - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/switch": "^3.6.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/toggle": "^3.7.2", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/system": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@nextui-org/system/-/system-2.1.2.tgz", - "integrity": "sha512-dkj2DAye6pjpVheoJKup+L8CyK774YORudkum+5zCuwyOe50IV2j6wbGqyWir9cI1fruFUsfzQ1NR4KljWNqFQ==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/system-rsc": "2.1.1", - "@react-aria/i18n": "^3.10.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/utils": "^3.9.1" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/system-rsc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@nextui-org/system-rsc/-/system-rsc-2.1.1.tgz", - "integrity": "sha512-gkTKNAbTZVl81SVJsaLHp4iqyd956y40UIGUXPeq0pwOGLM0xGWSkLbkNT8WtdPUt3bSD9y0xuKbiV3tpSBGOA==", - "dependencies": { - "clsx": "^1.2.1" - }, - "peerDependencies": { - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "tailwind-variants": ">=0.1.13" - } - }, - "node_modules/@nextui-org/table": { - "version": "2.0.33", - "resolved": "https://registry.npmjs.org/@nextui-org/table/-/table-2.0.33.tgz", - "integrity": "sha512-mUqGGWCoEo5z49s60IrVnBDcSgT8K2T5+x5qqmk30v09B6s5c8dqyL7NAC+pk7BayHqr5xEW42EqMbRKmVvtCw==", - "dependencies": { - "@nextui-org/checkbox": "2.0.29", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-icons": "2.0.7", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/spacer": "2.0.27", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/table": "^3.13.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/grid": "^3.2.4", - "@react-types/table": "^3.9.3" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/tabs": { - "version": "2.0.29", - "resolved": "https://registry.npmjs.org/@nextui-org/tabs/-/tabs-2.0.29.tgz", - "integrity": "sha512-RthZ+lNyXQ3CNXMRiQdQMGGsWJurS7ESrhowLRtTiDOPYhnJxAMqrqzI3k8ZgDIBirC/1zEoOdn89oqd2Pa5gw==", - "dependencies": { - "@nextui-org/aria-utils": "2.0.18", - "@nextui-org/framer-utils": "2.0.18", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-is-mounted": "2.0.5", - "@nextui-org/use-update-effect": "2.0.5", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/tabs": "^3.8.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/tabs": "^3.6.4", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "scroll-into-view-if-needed": "3.0.10" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/theme": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@nextui-org/theme/-/theme-2.2.3.tgz", - "integrity": "sha512-p8gZ+4dQxA4ZO9RxVljAs37EYtQsw0n9DtXD6f395gpl0DLKRq/d4oCQ887oC6lHDyTibtaHHtOu+MKzK6j7Gw==", - "dependencies": { - "color": "^4.2.3", - "color2k": "^2.0.2", - "deepmerge": "4.3.1", - "flat": "^5.0.2", - "lodash.foreach": "^4.5.0", - "lodash.get": "^4.4.2", - "lodash.kebabcase": "^4.1.1", - "lodash.mapkeys": "^4.6.0", - "lodash.omit": "^4.5.0", - "tailwind-variants": "^0.1.20" - }, - "peerDependencies": { - "tailwindcss": ">=3.4.0" - } - }, - "node_modules/@nextui-org/theme/node_modules/tailwind-merge": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz", - "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, - "node_modules/@nextui-org/theme/node_modules/tailwind-variants": { - "version": "0.1.20", - "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.1.20.tgz", - "integrity": "sha512-AMh7x313t/V+eTySKB0Dal08RHY7ggYK0MSn/ad8wKWOrDUIzyiWNayRUm2PIJ4VRkvRnfNuyRuKbLV3EN+ewQ==", - "dependencies": { - "tailwind-merge": "^1.14.0" - }, - "engines": { - "node": ">=16.x", - "pnpm": ">=7.x" - }, - "peerDependencies": { - "tailwindcss": "*" - } - }, - "node_modules/@nextui-org/tooltip": { - "version": "2.0.33", - "resolved": "https://registry.npmjs.org/@nextui-org/tooltip/-/tooltip-2.0.33.tgz", - "integrity": "sha512-WUpBuoZ1ya2iD9EI2d/E58BpPrRJQ2NDnpIU6RjwWe/MGqtxf3oJVQZd6kKpgaD8eB6P3OSiFTwTUK7+AoLmDQ==", - "dependencies": { - "@nextui-org/aria-utils": "2.0.18", - "@nextui-org/framer-utils": "2.0.18", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@nextui-org/use-safe-layout-effect": "2.0.5", - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/tooltip": "^3.7.2", - "@react-aria/utils": "^3.23.2", - "@react-stately/tooltip": "^3.4.7", - "@react-types/overlays": "^3.8.5", - "@react-types/tooltip": "^3.4.7" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/use-aria-accordion": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-accordion/-/use-aria-accordion-2.0.4.tgz", - "integrity": "sha512-5OEi7zrv1F25XCjXSx+tOvyJWN/Modj9+iz5v/QXDJN76sFVIoCoNsUlZS5Vokyt5fImXb3SAlWvOPehqLbSGA==", - "dependencies": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/tree": "^3.7.6", - "@react-types/accordion": "3.0.0-alpha.19", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-aria-button": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-button/-/use-aria-button-2.0.7.tgz", - "integrity": "sha512-Cttt4C802RQX6Wae/IiuzdOCVjzHDnUMK8MBwkdDEKR/TVGjaTvPbLOJSw7FNmz0mIrtp7zaTHlRvrbDJmvnIQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-aria-link": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-link/-/use-aria-link-2.0.16.tgz", - "integrity": "sha512-nxaSkHlSNbsODYDusoh6+bt8B7ndoAD82pC1b0c0M0kFP14hktzIf9noaY+bSujcI9MlLJR1WLwZoHGYC5Mlng==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/link": "^3.5.3", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-aria-menu": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-menu/-/use-aria-menu-2.0.2.tgz", - "integrity": "sha512-YV/tp246bWTfZIa6eDnN19Z0VkOB5/SP9qlLtigY0a2lPuGQ/6o3LpcWZxQPOgLwBd6PQwUgNe/RakOO3rRrAQ==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/menu": "^3.13.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/tree": "^3.7.6", - "@react-types/menu": "^3.9.7", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/use-aria-modal-overlay": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-modal-overlay/-/use-aria-modal-overlay-2.0.8.tgz", - "integrity": "sha512-fzMh/UtNEzYKOcjXyM1esGoxorB4nBPkg8vyGqVgkhU+QeI0JdWPEnC6nXAU6j57eh3ZYx/jLEMh1Jeu5IAEmw==", - "dependencies": { - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/overlays": "^3.6.5", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/use-aria-multiselect": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-multiselect/-/use-aria-multiselect-2.1.5.tgz", - "integrity": "sha512-AIWVu6iW4EX8RrnNtt3mHxDFtbQ7Io/mr0dpaE/s5HbfPMjljktMdP22YLYUnRXHqOeAfqtRSa9Mq7Qpec2Vtw==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/listbox": "^3.11.5", - "@react-aria/menu": "^3.13.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-stately/list": "^3.10.3", - "@react-stately/menu": "^3.6.1", - "@react-types/button": "^3.9.2", - "@react-types/overlays": "^3.8.5", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@nextui-org/use-aria-toggle-button": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-toggle-button/-/use-aria-toggle-button-2.0.7.tgz", - "integrity": "sha512-m+1qjSoJrzMf6oefh1RTYSA0l/JbU9v3cHwpoX/OjCE6q3EpLaqgI/U679oxpd7OLPrWq6HmBKOzKt6ZmokMYw==", - "dependencies": { - "@nextui-org/use-aria-button": "2.0.7", - "@react-aria/utils": "^3.23.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-callback-ref": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-callback-ref/-/use-callback-ref-2.0.5.tgz", - "integrity": "sha512-lcjlV5yaDTiFSv06E5RtQNqy+O6XqH/Q/yz+ka1ZBlZF/FdzEPNRfJ0shN2D7Sh3DdbvV2lySbA2g/0d94geaw==", - "dependencies": { - "@nextui-org/use-safe-layout-effect": "2.0.5" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-clipboard": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-clipboard/-/use-clipboard-2.0.5.tgz", - "integrity": "sha512-1ExwXM8ENmc/kVDqKoiPGrBP/0B7rZ43iSv2MoWD1Qpc8GHg71Rv7NTIlBDoD/pfUfqkab6x66iKC7AVR8rifA==", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-data-scroll-overflow": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nextui-org/use-data-scroll-overflow/-/use-data-scroll-overflow-2.1.4.tgz", - "integrity": "sha512-0YqUAe/b9aZftUQOH7sWqBMJHGLyC2Q/ixFyjq8Q1TijrqEyGESGQ2tm0+FHytI04drV+mnsbf6+q2QIKyqGSg==", - "dependencies": { - "@nextui-org/shared-utils": "2.0.5" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-disclosure": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@nextui-org/use-disclosure/-/use-disclosure-2.0.7.tgz", - "integrity": "sha512-h86z6H/eTQ6RMAYkWBvItgV0uh4UDTbJIa8hvDguzYLyGk5Ji+7HXotCUwKELrK/+QuOtAFYcJ6+Cp8zp7tZuA==", - "dependencies": { - "@nextui-org/use-callback-ref": "2.0.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/utils": "^3.9.1" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-image": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-image/-/use-image-2.0.5.tgz", - "integrity": "sha512-FAMyvZS9XSNLqHEmU6xykMgwIFJj/V9/JpTiZAQziz2wqMiUONIBpYpGOlI+pPBNlhCkw62KHm/19vHW49FWhA==", - "dependencies": { - "@nextui-org/use-safe-layout-effect": "2.0.5" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-is-mobile": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@nextui-org/use-is-mobile/-/use-is-mobile-2.0.7.tgz", - "integrity": "sha512-BmOseC8Xmp5Xl8EKrsl/MoYtz0aIkezMatYGBCoGDGUosaKx8kNYv6T2WVA3uKj1Gr3s4dHhMCuISvcpE9XOiQ==", - "dependencies": { - "@react-aria/ssr": "^3.9.2" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-is-mounted": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-is-mounted/-/use-is-mounted-2.0.5.tgz", - "integrity": "sha512-gk698Uwmj/XhchBsnI5Ups5uzEXuZvsPK45K6goi2/ADKXSYxHOcSgwoexytqJBb/7tpi+emi2CRTAjAFZDQqA==", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-measure": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@nextui-org/use-measure/-/use-measure-2.0.1.tgz", - "integrity": "sha512-uEtdrdBdFz4Fgbfk2vmQ+rEb+eFa5o4yI90udasvfpaIrMBfrFOlRW5+yn3uXKB8JThET4Gf2on/wlJpo567Dg==", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-pagination": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@nextui-org/use-pagination/-/use-pagination-2.0.6.tgz", - "integrity": "sha512-/EIrpC/q6xQNDQrODivC3VVkphVmExiFjqqXdyxOHWnhfgC1BhQOqGK0qIPvDoHmk1U7ULKnlh/VuYjGtfTJgg==", - "dependencies": { - "@nextui-org/shared-utils": "2.0.5", - "@react-aria/i18n": "^3.10.2" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-safe-layout-effect": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-safe-layout-effect/-/use-safe-layout-effect-2.0.5.tgz", - "integrity": "sha512-YQQlqz82aYxMoEq23jQNG/JBPHF1x3opzyXRHAVxgBEFo9OJqBMZTm23ukpTXm2Ev98T6mpWiTHdfyHJ7IoRog==", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-scroll-position": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-scroll-position/-/use-scroll-position-2.0.5.tgz", - "integrity": "sha512-SSHEmv51rXWF4pfQ3YjJuEmUmHFZBLRSM2jtVSfghR3pjckMykFtlyxGhTAcXKAwi5I7rTHcVL2HFOKWSZBdaQ==", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/use-update-effect": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nextui-org/use-update-effect/-/use-update-effect-2.0.5.tgz", - "integrity": "sha512-4r2CXAD598xc2ifMu97kf8V/lj+NDct2oITbxgXeV4ezWaXHy5/26r1iyVnBzRN/VBz3fwHx3hHdftzcYSZxdA==", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@nextui-org/user": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/@nextui-org/user/-/user-2.0.28.tgz", - "integrity": "sha512-1WaAZSIzgRMaA+2+BACelxIE4YvPN6MFW+I3SvODwn98aju1yU485akxjenc7XM/5CC6TGZDAXiFz2VcEFIcZA==", - "dependencies": { - "@nextui-org/avatar": "2.0.27", - "@nextui-org/react-utils": "2.0.13", - "@nextui-org/shared-utils": "2.0.5", - "@react-aria/focus": "^3.16.2", - "@react-aria/utils": "^3.23.2" - }, - "peerDependencies": { - "@nextui-org/system": ">=2.0.0", - "@nextui-org/theme": ">=2.1.0", - "react": ">=18", - "react-dom": ">=18" - } - }, "node_modules/@noahspan/flying-client": { "resolved": "app", "link": true }, "node_modules/@noahspan/noahspan-components": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@noahspan/noahspan-components/-/noahspan-components-0.2.5.tgz", - "integrity": "sha512-y1+Spg6QrUC73KzK0s5kFtaeclWU2KtJNXEGpZpt7ZISJv5XZtLGaHpCSUqx5u67yye+A8m7OG02GaqegEIWtg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@noahspan/noahspan-components/-/noahspan-components-0.3.0.tgz", + "integrity": "sha512-606Sd060X3pWN09pNkF6KR1MIrjyUn1mvZxPvL2d9+tZSAVICsVOzCIBRG1bzRZKRHsJIGcmzqNYYv6Tdq9eXA==", "dependencies": { "@fortawesome/fontawesome-svg-core": "^6.5.2", "@fortawesome/free-brands-svg-icons": "^6.5.2", "@fortawesome/free-regular-svg-icons": "^6.5.2", "@fortawesome/free-solid-svg-icons": "^6.5.2", "@fortawesome/react-fontawesome": "^0.2.0", - "@nextui-org/react": "^2.3.6", + "@material-tailwind/react": "^2.1.9", + "@tanstack/react-table": "^8.17.3", "framer-motion": "^11.1.9" }, "engines": { @@ -4622,12 +3525,13 @@ } }, "node_modules/@noahspan/noahspan-modules": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@noahspan/noahspan-modules/-/noahspan-modules-0.2.7.tgz", - "integrity": "sha512-iDCwqfT3yK+Y48N0+jy/AiA50WQvdyaHHyUUgPblw5IzdWuMzks/dFUVegCmXyLqREUGPZk+dDXv6FIObrZTpA==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@noahspan/noahspan-modules/-/noahspan-modules-0.3.4.tgz", + "integrity": "sha512-bmcMshrfODrZCo+zTw8Ojn9FzjhPz6yYepSgPTniF4i0XEeZDdgAZdNRbe2yRtC+RedLt6Hx+HGQfKMMcPkqNA==", "dependencies": { "@azure/app-configuration": "^1.6.0", "@azure/identity": "^4.2.0", + "@azure/msal-node": "^2.9.2", "@microsoft/microsoft-graph-client": "^3.0.7", "@nestjs/common": "^10.0.0", "@nestjs/core": "^10.0.0", @@ -4648,6 +3552,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -4660,6 +3565,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "engines": { "node": ">= 8" } @@ -4668,6 +3574,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -4716,1201 +3623,6 @@ "node": ">=16" } }, - "node_modules/@react-aria/breadcrumbs": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.13.tgz", - "integrity": "sha512-G1Gqf/P6kVdfs94ovwP18fTWuIxadIQgHsXS08JEVcFVYMjb9YjqnEBaohUxD1tq2WldMbYw53ahQblT4NTG+g==", - "dependencies": { - "@react-aria/i18n": "^3.11.1", - "@react-aria/link": "^3.7.1", - "@react-aria/utils": "^3.24.1", - "@react-types/breadcrumbs": "^3.7.5", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/button": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.9.5.tgz", - "integrity": "sha512-dgcYR6j8WDOMLKuVrtxzx4jIC05cVKDzc+HnPO8lNkBAOfjcuN5tkGRtIjLtqjMvpZHhQT5aDbgFpIaZzxgFIg==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/utils": "^3.24.1", - "@react-stately/toggle": "^3.7.4", - "@react-types/button": "^3.9.4", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/calendar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.1.tgz", - "integrity": "sha512-3gGiI2arrGQtlPD9633l00TR4y5dj9IMFapEiCDuwVwNSCsnH8aiz/emg+3hGFq86QoyvkFBvnKmezJIVKfPkA==", - "dependencies": { - "@internationalized/date": "^3.5.0", - "@react-aria/i18n": "^3.8.3", - "@react-aria/interactions": "^3.19.0", - "@react-aria/live-announcer": "^3.3.1", - "@react-aria/utils": "^3.21.0", - "@react-stately/calendar": "^3.4.1", - "@react-types/button": "^3.9.0", - "@react-types/calendar": "^3.4.1", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/checkbox": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.3.tgz", - "integrity": "sha512-EtBJL6iu0gvrw3A4R7UeVLR6diaVk/mh4kFBc7c8hQjpEJweRr4hmJT3hrNg3MBcTWLxFiMEXPGgWEwXDBygtA==", - "dependencies": { - "@react-aria/form": "^3.0.5", - "@react-aria/interactions": "^3.21.3", - "@react-aria/label": "^3.7.8", - "@react-aria/toggle": "^3.10.4", - "@react-aria/utils": "^3.24.1", - "@react-stately/checkbox": "^3.6.5", - "@react-stately/form": "^3.0.3", - "@react-stately/toggle": "^3.7.4", - "@react-types/checkbox": "^3.8.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/combobox": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.9.1.tgz", - "integrity": "sha512-SpK92dCmT8qn8aEcUAihRQrBb5LZUhwIbDExFII8PvUvEFy/PoQHXIo3j1V29WkutDBDpMvBv/6XRCHGXPqrhQ==", - "dependencies": { - "@react-aria/i18n": "^3.11.1", - "@react-aria/listbox": "^3.12.1", - "@react-aria/live-announcer": "^3.3.4", - "@react-aria/menu": "^3.14.1", - "@react-aria/overlays": "^3.22.1", - "@react-aria/selection": "^3.18.1", - "@react-aria/textfield": "^3.14.5", - "@react-aria/utils": "^3.24.1", - "@react-stately/collections": "^3.10.7", - "@react-stately/combobox": "^3.8.4", - "@react-stately/form": "^3.0.3", - "@react-types/button": "^3.9.4", - "@react-types/combobox": "^3.11.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/datepicker": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.10.1.tgz", - "integrity": "sha512-4HZL593nrNMa1GjBmWEN/OTvNS6d3/16G1YJWlqiUlv11ADulSbqBIjMmkgwrJVFcjrgqtXFy+yyrTA/oq94Zw==", - "dependencies": { - "@internationalized/date": "^3.5.4", - "@internationalized/number": "^3.5.3", - "@internationalized/string": "^3.2.3", - "@react-aria/focus": "^3.17.1", - "@react-aria/form": "^3.0.5", - "@react-aria/i18n": "^3.11.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/label": "^3.7.8", - "@react-aria/spinbutton": "^3.6.5", - "@react-aria/utils": "^3.24.1", - "@react-stately/datepicker": "^3.9.4", - "@react-stately/form": "^3.0.3", - "@react-types/button": "^3.9.4", - "@react-types/calendar": "^3.4.6", - "@react-types/datepicker": "^3.7.4", - "@react-types/dialog": "^3.5.10", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/datepicker/node_modules/@react-types/calendar": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.6.tgz", - "integrity": "sha512-WSntZPwtvsIYWvBQRAPvuCn55UTJBZroTvX0vQvWykJRQnPAI20G1hMQ3dNsnAL+gLZUYxBXn66vphmjUuSYew==", - "dependencies": { - "@internationalized/date": "^3.5.4", - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/dialog": { - "version": "3.5.14", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.14.tgz", - "integrity": "sha512-oqDCjQ8hxe3GStf48XWBf2CliEnxlR9GgSYPHJPUc69WBj68D9rVcCW3kogJnLAnwIyf3FnzbX4wSjvUa88sAQ==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/overlays": "^3.22.1", - "@react-aria/utils": "^3.24.1", - "@react-types/dialog": "^3.5.10", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/focus": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.17.1.tgz", - "integrity": "sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ==", - "dependencies": { - "@react-aria/interactions": "^3.21.3", - "@react-aria/utils": "^3.24.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/focus/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-aria/form": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.5.tgz", - "integrity": "sha512-n290jRwrrRXO3fS82MyWR+OKN7yznVesy5Q10IclSTVYHHI3VI53xtAPr/WzNjJR1um8aLhOcDNFKwnNIUUCsQ==", - "dependencies": { - "@react-aria/interactions": "^3.21.3", - "@react-aria/utils": "^3.24.1", - "@react-stately/form": "^3.0.3", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/grid": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.9.1.tgz", - "integrity": "sha512-fGEZqAEaS8mqzV/II3N4ndoNWegIcbh+L3PmKbXdpKKUP8VgMs/WY5rYl5WAF0f5RoFwXqx3ibDLeR9tKj/bOg==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/i18n": "^3.11.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/live-announcer": "^3.3.4", - "@react-aria/selection": "^3.18.1", - "@react-aria/utils": "^3.24.1", - "@react-stately/collections": "^3.10.7", - "@react-stately/grid": "^3.8.7", - "@react-stately/selection": "^3.15.1", - "@react-stately/virtualizer": "^3.7.1", - "@react-types/checkbox": "^3.8.1", - "@react-types/grid": "^3.2.6", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/i18n": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.11.1.tgz", - "integrity": "sha512-vuiBHw1kZruNMYeKkTGGnmPyMnM5T+gT8bz97H1FqIq1hQ6OPzmtBZ6W6l6OIMjeHI5oJo4utTwfZl495GALFQ==", - "dependencies": { - "@internationalized/date": "^3.5.4", - "@internationalized/message": "^3.1.4", - "@internationalized/number": "^3.5.3", - "@internationalized/string": "^3.2.3", - "@react-aria/ssr": "^3.9.4", - "@react-aria/utils": "^3.24.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/interactions": { - "version": "3.21.3", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.21.3.tgz", - "integrity": "sha512-BWIuf4qCs5FreDJ9AguawLVS0lV9UU+sK4CCnbCNNmYqOWY+1+gRXCsnOM32K+oMESBxilAjdHW5n1hsMqYMpA==", - "dependencies": { - "@react-aria/ssr": "^3.9.4", - "@react-aria/utils": "^3.24.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/label": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.8.tgz", - "integrity": "sha512-MzgTm5+suPA3KX7Ug6ZBK2NX9cin/RFLsv1BdafJ6CZpmUSpWnGE/yQfYUB7csN7j31OsZrD3/P56eShYWAQfg==", - "dependencies": { - "@react-aria/utils": "^3.24.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/link": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.7.1.tgz", - "integrity": "sha512-a4IaV50P3fXc7DQvEIPYkJJv26JknFbRzFT5MJOMgtzuhyJoQdILEUK6XHYjcSSNCA7uLgzpojArVk5Hz3lCpw==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/utils": "^3.24.1", - "@react-types/link": "^3.5.5", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/listbox": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.12.1.tgz", - "integrity": "sha512-7JiUp0NGykbv/HgSpmTY1wqhuf/RmjFxs1HZcNaTv8A+DlzgJYc7yQqFjP3ZA/z5RvJFuuIxggIYmgIFjaRYdA==", - "dependencies": { - "@react-aria/interactions": "^3.21.3", - "@react-aria/label": "^3.7.8", - "@react-aria/selection": "^3.18.1", - "@react-aria/utils": "^3.24.1", - "@react-stately/collections": "^3.10.7", - "@react-stately/list": "^3.10.5", - "@react-types/listbox": "^3.4.9", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/live-announcer": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.3.4.tgz", - "integrity": "sha512-w8lxs35QrRrn6pBNzVfyGOeqWdxeVKf9U6bXIVwhq7rrTqRULL8jqy8RJIMfIs1s8G5FpwWYjyBOjl2g5Cu1iA==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@react-aria/menu": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.14.1.tgz", - "integrity": "sha512-BYliRb38uAzq05UOFcD5XkjA5foQoXRbcH3ZufBsc4kvh79BcP1PMW6KsXKGJ7dC/PJWUwCui6QL1kUg8PqMHA==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/i18n": "^3.11.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/overlays": "^3.22.1", - "@react-aria/selection": "^3.18.1", - "@react-aria/utils": "^3.24.1", - "@react-stately/collections": "^3.10.7", - "@react-stately/menu": "^3.7.1", - "@react-stately/tree": "^3.8.1", - "@react-types/button": "^3.9.4", - "@react-types/menu": "^3.9.9", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/overlays": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.22.1.tgz", - "integrity": "sha512-GHiFMWO4EQ6+j6b5QCnNoOYiyx1Gk8ZiwLzzglCI4q1NY5AG2EAmfU4Z1+Gtrf2S5Y0zHbumC7rs9GnPoGLUYg==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/i18n": "^3.11.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/ssr": "^3.9.4", - "@react-aria/utils": "^3.24.1", - "@react-aria/visually-hidden": "^3.8.12", - "@react-stately/overlays": "^3.6.7", - "@react-types/button": "^3.9.4", - "@react-types/overlays": "^3.8.7", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/progress": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.13.tgz", - "integrity": "sha512-YBV9bOO5JzKvG8QCI0IAA00o6FczMgIDiK8Q9p5gKorFMatFUdRayxlbIPoYHMi+PguLil0jHgC7eOyaUcrZ0g==", - "dependencies": { - "@react-aria/i18n": "^3.11.1", - "@react-aria/label": "^3.7.8", - "@react-aria/utils": "^3.24.1", - "@react-types/progress": "^3.5.4", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/radio": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.4.tgz", - "integrity": "sha512-3fmoMcQtCpgjTwJReFjnvIE/C7zOZeCeWUn4JKDqz9s1ILYsC3Rk5zZ4q66tFn6v+IQnecrKT52wH6+hlVLwTA==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/form": "^3.0.5", - "@react-aria/i18n": "^3.11.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/label": "^3.7.8", - "@react-aria/utils": "^3.24.1", - "@react-stately/radio": "^3.10.4", - "@react-types/radio": "^3.8.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/selection": { - "version": "3.18.1", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.18.1.tgz", - "integrity": "sha512-GSqN2jX6lh7v+ldqhVjAXDcrWS3N4IsKXxO6L6Ygsye86Q9q9Mq9twWDWWu5IjHD6LoVZLUBCMO+ENGbOkyqeQ==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/i18n": "^3.11.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/utils": "^3.24.1", - "@react-stately/selection": "^3.15.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/slider": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.8.tgz", - "integrity": "sha512-MYvPcM0K8jxEJJicUK2+WxUkBIM/mquBxOTOSSIL3CszA80nXIGVnLlCUnQV3LOUzpWtabbWaZokSPtGgOgQOw==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/i18n": "^3.11.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/label": "^3.7.8", - "@react-aria/utils": "^3.24.1", - "@react-stately/slider": "^3.5.4", - "@react-types/shared": "^3.23.1", - "@react-types/slider": "^3.7.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/spinbutton": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.5.tgz", - "integrity": "sha512-0aACBarF/Xr/7ixzjVBTQ0NBwwwsoGkf5v6AVFVMTC0uYMXHTALvRs+ULHjHMa5e/cX/aPlEvaVT7jfSs+Xy9Q==", - "dependencies": { - "@react-aria/i18n": "^3.11.1", - "@react-aria/live-announcer": "^3.3.4", - "@react-aria/utils": "^3.24.1", - "@react-types/button": "^3.9.4", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/ssr": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.4.tgz", - "integrity": "sha512-4jmAigVq409qcJvQyuorsmBR4+9r3+JEC60wC+Y0MZV0HCtTmm8D9guYXlJMdx0SSkgj0hHAyFm/HvPNFofCoQ==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/switch": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.4.tgz", - "integrity": "sha512-2nVqz4ZuJyof47IpGSt3oZRmp+EdS8wzeDYgf42WHQXrx4uEOk1mdLJ20+NnsYhj/2NHZsvXVrjBeKMjlMs+0w==", - "dependencies": { - "@react-aria/toggle": "^3.10.4", - "@react-stately/toggle": "^3.7.4", - "@react-types/switch": "^3.5.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/table": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.14.1.tgz", - "integrity": "sha512-WaPgQe4zQF5OaluO5rm+Y2nEoFR63vsLd4BT4yjK1uaFhKhDY2Zk+1SCVQvBLLKS4WK9dhP05nrNzT0vp/ZPOw==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/grid": "^3.9.1", - "@react-aria/i18n": "^3.11.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/live-announcer": "^3.3.4", - "@react-aria/utils": "^3.24.1", - "@react-aria/visually-hidden": "^3.8.12", - "@react-stately/collections": "^3.10.7", - "@react-stately/flags": "^3.0.3", - "@react-stately/table": "^3.11.8", - "@react-stately/virtualizer": "^3.7.1", - "@react-types/checkbox": "^3.8.1", - "@react-types/grid": "^3.2.6", - "@react-types/shared": "^3.23.1", - "@react-types/table": "^3.9.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/tabs": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.9.1.tgz", - "integrity": "sha512-S5v/0sRcOaSXaJYZuuy1ZVzYc7JD4sDyseG1133GjyuNjJOFHgoWMb+b4uxNIJbZxnLgynn/ZDBZSO+qU+fIxw==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/i18n": "^3.11.1", - "@react-aria/selection": "^3.18.1", - "@react-aria/utils": "^3.24.1", - "@react-stately/tabs": "^3.6.6", - "@react-types/shared": "^3.23.1", - "@react-types/tabs": "^3.3.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/textfield": { - "version": "3.14.5", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.5.tgz", - "integrity": "sha512-hj7H+66BjB1iTKKaFXwSZBZg88YT+wZboEXZ0DNdQB2ytzoz/g045wBItUuNi4ZjXI3P+0AOZznVMYadWBAmiA==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/form": "^3.0.5", - "@react-aria/label": "^3.7.8", - "@react-aria/utils": "^3.24.1", - "@react-stately/form": "^3.0.3", - "@react-stately/utils": "^3.10.1", - "@react-types/shared": "^3.23.1", - "@react-types/textfield": "^3.9.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/toggle": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.4.tgz", - "integrity": "sha512-bRk+CdB8QzrSyGNjENXiTWxfzYKRw753iwQXsEAU7agPCUdB8cZJyrhbaUoD0rwczzTp2zDbZ9rRbUPdsBE2YQ==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/utils": "^3.24.1", - "@react-stately/toggle": "^3.7.4", - "@react-types/checkbox": "^3.8.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/tooltip": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.4.tgz", - "integrity": "sha512-+XRx4HlLYqWY3fB8Z60bQi/rbWDIGlFUtXYbtoa1J+EyRWfhpvsYImP8qeeNO/vgjUtDy1j9oKa8p6App9mBMQ==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/utils": "^3.24.1", - "@react-stately/tooltip": "^3.4.9", - "@react-types/shared": "^3.23.1", - "@react-types/tooltip": "^3.4.9", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/utils": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.24.1.tgz", - "integrity": "sha512-O3s9qhPMd6n42x9sKeJ3lhu5V1Tlnzhu6Yk8QOvDuXf7UGuUjXf9mzfHJt1dYzID4l9Fwm8toczBzPM9t0jc8Q==", - "dependencies": { - "@react-aria/ssr": "^3.9.4", - "@react-stately/utils": "^3.10.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/utils/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-aria/visually-hidden": { - "version": "3.8.12", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.12.tgz", - "integrity": "sha512-Bawm+2Cmw3Xrlr7ARzl2RLtKh0lNUdJ0eNqzWcyx4c0VHUAWtThmH5l+HRqFUGzzutFZVo89SAy40BAbd0gjVw==", - "dependencies": { - "@react-aria/interactions": "^3.21.3", - "@react-aria/utils": "^3.24.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/calendar": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.4.1.tgz", - "integrity": "sha512-XKCdrXNA7/ukZ842EeDZfLqYUQDv/x5RoAVkzTbp++3U/MLM1XZXsqj+5xVlQfJiWpQzM9L6ySjxzzgepJDeuw==", - "dependencies": { - "@internationalized/date": "^3.5.0", - "@react-stately/utils": "^3.8.0", - "@react-types/calendar": "^3.4.1", - "@react-types/datepicker": "^3.6.1", - "@react-types/shared": "^3.21.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/checkbox": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.5.tgz", - "integrity": "sha512-IXV3f9k+LtmfQLE+DKIN41Q5QB/YBLDCB1YVx5PEdRp52S9+EACD5683rjVm8NVRDwjMi2SP6RnFRk7fVb5Azg==", - "dependencies": { - "@react-stately/form": "^3.0.3", - "@react-stately/utils": "^3.10.1", - "@react-types/checkbox": "^3.8.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/collections": { - "version": "3.10.7", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.7.tgz", - "integrity": "sha512-KRo5O2MWVL8n3aiqb+XR3vP6akmHLhLWYZEmPKjIv0ghQaEebBTrN3wiEjtd6dzllv0QqcWvDLM1LntNfJ2TsA==", - "dependencies": { - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/combobox": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.8.4.tgz", - "integrity": "sha512-iLVGvKRRz0TeJXZhZyK783hveHpYA6xovOSdzSD+WGYpiPXo1QrcrNoH3AE0Z2sHtorU+8nc0j58vh5PB+m2AA==", - "dependencies": { - "@react-stately/collections": "^3.10.7", - "@react-stately/form": "^3.0.3", - "@react-stately/list": "^3.10.5", - "@react-stately/overlays": "^3.6.7", - "@react-stately/select": "^3.6.4", - "@react-stately/utils": "^3.10.1", - "@react-types/combobox": "^3.11.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/datepicker": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.9.4.tgz", - "integrity": "sha512-yBdX01jn6gq4NIVvHIqdjBUPo+WN8Bujc4OnPw+ZnfA4jI0eIgq04pfZ84cp1LVXW0IB0VaCu1AlQ/kvtZjfGA==", - "dependencies": { - "@internationalized/date": "^3.5.4", - "@internationalized/string": "^3.2.3", - "@react-stately/form": "^3.0.3", - "@react-stately/overlays": "^3.6.7", - "@react-stately/utils": "^3.10.1", - "@react-types/datepicker": "^3.7.4", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/flags": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.3.tgz", - "integrity": "sha512-/ha7XFA0RZTQsbzSPwu3KkbNMgbvuM0GuMTYLTBWpgBrovBNTM+QqI/PfZTdHg8PwCYF4H5Y8gjdSpdulCvJFw==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@react-stately/form": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.3.tgz", - "integrity": "sha512-92YYBvlHEWUGUpXgIaQ48J50jU9XrxfjYIN8BTvvhBHdD63oWgm8DzQnyT/NIAMzdLnhkg7vP+fjG8LjHeyIAg==", - "dependencies": { - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/grid": { - "version": "3.8.7", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.8.7.tgz", - "integrity": "sha512-he3TXCLAhF5C5z1/G4ySzcwyt7PEiWcVIupxebJQqRyFrNWemSuv+7tolnStmG8maMVIyV3P/3j4eRBbdSlOIg==", - "dependencies": { - "@react-stately/collections": "^3.10.7", - "@react-stately/selection": "^3.15.1", - "@react-types/grid": "^3.2.6", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/list": { - "version": "3.10.5", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.5.tgz", - "integrity": "sha512-fV9plO+6QDHiewsYIhboxcDhF17GO95xepC5ki0bKXo44gr14g/LSo/BMmsaMnV+1BuGdBunB05bO4QOIaigXA==", - "dependencies": { - "@react-stately/collections": "^3.10.7", - "@react-stately/selection": "^3.15.1", - "@react-stately/utils": "^3.10.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/menu": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.7.1.tgz", - "integrity": "sha512-mX1w9HHzt+xal1WIT2xGrTQsoLvDwuB2R1Er1MBABs//MsJzccycatcgV/J/28m6tO5M9iuFQQvLV+i1dCtodg==", - "dependencies": { - "@react-stately/overlays": "^3.6.7", - "@react-types/menu": "^3.9.9", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/overlays": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.7.tgz", - "integrity": "sha512-6zp8v/iNUm6YQap0loaFx6PlvN8C0DgWHNlrlzMtMmNuvjhjR0wYXVaTfNoUZBWj25tlDM81ukXOjpRXg9rLrw==", - "dependencies": { - "@react-stately/utils": "^3.10.1", - "@react-types/overlays": "^3.8.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/radio": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.4.tgz", - "integrity": "sha512-kCIc7tAl4L7Hu4Wt9l2jaa+MzYmAJm0qmC8G8yPMbExpWbLRu6J8Un80GZu+JxvzgDlqDyrVvyv9zFifwH/NkQ==", - "dependencies": { - "@react-stately/form": "^3.0.3", - "@react-stately/utils": "^3.10.1", - "@react-types/radio": "^3.8.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/select": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.4.tgz", - "integrity": "sha512-whZgF1N53D0/dS8tOFdrswB0alsk5Q5620HC3z+5f2Hpi8gwgAZ8TYa+2IcmMYRiT+bxVuvEc/NirU9yPmqGbA==", - "dependencies": { - "@react-stately/form": "^3.0.3", - "@react-stately/list": "^3.10.5", - "@react-stately/overlays": "^3.6.7", - "@react-types/select": "^3.9.4", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/selection": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.15.1.tgz", - "integrity": "sha512-6TQnN9L0UY9w19B7xzb1P6mbUVBtW840Cw1SjgNXCB3NPaCf59SwqClYzoj8O2ZFzMe8F/nUJtfU1NS65/OLlw==", - "dependencies": { - "@react-stately/collections": "^3.10.7", - "@react-stately/utils": "^3.10.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/slider": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.4.tgz", - "integrity": "sha512-Jsf7K17dr93lkNKL9ij8HUcoM1sPbq8TvmibD6DhrK9If2lje+OOL8y4n4qreUnfMT56HCAeS9wCO3fg3eMyrw==", - "dependencies": { - "@react-stately/utils": "^3.10.1", - "@react-types/shared": "^3.23.1", - "@react-types/slider": "^3.7.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/table": { - "version": "3.11.8", - "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.11.8.tgz", - "integrity": "sha512-EdyRW3lT1/kAVDp5FkEIi1BQ7tvmD2YgniGdLuW/l9LADo0T+oxZqruv60qpUS6sQap+59Riaxl91ClDxrJnpg==", - "dependencies": { - "@react-stately/collections": "^3.10.7", - "@react-stately/flags": "^3.0.3", - "@react-stately/grid": "^3.8.7", - "@react-stately/selection": "^3.15.1", - "@react-stately/utils": "^3.10.1", - "@react-types/grid": "^3.2.6", - "@react-types/shared": "^3.23.1", - "@react-types/table": "^3.9.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/tabs": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.6.tgz", - "integrity": "sha512-sOLxorH2uqjAA+v1ppkMCc2YyjgqvSGeBDgtR/lyPSDd4CVMoTExszROX2dqG0c8il9RQvzFuufUtQWMY6PgSA==", - "dependencies": { - "@react-stately/list": "^3.10.5", - "@react-types/shared": "^3.23.1", - "@react-types/tabs": "^3.3.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/toggle": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.4.tgz", - "integrity": "sha512-CoYFe9WrhLkDP4HGDpJYQKwfiYCRBAeoBQHv+JWl5eyK61S8xSwoHsveYuEZ3bowx71zyCnNAqWRrmNOxJ4CKA==", - "dependencies": { - "@react-stately/utils": "^3.10.1", - "@react-types/checkbox": "^3.8.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/tooltip": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.9.tgz", - "integrity": "sha512-P7CDJsdoKarz32qFwf3VNS01lyC+63gXpDZG31pUu+EO5BeQd4WKN/AH1Beuswpr4GWzxzFc1aXQgERFGVzraA==", - "dependencies": { - "@react-stately/overlays": "^3.6.7", - "@react-types/tooltip": "^3.4.9", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/tree": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.1.tgz", - "integrity": "sha512-LOdkkruJWch3W89h4B/bXhfr0t0t1aRfEp+IMrrwdRAl23NaPqwl5ILHs4Xu5XDHqqhg8co73pHrJwUyiTWEjw==", - "dependencies": { - "@react-stately/collections": "^3.10.7", - "@react-stately/selection": "^3.15.1", - "@react-stately/utils": "^3.10.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/utils": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.1.tgz", - "integrity": "sha512-VS/EHRyicef25zDZcM/ClpzYMC5i2YGN6uegOeQawmgfGjb02yaCX0F0zR69Pod9m2Hr3wunTbtpgVXvYbZItg==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/virtualizer": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.7.1.tgz", - "integrity": "sha512-voHgE6EQ+oZaLv6u2umKxakvIKNkCQuUihqKACTjdslp7SJh4Mvs3oLBI0hf0JOh+rCcFIKDvQtFwy1fXFRYBA==", - "dependencies": { - "@react-aria/utils": "^3.24.1", - "@react-types/shared": "^3.23.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/accordion": { - "version": "3.0.0-alpha.19", - "resolved": "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.19.tgz", - "integrity": "sha512-WJaitKz56zRKUwBqDM4OOKtmIdD0lr5nruWoM2IlGRO50WUzSFmAy/1aFiodAVZbun1v5IxbjST6/qSV4jPqug==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/breadcrumbs": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.5.tgz", - "integrity": "sha512-lV9IDYsMiu2TgdMIjEmsOE0YWwjb3jhUNK1DCZZfq6uWuiHLgyx2EncazJBUWSjHJ4ta32j7xTuXch+8Ai6u/A==", - "dependencies": { - "@react-types/link": "^3.5.5", - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/button": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.4.tgz", - "integrity": "sha512-raeQBJUxBp0axNF74TXB8/H50GY8Q3eV6cEKMbZFP1+Dzr09Ngv0tJBeW0ewAxAguNH5DRoMUAUGIXtSXskVdA==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/calendar": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.1.tgz", - "integrity": "sha512-tiCkHi6IQtYcVoAESG79eUBWDXoo8NImo+Mj8WAWpo1lOA3SV1W2PpeXkoRNqtloilQ0aYcmsaJJUhciQG4ndg==", - "dependencies": { - "@internationalized/date": "^3.5.0", - "@react-types/shared": "^3.21.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/checkbox": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.8.1.tgz", - "integrity": "sha512-5/oVByPw4MbR/8QSdHCaalmyWC71H/QGgd4aduTJSaNi825o+v/hsN2/CH7Fq9atkLKsC8fvKD00Bj2VGaKriQ==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/combobox": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.11.1.tgz", - "integrity": "sha512-UNc3OHt5cUt5gCTHqhQIqhaWwKCpaNciD8R7eQazmHiA9fq8ROlV+7l3gdNgdhJbTf5Bu/V5ISnN7Y1xwL3zqQ==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/datepicker": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.7.4.tgz", - "integrity": "sha512-ZfvgscvNzBJpYyVWg3nstJtA/VlWLwErwSkd1ivZYam859N30w8yH+4qoYLa6FzWLCFlrsRHyvtxlEM7lUAt5A==", - "dependencies": { - "@internationalized/date": "^3.5.4", - "@react-types/calendar": "^3.4.6", - "@react-types/overlays": "^3.8.7", - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/datepicker/node_modules/@react-types/calendar": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.6.tgz", - "integrity": "sha512-WSntZPwtvsIYWvBQRAPvuCn55UTJBZroTvX0vQvWykJRQnPAI20G1hMQ3dNsnAL+gLZUYxBXn66vphmjUuSYew==", - "dependencies": { - "@internationalized/date": "^3.5.4", - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/dialog": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.10.tgz", - "integrity": "sha512-S9ga+edOLNLZw7/zVOnZdT5T40etpzUYBXEKdFPbxyPYnERvRxJAsC1/ASuBU9fQAXMRgLZzADWV+wJoGS/X9g==", - "dependencies": { - "@react-types/overlays": "^3.8.7", - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/grid": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.6.tgz", - "integrity": "sha512-XfHenL2jEBUYrhKiPdeM24mbLRXUn79wVzzMhrNYh24nBwhsPPpxF+gjFddT3Cy8dt6tRInfT6pMEu9nsXwaHw==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/link": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.5.tgz", - "integrity": "sha512-G6P5WagHDR87npN7sEuC5IIgL1GsoY4WFWKO4734i2CXRYx24G9P0Su3AX4GA3qpspz8sK1AWkaCzBMmvnunfw==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/listbox": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.4.9.tgz", - "integrity": "sha512-S5G+WmNKUIOPZxZ4svWwWQupP3C6LmVfnf8QQmPDvwYXGzVc0WovkqUWyhhjJirFDswTXRCO9p0yaTHHIlkdwQ==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/menu": { - "version": "3.9.9", - "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.9.tgz", - "integrity": "sha512-FamUaPVs1Fxr4KOMI0YcR2rYZHoN7ypGtgiEiJ11v/tEPjPPGgeKDxii0McCrdOkjheatLN1yd2jmMwYj6hTDg==", - "dependencies": { - "@react-types/overlays": "^3.8.7", - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/overlays": { - "version": "3.8.7", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.7.tgz", - "integrity": "sha512-zCOYvI4at2DkhVpviIClJ7bRrLXYhSg3Z3v9xymuPH3mkiuuP/dm8mUCtkyY4UhVeUTHmrQh1bzaOP00A+SSQA==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/progress": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.4.tgz", - "integrity": "sha512-JNc246sTjasPyx5Dp7/s0rp3Bz4qlu4LrZTulZlxWyb53WgBNL7axc26CCi+I20rWL9+c7JjhrRxnLl/1cLN5g==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/radio": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.1.tgz", - "integrity": "sha512-bK0gio/qj1+0Ldu/3k/s9BaOZvnnRgvFtL3u5ky479+aLG5qf1CmYed3SKz8ErZ70JkpuCSrSwSCFf0t1IHovw==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/select": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.4.tgz", - "integrity": "sha512-xI7dnOW2st91fPPcv6hdtrTdcfetYiqZuuVPZ5TRobY7Q10/Zqqe/KqtOw1zFKUj9xqNJe4Ov3xP5GSdcO60Eg==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/shared": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.23.1.tgz", - "integrity": "sha512-5d+3HbFDxGZjhbMBeFHRQhexMFt4pUce3okyRtUVKbbedQFUrtXSBg9VszgF2RTeQDKDkMCIQDtz5ccP/Lk1gw==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/slider": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.3.tgz", - "integrity": "sha512-F8qFQaD2mqug2D0XeWMmjGBikiwbdERFlhFzdvNGbypPLz3AZICBKp1ZLPWdl0DMuy03G/jy6Gl4mDobl7RT2g==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/switch": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.3.tgz", - "integrity": "sha512-Nb6+J5MrPaFa8ZNFKGMzAsen/NNzl5UG/BbC65SLGPy7O0VDa/sUpn7dcu8V2xRpRwwIN/Oso4v63bt2sgdkgA==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/table": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.9.5.tgz", - "integrity": "sha512-fgM2j9F/UR4Anmd28CueghCgBwOZoCVyN8fjaIFPd2MN4gCwUUfANwxLav65gZk4BpwUXGoQdsW+X50L3555mg==", - "dependencies": { - "@react-types/grid": "^3.2.6", - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/tabs": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.7.tgz", - "integrity": "sha512-ZdLe5xOcFX6+/ni45Dl2jO0jFATpTnoSqj6kLIS/BYv8oh0n817OjJkLf+DS3CLfNjApJWrHqAk34xNh6nRnEg==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/textfield": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.3.tgz", - "integrity": "sha512-DoAY6cYOL0pJhgNGI1Rosni7g72GAt4OVr2ltEx2S9ARmFZ0DBvdhA9lL2nywcnKMf27PEJcKMXzXc10qaHsJw==", - "dependencies": { - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/tooltip": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.9.tgz", - "integrity": "sha512-wZ+uF1+Zc43qG+cOJzioBmLUNjRa7ApdcT0LI1VvaYvH5GdfjzUJOorLX9V/vAci0XMJ50UZ+qsh79aUlw2yqg==", - "dependencies": { - "@react-types/overlays": "^3.8.7", - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, "node_modules/@remix-run/router": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.1.tgz", @@ -6207,6 +3919,27 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -6231,12 +3964,35 @@ "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@swc/helpers": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz", - "integrity": "sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==", + "node_modules/@tanstack/react-table": { + "version": "8.17.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.17.3.tgz", + "integrity": "sha512-5gwg5SvPD3lNAXPuJJz1fOCEZYk9/GeBFH3w/hCgnfyszOIzwkwgp5I7Q4MJtn0WECp84b5STQUDdmvGi8m3nA==", "dependencies": { - "tslib": "^2.4.0" + "@tanstack/table-core": "8.17.3" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/@tanstack/table-core": { + "version": "8.17.3", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.17.3.tgz", + "integrity": "sha512-mPBodDGVL+fl6d90wUREepHa/7lhsghg2A3vFpakEhrhtbIlgNAZiMr7ccTgak5qbHqF14Fwy+W1yFWQt+WmYQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@teppeis/multimaps": { @@ -6251,25 +4007,25 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "devOptional": true + "dev": true }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "devOptional": true + "dev": true }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "devOptional": true + "dev": true }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "devOptional": true + "dev": true }, "node_modules/@types/babel__core": { "version": "7.20.5", @@ -6459,19 +4215,6 @@ "@types/node": "*" } }, - "node_modules/@types/lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==" - }, - "node_modules/@types/lodash.debounce": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.9.tgz", - "integrity": "sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==", - "dependencies": { - "@types/lodash": "*" - } - }, "node_modules/@types/methods": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz", @@ -6520,7 +4263,7 @@ "version": "15.7.12", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", - "devOptional": true + "dev": true }, "node_modules/@types/qs": { "version": "6.9.15", @@ -6538,7 +4281,7 @@ "version": "18.3.2", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.2.tgz", "integrity": "sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==", - "devOptional": true, + "dev": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -6601,6 +4344,11 @@ "@types/superagent": "^8.1.0" } }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, "node_modules/@types/uuid": { "version": "9.0.8", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", @@ -7005,7 +4753,7 @@ "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "devOptional": true, + "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -7035,7 +4783,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.4.0" } @@ -7137,6 +4885,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "devOptional": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -7149,6 +4898,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "devOptional": true, "engines": { "node": ">=8.6" }, @@ -7168,7 +4918,8 @@ "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true }, "node_modules/argparse": { "version": "2.0.1", @@ -7176,6 +4927,17 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -7421,6 +5183,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "devOptional": true, "engines": { "node": ">=8" }, @@ -7499,6 +5262,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "devOptional": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -7699,6 +5463,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, "engines": { "node": ">= 6" } @@ -7767,6 +5532,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "devOptional": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -7821,6 +5587,11 @@ "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" }, + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -7971,14 +5742,6 @@ "node": ">=0.8" } }, - "node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "engines": { - "node": ">=6" - } - }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -7995,18 +5758,6 @@ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -8023,20 +5774,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color2k": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz", - "integrity": "sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==" - }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -8058,6 +5795,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, "engines": { "node": ">= 6" } @@ -8087,11 +5825,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/compute-scroll-into-view": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", - "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==" - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -8112,6 +5845,48 @@ "typedarray": "^0.0.6" } }, + "node_modules/concurrently": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", + "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "date-fns": "^2.30.0", + "lodash": "^4.17.21", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "spawn-command": "0.0.2", + "supports-color": "^8.1.1", + "tree-kill": "^1.2.2", + "yargs": "^17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^14.13.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/consola": { "version": "2.15.3", "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", @@ -8229,7 +6004,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true + "dev": true }, "node_modules/cross-spawn": { "version": "7.0.3", @@ -8248,6 +6023,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, "bin": { "cssesc": "bin/cssesc" }, @@ -8259,7 +6035,23 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "devOptional": true + "dev": true + }, + "node_modules/date-fns": { + "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==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } }, "node_modules/debug": { "version": "4.3.4", @@ -8301,6 +6093,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -8374,11 +6167,6 @@ "node": ">=8" } }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" - }, "node_modules/dezalgo": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", @@ -8392,7 +6180,8 @@ "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true }, "node_modules/diff": { "version": "4.0.2", @@ -8426,7 +6215,8 @@ "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true }, "node_modules/doctrine": { "version": "3.0.0", @@ -9073,6 +6863,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -9125,6 +6916,7 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -9176,6 +6968,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "devOptional": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -9229,14 +7022,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" - } - }, "node_modules/flat-cache": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", @@ -9471,6 +7256,14 @@ } } }, + "node_modules/framesync": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz", + "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -9509,6 +7302,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -9574,14 +7368,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "engines": { - "node": ">=6" - } - }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -9628,6 +7414,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "devOptional": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -9795,6 +7582,11 @@ "node": ">=8" } }, + "node_modules/hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" + }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -9880,6 +7672,11 @@ "node": ">=0.10.0" } }, + "node_modules/idb": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/idb/-/idb-8.0.0.tgz", + "integrity": "sha512-l//qvlAKGmQO31Qn7xdzagVPPaHTxXx199MhrAFuVBTPqydcPYBWjkrbv4Y0ktB+GmWOiwHl237UUOrLmQxLvw==" + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -10018,25 +7815,6 @@ "node": ">= 0.10" } }, - "node_modules/intl-messageformat": { - "version": "10.5.14", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz", - "integrity": "sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==", - "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.8", - "tslib": "^2.4.0" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -10054,6 +7832,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "devOptional": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -10090,6 +7869,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -10119,6 +7899,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "devOptional": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -10153,6 +7934,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "devOptional": true, "engines": { "node": ">=0.12.0" } @@ -10982,10 +8764,24 @@ "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, "bin": { "jiti": "bin/jiti.js" } }, + "node_modules/joi": { + "version": "17.13.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz", + "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -11162,6 +8958,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "dev": true, "engines": { "node": ">=14" }, @@ -11440,6 +9237,34 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/lit": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.4.tgz", + "integrity": "sha512-q6qKnKXHy2g1kjBaNfcoLlgbI3+aSOZ9Q4tiGa9bGYXq5RBXxkVTqTIVmP2VWMp29L4GyvCFm8ZQ2o56eUAMyA==", + "dependencies": { + "@lit/reactive-element": "^2.0.4", + "lit-element": "^4.0.4", + "lit-html": "^3.1.2" + } + }, + "node_modules/lit-element": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.6.tgz", + "integrity": "sha512-U4sdJ3CSQip7sLGZ/uJskO5hGiqtlpxndsLr6mt3IQIjheg93UKYeGQjWMRql1s/cXNOaRrCzC2FQwjIwSUqkg==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.1.2" + } + }, + "node_modules/lit-html": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.4.tgz", + "integrity": "sha512-yKKO2uVv7zYFHlWMfZmqc+4hkmSbFp8jgjdZY9vvR9jr4J8fH6FUMXhr+ljfELgmjpvlF7Z1SJ5n5/Jeqtc9YA==", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -11474,21 +9299,6 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "node_modules/lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" - }, "node_modules/lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", @@ -11519,16 +9329,6 @@ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" - }, - "node_modules/lodash.mapkeys": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.mapkeys/-/lodash.mapkeys-4.6.0.tgz", - "integrity": "sha512-0Al+hxpYvONWtg+ZqHpa/GaVzxuN3V7Xeo2p+bY06EaK/n+Y9R7nBePPN2o1LxmL0TWQSwP8LYZ008/hc9JzhA==" - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -11545,11 +9345,6 @@ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" }, - "node_modules/lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==" - }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", @@ -11820,7 +9615,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "devOptional": true + "dev": true }, "node_modules/makeerror": { "version": "1.0.12", @@ -11831,6 +9626,11 @@ "tmpl": "1.0.5" } }, + "node_modules/material-ripple-effects": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/material-ripple-effects/-/material-ripple-effects-2.0.1.tgz", + "integrity": "sha512-hHlUkZAuXbP94lu02VgrPidbZ3hBtgXBtjlwR8APNqOIgDZMV8MCIcsclL8FmGJQHvnORyvoQgC965vPsiyXLQ==" + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -11866,6 +9666,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "engines": { "node": ">= 8" } @@ -11882,6 +9683,7 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.6.tgz", "integrity": "sha512-Y4Ypn3oujJYxJcMacVgcs92wofTHxp9FzfDpQON4msDefoC0lb3ETvQLOdLcbhSwU1bz8HrL/1sygfBIHudrkQ==", + "dev": true, "dependencies": { "braces": "^3.0.3", "picomatch": "^4.0.2" @@ -11894,6 +9696,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, "engines": { "node": ">=12" }, @@ -12103,6 +9906,7 @@ "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, "funding": [ { "type": "github", @@ -12281,6 +10085,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -12323,6 +10128,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, "engines": { "node": ">= 6" } @@ -12717,6 +10523,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -12725,6 +10532,7 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, "engines": { "node": ">= 6" } @@ -12843,10 +10651,22 @@ "node": ">=4" } }, + "node_modules/popmotion": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz", + "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==", + "dependencies": { + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + } + }, "node_modules/postcss": { "version": "8.4.38", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dev": true, "funding": [ { "type": "opencollective", @@ -12874,6 +10694,7 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -12890,6 +10711,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, "dependencies": { "camelcase-css": "^2.0.1" }, @@ -12908,6 +10730,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -12942,6 +10765,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.11" }, @@ -12960,6 +10784,7 @@ "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dev": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -12971,7 +10796,8 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true }, "node_modules/prelude-ls": { "version": "1.2.1", @@ -13141,6 +10967,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -13240,51 +11067,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-remove-scroll": { - "version": "2.5.10", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.10.tgz", - "integrity": "sha512-m3zvBRANPBw3qxVVjEIPEQinkcwlFZ4qyomuWVpNJdv4c6MvHfXV0C3L9Jx5rr3HeBHKNRX+1jreB5QloDIJjA==", - "dependencies": { - "react-remove-scroll-bar": "^2.3.6", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", - "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", - "dependencies": { - "react-style-singleton": "^2.2.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/react-router": { "version": "6.23.1", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.23.1.tgz", @@ -13315,48 +11097,11 @@ "react-dom": ">=16.8" } }, - "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", - "dependencies": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-textarea-autosize": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz", - "integrity": "sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "use-composed-ref": "^1.3.0", - "use-latest": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, "dependencies": { "pify": "^2.3.0" } @@ -13478,6 +11223,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "devOptional": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -13489,6 +11235,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "devOptional": true, "engines": { "node": ">=8.6" }, @@ -13662,6 +11409,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -13781,6 +11529,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -13894,14 +11643,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/scroll-into-view-if-needed": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz", - "integrity": "sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==", - "dependencies": { - "compute-scroll-into-view": "^3.0.2" - } - }, "node_modules/seed-random": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz", @@ -14030,6 +11771,15 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", @@ -14117,19 +11867,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -14185,6 +11922,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -14206,6 +11944,12 @@ "node": ">=0.10.0" } }, + "node_modules/spawn-command": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", + "dev": true + }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -14427,10 +12171,20 @@ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" }, + "node_modules/style-value-types": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz", + "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==", + "dependencies": { + "hey-listen": "^1.0.8", + "tslib": "^2.1.0" + } + }, "node_modules/sucrase": { "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -14526,39 +12280,11 @@ "node": ">=0.10" } }, - "node_modules/tailwind-merge": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.3.0.tgz", - "integrity": "sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.24.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, - "node_modules/tailwind-variants": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.2.1.tgz", - "integrity": "sha512-2xmhAf4UIc3PijOUcJPA1LP4AbxhpcHuHM2C26xM0k81r0maAO6uoUSHl3APmvHZcY5cZCY/bYuJdfFa4eGoaw==", - "peer": true, - "dependencies": { - "tailwind-merge": "^2.2.0" - }, - "engines": { - "node": ">=16.x", - "pnpm": ">=7.x" - }, - "peerDependencies": { - "tailwindcss": "*" - } - }, "node_modules/tailwindcss": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -14595,6 +12321,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -14606,6 +12333,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, "engines": { "node": ">=10" } @@ -14833,6 +12561,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "devOptional": true, "dependencies": { "is-number": "^7.0.0" }, @@ -14893,7 +12622,8 @@ "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true }, "node_modules/ts-jest": { "version": "29.1.3", @@ -14966,7 +12696,7 @@ "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "devOptional": true, + "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -15009,7 +12739,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true + "dev": true }, "node_modules/tsconfig-paths": { "version": "4.2.0", @@ -15107,7 +12837,7 @@ "version": "5.4.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "devOptional": true, + "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -15199,84 +12929,6 @@ "punycode": "^2.1.0" } }, - "node_modules/use-callback-ref": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", - "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-composed-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", - "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/use-isomorphic-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", - "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-latest": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", - "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", - "dependencies": { - "use-isomorphic-layout-effect": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/util-arity": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/util-arity/-/util-arity-1.1.0.tgz", @@ -15307,7 +12959,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "devOptional": true + "dev": true }, "node_modules/v8-to-istanbul": { "version": "9.2.0", @@ -15400,6 +13052,25 @@ } } }, + "node_modules/wait-on": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", + "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", + "dev": true, + "dependencies": { + "axios": "^1.6.1", + "joi": "^17.11.0", + "lodash": "^4.17.21", + "minimist": "^1.2.8", + "rxjs": "^7.8.1" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -15686,7 +13357,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "devOptional": true, + "dev": true, "engines": { "node": ">=6" } diff --git a/package.json b/package.json index 7476a9f..e63ca66 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "tests" ], "scripts": { + "start": "concurrently 'npm run start:azure -w api' 'wait-on tcp:0.0.0.0:7071 && npm run dev -w app'", "format": "prettier --write \"**/src/**/*.ts\" \"**/test/**/*.ts\"", "lint": "npm run lint -w api && npm run lint -w app", "prepare": "husky || true" @@ -14,15 +15,21 @@ "devDependencies": { "@typescript-eslint/eslint-plugin": "^7.2.0", "@typescript-eslint/parser": "^7.2.0", + "concurrently": "^8.2.2", "eslint": "^8.42.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.6", "husky": "^9.0.11", "lint-staged": "^15.2.2", - "prettier": "3.2.5" + "prettier": "3.2.5", + "wait-on": "^7.2.0" }, "lint-staged": { "**/*": "prettier --write \"**/src/**/*.ts\" \"**/test/**/*.ts\" --ignore-unknown" + }, + "dependencies": { + "@microsoft/mgt-element": "^4.2.2", + "@microsoft/mgt-msal2-provider": "^4.2.2" } }