From 92f2ceb289001ff468da63ca35baa1b22ddfef96 Mon Sep 17 00:00:00 2001 From: Ruslan Konviser Date: Sat, 2 Dec 2023 16:08:36 +0100 Subject: [PATCH 01/44] chore: more logging --- .dockerignore | 10 ++++++++-- .../app/services/client/requests/features/smtp.ts | 2 +- apps/web/app/helpers/validations.ts | 7 ++++--- apps/web/app/services/server/requests/smtp.ts | 3 +++ apps/web/pages/_app.tsx | 6 ++++++ 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/.dockerignore b/.dockerignore index d41865422..269196e49 100644 --- a/.dockerignore +++ b/.dockerignore @@ -17,20 +17,26 @@ Jenkinsfile **/.next **/build -**/node_modules/* **/dist **/out **/*.log **/.vscode + +**/.env **/.env.local **/.env*.local +**/.env*.sample +apps/**/.env +apps/**/.env.local +apps/**/.env*.local +apps/**/.env*.sample fly.toml node_modules - +**/node_modules/* apps/mobile/node_modules apps/desktop/node_modules apps/extensions/node_modules diff --git a/apps/mobile/app/services/client/requests/features/smtp.ts b/apps/mobile/app/services/client/requests/features/smtp.ts index 4442f4fd3..21c7e9ace 100644 --- a/apps/mobile/app/services/client/requests/features/smtp.ts +++ b/apps/mobile/app/services/client/requests/features/smtp.ts @@ -7,7 +7,7 @@ export const smtpConfiguration: () => I_SMTPRequest = () => ({ fromAddress: SMTP_FROM_ADDRESS || '', host: SMTP_HOST || '', port: parseInt(SMTP_PORT, 10) || 0, - secure: SMTP_SECURE === 'true' ? true : false, + secure: SMTP_SECURE === 'true', username: SMTP_USERNAME || '', password: SMTP_PASSWORD || '' }); diff --git a/apps/web/app/helpers/validations.ts b/apps/web/app/helpers/validations.ts index 045ef0156..6971ef3f1 100644 --- a/apps/web/app/helpers/validations.ts +++ b/apps/web/app/helpers/validations.ts @@ -23,10 +23,9 @@ export const authFormValidate = (keys: (keyof IRegisterDataAPI)[], values: IRegi } break; case 'recaptcha': - if(RECAPTCHA_SITE_KEY) { + if (RECAPTCHA_SITE_KEY) { if (!values['recaptcha'] || values['recaptcha'].trim().length < 2) { - err['recaptcha'] = - 'Please check the ReCaptcha checkbox before continue'; + err['recaptcha'] = 'Please check the ReCaptcha checkbox before continue'; } } break; @@ -90,6 +89,8 @@ export function validateForm(keys: (keyof T)[], data: T) { export function validSMTPConfig() { const SMTPConfig = smtpConfiguration(); + console.log(`SMTP Config: ${JSON.stringify(SMTPConfig)}`); + const keys = Object.keys(SMTPConfig) as (keyof I_SMTPRequest)[]; if (keys.some((key) => SMTPConfig[key] === null || SMTPConfig[key] === undefined)) { diff --git a/apps/web/app/services/server/requests/smtp.ts b/apps/web/app/services/server/requests/smtp.ts index 79e9a5b05..d0e1cd695 100644 --- a/apps/web/app/services/server/requests/smtp.ts +++ b/apps/web/app/services/server/requests/smtp.ts @@ -4,6 +4,9 @@ import { serverFetch } from '../fetch'; export function createTenantSmtpRequest({ tenantId, access_token }: { tenantId: string; access_token: string }) { const config = smtpConfiguration(); + + console.log(`SMTP Config: ${JSON.stringify(config)}`); + return serverFetch({ path: '/smtp', method: 'POST', diff --git a/apps/web/pages/_app.tsx b/apps/web/pages/_app.tsx index fd09b3eac..845ca8655 100644 --- a/apps/web/pages/_app.tsx +++ b/apps/web/pages/_app.tsx @@ -86,6 +86,12 @@ MyApp.getInitialProps = async ({ Component, ctx }: { Component: NextPage Date: Sat, 2 Dec 2023 16:49:15 +0100 Subject: [PATCH 02/44] chore: add OTEL and some env defaults --- .../{web.dev.yml => deploy-vercel-dev.yml} | 2 +- .../{web.prod.yml => deploy-vercel-prod.yml} | 2 +- apps/web/app/constants.ts | 6 +- apps/web/next.config.js | 20 +- apps/web/package.json | 8 +- yarn.lock | 1106 ++++++++++++++++- 6 files changed, 1120 insertions(+), 24 deletions(-) rename .github/workflows/{web.dev.yml => deploy-vercel-dev.yml} (97%) rename .github/workflows/{web.prod.yml => deploy-vercel-prod.yml} (96%) diff --git a/.github/workflows/web.dev.yml b/.github/workflows/deploy-vercel-dev.yml similarity index 97% rename from .github/workflows/web.dev.yml rename to .github/workflows/deploy-vercel-dev.yml index 708d06e31..2fee9532f 100644 --- a/.github/workflows/web.dev.yml +++ b/.github/workflows/deploy-vercel-dev.yml @@ -1,4 +1,4 @@ -name: Web Build & Deploy DEV +name: Web Build & Vercel Deploy DEV on: push: branches: diff --git a/.github/workflows/web.prod.yml b/.github/workflows/deploy-vercel-prod.yml similarity index 96% rename from .github/workflows/web.prod.yml rename to .github/workflows/deploy-vercel-prod.yml index e96756ccd..f6b2d4482 100644 --- a/.github/workflows/web.prod.yml +++ b/.github/workflows/deploy-vercel-prod.yml @@ -1,4 +1,4 @@ -name: Web Build & Deploy PROD +name: Web Build & Vercel Deploy PROD on: push: branches: diff --git a/apps/web/app/constants.ts b/apps/web/app/constants.ts index f36e052a6..02d7a9d9f 100644 --- a/apps/web/app/constants.ts +++ b/apps/web/app/constants.ts @@ -32,9 +32,9 @@ export const RECAPTCHA_SITE_KEY = process.env.NEXT_PUBLIC_CAPTCHA_SITE_KEY; export const RECAPTCHA_SECRET_KEY = process.env.CAPTCHA_SECRET_KEY; export const GAUZY_API_SERVER_URL = process.env.GAUZY_API_SERVER_URL || 'https://api.gauzy.co/api'; -export const INVITE_CALLBACK_URL = process.env.INVITE_CALLBACK_URL; +export const INVITE_CALLBACK_URL = process.env.INVITE_CALLBACK_URL || 'https://app.ever.team/auth/passcode'; export const INVITE_CALLBACK_PATH = '/auth/passcode'; -export const VERIFY_EMAIL_CALLBACK_URL = process.env.VERIFY_EMAIL_CALLBACK_URL; +export const VERIFY_EMAIL_CALLBACK_URL = process.env.VERIFY_EMAIL_CALLBACK_URL || 'https://app.ever.team/verify-email'; export const VERIFY_EMAIL_CALLBACK_PATH = '/verify-email'; export const GA_MEASUREMENT_ID = process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID; @@ -73,7 +73,7 @@ export const MEET_JWT_TOKEN_COOKIE_NAME = 'meet-jwt-session'; // BOARD board export const BOARD_APP_DOMAIN = process.env.NEXT_PUBLIC_BOARD_APP_DOMAIN || 'https://board.ever.team'; -export const BOARD_BACKEND_POST_URL = process.env.NEXT_PUBLIC_BOARD_BACKEND_POST_URL; +export const BOARD_BACKEND_POST_URL = process.env.NEXT_PUBLIC_BOARD_BACKEND_POST_URL || 'https://jsonboard.ever.team/api/v2/post/'; export const BOARD_FIREBASE_CONFIG = process.env.NEXT_PUBLIC_BOARD_FIREBASE_CONFIG; // Jitsu diff --git a/apps/web/next.config.js b/apps/web/next.config.js index c1c53edea..80b5b10fd 100644 --- a/apps/web/next.config.js +++ b/apps/web/next.config.js @@ -29,19 +29,19 @@ const nextConfig = { }, // Optional build-time configuration options sentry: { // For all available options, see: https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ - + // Upload a larger set of source maps for prettier stack traces (increases build time) widenClientFileUpload: true, - + // Transpiles SDK to be compatible with IE11 (increases bundle size) transpileClientSDK: true, - + // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load) tunnelRoute: '/monitoring', - + // Hides source maps from generated client bundles hideSourceMaps: true, - + // Automatically tree-shake Sentry logger statements to reduce bundle size disableLogger: true } @@ -50,9 +50,9 @@ const nextConfig = { // Injected content via Sentry wizard below const { withSentryConfig } = require('@sentry/nextjs'); -const sentryWebpackPluginOptions = { - org: process.env.SENTRY_ORG, - project: process.env.SENTRY_PROJECT, +const sentryWebpackPluginOptions = { + org: process.env.SENTRY_ORG || 'ever-co', + project: process.env.SENTRY_PROJECT || 'ever-teams-web', // An auth token is required for uploading source maps. authToken: process.env.SENTRY_AUTH_TOKEN, @@ -60,8 +60,8 @@ const sentryWebpackPluginOptions = { silent: true, // Suppresses all logs dryRun: process.env.NODE_ENV !== "production" - - // Additional config options for the Sentry Webpack plugin. + + // Additional config options for the Sentry Webpack plugin. // Keep in mind that https://github.com/getsentry/sentry-webpack-plugin#options. }; diff --git a/apps/web/package.json b/apps/web/package.json index 19d83883b..899df48c3 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -87,7 +87,13 @@ "string-to-color": "^2.2.2", "tailwind-merge": "^1.14.0", "tailwindcss": "^3.1.8", - "tailwindcss-animate": "^1.0.6" + "tailwindcss-animate": "^1.0.6", + "@opentelemetry/api": "^1.7.0", + "@opentelemetry/sdk-node": "^0.45.1", + "@opentelemetry/auto-instrumentations-node": "^0.40.1", + "@opentelemetry/exporter-trace-otlp-http": "^0.45.1", + "@opentelemetry/resources": "^1.18.1", + "@opentelemetry/semantic-conventions": "^1.18.1" }, "devDependencies": { "@tailwindcss/typography": "^0.5.9", diff --git a/yarn.lock b/yarn.lock index 94a10c29b..222b68347 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2364,6 +2364,14 @@ "@grpc/proto-loader" "^0.7.8" "@types/node" ">=12.12.47" +"@grpc/grpc-js@^1.7.1": + version "1.9.12" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.12.tgz#a45b23a7d9ee1eadc9fa8fe480e27edbc6544cdd" + integrity sha512-Um5MBuge32TS3lAKX02PGCnFM4xPT996yLgZNb5H03pn6NyJ4Iwn5YcPq6Jj9yxGRk7WOgaZFtVRH5iTdYBeUg== + dependencies: + "@grpc/proto-loader" "^0.7.8" + "@types/node" ">=12.12.47" + "@grpc/proto-loader@^0.5.0": version "0.5.6" resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.6.tgz#1dea4b8a6412b05e2d58514d507137b63a52a98d" @@ -2382,6 +2390,77 @@ protobufjs "^7.2.4" yargs "^17.7.2" +"@hapi/b64@5.x.x": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@hapi/b64/-/b64-5.0.0.tgz#b8210cbd72f4774985e78569b77e97498d24277d" + integrity sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw== + dependencies: + "@hapi/hoek" "9.x.x" + +"@hapi/boom@9.x.x", "@hapi/boom@^9.0.0": + version "9.1.4" + resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6" + integrity sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw== + dependencies: + "@hapi/hoek" "9.x.x" + +"@hapi/bourne@2.x.x": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-2.1.0.tgz#66aff77094dc3080bd5df44ec63881f2676eb020" + integrity sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q== + +"@hapi/cryptiles@5.x.x": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/cryptiles/-/cryptiles-5.1.0.tgz#655de4cbbc052c947f696148c83b187fc2be8f43" + integrity sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA== + dependencies: + "@hapi/boom" "9.x.x" + +"@hapi/hoek@9.x.x", "@hapi/hoek@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/iron@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@hapi/iron/-/iron-6.0.0.tgz#ca3f9136cda655bdd6028de0045da0de3d14436f" + integrity sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw== + dependencies: + "@hapi/b64" "5.x.x" + "@hapi/boom" "9.x.x" + "@hapi/bourne" "2.x.x" + "@hapi/cryptiles" "5.x.x" + "@hapi/hoek" "9.x.x" + +"@hapi/podium@^4.1.3": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@hapi/podium/-/podium-4.1.3.tgz#91e20838fc2b5437f511d664aabebbb393578a26" + integrity sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g== + dependencies: + "@hapi/hoek" "9.x.x" + "@hapi/teamwork" "5.x.x" + "@hapi/validate" "1.x.x" + +"@hapi/teamwork@5.x.x": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@hapi/teamwork/-/teamwork-5.1.1.tgz#4d2ba3cac19118a36c44bf49a3a47674de52e4e4" + integrity sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg== + +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@hapi/validate@1.x.x": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@hapi/validate/-/validate-1.1.3.tgz#f750a07283929e09b51aa16be34affb44e1931ad" + integrity sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@headlessui/react@^1.7.7": version "1.7.17" resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.17.tgz#a0ec23af21b527c030967245fd99776aa7352bc6" @@ -4320,6 +4399,643 @@ dependencies: "@octokit/openapi-types" "^18.0.0" +"@opentelemetry/api-logs@0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.45.1.tgz#9e4f2c652dcce798c5627939b22304c2b5ce19c5" + integrity sha512-zVGq/k70l+kB/Wuv3O/zhptP2hvDhEbhDu9EtHde1iWZJf3FedeYS/nWVcMBkkyPAjS/JKNk86WN4CBQLGUuOw== + dependencies: + "@opentelemetry/api" "^1.0.0" + +"@opentelemetry/api@^1.0.0", "@opentelemetry/api@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.7.0.tgz#b139c81999c23e3c8d3c0a7234480e945920fc40" + integrity sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw== + +"@opentelemetry/auto-instrumentations-node@^0.40.1": + version "0.40.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.40.1.tgz#806204b0580c7f7269c8e4c42a0de11b4cddfc93" + integrity sha512-GlXxM3zVSeJn9uKFc9T+FqVrDrnDTGOrZVC3EYX1c+ocl7zoIeyoLiGKNgY/0GkngbyqoDb1O//qtWA58TI91g== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/instrumentation-amqplib" "^0.33.4" + "@opentelemetry/instrumentation-aws-lambda" "^0.37.2" + "@opentelemetry/instrumentation-aws-sdk" "^0.37.0" + "@opentelemetry/instrumentation-bunyan" "^0.33.0" + "@opentelemetry/instrumentation-cassandra-driver" "^0.34.1" + "@opentelemetry/instrumentation-connect" "^0.32.3" + "@opentelemetry/instrumentation-cucumber" "^0.1.2" + "@opentelemetry/instrumentation-dataloader" "^0.5.3" + "@opentelemetry/instrumentation-dns" "^0.32.4" + "@opentelemetry/instrumentation-express" "^0.33.3" + "@opentelemetry/instrumentation-fastify" "^0.32.4" + "@opentelemetry/instrumentation-fs" "^0.8.3" + "@opentelemetry/instrumentation-generic-pool" "^0.32.4" + "@opentelemetry/instrumentation-graphql" "^0.36.0" + "@opentelemetry/instrumentation-grpc" "^0.45.1" + "@opentelemetry/instrumentation-hapi" "^0.33.2" + "@opentelemetry/instrumentation-http" "^0.45.1" + "@opentelemetry/instrumentation-ioredis" "^0.36.0" + "@opentelemetry/instrumentation-knex" "^0.32.3" + "@opentelemetry/instrumentation-koa" "^0.36.2" + "@opentelemetry/instrumentation-lru-memoizer" "^0.33.4" + "@opentelemetry/instrumentation-memcached" "^0.32.4" + "@opentelemetry/instrumentation-mongodb" "^0.37.3" + "@opentelemetry/instrumentation-mongoose" "^0.33.4" + "@opentelemetry/instrumentation-mysql" "^0.34.4" + "@opentelemetry/instrumentation-mysql2" "^0.34.4" + "@opentelemetry/instrumentation-nestjs-core" "^0.33.3" + "@opentelemetry/instrumentation-net" "^0.32.3" + "@opentelemetry/instrumentation-pg" "^0.37.1" + "@opentelemetry/instrumentation-pino" "^0.34.3" + "@opentelemetry/instrumentation-redis" "^0.35.4" + "@opentelemetry/instrumentation-redis-4" "^0.35.5" + "@opentelemetry/instrumentation-restify" "^0.34.2" + "@opentelemetry/instrumentation-router" "^0.33.3" + "@opentelemetry/instrumentation-socket.io" "^0.34.4" + "@opentelemetry/instrumentation-tedious" "^0.6.4" + "@opentelemetry/instrumentation-winston" "^0.33.0" + "@opentelemetry/resource-detector-alibaba-cloud" "^0.28.4" + "@opentelemetry/resource-detector-aws" "^1.3.4" + "@opentelemetry/resource-detector-container" "^0.3.4" + "@opentelemetry/resource-detector-gcp" "^0.29.4" + "@opentelemetry/resources" "^1.12.0" + "@opentelemetry/sdk-node" "^0.45.1" + +"@opentelemetry/context-async-hooks@1.18.1": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.18.1.tgz#d9eb17e23e469f85b44ca1c4788c42a06a62cc84" + integrity sha512-HHfJR32NH2x0b69CACCwH8m1dpNALoCTtpgmIWMNkeMGNUeKT48d4AX4xsF4uIRuUoRTbTgtSBRvS+cF97qwCQ== + +"@opentelemetry/core@1.18.1", "@opentelemetry/core@^1.0.0", "@opentelemetry/core@^1.1.0", "@opentelemetry/core@^1.8.0": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.18.1.tgz#d2e45f6bd6be4f00d20d18d4f1b230ec33805ae9" + integrity sha512-kvnUqezHMhsQvdsnhnqTNfAJs3ox/isB0SVrM1dhVFw7SsB7TstuVa6fgWnN2GdPyilIFLUvvbTZoVRmx6eiRg== + dependencies: + "@opentelemetry/semantic-conventions" "1.18.1" + +"@opentelemetry/exporter-trace-otlp-grpc@0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.45.1.tgz#46d2336444bbf1f33ab1ffa565dcb32460323c94" + integrity sha512-c/Wrn6LUqPiRgKhvMydau6kPz4ih6b/uwospiavjXju98ZfVv+KjaIF13cblW+4cQ6ZR3lm7t66umQfXrGBhPQ== + dependencies: + "@grpc/grpc-js" "^1.7.1" + "@opentelemetry/core" "1.18.1" + "@opentelemetry/otlp-grpc-exporter-base" "0.45.1" + "@opentelemetry/otlp-transformer" "0.45.1" + "@opentelemetry/resources" "1.18.1" + "@opentelemetry/sdk-trace-base" "1.18.1" + +"@opentelemetry/exporter-trace-otlp-http@0.45.1", "@opentelemetry/exporter-trace-otlp-http@^0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.45.1.tgz#2265181bd4787dc6660bdac33d658490a883283a" + integrity sha512-a6CGqSG66n5R1mghzLMzyzn3iGap1b0v+0PjKFjfYuwLtpHQBxh2PHxItu+m2mXSwnM4R0GJlk9oUW5sQkCE0w== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/otlp-exporter-base" "0.45.1" + "@opentelemetry/otlp-transformer" "0.45.1" + "@opentelemetry/resources" "1.18.1" + "@opentelemetry/sdk-trace-base" "1.18.1" + +"@opentelemetry/exporter-trace-otlp-proto@0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.45.1.tgz#57f786815ae0b5884459195e2044f58c6ba57e7b" + integrity sha512-8QI6QARxNP4y9RUpuQxXjw2HyRNyeuD9CWEhS5ON44Mt+XP7YbOZR3GLx2Ml2JZ8uzB5dd2EGlMgaMuZe36D5Q== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/otlp-exporter-base" "0.45.1" + "@opentelemetry/otlp-proto-exporter-base" "0.45.1" + "@opentelemetry/otlp-transformer" "0.45.1" + "@opentelemetry/resources" "1.18.1" + "@opentelemetry/sdk-trace-base" "1.18.1" + +"@opentelemetry/exporter-zipkin@1.18.1": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.18.1.tgz#01e7bd854971a81ae22ac1b3417e61017d074d44" + integrity sha512-RmoWVFXFhvIh3q4szUe8I+/vxuMR0HNsOm39zNxnWJcK7JDwnPra9cLY/M78u6bTgB6Fte8GKgU128vvDzz0Iw== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/resources" "1.18.1" + "@opentelemetry/sdk-trace-base" "1.18.1" + "@opentelemetry/semantic-conventions" "1.18.1" + +"@opentelemetry/instrumentation-amqplib@^0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.33.4.tgz#1acccf3ae3efb41a56faf9be1460ef15ffb72caf" + integrity sha512-fL+WrEsIM3cP4VTOsqR8enlT/4VX+OCVF7WALN85bgdFPSRpv2X7ZqsXOdYd358cAp4KO9MiveSkAKwKcTXKLw== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-aws-lambda@^0.37.2": + version "0.37.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.37.2.tgz#37f4f0a4d6bd7f02276ec0aaa1264a92c0af7938" + integrity sha512-PJnbfI2A/0t3HY/iMwtBzMYEhhNkdqu4eXkAt7d8x2atUwGYN/OfQXnyKy0+OHxjL62Ek9eab8AFxNHzJID0kA== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/propagator-aws-xray" "^1.3.1" + "@opentelemetry/resources" "^1.8.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/aws-lambda" "8.10.122" + +"@opentelemetry/instrumentation-aws-sdk@^0.37.0": + version "0.37.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.37.0.tgz#646504798ce397321bac66efde88a77fdc250269" + integrity sha512-xtu7RKk4sYqJVe0PAhIC2m/ag9JO2XyZKjV2P1iOT029ZYOfDQ1RPMFHtm9z73uC9WggPS0eqQYVKP25E5ocwA== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/propagation-utils" "^0.30.4" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-bunyan@^0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.33.0.tgz#6df62168a7cc6ff3f3fc323e6398ccfc8a51a176" + integrity sha512-i3xfmhajtOEuFO+9yMU/wJiH0tY4VtIlbJKGIKVHFOsoNqPQpG7iUQP01p0FRoje+UB+ZUvs4hU7fCZzwtnC1g== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@types/bunyan" "1.8.9" + +"@opentelemetry/instrumentation-cassandra-driver@^0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.34.1.tgz#d81b4e5c1b1061e92d99e342e87a9e853de8876c" + integrity sha512-n2bjMeKctNpXYW/vHURMCOXm56HFgQiD4fyIWioUvLROaPunKDvQpJlCLS88QMQ3f3pz/fp8Bde6gXuciLePxQ== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-connect@^0.32.3": + version "0.32.3" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.32.3.tgz#cf9d20ebc4e01670af8df4eec92f8f91a28d6bf5" + integrity sha512-5BK52mIjNuKgY/RV8h0GLmS4qunXqkCIL7NZ73dJ40pnKMA8jqF5D5A2tFjWkCCQ4BdYfAfyjjiA+uTGoL3ZGg== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/connect" "3.4.36" + +"@opentelemetry/instrumentation-cucumber@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.1.2.tgz#171759a79391fc619eeb51b46895dfb21ec669e9" + integrity sha512-+TaM9hD256nuPrcnuy8UpiJbuMFUR/zW0K1nLgcDvJyR5TEhKmBPqDfUQzy1i+zyeJM4NiyqZoOCW6iTQnMPoA== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-dataloader@^0.5.3": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.5.3.tgz#b50d80f2c9937014c5199bcee1fe1f751100bf69" + integrity sha512-tHpLbcjtdiDFLHFfYjmyKjnDYCQLmp6ceflsA9H4BEEwSE2p5ZW512TQl3abzb3EQK2V7+I1gqIuMGHKxmKIlg== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + +"@opentelemetry/instrumentation-dns@^0.32.4": + version "0.32.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.32.4.tgz#58e872c0a781d9d95916841cab2b5a12fb5e3f83" + integrity sha512-04DTRKFDEpKgYpCqPGlnpCS0atuRUmAPj35xNGV/H7bZTCA3ZR77NeR3f4tYVfqlnsi3KiM1HzgrhwNBskVIEw== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + semver "^7.5.4" + +"@opentelemetry/instrumentation-express@^0.33.3": + version "0.33.3" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-express/-/instrumentation-express-0.33.3.tgz#3786aa443652207edcd9e86d10ae74dda8001004" + integrity sha512-Vnt2KT/HnFo0533vyr1l4CV46dBp2KfVVVgu3wdo0ORr1FBhThCw5yvfBUffK/ZS0aTzfJ1ZyJm10qm4h6Prgg== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/express" "4.17.18" + +"@opentelemetry/instrumentation-fastify@^0.32.4": + version "0.32.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.32.4.tgz#5c183a65a28cc4d09d3d1f41e76e4e79370b4ce2" + integrity sha512-uAgH8M483yP2eezc+xnuViOkIq3kzD3+gX9RfPCp9zNA1JV/CIe3i34+CkelBRtI62PyiTijrCxHykCcm5uAXQ== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-fs@^0.8.3": + version "0.8.3" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.8.3.tgz#f801c895c366ca5aa2c3f4e93ed44bb579a5ec70" + integrity sha512-o5uy91VAvXl1i71/AH3C6KV/6KQVGsnuNmjfUAJo4QqY2ta0Uzlpa0wy0nXvQUAP/3QbTx7NcF3rk3mVxLmgeg== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-generic-pool@^0.32.4": + version "0.32.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.32.4.tgz#9267f22e0b46f4778120fe8b53939f3eafa80dbe" + integrity sha512-NDNzoZ0MCmHeMQRxm1eL0l8fCoHIYFiugu5AZ4wt+S2wbgyh5BCd+ZAqTzSFEJGKGg7KZMfHgVRTiCsj+ljfvA== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-graphql@^0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.36.0.tgz#e885fcca849ab63c81a0f2eae31ef6f2f3ab9c67" + integrity sha512-H5nezZCV4HUjmPi4o2QlFXGzvldZiJ7hAEldy+37qMmm5PaqLmFW4w084/C+4IdPoxm4gJRtI8vkXJQJqqyktQ== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + +"@opentelemetry/instrumentation-grpc@^0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.45.1.tgz#e4ae7285d8fff0d7c93db1c9c1e7b0164748520f" + integrity sha512-KyssKMi+cMAWc+9buGs7nHjnHm4wQPH99etunFblZCKQlzgPB+s8Q6aIlJ3LCkCaOGAhofpr4IkWh7dMcapJJQ== + dependencies: + "@opentelemetry/instrumentation" "0.45.1" + "@opentelemetry/semantic-conventions" "1.18.1" + +"@opentelemetry/instrumentation-hapi@^0.33.2": + version "0.33.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.33.2.tgz#59fc1c54e5d496c9c5e7eb6ed1225e1d14d24b5e" + integrity sha512-XSe1/emVguKMEiV+ctva+Z9GI/3scPBwtNFAVcJFpM4ekK0SiIF73uBKmaC0mVnU+TIToPlkOC7nbkEbXq6y1g== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/hapi__hapi" "20.0.13" + +"@opentelemetry/instrumentation-http@^0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-http/-/instrumentation-http-0.45.1.tgz#d337aac0e46ded596db594ed587035a993b78707" + integrity sha512-ph7kv38Lipg/ggvoNJrwc3RCceLnTkVZwRbE5iu6w7fGsMjjc9jwlSmaOXKxUJjIimil2hL1qBm8xg2lmOVwxg== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/instrumentation" "0.45.1" + "@opentelemetry/semantic-conventions" "1.18.1" + semver "^7.5.2" + +"@opentelemetry/instrumentation-ioredis@^0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.36.0.tgz#53fc0f0342b25813b2db7378c7b2d37e678ac0e8" + integrity sha512-LmEHE3w8JzPpm2TEPiwjAjOSIPWM6t39TFNXu796IJba35k0ZZG9qQRaxv8CS61EZIT1eH7qgExHwEmPHsOl8Q== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/redis-common" "^0.36.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/ioredis4" "npm:@types/ioredis@^4.28.10" + +"@opentelemetry/instrumentation-knex@^0.32.3": + version "0.32.3" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.32.3.tgz#c2e51f2f0563834a1d963d811cac02ff33ee819b" + integrity sha512-8+JvZ1Gs9pMe6pgQfMVjth52WCUuKUu0L0tx237VAA53HHUtsCNPznBHp2EAlsLGSLLptfPvzXz/Bdp009ja8w== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-koa@^0.36.2": + version "0.36.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.36.2.tgz#141ee9a4a25bfd01b283c9ec07e302a3bc90f6e5" + integrity sha512-93DjNOvZRBoqIRg4B+HI6k9vV7FcxfhN8c5/7HvzdUyaQ+GJzWMhTwpz9/P1K9NTEZA4+mNuD/BR3kzKJo52EQ== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/koa" "2.13.9" + "@types/koa__router" "12.0.3" + +"@opentelemetry/instrumentation-lru-memoizer@^0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.33.4.tgz#e41c63fe2ec105aa7f6ea8604f75f04b1818eb10" + integrity sha512-SOO9y15z27n5VpjjHiT1r1H+uNxBHRaHX1z6DhGG0BjaJkyu9p6CSjXhsXu2gsAoubRKMSAd0Q+axf1MiVqhvw== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + +"@opentelemetry/instrumentation-memcached@^0.32.4": + version "0.32.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.32.4.tgz#1bd7ff775c089dabe771191ba76b4164eea25685" + integrity sha512-q9uswokVrtgKFiVNb3QoTFFulXiHpm6FDOvI/3uO8/TnhhpUh776EuD5kDI0YWZ3J+gkN2Dj82KrmOfqBS5o1A== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/memcached" "^2.2.6" + +"@opentelemetry/instrumentation-mongodb@^0.37.3": + version "0.37.3" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.37.3.tgz#1a6690c4e8b7844b04db51a00ce9c75abd8300a6" + integrity sha512-RraVhFVy+vD4nApxORSqnKTWJ+tQLn1w+ipAXwk2IWgcDDCurfaIg6xIYzowvmx7rSkP2phUF07kAcQXiPapMQ== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/sdk-metrics" "^1.9.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-mongoose@^0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.33.4.tgz#ab275cb9452f034fea1fbb0305bd1f5d6dc97f94" + integrity sha512-qPwurJjzxJVIzvlRmN4KADQ+BeD2KsDcEH7fMRPMZ35R90+0fQO3RFmINaO5zUpmYY1tHsw3zhnQVD23Dq+pfA== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-mysql2@^0.34.4": + version "0.34.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.34.4.tgz#cdfe4d6c127a1287e5618f8b3b2e662f66c46bb2" + integrity sha512-pgf7UUMiQFUbfzj2WkjOdzT8IoffsqlAbIdMobyAc2Ca90fIYrpEeIpurkzDJWsw1x4GaQRXmJuERhccgr5BSg== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@opentelemetry/sql-common" "^0.40.0" + +"@opentelemetry/instrumentation-mysql@^0.34.4": + version "0.34.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.34.4.tgz#24a5fe176b23cecc6ac5f4ee665ad4d4ac211bd3" + integrity sha512-LWpCGoKuSoHYIzI/SN3unkNkthdFHGyA3vJJWPmtLPxEP9qtCc2gAJUQQ6Q+73YJmHZdXlZSe7sOqGdKx/KyjQ== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/mysql" "2.15.22" + +"@opentelemetry/instrumentation-nestjs-core@^0.33.3": + version "0.33.3" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.33.3.tgz#40bbf1acfccee2e371af71ef6f7edcd5dfc3d80f" + integrity sha512-B5v8Qi0chpHHgp/BeL5EcxQnnjm6OTYiMlGk6rM5X/xz9AdB60fAIXWerKKrG1QQ8JVcS5O4nhP4NzPC0JLjWw== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-net@^0.32.3": + version "0.32.3" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-net/-/instrumentation-net-0.32.3.tgz#10214094bab7a30d6ed6e4dcefe2f7c146f1239e" + integrity sha512-v8TiTNk0v78HPsrKclGOwtMQXSfCKBIsZ0IP6dweTHtwdrX905BBdsnnCLyo28UkqybJ1BH0ulf7uk6BrqjfmA== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-pg@^0.37.1": + version "0.37.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.37.1.tgz#d889691f699718cbbf672f52dcf15ab9d1fd39b2" + integrity sha512-yJcTdwsnFqHLFR+uaS2mIvXfHnlzSD2VWgSvka9Y3SSZepcpiEbVs9G897p0XVNpNImo4+CfhOD6Mh5kL6o7Vg== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@opentelemetry/sql-common" "^0.40.0" + "@types/pg" "8.6.1" + "@types/pg-pool" "2.0.4" + +"@opentelemetry/instrumentation-pino@^0.34.3": + version "0.34.3" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.34.3.tgz#86a3b704b9af6c89f1b487ef2effa885d17dc4bf" + integrity sha512-b2ZWogLb8JsdiB//cb1/8Fq3nXKnejSrNy5iArpC5eapVkJ7zq9jj7/Y0q8nKcK5I5bud1aztRe5K754SQ5LlQ== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + +"@opentelemetry/instrumentation-redis-4@^0.35.5": + version "0.35.5" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.35.5.tgz#b0f00f055be05c1662636d4312c6f10a81e092cc" + integrity sha512-+CuWyS1QOc/RYGSyLr/3VkXiNVU4rstsJi+b5j1sh4Mzy4sIrOtRQRcl74PXh06vOnSyGTToyQ9n4BKZuHODbQ== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/redis-common" "^0.36.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-redis@^0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.35.4.tgz#818d62b49294eed308aa4387e4e3d2c6a2c0935d" + integrity sha512-MNO/cuHQMeafNu+K8PdrZDGPjWLsQTmyfJzzjasQgm6ELe+/6deNZzsAXkRK4e4sx+FJH7NDnyyqti/dhB4IeQ== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/redis-common" "^0.36.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-restify@^0.34.2": + version "0.34.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.34.2.tgz#f1fa78ad188441b5d65c85657f7c869479ffd62e" + integrity sha512-W9fZJ6hH7PNIhzcKcmFjUgU87vnM1gPa/YTW724lZ9ItHPUol4wAcnv/F88xM+eouuZKLmCaCahZYp0tx7D/Ig== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-router@^0.33.3": + version "0.33.3" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-router/-/instrumentation-router-0.33.3.tgz#ffd3a9a224a95249c88e35e317ed69223d4b6a88" + integrity sha512-LbD+9YBx4SKK10WQ06s2iy9/tN9lQmlgneqem46WKi8rX0W2vo1VX5TEM+Bvn7d5lM5uaPDFGosQR++g52BSDQ== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-socket.io@^0.34.4": + version "0.34.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.34.4.tgz#de8d93e70f8520c7de017766afa8c873076551f9" + integrity sha512-r56esRFNEULo8p4iJ0xsd3JkzUPPtLrIeiX0YnqI5hzaoOz3bmUO7qu6/iiEX9/Ej9/rL0U5ZaEIEmagJIUcIw== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-tedious@^0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.6.4.tgz#b7eafdbf514c0cc88146c4fbd44553acd8dfb6f6" + integrity sha512-bjoagT4AO26QXpv7bE4Vyrwcqxq0ntA2pWCLDHuXRnlt+iWyQm4dS/ExjQR4OuO8aRgeuk/3YC7dSl1rtdO7Kg== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/tedious" "^4.0.10" + +"@opentelemetry/instrumentation-winston@^0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.33.0.tgz#b93979eb8e908d964035ffbd70205985bf9c71c1" + integrity sha512-kf4GC6/IVDt+XumUZ54kB3G+1Kc3TfaLY63uZ+9Qi25LBPeBSYJHQugSvxZ9mK/5Uyf9rPxW2FevjblNyaY54w== + dependencies: + "@opentelemetry/instrumentation" "^0.45.1" + +"@opentelemetry/instrumentation@0.45.1", "@opentelemetry/instrumentation@^0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.45.1.tgz#043ac90a889fae8a551c8d06e16be443984449af" + integrity sha512-V1Cr0g8hSg35lpW3G/GYVZurrhHrQZJdmP68WyJ83f1FDn3iru+/Vnlto9kiOSm7PHhW+pZGdb9Fbv+mkQ31CA== + dependencies: + "@types/shimmer" "^1.0.2" + import-in-the-middle "1.4.2" + require-in-the-middle "^7.1.1" + semver "^7.5.2" + shimmer "^1.2.1" + +"@opentelemetry/otlp-exporter-base@0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.45.1.tgz#7170ec200152f89d74b2cf82fcf21fd32deebf03" + integrity sha512-Jvd6x8EwWGKEPWF4tkP4LpTPXiIkkafMNMvMJUfJd5DyNAftL1vAz+48jmi3URL2LMPkGryrvWPz8Tdu917gQw== + dependencies: + "@opentelemetry/core" "1.18.1" + +"@opentelemetry/otlp-grpc-exporter-base@0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.45.1.tgz#2b2cb53cbedd169d7638b81c1253ae7e99a4b2d3" + integrity sha512-81X4mlzaAFoQCSXCgvYoMFyTy3mBhf8DD3J8bjW6/PH/rGZPJJkyYW0/YzepMrmBZXqlKZpTOU1aJ8sebVvDvw== + dependencies: + "@grpc/grpc-js" "^1.7.1" + "@opentelemetry/core" "1.18.1" + "@opentelemetry/otlp-exporter-base" "0.45.1" + protobufjs "^7.2.3" + +"@opentelemetry/otlp-proto-exporter-base@0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.45.1.tgz#791129f256f6c3ae298e0cd96020eaa65d7a0689" + integrity sha512-jtDkly6EW8TZHpbPpwJV9YT5PgbtL5B2UU8zcyGDiLT1wkIAYjFJZ1AqWmROIpydu8ohMq0dRwe4u0izNMdHpA== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/otlp-exporter-base" "0.45.1" + protobufjs "^7.2.3" + +"@opentelemetry/otlp-transformer@0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.45.1.tgz#8f6590b93f177510983bea3055e5a3f3d30faad2" + integrity sha512-FhIHgfC0b0XtoBrS5ISfva939yWffNl47ypXR8I7Ru+dunlySpmf2TLocKHYLHGcWiuoeSNO5O4dZCmSKOtpXw== + dependencies: + "@opentelemetry/api-logs" "0.45.1" + "@opentelemetry/core" "1.18.1" + "@opentelemetry/resources" "1.18.1" + "@opentelemetry/sdk-logs" "0.45.1" + "@opentelemetry/sdk-metrics" "1.18.1" + "@opentelemetry/sdk-trace-base" "1.18.1" + +"@opentelemetry/propagation-utils@^0.30.4": + version "0.30.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagation-utils/-/propagation-utils-0.30.4.tgz#a5f28249066374742608b91a8bad02f945e8dc00" + integrity sha512-drYvwfhdXZ6ax5xnpuEQ/0C0AaCcxXcf47wZFNIK4DZu2RJmGk24XUSGWg5XI9gMKBe5qwXWBh9aSlSLWdA/Ww== + +"@opentelemetry/propagator-aws-xray@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.3.1.tgz#7fc77a95fe89c705442b0e5a4218422c2954cc07" + integrity sha512-6fDMzFlt5r6VWv7MUd0eOpglXPFqykW8CnOuUxJ1VZyLy6mV1bzBlzpsqEmhx1bjvZYvH93vhGkQZqrm95mlrQ== + dependencies: + "@opentelemetry/core" "^1.0.0" + +"@opentelemetry/propagator-b3@1.18.1": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.18.1.tgz#e7be021bebdb1851eb9322a6f70bbc8d688b6ec8" + integrity sha512-oSTUOsnt31JDx5SoEy27B5jE1/tiPvvE46w7CDKj0R5oZhCCfYH2bbSGa7NOOyDXDNqQDkgqU1DIV/xOd3f8pw== + dependencies: + "@opentelemetry/core" "1.18.1" + +"@opentelemetry/propagator-jaeger@1.18.1": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.18.1.tgz#9ce06ba88a375a27d9e0670280307d88c5c99951" + integrity sha512-Kh4M1Qewv0Tbmts6D8LgNzx99IjdE18LCmY/utMkgVyU7Bg31Yuj+X6ZyoIRKPcD2EV4rVkuRI16WVMRuGbhWA== + dependencies: + "@opentelemetry/core" "1.18.1" + +"@opentelemetry/redis-common@^0.36.1": + version "0.36.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/redis-common/-/redis-common-0.36.1.tgz#79bca902603dd27862223a751be0f4bb0be54c2b" + integrity sha512-YjfNEr7DK1Ymc5H0bzhmqVvMcCs+PUEUerzrpTFdHfZxj3HpnnjZTIFKx/gxiL/sajQ8dxycjlreoYTVYKBXlw== + +"@opentelemetry/resource-detector-alibaba-cloud@^0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.28.4.tgz#2396ef2d86ca1e541099abba691955b17ad12e90" + integrity sha512-acesz8NgW6asYZNWJvLT/PwaM18iFaVgiEkhPEVtAberyl9+l+e8FBSvCFgV6KSAPnBMbdv11dkN1dSAAqqREg== + dependencies: + "@opentelemetry/resources" "^1.0.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/resource-detector-aws@^1.3.4": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.3.4.tgz#5b851817b58217daae9c5498533176884dee07ad" + integrity sha512-G6QK5kcLbqxF4zNFfuXyqZtWecNzwKVVqo/gEXlF3EZSIImPH2bGkElL8HpW9OGktWCqbbjYRTSo8VEjs6PxWA== + dependencies: + "@opentelemetry/core" "^1.0.0" + "@opentelemetry/resources" "^1.0.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/resource-detector-container@^0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-container/-/resource-detector-container-0.3.4.tgz#eb9d3bc503bb94de2994874f353f49b13a850ceb" + integrity sha512-p04SnseEk5P18T+90LscSdMYmehrn+paoLgE3s0BEusA+FDail1jRD0SsnoTHO94SM0XePIeaG6ip2n4Id9+8Q== + dependencies: + "@opentelemetry/resources" "^1.0.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/resource-detector-gcp@^0.29.4": + version "0.29.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.29.4.tgz#1b5aee09bc520c9b3c902c5f2cd0ea6bff2a98a7" + integrity sha512-YoUYYwjcCRRxkHHFco29Hli+dVrIPMDTkJqQ0BaH4MDkfFg4HEbO/WarNHxSv5wAIl3SiI4sYyNJ6qfK5Z92zQ== + dependencies: + "@opentelemetry/core" "^1.0.0" + "@opentelemetry/resources" "^1.0.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + gcp-metadata "^6.0.0" + +"@opentelemetry/resources@1.18.1", "@opentelemetry/resources@^1.0.0", "@opentelemetry/resources@^1.12.0", "@opentelemetry/resources@^1.18.1", "@opentelemetry/resources@^1.8.0": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.18.1.tgz#e27bdc4715bccc8cd4a72d4aca3995ad0a496fe7" + integrity sha512-JjbcQLYMttXcIabflLRuaw5oof5gToYV9fuXbcsoOeQ0BlbwUn6DAZi++PNsSz2jjPeASfDls10iaO/8BRIPRA== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/semantic-conventions" "1.18.1" + +"@opentelemetry/sdk-logs@0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.45.1.tgz#d59a99147ab15eb36757932517dfc9a10e1645e9" + integrity sha512-z0RRgW4LeKEKnhXS4F/HnqB6+7gsy63YK47F4XAJYHs4s1KKg8XnQ2RkbuL31i/a9nXkylttYtvsT50CGr487g== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/resources" "1.18.1" + +"@opentelemetry/sdk-metrics@1.18.1", "@opentelemetry/sdk-metrics@^1.9.1": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.18.1.tgz#1dd334744a1e5d2eec27e9e9765c73cd2f43aef3" + integrity sha512-TEFgeNFhdULBYiCoHbz31Y4PDsfjjxRp8Wmdp6ybLQZPqMNEb+dRq+XN8Xw3ivIgTaf9gYsomgV5ensX99RuEQ== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/resources" "1.18.1" + lodash.merge "^4.6.2" + +"@opentelemetry/sdk-node@^0.45.1": + version "0.45.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-node/-/sdk-node-0.45.1.tgz#86e238e9dae5187132d0a2a506caeedd098071c3" + integrity sha512-VtYvlz2ydfJLuOUhCnGER69mz2KUYk3/kpbqI1FWlUP+kzTwivMuy7hIPPv6KmuOIMYWmW4lM+WyJACHqNvROw== + dependencies: + "@opentelemetry/api-logs" "0.45.1" + "@opentelemetry/core" "1.18.1" + "@opentelemetry/exporter-trace-otlp-grpc" "0.45.1" + "@opentelemetry/exporter-trace-otlp-http" "0.45.1" + "@opentelemetry/exporter-trace-otlp-proto" "0.45.1" + "@opentelemetry/exporter-zipkin" "1.18.1" + "@opentelemetry/instrumentation" "0.45.1" + "@opentelemetry/resources" "1.18.1" + "@opentelemetry/sdk-logs" "0.45.1" + "@opentelemetry/sdk-metrics" "1.18.1" + "@opentelemetry/sdk-trace-base" "1.18.1" + "@opentelemetry/sdk-trace-node" "1.18.1" + "@opentelemetry/semantic-conventions" "1.18.1" + +"@opentelemetry/sdk-trace-base@1.18.1": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.18.1.tgz#256605d90b202002d5672305c66dbcf377132379" + integrity sha512-tRHfDxN5dO+nop78EWJpzZwHsN1ewrZRVVwo03VJa3JQZxToRDH29/+MB24+yoa+IArerdr7INFJiX/iN4gjqg== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/resources" "1.18.1" + "@opentelemetry/semantic-conventions" "1.18.1" + +"@opentelemetry/sdk-trace-node@1.18.1": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.18.1.tgz#ec35ff9abf89244c4fde1c550645d4effa2d7aba" + integrity sha512-ML0l9TNlfLoplLF1F8lb95NGKgdm6OezDS3Ymqav9sYxMd5bnH2LZVzd4xEF+ov5vpZJOGdWxJMs2nC9no7+xA== + dependencies: + "@opentelemetry/context-async-hooks" "1.18.1" + "@opentelemetry/core" "1.18.1" + "@opentelemetry/propagator-b3" "1.18.1" + "@opentelemetry/propagator-jaeger" "1.18.1" + "@opentelemetry/sdk-trace-base" "1.18.1" + semver "^7.5.2" + +"@opentelemetry/semantic-conventions@1.18.1", "@opentelemetry/semantic-conventions@^1.0.0", "@opentelemetry/semantic-conventions@^1.18.1": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.18.1.tgz#8e47caf57a84b1dcc1722b2025693348cdf443b4" + integrity sha512-+NLGHr6VZwcgE/2lw8zDIufOCGnzsA5CbQIMleXZTrgkBd0TanCX+MiDYJ1TOS4KL/Tqk0nFRxawnaYr6pkZkA== + +"@opentelemetry/sql-common@^0.40.0": + version "0.40.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sql-common/-/sql-common-0.40.0.tgz#8cbed0722354d62997c3b9e1adf0e16257be6b15" + integrity sha512-vSqRJYUPJVjMFQpYkQS3ruexCPSZJ8esne3LazLwtCPaPRvzZ7WG3tX44RouAn7w4wMp8orKguBqtt+ng2UTnw== + dependencies: + "@opentelemetry/core" "^1.1.0" + "@parcel/watcher@2.0.4": version "2.0.4" resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" @@ -5258,6 +5974,23 @@ "@sentry/cli" "^1.74.6" webpack-sources "^2.0.0 || ^3.0.0" +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + "@sigstore/bundle@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1" @@ -5527,11 +6260,23 @@ "@tufjs/canonical-json" "1.0.0" minimatch "^9.0.0" +"@types/accepts@*": + version "1.3.7" + resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.7.tgz#3b98b1889d2b2386604c2bbbe62e4fb51e95b265" + integrity sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ== + dependencies: + "@types/node" "*" + "@types/aria-query@^5.0.1": version "5.0.1" resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== +"@types/aws-lambda@8.10.122": + version "8.10.122" + resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.122.tgz#206c8d71b09325d26a458dba27db842afdc54df1" + integrity sha512-vBkIh9AY22kVOCEKo5CJlyCgmSWvasC+SWUxL/x/vOwRobMpI/HG1xp/Ae3AqmSiZeLUbOhW0FCD3ZjqqUxmXw== + "@types/babel__core@^7.1.14": version "7.20.1" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" @@ -5580,6 +6325,13 @@ dependencies: "@types/node" "*" +"@types/bunyan@1.8.9": + version "1.8.9" + resolved "https://registry.yarnpkg.com/@types/bunyan/-/bunyan-1.8.9.tgz#22d4517f3217b7c8f5a69bbc8c9f6df79779dcb5" + integrity sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw== + dependencies: + "@types/node" "*" + "@types/connect-history-api-fallback@^1.3.5": version "1.5.0" resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41" @@ -5595,6 +6347,18 @@ dependencies: "@types/node" "*" +"@types/connect@3.4.36": + version "3.4.36" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.36.tgz#e511558c15a39cb29bd5357eebb57bd1459cd1ab" + integrity sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w== + dependencies: + "@types/node" "*" + +"@types/content-disposition@*": + version "0.5.8" + resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.8.tgz#6742a5971f490dc41e59d277eee71361fea0b537" + integrity sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg== + "@types/cookie@^0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" @@ -5605,6 +6369,16 @@ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.5.1.tgz#b29aa1f91a59f35e29ff8f7cb24faf1a3a750554" integrity sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g== +"@types/cookies@*": + version "0.7.10" + resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.10.tgz#c4881dca4dd913420c488508d192496c46eb4fd0" + integrity sha512-hmUCjAk2fwZVPPkkPBcI7jGLIR5mg4OVoNMBwU6aVsMm/iNPY7z9/R+x2fSwLt/ZXoGua6C5Zy2k5xOo9jUyhQ== + dependencies: + "@types/connect" "*" + "@types/express" "*" + "@types/keygrip" "*" + "@types/node" "*" + "@types/detox@^18.1.0": version "18.1.0" resolved "https://registry.yarnpkg.com/@types/detox/-/detox-18.1.0.tgz#5d204f08c8db3a03827f9146b043fc2421327753" @@ -5653,6 +6427,16 @@ "@types/qs" "*" "@types/serve-static" "*" +"@types/express@4.17.18": + version "4.17.18" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.18.tgz#efabf5c4495c1880df1bdffee604b143b29c4a95" + integrity sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + "@types/graceful-fs@^4.1.3": version "4.1.6" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" @@ -5660,6 +6444,39 @@ dependencies: "@types/node" "*" +"@types/hapi__catbox@*": + version "10.2.6" + resolved "https://registry.yarnpkg.com/@types/hapi__catbox/-/hapi__catbox-10.2.6.tgz#e516bfb4e461441b4ea7f9be870e48864a289494" + integrity sha512-qdMHk4fBlwRfnBBDJaoaxb+fU9Ewi2xqkXD3mNjSPl2v/G/8IJbDpVRBuIcF7oXrcE8YebU5M8cCeKh1NXEn0w== + +"@types/hapi__hapi@20.0.13": + version "20.0.13" + resolved "https://registry.yarnpkg.com/@types/hapi__hapi/-/hapi__hapi-20.0.13.tgz#ea8ce83c192f6e8106f6e76e40f795e7e36d0615" + integrity sha512-LP4IPfhIO5ZPVOrJo7H8c8Slc0WYTFAUNQX1U0LBPKyXioXhH5H2TawIgxKujIyOhbwoBbpvOsBf6o5+ToJIrQ== + dependencies: + "@hapi/boom" "^9.0.0" + "@hapi/iron" "^6.0.0" + "@hapi/podium" "^4.1.3" + "@types/hapi__catbox" "*" + "@types/hapi__mimos" "*" + "@types/hapi__shot" "*" + "@types/node" "*" + joi "^17.3.0" + +"@types/hapi__mimos@*": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/hapi__mimos/-/hapi__mimos-4.1.4.tgz#4f8a1c58345fc468553708d3cb508724aa081bd9" + integrity sha512-i9hvJpFYTT/qzB5xKWvDYaSXrIiNqi4ephi+5Lo6+DoQdwqPXQgmVVOZR+s3MBiHoFqsCZCX9TmVWG3HczmTEQ== + dependencies: + "@types/mime-db" "*" + +"@types/hapi__shot@*": + version "4.1.6" + resolved "https://registry.yarnpkg.com/@types/hapi__shot/-/hapi__shot-4.1.6.tgz#ee45d9a4a4e109a8d623e4f5f58ae2d8bd7c0773" + integrity sha512-h33NBjx2WyOs/9JgcFeFhkxnioYWQAZxOHdmqDuoJ1Qjxpcs+JGvSjEEoDeWfcrF+1n47kKgqph5IpfmPOnzbg== + dependencies: + "@types/node" "*" + "@types/hoist-non-react-statics@^3.3.0": version "3.3.4" resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.4.tgz#cc477ce0283bb9d19ea0cbfa2941fe2c8493a1be" @@ -5668,6 +6485,11 @@ "@types/react" "*" hoist-non-react-statics "^3.3.0" +"@types/http-assert@*": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.5.tgz#dfb1063eb7c240ee3d3fe213dac5671cfb6a8dbf" + integrity sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g== + "@types/http-errors@*": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.1.tgz#20172f9578b225f6c7da63446f56d4ce108d5a65" @@ -5680,6 +6502,13 @@ dependencies: "@types/node" "*" +"@types/ioredis4@npm:@types/ioredis@^4.28.10": + version "4.28.10" + resolved "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-4.28.10.tgz#40ceb157a4141088d1394bb87c98ed09a75a06ff" + integrity sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ== + dependencies: + "@types/node" "*" + "@types/is-hotkey@^0.1.1": version "0.1.7" resolved "https://registry.yarnpkg.com/@types/is-hotkey/-/is-hotkey-0.1.7.tgz#30ec6d4234895230b576728ef77e70a52962f3b3" @@ -5726,6 +6555,53 @@ dependencies: "@types/node" "*" +"@types/keygrip@*": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.6.tgz#1749535181a2a9b02ac04a797550a8787345b740" + integrity sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ== + +"@types/koa-compose@*": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.8.tgz#dec48de1f6b3d87f87320097686a915f1e954b57" + integrity sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA== + dependencies: + "@types/koa" "*" + +"@types/koa@*": + version "2.13.12" + resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.12.tgz#70d87a9061a81909e0ee11ca50168416e8d3e795" + integrity sha512-vAo1KuDSYWFDB4Cs80CHvfmzSQWeUb909aQib0C0aFx4sw0K9UZFz2m5jaEP+b3X1+yr904iQiruS0hXi31jbw== + dependencies: + "@types/accepts" "*" + "@types/content-disposition" "*" + "@types/cookies" "*" + "@types/http-assert" "*" + "@types/http-errors" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + +"@types/koa@2.13.9": + version "2.13.9" + resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.9.tgz#8d989ac17d7f033475fbe34c4f906c9287c2041a" + integrity sha512-tPX3cN1dGrMn+sjCDEiQqXH2AqlPoPd594S/8zxwUm/ZbPsQXKqHPUypr2gjCPhHUc+nDJLduhh5lXI/1olnGQ== + dependencies: + "@types/accepts" "*" + "@types/content-disposition" "*" + "@types/cookies" "*" + "@types/http-assert" "*" + "@types/http-errors" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + +"@types/koa__router@12.0.3": + version "12.0.3" + resolved "https://registry.yarnpkg.com/@types/koa__router/-/koa__router-12.0.3.tgz#3fb74ea1991cadd6c6712b6106657aa6e64afca4" + integrity sha512-5YUJVv6NwM1z7m6FuYpKfNLTZ932Z6EF6xy2BbtpJSyn13DKNQEkXVffFVSnJHxvwwWh2SAeumpjAYUELqgjyw== + dependencies: + "@types/koa" "*" + "@types/lodash@^4.14.149", "@types/lodash@^4.14.175": version "4.14.197" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.197.tgz#e95c5ddcc814ec3e84c891910a01e0c8a378c54b" @@ -5736,6 +6612,18 @@ resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== +"@types/memcached@^2.2.6": + version "2.2.10" + resolved "https://registry.yarnpkg.com/@types/memcached/-/memcached-2.2.10.tgz#113f9e3a451d6b5e0a3822e06d9feb52e63e954a" + integrity sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg== + dependencies: + "@types/node" "*" + +"@types/mime-db@*": + version "1.43.5" + resolved "https://registry.yarnpkg.com/@types/mime-db/-/mime-db-1.43.5.tgz#7a3f53dc2125a91f4e0e41f1353f60f8b6af609e" + integrity sha512-/bfTiIUTNPUBnwnYvUxXAre5MhD88jgagLEQiQtIASjU+bwxd8kS/ASDA4a8ufd8m0Lheu6eeMJHEUpLHoJ28A== + "@types/mime@*": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" @@ -5756,6 +6644,13 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== +"@types/mysql@2.15.22": + version "2.15.22" + resolved "https://registry.yarnpkg.com/@types/mysql/-/mysql-2.15.22.tgz#8705edb9872bf4aa9dbc004cd494e00334e5cdb4" + integrity sha512-wK1pzsJVVAjYCSZWQoWHziQZbNggXFDUEIGf54g4ZM/ERuP86uGdWeKZWMYlqTPMZfHJJvLPyogXGvCOg87yLQ== + dependencies: + "@types/node" "*" + "@types/node@*": version "20.5.9" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.9.tgz#a70ec9d8fa0180a314c3ede0e20ea56ff71aed9a" @@ -5806,6 +6701,31 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/pg-pool@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/pg-pool/-/pg-pool-2.0.4.tgz#b5c60f678094ff3acf3442628a7f708928fcf263" + integrity sha512-qZAvkv1K3QbmHHFYSNRYPkRjOWRLBYrL4B9c+wG0GSVGBw0NtJwPcgx/DSddeDJvRGMHCEQ4VMEVfuJ/0gZ3XQ== + dependencies: + "@types/pg" "*" + +"@types/pg@*": + version "8.10.9" + resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.10.9.tgz#d20bb948c6268c5bd847e2bf968f1194c5a2355a" + integrity sha512-UksbANNE/f8w0wOMxVKKIrLCbEMV+oM1uKejmwXr39olg4xqcfBDbXxObJAt6XxHbDa4XTKOlUEcEltXDX+XLQ== + dependencies: + "@types/node" "*" + pg-protocol "*" + pg-types "^4.0.1" + +"@types/pg@8.6.1": + version "8.6.1" + resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.6.1.tgz#099450b8dc977e8197a44f5229cedef95c8747f9" + integrity sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w== + dependencies: + "@types/node" "*" + pg-protocol "*" + pg-types "^2.2.0" + "@types/prop-types@*": version "15.7.5" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" @@ -5916,6 +6836,11 @@ "@types/mime" "*" "@types/node" "*" +"@types/shimmer@^1.0.2": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/shimmer/-/shimmer-1.0.5.tgz#491d8984d4510e550bfeb02d518791d7f59d2b88" + integrity sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww== + "@types/sinonjs__fake-timers@8.1.1": version "8.1.1" resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" @@ -5938,6 +6863,13 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== +"@types/tedious@^4.0.10": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@types/tedious/-/tedious-4.0.14.tgz#868118e7a67808258c05158e9cad89ca58a2aec1" + integrity sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw== + dependencies: + "@types/node" "*" + "@types/uuid@8.3.4": version "8.3.4" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" @@ -7211,6 +8143,11 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +bignumber.js@^9.0.0: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + bin-links@^2.2.1: version "2.3.0" resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-2.3.0.tgz#1ff241c86d2c29b24ae52f49544db5d78a4eb967" @@ -8037,7 +8974,7 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -cjs-module-lexer@^1.0.0: +cjs-module-lexer@^1.0.0, cjs-module-lexer@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== @@ -10951,7 +11888,7 @@ ext@^1.1.2: dependencies: type "^2.7.2" -extend@~3.0.2: +extend@^3.0.2, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -11547,6 +12484,24 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" +gaxios@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.1.1.tgz#549629f86a13e756b900f9ff7c94624670102938" + integrity sha512-bw8smrX+XlAoo9o1JAksBwX+hi/RG15J+NTSxmNPIclKC3ZVK6C2afwY8OSdRvOK0+ZLecUJYtj2MmjOt3Dm0w== + dependencies: + extend "^3.0.2" + https-proxy-agent "^7.0.1" + is-stream "^2.0.0" + node-fetch "^2.6.9" + +gcp-metadata@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.0.tgz#9b0dd2b2445258e7597f2024332d20611cbd6b8c" + integrity sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg== + dependencies: + gaxios "^6.0.0" + json-bigint "^1.0.0" + gensequence@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-6.0.0.tgz#ae46a0f89ebd7cc334e45cfb8f1c99a65248694e" @@ -12373,7 +13328,7 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -https-proxy-agent@^7.0.0: +https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1: version "7.0.2" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== @@ -12524,6 +13479,16 @@ import-from@4.0.0, import-from@^4.0.0: resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== +import-in-the-middle@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.4.2.tgz#2a266676e3495e72c04bbaa5ec14756ba168391b" + integrity sha512-9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw== + dependencies: + acorn "^8.8.2" + acorn-import-assertions "^1.9.0" + cjs-module-lexer "^1.2.2" + module-details-from-path "^1.0.3" + import-local@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" @@ -13586,6 +14551,17 @@ jiti@^1.18.2: resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.3.tgz#ef554f76465b3c2b222dc077834a71f0d4a37569" integrity sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w== +joi@^17.3.0: + version "17.11.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.11.0.tgz#aa9da753578ec7720e6f0ca2c7046996ed04fc1a" + integrity sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + js-cookie@^3.0.1: version "3.0.5" resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc" @@ -13638,6 +14614,13 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== +json-bigint@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" + integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== + dependencies: + bignumber.js "^9.0.0" + json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -15243,6 +16226,11 @@ module-deps@^6.2.3: through2 "^2.0.0" xtend "^4.0.0" +module-details-from-path@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" + integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== + moment-timezone@^0.5.42: version "0.5.43" resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.43.tgz#3dd7f3d0c67f78c23cd1906b9b2137a09b3c4790" @@ -15516,7 +16504,7 @@ node-fetch@2.6.7: dependencies: whatwg-url "^5.0.0" -node-fetch@^2.6.11, node-fetch@^2.6.7: +node-fetch@^2.6.11, node-fetch@^2.6.7, node-fetch@^2.6.9: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -16339,7 +17327,7 @@ object.values@^1.1.6: define-properties "^1.2.0" es-abstract "^1.22.1" -obuf@^1.0.0, obuf@^1.1.2: +obuf@^1.0.0, obuf@^1.1.2, obuf@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== @@ -17004,6 +17992,45 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-numeric@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pg-numeric/-/pg-numeric-1.0.2.tgz#816d9a44026086ae8ae74839acd6a09b0636aa3a" + integrity sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw== + +pg-protocol@*: + version "1.6.0" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.0.tgz#4c91613c0315349363af2084608db843502f8833" + integrity sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q== + +pg-types@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg-types@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-4.0.1.tgz#31857e89d00a6c66b06a14e907c3deec03889542" + integrity sha512-hRCSDuLII9/LE3smys1hRHcu5QGcLs9ggT7I/TCs0IE+2Eesxi9+9RWAAwZ0yaGjxoWICF/YHLOEjydGujoJ+g== + dependencies: + pg-int8 "1.0.1" + pg-numeric "1.0.2" + postgres-array "~3.0.1" + postgres-bytea "~3.0.0" + postgres-date "~2.0.1" + postgres-interval "^3.0.0" + postgres-range "^1.1.1" + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -17397,6 +18424,55 @@ postcss@8.4.31, postcss@^8.4.14, postcss@^8.4.19, postcss@^8.4.21, postcss@^8.4. picocolors "^1.0.0" source-map-js "^1.0.2" +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-array@~3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-3.0.2.tgz#68d6182cb0f7f152a7e60dc6a6889ed74b0a5f98" + integrity sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-bytea@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-3.0.0.tgz#9048dc461ac7ba70a6a42d109221619ecd1cb089" + integrity sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw== + dependencies: + obuf "~1.1.2" + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-date@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-2.0.1.tgz#638b62e5c33764c292d37b08f5257ecb09231457" + integrity sha512-YtMKdsDt5Ojv1wQRvUhnyDJNSr2dGIC96mQVKz7xufp07nfuFONzdaowrMHjlAzY6GDLd4f+LUHHAAM1h4MdUw== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + +postgres-interval@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-3.0.0.tgz#baf7a8b3ebab19b7f38f07566c7aab0962f0c86a" + integrity sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw== + +postgres-range@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/postgres-range/-/postgres-range-1.1.3.tgz#9ccd7b01ca2789eb3c2e0888b3184225fa859f76" + integrity sha512-VdlZoocy5lCP0c/t66xAfclglEapXPCIVhqqJRncYpvbCgImF0w67aPKfbqUMr72tO2k5q0TdTZwCLjPTI6C9g== + prebuild-install@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" @@ -17636,7 +18712,7 @@ protobufjs@^6.8.6: "@types/node" ">=13.7.0" long "^4.0.0" -protobufjs@^7.2.4: +protobufjs@^7.2.3, protobufjs@^7.2.4: version "7.2.5" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.5.tgz#45d5c57387a6d29a17aab6846dcc283f9b8e7f2d" integrity sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A== @@ -18386,6 +19462,15 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +require-in-the-middle@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz#b539de8f00955444dc8aed95e17c69b0a4f10fcf" + integrity sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw== + dependencies: + debug "^4.1.1" + module-details-from-path "^1.0.3" + resolve "^1.22.1" + require-relative@^0.8.7: version "0.8.7" resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" @@ -18455,7 +19540,7 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== -resolve@1.22.8, resolve@^1.1.4, resolve@^1.1.5, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.22.2, resolve@^1.22.4, resolve@^1.4.0: +resolve@1.22.8, resolve@^1.1.4, resolve@^1.1.5, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.22.4, resolve@^1.4.0: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -18779,7 +19864,7 @@ semver@7.5.3: dependencies: lru-cache "^6.0.0" -semver@7.5.4, semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.3.8, semver@^7.5.1, semver@^7.5.3, semver@^7.5.4: +semver@7.5.4, semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.3.8, semver@^7.5.1, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -18928,6 +20013,11 @@ shell-quote@^1.4.2, shell-quote@^1.6.1, shell-quote@^1.7.2, shell-quote@^1.7.3: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== +shimmer@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" + integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" From a04a48e2da049148a4e5957818b54735d5100644 Mon Sep 17 00:00:00 2001 From: Ruslan Konviser Date: Sat, 2 Dec 2023 16:59:59 +0100 Subject: [PATCH 03/44] fix: stupid --- .cspell.json | 2 ++ .dockerignore | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.cspell.json b/.cspell.json index 2d252ec5b..7e4e126a9 100644 --- a/.cspell.json +++ b/.cspell.json @@ -20,6 +20,8 @@ "cloudinary", "clsx", "clsxm", + "opentelemetry", + "otlp", "commitlint", "compodoc", "consectetur", diff --git a/.dockerignore b/.dockerignore index 269196e49..2961829fb 100644 --- a/.dockerignore +++ b/.dockerignore @@ -24,11 +24,11 @@ Jenkinsfile **/.vscode -**/.env +# **/.env **/.env.local **/.env*.local **/.env*.sample -apps/**/.env +# apps/**/.env apps/**/.env.local apps/**/.env*.local apps/**/.env*.sample From f1e32bbcbe611a561c29b07ce2dd2005b5b9979c Mon Sep 17 00:00:00 2001 From: Ruslan Konviser Date: Sat, 2 Dec 2023 17:25:49 +0100 Subject: [PATCH 04/44] chore: more logging --- .cspell.json | 4 ++++ .dockerignore | 4 ++-- apps/web/app/constants.ts | 1 + apps/web/next.config.js | 3 +++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.cspell.json b/.cspell.json index 7e4e126a9..e3d1426b9 100644 --- a/.cspell.json +++ b/.cspell.json @@ -23,6 +23,10 @@ "opentelemetry", "otlp", "commitlint", + "greenkeeper", + "classpath", + "tsbuildinfo", + "sentryclirc", "compodoc", "consectetur", "dolor", diff --git a/.dockerignore b/.dockerignore index 2961829fb..269196e49 100644 --- a/.dockerignore +++ b/.dockerignore @@ -24,11 +24,11 @@ Jenkinsfile **/.vscode -# **/.env +**/.env **/.env.local **/.env*.local **/.env*.sample -# apps/**/.env +apps/**/.env apps/**/.env.local apps/**/.env*.local apps/**/.env*.sample diff --git a/apps/web/app/constants.ts b/apps/web/app/constants.ts index 02d7a9d9f..39ccdb801 100644 --- a/apps/web/app/constants.ts +++ b/apps/web/app/constants.ts @@ -32,6 +32,7 @@ export const RECAPTCHA_SITE_KEY = process.env.NEXT_PUBLIC_CAPTCHA_SITE_KEY; export const RECAPTCHA_SECRET_KEY = process.env.CAPTCHA_SECRET_KEY; export const GAUZY_API_SERVER_URL = process.env.GAUZY_API_SERVER_URL || 'https://api.gauzy.co/api'; + export const INVITE_CALLBACK_URL = process.env.INVITE_CALLBACK_URL || 'https://app.ever.team/auth/passcode'; export const INVITE_CALLBACK_PATH = '/auth/passcode'; export const VERIFY_EMAIL_CALLBACK_URL = process.env.VERIFY_EMAIL_CALLBACK_URL || 'https://app.ever.team/verify-email'; diff --git a/apps/web/next.config.js b/apps/web/next.config.js index 80b5b10fd..9fcde0150 100644 --- a/apps/web/next.config.js +++ b/apps/web/next.config.js @@ -1,6 +1,9 @@ /* eslint-disable @typescript-eslint/no-var-requires */ const path = require('path'); +console.log(`GAUZY_API_SERVER_URL: ${process.env.GAUZY_API_SERVER_URL}`); +console.log(`NEXT_PUBLIC_GAUZY_API_SERVER_URL: ${process.env.NEXT_PUBLIC_GAUZY_API_SERVER_URL}`); + // eslint-disable-next-line @typescript-eslint/no-var-requires /** @type {import('next').NextConfig} */ const nextConfig = { From 17a0b40b781604b40a0671e5c11b0efabd1f120a Mon Sep 17 00:00:00 2001 From: Ruslan Konviser Date: Sat, 2 Dec 2023 18:15:29 +0100 Subject: [PATCH 05/44] chore: docker file build with correct env vars --- .../workflows/docker-build-publish-dev.yml | 15 ++++++ .../workflows/docker-build-publish-prod.yml | 15 ++++++ Dockerfile | 48 ++++++++++++++++--- apps/web/.env | 2 +- 4 files changed, 73 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docker-build-publish-dev.yml b/.github/workflows/docker-build-publish-dev.yml index a62864c77..4bd6f6a83 100644 --- a/.github/workflows/docker-build-publish-dev.yml +++ b/.github/workflows/docker-build-publish-dev.yml @@ -36,6 +36,21 @@ jobs: cache-to: type=inline build-args: | NODE_ENV=development + NEXT_PUBLIC_GAUZY_API_SERVER_URL=${{ secrets.NEXT_PUBLIC_GAUZY_API_SERVER_URL }} + NEXT_PUBLIC_GA_MEASUREMENT_ID=${{ secrets.NEXT_PUBLIC_GA_MEASUREMENT_ID }} + NEXT_PUBLIC_CAPTCHA_SITE_KEY=${{ secrets.NEXT_PUBLIC_CAPTCHA_SITE_KEY }} + NEXT_PUBLIC_DISABLE_AUTO_REFRESH=false + NEXT_PUBLIC_COOKIE_DOMAINS=${{ secrets.NEXT_PUBLIC_COOKIE_DOMAINS }} + NEXT_PUBLIC_BOARD_APP_DOMAIN=${{ secrets.NEXT_PUBLIC_BOARD_APP_DOMAIN }} + NEXT_PUBLIC_BOARD_BACKEND_POST_URL=${{ secrets.NEXT_PUBLIC_BOARD_BACKEND_POST_URL }} + NEXT_PUBLIC_BOARD_FIREBASE_CONFIG=${{ secrets.NEXT_PUBLIC_BOARD_FIREBASE_CONFIG }} + NEXT_PUBLIC_MEET_DOMAIN=${{ secrets.NEXT_PUBLIC_MEET_DOMAIN }} + NEXT_PUBLIC_SENTRY_DSN=${{ secrets.NEXT_PUBLIC_SENTRY_DSN }} + NEXT_PUBLIC_SENTRY_DEBUG=${{ secrets.NEXT_PUBLIC_SENTRY_DEBUG }} + NEXT_PUBLIC_JITSU_BROWSER_URL=${{ secrets.NEXT_PUBLIC_JITSU_BROWSER_URL }} + NEXT_PUBLIC_JITSU_BROWSER_WRITE_KEY=${{ secrets.NEXT_PUBLIC_JITSU_BROWSER_WRITE_KEY }} + NEXT_PUBLIC_GITHUB_APP_NAME=ever-github + NEXT_PUBLIC_CHATWOOT_API_KEY=${{ secrets.NEXT_PUBLIC_CHATWOOT_API_KEY }} - name: Login to DockerHub uses: docker/login-action@v2 diff --git a/.github/workflows/docker-build-publish-prod.yml b/.github/workflows/docker-build-publish-prod.yml index 6addc3242..a47b6335b 100644 --- a/.github/workflows/docker-build-publish-prod.yml +++ b/.github/workflows/docker-build-publish-prod.yml @@ -36,6 +36,21 @@ jobs: cache-to: type=inline build-args: | NODE_ENV=production + NEXT_PUBLIC_GAUZY_API_SERVER_URL=${{ secrets.NEXT_PUBLIC_GAUZY_API_SERVER_URL }} + NEXT_PUBLIC_GA_MEASUREMENT_ID=${{ secrets.NEXT_PUBLIC_GA_MEASUREMENT_ID }} + NEXT_PUBLIC_CAPTCHA_SITE_KEY=${{ secrets.NEXT_PUBLIC_CAPTCHA_SITE_KEY }} + NEXT_PUBLIC_DISABLE_AUTO_REFRESH=false + NEXT_PUBLIC_COOKIE_DOMAINS=${{ secrets.NEXT_PUBLIC_COOKIE_DOMAINS }} + NEXT_PUBLIC_BOARD_APP_DOMAIN=${{ secrets.NEXT_PUBLIC_BOARD_APP_DOMAIN }} + NEXT_PUBLIC_BOARD_BACKEND_POST_URL=${{ secrets.NEXT_PUBLIC_BOARD_BACKEND_POST_URL }} + NEXT_PUBLIC_BOARD_FIREBASE_CONFIG=${{ secrets.NEXT_PUBLIC_BOARD_FIREBASE_CONFIG }} + NEXT_PUBLIC_MEET_DOMAIN=${{ secrets.NEXT_PUBLIC_MEET_DOMAIN }} + NEXT_PUBLIC_SENTRY_DSN=${{ secrets.NEXT_PUBLIC_SENTRY_DSN }} + NEXT_PUBLIC_SENTRY_DEBUG=${{ secrets.NEXT_PUBLIC_SENTRY_DEBUG }} + NEXT_PUBLIC_JITSU_BROWSER_URL=${{ secrets.NEXT_PUBLIC_JITSU_BROWSER_URL }} + NEXT_PUBLIC_JITSU_BROWSER_WRITE_KEY=${{ secrets.NEXT_PUBLIC_JITSU_BROWSER_WRITE_KEY }} + NEXT_PUBLIC_GITHUB_APP_NAME=ever-github + NEXT_PUBLIC_CHATWOOT_API_KEY=${{ secrets.NEXT_PUBLIC_CHATWOOT_API_KEY }} - name: Login to DockerHub uses: docker/login-action@v2 diff --git a/Dockerfile b/Dockerfile index 84f4137b9..d1a5a52b0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,29 @@ # syntax = docker/dockerfile:1 -# Adjust NODE_VERSION as desired +# Ever Teams Platform + ARG NODE_VERSION=18.17.1 +ARG NEXT_PUBLIC_GAUZY_API_SERVER_URL=https://api.gauzy.co +ARG NEXT_PUBLIC_GA_MEASUREMENT_ID +ARG NEXT_PUBLIC_CAPTCHA_SITE_KEY +ARG NEXT_PUBLIC_DISABLE_AUTO_REFRESH=false +ARG NEXT_PUBLIC_COOKIE_DOMAINS=ever.team +ARG NEXT_PUBLIC_BOARD_APP_DOMAIN=https://board.ever.team +ARG NEXT_PUBLIC_BOARD_BACKEND_POST_URL=https://jsonboard.ever.team/api/v2/post/ +ARG NEXT_PUBLIC_BOARD_FIREBASE_CONFIG +ARG NEXT_PUBLIC_MEET_DOMAIN=https://meet.ever.team +ARG NEXT_PUBLIC_SENTRY_DSN +ARG NEXT_PUBLIC_SENTRY_DEBUG +ARG NEXT_PUBLIC_JITSU_BROWSER_URL +ARG NEXT_PUBLIC_JITSU_BROWSER_WRITE_KEY +ARG NEXT_PUBLIC_GITHUB_APP_NAME=ever-github +ARG NEXT_PUBLIC_CHATWOOT_API_KEY + FROM node:${NODE_VERSION}-slim as base +LABEL maintainer="ever@ever.co" +LABEL org.opencontainers.image.source https://github.com/ever-co/ever-teams + # Next.js app lives here WORKDIR /app @@ -14,17 +34,33 @@ ENV NEXT_SHARP_PATH=/temp/node_modules/sharp RUN npm i -g npm@latest # Install sharp, NextJS image optimization RUN mkdir /temp && cd /temp && \ - npm i sharp + npm i sharp RUN npm cache clean --force - # Throw-away build stage to reduce size of final image FROM base as build +# We make env vars passed as build argument to be available in this build stage because we prebuild the NextJs app +ARG NEXT_PUBLIC_GAUZY_API_SERVER_URL +ARG NEXT_PUBLIC_GA_MEASUREMENT_ID +ARG NEXT_PUBLIC_CAPTCHA_SITE_KEY +ARG NEXT_PUBLIC_DISABLE_AUTO_REFRESH +ARG NEXT_PUBLIC_COOKIE_DOMAINS +ARG NEXT_PUBLIC_BOARD_APP_DOMAIN +ARG NEXT_PUBLIC_BOARD_BACKEND_POST_URL +ARG NEXT_PUBLIC_BOARD_FIREBASE_CONFIG +ARG NEXT_PUBLIC_MEET_DOMAIN +ARG NEXT_PUBLIC_SENTRY_DSN +ARG NEXT_PUBLIC_SENTRY_DEBUG +ARG NEXT_PUBLIC_JITSU_BROWSER_URL +ARG NEXT_PUBLIC_JITSU_BROWSER_WRITE_KEY +ARG NEXT_PUBLIC_GITHUB_APP_NAME +ARG NEXT_PUBLIC_CHATWOOT_API_KEY + # Install packages needed to build node modules RUN apt-get update -qq && \ - apt-get install -y build-essential pkg-config python-is-python3 + apt-get install -y build-essential pkg-config python-is-python3 # Install Yarn RUN npm install -g yarn --force @@ -35,7 +71,7 @@ COPY yarn.lock ./ COPY apps/web/package.json ./apps/web/package.json RUN cd apps/web && \ - yarn install --ignore-scripts + yarn install --ignore-scripts # Copy application code COPY . . @@ -47,7 +83,7 @@ RUN yarn run build:web # Remove development dependencies RUN cd apps/web && \ - yarn install --prod --ignore-scripts + yarn install --prod --ignore-scripts RUN yarn cache clean diff --git a/apps/web/.env b/apps/web/.env index 409ebce1b..539845cf2 100644 --- a/apps/web/.env +++ b/apps/web/.env @@ -34,7 +34,7 @@ APP_LOGO_URL="https://app.ever.team/assets/ever-teams.png" NEXT_PUBLIC_COOKIE_DOMAINS=ever.team # Board -NEXT_PUBLIC_BOARD_APP_DOMAIN=https://board.ever.team +NEXT_PUBLIC_BOARD_APP_DOMAIN="https://board.ever.team" NEXT_PUBLIC_BOARD_BACKEND_POST_URL="https://jsonboard.ever.team/api/v2/post/" NEXT_PUBLIC_BOARD_FIREBASE_CONFIG= From 6d82e66af4bfe07041c0ffc5790948ab7a9a5e40 Mon Sep 17 00:00:00 2001 From: Paradoxe Ngwasi Date: Sat, 2 Dec 2023 17:42:07 +0000 Subject: [PATCH 06/44] [Layerfile] Update the Layerfile and Layerfile.build, and introduce Layerfile.node --- Layerfile | 6 ++---- Layerfile.build | 22 ++++++++++++++++++++++ Layerfile.node | 22 ++++++++++++++++++++++ 3 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 Layerfile.build create mode 100644 Layerfile.node diff --git a/Layerfile b/Layerfile index 26850d39b..45b09dbfe 100644 --- a/Layerfile +++ b/Layerfile @@ -11,10 +11,8 @@ RUN apt-get update && \ apt-get update && \ apt-get install docker-ce docker-ce-cli containerd.io -COPY . . +RUN REPEATABLE docker pull everco/ever-teams-webapp -RUN REPEATABLE docker build -t ever-teams . - -RUN REPEATABLE docker run -d -p 3000:3000 ever-teams && sleep 5 +RUN REPEATABLE docker run -d -p 3000:3000 everco/ever-teams-webapp && sleep 5 EXPOSE WEBSITE localhost:3000 diff --git a/Layerfile.build b/Layerfile.build new file mode 100644 index 000000000..bacc929c2 --- /dev/null +++ b/Layerfile.build @@ -0,0 +1,22 @@ +FROM vm/ubuntu:18.04 + +MEMORY 8G + +# install the latest version of Docker, as in the official Docker installation tutorial. +RUN apt-get update && \ + apt-get install ca-certificates curl gnupg lsb-release && \ + sudo mkdir -p /etc/apt/keyrings && \ + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \ + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |\ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \ + apt-get update && \ + apt-get install docker-ce docker-ce-cli containerd.io + +COPY . . + +RUN REPEATABLE docker build -t ever-teams . + +RUN REPEATABLE docker run -d -p 3000:3000 ever-teams && sleep 5 + +EXPOSE WEBSITE localhost:3000 diff --git a/Layerfile.node b/Layerfile.node new file mode 100644 index 000000000..30fd5915e --- /dev/null +++ b/Layerfile.node @@ -0,0 +1,22 @@ +FROM vm/ubuntu:22.04 + +ENV NODE_MAJOR=20 + +# install the latest version of Docker, as in the official Docker installation tutorial. +RUN apt-get update &&\ + apt-get install -y ca-certificates curl gnupg &&\ + sudo mkdir -p /etc/apt/keyrings &&\ + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg &&\ + echo \ + "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" |\ + sudo tee /etc/apt/sources.list.d/nodesource.list &&\ + apt-get update &&\ + apt-get install nodejs yarn -y + +COPY . . + +RUN REPEATABLE cd apps/web && yarn install && yarn build + +RUN BACKGROUND yarn start:web + +EXPOSE WEBSITE localhost:3000 From dcb01761dba7e7ee35c0b25138a86bf0c596b638 Mon Sep 17 00:00:00 2001 From: Ruslan Konviser Date: Sat, 2 Dec 2023 18:57:30 +0100 Subject: [PATCH 07/44] chore: more logging --- .github/workflows/docker-build-publish-dev.yml | 3 +++ .github/workflows/docker-build-publish-prod.yml | 3 +++ Dockerfile | 5 +++++ apps/web/next.config.js | 1 - 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-build-publish-dev.yml b/.github/workflows/docker-build-publish-dev.yml index 4bd6f6a83..28d1145b7 100644 --- a/.github/workflows/docker-build-publish-dev.yml +++ b/.github/workflows/docker-build-publish-dev.yml @@ -21,6 +21,9 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 + - name: Output NEXT_PUBLIC_GAUZY_API_SERVER_URL + run: echo "NEXT_PUBLIC_GAUZY_API_SERVER_URL=${{ secrets.NEXT_PUBLIC_GAUZY_API_SERVER_URL }}" + - name: Build and push uses: docker/build-push-action@v4 with: diff --git a/.github/workflows/docker-build-publish-prod.yml b/.github/workflows/docker-build-publish-prod.yml index a47b6335b..efc2d0b75 100644 --- a/.github/workflows/docker-build-publish-prod.yml +++ b/.github/workflows/docker-build-publish-prod.yml @@ -21,6 +21,9 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 + - name: Output NEXT_PUBLIC_GAUZY_API_SERVER_URL + run: echo "NEXT_PUBLIC_GAUZY_API_SERVER_URL=${{ secrets.NEXT_PUBLIC_GAUZY_API_SERVER_URL }}" + - name: Build and push uses: docker/build-push-action@v4 with: diff --git a/Dockerfile b/Dockerfile index d1a5a52b0..8712f6f9a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,6 +21,9 @@ ARG NEXT_PUBLIC_CHATWOOT_API_KEY FROM node:${NODE_VERSION}-slim as base +# Output the environment variable value +RUN echo "NEXT_PUBLIC_GAUZY_API_SERVER_URL=${NEXT_PUBLIC_GAUZY_API_SERVER_URL}" + LABEL maintainer="ever@ever.co" LABEL org.opencontainers.image.source https://github.com/ever-co/ever-teams @@ -78,6 +81,8 @@ COPY . . ENV NODE_ENV=production +RUN echo $NEXT_PUBLIC_GAUZY_API_SERVER_URL + # Build application RUN yarn run build:web diff --git a/apps/web/next.config.js b/apps/web/next.config.js index 9fcde0150..eabcfd6e9 100644 --- a/apps/web/next.config.js +++ b/apps/web/next.config.js @@ -1,7 +1,6 @@ /* eslint-disable @typescript-eslint/no-var-requires */ const path = require('path'); -console.log(`GAUZY_API_SERVER_URL: ${process.env.GAUZY_API_SERVER_URL}`); console.log(`NEXT_PUBLIC_GAUZY_API_SERVER_URL: ${process.env.NEXT_PUBLIC_GAUZY_API_SERVER_URL}`); // eslint-disable-next-line @typescript-eslint/no-var-requires From 22c38736e2e98fb2ba13dba457bc934ad7a0b05a Mon Sep 17 00:00:00 2001 From: Ruslan Konviser Date: Sat, 2 Dec 2023 19:11:10 +0100 Subject: [PATCH 08/44] chore: envs --- .github/workflows/docker-build-publish-dev.yml | 3 +++ .github/workflows/docker-build-publish-prod.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/docker-build-publish-dev.yml b/.github/workflows/docker-build-publish-dev.yml index 28d1145b7..574fe4cc7 100644 --- a/.github/workflows/docker-build-publish-dev.yml +++ b/.github/workflows/docker-build-publish-dev.yml @@ -11,6 +11,9 @@ concurrency: jobs: ever-teams-webapp: runs-on: buildjet-8vcpu-ubuntu-2204 + + environment: dev + steps: - name: Checkout uses: actions/checkout@v3 diff --git a/.github/workflows/docker-build-publish-prod.yml b/.github/workflows/docker-build-publish-prod.yml index efc2d0b75..ad4986543 100644 --- a/.github/workflows/docker-build-publish-prod.yml +++ b/.github/workflows/docker-build-publish-prod.yml @@ -11,6 +11,9 @@ concurrency: jobs: ever-teams-webapp: runs-on: buildjet-8vcpu-ubuntu-2204 + + environment: prod + steps: - name: Checkout uses: actions/checkout@v3 From cf1fc3520782fab47a59b63b377b62ee667c2ff2 Mon Sep 17 00:00:00 2001 From: Badal Khatri Date: Mon, 4 Dec 2023 14:55:13 +0530 Subject: [PATCH 09/44] fix: Minor Task Page Child Issues --- apps/web/lib/features/task/task-displays.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/lib/features/task/task-displays.tsx b/apps/web/lib/features/task/task-displays.tsx index 33421ba7e..5f2cff2b0 100644 --- a/apps/web/lib/features/task/task-displays.tsx +++ b/apps/web/lib/features/task/task-displays.tsx @@ -29,7 +29,7 @@ export function TaskNameInfoDisplay({ task, className, taskTitleClassName, taskN #{task?.taskNumber} {dash && '-'} - {task?.title} + {task?.title.slice(0, 90)} From 2d4c8c4262232b3bcd0a9302653b39944f17a695 Mon Sep 17 00:00:00 2001 From: Badal Khatri Date: Mon, 4 Dec 2023 15:10:16 +0530 Subject: [PATCH 10/44] fix: First Time Team Task load --- apps/web/app/hooks/features/useTeamTasks.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/app/hooks/features/useTeamTasks.ts b/apps/web/app/hooks/features/useTeamTasks.ts index 595a45e2f..140b1f0df 100644 --- a/apps/web/app/hooks/features/useTeamTasks.ts +++ b/apps/web/app/hooks/features/useTeamTasks.ts @@ -112,7 +112,7 @@ export function useTeamTasks() { }); } - if (!user || activeTeamRef.current?.id) { + if (!user || !activeTeamRef.current?.id) { return new Promise((response) => { response(true); }); From 7bea14201bebbba84d6c3b128c9e6104b26f4f45 Mon Sep 17 00:00:00 2001 From: cedric karungu <83704005+Cedric921@users.noreply.github.com> Date: Mon, 4 Dec 2023 13:39:34 +0200 Subject: [PATCH 11/44] Feat/task block view for issues (#1949) * feat:add task block card * feat: add radial bar * feat: add task block card times * feat: add radial progress * feat: add block issues filter UI * feat: add filter features on issues block view * fix: task filter missing * fix: issues views var * fix: svg synthax error * fix: issue card view style * fix: issue card view style * fix:delete comments --- apps/web/app/stores/task-filter.ts | 6 + apps/web/lib/components/radial-progress.tsx | 52 ++++ apps/web/lib/components/separator.tsx | 8 + apps/web/lib/components/svgs/icons.tsx | 50 +++- apps/web/lib/features/index.ts | 2 + .../features/task/task-all-status-type.tsx | 12 +- apps/web/lib/features/task/task-filters.tsx | 8 +- .../lib/features/task/task-progress-bar.tsx | 13 +- apps/web/lib/features/task/task-times.tsx | 49 +++- .../lib/features/team-members-block-view.tsx | 52 ++++ apps/web/lib/features/team-members.tsx | 27 +- .../features/team/user-team-block/index.tsx | 145 +++++++++++ .../team/user-team-block/task-info.tsx | 106 ++++++++ .../team/user-team-block/user-info.tsx | 64 +++++ .../user-team-block-header.tsx | 222 +++++++++++++++++ .../user-team-block/user-team-card-menu.tsx | 231 ++++++++++++++++++ .../team/user-team-card/task-estimate.tsx | 7 +- apps/web/lib/layout/main-layout.tsx | 2 +- apps/web/package.json | 14 +- apps/web/pages/index.tsx | 24 +- apps/web/styles/globals.css | 11 + apps/web/tailwind.config.js | 1 + 22 files changed, 1073 insertions(+), 33 deletions(-) create mode 100644 apps/web/app/stores/task-filter.ts create mode 100644 apps/web/lib/components/radial-progress.tsx create mode 100644 apps/web/lib/features/team-members-block-view.tsx create mode 100644 apps/web/lib/features/team/user-team-block/index.tsx create mode 100644 apps/web/lib/features/team/user-team-block/task-info.tsx create mode 100644 apps/web/lib/features/team/user-team-block/user-info.tsx create mode 100644 apps/web/lib/features/team/user-team-block/user-team-block-header.tsx create mode 100644 apps/web/lib/features/team/user-team-block/user-team-card-menu.tsx diff --git a/apps/web/app/stores/task-filter.ts b/apps/web/app/stores/task-filter.ts new file mode 100644 index 000000000..35a4a2afb --- /dev/null +++ b/apps/web/app/stores/task-filter.ts @@ -0,0 +1,6 @@ +import { atom } from 'recoil'; + +export const taskBlockFilterState = atom<'all' | 'running' | 'online' | 'pause' | 'idle' | 'suspended'>({ + key: 'taskBlockFilterState', + default: 'all' +}); diff --git a/apps/web/lib/components/radial-progress.tsx b/apps/web/lib/components/radial-progress.tsx new file mode 100644 index 000000000..f15d10d24 --- /dev/null +++ b/apps/web/lib/components/radial-progress.tsx @@ -0,0 +1,52 @@ +export default function RadialProgress({ + radius = 24, + cx = 24, + cy = 24, + percentage = 55 +}: { + radius?: number; + cx?: number; + cy?: number; + percentage: number; +}) { + const circumference = radius * 2 * Math.PI; + + return ( + <> +
+ + + + + + {percentage}% + +
+ + ); +} diff --git a/apps/web/lib/components/separator.tsx b/apps/web/lib/components/separator.tsx index 394bb8e12..7c346140d 100644 --- a/apps/web/lib/components/separator.tsx +++ b/apps/web/lib/components/separator.tsx @@ -4,3 +4,11 @@ import { clsxm } from '@app/utils'; export const VerticalSeparator = ({ className }: IClassName) => { return
; }; + +export const HorizontalSeparator = ({ className }: IClassName) => { + return ( +
+
+
+ ); +}; diff --git a/apps/web/lib/components/svgs/icons.tsx b/apps/web/lib/components/svgs/icons.tsx index 83e8afe54..d2b2b186b 100644 --- a/apps/web/lib/components/svgs/icons.tsx +++ b/apps/web/lib/components/svgs/icons.tsx @@ -1305,6 +1305,46 @@ export function StopCircleIcon({ className }: IClassName) { ); } +export function NotWorkingIcon({ className }: IClassName) { + return ( + + ); +} + +export function OnlineIcon({ className }: IClassName) { + return ( + + ); +} + // ============================= Settings 4 Icon ============================= // export function Settings4Icon({ className }: IClassName) { @@ -2221,13 +2261,13 @@ export function QuoteBlockIcon({ className }: IClassName) { ); } -export function AddIcon({ +export function AddIcon({ className, - width=14, - height=14 + width = 14, + height = 14 }: IClassName<{ - width?: number, - height?: number, + width?: number; + height?: number; }>) { return ( ; showStatus?: boolean }) { +export function TaskAllStatusTypes({ + task, + showStatus = false, + toBlockCard = false +}: { + task?: Nullable; + showStatus?: boolean; + toBlockCard?: boolean; +}) { const taskPriorities = useTaskPrioritiesValue(); const taskSizes = useTaskSizesValue(); const taskLabels = useTaskLabelsValue(); @@ -64,7 +72,7 @@ export function TaskAllStatusTypes({ task, showStatus = false }: { task?: Nullab /> )} - {task?.size && ( + {task?.size && !toBlockCard && ( void; close: () => void; + fullWidth?: boolean; }) { const { t } = useTranslation(); @@ -426,7 +428,7 @@ function TaskNameFilter({ }; return ( -
+
; + return radial ? ( + + ) : ( + + ); } diff --git a/apps/web/lib/features/task/task-times.tsx b/apps/web/lib/features/task/task-times.tsx index f5784fd6e..12e703c23 100644 --- a/apps/web/lib/features/task/task-times.tsx +++ b/apps/web/lib/features/task/task-times.tsx @@ -12,9 +12,10 @@ type Props = { memberInfo?: I_TeamMemberCardHook | OT_Member | any; showDaily?: boolean; showTotal?: boolean; + isBlock?: boolean; } & IClassName; -export function TaskTimes({ className, task, memberInfo, showDaily = true, showTotal = true }: Props) { +export function TaskTimes({ className, task, memberInfo, showDaily = true, showTotal = true, isBlock = false }: Props) { // For public page const { activeTeam } = useOrganizationTeams(); const currentMember = activeTeam?.members.find((member) => member.id === memberInfo?.member?.id || memberInfo?.id); @@ -38,7 +39,11 @@ export function TaskTimes({ className, task, memberInfo, showDaily = true, showT return (
- + {isBlock ? ( + + ) : ( + + )}
); } @@ -83,6 +88,46 @@ function TimeInfo({ ); } +function TimeBlockInfo({ + daily, + total, + showDaily = true, + showTotal = true +}: { + daily: { h: number; m: number }; + total: { h: number; m: number }; + showDaily?: boolean; + showTotal?: boolean; +}) { + const { t } = useTranslation(); + return ( +
+ {showDaily && ( +
+ {t('common.TODAY')}: + + {daily.h}h : {daily.m}m + +
+ )} + + {showTotal && ( +
+ {t('common.TOTAL')}: + + {total.h}h : {total.m}m + +
+ )} +
+ ); +} + export function TodayWorkedTime({ className, memberInfo }: Omit) { // Get current timer seconds const { activeTeam } = useOrganizationTeams(); diff --git a/apps/web/lib/features/team-members-block-view.tsx b/apps/web/lib/features/team-members-block-view.tsx new file mode 100644 index 000000000..15ea1b023 --- /dev/null +++ b/apps/web/lib/features/team-members-block-view.tsx @@ -0,0 +1,52 @@ +import * as React from 'react'; +import { OT_Member } from '@app/interfaces'; +import { Transition } from '@headlessui/react'; +import { UserTeamBlock } from './team/user-team-block'; + +interface Props { + teamMembers: OT_Member[]; + publicTeam: boolean; + currentUser: OT_Member | undefined; + teamsFetching: boolean; +} + +const TeamMembersBlockView: React.FC = ({ teamMembers: members, publicTeam = false, currentUser }) => { + return ( +
+ {/* Current authenticated user members */} + + {/* */} + +
+ {members.map((member) => { + return ( +
+ + + +
+ ); + })} +
+
+ ); +}; + +export default TeamMembersBlockView; diff --git a/apps/web/lib/features/team-members.tsx b/apps/web/lib/features/team-members.tsx index 0370171ee..5647308ff 100644 --- a/apps/web/lib/features/team-members.tsx +++ b/apps/web/lib/features/team-members.tsx @@ -6,17 +6,24 @@ import { UserCard } from '@components/shared/skeleton/TeamPageSkeleton'; import TeamMembersTableView from './team-members-table-view'; import TeamMembersCardView from './team-members-card-view'; import { IssuesView } from '@app/constants'; +import TeamMembersBlockView from './team-members-block-view'; +import { useRecoilValue } from 'recoil'; +import { taskBlockFilterState } from '@app/stores/task-filter'; type TeamMembersProps = { publicTeam?: boolean; kanbanView?: IssuesView; }; -export function TeamMembers({ publicTeam = false, kanbanView: kanbanView = IssuesView.CARDS }: TeamMembersProps) { +export function TeamMembers({ publicTeam = false, kanbanView: view = IssuesView.CARDS }: TeamMembersProps) { const { user } = useAuthenticateUser(); + const activeFilter = useRecoilValue(taskBlockFilterState); const { activeTeam } = useOrganizationTeams(); const { teamsFetching } = useOrganizationTeams(); - const members = activeTeam?.members || []; + const members = + activeFilter == 'all' + ? activeTeam?.members || [] + : activeTeam?.members.filter((m) => m.timerStatus == activeFilter) || []; const currentUser = members.find((m) => m.employee.userId === user?.id); const $members = members.filter((member) => member.id !== currentUser?.id); const $teamsFetching = teamsFetching && members.length === 0; @@ -34,11 +41,12 @@ export function TeamMembers({ publicTeam = false, kanbanView: kanbanView = Issue
+
); break; - case kanbanView === IssuesView.CARDS: + case view === IssuesView.CARDS: teamMembersView = ( ); break; - case kanbanView === IssuesView.TABLE: + case view === IssuesView.TABLE: teamMembersView = ( ); break; + + case view == IssuesView.BLOCKS: + teamMembersView = ( + + ); + break; default: teamMembersView = ( { + return getTimerStatusValue(timerStatus, member, publicTeam); + }, [timerStatus, member, publicTeam]); + + let totalWork = <>; + if (memberInfo.isAuthUser) { + const { h, m } = secondsToTime( + ((member?.totalTodayTasks && + member?.totalTodayTasks.reduce( + (previousValue, currentValue) => previousValue + currentValue.duration, + 0 + )) || + activeTaskTotalStat?.duration || + 0) + addSeconds + ); + + totalWork = ( +
+ {t('common.TOTAL_TIME')}: + + {h}h : {m}m + +
+ ); + } + + const menu = ( + <> + {(!collaborativeSelect || active) && } + + {collaborativeSelect && !active && ( + + )} + + ); + + return ( +
+ + {/* flex */} +
+
+ + {/* total time */} + {totalWork} +
+ {/* more */} +
{menu}
+
+ + + + {/* Task information */} + + + + + {/* flex */} +
+
+ {/* total time */} + + {/* today time */} +
+ {/* progress time */} + +
+
+
+ ); +} diff --git a/apps/web/lib/features/team/user-team-block/task-info.tsx b/apps/web/lib/features/team/user-team-block/task-info.tsx new file mode 100644 index 000000000..3d8e73a5c --- /dev/null +++ b/apps/web/lib/features/team/user-team-block/task-info.tsx @@ -0,0 +1,106 @@ +import React from 'react'; +import { I_TeamMemberCardHook, I_TMCardTaskEditHook } from '@app/hooks'; +import { IClassName } from '@app/interfaces'; +import { clsxm } from '@app/utils'; +import { TaskAllStatusTypes, TaskInput, TaskNameInfoDisplay } from 'lib/features'; +import { useRouter } from 'next/router'; + +type Props = IClassName & { + edition: I_TMCardTaskEditHook; + memberInfo: I_TeamMemberCardHook; + publicTeam?: boolean; +}; + +export function TaskInfo({ className, memberInfo, edition, publicTeam }: Props) { + return ( +
+ {/* task */} +
+ {edition.task && ( + + )} + {!edition.task &&
--
} +
+ + {edition.task && } + {!edition.task &&
--
} +
+ ); +} + +export function TaskBlockInfo({ className, memberInfo, edition, publicTeam }: Props) { + const task = edition.task; + + return ( +
+ {/* task */} +
+ {edition.task && ( + <> + +

{task?.size}

+ + )} + {!edition.task &&
--
} +
+ + {edition.task && } + {!edition.task &&
--
} +
+ ); +} + +/** + * A component that is used to display the task name and also allow the user to edit the task name. + */ +function TaskDetailAndEdition({ edition, publicTeam }: Props) { + const task = edition.task; + const hasEditMode = edition.editMode && task; + const router = useRouter(); + + edition.taskEditIgnoreElement.onOutsideClick(() => { + edition.setEditMode(false); + }); + + return ( + <> + {/* Task value */} +
null : () => task && router.push(`/task/${task?.id}`)} + > + +
+ + {/* Show task input combobox when in edit mode */} +
+ {hasEditMode && ( + { + console.log(e); + }} + onEnterKey={() => { + edition.setEditMode(false); + }} + /> + )} +
+ + ); +} diff --git a/apps/web/lib/features/team/user-team-block/user-info.tsx b/apps/web/lib/features/team/user-team-block/user-info.tsx new file mode 100644 index 000000000..4b7cfbc2f --- /dev/null +++ b/apps/web/lib/features/team/user-team-block/user-info.tsx @@ -0,0 +1,64 @@ +/* eslint-disable no-mixed-spaces-and-tabs */ +import { I_TeamMemberCardHook, useTimer } from '@app/hooks'; +import { IClassName, ITimerStatusEnum } from '@app/interfaces'; +import { clsxm, isValidUrl } from '@app/utils'; +import { Avatar } from 'lib/components'; +// import { MailIcon } from 'lib/components/svgs'; +import { getTimerStatusValue, TimerStatus } from 'lib/features'; +import Link from 'next/link'; +import { useMemo } from 'react'; +import stc from 'string-to-color'; +import { imgTitle } from '@app/helpers'; + +type Props = { + memberInfo: I_TeamMemberCardHook; + publicTeam?: boolean; +} & IClassName; + +export function UserBoxInfo({ className, memberInfo, publicTeam = false }: Props) { + const { memberUser, member } = memberInfo; + const fullname = `${memberUser?.firstName || ''} ${memberUser?.lastName || ''}`; + + const imageUrl = useMemo(() => { + return memberUser?.image?.thumbUrl || memberUser?.image?.fullUrl || memberUser?.imageUrl || ''; + }, [memberUser?.image?.thumbUrl, memberUser?.image?.fullUrl, memberUser?.imageUrl]); + + const { timerStatus } = useTimer(); + const timerStatusValue: ITimerStatusEnum = useMemo(() => { + return getTimerStatusValue(timerStatus, member, publicTeam); + }, [timerStatus, member, publicTeam]); + + return ( + +
+ {imageUrl && isValidUrl(imageUrl) ? ( + + ) : ( +
+ {imgTitle(fullname).charAt(0)} +
+ )} + +
+ +

{fullname}

+ + ); +} diff --git a/apps/web/lib/features/team/user-team-block/user-team-block-header.tsx b/apps/web/lib/features/team/user-team-block/user-team-block-header.tsx new file mode 100644 index 000000000..b32d13d99 --- /dev/null +++ b/apps/web/lib/features/team/user-team-block/user-team-block-header.tsx @@ -0,0 +1,222 @@ +import React from 'react'; +import { useOrganizationTeams, useAuthenticateUser, useModal, useUserProfilePage } from '@app/hooks'; +import { clsxm } from '@app/utils'; +import { InviteFormModal } from '../invite/invite-form-modal'; +import { taskBlockFilterState } from '@app/stores/task-filter'; +import { + PauseIcon, + SearchNormalIcon, + TimerPlayIcon, + StopCircleIcon, + NotWorkingIcon, + OnlineIcon +} from 'lib/components/svgs'; +import { Transition } from '@headlessui/react'; +import { Button, VerticalSeparator } from 'lib/components'; +import { useTaskFilter, TaskNameFilter } from 'lib/features'; +import { useRecoilState } from 'recoil'; + +interface IFilter { + running: number; + online: number; + pause: number; + idle: number; + suspended: number; +} + +export function UserTeamBlockHeader() { + // const { t } = useTranslation(); + const { activeTeam } = useOrganizationTeams(); + const { user } = useAuthenticateUser(); + const { openModal, isOpen, closeModal } = useModal(); + const [activeFilter, setActiveFilter] = useRecoilState< + 'all' | 'running' | 'online' | 'pause' | 'idle' | 'suspended' + >(taskBlockFilterState); + + const profile = useUserProfilePage(); + const hook = useTaskFilter(profile); + + const membersStatusNumber: IFilter = { + running: 0, + online: 0, + pause: 0, + idle: 0, + suspended: 0 + }; + + const members = activeTeam?.members ? activeTeam?.members : []; + members?.map((item) => { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + membersStatusNumber[item.timerStatus!]++; + }); + + return ( + <> +
+
+
setActiveFilter('all')} + > + +

All members

+
+ {members?.length} +
+
+
setActiveFilter('idle')} + > + +

Not working

+
+ {membersStatusNumber.idle} +
+
+
setActiveFilter('running')} + > + +

Working

+
+ {membersStatusNumber.running} +
+
+
setActiveFilter('pause')} + > + +

Paused

+
+ {membersStatusNumber.pause} +
+
+
setActiveFilter('online')} + > + +

Online

+
+ {membersStatusNumber.online} +
+
+
+
+ {/* */} + + + + + +
+
+
+ + {hook.filterType === 'search' && ( + { + hook.toggleFilterType('search'); + }} + /> + )} + +
+ + + ); +} diff --git a/apps/web/lib/features/team/user-team-block/user-team-card-menu.tsx b/apps/web/lib/features/team/user-team-block/user-team-card-menu.tsx new file mode 100644 index 000000000..b2729f60f --- /dev/null +++ b/apps/web/lib/features/team/user-team-block/user-team-card-menu.tsx @@ -0,0 +1,231 @@ +import { mergeRefs } from '@app/helpers'; +import { I_TeamMemberCardHook, I_TMCardTaskEditHook } from '@app/hooks'; +import { IClassName, ITeamTask } from '@app/interfaces'; +import { clsxm } from '@app/utils'; +import { Popover, Transition } from '@headlessui/react'; +import { Card, ConfirmDropdown, SpinnerLoader, Text } from 'lib/components'; +import { MoreIcon } from 'lib/components/svgs'; +import { TaskUnOrAssignPopover } from 'lib/features/task/task-assign-popover'; +import { useCallback } from 'react'; +import { useTranslation } from 'react-i18next'; + +type Props = IClassName & { + memberInfo: I_TeamMemberCardHook; + edition: I_TMCardTaskEditHook; +}; + +export function UserTeamCardMenu(props: Props) { + return ; +} + +function DropdownMenu({ edition, memberInfo }: Props) { + const { onAssignTask, onUnAssignTask, onRemoveMember } = useDropdownAction({ + edition, + memberInfo + }); + + const { t } = useTranslation(); + const loading = edition.loading || memberInfo.updateOTeamLoading; + + const menu = [ + { + name: t('common.EDIT_TASK'), + closable: true, + onClick: () => { + edition.task && edition.setEditMode(true); + }, + active: (memberInfo.isAuthTeamManager || memberInfo.isAuthUser) && edition.task + }, + { + name: t('common.ESTIMATE'), + closable: true, + onClick: () => { + edition.task && edition.setEstimateEditMode(true); + }, + active: (memberInfo.isAuthTeamManager || memberInfo.isAuthUser) && edition.task + }, + { + name: t('common.ASSIGN_TASK'), + action: 'assign', + onClick: onAssignTask, + + active: (memberInfo.isAuthTeamManager || memberInfo.isAuthUser) && memberInfo.memberUnassignTasks.length > 0 + }, + { + name: t('common.UNASSIGN_TASK'), + action: 'unassign', + closable: true, + onClick: onUnAssignTask, + + active: (memberInfo.isAuthTeamManager || memberInfo.isAuthUser) && !!memberInfo.memberTask + }, + { + name: memberInfo.isTeamManager ? t('common.UNMAKE_A_MANAGER') : t('common.MAKE_A_MANAGER'), + // MAke or unmake member a manager + onClick: memberInfo.isTeamManager ? memberInfo.unMakeMemberManager : memberInfo.makeMemberManager, + active: memberInfo.isAuthTeamManager && !memberInfo.isAuthUser && !memberInfo.isTeamCreator, + closable: true + }, + { + name: t('common.REMOVE'), + type: 'danger', + action: 'remove', + active: memberInfo.isAuthTeamManager && !memberInfo.isAuthUser && !memberInfo.isTeamOwner, + onClick: onRemoveMember + } + ].filter((item) => item.active || item.active === undefined); + + return ( + + {!loading && ( + + + + )} + {loading && } + + + + {({ close }) => { + return ( + +
    + {menu.map((item, i) => { + const text = ( + + {item.name} + + ); + + // When true show combobox component (AssignActionMenu) + const assignAction = item.action === 'assign'; + + const removeAction = item.action === 'remove'; + + return ( +
  • + {assignAction && ( + // Show only for item with combobox menu + { + // Can close all open combobox + item.onClick && + item.onClick({ + task, + closeCombobox1: closeCmbx, + closeCombobox2: close + }); + }} + userProfile={memberInfo.member} + usersTaskCreatedAssignTo={ + memberInfo.member?.employeeId + ? [{ id: memberInfo.member?.employeeId }] + : undefined + } + > + {text} + + )} + + {removeAction && ( + { + item.onClick && item.onClick({ close }); + }} + > + {text} + + )} + + {/* WHen hasn't an action */} + {!assignAction && !removeAction && ( + + )} +
  • + ); + })} +
+
+ ); + }} +
+
+
+ ); +} + +type IAssignCall = (params: { task?: ITeamTask; closeCombobox1?: () => void; closeCombobox2?: () => void }) => void; + +export function useDropdownAction({ edition, memberInfo }: Pick) { + const onAssignTask: IAssignCall = useCallback( + ({ task, closeCombobox1, closeCombobox2 }) => { + if (!task) return; + + edition.setLoading(true); + memberInfo.assignTask(task).finally(() => edition.setLoading(false)); + + closeCombobox1 && closeCombobox1(); + closeCombobox2 && closeCombobox2(); + }, + [edition, memberInfo] + ); + + const onUnAssignTask: IAssignCall = useCallback(() => { + if (!memberInfo.memberTask) return; + edition.setLoading(true); + + memberInfo.unassignTask(memberInfo.memberTask).finally(() => edition.setLoading(false)); + }, [memberInfo, edition]); + + const onRemoveMember = useCallback( + ({ close }: { close?: () => void }) => { + memberInfo.removeMemberFromTeam(); + close && close(); + }, + [memberInfo] + ); + + return { + onAssignTask, + onUnAssignTask, + onRemoveMember + }; +} diff --git a/apps/web/lib/features/team/user-team-card/task-estimate.tsx b/apps/web/lib/features/team/user-team-card/task-estimate.tsx index f56e9f26a..9e2e89dab 100644 --- a/apps/web/lib/features/team/user-team-card/task-estimate.tsx +++ b/apps/web/lib/features/team/user-team-card/task-estimate.tsx @@ -12,19 +12,22 @@ type Props = IClassName & { memberInfo: I_TeamMemberCardHook; edition: I_TMCardTaskEditHook; activeAuthTask: boolean; + showTime?: boolean; + radial?: boolean; }; -export function TaskEstimateInfo({ className, activeAuthTask, ...rest }: Props) { +export function TaskEstimateInfo({ className, activeAuthTask, showTime = true, radial = false, ...rest }: Props) { return (
- + {showTime && }
diff --git a/apps/web/lib/layout/main-layout.tsx b/apps/web/lib/layout/main-layout.tsx index 07e4a1b6b..27e398c26 100644 --- a/apps/web/lib/layout/main-layout.tsx +++ b/apps/web/lib/layout/main-layout.tsx @@ -34,7 +34,7 @@ export function MainLayout({ children, title, showTimer, publicTeam, notFound, c
diff --git a/apps/web/package.json b/apps/web/package.json index 899df48c3..255cc564e 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -22,6 +22,12 @@ "@heroicons/react": "^2.0.12", "@jitsi/react-sdk": "^1.3.0", "@jitsu/jitsu-react": "^1.3.0", + "@opentelemetry/api": "^1.7.0", + "@opentelemetry/auto-instrumentations-node": "^0.40.1", + "@opentelemetry/exporter-trace-otlp-http": "^0.45.1", + "@opentelemetry/resources": "^1.18.1", + "@opentelemetry/sdk-node": "^0.45.1", + "@opentelemetry/semantic-conventions": "^1.18.1", "@popperjs/core": "^2.11.6", "@radix-ui/react-avatar": "^1.0.3", "@radix-ui/react-dialog": "^1.0.4", @@ -87,13 +93,7 @@ "string-to-color": "^2.2.2", "tailwind-merge": "^1.14.0", "tailwindcss": "^3.1.8", - "tailwindcss-animate": "^1.0.6", - "@opentelemetry/api": "^1.7.0", - "@opentelemetry/sdk-node": "^0.45.1", - "@opentelemetry/auto-instrumentations-node": "^0.40.1", - "@opentelemetry/exporter-trace-otlp-http": "^0.45.1", - "@opentelemetry/resources": "^1.18.1", - "@opentelemetry/semantic-conventions": "^1.18.1" + "tailwindcss-animate": "^1.0.6" }, "devDependencies": { "@tailwindcss/typography": "^0.5.9", diff --git a/apps/web/pages/index.tsx b/apps/web/pages/index.tsx index 78c95ed4b..81183b5ef 100644 --- a/apps/web/pages/index.tsx +++ b/apps/web/pages/index.tsx @@ -10,13 +10,14 @@ import { TeamMembers, Timer, UnverifiedEmail, - UserTeamCardHeader + UserTeamCardHeader, + UserTeamBlockHeader } from 'lib/features'; import { MainHeader, MainLayout } from 'lib/layout'; import { useTranslation } from 'react-i18next'; import { useState } from 'react'; import { IssuesView } from '@app/constants'; -import { TableCellsIcon, QueueListIcon } from '@heroicons/react/24/solid'; +import { TableCellsIcon, QueueListIcon, Squares2X2Icon } from '@heroicons/react/24/solid'; function MainPage() { const { t } = useTranslation(); @@ -57,6 +58,17 @@ function MainPage() { > +
@@ -66,13 +78,17 @@ function MainPage() {
{isTeamMember ? : null} {/* Header user card list */} - {view === IssuesView.CARDS && isTeamMember ? : null} + {view === IssuesView.CARDS && isTeamMember ? ( + + ) : view === IssuesView.BLOCKS ? ( + + ) : null} {/* Divider */} diff --git a/apps/web/styles/globals.css b/apps/web/styles/globals.css index d89958e13..3645fa0be 100644 --- a/apps/web/styles/globals.css +++ b/apps/web/styles/globals.css @@ -9,6 +9,10 @@ --tooltipBackground: #000; } +body { + @apply bg-[#F2F2F2]; +} + html.dark { --tooltipBackground: #000; } @@ -297,3 +301,10 @@ html.dark { transform: scale(1.2); } } + +.progress-ring__circle { + stroke-dasharray: 400, 400; + transition: stroke-dashoffset 0.35s; + transform: rotate(-90deg); + transform-origin: 50% 50%; +} diff --git a/apps/web/tailwind.config.js b/apps/web/tailwind.config.js index 9cbcbd3ba..2ba7a6da8 100644 --- a/apps/web/tailwind.config.js +++ b/apps/web/tailwind.config.js @@ -1,5 +1,6 @@ const { createGlobPatternsForDependencies } = require('@nx/react/tailwind'); const { join } = require('path'); + /** @type {import('tailwindcss').Config} */ module.exports = { darkMode: ['class'], From 7180cb5d977c368f0491a555d984a00dedef920c Mon Sep 17 00:00:00 2001 From: desperado1802 Date: Mon, 4 Dec 2023 16:09:48 +0200 Subject: [PATCH 12/44] excluded the suspended members from manage assignees popup --- .../Task/DetailsBlock/components/ManageAssignees.tsx | 10 ++++++++-- .../task/details-section/blocks/task-main-info.tsx | 11 +++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/apps/mobile/app/components/Task/DetailsBlock/components/ManageAssignees.tsx b/apps/mobile/app/components/Task/DetailsBlock/components/ManageAssignees.tsx index d79f576c0..3a655faad 100644 --- a/apps/mobile/app/components/Task/DetailsBlock/components/ManageAssignees.tsx +++ b/apps/mobile/app/components/Task/DetailsBlock/components/ManageAssignees.tsx @@ -42,7 +42,10 @@ const ManageAssignees: React.FC = ({ memberList, task }) => { const assignedToTaskMembers = useMemo( () => memberList?.filter((member) => - member.employee ? task?.members.map((item) => item.userId).includes(member.employee?.userId) : false + member.employee + ? task?.members.map((item) => item.userId).includes(member.employee?.userId) && + member.employee?.isActive + : false ), [memberList, task?.members] ); @@ -50,7 +53,10 @@ const ManageAssignees: React.FC = ({ memberList, task }) => { const unassignedMembers = useMemo( () => memberList?.filter((member) => - member.employee ? !task?.members.map((item) => item.userId).includes(member.employee.userId) : false + member.employee + ? !task?.members.map((item) => item.userId).includes(member.employee.userId) && + member.employee?.isActive + : false ), [memberList, task?.members] ); diff --git a/apps/web/components/pages/task/details-section/blocks/task-main-info.tsx b/apps/web/components/pages/task/details-section/blocks/task-main-info.tsx index cc08ecc02..bc86add07 100644 --- a/apps/web/components/pages/task/details-section/blocks/task-main-info.tsx +++ b/apps/web/components/pages/task/details-section/blocks/task-main-info.tsx @@ -1,3 +1,4 @@ +/* eslint-disable no-mixed-spaces-and-tabs */ import { calculateRemainingDays, formatDateString } from '@app/helpers'; import { useOrganizationTeams, useSyncRef, useTeamMemberCard, useTeamTasks } from '@app/hooks'; import { ITeamTask, OT_Member } from '@app/interfaces'; @@ -217,7 +218,10 @@ const ManageMembersPopover = (memberList: OT_Member[], task: ITeamTask | null) = const unassignedMembers = useMemo( () => memberList.filter((member) => - member.employee ? !task?.members.map((item) => item.userId).includes(member.employee.userId) : false + member.employee + ? !task?.members.map((item) => item.userId).includes(member.employee.userId) && + member.employee?.isActive + : false ), [memberList, task?.members] ); @@ -225,7 +229,10 @@ const ManageMembersPopover = (memberList: OT_Member[], task: ITeamTask | null) = const assignedTaskMembers = useMemo( () => memberList.filter((member) => - member.employee ? task?.members.map((item) => item.userId).includes(member.employee?.userId) : false + member.employee + ? task?.members.map((item) => item.userId).includes(member.employee?.userId) && + member.employee?.isActive + : false ), [memberList, task?.members] ); From 5e9853e48159f6639328b6fcfb2de909c213fcd5 Mon Sep 17 00:00:00 2001 From: desperado1802 <124465103+desperado1802@users.noreply.github.com> Date: Mon, 4 Dec 2023 16:36:07 +0200 Subject: [PATCH 13/44] added the create status from modal functionality and ui (#1950) * added the create status from modal functionality and ui * added create size functionality and ui * added create priority from modal * added the create version from task screen modal functionality and ui --- .../Task/DetailsBlock/blocks/TaskMainInfo.tsx | 4 + apps/mobile/app/components/TaskPriority.tsx | 103 ++++---- .../app/components/TaskPriorityPopup.tsx | 104 +++++++-- apps/mobile/app/components/TaskSize.tsx | 108 ++++----- apps/mobile/app/components/TaskSizePopup.tsx | 105 +++++++-- apps/mobile/app/components/TaskStatus.tsx | 109 ++++----- .../mobile/app/components/TaskStatusPopup.tsx | 108 +++++++-- apps/mobile/app/components/TaskVersion.tsx | 99 ++++---- .../app/components/TaskVersionPopup.tsx | 221 +++++++++++------- .../components/TaskVersionForm.tsx | 130 +++++------ 10 files changed, 676 insertions(+), 415 deletions(-) diff --git a/apps/mobile/app/components/Task/DetailsBlock/blocks/TaskMainInfo.tsx b/apps/mobile/app/components/Task/DetailsBlock/blocks/TaskMainInfo.tsx index 107dafe59..849dfd31d 100644 --- a/apps/mobile/app/components/Task/DetailsBlock/blocks/TaskMainInfo.tsx +++ b/apps/mobile/app/components/Task/DetailsBlock/blocks/TaskMainInfo.tsx @@ -148,6 +148,7 @@ const TaskMainInfo = observer(() => { > { > { > { > unknown + task?: ITeamTask; + containerStyle?: ViewStyle; + priority?: string; + setPriority?: (priority: string) => unknown; + canCreatePriority?: boolean; } const TaskPriority: FC = observer( - ({ task, containerStyle, priority, setPriority }) => { - const { colors } = useAppTheme() - const { updateTask } = useTeamTasks() - const [openModal, setOpenModal] = useState(false) + ({ task, containerStyle, priority, setPriority, canCreatePriority }) => { + const { colors } = useAppTheme(); + const { updateTask } = useTeamTasks(); + const [openModal, setOpenModal] = useState(false); - const allTaskPriorities = useTaskPriorityValue() + const allTaskPriorities = useTaskPriorityValue(); const sizeValue = ( - task?.priority?.split("-").join(" ") || - (priority && priority.split("-").join(" ")) - )?.toLowerCase() + task?.priority?.split('-').join(' ') || + (priority && priority.split('-').join(' ')) + )?.toLowerCase(); const currentPriority = - allTaskPriorities && - Object.values(allTaskPriorities).find((item) => item.name.toLowerCase() === sizeValue) + allTaskPriorities && Object.values(allTaskPriorities).find((item) => item.name.toLowerCase() === sizeValue); const onChangePriority = async (text: string) => { if (task) { const taskEdit = { ...task, - priority: task?.priority === text ? null : text, - } + priority: task?.priority === text ? null : text + }; - await updateTask(taskEdit, task.id) + await updateTask(taskEdit, task.id); } else { - setPriority(text) + setPriority(text); } - } + }; return ( <> @@ -56,6 +56,7 @@ const TaskPriority: FC = observer( visible={openModal} setSelectedPriority={(e) => onChangePriority(e.value)} onDismiss={() => setOpenModal(false)} + canCreatePriority={canCreatePriority} /> setOpenModal(true)}> = observer( ...styles.container, ...containerStyle, borderColor: colors.border, - backgroundColor: currentPriority?.bgColor, + backgroundColor: currentPriority?.bgColor }} > {(task?.priority || priority) && currentPriority ? ( @@ -72,53 +73,51 @@ const TaskPriority: FC = observer( {limitTextCharaters({ text: currentPriority.name, - numChars: 15, + numChars: 15 })} ) : ( - - {translate("settingScreen.priorityScreen.priorities")} + + {translate('settingScreen.priorityScreen.priorities')} )} - ) - }, -) + ); + } +); const styles = StyleSheet.create({ container: { - alignItems: "center", - borderColor: "rgba(0,0,0,0.16)", + alignItems: 'center', + borderColor: 'rgba(0,0,0,0.16)', borderRadius: 10, borderWidth: 1, - flexDirection: "row", - justifyContent: "space-between", + flexDirection: 'row', + justifyContent: 'space-between', minHeight: 30, minWidth: 100, - paddingHorizontal: 8, + paddingHorizontal: 8 }, text: { fontFamily: typography.fonts.PlusJakartaSans.semiBold, - fontSize: 10, + fontSize: 10 }, wrapStatus: { - alignItems: "center", - flexDirection: "row", - width: "70%", - }, -}) + alignItems: 'center', + flexDirection: 'row', + width: '70%' + } +}); -export default TaskPriority +export default TaskPriority; diff --git a/apps/mobile/app/components/TaskPriorityPopup.tsx b/apps/mobile/app/components/TaskPriorityPopup.tsx index 900fe1dc8..d492db6fd 100644 --- a/apps/mobile/app/components/TaskPriorityPopup.tsx +++ b/apps/mobile/app/components/TaskPriorityPopup.tsx @@ -1,6 +1,6 @@ /* eslint-disable react-native/no-inline-styles */ /* eslint-disable react-native/no-color-literals */ -import React, { FC } from 'react'; +import React, { FC, useState } from 'react'; import { View, ViewStyle, @@ -12,19 +12,21 @@ import { TouchableOpacity, TouchableWithoutFeedback } from 'react-native'; -import { Feather, AntDesign } from '@expo/vector-icons'; -import { spacing, useAppTheme } from '../theme'; +import { Feather, AntDesign, Ionicons } from '@expo/vector-icons'; +import { spacing, useAppTheme, typography } from '../theme'; import { BadgedTaskPriority } from './PriorityIcon'; import { useTaskPriority } from '../services/hooks/features/useTaskPriority'; import { ITaskPriorityItem } from '../services/interfaces/ITaskPriority'; import { translate } from '../i18n'; import { BlurView } from 'expo-blur'; +import TaskPriorityForm from '../screens/Authenticated/TaskPrioritiesScreen/components/TaskPriorityForm'; export interface Props { visible: boolean; onDismiss: () => unknown; priorityName: string; setSelectedPriority: (status: ITaskPriorityItem) => unknown; + canCreatePriority?: boolean; } const ModalPopUp = ({ visible, children, onDismiss }) => { @@ -74,10 +76,15 @@ const TaskPriorityPopup: FC = function TaskPriorityPopup({ visible, onDismiss, setSelectedPriority, - priorityName + priorityName, + canCreatePriority }) { const { allTaskPriorities } = useTaskPriority(); - const { colors } = useAppTheme(); + const { colors, dark } = useAppTheme(); + const { createPriority, updatePriority } = useTaskPriority(); + + const [createPriorityMode, setCreatePriorityMode] = useState(false); + const onPrioritySelected = (size: ITaskPriorityItem) => { setSelectedPriority(size); onDismiss(); @@ -85,20 +92,61 @@ const TaskPriorityPopup: FC = function TaskPriorityPopup({ return ( - - - {translate('settingScreen.priorityScreen.priorities')} - - ( - - )} - legacyImplementation={true} - showsVerticalScrollIndicator={true} - keyExtractor={(_, index) => index.toString()} - /> + + {!createPriorityMode ? ( + <> + + {translate('settingScreen.priorityScreen.priorities')} + + ( + + )} + legacyImplementation={true} + showsVerticalScrollIndicator={true} + keyExtractor={(_, index) => index.toString()} + /> + {canCreatePriority && ( + setCreatePriorityMode(true)} + > + + + {translate('settingScreen.priorityScreen.createNewPriorityText')} + + + )} + + ) : ( + setCreatePriorityMode(false)} + onCreatePriority={createPriority} + onUpdatePriority={updatePriority} + isEdit={false} + /> + )} ); @@ -138,6 +186,12 @@ const $modalBackGround: ViewStyle = { }; const styles = StyleSheet.create({ + btnText: { + color: '#3826A6', + fontFamily: typography.primary.semiBold, + fontSize: 16, + fontStyle: 'normal' + }, colorFrame: { borderRadius: 10, height: 44, @@ -154,6 +208,18 @@ const styles = StyleSheet.create({ paddingVertical: 16, width: '90%' }, + createButton: { + alignItems: 'center', + alignSelf: 'center', + borderColor: '#3826A6', + borderRadius: 12, + borderWidth: 2, + flexDirection: 'row', + justifyContent: 'center', + marginTop: 10, + padding: 12, + width: '80%' + }, title: { fontSize: spacing.medium - 2, marginBottom: 16, diff --git a/apps/mobile/app/components/TaskSize.tsx b/apps/mobile/app/components/TaskSize.tsx index 4d5587902..0aad6c20e 100644 --- a/apps/mobile/app/components/TaskSize.tsx +++ b/apps/mobile/app/components/TaskSize.tsx @@ -1,60 +1,57 @@ /* eslint-disable react-native/no-color-literals */ /* eslint-disable react-native/no-inline-styles */ -import React, { FC, useState } from "react" -import { TouchableOpacity, View, Text, StyleSheet, ViewStyle, TextStyle } from "react-native" -import { AntDesign, Entypo } from "@expo/vector-icons" -import { observer } from "mobx-react-lite" -import { ITeamTask } from "../services/interfaces/ITask" -import { useTeamTasks } from "../services/hooks/features/useTeamTasks" -import { showMessage } from "react-native-flash-message" -import { typography, useAppTheme } from "../theme" -import TaskSizePopup from "./TaskSizePopup" -import { translate } from "../i18n" -import { limitTextCharaters } from "../helpers/sub-text" -import { useTaskSizeValue } from "./StatusType" +import React, { FC, useState } from 'react'; +import { TouchableOpacity, View, Text, StyleSheet, ViewStyle, TextStyle } from 'react-native'; +import { AntDesign, Entypo } from '@expo/vector-icons'; +import { observer } from 'mobx-react-lite'; +import { ITeamTask } from '../services/interfaces/ITask'; +import { useTeamTasks } from '../services/hooks/features/useTeamTasks'; +import { showMessage } from 'react-native-flash-message'; +import { typography, useAppTheme } from '../theme'; +import TaskSizePopup from './TaskSizePopup'; +import { translate } from '../i18n'; +import { limitTextCharaters } from '../helpers/sub-text'; +import { useTaskSizeValue } from './StatusType'; interface TaskSizeProps { - task?: ITeamTask - containerStyle?: ViewStyle - statusTextSyle?: TextStyle - size?: string - setSize?: (size: string) => unknown + task?: ITeamTask; + containerStyle?: ViewStyle; + statusTextSyle?: TextStyle; + size?: string; + setSize?: (size: string) => unknown; + canCreateSize?: boolean; } -const TaskSize: FC = observer(({ task, containerStyle, setSize, size }) => { - const { colors } = useAppTheme() - const { updateTask } = useTeamTasks() - const [openModal, setOpenModal] = useState(false) +const TaskSize: FC = observer(({ task, containerStyle, setSize, size, canCreateSize }) => { + const { colors } = useAppTheme(); + const { updateTask } = useTeamTasks(); + const [openModal, setOpenModal] = useState(false); - const allTaskSizes = useTaskSizeValue() + const allTaskSizes = useTaskSizeValue(); - const sizeValue = ( - task?.size?.split("-").join(" ") || - (size && size.split("-").join(" ")) - )?.toLowerCase() + const sizeValue = (task?.size?.split('-').join(' ') || (size && size.split('-').join(' ')))?.toLowerCase(); const currentSize = - allTaskSizes && - Object.values(allTaskSizes).find((item) => item.name.toLowerCase() === sizeValue) + allTaskSizes && Object.values(allTaskSizes).find((item) => item.name.toLowerCase() === sizeValue); const onChangeSize = async (text: string) => { if (task) { const taskEdit = { ...task, - size: task?.size === text ? null : text, - } + size: task?.size === text ? null : text + }; - const { response } = await updateTask(taskEdit, task.id) + const { response } = await updateTask(taskEdit, task.id); if (response.status !== 202) { showMessage({ - message: "Something went wrong", - type: "danger", - }) + message: 'Something went wrong', + type: 'danger' + }); } } else { - setSize(text) + setSize(text); } - } + }; return ( <> @@ -63,6 +60,7 @@ const TaskSize: FC = observer(({ task, containerStyle, setSize, s visible={openModal} setSelectedSize={(e) => onChangeSize(e.value)} onDismiss={() => setOpenModal(false)} + canCreateSize={canCreateSize} /> setOpenModal(true)}> = observer(({ task, containerStyle, setSize, s ...styles.container, ...containerStyle, borderColor: colors.border, - backgroundColor: currentSize?.bgColor, + backgroundColor: currentSize?.bgColor }} > {(task?.size || size) && currentSize ? ( @@ -84,42 +82,38 @@ const TaskSize: FC = observer(({ task, containerStyle, setSize, s - {translate("settingScreen.sizeScreen.sizes")} + {translate('settingScreen.sizeScreen.sizes')} )} - + - ) -}) + ); +}); const styles = StyleSheet.create({ container: { - alignItems: "center", - borderColor: "rgba(0,0,0,0.16)", + alignItems: 'center', + borderColor: 'rgba(0,0,0,0.16)', borderRadius: 10, borderWidth: 1, - flexDirection: "row", - justifyContent: "space-between", + flexDirection: 'row', + justifyContent: 'space-between', minHeight: 30, minWidth: 100, - paddingHorizontal: 8, + paddingHorizontal: 8 }, text: { fontFamily: typography.fonts.PlusJakartaSans.semiBold, - fontSize: 10, + fontSize: 10 }, wrapStatus: { - alignItems: "center", - flexDirection: "row", - width: "70%", - }, -}) + alignItems: 'center', + flexDirection: 'row', + width: '70%' + } +}); -export default TaskSize +export default TaskSize; diff --git a/apps/mobile/app/components/TaskSizePopup.tsx b/apps/mobile/app/components/TaskSizePopup.tsx index 9e5c83896..557256607 100644 --- a/apps/mobile/app/components/TaskSizePopup.tsx +++ b/apps/mobile/app/components/TaskSizePopup.tsx @@ -1,6 +1,6 @@ /* eslint-disable react-native/no-inline-styles */ /* eslint-disable react-native/no-color-literals */ -import React, { FC } from 'react'; +import React, { FC, useState } from 'react'; import { View, ViewStyle, @@ -12,19 +12,21 @@ import { TouchableOpacity, TouchableWithoutFeedback } from 'react-native'; -import { Feather, AntDesign } from '@expo/vector-icons'; -import { spacing, useAppTheme } from '../theme'; +import { Feather, AntDesign, Ionicons } from '@expo/vector-icons'; +import { spacing, useAppTheme, typography } from '../theme'; import { useTaskSizes } from '../services/hooks/features/useTaskSizes'; import { ITaskSizeItem } from '../services/interfaces/ITaskSize'; import { BadgedTaskSize } from './SizeIcon'; import { translate } from '../i18n'; import { BlurView } from 'expo-blur'; +import TaskSizeForm from '../screens/Authenticated/TaskSizeScreen/components/TaskSizeForm'; export interface Props { visible: boolean; onDismiss: () => unknown; sizeName: string; setSelectedSize: (status: ITaskSizeItem) => unknown; + canCreateSize?: boolean; } const ModalPopUp = ({ visible, children, onDismiss }) => { @@ -70,9 +72,19 @@ const ModalPopUp = ({ visible, children, onDismiss }) => { ); }; -const TaskStatusPopup: FC = function FilterPopup({ visible, onDismiss, setSelectedSize, sizeName }) { +const TaskStatusPopup: FC = function FilterPopup({ + visible, + onDismiss, + setSelectedSize, + sizeName, + canCreateSize +}) { const { allTaskSizes } = useTaskSizes(); - const { colors } = useAppTheme(); + const { colors, dark } = useAppTheme(); + const { createSize, updateSize } = useTaskSizes(); + + const [createSizeMode, setCreateSizeMode] = useState(false); + const onStatusSelected = (size: ITaskSizeItem) => { setSelectedSize(size); onDismiss(); @@ -80,20 +92,57 @@ const TaskStatusPopup: FC = function FilterPopup({ visible, onDismiss, se return ( - - - {translate('settingScreen.sizeScreen.sizes')} - - ( - - )} - legacyImplementation={true} - showsVerticalScrollIndicator={true} - keyExtractor={(_, index) => index.toString()} - /> + + {!createSizeMode ? ( + <> + + {translate('settingScreen.sizeScreen.sizes')} + + ( + + )} + legacyImplementation={true} + showsVerticalScrollIndicator={true} + keyExtractor={(_, index) => index.toString()} + /> + {canCreateSize && ( + setCreateSizeMode(true)} + > + + + {translate('settingScreen.sizeScreen.createNewSizeText')} + + + )} + + ) : ( + setCreateSizeMode(false)} + onCreateSize={createSize} + onUpdateSize={updateSize} + isEdit={false} + /> + )} ); @@ -133,6 +182,12 @@ const $modalBackGround: ViewStyle = { }; const styles = StyleSheet.create({ + btnText: { + color: '#3826A6', + fontFamily: typography.primary.semiBold, + fontSize: 16, + fontStyle: 'normal' + }, colorFrame: { borderRadius: 10, height: 44, @@ -149,6 +204,18 @@ const styles = StyleSheet.create({ paddingVertical: 16, width: '90%' }, + createButton: { + alignItems: 'center', + alignSelf: 'center', + borderColor: '#3826A6', + borderRadius: 12, + borderWidth: 2, + flexDirection: 'row', + justifyContent: 'center', + marginTop: 10, + padding: 12, + width: '80%' + }, title: { fontSize: spacing.medium - 2, marginBottom: 16, diff --git a/apps/mobile/app/components/TaskStatus.tsx b/apps/mobile/app/components/TaskStatus.tsx index e2d54a7aa..e42821c89 100644 --- a/apps/mobile/app/components/TaskStatus.tsx +++ b/apps/mobile/app/components/TaskStatus.tsx @@ -1,55 +1,55 @@ /* eslint-disable react-native/no-color-literals */ /* eslint-disable react-native/no-inline-styles */ -import React, { FC, useState } from "react" -import { TouchableOpacity, View, Text, StyleSheet, ViewStyle, TextStyle } from "react-native" -import { AntDesign, Feather } from "@expo/vector-icons" -import { ITeamTask } from "../services/interfaces/ITask" -import { observer } from "mobx-react-lite" -import { useTeamTasks } from "../services/hooks/features/useTeamTasks" -import TaskStatusPopup from "./TaskStatusPopup" -import { typography, useAppTheme } from "../theme" -import { translate } from "../i18n" -import { useTaskStatusValue } from "./StatusType" -import { limitTextCharaters } from "../helpers/sub-text" +import React, { FC, useState } from 'react'; +import { TouchableOpacity, View, Text, StyleSheet, ViewStyle, TextStyle } from 'react-native'; +import { AntDesign, Feather } from '@expo/vector-icons'; +import { ITeamTask } from '../services/interfaces/ITask'; +import { observer } from 'mobx-react-lite'; +import { useTeamTasks } from '../services/hooks/features/useTeamTasks'; +import TaskStatusPopup from './TaskStatusPopup'; +import { typography, useAppTheme } from '../theme'; +import { translate } from '../i18n'; +import { useTaskStatusValue } from './StatusType'; +import { limitTextCharaters } from '../helpers/sub-text'; interface TaskStatusProps { - task?: ITeamTask - containerStyle?: ViewStyle - statusTextSyle?: TextStyle - iconsOnly?: boolean - labelOnly?: boolean - status?: string - setStatus?: (status: string) => unknown + task?: ITeamTask; + containerStyle?: ViewStyle; + statusTextSyle?: TextStyle; + iconsOnly?: boolean; + labelOnly?: boolean; + status?: string; + setStatus?: (status: string) => unknown; + canCreateStatus?: boolean; } const TaskStatus: FC = observer( - ({ task, containerStyle, status, setStatus, iconsOnly, labelOnly }) => { - const { colors, dark } = useAppTheme() - const { updateTask } = useTeamTasks() - const [openModal, setOpenModal] = useState(false) + ({ task, containerStyle, status, setStatus, iconsOnly, labelOnly, canCreateStatus }) => { + const { colors, dark } = useAppTheme(); + const { updateTask } = useTeamTasks(); + const [openModal, setOpenModal] = useState(false); - const allStatuses = useTaskStatusValue() + const allStatuses = useTaskStatusValue(); const statusValue = ( - task?.status?.split("-").join(" ") || - (status && status.split("-").join(" ")) - )?.toLowerCase() + task?.status?.split('-').join(' ') || + (status && status.split('-').join(' ')) + )?.toLowerCase(); const statusItem = - allStatuses && - Object.values(allStatuses).find((item) => item?.name.toLowerCase() === statusValue) + allStatuses && Object.values(allStatuses).find((item) => item?.name.toLowerCase() === statusValue); const onChangeStatus = async (text: string) => { if (task) { const taskEdit = { ...task, - status: task?.status === text ? null : text, - } + status: task?.status === text ? null : text + }; - await updateTask(taskEdit, task.id) + await updateTask(taskEdit, task.id); } else { - setStatus(text) + setStatus(text); } - } + }; return ( <> @@ -58,6 +58,7 @@ const TaskStatus: FC = observer( visible={openModal} setSelectedStatus={(e) => onChangeStatus(e)} onDismiss={() => setOpenModal(false)} + canCreateStatus={canCreateStatus} /> setOpenModal(true)}> = observer( ...styles.container, borderWidth: iconsOnly ? 0 : 1, ...containerStyle, - backgroundColor: !dark ? "#F2F2F2" : colors.background, - borderColor: colors.border, + backgroundColor: !dark ? '#F2F2F2' : colors.background, + borderColor: colors.border }, - statusItem ? { backgroundColor: statusItem?.bgColor } : null, + statusItem ? { backgroundColor: statusItem?.bgColor } : null ]} > {statusItem ? ( - + {!labelOnly && statusItem.icon} {iconsOnly ? null : ( = observer( style={{ ...styles.text, marginLeft: labelOnly ? 0 : 11, - fontSize: labelOnly ? 8 : 10, + fontSize: labelOnly ? 8 : 10 }} > {limitTextCharaters({ text: statusItem?.name, - numChars: 11, + numChars: 11 })} )} @@ -96,40 +97,40 @@ const TaskStatus: FC = observer( {iconsOnly ? ( ) : ( - translate("settingScreen.statusScreen.statuses") + translate('settingScreen.statusScreen.statuses') )} )} - ) - }, -) + ); + } +); const styles = StyleSheet.create({ container: { - alignItems: "center", + alignItems: 'center', borderRadius: 10, - flexDirection: "row", - justifyContent: "space-between", + flexDirection: 'row', + justifyContent: 'space-between', minHeight: 30, - paddingHorizontal: 8, + paddingHorizontal: 8 }, text: { fontFamily: typography.fonts.PlusJakartaSans.semiBold, fontSize: 10, - textTransform: "capitalize", + textTransform: 'capitalize' }, wrapStatus: { - alignItems: "center", - flexDirection: "row", - }, -}) + alignItems: 'center', + flexDirection: 'row' + } +}); -export default TaskStatus +export default TaskStatus; diff --git a/apps/mobile/app/components/TaskStatusPopup.tsx b/apps/mobile/app/components/TaskStatusPopup.tsx index 236277269..2caa183b9 100644 --- a/apps/mobile/app/components/TaskStatusPopup.tsx +++ b/apps/mobile/app/components/TaskStatusPopup.tsx @@ -1,6 +1,6 @@ /* eslint-disable react-native/no-inline-styles */ /* eslint-disable react-native/no-color-literals */ -import React, { FC } from 'react'; +import React, { FC, useState } from 'react'; import { View, ViewStyle, @@ -12,19 +12,21 @@ import { TouchableOpacity, TouchableWithoutFeedback } from 'react-native'; -import { Feather, AntDesign } from '@expo/vector-icons'; +import { Feather, AntDesign, Ionicons } from '@expo/vector-icons'; import { useTaskStatus } from '../services/hooks/features/useTaskStatus'; import { ITaskStatusItem } from '../services/interfaces/ITaskStatus'; import { spacing, typography, useAppTheme } from '../theme'; import { translate } from '../i18n'; import { useTaskStatusValue } from './StatusType'; import { BlurView } from 'expo-blur'; +import TaskStatusForm from '../screens/Authenticated/TaskStatusScreen/components/TaskStatusForm'; export interface Props { visible: boolean; onDismiss: () => unknown; statusName: string; setSelectedStatus?: (status: string) => unknown; + canCreateStatus?: boolean; } const ModalPopUp = ({ visible, children, onDismiss }) => { @@ -70,9 +72,20 @@ const ModalPopUp = ({ visible, children, onDismiss }) => { ); }; -const TaskStatusPopup: FC = function FilterPopup({ visible, onDismiss, setSelectedStatus, statusName }) { +const TaskStatusPopup: FC = function FilterPopup({ + visible, + onDismiss, + setSelectedStatus, + statusName, + canCreateStatus +}) { const { allStatuses } = useTaskStatus(); - const { colors } = useAppTheme(); + const { colors, dark } = useAppTheme(); + + const [createStatusMode, setCreateStatusMode] = useState(false); + + const { createStatus, updateStatus } = useTaskStatus(); + const onStatusSelected = (status: string) => { setSelectedStatus(status); onDismiss(); @@ -80,20 +93,61 @@ const TaskStatusPopup: FC = function FilterPopup({ visible, onDismiss, se return ( - - - {translate('settingScreen.statusScreen.statuses')} - - ( - - )} - legacyImplementation={true} - showsVerticalScrollIndicator={true} - keyExtractor={(_, index) => index.toString()} - /> + + {!createStatusMode ? ( + <> + + {translate('settingScreen.statusScreen.statuses')} + + ( + + )} + legacyImplementation={true} + showsVerticalScrollIndicator={true} + keyExtractor={(_, index) => index.toString()} + /> + {canCreateStatus && ( + setCreateStatusMode(true)} + > + + + {translate('settingScreen.statusScreen.createNewStatusText')} + + + )} + + ) : ( + setCreateStatusMode(false)} + onCreateStatus={createStatus} + onUpdateStatus={updateStatus} + isEdit={false} + /> + )} ); @@ -139,6 +193,12 @@ const $modalBackGround: ViewStyle = { }; const styles = StyleSheet.create({ + btnText: { + color: '#3826A6', + fontFamily: typography.primary.semiBold, + fontSize: 16, + fontStyle: 'normal' + }, colorFrame: { alignItems: 'center', backgroundColor: '#D4EFDF', @@ -158,6 +218,18 @@ const styles = StyleSheet.create({ paddingVertical: 16, width: '90%' }, + createButton: { + alignItems: 'center', + alignSelf: 'center', + borderColor: '#3826A6', + borderRadius: 12, + borderWidth: 2, + flexDirection: 'row', + justifyContent: 'center', + marginTop: 10, + padding: 12, + width: '80%' + }, text: { fontFamily: typography.primary.medium, fontSize: 14, diff --git a/apps/mobile/app/components/TaskVersion.tsx b/apps/mobile/app/components/TaskVersion.tsx index 1499727a0..dc1425534 100644 --- a/apps/mobile/app/components/TaskVersion.tsx +++ b/apps/mobile/app/components/TaskVersion.tsx @@ -1,50 +1,50 @@ /* eslint-disable react-native/no-color-literals */ /* eslint-disable react-native/no-inline-styles */ -import React, { FC, useState } from "react" -import { TouchableOpacity, View, Text, StyleSheet, ViewStyle } from "react-native" -import { AntDesign, Entypo } from "@expo/vector-icons" -import { observer } from "mobx-react-lite" -import { ITeamTask } from "../services/interfaces/ITask" -import { useTeamTasks } from "../services/hooks/features/useTeamTasks" -import { typography, useAppTheme } from "../theme" -import { translate } from "../i18n" -import { useTaskVersionValue } from "./StatusType" -import { limitTextCharaters } from "../helpers/sub-text" -import TaskVersionPopup from "./TaskVersionPopup" +import React, { FC, useState } from 'react'; +import { TouchableOpacity, View, Text, StyleSheet, ViewStyle } from 'react-native'; +import { AntDesign, Entypo } from '@expo/vector-icons'; +import { observer } from 'mobx-react-lite'; +import { ITeamTask } from '../services/interfaces/ITask'; +import { useTeamTasks } from '../services/hooks/features/useTeamTasks'; +import { typography, useAppTheme } from '../theme'; +import { translate } from '../i18n'; +import { useTaskVersionValue } from './StatusType'; +import { limitTextCharaters } from '../helpers/sub-text'; +import TaskVersionPopup from './TaskVersionPopup'; interface TaskVersionProps { - task?: ITeamTask - containerStyle?: ViewStyle - version?: string - setVersion?: (priority: string) => unknown + task?: ITeamTask; + containerStyle?: ViewStyle; + version?: string; + setVersion?: (priority: string) => unknown; + canCreateVersion?: boolean; } const TaskVersion: FC = observer( - ({ task, containerStyle, version, setVersion }) => { - const { colors } = useAppTheme() - const { updateTask } = useTeamTasks() - const [openModal, setOpenModal] = useState(false) + ({ task, containerStyle, version, setVersion, canCreateVersion }) => { + const { colors } = useAppTheme(); + const { updateTask } = useTeamTasks(); + const [openModal, setOpenModal] = useState(false); - const allTaskVersions = useTaskVersionValue() + const allTaskVersions = useTaskVersionValue(); - const versionValue = (task?.version || (version && version))?.toLowerCase() + const versionValue = (task?.version || (version && version))?.toLowerCase(); const currentVersion = - allTaskVersions && - Object.values(allTaskVersions).find((item) => item.value.toLowerCase() === versionValue) + allTaskVersions && Object.values(allTaskVersions).find((item) => item.value.toLowerCase() === versionValue); const onChangeVersion = async (text: string) => { if (task) { const taskEdit = { ...task, - version: task?.version === text ? null : text, - } + version: task?.version === text ? null : text + }; - await updateTask(taskEdit, task.id) + await updateTask(taskEdit, task.id); } else { - setVersion(text) + setVersion(text); } - } + }; return ( <> @@ -53,6 +53,7 @@ const TaskVersion: FC = observer( visible={openModal} setSelectedVersion={(e) => onChangeVersion(e.value)} onDismiss={() => setOpenModal(false)} + canCreateVersion={canCreateVersion} /> setOpenModal(true)}> = observer( ...styles.container, ...containerStyle, borderColor: colors.border, - backgroundColor: colors.background, + backgroundColor: colors.background }} > {(task?.version || version) && currentVersion ? ( @@ -70,22 +71,20 @@ const TaskVersion: FC = observer( style={{ ...styles.text, marginLeft: 10, - color: colors.primary, + color: colors.primary }} > {limitTextCharaters({ text: currentVersion.name, - numChars: 15, + numChars: 15 })} ) : ( - - {translate("taskDetailsScreen.version")} + + {translate('taskDetailsScreen.version')} )} @@ -93,32 +92,32 @@ const TaskVersion: FC = observer( - ) - }, -) + ); + } +); const styles = StyleSheet.create({ container: { - alignItems: "center", - borderColor: "rgba(0,0,0,0.16)", + alignItems: 'center', + borderColor: 'rgba(0,0,0,0.16)', borderRadius: 10, borderWidth: 1, - flexDirection: "row", - justifyContent: "space-between", + flexDirection: 'row', + justifyContent: 'space-between', minHeight: 30, minWidth: 100, - paddingHorizontal: 8, + paddingHorizontal: 8 }, text: { fontFamily: typography.fonts.PlusJakartaSans.semiBold, fontSize: 10, - textTransform: "capitalize", + textTransform: 'capitalize' }, wrapStatus: { - alignItems: "center", - flexDirection: "row", - width: "70%", - }, -}) + alignItems: 'center', + flexDirection: 'row', + width: '70%' + } +}); -export default TaskVersion +export default TaskVersion; diff --git a/apps/mobile/app/components/TaskVersionPopup.tsx b/apps/mobile/app/components/TaskVersionPopup.tsx index 3de99d19d..3c9798e26 100644 --- a/apps/mobile/app/components/TaskVersionPopup.tsx +++ b/apps/mobile/app/components/TaskVersionPopup.tsx @@ -1,6 +1,6 @@ /* eslint-disable react-native/no-inline-styles */ /* eslint-disable react-native/no-color-literals */ -import React, { FC } from "react" +import React, { FC, useState } from 'react'; import { View, ViewStyle, @@ -10,22 +10,25 @@ import { Text, FlatList, TouchableOpacity, - TouchableWithoutFeedback, -} from "react-native" -import { Feather, AntDesign } from "@expo/vector-icons" -import { spacing, useAppTheme } from "../theme" -import { ITaskPriorityItem } from "../services/interfaces/ITaskPriority" + TouchableWithoutFeedback +} from 'react-native'; +import { Feather, AntDesign, Ionicons } from '@expo/vector-icons'; +import { spacing, useAppTheme, typography } from '../theme'; +import { ITaskPriorityItem } from '../services/interfaces/ITaskPriority'; // import { translate } from "../i18n" -import { BlurView } from "expo-blur" -import { useTaskVersion } from "../services/hooks/features/useTaskVersion" -import { BadgedTaskVersion } from "./VersionIcon" -import { ITaskVersionItemList } from "../services/interfaces/ITaskVersion" +import { BlurView } from 'expo-blur'; +import { useTaskVersion } from '../services/hooks/features/useTaskVersion'; +import { BadgedTaskVersion } from './VersionIcon'; +import { ITaskVersionItemList } from '../services/interfaces/ITaskVersion'; +import { translate } from '../i18n'; +import TaskVersionForm from '../screens/Authenticated/TaskVersionScreen/components/TaskVersionForm'; export interface Props { - visible: boolean - onDismiss: () => unknown - versionName: string - setSelectedVersion: (status: ITaskVersionItemList) => unknown + visible: boolean; + onDismiss: () => unknown; + versionName: string; + setSelectedVersion: (status: ITaskVersionItemList) => unknown; + canCreateVersion?: boolean; } const TaskVersionPopup: FC = function TaskPriorityPopup({ @@ -33,52 +36,96 @@ const TaskVersionPopup: FC = function TaskPriorityPopup({ onDismiss, setSelectedVersion, versionName, + canCreateVersion }) { - const { taskVersionList } = useTaskVersion() - const { colors } = useAppTheme() + const { taskVersionList } = useTaskVersion(); + const { colors, dark } = useAppTheme(); + const { createTaskVersion, updateTaskVersion } = useTaskVersion(); + + const [createVersionMode, setCreateVersionMode] = useState(false); + const onVersionSelected = (size: ITaskPriorityItem) => { - setSelectedVersion(size) - onDismiss() - } + setSelectedVersion(size); + onDismiss(); + setCreateVersionMode(false); + }; return ( - - Versions - ( - + {!createVersionMode ? ( + <> + Versions + ( + + )} + legacyImplementation={true} + showsVerticalScrollIndicator={true} + keyExtractor={(_, index) => index.toString()} /> - )} - legacyImplementation={true} - showsVerticalScrollIndicator={true} - keyExtractor={(_, index) => index.toString()} - /> + {canCreateVersion && ( + setCreateVersionMode(true)} + > + + + {translate('settingScreen.versionScreen.createNewVersionText')} + + + )} + + ) : ( + setCreateVersionMode(false)} + onCreateVersion={createTaskVersion} + onUpdateVersion={updateTaskVersion} + isEdit={false} + createVersionModal={true} + /> + )} - ) -} + ); +}; -export default TaskVersionPopup +export default TaskVersionPopup; interface ItemProps { - currentVersionName: string - version: ITaskPriorityItem - onVersionSelected: (size: ITaskPriorityItem) => unknown + currentVersionName: string; + version: ITaskPriorityItem; + onVersionSelected: (size: ITaskPriorityItem) => unknown; } const Item: FC = ({ currentVersionName, version, onVersionSelected }) => { - const { colors } = useAppTheme() - const selected = version.value === currentVersionName + const { colors } = useAppTheme(); + const selected = version.value === currentVersionName; return ( onVersionSelected(version)}> - + @@ -90,91 +137,107 @@ const Item: FC = ({ currentVersionName, version, onVersionSelected }) - ) -} + ); +}; const ModalPopUp = ({ visible, children, onDismiss }) => { - const [showModal, setShowModal] = React.useState(visible) - const scaleValue = React.useRef(new Animated.Value(0)).current + const [showModal, setShowModal] = React.useState(visible); + const scaleValue = React.useRef(new Animated.Value(0)).current; React.useEffect(() => { - toggleModal() - }, [visible]) + toggleModal(); + }, [visible]); const toggleModal = () => { if (visible) { - setShowModal(true) + setShowModal(true); Animated.spring(scaleValue, { toValue: 1, - useNativeDriver: true, - }).start() + useNativeDriver: true + }).start(); } else { - setTimeout(() => setShowModal(false), 200) + setTimeout(() => setShowModal(false), 200); Animated.timing(scaleValue, { toValue: 0, duration: 300, - useNativeDriver: true, - }).start() + useNativeDriver: true + }).start(); } - } + }; return ( onDismiss()}> - - {children} - + {children} - ) -} + ); +}; const $modalBackGround: ViewStyle = { flex: 1, - justifyContent: "center", -} + justifyContent: 'center' +}; const styles = StyleSheet.create({ + btnText: { + color: '#3826A6', + fontFamily: typography.primary.semiBold, + fontSize: 16, + fontStyle: 'normal' + }, colorFrame: { borderRadius: 10, height: 44, - justifyContent: "center", + justifyContent: 'center', paddingLeft: 16, - width: 180, + width: 180 }, container: { - alignSelf: "center", - backgroundColor: "#fff", + alignSelf: 'center', + backgroundColor: '#fff', borderRadius: 20, maxHeight: 396, paddingHorizontal: 6, paddingVertical: 16, - width: "90%", + width: '90%' + }, + createButton: { + alignItems: 'center', + alignSelf: 'center', + borderColor: '#3826A6', + borderRadius: 12, + borderWidth: 2, + flexDirection: 'row', + justifyContent: 'center', + marginTop: 10, + padding: 12, + width: '80%' }, title: { fontSize: spacing.medium - 2, marginBottom: 16, - marginHorizontal: 10, + marginHorizontal: 10 }, wrapperItem: { - alignItems: "center", - borderColor: "rgba(0,0,0,0.13)", + alignItems: 'center', + borderColor: 'rgba(0,0,0,0.13)', borderRadius: 10, borderWidth: 1, - flexDirection: "row", - justifyContent: "space-between", + flexDirection: 'row', + justifyContent: 'space-between', marginBottom: 10, padding: 6, paddingRight: 18, - width: "100%", - }, -}) + width: '100%' + } +}); diff --git a/apps/mobile/app/screens/Authenticated/TaskVersionScreen/components/TaskVersionForm.tsx b/apps/mobile/app/screens/Authenticated/TaskVersionScreen/components/TaskVersionForm.tsx index b3fa3cf6c..591b4080f 100644 --- a/apps/mobile/app/screens/Authenticated/TaskVersionScreen/components/TaskVersionForm.tsx +++ b/apps/mobile/app/screens/Authenticated/TaskVersionScreen/components/TaskVersionForm.tsx @@ -1,14 +1,11 @@ /* eslint-disable react-native/no-color-literals */ /* eslint-disable react-native/no-inline-styles */ -import React, { useEffect, useState } from "react" -import { View, Text, TouchableOpacity, TextInput, StyleSheet, Keyboard } from "react-native" -import { translate } from "../../../../i18n" -import { typography, useAppTheme } from "../../../../theme" +import React, { useEffect, useState } from 'react'; +import { View, Text, TouchableOpacity, TextInput, StyleSheet, Keyboard } from 'react-native'; +import { translate } from '../../../../i18n'; +import { typography, useAppTheme } from '../../../../theme'; -import { - ITaskVersionCreate, - ITaskVersionItemList, -} from "../../../../services/interfaces/ITaskVersion" +import { ITaskVersionCreate, ITaskVersionItemList } from '../../../../services/interfaces/ITaskVersion'; const TaskVersionForm = ({ isEdit, @@ -16,43 +13,45 @@ const TaskVersionForm = ({ item, onCreateVersion, onUpdateVersion, + createVersionModal }: { - isEdit: boolean - onDismiss: () => unknown - item?: ITaskVersionItemList - onUpdateVersion: (id: string, data: ITaskVersionCreate) => unknown - onCreateVersion: (data: ITaskVersionCreate) => unknown + isEdit: boolean; + onDismiss: () => unknown; + item?: ITaskVersionItemList; + onUpdateVersion: (id: string, data: ITaskVersionCreate) => unknown; + onCreateVersion: (data: ITaskVersionCreate) => unknown; + createVersionModal?: boolean; }) => { - const { colors, dark } = useAppTheme() - const [versionName, setVersionName] = useState(null) + const { colors, dark } = useAppTheme(); + const [versionName, setVersionName] = useState(null); useEffect(() => { if (isEdit) { - setVersionName(item.name) + setVersionName(item.name); } else { - setVersionName(null) + setVersionName(null); } - }, [item, isEdit]) + }, [item, isEdit]); const handleSubmit = async () => { if (versionName.trim().length <= 0) { - return + return; } if (isEdit) { await onUpdateVersion(item?.id, { - name: versionName, - }) + name: versionName + }); } else { await onCreateVersion({ name: versionName, - color: "#FFFFFF", - }) + color: '#FFFFFF' + }); } - setVersionName(null) - onDismiss() - } + setVersionName(null); + onDismiss(); + }; return ( - {translate("settingScreen.versionScreen.createNewVersionText")} + {translate('settingScreen.versionScreen.createNewVersionText')} setVersionName(text)} /> - + { - onDismiss() - Keyboard.dismiss() + onDismiss(); + Keyboard.dismiss(); }} > - - {translate("settingScreen.versionScreen.cancelButtonText")} - + {translate('settingScreen.versionScreen.cancelButtonText')} { if (versionName) { - handleSubmit().finally(() => Keyboard.dismiss()) + handleSubmit().finally(() => Keyboard.dismiss()); } }} > {isEdit - ? translate("settingScreen.versionScreen.updateButtonText") - : translate("settingScreen.versionScreen.createButtonText")} + ? translate('settingScreen.versionScreen.updateButtonText') + : translate('settingScreen.versionScreen.createButtonText')} - ) -} + ); +}; -export default TaskVersionForm +export default TaskVersionForm; const styles = StyleSheet.create({ cancelBtn: { - alignItems: "center", - backgroundColor: "#E6E6E9", + alignItems: 'center', + backgroundColor: '#E6E6E9', borderRadius: 12, height: 57, - justifyContent: "center", - width: "48%", + justifyContent: 'center', + width: '48%' }, cancelTxt: { - color: "#1A1C1E", + color: '#1A1C1E', fontFamily: typography.primary.semiBold, - fontSize: 18, + fontSize: 18 }, createBtn: { - alignItems: "center", - backgroundColor: "#3826A6", + alignItems: 'center', + backgroundColor: '#3826A6', borderRadius: 12, height: 57, - justifyContent: "center", - width: "48%", + justifyContent: 'center', + width: '48%' }, createTxt: { - color: "#FFF", + color: '#FFF', fontFamily: typography.primary.semiBold, - fontSize: 18, + fontSize: 18 }, formTitle: { - color: "#1A1C1E", + color: '#1A1C1E', fontFamily: typography.primary.semiBold, - fontSize: 24, + fontSize: 24 }, versionNameInput: { - alignItems: "center", - borderColor: "#DCE4E8", + alignItems: 'center', + borderColor: '#DCE4E8', borderRadius: 12, borderWidth: 1, height: 57, marginTop: 16, paddingHorizontal: 18, - width: "100%", + width: '100%' }, wrapButtons: { - flexDirection: "row", - justifyContent: "space-between", - marginTop: 40, - width: "100%", - }, -}) + flexDirection: 'row', + justifyContent: 'space-between', + width: '100%' + } +}); From 434ce47ebeb7c9688e5b136e3c90d18457a63176 Mon Sep 17 00:00:00 2001 From: desperado1802 <124465103+desperado1802@users.noreply.github.com> Date: Mon, 4 Dec 2023 17:59:31 +0200 Subject: [PATCH 14/44] Improve/api calls post requests (#1946) * created post method for direct fetching * added direct invite email post request * removed unnecessary code, and improved api --- .../app/hooks/features/useTeamInvitations.ts | 18 ++++++-- apps/web/app/services/client/api/invite.ts | 46 +++++++++++++++++-- apps/web/app/services/client/axios.ts | 19 +++++++- 3 files changed, 73 insertions(+), 10 deletions(-) diff --git a/apps/web/app/hooks/features/useTeamInvitations.ts b/apps/web/app/hooks/features/useTeamInvitations.ts index 5e1118437..6559b6159 100644 --- a/apps/web/app/hooks/features/useTeamInvitations.ts +++ b/apps/web/app/hooks/features/useTeamInvitations.ts @@ -21,8 +21,6 @@ import { useQuery } from '../useQuery'; import { useAuthenticateUser } from './useAuthenticateUser'; export function useTeamInvitations() { - const { user } = useAuthenticateUser(); - const setTeamInvitations = useSetRecoilState(teamInvitationsState); const [myInvitationsList, setMyInvitationsList] = useRecoilState(myInvitationsState); @@ -48,14 +46,24 @@ export function useTeamInvitations() { const { queryCall: acceptRejectMyInvitationsQueryCall, loading: acceptRejectMyInvitationsLoading } = useQuery(acceptRejectMyInvitationsAPI); + const { user } = useAuthenticateUser(); + const inviteUser = useCallback( (email: string, name: string) => { - return inviteQueryCall({ email, name }).then((res) => { - setTeamInvitations(res.data?.items || []); + return inviteQueryCall( + { + email, + name, + organizationId: user?.employee.organizationId as string, + teamId: activeTeamId as string + }, + user?.tenantId as string + ).then((res) => { + setTeamInvitations((prev) => [...prev, ...(res.data?.items || [])]); return res; }); }, - [inviteQueryCall, setTeamInvitations] + [inviteQueryCall, setTeamInvitations, user?.tenantId, activeTeamId, user?.employee.organizationId] ); useEffect(() => { diff --git a/apps/web/app/services/client/api/invite.ts b/apps/web/app/services/client/api/invite.ts index 63e9ceb7c..73e46035c 100644 --- a/apps/web/app/services/client/api/invite.ts +++ b/apps/web/app/services/client/api/invite.ts @@ -1,9 +1,47 @@ import { PaginationResponse } from '@app/interfaces/IDataResponse'; -import { IInvitation, IInviteRequest, MyInvitationActionEnum, CreateResponse } from '@app/interfaces'; -import api, { get } from '../axios'; +import { IInvitation, MyInvitationActionEnum, CreateResponse, IInviteCreate, IRole } from '@app/interfaces'; +import { INVITE_CALLBACK_URL } from '@app/constants'; +import api, { get, post } from '../axios'; +import { AxiosResponse } from 'axios'; -export function inviteByEmailsAPI(data: IInviteRequest) { - return api.post>('/invite/emails', data); +interface IIInviteRequest { + email: string; + name: string; + teamId: string; + organizationId: string; +} + +export async function inviteByEmailsAPI(data: IIInviteRequest, tenantId: string) { + const endpoint = '/invite/emails'; + + const date = new Date(); + date.setDate(date.getDate() - 1); + + const getRoleEndpoint = '/roles/options?name=EMPLOYEE'; + + const employeeRole: AxiosResponse = (await get(getRoleEndpoint, true, { tenantId })).data; + + const dataToInviteUser: IInviteCreate & { tenantId: string } = { + emailIds: [data.email], + projectIds: [], + departmentIds: [], + organizationContactIds: [], + teamIds: [data.teamId], + roleId: employeeRole.data.id || '', + invitationExpirationPeriod: 'Never', + inviteType: 'TEAM', + appliedDate: null, + fullName: data.name, + callbackUrl: INVITE_CALLBACK_URL, + organizationId: data.organizationId, + tenantId, + startedWorkOn: date.toISOString() + }; + + // for not direct call we need to adjust data to include name and email only + const fetchData = await post(endpoint, dataToInviteUser, true, { tenantId }); + + return process.env.NEXT_PUBLIC_GAUZY_API_SERVER_URL ? fetchData.data : fetchData; } export async function getTeamInvitationsAPI(tenantId: string, organizationId: string, role: string, teamId: string) { diff --git a/apps/web/app/services/client/axios.ts b/apps/web/app/services/client/axios.ts index 92f3452d2..bd53becb2 100644 --- a/apps/web/app/services/client/axios.ts +++ b/apps/web/app/services/client/axios.ts @@ -87,6 +87,23 @@ function get( : api.get(endpoint); } +function post( + endpoint: string, + data: any, + isDirect: boolean, + extras?: { + tenantId: string; + } +) { + return isDirect && process.env.NEXT_PUBLIC_GAUZY_API_SERVER_URL + ? apiDirect.post(endpoint, data, { + headers: { + ...(extras?.tenantId ? { 'tenant-id': extras?.tenantId } : {}) + } + }) + : api.post(endpoint, data); +} + export default api; -export { apiDirect, get }; +export { apiDirect, get, post }; From e74b4731900f8a419be50e317636c37977de8ae5 Mon Sep 17 00:00:00 2001 From: Paradoxe Ngwasi Date: Tue, 5 Dec 2023 06:26:46 +0000 Subject: [PATCH 15/44] fixed: webapp port is already allocated. --- Layerfile | 4 ++-- Layerfile.build | 4 ++-- Layerfile.node | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Layerfile b/Layerfile index 45b09dbfe..19e016996 100644 --- a/Layerfile +++ b/Layerfile @@ -13,6 +13,6 @@ RUN apt-get update && \ RUN REPEATABLE docker pull everco/ever-teams-webapp -RUN REPEATABLE docker run -d -p 3000:3000 everco/ever-teams-webapp && sleep 5 +RUN REPEATABLE docker run -d -p 3033:3000 everco/ever-teams-webapp && sleep 5 -EXPOSE WEBSITE localhost:3000 +EXPOSE WEBSITE localhost:3033 diff --git a/Layerfile.build b/Layerfile.build index bacc929c2..88810aa39 100644 --- a/Layerfile.build +++ b/Layerfile.build @@ -17,6 +17,6 @@ COPY . . RUN REPEATABLE docker build -t ever-teams . -RUN REPEATABLE docker run -d -p 3000:3000 ever-teams && sleep 5 +RUN REPEATABLE docker run -d -p 3033:3000 ever-teams && sleep 5 -EXPOSE WEBSITE localhost:3000 +EXPOSE WEBSITE localhost:3033 diff --git a/Layerfile.node b/Layerfile.node index 30fd5915e..7ee5b2b05 100644 --- a/Layerfile.node +++ b/Layerfile.node @@ -17,6 +17,6 @@ COPY . . RUN REPEATABLE cd apps/web && yarn install && yarn build -RUN BACKGROUND yarn start:web +RUN BACKGROUND PORT=3033 yarn start:web EXPOSE WEBSITE localhost:3000 From 70f8847c5ad2747060b6e702de94a920b7e7a287 Mon Sep 17 00:00:00 2001 From: Paradoxe Ngwasi Date: Tue, 5 Dec 2023 06:34:27 +0000 Subject: [PATCH 16/44] update Layerfile.node --- Layerfile.node | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Layerfile.node b/Layerfile.node index 7ee5b2b05..b2eb96db9 100644 --- a/Layerfile.node +++ b/Layerfile.node @@ -19,4 +19,4 @@ RUN REPEATABLE cd apps/web && yarn install && yarn build RUN BACKGROUND PORT=3033 yarn start:web -EXPOSE WEBSITE localhost:3000 +EXPOSE WEBSITE localhost:3033 From 764c28d2b3064d02c1237771b9d7ba4e5da6ef43 Mon Sep 17 00:00:00 2001 From: Paradoxe Ngwasi Date: Tue, 5 Dec 2023 08:17:49 +0000 Subject: [PATCH 17/44] fixed: webapp port already allocated --- Layerfile | 6 ++++-- Layerfile.build | 6 ++++-- Layerfile.node | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Layerfile b/Layerfile index 19e016996..961a78a96 100644 --- a/Layerfile +++ b/Layerfile @@ -13,6 +13,8 @@ RUN apt-get update && \ RUN REPEATABLE docker pull everco/ever-teams-webapp -RUN REPEATABLE docker run -d -p 3033:3000 everco/ever-teams-webapp && sleep 5 +RUN REPEATABLE docker rm ever-teams --force || true -EXPOSE WEBSITE localhost:3033 +RUN REPEATABLE docker run --name ever-teams -d -p 3000:3000 everco/ever-teams-webapp && sleep 5 + +EXPOSE WEBSITE localhost:3000 diff --git a/Layerfile.build b/Layerfile.build index 88810aa39..e737c502d 100644 --- a/Layerfile.build +++ b/Layerfile.build @@ -17,6 +17,8 @@ COPY . . RUN REPEATABLE docker build -t ever-teams . -RUN REPEATABLE docker run -d -p 3033:3000 ever-teams && sleep 5 +RUN REPEATABLE docker rm ever-teams --force || true -EXPOSE WEBSITE localhost:3033 +RUN REPEATABLE docker run --name ever-teams -d -p 3000:3000 ever-teams && sleep 5 + +EXPOSE WEBSITE localhost:3000 diff --git a/Layerfile.node b/Layerfile.node index b2eb96db9..30fd5915e 100644 --- a/Layerfile.node +++ b/Layerfile.node @@ -17,6 +17,6 @@ COPY . . RUN REPEATABLE cd apps/web && yarn install && yarn build -RUN BACKGROUND PORT=3033 yarn start:web +RUN BACKGROUND yarn start:web -EXPOSE WEBSITE localhost:3033 +EXPOSE WEBSITE localhost:3000 From c9eb71c6b878218b035a86b7b74f2b8c281200ea Mon Sep 17 00:00:00 2001 From: Paradoxe Ngwasi Date: Tue, 5 Dec 2023 08:18:27 +0000 Subject: [PATCH 18/44] devops: northflank deploy --- README.md | 4 +++ northflank-template.json | 63 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 northflank-template.json diff --git a/README.md b/README.md index d00d7dd6f..6ab23a1fd 100644 --- a/README.md +++ b/README.md @@ -156,6 +156,10 @@ WIP [![Deploy to Koyeb](https://www.koyeb.com/static/images/deploy/button.svg)](https://app.koyeb.com/deploy?name=ever-teams&type=docker&builder=dockerfile&image=ghcr.io/ever-co/ever-teams-webapp:latest&env[PORT]=3000&ports=3000;http;/) +### Northflank + +[Deploy to Northflank](https://app.northflank.com/s/account/templates/new?data=656ed069216b5d387f5379c6) + ## 📄 Content - `/web` - NextJs-based (React) Web App at (deployed from `main` branch) diff --git a/northflank-template.json b/northflank-template.json new file mode 100644 index 000000000..326d2a5fb --- /dev/null +++ b/northflank-template.json @@ -0,0 +1,63 @@ +{ + "apiVersion": "v1", + "name": "ever-teams-template", + "description": "Open Work and Project Management Platform.", + "project": { + "spec": { + "name": "Ever Teams Template", + "region": "europe-west", + "description": "Open Work and Project Management Platform.", + "color": "#3826A6", + "networking": { + "allowedIngressProjects": [] + } + } + }, + "concurrencyPolicy": "allow", + "argumentOverrides": {}, + "options": { + "autorun": true + }, + "spec": { + "kind": "Workflow", + "spec": { + "type": "sequential", + "steps": [ + { + "kind": "DeploymentService", + "spec": { + "deployment": { + "instances": 1, + "docker": { + "configType": "default" + }, + "external": { + "imagePath": "ghcr.io/ever-co/ever-teams-webapp:latest" + } + }, + "runtimeEnvironment": {}, + "runtimeFiles": {}, + "billing": { + "deploymentPlan": "nf-compute-10" + }, + "name": "ever-teams-web", + "ports": [ + { + "internalPort": 3000, + "protocol": "HTTP", + "public": true, + "name": "p01", + "domains": [], + "security": { + "policies": [], + "credentials": [] + }, + "disableNfDomain": false + } + ] + } + } + ] + } + } +} From 9d3fe390aa3d42b5d5904b05d7c56a46ba4602da Mon Sep 17 00:00:00 2001 From: maceteligolden Date: Tue, 5 Dec 2023 16:39:23 +0100 Subject: [PATCH 19/44] chore: remove demo data --- apps/web/pages/kanban/index.tsx | 168 ++------------------------------ 1 file changed, 6 insertions(+), 162 deletions(-) diff --git a/apps/web/pages/kanban/index.tsx b/apps/web/pages/kanban/index.tsx index 128eb1f55..589389ca3 100644 --- a/apps/web/pages/kanban/index.tsx +++ b/apps/web/pages/kanban/index.tsx @@ -1,173 +1,17 @@ +import { useKanban } from "@app/hooks/features/useKanban"; import { withAuthentication } from "lib/app/authenticator"; import { KanbanView } from "lib/features/team-members-kanban-view" import { MainLayout } from "lib/layout"; -import { useRouter } from "next/router"; -import { useEffect, useState } from "react"; - -const todo = { - id: 'status-1', - name: 'TODO', - backgroundColor: '#8154BA', -} - -const ongoing = { - id: 'status-2', - name: 'ONGOING', - backgroundColor: '#D7EBDF', -} - -const review = { - id: 'status-3', - name: 'REVIEW', - backgroundColor: '#EAD2D5', -} - -export const state = [ todo, ongoing, review] - -const demoData = { - todo: [ - { - id: '1', - content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', - hasComment: "tagged", - tags: [ - { - id: 'tag-1', - title: 'User Profile', - backgroundColor: '#8154BA', - color: '#fff' - }, - { - id: 'tag-2', - title: 'BackEnd', - backgroundColor: '#EAD2D5', - color: '#DD2F44' - }, - ], - status: todo - }, - { - id: '4', - content: 'demo content2', - hasComment: "none", - tags: [ - { - id: 'tag-1', - title: 'User Profile', - backgroundColor: '#D7EBDF', - color: '#3D9360' - }, - { - id: 'tag-2', - title: 'BackEnd', - backgroundColor: '#EAD9EE', - color: '#9641AB' - }, - ], - status: todo - } - ], - ongoing: [ - { - id: '2', - content: 'another content', - hasComment: "untagged", - tags: [ - { - id: 'tag-1', - title: 'User Profile', - backgroundColor: '#EAD9EE', - color: '#9641AB' - }, - { - id: 'tag-2', - title: 'BackEnd', - backgroundColor: '#EAD2D5', - color: '#DD2F44' - }, - ], - status: ongoing - }, - { - id: '5', - content: 'another content2', - hasComment: "none", - tags: [ - { - id: 'tag-1', - title: 'User Profile', - backgroundColor: '#8154BA', - color: '#fff' - }, - { - id: 'tag-2', - title: 'BackEnd', - backgroundColor: '#D7EBDF', - color: '#3D9360' - }, - ], - status: ongoing - } - ], - review: [ - { - id: '3', - content: 'a simple tes', - hasComment: "none", - tags: [ - { - id: 'tag-1', - title: 'User Profile', - backgroundColor: '#D7EBDF', - color: '#3D9360' - }, - { - id: 'tag-2', - title: 'BackEnd', - backgroundColor: '#D7EBDF', - color: '#3D9360' - }, - ], - status: review - }, - { - id: '6', - content: 'a simple tes', - hasComment: "none", - tags: [ - { - id: 'tag-1', - title: 'User Profile', - backgroundColor: '#D7EBDF', - color: '#3D9360' - }, - { - id: 'tag-2', - title: 'BackEnd', - backgroundColor: '#D7EBDF', - color: '#3D9360' - }, - ], - status: review - } - ]} const Kanban= () => { - const router = useRouter() - const [winReady, setwinReady] = useState(false); - - useEffect(() => { - - setwinReady(true); - - - }, [router.isReady]); - + + const { data } = useKanban(); + return ( <> - {winReady ? - + {Object.keys(data).length > 0 ? + : null } From 41c5e477765f751ebbe8194c72b15df1b5836a3a Mon Sep 17 00:00:00 2001 From: maceteligolden Date: Tue, 5 Dec 2023 16:40:09 +0100 Subject: [PATCH 20/44] update:replace demo column with kanban task --- apps/web/lib/features/team-members-kanban-view.tsx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/web/lib/features/team-members-kanban-view.tsx b/apps/web/lib/features/team-members-kanban-view.tsx index cad9ba0b9..2514190d8 100644 --- a/apps/web/lib/features/team-members-kanban-view.tsx +++ b/apps/web/lib/features/team-members-kanban-view.tsx @@ -1,7 +1,7 @@ +import { useKanban } from "@app/hooks/features/useKanban"; import { clsxm } from "@app/utils"; import KanbanDraggable, { EmptyKanbanDroppable } from "lib/components/Kanban" import { AddIcon } from "lib/components/svgs"; -import { state } from "pages/kanban"; import React from "react"; import { useEffect, useState } from "react"; import { DragDropContext, DropResult, Droppable, DroppableProvided, DroppableStateSnapshot } from "react-beautiful-dnd"; @@ -54,18 +54,22 @@ const reorderItemMap = ({ itemMap, source, destination }: { }; const getHeaderBackground = (column: any) => { - const selectState = state.filter((item: any)=> { + + const { columns } = useKanban(); + + const selectState = columns.filter((item: any)=> { return item.name === column.toUpperCase() }); - return selectState[0].backgroundColor + return selectState[0].color } export const KanbanView = ({ itemsArray }: { itemsArray: any}) => { const [items, setItems] = useState(itemsArray); - + const [columns, setColumn] = useState(Object.keys(itemsArray)); + /** * This function handles all drag and drop logic * on the kanban board. @@ -156,7 +160,7 @@ export const KanbanView = ({ itemsArray }: { itemsArray: any}) => { > {(provided: DroppableProvided, snapshot: DroppableStateSnapshot) => (
From 0f40bd9bde0773a77c58fb50aaee99279e75c58e Mon Sep 17 00:00:00 2001 From: maceteligolden Date: Tue, 5 Dec 2023 16:40:48 +0100 Subject: [PATCH 21/44] fix:resolve issues with emply column alignment --- apps/web/lib/components/Kanban.tsx | 40 ++++++++++++++++-------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/apps/web/lib/components/Kanban.tsx b/apps/web/lib/components/Kanban.tsx index b6b0a42d9..37d11a5d7 100644 --- a/apps/web/lib/components/Kanban.tsx +++ b/apps/web/lib/components/Kanban.tsx @@ -206,7 +206,7 @@ export const EmptyKanbanDroppable = ({index,title, items}: { { title.length > 0 ? <>
@@ -220,24 +220,28 @@ export const EmptyKanbanDroppable = ({index,title, items}: {
-
- {items.length} -
-
-

- {title} -

+
+
+ {items.length} +
+
+

+ + {title} + +

+
From bf063bf6e4419b3b16621e17bc40284c917cc496 Mon Sep 17 00:00:00 2001 From: maceteligolden Date: Tue, 5 Dec 2023 16:41:04 +0100 Subject: [PATCH 22/44] feat:add kanban atom to store --- apps/web/app/stores/kanban.ts | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 apps/web/app/stores/kanban.ts diff --git a/apps/web/app/stores/kanban.ts b/apps/web/app/stores/kanban.ts new file mode 100644 index 000000000..0badd4c91 --- /dev/null +++ b/apps/web/app/stores/kanban.ts @@ -0,0 +1,7 @@ +import { IKanban } from "@app/interfaces/IKanban"; +import { atom } from "recoil"; + +export const kanbanBoardState = atom({ + key: 'kanbanBoardState', + default: {} +}) \ No newline at end of file From 5ac1e728eab094d71cce874f73c523c1c06df8ef Mon Sep 17 00:00:00 2001 From: maceteligolden Date: Tue, 5 Dec 2023 16:41:17 +0100 Subject: [PATCH 23/44] feat:add kanban interface --- apps/web/app/interfaces/IKanban.ts | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 apps/web/app/interfaces/IKanban.ts diff --git a/apps/web/app/interfaces/IKanban.ts b/apps/web/app/interfaces/IKanban.ts new file mode 100644 index 000000000..2d17b3da5 --- /dev/null +++ b/apps/web/app/interfaces/IKanban.ts @@ -0,0 +1,5 @@ +import { ITeamTask } from "./ITask"; + +export interface IKanban { + [key: string]: ITeamTask[] +} \ No newline at end of file From aab827fdfdfc6a2c3159e62e56165531d0f3990d Mon Sep 17 00:00:00 2001 From: maceteligolden Date: Tue, 5 Dec 2023 16:41:38 +0100 Subject: [PATCH 24/44] feat:add useKanban hook --- apps/web/app/hooks/features/useKanban.ts | 37 ++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 apps/web/app/hooks/features/useKanban.ts diff --git a/apps/web/app/hooks/features/useKanban.ts b/apps/web/app/hooks/features/useKanban.ts new file mode 100644 index 000000000..94b0c653c --- /dev/null +++ b/apps/web/app/hooks/features/useKanban.ts @@ -0,0 +1,37 @@ +import { kanbanBoardState } from "@app/stores/kanban"; +import { useTaskStatus } from "./useTaskStatus"; +import { useRecoilState } from "recoil"; +import { useEffect, useState } from "react"; +import { ITaskStatusItemList } from "@app/interfaces"; + +export function useKanban() { + + const [loading, setLoading] = useState(true); + + const [kanbanBoard, setKanbanBoard] = useRecoilState(kanbanBoardState); + + const taskStatusHook = useTaskStatus(); + + /** + * format data for kanban board + */ + useEffect(()=> { + if(taskStatusHook.loading) { + let kanban = {}; + taskStatusHook.taskStatus.map((taskStatus: ITaskStatusItemList,)=> { + kanban = { + ...kanban, + [taskStatus.name ? taskStatus.name : ''] : [] + } + }); + setKanbanBoard(kanban) + setLoading(false) + } + },[taskStatusHook.loading]) + + return { + data: kanbanBoard, + isLoading: loading, + columns: taskStatusHook.taskStatus + } +} \ No newline at end of file From 6d98892aa7971200a6a73e4694655c71061a9efb Mon Sep 17 00:00:00 2001 From: maceteligolden Date: Tue, 5 Dec 2023 17:51:11 +0100 Subject: [PATCH 25/44] chore: edit extraction --- apps/web/lib/features/team-members.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/web/lib/features/team-members.tsx b/apps/web/lib/features/team-members.tsx index 0370171ee..f71ebbb54 100644 --- a/apps/web/lib/features/team-members.tsx +++ b/apps/web/lib/features/team-members.tsx @@ -14,8 +14,8 @@ type TeamMembersProps = { export function TeamMembers({ publicTeam = false, kanbanView: kanbanView = IssuesView.CARDS }: TeamMembersProps) { const { user } = useAuthenticateUser(); - const { activeTeam } = useOrganizationTeams(); - const { teamsFetching } = useOrganizationTeams(); + const { activeTeam, teamsFetching } = useOrganizationTeams(); + const members = activeTeam?.members || []; const currentUser = members.find((m) => m.employee.userId === user?.id); const $members = members.filter((member) => member.id !== currentUser?.id); From 8b67d68a7666047ccd64928875f0a88fb762035b Mon Sep 17 00:00:00 2001 From: "northflank-cloud-build-run[bot]" <66723851+northflank-cloud-build-run[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 16:26:05 +0000 Subject: [PATCH 26/44] [NORTHFLANK] Updated template file contents --- northflank-template.json | 112 +++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 58 deletions(-) diff --git a/northflank-template.json b/northflank-template.json index 326d2a5fb..64de68c2d 100644 --- a/northflank-template.json +++ b/northflank-template.json @@ -1,63 +1,59 @@ { - "apiVersion": "v1", - "name": "ever-teams-template", - "description": "Open Work and Project Management Platform.", - "project": { - "spec": { - "name": "Ever Teams Template", - "region": "europe-west", - "description": "Open Work and Project Management Platform.", - "color": "#3826A6", - "networking": { - "allowedIngressProjects": [] - } - } - }, - "concurrencyPolicy": "allow", - "argumentOverrides": {}, - "options": { - "autorun": true - }, + "apiVersion": "v1", + "spec": { + "kind": "Workflow", "spec": { - "kind": "Workflow", - "spec": { - "type": "sequential", - "steps": [ - { - "kind": "DeploymentService", - "spec": { - "deployment": { - "instances": 1, - "docker": { - "configType": "default" - }, - "external": { - "imagePath": "ghcr.io/ever-co/ever-teams-webapp:latest" - } - }, - "runtimeEnvironment": {}, - "runtimeFiles": {}, - "billing": { - "deploymentPlan": "nf-compute-10" - }, - "name": "ever-teams-web", - "ports": [ - { - "internalPort": 3000, - "protocol": "HTTP", - "public": true, - "name": "p01", - "domains": [], - "security": { - "policies": [], - "credentials": [] - }, - "disableNfDomain": false - } - ] - } - } + "type": "sequential", + "steps": [ + { + "kind": "DeploymentService", + "spec": { + "deployment": { + "instances": 1, + "docker": { + "configType": "default" + }, + "external": { + "imagePath": "ghcr.io/ever-co/ever-teams-webapp:latest" + } + }, + "runtimeEnvironment": {}, + "runtimeFiles": {}, + "billing": { + "deploymentPlan": "nf-compute-10" + }, + "name": "ever-teams-web", + "ports": [ + { + "internalPort": 3000, + "protocol": "HTTP", + "public": true, + "name": "p01", + "domains": [], + "security": { + "policies": [], + "credentials": [] + }, + "disableNfDomain": false + } ] + } } + ] + } + }, + "name": "ever-teams-template", + "description": "Open Work and Project Management Platform.", + "project": { + "spec": { + "name": "Ever Teams Template", + "region": "europe-west", + "description": "Open Work and Project Management Platform.", + "color": "#3826A6", + "networking": { + "allowedIngressProjects": [] + } } -} + }, + "$schema": "https://api.northflank.com/v1/schemas/template" +} \ No newline at end of file From b101134b0e8e4dda186ac74c4f747ae1cd0a2e1f Mon Sep 17 00:00:00 2001 From: Paradoxe Ngwasi Date: Wed, 6 Dec 2023 16:43:21 +0000 Subject: [PATCH 27/44] Refactor Docker run commands in Layerfile and Layerfile.build --- Layerfile | 5 ++--- Layerfile.build | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Layerfile b/Layerfile index 961a78a96..5df270bf5 100644 --- a/Layerfile +++ b/Layerfile @@ -13,8 +13,7 @@ RUN apt-get update && \ RUN REPEATABLE docker pull everco/ever-teams-webapp -RUN REPEATABLE docker rm ever-teams --force || true - -RUN REPEATABLE docker run --name ever-teams -d -p 3000:3000 everco/ever-teams-webapp && sleep 5 +RUN REPEATABLE (docker rm ever-teams --force || true) &&\ + docker run --name ever-teams -d -p 3000:3000 everco/ever-teams-webapp && sleep 5 EXPOSE WEBSITE localhost:3000 diff --git a/Layerfile.build b/Layerfile.build index e737c502d..13f4cd554 100644 --- a/Layerfile.build +++ b/Layerfile.build @@ -17,8 +17,7 @@ COPY . . RUN REPEATABLE docker build -t ever-teams . -RUN REPEATABLE docker rm ever-teams --force || true - -RUN REPEATABLE docker run --name ever-teams -d -p 3000:3000 ever-teams && sleep 5 +RUN REPEATABLE (docker rm ever-teams --force || true) &&\ + docker run --name ever-teams -d -p 3000:3000 ever-teams && sleep 5 EXPOSE WEBSITE localhost:3000 From 051826e120623994eef80920c1bf7cfe94068f5e Mon Sep 17 00:00:00 2001 From: maceteligolden Date: Wed, 6 Dec 2023 19:46:06 +0100 Subject: [PATCH 28/44] fix:resolve build issue --- apps/web/lib/features/team-members-kanban-view.tsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/web/lib/features/team-members-kanban-view.tsx b/apps/web/lib/features/team-members-kanban-view.tsx index 2514190d8..9b116c7c3 100644 --- a/apps/web/lib/features/team-members-kanban-view.tsx +++ b/apps/web/lib/features/team-members-kanban-view.tsx @@ -53,10 +53,7 @@ const reorderItemMap = ({ itemMap, source, destination }: { }; }; -const getHeaderBackground = (column: any) => { - - const { columns } = useKanban(); - +const getHeaderBackground = (columns: any, column: any) => { const selectState = columns.filter((item: any)=> { return item.name === column.toUpperCase() }); @@ -66,6 +63,8 @@ const getHeaderBackground = (column: any) => { export const KanbanView = ({ itemsArray }: { itemsArray: any}) => { + const { columns:kanbanColumns } = useKanban(); + const [items, setItems] = useState(itemsArray); const [columns, setColumn] = useState(Object.keys(itemsArray)); @@ -176,7 +175,7 @@ export const KanbanView = ({ itemsArray }: { itemsArray: any}) => { index={index} title={column} items={items[column]} - backgroundColor={getHeaderBackground(column)} + backgroundColor={getHeaderBackground(kanbanColumns, column)} />
From d318da15fd72dbce833e7827950e98cf50c7dd72 Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Wed, 29 Nov 2023 16:40:57 +0200 Subject: [PATCH 29/44] feat:add task block card --- .../lib/features/team-members-block-view.tsx | 10 +- apps/web/lib/features/team-members.tsx | 2 +- .../team/user-team-block/task-estimate.tsx | 100 ++++++++++++++++++ .../team/user-team-block/task-info.tsx | 4 +- 4 files changed, 111 insertions(+), 5 deletions(-) create mode 100644 apps/web/lib/features/team/user-team-block/task-estimate.tsx diff --git a/apps/web/lib/features/team-members-block-view.tsx b/apps/web/lib/features/team-members-block-view.tsx index 15ea1b023..b7c3e0576 100644 --- a/apps/web/lib/features/team-members-block-view.tsx +++ b/apps/web/lib/features/team-members-block-view.tsx @@ -10,7 +10,13 @@ interface Props { teamsFetching: boolean; } -const TeamMembersBlockView: React.FC = ({ teamMembers: members, publicTeam = false, currentUser }) => { +const TeamMembersBlockView: React.FC = ({ + teamMembers: members, + publicTeam = false, + currentUser, + teamsFetching = false +}) => { + console.log(publicTeam, currentUser, teamsFetching); return (
{/* Current authenticated user members */} @@ -23,7 +29,7 @@ const TeamMembersBlockView: React.FC = ({ teamMembers: members, publicTea leaveFrom="opacity-100" leaveTo="opacity-0" > - {/* */} + {/*
  • authenticated user task card here
  • */}
    {members.map((member) => { diff --git a/apps/web/lib/features/team-members.tsx b/apps/web/lib/features/team-members.tsx index eda098ff0..65ad2a626 100644 --- a/apps/web/lib/features/team-members.tsx +++ b/apps/web/lib/features/team-members.tsx @@ -18,7 +18,7 @@ type TeamMembersProps = { export function TeamMembers({ publicTeam = false, kanbanView: view = IssuesView.CARDS }: TeamMembersProps) { const { user } = useAuthenticateUser(); const activeFilter = useRecoilValue(taskBlockFilterState); - const { activeTeam, teamsFetching } = useOrganizationTeams(); + const { activeTeam, teamsFetching } = useOrganizationTeams(); const members = activeFilter == 'all' diff --git a/apps/web/lib/features/team/user-team-block/task-estimate.tsx b/apps/web/lib/features/team/user-team-block/task-estimate.tsx new file mode 100644 index 000000000..f56e9f26a --- /dev/null +++ b/apps/web/lib/features/team/user-team-block/task-estimate.tsx @@ -0,0 +1,100 @@ +import { mergeRefs, secondsToTime } from '@app/helpers'; +import { I_TMCardTaskEditHook, I_TeamMemberCardHook } from '@app/hooks'; +import { IClassName } from '@app/interfaces'; +import { clsxm } from '@app/utils'; +import { Text } from 'lib/components'; +import { EditIcon, TickSaveIcon } from 'lib/components/svgs'; +import { TaskEstimate, TaskProgressBar } from 'lib/features'; +import { useRef } from 'react'; +import { useTranslation } from 'react-i18next'; + +type Props = IClassName & { + memberInfo: I_TeamMemberCardHook; + edition: I_TMCardTaskEditHook; + activeAuthTask: boolean; +}; + +export function TaskEstimateInfo({ className, activeAuthTask, ...rest }: Props) { + return ( +
    +
    + + + +
    +
    + ); +} + +function TaskEstimateInput({ memberInfo, edition }: Omit) { + const { t } = useTranslation(); + const loadingRef = useRef(false); + const task = edition.task || memberInfo.memberTask; + + const hasEditMode = edition.estimateEditMode && task; + + const closeFn = () => { + setTimeout(() => { + !loadingRef.current && edition.setEstimateEditMode(false); + }, 1); + }; + edition.estimateEditIgnoreElement.onOutsideClick(closeFn); + + const { h, m } = secondsToTime(task?.estimate || 0); + + return ( + <> +
    + {task && ( + <> + + + + )} +
    + +
    + {t('common.ESTIMATED')}: + + {h}h {m}m + + + {(memberInfo.isAuthUser || memberInfo.isAuthTeamManager) && ( + + )} +
    + + ); +} diff --git a/apps/web/lib/features/team/user-team-block/task-info.tsx b/apps/web/lib/features/team/user-team-block/task-info.tsx index 3d8e73a5c..8297bf44d 100644 --- a/apps/web/lib/features/team/user-team-block/task-info.tsx +++ b/apps/web/lib/features/team/user-team-block/task-info.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { I_TeamMemberCardHook, I_TMCardTaskEditHook } from '@app/hooks'; import { IClassName } from '@app/interfaces'; import { clsxm } from '@app/utils'; -import { TaskAllStatusTypes, TaskInput, TaskNameInfoDisplay } from 'lib/features'; +import { TaskAllStatusTypes, TaskInput, TaskNameInfoDisplay, TaskStatus, useTaskSizesValue } from 'lib/features'; import { useRouter } from 'next/router'; type Props = IClassName & { @@ -38,7 +38,7 @@ export function TaskBlockInfo({ className, memberInfo, edition, publicTeam }: Pr {edition.task && ( <> -

    {task?.size}

    +

    {task?.size?.substring(0, 2)}

    )} {!edition.task &&
    --
    } From 12c467954cd13e60762668e18ae346f4b308b1da Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Wed, 29 Nov 2023 22:10:13 +0200 Subject: [PATCH 30/44] feat: add radial bar --- .../web/lib/features/task/task-radial-bar.tsx | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 apps/web/lib/features/task/task-radial-bar.tsx diff --git a/apps/web/lib/features/task/task-radial-bar.tsx b/apps/web/lib/features/task/task-radial-bar.tsx new file mode 100644 index 000000000..afc9fccc1 --- /dev/null +++ b/apps/web/lib/features/task/task-radial-bar.tsx @@ -0,0 +1,44 @@ +import { I_TeamMemberCardHook, useOrganizationTeams, useTaskStatistics } from '@app/hooks'; +import { ITeamTask, Nullable } from '@app/interfaces'; +import { timerSecondsState } from '@app/stores'; +import { ProgressBar } from 'lib/components'; +import { useRecoilValue } from 'recoil'; + +export function TaskRadialBar({ + isAuthUser, + task, + activeAuthTask, + showPercents +}: // memberInfo, +{ + isAuthUser: boolean | undefined; + task: Nullable; + activeAuthTask: boolean; + showPercents?: boolean; + memberInfo?: I_TeamMemberCardHook; +}) { + const seconds = useRecoilValue(timerSecondsState); + const { getEstimation /*, addSeconds*/ } = useTaskStatistics(isAuthUser && activeAuthTask ? seconds : 0); + + const { activeTeam } = useOrganizationTeams(); + //removed as when certain task's timer was active it was affecting the timers with no estimations. Was taking user's previous task's estimation + // const currentMember = activeTeam?.members.find( + // (member) => member.id === memberInfo?.member?.id + // ); + let totalWorkedTasksTimer = 0; + activeTeam?.members?.forEach((member) => { + const totalWorkedTasks = member?.totalWorkedTasks?.find((item) => item.id === task?.id) || null; + if (totalWorkedTasks) { + totalWorkedTasksTimer += totalWorkedTasks.duration; + } + }); + + const progress = getEstimation( + null, + task, + /*addSeconds || */ totalWorkedTasksTimer || 0, + task?.estimate || 0 //<-- task?.estimate || currentMember?.lastWorkedTask?.estimate || 0 - removed as when certain task's timer was active it was affecting the timers with no estimations. Was taking user's previous task's estimation + ); + + return ; +} From 99c3c482f0777d6258ed46315d778ca392410e45 Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Fri, 1 Dec 2023 23:05:07 +0200 Subject: [PATCH 31/44] fix: merge conflict --- .../team/user-team-block/task-estimate.tsx | 100 - .../team/user-team-block/task-info.tsx | 2 +- apps/web/package.json | 1 + apps/web/tailwind.config.js | 2 +- yarn.lock | 1794 ++++++++++++++++- 5 files changed, 1795 insertions(+), 104 deletions(-) delete mode 100644 apps/web/lib/features/team/user-team-block/task-estimate.tsx diff --git a/apps/web/lib/features/team/user-team-block/task-estimate.tsx b/apps/web/lib/features/team/user-team-block/task-estimate.tsx deleted file mode 100644 index f56e9f26a..000000000 --- a/apps/web/lib/features/team/user-team-block/task-estimate.tsx +++ /dev/null @@ -1,100 +0,0 @@ -import { mergeRefs, secondsToTime } from '@app/helpers'; -import { I_TMCardTaskEditHook, I_TeamMemberCardHook } from '@app/hooks'; -import { IClassName } from '@app/interfaces'; -import { clsxm } from '@app/utils'; -import { Text } from 'lib/components'; -import { EditIcon, TickSaveIcon } from 'lib/components/svgs'; -import { TaskEstimate, TaskProgressBar } from 'lib/features'; -import { useRef } from 'react'; -import { useTranslation } from 'react-i18next'; - -type Props = IClassName & { - memberInfo: I_TeamMemberCardHook; - edition: I_TMCardTaskEditHook; - activeAuthTask: boolean; -}; - -export function TaskEstimateInfo({ className, activeAuthTask, ...rest }: Props) { - return ( -
    -
    - - - -
    -
    - ); -} - -function TaskEstimateInput({ memberInfo, edition }: Omit) { - const { t } = useTranslation(); - const loadingRef = useRef(false); - const task = edition.task || memberInfo.memberTask; - - const hasEditMode = edition.estimateEditMode && task; - - const closeFn = () => { - setTimeout(() => { - !loadingRef.current && edition.setEstimateEditMode(false); - }, 1); - }; - edition.estimateEditIgnoreElement.onOutsideClick(closeFn); - - const { h, m } = secondsToTime(task?.estimate || 0); - - return ( - <> -
    - {task && ( - <> - - - - )} -
    - -
    - {t('common.ESTIMATED')}: - - {h}h {m}m - - - {(memberInfo.isAuthUser || memberInfo.isAuthTeamManager) && ( - - )} -
    - - ); -} diff --git a/apps/web/lib/features/team/user-team-block/task-info.tsx b/apps/web/lib/features/team/user-team-block/task-info.tsx index 8297bf44d..55d9c368a 100644 --- a/apps/web/lib/features/team/user-team-block/task-info.tsx +++ b/apps/web/lib/features/team/user-team-block/task-info.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { I_TeamMemberCardHook, I_TMCardTaskEditHook } from '@app/hooks'; import { IClassName } from '@app/interfaces'; import { clsxm } from '@app/utils'; -import { TaskAllStatusTypes, TaskInput, TaskNameInfoDisplay, TaskStatus, useTaskSizesValue } from 'lib/features'; +import { TaskAllStatusTypes, TaskInput, TaskNameInfoDisplay } from 'lib/features'; import { useRouter } from 'next/router'; type Props = IClassName & { diff --git a/apps/web/package.json b/apps/web/package.json index 255cc564e..3d53caf02 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -54,6 +54,7 @@ "embla-carousel-react": "^8.0.0-rc11", "emoji-mart": "^5.5.2", "firebase": "8.3.3", + "framer-motion": "^10.16.12", "hotkeys-js": "^3.12.0", "i18next": "^23.6.0", "js-cookie": "^3.0.1", diff --git a/apps/web/tailwind.config.js b/apps/web/tailwind.config.js index 2ba7a6da8..5bda79491 100644 --- a/apps/web/tailwind.config.js +++ b/apps/web/tailwind.config.js @@ -1,6 +1,5 @@ const { createGlobPatternsForDependencies } = require('@nx/react/tailwind'); const { join } = require('path'); - /** @type {import('tailwindcss').Config} */ module.exports = { darkMode: ['class'], @@ -9,6 +8,7 @@ module.exports = { './components/**/*.{ts,tsx}', './app/**/*.{ts,tsx}', './src/**/*.{ts,tsx}', + './node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}', join(__dirname, '{src,pages,components,lib}/**/*!(*.stories|*.spec).{ts,tsx,html}'), ...createGlobPatternsForDependencies(__dirname) ], diff --git a/yarn.lock b/yarn.lock index 222b68347..ffeb085f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1161,6 +1161,13 @@ dependencies: regenerator-runtime "^0.14.0" +"@babel/runtime@^7.20.13": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" + integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/runtime@^7.22.5", "@babel/runtime@^7.9.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" @@ -2018,6 +2025,18 @@ resolved "https://registry.yarnpkg.com/@emoji-mart/react/-/react-1.1.1.tgz#ddad52f93a25baf31c5383c3e7e4c6e05554312a" integrity sha512-NMlFNeWgv1//uPsvLxvGQoIerPuVdXwK/EUek8OOkJ6wVOWPUizRBJU0hDqWZCOROVpfBgCemaC3m6jDOXi03g== +"@emotion/is-prop-valid@^0.8.2": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" + integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + dependencies: + "@emotion/memoize" "0.7.4" + +"@emotion/memoize@0.7.4": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" + integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -2351,6 +2370,45 @@ resolved "https://registry.yarnpkg.com/@foliojs-fork/restructure/-/restructure-2.0.2.tgz#73759aba2aff1da87b7c4554e6839c70d43c92b4" integrity sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA== +"@formatjs/ecma402-abstract@1.18.0": + version "1.18.0" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.0.tgz#e2120e7101020140661b58430a7ff4262705a2f2" + integrity sha512-PEVLoa3zBevWSCZzPIM/lvPCi8P5l4G+NXQMc/CjEiaCWgyHieUoo0nM7Bs0n/NbuQ6JpXEolivQ9pKSBHaDlA== + dependencies: + "@formatjs/intl-localematcher" "0.5.2" + tslib "^2.4.0" + +"@formatjs/fast-memoize@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz#33bd616d2e486c3e8ef4e68c99648c196887802b" + integrity sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA== + dependencies: + tslib "^2.4.0" + +"@formatjs/icu-messageformat-parser@2.7.3": + version "2.7.3" + resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.3.tgz#c8c95e7c9f8141bdb93bea0e92e4fcace19d3c9f" + integrity sha512-X/jy10V9S/vW+qlplqhMUxR8wErQ0mmIYSq4mrjpjDl9mbuGcCILcI1SUYkL5nlM4PJqpc0KOS0bFkkJNPxYRw== + dependencies: + "@formatjs/ecma402-abstract" "1.18.0" + "@formatjs/icu-skeleton-parser" "1.7.0" + tslib "^2.4.0" + +"@formatjs/icu-skeleton-parser@1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.7.0.tgz#796938d6d0ba8fc75bb9edee038d1350bfee32cb" + integrity sha512-Cfdo/fgbZzpN/jlN/ptQVe0lRHora+8ezrEeg2RfrNjyp+YStwBy7cqDY8k5/z2LzXg6O0AdzAV91XS0zIWv+A== + dependencies: + "@formatjs/ecma402-abstract" "1.18.0" + tslib "^2.4.0" + +"@formatjs/intl-localematcher@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.5.2.tgz#5fcf029fd218905575e5080fa33facdcb623d532" + integrity sha512-txaaE2fiBMagLrR4jYhxzFO6wEdEG4TPMqrzBAcbr4HFUYzH/YC+lg6OIzKCHm8WgDdyQevxbAAV1OgcXctuGw== + dependencies: + tslib "^2.4.0" + "@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" @@ -2511,6 +2569,35 @@ resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== +"@internationalized/date@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.5.0.tgz#67f1dd62355f05140cc80e324842e9bfb4553abe" + integrity sha512-nw0Q+oRkizBWMioseI8+2TeUPEyopJVz5YxoYVzR0W1v+2YytiYah7s/ot35F149q/xAg4F1gT/6eTd+tsUpFQ== + dependencies: + "@swc/helpers" "^0.5.0" + +"@internationalized/message@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.1.1.tgz#0f29c5a239b5dcd457b55f21dcd38d1a44a1236a" + integrity sha512-ZgHxf5HAPIaR0th+w0RUD62yF6vxitjlprSxmLJ1tam7FOekqRSDELMg4Cr/DdszG5YLsp5BG3FgHgqquQZbqw== + dependencies: + "@swc/helpers" "^0.5.0" + intl-messageformat "^10.1.0" + +"@internationalized/number@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.4.0.tgz#1c3ebf6ac40ce649d3d97bb835ff0559957f2e1f" + integrity sha512-8TvotW3qVDHC4uv/BVoN6Qx0Dm8clHY1/vpH+dh+XRiPW/9NVpKn1P8d1A+WLphWrMwyqyWXI7uWehJPviaeIw== + dependencies: + "@swc/helpers" "^0.5.0" + +"@internationalized/string@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@internationalized/string/-/string-3.1.1.tgz#2ab7372d58bbb7ffd3de62fc2a311e4690186981" + integrity sha512-fvSr6YRoVPgONiVIUhgCmIAlifMVCeej/snPZVzbzRPxGpHl3o1GRe+d/qh92D8KhgOciruDUH8I5mjdfdjzfA== + dependencies: + "@swc/helpers" "^0.5.0" + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -3167,6 +3254,840 @@ resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.6.tgz#4a3e2a206251abc729339ba85f60bc0433c2865d" integrity sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ== +"@nextui-org/accordion@2.0.28": + version "2.0.28" + resolved "https://registry.yarnpkg.com/@nextui-org/accordion/-/accordion-2.0.28.tgz#4d61d0534d4365a41a9ab0bc02b74bafc5069922" + integrity sha512-WzD7sscL+4K0TFyUutTn1AhU0wcS68TqNCTNv7KgON6ODdwieydilMxAyXvwo3RgXeWG+8BbdxJC/6W+/iLBTg== + dependencies: + "@nextui-org/aria-utils" "2.0.15" + "@nextui-org/divider" "2.0.25" + "@nextui-org/framer-transitions" "2.0.15" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-icons" "2.0.6" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-accordion" "2.0.2" + "@nextui-org/use-aria-press" "2.0.1" + "@react-aria/button" "^3.8.4" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/tree" "^3.7.3" + "@react-types/accordion" "3.0.0-alpha.17" + "@react-types/shared" "^3.21.0" + +"@nextui-org/aria-utils@2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@nextui-org/aria-utils/-/aria-utils-2.0.15.tgz#5575dcc89a7ee7e95fba5a7ffe63ff38d50a9d5a" + integrity sha512-4M4jeJ/ghGaia9064yS+mEZ3sFPH80onmjNGWJZkkZDmUV4R88lNkqe/XYBK1tbxfl4Kxa8jc/ALsZkUkkvR5w== + dependencies: + "@nextui-org/react-rsc-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/system" "2.0.15" + "@react-aria/utils" "^3.21.1" + "@react-stately/collections" "^3.10.2" + "@react-types/overlays" "^3.8.3" + "@react-types/shared" "^3.21.0" + +"@nextui-org/autocomplete@2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@nextui-org/autocomplete/-/autocomplete-2.0.9.tgz#8daeb3becf4dd3b5850d62df5a40553ef209e870" + integrity sha512-ViPXrZnP35k7LF+TBA4w8nqu0OEj9p1z9Rt7rwrACmY2VmDGY6h6a6nDCMjhuTVXptftRvzxfIPsIyzBYqxb0g== + dependencies: + "@nextui-org/aria-utils" "2.0.15" + "@nextui-org/button" "2.0.26" + "@nextui-org/input" "2.1.16" + "@nextui-org/listbox" "2.1.16" + "@nextui-org/popover" "2.1.14" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/scroll-shadow" "2.1.12" + "@nextui-org/shared-icons" "2.0.6" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/spinner" "2.0.24" + "@nextui-org/use-aria-button" "2.0.6" + "@react-aria/combobox" "^3.7.1" + "@react-aria/focus" "^3.14.3" + "@react-aria/i18n" "^3.8.4" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-aria/visually-hidden" "^3.8.6" + "@react-stately/combobox" "^3.7.1" + "@react-types/combobox" "^3.8.1" + "@react-types/shared" "^3.21.0" + +"@nextui-org/avatar@2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@nextui-org/avatar/-/avatar-2.0.24.tgz#6b4f25dff4766d6d9e05e60c8b93fca66a044dd0" + integrity sha512-3QUn8v61iNvAYogUbEDVnhDjBK6WBxxFYLp95a0H52zN0p2LHXe+UNwdGZYFo5QNWx6CHGH3vh2AHlLLy3WFSQ== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-image" "2.0.4" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + +"@nextui-org/badge@2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@nextui-org/badge/-/badge-2.0.24.tgz#26c0159f44697012840002577dc24918632133b1" + integrity sha512-FA3XgqEbyKWepMXqMZg7D+1IRf7flrb2LzFvTbkmsbvWQ4yYz1LqJXZ/HDmoCydvh2pOnc+1zPK3BpB7vGrrwA== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/system-rsc" "2.0.11" + +"@nextui-org/breadcrumbs@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nextui-org/breadcrumbs/-/breadcrumbs-2.0.4.tgz#0509862cf52598b5b9dbaa22f0adf750d97ee60e" + integrity sha512-SAE0+QRgA7vxUHPL65TKz3MRj7u2mbSwk8Eifkwo6hPcF0d34zv2QDupTGyphIjoGCSrQHFIq/CPAkXyaOXZxw== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-icons" "2.0.6" + "@nextui-org/shared-utils" "2.0.4" + "@react-aria/breadcrumbs" "^3.5.7" + "@react-aria/focus" "^3.14.3" + "@react-aria/utils" "^3.21.1" + "@react-types/breadcrumbs" "^3.7.1" + "@react-types/shared" "^3.21.0" + +"@nextui-org/button@2.0.26": + version "2.0.26" + resolved "https://registry.yarnpkg.com/@nextui-org/button/-/button-2.0.26.tgz#006d29e7290b17ee267d200c006385e139c1cb69" + integrity sha512-mDrSII1oneY4omwDdxUhl5oLa3AhoWCchwV/jt7egunnAFie32HbTqfFYGpLGiJw3JMMh3WDUthrI1islVTRKA== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/ripple" "2.0.24" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/spinner" "2.0.24" + "@nextui-org/use-aria-button" "2.0.6" + "@react-aria/button" "^3.8.4" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-types/button" "^3.9.0" + "@react-types/shared" "^3.21.0" + +"@nextui-org/card@2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@nextui-org/card/-/card-2.0.24.tgz#e57764fa91a0711221d32e9d5481d9df902ef9ec" + integrity sha512-16uAS0i6+EO+u8aqtmaCXatjovsyuTq51JwCLBlB67OldfgXoYcYl3GaE2VoZdEwxVu1G/qypDfXv29k46nZuA== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/ripple" "2.0.24" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-button" "2.0.6" + "@react-aria/button" "^3.8.4" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-types/shared" "^3.21.0" + +"@nextui-org/checkbox@2.0.25": + version "2.0.25" + resolved "https://registry.yarnpkg.com/@nextui-org/checkbox/-/checkbox-2.0.25.tgz#d4a412d30ea87faef69152f5187cc76e9a32852f" + integrity sha512-X6WkwPbZlDvioEcXF6HhKH21wD6OK+3+FSroKkzMPQLJrj2KYUIYGbiuw9rT9aCtdjbT+6HUCv+FA8/cBQr7cA== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-press" "2.0.1" + "@react-aria/checkbox" "^3.11.2" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-aria/visually-hidden" "^3.8.6" + "@react-stately/checkbox" "^3.5.1" + "@react-stately/toggle" "^3.6.3" + "@react-types/checkbox" "^3.5.2" + "@react-types/shared" "^3.21.0" + +"@nextui-org/chip@2.0.25": + version "2.0.25" + resolved "https://registry.yarnpkg.com/@nextui-org/chip/-/chip-2.0.25.tgz#56ba55c938e7c2cbeac62c34250a74aa81a827a3" + integrity sha512-hfVSaq5JWzGn97s3K2Ac/xOopHWelaUW3eus0O0wns/6+NCI0QUjgwNt2bAQSNvnE6vjvYLJTqGG/jFHyFJjOg== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-icons" "2.0.6" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-press" "2.0.1" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-types/checkbox" "^3.5.2" + +"@nextui-org/code@2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@nextui-org/code/-/code-2.0.24.tgz#421361189063edc3db2a0ea29de01a0e04d6ec61" + integrity sha512-Kw/uOQtdytRWY99zMQuGHqMAAGXWBAxHlyMMge1OCckpadCDfX6plPjqoS18SGM0orJ4fox+a1FM8VhnRQ2kQw== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/system-rsc" "2.0.11" + +"@nextui-org/divider@2.0.25": + version "2.0.25" + resolved "https://registry.yarnpkg.com/@nextui-org/divider/-/divider-2.0.25.tgz#3c156552ad38e506b91f8f3dd023b3490a260f08" + integrity sha512-yEvHqYlhNBwmF68pfjJKdzC8gVQtL+txxD5COBGF9uFyfxA5hVw2D6GmYgOH514bxrFBuWOLcQX6gyljgcN3bA== + dependencies: + "@nextui-org/react-rsc-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/system-rsc" "2.0.11" + "@react-types/shared" "^3.21.0" + +"@nextui-org/dropdown@2.1.16": + version "2.1.16" + resolved "https://registry.yarnpkg.com/@nextui-org/dropdown/-/dropdown-2.1.16.tgz#4b9d328193e942235d04e5c1758618898275e412" + integrity sha512-3KINNvC7Cz+deQltCM8gaB7iJCfU4Qsp1fwnoy1wUEjeZhEtPOPR59oTyqT+gPaPIisP1+LLOfcqRl4jNQoVXw== + dependencies: + "@nextui-org/menu" "2.0.17" + "@nextui-org/popover" "2.1.14" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@react-aria/focus" "^3.14.3" + "@react-aria/menu" "^3.11.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/menu" "^3.5.6" + "@react-types/menu" "^3.9.5" + +"@nextui-org/framer-transitions@2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@nextui-org/framer-transitions/-/framer-transitions-2.0.15.tgz#da53e1923e8091d0a9d91e8791cf661d8e8b3b01" + integrity sha512-UlWMCAFdrq8wKrYFGwc+O4kFhKCkL4L9ZadBkP0PqjmfyAC2gA3ygRbNqtKhFMWeKbBAiC8qQ9aTBEA/+0r/EA== + dependencies: + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/system" "2.0.15" + +"@nextui-org/image@2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@nextui-org/image/-/image-2.0.24.tgz#aba9c0a8ae014d0d7e21361c1d30ca9aef13e2da" + integrity sha512-bps5D5ki7PoLldb8wcJEf6C4EUFZm3PocLytNaGa7dNxFfaCOD78So+kq+K+0IRusK3yn94K8r31qMvpI3Gg2Q== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-image" "2.0.4" + +"@nextui-org/input@2.1.16": + version "2.1.16" + resolved "https://registry.yarnpkg.com/@nextui-org/input/-/input-2.1.16.tgz#c9bbebb551c5f966c12ec95434042be0993afe29" + integrity sha512-nUTlAvsXj5t88ycvQdICxf78/pko6Wznx2OomvYjb3E45eb77twQcWUDhydkJCWIh3b4AhGHSMM6GYxwWUgMDA== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-icons" "2.0.6" + "@nextui-org/shared-utils" "2.0.4" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/textfield" "^3.12.2" + "@react-aria/utils" "^3.21.1" + "@react-stately/utils" "^3.8.0" + "@react-types/shared" "^3.21.0" + "@react-types/textfield" "^3.8.1" + react-textarea-autosize "^8.5.2" + +"@nextui-org/kbd@2.0.25": + version "2.0.25" + resolved "https://registry.yarnpkg.com/@nextui-org/kbd/-/kbd-2.0.25.tgz#a4a85c69166084a0326bc8fd1e7820f23d8fe42c" + integrity sha512-cYwbEjp/+/tjtOdmiRy2UHjfBhP3bqd5e+JFTa5sY1HotckUZrCintATyBcg9bPa3iSPUI44M6Cb9e0oAUUeMA== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/system-rsc" "2.0.11" + "@react-aria/utils" "^3.21.1" + +"@nextui-org/link@2.0.26": + version "2.0.26" + resolved "https://registry.yarnpkg.com/@nextui-org/link/-/link-2.0.26.tgz#154446f755a52a51cf4d0d1a6f1c9412856053f2" + integrity sha512-X8zX3U5MWfiStOCd45oIZ2YKZG0GoUio6PcMFYjpOPsEG7wV58CuhUSxpyx3QTF8JavVSO/p/cl4Pc9pukVDUg== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-icons" "2.0.6" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-link" "2.0.15" + "@react-aria/focus" "^3.14.3" + "@react-aria/link" "^3.6.1" + "@react-aria/utils" "^3.21.1" + "@react-types/link" "^3.5.1" + +"@nextui-org/listbox@2.1.16": + version "2.1.16" + resolved "https://registry.yarnpkg.com/@nextui-org/listbox/-/listbox-2.1.16.tgz#99830f14c749ae6bac250f02e35ad36605c18674" + integrity sha512-5PmUCoHFgAr+1nAU3IlqPFTgyHo7zsTcNeja4wcErD/KseCF2h7Uk5OqUX5hQDN9B9fZuGjPrkG4yoK/6pqcUQ== + dependencies: + "@nextui-org/aria-utils" "2.0.15" + "@nextui-org/divider" "2.0.25" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-press" "2.0.1" + "@nextui-org/use-is-mobile" "2.0.6" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/listbox" "^3.11.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/list" "^3.10.0" + "@react-types/menu" "^3.9.5" + "@react-types/shared" "^3.21.0" + +"@nextui-org/menu@2.0.17": + version "2.0.17" + resolved "https://registry.yarnpkg.com/@nextui-org/menu/-/menu-2.0.17.tgz#6e0e90799b6154d2d3c4e9ffc9cca5675e9097da" + integrity sha512-qr/BPDbBvg5tpAZZLkLx8eNnvYwJYM3Q72fmRYbzwmG3upNtdjln0QYxSwPXUz7RYqTKEFWc9JPxq2pgPM15Wg== + dependencies: + "@nextui-org/aria-utils" "2.0.15" + "@nextui-org/divider" "2.0.25" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-press" "2.0.1" + "@nextui-org/use-is-mobile" "2.0.6" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/menu" "^3.11.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/menu" "^3.5.6" + "@react-stately/tree" "^3.7.3" + "@react-types/menu" "^3.9.5" + "@react-types/shared" "^3.21.0" + +"@nextui-org/modal@2.0.28": + version "2.0.28" + resolved "https://registry.yarnpkg.com/@nextui-org/modal/-/modal-2.0.28.tgz#0014c4d10f05e4b67d90d131af254bef7cd4f102" + integrity sha512-unfP0EMF3FDg5CkRqou03s4/BopWbaBTeVIMZeA2A1WF5teHUOmpLdp44Z1KOoWB1RVMDVd4JeoauNHNhJMp0g== + dependencies: + "@nextui-org/framer-transitions" "2.0.15" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-icons" "2.0.6" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-button" "2.0.6" + "@nextui-org/use-aria-modal-overlay" "2.0.6" + "@nextui-org/use-disclosure" "2.0.6" + "@react-aria/dialog" "^3.5.7" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/overlays" "^3.18.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/overlays" "^3.6.3" + "@react-types/overlays" "^3.8.3" + react-remove-scroll "^2.5.6" + +"@nextui-org/navbar@2.0.27": + version "2.0.27" + resolved "https://registry.yarnpkg.com/@nextui-org/navbar/-/navbar-2.0.27.tgz#3d318692db701d3d5c74de6a41546ca37ac673a1" + integrity sha512-iP4Pn4ItQkAW1nbu1Jmrh5l9pMVG43lDxq9rbx6DbLjLnnZOOrE6fURb8uN5NVy3ooV5dF02zKAoxlkE5fN/xw== + dependencies: + "@nextui-org/framer-transitions" "2.0.15" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-toggle-button" "2.0.6" + "@nextui-org/use-scroll-position" "2.0.4" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/overlays" "^3.18.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/toggle" "^3.6.3" + "@react-stately/utils" "^3.8.0" + react-remove-scroll "^2.5.6" + +"@nextui-org/pagination@2.0.26": + version "2.0.26" + resolved "https://registry.yarnpkg.com/@nextui-org/pagination/-/pagination-2.0.26.tgz#279023882beba4891a22b6d24ff69d264718bc90" + integrity sha512-OVpkpXqUKRuMRIcYESBAL95d3pqZ17SKAyNINMiJ/DwWnrzJu/LXGmFwTuYRoBdqHFlm7guGqZbHmAkcS/Fgow== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-icons" "2.0.6" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-press" "2.0.1" + "@nextui-org/use-pagination" "2.0.4" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + scroll-into-view-if-needed "3.0.10" + +"@nextui-org/popover@2.1.14": + version "2.1.14" + resolved "https://registry.yarnpkg.com/@nextui-org/popover/-/popover-2.1.14.tgz#9ef43ef04fc325231001188e6b0c2a93f94e8b94" + integrity sha512-fqqktFQ/chIBS9Y3MghL6KX6qAy3hodtXUDchnxLa1GL+oi6TCBLUjo+wgI5EMJrTTbqo/eFLui/Ks00JfCj+A== + dependencies: + "@nextui-org/aria-utils" "2.0.15" + "@nextui-org/button" "2.0.26" + "@nextui-org/framer-transitions" "2.0.15" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-button" "2.0.6" + "@react-aria/dialog" "^3.5.7" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/overlays" "^3.18.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/overlays" "^3.6.3" + "@react-types/button" "^3.9.0" + "@react-types/overlays" "^3.8.3" + react-remove-scroll "^2.5.6" + +"@nextui-org/progress@2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@nextui-org/progress/-/progress-2.0.24.tgz#009681d4aa0233f5f62783a35d249a95a6ac1a74" + integrity sha512-RPVsFCF8COFClS/8PqEepzryhDFtIcJGQLu/P+qAr7jIDlXizXaBDrp0X34GVtQsapNeE9ExxX9Kt+QIspuHHQ== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-is-mounted" "2.0.4" + "@react-aria/i18n" "^3.8.4" + "@react-aria/progress" "^3.4.7" + "@react-aria/utils" "^3.21.1" + "@react-types/progress" "^3.5.0" + +"@nextui-org/radio@2.0.25": + version "2.0.25" + resolved "https://registry.yarnpkg.com/@nextui-org/radio/-/radio-2.0.25.tgz#694ea70cf1f849c4e892ab5aa2f2ee672042d7e4" + integrity sha512-vRX0ppM5Tlzu0HoqTG6LdmQnMjk8RRl66BH1+QaosvZRXA1iIdA3BduqQYqn5ZZHBBlJ2u9QzaD3lTAlWIHvNg== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-press" "2.0.1" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/radio" "^3.8.2" + "@react-aria/utils" "^3.21.1" + "@react-aria/visually-hidden" "^3.8.6" + "@react-stately/radio" "^3.9.1" + "@react-types/radio" "^3.5.2" + "@react-types/shared" "^3.21.0" + +"@nextui-org/react-rsc-utils@2.0.10": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@nextui-org/react-rsc-utils/-/react-rsc-utils-2.0.10.tgz#2a20e4b72e6f9dc57efe235a66f1b4a017d94cbb" + integrity sha512-LNePDEThUF9PAbJW4T8k7EgSfqwlvGku5fIqJ1IA9+OpVy5LqhrUQehjvgXe63N1RupC7Pt+XvaaxkGu9U2FiQ== + +"@nextui-org/react-utils@2.0.10": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@nextui-org/react-utils/-/react-utils-2.0.10.tgz#30cd3d03fbb911d496ae15b9d27b0f5ab9450876" + integrity sha512-bcA+k7ZdcgcK+r/8nrCtbdgHo0SD6jicbazWIokknFwjb97JQ7ooaMwxnLt5E5sswCAv0XeLwybOmrgm7JA5TA== + dependencies: + "@nextui-org/react-rsc-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + +"@nextui-org/react@^2.2.9": + version "2.2.9" + resolved "https://registry.yarnpkg.com/@nextui-org/react/-/react-2.2.9.tgz#aa4e872492a710fdffffd431679e6cbd857d3653" + integrity sha512-QHkUQTxI9sYoVjrvTpYm5K68pMDRqD13+DVzdsrkJuETGhbvE2c2CCGc4on9EwXC3JsOxuP/OyqaAmOIuHhYkA== + dependencies: + "@nextui-org/accordion" "2.0.28" + "@nextui-org/autocomplete" "2.0.9" + "@nextui-org/avatar" "2.0.24" + "@nextui-org/badge" "2.0.24" + "@nextui-org/breadcrumbs" "2.0.4" + "@nextui-org/button" "2.0.26" + "@nextui-org/card" "2.0.24" + "@nextui-org/checkbox" "2.0.25" + "@nextui-org/chip" "2.0.25" + "@nextui-org/code" "2.0.24" + "@nextui-org/divider" "2.0.25" + "@nextui-org/dropdown" "2.1.16" + "@nextui-org/image" "2.0.24" + "@nextui-org/input" "2.1.16" + "@nextui-org/kbd" "2.0.25" + "@nextui-org/link" "2.0.26" + "@nextui-org/listbox" "2.1.16" + "@nextui-org/menu" "2.0.17" + "@nextui-org/modal" "2.0.28" + "@nextui-org/navbar" "2.0.27" + "@nextui-org/pagination" "2.0.26" + "@nextui-org/popover" "2.1.14" + "@nextui-org/progress" "2.0.24" + "@nextui-org/radio" "2.0.25" + "@nextui-org/ripple" "2.0.24" + "@nextui-org/scroll-shadow" "2.1.12" + "@nextui-org/select" "2.1.20" + "@nextui-org/skeleton" "2.0.24" + "@nextui-org/slider" "2.2.5" + "@nextui-org/snippet" "2.0.30" + "@nextui-org/spacer" "2.0.24" + "@nextui-org/spinner" "2.0.24" + "@nextui-org/switch" "2.0.25" + "@nextui-org/system" "2.0.15" + "@nextui-org/table" "2.0.28" + "@nextui-org/tabs" "2.0.26" + "@nextui-org/theme" "2.1.17" + "@nextui-org/tooltip" "2.0.29" + "@nextui-org/user" "2.0.25" + "@react-aria/visually-hidden" "^3.8.6" + +"@nextui-org/ripple@2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@nextui-org/ripple/-/ripple-2.0.24.tgz#837f69f3edb0867b5271dbd3c9f9ef98e92193b2" + integrity sha512-PCvAk9ErhmPX46VRmhsg8yMxw3Qd9LY7BDkRRfIF8KftgRDyOpG2vV8DxvSOxQu1/aqBWkkHNUuEjM/EvSEung== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + +"@nextui-org/scroll-shadow@2.1.12": + version "2.1.12" + resolved "https://registry.yarnpkg.com/@nextui-org/scroll-shadow/-/scroll-shadow-2.1.12.tgz#d896c3a1f7b9e09b86866c7223d34dd754330d28" + integrity sha512-uxT8D+WCWeBy4xaFDfqVpBgjjHZUwydXsX5HhbzZCBir/1eRG5GMnUES3w98DSwcUVadG64gAVsyGW4HmSZw1Q== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-data-scroll-overflow" "2.1.2" + +"@nextui-org/select@2.1.20": + version "2.1.20" + resolved "https://registry.yarnpkg.com/@nextui-org/select/-/select-2.1.20.tgz#26c8ea37c6be99500fe0483ffba53e307ac8b318" + integrity sha512-GCO9uzyYnFIdJTqIe6aDe2NnYlclcdYfZnECFAze/R2MW0jpoysk5ysGBDjVDmZis6tLu+BOFXJbIlYEi+LoUQ== + dependencies: + "@nextui-org/aria-utils" "2.0.15" + "@nextui-org/listbox" "2.1.16" + "@nextui-org/popover" "2.1.14" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/scroll-shadow" "2.1.12" + "@nextui-org/shared-icons" "2.0.6" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/spinner" "2.0.24" + "@nextui-org/use-aria-button" "2.0.6" + "@nextui-org/use-aria-multiselect" "2.1.3" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-aria/visually-hidden" "^3.8.6" + "@react-types/shared" "^3.21.0" + +"@nextui-org/shared-icons@2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@nextui-org/shared-icons/-/shared-icons-2.0.6.tgz#e6ee3544f2a711eeb1c79116f495583e76994402" + integrity sha512-Mw5utPJAclFaeKAZowznEgabI5gdhXrW0iMaMA18Y4zcZRTidAc0WFeGYUlX876NxYLPc1Zk4bZUhQvMe+7uWg== + +"@nextui-org/shared-utils@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nextui-org/shared-utils/-/shared-utils-2.0.4.tgz#a5fbd5227ad3a2ab637582e77ad33c73d99f5f32" + integrity sha512-Ms7A6UCvo/SZt/9Nmb7cZwHe9fZFw+EPsieTnC1vtpvDNCasxrTB0hj9VWFoYfWOaCzzqxl1AL9maIz/gMvckQ== + +"@nextui-org/skeleton@2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@nextui-org/skeleton/-/skeleton-2.0.24.tgz#ee35ec96a825a2c9589dca4958dfa6585706e9b6" + integrity sha512-bsb+lYugSfQV3RHrEHLbHhkkeslaxybnnT4z485Y/GBYTENOiHIOnWFWntfxCbjZ6vCewGlfgnphj6zeqlk20g== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/system-rsc" "2.0.11" + +"@nextui-org/slider@2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@nextui-org/slider/-/slider-2.2.5.tgz#bdfa1dd486f5f8dc1997172204aa6b2c3e388ee5" + integrity sha512-dC6HHMmtn2WvxDmbY/Dq51XJjQ7cAnjZsuYVIvhwIiCLDG8QnEIhmYN0DQp/6oeZsCHnyMHC4DmtgOiJL0eXrQ== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/tooltip" "2.0.29" + "@nextui-org/use-aria-press" "2.0.1" + "@react-aria/focus" "^3.14.3" + "@react-aria/i18n" "^3.8.4" + "@react-aria/interactions" "^3.19.1" + "@react-aria/slider" "^3.7.2" + "@react-aria/utils" "^3.21.1" + "@react-aria/visually-hidden" "^3.8.6" + "@react-stately/slider" "^3.4.4" + +"@nextui-org/snippet@2.0.30": + version "2.0.30" + resolved "https://registry.yarnpkg.com/@nextui-org/snippet/-/snippet-2.0.30.tgz#1bbaed3ab403bbbd18de9e29c3b5bbfbd95c1fba" + integrity sha512-8hKxqKpbJIMqFVedzYj90T4td+TkWdOdyYD9+VjywMdezAjsWdr8tqQj7boaMFjVNVSG+Pnw55Pgg/vkpc21aw== + dependencies: + "@nextui-org/button" "2.0.26" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-icons" "2.0.6" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/tooltip" "2.0.29" + "@nextui-org/use-clipboard" "2.0.4" + "@react-aria/focus" "^3.14.3" + "@react-aria/utils" "^3.21.1" + +"@nextui-org/spacer@2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@nextui-org/spacer/-/spacer-2.0.24.tgz#69678201b4a08d4ec859fb95d1b596fe3204a5da" + integrity sha512-bLnhPRnoyHQXhLneHjbRqZNxJWMFOBYOZkuX83uy59/FFUY07BcoNsb2s80tN3GoVxsaZ2jB6NxxVbaCJwoPog== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/system-rsc" "2.0.11" + +"@nextui-org/spinner@2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@nextui-org/spinner/-/spinner-2.0.24.tgz#99bfea6572ae9a64a20ab57249f483a912e07672" + integrity sha512-s/q2FmxGPNEqA0ifWfc7xgs5a5D9c3xKkxL3n7jDoRnWo0NPlRsa6QRJGiSL5dHNoUqspRf/lNw2V94Bxk86Pg== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/system-rsc" "2.0.11" + +"@nextui-org/switch@2.0.25": + version "2.0.25" + resolved "https://registry.yarnpkg.com/@nextui-org/switch/-/switch-2.0.25.tgz#6ae65dbdbeebcb3a5fa1d12c7101827a4af7c735" + integrity sha512-U7g68eReMSkgG0bBOSdzRLK+npv422YK6WYHpYOSkEBDqGwQ7LCeMRQreT/KxN0QFxIKmafebdLHAbuKc/X+5Q== + dependencies: + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-aria-press" "2.0.1" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/switch" "^3.5.6" + "@react-aria/utils" "^3.21.1" + "@react-aria/visually-hidden" "^3.8.6" + "@react-stately/toggle" "^3.6.3" + "@react-types/shared" "^3.21.0" + +"@nextui-org/system-rsc@2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@nextui-org/system-rsc/-/system-rsc-2.0.11.tgz#7f81b925c988b34f85f587af27e42fdbe5c463cc" + integrity sha512-1QqZ+GM7Ii0rsfSHXS6BBjzKOoLIWwb72nm4h4WgjlMXbRKLZcCQasRHVe5HMSBMvN0JUo7qyGExchfDFl/Ubw== + dependencies: + clsx "^1.2.1" + +"@nextui-org/system@2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@nextui-org/system/-/system-2.0.15.tgz#b0a532f0b3a27e911c076d2ac180d38c72d64952" + integrity sha512-WFDq+Rx6D+gmK1YGEG2RBARPK9EOYonQDt5Tq2tUchzOOqj3kXXcM5Z0F3fudM59eIncLa/tX/ApJSTLry+hsw== + dependencies: + "@nextui-org/system-rsc" "2.0.11" + "@react-aria/i18n" "^3.8.4" + "@react-aria/overlays" "^3.18.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/utils" "^3.8.0" + +"@nextui-org/table@2.0.28": + version "2.0.28" + resolved "https://registry.yarnpkg.com/@nextui-org/table/-/table-2.0.28.tgz#4ea5f3688836e07f0273de0657dff188f87ebc39" + integrity sha512-qH/7jdV5+tiMDDvBfMrUZN4jamds0FsL5Ak+ighoKIUYRFTSXOroi+63ZzzAh/mZAsUALCPPcfbXt4r4aBFDzg== + dependencies: + "@nextui-org/checkbox" "2.0.25" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-icons" "2.0.6" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/spacer" "2.0.24" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/table" "^3.13.1" + "@react-aria/utils" "^3.21.1" + "@react-aria/visually-hidden" "^3.8.6" + "@react-stately/table" "^3.11.2" + "@react-stately/virtualizer" "^3.6.4" + "@react-types/grid" "^3.2.2" + "@react-types/table" "^3.9.0" + +"@nextui-org/tabs@2.0.26": + version "2.0.26" + resolved "https://registry.yarnpkg.com/@nextui-org/tabs/-/tabs-2.0.26.tgz#5064c81fd8a48af54d2b04e86b915cb4bb179e2e" + integrity sha512-GjERgBYUAY1KD4GqNVy0cRi6GyQnf62q0ddcN4je3sEM6rsq3PygEXhkN5pxxFPacoYM/UE6rBswHSKlbjJjgw== + dependencies: + "@nextui-org/aria-utils" "2.0.15" + "@nextui-org/framer-transitions" "2.0.15" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@nextui-org/use-is-mounted" "2.0.4" + "@nextui-org/use-update-effect" "2.0.4" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/tabs" "^3.8.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/tabs" "^3.6.1" + "@react-types/shared" "^3.21.0" + "@react-types/tabs" "^3.3.3" + scroll-into-view-if-needed "3.0.10" + +"@nextui-org/theme@2.1.17": + version "2.1.17" + resolved "https://registry.yarnpkg.com/@nextui-org/theme/-/theme-2.1.17.tgz#e5e625486225fab15a60ae774988c71c4f91b66b" + integrity sha512-/WeHcMrAcWPGsEVn9M9TnvxKkaYkCocBH9JrDYCEFQoJgleUzHd4nVk7MWtpSOYJXLUzUMY1M9AqAK3jBkw+5g== + dependencies: + color "^4.2.3" + color2k "^2.0.2" + deepmerge "4.3.1" + flat "^5.0.2" + lodash.foreach "^4.5.0" + lodash.get "^4.4.2" + lodash.kebabcase "^4.1.1" + lodash.mapkeys "^4.6.0" + lodash.omit "^4.5.0" + tailwind-variants "^0.1.18" + +"@nextui-org/tooltip@2.0.29": + version "2.0.29" + resolved "https://registry.yarnpkg.com/@nextui-org/tooltip/-/tooltip-2.0.29.tgz#cca91088241fdd6ef1d33ebeb7eae80192d2e52d" + integrity sha512-LaFyS5bXhcZFXP9rnh6pTKsYX6siWjzEe5z72FIOyAV2yvv2yhkRiO/mEHKI8moo+/tScW/6muFXsvbEalPefg== + dependencies: + "@nextui-org/aria-utils" "2.0.15" + "@nextui-org/framer-transitions" "2.0.15" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@react-aria/interactions" "^3.19.1" + "@react-aria/overlays" "^3.18.1" + "@react-aria/tooltip" "^3.6.4" + "@react-aria/utils" "^3.21.1" + "@react-stately/tooltip" "^3.4.5" + "@react-types/overlays" "^3.8.3" + "@react-types/tooltip" "^3.4.5" + +"@nextui-org/use-aria-accordion@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-accordion/-/use-aria-accordion-2.0.2.tgz#4f87a715c4e9864c8c8bfdf2d440915fd7963a6c" + integrity sha512-ebYr4CdvWifuTM/yyhQLKCa7aUqbVrWyR0SB6VNCGDID/kvRUW52puWnY9k24xdwY0cKbW3JRciKtQkrokRQwg== + dependencies: + "@react-aria/button" "^3.8.4" + "@react-aria/focus" "^3.14.3" + "@react-aria/selection" "^3.17.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/tree" "^3.7.3" + "@react-types/accordion" "3.0.0-alpha.17" + "@react-types/shared" "^3.21.0" + +"@nextui-org/use-aria-button@2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-button/-/use-aria-button-2.0.6.tgz#1a4f3dd5ad1f725cefc28a3fb6330751e37c5f75" + integrity sha512-38DZ3FK/oPZ3sppfM5EtgJ4DITOajNwSKkAMePBmuSZl+bsW7peP8g5JNd9uPOEz3edCOppT60AQSICsYiH3cg== + dependencies: + "@nextui-org/use-aria-press" "2.0.1" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-types/button" "^3.9.0" + "@react-types/shared" "^3.21.0" + +"@nextui-org/use-aria-link@2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-link/-/use-aria-link-2.0.15.tgz#e176e02915b890f609eb7620be8b7a2119258a33" + integrity sha512-znzOeTZ10o3O5F2nihi8BR8rAhRHgrRWcEBovV7OqJeFzvTQwsHl9/xy45zBfwJQksBtfcBfQf+GEHXeDwfigA== + dependencies: + "@nextui-org/use-aria-press" "2.0.1" + "@react-aria/focus" "^3.14.3" + "@react-aria/interactions" "^3.19.1" + "@react-aria/utils" "^3.21.1" + "@react-types/link" "^3.5.1" + "@react-types/shared" "^3.21.0" + +"@nextui-org/use-aria-modal-overlay@2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-modal-overlay/-/use-aria-modal-overlay-2.0.6.tgz#f267fa80143d098e1e625aea3bf224c095fc3467" + integrity sha512-JfhXvH2RObWpHeLmxdIBDPF2SDzV4SqBvEh01yRvg/EuZ3HDRfCnTDh+5HD0ziUVdk/kWuy/hZLX59sMX7QHWA== + dependencies: + "@react-aria/overlays" "^3.18.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/overlays" "^3.6.3" + "@react-types/shared" "^3.21.0" + +"@nextui-org/use-aria-multiselect@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-multiselect/-/use-aria-multiselect-2.1.3.tgz#9526f2711b0454d0608dc744e807849215678845" + integrity sha512-OM1lj2jdl0Q2Zme/ds6qyT4IIGsBJSGNjvkM6pEnpdyoej/HwTKsSEpEFTDGJ5t9J9DWWCEt3hz0uJxOPnZ66Q== + dependencies: + "@react-aria/i18n" "^3.8.4" + "@react-aria/interactions" "^3.19.1" + "@react-aria/label" "^3.7.2" + "@react-aria/listbox" "^3.11.1" + "@react-aria/menu" "^3.11.1" + "@react-aria/selection" "^3.17.1" + "@react-aria/utils" "^3.21.1" + "@react-stately/list" "^3.10.0" + "@react-stately/menu" "^3.5.6" + "@react-types/button" "^3.9.0" + "@react-types/overlays" "^3.8.3" + "@react-types/select" "^3.8.4" + "@react-types/shared" "^3.21.0" + +"@nextui-org/use-aria-press@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-press/-/use-aria-press-2.0.1.tgz#b703cc546187637ef2a0c58616cc5a69654abb05" + integrity sha512-T3MjHH5TU9qnkf872GmhcfQK16ITMmMW9zir6xsSsz0w6ay9Y0XTSPrI2zRL6ociFyfJjP840XCLtSx6VBfEBQ== + dependencies: + "@react-aria/interactions" "^3.19.1" + "@react-aria/ssr" "^3.8.0" + "@react-aria/utils" "^3.21.1" + "@react-types/shared" "^3.21.0" + +"@nextui-org/use-aria-toggle-button@2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-toggle-button/-/use-aria-toggle-button-2.0.6.tgz#d347f01514710f73dd42acee4106ecfa734b6aed" + integrity sha512-6Sjp7a0HQjmboLKNZu9AtZmyHz8+vhqcDwJDYTZjrrna0udxEXG+6C14YZzQxoJcvuaMimr5E8Aq0AxyRAr0MQ== + dependencies: + "@nextui-org/use-aria-button" "2.0.6" + "@react-aria/utils" "^3.21.1" + "@react-stately/toggle" "^3.6.3" + "@react-types/button" "^3.9.0" + "@react-types/shared" "^3.21.0" + +"@nextui-org/use-callback-ref@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nextui-org/use-callback-ref/-/use-callback-ref-2.0.4.tgz#6706329f7e79282624c4b88e542a53747e592122" + integrity sha512-GF50SzOFU/R0gQT1TmjbEUiS8CQ87qiV5Rp/TD5pqys1xprVgGLUUNQzlh+YDS2JHNu5FGlZc4sJKhtf2xF5aw== + dependencies: + "@nextui-org/use-safe-layout-effect" "2.0.4" + +"@nextui-org/use-clipboard@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nextui-org/use-clipboard/-/use-clipboard-2.0.4.tgz#49439ca60368fc70711b4b3ded019c745f38f1ec" + integrity sha512-rMcaX0QsolOJ1BQbp1T/FVsSPn2m0Ss4Z+bbdS7eM6EFKtJdVJWlpbrST0/kR2UcW1KWeK27NYmtNPF5+hgZMA== + +"@nextui-org/use-data-scroll-overflow@2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@nextui-org/use-data-scroll-overflow/-/use-data-scroll-overflow-2.1.2.tgz#eae5d2caead984f0f4462aee3bcf5b04a48238c0" + integrity sha512-3h9QX+dWkfqnqciQc2KeeR67e77hobjefNHGBTDuB4LhJSJ180ToZH09SQNHaUmKRLTU/RABjGWXxdbORI0r6g== + dependencies: + "@nextui-org/shared-utils" "2.0.4" + +"@nextui-org/use-disclosure@2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@nextui-org/use-disclosure/-/use-disclosure-2.0.6.tgz#42bfba68af502e22b0cf5ccac0c5d4db87c3130f" + integrity sha512-pazzLsAGKjUD4cMVySTivItmIgpsfIf4baP/02K0Xc8tbFAH4K1n7cUnEEjs+MTXy1Bprvz3pfAHDGZRDI1yYg== + dependencies: + "@nextui-org/use-callback-ref" "2.0.4" + "@react-aria/utils" "^3.21.1" + "@react-stately/utils" "^3.8.0" + +"@nextui-org/use-image@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nextui-org/use-image/-/use-image-2.0.4.tgz#5b758355c948d445d0cd89b18177d3d37b683f57" + integrity sha512-tomOkrhlhTA45qA/MLh1YmiWVGgJ2KeM0qBSLP1ikVcppc/e9UtkIJjHIGdNCnHZTjoPEh53HzyJeUMlYUM9uw== + dependencies: + "@nextui-org/use-safe-layout-effect" "2.0.4" + +"@nextui-org/use-is-mobile@2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@nextui-org/use-is-mobile/-/use-is-mobile-2.0.6.tgz#4e769aee0bdd7f74d9c747297b1cabaf42ff0de2" + integrity sha512-HeglWUoq6Ln8P5n6s1SZvBRatLYMKsiXQM7Mk2l+6jFByzZh3VWtZ05xmuX8te/1rGmeUxjeXtW6x+F7/f/JoA== + dependencies: + "@react-aria/ssr" "^3.8.0" + +"@nextui-org/use-is-mounted@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nextui-org/use-is-mounted/-/use-is-mounted-2.0.4.tgz#ad08001c9a64f399b0df763458a8ddc581022892" + integrity sha512-NSQwQjg8+k02GVov9cDwtAdop1Cr90eDgB0MAdvu7QCMgfBZjy88IdQnx3Yo7bG4wP45xC0vLjqDBanaK+11hw== + +"@nextui-org/use-pagination@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nextui-org/use-pagination/-/use-pagination-2.0.4.tgz#6f0ba99b1d37e08edc433d31fbc88d8af838a87e" + integrity sha512-EETHzhh+LW8u2bm93LkUABbu0pIoWBCeY8hmvgjhhNMkILuwZNGYnp9tdF2rcS2P4KDlHQkIQcoiOGrGMqBUaQ== + dependencies: + "@nextui-org/shared-utils" "2.0.4" + +"@nextui-org/use-safe-layout-effect@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nextui-org/use-safe-layout-effect/-/use-safe-layout-effect-2.0.4.tgz#92652ea61ab94abf494c98c581297769cc8f29e0" + integrity sha512-K7ppEhTfzdVOzbgKaNFEBi4HwRfQ8j+kRBQqsU5yo8bSM+5uv8OUy/mjpEf4i02PUDIBmsgJC4En9S537DXrwg== + +"@nextui-org/use-scroll-position@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nextui-org/use-scroll-position/-/use-scroll-position-2.0.4.tgz#9d4f83c88381969267a1ae8faf1c8b0f4e3af9d3" + integrity sha512-5ugiHqQ1OptBmujOsJGigbUt/rQ826+8RKYSpBp1uax1eF7TlpigXt6mS1PDsJIyEauHi8rjH5B3weOn1//tug== + +"@nextui-org/use-update-effect@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nextui-org/use-update-effect/-/use-update-effect-2.0.4.tgz#b837a9a6639a450f5c80db1e4b7caa619a4e675d" + integrity sha512-HycSl9Eopmy3ypZQxXVR7eov2D0q0zcgldgbIPvlKExbj8OInaIImc9zLMI9oQgfmg/YdvLeFSrfwc5BPrIvlg== + +"@nextui-org/user@2.0.25": + version "2.0.25" + resolved "https://registry.yarnpkg.com/@nextui-org/user/-/user-2.0.25.tgz#4c9d5e341fc5c2f7702a1948016b951b026d4a92" + integrity sha512-Ykh65O0ynJBlstlZowM8KrX6zv/VLfDgYX892Dk0goLwU8gcSILPZE7yGIBZi1XsNN7mE3dmTp/APLFDbkzzXw== + dependencies: + "@nextui-org/avatar" "2.0.24" + "@nextui-org/react-utils" "2.0.10" + "@nextui-org/shared-utils" "2.0.4" + "@react-aria/focus" "^3.14.3" + "@react-aria/utils" "^3.21.1" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -5673,6 +6594,748 @@ dependencies: "@babel/runtime" "^7.13.10" +"@react-aria/breadcrumbs@^3.5.7": + version "3.5.8" + resolved "https://registry.yarnpkg.com/@react-aria/breadcrumbs/-/breadcrumbs-3.5.8.tgz#243a25621066443e42f2a6a1cb82fe3c558f6dea" + integrity sha512-jeek23igeqXct7S3ShW2jtFUc5g3fS9ZEBZkF64FWBrwfCiaZwb8TcKkK/xFw36/q5mxEt+seNiqnNzvsICJuQ== + dependencies: + "@react-aria/i18n" "^3.9.0" + "@react-aria/link" "^3.6.2" + "@react-aria/utils" "^3.22.0" + "@react-types/breadcrumbs" "^3.7.2" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/button@^3.8.4": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@react-aria/button/-/button-3.9.0.tgz#df59e0628917b320c4d1655e23547eb41a9a0f08" + integrity sha512-Jri4OCN+4YmpJDPNQvk1DJoskKD9sdTxZaWWWJdAwoSIunZk3IEBXVvRfKzsEAVtI+UJN25zC2kyjXbVPS2XAA== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/interactions" "^3.20.0" + "@react-aria/utils" "^3.22.0" + "@react-stately/toggle" "^3.7.0" + "@react-types/button" "^3.9.1" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/checkbox@^3.11.2": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@react-aria/checkbox/-/checkbox-3.12.0.tgz#a965e975975404ecf1ff867284511e4490a69c21" + integrity sha512-CyFZoI+z9hhyB3wb7IBsZxE30vXfYO2vSyET16zlkJ4qiFMqMiVLE4ekq034MHltCdpAczgP5yfKgNnJOmj7vQ== + dependencies: + "@react-aria/form" "^3.0.0" + "@react-aria/label" "^3.7.3" + "@react-aria/toggle" "^3.9.0" + "@react-aria/utils" "^3.22.0" + "@react-stately/checkbox" "^3.6.0" + "@react-stately/form" "^3.0.0" + "@react-stately/toggle" "^3.7.0" + "@react-types/checkbox" "^3.6.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/combobox@^3.7.1": + version "3.8.0" + resolved "https://registry.yarnpkg.com/@react-aria/combobox/-/combobox-3.8.0.tgz#1806cd5ea6c11c90802d7c0a0807d93271265c1c" + integrity sha512-lInzzZrH4vFlxmvDpXgQRkkREm7YIx258IRpQqll8Bny2vKMmZoF06zWMbcHP0CjFqYxExQeTjSYx0OTRRxkCQ== + dependencies: + "@react-aria/i18n" "^3.9.0" + "@react-aria/listbox" "^3.11.2" + "@react-aria/live-announcer" "^3.3.1" + "@react-aria/menu" "^3.11.2" + "@react-aria/overlays" "^3.19.0" + "@react-aria/selection" "^3.17.2" + "@react-aria/textfield" "^3.13.0" + "@react-aria/utils" "^3.22.0" + "@react-stately/collections" "^3.10.3" + "@react-stately/combobox" "^3.8.0" + "@react-stately/form" "^3.0.0" + "@react-types/button" "^3.9.1" + "@react-types/combobox" "^3.9.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/dialog@^3.5.7": + version "3.5.8" + resolved "https://registry.yarnpkg.com/@react-aria/dialog/-/dialog-3.5.8.tgz#3b52ff145b16e0f47b04364239bd91d39968e3c2" + integrity sha512-KIc1FORdHhZ3bWom4qHO0hmlL4e5Hup6N25EY8HP5I7Ftv9EBBGaO5grtxZ2fX8kiCJNI4y+k67ZZ71wKJvMiA== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/overlays" "^3.19.0" + "@react-aria/utils" "^3.22.0" + "@react-types/dialog" "^3.5.7" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/focus@^3.14.3", "@react-aria/focus@^3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.15.0.tgz#acca3cfe94e0ba0c00276e74c6cca06975f75f87" + integrity sha512-nnxRyfqHuAjRwdQ4BpQyZPtGFKZmRU6cnaIb3pqWFCqEyJQensV7MA3TJ4Jhadq67cy1Ji5SYSlr1duBwjoYvw== + dependencies: + "@react-aria/interactions" "^3.20.0" + "@react-aria/utils" "^3.22.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + clsx "^1.1.1" + +"@react-aria/form@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@react-aria/form/-/form-3.0.0.tgz#d4e892687331a9cba1cfc48be5754100ab736dec" + integrity sha512-APeGph9oTO8nro4ZObuy1hk+0hpF/ji9O3odPGhLkzP/HvW2J7NI9pjKJOINfgtYr2yvVUZf/MbTMxPwtAxhaQ== + dependencies: + "@react-aria/interactions" "^3.20.0" + "@react-aria/utils" "^3.22.0" + "@react-stately/form" "^3.0.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/grid@^3.8.5": + version "3.8.5" + resolved "https://registry.yarnpkg.com/@react-aria/grid/-/grid-3.8.5.tgz#92682b36b230920d507e3ed4fb7e9564f96c9f02" + integrity sha512-0p+Bbs9rpQeOy8b75DamlzVPKylBoe/z0XwkeeTChHP2TK3TwPXh6J5EmisQx6K8zsb3iZULQRcP4QibvnMbrg== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/i18n" "^3.9.0" + "@react-aria/interactions" "^3.20.0" + "@react-aria/live-announcer" "^3.3.1" + "@react-aria/selection" "^3.17.2" + "@react-aria/utils" "^3.22.0" + "@react-stately/collections" "^3.10.3" + "@react-stately/grid" "^3.8.3" + "@react-stately/selection" "^3.14.1" + "@react-stately/virtualizer" "^3.6.5" + "@react-types/checkbox" "^3.6.0" + "@react-types/grid" "^3.2.3" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/i18n@^3.8.4", "@react-aria/i18n@^3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.9.0.tgz#7aa74e02e74e348de3a34b7599e71ff6920b73ee" + integrity sha512-ebGP/sVG0ZtNF4RNFzs/W01tl7waYpBManh1kKWgA4roDPFt/odkgkDBzKGl+ggBb7TQRHsfUFHuqKsrsMy9TA== + dependencies: + "@internationalized/date" "^3.5.0" + "@internationalized/message" "^3.1.1" + "@internationalized/number" "^3.4.0" + "@internationalized/string" "^3.1.1" + "@react-aria/ssr" "^3.9.0" + "@react-aria/utils" "^3.22.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/interactions@^3.19.1", "@react-aria/interactions@^3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.20.0.tgz#8db350541004f50c0479cc52b82597d8248ac5db" + integrity sha512-JCCEyK2Nb4mEHucrgmqhTHTNAEqhsiM07jJmmY22eikxnCQnsEfdwXyg9cgZLG79D5V7jyqVRqOp2OsG7Qx7kQ== + dependencies: + "@react-aria/ssr" "^3.9.0" + "@react-aria/utils" "^3.22.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/label@^3.7.2", "@react-aria/label@^3.7.3": + version "3.7.3" + resolved "https://registry.yarnpkg.com/@react-aria/label/-/label-3.7.3.tgz#37cb12d2a9495534205b6266aa5174c2fd861368" + integrity sha512-v1zuqbpYyYaPjrBWpceGjMpwP4ne6fLoOXdoIZoKLux2jkAcyIF2kIJFiyYoPQYQJWGRNo7q1oSwamxmng4xJw== + dependencies: + "@react-aria/utils" "^3.22.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/link@^3.6.1", "@react-aria/link@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@react-aria/link/-/link-3.6.2.tgz#4d7fb00000219aa3ff4bd02f59d5d3bd08be0da8" + integrity sha512-v9gXgQ3Gev0JOlg2MAXcubDMgX+0BlJ+hTyFYFMuN/4jVBlAe426WKbjg+6MMzxwukWg9C3Q08JzqdFTi4cBng== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/interactions" "^3.20.0" + "@react-aria/utils" "^3.22.0" + "@react-types/link" "^3.5.2" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/listbox@^3.11.1", "@react-aria/listbox@^3.11.2": + version "3.11.2" + resolved "https://registry.yarnpkg.com/@react-aria/listbox/-/listbox-3.11.2.tgz#5d1d841987c1fbe300fa5d4bf5071f660b2a625b" + integrity sha512-FXdoqYLUTJn16OxodyS518PIcwzFkCfW5bxQepoy88NDMGtqp6u8fvEPpAoZbomvw/pV9MuEaMAw9qLyfkD4DA== + dependencies: + "@react-aria/interactions" "^3.20.0" + "@react-aria/label" "^3.7.3" + "@react-aria/selection" "^3.17.2" + "@react-aria/utils" "^3.22.0" + "@react-stately/collections" "^3.10.3" + "@react-stately/list" "^3.10.1" + "@react-types/listbox" "^3.4.6" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/live-announcer@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-aria/live-announcer/-/live-announcer-3.3.1.tgz#bf864b8820fb02daaeefc1c972782a0174fd60b9" + integrity sha512-hsc77U7S16trM86d+peqJCOCQ7/smO1cybgdpOuzXyiwcHQw8RQ4GrXrS37P4Ux/44E9nMZkOwATQRT2aK8+Ew== + dependencies: + "@swc/helpers" "^0.5.0" + +"@react-aria/menu@^3.11.1", "@react-aria/menu@^3.11.2": + version "3.11.2" + resolved "https://registry.yarnpkg.com/@react-aria/menu/-/menu-3.11.2.tgz#bf6dbf751acc09ace12d35bb034a3790f9006720" + integrity sha512-I4R5FOvRtwIQW+0naXav5giZBp935X2tXB2xBg/cSAYDXgfLmFPLHkyPbO77hR6FwazfFfJoKdn0pVcRox3lrQ== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/i18n" "^3.9.0" + "@react-aria/interactions" "^3.20.0" + "@react-aria/overlays" "^3.19.0" + "@react-aria/selection" "^3.17.2" + "@react-aria/utils" "^3.22.0" + "@react-stately/collections" "^3.10.3" + "@react-stately/menu" "^3.5.7" + "@react-stately/tree" "^3.7.4" + "@react-types/button" "^3.9.1" + "@react-types/menu" "^3.9.6" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/overlays@^3.18.1", "@react-aria/overlays@^3.19.0": + version "3.19.0" + resolved "https://registry.yarnpkg.com/@react-aria/overlays/-/overlays-3.19.0.tgz#0568d808c61e923174e896fc342a1529538da545" + integrity sha512-VN5GkB8+uZ2cfXljBtkqmrsAhBdGoj4un/agH0Qyihi2dazsMeafczSNnqzbpVgB4Zt2UHPJUkKwihgzXRxJJA== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/i18n" "^3.9.0" + "@react-aria/interactions" "^3.20.0" + "@react-aria/ssr" "^3.9.0" + "@react-aria/utils" "^3.22.0" + "@react-aria/visually-hidden" "^3.8.7" + "@react-stately/overlays" "^3.6.4" + "@react-types/button" "^3.9.1" + "@react-types/overlays" "^3.8.4" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/progress@^3.4.7": + version "3.4.8" + resolved "https://registry.yarnpkg.com/@react-aria/progress/-/progress-3.4.8.tgz#3776ebeecc27c5b03db7a260ab39a92dbf722a21" + integrity sha512-Nah3aj5BNRa0+urQZimzb0vuKQK7lsc8BrUwJuHTwGRBSWUjCADExrJYdhDIR/nLUV2TCmAQl+GJtTgbEEj0DQ== + dependencies: + "@react-aria/i18n" "^3.9.0" + "@react-aria/label" "^3.7.3" + "@react-aria/utils" "^3.22.0" + "@react-types/progress" "^3.5.1" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/radio@^3.8.2": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@react-aria/radio/-/radio-3.9.0.tgz#529b796ed3c5731c808af0a3da29e5535fa553b2" + integrity sha512-kr3+OQ1YU/3mURZfCsYaQmJ/c15qOm8uScaDRC39qz97bLNASakQqMImIaS+GluPKx1PEW3y2ErAgLplH28zZw== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/form" "^3.0.0" + "@react-aria/i18n" "^3.9.0" + "@react-aria/interactions" "^3.20.0" + "@react-aria/label" "^3.7.3" + "@react-aria/utils" "^3.22.0" + "@react-stately/radio" "^3.10.0" + "@react-types/radio" "^3.6.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/selection@^3.17.1", "@react-aria/selection@^3.17.2": + version "3.17.2" + resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.17.2.tgz#74b798344df1eb90e3fdae9bc880c0488468ae3b" + integrity sha512-AXXY3eOIWnITabMn6c0bpLPXkSX7040LOZU+7pQgtZJwDdZorLuKw4i7WS5i71LcV71ywG4mtqc9mOb/GfhUbg== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/i18n" "^3.9.0" + "@react-aria/interactions" "^3.20.0" + "@react-aria/utils" "^3.22.0" + "@react-stately/selection" "^3.14.1" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/slider@^3.7.2": + version "3.7.3" + resolved "https://registry.yarnpkg.com/@react-aria/slider/-/slider-3.7.3.tgz#799b47e8559acf63d9c1195fac88bd4d5ca7cad0" + integrity sha512-AbrTD9UzMn0CwxFjOhJHz2ms2zdJlBL3XnbvqkpsmpXUl0u8WT1QAEaMnS5+792gnSGZs/ARDmse53o+IO8wTA== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/i18n" "^3.9.0" + "@react-aria/interactions" "^3.20.0" + "@react-aria/label" "^3.7.3" + "@react-aria/utils" "^3.22.0" + "@react-stately/slider" "^3.4.5" + "@react-types/shared" "^3.22.0" + "@react-types/slider" "^3.7.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/ssr@^3.8.0", "@react-aria/ssr@^3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.0.tgz#457310129e1447b09d2f4aa2fdd62ab0e668d88c" + integrity sha512-Bz6BqP6ZorCme9tSWHZVmmY+s7AU8l6Vl2NUYmBzezD//fVHHfFo4lFBn5tBuAaJEm3AuCLaJQ6H2qhxNSb7zg== + dependencies: + "@swc/helpers" "^0.5.0" + +"@react-aria/switch@^3.5.6": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@react-aria/switch/-/switch-3.5.7.tgz#b543ac69b5d5dca70c75fc6c80b9c2c9d8191403" + integrity sha512-zBEsB071zzhQ82RwAA42pFLXHgrpya0OoRAsTO6jHZwiaYMsyqJI2eiXd7F6rqklpgyO6k7jOQklGUuoSJW4pA== + dependencies: + "@react-aria/toggle" "^3.9.0" + "@react-stately/toggle" "^3.7.0" + "@react-types/switch" "^3.5.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/table@^3.13.1": + version "3.13.2" + resolved "https://registry.yarnpkg.com/@react-aria/table/-/table-3.13.2.tgz#ef73709facdd005d7d0f6051dc9bedb85eb4e58a" + integrity sha512-bJgMx2SZ8SFmTosbv6k1lZ1a0Yw3f8tzWhpIQodCaMHhtI7izA6YqDNx47NeBNYpVm9DFfAoWbb79HFJ+OKIJA== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/grid" "^3.8.5" + "@react-aria/i18n" "^3.9.0" + "@react-aria/interactions" "^3.20.0" + "@react-aria/live-announcer" "^3.3.1" + "@react-aria/utils" "^3.22.0" + "@react-aria/visually-hidden" "^3.8.7" + "@react-stately/collections" "^3.10.3" + "@react-stately/flags" "^3.0.0" + "@react-stately/table" "^3.11.3" + "@react-stately/virtualizer" "^3.6.5" + "@react-types/checkbox" "^3.6.0" + "@react-types/grid" "^3.2.3" + "@react-types/shared" "^3.22.0" + "@react-types/table" "^3.9.1" + "@swc/helpers" "^0.5.0" + +"@react-aria/tabs@^3.8.1": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@react-aria/tabs/-/tabs-3.8.2.tgz#ab11e77e6e9afaebb7549983c0aa0d66ae5d96bf" + integrity sha512-zDfeEEyJmcnH9TFvJECWIrJpxX4SmREFV1/P8hN6ZUJPYoeiGMXYYFvjcRb1r3LN8XKlbwR37AQ3Cn1/yhrUwQ== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/i18n" "^3.9.0" + "@react-aria/selection" "^3.17.2" + "@react-aria/utils" "^3.22.0" + "@react-stately/tabs" "^3.6.2" + "@react-types/shared" "^3.22.0" + "@react-types/tabs" "^3.3.4" + "@swc/helpers" "^0.5.0" + +"@react-aria/textfield@^3.12.2", "@react-aria/textfield@^3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@react-aria/textfield/-/textfield-3.13.0.tgz#bc8a027f93598a1ebd5013d027549a03d7b8dd04" + integrity sha512-sUlinDE+k/WhbskyqVOkuffuhiQpjgvp+iGRoralStVgb8Tcb+POxgAlw5jS4tNjdivCb3IjVJemUNJM7xsxxA== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/form" "^3.0.0" + "@react-aria/label" "^3.7.3" + "@react-aria/utils" "^3.22.0" + "@react-stately/form" "^3.0.0" + "@react-stately/utils" "^3.9.0" + "@react-types/shared" "^3.22.0" + "@react-types/textfield" "^3.9.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/toggle@^3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@react-aria/toggle/-/toggle-3.9.0.tgz#c1b253d2fc05f2a673abd9fe4d62bc01a8781a92" + integrity sha512-2YMWYQUEmcoAXtrAE86QXBS9XlmJyV6IFRlMTBNaeLTdH3AmACExgsyU66Tt0sKl6LMDMI376ItMFqAz27BBdQ== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/interactions" "^3.20.0" + "@react-aria/utils" "^3.22.0" + "@react-stately/toggle" "^3.7.0" + "@react-types/checkbox" "^3.6.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/tooltip@^3.6.4": + version "3.6.5" + resolved "https://registry.yarnpkg.com/@react-aria/tooltip/-/tooltip-3.6.5.tgz#aeb4c71db46f2c9ad0ff0b6810002bdacc07fea1" + integrity sha512-hXw4Z8nYLOWz3QOQ807wWZdvDwR3gofsmZhAehg2HPRwdRfCQK+1cjVKeUd9cKCAxs0Cay7dV0oUdilLbCQ2Gg== + dependencies: + "@react-aria/focus" "^3.15.0" + "@react-aria/interactions" "^3.20.0" + "@react-aria/utils" "^3.22.0" + "@react-stately/tooltip" "^3.4.6" + "@react-types/shared" "^3.22.0" + "@react-types/tooltip" "^3.4.6" + "@swc/helpers" "^0.5.0" + +"@react-aria/utils@^3.21.1", "@react-aria/utils@^3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.22.0.tgz#962a45ae95fdc21de7f22dda68253b0fb2470d06" + integrity sha512-Qi/m65GFFljXA/ayj1m5g3KZdgbZY3jacSSqD5vNUOEGiKsn4OQcsw8RfC2c0SgtLV1hLzsfvFI1OiryPlGCcw== + dependencies: + "@react-aria/ssr" "^3.9.0" + "@react-stately/utils" "^3.9.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + clsx "^1.1.1" + +"@react-aria/visually-hidden@^3.8.6", "@react-aria/visually-hidden@^3.8.7": + version "3.8.7" + resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.8.7.tgz#059699c70cc354ccb3699151b09071b3fc43fa82" + integrity sha512-OuIGMVQIt7GC43h4x35BgkZid8lhoPu7Xz4TQRP8nvOJWb1lH7ehrRRuGdUsK3y90nwpxTdNdg4DILblg+VaLw== + dependencies: + "@react-aria/interactions" "^3.20.0" + "@react-aria/utils" "^3.22.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/checkbox@^3.5.1", "@react-stately/checkbox@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@react-stately/checkbox/-/checkbox-3.6.0.tgz#448da0b07710a120959985fb081ad3855232fdc9" + integrity sha512-e1ChMwGovcOEDcdizqXDT6eDZixIMiPQOzNV5wPQ91SlGaIry9b0lQnK18tHg3yv2iiS6Ipj96cGBUKLJqQ+cQ== + dependencies: + "@react-stately/form" "^3.0.0" + "@react-stately/utils" "^3.9.0" + "@react-types/checkbox" "^3.6.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/collections@^3.10.2", "@react-stately/collections@^3.10.3": + version "3.10.3" + resolved "https://registry.yarnpkg.com/@react-stately/collections/-/collections-3.10.3.tgz#c80bd30df3bf5d2a9c6fdf25f6313c5187d0154d" + integrity sha512-fA28HIApAIz9sNGeOVXZJPgV5Kig6M72KI1t9sUbnRUr9Xq9OMJTR6ElDMXNe0iTeZffRFDOPYyqnX9zkxof6Q== + dependencies: + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/combobox@^3.7.1", "@react-stately/combobox@^3.8.0": + version "3.8.0" + resolved "https://registry.yarnpkg.com/@react-stately/combobox/-/combobox-3.8.0.tgz#6bd9b23ade552f04e8ebc0eeb80e077efed17d6d" + integrity sha512-F74Avf7+8ruRqEB+3Lh6/C5jXc3ESJbRf9ovUxhmNAzBGeFKesPn5HpEpo87C+3OukGb+/Buvi3Rhib9+HVBKA== + dependencies: + "@react-stately/collections" "^3.10.3" + "@react-stately/form" "^3.0.0" + "@react-stately/list" "^3.10.1" + "@react-stately/menu" "^3.5.7" + "@react-stately/select" "^3.6.0" + "@react-stately/utils" "^3.9.0" + "@react-types/combobox" "^3.9.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/flags@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@react-stately/flags/-/flags-3.0.0.tgz#c5a73965f8c90e8bf5981adddb4bdbb0ba2f5690" + integrity sha512-e3i2ItHbIa0eEwmSXAnPdD7K8syW76JjGe8ENxwFJPW/H1Pu9RJfjkCb/Mq0WSPN/TpxBb54+I9TgrGhbCoZ9w== + dependencies: + "@swc/helpers" "^0.4.14" + +"@react-stately/form@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@react-stately/form/-/form-3.0.0.tgz#584af339a128045c357c1b8ca440c87460a41b0f" + integrity sha512-C8wkfFmtx1escizibhdka5JvTy9/Vp173CS9cakjvWTmnjYYC1nOlzwp7BsYWTgerCFbRY/BU/Cf/bJDxPiUKQ== + dependencies: + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/grid@^3.8.3": + version "3.8.3" + resolved "https://registry.yarnpkg.com/@react-stately/grid/-/grid-3.8.3.tgz#42420724084a023c74e50d9c82efd8074179680d" + integrity sha512-JceGSJcuO6Zv+Aq5s2NZvmbMjdPjTtGNQR9kTgXKC/pOfM6FJ58bJiOmEllyN6oawqh4Ey8Xdqk9NuW4l2ctuw== + dependencies: + "@react-stately/collections" "^3.10.3" + "@react-stately/selection" "^3.14.1" + "@react-types/grid" "^3.2.3" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/list@^3.10.0", "@react-stately/list@^3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@react-stately/list/-/list-3.10.1.tgz#1d926d4aef5764096ec357da8081ef09081fe5cc" + integrity sha512-iVarLMd7FmMT0H20dRWsFOHHX5+c4gK51AXP2BSr1VtDSfbL4dgaGgu7IaAMVc/rO0au1e1tPM2hutiIFvPcnA== + dependencies: + "@react-stately/collections" "^3.10.3" + "@react-stately/selection" "^3.14.1" + "@react-stately/utils" "^3.9.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/menu@^3.5.6", "@react-stately/menu@^3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@react-stately/menu/-/menu-3.5.7.tgz#3232598399b4baebfc577d5f56b4bd5570f400c2" + integrity sha512-bzTmAqzcMNatvyruWlvOdZSmMhz3+mkdxtqaZzYHq+DpR6ka57lIRj8dBnZWQGwV3RypMZfz+X6aIX4kruGVbw== + dependencies: + "@react-stately/overlays" "^3.6.4" + "@react-types/menu" "^3.9.6" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/overlays@^3.6.3", "@react-stately/overlays@^3.6.4": + version "3.6.4" + resolved "https://registry.yarnpkg.com/@react-stately/overlays/-/overlays-3.6.4.tgz#1d0d974413fa3f13d97eec2cac5b48c49978d1a0" + integrity sha512-tHEaoAGpE9dSnsskqLPVKum59yGteoSqsniTopodM+miQozbpPlSjdiQnzGLroy5Afx5OZYClE616muNHUILXA== + dependencies: + "@react-stately/utils" "^3.9.0" + "@react-types/overlays" "^3.8.4" + "@swc/helpers" "^0.5.0" + +"@react-stately/radio@^3.10.0", "@react-stately/radio@^3.9.1": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@react-stately/radio/-/radio-3.10.0.tgz#01750b861bfdbb048c6e1bbfb6a97a4f42c29c25" + integrity sha512-d8IgZtUq/4vhE7YhyBVg1QdVoFS0caIcvPumXqtp/5vlDgpUsVy9jSeWtbk0H4FyUcmJlQhRcTylKB9THXY1YQ== + dependencies: + "@react-stately/form" "^3.0.0" + "@react-stately/utils" "^3.9.0" + "@react-types/radio" "^3.6.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/select@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@react-stately/select/-/select-3.6.0.tgz#e77464f3e0367d652866806c1ab61c132c31c49a" + integrity sha512-GvSE4DXmcvdRNUc+ciPU7gedt7LfRO8FFFIzhB/bCQhUlK6/xihUPrGXayzqxLeTQKttMH323LuYFKfwpJRhsA== + dependencies: + "@react-stately/form" "^3.0.0" + "@react-stately/list" "^3.10.1" + "@react-stately/menu" "^3.5.7" + "@react-types/select" "^3.9.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/selection@^3.14.1": + version "3.14.1" + resolved "https://registry.yarnpkg.com/@react-stately/selection/-/selection-3.14.1.tgz#798b4fbfda940778ae1dc1f2d2390cee97cce2c6" + integrity sha512-96/CerrB6yH4Ad9FkzBzyVerSPjcIj1NBTWTFHo1N+oHECvyGsDxZl7Y4LQR++teFK66FhX5KjCJQGae4IZd6A== + dependencies: + "@react-stately/collections" "^3.10.3" + "@react-stately/utils" "^3.9.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/slider@^3.4.4", "@react-stately/slider@^3.4.5": + version "3.4.5" + resolved "https://registry.yarnpkg.com/@react-stately/slider/-/slider-3.4.5.tgz#46d4a7e0a1644894e91b12003fa1ba8e0787f4ca" + integrity sha512-lJPZC8seYbnZDqAlZm3/QC95I5iluG8ouwkPMmvtWCz1baayV/jJtfxA/74zR7Vcob9Fe7O57g8Edhz/hv9xOQ== + dependencies: + "@react-stately/utils" "^3.9.0" + "@react-types/shared" "^3.22.0" + "@react-types/slider" "^3.7.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/table@^3.11.2", "@react-stately/table@^3.11.3": + version "3.11.3" + resolved "https://registry.yarnpkg.com/@react-stately/table/-/table-3.11.3.tgz#0d9e547fc2e30df174ac4ba3728402f62fb2fc0a" + integrity sha512-r0rzSKbtMG4tjFpCGtXb8p6hOuek03c6rheJE88z4I/ujZ5EmEO6Ps8q0JMNEDCY2qigvKM+ODisMBeZCEkIJg== + dependencies: + "@react-stately/collections" "^3.10.3" + "@react-stately/flags" "^3.0.0" + "@react-stately/grid" "^3.8.3" + "@react-stately/selection" "^3.14.1" + "@react-stately/utils" "^3.9.0" + "@react-types/grid" "^3.2.3" + "@react-types/shared" "^3.22.0" + "@react-types/table" "^3.9.1" + "@swc/helpers" "^0.5.0" + +"@react-stately/tabs@^3.6.1", "@react-stately/tabs@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@react-stately/tabs/-/tabs-3.6.2.tgz#a9825d560af58c4f876e7b619c7e8cb29b071887" + integrity sha512-f+U4D1FAVfVVcNRbtKIv4GrO37CLFClYQlXx9zIuSXjHsviapVD2IQSyAmpKo/CbgXhYRMdGwENZdOsmF/Ns7g== + dependencies: + "@react-stately/list" "^3.10.1" + "@react-types/shared" "^3.22.0" + "@react-types/tabs" "^3.3.4" + "@swc/helpers" "^0.5.0" + +"@react-stately/toggle@^3.6.3", "@react-stately/toggle@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@react-stately/toggle/-/toggle-3.7.0.tgz#abe2f08f37a0f41e6513d4fde3d46f49500bb5cc" + integrity sha512-TRksHkCJk/Xogq4181g3CYgJf+EfsJCqX5UZDSw1Z1Kgpvonjmdf6FAfQfCh9QR2OuXUL6hOLUDVLte5OPI+5g== + dependencies: + "@react-stately/utils" "^3.9.0" + "@react-types/checkbox" "^3.6.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/tooltip@^3.4.5", "@react-stately/tooltip@^3.4.6": + version "3.4.6" + resolved "https://registry.yarnpkg.com/@react-stately/tooltip/-/tooltip-3.4.6.tgz#e240184dedc35018f7b1e2d46eaca20a90d919bb" + integrity sha512-uL93bmsXf+OOgpKLPEKfpDH4z+MK2CuqlqVxx7rshN0vjWOSoezE5nzwgee90+RpDrLNNNWTNa7n+NkDRpI1jA== + dependencies: + "@react-stately/overlays" "^3.6.4" + "@react-types/tooltip" "^3.4.6" + "@swc/helpers" "^0.5.0" + +"@react-stately/tree@^3.7.3", "@react-stately/tree@^3.7.4": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@react-stately/tree/-/tree-3.7.4.tgz#57cc57863837092f13b7a3887e1b5c56330b5cac" + integrity sha512-0yvVODBS8WnSivLFX5ccEjCl2NA/8lbEt1E48wVcY1xcXgISNpw5MSGK5jC6YrtJPIqVolQIkNSbMreXGBktIg== + dependencies: + "@react-stately/collections" "^3.10.3" + "@react-stately/selection" "^3.14.1" + "@react-stately/utils" "^3.9.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-stately/utils@^3.8.0", "@react-stately/utils@^3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.9.0.tgz#9cb2c8eea5dd1b58256ecb436b963c01526bae37" + integrity sha512-yPKFY1F88HxuZ15BG2qwAYxtpE4HnIU0Ofi4CuBE0xC6I8mwo4OQjDzi+DZjxQngM9D6AeTTD6F1V8gkozA0Gw== + dependencies: + "@swc/helpers" "^0.5.0" + +"@react-stately/virtualizer@^3.6.4", "@react-stately/virtualizer@^3.6.5": + version "3.6.5" + resolved "https://registry.yarnpkg.com/@react-stately/virtualizer/-/virtualizer-3.6.5.tgz#45891ac24b6aed0aa168e26c61a39d235d204a70" + integrity sha512-v0cZeNCGPMeo3LP4UrGuDo3Xpq7ufNaZyGObgSvdrIW49qK5F02kczcKy6NKg+QfOgC/+Nc9Tof/2S8dcxDrCA== + dependencies: + "@react-aria/utils" "^3.22.0" + "@react-types/shared" "^3.22.0" + "@swc/helpers" "^0.5.0" + +"@react-types/accordion@3.0.0-alpha.17": + version "3.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/@react-types/accordion/-/accordion-3.0.0-alpha.17.tgz#fe37b9c4c94c5e0dcc10e95ade9d3b32f21abe1c" + integrity sha512-Wsp31bYRu9wy4zAAV2W8FLvVGFF3Vk/JKn2MxqhzaSHwHBw/dfgJTvRRUW+OmBgnqVN97ur893TP9A3odpoZEg== + dependencies: + "@react-types/shared" "^3.21.0" + +"@react-types/breadcrumbs@^3.7.1", "@react-types/breadcrumbs@^3.7.2": + version "3.7.2" + resolved "https://registry.yarnpkg.com/@react-types/breadcrumbs/-/breadcrumbs-3.7.2.tgz#3dc0c8ccebf75844efc56ac8e53dc072df083d5f" + integrity sha512-esl6RucDW2CNMsApJxNYfMtDaUcfLlwKMPH/loYsOBbKxGl2HsgVLMcdpjEkTRs2HCTNCbBXWpeU8AY77t+bsw== + dependencies: + "@react-types/link" "^3.5.2" + "@react-types/shared" "^3.22.0" + +"@react-types/button@^3.9.0", "@react-types/button@^3.9.1": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@react-types/button/-/button-3.9.1.tgz#eb54745133bdaad345d8d589021b67ef2882e1c5" + integrity sha512-bf9iTar3PtqnyV9rA+wyFyrskZKhwmOuOd/ifYIjPs56YNVXWH5Wfqj6Dx3xdFBgtKx8mEVQxVhoX+WkHX+rtw== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/checkbox@^3.5.2", "@react-types/checkbox@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@react-types/checkbox/-/checkbox-3.6.0.tgz#ba702be25555c1520f78be39c8260354638792b6" + integrity sha512-vgbuJzQpVCNT5AZWV0OozXCnihqrXxoZKfJFIw0xro47pT2sn3t5UC4RA9wfjDGMoK4frw1K/4HQLsQIOsPBkw== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/combobox@^3.8.1", "@react-types/combobox@^3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@react-types/combobox/-/combobox-3.9.0.tgz#f671da0357cfe3a06a24a239fcfacc5b3e5125d0" + integrity sha512-VAQWM2jrIWROgcTKxj4k37WWpK/1zRjj1HfGeuenAQyOQwImqDwCHx5YxQR1GiUEFne4v1yXe2khT0T5Kt2vDg== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/dialog@^3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@react-types/dialog/-/dialog-3.5.7.tgz#3fd93875ff317d6014e814b6e1a2abb87272a1ef" + integrity sha512-geYoqAyQaTLG43AaXdMUVqZXYgkSifrD9cF7lR2kPAT0uGFv0YREi6ieU+aui8XJ83EW0xcxP+EPWd2YkN4D4w== + dependencies: + "@react-types/overlays" "^3.8.4" + "@react-types/shared" "^3.22.0" + +"@react-types/grid@^3.2.2", "@react-types/grid@^3.2.3": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@react-types/grid/-/grid-3.2.3.tgz#20b19b73315343630145ff9e43138e7f2855d946" + integrity sha512-GQM4RDmYhstcYZ0Odjq+xUwh1fhLmRebG6qMM8OXHTPQ77nhl3wc1UTGRhZm6mzEionplSRx4GCpEMEHMJIU0w== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/link@^3.5.1", "@react-types/link@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@react-types/link/-/link-3.5.2.tgz#b363abca3365adc64b49c47163ce00235c01c667" + integrity sha512-/s51/WejmpLiyxOgP89s4txgxYoGaPe8pVDItVo1h4+BhU1Puyvgv/Jx8t9dPvo6LUXbraaN+SgKk/QDxaiirw== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/listbox@^3.4.6": + version "3.4.6" + resolved "https://registry.yarnpkg.com/@react-types/listbox/-/listbox-3.4.6.tgz#da0887dbb89a868d53b87486111bf0a51042da7b" + integrity sha512-XOQvrTqNh5WIPDvKiWiep8T07RAsMfjAXTjDbnjxVlKACUXkcwpts9kFaLnJ9LJRFt6DwItfP+WMkzvmx63/NQ== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/menu@^3.9.5", "@react-types/menu@^3.9.6": + version "3.9.6" + resolved "https://registry.yarnpkg.com/@react-types/menu/-/menu-3.9.6.tgz#1b36842cbdb4590dfff78437316aec4a3f47b1f6" + integrity sha512-w/RbFInOf4nNayQDv5c2L8IMJbcFOkBhsT3xvvpTy+CHvJcQdjggwaV1sRiw7eF/PwB81k2CwigmidUzHJhKDg== + dependencies: + "@react-types/overlays" "^3.8.4" + "@react-types/shared" "^3.22.0" + +"@react-types/overlays@^3.8.3", "@react-types/overlays@^3.8.4": + version "3.8.4" + resolved "https://registry.yarnpkg.com/@react-types/overlays/-/overlays-3.8.4.tgz#a538f6f2fb9826f1da78d3b4f0f6326a709ce37d" + integrity sha512-pfgNlQnbF6RB/R2oSxyqAP3Uzz0xE/k5q4n5gUeCDNLjY5qxFHGE8xniZZ503nZYw6VBa9XMN1efDOKQyeiO0w== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/progress@^3.5.0", "@react-types/progress@^3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@react-types/progress/-/progress-3.5.1.tgz#b988cd2d2ff194c7652d74f714b230f26ab73c6c" + integrity sha512-CqsUjczUK/SfuFzDcajBBaXRTW0D3G9S/yqLDj9e8E0ii+lGDLt1PHj24t1J7E88U2rVYqmM9VL4NHTt8o3IYA== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/radio@^3.5.2", "@react-types/radio@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@react-types/radio/-/radio-3.6.0.tgz#519e4aa40dbb2a13852a5a6f36299a84639376a5" + integrity sha512-VOZzegxxZS55gHRVyWu278Q4y/rEQGiAVQCUqi25GmpbMe4MlHrzg16c76RiZMUK9PPoyv+XNUgAaPmxebkn7g== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/select@^3.8.4", "@react-types/select@^3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@react-types/select/-/select-3.9.0.tgz#ddc1238194776ef161260547d25038409885ced8" + integrity sha512-0nalGmcoma4jreICLSJae/uKAuMiVyWgqWjGrGiUGGcdDchH4limKVEqNDaBwLvxVT6NB5LLsaipCTCAEEl4Rg== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/shared@^3.21.0", "@react-types/shared@^3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.22.0.tgz#70f85aad46cd225f7fcb29f1c2b5213163605074" + integrity sha512-yVOekZWbtSmmiThGEIARbBpnmUIuePFlLyctjvCbgJgGhz8JnEJOipLQ/a4anaWfzAgzSceQP8j/K+VOOePleA== + +"@react-types/slider@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@react-types/slider/-/slider-3.7.0.tgz#d9e4dbe1b2109c7accfcc0e2e330ff10cd3a837c" + integrity sha512-uyQXUVFfqc9SPUW0LZLMan2n232F/OflRafiHXz9viLFa9tVOupVa7GhASRAoHojwkjoJ1LjFlPih7g5dOZ0/Q== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/switch@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@react-types/switch/-/switch-3.5.0.tgz#8ebf07c60aef22b181eb4ab884cf3d2abddd66c6" + integrity sha512-/wNmUGjk69bP6t5k2QkAdrNN5Eb9Rz4dOyp0pCPmoeE+5haW6sV5NmtkvWX1NSc4DQz1xL/a5b+A0vxPCP22Jw== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/table@^3.9.0", "@react-types/table@^3.9.1": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@react-types/table/-/table-3.9.1.tgz#5d1304d412bc7e637e832e86fcb8724e61c20735" + integrity sha512-3e+Oouw9jGqNDg+JRg7v7fgPqDZd6DtST9S/UPp81f32ntnQ8Wsu7S/J4eyLHu5CVQDqcHkf4xPeeXBgPx4qmw== + dependencies: + "@react-types/grid" "^3.2.3" + "@react-types/shared" "^3.22.0" + +"@react-types/tabs@^3.3.3", "@react-types/tabs@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-types/tabs/-/tabs-3.3.4.tgz#43fa93a4a67dcc53031afc56a8ad3bf5f44473a8" + integrity sha512-4mCTtFrwMRypyGTZCvNYVT9CkknexO/UYvqwDm2jMYb8JgjRvxnomu776Yh7uyiYKWyql2upm20jqasEOm620w== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/textfield@^3.8.1", "@react-types/textfield@^3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@react-types/textfield/-/textfield-3.9.0.tgz#ad29f0a70421f9d2cd6cf2795df10a7712954e69" + integrity sha512-D/DiwzsfkwlAg3uv8hoIfwju+zhB/hWDEdTvxQbPkntDr0kmN/QfI17NMSzbOBCInC4ABX87ViXLGxr940ykGA== + dependencies: + "@react-types/shared" "^3.22.0" + +"@react-types/tooltip@^3.4.5", "@react-types/tooltip@^3.4.6": + version "3.4.6" + resolved "https://registry.yarnpkg.com/@react-types/tooltip/-/tooltip-3.4.6.tgz#1f1eb22873a5d5ad355e0de1be46f48759b55f6f" + integrity sha512-RaZewdER7ZcsNL99RhVHs8kSLyzIBkwc0W6eFZrxST2MD9J5GzkVWRhIiqtFOd5U1aYnxdJ6woq72Ef+le6Vfw== + dependencies: + "@react-types/overlays" "^3.8.4" + "@react-types/shared" "^3.22.0" + "@rollup/plugin-commonjs@24.0.0": version "24.0.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-24.0.0.tgz#fb7cf4a6029f07ec42b25daa535c75b05a43f75c" @@ -6152,6 +7815,21 @@ dependencies: tslib "^2.4.0" +"@swc/helpers@^0.4.14": + version "0.4.36" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.36.tgz#fcfff76ed52c214f357e8e9d3f37b568908072d9" + integrity sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q== + dependencies: + legacy-swc-helpers "npm:@swc/helpers@=0.4.14" + tslib "^2.4.0" + +"@swc/helpers@^0.5.0": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.3.tgz#98c6da1e196f5f08f977658b80d6bd941b5f294f" + integrity sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A== + dependencies: + tslib "^2.4.0" + "@tailwindcss/typography@^0.5.9": version "0.5.9" resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.9.tgz#027e4b0674929daaf7c921c900beee80dbad93e8" @@ -9127,6 +10805,11 @@ clsx@2.0.0, clsx@^2.0.0: resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== +clsx@^1.1.1, clsx@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + cmd-shim@5.0.0, cmd-shim@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" @@ -9224,6 +10907,11 @@ color-support@^1.1.2, color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== +color2k@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/color2k/-/color2k-2.0.2.tgz#ac2b4aea11c822a6bcb70c768b5a289f4fffcebb" + integrity sha512-kJhwH5nAwb34tmyuqq/lgjEKzlFXn1U99NlnB6Ws4qVaERcRUYeYP1cBw6BJ4vxaWStAUEef4WMr7WjOCnBt8w== + color@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" @@ -9424,6 +11112,11 @@ compute-scroll-into-view@^1.0.20: resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== +compute-scroll-into-view@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz#753f11d972596558d8fe7c6bcbc8497690ab4c87" + integrity sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -10471,7 +12164,7 @@ deep-is@^0.1.3, deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.2.2, deepmerge@^4.3.1: +deepmerge@4.3.1, deepmerge@^4.2.2, deepmerge@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== @@ -12317,6 +14010,15 @@ fraction.js@^4.2.0: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.6.tgz#e9e3acec6c9a28cf7bc36cbe35eea4ceb2c5c92d" integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg== +framer-motion@^10.16.12: + version "10.16.12" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.16.12.tgz#8aca3ffa4801953dd873de422a3c1f78b2aa7bfa" + integrity sha512-w7Yzx0OzQ5Uh6uNkxaX+4TuAPuOKz3haSbjmHpdrqDpGuCJCpq6YP9Dy7JJWdZ6mJjndrg3Ao3vUwDajKNikCA== + dependencies: + tslib "^2.4.0" + optionalDependencies: + "@emotion/is-prop-valid" "^0.8.2" + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -13681,6 +15383,16 @@ internal-slot@^1.0.4, internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" +intl-messageformat@^10.1.0: + version "10.5.8" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.8.tgz#7184da425f360a53a5483a6194e16d666b011fc0" + integrity sha512-NRf0jpBWV0vd671G5b06wNofAN8tp7WWDogMZyaU8GUAsmbouyvgwmFJI7zLjfAMpm3zK+vSwRP3jzaoIcMbaA== + dependencies: + "@formatjs/ecma402-abstract" "1.18.0" + "@formatjs/fast-memoize" "2.2.0" + "@formatjs/icu-messageformat-parser" "2.7.3" + tslib "^2.4.0" + into-stream@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702" @@ -14869,6 +16581,13 @@ lazy-ass@^1.6.0: resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== +"legacy-swc-helpers@npm:@swc/helpers@=0.4.14": + version "0.4.14" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74" + integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw== + dependencies: + tslib "^2.4.0" + lerna-changelog@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/lerna-changelog/-/lerna-changelog-2.2.0.tgz#c43813bba81e30cdeb20aabaef4da390f0f38e41" @@ -15426,6 +17145,16 @@ lodash.escaperegexp@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== +lodash.foreach@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" @@ -15476,6 +17205,11 @@ lodash.map@^4.5.1: resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" integrity sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q== +lodash.mapkeys@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mapkeys/-/lodash.mapkeys-4.6.0.tgz#df2cfa231d7c57c7a8ad003abdad5d73d3ea5195" + integrity sha512-0Al+hxpYvONWtg+ZqHpa/GaVzxuN3V7Xeo2p+bY06EaK/n+Y9R7nBePPN2o1LxmL0TWQSwP8LYZ008/hc9JzhA== + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -15496,6 +17230,11 @@ lodash.mergewith@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== +lodash.omit@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" + integrity sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg== + lodash.once@^4.0.0, lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" @@ -19061,7 +20800,7 @@ react-redux@^7.2.0: prop-types "^15.7.2" react-is "^17.0.2" -react-remove-scroll-bar@^2.3.3: +react-remove-scroll-bar@^2.3.3, react-remove-scroll-bar@^2.3.4: version "2.3.4" resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz#53e272d7a5cb8242990c7f144c44d8bd8ab5afd9" integrity sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A== @@ -19091,6 +20830,17 @@ react-remove-scroll@2.5.5: use-callback-ref "^1.3.0" use-sidecar "^1.1.2" +react-remove-scroll@^2.5.6: + version "2.5.7" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz#15a1fd038e8497f65a695bf26a4a57970cac1ccb" + integrity sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA== + dependencies: + react-remove-scroll-bar "^2.3.4" + react-style-singleton "^2.2.1" + tslib "^2.1.0" + use-callback-ref "^1.3.0" + use-sidecar "^1.1.2" + react-style-singleton@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4" @@ -19100,6 +20850,15 @@ react-style-singleton@^2.2.1: invariant "^2.2.4" tslib "^2.0.0" +react-textarea-autosize@^8.5.2: + version "8.5.3" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz#d1e9fe760178413891484847d3378706052dd409" + integrity sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ== + dependencies: + "@babel/runtime" "^7.20.13" + use-composed-ref "^1.3.0" + use-latest "^1.2.1" + react@18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" @@ -19758,6 +21517,13 @@ scope-analyzer@^2.0.1: estree-is-function "^1.0.0" get-assigned-identifiers "^1.1.0" +scroll-into-view-if-needed@3.0.10: + version "3.0.10" + resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz#38fbfe770d490baff0fb2ba34ae3539f6ec44e13" + integrity sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg== + dependencies: + compute-scroll-into-view "^3.0.2" + scroll-into-view-if-needed@^2.2.20: version "2.2.31" resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" @@ -20885,6 +22651,13 @@ tailwind-merge@^1.14.0: resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-1.14.0.tgz#e677f55d864edc6794562c63f5001f45093cdb8b" integrity sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ== +tailwind-variants@^0.1.18: + version "0.1.18" + resolved "https://registry.yarnpkg.com/tailwind-variants/-/tailwind-variants-0.1.18.tgz#6ed75fe906ffb1ffa0db703e96d9994ea8cd48fc" + integrity sha512-yoydMYm3FbZRw7wak+E2sqwYv2Uo3YWRqVZR03DGqDGm0ytzDrEnWO/Q/GMHdhaz8adOvycKw/bwCgQFCfmfhg== + dependencies: + tailwind-merge "^1.14.0" + tailwindcss-animate@^1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz#318b692c4c42676cc9e67b19b78775742388bef4" @@ -21768,6 +23541,23 @@ use-callback-ref@^1.3.0: dependencies: tslib "^2.0.0" +use-composed-ref@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" + integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== + +use-isomorphic-layout-effect@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +use-latest@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2" + integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw== + dependencies: + use-isomorphic-layout-effect "^1.1.1" + use-memo-one@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.3.tgz#2fd2e43a2169eabc7496960ace8c79efef975e99" From d814df130917c039b5bfbfafe1c9d34ebdf63965 Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Sun, 3 Dec 2023 06:42:02 +0200 Subject: [PATCH 32/44] fix: merge errors --- .../web/lib/features/task/task-radial-bar.tsx | 44 ------------------- .../lib/features/team-members-block-view.tsx | 1 - .../features/team/user-team-block/index.tsx | 13 +++++- .../team/user-team-block/task-info.tsx | 2 +- .../user-team-block/user-team-card-menu.tsx | 2 +- 5 files changed, 13 insertions(+), 49 deletions(-) delete mode 100644 apps/web/lib/features/task/task-radial-bar.tsx diff --git a/apps/web/lib/features/task/task-radial-bar.tsx b/apps/web/lib/features/task/task-radial-bar.tsx deleted file mode 100644 index afc9fccc1..000000000 --- a/apps/web/lib/features/task/task-radial-bar.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { I_TeamMemberCardHook, useOrganizationTeams, useTaskStatistics } from '@app/hooks'; -import { ITeamTask, Nullable } from '@app/interfaces'; -import { timerSecondsState } from '@app/stores'; -import { ProgressBar } from 'lib/components'; -import { useRecoilValue } from 'recoil'; - -export function TaskRadialBar({ - isAuthUser, - task, - activeAuthTask, - showPercents -}: // memberInfo, -{ - isAuthUser: boolean | undefined; - task: Nullable; - activeAuthTask: boolean; - showPercents?: boolean; - memberInfo?: I_TeamMemberCardHook; -}) { - const seconds = useRecoilValue(timerSecondsState); - const { getEstimation /*, addSeconds*/ } = useTaskStatistics(isAuthUser && activeAuthTask ? seconds : 0); - - const { activeTeam } = useOrganizationTeams(); - //removed as when certain task's timer was active it was affecting the timers with no estimations. Was taking user's previous task's estimation - // const currentMember = activeTeam?.members.find( - // (member) => member.id === memberInfo?.member?.id - // ); - let totalWorkedTasksTimer = 0; - activeTeam?.members?.forEach((member) => { - const totalWorkedTasks = member?.totalWorkedTasks?.find((item) => item.id === task?.id) || null; - if (totalWorkedTasks) { - totalWorkedTasksTimer += totalWorkedTasks.duration; - } - }); - - const progress = getEstimation( - null, - task, - /*addSeconds || */ totalWorkedTasksTimer || 0, - task?.estimate || 0 //<-- task?.estimate || currentMember?.lastWorkedTask?.estimate || 0 - removed as when certain task's timer was active it was affecting the timers with no estimations. Was taking user's previous task's estimation - ); - - return ; -} diff --git a/apps/web/lib/features/team-members-block-view.tsx b/apps/web/lib/features/team-members-block-view.tsx index b7c3e0576..f888c46fa 100644 --- a/apps/web/lib/features/team-members-block-view.tsx +++ b/apps/web/lib/features/team-members-block-view.tsx @@ -16,7 +16,6 @@ const TeamMembersBlockView: React.FC = ({ currentUser, teamsFetching = false }) => { - console.log(publicTeam, currentUser, teamsFetching); return (
    {/* Current authenticated user members */} diff --git a/apps/web/lib/features/team/user-team-block/index.tsx b/apps/web/lib/features/team/user-team-block/index.tsx index 326f8fcc4..5eedb51fe 100644 --- a/apps/web/lib/features/team/user-team-block/index.tsx +++ b/apps/web/lib/features/team/user-team-block/index.tsx @@ -1,10 +1,19 @@ import React from 'react'; import { secondsToTime } from '@app/helpers'; -import { useCollaborative, useTMCardTaskEdit, useTaskStatistics, useTeamMemberCard, useTimer } from '@app/hooks'; +import { + useCollaborative, + useTMCardTaskEdit, + useTaskStatistics, + useOrganizationTeams, + useTeamMemberCard, + useTimer, + useAuthenticateUser, + useModal +} from '@app/hooks'; import { IClassName, IOrganizationTeamList, ITimerStatusEnum } from '@app/interfaces'; import { timerSecondsState } from '@app/stores'; import { clsxm } from '@app/utils'; -import { Card, HorizontalSeparator, InputField, Text } from 'lib/components'; +import { Card, HorizontalSeparator, InputField, Text, Button } from 'lib/components'; import { TaskTimes, getTimerStatusValue } from 'lib/features'; import { useTranslation } from 'react-i18next'; import { useRecoilValue } from 'recoil'; diff --git a/apps/web/lib/features/team/user-team-block/task-info.tsx b/apps/web/lib/features/team/user-team-block/task-info.tsx index 55d9c368a..3d8e73a5c 100644 --- a/apps/web/lib/features/team/user-team-block/task-info.tsx +++ b/apps/web/lib/features/team/user-team-block/task-info.tsx @@ -38,7 +38,7 @@ export function TaskBlockInfo({ className, memberInfo, edition, publicTeam }: Pr {edition.task && ( <> -

    {task?.size?.substring(0, 2)}

    +

    {task?.size}

    )} {!edition.task &&
    --
    } diff --git a/apps/web/lib/features/team/user-team-block/user-team-card-menu.tsx b/apps/web/lib/features/team/user-team-block/user-team-card-menu.tsx index b2729f60f..15965ddf9 100644 --- a/apps/web/lib/features/team/user-team-block/user-team-card-menu.tsx +++ b/apps/web/lib/features/team/user-team-block/user-team-card-menu.tsx @@ -125,7 +125,7 @@ function DropdownMenu({ edition, memberInfo }: Props) { ); - // When true show combobox component (AssignActionMenu) + withAuthentication // When true show combobox component (AssignActionMenu) const assignAction = item.action === 'assign'; const removeAction = item.action === 'remove'; From 7a7a3a2322f7e6869a90e1532855f52ae300d764 Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Sun, 3 Dec 2023 19:36:08 +0200 Subject: [PATCH 33/44] feat: add filter features on issues block view --- apps/web/lib/features/task/task-filters.tsx | 4 ++++ apps/web/lib/features/team-members-block-view.tsx | 9 ++------- .../web/lib/features/team/user-team-block/index.tsx | 13 ++----------- .../team/user-team-block/user-team-card-menu.tsx | 2 +- 4 files changed, 9 insertions(+), 19 deletions(-) diff --git a/apps/web/lib/features/task/task-filters.tsx b/apps/web/lib/features/task/task-filters.tsx index fdaff4a8d..bbfa72169 100644 --- a/apps/web/lib/features/task/task-filters.tsx +++ b/apps/web/lib/features/task/task-filters.tsx @@ -405,7 +405,11 @@ export function TaskNameFilter({ value: string; setValue: (v: string) => void; close: () => void; +<<<<<<< HEAD fullWidth?: boolean; +======= + fullWidth: boolean; +>>>>>>> 9821e14e (feat: add filter features on issues block view) }) { const { t } = useTranslation(); diff --git a/apps/web/lib/features/team-members-block-view.tsx b/apps/web/lib/features/team-members-block-view.tsx index f888c46fa..15ea1b023 100644 --- a/apps/web/lib/features/team-members-block-view.tsx +++ b/apps/web/lib/features/team-members-block-view.tsx @@ -10,12 +10,7 @@ interface Props { teamsFetching: boolean; } -const TeamMembersBlockView: React.FC = ({ - teamMembers: members, - publicTeam = false, - currentUser, - teamsFetching = false -}) => { +const TeamMembersBlockView: React.FC = ({ teamMembers: members, publicTeam = false, currentUser }) => { return (
    {/* Current authenticated user members */} @@ -28,7 +23,7 @@ const TeamMembersBlockView: React.FC = ({ leaveFrom="opacity-100" leaveTo="opacity-0" > - {/*
  • authenticated user task card here
  • */} + {/* */}
    {members.map((member) => { diff --git a/apps/web/lib/features/team/user-team-block/index.tsx b/apps/web/lib/features/team/user-team-block/index.tsx index 5eedb51fe..326f8fcc4 100644 --- a/apps/web/lib/features/team/user-team-block/index.tsx +++ b/apps/web/lib/features/team/user-team-block/index.tsx @@ -1,19 +1,10 @@ import React from 'react'; import { secondsToTime } from '@app/helpers'; -import { - useCollaborative, - useTMCardTaskEdit, - useTaskStatistics, - useOrganizationTeams, - useTeamMemberCard, - useTimer, - useAuthenticateUser, - useModal -} from '@app/hooks'; +import { useCollaborative, useTMCardTaskEdit, useTaskStatistics, useTeamMemberCard, useTimer } from '@app/hooks'; import { IClassName, IOrganizationTeamList, ITimerStatusEnum } from '@app/interfaces'; import { timerSecondsState } from '@app/stores'; import { clsxm } from '@app/utils'; -import { Card, HorizontalSeparator, InputField, Text, Button } from 'lib/components'; +import { Card, HorizontalSeparator, InputField, Text } from 'lib/components'; import { TaskTimes, getTimerStatusValue } from 'lib/features'; import { useTranslation } from 'react-i18next'; import { useRecoilValue } from 'recoil'; diff --git a/apps/web/lib/features/team/user-team-block/user-team-card-menu.tsx b/apps/web/lib/features/team/user-team-block/user-team-card-menu.tsx index 15965ddf9..b2729f60f 100644 --- a/apps/web/lib/features/team/user-team-block/user-team-card-menu.tsx +++ b/apps/web/lib/features/team/user-team-block/user-team-card-menu.tsx @@ -125,7 +125,7 @@ function DropdownMenu({ edition, memberInfo }: Props) { ); - withAuthentication // When true show combobox component (AssignActionMenu) + // When true show combobox component (AssignActionMenu) const assignAction = item.action === 'assign'; const removeAction = item.action === 'remove'; From 7c2438e2093ad0a0b41d16bc711bad339e4a7f23 Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Sun, 3 Dec 2023 19:51:04 +0200 Subject: [PATCH 34/44] fix: task filter missing --- apps/web/lib/features/task/task-filters.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/web/lib/features/task/task-filters.tsx b/apps/web/lib/features/task/task-filters.tsx index bbfa72169..ec3278f28 100644 --- a/apps/web/lib/features/task/task-filters.tsx +++ b/apps/web/lib/features/task/task-filters.tsx @@ -405,11 +405,15 @@ export function TaskNameFilter({ value: string; setValue: (v: string) => void; close: () => void; +<<<<<<< HEAD <<<<<<< HEAD fullWidth?: boolean; ======= fullWidth: boolean; >>>>>>> 9821e14e (feat: add filter features on issues block view) +======= + fullWidth?: boolean; +>>>>>>> 7ee6bfb1 (fix: task filter missing) }) { const { t } = useTranslation(); From d07635498eebc0a18ef2c0924fef6bb5a361e4a6 Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Mon, 4 Dec 2023 03:47:20 +0200 Subject: [PATCH 35/44] fix: svg synthax error --- apps/web/package.json | 1 - yarn.lock | 1794 +---------------------------------------- 2 files changed, 2 insertions(+), 1793 deletions(-) diff --git a/apps/web/package.json b/apps/web/package.json index 3d53caf02..255cc564e 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -54,7 +54,6 @@ "embla-carousel-react": "^8.0.0-rc11", "emoji-mart": "^5.5.2", "firebase": "8.3.3", - "framer-motion": "^10.16.12", "hotkeys-js": "^3.12.0", "i18next": "^23.6.0", "js-cookie": "^3.0.1", diff --git a/yarn.lock b/yarn.lock index ffeb085f6..222b68347 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1161,13 +1161,6 @@ dependencies: regenerator-runtime "^0.14.0" -"@babel/runtime@^7.20.13": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" - integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w== - dependencies: - regenerator-runtime "^0.14.0" - "@babel/runtime@^7.22.5", "@babel/runtime@^7.9.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" @@ -2025,18 +2018,6 @@ resolved "https://registry.yarnpkg.com/@emoji-mart/react/-/react-1.1.1.tgz#ddad52f93a25baf31c5383c3e7e4c6e05554312a" integrity sha512-NMlFNeWgv1//uPsvLxvGQoIerPuVdXwK/EUek8OOkJ6wVOWPUizRBJU0hDqWZCOROVpfBgCemaC3m6jDOXi03g== -"@emotion/is-prop-valid@^0.8.2": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" - integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== - dependencies: - "@emotion/memoize" "0.7.4" - -"@emotion/memoize@0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" - integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== - "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -2370,45 +2351,6 @@ resolved "https://registry.yarnpkg.com/@foliojs-fork/restructure/-/restructure-2.0.2.tgz#73759aba2aff1da87b7c4554e6839c70d43c92b4" integrity sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA== -"@formatjs/ecma402-abstract@1.18.0": - version "1.18.0" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.0.tgz#e2120e7101020140661b58430a7ff4262705a2f2" - integrity sha512-PEVLoa3zBevWSCZzPIM/lvPCi8P5l4G+NXQMc/CjEiaCWgyHieUoo0nM7Bs0n/NbuQ6JpXEolivQ9pKSBHaDlA== - dependencies: - "@formatjs/intl-localematcher" "0.5.2" - tslib "^2.4.0" - -"@formatjs/fast-memoize@2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz#33bd616d2e486c3e8ef4e68c99648c196887802b" - integrity sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA== - dependencies: - tslib "^2.4.0" - -"@formatjs/icu-messageformat-parser@2.7.3": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.3.tgz#c8c95e7c9f8141bdb93bea0e92e4fcace19d3c9f" - integrity sha512-X/jy10V9S/vW+qlplqhMUxR8wErQ0mmIYSq4mrjpjDl9mbuGcCILcI1SUYkL5nlM4PJqpc0KOS0bFkkJNPxYRw== - dependencies: - "@formatjs/ecma402-abstract" "1.18.0" - "@formatjs/icu-skeleton-parser" "1.7.0" - tslib "^2.4.0" - -"@formatjs/icu-skeleton-parser@1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.7.0.tgz#796938d6d0ba8fc75bb9edee038d1350bfee32cb" - integrity sha512-Cfdo/fgbZzpN/jlN/ptQVe0lRHora+8ezrEeg2RfrNjyp+YStwBy7cqDY8k5/z2LzXg6O0AdzAV91XS0zIWv+A== - dependencies: - "@formatjs/ecma402-abstract" "1.18.0" - tslib "^2.4.0" - -"@formatjs/intl-localematcher@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.5.2.tgz#5fcf029fd218905575e5080fa33facdcb623d532" - integrity sha512-txaaE2fiBMagLrR4jYhxzFO6wEdEG4TPMqrzBAcbr4HFUYzH/YC+lg6OIzKCHm8WgDdyQevxbAAV1OgcXctuGw== - dependencies: - tslib "^2.4.0" - "@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" @@ -2569,35 +2511,6 @@ resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== -"@internationalized/date@^3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.5.0.tgz#67f1dd62355f05140cc80e324842e9bfb4553abe" - integrity sha512-nw0Q+oRkizBWMioseI8+2TeUPEyopJVz5YxoYVzR0W1v+2YytiYah7s/ot35F149q/xAg4F1gT/6eTd+tsUpFQ== - dependencies: - "@swc/helpers" "^0.5.0" - -"@internationalized/message@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.1.1.tgz#0f29c5a239b5dcd457b55f21dcd38d1a44a1236a" - integrity sha512-ZgHxf5HAPIaR0th+w0RUD62yF6vxitjlprSxmLJ1tam7FOekqRSDELMg4Cr/DdszG5YLsp5BG3FgHgqquQZbqw== - dependencies: - "@swc/helpers" "^0.5.0" - intl-messageformat "^10.1.0" - -"@internationalized/number@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.4.0.tgz#1c3ebf6ac40ce649d3d97bb835ff0559957f2e1f" - integrity sha512-8TvotW3qVDHC4uv/BVoN6Qx0Dm8clHY1/vpH+dh+XRiPW/9NVpKn1P8d1A+WLphWrMwyqyWXI7uWehJPviaeIw== - dependencies: - "@swc/helpers" "^0.5.0" - -"@internationalized/string@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@internationalized/string/-/string-3.1.1.tgz#2ab7372d58bbb7ffd3de62fc2a311e4690186981" - integrity sha512-fvSr6YRoVPgONiVIUhgCmIAlifMVCeej/snPZVzbzRPxGpHl3o1GRe+d/qh92D8KhgOciruDUH8I5mjdfdjzfA== - dependencies: - "@swc/helpers" "^0.5.0" - "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -3254,840 +3167,6 @@ resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.6.tgz#4a3e2a206251abc729339ba85f60bc0433c2865d" integrity sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ== -"@nextui-org/accordion@2.0.28": - version "2.0.28" - resolved "https://registry.yarnpkg.com/@nextui-org/accordion/-/accordion-2.0.28.tgz#4d61d0534d4365a41a9ab0bc02b74bafc5069922" - integrity sha512-WzD7sscL+4K0TFyUutTn1AhU0wcS68TqNCTNv7KgON6ODdwieydilMxAyXvwo3RgXeWG+8BbdxJC/6W+/iLBTg== - dependencies: - "@nextui-org/aria-utils" "2.0.15" - "@nextui-org/divider" "2.0.25" - "@nextui-org/framer-transitions" "2.0.15" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-icons" "2.0.6" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-accordion" "2.0.2" - "@nextui-org/use-aria-press" "2.0.1" - "@react-aria/button" "^3.8.4" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/utils" "^3.21.1" - "@react-stately/tree" "^3.7.3" - "@react-types/accordion" "3.0.0-alpha.17" - "@react-types/shared" "^3.21.0" - -"@nextui-org/aria-utils@2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@nextui-org/aria-utils/-/aria-utils-2.0.15.tgz#5575dcc89a7ee7e95fba5a7ffe63ff38d50a9d5a" - integrity sha512-4M4jeJ/ghGaia9064yS+mEZ3sFPH80onmjNGWJZkkZDmUV4R88lNkqe/XYBK1tbxfl4Kxa8jc/ALsZkUkkvR5w== - dependencies: - "@nextui-org/react-rsc-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/system" "2.0.15" - "@react-aria/utils" "^3.21.1" - "@react-stately/collections" "^3.10.2" - "@react-types/overlays" "^3.8.3" - "@react-types/shared" "^3.21.0" - -"@nextui-org/autocomplete@2.0.9": - version "2.0.9" - resolved "https://registry.yarnpkg.com/@nextui-org/autocomplete/-/autocomplete-2.0.9.tgz#8daeb3becf4dd3b5850d62df5a40553ef209e870" - integrity sha512-ViPXrZnP35k7LF+TBA4w8nqu0OEj9p1z9Rt7rwrACmY2VmDGY6h6a6nDCMjhuTVXptftRvzxfIPsIyzBYqxb0g== - dependencies: - "@nextui-org/aria-utils" "2.0.15" - "@nextui-org/button" "2.0.26" - "@nextui-org/input" "2.1.16" - "@nextui-org/listbox" "2.1.16" - "@nextui-org/popover" "2.1.14" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/scroll-shadow" "2.1.12" - "@nextui-org/shared-icons" "2.0.6" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/spinner" "2.0.24" - "@nextui-org/use-aria-button" "2.0.6" - "@react-aria/combobox" "^3.7.1" - "@react-aria/focus" "^3.14.3" - "@react-aria/i18n" "^3.8.4" - "@react-aria/interactions" "^3.19.1" - "@react-aria/utils" "^3.21.1" - "@react-aria/visually-hidden" "^3.8.6" - "@react-stately/combobox" "^3.7.1" - "@react-types/combobox" "^3.8.1" - "@react-types/shared" "^3.21.0" - -"@nextui-org/avatar@2.0.24": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@nextui-org/avatar/-/avatar-2.0.24.tgz#6b4f25dff4766d6d9e05e60c8b93fca66a044dd0" - integrity sha512-3QUn8v61iNvAYogUbEDVnhDjBK6WBxxFYLp95a0H52zN0p2LHXe+UNwdGZYFo5QNWx6CHGH3vh2AHlLLy3WFSQ== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-image" "2.0.4" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/utils" "^3.21.1" - -"@nextui-org/badge@2.0.24": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@nextui-org/badge/-/badge-2.0.24.tgz#26c0159f44697012840002577dc24918632133b1" - integrity sha512-FA3XgqEbyKWepMXqMZg7D+1IRf7flrb2LzFvTbkmsbvWQ4yYz1LqJXZ/HDmoCydvh2pOnc+1zPK3BpB7vGrrwA== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/system-rsc" "2.0.11" - -"@nextui-org/breadcrumbs@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nextui-org/breadcrumbs/-/breadcrumbs-2.0.4.tgz#0509862cf52598b5b9dbaa22f0adf750d97ee60e" - integrity sha512-SAE0+QRgA7vxUHPL65TKz3MRj7u2mbSwk8Eifkwo6hPcF0d34zv2QDupTGyphIjoGCSrQHFIq/CPAkXyaOXZxw== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-icons" "2.0.6" - "@nextui-org/shared-utils" "2.0.4" - "@react-aria/breadcrumbs" "^3.5.7" - "@react-aria/focus" "^3.14.3" - "@react-aria/utils" "^3.21.1" - "@react-types/breadcrumbs" "^3.7.1" - "@react-types/shared" "^3.21.0" - -"@nextui-org/button@2.0.26": - version "2.0.26" - resolved "https://registry.yarnpkg.com/@nextui-org/button/-/button-2.0.26.tgz#006d29e7290b17ee267d200c006385e139c1cb69" - integrity sha512-mDrSII1oneY4omwDdxUhl5oLa3AhoWCchwV/jt7egunnAFie32HbTqfFYGpLGiJw3JMMh3WDUthrI1islVTRKA== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/ripple" "2.0.24" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/spinner" "2.0.24" - "@nextui-org/use-aria-button" "2.0.6" - "@react-aria/button" "^3.8.4" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/utils" "^3.21.1" - "@react-types/button" "^3.9.0" - "@react-types/shared" "^3.21.0" - -"@nextui-org/card@2.0.24": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@nextui-org/card/-/card-2.0.24.tgz#e57764fa91a0711221d32e9d5481d9df902ef9ec" - integrity sha512-16uAS0i6+EO+u8aqtmaCXatjovsyuTq51JwCLBlB67OldfgXoYcYl3GaE2VoZdEwxVu1G/qypDfXv29k46nZuA== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/ripple" "2.0.24" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-button" "2.0.6" - "@react-aria/button" "^3.8.4" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/utils" "^3.21.1" - "@react-types/shared" "^3.21.0" - -"@nextui-org/checkbox@2.0.25": - version "2.0.25" - resolved "https://registry.yarnpkg.com/@nextui-org/checkbox/-/checkbox-2.0.25.tgz#d4a412d30ea87faef69152f5187cc76e9a32852f" - integrity sha512-X6WkwPbZlDvioEcXF6HhKH21wD6OK+3+FSroKkzMPQLJrj2KYUIYGbiuw9rT9aCtdjbT+6HUCv+FA8/cBQr7cA== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-press" "2.0.1" - "@react-aria/checkbox" "^3.11.2" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/utils" "^3.21.1" - "@react-aria/visually-hidden" "^3.8.6" - "@react-stately/checkbox" "^3.5.1" - "@react-stately/toggle" "^3.6.3" - "@react-types/checkbox" "^3.5.2" - "@react-types/shared" "^3.21.0" - -"@nextui-org/chip@2.0.25": - version "2.0.25" - resolved "https://registry.yarnpkg.com/@nextui-org/chip/-/chip-2.0.25.tgz#56ba55c938e7c2cbeac62c34250a74aa81a827a3" - integrity sha512-hfVSaq5JWzGn97s3K2Ac/xOopHWelaUW3eus0O0wns/6+NCI0QUjgwNt2bAQSNvnE6vjvYLJTqGG/jFHyFJjOg== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-icons" "2.0.6" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-press" "2.0.1" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/utils" "^3.21.1" - "@react-types/checkbox" "^3.5.2" - -"@nextui-org/code@2.0.24": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@nextui-org/code/-/code-2.0.24.tgz#421361189063edc3db2a0ea29de01a0e04d6ec61" - integrity sha512-Kw/uOQtdytRWY99zMQuGHqMAAGXWBAxHlyMMge1OCckpadCDfX6plPjqoS18SGM0orJ4fox+a1FM8VhnRQ2kQw== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/system-rsc" "2.0.11" - -"@nextui-org/divider@2.0.25": - version "2.0.25" - resolved "https://registry.yarnpkg.com/@nextui-org/divider/-/divider-2.0.25.tgz#3c156552ad38e506b91f8f3dd023b3490a260f08" - integrity sha512-yEvHqYlhNBwmF68pfjJKdzC8gVQtL+txxD5COBGF9uFyfxA5hVw2D6GmYgOH514bxrFBuWOLcQX6gyljgcN3bA== - dependencies: - "@nextui-org/react-rsc-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/system-rsc" "2.0.11" - "@react-types/shared" "^3.21.0" - -"@nextui-org/dropdown@2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@nextui-org/dropdown/-/dropdown-2.1.16.tgz#4b9d328193e942235d04e5c1758618898275e412" - integrity sha512-3KINNvC7Cz+deQltCM8gaB7iJCfU4Qsp1fwnoy1wUEjeZhEtPOPR59oTyqT+gPaPIisP1+LLOfcqRl4jNQoVXw== - dependencies: - "@nextui-org/menu" "2.0.17" - "@nextui-org/popover" "2.1.14" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@react-aria/focus" "^3.14.3" - "@react-aria/menu" "^3.11.1" - "@react-aria/utils" "^3.21.1" - "@react-stately/menu" "^3.5.6" - "@react-types/menu" "^3.9.5" - -"@nextui-org/framer-transitions@2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@nextui-org/framer-transitions/-/framer-transitions-2.0.15.tgz#da53e1923e8091d0a9d91e8791cf661d8e8b3b01" - integrity sha512-UlWMCAFdrq8wKrYFGwc+O4kFhKCkL4L9ZadBkP0PqjmfyAC2gA3ygRbNqtKhFMWeKbBAiC8qQ9aTBEA/+0r/EA== - dependencies: - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/system" "2.0.15" - -"@nextui-org/image@2.0.24": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@nextui-org/image/-/image-2.0.24.tgz#aba9c0a8ae014d0d7e21361c1d30ca9aef13e2da" - integrity sha512-bps5D5ki7PoLldb8wcJEf6C4EUFZm3PocLytNaGa7dNxFfaCOD78So+kq+K+0IRusK3yn94K8r31qMvpI3Gg2Q== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-image" "2.0.4" - -"@nextui-org/input@2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@nextui-org/input/-/input-2.1.16.tgz#c9bbebb551c5f966c12ec95434042be0993afe29" - integrity sha512-nUTlAvsXj5t88ycvQdICxf78/pko6Wznx2OomvYjb3E45eb77twQcWUDhydkJCWIh3b4AhGHSMM6GYxwWUgMDA== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-icons" "2.0.6" - "@nextui-org/shared-utils" "2.0.4" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/textfield" "^3.12.2" - "@react-aria/utils" "^3.21.1" - "@react-stately/utils" "^3.8.0" - "@react-types/shared" "^3.21.0" - "@react-types/textfield" "^3.8.1" - react-textarea-autosize "^8.5.2" - -"@nextui-org/kbd@2.0.25": - version "2.0.25" - resolved "https://registry.yarnpkg.com/@nextui-org/kbd/-/kbd-2.0.25.tgz#a4a85c69166084a0326bc8fd1e7820f23d8fe42c" - integrity sha512-cYwbEjp/+/tjtOdmiRy2UHjfBhP3bqd5e+JFTa5sY1HotckUZrCintATyBcg9bPa3iSPUI44M6Cb9e0oAUUeMA== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/system-rsc" "2.0.11" - "@react-aria/utils" "^3.21.1" - -"@nextui-org/link@2.0.26": - version "2.0.26" - resolved "https://registry.yarnpkg.com/@nextui-org/link/-/link-2.0.26.tgz#154446f755a52a51cf4d0d1a6f1c9412856053f2" - integrity sha512-X8zX3U5MWfiStOCd45oIZ2YKZG0GoUio6PcMFYjpOPsEG7wV58CuhUSxpyx3QTF8JavVSO/p/cl4Pc9pukVDUg== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-icons" "2.0.6" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-link" "2.0.15" - "@react-aria/focus" "^3.14.3" - "@react-aria/link" "^3.6.1" - "@react-aria/utils" "^3.21.1" - "@react-types/link" "^3.5.1" - -"@nextui-org/listbox@2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@nextui-org/listbox/-/listbox-2.1.16.tgz#99830f14c749ae6bac250f02e35ad36605c18674" - integrity sha512-5PmUCoHFgAr+1nAU3IlqPFTgyHo7zsTcNeja4wcErD/KseCF2h7Uk5OqUX5hQDN9B9fZuGjPrkG4yoK/6pqcUQ== - dependencies: - "@nextui-org/aria-utils" "2.0.15" - "@nextui-org/divider" "2.0.25" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-press" "2.0.1" - "@nextui-org/use-is-mobile" "2.0.6" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/listbox" "^3.11.1" - "@react-aria/utils" "^3.21.1" - "@react-stately/list" "^3.10.0" - "@react-types/menu" "^3.9.5" - "@react-types/shared" "^3.21.0" - -"@nextui-org/menu@2.0.17": - version "2.0.17" - resolved "https://registry.yarnpkg.com/@nextui-org/menu/-/menu-2.0.17.tgz#6e0e90799b6154d2d3c4e9ffc9cca5675e9097da" - integrity sha512-qr/BPDbBvg5tpAZZLkLx8eNnvYwJYM3Q72fmRYbzwmG3upNtdjln0QYxSwPXUz7RYqTKEFWc9JPxq2pgPM15Wg== - dependencies: - "@nextui-org/aria-utils" "2.0.15" - "@nextui-org/divider" "2.0.25" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-press" "2.0.1" - "@nextui-org/use-is-mobile" "2.0.6" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/menu" "^3.11.1" - "@react-aria/utils" "^3.21.1" - "@react-stately/menu" "^3.5.6" - "@react-stately/tree" "^3.7.3" - "@react-types/menu" "^3.9.5" - "@react-types/shared" "^3.21.0" - -"@nextui-org/modal@2.0.28": - version "2.0.28" - resolved "https://registry.yarnpkg.com/@nextui-org/modal/-/modal-2.0.28.tgz#0014c4d10f05e4b67d90d131af254bef7cd4f102" - integrity sha512-unfP0EMF3FDg5CkRqou03s4/BopWbaBTeVIMZeA2A1WF5teHUOmpLdp44Z1KOoWB1RVMDVd4JeoauNHNhJMp0g== - dependencies: - "@nextui-org/framer-transitions" "2.0.15" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-icons" "2.0.6" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-button" "2.0.6" - "@nextui-org/use-aria-modal-overlay" "2.0.6" - "@nextui-org/use-disclosure" "2.0.6" - "@react-aria/dialog" "^3.5.7" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/overlays" "^3.18.1" - "@react-aria/utils" "^3.21.1" - "@react-stately/overlays" "^3.6.3" - "@react-types/overlays" "^3.8.3" - react-remove-scroll "^2.5.6" - -"@nextui-org/navbar@2.0.27": - version "2.0.27" - resolved "https://registry.yarnpkg.com/@nextui-org/navbar/-/navbar-2.0.27.tgz#3d318692db701d3d5c74de6a41546ca37ac673a1" - integrity sha512-iP4Pn4ItQkAW1nbu1Jmrh5l9pMVG43lDxq9rbx6DbLjLnnZOOrE6fURb8uN5NVy3ooV5dF02zKAoxlkE5fN/xw== - dependencies: - "@nextui-org/framer-transitions" "2.0.15" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-toggle-button" "2.0.6" - "@nextui-org/use-scroll-position" "2.0.4" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/overlays" "^3.18.1" - "@react-aria/utils" "^3.21.1" - "@react-stately/toggle" "^3.6.3" - "@react-stately/utils" "^3.8.0" - react-remove-scroll "^2.5.6" - -"@nextui-org/pagination@2.0.26": - version "2.0.26" - resolved "https://registry.yarnpkg.com/@nextui-org/pagination/-/pagination-2.0.26.tgz#279023882beba4891a22b6d24ff69d264718bc90" - integrity sha512-OVpkpXqUKRuMRIcYESBAL95d3pqZ17SKAyNINMiJ/DwWnrzJu/LXGmFwTuYRoBdqHFlm7guGqZbHmAkcS/Fgow== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-icons" "2.0.6" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-press" "2.0.1" - "@nextui-org/use-pagination" "2.0.4" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/utils" "^3.21.1" - scroll-into-view-if-needed "3.0.10" - -"@nextui-org/popover@2.1.14": - version "2.1.14" - resolved "https://registry.yarnpkg.com/@nextui-org/popover/-/popover-2.1.14.tgz#9ef43ef04fc325231001188e6b0c2a93f94e8b94" - integrity sha512-fqqktFQ/chIBS9Y3MghL6KX6qAy3hodtXUDchnxLa1GL+oi6TCBLUjo+wgI5EMJrTTbqo/eFLui/Ks00JfCj+A== - dependencies: - "@nextui-org/aria-utils" "2.0.15" - "@nextui-org/button" "2.0.26" - "@nextui-org/framer-transitions" "2.0.15" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-button" "2.0.6" - "@react-aria/dialog" "^3.5.7" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/overlays" "^3.18.1" - "@react-aria/utils" "^3.21.1" - "@react-stately/overlays" "^3.6.3" - "@react-types/button" "^3.9.0" - "@react-types/overlays" "^3.8.3" - react-remove-scroll "^2.5.6" - -"@nextui-org/progress@2.0.24": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@nextui-org/progress/-/progress-2.0.24.tgz#009681d4aa0233f5f62783a35d249a95a6ac1a74" - integrity sha512-RPVsFCF8COFClS/8PqEepzryhDFtIcJGQLu/P+qAr7jIDlXizXaBDrp0X34GVtQsapNeE9ExxX9Kt+QIspuHHQ== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-is-mounted" "2.0.4" - "@react-aria/i18n" "^3.8.4" - "@react-aria/progress" "^3.4.7" - "@react-aria/utils" "^3.21.1" - "@react-types/progress" "^3.5.0" - -"@nextui-org/radio@2.0.25": - version "2.0.25" - resolved "https://registry.yarnpkg.com/@nextui-org/radio/-/radio-2.0.25.tgz#694ea70cf1f849c4e892ab5aa2f2ee672042d7e4" - integrity sha512-vRX0ppM5Tlzu0HoqTG6LdmQnMjk8RRl66BH1+QaosvZRXA1iIdA3BduqQYqn5ZZHBBlJ2u9QzaD3lTAlWIHvNg== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-press" "2.0.1" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/radio" "^3.8.2" - "@react-aria/utils" "^3.21.1" - "@react-aria/visually-hidden" "^3.8.6" - "@react-stately/radio" "^3.9.1" - "@react-types/radio" "^3.5.2" - "@react-types/shared" "^3.21.0" - -"@nextui-org/react-rsc-utils@2.0.10": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@nextui-org/react-rsc-utils/-/react-rsc-utils-2.0.10.tgz#2a20e4b72e6f9dc57efe235a66f1b4a017d94cbb" - integrity sha512-LNePDEThUF9PAbJW4T8k7EgSfqwlvGku5fIqJ1IA9+OpVy5LqhrUQehjvgXe63N1RupC7Pt+XvaaxkGu9U2FiQ== - -"@nextui-org/react-utils@2.0.10": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@nextui-org/react-utils/-/react-utils-2.0.10.tgz#30cd3d03fbb911d496ae15b9d27b0f5ab9450876" - integrity sha512-bcA+k7ZdcgcK+r/8nrCtbdgHo0SD6jicbazWIokknFwjb97JQ7ooaMwxnLt5E5sswCAv0XeLwybOmrgm7JA5TA== - dependencies: - "@nextui-org/react-rsc-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - -"@nextui-org/react@^2.2.9": - version "2.2.9" - resolved "https://registry.yarnpkg.com/@nextui-org/react/-/react-2.2.9.tgz#aa4e872492a710fdffffd431679e6cbd857d3653" - integrity sha512-QHkUQTxI9sYoVjrvTpYm5K68pMDRqD13+DVzdsrkJuETGhbvE2c2CCGc4on9EwXC3JsOxuP/OyqaAmOIuHhYkA== - dependencies: - "@nextui-org/accordion" "2.0.28" - "@nextui-org/autocomplete" "2.0.9" - "@nextui-org/avatar" "2.0.24" - "@nextui-org/badge" "2.0.24" - "@nextui-org/breadcrumbs" "2.0.4" - "@nextui-org/button" "2.0.26" - "@nextui-org/card" "2.0.24" - "@nextui-org/checkbox" "2.0.25" - "@nextui-org/chip" "2.0.25" - "@nextui-org/code" "2.0.24" - "@nextui-org/divider" "2.0.25" - "@nextui-org/dropdown" "2.1.16" - "@nextui-org/image" "2.0.24" - "@nextui-org/input" "2.1.16" - "@nextui-org/kbd" "2.0.25" - "@nextui-org/link" "2.0.26" - "@nextui-org/listbox" "2.1.16" - "@nextui-org/menu" "2.0.17" - "@nextui-org/modal" "2.0.28" - "@nextui-org/navbar" "2.0.27" - "@nextui-org/pagination" "2.0.26" - "@nextui-org/popover" "2.1.14" - "@nextui-org/progress" "2.0.24" - "@nextui-org/radio" "2.0.25" - "@nextui-org/ripple" "2.0.24" - "@nextui-org/scroll-shadow" "2.1.12" - "@nextui-org/select" "2.1.20" - "@nextui-org/skeleton" "2.0.24" - "@nextui-org/slider" "2.2.5" - "@nextui-org/snippet" "2.0.30" - "@nextui-org/spacer" "2.0.24" - "@nextui-org/spinner" "2.0.24" - "@nextui-org/switch" "2.0.25" - "@nextui-org/system" "2.0.15" - "@nextui-org/table" "2.0.28" - "@nextui-org/tabs" "2.0.26" - "@nextui-org/theme" "2.1.17" - "@nextui-org/tooltip" "2.0.29" - "@nextui-org/user" "2.0.25" - "@react-aria/visually-hidden" "^3.8.6" - -"@nextui-org/ripple@2.0.24": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@nextui-org/ripple/-/ripple-2.0.24.tgz#837f69f3edb0867b5271dbd3c9f9ef98e92193b2" - integrity sha512-PCvAk9ErhmPX46VRmhsg8yMxw3Qd9LY7BDkRRfIF8KftgRDyOpG2vV8DxvSOxQu1/aqBWkkHNUuEjM/EvSEung== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - -"@nextui-org/scroll-shadow@2.1.12": - version "2.1.12" - resolved "https://registry.yarnpkg.com/@nextui-org/scroll-shadow/-/scroll-shadow-2.1.12.tgz#d896c3a1f7b9e09b86866c7223d34dd754330d28" - integrity sha512-uxT8D+WCWeBy4xaFDfqVpBgjjHZUwydXsX5HhbzZCBir/1eRG5GMnUES3w98DSwcUVadG64gAVsyGW4HmSZw1Q== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-data-scroll-overflow" "2.1.2" - -"@nextui-org/select@2.1.20": - version "2.1.20" - resolved "https://registry.yarnpkg.com/@nextui-org/select/-/select-2.1.20.tgz#26c8ea37c6be99500fe0483ffba53e307ac8b318" - integrity sha512-GCO9uzyYnFIdJTqIe6aDe2NnYlclcdYfZnECFAze/R2MW0jpoysk5ysGBDjVDmZis6tLu+BOFXJbIlYEi+LoUQ== - dependencies: - "@nextui-org/aria-utils" "2.0.15" - "@nextui-org/listbox" "2.1.16" - "@nextui-org/popover" "2.1.14" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/scroll-shadow" "2.1.12" - "@nextui-org/shared-icons" "2.0.6" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/spinner" "2.0.24" - "@nextui-org/use-aria-button" "2.0.6" - "@nextui-org/use-aria-multiselect" "2.1.3" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/utils" "^3.21.1" - "@react-aria/visually-hidden" "^3.8.6" - "@react-types/shared" "^3.21.0" - -"@nextui-org/shared-icons@2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@nextui-org/shared-icons/-/shared-icons-2.0.6.tgz#e6ee3544f2a711eeb1c79116f495583e76994402" - integrity sha512-Mw5utPJAclFaeKAZowznEgabI5gdhXrW0iMaMA18Y4zcZRTidAc0WFeGYUlX876NxYLPc1Zk4bZUhQvMe+7uWg== - -"@nextui-org/shared-utils@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nextui-org/shared-utils/-/shared-utils-2.0.4.tgz#a5fbd5227ad3a2ab637582e77ad33c73d99f5f32" - integrity sha512-Ms7A6UCvo/SZt/9Nmb7cZwHe9fZFw+EPsieTnC1vtpvDNCasxrTB0hj9VWFoYfWOaCzzqxl1AL9maIz/gMvckQ== - -"@nextui-org/skeleton@2.0.24": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@nextui-org/skeleton/-/skeleton-2.0.24.tgz#ee35ec96a825a2c9589dca4958dfa6585706e9b6" - integrity sha512-bsb+lYugSfQV3RHrEHLbHhkkeslaxybnnT4z485Y/GBYTENOiHIOnWFWntfxCbjZ6vCewGlfgnphj6zeqlk20g== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/system-rsc" "2.0.11" - -"@nextui-org/slider@2.2.5": - version "2.2.5" - resolved "https://registry.yarnpkg.com/@nextui-org/slider/-/slider-2.2.5.tgz#bdfa1dd486f5f8dc1997172204aa6b2c3e388ee5" - integrity sha512-dC6HHMmtn2WvxDmbY/Dq51XJjQ7cAnjZsuYVIvhwIiCLDG8QnEIhmYN0DQp/6oeZsCHnyMHC4DmtgOiJL0eXrQ== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/tooltip" "2.0.29" - "@nextui-org/use-aria-press" "2.0.1" - "@react-aria/focus" "^3.14.3" - "@react-aria/i18n" "^3.8.4" - "@react-aria/interactions" "^3.19.1" - "@react-aria/slider" "^3.7.2" - "@react-aria/utils" "^3.21.1" - "@react-aria/visually-hidden" "^3.8.6" - "@react-stately/slider" "^3.4.4" - -"@nextui-org/snippet@2.0.30": - version "2.0.30" - resolved "https://registry.yarnpkg.com/@nextui-org/snippet/-/snippet-2.0.30.tgz#1bbaed3ab403bbbd18de9e29c3b5bbfbd95c1fba" - integrity sha512-8hKxqKpbJIMqFVedzYj90T4td+TkWdOdyYD9+VjywMdezAjsWdr8tqQj7boaMFjVNVSG+Pnw55Pgg/vkpc21aw== - dependencies: - "@nextui-org/button" "2.0.26" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-icons" "2.0.6" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/tooltip" "2.0.29" - "@nextui-org/use-clipboard" "2.0.4" - "@react-aria/focus" "^3.14.3" - "@react-aria/utils" "^3.21.1" - -"@nextui-org/spacer@2.0.24": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@nextui-org/spacer/-/spacer-2.0.24.tgz#69678201b4a08d4ec859fb95d1b596fe3204a5da" - integrity sha512-bLnhPRnoyHQXhLneHjbRqZNxJWMFOBYOZkuX83uy59/FFUY07BcoNsb2s80tN3GoVxsaZ2jB6NxxVbaCJwoPog== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/system-rsc" "2.0.11" - -"@nextui-org/spinner@2.0.24": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@nextui-org/spinner/-/spinner-2.0.24.tgz#99bfea6572ae9a64a20ab57249f483a912e07672" - integrity sha512-s/q2FmxGPNEqA0ifWfc7xgs5a5D9c3xKkxL3n7jDoRnWo0NPlRsa6QRJGiSL5dHNoUqspRf/lNw2V94Bxk86Pg== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/system-rsc" "2.0.11" - -"@nextui-org/switch@2.0.25": - version "2.0.25" - resolved "https://registry.yarnpkg.com/@nextui-org/switch/-/switch-2.0.25.tgz#6ae65dbdbeebcb3a5fa1d12c7101827a4af7c735" - integrity sha512-U7g68eReMSkgG0bBOSdzRLK+npv422YK6WYHpYOSkEBDqGwQ7LCeMRQreT/KxN0QFxIKmafebdLHAbuKc/X+5Q== - dependencies: - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-aria-press" "2.0.1" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/switch" "^3.5.6" - "@react-aria/utils" "^3.21.1" - "@react-aria/visually-hidden" "^3.8.6" - "@react-stately/toggle" "^3.6.3" - "@react-types/shared" "^3.21.0" - -"@nextui-org/system-rsc@2.0.11": - version "2.0.11" - resolved "https://registry.yarnpkg.com/@nextui-org/system-rsc/-/system-rsc-2.0.11.tgz#7f81b925c988b34f85f587af27e42fdbe5c463cc" - integrity sha512-1QqZ+GM7Ii0rsfSHXS6BBjzKOoLIWwb72nm4h4WgjlMXbRKLZcCQasRHVe5HMSBMvN0JUo7qyGExchfDFl/Ubw== - dependencies: - clsx "^1.2.1" - -"@nextui-org/system@2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@nextui-org/system/-/system-2.0.15.tgz#b0a532f0b3a27e911c076d2ac180d38c72d64952" - integrity sha512-WFDq+Rx6D+gmK1YGEG2RBARPK9EOYonQDt5Tq2tUchzOOqj3kXXcM5Z0F3fudM59eIncLa/tX/ApJSTLry+hsw== - dependencies: - "@nextui-org/system-rsc" "2.0.11" - "@react-aria/i18n" "^3.8.4" - "@react-aria/overlays" "^3.18.1" - "@react-aria/utils" "^3.21.1" - "@react-stately/utils" "^3.8.0" - -"@nextui-org/table@2.0.28": - version "2.0.28" - resolved "https://registry.yarnpkg.com/@nextui-org/table/-/table-2.0.28.tgz#4ea5f3688836e07f0273de0657dff188f87ebc39" - integrity sha512-qH/7jdV5+tiMDDvBfMrUZN4jamds0FsL5Ak+ighoKIUYRFTSXOroi+63ZzzAh/mZAsUALCPPcfbXt4r4aBFDzg== - dependencies: - "@nextui-org/checkbox" "2.0.25" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-icons" "2.0.6" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/spacer" "2.0.24" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/table" "^3.13.1" - "@react-aria/utils" "^3.21.1" - "@react-aria/visually-hidden" "^3.8.6" - "@react-stately/table" "^3.11.2" - "@react-stately/virtualizer" "^3.6.4" - "@react-types/grid" "^3.2.2" - "@react-types/table" "^3.9.0" - -"@nextui-org/tabs@2.0.26": - version "2.0.26" - resolved "https://registry.yarnpkg.com/@nextui-org/tabs/-/tabs-2.0.26.tgz#5064c81fd8a48af54d2b04e86b915cb4bb179e2e" - integrity sha512-GjERgBYUAY1KD4GqNVy0cRi6GyQnf62q0ddcN4je3sEM6rsq3PygEXhkN5pxxFPacoYM/UE6rBswHSKlbjJjgw== - dependencies: - "@nextui-org/aria-utils" "2.0.15" - "@nextui-org/framer-transitions" "2.0.15" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@nextui-org/use-is-mounted" "2.0.4" - "@nextui-org/use-update-effect" "2.0.4" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/tabs" "^3.8.1" - "@react-aria/utils" "^3.21.1" - "@react-stately/tabs" "^3.6.1" - "@react-types/shared" "^3.21.0" - "@react-types/tabs" "^3.3.3" - scroll-into-view-if-needed "3.0.10" - -"@nextui-org/theme@2.1.17": - version "2.1.17" - resolved "https://registry.yarnpkg.com/@nextui-org/theme/-/theme-2.1.17.tgz#e5e625486225fab15a60ae774988c71c4f91b66b" - integrity sha512-/WeHcMrAcWPGsEVn9M9TnvxKkaYkCocBH9JrDYCEFQoJgleUzHd4nVk7MWtpSOYJXLUzUMY1M9AqAK3jBkw+5g== - dependencies: - color "^4.2.3" - color2k "^2.0.2" - deepmerge "4.3.1" - flat "^5.0.2" - lodash.foreach "^4.5.0" - lodash.get "^4.4.2" - lodash.kebabcase "^4.1.1" - lodash.mapkeys "^4.6.0" - lodash.omit "^4.5.0" - tailwind-variants "^0.1.18" - -"@nextui-org/tooltip@2.0.29": - version "2.0.29" - resolved "https://registry.yarnpkg.com/@nextui-org/tooltip/-/tooltip-2.0.29.tgz#cca91088241fdd6ef1d33ebeb7eae80192d2e52d" - integrity sha512-LaFyS5bXhcZFXP9rnh6pTKsYX6siWjzEe5z72FIOyAV2yvv2yhkRiO/mEHKI8moo+/tScW/6muFXsvbEalPefg== - dependencies: - "@nextui-org/aria-utils" "2.0.15" - "@nextui-org/framer-transitions" "2.0.15" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@react-aria/interactions" "^3.19.1" - "@react-aria/overlays" "^3.18.1" - "@react-aria/tooltip" "^3.6.4" - "@react-aria/utils" "^3.21.1" - "@react-stately/tooltip" "^3.4.5" - "@react-types/overlays" "^3.8.3" - "@react-types/tooltip" "^3.4.5" - -"@nextui-org/use-aria-accordion@2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-accordion/-/use-aria-accordion-2.0.2.tgz#4f87a715c4e9864c8c8bfdf2d440915fd7963a6c" - integrity sha512-ebYr4CdvWifuTM/yyhQLKCa7aUqbVrWyR0SB6VNCGDID/kvRUW52puWnY9k24xdwY0cKbW3JRciKtQkrokRQwg== - dependencies: - "@react-aria/button" "^3.8.4" - "@react-aria/focus" "^3.14.3" - "@react-aria/selection" "^3.17.1" - "@react-aria/utils" "^3.21.1" - "@react-stately/tree" "^3.7.3" - "@react-types/accordion" "3.0.0-alpha.17" - "@react-types/shared" "^3.21.0" - -"@nextui-org/use-aria-button@2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-button/-/use-aria-button-2.0.6.tgz#1a4f3dd5ad1f725cefc28a3fb6330751e37c5f75" - integrity sha512-38DZ3FK/oPZ3sppfM5EtgJ4DITOajNwSKkAMePBmuSZl+bsW7peP8g5JNd9uPOEz3edCOppT60AQSICsYiH3cg== - dependencies: - "@nextui-org/use-aria-press" "2.0.1" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/utils" "^3.21.1" - "@react-types/button" "^3.9.0" - "@react-types/shared" "^3.21.0" - -"@nextui-org/use-aria-link@2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-link/-/use-aria-link-2.0.15.tgz#e176e02915b890f609eb7620be8b7a2119258a33" - integrity sha512-znzOeTZ10o3O5F2nihi8BR8rAhRHgrRWcEBovV7OqJeFzvTQwsHl9/xy45zBfwJQksBtfcBfQf+GEHXeDwfigA== - dependencies: - "@nextui-org/use-aria-press" "2.0.1" - "@react-aria/focus" "^3.14.3" - "@react-aria/interactions" "^3.19.1" - "@react-aria/utils" "^3.21.1" - "@react-types/link" "^3.5.1" - "@react-types/shared" "^3.21.0" - -"@nextui-org/use-aria-modal-overlay@2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-modal-overlay/-/use-aria-modal-overlay-2.0.6.tgz#f267fa80143d098e1e625aea3bf224c095fc3467" - integrity sha512-JfhXvH2RObWpHeLmxdIBDPF2SDzV4SqBvEh01yRvg/EuZ3HDRfCnTDh+5HD0ziUVdk/kWuy/hZLX59sMX7QHWA== - dependencies: - "@react-aria/overlays" "^3.18.1" - "@react-aria/utils" "^3.21.1" - "@react-stately/overlays" "^3.6.3" - "@react-types/shared" "^3.21.0" - -"@nextui-org/use-aria-multiselect@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-multiselect/-/use-aria-multiselect-2.1.3.tgz#9526f2711b0454d0608dc744e807849215678845" - integrity sha512-OM1lj2jdl0Q2Zme/ds6qyT4IIGsBJSGNjvkM6pEnpdyoej/HwTKsSEpEFTDGJ5t9J9DWWCEt3hz0uJxOPnZ66Q== - dependencies: - "@react-aria/i18n" "^3.8.4" - "@react-aria/interactions" "^3.19.1" - "@react-aria/label" "^3.7.2" - "@react-aria/listbox" "^3.11.1" - "@react-aria/menu" "^3.11.1" - "@react-aria/selection" "^3.17.1" - "@react-aria/utils" "^3.21.1" - "@react-stately/list" "^3.10.0" - "@react-stately/menu" "^3.5.6" - "@react-types/button" "^3.9.0" - "@react-types/overlays" "^3.8.3" - "@react-types/select" "^3.8.4" - "@react-types/shared" "^3.21.0" - -"@nextui-org/use-aria-press@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-press/-/use-aria-press-2.0.1.tgz#b703cc546187637ef2a0c58616cc5a69654abb05" - integrity sha512-T3MjHH5TU9qnkf872GmhcfQK16ITMmMW9zir6xsSsz0w6ay9Y0XTSPrI2zRL6ociFyfJjP840XCLtSx6VBfEBQ== - dependencies: - "@react-aria/interactions" "^3.19.1" - "@react-aria/ssr" "^3.8.0" - "@react-aria/utils" "^3.21.1" - "@react-types/shared" "^3.21.0" - -"@nextui-org/use-aria-toggle-button@2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-toggle-button/-/use-aria-toggle-button-2.0.6.tgz#d347f01514710f73dd42acee4106ecfa734b6aed" - integrity sha512-6Sjp7a0HQjmboLKNZu9AtZmyHz8+vhqcDwJDYTZjrrna0udxEXG+6C14YZzQxoJcvuaMimr5E8Aq0AxyRAr0MQ== - dependencies: - "@nextui-org/use-aria-button" "2.0.6" - "@react-aria/utils" "^3.21.1" - "@react-stately/toggle" "^3.6.3" - "@react-types/button" "^3.9.0" - "@react-types/shared" "^3.21.0" - -"@nextui-org/use-callback-ref@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nextui-org/use-callback-ref/-/use-callback-ref-2.0.4.tgz#6706329f7e79282624c4b88e542a53747e592122" - integrity sha512-GF50SzOFU/R0gQT1TmjbEUiS8CQ87qiV5Rp/TD5pqys1xprVgGLUUNQzlh+YDS2JHNu5FGlZc4sJKhtf2xF5aw== - dependencies: - "@nextui-org/use-safe-layout-effect" "2.0.4" - -"@nextui-org/use-clipboard@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nextui-org/use-clipboard/-/use-clipboard-2.0.4.tgz#49439ca60368fc70711b4b3ded019c745f38f1ec" - integrity sha512-rMcaX0QsolOJ1BQbp1T/FVsSPn2m0Ss4Z+bbdS7eM6EFKtJdVJWlpbrST0/kR2UcW1KWeK27NYmtNPF5+hgZMA== - -"@nextui-org/use-data-scroll-overflow@2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@nextui-org/use-data-scroll-overflow/-/use-data-scroll-overflow-2.1.2.tgz#eae5d2caead984f0f4462aee3bcf5b04a48238c0" - integrity sha512-3h9QX+dWkfqnqciQc2KeeR67e77hobjefNHGBTDuB4LhJSJ180ToZH09SQNHaUmKRLTU/RABjGWXxdbORI0r6g== - dependencies: - "@nextui-org/shared-utils" "2.0.4" - -"@nextui-org/use-disclosure@2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@nextui-org/use-disclosure/-/use-disclosure-2.0.6.tgz#42bfba68af502e22b0cf5ccac0c5d4db87c3130f" - integrity sha512-pazzLsAGKjUD4cMVySTivItmIgpsfIf4baP/02K0Xc8tbFAH4K1n7cUnEEjs+MTXy1Bprvz3pfAHDGZRDI1yYg== - dependencies: - "@nextui-org/use-callback-ref" "2.0.4" - "@react-aria/utils" "^3.21.1" - "@react-stately/utils" "^3.8.0" - -"@nextui-org/use-image@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nextui-org/use-image/-/use-image-2.0.4.tgz#5b758355c948d445d0cd89b18177d3d37b683f57" - integrity sha512-tomOkrhlhTA45qA/MLh1YmiWVGgJ2KeM0qBSLP1ikVcppc/e9UtkIJjHIGdNCnHZTjoPEh53HzyJeUMlYUM9uw== - dependencies: - "@nextui-org/use-safe-layout-effect" "2.0.4" - -"@nextui-org/use-is-mobile@2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@nextui-org/use-is-mobile/-/use-is-mobile-2.0.6.tgz#4e769aee0bdd7f74d9c747297b1cabaf42ff0de2" - integrity sha512-HeglWUoq6Ln8P5n6s1SZvBRatLYMKsiXQM7Mk2l+6jFByzZh3VWtZ05xmuX8te/1rGmeUxjeXtW6x+F7/f/JoA== - dependencies: - "@react-aria/ssr" "^3.8.0" - -"@nextui-org/use-is-mounted@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nextui-org/use-is-mounted/-/use-is-mounted-2.0.4.tgz#ad08001c9a64f399b0df763458a8ddc581022892" - integrity sha512-NSQwQjg8+k02GVov9cDwtAdop1Cr90eDgB0MAdvu7QCMgfBZjy88IdQnx3Yo7bG4wP45xC0vLjqDBanaK+11hw== - -"@nextui-org/use-pagination@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nextui-org/use-pagination/-/use-pagination-2.0.4.tgz#6f0ba99b1d37e08edc433d31fbc88d8af838a87e" - integrity sha512-EETHzhh+LW8u2bm93LkUABbu0pIoWBCeY8hmvgjhhNMkILuwZNGYnp9tdF2rcS2P4KDlHQkIQcoiOGrGMqBUaQ== - dependencies: - "@nextui-org/shared-utils" "2.0.4" - -"@nextui-org/use-safe-layout-effect@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nextui-org/use-safe-layout-effect/-/use-safe-layout-effect-2.0.4.tgz#92652ea61ab94abf494c98c581297769cc8f29e0" - integrity sha512-K7ppEhTfzdVOzbgKaNFEBi4HwRfQ8j+kRBQqsU5yo8bSM+5uv8OUy/mjpEf4i02PUDIBmsgJC4En9S537DXrwg== - -"@nextui-org/use-scroll-position@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nextui-org/use-scroll-position/-/use-scroll-position-2.0.4.tgz#9d4f83c88381969267a1ae8faf1c8b0f4e3af9d3" - integrity sha512-5ugiHqQ1OptBmujOsJGigbUt/rQ826+8RKYSpBp1uax1eF7TlpigXt6mS1PDsJIyEauHi8rjH5B3weOn1//tug== - -"@nextui-org/use-update-effect@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nextui-org/use-update-effect/-/use-update-effect-2.0.4.tgz#b837a9a6639a450f5c80db1e4b7caa619a4e675d" - integrity sha512-HycSl9Eopmy3ypZQxXVR7eov2D0q0zcgldgbIPvlKExbj8OInaIImc9zLMI9oQgfmg/YdvLeFSrfwc5BPrIvlg== - -"@nextui-org/user@2.0.25": - version "2.0.25" - resolved "https://registry.yarnpkg.com/@nextui-org/user/-/user-2.0.25.tgz#4c9d5e341fc5c2f7702a1948016b951b026d4a92" - integrity sha512-Ykh65O0ynJBlstlZowM8KrX6zv/VLfDgYX892Dk0goLwU8gcSILPZE7yGIBZi1XsNN7mE3dmTp/APLFDbkzzXw== - dependencies: - "@nextui-org/avatar" "2.0.24" - "@nextui-org/react-utils" "2.0.10" - "@nextui-org/shared-utils" "2.0.4" - "@react-aria/focus" "^3.14.3" - "@react-aria/utils" "^3.21.1" - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -6594,748 +5673,6 @@ dependencies: "@babel/runtime" "^7.13.10" -"@react-aria/breadcrumbs@^3.5.7": - version "3.5.8" - resolved "https://registry.yarnpkg.com/@react-aria/breadcrumbs/-/breadcrumbs-3.5.8.tgz#243a25621066443e42f2a6a1cb82fe3c558f6dea" - integrity sha512-jeek23igeqXct7S3ShW2jtFUc5g3fS9ZEBZkF64FWBrwfCiaZwb8TcKkK/xFw36/q5mxEt+seNiqnNzvsICJuQ== - dependencies: - "@react-aria/i18n" "^3.9.0" - "@react-aria/link" "^3.6.2" - "@react-aria/utils" "^3.22.0" - "@react-types/breadcrumbs" "^3.7.2" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/button@^3.8.4": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@react-aria/button/-/button-3.9.0.tgz#df59e0628917b320c4d1655e23547eb41a9a0f08" - integrity sha512-Jri4OCN+4YmpJDPNQvk1DJoskKD9sdTxZaWWWJdAwoSIunZk3IEBXVvRfKzsEAVtI+UJN25zC2kyjXbVPS2XAA== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/interactions" "^3.20.0" - "@react-aria/utils" "^3.22.0" - "@react-stately/toggle" "^3.7.0" - "@react-types/button" "^3.9.1" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/checkbox@^3.11.2": - version "3.12.0" - resolved "https://registry.yarnpkg.com/@react-aria/checkbox/-/checkbox-3.12.0.tgz#a965e975975404ecf1ff867284511e4490a69c21" - integrity sha512-CyFZoI+z9hhyB3wb7IBsZxE30vXfYO2vSyET16zlkJ4qiFMqMiVLE4ekq034MHltCdpAczgP5yfKgNnJOmj7vQ== - dependencies: - "@react-aria/form" "^3.0.0" - "@react-aria/label" "^3.7.3" - "@react-aria/toggle" "^3.9.0" - "@react-aria/utils" "^3.22.0" - "@react-stately/checkbox" "^3.6.0" - "@react-stately/form" "^3.0.0" - "@react-stately/toggle" "^3.7.0" - "@react-types/checkbox" "^3.6.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/combobox@^3.7.1": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@react-aria/combobox/-/combobox-3.8.0.tgz#1806cd5ea6c11c90802d7c0a0807d93271265c1c" - integrity sha512-lInzzZrH4vFlxmvDpXgQRkkREm7YIx258IRpQqll8Bny2vKMmZoF06zWMbcHP0CjFqYxExQeTjSYx0OTRRxkCQ== - dependencies: - "@react-aria/i18n" "^3.9.0" - "@react-aria/listbox" "^3.11.2" - "@react-aria/live-announcer" "^3.3.1" - "@react-aria/menu" "^3.11.2" - "@react-aria/overlays" "^3.19.0" - "@react-aria/selection" "^3.17.2" - "@react-aria/textfield" "^3.13.0" - "@react-aria/utils" "^3.22.0" - "@react-stately/collections" "^3.10.3" - "@react-stately/combobox" "^3.8.0" - "@react-stately/form" "^3.0.0" - "@react-types/button" "^3.9.1" - "@react-types/combobox" "^3.9.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/dialog@^3.5.7": - version "3.5.8" - resolved "https://registry.yarnpkg.com/@react-aria/dialog/-/dialog-3.5.8.tgz#3b52ff145b16e0f47b04364239bd91d39968e3c2" - integrity sha512-KIc1FORdHhZ3bWom4qHO0hmlL4e5Hup6N25EY8HP5I7Ftv9EBBGaO5grtxZ2fX8kiCJNI4y+k67ZZ71wKJvMiA== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/overlays" "^3.19.0" - "@react-aria/utils" "^3.22.0" - "@react-types/dialog" "^3.5.7" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/focus@^3.14.3", "@react-aria/focus@^3.15.0": - version "3.15.0" - resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.15.0.tgz#acca3cfe94e0ba0c00276e74c6cca06975f75f87" - integrity sha512-nnxRyfqHuAjRwdQ4BpQyZPtGFKZmRU6cnaIb3pqWFCqEyJQensV7MA3TJ4Jhadq67cy1Ji5SYSlr1duBwjoYvw== - dependencies: - "@react-aria/interactions" "^3.20.0" - "@react-aria/utils" "^3.22.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - clsx "^1.1.1" - -"@react-aria/form@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@react-aria/form/-/form-3.0.0.tgz#d4e892687331a9cba1cfc48be5754100ab736dec" - integrity sha512-APeGph9oTO8nro4ZObuy1hk+0hpF/ji9O3odPGhLkzP/HvW2J7NI9pjKJOINfgtYr2yvVUZf/MbTMxPwtAxhaQ== - dependencies: - "@react-aria/interactions" "^3.20.0" - "@react-aria/utils" "^3.22.0" - "@react-stately/form" "^3.0.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/grid@^3.8.5": - version "3.8.5" - resolved "https://registry.yarnpkg.com/@react-aria/grid/-/grid-3.8.5.tgz#92682b36b230920d507e3ed4fb7e9564f96c9f02" - integrity sha512-0p+Bbs9rpQeOy8b75DamlzVPKylBoe/z0XwkeeTChHP2TK3TwPXh6J5EmisQx6K8zsb3iZULQRcP4QibvnMbrg== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/i18n" "^3.9.0" - "@react-aria/interactions" "^3.20.0" - "@react-aria/live-announcer" "^3.3.1" - "@react-aria/selection" "^3.17.2" - "@react-aria/utils" "^3.22.0" - "@react-stately/collections" "^3.10.3" - "@react-stately/grid" "^3.8.3" - "@react-stately/selection" "^3.14.1" - "@react-stately/virtualizer" "^3.6.5" - "@react-types/checkbox" "^3.6.0" - "@react-types/grid" "^3.2.3" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/i18n@^3.8.4", "@react-aria/i18n@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.9.0.tgz#7aa74e02e74e348de3a34b7599e71ff6920b73ee" - integrity sha512-ebGP/sVG0ZtNF4RNFzs/W01tl7waYpBManh1kKWgA4roDPFt/odkgkDBzKGl+ggBb7TQRHsfUFHuqKsrsMy9TA== - dependencies: - "@internationalized/date" "^3.5.0" - "@internationalized/message" "^3.1.1" - "@internationalized/number" "^3.4.0" - "@internationalized/string" "^3.1.1" - "@react-aria/ssr" "^3.9.0" - "@react-aria/utils" "^3.22.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/interactions@^3.19.1", "@react-aria/interactions@^3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.20.0.tgz#8db350541004f50c0479cc52b82597d8248ac5db" - integrity sha512-JCCEyK2Nb4mEHucrgmqhTHTNAEqhsiM07jJmmY22eikxnCQnsEfdwXyg9cgZLG79D5V7jyqVRqOp2OsG7Qx7kQ== - dependencies: - "@react-aria/ssr" "^3.9.0" - "@react-aria/utils" "^3.22.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/label@^3.7.2", "@react-aria/label@^3.7.3": - version "3.7.3" - resolved "https://registry.yarnpkg.com/@react-aria/label/-/label-3.7.3.tgz#37cb12d2a9495534205b6266aa5174c2fd861368" - integrity sha512-v1zuqbpYyYaPjrBWpceGjMpwP4ne6fLoOXdoIZoKLux2jkAcyIF2kIJFiyYoPQYQJWGRNo7q1oSwamxmng4xJw== - dependencies: - "@react-aria/utils" "^3.22.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/link@^3.6.1", "@react-aria/link@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@react-aria/link/-/link-3.6.2.tgz#4d7fb00000219aa3ff4bd02f59d5d3bd08be0da8" - integrity sha512-v9gXgQ3Gev0JOlg2MAXcubDMgX+0BlJ+hTyFYFMuN/4jVBlAe426WKbjg+6MMzxwukWg9C3Q08JzqdFTi4cBng== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/interactions" "^3.20.0" - "@react-aria/utils" "^3.22.0" - "@react-types/link" "^3.5.2" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/listbox@^3.11.1", "@react-aria/listbox@^3.11.2": - version "3.11.2" - resolved "https://registry.yarnpkg.com/@react-aria/listbox/-/listbox-3.11.2.tgz#5d1d841987c1fbe300fa5d4bf5071f660b2a625b" - integrity sha512-FXdoqYLUTJn16OxodyS518PIcwzFkCfW5bxQepoy88NDMGtqp6u8fvEPpAoZbomvw/pV9MuEaMAw9qLyfkD4DA== - dependencies: - "@react-aria/interactions" "^3.20.0" - "@react-aria/label" "^3.7.3" - "@react-aria/selection" "^3.17.2" - "@react-aria/utils" "^3.22.0" - "@react-stately/collections" "^3.10.3" - "@react-stately/list" "^3.10.1" - "@react-types/listbox" "^3.4.6" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/live-announcer@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@react-aria/live-announcer/-/live-announcer-3.3.1.tgz#bf864b8820fb02daaeefc1c972782a0174fd60b9" - integrity sha512-hsc77U7S16trM86d+peqJCOCQ7/smO1cybgdpOuzXyiwcHQw8RQ4GrXrS37P4Ux/44E9nMZkOwATQRT2aK8+Ew== - dependencies: - "@swc/helpers" "^0.5.0" - -"@react-aria/menu@^3.11.1", "@react-aria/menu@^3.11.2": - version "3.11.2" - resolved "https://registry.yarnpkg.com/@react-aria/menu/-/menu-3.11.2.tgz#bf6dbf751acc09ace12d35bb034a3790f9006720" - integrity sha512-I4R5FOvRtwIQW+0naXav5giZBp935X2tXB2xBg/cSAYDXgfLmFPLHkyPbO77hR6FwazfFfJoKdn0pVcRox3lrQ== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/i18n" "^3.9.0" - "@react-aria/interactions" "^3.20.0" - "@react-aria/overlays" "^3.19.0" - "@react-aria/selection" "^3.17.2" - "@react-aria/utils" "^3.22.0" - "@react-stately/collections" "^3.10.3" - "@react-stately/menu" "^3.5.7" - "@react-stately/tree" "^3.7.4" - "@react-types/button" "^3.9.1" - "@react-types/menu" "^3.9.6" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/overlays@^3.18.1", "@react-aria/overlays@^3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@react-aria/overlays/-/overlays-3.19.0.tgz#0568d808c61e923174e896fc342a1529538da545" - integrity sha512-VN5GkB8+uZ2cfXljBtkqmrsAhBdGoj4un/agH0Qyihi2dazsMeafczSNnqzbpVgB4Zt2UHPJUkKwihgzXRxJJA== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/i18n" "^3.9.0" - "@react-aria/interactions" "^3.20.0" - "@react-aria/ssr" "^3.9.0" - "@react-aria/utils" "^3.22.0" - "@react-aria/visually-hidden" "^3.8.7" - "@react-stately/overlays" "^3.6.4" - "@react-types/button" "^3.9.1" - "@react-types/overlays" "^3.8.4" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/progress@^3.4.7": - version "3.4.8" - resolved "https://registry.yarnpkg.com/@react-aria/progress/-/progress-3.4.8.tgz#3776ebeecc27c5b03db7a260ab39a92dbf722a21" - integrity sha512-Nah3aj5BNRa0+urQZimzb0vuKQK7lsc8BrUwJuHTwGRBSWUjCADExrJYdhDIR/nLUV2TCmAQl+GJtTgbEEj0DQ== - dependencies: - "@react-aria/i18n" "^3.9.0" - "@react-aria/label" "^3.7.3" - "@react-aria/utils" "^3.22.0" - "@react-types/progress" "^3.5.1" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/radio@^3.8.2": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@react-aria/radio/-/radio-3.9.0.tgz#529b796ed3c5731c808af0a3da29e5535fa553b2" - integrity sha512-kr3+OQ1YU/3mURZfCsYaQmJ/c15qOm8uScaDRC39qz97bLNASakQqMImIaS+GluPKx1PEW3y2ErAgLplH28zZw== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/form" "^3.0.0" - "@react-aria/i18n" "^3.9.0" - "@react-aria/interactions" "^3.20.0" - "@react-aria/label" "^3.7.3" - "@react-aria/utils" "^3.22.0" - "@react-stately/radio" "^3.10.0" - "@react-types/radio" "^3.6.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/selection@^3.17.1", "@react-aria/selection@^3.17.2": - version "3.17.2" - resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.17.2.tgz#74b798344df1eb90e3fdae9bc880c0488468ae3b" - integrity sha512-AXXY3eOIWnITabMn6c0bpLPXkSX7040LOZU+7pQgtZJwDdZorLuKw4i7WS5i71LcV71ywG4mtqc9mOb/GfhUbg== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/i18n" "^3.9.0" - "@react-aria/interactions" "^3.20.0" - "@react-aria/utils" "^3.22.0" - "@react-stately/selection" "^3.14.1" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/slider@^3.7.2": - version "3.7.3" - resolved "https://registry.yarnpkg.com/@react-aria/slider/-/slider-3.7.3.tgz#799b47e8559acf63d9c1195fac88bd4d5ca7cad0" - integrity sha512-AbrTD9UzMn0CwxFjOhJHz2ms2zdJlBL3XnbvqkpsmpXUl0u8WT1QAEaMnS5+792gnSGZs/ARDmse53o+IO8wTA== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/i18n" "^3.9.0" - "@react-aria/interactions" "^3.20.0" - "@react-aria/label" "^3.7.3" - "@react-aria/utils" "^3.22.0" - "@react-stately/slider" "^3.4.5" - "@react-types/shared" "^3.22.0" - "@react-types/slider" "^3.7.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/ssr@^3.8.0", "@react-aria/ssr@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.0.tgz#457310129e1447b09d2f4aa2fdd62ab0e668d88c" - integrity sha512-Bz6BqP6ZorCme9tSWHZVmmY+s7AU8l6Vl2NUYmBzezD//fVHHfFo4lFBn5tBuAaJEm3AuCLaJQ6H2qhxNSb7zg== - dependencies: - "@swc/helpers" "^0.5.0" - -"@react-aria/switch@^3.5.6": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@react-aria/switch/-/switch-3.5.7.tgz#b543ac69b5d5dca70c75fc6c80b9c2c9d8191403" - integrity sha512-zBEsB071zzhQ82RwAA42pFLXHgrpya0OoRAsTO6jHZwiaYMsyqJI2eiXd7F6rqklpgyO6k7jOQklGUuoSJW4pA== - dependencies: - "@react-aria/toggle" "^3.9.0" - "@react-stately/toggle" "^3.7.0" - "@react-types/switch" "^3.5.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/table@^3.13.1": - version "3.13.2" - resolved "https://registry.yarnpkg.com/@react-aria/table/-/table-3.13.2.tgz#ef73709facdd005d7d0f6051dc9bedb85eb4e58a" - integrity sha512-bJgMx2SZ8SFmTosbv6k1lZ1a0Yw3f8tzWhpIQodCaMHhtI7izA6YqDNx47NeBNYpVm9DFfAoWbb79HFJ+OKIJA== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/grid" "^3.8.5" - "@react-aria/i18n" "^3.9.0" - "@react-aria/interactions" "^3.20.0" - "@react-aria/live-announcer" "^3.3.1" - "@react-aria/utils" "^3.22.0" - "@react-aria/visually-hidden" "^3.8.7" - "@react-stately/collections" "^3.10.3" - "@react-stately/flags" "^3.0.0" - "@react-stately/table" "^3.11.3" - "@react-stately/virtualizer" "^3.6.5" - "@react-types/checkbox" "^3.6.0" - "@react-types/grid" "^3.2.3" - "@react-types/shared" "^3.22.0" - "@react-types/table" "^3.9.1" - "@swc/helpers" "^0.5.0" - -"@react-aria/tabs@^3.8.1": - version "3.8.2" - resolved "https://registry.yarnpkg.com/@react-aria/tabs/-/tabs-3.8.2.tgz#ab11e77e6e9afaebb7549983c0aa0d66ae5d96bf" - integrity sha512-zDfeEEyJmcnH9TFvJECWIrJpxX4SmREFV1/P8hN6ZUJPYoeiGMXYYFvjcRb1r3LN8XKlbwR37AQ3Cn1/yhrUwQ== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/i18n" "^3.9.0" - "@react-aria/selection" "^3.17.2" - "@react-aria/utils" "^3.22.0" - "@react-stately/tabs" "^3.6.2" - "@react-types/shared" "^3.22.0" - "@react-types/tabs" "^3.3.4" - "@swc/helpers" "^0.5.0" - -"@react-aria/textfield@^3.12.2", "@react-aria/textfield@^3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@react-aria/textfield/-/textfield-3.13.0.tgz#bc8a027f93598a1ebd5013d027549a03d7b8dd04" - integrity sha512-sUlinDE+k/WhbskyqVOkuffuhiQpjgvp+iGRoralStVgb8Tcb+POxgAlw5jS4tNjdivCb3IjVJemUNJM7xsxxA== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/form" "^3.0.0" - "@react-aria/label" "^3.7.3" - "@react-aria/utils" "^3.22.0" - "@react-stately/form" "^3.0.0" - "@react-stately/utils" "^3.9.0" - "@react-types/shared" "^3.22.0" - "@react-types/textfield" "^3.9.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/toggle@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@react-aria/toggle/-/toggle-3.9.0.tgz#c1b253d2fc05f2a673abd9fe4d62bc01a8781a92" - integrity sha512-2YMWYQUEmcoAXtrAE86QXBS9XlmJyV6IFRlMTBNaeLTdH3AmACExgsyU66Tt0sKl6LMDMI376ItMFqAz27BBdQ== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/interactions" "^3.20.0" - "@react-aria/utils" "^3.22.0" - "@react-stately/toggle" "^3.7.0" - "@react-types/checkbox" "^3.6.0" - "@swc/helpers" "^0.5.0" - -"@react-aria/tooltip@^3.6.4": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@react-aria/tooltip/-/tooltip-3.6.5.tgz#aeb4c71db46f2c9ad0ff0b6810002bdacc07fea1" - integrity sha512-hXw4Z8nYLOWz3QOQ807wWZdvDwR3gofsmZhAehg2HPRwdRfCQK+1cjVKeUd9cKCAxs0Cay7dV0oUdilLbCQ2Gg== - dependencies: - "@react-aria/focus" "^3.15.0" - "@react-aria/interactions" "^3.20.0" - "@react-aria/utils" "^3.22.0" - "@react-stately/tooltip" "^3.4.6" - "@react-types/shared" "^3.22.0" - "@react-types/tooltip" "^3.4.6" - "@swc/helpers" "^0.5.0" - -"@react-aria/utils@^3.21.1", "@react-aria/utils@^3.22.0": - version "3.22.0" - resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.22.0.tgz#962a45ae95fdc21de7f22dda68253b0fb2470d06" - integrity sha512-Qi/m65GFFljXA/ayj1m5g3KZdgbZY3jacSSqD5vNUOEGiKsn4OQcsw8RfC2c0SgtLV1hLzsfvFI1OiryPlGCcw== - dependencies: - "@react-aria/ssr" "^3.9.0" - "@react-stately/utils" "^3.9.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - clsx "^1.1.1" - -"@react-aria/visually-hidden@^3.8.6", "@react-aria/visually-hidden@^3.8.7": - version "3.8.7" - resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.8.7.tgz#059699c70cc354ccb3699151b09071b3fc43fa82" - integrity sha512-OuIGMVQIt7GC43h4x35BgkZid8lhoPu7Xz4TQRP8nvOJWb1lH7ehrRRuGdUsK3y90nwpxTdNdg4DILblg+VaLw== - dependencies: - "@react-aria/interactions" "^3.20.0" - "@react-aria/utils" "^3.22.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/checkbox@^3.5.1", "@react-stately/checkbox@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@react-stately/checkbox/-/checkbox-3.6.0.tgz#448da0b07710a120959985fb081ad3855232fdc9" - integrity sha512-e1ChMwGovcOEDcdizqXDT6eDZixIMiPQOzNV5wPQ91SlGaIry9b0lQnK18tHg3yv2iiS6Ipj96cGBUKLJqQ+cQ== - dependencies: - "@react-stately/form" "^3.0.0" - "@react-stately/utils" "^3.9.0" - "@react-types/checkbox" "^3.6.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/collections@^3.10.2", "@react-stately/collections@^3.10.3": - version "3.10.3" - resolved "https://registry.yarnpkg.com/@react-stately/collections/-/collections-3.10.3.tgz#c80bd30df3bf5d2a9c6fdf25f6313c5187d0154d" - integrity sha512-fA28HIApAIz9sNGeOVXZJPgV5Kig6M72KI1t9sUbnRUr9Xq9OMJTR6ElDMXNe0iTeZffRFDOPYyqnX9zkxof6Q== - dependencies: - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/combobox@^3.7.1", "@react-stately/combobox@^3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@react-stately/combobox/-/combobox-3.8.0.tgz#6bd9b23ade552f04e8ebc0eeb80e077efed17d6d" - integrity sha512-F74Avf7+8ruRqEB+3Lh6/C5jXc3ESJbRf9ovUxhmNAzBGeFKesPn5HpEpo87C+3OukGb+/Buvi3Rhib9+HVBKA== - dependencies: - "@react-stately/collections" "^3.10.3" - "@react-stately/form" "^3.0.0" - "@react-stately/list" "^3.10.1" - "@react-stately/menu" "^3.5.7" - "@react-stately/select" "^3.6.0" - "@react-stately/utils" "^3.9.0" - "@react-types/combobox" "^3.9.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/flags@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@react-stately/flags/-/flags-3.0.0.tgz#c5a73965f8c90e8bf5981adddb4bdbb0ba2f5690" - integrity sha512-e3i2ItHbIa0eEwmSXAnPdD7K8syW76JjGe8ENxwFJPW/H1Pu9RJfjkCb/Mq0WSPN/TpxBb54+I9TgrGhbCoZ9w== - dependencies: - "@swc/helpers" "^0.4.14" - -"@react-stately/form@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@react-stately/form/-/form-3.0.0.tgz#584af339a128045c357c1b8ca440c87460a41b0f" - integrity sha512-C8wkfFmtx1escizibhdka5JvTy9/Vp173CS9cakjvWTmnjYYC1nOlzwp7BsYWTgerCFbRY/BU/Cf/bJDxPiUKQ== - dependencies: - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/grid@^3.8.3": - version "3.8.3" - resolved "https://registry.yarnpkg.com/@react-stately/grid/-/grid-3.8.3.tgz#42420724084a023c74e50d9c82efd8074179680d" - integrity sha512-JceGSJcuO6Zv+Aq5s2NZvmbMjdPjTtGNQR9kTgXKC/pOfM6FJ58bJiOmEllyN6oawqh4Ey8Xdqk9NuW4l2ctuw== - dependencies: - "@react-stately/collections" "^3.10.3" - "@react-stately/selection" "^3.14.1" - "@react-types/grid" "^3.2.3" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/list@^3.10.0", "@react-stately/list@^3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@react-stately/list/-/list-3.10.1.tgz#1d926d4aef5764096ec357da8081ef09081fe5cc" - integrity sha512-iVarLMd7FmMT0H20dRWsFOHHX5+c4gK51AXP2BSr1VtDSfbL4dgaGgu7IaAMVc/rO0au1e1tPM2hutiIFvPcnA== - dependencies: - "@react-stately/collections" "^3.10.3" - "@react-stately/selection" "^3.14.1" - "@react-stately/utils" "^3.9.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/menu@^3.5.6", "@react-stately/menu@^3.5.7": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@react-stately/menu/-/menu-3.5.7.tgz#3232598399b4baebfc577d5f56b4bd5570f400c2" - integrity sha512-bzTmAqzcMNatvyruWlvOdZSmMhz3+mkdxtqaZzYHq+DpR6ka57lIRj8dBnZWQGwV3RypMZfz+X6aIX4kruGVbw== - dependencies: - "@react-stately/overlays" "^3.6.4" - "@react-types/menu" "^3.9.6" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/overlays@^3.6.3", "@react-stately/overlays@^3.6.4": - version "3.6.4" - resolved "https://registry.yarnpkg.com/@react-stately/overlays/-/overlays-3.6.4.tgz#1d0d974413fa3f13d97eec2cac5b48c49978d1a0" - integrity sha512-tHEaoAGpE9dSnsskqLPVKum59yGteoSqsniTopodM+miQozbpPlSjdiQnzGLroy5Afx5OZYClE616muNHUILXA== - dependencies: - "@react-stately/utils" "^3.9.0" - "@react-types/overlays" "^3.8.4" - "@swc/helpers" "^0.5.0" - -"@react-stately/radio@^3.10.0", "@react-stately/radio@^3.9.1": - version "3.10.0" - resolved "https://registry.yarnpkg.com/@react-stately/radio/-/radio-3.10.0.tgz#01750b861bfdbb048c6e1bbfb6a97a4f42c29c25" - integrity sha512-d8IgZtUq/4vhE7YhyBVg1QdVoFS0caIcvPumXqtp/5vlDgpUsVy9jSeWtbk0H4FyUcmJlQhRcTylKB9THXY1YQ== - dependencies: - "@react-stately/form" "^3.0.0" - "@react-stately/utils" "^3.9.0" - "@react-types/radio" "^3.6.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/select@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@react-stately/select/-/select-3.6.0.tgz#e77464f3e0367d652866806c1ab61c132c31c49a" - integrity sha512-GvSE4DXmcvdRNUc+ciPU7gedt7LfRO8FFFIzhB/bCQhUlK6/xihUPrGXayzqxLeTQKttMH323LuYFKfwpJRhsA== - dependencies: - "@react-stately/form" "^3.0.0" - "@react-stately/list" "^3.10.1" - "@react-stately/menu" "^3.5.7" - "@react-types/select" "^3.9.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/selection@^3.14.1": - version "3.14.1" - resolved "https://registry.yarnpkg.com/@react-stately/selection/-/selection-3.14.1.tgz#798b4fbfda940778ae1dc1f2d2390cee97cce2c6" - integrity sha512-96/CerrB6yH4Ad9FkzBzyVerSPjcIj1NBTWTFHo1N+oHECvyGsDxZl7Y4LQR++teFK66FhX5KjCJQGae4IZd6A== - dependencies: - "@react-stately/collections" "^3.10.3" - "@react-stately/utils" "^3.9.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/slider@^3.4.4", "@react-stately/slider@^3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@react-stately/slider/-/slider-3.4.5.tgz#46d4a7e0a1644894e91b12003fa1ba8e0787f4ca" - integrity sha512-lJPZC8seYbnZDqAlZm3/QC95I5iluG8ouwkPMmvtWCz1baayV/jJtfxA/74zR7Vcob9Fe7O57g8Edhz/hv9xOQ== - dependencies: - "@react-stately/utils" "^3.9.0" - "@react-types/shared" "^3.22.0" - "@react-types/slider" "^3.7.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/table@^3.11.2", "@react-stately/table@^3.11.3": - version "3.11.3" - resolved "https://registry.yarnpkg.com/@react-stately/table/-/table-3.11.3.tgz#0d9e547fc2e30df174ac4ba3728402f62fb2fc0a" - integrity sha512-r0rzSKbtMG4tjFpCGtXb8p6hOuek03c6rheJE88z4I/ujZ5EmEO6Ps8q0JMNEDCY2qigvKM+ODisMBeZCEkIJg== - dependencies: - "@react-stately/collections" "^3.10.3" - "@react-stately/flags" "^3.0.0" - "@react-stately/grid" "^3.8.3" - "@react-stately/selection" "^3.14.1" - "@react-stately/utils" "^3.9.0" - "@react-types/grid" "^3.2.3" - "@react-types/shared" "^3.22.0" - "@react-types/table" "^3.9.1" - "@swc/helpers" "^0.5.0" - -"@react-stately/tabs@^3.6.1", "@react-stately/tabs@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@react-stately/tabs/-/tabs-3.6.2.tgz#a9825d560af58c4f876e7b619c7e8cb29b071887" - integrity sha512-f+U4D1FAVfVVcNRbtKIv4GrO37CLFClYQlXx9zIuSXjHsviapVD2IQSyAmpKo/CbgXhYRMdGwENZdOsmF/Ns7g== - dependencies: - "@react-stately/list" "^3.10.1" - "@react-types/shared" "^3.22.0" - "@react-types/tabs" "^3.3.4" - "@swc/helpers" "^0.5.0" - -"@react-stately/toggle@^3.6.3", "@react-stately/toggle@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@react-stately/toggle/-/toggle-3.7.0.tgz#abe2f08f37a0f41e6513d4fde3d46f49500bb5cc" - integrity sha512-TRksHkCJk/Xogq4181g3CYgJf+EfsJCqX5UZDSw1Z1Kgpvonjmdf6FAfQfCh9QR2OuXUL6hOLUDVLte5OPI+5g== - dependencies: - "@react-stately/utils" "^3.9.0" - "@react-types/checkbox" "^3.6.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/tooltip@^3.4.5", "@react-stately/tooltip@^3.4.6": - version "3.4.6" - resolved "https://registry.yarnpkg.com/@react-stately/tooltip/-/tooltip-3.4.6.tgz#e240184dedc35018f7b1e2d46eaca20a90d919bb" - integrity sha512-uL93bmsXf+OOgpKLPEKfpDH4z+MK2CuqlqVxx7rshN0vjWOSoezE5nzwgee90+RpDrLNNNWTNa7n+NkDRpI1jA== - dependencies: - "@react-stately/overlays" "^3.6.4" - "@react-types/tooltip" "^3.4.6" - "@swc/helpers" "^0.5.0" - -"@react-stately/tree@^3.7.3", "@react-stately/tree@^3.7.4": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@react-stately/tree/-/tree-3.7.4.tgz#57cc57863837092f13b7a3887e1b5c56330b5cac" - integrity sha512-0yvVODBS8WnSivLFX5ccEjCl2NA/8lbEt1E48wVcY1xcXgISNpw5MSGK5jC6YrtJPIqVolQIkNSbMreXGBktIg== - dependencies: - "@react-stately/collections" "^3.10.3" - "@react-stately/selection" "^3.14.1" - "@react-stately/utils" "^3.9.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-stately/utils@^3.8.0", "@react-stately/utils@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.9.0.tgz#9cb2c8eea5dd1b58256ecb436b963c01526bae37" - integrity sha512-yPKFY1F88HxuZ15BG2qwAYxtpE4HnIU0Ofi4CuBE0xC6I8mwo4OQjDzi+DZjxQngM9D6AeTTD6F1V8gkozA0Gw== - dependencies: - "@swc/helpers" "^0.5.0" - -"@react-stately/virtualizer@^3.6.4", "@react-stately/virtualizer@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@react-stately/virtualizer/-/virtualizer-3.6.5.tgz#45891ac24b6aed0aa168e26c61a39d235d204a70" - integrity sha512-v0cZeNCGPMeo3LP4UrGuDo3Xpq7ufNaZyGObgSvdrIW49qK5F02kczcKy6NKg+QfOgC/+Nc9Tof/2S8dcxDrCA== - dependencies: - "@react-aria/utils" "^3.22.0" - "@react-types/shared" "^3.22.0" - "@swc/helpers" "^0.5.0" - -"@react-types/accordion@3.0.0-alpha.17": - version "3.0.0-alpha.17" - resolved "https://registry.yarnpkg.com/@react-types/accordion/-/accordion-3.0.0-alpha.17.tgz#fe37b9c4c94c5e0dcc10e95ade9d3b32f21abe1c" - integrity sha512-Wsp31bYRu9wy4zAAV2W8FLvVGFF3Vk/JKn2MxqhzaSHwHBw/dfgJTvRRUW+OmBgnqVN97ur893TP9A3odpoZEg== - dependencies: - "@react-types/shared" "^3.21.0" - -"@react-types/breadcrumbs@^3.7.1", "@react-types/breadcrumbs@^3.7.2": - version "3.7.2" - resolved "https://registry.yarnpkg.com/@react-types/breadcrumbs/-/breadcrumbs-3.7.2.tgz#3dc0c8ccebf75844efc56ac8e53dc072df083d5f" - integrity sha512-esl6RucDW2CNMsApJxNYfMtDaUcfLlwKMPH/loYsOBbKxGl2HsgVLMcdpjEkTRs2HCTNCbBXWpeU8AY77t+bsw== - dependencies: - "@react-types/link" "^3.5.2" - "@react-types/shared" "^3.22.0" - -"@react-types/button@^3.9.0", "@react-types/button@^3.9.1": - version "3.9.1" - resolved "https://registry.yarnpkg.com/@react-types/button/-/button-3.9.1.tgz#eb54745133bdaad345d8d589021b67ef2882e1c5" - integrity sha512-bf9iTar3PtqnyV9rA+wyFyrskZKhwmOuOd/ifYIjPs56YNVXWH5Wfqj6Dx3xdFBgtKx8mEVQxVhoX+WkHX+rtw== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/checkbox@^3.5.2", "@react-types/checkbox@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@react-types/checkbox/-/checkbox-3.6.0.tgz#ba702be25555c1520f78be39c8260354638792b6" - integrity sha512-vgbuJzQpVCNT5AZWV0OozXCnihqrXxoZKfJFIw0xro47pT2sn3t5UC4RA9wfjDGMoK4frw1K/4HQLsQIOsPBkw== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/combobox@^3.8.1", "@react-types/combobox@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@react-types/combobox/-/combobox-3.9.0.tgz#f671da0357cfe3a06a24a239fcfacc5b3e5125d0" - integrity sha512-VAQWM2jrIWROgcTKxj4k37WWpK/1zRjj1HfGeuenAQyOQwImqDwCHx5YxQR1GiUEFne4v1yXe2khT0T5Kt2vDg== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/dialog@^3.5.7": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@react-types/dialog/-/dialog-3.5.7.tgz#3fd93875ff317d6014e814b6e1a2abb87272a1ef" - integrity sha512-geYoqAyQaTLG43AaXdMUVqZXYgkSifrD9cF7lR2kPAT0uGFv0YREi6ieU+aui8XJ83EW0xcxP+EPWd2YkN4D4w== - dependencies: - "@react-types/overlays" "^3.8.4" - "@react-types/shared" "^3.22.0" - -"@react-types/grid@^3.2.2", "@react-types/grid@^3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@react-types/grid/-/grid-3.2.3.tgz#20b19b73315343630145ff9e43138e7f2855d946" - integrity sha512-GQM4RDmYhstcYZ0Odjq+xUwh1fhLmRebG6qMM8OXHTPQ77nhl3wc1UTGRhZm6mzEionplSRx4GCpEMEHMJIU0w== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/link@^3.5.1", "@react-types/link@^3.5.2": - version "3.5.2" - resolved "https://registry.yarnpkg.com/@react-types/link/-/link-3.5.2.tgz#b363abca3365adc64b49c47163ce00235c01c667" - integrity sha512-/s51/WejmpLiyxOgP89s4txgxYoGaPe8pVDItVo1h4+BhU1Puyvgv/Jx8t9dPvo6LUXbraaN+SgKk/QDxaiirw== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/listbox@^3.4.6": - version "3.4.6" - resolved "https://registry.yarnpkg.com/@react-types/listbox/-/listbox-3.4.6.tgz#da0887dbb89a868d53b87486111bf0a51042da7b" - integrity sha512-XOQvrTqNh5WIPDvKiWiep8T07RAsMfjAXTjDbnjxVlKACUXkcwpts9kFaLnJ9LJRFt6DwItfP+WMkzvmx63/NQ== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/menu@^3.9.5", "@react-types/menu@^3.9.6": - version "3.9.6" - resolved "https://registry.yarnpkg.com/@react-types/menu/-/menu-3.9.6.tgz#1b36842cbdb4590dfff78437316aec4a3f47b1f6" - integrity sha512-w/RbFInOf4nNayQDv5c2L8IMJbcFOkBhsT3xvvpTy+CHvJcQdjggwaV1sRiw7eF/PwB81k2CwigmidUzHJhKDg== - dependencies: - "@react-types/overlays" "^3.8.4" - "@react-types/shared" "^3.22.0" - -"@react-types/overlays@^3.8.3", "@react-types/overlays@^3.8.4": - version "3.8.4" - resolved "https://registry.yarnpkg.com/@react-types/overlays/-/overlays-3.8.4.tgz#a538f6f2fb9826f1da78d3b4f0f6326a709ce37d" - integrity sha512-pfgNlQnbF6RB/R2oSxyqAP3Uzz0xE/k5q4n5gUeCDNLjY5qxFHGE8xniZZ503nZYw6VBa9XMN1efDOKQyeiO0w== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/progress@^3.5.0", "@react-types/progress@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@react-types/progress/-/progress-3.5.1.tgz#b988cd2d2ff194c7652d74f714b230f26ab73c6c" - integrity sha512-CqsUjczUK/SfuFzDcajBBaXRTW0D3G9S/yqLDj9e8E0ii+lGDLt1PHj24t1J7E88U2rVYqmM9VL4NHTt8o3IYA== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/radio@^3.5.2", "@react-types/radio@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@react-types/radio/-/radio-3.6.0.tgz#519e4aa40dbb2a13852a5a6f36299a84639376a5" - integrity sha512-VOZzegxxZS55gHRVyWu278Q4y/rEQGiAVQCUqi25GmpbMe4MlHrzg16c76RiZMUK9PPoyv+XNUgAaPmxebkn7g== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/select@^3.8.4", "@react-types/select@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@react-types/select/-/select-3.9.0.tgz#ddc1238194776ef161260547d25038409885ced8" - integrity sha512-0nalGmcoma4jreICLSJae/uKAuMiVyWgqWjGrGiUGGcdDchH4limKVEqNDaBwLvxVT6NB5LLsaipCTCAEEl4Rg== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/shared@^3.21.0", "@react-types/shared@^3.22.0": - version "3.22.0" - resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.22.0.tgz#70f85aad46cd225f7fcb29f1c2b5213163605074" - integrity sha512-yVOekZWbtSmmiThGEIARbBpnmUIuePFlLyctjvCbgJgGhz8JnEJOipLQ/a4anaWfzAgzSceQP8j/K+VOOePleA== - -"@react-types/slider@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@react-types/slider/-/slider-3.7.0.tgz#d9e4dbe1b2109c7accfcc0e2e330ff10cd3a837c" - integrity sha512-uyQXUVFfqc9SPUW0LZLMan2n232F/OflRafiHXz9viLFa9tVOupVa7GhASRAoHojwkjoJ1LjFlPih7g5dOZ0/Q== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/switch@^3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@react-types/switch/-/switch-3.5.0.tgz#8ebf07c60aef22b181eb4ab884cf3d2abddd66c6" - integrity sha512-/wNmUGjk69bP6t5k2QkAdrNN5Eb9Rz4dOyp0pCPmoeE+5haW6sV5NmtkvWX1NSc4DQz1xL/a5b+A0vxPCP22Jw== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/table@^3.9.0", "@react-types/table@^3.9.1": - version "3.9.1" - resolved "https://registry.yarnpkg.com/@react-types/table/-/table-3.9.1.tgz#5d1304d412bc7e637e832e86fcb8724e61c20735" - integrity sha512-3e+Oouw9jGqNDg+JRg7v7fgPqDZd6DtST9S/UPp81f32ntnQ8Wsu7S/J4eyLHu5CVQDqcHkf4xPeeXBgPx4qmw== - dependencies: - "@react-types/grid" "^3.2.3" - "@react-types/shared" "^3.22.0" - -"@react-types/tabs@^3.3.3", "@react-types/tabs@^3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@react-types/tabs/-/tabs-3.3.4.tgz#43fa93a4a67dcc53031afc56a8ad3bf5f44473a8" - integrity sha512-4mCTtFrwMRypyGTZCvNYVT9CkknexO/UYvqwDm2jMYb8JgjRvxnomu776Yh7uyiYKWyql2upm20jqasEOm620w== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/textfield@^3.8.1", "@react-types/textfield@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@react-types/textfield/-/textfield-3.9.0.tgz#ad29f0a70421f9d2cd6cf2795df10a7712954e69" - integrity sha512-D/DiwzsfkwlAg3uv8hoIfwju+zhB/hWDEdTvxQbPkntDr0kmN/QfI17NMSzbOBCInC4ABX87ViXLGxr940ykGA== - dependencies: - "@react-types/shared" "^3.22.0" - -"@react-types/tooltip@^3.4.5", "@react-types/tooltip@^3.4.6": - version "3.4.6" - resolved "https://registry.yarnpkg.com/@react-types/tooltip/-/tooltip-3.4.6.tgz#1f1eb22873a5d5ad355e0de1be46f48759b55f6f" - integrity sha512-RaZewdER7ZcsNL99RhVHs8kSLyzIBkwc0W6eFZrxST2MD9J5GzkVWRhIiqtFOd5U1aYnxdJ6woq72Ef+le6Vfw== - dependencies: - "@react-types/overlays" "^3.8.4" - "@react-types/shared" "^3.22.0" - "@rollup/plugin-commonjs@24.0.0": version "24.0.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-24.0.0.tgz#fb7cf4a6029f07ec42b25daa535c75b05a43f75c" @@ -7815,21 +6152,6 @@ dependencies: tslib "^2.4.0" -"@swc/helpers@^0.4.14": - version "0.4.36" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.36.tgz#fcfff76ed52c214f357e8e9d3f37b568908072d9" - integrity sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q== - dependencies: - legacy-swc-helpers "npm:@swc/helpers@=0.4.14" - tslib "^2.4.0" - -"@swc/helpers@^0.5.0": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.3.tgz#98c6da1e196f5f08f977658b80d6bd941b5f294f" - integrity sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A== - dependencies: - tslib "^2.4.0" - "@tailwindcss/typography@^0.5.9": version "0.5.9" resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.9.tgz#027e4b0674929daaf7c921c900beee80dbad93e8" @@ -10805,11 +9127,6 @@ clsx@2.0.0, clsx@^2.0.0: resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== -clsx@^1.1.1, clsx@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" - integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== - cmd-shim@5.0.0, cmd-shim@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" @@ -10907,11 +9224,6 @@ color-support@^1.1.2, color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color2k@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/color2k/-/color2k-2.0.2.tgz#ac2b4aea11c822a6bcb70c768b5a289f4fffcebb" - integrity sha512-kJhwH5nAwb34tmyuqq/lgjEKzlFXn1U99NlnB6Ws4qVaERcRUYeYP1cBw6BJ4vxaWStAUEef4WMr7WjOCnBt8w== - color@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" @@ -11112,11 +9424,6 @@ compute-scroll-into-view@^1.0.20: resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== -compute-scroll-into-view@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz#753f11d972596558d8fe7c6bcbc8497690ab4c87" - integrity sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -12164,7 +10471,7 @@ deep-is@^0.1.3, deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@4.3.1, deepmerge@^4.2.2, deepmerge@^4.3.1: +deepmerge@^4.2.2, deepmerge@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== @@ -14010,15 +12317,6 @@ fraction.js@^4.2.0: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.6.tgz#e9e3acec6c9a28cf7bc36cbe35eea4ceb2c5c92d" integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg== -framer-motion@^10.16.12: - version "10.16.12" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.16.12.tgz#8aca3ffa4801953dd873de422a3c1f78b2aa7bfa" - integrity sha512-w7Yzx0OzQ5Uh6uNkxaX+4TuAPuOKz3haSbjmHpdrqDpGuCJCpq6YP9Dy7JJWdZ6mJjndrg3Ao3vUwDajKNikCA== - dependencies: - tslib "^2.4.0" - optionalDependencies: - "@emotion/is-prop-valid" "^0.8.2" - fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -15383,16 +13681,6 @@ internal-slot@^1.0.4, internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" -intl-messageformat@^10.1.0: - version "10.5.8" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.8.tgz#7184da425f360a53a5483a6194e16d666b011fc0" - integrity sha512-NRf0jpBWV0vd671G5b06wNofAN8tp7WWDogMZyaU8GUAsmbouyvgwmFJI7zLjfAMpm3zK+vSwRP3jzaoIcMbaA== - dependencies: - "@formatjs/ecma402-abstract" "1.18.0" - "@formatjs/fast-memoize" "2.2.0" - "@formatjs/icu-messageformat-parser" "2.7.3" - tslib "^2.4.0" - into-stream@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702" @@ -16581,13 +14869,6 @@ lazy-ass@^1.6.0: resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== -"legacy-swc-helpers@npm:@swc/helpers@=0.4.14": - version "0.4.14" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74" - integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw== - dependencies: - tslib "^2.4.0" - lerna-changelog@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/lerna-changelog/-/lerna-changelog-2.2.0.tgz#c43813bba81e30cdeb20aabaef4da390f0f38e41" @@ -17145,16 +15426,6 @@ lodash.escaperegexp@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== -lodash.foreach@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" - integrity sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ== - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== - lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" @@ -17205,11 +15476,6 @@ lodash.map@^4.5.1: resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" integrity sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q== -lodash.mapkeys@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.mapkeys/-/lodash.mapkeys-4.6.0.tgz#df2cfa231d7c57c7a8ad003abdad5d73d3ea5195" - integrity sha512-0Al+hxpYvONWtg+ZqHpa/GaVzxuN3V7Xeo2p+bY06EaK/n+Y9R7nBePPN2o1LxmL0TWQSwP8LYZ008/hc9JzhA== - lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -17230,11 +15496,6 @@ lodash.mergewith@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== -lodash.omit@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" - integrity sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg== - lodash.once@^4.0.0, lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" @@ -20800,7 +19061,7 @@ react-redux@^7.2.0: prop-types "^15.7.2" react-is "^17.0.2" -react-remove-scroll-bar@^2.3.3, react-remove-scroll-bar@^2.3.4: +react-remove-scroll-bar@^2.3.3: version "2.3.4" resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz#53e272d7a5cb8242990c7f144c44d8bd8ab5afd9" integrity sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A== @@ -20830,17 +19091,6 @@ react-remove-scroll@2.5.5: use-callback-ref "^1.3.0" use-sidecar "^1.1.2" -react-remove-scroll@^2.5.6: - version "2.5.7" - resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz#15a1fd038e8497f65a695bf26a4a57970cac1ccb" - integrity sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA== - dependencies: - react-remove-scroll-bar "^2.3.4" - react-style-singleton "^2.2.1" - tslib "^2.1.0" - use-callback-ref "^1.3.0" - use-sidecar "^1.1.2" - react-style-singleton@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4" @@ -20850,15 +19100,6 @@ react-style-singleton@^2.2.1: invariant "^2.2.4" tslib "^2.0.0" -react-textarea-autosize@^8.5.2: - version "8.5.3" - resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz#d1e9fe760178413891484847d3378706052dd409" - integrity sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ== - dependencies: - "@babel/runtime" "^7.20.13" - use-composed-ref "^1.3.0" - use-latest "^1.2.1" - react@18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" @@ -21517,13 +19758,6 @@ scope-analyzer@^2.0.1: estree-is-function "^1.0.0" get-assigned-identifiers "^1.1.0" -scroll-into-view-if-needed@3.0.10: - version "3.0.10" - resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz#38fbfe770d490baff0fb2ba34ae3539f6ec44e13" - integrity sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg== - dependencies: - compute-scroll-into-view "^3.0.2" - scroll-into-view-if-needed@^2.2.20: version "2.2.31" resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" @@ -22651,13 +20885,6 @@ tailwind-merge@^1.14.0: resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-1.14.0.tgz#e677f55d864edc6794562c63f5001f45093cdb8b" integrity sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ== -tailwind-variants@^0.1.18: - version "0.1.18" - resolved "https://registry.yarnpkg.com/tailwind-variants/-/tailwind-variants-0.1.18.tgz#6ed75fe906ffb1ffa0db703e96d9994ea8cd48fc" - integrity sha512-yoydMYm3FbZRw7wak+E2sqwYv2Uo3YWRqVZR03DGqDGm0ytzDrEnWO/Q/GMHdhaz8adOvycKw/bwCgQFCfmfhg== - dependencies: - tailwind-merge "^1.14.0" - tailwindcss-animate@^1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz#318b692c4c42676cc9e67b19b78775742388bef4" @@ -23541,23 +21768,6 @@ use-callback-ref@^1.3.0: dependencies: tslib "^2.0.0" -use-composed-ref@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" - integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== - -use-isomorphic-layout-effect@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" - integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== - -use-latest@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2" - integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw== - dependencies: - use-isomorphic-layout-effect "^1.1.1" - use-memo-one@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.3.tgz#2fd2e43a2169eabc7496960ace8c79efef975e99" From 1335553e103b99999097c59d59bca823a67b64d0 Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Mon, 4 Dec 2023 11:33:25 +0200 Subject: [PATCH 36/44] fix:delete comments --- apps/web/tailwind.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/web/tailwind.config.js b/apps/web/tailwind.config.js index 5bda79491..9cbcbd3ba 100644 --- a/apps/web/tailwind.config.js +++ b/apps/web/tailwind.config.js @@ -8,7 +8,6 @@ module.exports = { './components/**/*.{ts,tsx}', './app/**/*.{ts,tsx}', './src/**/*.{ts,tsx}', - './node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}', join(__dirname, '{src,pages,components,lib}/**/*!(*.stories|*.spec).{ts,tsx,html}'), ...createGlobPatternsForDependencies(__dirname) ], From 05a9d4f9cc7e70f753c25a1e276b3f31f66d06ae Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Mon, 4 Dec 2023 22:54:15 +0200 Subject: [PATCH 37/44] fix: change task size on block view --- apps/web/lib/components/separator.tsx | 4 +-- apps/web/lib/features/task/task-displays.tsx | 10 +++++- .../features/team/user-team-block/index.tsx | 8 ++--- .../team/user-team-block/task-info.tsx | 8 ++--- .../user-team-block-header.tsx | 34 +++++++++++-------- 5 files changed, 37 insertions(+), 27 deletions(-) diff --git a/apps/web/lib/components/separator.tsx b/apps/web/lib/components/separator.tsx index 7c346140d..fb26b2f0c 100644 --- a/apps/web/lib/components/separator.tsx +++ b/apps/web/lib/components/separator.tsx @@ -7,8 +7,8 @@ export const VerticalSeparator = ({ className }: IClassName) => { export const HorizontalSeparator = ({ className }: IClassName) => { return ( -
    -
    +
    +
    ); }; diff --git a/apps/web/lib/features/task/task-displays.tsx b/apps/web/lib/features/task/task-displays.tsx index 5f2cff2b0..851bc7fea 100644 --- a/apps/web/lib/features/task/task-displays.tsx +++ b/apps/web/lib/features/task/task-displays.tsx @@ -9,9 +9,17 @@ type Props = { taskTitleClassName?: string; taskNumberClassName?: string; dash?: boolean; + showSize?: boolean; }; -export function TaskNameInfoDisplay({ task, className, taskTitleClassName, taskNumberClassName, dash = false }: Props) { +export function TaskNameInfoDisplay({ + task, + className, + taskTitleClassName, + taskNumberClassName, + dash = false, + showSize = false +}: Props) { return ( 60) || false}> diff --git a/apps/web/lib/features/team/user-team-block/index.tsx b/apps/web/lib/features/team/user-team-block/index.tsx index 326f8fcc4..9a32f634a 100644 --- a/apps/web/lib/features/team/user-team-block/index.tsx +++ b/apps/web/lib/features/team/user-team-block/index.tsx @@ -94,7 +94,7 @@ export function UserTeamBlock({ className, active, member, publicTeam = false }: > {/* flex */}
    -
    +
    {/* total time */} {totalWork} @@ -109,7 +109,7 @@ export function UserTeamBlock({ className, active, member, publicTeam = false }: @@ -124,7 +124,7 @@ export function UserTeamBlock({ className, active, member, publicTeam = false }: memberInfo={memberInfo} task={memberInfo.memberTask} isAuthUser={memberInfo.isAuthUser} - className="2xl:w-48 3xl:w-[12rem] w-full lg:px-4 px-2 flex flex-col gap-y-[1.125rem] justify-center" + className=" w-full px-2 flex flex-col gap-y-[1.125rem] justify-center" isBlock={true} /> {/* today time */} @@ -135,7 +135,7 @@ export function UserTeamBlock({ className, active, member, publicTeam = false }: edition={taskEdition} activeAuthTask={true} showTime={false} - className="w-1/5 lg:px-3 2xl:w-52 3xl:w-64" + className="w-1/5" radial={true} />
    diff --git a/apps/web/lib/features/team/user-team-block/task-info.tsx b/apps/web/lib/features/team/user-team-block/task-info.tsx index 3d8e73a5c..2438e9fba 100644 --- a/apps/web/lib/features/team/user-team-block/task-info.tsx +++ b/apps/web/lib/features/team/user-team-block/task-info.tsx @@ -29,17 +29,12 @@ export function TaskInfo({ className, memberInfo, edition, publicTeam }: Props) } export function TaskBlockInfo({ className, memberInfo, edition, publicTeam }: Props) { - const task = edition.task; - return (
    {/* task */}
    {edition.task && ( - <> - -

    {task?.size}

    - + )} {!edition.task &&
    --
    }
    @@ -74,6 +69,7 @@ function TaskDetailAndEdition({ edition, publicTeam }: Props) { onClick={publicTeam ? () => null : () => task && router.push(`/task/${task?.id}`)} > setActiveFilter('all')} >

    All members

    {members?.length} @@ -87,14 +88,14 @@ export function UserTeamBlockHeader() {

    Not working

    {membersStatusNumber.idle} @@ -103,21 +104,23 @@ export function UserTeamBlockHeader() {
    setActiveFilter('running')} >

    Working

    {membersStatusNumber.running} @@ -126,21 +129,23 @@ export function UserTeamBlockHeader() {
    setActiveFilter('pause')} >

    Paused

    {membersStatusNumber.pause} @@ -149,21 +154,22 @@ export function UserTeamBlockHeader() {
    setActiveFilter('online')} >

    Online

    {membersStatusNumber.online} From a6b1d7e75e0602a31fb4336a79d6364e3d654b3c Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Mon, 4 Dec 2023 23:06:36 +0200 Subject: [PATCH 38/44] fix: change filters colors on block view --- .../team/user-team-block/user-team-block-header.tsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/web/lib/features/team/user-team-block/user-team-block-header.tsx b/apps/web/lib/features/team/user-team-block/user-team-block-header.tsx index 0f919b897..49e5705d2 100644 --- a/apps/web/lib/features/team/user-team-block/user-team-block-header.tsx +++ b/apps/web/lib/features/team/user-team-block/user-team-block-header.tsx @@ -65,7 +65,7 @@ export function UserTeamBlockHeader() {

    All members

    @@ -88,7 +88,7 @@ export function UserTeamBlockHeader() {

    Not working

    @@ -113,7 +113,7 @@ export function UserTeamBlockHeader() { className={clsxm( 'w-8 h-8 p-1 !text-dark/80 !fill-dark/80 !dark:text-gray-200', activeFilter == 'running' && - '!text-primary !fill-primary dark:border-white dark:text-white' + '!text-primary !fill-primary dark:text-white dark:!fill-none' )} />

    Working

    @@ -138,7 +138,7 @@ export function UserTeamBlockHeader() { className={clsxm( 'w-8 h-8 p-1 !text-dark/80 !fill-dark/80 !dark:text-gray-200', activeFilter == 'pause' && - '!text-primary !fill-primary dark:border-white dark:text-white' + '!text-primary !fill-primary dark:text-white dark:!fill-none' )} />

    Paused

    @@ -162,7 +162,8 @@ export function UserTeamBlockHeader() {

    Online

    From 3e7330fcf4b78d392117e53732a20a9ff3102ca3 Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Tue, 5 Dec 2023 12:09:52 +0200 Subject: [PATCH 39/44] refact: invite people block --- apps/web/lib/features/task/task-times.tsx | 2 +- .../lib/features/team-members-table-view.tsx | 26 +++++++++---------- .../features/team/invite/user-invite-card.tsx | 3 +-- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/apps/web/lib/features/task/task-times.tsx b/apps/web/lib/features/task/task-times.tsx index 12e703c23..748b7b388 100644 --- a/apps/web/lib/features/task/task-times.tsx +++ b/apps/web/lib/features/task/task-times.tsx @@ -101,7 +101,7 @@ function TimeBlockInfo({ }) { const { t } = useTranslation(); return ( -
    +
    {showDaily && (
    {t('common.TODAY')}: diff --git a/apps/web/lib/features/team-members-table-view.tsx b/apps/web/lib/features/team-members-table-view.tsx index 2d5e939bf..601e774a2 100644 --- a/apps/web/lib/features/team-members-table-view.tsx +++ b/apps/web/lib/features/team-members-table-view.tsx @@ -55,8 +55,6 @@ const TeamMembersTableView = ({ [] ); - const footerRows = React.useMemo(() => [], []); - const sortedTeamMembers: OT_Member[] = []; if (currentUser) { sortedTeamMembers.push(currentUser); @@ -64,15 +62,17 @@ const TeamMembersTableView = ({ sortedTeamMembers.push(...teamMembers); return ( - []} - data={sortedTeamMembers} - footerRows={footerRows} - noResultsMessage={{ - heading: 'No team members found', - content: 'Try adjusting your search or filter to find what you’re looking for.' - }} - /> + <> + []} + data={sortedTeamMembers} + noResultsMessage={{ + heading: 'No team members found', + content: 'Try adjusting your search or filter to find what you’re looking for.' + }} + /> + + ); }; @@ -81,10 +81,10 @@ function Invite() { const { openModal, isOpen, closeModal } = useModal(); return ( - <> +
    - +
    ); } diff --git a/apps/web/lib/features/team/invite/user-invite-card.tsx b/apps/web/lib/features/team/invite/user-invite-card.tsx index 887c22643..69ae278be 100644 --- a/apps/web/lib/features/team/invite/user-invite-card.tsx +++ b/apps/web/lib/features/team/invite/user-invite-card.tsx @@ -217,7 +217,7 @@ export function InviteUserTeamCard({ shadow="bigger" className={clsxm( 'relative hidden sm:flex items-center py-3 min-h-[7rem] dark:bg-[#1E2025] border-[0.1875rem] border-transparent', - 'dark:border dark:border-[#FFFFFF14]', + 'dark:border dark:border-[#FFFFFF14] w-full', className )} > @@ -225,7 +225,6 @@ export function InviteUserTeamCard({
    - {/* Show user name, email and image */}
    From 38142b8b669a5dfbafefc0825296ec16511deedc Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Tue, 5 Dec 2023 15:13:15 +0200 Subject: [PATCH 40/44] fix: block view filters --- apps/web/lib/features/task/task-displays.tsx | 5 +- .../lib/features/team-members-block-view.tsx | 2 +- apps/web/lib/features/team-members.tsx | 13 +-- .../features/team/user-team-block/index.tsx | 13 ++- .../user-team-block-header.tsx | 83 ++++++++++--------- 5 files changed, 61 insertions(+), 55 deletions(-) diff --git a/apps/web/lib/features/task/task-displays.tsx b/apps/web/lib/features/task/task-displays.tsx index 851bc7fea..712d9f14a 100644 --- a/apps/web/lib/features/task/task-displays.tsx +++ b/apps/web/lib/features/task/task-displays.tsx @@ -37,7 +37,10 @@ export function TaskNameInfoDisplay({ #{task?.taskNumber} {dash && '-'} - {task?.title.slice(0, 90)} + {task?.title}{' '} + {showSize && ( + {'^ ' + task?.size?.slice(0, 2).toUpperCase()} + )} diff --git a/apps/web/lib/features/team-members-block-view.tsx b/apps/web/lib/features/team-members-block-view.tsx index 15ea1b023..59b357d04 100644 --- a/apps/web/lib/features/team-members-block-view.tsx +++ b/apps/web/lib/features/team-members-block-view.tsx @@ -25,7 +25,7 @@ const TeamMembersBlockView: React.FC = ({ teamMembers: members, publicTea > {/* */} -
    +
    {members.map((member) => { return (
    diff --git a/apps/web/lib/features/team-members.tsx b/apps/web/lib/features/team-members.tsx index 65ad2a626..b5212fed2 100644 --- a/apps/web/lib/features/team-members.tsx +++ b/apps/web/lib/features/team-members.tsx @@ -18,12 +18,13 @@ type TeamMembersProps = { export function TeamMembers({ publicTeam = false, kanbanView: view = IssuesView.CARDS }: TeamMembersProps) { const { user } = useAuthenticateUser(); const activeFilter = useRecoilValue(taskBlockFilterState); - const { activeTeam, teamsFetching } = useOrganizationTeams(); + const { activeTeam } = useOrganizationTeams(); + const { teamsFetching } = useOrganizationTeams(); + const members = activeTeam?.members || []; + + const blockViewMembers = + activeFilter == 'all' ? members : members.filter((m) => m.timerStatus == activeFilter) || []; - const members = - activeFilter == 'all' - ? activeTeam?.members || [] - : activeTeam?.members.filter((m) => m.timerStatus == activeFilter) || []; const currentUser = members.find((m) => m.employee.userId === user?.id); const $members = members.filter((member) => member.id !== currentUser?.id); const $teamsFetching = teamsFetching && members.length === 0; @@ -80,7 +81,7 @@ export function TeamMembers({ publicTeam = false, kanbanView: view = IssuesView. case view == IssuesView.BLOCKS: teamMembersView = ( +
    {t('common.TOTAL_TIME')}: {h}h : {m}m @@ -87,20 +87,19 @@ export function UserTeamBlock({ className, active, member, publicTeam = false }: {/* flex */}
    -
    - - {/* total time */} + + {/* total time */} +
    {totalWork} +
    {menu}
    - {/* more */} -
    {menu}
    diff --git a/apps/web/lib/features/team/user-team-block/user-team-block-header.tsx b/apps/web/lib/features/team/user-team-block/user-team-block-header.tsx index 49e5705d2..b0eb102ef 100644 --- a/apps/web/lib/features/team/user-team-block/user-team-block-header.tsx +++ b/apps/web/lib/features/team/user-team-block/user-team-block-header.tsx @@ -56,125 +56,128 @@ export function UserTeamBlockHeader() {
    setActiveFilter('all')} >

    All members

    -
    {members?.length} -
    +
    setActiveFilter('idle')} >

    Not working

    -
    {membersStatusNumber.idle} -
    +
    setActiveFilter('running')} >

    Working

    -
    {membersStatusNumber.running} -
    +
    setActiveFilter('pause')} >

    Paused

    -
    {membersStatusNumber.pause} -
    +
    setActiveFilter('online')} >

    Online

    -
    {membersStatusNumber.online} -
    +
    From 7b4426014d692f1dde7085f6691c77812c10991a Mon Sep 17 00:00:00 2001 From: cedric karungu Date: Wed, 6 Dec 2023 16:44:43 +0200 Subject: [PATCH 41/44] feat: display task size symbol on block view --- apps/web/lib/features/task/task-displays.tsx | 24 +++++++++++++++---- .../lib/features/team-members-block-view.tsx | 20 ++++++++++++++++ apps/web/pages/index.tsx | 4 ++-- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/apps/web/lib/features/task/task-displays.tsx b/apps/web/lib/features/task/task-displays.tsx index 712d9f14a..01c05d44a 100644 --- a/apps/web/lib/features/task/task-displays.tsx +++ b/apps/web/lib/features/task/task-displays.tsx @@ -12,6 +12,14 @@ type Props = { showSize?: boolean; }; +const taskSizeColor = { + 'x-large': { color: 'text-red-700', short: 'XXL' }, + large: { color: 'text-orange-700', short: 'XL' }, + medium: { color: 'text-yellow-500', short: 'M' }, + small: { color: 'text-blue-700', short: 'S' }, + tiny: { color: 'text-blue-500', short: 'XS' } +}; + export function TaskNameInfoDisplay({ task, className, @@ -20,6 +28,16 @@ export function TaskNameInfoDisplay({ dash = false, showSize = false }: Props) { + const size = + task && task?.size && ['x-large', 'large', 'medium', 'small', 'tiny'].includes(task?.size.toLowerCase()) + ? task?.size.toLowerCase() + : 'medium'; + + // @ts-expect-error + const color: string = taskSizeColor[size].color; + // @ts-expect-error + const short: string = taskSizeColor[size].short; + console.log(task?.size); return ( 60) || false}> @@ -37,10 +55,8 @@ export function TaskNameInfoDisplay({ #{task?.taskNumber} {dash && '-'} - {task?.title}{' '} - {showSize && ( - {'^ ' + task?.size?.slice(0, 2).toUpperCase()} - )} + {task?.title} + {showSize && {size && ' ' + short}} diff --git a/apps/web/lib/features/team-members-block-view.tsx b/apps/web/lib/features/team-members-block-view.tsx index 59b357d04..4ca828133 100644 --- a/apps/web/lib/features/team-members-block-view.tsx +++ b/apps/web/lib/features/team-members-block-view.tsx @@ -2,6 +2,7 @@ import * as React from 'react'; import { OT_Member } from '@app/interfaces'; import { Transition } from '@headlessui/react'; import { UserTeamBlock } from './team/user-team-block'; +import UserTeamCardSkeletonCard from '@components/shared/skeleton/UserTeamCardSkeleton'; interface Props { teamMembers: OT_Member[]; @@ -45,6 +46,25 @@ const TeamMembersBlockView: React.FC = ({ teamMembers: members, publicTea ); })}
    +
    + + {new Array(3).fill(0).map((_, i) => { + return ( +
    + +
    + ); + })} +
    +
    ); }; diff --git a/apps/web/pages/index.tsx b/apps/web/pages/index.tsx index 81183b5ef..b92efd53f 100644 --- a/apps/web/pages/index.tsx +++ b/apps/web/pages/index.tsx @@ -45,7 +45,7 @@ function MainPage() { )} onClick={() => setView(IssuesView.CARDS)} > - +