diff --git a/README.md b/README.md new file mode 100644 index 000000000..b29dc14b1 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# 🚀 Teameights + +Refer to following link to find all info you need! + +🔗 [Notion](https://teameights.notion.site/ad80d7c691ba47a09be954dc992752ec?v=cffe6ca69a8d4c4b91675b35cfd733ad) + +![Logo T8S (8)](https://github.com/nmashchenko/teameights/assets/52038455/b1898e79-8515-4d50-a9ab-8b3d0cf5d042) diff --git a/client/.eslintrc.json b/client/.eslintrc.json index 19101bb20..5d3e7327f 100644 --- a/client/.eslintrc.json +++ b/client/.eslintrc.json @@ -1,4 +1,11 @@ { + "root": true, + "env": { + "browser": true, + "node": true, + "jest": true, + "es2021": true + }, "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint"], "extends": [ diff --git a/client/.husky/pre-commit b/client/.husky/pre-commit index b6dd6c3f3..d10928519 100755 --- a/client/.husky/pre-commit +++ b/client/.husky/pre-commit @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -cd ./client && yarn lint \ No newline at end of file +cd ./client && yarn lint diff --git a/client/.husky/pre-push b/client/.husky/pre-push index eced198ea..8458b3473 100755 --- a/client/.husky/pre-push +++ b/client/.husky/pre-push @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -cd ./client && yarn build \ No newline at end of file +cd ./client && yarn build diff --git a/client/.storybook/main.ts b/client/.storybook/main.ts index 539c9f972..b5dabafb8 100644 --- a/client/.storybook/main.ts +++ b/client/.storybook/main.ts @@ -2,7 +2,10 @@ import type { StorybookConfig } from '@storybook/nextjs'; import path from 'path'; const config: StorybookConfig = { - stories: ['../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], + stories: [ + '../src/**/*.stories.@(js|jsx|mjs|ts|tsx|mdx)', + '../docs/**/*.stories.@(js|jsx|mjs|ts|tsx|mdx)', + ], staticDirs: ['../public'], addons: [ '@storybook/addon-links', @@ -25,7 +28,7 @@ const config: StorybookConfig = { }, }, docs: { - autodocs: 'tag', + autodocs: true, }, core: { builder: '@storybook/builder-webpack5', diff --git a/client/.storybook/preview.tsx b/client/.storybook/preview.tsx new file mode 100644 index 000000000..2e1b953ad --- /dev/null +++ b/client/.storybook/preview.tsx @@ -0,0 +1,85 @@ +import type { StoryFn } from '@storybook/react'; +import '../src/app/styles/globals.scss'; +import './font.scss'; + +export const parameters = { + actions: { argTypesRegex: '^on[A-Z].*' }, + viewMode: 'docs', + previewTabs: { + canvas: { + title: 'Story', + }, + }, + controls: { + matchers: { + color: /(background|color)$/i, + }, + }, + + backgrounds: { + default: 'main', + values: [ + { + name: 'main', + value: '#26292b', + }, + { + name: 'white', + value: '#fff', + }, + { + name: 'additional white', + value: '#fafafa', + }, + ], + }, + viewport: { + viewports: { + '360': { + name: '360', + styles: { + width: '360px', + height: '780px', + }, + }, + '768': { + name: '768', + styles: { + width: '768px', + height: '1664px', + }, + }, + '1024': { + name: '1024', + styles: { + width: '1024px', + height: '576px', + }, + }, + '1600+': { + name: '1600+', + styles: { + width: '1600px', + height: '900px', + }, + }, + }, + }, +}; + +export const decorators = [ + (Story: StoryFn) => ( +
+ +
+ ), +]; diff --git a/client/docs/colors.stories.mdx b/client/docs/colors.stories.mdx new file mode 100644 index 000000000..22b923409 --- /dev/null +++ b/client/docs/colors.stories.mdx @@ -0,0 +1,134 @@ +import { ColorItem, ColorPalette, Meta } from '@storybook/blocks'; + + + + + + + + + + + + + + + + + + + diff --git a/client/docs/loading.stories.mdx b/client/docs/loading.stories.mdx new file mode 100644 index 000000000..a4becfa46 --- /dev/null +++ b/client/docs/loading.stories.mdx @@ -0,0 +1,14 @@ +import { ColorItem, ColorPalette, Meta } from '@storybook/blocks'; + + + + + + diff --git a/client/jest.config.mjs b/client/jest.config.mjs new file mode 100644 index 000000000..1f79f2d9d --- /dev/null +++ b/client/jest.config.mjs @@ -0,0 +1,25 @@ +import nextJest from 'next/jest.js' + +const createJestConfig = nextJest({ + // Provide the path to your Next.js app to load next.config.js and .env files in your test environment + dir: './', +}) + +// Add any custom config to be passed to Jest +/** @type {import('jest').Config} */ +const config = { + moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx', 'json', 'node'], + testMatch: ['/src/**/*(*.)@(test).[tj]s?(x)'], + moduleDirectories: ['node_modules', '/'], + clearMocks: true, + collectCoverage: true, + coverageDirectory: 'coverage', + moduleNameMapper: { + '^~/(.*)$': '/src/$1', + }, + setupFilesAfterEnv: ['/jest.setup.js'], + testEnvironment: 'jest-environment-jsdom', +} + +// createJestConfig is exported this way to ensure that next/jest can load the Next.js config which is async +export default createJestConfig(config) diff --git a/client/jest.setup.js b/client/jest.setup.js new file mode 100644 index 000000000..7b0828bfa --- /dev/null +++ b/client/jest.setup.js @@ -0,0 +1 @@ +import '@testing-library/jest-dom'; diff --git a/client/next.config.js b/client/next.config.js index c38878afa..7b61c815a 100644 --- a/client/next.config.js +++ b/client/next.config.js @@ -1,8 +1,7 @@ /** @type {import('next').NextConfig} */ -const path = require('path'); module.exports = { - sassOptions: { - includePaths: [path.join(__dirname, 'styles')], + images: { + domains: ['teameights-production.s3.amazonaws.com', 'localhost'], }, }; diff --git a/client/package.json b/client/package.json index 97e412396..081aa9136 100644 --- a/client/package.json +++ b/client/package.json @@ -16,6 +16,7 @@ "lint:ts:fix": "npx eslint \"**/*.{ts,tsx}\" --fix", "prettier:check": "prettier --check \"**/*.{js,ts,tsx,css,mdx}\"", "prettier:fix": "prettier --write \"**/*.{js,ts,tsx,css,mdx}\"", + "test:unit": "jest", "prepare": "cd .. && husky install ./client/.husky", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build" @@ -51,16 +52,22 @@ "@storybook/addon-essentials": "7.2.1", "@storybook/addon-interactions": "7.2.1", "@storybook/addon-links": "7.2.1", - "@storybook/addon-onboarding": "1.0.8", - "@storybook/blocks": "7.2.1", + "@storybook/addon-mdx-gfm": "^7.4.4", + "@storybook/addon-onboarding": "^1.0.8", + "@storybook/blocks": "^7.4.4", "@storybook/nextjs": "7.2.1", "@storybook/react": "7.2.1", "@storybook/testing-library": "0.2.0", + "@testing-library/jest-dom": "^6.1.3", + "@testing-library/react": "^14.0.0", + "@types/jest": "^29.5.5", "@types/react-modal": "^3.16.0", "@typescript-eslint/eslint-plugin": "^6.3.0", "@typescript-eslint/parser": "^6.3.0", "eslint-plugin-storybook": "^0.6.13", "husky": "^8.0.3", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", "prettier": "^3.0.1", "storybook": "7.2.1" }, diff --git a/client/public/Images/user/unregistered.png b/client/public/Images/user/unregistered.png new file mode 100644 index 000000000..1430ddaa7 Binary files /dev/null and b/client/public/Images/user/unregistered.png differ diff --git a/client/src/app/(main)/Layout.module.scss b/client/src/app/(main)/Layout.module.scss new file mode 100644 index 000000000..e19c563e6 --- /dev/null +++ b/client/src/app/(main)/Layout.module.scss @@ -0,0 +1,22 @@ +.container { + height: 100dvh; + width: 100%; + padding: 48px 55px; + + @media (width <= 1120px) { + padding: 48px 24px; + } + + @media (width <= 580px) { + padding: 24px; + } +} + +.children { + width: 100%; + min-height: 100%; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} diff --git a/client/src/app/(main)/layout.tsx b/client/src/app/(main)/layout.tsx new file mode 100644 index 000000000..462a49dc9 --- /dev/null +++ b/client/src/app/(main)/layout.tsx @@ -0,0 +1,11 @@ +import styles from './Layout.module.scss'; +import { Sidebar } from '@/widgets/sidebar'; + +export default function AuthLayout({ children }: { children: React.ReactNode }) { + return ( +
+ +
{children}
+
+ ); +} diff --git a/client/src/app/(main)/page.tsx b/client/src/app/(main)/page.tsx new file mode 100644 index 000000000..1a7c2a94c --- /dev/null +++ b/client/src/app/(main)/page.tsx @@ -0,0 +1,7 @@ +const Index = () => ( +
+

123

+
+); + +export default Index; diff --git a/client/src/app/styles/globals.scss b/client/src/app/styles/globals.scss index 84228b30e..a98e96096 100644 --- a/client/src/app/styles/globals.scss +++ b/client/src/app/styles/globals.scss @@ -6,6 +6,7 @@ body { var(--font-rubik); color: var(--white-color); background-color: var(--bg-color); + min-width: 360px; } * { diff --git a/client/src/entities/notification/index.ts b/client/src/entities/notification/index.ts new file mode 100644 index 000000000..c488d10fb --- /dev/null +++ b/client/src/entities/notification/index.ts @@ -0,0 +1,5 @@ +export { + type Notification, + type TeamInvitationNotification, + type SystemNotification, +} from './types/notification'; diff --git a/client/src/entities/notification/types/notification.ts b/client/src/entities/notification/types/notification.ts new file mode 100644 index 000000000..503b4d53a --- /dev/null +++ b/client/src/entities/notification/types/notification.ts @@ -0,0 +1,32 @@ +import { User } from '@/entities/user'; +import { Team } from '@/entities/team'; + +export type NotificationType = 'SystemNotification' | 'TeamInvitationNotification'; + +export interface BaseNotification { + _id: string; + user: User; + read: boolean; + expiresAt: Date; + createdAt: Date; + updatedAt: Date; +} + +export interface SystemNotification extends BaseNotification { + type: 'SystemNotification'; + system_message: string; +} + +export type InviteStatus = 'pending' | 'accepted' | 'rejected'; + +export interface TeamInvitationNotification extends BaseNotification { + type: 'TeamInvitationNotification'; + teamid: Team; + from_user_id: User; + to_user_email: string; + status: InviteStatus; + image: string; + message: string; +} + +export type Notification = SystemNotification | TeamInvitationNotification; diff --git a/client/src/entities/role/index.ts b/client/src/entities/role/index.ts new file mode 100644 index 000000000..52fb721cc --- /dev/null +++ b/client/src/entities/role/index.ts @@ -0,0 +1 @@ +export { type Role } from './types/role'; diff --git a/client/src/entities/role/types/role.ts b/client/src/entities/role/types/role.ts new file mode 100644 index 000000000..7b5134597 --- /dev/null +++ b/client/src/entities/role/types/role.ts @@ -0,0 +1,7 @@ +export interface Role { + _id: string; + value: string; + description: string; + createdAt: Date; + updatedAt: Date; +} diff --git a/client/src/entities/team/index.ts b/client/src/entities/team/index.ts new file mode 100644 index 000000000..82d900585 --- /dev/null +++ b/client/src/entities/team/index.ts @@ -0,0 +1 @@ +export { type Team } from './types/team'; diff --git a/client/src/entities/team/types/team.ts b/client/src/entities/team/types/team.ts new file mode 100644 index 000000000..fae2f3645 --- /dev/null +++ b/client/src/entities/team/types/team.ts @@ -0,0 +1,15 @@ +import type { User } from '@/entities/user'; + +export interface Team { + _id: string; + name: string; + description?: string; + leader: User; // Assuming User is represented by its ID on the frontend + members?: User[]; // Assuming User is represented by its ID on the frontend + country: string; + tag: string; + type: 'invite-only' | 'closed' | 'open'; + wins?: number; + points?: number; + image?: string; +} diff --git a/client/src/entities/user/index.ts b/client/src/entities/user/index.ts new file mode 100644 index 000000000..556250550 --- /dev/null +++ b/client/src/entities/user/index.ts @@ -0,0 +1 @@ +export type { User } from './types/user'; diff --git a/client/src/entities/user/types/user.ts b/client/src/entities/user/types/user.ts new file mode 100644 index 000000000..defd705db --- /dev/null +++ b/client/src/entities/user/types/user.ts @@ -0,0 +1,49 @@ +import { Notification } from '@/entities/notification'; +import { Role } from '@/entities/role'; +import { Team } from '@/entities/team'; + +export interface User { + _id: string; + email: string; + password: string; + username: string; + fullName: string; + isActivated?: boolean; + isRegistered?: boolean; + isLeader?: boolean; + activationLink?: string; + country?: string; + dateOfBirth?: Date; + universityData?: { + university: string; + degree: string; + major: string; + addmissionDate: Date; + graduationDate: Date; + }[]; + jobData?: { + title: string; + company: string; + startDate: Date; + endDate: Date; + }[]; + projectData?: { + title: string; + link: string; + }[]; + concentration?: string; + description?: string; + experience?: string; + image: string; + links?: { + github?: string; + linkedIn?: string; + behance?: string; + telegram?: string; + }; + programmingLanguages?: string[]; + frameworks?: string[]; + roles?: Role[]; // Assuming Role is represented by its ID on the frontend + notifications?: Notification[]; // Assuming Notification is represented by its ID on the frontend + team?: Team; // Assuming Team is represented by its ID on the frontend +} diff --git a/client/src/shared/assets/icons.module.scss b/client/src/shared/assets/icons.module.scss new file mode 100644 index 000000000..349f64512 --- /dev/null +++ b/client/src/shared/assets/icons.module.scss @@ -0,0 +1,24 @@ +.iconItemStyle { + border-radius: 4px; + background: rgba(38, 41, 43, 0.67); + box-shadow: rgba(0, 0, 0, 0.10) 0 1px 3px 0; + border: 1px solid hsla(203, 50%, 30%, 0.15); + overflow: hidden; + height: 40px; + width: 40px; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; + -webkit-flex: none; + -ms-flex: none; + flex: none; +} diff --git a/client/src/shared/assets/icons.stories.mdx b/client/src/shared/assets/icons.stories.mdx new file mode 100644 index 000000000..f0a35f172 --- /dev/null +++ b/client/src/shared/assets/icons.stories.mdx @@ -0,0 +1,16 @@ +import { IconGallery, IconItem, Meta } from '@storybook/blocks'; + +import { ICON_OPTIONS } from './storybook'; +import styles from './icons.module.scss'; + + + +# Iconography + + + {Object.entries(ICON_OPTIONS).map(([iconName, iconComponent]) => ( + +
{iconComponent}
+
+ ))} +
diff --git a/client/src/shared/assets/icons/index.ts b/client/src/shared/assets/icons/index.ts index 724e77586..3e362092c 100644 --- a/client/src/shared/assets/icons/index.ts +++ b/client/src/shared/assets/icons/index.ts @@ -35,3 +35,14 @@ export { Swift, TS, } from './language-logo'; +export { SidebarChecksIcon } from './sidebar-checks-icon'; +export { SidebarCloseIcon } from './sidebar-close-icon'; +export { SidebarExitIcon } from './sidebar-exit-icon'; +export { SidebarLightningIcon } from './sidebar-lightning-icon'; +export { SidebarNotificationClose } from './sidebar-notification-close'; +export { SidebarNotificationIcon } from './sidebar-notification-icon'; +export { SidebarSearchIcon } from './sidebar-search-icon'; +export { SidebarShortLogo } from './sidebar-short-logo'; +export { SidebarTeamIcon } from './sidebar-team-icon'; +export { SidebarTrophyIcon } from './sidebar-trophy-icon'; +export { SidebarUserIcon } from './sidebar-user-icon'; diff --git a/client/src/shared/assets/icons/sidebar-checks-icon.tsx b/client/src/shared/assets/icons/sidebar-checks-icon.tsx new file mode 100644 index 000000000..ab257fa65 --- /dev/null +++ b/client/src/shared/assets/icons/sidebar-checks-icon.tsx @@ -0,0 +1,20 @@ +export const SidebarChecksIcon = () => { + return ( + + + + + + + + + + + ); +}; diff --git a/client/src/shared/assets/icons/sidebar-close-icon.tsx b/client/src/shared/assets/icons/sidebar-close-icon.tsx new file mode 100644 index 000000000..1ea93bb66 --- /dev/null +++ b/client/src/shared/assets/icons/sidebar-close-icon.tsx @@ -0,0 +1,34 @@ +export const SidebarCloseIcon = () => { + return ( + + + + + + + ); +}; diff --git a/client/src/shared/assets/icons/sidebar-exit-icon.tsx b/client/src/shared/assets/icons/sidebar-exit-icon.tsx new file mode 100644 index 000000000..b8ff51901 --- /dev/null +++ b/client/src/shared/assets/icons/sidebar-exit-icon.tsx @@ -0,0 +1,34 @@ +export const SidebarExitIcon = () => { + return ( + + + + + + + + + + + + + ); +}; diff --git a/client/src/shared/assets/icons/sidebar-lightning-icon.tsx b/client/src/shared/assets/icons/sidebar-lightning-icon.tsx new file mode 100644 index 000000000..071e6ea1f --- /dev/null +++ b/client/src/shared/assets/icons/sidebar-lightning-icon.tsx @@ -0,0 +1,20 @@ +export const SidebarLightningIcon = () => { + return ( + + + + + + + + + + + ); +}; diff --git a/client/src/shared/assets/icons/sidebar-notification-close.tsx b/client/src/shared/assets/icons/sidebar-notification-close.tsx new file mode 100644 index 000000000..7b9496062 --- /dev/null +++ b/client/src/shared/assets/icons/sidebar-notification-close.tsx @@ -0,0 +1,15 @@ +import React from 'react'; + +export const SidebarNotificationClose: React.FC> = props => { + return ( + + + + ); +}; diff --git a/client/src/shared/assets/icons/sidebar-notification-icon.tsx b/client/src/shared/assets/icons/sidebar-notification-icon.tsx new file mode 100644 index 000000000..3487e4adf --- /dev/null +++ b/client/src/shared/assets/icons/sidebar-notification-icon.tsx @@ -0,0 +1,27 @@ +export const SidebarNotificationIcon = () => { + return ( + + + + + + + + + + + + ); +}; diff --git a/client/src/shared/assets/icons/sidebar-search-icon.tsx b/client/src/shared/assets/icons/sidebar-search-icon.tsx new file mode 100644 index 000000000..964ed043e --- /dev/null +++ b/client/src/shared/assets/icons/sidebar-search-icon.tsx @@ -0,0 +1,18 @@ +export const SidebarSearchIcon = () => { + return ( + + + + + ); +}; diff --git a/client/src/shared/assets/icons/sidebar-short-logo.tsx b/client/src/shared/assets/icons/sidebar-short-logo.tsx new file mode 100644 index 000000000..b5c2c37cf --- /dev/null +++ b/client/src/shared/assets/icons/sidebar-short-logo.tsx @@ -0,0 +1,18 @@ +export const SidebarShortLogo = () => { + return ( + + + + + + ); +}; diff --git a/client/src/shared/assets/icons/sidebar-team-icon.tsx b/client/src/shared/assets/icons/sidebar-team-icon.tsx new file mode 100644 index 000000000..21e8f6ba8 --- /dev/null +++ b/client/src/shared/assets/icons/sidebar-team-icon.tsx @@ -0,0 +1,34 @@ +export const SidebarTeamIcon = () => { + return ( + + + + + + + ); +}; diff --git a/client/src/shared/assets/icons/sidebar-trophy-icon.tsx b/client/src/shared/assets/icons/sidebar-trophy-icon.tsx new file mode 100644 index 000000000..679acda76 --- /dev/null +++ b/client/src/shared/assets/icons/sidebar-trophy-icon.tsx @@ -0,0 +1,10 @@ +export const SidebarTrophyIcon = () => { + return ( + + + + ); +}; diff --git a/client/src/shared/assets/icons/sidebar-user-icon.tsx b/client/src/shared/assets/icons/sidebar-user-icon.tsx new file mode 100644 index 000000000..e5d9333c8 --- /dev/null +++ b/client/src/shared/assets/icons/sidebar-user-icon.tsx @@ -0,0 +1,20 @@ +export const SidebarUserIcon = () => { + return ( + + + + + ); +}; diff --git a/client/src/shared/assets/index.ts b/client/src/shared/assets/index.ts index 8063d973e..2da0fa1b9 100644 --- a/client/src/shared/assets/index.ts +++ b/client/src/shared/assets/index.ts @@ -1,5 +1,5 @@ /* Illustrations */ export * from './illustrations'; -/* Icons */ +/* icons */ export * from './icons'; diff --git a/client/src/shared/assets/storybook.ts b/client/src/shared/assets/storybook.ts new file mode 100644 index 000000000..fd74d81e5 --- /dev/null +++ b/client/src/shared/assets/storybook.ts @@ -0,0 +1,10 @@ +import * as ICONS from './index'; + +type IconOptions = Record; +export const ICON_OPTIONS = Object.entries(ICONS).reduce( + (acc, [iconName, IconComponent]) => { + acc[iconName.replace(/icon$/i, '') as keyof typeof ICONS] = IconComponent({}); + return acc; + }, + {} as IconOptions +); diff --git a/client/src/shared/constant/index.tsx b/client/src/shared/constant/index.tsx index 87c1c211a..6f2a0225e 100644 --- a/client/src/shared/constant/index.tsx +++ b/client/src/shared/constant/index.tsx @@ -2,3 +2,11 @@ export { concentrations } from './concentrations'; export { frameworkColors } from './framework-colors'; export { frameworkTextColors } from './framework-colors'; export { programmingLanguageOptions, languageOptions } from './programming-languages'; +export { + HOME_PATH, + LOGIN_PATH, + REGISTRATION_PATH, + PROFILE_PATH, + TEAM_PATH, + TOURNAMENTS_PATH, +} from './routes'; diff --git a/client/src/shared/constant/routes.ts b/client/src/shared/constant/routes.ts new file mode 100644 index 000000000..869e73185 --- /dev/null +++ b/client/src/shared/constant/routes.ts @@ -0,0 +1,6 @@ +export const REGISTRATION_PATH = '/signup'; +export const LOGIN_PATH = '/login'; +export const HOME_PATH = '/'; +export const TEAM_PATH = '/team'; +export const PROFILE_PATH = '/profile'; +export const TOURNAMENTS_PATH = '/tournaments'; diff --git a/client/src/shared/lib/hooks/index.ts b/client/src/shared/lib/hooks/index.ts index 3d8474717..15c0f8edc 100644 --- a/client/src/shared/lib/hooks/index.ts +++ b/client/src/shared/lib/hooks/index.ts @@ -1 +1,2 @@ export { useClickOutside } from './use-click-outside/use-click-outside'; +export { useGetScreenWidth } from './use-get-screen-width/use-get-screen-width'; diff --git a/client/src/shared/lib/hooks/use-get-screen-width/use-get-screen-width.ts b/client/src/shared/lib/hooks/use-get-screen-width/use-get-screen-width.ts new file mode 100644 index 000000000..1c24b54f4 --- /dev/null +++ b/client/src/shared/lib/hooks/use-get-screen-width/use-get-screen-width.ts @@ -0,0 +1,28 @@ +'use client'; + +import { useEffect, useState } from 'react'; + +export const useGetScreenWidth = (): number => { + const [screenWidth, setScreenWidth] = useState(0); + + useEffect(function onFirstMount() { + setScreenWidth(window.innerWidth); + }, []); + + useEffect(() => { + // Function to update the screen width state + const handleResize = () => { + setScreenWidth(window.innerWidth); + }; + + // Event listener for window resize + window.addEventListener('resize', handleResize); + + // Clean up the event listener on component unmount + return () => { + window.removeEventListener('resize', handleResize); + }; + }, []); + + return screenWidth; +}; diff --git a/client/src/shared/lib/index.ts b/client/src/shared/lib/index.ts index b857a1c5f..a92a9b1d2 100644 --- a/client/src/shared/lib/index.ts +++ b/client/src/shared/lib/index.ts @@ -1,3 +1,4 @@ export * from './react-query'; export * from './ts-particles'; export * from './hooks'; +export * from './utils'; diff --git a/client/src/shared/lib/utils/get-past-time/get-past-time.ts b/client/src/shared/lib/utils/get-past-time/get-past-time.ts new file mode 100644 index 000000000..9e416eccc --- /dev/null +++ b/client/src/shared/lib/utils/get-past-time/get-past-time.ts @@ -0,0 +1,23 @@ +export const getPastTime = (time: string | number | Date) => { + const datePast = new Date(time); + const dateNow = new Date(); + const timeDiff = dateNow.getTime() - datePast.getTime(); + + const seconds = Math.floor(timeDiff / 1000); + const minutes = Math.floor(seconds / 60); + const hours = Math.floor(minutes / 60); + const days = Math.floor(hours / 24); + const months = + (dateNow.getFullYear() - datePast.getFullYear()) * 12 + + dateNow.getMonth() - + datePast.getMonth(); + const years = Math.floor(months / 12); + + if (years > 0) return `${years}y ago`; + if (months > 0) return `${months}mo ago`; + if (days > 0) return `${days}d ago`; + if (hours > 0) return `${hours}h ago`; + if (minutes > 0) return `${minutes}m ago`; + + return `${seconds}s ago`; +}; diff --git a/client/src/shared/lib/utils/index.ts b/client/src/shared/lib/utils/index.ts new file mode 100644 index 000000000..29ebd7180 --- /dev/null +++ b/client/src/shared/lib/utils/index.ts @@ -0,0 +1 @@ +export { getPastTime } from './get-past-time/get-past-time'; diff --git a/client/src/shared/ui/flex-wrapper/flex-wrapper.module.scss b/client/src/shared/ui/flex-wrapper/flex-wrapper.module.scss new file mode 100644 index 000000000..2e26fe5be --- /dev/null +++ b/client/src/shared/ui/flex-wrapper/flex-wrapper.module.scss @@ -0,0 +1,14 @@ +.flexWrapper { + display: flex; + align-items: var(--align, normal); + justify-content: var(--justify, normal); + gap: var(--gap, 0); + margin: var(--margin, 0); + padding: var(--padding, 0); + flex-direction: var(--direction, row); + max-height: var(--maxHeight, none); + position: var(--position, static); + width: var(--width, auto); + max-width: var(--maxWidth, none); + height: var(--height, auto); +} diff --git a/client/src/shared/ui/flex-wrapper/flex-wrapper.tsx b/client/src/shared/ui/flex-wrapper/flex-wrapper.tsx new file mode 100644 index 000000000..6a0e871f5 --- /dev/null +++ b/client/src/shared/ui/flex-wrapper/flex-wrapper.tsx @@ -0,0 +1,54 @@ +import React from 'react'; +import styles from './flex-wrapper.module.scss'; + +interface FlexWrapperProps { + align?: string; + justify?: string; + gap?: string | number; + margin?: string | number; + padding?: string | number; + direction?: 'row' | 'column'; + maxHeight?: string; + position?: string; + width?: string; + maxWidth?: string; + height?: string; + children: React.ReactNode; +} + +export const FlexWrapper: React.FC = props => { + const { + align, + justify, + gap, + margin, + padding, + direction, + maxHeight, + position, + width, + maxWidth, + height, + children, + } = props; + + const style = { + '--align': align, + '--justify': justify, + '--gap': gap, + '--margin': margin, + '--padding': padding, + '--direction': direction, + '--maxHeight': maxHeight, + '--position': position, + '--width': width, + '--maxWidth': maxWidth, + '--height': height, + } as React.CSSProperties; + + return ( +
+ {children} +
+ ); +}; diff --git a/client/src/shared/ui/flex-wrapper/index.ts b/client/src/shared/ui/flex-wrapper/index.ts new file mode 100644 index 000000000..dd0ad41da --- /dev/null +++ b/client/src/shared/ui/flex-wrapper/index.ts @@ -0,0 +1 @@ +export { FlexWrapper } from './flex-wrapper'; diff --git a/client/src/shared/ui/icon-wrapper/icon-wrapper.module.scss b/client/src/shared/ui/icon-wrapper/icon-wrapper.module.scss new file mode 100644 index 000000000..a523a011c --- /dev/null +++ b/client/src/shared/ui/icon-wrapper/icon-wrapper.module.scss @@ -0,0 +1,15 @@ +.iconWrapper { + cursor: var(--cursor, default); + width: var(--width, auto); + height: var(--height, auto); + padding: var(--padding, 0); + margin: var(--margin, 0); + display: flex; + justify-content: center; + align-items: center; + + svg { + width: var(--svg-width, auto); + height: var(--svg-height, auto); + } +} diff --git a/client/src/shared/ui/icon-wrapper/icon-wrapper.tsx b/client/src/shared/ui/icon-wrapper/icon-wrapper.tsx new file mode 100644 index 000000000..3a2f2f64d --- /dev/null +++ b/client/src/shared/ui/icon-wrapper/icon-wrapper.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import styles from './icon-wrapper.module.scss'; + +interface IconWrapperProps { + cursor?: string; + width?: string | number; + height?: string | number; + padding?: string | number; + margin?: string | number; + children: React.ReactNode; +} + +export const IconWrapper: React.FC = props => { + const { + cursor = 'default', + width = 'auto', + height = 'auto', + padding = 0, + margin = 0, + children, + } = props; + + const style = { + '--cursor': cursor, + '--width': width, + '--height': height, + '--padding': `${padding}`, + '--margin': `${margin}`, + '--svg-width': width, + '--svg-height': height, + } as React.CSSProperties; + + return ( +
+ {children} +
+ ); +}; diff --git a/client/src/shared/ui/icon-wrapper/index.ts b/client/src/shared/ui/icon-wrapper/index.ts new file mode 100644 index 000000000..9c7a56606 --- /dev/null +++ b/client/src/shared/ui/icon-wrapper/index.ts @@ -0,0 +1 @@ +export { IconWrapper } from './icon-wrapper'; diff --git a/client/src/shared/ui/index.ts b/client/src/shared/ui/index.ts index edc6c2902..8fd285f57 100644 --- a/client/src/shared/ui/index.ts +++ b/client/src/shared/ui/index.ts @@ -8,3 +8,6 @@ export * from './tabs'; export * from './textarea'; export * from './typography'; export * from './portal'; +export * from './icon-wrapper'; +export * from './flex-wrapper'; +export * from './loader'; diff --git a/client/src/shared/ui/loader/index.ts b/client/src/shared/ui/loader/index.ts new file mode 100644 index 000000000..3912937cb --- /dev/null +++ b/client/src/shared/ui/loader/index.ts @@ -0,0 +1 @@ +export { Loader } from './ui/loader/loader'; diff --git a/client/src/shared/ui/loader/ui/infinity-spinner/infinity-spinner.module.scss b/client/src/shared/ui/loader/ui/infinity-spinner/infinity-spinner.module.scss new file mode 100644 index 000000000..80fb9c48d --- /dev/null +++ b/client/src/shared/ui/loader/ui/infinity-spinner/infinity-spinner.module.scss @@ -0,0 +1,33 @@ +$len: 242.776657104492; +$time: 1.6s; + +@keyframes anim { + 12.5% { + stroke-dasharray: #{$len * 0.14}px, #{$len}px; + stroke-dashoffset: -#{$len * 0.11}px; + } + 43.75% { + stroke-dasharray: #{$len * 0.35}px, #{$len}px; + stroke-dashoffset: -#{$len * 0.35}px; + } + 100% { + stroke-dasharray: #{$len * 0.01}px, #{$len}px; + stroke-dashoffset: -#{$len * 0.99}px; + } +} + +.path { + stroke-dasharray: #{$len * 0.01}px, #{$len}; + stroke-dashoffset: 0; + animation: anim $time linear infinite; + fill: none; + strokeWidth: 4; + strokeLinecap: round; + strokeLinejoin: round; + strokeMiterlimit: 10; +} + +.opacityPath { + @extend .path; + opacity: 0.07; +} diff --git a/client/src/shared/ui/loader/ui/infinity-spinner/infinity-spinner.stories.tsx b/client/src/shared/ui/loader/ui/infinity-spinner/infinity-spinner.stories.tsx new file mode 100644 index 000000000..4f791ce3f --- /dev/null +++ b/client/src/shared/ui/loader/ui/infinity-spinner/infinity-spinner.stories.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import { Meta, Story } from '@storybook/react'; +import { InfinitySpin } from './infinity-spinner'; + +export default { + title: 'shared/Loader/InfinitySpinner', + component: InfinitySpin, + argTypes: { + paddingLeft: { + control: { + type: 'text', + }, + description: 'Padding on the left side of the loader', + defaultValue: '0', + }, + }, +} as Meta; + +const Template: Story = args => ; + +export const Default = Template.bind({}); +Default.args = {}; diff --git a/client/src/shared/ui/loader/ui/infinity-spinner/infinity-spinner.tsx b/client/src/shared/ui/loader/ui/infinity-spinner/infinity-spinner.tsx new file mode 100644 index 000000000..c1222a46f --- /dev/null +++ b/client/src/shared/ui/loader/ui/infinity-spinner/infinity-spinner.tsx @@ -0,0 +1,34 @@ +import React from 'react'; +import styles from './infinity-spinner.module.scss'; + +interface Props { + color?: string; + width?: string; +} + +const DEFAULT_COLOR = '#4fa94d'; // Assuming the default color is black. Replace with your actual default color. + +export const InfinitySpin: React.FC = ({ color = DEFAULT_COLOR, width = '200' }) => { + return ( + + + + + ); +}; diff --git a/client/src/shared/ui/loader/ui/loader/loader.module.scss b/client/src/shared/ui/loader/ui/loader/loader.module.scss new file mode 100644 index 000000000..4a0e5b1a6 --- /dev/null +++ b/client/src/shared/ui/loader/ui/loader/loader.module.scss @@ -0,0 +1,13 @@ +.container { + position: fixed; + z-index: 99; + top: 0; + left: 0; + display: flex; + align-items: center; + justify-content: center; + width: 100vw; + height: 100vh; + background: var(--bg-color); + padding-left: var(--padding-left, 0); +} diff --git a/client/src/shared/ui/loader/ui/loader/loader.stories.tsx b/client/src/shared/ui/loader/ui/loader/loader.stories.tsx new file mode 100644 index 000000000..940a356c8 --- /dev/null +++ b/client/src/shared/ui/loader/ui/loader/loader.stories.tsx @@ -0,0 +1,29 @@ +import React from 'react'; +import { Loader, LoaderProps } from './loader'; +import { Meta, Story } from '@storybook/react'; + +export default { + title: 'shared/Loader/Loader', + component: Loader, + argTypes: { + paddingLeft: { + control: { + type: 'text', + }, + description: 'Padding on the left side of the loader', + defaultValue: '0', + }, + }, +} as Meta; + +const Template: Story = args => ; + +export const Default = Template.bind({}); +Default.args = { + paddingLeft: '0', +}; + +export const WithPadding = Template.bind({}); +WithPadding.args = { + paddingLeft: '50px', +}; diff --git a/client/src/shared/ui/loader/ui/loader/loader.tsx b/client/src/shared/ui/loader/ui/loader/loader.tsx new file mode 100644 index 000000000..9c9fa8101 --- /dev/null +++ b/client/src/shared/ui/loader/ui/loader/loader.tsx @@ -0,0 +1,21 @@ +import React from 'react'; +import { InfinitySpin } from '../infinity-spinner/infinity-spinner'; +import styles from './loader.module.scss'; + +export interface LoaderProps { + paddingLeft?: string; +} + +export const Loader: React.FC = props => { + const { paddingLeft = '0' } = props; + + const style = { + '--padding-left': paddingLeft, + } as React.CSSProperties; + + return ( +
+ +
+ ); +}; diff --git a/client/src/widgets/README.MD b/client/src/widgets/README.MD index 6e3036677..554394fb7 100644 --- a/client/src/widgets/README.MD +++ b/client/src/widgets/README.MD @@ -1,5 +1,6 @@ # Widgets + ![widgets-themed-bordered](https://feature-sliced.design/assets/images/decompose-twitter-7b9a50f879d763c49305b3bf0751ee35.png) ## Description diff --git a/client/src/widgets/sidebar/config/getSidebarItems.tsx b/client/src/widgets/sidebar/config/getSidebarItems.tsx new file mode 100644 index 000000000..8ea117fda --- /dev/null +++ b/client/src/widgets/sidebar/config/getSidebarItems.tsx @@ -0,0 +1,38 @@ +import React from 'react'; + +import { User } from '@/entities/user'; +import { HOME_PATH, PROFILE_PATH, TEAM_PATH, TOURNAMENTS_PATH } from '@/shared/constant'; +import { + SidebarSearchIcon, + SidebarTeamIcon, + SidebarTrophyIcon, + SidebarUserIcon, +} from '@/shared/assets'; + +export const getSidebarItems = (user: User) => { + const data = [ + { + title: 'Teammates', + path: HOME_PATH, + icon: , + }, + { + title: 'Team', + path: user?.team ? `${TEAM_PATH}/${user.team._id}` : TEAM_PATH, + icon: , + }, + { + title: 'Tournaments', + path: TOURNAMENTS_PATH, + icon: , + }, + ]; + if (user) { + data.push({ + title: 'Profile', + path: `${PROFILE_PATH}/${user._id}`, + icon: , + }); + } + return data; +}; diff --git a/client/src/widgets/sidebar/constants/sidebar.data.ts b/client/src/widgets/sidebar/constants/sidebar.data.ts new file mode 100644 index 000000000..d4523a785 --- /dev/null +++ b/client/src/widgets/sidebar/constants/sidebar.data.ts @@ -0,0 +1,12 @@ +// * Modules +import React from 'react'; + +// * Assets + +interface NavData { + title: string; + icon: React.ReactNode; + path: string; +} + +export const NavBarData: NavData[] = []; diff --git a/client/src/widgets/sidebar/index.ts b/client/src/widgets/sidebar/index.ts new file mode 100644 index 000000000..2fa54f4c0 --- /dev/null +++ b/client/src/widgets/sidebar/index.ts @@ -0,0 +1 @@ +export { Sidebar } from './ui/sidebar/sidebar'; diff --git a/client/src/widgets/sidebar/mock.ts b/client/src/widgets/sidebar/mock.ts new file mode 100644 index 000000000..d76dfc14d --- /dev/null +++ b/client/src/widgets/sidebar/mock.ts @@ -0,0 +1,120 @@ +/* eslint-disable @typescript-eslint/ban-ts-comment */ +import { User } from '@/entities/user'; + +// @ts-ignore +export const mockUser: User = { + _id: '650544eead52282dbf4397a8', + email: 'sometest@test.ru', + password: '$2a$05$7AnHdyBKd7kh78kkSt4OIOaBAidnedL3Sr6ZfFOKG5xcVatrPT4kq', + isActivated: false, + isRegistered: true, + activationLink: '9393f29f-975c-4a1a-bb01-f67790929443', + programmingLanguages: ['C++', 'Scala'], + frameworks: ['Ember', 'Ruby'], + roles: [ + { + _id: '64a22b4f092fe3268759ba09', + value: 'USER', + description: 'Default use role', + // @ts-ignore + createdAt: '2023-07-03T01:58:39.315Z', + // @ts-ignore + updatedAt: '2023-07-03T01:58:39.315Z', + __v: 0, + }, + ], + notifications: [ + { + _id: '650544eead52282dbf4397aa', + system_message: 'Welcome to teameights! We hope you will enjoy our platform. ', + // @ts-ignore + user: '650544eead52282dbf4397a8', + type: 'SystemNotification', + read: false, + // @ts-ignore + expiresAt: '2023-09-23T06:02:22.125Z', + // @ts-ignore + createdAt: '2023-09-16T06:02:22.126Z', + // @ts-ignore + updatedAt: '2023-09-16T06:03:54.737Z', + __v: 0, + }, + { + _id: '650544eead52282dbf4397aa', + system_message: 'Welcome to teameights! We hope you will enjoy our platform. ', + // @ts-ignore + user: '650544eead52282dbf4397a8', + type: 'SystemNotification', + read: false, + // @ts-ignore + expiresAt: '2023-09-23T06:02:22.125Z', + // @ts-ignore + createdAt: '2023-09-16T06:02:22.126Z', + // @ts-ignore + updatedAt: '2023-09-16T06:03:54.737Z', + __v: 0, + }, + { + _id: '650544eead52282dbf4397aa', + system_message: 'Welcome to teameights! We hope you will enjoy our platform. ', + // @ts-ignore + user: '650544eead52282dbf4397a8', + type: 'SystemNotification', + read: false, + // @ts-ignore + expiresAt: '2023-09-23T06:02:22.125Z', + // @ts-ignore + createdAt: '2023-09-16T06:02:22.126Z', + // @ts-ignore + updatedAt: '2023-09-16T06:03:54.737Z', + __v: 0, + }, + { + _id: '650544eead52282dbf4397aa', + system_message: 'Welcome to teameights! We hope you will enjoy our platform. ', + // @ts-ignore + user: '650544eead52282dbf4397a8', + type: 'SystemNotification', + read: false, + // @ts-ignore + expiresAt: '2023-09-23T06:02:22.125Z', + // @ts-ignore + createdAt: '2023-09-16T06:02:22.126Z', + // @ts-ignore + updatedAt: '2023-09-16T06:03:54.737Z', + __v: 0, + }, + ], + universityData: [ + { + university: 'asd', + degree: 'Doctoral degree', + major: 'Animal Sciences', + // @ts-ignore + addmissionDate: '1998-12-31T22:00:00.000Z', + // @ts-ignore + graduationDate: '2000-12-31T22:00:00.000Z', + }, + ], + jobData: [], + projectData: [], + createdAt: '2023-09-16T06:02:22.115Z', + updatedAt: '2023-09-16T06:03:29.958Z', + __v: 0, + image: + 'https://teameights-production.s3.amazonaws.com/image/users/b1c300dd-0159-4a00-999f-6ce11f2df562.jpg', + concentration: 'Backend Developer', + country: 'United Arab Emirates', + // @ts-ignore + dateOfBirth: '2001-12-11T22:00:00.000Z', + description: '', + experience: '1-3', + fullName: 'asdsad', + links: { + github: '', + linkedIn: '', + behance: '', + telegram: '', + }, + username: 'asdasd', +}; diff --git a/client/src/widgets/sidebar/ui/notification-content/notification-content.module.scss b/client/src/widgets/sidebar/ui/notification-content/notification-content.module.scss new file mode 100644 index 000000000..753a20b09 --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-content/notification-content.module.scss @@ -0,0 +1,36 @@ +.notificationsContent { + position: relative; +} + +@keyframes scaleAnimation { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.2); + } + 100% { + transform: scale(1); + } +} + +.notificationsCount { + position: absolute; + pointer-events: none; // default value + top: var(--top, auto); + right: var(--right, auto); + left: var(--left, auto); + min-width: 14px; + aspect-ratio: 1; + display: flex; + align-items: center; + justify-content: center; + padding: 1.5px 3.5px; + background: #5bd424; + border-radius: 50%; + font-weight: 500; + font-size: 11px; + line-height: 100%; + color: #1a1c22; + animation: scaleAnimation 1s infinite; +} diff --git a/client/src/widgets/sidebar/ui/notification-content/notification-content.tsx b/client/src/widgets/sidebar/ui/notification-content/notification-content.tsx new file mode 100644 index 000000000..b100550d3 --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-content/notification-content.tsx @@ -0,0 +1,63 @@ +import React, { Dispatch, SetStateAction } from 'react'; +import clsx from 'clsx'; + +import { IconWrapper } from '@/shared/ui'; +import { SidebarNotificationIcon } from '@/shared/assets'; +import { Notification } from '@/entities/notification'; + +import { SidebarNotificationsModal } from '../notification-modal/notification-modal'; +import { SidebarNotificationsCount } from './notifications-count'; + +import sidebarStyles from 'widgets/Sidebar/ui/sidebar/sidebar.module.scss'; +import styles from './notification-content.module.scss'; + +interface NotificationContentProps { + userNotifications: Notification[] | undefined; + isSidebarExpanded: boolean; + setNotificationModal: Dispatch>; + notificationModal: boolean; +} + +export const SidebarNotificationsContent: React.FC = props => { + const { notificationModal, setNotificationModal, userNotifications, isSidebarExpanded } = props; + + const unreadMessages = React.useMemo(() => { + return userNotifications?.filter(item => !item.read); + }, [userNotifications]); + + const toggleNotificationModal = () => { + setNotificationModal(prev => !prev); + }; + + return ( +
+
+ + + + Notifications + {!!unreadMessages?.length && !notificationModal && ( + + {unreadMessages?.length} + + )} +
+ +
+ ); +}; diff --git a/client/src/widgets/sidebar/ui/notification-content/notifications-count.tsx b/client/src/widgets/sidebar/ui/notification-content/notifications-count.tsx new file mode 100644 index 000000000..82d0f2288 --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-content/notifications-count.tsx @@ -0,0 +1,31 @@ +import React from 'react'; + +import styles from './notification-content.module.scss'; + +interface NotificationsCountProps { + pointerEvents?: 'none' | 'all'; + top?: string; + right?: string; + left?: string; + children: React.ReactNode; +} + +export const SidebarNotificationsCount: React.FC = props => { + const { pointerEvents = 'none', top = 'auto', right = 'auto', left = 'auto', children } = props; + + return ( +
+ {children} +
+ ); +}; diff --git a/client/src/widgets/sidebar/ui/notification-item/notification-item.module.scss b/client/src/widgets/sidebar/ui/notification-item/notification-item.module.scss new file mode 100644 index 000000000..efae86c22 --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-item/notification-item.module.scss @@ -0,0 +1,85 @@ +.notificationsItem { + --avatar-size: 36px; + --message-gap: 12px; + display: flex; + flex-direction: column; + gap: 8px; + padding: 16px 20px 16px 24px; + color: #fff; + border-top: 1px solid #2f3239; + width: 100%; + + &:last-child{ + border-bottom: 1px solid rgb(47, 50, 57); + } + &:hover { + background-color: #2f3239; + } +} + +.messageContentWrapper { + display: flex; + flex-direction: column; + gap: 12px; + width: calc(100% - (var(--avatar-size) + var(--message-gap))); +} + +.messageText { + margin: 0; + font-size: 14px; + line-height: 120%; + color: #fff; +} + +.messagePicture { + position: relative; + width: var(--avatar-size); + height: var(--avatar-size); + background-color: #D4AC0F; /* Default color, can be overridden in component */ + border-radius: 50%; + + img { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 50%; + } + + svg { + margin: 8px; + } +} + +.sendingTime { + margin: 0; + font-weight: 500; + font-size: 11px; + line-height: 100%; + color: #86878b; + text-align: end; +} + +.messageCircle { + position: absolute; + top: 0; + left: -10px; + height: 6px; + width: 6px; + background-color: #5bd424; + border-radius: 50%; +} + +.messageButton { + cursor: pointer; + border: 2px solid #46a11b; /* Default color, can be overridden in component */ + background-color: transparent; /* Default color, can be overridden in component */ + padding: 6px 16px 4px; + line-height: 140%; + color: #fff; + border-radius: 10px; + transition: opacity 0.3s; + + &:hover { + opacity: 0.8; + } +} diff --git a/client/src/widgets/sidebar/ui/notification-item/notification-item.tsx b/client/src/widgets/sidebar/ui/notification-item/notification-item.tsx new file mode 100644 index 000000000..934b8fc8a --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-item/notification-item.tsx @@ -0,0 +1,70 @@ +// import { useChangeMessageStatus } from '../../../api/hooks/123/useChangeMessageStatus' +// import { useGetTeamData } from '../../../api/hooks/team/useGetTeamData' +// import { LOCAL_PATH } from '../../../http' +import React from 'react'; + +import { Loader } from '@/shared/ui'; +import { Notification } from '@/entities/notification'; + +import { SidebarTeamInvatitionNotification } from './team-invatition-notification'; +import { SidebarSystemNotification } from './system-notification'; + +import styles from './notification-item.module.scss'; + +interface NotificationProps { + notification: Notification; + closeNotificationsModal: () => void; +} + +export const SidebarNotificationsItem: React.FC = props => { + const { notification, closeNotificationsModal } = props; + + const isHandlingInvite = false; + // const { data: teamData, isLoading, error } = useGetTeamData(notification.teamid) + // const { mutate: teamInviteMutation, isLoading: isHandlingInvite } = useChangeMessageStatus( + // notification.teamid, + // ) + + const handleAccept = () => { + // Mock the mutatios + console.log('Accepted the invitation'); + closeNotificationsModal(); + }; + + const handleReject = () => { + // Mock the mutation + console.log('Rejected the invitation'); + }; + + const renderContent = () => { + switch (notification.type) { + case 'SystemNotification': + return ; + case 'TeamInvitationNotification': + return ( + + ); + default: + console.error(`Unknown notification type: ${notification}`); + return null; + } + }; + + if (isHandlingInvite) { + return ; + } + + return ( +
  • + {renderContent()} +
  • + ); +}; diff --git a/client/src/widgets/sidebar/ui/notification-item/system-notification.tsx b/client/src/widgets/sidebar/ui/notification-item/system-notification.tsx new file mode 100644 index 000000000..91b8a2565 --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-item/system-notification.tsx @@ -0,0 +1,28 @@ +import React from 'react'; + +import { FlexWrapper } from '@/shared/ui'; +import { SidebarLightningIcon } from '@/shared/assets'; +import { getPastTime } from '@/shared/lib'; +import { SystemNotification } from '@/entities/notification'; + +import styles from './notification-item.module.scss'; + +interface SystemNotificationProps { + notification: SystemNotification; +} + +export const SidebarSystemNotification: React.FC = props => { + const { notification } = props; + return ( + <> + +
    + {!notification.read &&
    } + +
    +

    {notification.system_message}

    + +

    {getPastTime(notification.createdAt)}

    + + ); +}; diff --git a/client/src/widgets/sidebar/ui/notification-item/team-invatition-notification.tsx b/client/src/widgets/sidebar/ui/notification-item/team-invatition-notification.tsx new file mode 100644 index 000000000..8bf66e99c --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-item/team-invatition-notification.tsx @@ -0,0 +1,42 @@ +import React from 'react'; +import Image from 'next/image'; + +import { FlexWrapper } from '@/shared/ui'; +import { getPastTime } from '@/shared/lib'; +import { TeamInvitationNotification } from '@/entities/notification'; + +import styles from './notification-item.module.scss'; + +interface TeamInvatitionNotificationProps { + notification: TeamInvitationNotification; + handleAccept: () => void; + handleReject: () => void; +} + +export const SidebarTeamInvatitionNotification: React.FC< + TeamInvatitionNotificationProps +> = props => { + const { notification, handleReject, handleAccept } = props; + return ( + <> + +
    + {!notification.read &&
    } + Team invation icon +
    +
    +

    {notification.message}

    + + + + +
    + +

    {getPastTime(notification.createdAt)}

    + + ); +}; diff --git a/client/src/widgets/sidebar/ui/notification-list/lib/sort-notifications.ts b/client/src/widgets/sidebar/ui/notification-list/lib/sort-notifications.ts new file mode 100644 index 000000000..764d9bf38 --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-list/lib/sort-notifications.ts @@ -0,0 +1,7 @@ +import { Notification } from '@/entities/notification'; + +export const sortNotifications = (notifications: Notification[]) => { + return [...notifications].sort( + (a, b) => new Date(b.createdAt).valueOf() - new Date(a.createdAt).valueOf() + ); +}; diff --git a/client/src/widgets/sidebar/ui/notification-list/notification-list.module.scss b/client/src/widgets/sidebar/ui/notification-list/notification-list.module.scss new file mode 100644 index 000000000..064f2d098 --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-list/notification-list.module.scss @@ -0,0 +1,24 @@ +.notificationsList { + margin: 0; + padding: 0; + list-style: none; + max-height: calc(100% - 62px); + overflow-y: auto; + scrollbar-width: none; // Firefox + -ms-overflow-style: none; // Internet Explorer 10+ + + // WebKit + ::-webkit-scrollbar { + transition: all 0.2s; + width: 5px; + } + + ::-webkit-scrollbar-track { + background: transparent; + } + + ::-webkit-scrollbar-thumb { + background-color: #5d9d0b; + border-radius: 10px; + } +} diff --git a/client/src/widgets/sidebar/ui/notification-list/notification-list.tsx b/client/src/widgets/sidebar/ui/notification-list/notification-list.tsx new file mode 100644 index 000000000..d6c3bea5b --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-list/notification-list.tsx @@ -0,0 +1,62 @@ +import React, { useRef } from 'react'; + +import { Notification } from '@/entities/notification'; + +import styles from './notification-list.module.scss'; +import { SidebarNotificationsItem } from '../notification-item/notification-item'; +import { sortNotifications } from './lib/sort-notifications'; + +interface NotificationsListProps { + userNotifications: Notification[]; + setUnreadIds: (callback: (prev: Set) => Set) => void; + closeNotificationsModal: () => void; +} + +export const SidebarNotificationsList: React.FC = props => { + const { userNotifications, setUnreadIds, closeNotificationsModal } = props; + + const listRef = useRef(null); + + const sortedNotifications = React.useMemo( + () => sortNotifications(userNotifications), + [userNotifications] + ); + + const handleIntersection = React.useCallback( + (entries: IntersectionObserverEntry[]) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + const itemId = entry.target.getAttribute('data-notification-id'); + const isRead = entry.target.getAttribute('data-notification-read'); + + if (isRead === 'false' && itemId) { + setUnreadIds(prev => new Set([...Array.from(prev), itemId])); + } + } + }); + }, + [setUnreadIds] + ); + + React.useEffect(() => { + const observer = new IntersectionObserver(handleIntersection); + const listItems = listRef.current?.querySelectorAll('[data-notification-read]'); + listItems?.forEach(item => observer.observe(item)); + + return () => { + observer.disconnect(); + }; + }, [handleIntersection]); + + return ( +
      + {sortedNotifications.map(notification => ( + + ))} +
    + ); +}; diff --git a/client/src/widgets/sidebar/ui/notification-modal/desktop-modal-content.tsx b/client/src/widgets/sidebar/ui/notification-modal/desktop-modal-content.tsx new file mode 100644 index 000000000..4479d5e4b --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-modal/desktop-modal-content.tsx @@ -0,0 +1,52 @@ +import React from 'react'; +import { clsx } from 'clsx'; + +import { IconWrapper } from '@/shared/ui'; +import { SidebarChecksIcon, SidebarNotificationClose } from '@/shared/assets'; + +import { SidebarNotificationsList } from '../notification-list/notification-list'; +import { NotificationsModalProps } from './notification-modal'; + +import styles from './notification-modal.module.scss'; + +interface DesktopModalContentProps extends Omit { + notificationModalRef: React.RefObject; + markAllAsRead: () => void; + closeNotificationsModal: () => void; + setUnreadIds: React.Dispatch>>; +} + +export const SidebarDesktopModalContent: React.FC = props => { + const { + notificationModal, + notificationModalRef, + markAllAsRead, + closeNotificationsModal, + userNotifications, + setUnreadIds, + } = props; + return ( +
    e.stopPropagation()} + > +
    +
    + + + +

    Mark all as read

    +
    +
    + +
    +
    + +
    + ); +}; diff --git a/client/src/widgets/sidebar/ui/notification-modal/mobile-modal-content.tsx b/client/src/widgets/sidebar/ui/notification-modal/mobile-modal-content.tsx new file mode 100644 index 000000000..df479a96d --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-modal/mobile-modal-content.tsx @@ -0,0 +1,53 @@ +import { clsx } from 'clsx'; +import React from 'react'; + +import { SidebarChecksIcon, SidebarNotificationClose } from '@/shared/assets'; +import { IconWrapper } from '@/shared/ui'; + +import { SidebarNotificationsList } from '../notification-list/notification-list'; +import { NotificationsModalProps } from './notification-modal'; + +import styles from './notification-modal.module.scss'; + +interface MobileModalContentProps extends Omit { + closeNotificationsModal: () => void; + markAllAsRead: () => void; + setUnreadIds: React.Dispatch>>; +} + +export const SidebarMobileModalContent: React.FC = props => { + const { + notificationModal, + userNotifications, + closeNotificationsModal, + markAllAsRead, + setUnreadIds, + } = props; + return ( +
    +
    +
    +
    +

    Notifications

    +
    + +
    +
    + +
    + +
    +
    + ); +}; diff --git a/client/src/widgets/sidebar/ui/notification-modal/notification-modal.module.scss b/client/src/widgets/sidebar/ui/notification-modal/notification-modal.module.scss new file mode 100644 index 000000000..3687b3ce6 --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-modal/notification-modal.module.scss @@ -0,0 +1,160 @@ +.notificationsModal { + pointer-events: none; // default value + position: absolute; + left: calc(100% + 32px); + top: -16px; + width: 320px; + height: 354px; + background: linear-gradient(90.45deg, #1a1c22 62.8%, #2f3239 209.77%); + box-shadow: 0px 4px 24px rgba(17, 20, 27, 0.25); + border-radius: 5px; + overflow: hidden; + transition: clip-path 0.3s ease; // Add transition for clip-path + clip-path: inset(10% 50% 90% 50% round 10px); // Default to closed state + &.active { + clip-path: inset(0% 0% 0% 0% round 10px); // Open state + pointer-events: all; + } +} + +.notificationsModal.open { + animation: openAnimation; +} + +.notificationsModal.closed { + animation: closeAnimation; +} + +.notificationsHeader { + display: flex; + justify-content: space-between; + align-items: center; + padding: 16px; + + @media screen and (max-width: 670px) { + padding: 24px; + } +} + +.crossBtn { + cursor: pointer; + &:hover { + path { + stroke: #d42422; + } + } +} + +.markAllBtn, .markAllBtnMobile { + cursor: pointer; + display: flex; + align-items: center; + gap: 6px; + p { + margin: 0; + color: #fff; + } + &:hover { + path { + stroke: #5bd424; + } + p { + color: #5bd424; + } + } +} + +.mobileNotificationsModal { + display: block; + transform: translateY(100%); /* Start from the bottom */ + transition: transform 0.3s ease-in-out; + position: fixed; + bottom: 0; + left: 0; + right: 0; + z-index: 9999; + + &.modalActive { + background: #26292b; + overflow: hidden; + inset: 0px; + pointer-events: all; + transform: translateY(0); + } +} + +.mobileWrapper { + width: 100%; + min-height: 100dvh; + background: #26292b; + display: flex; + justify-content: space-between; + flex-direction: column; + overflow: scroll; + + ::-webkit-scrollbar { + transition: all 0.2s; + width: 0; + height: 0; + } + ::-webkit-scrollbar-track { + background: transparent; + } + + ::-webkit-scrollbar-thumb { + background-color: #000000; + } +} + +.text { + font-weight: 500; + font-size: 24px; + color: #5bd424; + margin: 0; + text-align: unset; // default value +} + +.markAllBtnMobile { + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; + gap: 7px; + background: none; + outline: none; + border: 2px solid #46a11b; + border-radius: 10px; + padding: 10px 16px; + margin: 16px 24px 24px 24px; + p { + color: #fff; + font-size: 16px; + font-weight: 400; + } + &:hover { + path { + stroke: #5bd424; + } + p { + color: #5bd424; + } + } +} + +@keyframes openAnimation { + from { + clip-path: inset(10% 50% 90% 50% round 10px); + } + to { + clip-path: inset(0% 0% 0% 0% round 10px); + } +} + +@keyframes closeAnimation { + from { + clip-path: inset(0% 0% 0% 0% round 10px); + } + to { + clip-path: inset(10% 50% 90% 50% round 10px); + } +} diff --git a/client/src/widgets/sidebar/ui/notification-modal/notification-modal.tsx b/client/src/widgets/sidebar/ui/notification-modal/notification-modal.tsx new file mode 100644 index 000000000..147381ddf --- /dev/null +++ b/client/src/widgets/sidebar/ui/notification-modal/notification-modal.tsx @@ -0,0 +1,71 @@ +import React, { useCallback, useEffect, useState } from 'react'; +import { createPortal } from 'react-dom'; + +import { useClickOutside, useGetScreenWidth } from '@/shared/lib'; +import { Notification } from '@/entities/notification'; + +import { SidebarDesktopModalContent } from './desktop-modal-content'; +import { SidebarMobileModalContent } from './mobile-modal-content'; + +export interface NotificationsModalProps { + userNotifications: Notification[]; + notificationModal: boolean; + setNotificationModal: (value: boolean) => void; +} + +export const SidebarNotificationsModal: React.FC = props => { + const { userNotifications, notificationModal, setNotificationModal } = props; + + const [unreadIds, setUnreadIds] = useState(new Set()); + // const { mutateAsync: readMessages } = useReadMessages(); + const width = useGetScreenWidth(); + const [isClient, setIsClient] = useState(false); + + useEffect(() => { + setIsClient(true); + }, []); + + const closeNotificationsModal = useCallback(() => { + if (notificationModal) { + setNotificationModal(false); + if (unreadIds.size) { + // Request to the server is here + // await readMessages(Array.from(unreadIds)) + setUnreadIds(new Set()); + } + } + }, [notificationModal, setNotificationModal, unreadIds]); + + const notificationModalRef = useClickOutside(closeNotificationsModal); + + const markAllAsRead = () => { + // ... rest of the function ... + }; + + return ( + <> + {width > 670 ? ( + + ) : ( + isClient && + createPortal( + , + document.body + ) + )} + + ); +}; diff --git a/client/src/widgets/sidebar/ui/sidebar-item/sidebar-item.module.scss b/client/src/widgets/sidebar/ui/sidebar-item/sidebar-item.module.scss new file mode 100644 index 000000000..e1f93459a --- /dev/null +++ b/client/src/widgets/sidebar/ui/sidebar-item/sidebar-item.module.scss @@ -0,0 +1,45 @@ +.wrapper { + position: relative; + transition: opacity 0.2s; + border-radius: 10px; + text-decoration: none; + color: #fff; + padding: 8px 16px; + display: flex; + align-items: center; + gap: 8px; + overflow: hidden; + + &:hover { + background-color: #2f3239; + } + + &.active { + background-color: #5d9d0b; + } +} + +.icon { + display: flex; + align-items: center; + justify-content: center; + + & svg { + width: 24px; + height: 24px; + } +} + +.title { + transition: opacity 0.2s; + opacity: 0; + pointer-events: none; + font-size: 16px; + line-height: 140%; + color: #fff; + + &.active { + opacity: 1; + pointer-events: all; + } +} diff --git a/client/src/widgets/sidebar/ui/sidebar-item/sidebar-item.stories.tsx b/client/src/widgets/sidebar/ui/sidebar-item/sidebar-item.stories.tsx new file mode 100644 index 000000000..a35a6e207 --- /dev/null +++ b/client/src/widgets/sidebar/ui/sidebar-item/sidebar-item.stories.tsx @@ -0,0 +1,57 @@ +import React from 'react'; +import { Meta, StoryObj } from '@storybook/react'; +import { SidebarItem, SidebarItemProps } from './sidebar-item'; +import { SidebarLightningIcon, SidebarSearchIcon } from '@/shared/assets'; + +const sidebarItemProps: SidebarItemProps = { + active: false, + path: '/home', + icon: , + title: 'Home', + isActive: false, +}; + +// Defining meta information for Storybook + +type Story = StoryObj; +const SidebarItemTemplate: Story = { render: args => }; + +export const Playground = { ...SidebarItemTemplate }; +Playground.args = sidebarItemProps; + +// Active Sidebar Item +export const Active = { ...SidebarItemTemplate }; +Active.args = { + ...sidebarItemProps, + active: true, + isActive: true, +}; + +// Sidebar Item with Long Title +export const LongTitle = { ...SidebarItemTemplate }; +LongTitle.args = { + ...sidebarItemProps, + title: 'Long Title Example Here', +}; + +// Sidebar Item on Hover +export const Hover = { ...SidebarItemTemplate }; +Hover.args = { + ...sidebarItemProps, +}; +Hover.parameters = { + pseudo: { hover: true }, +}; + +// Sidebar Item with Different Icon +export const DifferentIcon = { ...SidebarItemTemplate }; +DifferentIcon.args = { + ...sidebarItemProps, + icon: , +}; + +export default { + title: 'widgets/Sidebar/SidebarItem', + component: SidebarItem, + tags: ['autodocs'], +} as Meta; diff --git a/client/src/widgets/sidebar/ui/sidebar-item/sidebar-item.tsx b/client/src/widgets/sidebar/ui/sidebar-item/sidebar-item.tsx new file mode 100644 index 000000000..138b123aa --- /dev/null +++ b/client/src/widgets/sidebar/ui/sidebar-item/sidebar-item.tsx @@ -0,0 +1,59 @@ +import Link from 'next/link'; +import clsx from 'clsx'; +import React from 'react'; + +import styles from './sidebar-item.module.scss'; + +export interface SidebarItemProps extends React.LiHTMLAttributes { + /** + * Determines the visual state of the title. If true, the title is fully visible. + */ + active: boolean; + /** + * The URL path to which the component's link should point. + */ + path: string; + /** + * The icon to be displayed alongside the title. + */ + icon: React.ReactNode; + /** + * The text to be displayed as the item's title. + */ + title: string; + /** + * Determines the visual state of the entire item. If true, a background color is applied. + */ + isActive: boolean; +} + +/** + * The SidebarItem component represents a navigational item within a sidebar. + * It encapsulates a link, an icon, and a title, providing a visual indication of its active state. + * + * Example for usage: + * + * ```tsx + * import { SidebarItem } from './SidebarItem'; + * import { HomeIcon } from 'shared/assets'; + * + * } + * title="Home" + * isActive={true} + * /> + * ``` + */ +export const SidebarItem: React.FC = props => { + const { active, path, icon, title, isActive, ...rest } = props; + return ( +
  • + + {icon} + {title} + +
  • + ); +}; diff --git a/client/src/widgets/sidebar/ui/sidebar-profile/sidebar-profile.module.scss b/client/src/widgets/sidebar/ui/sidebar-profile/sidebar-profile.module.scss new file mode 100644 index 000000000..80906a96c --- /dev/null +++ b/client/src/widgets/sidebar/ui/sidebar-profile/sidebar-profile.module.scss @@ -0,0 +1,65 @@ +.userInfo { + margin-top: 28px; + width: 100%; + display: flex; + padding: 0 12px; + align-items: center; + gap: 12px; + overflow: hidden; +} + +.profileIcon { + width: 32px; + height: 32px; + border-radius: 50%; + object-fit: cover; +} + +.userContent { + display: flex; + flex-direction: column; + gap: 2px; +} + +.userRealName { + transition: opacity 0.2s; + white-space: nowrap; + pointer-events: none; + opacity: 0; + font-size: 16px; + line-height: 140%; + color: #fff; + + &.active { + pointer-events: all; + opacity: 1; + } +} + +.userUsername { + transition: opacity 0.2s; + white-space: nowrap; + pointer-events: none; + opacity: 0; + margin: 0; + font-weight: 500; + font-size: 11px; + line-height: 100%; + color: #86878b; + + &.active { + pointer-events: all; + opacity: 1; + } +} + +.notificationIconCenter { + padding-top: 5px; + display: flex; + justify-content: center; + align-items: flex-start; +} + +.notificationToggle { + cursor: pointer; +} diff --git a/client/src/widgets/sidebar/ui/sidebar-profile/sidebar-profile.stories.tsx b/client/src/widgets/sidebar/ui/sidebar-profile/sidebar-profile.stories.tsx new file mode 100644 index 000000000..c8cec4e32 --- /dev/null +++ b/client/src/widgets/sidebar/ui/sidebar-profile/sidebar-profile.stories.tsx @@ -0,0 +1,106 @@ +import React from 'react'; +import { Meta, StoryObj } from '@storybook/react'; +import { SidebarProfile, SidebarProfileProps } from './sidebar-profile'; +import { User } from '@/entities/user'; + +const defaultUser: User = { + _id: '123123312', + email: 'johnDoe@example.com', + password: '$2a$05$7AnHdyBKd7kh78kkSt4OIOaBAidnedL3Sr6ZfFOKG5xcVatrPT4kq', + isRegistered: true, + fullName: 'John Doe', + username: 'john.doe', + image: '/images/user-images/user-red.png', +}; + +const sidebarProfileProps: SidebarProfileProps = { + active: false, + user: defaultUser, +}; + +type Story = StoryObj; +const SidebarProfileTemplate: Story = { render: args => }; + +export const Playground = { ...SidebarProfileTemplate }; +Playground.args = sidebarProfileProps; + +// Active User Profile +export const ActiveUserProfile = { ...SidebarProfileTemplate }; +ActiveUserProfile.args = { + ...sidebarProfileProps, + active: true, +}; + +// Inactive User Profile +export const InactiveUserProfile = { ...SidebarProfileTemplate }; +InactiveUserProfile.args = { + ...sidebarProfileProps, + active: false, +}; + +// Unregistered User Profile +export const UnregisteredUserProfile = { ...SidebarProfileTemplate }; +UnregisteredUserProfile.args = { + ...sidebarProfileProps, + user: { + _id: '650544eead52282dbf4397aa', + email: 'johnDoe@example.com', + password: '$2a$05$7AnHdyBKd7kh78kkSt4OIOaBAidnedL3Sr6ZfFOKG5xcVatrPT4kq', + isRegistered: false, + fullName: 'Unknown', + username: 'unknown@email.com', + image: '/images/user/unregistered.png', + }, +}; + +// Active Unregistered User Profile +export const ActiveUnregisteredUserProfile = { ...SidebarProfileTemplate }; +ActiveUnregisteredUserProfile.args = { + ...sidebarProfileProps, + user: { + _id: '650544eead52282dbf4397aa', + email: 'johnDoe@example.com', + password: '$2a$05$7AnHdyBKd7kh78kkSt4OIOaBAidnedL3Sr6ZfFOKG5xcVatrPT4kq', + isRegistered: false, + fullName: 'Unknown', + username: 'unknown@email.com', + image: '/images/user/unregistered.png', + }, + active: true, +}; + +// User Profile with Long Name +export const UserProfileWithLongName = { ...SidebarProfileTemplate }; +UserProfileWithLongName.args = { + ...sidebarProfileProps, + user: { + _id: '650544eead52282dbf4397aa', + email: 'johnDoe@example.com', + password: '$2a$05$7AnHdyBKd7kh78kkSt4OIOaBAidnedL3Sr6ZfFOKG5xcVatrPT4kq', + isRegistered: true, + fullName: 'Johnathan Doe the Third', + username: 'john.doe.third', + image: '/images/user-images/user-blue.png', + }, +}; + +// User Profile with No Image +export const UserProfileWithNoImage = { ...SidebarProfileTemplate }; +UserProfileWithNoImage.args = { + ...sidebarProfileProps, + user: { + _id: '650544eead52282dbf4397ab', + email: 'johnDoe@example.com', + password: '$2a$05$7AnHdyBKd7kh78kkSt4OIOaBAidnedL3Sr6ZfFOKG5xcVatrPT4kq', + isRegistered: true, + fullName: 'Jane Doe', + username: 'jane.doe', + image: '', + }, +}; + +export default { + title: 'widgets/Sidebar/SidebarProfile', + component: SidebarProfile, + tags: ['autodocs'], +} as Meta; diff --git a/client/src/widgets/sidebar/ui/sidebar-profile/sidebar-profile.tsx b/client/src/widgets/sidebar/ui/sidebar-profile/sidebar-profile.tsx new file mode 100644 index 000000000..ba4b69140 --- /dev/null +++ b/client/src/widgets/sidebar/ui/sidebar-profile/sidebar-profile.tsx @@ -0,0 +1,101 @@ +import React, { useEffect, useState } from 'react'; +import clsx from 'clsx'; +import Image from 'next/image'; + +import { User } from '@/entities/user'; + +import styles from './sidebar-profile.module.scss'; + +// import { useCheckAuth } from '../../../api/hooks/auth/useCheckAuth'; +const unregisteredImg = '/images/user/unregistered.png'; + +const defaultData = { + userRealName: 'Unknown', + userUsername: 'unknown@email.com', + notificationBell: false, + userImg: unregisteredImg, +}; + +interface UserData { + userRealName: string; + userUsername: string; + notificationBell: boolean; + userImg: string; +} + +export interface SidebarProfileProps { + /** + * Determines the visual state of the user's real name and username. If true, they are highlighted. + */ + active: boolean; + /** + * The user object containing user information. + */ + user: User; +} + +/** + * The SidebarProfile component displays the user's profile information in the sidebar. + * It shows the user's image, real name, and username. If the user is not registered, default data is shown. + * + * Example of usage: + * + * ```tsx + * import { SidebarProfile } from './SidebarProfile'; + * import { User } from 'entities/user'; + * + * const user = new User({ + * isRegistered: true, + * fullName: 'John Doe', + * username: 'john.doe', + * image: '/images/user/john.png' + * }); + * + * + * ``` + */ +export const SidebarProfile: React.FC = props => { + const { user, active } = props; + // const { data: user } = useCheckAuth(); + + const isUserRegistered = user?.isRegistered; + const [data, setData] = useState(defaultData); + + useEffect(() => { + if (isUserRegistered) { + setData({ + userRealName: user.fullName, + userUsername: user.username, + notificationBell: true, + userImg: user.image || unregisteredImg, + }); + } else { + setData(defaultData); + } + }, [isUserRegistered, user]); + + return ( +
    + Profile icon +
    + + {data?.userRealName} + +

    + @{data?.userUsername} +

    +
    +
    + ); +}; diff --git a/client/src/widgets/sidebar/ui/sidebar/sidebar.module.scss b/client/src/widgets/sidebar/ui/sidebar/sidebar.module.scss new file mode 100644 index 000000000..e20160c3a --- /dev/null +++ b/client/src/widgets/sidebar/ui/sidebar/sidebar.module.scss @@ -0,0 +1,205 @@ +.iconContainer { + margin-right: 25px; + cursor: pointer; +} + +.sidebarWrapper { + pointer-events: none; + width: 100vw; + height: 100dvh; + background: rgba(0, 0, 0, 0); + backdrop-filter: none; + -webkit-backdrop-filter: none; + position: fixed; + top: 0; + left: 0; + z-index: 999; + + &.active { + pointer-events: all; + background: rgba(0, 0, 0, 0.25); + backdrop-filter: blur(5px); + -webkit-backdrop-filter: blur(5px); + } + + @media screen and (max-width: 768px) { + pointer-events: none; + + &.active { + pointer-events: all; + } + } +} + +.menu { + pointer-events: all; + width: 100%; + height: 100%; + max-width: 88px; + display: flex; + flex-direction: column; + align-items: center; + background: #1A1C22; + transition: max-width 0.6s ease-in-out, left 0.4s ease-in-out, transform 0.4s ease-in-out, box-shadow 0.4s ease-in-out; + padding: 48px 16px 0 16px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Initial shadow */ + + &.active { + max-width: 270px; + background: linear-gradient(90.45deg, #1a1c22 62.8%, #2f3239 209.77%); + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); /* Enhanced shadow when active */ + } + + @media screen and (max-width: 768px) { + position: absolute; + max-width: none; + left: -270px; + top: 0; + width: 270px; + pointer-events: none; + + &.active { + left: 0; + pointer-events: all; + } + } +} + +.toggle { + position: relative; + justify-content: flex-end; + width: 100%; + display: flex; + align-items: center; +} + +.logo { + opacity: 0; + position: absolute; + left: 12px; + transition: opacity 0.3s ease-in-out; + + &.active { + opacity: 1; + } +} + +.close { + cursor: pointer; + transform: rotateY(180deg); + padding: 0 12px; + + &.active { + transform: rotateY(0deg); + } + + @media screen and (max-width: 768px) { + padding: 0 20px; + } +} + +.list { + list-style: none; + margin: 0; + padding: 36px 0; + border-bottom: 1px solid #2f3239; + width: 100%; + display: flex; + flex-direction: column; + gap: 8px; + overflow: hidden; +} + +.interactions { + padding-top: 16px; + width: 100%; + display: flex; + flex-direction: column; + gap: 8px; +} + +.interactButton { + cursor: pointer; + font-size: 16px; + line-height: 140%; + color: #fff; + border-radius: 10px; + padding: 8px 16px; + display: flex; + gap: 8px; + align-items: center; + overflow: hidden; + transition: background-color 0.2s; + background-color: transparent; + + &:hover { + background-color: #2f3239; + } + + + + &.modalActive { + background-color: #5d9d0b; + } + + span { + transition: opacity 0.2s; + opacity: 0; + pointer-events: none; + margin: 0; + white-space: nowrap; + + + } + + &.active { + //background-color: #5d9d0b; + + span { + opacity: 1; + pointer-events: all; + } + } +} + +.copyright { + opacity: 0; + pointer-events: none; + display: block; + margin-top: auto; + margin-bottom: 32px; + font-weight: 500; + font-size: 11px; + text-transform: capitalize; + color: #86878b; + overflow: hidden; + white-space: nowrap; + transform: translate(-10px, 10px) scale(0.8); /* Move it slightly to the left and bottom */ + transition: transform 0.5s ease-in-out, opacity 0.3s ease-in-out; + + &.active { + transform: translate(0, 0) scale(1); /* Reset translation and scale when active */ + opacity: 1; + pointer-events: all; + } +} + +.mobileIcon { + position: absolute; + top: 47px; + left: 41px; + display: none; + cursor: pointer; + z-index: 999; + + @media screen and (max-width: 768px) { + display: block; + pointer-events: all; + top: 32px; + left: 0; + + &.active { + display: none; + } + } +} diff --git a/client/src/widgets/sidebar/ui/sidebar/sidebar.test.tsx b/client/src/widgets/sidebar/ui/sidebar/sidebar.test.tsx new file mode 100644 index 000000000..9c858fd50 --- /dev/null +++ b/client/src/widgets/sidebar/ui/sidebar/sidebar.test.tsx @@ -0,0 +1,14 @@ +// import { render } from '@testing-library/react'; +// +// import { Sidebar, SIDEBAR_DATA_TEST_IDS } from './sidebar'; +// +// import styles from './sidebar.module.css'; +// +// describe('Sidebar', () => { +// it('should collapse the Sidebar by default', () => { +// const { getByTestId } = render(); +// const sidebarElement = getByTestId(SIDEBAR_DATA_TEST_IDS.WRAPPER); +// expect(sidebarElement).toHaveClass(styles.sidebarWrapper); +// expect(sidebarElement).not.toHaveClass(styles.active); +// }); +// }); diff --git a/client/src/widgets/sidebar/ui/sidebar/sidebar.tsx b/client/src/widgets/sidebar/ui/sidebar/sidebar.tsx new file mode 100644 index 000000000..9d87cb4c0 --- /dev/null +++ b/client/src/widgets/sidebar/ui/sidebar/sidebar.tsx @@ -0,0 +1,145 @@ +'use client'; + +import React, { useState } from 'react'; +import clsx from 'clsx'; +import { usePathname, useRouter } from 'next/navigation'; + +import { IconWrapper } from '@/shared/ui'; +import { SidebarCloseIcon, SidebarExitIcon, SidebarShortLogo } from '@/shared/assets'; +import { useClickOutside } from '@/shared/lib'; +import { REGISTRATION_PATH } from '@/shared/constant'; + +import { mockUser } from '../../mock'; +import { getSidebarItems } from '../../config/getSidebarItems'; +import { SidebarItem } from '../sidebar-item/sidebar-item'; +import { SidebarProfile } from '../sidebar-profile/sidebar-profile'; +import { SidebarNotificationsContent } from '../notification-content/notification-content'; + +import styles from './sidebar.module.scss'; + +export const Sidebar: React.FC = () => { + const router = useRouter(); + const pathname = usePathname(); + + const [isSidebarExpanded, setIsSidebarExpanded] = useState(false); + const [notificationModal, setNotificationModal] = useState(false); + + // const { isAuth } = useSelector((state) => state.userReducer); + const isAuth = true; + // const { data: user } = useCheckAuth(); + const user = mockUser; + + const sidebarItemsData = React.useMemo(() => { + return getSidebarItems(user); + }, [user]); + + // const { mutate: logoutUser, isLoading: isUserLoggingOut } = useLogoutUser(); + const navigateToPath = (path: string) => { + router.push(path); + }; + + const navMenuRef = useClickOutside( + notificationModal ? () => '' : () => setIsSidebarExpanded(false) + ); + + const handleLogout = () => { + // logoutUser(); + console.log('123'); + }; + + // if (isUserLoggingOut) { + // + // // return ; + // } + const handleShowSidebar = () => { + setIsSidebarExpanded(prev => !prev); + }; + + return ( + <> + + + + + ); +}; diff --git a/client/yarn.lock b/client/yarn.lock index 182168b54..cb6178219 100644 --- a/client/yarn.lock +++ b/client/yarn.lock @@ -12,6 +12,13 @@ __metadata: languageName: node linkType: hard +"@adobe/css-tools@npm:^4.3.0": + version: 4.3.1 + resolution: "@adobe/css-tools@npm:4.3.1" + checksum: ad43456379ff391132aff687ece190cb23ea69395e23c9b96690eeabe2468da89a4aaf266e4f8b6eaab53db3d1064107ce0f63c3a974e864f4a04affc768da3f + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.2.0": version: 2.2.1 resolution: "@ampproject/remapping@npm:2.2.1" @@ -33,7 +40,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.22.13": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.22.13": version: 7.22.13 resolution: "@babel/code-frame@npm:7.22.13" dependencies: @@ -43,37 +50,37 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/compat-data@npm:7.22.9" - checksum: bed77d9044ce948b4327b30dd0de0779fa9f3a7ed1f2d31638714ed00229fa71fc4d1617ae0eb1fad419338d3658d0e9a5a083297451e09e73e078d0347ff808 +"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.20, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": + version: 7.22.20 + resolution: "@babel/compat-data@npm:7.22.20" + checksum: efedd1d18878c10fde95e4d82b1236a9aba41395ef798cbb651f58dbf5632dbff475736c507b8d13d4c8f44809d41c0eb2ef0d694283af9ba5dd8339b6dab451 languageName: node linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.22.9, @babel/core@npm:^7.7.5": - version: 7.22.17 - resolution: "@babel/core@npm:7.22.17" + version: 7.22.20 + resolution: "@babel/core@npm:7.22.20" dependencies: "@ampproject/remapping": ^2.2.0 "@babel/code-frame": ^7.22.13 "@babel/generator": ^7.22.15 "@babel/helper-compilation-targets": ^7.22.15 - "@babel/helper-module-transforms": ^7.22.17 + "@babel/helper-module-transforms": ^7.22.20 "@babel/helpers": ^7.22.15 "@babel/parser": ^7.22.16 "@babel/template": ^7.22.15 - "@babel/traverse": ^7.22.17 - "@babel/types": ^7.22.17 + "@babel/traverse": ^7.22.20 + "@babel/types": ^7.22.19 convert-source-map: ^1.7.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 355216a342d1b3952d7c040dd4c99ecef6b3501ba99a713703c1fec1ae73bc92a48a0c1234562bdbb4fd334b2e452f5a6c3bb282f0e613fa89e1518c91d1aea1 + checksum: 73663a079194b5dc406b2e2e5e50db81977d443e4faf7ef2c27e5836cd9a359e81e551115193dc9b1a93471275351a972e54904f4d3aa6cb156f51e26abf6765 languageName: node linkType: hard -"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.22.15, @babel/generator@npm:^7.22.9": +"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.22.15, @babel/generator@npm:^7.22.9, @babel/generator@npm:^7.7.2": version: 7.22.15 resolution: "@babel/generator@npm:7.22.15" dependencies: @@ -163,10 +170,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-environment-visitor@npm:7.22.5" - checksum: 248532077d732a34cd0844eb7b078ff917c3a8ec81a7f133593f71a860a582f05b60f818dc5049c2212e5baa12289c27889a4b81d56ef409b4863db49646c4b1 +"@babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.22.5": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 languageName: node linkType: hard @@ -189,7 +196,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.22.15, @babel/helper-member-expression-to-functions@npm:^7.22.5": +"@babel/helper-member-expression-to-functions@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-member-expression-to-functions@npm:7.22.15" dependencies: @@ -207,18 +214,18 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.22.15, @babel/helper-module-transforms@npm:^7.22.17, @babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.22.9": - version: 7.22.17 - resolution: "@babel/helper-module-transforms@npm:7.22.17" +"@babel/helper-module-transforms@npm:^7.22.15, @babel/helper-module-transforms@npm:^7.22.20, @babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.22.9": + version: 7.22.20 + resolution: "@babel/helper-module-transforms@npm:7.22.20" dependencies: - "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 "@babel/helper-module-imports": ^7.22.15 "@babel/helper-simple-access": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/helper-validator-identifier": ^7.22.15 + "@babel/helper-validator-identifier": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0 - checksum: 458021c74093e66179765fcc9d1c1cb694f7bdf98656f23486901d35636495c38aab4661547fac2142e13d887987d1ea30cc9fe42968376a51a99bcd207b4989 + checksum: 8fce25362df8711bd4620f41c5c18769edfeafe7f8f1dae9691966ef368e57f9da68dfa1707cd63c834c89dc4eaa82c26f12ea33e88fd262ac62844b11dcc389 languageName: node linkType: hard @@ -239,28 +246,28 @@ __metadata: linkType: hard "@babel/helper-remap-async-to-generator@npm:^7.22.5, @babel/helper-remap-async-to-generator@npm:^7.22.9": - version: 7.22.17 - resolution: "@babel/helper-remap-async-to-generator@npm:7.22.17" + version: 7.22.20 + resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-wrap-function": ^7.22.17 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-wrap-function": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0 - checksum: 59307e623d00b6f5fa7f974e29081b2243e3f7bc3a89df331e8c1f8815d83f97bd092404a28b8bef5299028e3259450b5a943f34e1b32c7c55350436d218ab13 + checksum: 2fe6300a6f1b58211dffa0aed1b45d4958506d096543663dba83bd9251fe8d670fa909143a65b45e72acb49e7e20fbdb73eae315d9ddaced467948c3329986e7 languageName: node linkType: hard "@babel/helper-replace-supers@npm:^7.22.5, @babel/helper-replace-supers@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-replace-supers@npm:7.22.9" + version: 7.22.20 + resolution: "@babel/helper-replace-supers@npm:7.22.20" dependencies: - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-member-expression-to-functions": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-member-expression-to-functions": ^7.22.15 "@babel/helper-optimise-call-expression": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0 - checksum: d41471f56ff2616459d35a5df1900d5f0756ae78b1027040365325ef332d66e08e3be02a9489756d870887585ff222403a228546e93dd7019e19e59c0c0fe586 + checksum: a0008332e24daedea2e9498733e3c39b389d6d4512637e000f96f62b797e702ee24a407ccbcd7a236a551590a38f31282829a8ef35c50a3c0457d88218cae639 languageName: node linkType: hard @@ -298,10 +305,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.15, @babel/helper-validator-identifier@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-validator-identifier@npm:7.22.15" - checksum: eb0bee4bda664c0959924bc1ad5611eacfce806f46612202dd164fef1df8fef1a11682a1e7615288987100e9fb304982b6e2a4ff07ffe842ab8765b95ed1118c +"@babel/helper-validator-identifier@npm:^7.22.19, @babel/helper-validator-identifier@npm:^7.22.20, @babel/helper-validator-identifier@npm:^7.22.5": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc languageName: node linkType: hard @@ -312,14 +319,14 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.22.17": - version: 7.22.17 - resolution: "@babel/helper-wrap-function@npm:7.22.17" +"@babel/helper-wrap-function@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-wrap-function@npm:7.22.20" dependencies: "@babel/helper-function-name": ^7.22.5 "@babel/template": ^7.22.15 - "@babel/types": ^7.22.17 - checksum: 95328b508049b6edd9cadd2ac89b4d4812ebdfa54a2ae77791939d795d88d561b31fd3669eea5d13558372cf2422eda05177d7f742690b5023c712bc3f0aec8e + "@babel/types": ^7.22.19 + checksum: 221ed9b5572612aeb571e4ce6a256f2dee85b3c9536f1dd5e611b0255e5f59a3d0ec392d8d46d4152149156a8109f92f20379b1d6d36abb613176e0e33f05fca languageName: node linkType: hard @@ -335,13 +342,13 @@ __metadata: linkType: hard "@babel/highlight@npm:^7.22.13": - version: 7.22.13 - resolution: "@babel/highlight@npm:7.22.13" + version: 7.22.20 + resolution: "@babel/highlight@npm:7.22.20" dependencies: - "@babel/helper-validator-identifier": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 chalk: ^2.4.2 js-tokens: ^4.0.0 - checksum: 7266d2bff8aa8fc78eb65b6e92a8211e12897a731126a282d2f9bb50d8fcaa4c1b02af2284f990ac7e3ab8d892d448a2cab8f5ed0ea8a90bce2c025b11ebe802 + checksum: 84bd034dca309a5e680083cd827a766780ca63cef37308404f17653d32366ea76262bd2364b2d38776232f2d01b649f26721417d507e8b4b6da3e4e739f6d134 languageName: node linkType: hard @@ -485,7 +492,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-class-properties@npm:^7.12.13": +"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": version: 7.12.13 resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" dependencies: @@ -562,7 +569,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-meta@npm:^7.10.4": +"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" dependencies: @@ -584,7 +591,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.22.5": +"@babel/plugin-syntax-jsx@npm:^7.22.5, @babel/plugin-syntax-jsx@npm:^7.7.2": version: 7.22.5 resolution: "@babel/plugin-syntax-jsx@npm:7.22.5" dependencies: @@ -595,7 +602,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" dependencies: @@ -617,7 +624,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4, @babel/plugin-syntax-numeric-separator@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" dependencies: @@ -672,7 +679,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-top-level-await@npm:^7.14.5": +"@babel/plugin-syntax-top-level-await@npm:^7.14.5, @babel/plugin-syntax-top-level-await@npm:^7.8.3": version: 7.14.5 resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" dependencies: @@ -683,7 +690,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.22.5": +"@babel/plugin-syntax-typescript@npm:^7.22.5, @babel/plugin-syntax-typescript@npm:^7.7.2": version: 7.22.5 resolution: "@babel/plugin-syntax-typescript@npm:7.22.5" dependencies: @@ -1378,10 +1385,10 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.22.9": - version: 7.22.15 - resolution: "@babel/preset-env@npm:7.22.15" + version: 7.22.20 + resolution: "@babel/preset-env@npm:7.22.20" dependencies: - "@babel/compat-data": ^7.22.9 + "@babel/compat-data": ^7.22.20 "@babel/helper-compilation-targets": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-validator-option": ^7.22.15 @@ -1455,7 +1462,7 @@ __metadata: "@babel/plugin-transform-unicode-regex": ^7.22.5 "@babel/plugin-transform-unicode-sets-regex": ^7.22.5 "@babel/preset-modules": 0.1.6-no-external-plugins - "@babel/types": ^7.22.15 + "@babel/types": ^7.22.19 babel-plugin-polyfill-corejs2: ^0.4.5 babel-plugin-polyfill-corejs3: ^0.8.3 babel-plugin-polyfill-regenerator: ^0.5.2 @@ -1463,7 +1470,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c3cf0223cab006cbf0c563a49a5076caa0b62e3b61b4f10ba857347fcd4f85dbb662a78e6f289e4f29f72c36974696737ae86c23da114617f5b00ab2c1c66126 + checksum: 99357a5cb30f53bacdc0d1cd6dff0f052ea6c2d1ba874d969bba69897ef716e87283e84a59dc52fb49aa31fd1b6f55ed756c64c04f5678380700239f6030b881 languageName: node linkType: hard @@ -1546,7 +1553,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": +"@babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": version: 7.22.15 resolution: "@babel/runtime@npm:7.22.15" dependencies: @@ -1555,7 +1562,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.20.7, @babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5": +"@babel/template@npm:^7.20.7, @babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3": version: 7.22.15 resolution: "@babel/template@npm:7.22.15" dependencies: @@ -1566,32 +1573,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.22.15, @babel/traverse@npm:^7.22.17, @babel/traverse@npm:^7.22.8": - version: 7.22.17 - resolution: "@babel/traverse@npm:7.22.17" +"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.22.15, @babel/traverse@npm:^7.22.20, @babel/traverse@npm:^7.22.8": + version: 7.22.20 + resolution: "@babel/traverse@npm:7.22.20" dependencies: "@babel/code-frame": ^7.22.13 "@babel/generator": ^7.22.15 - "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 "@babel/helper-function-name": ^7.22.5 "@babel/helper-hoist-variables": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 "@babel/parser": ^7.22.16 - "@babel/types": ^7.22.17 + "@babel/types": ^7.22.19 debug: ^4.1.0 globals: ^11.1.0 - checksum: 1153ca166a0a9b3fddf67f7f7c8c5b4f88aa2c2c00261ff2fc8424a63bc93250ed3fd08b04bd526ad19e797aeb6f22161120646a570cbfe5ff2a5d2f5d28af01 + checksum: 97da9afa7f8f505ce52c36ac2531129bc4a0e250880aaf9b467dc044f30a5bce2b756c1af4d961958bc225659546e811a7d536ab3d920fd60921087989b841b9 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.5, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.17, @babel/types@npm:^7.22.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.22.17 - resolution: "@babel/types@npm:7.22.17" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.5, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.22.19 + resolution: "@babel/types@npm:7.22.19" dependencies: "@babel/helper-string-parser": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.15 + "@babel/helper-validator-identifier": ^7.22.19 to-fast-properties: ^2.0.0 - checksum: 7382220f6eb2548f2c867a98916c3aa8a6063498d5372e5d21d8d184ba354033defb72aeba5858c1b2b42177058b896a34a7dcbae5eccd47fb0104721efa909d + checksum: 2d69740e69b55ba36ece0c17d5afb7b7213b34297157df39ef9ba24965aff677c56f014413052ecc5b2fbbf26910c63e5bb24a969df84d7a17153750cf75915e languageName: node linkType: hard @@ -2112,9 +2119,9 @@ __metadata: linkType: hard "@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.8.0 - resolution: "@eslint-community/regexpp@npm:4.8.0" - checksum: 601e6d033d556e98e8c929905bef335f20d7389762812df4d0f709d9b4d2631610dda975fb272e23b5b68e24a163b3851b114c8080a0a19fb4c141a1eff6305b + version: 4.8.1 + resolution: "@eslint-community/regexpp@npm:4.8.1" + checksum: 82d62c845ef42b810f268cfdc84d803a2da01735fb52e902fd34bdc09f92464a094fd8e4802839874b000b2f73f67c972859e813ba705233515d3e954f234bf2 languageName: node linkType: hard @@ -2149,22 +2156,22 @@ __metadata: languageName: node linkType: hard -"@floating-ui/core@npm:^1.4.1": - version: 1.4.1 - resolution: "@floating-ui/core@npm:1.4.1" +"@floating-ui/core@npm:^1.4.2": + version: 1.5.0 + resolution: "@floating-ui/core@npm:1.5.0" dependencies: - "@floating-ui/utils": ^0.1.1 - checksum: be4ab864fe17eeba5e205bd554c264b9a4895a57c573661bbf638357fa3108677fed7ba3269ec15b4da90e29274c9b626d5a15414e8d1fe691e210d02a03695c + "@floating-ui/utils": ^0.1.3 + checksum: 54b4fe26b3c228746ac5589f97303abf158b80aa5f8b99027259decd68d1c2030c4c637648ebd33dfe78a4212699453bc2bd7537fd5a594d3bd3e63d362f666f languageName: node linkType: hard "@floating-ui/dom@npm:^1.0.0, @floating-ui/dom@npm:^1.0.1, @floating-ui/dom@npm:^1.5.1": - version: 1.5.2 - resolution: "@floating-ui/dom@npm:1.5.2" + version: 1.5.3 + resolution: "@floating-ui/dom@npm:1.5.3" dependencies: - "@floating-ui/core": ^1.4.1 - "@floating-ui/utils": ^0.1.1 - checksum: 3c71eed50bb22cec8f1f31750ad3d42b3b7b4b29dc6e4351100ff05a62445a5404abb71c733320f8376a8c5e78852e1cfba1b81e22bfc4ca0728f50ca8998dc5 + "@floating-ui/core": ^1.4.2 + "@floating-ui/utils": ^0.1.3 + checksum: 00053742064aac70957f0bd5c1542caafb3bfe9716588bfe1d409fef72a67ed5e60450d08eb492a77f78c22ed1ce4f7955873cc72bf9f9caf2b0f43ae3561c21 languageName: node linkType: hard @@ -2180,10 +2187,10 @@ __metadata: languageName: node linkType: hard -"@floating-ui/utils@npm:^0.1.1": - version: 0.1.1 - resolution: "@floating-ui/utils@npm:0.1.1" - checksum: 548acdda7902f45b0afbe34e2e7f4cbff0696b95bad8c039f80936519de24ef2ec20e79902825b7815294b37f51a7c52ee86288b0688869a57cc229a164d86b4 +"@floating-ui/utils@npm:^0.1.3": + version: 0.1.3 + resolution: "@floating-ui/utils@npm:0.1.3" + checksum: bc426ad84647e71a845ee6c7e44996ee91620d3d1df058fecc4d4041ec588dc6bc767106167277ee46e3a919e4e0722b9f67a7b1363efca62f8c4f7cbaca0bb1 languageName: node linkType: hard @@ -2246,6 +2253,155 @@ __metadata: languageName: node linkType: hard +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + slash: ^3.0.0 + checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6 + languageName: node + linkType: hard + +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/reporters": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + ci-info: ^3.2.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-changed-files: ^29.7.0 + jest-config: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-resolve-dependencies: ^29.7.0 + jest-runner: ^29.7.0 + jest-runtime: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + jest-watcher: ^29.7.0 + micromatch: ^4.0.4 + pretty-format: ^29.7.0 + slash: ^3.0.0 + strip-ansi: ^6.0.0 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: af759c9781cfc914553320446ce4e47775ae42779e73621c438feb1e4231a5d4862f84b1d8565926f2d1aab29b3ec3dcfdc84db28608bdf5f29867124ebcfc0d + languageName: node + linkType: hard + +"@jest/environment@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/environment@npm:29.7.0" + dependencies: + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-mock: ^29.7.0 + checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934 + languageName: node + linkType: hard + +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" + dependencies: + jest-get-type: ^29.6.3 + checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed + languageName: node + linkType: hard + +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" + dependencies: + expect: ^29.7.0 + jest-snapshot: ^29.7.0 + checksum: a01cb85fd9401bab3370618f4b9013b90c93536562222d920e702a0b575d239d74cecfe98010aaec7ad464f67cf534a353d92d181646a4b792acaa7e912ae55e + languageName: node + linkType: hard + +"@jest/fake-timers@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/fake-timers@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@sinonjs/fake-timers": ^10.0.2 + "@types/node": "*" + jest-message-util: ^29.7.0 + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: caf2bbd11f71c9241b458d1b5a66cbe95debc5a15d96442444b5d5c7ba774f523c76627c6931cca5e10e76f0d08761f6f1f01a608898f4751a0eee54fc3d8d00 + languageName: node + linkType: hard + +"@jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/expect": ^29.7.0 + "@jest/types": ^29.6.3 + jest-mock: ^29.7.0 + checksum: 97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 + languageName: node + linkType: hard + +"@jest/reporters@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/reporters@npm:29.7.0" + dependencies: + "@bcoe/v8-coverage": ^0.2.3 + "@jest/console": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@jridgewell/trace-mapping": ^0.3.18 + "@types/node": "*" + chalk: ^4.0.0 + collect-v8-coverage: ^1.0.0 + exit: ^0.1.2 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + istanbul-lib-coverage: ^3.0.0 + istanbul-lib-instrument: ^6.0.0 + istanbul-lib-report: ^3.0.0 + istanbul-lib-source-maps: ^4.0.0 + istanbul-reports: ^3.1.3 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 + slash: ^3.0.0 + string-length: ^4.0.1 + strip-ansi: ^6.0.0 + v8-to-istanbul: ^9.0.1 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 7eadabd62cc344f629024b8a268ecc8367dba756152b761bdcb7b7e570a3864fc51b2a9810cd310d85e0a0173ef002ba4528d5ea0329fbf66ee2a3ada9c40455 + languageName: node + linkType: hard + "@jest/schemas@npm:^29.6.3": version: 29.6.3 resolution: "@jest/schemas@npm:29.6.3" @@ -2255,9 +2411,44 @@ __metadata: languageName: node linkType: hard -"@jest/transform@npm:^29.3.1": - version: 29.6.4 - resolution: "@jest/transform@npm:29.6.4" +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" + dependencies: + "@jridgewell/trace-mapping": ^0.3.18 + callsites: ^3.0.0 + graceful-fs: ^4.2.9 + checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb + languageName: node + linkType: hard + +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + collect-v8-coverage: ^1.0.0 + checksum: 67b6317d526e335212e5da0e768e3b8ab8a53df110361b80761353ad23b6aea4432b7c5665bdeb87658ea373b90fb1afe02ed3611ef6c858c7fba377505057fa + languageName: node + linkType: hard + +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" + dependencies: + "@jest/test-result": ^29.7.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + slash: ^3.0.0 + checksum: 73f43599017946be85c0b6357993b038f875b796e2f0950487a82f4ebcb115fa12131932dd9904026b4ad8be131fe6e28bd8d0aa93b1563705185f9804bff8bd + languageName: node + linkType: hard + +"@jest/transform@npm:^29.3.1, @jest/transform@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" dependencies: "@babel/core": ^7.11.6 "@jest/types": ^29.6.3 @@ -2267,14 +2458,14 @@ __metadata: convert-source-map: ^2.0.0 fast-json-stable-stringify: ^2.1.0 graceful-fs: ^4.2.9 - jest-haste-map: ^29.6.4 + jest-haste-map: ^29.7.0 jest-regex-util: ^29.6.3 - jest-util: ^29.6.3 + jest-util: ^29.7.0 micromatch: ^4.0.4 pirates: ^4.0.4 slash: ^3.0.0 write-file-atomic: ^4.0.2 - checksum: 0341a200a0bb926fc67ab9aede91c7b4009458206495e92057e72a115c55da5fed117457e68c6ea821e24c58b55da75c6a7b0f272ed63c2693db583d689a3383 + checksum: 0f8ac9f413903b3cb6d240102db848f2a354f63971ab885833799a9964999dd51c388162106a807f810071f864302cdd8e3f0c241c29ce02d85a36f18f3f40ab languageName: node linkType: hard @@ -3137,9 +3328,9 @@ __metadata: linkType: hard "@rushstack/eslint-patch@npm:^1.1.3": - version: 1.3.3 - resolution: "@rushstack/eslint-patch@npm:1.3.3" - checksum: fd8a19ec5842634da8e4c2c479a4d13ecbefa4f212e42c7f9c39e8706f9eeef7a50db8d6ea939884ac0ff36bb21930c9642068cf68e8309ad491c54f2fc30c01 + version: 1.4.0 + resolution: "@rushstack/eslint-patch@npm:1.4.0" + checksum: 29b216288deda3dee69dfb49adb1d809217d67331775a854de18771905268a65c11be5325313d47fb1c62ea0b477733e17310bc9708ccb7f3fb6f0a3816b82d9 languageName: node linkType: hard @@ -3150,6 +3341,24 @@ __metadata: languageName: node linkType: hard +"@sinonjs/commons@npm:^3.0.0": + version: 3.0.0 + resolution: "@sinonjs/commons@npm:3.0.0" + dependencies: + type-detect: 4.0.8 + checksum: b4b5b73d4df4560fb8c0c7b38c7ad4aeabedd362f3373859d804c988c725889cde33550e4bcc7cd316a30f5152a2d1d43db71b6d0c38f5feef71fd8d016763f8 + languageName: node + linkType: hard + +"@sinonjs/fake-timers@npm:^10.0.2": + version: 10.3.0 + resolution: "@sinonjs/fake-timers@npm:10.3.0" + dependencies: + "@sinonjs/commons": ^3.0.0 + checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148 + languageName: node + linkType: hard + "@storybook/addon-actions@npm:7.2.1": version: 7.2.1 resolution: "@storybook/addon-actions@npm:7.2.1" @@ -3357,6 +3566,17 @@ __metadata: languageName: node linkType: hard +"@storybook/addon-mdx-gfm@npm:^7.4.4": + version: 7.4.4 + resolution: "@storybook/addon-mdx-gfm@npm:7.4.4" + dependencies: + "@storybook/node-logger": 7.4.4 + remark-gfm: ^3.0.1 + ts-dedent: ^2.0.0 + checksum: 7bfc0aff632784b2d1df06aaa49c831463393eb3d1c06805b59a111bc57cff86314892dfe4d7dc22e01635b92bbcb806600307d719c8296c2ca4a65c52ee268a + languageName: node + linkType: hard + "@storybook/addon-measure@npm:7.2.1": version: 7.2.1 resolution: "@storybook/addon-measure@npm:7.2.1" @@ -3381,7 +3601,7 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-onboarding@npm:1.0.8": +"@storybook/addon-onboarding@npm:^1.0.8": version: 1.0.8 resolution: "@storybook/addon-onboarding@npm:1.0.8" dependencies: @@ -3524,11 +3744,11 @@ __metadata: linkType: hard "@storybook/api@npm:^7.0.12": - version: 7.4.0 - resolution: "@storybook/api@npm:7.4.0" + version: 7.4.2 + resolution: "@storybook/api@npm:7.4.2" dependencies: - "@storybook/client-logger": 7.4.0 - "@storybook/manager-api": 7.4.0 + "@storybook/client-logger": 7.4.2 + "@storybook/manager-api": 7.4.2 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3537,7 +3757,7 @@ __metadata: optional: true react-dom: optional: true - checksum: da4a5474025c54220eda382575d7a93a1ba9991975507d6d1bbfad6463e22a5c0aaf077c87fbbbf7b5f10e603d5264ba25fe6efd9c5ad8adc9490b3450152ac3 + checksum: bd0b42e61d7c86e5cfe13a7adfabd2e94a0879add0584b11f5ad04089ecbbc9467d0e3bcf41a1fddbc2161468909bb0a5ddd20d36ec9c83b87ff1d8d54bde0db languageName: node linkType: hard @@ -3575,6 +3795,40 @@ __metadata: languageName: node linkType: hard +"@storybook/blocks@npm:^7.4.4": + version: 7.4.4 + resolution: "@storybook/blocks@npm:7.4.4" + dependencies: + "@storybook/channels": 7.4.4 + "@storybook/client-logger": 7.4.4 + "@storybook/components": 7.4.4 + "@storybook/core-events": 7.4.4 + "@storybook/csf": ^0.1.0 + "@storybook/docs-tools": 7.4.4 + "@storybook/global": ^5.0.0 + "@storybook/manager-api": 7.4.4 + "@storybook/preview-api": 7.4.4 + "@storybook/theming": 7.4.4 + "@storybook/types": 7.4.4 + "@types/lodash": ^4.14.167 + color-convert: ^2.0.1 + dequal: ^2.0.2 + lodash: ^4.17.21 + markdown-to-jsx: ^7.1.8 + memoizerific: ^1.11.3 + polished: ^4.2.2 + react-colorful: ^5.1.2 + telejson: ^7.2.0 + tocbot: ^4.20.1 + ts-dedent: ^2.0.0 + util-deprecate: ^1.0.2 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: f331530011c5dab4ed9c1c7eb112469cef4455fd66e21b7146f772a1e7c350cbb61cec1aeaad42784c7a33c6c98cd1b46e3ebc6e42bd222ee25d6121aa897097 + languageName: node + linkType: hard + "@storybook/builder-manager@npm:7.2.1": version: 7.2.1 resolution: "@storybook/builder-manager@npm:7.2.1" @@ -3671,17 +3925,31 @@ __metadata: languageName: node linkType: hard -"@storybook/channels@npm:7.4.0": - version: 7.4.0 - resolution: "@storybook/channels@npm:7.4.0" +"@storybook/channels@npm:7.4.2": + version: 7.4.2 + resolution: "@storybook/channels@npm:7.4.2" + dependencies: + "@storybook/client-logger": 7.4.2 + "@storybook/core-events": 7.4.2 + "@storybook/global": ^5.0.0 + qs: ^6.10.0 + telejson: ^7.2.0 + tiny-invariant: ^1.3.1 + checksum: 91b3cd88332a5fed1ee07217ad1fc8eda30ca3c9736f95b28d4c90c1a2520884837d35d173f1cfb901c2211e4ad663ff6bcef44fd338670bd9e883f2d86b9ed4 + languageName: node + linkType: hard + +"@storybook/channels@npm:7.4.4": + version: 7.4.4 + resolution: "@storybook/channels@npm:7.4.4" dependencies: - "@storybook/client-logger": 7.4.0 - "@storybook/core-events": 7.4.0 + "@storybook/client-logger": 7.4.4 + "@storybook/core-events": 7.4.4 "@storybook/global": ^5.0.0 qs: ^6.10.0 telejson: ^7.2.0 tiny-invariant: ^1.3.1 - checksum: b2391e1f126e4370daacaf558c5b04c654cfa87545bcd12f8cfb1253e41015c430027ee19368cc69d66d645d74bea3b118cb35a7520bc0b385aee1632a80c841 + checksum: d2c5eee2e4573240d34190823016e28c5caee096ec5e10a212a728e97304e6c592f5645f530e66c58c30651d38c1af1204792a2818eac8628626e8b38601c6c3 languageName: node linkType: hard @@ -3755,12 +4023,21 @@ __metadata: languageName: node linkType: hard -"@storybook/client-logger@npm:7.4.0": - version: 7.4.0 - resolution: "@storybook/client-logger@npm:7.4.0" +"@storybook/client-logger@npm:7.4.2": + version: 7.4.2 + resolution: "@storybook/client-logger@npm:7.4.2" + dependencies: + "@storybook/global": ^5.0.0 + checksum: ba6b9e295e4396d2de89bc7b57d54c8e7d955249ff730e50975142a91345635d86cf9c86633193edb1fa9d0fc6dd6d1fcc1d24c18e536d93e9c19df48f4031ce + languageName: node + linkType: hard + +"@storybook/client-logger@npm:7.4.4": + version: 7.4.4 + resolution: "@storybook/client-logger@npm:7.4.4" dependencies: "@storybook/global": ^5.0.0 - checksum: 15fff611507c9c7e4525bd29c0b7aeb01d52f94ecaba592a60613d4df488260dd12f1198a01f7c054fb2c47b63984b5e8c94ab13aab1db9366d368f0dd2546ef + checksum: 6d2230fa377b486c31063d6a88e9062ab12160d3c9d1284ef1059f23c9a47e2cb7a163a04fd93fca29d251963facfcc78d48d8fb9ece805514d9006a7d5fdea7 languageName: node linkType: hard @@ -3807,24 +4084,45 @@ __metadata: languageName: node linkType: hard +"@storybook/components@npm:7.4.4": + version: 7.4.4 + resolution: "@storybook/components@npm:7.4.4" + dependencies: + "@radix-ui/react-select": ^1.2.2 + "@radix-ui/react-toolbar": ^1.0.4 + "@storybook/client-logger": 7.4.4 + "@storybook/csf": ^0.1.0 + "@storybook/global": ^5.0.0 + "@storybook/theming": 7.4.4 + "@storybook/types": 7.4.4 + memoizerific: ^1.11.3 + use-resize-observer: ^9.1.0 + util-deprecate: ^1.0.2 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: ff6856b2f2e9209af95662524bb5600f10260e7ca13903eeb1618598adea9b6bd6b2a1a6563f39f3952a10dd3f88737c16bd4cfab9893144e1bac41605960c2b + languageName: node + linkType: hard + "@storybook/components@npm:^7.0.12": - version: 7.4.0 - resolution: "@storybook/components@npm:7.4.0" + version: 7.4.2 + resolution: "@storybook/components@npm:7.4.2" dependencies: "@radix-ui/react-select": ^1.2.2 "@radix-ui/react-toolbar": ^1.0.4 - "@storybook/client-logger": 7.4.0 + "@storybook/client-logger": 7.4.2 "@storybook/csf": ^0.1.0 "@storybook/global": ^5.0.0 - "@storybook/theming": 7.4.0 - "@storybook/types": 7.4.0 + "@storybook/theming": 7.4.2 + "@storybook/types": 7.4.2 memoizerific: ^1.11.3 use-resize-observer: ^9.1.0 util-deprecate: ^1.0.2 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 361851d9bc045fc29922bd3374df44d0a39a9f751fbf1ac4a5d2025becd4e6a3a42ff775d9daceacb5f8e293f9a80281e6d0f3f7abf5c3f4f8bfa0e2d41d65dd + checksum: eb7ba86f2e4142f8b1df3cc595db76c29c7813a0ae427c0b0b0555475feaa5a4b0387960a1446e105291ef813d56511e3f8e22197abe5d9526b0202d16e8b4c4 languageName: node linkType: hard @@ -3868,12 +4166,44 @@ __metadata: languageName: node linkType: hard -"@storybook/core-common@npm:7.4.0, @storybook/core-common@npm:^7.0.12": - version: 7.4.0 - resolution: "@storybook/core-common@npm:7.4.0" +"@storybook/core-common@npm:7.4.2, @storybook/core-common@npm:^7.0.12": + version: 7.4.2 + resolution: "@storybook/core-common@npm:7.4.2" + dependencies: + "@storybook/core-events": 7.4.2 + "@storybook/node-logger": 7.4.2 + "@storybook/types": 7.4.2 + "@types/find-cache-dir": ^3.2.1 + "@types/node": ^16.0.0 + "@types/node-fetch": ^2.6.4 + "@types/pretty-hrtime": ^1.0.0 + chalk: ^4.1.0 + esbuild: ^0.18.0 + esbuild-register: ^3.4.0 + file-system-cache: 2.3.0 + find-cache-dir: ^3.0.0 + find-up: ^5.0.0 + fs-extra: ^11.1.0 + glob: ^10.0.0 + handlebars: ^4.7.7 + lazy-universal-dotenv: ^4.0.0 + node-fetch: ^2.0.0 + picomatch: ^2.3.0 + pkg-dir: ^5.0.0 + pretty-hrtime: ^1.0.3 + resolve-from: ^5.0.0 + ts-dedent: ^2.0.0 + checksum: 8e3a9ba5994178de15b9fa2a4b463d039a5ffeab93b3889f3b5c1e7d93ca7edc02546c9033e5253aa0665384067783403f432ebe7051c70727bb69aa06977ccb + languageName: node + linkType: hard + +"@storybook/core-common@npm:7.4.4": + version: 7.4.4 + resolution: "@storybook/core-common@npm:7.4.4" dependencies: - "@storybook/node-logger": 7.4.0 - "@storybook/types": 7.4.0 + "@storybook/core-events": 7.4.4 + "@storybook/node-logger": 7.4.4 + "@storybook/types": 7.4.4 "@types/find-cache-dir": ^3.2.1 "@types/node": ^16.0.0 "@types/node-fetch": ^2.6.4 @@ -3894,7 +4224,7 @@ __metadata: pretty-hrtime: ^1.0.3 resolve-from: ^5.0.0 ts-dedent: ^2.0.0 - checksum: f7e89a84825cfecb5246cc1003f34808491b9e77cb939adf1ff30afca26935a82cf0f6104661ad4b8e199c3a71829909494a919b90b26c26c6632f7207b343b4 + checksum: 5f18a171784e959003721ddbadd5913dbb4c98a9c7e131e3ac1819b2eefbd5d049180f9d0459adae0a4585ee9e39b92b877b840287d5cc0cf26c11c0922b5cfd languageName: node linkType: hard @@ -3905,12 +4235,21 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:7.4.0, @storybook/core-events@npm:^7.0.12": - version: 7.4.0 - resolution: "@storybook/core-events@npm:7.4.0" +"@storybook/core-events@npm:7.4.2, @storybook/core-events@npm:^7.0.12": + version: 7.4.2 + resolution: "@storybook/core-events@npm:7.4.2" + dependencies: + ts-dedent: ^2.0.0 + checksum: ec4bd58ffd32d7bcff7e60397379bd16d29676687fd5d753ebacba29b8d33a2177650ed2082b312af76f2e9c95b134ff6bd30d5be24fb916bf28f60df0e89945 + languageName: node + linkType: hard + +"@storybook/core-events@npm:7.4.4": + version: 7.4.4 + resolution: "@storybook/core-events@npm:7.4.4" dependencies: ts-dedent: ^2.0.0 - checksum: 4677fd5ba35817e7c5c71af938417a21adc1ae96db2784734c44006dcc35c4e468a4842366636c3514d1f4cefd3f05159d84556ec0ebcbf0a5d8df47870f316f + checksum: d6d016b462ffcfcbaa6375292dd82cf68eba4acf7a03a8c296a9b797b9985e10a7a1fe60145662609ad1a59e3a5dd1c4ddb2b42f490519bca208a0ea67e1c44b languageName: node linkType: hard @@ -4005,20 +4344,20 @@ __metadata: languageName: node linkType: hard -"@storybook/csf-tools@npm:7.4.0": - version: 7.4.0 - resolution: "@storybook/csf-tools@npm:7.4.0" +"@storybook/csf-tools@npm:7.4.2": + version: 7.4.2 + resolution: "@storybook/csf-tools@npm:7.4.2" dependencies: "@babel/generator": ^7.22.9 "@babel/parser": ^7.22.7 "@babel/traverse": ^7.22.8 "@babel/types": ^7.22.5 "@storybook/csf": ^0.1.0 - "@storybook/types": 7.4.0 + "@storybook/types": 7.4.2 fs-extra: ^11.1.0 recast: ^0.23.1 ts-dedent: ^2.0.0 - checksum: 30520c970c335d7f1147c10e24a66a034d06852b3e12f1ba763a5e2ec97806068f5aebbae7dddfe8a9099c85714171ca798952fb2b3d99501d4f2295b11b3c42 + checksum: c1caaeca254c330bf56377f8ecf0fce03f94eec40c449448298a3b175c0e4fd5606c97dcc9366da6d31d9edf2f6df3b2814697846cac5ac9c86e7152e5e4a808 languageName: node linkType: hard @@ -4061,6 +4400,20 @@ __metadata: languageName: node linkType: hard +"@storybook/docs-tools@npm:7.4.4": + version: 7.4.4 + resolution: "@storybook/docs-tools@npm:7.4.4" + dependencies: + "@storybook/core-common": 7.4.4 + "@storybook/preview-api": 7.4.4 + "@storybook/types": 7.4.4 + "@types/doctrine": ^0.0.3 + doctrine: ^3.0.0 + lodash: ^4.17.21 + checksum: 4347ab70c521468d267689549cda4a39e352020cfdc47784751f878d66977d948561c407be8450a57c897afce555e3f080743c9b5681c45f529a1f86c63a31b2 + languageName: node + linkType: hard + "@storybook/global@npm:^5.0.0": version: 5.0.0 resolution: "@storybook/global@npm:5.0.0" @@ -4117,18 +4470,44 @@ __metadata: languageName: node linkType: hard -"@storybook/manager-api@npm:7.4.0, @storybook/manager-api@npm:^7.0.12": - version: 7.4.0 - resolution: "@storybook/manager-api@npm:7.4.0" +"@storybook/manager-api@npm:7.4.2, @storybook/manager-api@npm:^7.0.12": + version: 7.4.2 + resolution: "@storybook/manager-api@npm:7.4.2" + dependencies: + "@storybook/channels": 7.4.2 + "@storybook/client-logger": 7.4.2 + "@storybook/core-events": 7.4.2 + "@storybook/csf": ^0.1.0 + "@storybook/global": ^5.0.0 + "@storybook/router": 7.4.2 + "@storybook/theming": 7.4.2 + "@storybook/types": 7.4.2 + dequal: ^2.0.2 + lodash: ^4.17.21 + memoizerific: ^1.11.3 + semver: ^7.3.7 + store2: ^2.14.2 + telejson: ^7.2.0 + ts-dedent: ^2.0.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 7624574e1da86f6205abbf15c7549caadca7f3b4642ea5bf69fff9f21849c6e64ea22a59143a936098b20e338753f1641a50a74721b71b8a568297dfc17a1c6b + languageName: node + linkType: hard + +"@storybook/manager-api@npm:7.4.4": + version: 7.4.4 + resolution: "@storybook/manager-api@npm:7.4.4" dependencies: - "@storybook/channels": 7.4.0 - "@storybook/client-logger": 7.4.0 - "@storybook/core-events": 7.4.0 + "@storybook/channels": 7.4.4 + "@storybook/client-logger": 7.4.4 + "@storybook/core-events": 7.4.4 "@storybook/csf": ^0.1.0 "@storybook/global": ^5.0.0 - "@storybook/router": 7.4.0 - "@storybook/theming": 7.4.0 - "@storybook/types": 7.4.0 + "@storybook/router": 7.4.4 + "@storybook/theming": 7.4.4 + "@storybook/types": 7.4.4 dequal: ^2.0.2 lodash: ^4.17.21 memoizerific: ^1.11.3 @@ -4139,7 +4518,7 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 62e6505052016c40d8ede35ef3b4064d8045ceddeb270663d3477422fd6231bfa0dc9483b7f88ea9a00930991c76a16a70996b614abc9345bc2fcbf6855960ca + checksum: aaa86e58d9dbd0a9f49fde091434d15e904aa416f423d41a9b4549cb3a8fdbb485eabae748bec4a676e6a6d5558a13779b3c2d413da687b1d4039ed8191b5555 languageName: node linkType: hard @@ -4225,10 +4604,17 @@ __metadata: languageName: node linkType: hard -"@storybook/node-logger@npm:7.4.0, @storybook/node-logger@npm:^7.0.12": - version: 7.4.0 - resolution: "@storybook/node-logger@npm:7.4.0" - checksum: 665dcb5327c084a46392a90ae0f5a894ac3b2e8a9f382e5021b39ff72f12faa6682c0f9c3f1b49e114d9a7fc42e1d41d447ddddf04754dad6302261dac0adb75 +"@storybook/node-logger@npm:7.4.2, @storybook/node-logger@npm:^7.0.12": + version: 7.4.2 + resolution: "@storybook/node-logger@npm:7.4.2" + checksum: 48da54f0f5f95a70a74e7e7d50b1aa85d600387e33e672175910e2bcd55868ec10af28579a41acc0ec331d52fb90695b4eb675918b022a166b43bbcea1847964 + languageName: node + linkType: hard + +"@storybook/node-logger@npm:7.4.4": + version: 7.4.4 + resolution: "@storybook/node-logger@npm:7.4.4" + checksum: 2d6e25042c1f9d4012cb79eb8ed82149b43c8211bf585c66ba331b97fa9cdb7b26b218068ee492c5f5fccad2fcb7b9c036b83e06496235f10a68ae90188a629b languageName: node linkType: hard @@ -4294,16 +4680,38 @@ __metadata: languageName: node linkType: hard +"@storybook/preview-api@npm:7.4.4": + version: 7.4.4 + resolution: "@storybook/preview-api@npm:7.4.4" + dependencies: + "@storybook/channels": 7.4.4 + "@storybook/client-logger": 7.4.4 + "@storybook/core-events": 7.4.4 + "@storybook/csf": ^0.1.0 + "@storybook/global": ^5.0.0 + "@storybook/types": 7.4.4 + "@types/qs": ^6.9.5 + dequal: ^2.0.2 + lodash: ^4.17.21 + memoizerific: ^1.11.3 + qs: ^6.10.0 + synchronous-promise: ^2.0.15 + ts-dedent: ^2.0.0 + util-deprecate: ^1.0.2 + checksum: da4871513b2e39573dcf8bd773f980dcb0e038d4d94ef2eae7b1d54556ae63fe566eaec5a74aa4154c943facd47c3fc976de6ed80a3ff143c01ced7c18dea3e2 + languageName: node + linkType: hard + "@storybook/preview-api@npm:^7.0.12": - version: 7.4.0 - resolution: "@storybook/preview-api@npm:7.4.0" + version: 7.4.2 + resolution: "@storybook/preview-api@npm:7.4.2" dependencies: - "@storybook/channels": 7.4.0 - "@storybook/client-logger": 7.4.0 - "@storybook/core-events": 7.4.0 + "@storybook/channels": 7.4.2 + "@storybook/client-logger": 7.4.2 + "@storybook/core-events": 7.4.2 "@storybook/csf": ^0.1.0 "@storybook/global": ^5.0.0 - "@storybook/types": 7.4.0 + "@storybook/types": 7.4.2 "@types/qs": ^6.9.5 dequal: ^2.0.2 lodash: ^4.17.21 @@ -4312,7 +4720,7 @@ __metadata: synchronous-promise: ^2.0.15 ts-dedent: ^2.0.0 util-deprecate: ^1.0.2 - checksum: cd00661be523a16678ae4b9c5f66c807e496462538dd01573b4998687e4c1da93ff45a93e500c4e9fbdef477c05f210897c08423600f48f40a93928d058686e8 + checksum: 02196ea3020bfd373e631a4bbcf98cd7a2a2deaa2f4d603b917846383e4207a4edfe3c048bcb85a35ef2f25f16a6fdc78dad3dd972fc604d80673179d3128c93 languageName: node linkType: hard @@ -4401,17 +4809,31 @@ __metadata: languageName: node linkType: hard -"@storybook/router@npm:7.4.0": - version: 7.4.0 - resolution: "@storybook/router@npm:7.4.0" +"@storybook/router@npm:7.4.2": + version: 7.4.2 + resolution: "@storybook/router@npm:7.4.2" + dependencies: + "@storybook/client-logger": 7.4.2 + memoizerific: ^1.11.3 + qs: ^6.10.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 6b38465116af7f6834afc03eb4c94a309d530df147b3174e9b098cd63630c19ada86194e0f0e7f53e4460c4afc0be8af15968acf41eb33b611e3da09637b12cb + languageName: node + linkType: hard + +"@storybook/router@npm:7.4.4": + version: 7.4.4 + resolution: "@storybook/router@npm:7.4.4" dependencies: - "@storybook/client-logger": 7.4.0 + "@storybook/client-logger": 7.4.4 memoizerific: ^1.11.3 qs: ^6.10.0 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 6e1eacd0dde4ec2ce5a4a9c51579fd54f6c605881ff44b7c72ca57e76f6376e9dc4f3fc958f9020a0475be6c8432f48917d712f7dcca0355d8a73eddd029ffaa + checksum: 1de784362325da43024fc18a879351499f57d8df8b07cbfd823439445b9375a8d00ad956d696015e0bea68e5f1b3e9869eca1266774dd081c8c603d2a4794bec languageName: node linkType: hard @@ -4442,18 +4864,18 @@ __metadata: linkType: hard "@storybook/telemetry@npm:^7.1.0-alpha.32": - version: 7.4.0 - resolution: "@storybook/telemetry@npm:7.4.0" + version: 7.4.2 + resolution: "@storybook/telemetry@npm:7.4.2" dependencies: - "@storybook/client-logger": 7.4.0 - "@storybook/core-common": 7.4.0 - "@storybook/csf-tools": 7.4.0 + "@storybook/client-logger": 7.4.2 + "@storybook/core-common": 7.4.2 + "@storybook/csf-tools": 7.4.2 chalk: ^4.1.0 detect-package-manager: ^2.0.1 fetch-retry: ^5.0.2 fs-extra: ^11.1.0 read-pkg-up: ^7.0.1 - checksum: 730d45af3d26287254a0cfc22cc3c8c39839b7c96b6ff49612ce6b6f61403f9137ce1303eeaf55e8c4777c984b5efc7f2775b1cc99bb714a46d6cdeddeb69eae + checksum: 7c746f0eaf404b81d4ae32bebf50bef5c2bca7150026a2ad01e76e97b9aedc57138d98d1aca8fb3bec0962adef01b645a6f0fae0fb74151809469ba4b81a87c0 languageName: node linkType: hard @@ -4483,130 +4905,156 @@ __metadata: languageName: node linkType: hard -"@storybook/theming@npm:7.4.0, @storybook/theming@npm:^7.0.12": - version: 7.4.0 - resolution: "@storybook/theming@npm:7.4.0" +"@storybook/theming@npm:7.4.2, @storybook/theming@npm:^7.0.12": + version: 7.4.2 + resolution: "@storybook/theming@npm:7.4.2" dependencies: "@emotion/use-insertion-effect-with-fallbacks": ^1.0.0 - "@storybook/client-logger": 7.4.0 + "@storybook/client-logger": 7.4.2 "@storybook/global": ^5.0.0 memoizerific: ^1.11.3 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: b36b13a0a66c95391e6efe25aac17922d80c028cb07b5303fd530cd4e8ed1c01ffb8d63de78d178ca9c800504454418a12c130c655e65b9f37b83a16982c992e + checksum: c51746594d73938ef8dacbde6d4be46fd53bbdd3dbd63558756f409580c89718b0f0c8dd486fb1ded00471bb8a2bb4c6392770495133b1fd1e0728265b69930b languageName: node linkType: hard -"@storybook/types@npm:7.2.1": - version: 7.2.1 - resolution: "@storybook/types@npm:7.2.1" +"@storybook/theming@npm:7.4.4": + version: 7.4.4 + resolution: "@storybook/theming@npm:7.4.4" dependencies: - "@storybook/channels": 7.2.1 - "@types/babel__core": ^7.0.0 - "@types/express": ^4.7.0 + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.0 + "@storybook/client-logger": 7.4.4 + "@storybook/global": ^5.0.0 + memoizerific: ^1.11.3 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 820bb26db4aa723e69c2c43caac6598dbc6ad95642dfc77a135f24367169188a31b475d1622171599e3c73780923055d03a8ab1d42ef173fd7c85cecfffc1aab + languageName: node + linkType: hard + +"@storybook/types@npm:7.2.1": + version: 7.2.1 + resolution: "@storybook/types@npm:7.2.1" + dependencies: + "@storybook/channels": 7.2.1 + "@types/babel__core": ^7.0.0 + "@types/express": ^4.7.0 file-system-cache: 2.3.0 checksum: 4ed8dd2897b413238bdebe4874af3f017660778be54582408018c2f8a54e1d6d292473324483ab1efd65dd283d46d8e96e1368b57dc53a4ad7a340c5764eed8b languageName: node linkType: hard -"@storybook/types@npm:7.4.0, @storybook/types@npm:^7.0.12": - version: 7.4.0 - resolution: "@storybook/types@npm:7.4.0" +"@storybook/types@npm:7.4.2, @storybook/types@npm:^7.0.12": + version: 7.4.2 + resolution: "@storybook/types@npm:7.4.2" dependencies: - "@storybook/channels": 7.4.0 + "@storybook/channels": 7.4.2 "@types/babel__core": ^7.0.0 "@types/express": ^4.7.0 - "@types/react": ^16.14.34 file-system-cache: 2.3.0 - checksum: f36b054bc3d4c2fb2259fd23f0198ecdb9e86e1d05f251306d9c7c6e201df677217e8f28d7102d8733e0ad2e96e227e0f9c321fb664da316a74c95668a192c15 + checksum: 634193fe4163f7412cab2d42b25140a90097233cf6e1ddd71db5f7a31d305a51acf07dfd58d2ad4a8fa37d5488929d977e3e16212a25564e8688f9fb5dd57bfe languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.83": - version: 1.3.83 - resolution: "@swc/core-darwin-arm64@npm:1.3.83" +"@storybook/types@npm:7.4.4": + version: 7.4.4 + resolution: "@storybook/types@npm:7.4.4" + dependencies: + "@storybook/channels": 7.4.4 + "@types/babel__core": ^7.0.0 + "@types/express": ^4.7.0 + file-system-cache: 2.3.0 + checksum: b7f606fcd6d455001fe1049d52d7cc8504a8c0c404ffa65fe78ef8f5261d72c2a99d81b1a04a06ab1b4c63bc01dedf28b00829d641940275114091182afa0ec0 + languageName: node + linkType: hard + +"@swc/core-darwin-arm64@npm:1.3.85": + version: 1.3.85 + resolution: "@swc/core-darwin-arm64@npm:1.3.85" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.83": - version: 1.3.83 - resolution: "@swc/core-darwin-x64@npm:1.3.83" +"@swc/core-darwin-x64@npm:1.3.85": + version: 1.3.85 + resolution: "@swc/core-darwin-x64@npm:1.3.85" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.83": - version: 1.3.83 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.83" +"@swc/core-linux-arm-gnueabihf@npm:1.3.85": + version: 1.3.85 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.85" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.83": - version: 1.3.83 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.83" +"@swc/core-linux-arm64-gnu@npm:1.3.85": + version: 1.3.85 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.85" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.83": - version: 1.3.83 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.83" +"@swc/core-linux-arm64-musl@npm:1.3.85": + version: 1.3.85 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.85" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.83": - version: 1.3.83 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.83" +"@swc/core-linux-x64-gnu@npm:1.3.85": + version: 1.3.85 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.85" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.83": - version: 1.3.83 - resolution: "@swc/core-linux-x64-musl@npm:1.3.83" +"@swc/core-linux-x64-musl@npm:1.3.85": + version: 1.3.85 + resolution: "@swc/core-linux-x64-musl@npm:1.3.85" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.83": - version: 1.3.83 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.83" +"@swc/core-win32-arm64-msvc@npm:1.3.85": + version: 1.3.85 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.85" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.83": - version: 1.3.83 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.83" +"@swc/core-win32-ia32-msvc@npm:1.3.85": + version: 1.3.85 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.85" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.83": - version: 1.3.83 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.83" +"@swc/core-win32-x64-msvc@npm:1.3.85": + version: 1.3.85 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.85" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.49": - version: 1.3.83 - resolution: "@swc/core@npm:1.3.83" - dependencies: - "@swc/core-darwin-arm64": 1.3.83 - "@swc/core-darwin-x64": 1.3.83 - "@swc/core-linux-arm-gnueabihf": 1.3.83 - "@swc/core-linux-arm64-gnu": 1.3.83 - "@swc/core-linux-arm64-musl": 1.3.83 - "@swc/core-linux-x64-gnu": 1.3.83 - "@swc/core-linux-x64-musl": 1.3.83 - "@swc/core-win32-arm64-msvc": 1.3.83 - "@swc/core-win32-ia32-msvc": 1.3.83 - "@swc/core-win32-x64-msvc": 1.3.83 + version: 1.3.85 + resolution: "@swc/core@npm:1.3.85" + dependencies: + "@swc/core-darwin-arm64": 1.3.85 + "@swc/core-darwin-x64": 1.3.85 + "@swc/core-linux-arm-gnueabihf": 1.3.85 + "@swc/core-linux-arm64-gnu": 1.3.85 + "@swc/core-linux-arm64-musl": 1.3.85 + "@swc/core-linux-x64-gnu": 1.3.85 + "@swc/core-linux-x64-musl": 1.3.85 + "@swc/core-win32-arm64-msvc": 1.3.85 + "@swc/core-win32-ia32-msvc": 1.3.85 + "@swc/core-win32-x64-msvc": 1.3.85 "@swc/types": ^0.1.4 peerDependencies: "@swc/helpers": ^0.5.0 @@ -4634,7 +5082,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 39849d78f16e0aab168d3563245a0995164c07b195626f124651af00c922d166fc714467f85eed1e111377d68078fc726dbb13002516f64fecb729437538911b + checksum: af9ec7d88fd9ad3dd876c8fea812b20ba734c2ed917c9f8281fd57c68ab57d5931ccb841f4467332b84c0cd522682737a770dfc8c3f9e0cc88cdce713971978c languageName: node linkType: hard @@ -4654,18 +5102,18 @@ __metadata: languageName: node linkType: hard -"@tanstack/query-core@npm:5.0.0-beta.23": - version: 5.0.0-beta.23 - resolution: "@tanstack/query-core@npm:5.0.0-beta.23" - checksum: c7053a828ae7755bc65a569d034f5c580786a8b9aecb91d56623c233546a544fd4c7063c5efb59db86f56fb9475322cde1c05ec4a5dac9a955d15ea8b4e811a3 +"@tanstack/query-core@npm:5.0.0-beta.29": + version: 5.0.0-beta.29 + resolution: "@tanstack/query-core@npm:5.0.0-beta.29" + checksum: 3e950591fc2c2b3dcdf872d8a0b21fda984b7899dcffdcfc86a64583b13cc7aab43cf0d17a8c91260da3c2dc16a2c49b41bb3753a7e8c2a55d525e6f79dbb21f languageName: node linkType: hard "@tanstack/react-query@npm:beta": - version: 5.0.0-beta.23 - resolution: "@tanstack/react-query@npm:5.0.0-beta.23" + version: 5.0.0-beta.29 + resolution: "@tanstack/react-query@npm:5.0.0-beta.29" dependencies: - "@tanstack/query-core": 5.0.0-beta.23 + "@tanstack/query-core": 5.0.0-beta.29 client-only: 0.0.1 peerDependencies: react: ^18.0.0 @@ -4676,7 +5124,7 @@ __metadata: optional: true react-native: optional: true - checksum: 688fc49ca337225523621deabf01e45a7565a3e9fd6ab596582fa9964a5690ac9c98eb47ab8c9e70e8680fe43d9ae4633921481870ba11ec178e2e42722f65e3 + checksum: 1a190b5ae35f70bae16cb01081480b234bdead2059c7f2cedf1334a2851dc0bad7cd5dd5bf11a7918b16526cc5dcdcb083973db139c97ea3b1643b002e2ad9e3 languageName: node linkType: hard @@ -4696,12 +5144,56 @@ __metadata: languageName: node linkType: hard +"@testing-library/jest-dom@npm:^6.1.3": + version: 6.1.3 + resolution: "@testing-library/jest-dom@npm:6.1.3" + dependencies: + "@adobe/css-tools": ^4.3.0 + "@babel/runtime": ^7.9.2 + aria-query: ^5.0.0 + chalk: ^3.0.0 + css.escape: ^1.5.1 + dom-accessibility-api: ^0.5.6 + lodash: ^4.17.15 + redent: ^3.0.0 + peerDependencies: + "@jest/globals": ">= 28" + "@types/jest": ">= 28" + jest: ">= 28" + vitest: ">= 0.32" + peerDependenciesMeta: + "@jest/globals": + optional: true + "@types/jest": + optional: true + jest: + optional: true + vitest: + optional: true + checksum: 5bd14ba31fd3d64cff8ca55cccd335bedadf1db1119643954ca8cd30af835defe6f3a21e7d7617d20205b07abba1b2e668be1b9d6743504800f17fdc4344db75 + languageName: node + linkType: hard + +"@testing-library/react@npm:^14.0.0": + version: 14.0.0 + resolution: "@testing-library/react@npm:14.0.0" + dependencies: + "@babel/runtime": ^7.12.5 + "@testing-library/dom": ^9.0.0 + "@types/react-dom": ^18.0.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 4a54c8f56cc4a39b50803205f84f06280bb76521d6d5d4b3b36651d760c7c7752ef142d857d52aaf4fad4848ed7a8be49afc793a5dda105955d2f8bef24901ac + languageName: node + linkType: hard + "@testing-library/user-event@npm:^14.0.0": - version: 14.4.3 - resolution: "@testing-library/user-event@npm:14.4.3" + version: 14.5.1 + resolution: "@testing-library/user-event@npm:14.5.1" peerDependencies: "@testing-library/dom": ">=7.21.4" - checksum: 852c48ea6db1c9471b18276617c84fec4320771e466cd58339a732ca3fd73ad35e5a43ae14f51af51a8d0a150dcf60fcaab049ef367871207bea8f92c4b8195e + checksum: 3e6bc9fd53dfe2f3648190193ed2fd4bca2a1bfb47f68810df3b33f05412526e5fd5c4ef9dc5375635e0f4cdf1859916867b597eed22bda1321e04242ea6c519 languageName: node linkType: hard @@ -4747,54 +5239,54 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:^7.0.0": - version: 7.20.1 - resolution: "@types/babel__core@npm:7.20.1" +"@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14": + version: 7.20.2 + resolution: "@types/babel__core@npm:7.20.2" dependencies: "@babel/parser": ^7.20.7 "@babel/types": ^7.20.7 "@types/babel__generator": "*" "@types/babel__template": "*" "@types/babel__traverse": "*" - checksum: 9fcd9691a33074802d9057ff70b0e3ff3778f52470475b68698a0f6714fbe2ccb36c16b43dc924eb978cd8a81c1f845e5ff4699e7a47606043b539eb8c6331a8 + checksum: 564fbaa8ff1305d50807ada0ec227c3e7528bebb2f8fe6b2ed88db0735a31511a74ad18729679c43eeed8025ed29d408f53059289719e95ab1352ed559a100bd languageName: node linkType: hard "@types/babel__generator@npm:*": - version: 7.6.4 - resolution: "@types/babel__generator@npm:7.6.4" + version: 7.6.5 + resolution: "@types/babel__generator@npm:7.6.5" dependencies: "@babel/types": ^7.0.0 - checksum: 20effbbb5f8a3a0211e95959d06ae70c097fb6191011b73b38fe86deebefad8e09ee014605e0fd3cdaedc73d158be555866810e9166e1f09e4cfd880b874dcb0 + checksum: c7459f5025c4c800eaf58f4db3b24e9d736331fe7df40961d9bc49f31b46e2a3be83dc9276e8688f10a5ed752ae153ad5f1bdd45e2245bac95273730b9115ec2 languageName: node linkType: hard "@types/babel__template@npm:*": - version: 7.4.1 - resolution: "@types/babel__template@npm:7.4.1" + version: 7.4.2 + resolution: "@types/babel__template@npm:7.4.2" dependencies: "@babel/parser": ^7.1.0 "@babel/types": ^7.0.0 - checksum: 649fe8b42c2876be1fd28c6ed9b276f78152d5904ec290b6c861d9ef324206e0a5c242e8305c421ac52ecf6358fa7e32ab7a692f55370484825c1df29b1596ee + checksum: 0fe977b45a3269336c77f3ae4641a6c48abf0fa35ab1a23fb571690786af02d6cec08255a43499b0b25c5633800f7ae882ace450cce905e3060fa9e6995047ae languageName: node linkType: hard -"@types/babel__traverse@npm:*": - version: 7.20.1 - resolution: "@types/babel__traverse@npm:7.20.1" +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": + version: 7.20.2 + resolution: "@types/babel__traverse@npm:7.20.2" dependencies: "@babel/types": ^7.20.7 - checksum: 58341e23c649c0eba134a1682d4f20d027fad290d92e5740faa1279978f6ed476fc467ae51ce17a877e2566d805aeac64eae541168994367761ec883a4150221 + checksum: 981340286479524436348d32373eaa3bf993c635cbf70307b4b69463eee83406a959ac4844f683911e0db8ab8d9f0025ab630dc7a8c170fee9ee74144c2a528f languageName: node linkType: hard "@types/body-parser@npm:*": - version: 1.19.2 - resolution: "@types/body-parser@npm:1.19.2" + version: 1.19.3 + resolution: "@types/body-parser@npm:1.19.3" dependencies: "@types/connect": "*" "@types/node": "*" - checksum: e17840c7d747a549f00aebe72c89313d09fbc4b632b949b2470c5cb3b1cb73863901ae84d9335b567a79ec5efcfb8a28ff8e3f36bc8748a9686756b6d5681f40 + checksum: 932fa71437c275023799123680ef26ffd90efd37f51a1abe405e6ae6e5b4ad9511b7a3a8f5a12877ed1444a02b6286c0a137a98e914b3c61932390c83643cc2c languageName: node linkType: hard @@ -4816,6 +5308,15 @@ __metadata: languageName: node linkType: hard +"@types/debug@npm:^4.0.0": + version: 4.1.9 + resolution: "@types/debug@npm:4.1.9" + dependencies: + "@types/ms": "*" + checksum: e88ee8b19d106f33eb0d3bc58bacff9702e98d821fd1ebd1de8942e6b97419e19a1ccf39370f1764a1dc66f79fd4619f3412e1be6eeb9f0b76412f5ffe4ead93 + languageName: node + linkType: hard + "@types/detect-port@npm:^1.3.0": version: 1.3.3 resolution: "@types/detect-port@npm:1.3.3" @@ -4933,9 +5434,9 @@ __metadata: linkType: hard "@types/http-errors@npm:*": - version: 2.0.1 - resolution: "@types/http-errors@npm:2.0.1" - checksum: 3bb0c50b0a652e679a84c30cd0340d696c32ef6558518268c238840346c077f899315daaf1c26c09c57ddd5dc80510f2a7f46acd52bf949e339e35ed3ee9654f + version: 2.0.2 + resolution: "@types/http-errors@npm:2.0.2" + checksum: d7f14045240ac4b563725130942b8e5c8080bfabc724c8ff3f166ea928ff7ae02c5194763bc8f6aaf21897e8a44049b0492493b9de3e058247e58fdfe0f86692 languageName: node linkType: hard @@ -4964,10 +5465,31 @@ __metadata: languageName: node linkType: hard +"@types/jest@npm:^29.5.5": + version: 29.5.5 + resolution: "@types/jest@npm:29.5.5" + dependencies: + expect: ^29.0.0 + pretty-format: ^29.0.0 + checksum: 56e55cde9949bcc0ee2fa34ce5b7c32c2bfb20e53424aa4ff3a210859eeaaa3fdf6f42f81a3f655238039cdaaaf108b054b7a8602f394e6c52b903659338d8c6 + languageName: node + linkType: hard + +"@types/jsdom@npm:^20.0.0": + version: 20.0.1 + resolution: "@types/jsdom@npm:20.0.1" + dependencies: + "@types/node": "*" + "@types/tough-cookie": "*" + parse5: ^7.0.0 + checksum: d55402c5256ef451f93a6e3d3881f98339fe73a5ac2030588df056d6835df8367b5a857b48d27528289057e26dcdd3f502edc00cb877c79174cb3a4c7f2198c1 + languageName: node + linkType: hard + "@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": - version: 7.0.12 - resolution: "@types/json-schema@npm:7.0.12" - checksum: 00239e97234eeb5ceefb0c1875d98ade6e922bfec39dd365ec6bd360b5c2f825e612ac4f6e5f1d13601b8b30f378f15e6faa805a3a732f4a1bbe61915163d293 + version: 7.0.13 + resolution: "@types/json-schema@npm:7.0.13" + checksum: 345df21a678fa72fb389f35f33de77833d09d4a142bb2bcb27c18690efa4cf70fc2876e43843cefb3fbdb9fcb12cd3e970a90936df30f53bbee899865ff605ab languageName: node linkType: hard @@ -4985,6 +5507,15 @@ __metadata: languageName: node linkType: hard +"@types/mdast@npm:^3.0.0": + version: 3.0.12 + resolution: "@types/mdast@npm:3.0.12" + dependencies: + "@types/unist": ^2 + checksum: 83adb8679b9d139f69f63554d120af921e9f1289e9903a2c99e0554a327c8524a6c0beccdc0721e4fdbccc606e81964fecb0d390d53df0f74360938e22f1a469 + languageName: node + linkType: hard + "@types/mdx@npm:^2.0.0": version: 2.0.7 resolution: "@types/mdx@npm:2.0.7" @@ -5020,20 +5551,27 @@ __metadata: languageName: node linkType: hard +"@types/ms@npm:*": + version: 0.7.31 + resolution: "@types/ms@npm:0.7.31" + checksum: daadd354aedde024cce6f5aa873fefe7b71b22cd0e28632a69e8b677aeb48ae8caa1c60e5919bb781df040d116b01cb4316335167a3fc0ef6a63fa3614c0f6da + languageName: node + linkType: hard + "@types/node-fetch@npm:^2.6.4": - version: 2.6.4 - resolution: "@types/node-fetch@npm:2.6.4" + version: 2.6.5 + resolution: "@types/node-fetch@npm:2.6.5" dependencies: "@types/node": "*" - form-data: ^3.0.0 - checksum: f3e1d881bb42269e676ecaf49f0e096ab345e22823a2b2d071d60619414817fe02df48a31a8d05adb23054028a2a65521bdb3906ceb763ab6d3339c8d8775058 + form-data: ^4.0.0 + checksum: 686ee0d52bb82d73f82c0da0bb025d4af1ba7bd8df4edd09336f6179eb838b6d4b5f0a524677a8faec2b00918d1b08a1690d50fa592c9741a5df6a8041a52495 languageName: node linkType: hard "@types/node@npm:*": - version: 20.6.0 - resolution: "@types/node@npm:20.6.0" - checksum: 52611801af5cf151c6fac1963aa4a8a8ca2e388a9e9ed82b01b70bca762088ded5b32cc789c5564220d5d7dccba2b8dd34446a3d4fc74736805e1f2cf262e29d + version: 20.6.2 + resolution: "@types/node@npm:20.6.2" + checksum: 96fe5303872640a173f3fd43e289a451776ed5b8f0090094447c6790b43f23fb607eea8268af0829cef4d132e5afa0bfa4cd871aa7412e9042a414a698e9e971 languageName: node linkType: hard @@ -5052,9 +5590,9 @@ __metadata: linkType: hard "@types/node@npm:^16.0.0": - version: 16.18.50 - resolution: "@types/node@npm:16.18.50" - checksum: 8aec1eaf83407197ec2fe947182c238f49b82a7aace867cee1f81f72eb8a76c3c8b2adb1fd356e7443317cffb2546708da8934299a579edd25e3160bf7af30a1 + version: 16.18.52 + resolution: "@types/node@npm:16.18.52" + checksum: 6b1f27a848a69a70039cb27c2583317b5d051990933955c42bc2a2f299266ffa360f7cc3c7089d04fdf39144c476d475931900f00dabbc4f933eeb2d664f9778 languageName: node linkType: hard @@ -5100,7 +5638,7 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:18.2.7": +"@types/react-dom@npm:18.2.7, @types/react-dom@npm:^18.0.0": version: 18.2.7 resolution: "@types/react-dom@npm:18.2.7" dependencies: @@ -5149,17 +5687,6 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^16.14.34": - version: 16.14.46 - resolution: "@types/react@npm:16.14.46" - dependencies: - "@types/prop-types": "*" - "@types/scheduler": "*" - csstype: ^3.0.2 - checksum: ce07dfddcd2bc291c169a53677a754b5ecb754e6552b312f232143c56e7b95f7a851727a98a4469014190f29ace7d7f81c37a44b352d584f605c04f2899dec95 - languageName: node - linkType: hard - "@types/scheduler@npm:*": version: 0.16.3 resolution: "@types/scheduler@npm:0.16.3" @@ -5168,9 +5695,9 @@ __metadata: linkType: hard "@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.4, @types/semver@npm:^7.5.0": - version: 7.5.1 - resolution: "@types/semver@npm:7.5.1" - checksum: 2fffe938c7ac168711f245a16e1856a3578d77161ca17e29a05c3e02c7be3e9c5beefa29a3350f6c1bd982fb70aa28cc52e4845eb7d36246bcdc0377170d584d + version: 7.5.2 + resolution: "@types/semver@npm:7.5.2" + checksum: 743aa8a2b58e20b329c19bd2459152cb049d12fafab7279b90ac11e0f268c97efbcb606ea0c681cca03f79015381b40d9b1244349b354270bec3f939ed49f6e9 languageName: node linkType: hard @@ -5195,7 +5722,21 @@ __metadata: languageName: node linkType: hard -"@types/unist@npm:^2.0.0": +"@types/stack-utils@npm:^2.0.0": + version: 2.0.1 + resolution: "@types/stack-utils@npm:2.0.1" + checksum: 205fdbe3326b7046d7eaf5e494d8084f2659086a266f3f9cf00bccc549c8e36e407f88168ad4383c8b07099957ad669f75f2532ed4bc70be2b037330f7bae019 + languageName: node + linkType: hard + +"@types/tough-cookie@npm:*": + version: 4.0.3 + resolution: "@types/tough-cookie@npm:4.0.3" + checksum: f201be1bbca2f2d3572032513cdb9825845114d2604a7f4091af848eeee3228a573cdc5e8082b04468a2848bb1d058f1adbb97db822e22c975ebd6fcd851a453 + languageName: node + linkType: hard + +"@types/unist@npm:^2, @types/unist@npm:^2.0.0": version: 2.0.8 resolution: "@types/unist@npm:2.0.8" checksum: f4852d10a6752dc70df363917ef74453e5d2fd42824c0f6d09d19d530618e1402193977b1207366af4415aaec81d4e262c64d00345402020c4ca179216e553c7 @@ -5228,14 +5769,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^6.3.0": - version: 6.6.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.6.0" + version: 6.7.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.7.0" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.6.0 - "@typescript-eslint/type-utils": 6.6.0 - "@typescript-eslint/utils": 6.6.0 - "@typescript-eslint/visitor-keys": 6.6.0 + "@typescript-eslint/scope-manager": 6.7.0 + "@typescript-eslint/type-utils": 6.7.0 + "@typescript-eslint/utils": 6.7.0 + "@typescript-eslint/visitor-keys": 6.7.0 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -5248,7 +5789,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: ed41c6df87096706777e9c1f53adabd998fd840691b57f5b68b18903e567f16c0a8354ff0ad29229c249f29440ba4a017c9fe966da182a455dde9769232a4344 + checksum: 48393749c5c1f67acf71795551c6065586198530006189c48636e32caea4d1285624c16c047164f9d29055e26c4f90fca964c5a2b5c0e9b6d9ed87acd74ca0d6 languageName: node linkType: hard @@ -5270,20 +5811,20 @@ __metadata: linkType: hard "@typescript-eslint/parser@npm:^6.3.0": - version: 6.6.0 - resolution: "@typescript-eslint/parser@npm:6.6.0" + version: 6.7.0 + resolution: "@typescript-eslint/parser@npm:6.7.0" dependencies: - "@typescript-eslint/scope-manager": 6.6.0 - "@typescript-eslint/types": 6.6.0 - "@typescript-eslint/typescript-estree": 6.6.0 - "@typescript-eslint/visitor-keys": 6.6.0 + "@typescript-eslint/scope-manager": 6.7.0 + "@typescript-eslint/types": 6.7.0 + "@typescript-eslint/typescript-estree": 6.7.0 + "@typescript-eslint/visitor-keys": 6.7.0 debug: ^4.3.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: b2d0082b6acc1a85997ebbb60fc73a43f3fe5e5028cb4130938a2cffddc94872c8e0d00a1742be8f8b755bc1994d43b55b7e4660dc88946744094ff2aca4ffd3 + checksum: 21d52a49abf78a3b037261c01f1f4d2d550919ddc906ebb058db3410a706457ac3a7d082716328ce98a6741d4e77c945b71ff386d9047c5a2e5beef23e14ab45 languageName: node linkType: hard @@ -5297,22 +5838,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.6.0": - version: 6.6.0 - resolution: "@typescript-eslint/scope-manager@npm:6.6.0" +"@typescript-eslint/scope-manager@npm:6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/scope-manager@npm:6.7.0" dependencies: - "@typescript-eslint/types": 6.6.0 - "@typescript-eslint/visitor-keys": 6.6.0 - checksum: 18b552fee98894c4f35e9f3d71a276f266ad4e2d7c6b9bb32a9b25caa36cc3768928676972b4e78308098ad53fa8dc6626a82810f17d51c667ce959da3ac11bc + "@typescript-eslint/types": 6.7.0 + "@typescript-eslint/visitor-keys": 6.7.0 + checksum: f6ea33c647783d53d98938bd5d3fc94c9a5ebc83bd64cf379215863921dd1c57e66c33af7948d6ac1884623e1917a3b42565e6d02e1fd7adfbce4b3424a2382e languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.6.0": - version: 6.6.0 - resolution: "@typescript-eslint/type-utils@npm:6.6.0" +"@typescript-eslint/type-utils@npm:6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/type-utils@npm:6.7.0" dependencies: - "@typescript-eslint/typescript-estree": 6.6.0 - "@typescript-eslint/utils": 6.6.0 + "@typescript-eslint/typescript-estree": 6.7.0 + "@typescript-eslint/utils": 6.7.0 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -5320,7 +5861,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: be68ebc1d8da9d4db48933cfd5c8f22382fdf1faf4116b0eb929c65eaeaf00ef224f38b03e7f6ea2de4496d046380876dd5db514c65d078ebc7a25e771a61265 + checksum: 15ae33a6981721f83b2ac612a7597a4fcb2d9d9bfedce54707e5228bec2774fd99ba54ffce89924ae36b61488c7b6c0c2165a6d361be5cd4cefebefad8b02a01 languageName: node linkType: hard @@ -5331,10 +5872,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:6.6.0": - version: 6.6.0 - resolution: "@typescript-eslint/types@npm:6.6.0" - checksum: d0642ad52e904062a4ac75ac4e6cc51d81ec6030f8830e230df476e69786d3232d45ca0c9ce011add9ede13f0eba4ab7f1eaf679954c6602cf4f43e1ba002be9 +"@typescript-eslint/types@npm:6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/types@npm:6.7.0" + checksum: fb76031432a009813d559b1cc63091eb5434279012cdb98de62fcd556910663c6a1b506e0a77c4f86e223a5e2c00e76a2d1d2170802c75168008d19a52a51fca languageName: node linkType: hard @@ -5356,12 +5897,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.6.0": - version: 6.6.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.6.0" +"@typescript-eslint/typescript-estree@npm:6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.7.0" dependencies: - "@typescript-eslint/types": 6.6.0 - "@typescript-eslint/visitor-keys": 6.6.0 + "@typescript-eslint/types": 6.7.0 + "@typescript-eslint/visitor-keys": 6.7.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -5370,24 +5911,24 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 100620bc5865dc9d2551c6be520a34b931bc70eca144c5ab0e275b81e57aa92f24a9d3a57f332d98b96e4581cf7e87211c3196d964f4951c7a2508105e3bd3f5 + checksum: 9bd57910085f0dd97d7083e0468c34e0753d20d36d3ffaa4ba111f13cc4986743374f5aed928e645ea982cf2ed9a8141598bee41393cad0abee001f0842ad117 languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.6.0": - version: 6.6.0 - resolution: "@typescript-eslint/utils@npm:6.6.0" +"@typescript-eslint/utils@npm:6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/utils@npm:6.7.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.6.0 - "@typescript-eslint/types": 6.6.0 - "@typescript-eslint/typescript-estree": 6.6.0 + "@typescript-eslint/scope-manager": 6.7.0 + "@typescript-eslint/types": 6.7.0 + "@typescript-eslint/typescript-estree": 6.7.0 semver: ^7.5.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: da02305703569549eb7deebb7512940cd40426eccec684680087a5b8c8e08052e2ff0ff6951a2ca64740e86e4b5b390903d0b13ad51efc374d9ae54f70c6a046 + checksum: b2a2857ec856d1752e77c2a274a12513372311c300f9ec57ed7bf7411eb9ea34b85a8e7810a5c48fff0e3966b71d63d77e38c5c7bca1d5c004bede5638619a00 languageName: node linkType: hard @@ -5419,13 +5960,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.6.0": - version: 6.6.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.6.0" +"@typescript-eslint/visitor-keys@npm:6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.7.0" dependencies: - "@typescript-eslint/types": 6.6.0 + "@typescript-eslint/types": 6.7.0 eslint-visitor-keys: ^3.4.1 - checksum: 28171124c5c7d5d10c04c204530508f1488214f2af5eb7e64a5f1cc410c64f02676c04be087adcfd0deb5566f5bb7337b208afcb249719614634c38bcc3da897 + checksum: cd85722d26ccfa23a76e5cb5aa0229f89eb3c4f1ed87d71a0f902db15f420f3f3e94cbd16dc711039f611ac60b1e7d0fee9ee78c48c88310a5f1926a2bc8778e languageName: node linkType: hard @@ -5637,6 +6178,13 @@ __metadata: languageName: node linkType: hard +"abab@npm:^2.0.6": + version: 2.0.6 + resolution: "abab@npm:2.0.6" + checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e + languageName: node + linkType: hard + "abbrev@npm:^1.0.0": version: 1.1.1 resolution: "abbrev@npm:1.1.1" @@ -5663,6 +6211,16 @@ __metadata: languageName: node linkType: hard +"acorn-globals@npm:^7.0.0": + version: 7.0.1 + resolution: "acorn-globals@npm:7.0.1" + dependencies: + acorn: ^8.1.0 + acorn-walk: ^8.0.2 + checksum: 2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8 + languageName: node + linkType: hard + "acorn-import-assertions@npm:^1.9.0": version: 1.9.0 resolution: "acorn-import-assertions@npm:1.9.0" @@ -5688,7 +6246,7 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.1.1": +"acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1": version: 8.2.0 resolution: "acorn-walk@npm:8.2.0" checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 @@ -5704,7 +6262,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.1.0, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.10.0 resolution: "acorn@npm:8.10.0" bin: @@ -5830,6 +6388,15 @@ __metadata: languageName: node linkType: hard +"ansi-escapes@npm:^4.2.1": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: ^0.21.3 + checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 + languageName: node + linkType: hard + "ansi-html-community@npm:0.0.8, ansi-html-community@npm:^0.0.8": version: 0.0.8 resolution: "ansi-html-community@npm:0.0.8" @@ -5960,7 +6527,7 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^5.1.3": +"aria-query@npm:^5.0.0, aria-query@npm:^5.1.3": version: 5.3.0 resolution: "aria-query@npm:5.3.0" dependencies: @@ -6063,7 +6630,7 @@ __metadata: languageName: node linkType: hard -"arraybuffer.prototype.slice@npm:^1.0.1": +"arraybuffer.prototype.slice@npm:^1.0.2": version: 1.0.2 resolution: "arraybuffer.prototype.slice@npm:1.0.2" dependencies: @@ -6206,6 +6773,23 @@ __metadata: languageName: node linkType: hard +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" + dependencies: + "@jest/transform": ^29.7.0 + "@types/babel__core": ^7.1.14 + babel-plugin-istanbul: ^6.1.1 + babel-preset-jest: ^29.6.3 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + slash: ^3.0.0 + peerDependencies: + "@babel/core": ^7.8.0 + checksum: ee6f8e0495afee07cac5e4ee167be705c711a8cc8a737e05a587a131fdae2b3c8f9aa55dfd4d9c03009ac2d27f2de63d8ba96d3e8460da4d00e8af19ef9a83f7 + languageName: node + linkType: hard + "babel-loader@npm:^9.0.0": version: 9.1.3 resolution: "babel-loader@npm:9.1.3" @@ -6239,6 +6823,18 @@ __metadata: languageName: node linkType: hard +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" + dependencies: + "@babel/template": ^7.3.3 + "@babel/types": ^7.3.3 + "@types/babel__core": ^7.1.14 + "@types/babel__traverse": ^7.0.6 + checksum: 51250f22815a7318f17214a9d44650ba89551e6d4f47a2dc259128428324b52f5a73979d010cefd921fd5a720d8c1d55ad74ff601cd94c7bd44d5f6292fde2d1 + languageName: node + linkType: hard + "babel-plugin-macros@npm:^3.1.0": version: 3.1.0 resolution: "babel-plugin-macros@npm:3.1.0" @@ -6304,6 +6900,47 @@ __metadata: languageName: node linkType: hard +"babel-preset-current-node-syntax@npm:^1.0.0": + version: 1.0.1 + resolution: "babel-preset-current-node-syntax@npm:1.0.1" + dependencies: + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-bigint": ^7.8.3 + "@babel/plugin-syntax-class-properties": ^7.8.3 + "@babel/plugin-syntax-import-meta": ^7.8.3 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.8.3 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.8.3 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-syntax-top-level-await": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: d118c2742498c5492c095bc8541f4076b253e705b5f1ad9a2e7d302d81a84866f0070346662355c8e25fc02caa28dc2da8d69bcd67794a0d60c4d6fab6913cc8 + languageName: node + linkType: hard + +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" + dependencies: + babel-plugin-jest-hoist: ^29.6.3 + babel-preset-current-node-syntax: ^1.0.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb + languageName: node + linkType: hard + +"bail@npm:^2.0.0": + version: 2.0.2 + resolution: "bail@npm:2.0.2" + checksum: aab4e8ccdc8d762bf3fdfce8e706601695620c0c2eda256dd85088dc0be3cfd7ff126f6e99c2bee1f24f5d418414aacf09d7f9702f16d6963df2fa488cda8824 + languageName: node + linkType: hard + "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -6714,10 +7351,17 @@ __metadata: languageName: node linkType: hard +"camelcase@npm:^6.2.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d + languageName: node + linkType: hard + "caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001517": - version: 1.0.30001532 - resolution: "caniuse-lite@npm:1.0.30001532" - checksum: 613abeb15e03dde307d543195a7860f7ba7450c9c9262d45642b2c8fbe097914fa060d68c8647f9d443947b1f62b09d891858bde7d2cac94fae8133a0b518b28 + version: 1.0.30001534 + resolution: "caniuse-lite@npm:1.0.30001534" + checksum: 8e8b63c1ce0d5b944ee2d8223955b33f3d4f60c33fed394ff6353b5c7106b2dc55219fd07d80c79e66ed1f82ed9367cee17bda96789cbd2ab57c8d30b1b5c510 languageName: node linkType: hard @@ -6728,6 +7372,13 @@ __metadata: languageName: node linkType: hard +"ccount@npm:^2.0.0": + version: 2.0.1 + resolution: "ccount@npm:2.0.1" + checksum: 48193dada54c9e260e0acf57fc16171a225305548f9ad20d5471e0f7a8c026aedd8747091dccb0d900cde7df4e4ddbd235df0d8de4a64c71b12f0d3303eeafd4 + languageName: node + linkType: hard + "chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -6739,6 +7390,16 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: 8e3ddf3981c4da405ddbd7d9c8d91944ddf6e33d6837756979f7840a29272a69a5189ecae0ff84006750d6d1e92368d413335eab4db5476db6e6703a1d1e0505 + languageName: node + linkType: hard + "chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -6749,6 +7410,20 @@ __metadata: languageName: node linkType: hard +"char-regex@npm:^1.0.2": + version: 1.0.2 + resolution: "char-regex@npm:1.0.2" + checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 + languageName: node + linkType: hard + +"character-entities@npm:^2.0.0": + version: 2.0.2 + resolution: "character-entities@npm:2.0.2" + checksum: cf1643814023697f725e47328fcec17923b8f1799102a8a79c1514e894815651794a2bffd84bb1b3a4b124b050154e4529ed6e81f7c8068a734aecf07a6d3def + languageName: node + linkType: hard + "chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" @@ -6806,6 +7481,13 @@ __metadata: languageName: node linkType: hard +"cjs-module-lexer@npm:^1.0.0": + version: 1.2.3 + resolution: "cjs-module-lexer@npm:1.2.3" + checksum: 5ea3cb867a9bb609b6d476cd86590d105f3cfd6514db38ff71f63992ab40939c2feb68967faa15a6d2b1f90daa6416b79ea2de486e9e2485a6f8b66a21b4fb0a + languageName: node + linkType: hard + "classnames@npm:^2.3.0": version: 2.3.2 resolution: "classnames@npm:2.3.2" @@ -6839,9 +7521,9 @@ __metadata: linkType: hard "cli-spinners@npm:^2.5.0": - version: 2.9.0 - resolution: "cli-spinners@npm:2.9.0" - checksum: a9c56e1f44457d4a9f4f535364e729cb8726198efa9e98990cfd9eda9e220dfa4ba12f92808d1be5e29029cdfead781db82dc8549b97b31c907d55f96aa9b0e2 + version: 2.9.1 + resolution: "cli-spinners@npm:2.9.1" + checksum: 1780618be58309c469205bc315db697934bac68bce78cd5dfd46248e507a533172d623c7348ecfd904734f597ce0a4e5538684843d2cfb7af485d4466699940c languageName: node linkType: hard @@ -6875,13 +7557,17 @@ __metadata: "@storybook/addon-essentials": 7.2.1 "@storybook/addon-interactions": 7.2.1 "@storybook/addon-links": 7.2.1 - "@storybook/addon-onboarding": 1.0.8 + "@storybook/addon-mdx-gfm": ^7.4.4 + "@storybook/addon-onboarding": ^1.0.8 "@storybook/addon-styling": ^1.3.6 - "@storybook/blocks": 7.2.1 + "@storybook/blocks": ^7.4.4 "@storybook/nextjs": 7.2.1 "@storybook/react": 7.2.1 "@storybook/testing-library": 0.2.0 "@tanstack/react-query": beta + "@testing-library/jest-dom": ^6.1.3 + "@testing-library/react": ^14.0.0 + "@types/jest": ^29.5.5 "@types/node": 20.4.8 "@types/react": 18.2.18 "@types/react-dom": 18.2.7 @@ -6894,6 +7580,8 @@ __metadata: eslint-config-next: 13.4.12 eslint-plugin-storybook: ^0.6.13 husky: ^8.0.3 + jest: ^29.7.0 + jest-environment-jsdom: ^29.7.0 next: 13.4.12 prettier: ^3.0.1 react: 18.2.0 @@ -6959,6 +7647,20 @@ __metadata: languageName: node linkType: hard +"co@npm:^4.6.0": + version: 4.6.0 + resolution: "co@npm:4.6.0" + checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510 + languageName: node + linkType: hard + +"collect-v8-coverage@npm:^1.0.0": + version: 1.0.2 + resolution: "collect-v8-coverage@npm:1.0.2" + checksum: c10f41c39ab84629d16f9f6137bc8a63d332244383fc368caf2d2052b5e04c20cd1fd70f66fcf4e2422b84c8226598b776d39d5f2d2a51867cc1ed5d1982b4da + languageName: node + linkType: hard + "color-convert@npm:^1.9.0": version: 1.9.3 resolution: "color-convert@npm:1.9.3" @@ -7250,8 +7952,8 @@ __metadata: linkType: hard "cosmiconfig@npm:^8.0.0, cosmiconfig@npm:^8.2.0": - version: 8.3.5 - resolution: "cosmiconfig@npm:8.3.5" + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" dependencies: import-fresh: ^3.3.0 js-yaml: ^4.1.0 @@ -7262,7 +7964,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: c6e44bb3cabf268b70049e7bd4ee8ecf00068854e53cbc32f9104794927ef406817f9e64e1c4949bd10776b604c01f7b50674336fcd2d5b9efc4cf8277fdf025 + checksum: dc339ebea427898c9e03bf01b56ba7afbac07fc7d2a2d5a15d6e9c14de98275a9565da949375aee1809591c152c0a3877bb86dbeaf74d5bd5aaa79955ad9e7a0 languageName: node linkType: hard @@ -7303,6 +8005,23 @@ __metadata: languageName: node linkType: hard +"create-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "create-jest@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-config: ^29.7.0 + jest-util: ^29.7.0 + prompts: ^2.0.1 + bin: + create-jest: bin/create-jest.js + checksum: 1427d49458adcd88547ef6fa39041e1fe9033a661293aa8d2c3aa1b4967cb5bf4f0c00436c7a61816558f28ba2ba81a94d5c962e8022ea9a883978fc8e1f2945 + languageName: node + linkType: hard + "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" @@ -7385,6 +8104,13 @@ __metadata: languageName: node linkType: hard +"css.escape@npm:^1.5.1": + version: 1.5.1 + resolution: "css.escape@npm:1.5.1" + checksum: f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774 + languageName: node + linkType: hard + "cssesc@npm:^3.0.0": version: 3.0.0 resolution: "cssesc@npm:3.0.0" @@ -7394,6 +8120,29 @@ __metadata: languageName: node linkType: hard +"cssom@npm:^0.5.0": + version: 0.5.0 + resolution: "cssom@npm:0.5.0" + checksum: 823471aa30091c59e0a305927c30e7768939b6af70405808f8d2ce1ca778cddcb24722717392438329d1691f9a87cb0183b64b8d779b56a961546d54854fde01 + languageName: node + linkType: hard + +"cssom@npm:~0.3.6": + version: 0.3.8 + resolution: "cssom@npm:0.3.8" + checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 + languageName: node + linkType: hard + +"cssstyle@npm:^2.3.0": + version: 2.3.0 + resolution: "cssstyle@npm:2.3.0" + dependencies: + cssom: ~0.3.6 + checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 + languageName: node + linkType: hard + "csstype@npm:^3.0.2": version: 3.1.2 resolution: "csstype@npm:3.1.2" @@ -7415,6 +8164,17 @@ __metadata: languageName: node linkType: hard +"data-urls@npm:^3.0.2": + version: 3.0.2 + resolution: "data-urls@npm:3.0.2" + dependencies: + abab: ^2.0.6 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^11.0.0 + checksum: 033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 + languageName: node + linkType: hard + "debug@npm:2.6.9, debug@npm:^2.6.9": version: 2.6.9 resolution: "debug@npm:2.6.9" @@ -7424,7 +8184,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -7462,6 +8222,22 @@ __metadata: languageName: node linkType: hard +"decimal.js@npm:^10.4.2": + version: 10.4.3 + resolution: "decimal.js@npm:10.4.3" + checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae + languageName: node + linkType: hard + +"decode-named-character-reference@npm:^1.0.0": + version: 1.0.2 + resolution: "decode-named-character-reference@npm:1.0.2" + dependencies: + character-entities: ^2.0.0 + checksum: f4c71d3b93105f20076052f9cb1523a22a9c796b8296cd35eef1ca54239c78d182c136a848b83ff8da2071e3ae2b1d300bf29d00650a6d6e675438cc31b11d78 + languageName: node + linkType: hard + "dedent@npm:^0.7.0": version: 0.7.0 resolution: "dedent@npm:0.7.0" @@ -7469,6 +8245,18 @@ __metadata: languageName: node linkType: hard +"dedent@npm:^1.0.0": + version: 1.5.1 + resolution: "dedent@npm:1.5.1" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: c3c300a14edf1bdf5a873f9e4b22e839d62490bc5c8d6169c1f15858a1a76733d06a9a56930e963d677a2ceeca4b6b0894cc5ea2f501aa382ca5b92af3413c2a + languageName: node + linkType: hard + "deep-equal@npm:^2.0.5": version: 2.2.2 resolution: "deep-equal@npm:2.2.2" @@ -7528,6 +8316,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.0.1": + version: 1.1.0 + resolution: "define-data-property@npm:1.1.0" + dependencies: + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: 7ad4ee84cca8ad427a4831f5693526804b62ce9dfd4efac77214e95a4382aed930072251d4075dc8dc9fc949a353ed51f19f5285a84a788ba9216cc51472a093 + languageName: node + linkType: hard + "define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -7535,13 +8334,14 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": - version: 1.2.0 - resolution: "define-properties@npm:1.2.0" +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" dependencies: + define-data-property: ^1.0.1 has-property-descriptors: ^1.0.0 object-keys: ^1.1.1 - checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 languageName: node linkType: hard @@ -7589,7 +8389,7 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.2, dequal@npm:^2.0.3": +"dequal@npm:^2.0.0, dequal@npm:^2.0.2, dequal@npm:^2.0.3": version: 2.0.3 resolution: "dequal@npm:2.0.3" checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 @@ -7620,6 +8420,13 @@ __metadata: languageName: node linkType: hard +"detect-newline@npm:^3.0.0": + version: 3.1.0 + resolution: "detect-newline@npm:3.1.0" + checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 + languageName: node + linkType: hard + "detect-node-es@npm:^1.1.0": version: 1.1.0 resolution: "detect-node-es@npm:1.1.0" @@ -7649,6 +8456,13 @@ __metadata: languageName: node linkType: hard +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa + languageName: node + linkType: hard + "diff@npm:^4.0.1": version: 4.0.2 resolution: "diff@npm:4.0.2" @@ -7656,6 +8470,13 @@ __metadata: languageName: node linkType: hard +"diff@npm:^5.0.0": + version: 5.1.0 + resolution: "diff@npm:5.1.0" + checksum: c7bf0df7c9bfbe1cf8a678fd1b2137c4fb11be117a67bc18a0e03ae75105e8533dbfb1cda6b46beb3586ef5aed22143ef9d70713977d5fb1f9114e21455fba90 + languageName: node + linkType: hard + "diffie-hellman@npm:^5.0.0": version: 5.0.3 resolution: "diffie-hellman@npm:5.0.3" @@ -7694,7 +8515,7 @@ __metadata: languageName: node linkType: hard -"dom-accessibility-api@npm:^0.5.9": +"dom-accessibility-api@npm:^0.5.6, dom-accessibility-api@npm:^0.5.9": version: 0.5.16 resolution: "dom-accessibility-api@npm:0.5.16" checksum: 005eb283caef57fc1adec4d5df4dd49189b628f2f575af45decb210e04d634459e3f1ee64f18b41e2dcf200c844bc1d9279d80807e686a30d69a4756151ad248 @@ -7745,6 +8566,15 @@ __metadata: languageName: node linkType: hard +"domexception@npm:^4.0.0": + version: 4.0.0 + resolution: "domexception@npm:4.0.0" + dependencies: + webidl-conversions: ^7.0.0 + checksum: ddbc1268edf33a8ba02ccc596735ede80375ee0cf124b30d2f05df5b464ba78ef4f49889b6391df4a04954e63d42d5631c7fcf8b1c4f12bc531252977a5f13d5 + languageName: node + linkType: hard + "domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": version: 4.3.1 resolution: "domhandler@npm:4.3.1" @@ -7836,9 +8666,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.4.477": - version: 1.4.513 - resolution: "electron-to-chromium@npm:1.4.513" - checksum: 613b66da177dcf5abca2441c502cde4b4fb247665dc049c54d1fe3b79fc3a5a3ecae92faf97d3147af0fec9c50bf90db09e8ca3f0953a5ec2fdb472d6d6253c2 + version: 1.4.523 + resolution: "electron-to-chromium@npm:1.4.523" + checksum: c090a958afe7849d9d1a0d3ed3a2300ded202374cd68013f9114fac33c506268b3e08a204c3f6e0ad4fe56a3ae75d23a8325cf9474e2954c6d0ddef6a018780c languageName: node linkType: hard @@ -7857,6 +8687,13 @@ __metadata: languageName: node linkType: hard +"emittery@npm:^0.13.1": + version: 0.13.1 + resolution: "emittery@npm:0.13.1" + checksum: 2b089ab6306f38feaabf4f6f02792f9ec85fc054fda79f44f6790e61bbf6bc4e1616afb9b232e0c5ec5289a8a452f79bfa6d905a6fd64e94b49981f0934001c6 + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -7931,6 +8768,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^4.4.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -7973,16 +8817,16 @@ __metadata: linkType: hard "es-abstract@npm:^1.22.1": - version: 1.22.1 - resolution: "es-abstract@npm:1.22.1" + version: 1.22.2 + resolution: "es-abstract@npm:1.22.2" dependencies: array-buffer-byte-length: ^1.0.0 - arraybuffer.prototype.slice: ^1.0.1 + arraybuffer.prototype.slice: ^1.0.2 available-typed-arrays: ^1.0.5 call-bind: ^1.0.2 es-set-tostringtag: ^2.0.1 es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.5 + function.prototype.name: ^1.1.6 get-intrinsic: ^1.2.1 get-symbol-description: ^1.0.0 globalthis: ^1.0.3 @@ -7998,24 +8842,24 @@ __metadata: is-regex: ^1.1.4 is-shared-array-buffer: ^1.0.2 is-string: ^1.0.7 - is-typed-array: ^1.1.10 + is-typed-array: ^1.1.12 is-weakref: ^1.0.2 object-inspect: ^1.12.3 object-keys: ^1.1.1 object.assign: ^4.1.4 - regexp.prototype.flags: ^1.5.0 - safe-array-concat: ^1.0.0 + regexp.prototype.flags: ^1.5.1 + safe-array-concat: ^1.0.1 safe-regex-test: ^1.0.0 - string.prototype.trim: ^1.2.7 - string.prototype.trimend: ^1.0.6 - string.prototype.trimstart: ^1.0.6 + string.prototype.trim: ^1.2.8 + string.prototype.trimend: ^1.0.7 + string.prototype.trimstart: ^1.0.7 typed-array-buffer: ^1.0.0 typed-array-byte-length: ^1.0.0 typed-array-byte-offset: ^1.0.0 typed-array-length: ^1.0.4 unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.10 - checksum: 614e2c1c3717cb8d30b6128ef12ea110e06fd7d75ad77091ca1c5dbfb00da130e62e4bbbbbdda190eada098a22b27fe0f99ae5a1171dac2c8663b1e8be8a3a9b + which-typed-array: ^1.1.11 + checksum: cc70e592d360d7d729859013dee7a610c6b27ed8630df0547c16b0d16d9fe6505a70ee14d1af08d970fdd132b3f88c9ca7815ce72c9011608abf8ab0e55fc515 languageName: node linkType: hard @@ -8037,12 +8881,12 @@ __metadata: linkType: hard "es-iterator-helpers@npm:^1.0.12": - version: 1.0.14 - resolution: "es-iterator-helpers@npm:1.0.14" + version: 1.0.15 + resolution: "es-iterator-helpers@npm:1.0.15" dependencies: asynciterator.prototype: ^1.0.0 call-bind: ^1.0.2 - define-properties: ^1.2.0 + define-properties: ^1.2.1 es-abstract: ^1.22.1 es-set-tostringtag: ^2.0.1 function-bind: ^1.1.1 @@ -8052,9 +8896,9 @@ __metadata: has-proto: ^1.0.1 has-symbols: ^1.0.3 internal-slot: ^1.0.5 - iterator.prototype: ^1.1.0 - safe-array-concat: ^1.0.0 - checksum: 484ca398389d5e259855e2d848573233985a7e7a4126c5de62c8a554174495aea47320ae1d2b55b757ece62ac1cb8455532aa61fd123fe4e01d0567eb2d7adfa + iterator.prototype: ^1.1.2 + safe-array-concat: ^1.0.1 + checksum: 50081ae5c549efe62e5c1d244df0194b40b075f7897fc2116b7e1aa437eb3c41f946d2afda18c33f9b31266ec544765932542765af839f76fa6d7b7855d1e0e1 languageName: node linkType: hard @@ -8104,13 +8948,13 @@ __metadata: linkType: hard "esbuild-register@npm:^3.4.0": - version: 3.4.2 - resolution: "esbuild-register@npm:3.4.2" + version: 3.5.0 + resolution: "esbuild-register@npm:3.5.0" dependencies: debug: ^4.3.4 peerDependencies: esbuild: ">=0.12 <1" - checksum: f65d1ccb58b1ccbba376efb1fc023abe22731d9b79eead1b0120e57d4413318f063696257a5af637b527fa1d3f009095aa6edb1bf6ff69d637a9ab281fb727b3 + checksum: f4307753c9672a2c901d04a1165031594a854f0a4c6f4c1db08aa393b68a193d38f2df483dc8ca0513e89f7b8998415e7e26fb9830989fb8cdccc5fb5f181c6b languageName: node linkType: hard @@ -8212,13 +9056,27 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^4.0.0": - version: 4.0.0 +"escape-string-regexp@npm:^2.0.0": + version: 2.0.0 + resolution: "escape-string-regexp@npm:2.0.0" + checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 languageName: node linkType: hard +"escape-string-regexp@npm:^5.0.0": + version: 5.0.0 + resolution: "escape-string-regexp@npm:5.0.0" + checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e + languageName: node + linkType: hard + "escodegen@npm:^2.0.0": version: 2.1.0 resolution: "escodegen@npm:2.1.0" @@ -8604,6 +9462,26 @@ __metadata: languageName: node linkType: hard +"exit@npm:^0.1.2": + version: 0.1.2 + resolution: "exit@npm:0.1.2" + checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 + languageName: node + linkType: hard + +"expect@npm:^29.0.0, expect@npm:^29.7.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": ^29.7.0 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -8895,9 +9773,9 @@ __metadata: linkType: hard "flatted@npm:^3.2.7": - version: 3.2.7 - resolution: "flatted@npm:3.2.7" - checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 + version: 3.2.9 + resolution: "flatted@npm:3.2.9" + checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 languageName: node linkType: hard @@ -8960,14 +9838,14 @@ __metadata: languageName: node linkType: hard -"form-data@npm:^3.0.0": - version: 3.0.1 - resolution: "form-data@npm:3.0.1" +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" dependencies: asynckit: ^0.4.0 combined-stream: ^1.0.8 mime-types: ^2.1.12 - checksum: b019e8d35c8afc14a2bd8a7a92fa4f525a4726b6d5a9740e8d2623c30e308fbb58dc8469f90415a856698933c8479b01646a9dff33c87cc4e76d72aedbbf860d + checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c languageName: node linkType: hard @@ -9072,7 +9950,7 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.5": +"function.prototype.name@npm:^1.1.5, function.prototype.name@npm:^1.1.6": version: 1.1.6 resolution: "function.prototype.name@npm:1.1.6" dependencies: @@ -9550,6 +10428,15 @@ __metadata: languageName: node linkType: hard +"html-encoding-sniffer@npm:^3.0.0": + version: 3.0.0 + resolution: "html-encoding-sniffer@npm:3.0.0" + dependencies: + whatwg-encoding: ^2.0.0 + checksum: 8d806aa00487e279e5ccb573366a951a9f68f65c90298eac9c3a2b440a7ffe46615aff2995a2f61c6746c639234e6179a97e18ca5ccbbf93d3725ef2099a4502 + languageName: node + linkType: hard + "html-entities@npm:^2.1.0": version: 2.4.0 resolution: "html-entities@npm:2.4.0" @@ -9707,7 +10594,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:^0.6.2": +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" dependencies: @@ -9767,6 +10654,18 @@ __metadata: languageName: node linkType: hard +"import-local@npm:^3.0.2": + version: 3.1.0 + resolution: "import-local@npm:3.1.0" + dependencies: + pkg-dir: ^4.2.0 + resolve-cwd: ^3.0.0 + bin: + import-local-fixture: fixtures/cli.js + checksum: bfcdb63b5e3c0e245e347f3107564035b128a414c4da1172a20dc67db2504e05ede4ac2eee1252359f78b0bfd7b19ef180aec427c2fce6493ae782d73a04cddd + languageName: node + linkType: hard + "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" @@ -9911,6 +10810,13 @@ __metadata: languageName: node linkType: hard +"is-buffer@npm:^2.0.0": + version: 2.0.5 + resolution: "is-buffer@npm:2.0.5" + checksum: 764c9ad8b523a9f5a32af29bdf772b08eb48c04d2ad0a7240916ac2688c983bf5f8504bf25b35e66240edeb9d9085461f9b5dae1f3d2861c6b06a65fe983de42 + languageName: node + linkType: hard + "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" @@ -9975,6 +10881,13 @@ __metadata: languageName: node linkType: hard +"is-generator-fn@npm:^2.0.0": + version: 2.1.0 + resolution: "is-generator-fn@npm:2.1.0" + checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 + languageName: node + linkType: hard + "is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7": version: 1.0.10 resolution: "is-generator-function@npm:1.0.10" @@ -10082,6 +10995,13 @@ __metadata: languageName: node linkType: hard +"is-plain-obj@npm:^4.0.0": + version: 4.1.0 + resolution: "is-plain-obj@npm:4.1.0" + checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce + languageName: node + linkType: hard + "is-plain-object@npm:5.0.0": version: 5.0.0 resolution: "is-plain-object@npm:5.0.0" @@ -10098,6 +11018,13 @@ __metadata: languageName: node linkType: hard +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab + languageName: node + linkType: hard + "is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" @@ -10158,7 +11085,7 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.12, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": version: 1.1.12 resolution: "is-typed-array@npm:1.1.12" dependencies: @@ -10257,6 +11184,19 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.0 + resolution: "istanbul-lib-instrument@npm:6.0.0" + dependencies: + "@babel/core": ^7.12.3 + "@babel/parser": ^7.14.7 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-coverage: ^3.2.0 + semver: ^7.5.4 + checksum: b9dc3723a769e65dbe1b912f935088ffc07cf393fa78a3ce79022c91aabb0ad01405ffd56083cdd822e514798e9daae3ea7bfe85633b094ecb335d28eb0a3f97 + languageName: node + linkType: hard + "istanbul-lib-report@npm:^3.0.0": version: 3.0.1 resolution: "istanbul-lib-report@npm:3.0.1" @@ -10268,7 +11208,18 @@ __metadata: languageName: node linkType: hard -"istanbul-reports@npm:^3.1.4": +"istanbul-lib-source-maps@npm:^4.0.0": + version: 4.0.1 + resolution: "istanbul-lib-source-maps@npm:4.0.1" + dependencies: + debug: ^4.1.1 + istanbul-lib-coverage: ^3.0.0 + source-map: ^0.6.1 + checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 + languageName: node + linkType: hard + +"istanbul-reports@npm:^3.1.3, istanbul-reports@npm:^3.1.4": version: 3.1.6 resolution: "istanbul-reports@npm:3.1.6" dependencies: @@ -10278,15 +11229,16 @@ __metadata: languageName: node linkType: hard -"iterator.prototype@npm:^1.1.0": - version: 1.1.1 - resolution: "iterator.prototype@npm:1.1.1" +"iterator.prototype@npm:^1.1.2": + version: 1.1.2 + resolution: "iterator.prototype@npm:1.1.2" dependencies: - define-properties: ^1.2.0 + define-properties: ^1.2.1 get-intrinsic: ^1.2.1 has-symbols: ^1.0.3 - reflect.getprototypeof: ^1.0.3 - checksum: 2807469a39e280ff25ed95f8f84197b870a12fae2b15cb8779bbb0d12bc0e648be4d6277bedb6f4ae05d3fc94f05a29f90c018335003f27045582cf5455248df + reflect.getprototypeof: ^1.0.4 + set-function-name: ^2.0.1 + checksum: d8a507e2ccdc2ce762e8a1d3f4438c5669160ac72b88b648e59a688eec6bc4e64b22338e74000518418d9e693faf2a092d2af21b9ec7dbf7763b037a54701168 languageName: node linkType: hard @@ -10317,9 +11269,188 @@ __metadata: languageName: node linkType: hard -"jest-haste-map@npm:^29.6.4": - version: 29.6.4 - resolution: "jest-haste-map@npm:29.6.4" +"jest-changed-files@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-changed-files@npm:29.7.0" + dependencies: + execa: ^5.0.0 + jest-util: ^29.7.0 + p-limit: ^3.1.0 + checksum: 963e203893c396c5dfc75e00a49426688efea7361b0f0e040035809cecd2d46b3c01c02be2d9e8d38b1138357d2de7719ea5b5be21f66c10f2e9685a5a73bb99 + languageName: node + linkType: hard + +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/expect": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + co: ^4.6.0 + dedent: ^1.0.0 + is-generator-fn: ^2.0.0 + jest-each: ^29.7.0 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-runtime: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + p-limit: ^3.1.0 + pretty-format: ^29.7.0 + pure-rand: ^6.0.0 + slash: ^3.0.0 + stack-utils: ^2.0.3 + checksum: 349437148924a5a109c9b8aad6d393a9591b4dac1918fc97d81b7fc515bc905af9918495055071404af1fab4e48e4b04ac3593477b1d5dcf48c4e71b527c70a7 + languageName: node + linkType: hard + +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" + dependencies: + "@jest/core": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + create-jest: ^29.7.0 + exit: ^0.1.2 + import-local: ^3.0.2 + jest-config: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + yargs: ^17.3.1 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 664901277a3f5007ea4870632ed6e7889db9da35b2434e7cb488443e6bf5513889b344b7fddf15112135495b9875892b156faeb2d7391ddb9e2a849dcb7b6c36 + languageName: node + linkType: hard + +"jest-config@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-config@npm:29.7.0" + dependencies: + "@babel/core": ^7.11.6 + "@jest/test-sequencer": ^29.7.0 + "@jest/types": ^29.6.3 + babel-jest: ^29.7.0 + chalk: ^4.0.0 + ci-info: ^3.2.0 + deepmerge: ^4.2.2 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + jest-circus: ^29.7.0 + jest-environment-node: ^29.7.0 + jest-get-type: ^29.6.3 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-runner: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + micromatch: ^4.0.4 + parse-json: ^5.2.0 + pretty-format: ^29.7.0 + slash: ^3.0.0 + strip-json-comments: ^3.1.1 + peerDependencies: + "@types/node": "*" + ts-node: ">=9.0.0" + peerDependenciesMeta: + "@types/node": + optional: true + ts-node: + optional: true + checksum: 4cabf8f894c180cac80b7df1038912a3fc88f96f2622de33832f4b3314f83e22b08fb751da570c0ab2b7988f21604bdabade95e3c0c041068ac578c085cf7dff + languageName: node + linkType: hard + +"jest-diff@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-diff@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + diff-sequences: ^29.6.3 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77 + languageName: node + linkType: hard + +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" + dependencies: + detect-newline: ^3.0.0 + checksum: 66390c3e9451f8d96c5da62f577a1dad701180cfa9b071c5025acab2f94d7a3efc2515cfa1654ebe707213241541ce9c5530232cdc8017c91ed64eea1bd3b192 + languageName: node + linkType: hard + +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + jest-get-type: ^29.6.3 + jest-util: ^29.7.0 + pretty-format: ^29.7.0 + checksum: e88f99f0184000fc8813f2a0aa79e29deeb63700a3b9b7928b8a418d7d93cd24933608591dbbdea732b473eb2021c72991b5cc51a17966842841c6e28e6f691c + languageName: node + linkType: hard + +"jest-environment-jsdom@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-jsdom@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/jsdom": ^20.0.0 + "@types/node": "*" + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + jsdom: ^20.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 559aac134c196fccc1dfc794d8fc87377e9f78e894bb13012b0831d88dec0abd7ece99abec69da564b8073803be4f04a9eb4f4d1bb80e29eec0cb252c254deb8 + languageName: node + linkType: hard + +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: 501a9966292cbe0ca3f40057a37587cb6def25e1e0c5e39ac6c650fe78d3c70a2428304341d084ac0cced5041483acef41c477abac47e9a290d5545fd2f15646 + languageName: node + linkType: hard + +"jest-get-type@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-get-type@npm:29.6.3" + checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 + languageName: node + linkType: hard + +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" dependencies: "@jest/types": ^29.6.3 "@types/graceful-fs": ^4.1.3 @@ -10329,14 +11460,53 @@ __metadata: fsevents: ^2.3.2 graceful-fs: ^4.2.9 jest-regex-util: ^29.6.3 - jest-util: ^29.6.3 - jest-worker: ^29.6.4 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 micromatch: ^4.0.4 walker: ^1.0.8 dependenciesMeta: fsevents: optional: true - checksum: 4f720fd3813bb38400b7a9a094e55664cbddd907ba1769457ed746f6c870c615167647a5b697a788183d832b1dcb1b66143e52990a6f4403283f6686077fa868 + checksum: c2c8f2d3e792a963940fbdfa563ce14ef9e14d4d86da645b96d3cd346b8d35c5ce0b992ee08593939b5f718cf0a1f5a90011a056548a1dbf58397d4356786f01 + languageName: node + linkType: hard + +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" + dependencies: + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 + languageName: node + linkType: hard + +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + jest-diff: ^29.7.0 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd + languageName: node + linkType: hard + +"jest-message-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-message-util@npm:29.7.0" + dependencies: + "@babel/code-frame": ^7.12.13 + "@jest/types": ^29.6.3 + "@types/stack-utils": ^2.0.0 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + micromatch: ^4.0.4 + pretty-format: ^29.7.0 + slash: ^3.0.0 + stack-utils: ^2.0.3 + checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930 languageName: node linkType: hard @@ -10350,6 +11520,29 @@ __metadata: languageName: node linkType: hard +"jest-mock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-mock@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-util: ^29.7.0 + checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5 + languageName: node + linkType: hard + +"jest-pnp-resolver@npm:^1.2.2": + version: 1.2.3 + resolution: "jest-pnp-resolver@npm:1.2.3" + peerDependencies: + jest-resolve: "*" + peerDependenciesMeta: + jest-resolve: + optional: true + checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 + languageName: node + linkType: hard + "jest-regex-util@npm:^29.6.3": version: 29.6.3 resolution: "jest-regex-util@npm:29.6.3" @@ -10357,9 +11550,123 @@ __metadata: languageName: node linkType: hard -"jest-util@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-util@npm:29.6.3" +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" + dependencies: + jest-regex-util: ^29.6.3 + jest-snapshot: ^29.7.0 + checksum: aeb75d8150aaae60ca2bb345a0d198f23496494677cd6aefa26fc005faf354061f073982175daaf32b4b9d86b26ca928586344516e3e6969aa614cb13b883984 + languageName: node + linkType: hard + +"jest-resolve@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-pnp-resolver: ^1.2.2 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + resolve: ^1.20.0 + resolve.exports: ^2.0.0 + slash: ^3.0.0 + checksum: 0ca218e10731aa17920526ec39deaec59ab9b966237905ffc4545444481112cd422f01581230eceb7e82d86f44a543d520a71391ec66e1b4ef1a578bd5c73487 + languageName: node + linkType: hard + +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/environment": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + emittery: ^0.13.1 + graceful-fs: ^4.2.9 + jest-docblock: ^29.7.0 + jest-environment-node: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-leak-detector: ^29.7.0 + jest-message-util: ^29.7.0 + jest-resolve: ^29.7.0 + jest-runtime: ^29.7.0 + jest-util: ^29.7.0 + jest-watcher: ^29.7.0 + jest-worker: ^29.7.0 + p-limit: ^3.1.0 + source-map-support: 0.5.13 + checksum: f0405778ea64812bf9b5c50b598850d94ccf95d7ba21f090c64827b41decd680ee19fcbb494007cdd7f5d0d8906bfc9eceddd8fa583e753e736ecd462d4682fb + languageName: node + linkType: hard + +"jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/globals": ^29.7.0 + "@jest/source-map": ^29.6.3 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + cjs-module-lexer: ^1.0.0 + collect-v8-coverage: ^1.0.0 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-mock: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + slash: ^3.0.0 + strip-bom: ^4.0.0 + checksum: d19f113d013e80691e07047f68e1e3448ef024ff2c6b586ce4f90cd7d4c62a2cd1d460110491019719f3c59bfebe16f0e201ed005ef9f80e2cf798c374eed54e + languageName: node + linkType: hard + +"jest-snapshot@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-snapshot@npm:29.7.0" + dependencies: + "@babel/core": ^7.11.6 + "@babel/generator": ^7.7.2 + "@babel/plugin-syntax-jsx": ^7.7.2 + "@babel/plugin-syntax-typescript": ^7.7.2 + "@babel/types": ^7.3.3 + "@jest/expect-utils": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + babel-preset-current-node-syntax: ^1.0.0 + chalk: ^4.0.0 + expect: ^29.7.0 + graceful-fs: ^4.2.9 + jest-diff: ^29.7.0 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + natural-compare: ^1.4.0 + pretty-format: ^29.7.0 + semver: ^7.5.3 + checksum: 86821c3ad0b6899521ce75ee1ae7b01b17e6dfeff9166f2cf17f012e0c5d8c798f30f9e4f8f7f5bed01ea7b55a6bc159f5eda778311162cbfa48785447c237ad + languageName: node + linkType: hard + +"jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" dependencies: "@jest/types": ^29.6.3 "@types/node": "*" @@ -10367,7 +11674,37 @@ __metadata: ci-info: ^3.2.0 graceful-fs: ^4.2.9 picomatch: ^2.2.3 - checksum: 7bf3ba3ac67ac6ceff7d8fdd23a86768e23ddd9133ecd9140ef87cc0c28708effabaf67a6cd45cd9d90a63d645a522ed0825d09ee59ac4c03b9c473b1fef4c7c + checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca + languageName: node + linkType: hard + +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + camelcase: ^6.2.0 + chalk: ^4.0.0 + jest-get-type: ^29.6.3 + leven: ^3.1.0 + pretty-format: ^29.7.0 + checksum: 191fcdc980f8a0de4dbdd879fa276435d00eb157a48683af7b3b1b98b0f7d9de7ffe12689b617779097ff1ed77601b9f7126b0871bba4f776e222c40f62e9dae + languageName: node + linkType: hard + +"jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" + dependencies: + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + emittery: ^0.13.1 + jest-util: ^29.7.0 + string-length: ^4.0.1 + checksum: 67e6e7fe695416deff96b93a14a561a6db69389a0667e9489f24485bb85e5b54e12f3b2ba511ec0b777eca1e727235b073e3ebcdd473d68888650489f88df92f languageName: node linkType: hard @@ -10382,15 +11719,34 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^29.6.4": - version: 29.6.4 - resolution: "jest-worker@npm:29.6.4" +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" dependencies: "@types/node": "*" - jest-util: ^29.6.3 + jest-util: ^29.7.0 merge-stream: ^2.0.0 supports-color: ^8.0.0 - checksum: 05d19a5759ebfeb964036065be55ad8d8e8ddffa85d9b3a4c0b95765695efb1d8226ec824a4d8e660c38cda3389bfeb98d819f47232acf9fb0e79f553b7c0a76 + checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 + languageName: node + linkType: hard + +"jest@npm:^29.7.0": + version: 29.7.0 + resolution: "jest@npm:29.7.0" + dependencies: + "@jest/core": ^29.7.0 + "@jest/types": ^29.6.3 + import-local: ^3.0.2 + jest-cli: ^29.7.0 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 17ca8d67504a7dbb1998cf3c3077ec9031ba3eb512da8d71cb91bcabb2b8995c4e4b292b740cb9bf1cbff5ce3e110b3f7c777b0cefb6f41ab05445f248d0ee0b languageName: node linkType: hard @@ -10464,6 +11820,45 @@ __metadata: languageName: node linkType: hard +"jsdom@npm:^20.0.0": + version: 20.0.3 + resolution: "jsdom@npm:20.0.3" + dependencies: + abab: ^2.0.6 + acorn: ^8.8.1 + acorn-globals: ^7.0.0 + cssom: ^0.5.0 + cssstyle: ^2.3.0 + data-urls: ^3.0.2 + decimal.js: ^10.4.2 + domexception: ^4.0.0 + escodegen: ^2.0.0 + form-data: ^4.0.0 + html-encoding-sniffer: ^3.0.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.1 + is-potential-custom-element-name: ^1.0.1 + nwsapi: ^2.2.2 + parse5: ^7.1.1 + saxes: ^6.0.0 + symbol-tree: ^3.2.4 + tough-cookie: ^4.1.2 + w3c-xmlserializer: ^4.0.0 + webidl-conversions: ^7.0.0 + whatwg-encoding: ^2.0.0 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^11.0.0 + ws: ^8.11.0 + xml-name-validator: ^4.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 6e2ae21db397133a061b270c26d2dbc0b9051733ea3b896a7ece78d79f475ff0974f766a413c1198a79c793159119169f2335ddb23150348fbfdcfa6f3105536 + languageName: node + linkType: hard + "jsesc@npm:^2.5.1": version: 2.5.2 resolution: "jsesc@npm:2.5.2" @@ -10592,6 +11987,13 @@ __metadata: languageName: node linkType: hard +"kleur@npm:^4.0.3": + version: 4.1.5 + resolution: "kleur@npm:4.1.5" + checksum: 1dc476e32741acf0b1b5b0627ffd0d722e342c1b0da14de3e8ae97821327ca08f9fb944542fb3c126d90ac5f27f9d804edbe7c585bf7d12ef495d115e0f22c12 + languageName: node + linkType: hard + "klona@npm:^2.0.4": version: 2.0.6 resolution: "klona@npm:2.0.6" @@ -10816,6 +12218,13 @@ __metadata: languageName: node linkType: hard +"longest-streak@npm:^3.0.0": + version: 3.1.0 + resolution: "longest-streak@npm:3.1.0" + checksum: d7f952ed004cbdb5c8bcfc4f7f5c3d65449e6c5a9e9be4505a656e3df5a57ee125f284286b4bf8ecea0c21a7b3bf2b8f9001ad506c319b9815ad6a63a47d0fd0 + languageName: node + linkType: hard + "loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -10965,6 +12374,13 @@ __metadata: languageName: node linkType: hard +"markdown-table@npm:^3.0.0": + version: 3.0.3 + resolution: "markdown-table@npm:3.0.3" + checksum: 8fcd3d9018311120fbb97115987f8b1665a603f3134c93fbecc5d1463380c8036f789e2a62c19432058829e594fff8db9ff81c88f83690b2f8ed6c074f8d9e10 + languageName: node + linkType: hard + "markdown-to-jsx@npm:^7.1.8": version: 7.3.2 resolution: "markdown-to-jsx@npm:7.3.2" @@ -10994,6 +12410,134 @@ __metadata: languageName: node linkType: hard +"mdast-util-find-and-replace@npm:^2.0.0": + version: 2.2.2 + resolution: "mdast-util-find-and-replace@npm:2.2.2" + dependencies: + "@types/mdast": ^3.0.0 + escape-string-regexp: ^5.0.0 + unist-util-is: ^5.0.0 + unist-util-visit-parents: ^5.0.0 + checksum: b4ce463c43fe6e1c38a53a89703f755c84ab5437f49bff9a0ac751279733332ca11c85ed0262aa6c17481f77b555d26ca6d64e70d6814f5b8d12d34a3e53a60b + languageName: node + linkType: hard + +"mdast-util-from-markdown@npm:^1.0.0": + version: 1.3.1 + resolution: "mdast-util-from-markdown@npm:1.3.1" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + decode-named-character-reference: ^1.0.0 + mdast-util-to-string: ^3.1.0 + micromark: ^3.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-decode-string: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + unist-util-stringify-position: ^3.0.0 + uvu: ^0.5.0 + checksum: c2fac225167e248d394332a4ea39596e04cbde07d8cdb3889e91e48972c4c3462a02b39fda3855345d90231eb17a90ac6e082fb4f012a77c1d0ddfb9c7446940 + languageName: node + linkType: hard + +"mdast-util-gfm-autolink-literal@npm:^1.0.0": + version: 1.0.3 + resolution: "mdast-util-gfm-autolink-literal@npm:1.0.3" + dependencies: + "@types/mdast": ^3.0.0 + ccount: ^2.0.0 + mdast-util-find-and-replace: ^2.0.0 + micromark-util-character: ^1.0.0 + checksum: 1748a8727cfc533bac0c287d6e72d571d165bfa77ae0418be4828177a3ec73c02c3f2ee534d87eb75cbaffa00c0866853bbcc60ae2255babb8210f7636ec2ce2 + languageName: node + linkType: hard + +"mdast-util-gfm-footnote@npm:^1.0.0": + version: 1.0.2 + resolution: "mdast-util-gfm-footnote@npm:1.0.2" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-to-markdown: ^1.3.0 + micromark-util-normalize-identifier: ^1.0.0 + checksum: 2d77505f9377ed7e14472ef5e6b8366c3fec2cf5f936bb36f9fbe5b97ccb7cce0464d9313c236fa86fb844206fd585db05707e4fcfb755e4fc1864194845f1f6 + languageName: node + linkType: hard + +"mdast-util-gfm-strikethrough@npm:^1.0.0": + version: 1.0.3 + resolution: "mdast-util-gfm-strikethrough@npm:1.0.3" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-to-markdown: ^1.3.0 + checksum: 17003340ff1bba643ec4a59fd4370fc6a32885cab2d9750a508afa7225ea71449fb05acaef60faa89c6378b8bcfbd86a9d94b05f3c6651ff27a60e3ddefc2549 + languageName: node + linkType: hard + +"mdast-util-gfm-table@npm:^1.0.0": + version: 1.0.7 + resolution: "mdast-util-gfm-table@npm:1.0.7" + dependencies: + "@types/mdast": ^3.0.0 + markdown-table: ^3.0.0 + mdast-util-from-markdown: ^1.0.0 + mdast-util-to-markdown: ^1.3.0 + checksum: 8b8c401bb4162e53f072a2dff8efbca880fd78d55af30601c791315ab6722cb2918176e8585792469a0c530cebb9df9b4e7fede75fdc4d83df2839e238836692 + languageName: node + linkType: hard + +"mdast-util-gfm-task-list-item@npm:^1.0.0": + version: 1.0.2 + resolution: "mdast-util-gfm-task-list-item@npm:1.0.2" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-to-markdown: ^1.3.0 + checksum: c9b86037d6953b84f11fb2fc3aa23d5b8e14ca0dfcb0eb2fb289200e172bb9d5647bfceb4f86606dc6d935e8d58f6a458c04d3e55e87ff8513c7d4ade976200b + languageName: node + linkType: hard + +"mdast-util-gfm@npm:^2.0.0": + version: 2.0.2 + resolution: "mdast-util-gfm@npm:2.0.2" + dependencies: + mdast-util-from-markdown: ^1.0.0 + mdast-util-gfm-autolink-literal: ^1.0.0 + mdast-util-gfm-footnote: ^1.0.0 + mdast-util-gfm-strikethrough: ^1.0.0 + mdast-util-gfm-table: ^1.0.0 + mdast-util-gfm-task-list-item: ^1.0.0 + mdast-util-to-markdown: ^1.0.0 + checksum: 7078cb985255208bcbce94a121906417d38353c6b1a9acbe56ee8888010d3500608b5d51c16b0999ac63ca58848fb13012d55f26930ff6c6f3450f053d56514e + languageName: node + linkType: hard + +"mdast-util-phrasing@npm:^3.0.0": + version: 3.0.1 + resolution: "mdast-util-phrasing@npm:3.0.1" + dependencies: + "@types/mdast": ^3.0.0 + unist-util-is: ^5.0.0 + checksum: c5b616d9b1eb76a6b351d195d94318494722525a12a89d9c8a3b091af7db3dd1fc55d294f9d29266d8159a8267b0df4a7a133bda8a3909d5331c383e1e1ff328 + languageName: node + linkType: hard + +"mdast-util-to-markdown@npm:^1.0.0, mdast-util-to-markdown@npm:^1.3.0": + version: 1.5.0 + resolution: "mdast-util-to-markdown@npm:1.5.0" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + longest-streak: ^3.0.0 + mdast-util-phrasing: ^3.0.0 + mdast-util-to-string: ^3.0.0 + micromark-util-decode-string: ^1.0.0 + unist-util-visit: ^4.0.0 + zwitch: ^2.0.0 + checksum: 64338eb33e49bb0aea417591fd986f72fdd39205052563bb7ce9eb9ecc160824509bfacd740086a05af355c6d5c36353aafe95cab9e6927d674478757cee6259 + languageName: node + linkType: hard + "mdast-util-to-string@npm:^1.0.0": version: 1.1.0 resolution: "mdast-util-to-string@npm:1.1.0" @@ -11001,6 +12545,15 @@ __metadata: languageName: node linkType: hard +"mdast-util-to-string@npm:^3.0.0, mdast-util-to-string@npm:^3.1.0": + version: 3.2.0 + resolution: "mdast-util-to-string@npm:3.2.0" + dependencies: + "@types/mdast": ^3.0.0 + checksum: dc40b544d54339878ae2c9f2b3198c029e1e07291d2126bd00ca28272ee6616d0d2194eb1c9828a7c34d412a79a7e73b26512a734698d891c710a1e73db1e848 + languageName: node + linkType: hard + "media-typer@npm:0.3.0": version: 0.3.0 resolution: "media-typer@npm:0.3.0" @@ -11028,55 +12581,384 @@ __metadata: version: 1.11.3 resolution: "memoizerific@npm:1.11.3" dependencies: - map-or-similar: ^1.5.0 - checksum: d51bdc3ed8c39b4b73845c90eb62d243ddf21899914352d0c303f5e1d477abcb192f4c605e008caa4a31d823225eeb22a99ba5ee825fb88d0c33382db3aee95a + map-or-similar: ^1.5.0 + checksum: d51bdc3ed8c39b4b73845c90eb62d243ddf21899914352d0c303f5e1d477abcb192f4c605e008caa4a31d823225eeb22a99ba5ee825fb88d0c33382db3aee95a + languageName: node + linkType: hard + +"meow@npm:^8.0.0, meow@npm:^8.1.2": + version: 8.1.2 + resolution: "meow@npm:8.1.2" + dependencies: + "@types/minimist": ^1.2.0 + camelcase-keys: ^6.2.2 + decamelize-keys: ^1.1.0 + hard-rejection: ^2.1.0 + minimist-options: 4.1.0 + normalize-package-data: ^3.0.0 + read-pkg-up: ^7.0.1 + redent: ^3.0.0 + trim-newlines: ^3.0.0 + type-fest: ^0.18.0 + yargs-parser: ^20.2.3 + checksum: bc23bf1b4423ef6a821dff9734406bce4b91ea257e7f10a8b7f896f45b59649f07adc0926e2917eacd8cf1df9e4cd89c77623cf63dfd0f8bf54de07a32ee5a85 + languageName: node + linkType: hard + +"merge-descriptors@npm:1.0.1": + version: 1.0.1 + resolution: "merge-descriptors@npm:1.0.1" + checksum: 5abc259d2ae25bb06d19ce2b94a21632583c74e2a9109ee1ba7fd147aa7362b380d971e0251069f8b3eb7d48c21ac839e21fa177b335e82c76ec172e30c31a26 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + languageName: node + linkType: hard + +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + languageName: node + linkType: hard + +"methods@npm:~1.1.2": + version: 1.1.2 + resolution: "methods@npm:1.1.2" + checksum: 0917ff4041fa8e2f2fda5425a955fe16ca411591fbd123c0d722fcf02b73971ed6f764d85f0a6f547ce49ee0221ce2c19a5fa692157931cecb422984f1dcd13a + languageName: node + linkType: hard + +"micromark-core-commonmark@npm:^1.0.0, micromark-core-commonmark@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-core-commonmark@npm:1.1.0" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-factory-destination: ^1.0.0 + micromark-factory-label: ^1.0.0 + micromark-factory-space: ^1.0.0 + micromark-factory-title: ^1.0.0 + micromark-factory-whitespace: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-chunked: ^1.0.0 + micromark-util-classify-character: ^1.0.0 + micromark-util-html-tag-name: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-subtokenize: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.1 + uvu: ^0.5.0 + checksum: c6dfedc95889cc73411cb222fc2330b9eda6d849c09c9fd9eb3cd3398af246167e9d3cdb0ae3ce9ae59dd34a14624c8330e380255d41279ad7350cf6c6be6c5b + languageName: node + linkType: hard + +"micromark-extension-gfm-autolink-literal@npm:^1.0.0": + version: 1.0.5 + resolution: "micromark-extension-gfm-autolink-literal@npm:1.0.5" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-sanitize-uri: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ec2f6bc4a3eb238c1b8be9744454ffbc2957e3d8a248697af5a26bb21479862300c0e40e0a92baf17c299ddf70d4bc4470d4eee112cd92322f87d81e45c2e83d + languageName: node + linkType: hard + +"micromark-extension-gfm-footnote@npm:^1.0.0": + version: 1.1.2 + resolution: "micromark-extension-gfm-footnote@npm:1.1.2" + dependencies: + micromark-core-commonmark: ^1.0.0 + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-sanitize-uri: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: c151a629ee1cd92363c018a50f926a002c944ac481ca72b3720b9529e9c20f1cbef98b0fefdcd2d594af37d0d9743673409cac488af0d2b194210fd16375dcb7 + languageName: node + linkType: hard + +"micromark-extension-gfm-strikethrough@npm:^1.0.0": + version: 1.0.7 + resolution: "micromark-extension-gfm-strikethrough@npm:1.0.7" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-classify-character: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 169e310a4408feade0df80180f60d48c5cc5b7070e5e75e0bbd914e9100273508162c4bb20b72d53081dc37f1ff5834b3afa137862576f763878552c03389811 + languageName: node + linkType: hard + +"micromark-extension-gfm-table@npm:^1.0.0": + version: 1.0.7 + resolution: "micromark-extension-gfm-table@npm:1.0.7" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 4853731285224e409d7e2c94c6ec849165093bff819e701221701aa7b7b34c17702c44f2f831e96b49dc27bb07e445b02b025561b68e62f5c3254415197e7af6 + languageName: node + linkType: hard + +"micromark-extension-gfm-tagfilter@npm:^1.0.0": + version: 1.0.2 + resolution: "micromark-extension-gfm-tagfilter@npm:1.0.2" + dependencies: + micromark-util-types: ^1.0.0 + checksum: 7d2441df51f890c86f8e7cf7d331a570b69c8105fa1c2fc5b737cb739502c16c8ee01cf35550a8a78f89497c5dfacc97cf82d55de6274e8320f3aec25e2b0dd2 + languageName: node + linkType: hard + +"micromark-extension-gfm-task-list-item@npm:^1.0.0": + version: 1.0.5 + resolution: "micromark-extension-gfm-task-list-item@npm:1.0.5" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 929f05343d272cffb8008899289f4cffe986ef98fc622ebbd1aa4ff11470e6b32ed3e1f18cd294adb69cabb961a400650078f6c12b322cc515b82b5068b31960 + languageName: node + linkType: hard + +"micromark-extension-gfm@npm:^2.0.0": + version: 2.0.3 + resolution: "micromark-extension-gfm@npm:2.0.3" + dependencies: + micromark-extension-gfm-autolink-literal: ^1.0.0 + micromark-extension-gfm-footnote: ^1.0.0 + micromark-extension-gfm-strikethrough: ^1.0.0 + micromark-extension-gfm-table: ^1.0.0 + micromark-extension-gfm-tagfilter: ^1.0.0 + micromark-extension-gfm-task-list-item: ^1.0.0 + micromark-util-combine-extensions: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: c4a917c16d7aa5d00d1767b5ce5f3b1a78c0de11dbd5c8f69d2545083568aa6bb13bd9d8e4c7fec5f4da10e7ed8344b15acffc843b33a615c17396a118bc2bc1 + languageName: node + linkType: hard + +"micromark-factory-destination@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-destination@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 9e2b5fb5fedbf622b687e20d51eb3d56ae90c0e7ecc19b37bd5285ec392c1e56f6e21aa7cfcb3c01eda88df88fe528f3acb91a5f57d7f4cba310bc3cd7f824fa + languageName: node + linkType: hard + +"micromark-factory-label@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-label@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: fcda48f1287d9b148c562c627418a2ab759cdeae9c8e017910a0cba94bb759a96611e1fc6df33182e97d28fbf191475237298983bb89ef07d5b02464b1ad28d5 + languageName: node + linkType: hard + +"micromark-factory-space@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-space@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: b58435076b998a7e244259a4694eb83c78915581206b6e7fc07b34c6abd36a1726ade63df8972fbf6c8fa38eecb9074f4e17be8d53f942e3b3d23d1a0ecaa941 + languageName: node + linkType: hard + +"micromark-factory-title@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-title@npm:1.1.0" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 4432d3dbc828c81f483c5901b0c6591a85d65a9e33f7d96ba7c3ae821617a0b3237ff5faf53a9152d00aaf9afb3a9f185b205590f40ed754f1d9232e0e9157b1 + languageName: node + linkType: hard + +"micromark-factory-whitespace@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-whitespace@npm:1.1.0" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ef0fa682c7d593d85a514ee329809dee27d10bc2a2b65217d8ef81173e33b8e83c549049764b1ad851adfe0a204dec5450d9d20a4ca8598f6c94533a73f73fcd + languageName: node + linkType: hard + +"micromark-util-character@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-character@npm:1.2.0" + dependencies: + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 089e79162a19b4a28731736246579ab7e9482ac93cd681c2bfca9983dcff659212ef158a66a5957e9d4b1dba957d1b87b565d85418a5b009f0294f1f07f2aaac + languageName: node + linkType: hard + +"micromark-util-chunked@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-chunked@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: c435bde9110cb595e3c61b7f54c2dc28ee03e6a57fa0fc1e67e498ad8bac61ee5a7457a2b6a73022ddc585676ede4b912d28dcf57eb3bd6951e54015e14dc20b + languageName: node + linkType: hard + +"micromark-util-classify-character@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-classify-character@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 8499cb0bb1f7fb946f5896285fcca65cd742f66cd3e79ba7744792bd413ec46834f932a286de650349914d02e822946df3b55d03e6a8e1d245d1ddbd5102e5b0 + languageName: node + linkType: hard + +"micromark-util-combine-extensions@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-combine-extensions@npm:1.1.0" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ee78464f5d4b61ccb437850cd2d7da4d690b260bca4ca7a79c4bb70291b84f83988159e373b167181b6716cb197e309bc6e6c96a68cc3ba9d50c13652774aba9 + languageName: node + linkType: hard + +"micromark-util-decode-numeric-character-reference@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-decode-numeric-character-reference@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: 4733fe75146e37611243f055fc6847137b66f0cde74d080e33bd26d0408c1d6f44cabc984063eee5968b133cb46855e729d555b9ff8d744652262b7b51feec73 + languageName: node + linkType: hard + +"micromark-util-decode-string@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-decode-string@npm:1.1.0" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-symbol: ^1.0.0 + checksum: f1625155db452f15aa472918499689ba086b9c49d1322a08b22bfbcabe918c61b230a3002c8bc3ea9b1f52ca7a9bb1c3dd43ccb548c7f5f8b16c24a1ae77a813 + languageName: node + linkType: hard + +"micromark-util-encode@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-encode@npm:1.1.0" + checksum: 4ef29d02b12336918cea6782fa87c8c578c67463925221d4e42183a706bde07f4b8b5f9a5e1c7ce8c73bb5a98b261acd3238fecd152e6dd1cdfa2d1ae11b60a0 + languageName: node + linkType: hard + +"micromark-util-html-tag-name@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-html-tag-name@npm:1.2.0" + checksum: ccf0fa99b5c58676dc5192c74665a3bfd1b536fafaf94723bd7f31f96979d589992df6fcf2862eba290ef18e6a8efb30ec8e1e910d9f3fc74f208871e9f84750 + languageName: node + linkType: hard + +"micromark-util-normalize-identifier@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-normalize-identifier@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: 8655bea41ffa4333e03fc22462cb42d631bbef9c3c07b625fd852b7eb442a110f9d2e5902a42e65188d85498279569502bf92f3434a1180fc06f7c37edfbaee2 + languageName: node + linkType: hard + +"micromark-util-resolve-all@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-resolve-all@npm:1.1.0" + dependencies: + micromark-util-types: ^1.0.0 + checksum: 1ce6c0237cd3ca061e76fae6602cf95014e764a91be1b9f10d36cb0f21ca88f9a07de8d49ab8101efd0b140a4fbfda6a1efb72027ab3f4d5b54c9543271dc52c languageName: node linkType: hard -"meow@npm:^8.0.0, meow@npm:^8.1.2": - version: 8.1.2 - resolution: "meow@npm:8.1.2" +"micromark-util-sanitize-uri@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-sanitize-uri@npm:1.2.0" dependencies: - "@types/minimist": ^1.2.0 - camelcase-keys: ^6.2.2 - decamelize-keys: ^1.1.0 - hard-rejection: ^2.1.0 - minimist-options: 4.1.0 - normalize-package-data: ^3.0.0 - read-pkg-up: ^7.0.1 - redent: ^3.0.0 - trim-newlines: ^3.0.0 - type-fest: ^0.18.0 - yargs-parser: ^20.2.3 - checksum: bc23bf1b4423ef6a821dff9734406bce4b91ea257e7f10a8b7f896f45b59649f07adc0926e2917eacd8cf1df9e4cd89c77623cf63dfd0f8bf54de07a32ee5a85 + micromark-util-character: ^1.0.0 + micromark-util-encode: ^1.0.0 + micromark-util-symbol: ^1.0.0 + checksum: 6663f365c4fe3961d622a580f4a61e34867450697f6806f027f21cf63c92989494895fcebe2345d52e249fe58a35be56e223a9776d084c9287818b40c779acc1 languageName: node linkType: hard -"merge-descriptors@npm:1.0.1": - version: 1.0.1 - resolution: "merge-descriptors@npm:1.0.1" - checksum: 5abc259d2ae25bb06d19ce2b94a21632583c74e2a9109ee1ba7fd147aa7362b380d971e0251069f8b3eb7d48c21ac839e21fa177b335e82c76ec172e30c31a26 +"micromark-util-subtokenize@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-subtokenize@npm:1.1.0" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 4a9d780c4d62910e196ea4fd886dc4079d8e424e5d625c0820016da0ed399a281daff39c50f9288045cc4bcd90ab47647e5396aba500f0853105d70dc8b1fc45 languageName: node linkType: hard -"merge-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "merge-stream@npm:2.0.0" - checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 +"micromark-util-symbol@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-symbol@npm:1.1.0" + checksum: 02414a753b79f67ff3276b517eeac87913aea6c028f3e668a19ea0fc09d98aea9f93d6222a76ca783d20299af9e4b8e7c797fe516b766185dcc6e93290f11f88 languageName: node linkType: hard -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 +"micromark-util-types@npm:^1.0.0, micromark-util-types@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-util-types@npm:1.1.0" + checksum: b0ef2b4b9589f15aec2666690477a6a185536927ceb7aa55a0f46475852e012d75a1ab945187e5c7841969a842892164b15d58ff8316b8e0d6cc920cabd5ede7 languageName: node linkType: hard -"methods@npm:~1.1.2": - version: 1.1.2 - resolution: "methods@npm:1.1.2" - checksum: 0917ff4041fa8e2f2fda5425a955fe16ca411591fbd123c0d722fcf02b73971ed6f764d85f0a6f547ce49ee0221ce2c19a5fa692157931cecb422984f1dcd13a +"micromark@npm:^3.0.0": + version: 3.2.0 + resolution: "micromark@npm:3.2.0" + dependencies: + "@types/debug": ^4.0.0 + debug: ^4.0.0 + decode-named-character-reference: ^1.0.0 + micromark-core-commonmark: ^1.0.1 + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-chunked: ^1.0.0 + micromark-util-combine-extensions: ^1.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-encode: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-sanitize-uri: ^1.0.0 + micromark-util-subtokenize: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.1 + uvu: ^0.5.0 + checksum: 56c15851ad3eb8301aede65603473443e50c92a54849cac1dadd57e4ec33ab03a0a77f3df03de47133e6e8f695dae83b759b514586193269e98c0bf319ecd5e4 languageName: node linkType: hard @@ -11320,7 +13202,7 @@ __metadata: languageName: node linkType: hard -"mri@npm:^1.2.0": +"mri@npm:^1.1.0, mri@npm:^1.2.0": version: 1.2.0 resolution: "mri@npm:1.2.0" checksum: 83f515abbcff60150873e424894a2f65d68037e5a7fcde8a9e2b285ee9c13ac581b63cfc1e6826c4732de3aeb84902f7c1e16b7aff46cd3f897a0f757a894e85 @@ -11633,6 +13515,13 @@ __metadata: languageName: node linkType: hard +"nwsapi@npm:^2.2.2": + version: 2.2.7 + resolution: "nwsapi@npm:2.2.7" + checksum: cab25f7983acec7e23490fec3ef7be608041b460504229770e3bfcf9977c41d6fe58f518994d3bd9aa3a101f501089a3d4a63536f4ff8ae4b8c4ca23bdbfda4e + languageName: node + linkType: hard + "object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -11830,7 +13719,7 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^3.0.2": +"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": version: 3.1.0 resolution: "p-limit@npm:3.1.0" dependencies: @@ -11958,6 +13847,15 @@ __metadata: languageName: node linkType: hard +"parse5@npm:^7.0.0, parse5@npm:^7.1.1": + version: 7.1.2 + resolution: "parse5@npm:7.1.2" + dependencies: + entities: ^4.4.0 + checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 + languageName: node + linkType: hard + "parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" @@ -12123,7 +14021,7 @@ __metadata: languageName: node linkType: hard -"pkg-dir@npm:^4.1.0": +"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" dependencies: @@ -12311,6 +14209,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" + dependencies: + "@jest/schemas": ^29.6.3 + ansi-styles: ^5.0.0 + react-is: ^18.0.0 + checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6 + languageName: node + linkType: hard + "pretty-hrtime@npm:^1.0.3": version: 1.0.3 resolution: "pretty-hrtime@npm:1.0.3" @@ -12349,7 +14258,7 @@ __metadata: languageName: node linkType: hard -"prompts@npm:^2.4.0": +"prompts@npm:^2.0.1, prompts@npm:^2.4.0": version: 2.4.2 resolution: "prompts@npm:2.4.2" dependencies: @@ -12387,6 +14296,13 @@ __metadata: languageName: node linkType: hard +"psl@npm:^1.1.33": + version: 1.9.0 + resolution: "psl@npm:1.9.0" + checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d + languageName: node + linkType: hard + "public-encrypt@npm:^4.0.0": version: 4.0.3 resolution: "public-encrypt@npm:4.0.3" @@ -12464,6 +14380,13 @@ __metadata: languageName: node linkType: hard +"pure-rand@npm:^6.0.0": + version: 6.0.3 + resolution: "pure-rand@npm:6.0.3" + checksum: d08701cfd1528c5f9cdca996776c498c92767722561f9b8f9e62645d5025c8a3bf60b90f76f262aaab124e6bb1d58e1b0850722dbca2846a19b708801956e56b + languageName: node + linkType: hard + "qs@npm:6.11.0": version: 6.11.0 resolution: "qs@npm:6.11.0" @@ -12489,6 +14412,13 @@ __metadata: languageName: node linkType: hard +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 + languageName: node + linkType: hard + "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -12684,6 +14614,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^18.0.0": + version: 18.2.0 + resolution: "react-is@npm:18.2.0" + checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e + languageName: node + linkType: hard + "react-lifecycles-compat@npm:^3.0.0": version: 3.0.4 resolution: "react-lifecycles-compat@npm:3.0.4" @@ -12797,15 +14734,15 @@ __metadata: linkType: hard "react-tooltip@npm:^5.21.3": - version: 5.21.3 - resolution: "react-tooltip@npm:5.21.3" + version: 5.21.4 + resolution: "react-tooltip@npm:5.21.4" dependencies: "@floating-ui/dom": ^1.0.0 classnames: ^2.3.0 peerDependencies: react: ">=16.14.0" react-dom: ">=16.14.0" - checksum: 4e16e2b9b3781c24c65bebf2c477d3ec33fc60a7d31243bd9ccd4289cf33f4877eb9dc0b0c54d9fa3eff2dc880c102e2dc38971686ff5a6e1d205aec57a423af + checksum: 9b663c5d9a1472b96d3ed708ecce01052aed267dc739520c9b55389a5e42c195a6bcd0717219f260bf0dadee2452d80a7c5fa14c5c3f8b5cdc6a9174d7f42d4a languageName: node linkType: hard @@ -12939,7 +14876,7 @@ __metadata: languageName: node linkType: hard -"reflect.getprototypeof@npm:^1.0.3": +"reflect.getprototypeof@npm:^1.0.4": version: 1.0.4 resolution: "reflect.getprototypeof@npm:1.0.4" dependencies: @@ -12954,11 +14891,11 @@ __metadata: linkType: hard "regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.0 - resolution: "regenerate-unicode-properties@npm:10.1.0" + version: 10.1.1 + resolution: "regenerate-unicode-properties@npm:10.1.1" dependencies: regenerate: ^1.4.2 - checksum: b1a8929588433ab8b9dc1a34cf3665b3b472f79f2af6ceae00d905fc496b332b9af09c6718fb28c730918f19a00dc1d7310adbaa9b72a2ec7ad2f435da8ace17 + checksum: b80958ef40f125275824c2c47d5081dfaefebd80bff26c76761e9236767c748a4a95a69c053fe29d2df881177f2ca85df4a71fe70a82360388b31159ef19adcf languageName: node linkType: hard @@ -12992,14 +14929,14 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.0": - version: 1.5.0 - resolution: "regexp.prototype.flags@npm:1.5.0" +"regexp.prototype.flags@npm:^1.5.0, regexp.prototype.flags@npm:^1.5.1": + version: 1.5.1 + resolution: "regexp.prototype.flags@npm:1.5.1" dependencies: call-bind: ^1.0.2 define-properties: ^1.2.0 - functions-have-names: ^1.2.3 - checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 + set-function-name: ^2.0.0 + checksum: 869edff00288442f8d7fa4c9327f91d85f3b3acf8cbbef9ea7a220345cf23e9241b6def9263d2c1ebcf3a316b0aa52ad26a43a84aa02baca3381717b3e307f47 languageName: node linkType: hard @@ -13048,6 +14985,18 @@ __metadata: languageName: node linkType: hard +"remark-gfm@npm:^3.0.1": + version: 3.0.1 + resolution: "remark-gfm@npm:3.0.1" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-gfm: ^2.0.0 + micromark-extension-gfm: ^2.0.0 + unified: ^10.0.0 + checksum: 02254f74d67b3419c2c9cf62d799ec35f6c6cd74db25c001361751991552a7ce86049a972107bff8122d85d15ae4a8d1a0618f3bc01a7df837af021ae9b2a04e + languageName: node + linkType: hard + "remark-slug@npm:^6.0.0": version: 6.1.0 resolution: "remark-slug@npm:6.1.0" @@ -13093,6 +15042,22 @@ __metadata: languageName: node linkType: hard +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff + languageName: node + linkType: hard + +"resolve-cwd@npm:^3.0.0": + version: 3.0.0 + resolution: "resolve-cwd@npm:3.0.0" + dependencies: + resolve-from: ^5.0.0 + checksum: 546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 + languageName: node + linkType: hard + "resolve-from@npm:5.0.0, resolve-from@npm:^5.0.0": version: 5.0.0 resolution: "resolve-from@npm:5.0.0" @@ -13136,16 +15101,23 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.22.4": - version: 1.22.4 - resolution: "resolve@npm:1.22.4" +"resolve.exports@npm:^2.0.0": + version: 2.0.2 + resolution: "resolve.exports@npm:2.0.2" + checksum: 1c7778ca1b86a94f8ab4055d196c7d87d1874b96df4d7c3e67bbf793140f0717fd506dcafd62785b079cd6086b9264424ad634fb904409764c3509c3df1653f2 + languageName: node + linkType: hard + +"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.4": + version: 1.22.6 + resolution: "resolve@npm:1.22.6" dependencies: is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 23f25174c2736ce24c6d918910e0d1f89b6b38fefa07a995dff864acd7863d59a7f049e691f93b4b2ee29696303390d921552b6d1b841ed4a8101f517e1d0124 + checksum: d13bf66d4e2ee30d291491f16f2fa44edd4e0cefb85d53249dd6f93e70b2b8c20ec62f01b18662e3cd40e50a7528f18c4087a99490048992a3bb954cf3201a5b languageName: node linkType: hard @@ -13162,16 +15134,16 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin": - version: 1.22.4 - resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=c3c19d" +"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin": + version: 1.22.6 + resolution: "resolve@patch:resolve@npm%3A1.22.6#~builtin::version=1.22.6&hash=c3c19d" dependencies: is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: c45f2545fdc4d21883861b032789e20aa67a2f2692f68da320cc84d5724cd02f2923766c5354b3210897e88f1a7b3d6d2c7c22faeead8eed7078e4c783a444bc + checksum: 9d3b3c67aefd12cecbe5f10ca4d1f51ea190891096497c43f301b086883b426466918c3a64f1bbf1788fabb52b579d58809614006c5d0b49186702b3b8fb746a languageName: node linkType: hard @@ -13264,7 +15236,16 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.0.0": +"sade@npm:^1.7.3": + version: 1.8.1 + resolution: "sade@npm:1.8.1" + dependencies: + mri: ^1.1.0 + checksum: 0756e5b04c51ccdc8221ebffd1548d0ce5a783a44a0fa9017a026659b97d632913e78f7dca59f2496aa996a0be0b0c322afd87ca72ccd909406f49dbffa0f45d + languageName: node + linkType: hard + +"safe-array-concat@npm:^1.0.1": version: 1.0.1 resolution: "safe-array-concat@npm:1.0.1" dependencies: @@ -13365,15 +15346,24 @@ __metadata: linkType: hard "sass@npm:^1.64.2": - version: 1.66.1 - resolution: "sass@npm:1.66.1" + version: 1.67.0 + resolution: "sass@npm:1.67.0" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 74fc11d0fcd5e16c5331b57dd59865705a299c64e89f2b99646869caeb011dc8d0b6144a6c74a90c264e9ef70654207dbf44fc9b7e3393f8bd14809b904c8a52 + checksum: 9e7566e8b7386cf265dddcdb266a023fb5759c5a8f48a11da199c8bf419e5f08f4ff6404d85d6bf5eac01e1f7c7061fdb6b7b65cbfda164e59b0a06b72ac8567 + languageName: node + linkType: hard + +"saxes@npm:^6.0.0": + version: 6.0.0 + resolution: "saxes@npm:6.0.0" + dependencies: + xmlchars: ^2.2.0 + checksum: d3fa3e2aaf6c65ed52ee993aff1891fc47d5e47d515164b5449cbf5da2cbdc396137e55590472e64c5c436c14ae64a8a03c29b9e7389fc6f14035cf4e982ef3b languageName: node linkType: hard @@ -13500,6 +15490,17 @@ __metadata: languageName: node linkType: hard +"set-function-name@npm:^2.0.0, set-function-name@npm:^2.0.1": + version: 2.0.1 + resolution: "set-function-name@npm:2.0.1" + dependencies: + define-data-property: ^1.0.1 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.0 + checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 + languageName: node + linkType: hard + "setimmediate@npm:^1.0.4": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" @@ -13634,6 +15635,16 @@ __metadata: languageName: node linkType: hard +"source-map-support@npm:0.5.13": + version: 0.5.13 + resolution: "source-map-support@npm:0.5.13" + dependencies: + buffer-from: ^1.0.0 + source-map: ^0.6.0 + checksum: 933550047b6c1a2328599a21d8b7666507427c0f5ef5eaadd56b5da0fd9505e239053c66fe181bf1df469a3b7af9d775778eee283cbb7ae16b902ddc09e93a97 + languageName: node + linkType: hard + "source-map-support@npm:^0.5.16, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" @@ -13731,6 +15742,15 @@ __metadata: languageName: node linkType: hard +"stack-utils@npm:^2.0.3": + version: 2.0.6 + resolution: "stack-utils@npm:2.0.6" + dependencies: + escape-string-regexp: ^2.0.0 + checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7 + languageName: node + linkType: hard + "stackframe@npm:^1.3.4": version: 1.3.4 resolution: "stackframe@npm:1.3.4" @@ -13809,6 +15829,16 @@ __metadata: languageName: node linkType: hard +"string-length@npm:^4.0.1": + version: 4.0.2 + resolution: "string-length@npm:4.0.2" + dependencies: + char-regex: ^1.0.2 + strip-ansi: ^6.0.0 + checksum: ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 + languageName: node + linkType: hard + "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -13832,8 +15862,8 @@ __metadata: linkType: hard "string.prototype.matchall@npm:^4.0.8": - version: 4.0.9 - resolution: "string.prototype.matchall@npm:4.0.9" + version: 4.0.10 + resolution: "string.prototype.matchall@npm:4.0.10" dependencies: call-bind: ^1.0.2 define-properties: ^1.2.0 @@ -13842,12 +15872,13 @@ __metadata: has-symbols: ^1.0.3 internal-slot: ^1.0.5 regexp.prototype.flags: ^1.5.0 + set-function-name: ^2.0.0 side-channel: ^1.0.4 - checksum: a68a9914755ec8c9b9129d6fb70603d78b839a1ca4a907e601fcb860109cecfbd1884e8b38989885f9c825c1c2015ff5b1ed9ddac7c8d040e4e4b3c9bc4ed5ed + checksum: 3c78bdeff39360c8e435d7c4c6ea19f454aa7a63eda95fa6fadc3a5b984446a2f9f2c02d5c94171ce22268a573524263fbd0c8edbe3ce2e9890d7cc036cdc3ed languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.7": +"string.prototype.trim@npm:^1.2.8": version: 1.2.8 resolution: "string.prototype.trim@npm:1.2.8" dependencies: @@ -13858,7 +15889,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.6": +"string.prototype.trimend@npm:^1.0.7": version: 1.0.7 resolution: "string.prototype.trimend@npm:1.0.7" dependencies: @@ -13869,7 +15900,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.6": +"string.prototype.trimstart@npm:^1.0.7": version: 1.0.7 resolution: "string.prototype.trimstart@npm:1.0.7" dependencies: @@ -13923,6 +15954,13 @@ __metadata: languageName: node linkType: hard +"strip-bom@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-bom@npm:4.0.0" + checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 + languageName: node + linkType: hard + "strip-final-newline@npm:^2.0.0": version: 2.0.0 resolution: "strip-final-newline@npm:2.0.0" @@ -14022,6 +16060,13 @@ __metadata: languageName: node linkType: hard +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 6e8fc7e1486b8b54bea91199d9535bb72f10842e40c79e882fc94fb7b14b89866adf2fd79efa5ebb5b658bc07fb459ccce5ac0e99ef3d72f474e74aaf284029d + languageName: node + linkType: hard + "synchronous-promise@npm:^2.0.15": version: 2.0.17 resolution: "synchronous-promise@npm:2.0.17" @@ -14253,6 +16298,27 @@ __metadata: languageName: node linkType: hard +"tough-cookie@npm:^4.1.2": + version: 4.1.3 + resolution: "tough-cookie@npm:4.1.3" + dependencies: + psl: ^1.1.33 + punycode: ^2.1.1 + universalify: ^0.2.0 + url-parse: ^1.5.3 + checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc + languageName: node + linkType: hard + +"tr46@npm:^3.0.0": + version: 3.0.0 + resolution: "tr46@npm:3.0.0" + dependencies: + punycode: ^2.1.1 + checksum: 44c3cc6767fb800490e6e9fd64fd49041aa4e49e1f6a012b34a75de739cc9ed3a6405296072c1df8b6389ae139c5e7c6496f659cfe13a04a4bff3a1422981270 + languageName: node + linkType: hard + "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -14267,6 +16333,13 @@ __metadata: languageName: node linkType: hard +"trough@npm:^2.0.0": + version: 2.1.0 + resolution: "trough@npm:2.1.0" + checksum: a577bb561c2b401cc0e1d9e188fcfcdf63b09b151ff56a668da12197fe97cac15e3d77d5b51f426ccfd94255744a9118e9e9935afe81a3644fa1be9783c82886 + languageName: node + linkType: hard + "ts-api-utils@npm:^1.0.1": version: 1.0.3 resolution: "ts-api-utils@npm:1.0.3" @@ -14845,6 +16918,13 @@ __metadata: languageName: node linkType: hard +"type-detect@npm:4.0.8": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 + languageName: node + linkType: hard + "type-fest@npm:^0.16.0": version: 0.16.0 resolution: "type-fest@npm:0.16.0" @@ -14866,6 +16946,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 + languageName: node + linkType: hard + "type-fest@npm:^0.6.0": version: 0.6.0 resolution: "type-fest@npm:0.6.0" @@ -15043,6 +17130,21 @@ __metadata: languageName: node linkType: hard +"unified@npm:^10.0.0": + version: 10.1.2 + resolution: "unified@npm:10.1.2" + dependencies: + "@types/unist": ^2.0.0 + bail: ^2.0.0 + extend: ^3.0.0 + is-buffer: ^2.0.0 + is-plain-obj: ^4.0.0 + trough: ^2.0.0 + vfile: ^5.0.0 + checksum: 053e7c65ede644607f87bd625a299e4b709869d2f76ec8138569e6e886903b6988b21cd9699e471eda42bee189527be0a9dac05936f1d069a5e65d0125d5d756 + languageName: node + linkType: hard + "unique-filename@npm:^3.0.0": version: 3.0.0 resolution: "unique-filename@npm:3.0.0" @@ -15077,6 +17179,24 @@ __metadata: languageName: node linkType: hard +"unist-util-is@npm:^5.0.0": + version: 5.2.1 + resolution: "unist-util-is@npm:5.2.1" + dependencies: + "@types/unist": ^2.0.0 + checksum: ae76fdc3d35352cd92f1bedc3a0d407c3b9c42599a52ab9141fe89bdd786b51f0ec5a2ab68b93fb532e239457cae62f7e39eaa80229e1cb94875da2eafcbe5c4 + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^3.0.0": + version: 3.0.3 + resolution: "unist-util-stringify-position@npm:3.0.3" + dependencies: + "@types/unist": ^2.0.0 + checksum: dbd66c15183607ca942a2b1b7a9f6a5996f91c0d30cf8966fb88955a02349d9eefd3974e9010ee67e71175d784c5a9fea915b0aa0b0df99dcb921b95c4c9e124 + languageName: node + linkType: hard + "unist-util-visit-parents@npm:^3.0.0": version: 3.1.1 resolution: "unist-util-visit-parents@npm:3.1.1" @@ -15087,6 +17207,16 @@ __metadata: languageName: node linkType: hard +"unist-util-visit-parents@npm:^5.0.0, unist-util-visit-parents@npm:^5.1.1": + version: 5.1.3 + resolution: "unist-util-visit-parents@npm:5.1.3" + dependencies: + "@types/unist": ^2.0.0 + unist-util-is: ^5.0.0 + checksum: 8ecada5978994f846b64658cf13b4092cd78dea39e1ba2f5090a5de842ba4852712c02351a8ae95250c64f864635e7b02aedf3b4a093552bb30cf1bd160efbaa + languageName: node + linkType: hard + "unist-util-visit@npm:^2.0.0": version: 2.0.3 resolution: "unist-util-visit@npm:2.0.3" @@ -15098,6 +17228,24 @@ __metadata: languageName: node linkType: hard +"unist-util-visit@npm:^4.0.0": + version: 4.1.2 + resolution: "unist-util-visit@npm:4.1.2" + dependencies: + "@types/unist": ^2.0.0 + unist-util-is: ^5.0.0 + unist-util-visit-parents: ^5.1.1 + checksum: 95a34e3f7b5b2d4b68fd722b6229972099eb97b6df18913eda44a5c11df8b1e27efe7206dd7b88c4ed244a48c474a5b2e2629ab79558ff9eb936840295549cee + languageName: node + linkType: hard + +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 + languageName: node + linkType: hard + "universalify@npm:^2.0.0": version: 2.0.0 resolution: "universalify@npm:2.0.0" @@ -15154,13 +17302,23 @@ __metadata: languageName: node linkType: hard +"url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: ^2.1.1 + requires-port: ^1.0.0 + checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf + languageName: node + linkType: hard + "url@npm:^0.11.0": - version: 0.11.2 - resolution: "url@npm:0.11.2" + version: 0.11.3 + resolution: "url@npm:0.11.3" dependencies: punycode: ^1.4.1 qs: ^6.11.2 - checksum: da5943ab43f4df75af5ed96d8465e3084fc2ea0f01bc73e98fb60899777a644541ea0022451371a419283a27a8bbd1809292212fb4c78a0b4a70f15fd89b8205 + checksum: f9e7886f46a16f96d2e42fbcc5d682c231c55ef5442c1ff66150c0f6556f6e3a97d094a84f51be15ec2432711d212eb60426659ce418f5fcadeaa3f601532c4e languageName: node linkType: hard @@ -15254,11 +17412,25 @@ __metadata: linkType: hard "uuid@npm:^9.0.0": - version: 9.0.0 - resolution: "uuid@npm:9.0.0" + version: 9.0.1 + resolution: "uuid@npm:9.0.1" bin: uuid: dist/bin/uuid - checksum: 8dd2c83c43ddc7e1c71e36b60aea40030a6505139af6bee0f382ebcd1a56f6cd3028f7f06ffb07f8cf6ced320b76aea275284b224b002b289f89fe89c389b028 + checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 + languageName: node + linkType: hard + +"uvu@npm:^0.5.0": + version: 0.5.6 + resolution: "uvu@npm:0.5.6" + dependencies: + dequal: ^2.0.0 + diff: ^5.0.0 + kleur: ^4.0.3 + sade: ^1.7.3 + bin: + uvu: bin.js + checksum: 09460a37975627de9fcad396e5078fb844d01aaf64a6399ebfcfd9e55f1c2037539b47611e8631f89be07656962af0cf48c334993db82b9ae9c3d25ce3862168 languageName: node linkType: hard @@ -15269,7 +17441,7 @@ __metadata: languageName: node linkType: hard -"v8-to-istanbul@npm:^9.0.0": +"v8-to-istanbul@npm:^9.0.0, v8-to-istanbul@npm:^9.0.1": version: 9.1.0 resolution: "v8-to-istanbul@npm:9.1.0" dependencies: @@ -15297,6 +17469,28 @@ __metadata: languageName: node linkType: hard +"vfile-message@npm:^3.0.0": + version: 3.1.4 + resolution: "vfile-message@npm:3.1.4" + dependencies: + "@types/unist": ^2.0.0 + unist-util-stringify-position: ^3.0.0 + checksum: d0ee7da1973ad76513c274e7912adbed4d08d180eaa34e6bd40bc82459f4b7bc50fcaff41556135e3339995575eac5f6f709aba9332b80f775618ea4880a1367 + languageName: node + linkType: hard + +"vfile@npm:^5.0.0": + version: 5.3.7 + resolution: "vfile@npm:5.3.7" + dependencies: + "@types/unist": ^2.0.0 + is-buffer: ^2.0.0 + unist-util-stringify-position: ^3.0.0 + vfile-message: ^3.0.0 + checksum: 642cce703afc186dbe7cabf698dc954c70146e853491086f5da39e1ce850676fc96b169fcf7898aa3ff245e9313aeec40da93acd1e1fcc0c146dc4f6308b4ef9 + languageName: node + linkType: hard + "vm-browserify@npm:^1.1.2": version: 1.1.2 resolution: "vm-browserify@npm:1.1.2" @@ -15304,6 +17498,15 @@ __metadata: languageName: node linkType: hard +"w3c-xmlserializer@npm:^4.0.0": + version: 4.0.0 + resolution: "w3c-xmlserializer@npm:4.0.0" + dependencies: + xml-name-validator: ^4.0.0 + checksum: eba070e78deb408ae8defa4d36b429f084b2b47a4741c4a9be3f27a0a3d1845e277e3072b04391a138f7e43776842627d1334e448ff13ff90ad9fb1214ee7091 + languageName: node + linkType: hard + "walker@npm:^1.0.8": version: 1.0.8 resolution: "walker@npm:1.0.8" @@ -15348,6 +17551,13 @@ __metadata: languageName: node linkType: hard +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: f05588567a2a76428515333eff87200fae6c83c3948a7482ebb109562971e77ef6dc49749afa58abb993391227c5697b3ecca52018793e0cb4620a48f10bd21b + languageName: node + linkType: hard + "webpack-dev-middleware@npm:^6.1.1": version: 6.1.1 resolution: "webpack-dev-middleware@npm:6.1.1" @@ -15428,6 +17638,32 @@ __metadata: languageName: node linkType: hard +"whatwg-encoding@npm:^2.0.0": + version: 2.0.0 + resolution: "whatwg-encoding@npm:2.0.0" + dependencies: + iconv-lite: 0.6.3 + checksum: 7087810c410aa9b689cbd6af8773341a53cdc1f3aae2a882c163bd5522ec8ca4cdfc269aef417a5792f411807d5d77d50df4c24e3abb00bb60192858a40cc675 + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^3.0.0": + version: 3.0.0 + resolution: "whatwg-mimetype@npm:3.0.0" + checksum: ce08bbb36b6aaf64f3a84da89707e3e6a31e5ab1c1a2379fd68df79ba712a4ab090904f0b50e6693b0dafc8e6343a6157e40bf18fdffd26e513cf95ee2a59824 + languageName: node + linkType: hard + +"whatwg-url@npm:^11.0.0": + version: 11.0.0 + resolution: "whatwg-url@npm:11.0.0" + dependencies: + tr46: ^3.0.0 + webidl-conversions: ^7.0.0 + checksum: ed4826aaa57e66bb3488a4b25c9cd476c46ba96052747388b5801f137dd740b73fde91ad207d96baf9f17fbcc80fc1a477ad65181b5eb5fa718d27c69501d7af + languageName: node + linkType: hard + "whatwg-url@npm:^5.0.0": version: 5.0.0 resolution: "whatwg-url@npm:5.0.0" @@ -15483,7 +17719,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.10, which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": +"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": version: 1.1.11 resolution: "which-typed-array@npm:1.1.11" dependencies: @@ -15582,6 +17818,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.11.0": + version: 8.14.2 + resolution: "ws@npm:8.14.2" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 3ca0dad26e8cc6515ff392b622a1467430814c463b3368b0258e33696b1d4bed7510bc7030f7b72838b9fdeb8dbd8839cbf808367d6aae2e1d668ce741d4308b + languageName: node + linkType: hard + "ws@npm:^8.2.3": version: 8.14.1 resolution: "ws@npm:8.14.1" @@ -15597,6 +17848,20 @@ __metadata: languageName: node linkType: hard +"xml-name-validator@npm:^4.0.0": + version: 4.0.0 + resolution: "xml-name-validator@npm:4.0.0" + checksum: af100b79c29804f05fa35aa3683e29a321db9b9685d5e5febda3fa1e40f13f85abc40f45a6b2bf7bee33f68a1dc5e8eaef4cec100a304a9db565e6061d4cb5ad + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 8c70ac94070ccca03f47a81fcce3b271bd1f37a591bf5424e787ae313fcb9c212f5f6786e1fa82076a2c632c0141552babcd85698c437506dfa6ae2d58723062 + languageName: node + linkType: hard + "xtend@npm:^4.0.2, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" @@ -15661,7 +17926,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.0.0": +"yargs@npm:^17.0.0, yargs@npm:^17.3.1": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: @@ -15723,3 +17988,10 @@ __metadata: checksum: f185ba87342ff16f7a06686767c2b2a7af41110c7edf7c1974095d8db7a73792696bcb4a00853de0d2edeb34a5b2ea6a55871bc864227dace682a0a28de33e1f languageName: node linkType: hard + +"zwitch@npm:^2.0.0": + version: 2.0.4 + resolution: "zwitch@npm:2.0.4" + checksum: f22ec5fc2d5f02c423c93d35cdfa83573a3a3bd98c66b927c368ea4d0e7252a500df2a90a6b45522be536a96a73404393c958e945fdba95e6832c200791702b6 + languageName: node + linkType: hard