diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e03a956 --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +NEXT_PUBLIC_API_KEY= +NEXT_PUBLIC_API_URL=https://api.hgbrasil.com +NEXT_PUBLIC_API_CACHE=force-cache +NEXT_PUBLIC_API_REVALIDATE=3600 diff --git a/.eslintrc.json b/.eslintrc.json index 165a9ff..2662c43 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,3 +1,9 @@ { - "extends": ["next/core-web-vitals", "@rocketseat/eslint-config/react"] + "extends": ["@rocketseat/eslint-config/react", "plugin:@next/next/recommended", "plugin:cypress/recommended"], + "rules" : { + "@typescript-eslint/no-explicit-any": "off" + }, + "globals": { + "cy": true + } } diff --git a/.gitignore b/.gitignore index c87c9b3..1f244a4 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,6 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts + +src/styles/output.css +.env diff --git a/.old/Card.tsx b/.old/Card.tsx deleted file mode 100644 index 408b8db..0000000 --- a/.old/Card.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { Card as CardComponent, Metric, Text } from '@tremor/react' - -interface Props { - title: string - type: 'percent' | 'currency' | 'number' - value: number -} - -export function Card({ title, type, value }: Props) { - let valueText = '' - - switch (type) { - case 'currency': - valueText = `R$ ${value}` - break - - case 'percent': - valueText = `${value}%` - break - - case 'number': - valueText = `${value}` - break - } - - return ( - - {title} - {valueText} - - ) -} diff --git a/.old/HistoryChart.tsx b/.old/HistoryChart.tsx deleted file mode 100644 index 446b856..0000000 --- a/.old/HistoryChart.tsx +++ /dev/null @@ -1,43 +0,0 @@ -'use client' - -import { DividendsData } from '@/@types/QuotesTypes' -import { Card, Title, BarChart } from '@tremor/react' -import moment from 'moment' - -const dataFormatter = (number: number) => - `R$ ${Intl.NumberFormat('pt-BR').format(number).toString()}` - -const getHistoryDividendsData = (data: DividendsData) => { - return data.cashDividends - .filter((dividend) => dividend.label === 'RENDIMENTO') - .map((dividend) => { - return { - ...dividend, - paymentDate: moment(dividend.paymentDate).format('MM/YYYY'), - } - }) - .reverse() -} - -interface Props { - data: DividendsData -} - -export function HistoryChart(props: Props) { - const data = getHistoryDividendsData(props.data) - - return ( - - Dividendos pagos últimos 12 meses - - - ) -} diff --git a/.old/ResultsProviders.tsx b/.old/ResultsProviders.tsx deleted file mode 100644 index 1eb407f..0000000 --- a/.old/ResultsProviders.tsx +++ /dev/null @@ -1,54 +0,0 @@ -// 'use client' - -// import { ReactNode, useEffect, useState } from 'react' - -// import { ResultsContext } from '@/contexts/ResultsContext' -// import { Result } from '@/@types/ResultsTypes' -// import { Ticker } from '@/@types/TickersTypes' -// import { useTickers } from '@/hooks/useTickers' -// import { fetchTicker } from '@/helpers/tickers' - -// export function ResultsProviders({ children }: { children: ReactNode }) { - -// const [results, setResults] = useState([]) -// const { tickers } = useTickers() - -// const get = (ticker: string): Result => { -// return results.find((r) => r.ticker === ticker) || {} as Result -// } - -// const load = async (tickers: Ticker[]) => { -// console.log('loading results...', tickers); - -// const newResults: Result[] = [] -// Promise.allSettled(tickers.map((t) => fetchTicker(t.ticker))) -// .then((responses) => { -// responses.forEach((response) => { -// if (response.status === 'fulfilled') { -// newResults.push(response.value) -// } -// }) -// }) -// .finally(() => { -// setResults(newResults) -// console.log('results loaded', newResults); -// }) - -// } - -// useEffect(() => { -// load(tickers) -// }, [tickers]) - -// return ( -// -// {children} -// -// ) -// } diff --git a/.old/fiis/[ticket]/page.tsx b/.old/fiis/[ticket]/page.tsx deleted file mode 100644 index 364a4c0..0000000 --- a/.old/fiis/[ticket]/page.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { HistoryChart } from '@/components/HistoryChart' -import { getQuote } from '@/helpers/getQuote' -import { Card } from '@/components/Card' -import { getPVP } from '@/helpers/getPVP' -import { getDY } from '@/helpers/getDY' -import { getLastDY } from '@/helpers/getLastDY' - -interface AnalisesProps { - params: { - ticket: string - } -} - -export default async function PageFiis({ params }: AnalisesProps) { - const data = await getQuote(params.ticket) - - const pvp = getPVP( - data.valuePatrimonial, - data.totalCotas, - data.regularMarketPrice, - ) - - const dy = getDY(data.dividendsData, data.regularMarketPrice) - const lastDy = getLastDY(data.dividendsData) - const volume = data.averageDailyVolume10Day - - return ( - <> -

{data.symbol}

-

{data.longName}

- -
- - - - - -
- - - {/* */} - - {/*
{JSON.stringify(data, null, 2)}
*/} - - ) -} diff --git a/.old/getPVP.ts b/.old/getPVP.ts deleted file mode 100644 index 18ac1ac..0000000 --- a/.old/getPVP.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { round } from 'lodash' - -export const getPVP = ( - valuePatrimonial: number, - totalCotas: number, - regularMarketPrice: number, -) => { - if (totalCotas === 0) { - throw new Error('Não foi possível calcular o PVP!') - } - - console.log(valuePatrimonial, regularMarketPrice) - - return round(regularMarketPrice / (valuePatrimonial / totalCotas), 2) -} diff --git a/.old/getQuote.ts b/.old/getQuote.ts deleted file mode 100644 index 7d9c394..0000000 --- a/.old/getQuote.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { brAPI } from './api/brapi' -import { investidor10 } from './api/investidor10' - -export const getQuote = async (ticket: string) => { - const result = await brAPI(ticket) - const company = await investidor10(ticket) - - return { ...result, ...company } -} diff --git a/.old/selic/page.tsx b/.old/selic/page.tsx deleted file mode 100644 index 67eac2c..0000000 --- a/.old/selic/page.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { config } from '@/config' - -export default async function PageSelic() { - const response = await fetch( - `${config.api.host}/api/v2/prime-rate?country=brazil&historical=true&start=01%2F01%2F2022&end=31%2F12%2F2023&sortBy=date&sortOrder=desc`, - { - cache: 'no-store', - }, - ) - - const selic = await response.json() - - return ( - <> -

Selic

-
{JSON.stringify(selic, null, 2)}
- - ) -} diff --git a/README.md b/README.md index 9e31fb6..e9b4ba3 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,50 @@ -## Getting Started +## Requisitos +Para executar este projeto, você precisará ter instalado: +- [Node.js - v18](https://nodejs.org/en/) +- [Docker - v24](https://www.docker.com/) -First, run the development server: +## Primeiros Passos +Para começar, instale as dependências e execute o servidor de desenvolvimento: + +```bash npm install npm run dev +``` +Isso iniciará o servidor de desenvolvimento, permitindo que você trabalhe no projeto. +## Executar o Servidor Mock +Para executar o servidor mock, que estará disponível em http://localhost:1080, utilize o seguinte comando: +```bash +docker compose up +``` + +## Testes Unitários +Para executar os testes unitários, use os comandos a seguir: + +```bash +npm run test +npm run test:watch +``` + +## Testes End-to-End (e2e) +Execute os testes end-to-end com o comando: + +```bash +npm run test:e2e +``` + +## Build da Aplicação +Para gerar o build da aplicação, utilize o seguinte comando: + +```bash +npm run build +``` + +## Análise de Código (Lint) +Para realizar a análise de código e garantir conformidade com as práticas recomendadas, execute: + +```bash +npm run lint +``` \ No newline at end of file diff --git a/cypress.config.ts b/cypress.config.ts new file mode 100644 index 0000000..172755a --- /dev/null +++ b/cypress.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from 'cypress' +import { readFile } from 'fs/promises' + +export default defineConfig({ + screenshotOnRunFailure: false, + chromeWebSecurity: false, + video: false, + + e2e: { + baseUrl: 'http://localhost:3000', + viewportWidth: 1200, + viewportHeight: 800, + }, + + env: {}, +}) diff --git a/cypress/e2e/sidebar.spec.cy.ts b/cypress/e2e/sidebar.spec.cy.ts new file mode 100644 index 0000000..974e00e --- /dev/null +++ b/cypress/e2e/sidebar.spec.cy.ts @@ -0,0 +1,23 @@ +describe('sidebar', () => { + it('test menu link to home', () => { + cy.visit('/simulator') + cy.acceptTermsOfUse() + + cy.get('[href="/"][data-testid="sidebar-menu-item"]') + .should('be.visible') + .click() + + cy.url().should('eq', Cypress.config().baseUrl + '/') + }) + + it('test menu link to simulator', () => { + cy.visit('/') + cy.acceptTermsOfUse() + + cy.get('[href="/simulator"][data-testid="sidebar-menu-item"]') + .should('be.visible') + .click() + + cy.url().should('eq', Cypress.config().baseUrl + '/simulator') + }) +}) diff --git a/cypress/e2e/simulator.spec.cy.ts b/cypress/e2e/simulator.spec.cy.ts new file mode 100644 index 0000000..526f928 --- /dev/null +++ b/cypress/e2e/simulator.spec.cy.ts @@ -0,0 +1,20 @@ +describe('simulator', () => { + it('execute simulation with successfully', () => { + cy.visit('/simulator') + cy.acceptTermsOfUse() + + cy.simulate() + + cy.get('[data-testid="simulator-total-invested"]') + .should('be.visible') + .should('contain', 'R$ 185.000,00') + + cy.get('[data-testid="simulator-total-received"]') + .should('be.visible') + .should('contain', 'R$ 569.588,58') + + cy.get('[data-testid="simulator-total-accumulated"]') + .should('be.visible') + .should('contain', 'R$ 754.588,58') + }) +}) diff --git a/cypress/e2e/suggestions.spec.cy.ts b/cypress/e2e/suggestions.spec.cy.ts new file mode 100644 index 0000000..689f598 --- /dev/null +++ b/cypress/e2e/suggestions.spec.cy.ts @@ -0,0 +1,8 @@ +// describe('suggestions', () => { +// it('add ticker from suggestions card', () => { +// cy.visit('/') +// cy.acceptTermsOfUse() + +// cy.get('[data-testid="suggestions-card"] > :nth-child(1) > button').click() +// }) +// }) diff --git a/cypress/e2e/term.spec.cy.ts b/cypress/e2e/term.spec.cy.ts new file mode 100644 index 0000000..25c7d4d --- /dev/null +++ b/cypress/e2e/term.spec.cy.ts @@ -0,0 +1,12 @@ +describe('terms of use', () => { + it('show modal', () => { + cy.visit('/') + cy.contains('Termos de uso').should('be.visible') + cy.contains('Aceitar e continuar navegando').should('be.visible') + }) + + it('accept and close modal', () => { + cy.visit('/') + cy.acceptTermsOfUse() + }) +}) diff --git a/cypress/e2e/tickers.spec.cy.ts b/cypress/e2e/tickers.spec.cy.ts new file mode 100644 index 0000000..57cbd67 --- /dev/null +++ b/cypress/e2e/tickers.spec.cy.ts @@ -0,0 +1,103 @@ +describe('tickers', () => { + it('add tickers to portfolio', () => { + cy.visit('/') + cy.acceptTermsOfUse() + cy.addTicker('XPLG11') + }) + + it('remove tickers from portfolio', () => { + cy.visit('/') + cy.acceptTermsOfUse() + cy.addTicker('XPLG11') + + cy.get('[data-testid="btn-remove-ticker-XPLG11"]') + .should('be.visible') + .click() + }) + + it('hide and show tickers', () => { + cy.visit('/') + cy.acceptTermsOfUse() + + cy.get('.tremor-MultiSelectBox-text').click() + cy.get('.bg-gray-50 > .w-full').type('XPLG11') + cy.get('.tremor-MultiSelectBoxItem-checkbox').click() + cy.get('body').type('{esc}') + + cy.get('[data-testid="button-add-ticker"]').click() + + cy.get('[data-testid="btn-visibility-ticker-XPLG11"]') + .should('be.visible') + .click() + + cy.get('[data-testid="btn-visibility-ticker-XPLG11"]') + .should('be.visible') + .click() + }) + + it('show tickers details', () => { + cy.visit('/') + cy.acceptTermsOfUse() + cy.addTicker('XPLG11') + + // ticker + cy.get('[data-testid="row-ticker-XPLG11"] > :nth-child(2)') + .should('be.visible') + .should('contain', 'XPLG11') + + // price + cy.get('[data-testid="row-ticker-XPLG11"] > :nth-child(3)') + .should('be.visible') + .should('contain', 'R$ 107,00') + + // pvp + cy.get('[data-testid="row-ticker-XPLG11"] > :nth-child(4)') + .should('be.visible') + .should('contain', '1.05') + + // dy + cy.get('[data-testid="row-ticker-XPLG11"] > :nth-child(5)') + .should('be.visible') + .should('contain', '8.5%') + + // dividend + cy.get('[data-testid="row-ticker-XPLG11"] > :nth-child(6)') + .should('be.visible') + .should('contain', 'R$ 0,74') + + // sum dividend last 12 months + cy.get('[data-testid="row-ticker-XPLG11"] > :nth-child(7)') + .should('be.visible') + .should('contain', 'R$ 9,10') + }) + + it('show error when ticker not found', () => { + cy.visit('/') + cy.acceptTermsOfUse() + cy.addTicker('XPLG11') + + cy.addTicker('KNCA11') + cy.get('[data-testid="row-ticker-KNCA11"]').should( + 'contain', + 'Infelizmente ocorreu um erro ao tentar carregar os dados desse ativo!', + ) + }) + + it('disable visibility button when ticker not found', () => { + cy.visit('/') + cy.acceptTermsOfUse() + + cy.addTicker('KNCA11') + cy.get('[data-testid="btn-visibility-ticker-KNCA11"]').should('be.disabled') + }) + + it('remove ticker when ticker not found', () => { + cy.visit('/') + cy.acceptTermsOfUse() + + cy.addTicker('KNCA11') + cy.get('[data-testid="btn-remove-ticker-KNCA11"]') + .should('be.visible') + .click() + }) +}) diff --git a/cypress/e2e/toast.spec.cy.ts b/cypress/e2e/toast.spec.cy.ts new file mode 100644 index 0000000..d43570a --- /dev/null +++ b/cypress/e2e/toast.spec.cy.ts @@ -0,0 +1,14 @@ +describe('toast', () => { + it('show toast when add ticker', () => { + cy.visit('/') + cy.acceptTermsOfUse() + + cy.addTicker('XPLG11') + + const toast = + '.Toastify .Toastify__toast-container > .Toastify__toast--success' + + cy.get(toast).should('be.visible') + cy.get(toast).should('not.be.visible') + }) +}) diff --git a/cypress/e2e/tooltip.spec.cy.ts b/cypress/e2e/tooltip.spec.cy.ts new file mode 100644 index 0000000..6628d23 --- /dev/null +++ b/cypress/e2e/tooltip.spec.cy.ts @@ -0,0 +1,61 @@ +describe('tooltip', () => { + it('open and close tooltip ticker', () => { + cy.visit('/') + cy.acceptTermsOfUse() + + cy.get('[data-testid="header-portfolio"] > :nth-child(2) button').click() + cy.get('[data-testid="title"]').should('contain', 'Papel') + + cy.get('[data-testid="close-btn"] > .tremor-Button-text').click() + }) + + it('open and close tooltip price', () => { + cy.visit('/') + cy.acceptTermsOfUse() + + cy.get('[data-testid="header-portfolio"] > :nth-child(3) button').click() + cy.get('[data-testid="title"]').should('contain', 'Valor Atual') + + cy.get('[data-testid="close-btn"] > .tremor-Button-text').click() + }) + + it('open and close tooltip pvp', () => { + cy.visit('/') + cy.acceptTermsOfUse() + + cy.get('[data-testid="header-portfolio"] > :nth-child(4) button').click() + cy.get('[data-testid="title"]').should('contain', 'PV/P') + + cy.get('[data-testid="close-btn"] > .tremor-Button-text').click() + }) + + it('open and close tooltip dy', () => { + cy.visit('/') + cy.acceptTermsOfUse() + + cy.get('[data-testid="header-portfolio"] > :nth-child(5) button').click() + cy.get('[data-testid="title"]').should('contain', 'DY 12M') + + cy.get('[data-testid="close-btn"] > .tremor-Button-text').click() + }) + + it('open and close tooltip dividens', () => { + cy.visit('/') + cy.acceptTermsOfUse() + + cy.get('[data-testid="header-portfolio"] > :nth-child(6) button').click() + cy.get('[data-testid="title"]').should('contain', 'Últ. Rend.') + + cy.get('[data-testid="close-btn"] > .tremor-Button-text').click() + }) + + it('open and close tooltip dividens last 12 months', () => { + cy.visit('/') + cy.acceptTermsOfUse() + + cy.get('[data-testid="header-portfolio"] > :nth-child(7) button').click() + cy.get('[data-testid="title"]').should('contain', 'Últ. Rend. 12M') + + cy.get('[data-testid="close-btn"] > .tremor-Button-text').click() + }) +}) diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts new file mode 100644 index 0000000..94bb012 --- /dev/null +++ b/cypress/support/commands.ts @@ -0,0 +1,41 @@ +/// +// *********************************************** + +Cypress.Commands.add('acceptTermsOfUse' as any, () => { + cy.contains('Aceitar e continuar navegando').click() + cy.contains('Termos de uso').should('not.exist') +}) + +Cypress.Commands.add('addTicker' as any, (ticker) => { + cy.get('.tremor-MultiSelectBox-text').click() + cy.get('.bg-gray-50 > .w-full').type(ticker as string) + cy.get('.tremor-MultiSelectBoxItem-checkbox').click() + cy.get('body').type('{esc}') + + cy.get('[data-testid="button-add-ticker"]').click() + cy.get(`[data-testid="row-ticker-${ticker as string}"]`).should('be.visible') +}) + +Cypress.Commands.add('simulate' as any, () => { + cy.get('[data-testid^="simulator-input"]').each(($el) => { + cy.wrap($el).clear() + const field = $el.attr('data-testid')?.replace('simulator-input-', '') + + switch (field) { + case 'initial': + cy.wrap($el).type('5000.00') + break + case 'investment': + cy.wrap($el).type('500.00') + break + case 'taxes': + cy.wrap($el).type('8.00') + break + case 'months': + cy.wrap($el).type('360') + break + } + }) + + cy.get('[data-testid="simulator-submit"]').click() +}) diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts new file mode 100644 index 0000000..43c03b7 --- /dev/null +++ b/cypress/support/e2e.ts @@ -0,0 +1 @@ +import './commands' diff --git a/cypress/support/index.d.ts b/cypress/support/index.d.ts new file mode 100644 index 0000000..7012326 --- /dev/null +++ b/cypress/support/index.d.ts @@ -0,0 +1,12 @@ +/// +export {} + +declare global { + namespace Cypress { + interface Chainable { + simulate(): Chainable + acceptTermsOfUse(): Chainable + addTicker(ticker: string): Chainable + } + } +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..3e34b62 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3" +services: + mock-server: + image: mockserver/mockserver:5.15.0 + ports: + - 1080:1080 + environment: + MOCKSERVER_PROPERTY_FILE: /config/mockserver.properties + MOCKSERVER_INITIALIZATION_JSON_PATH: /config/initializer.json + volumes: + - "./mock-server/config:/config" \ No newline at end of file diff --git a/mock-server/config/initializer.json b/mock-server/config/initializer.json new file mode 100644 index 0000000..a52acda --- /dev/null +++ b/mock-server/config/initializer.json @@ -0,0 +1,718 @@ +[ + { + "httpRequest": { + "method": "GET", + "path": "/finance/stock_price", + "queryStringParameters": { + "symbol": ["XPLG11"], + "key": [".*"], + "format": ["json-cors"] + } + }, + "httpResponse": { + "statusCode": 200, + "headers" : { + "Content-Type" : [ "application/json" ] + }, + "body": { + "by": "symbol", + "valid_key": true, + "results": { + "XPLG11": { + "kind": "fii", + "symbol": "XPLG11", + "name": "XP Log", + "company_name": "Fundo Investimento Imobiliario FII", + "document": "00.000.000/0001-00", + "description": "Financeiro e Outros/Fundos/Fundos Imobiliários", + "website": "https://vortx.com.br/", + "sector": "Imóveis Industriais e Logísticos", + "financials": { + "equity": 3017112409, + "quota_count": 29614675, + "equity_per_share": 101.879, + "price_to_book_ratio": 1.05, + "dividends": { + "yield_12m": 8.505, + "yield_12m_sum": 9.1 + } + }, + "region": "Brazil/Sao Paulo", + "currency": "BRL", + "market_time": { + "open": "10:00", + "close": "17:30", + "timezone": -3 + }, + "logo": null, + "market_cap": 3168.77, + "price": 107.0, + "change_percent": -0.66, + "change_price": -0.71, + "updated_at": "2023-11-21 18:06:00" + } + }, + "execution_time": 0.01, + "from_cache": false + } + } + }, + { + "httpRequest": { + "method": "GET", + "path": "/finance/historical/stocks", + "queryStringParameters": { + "days_ago": ["20"], + "symbol": ["XPLG11"], + "key": [".*"], + "format": ["json-cors"] + } + }, + "httpResponse": { + "statusCode": 200, + "headers" : { + "Content-Type" : [ "application/json" ] + }, + "body": { + "by": "days_ago", + "mode": "all", + "valid_key": true, + "results": { + "2023-11-21": { + "XPLG11": { + "10:22": 108.06, + "10:39": 108.56, + "11:10": 108.28, + "11:31": 107.99, + "11:51": 107.75, + "12:11": 107.75, + "12:30": 107.8, + "12:50": 107.59, + "13:10": 107.66, + "13:31": 107.75, + "13:51": 107.88, + "14:11": 107.78, + "14:31": 107.75, + "14:50": 107.65, + "14:55": 107.65, + "15:31": 107.78, + "15:51": 107.66, + "16:11": 107.58, + "16:30": 107.78, + "16:51": 107.47, + "17:10": 107.43, + "17:30": 107.24, + "17:51": 107, + "18:06": 107 + } + }, + "2023-11-20": { + "XPLG11": { + "10:10": 108.48, + "10:30": 108.78, + "10:50": 108.45, + "11:11": 108.32, + "11:30": 107.84, + "11:50": 107.79, + "12:11": 107.91, + "12:29": 108.05, + "12:50": 107.95, + "13:10": 107.96, + "13:14": 107.99, + "13:51": 108, + "14:10": 107.97, + "14:31": 107.96, + "14:50": 108.01, + "15:11": 107.91, + "15:30": 107.91, + "15:50": 107.87, + "16:10": 107.58, + "16:31": 107.79, + "16:34": 107.71, + "17:11": 107.8, + "17:31": 107.76, + "17:50": 107.71, + "18:00": 107.71 + } + }, + "2023-11-17": { + "XPLG11": { + "10:10": 108.08, + "10:30": 108.38, + "10:50": 108.99, + "11:10": 108.87, + "11:31": 108.89, + "11:50": 108.84, + "12:10": 108.64, + "12:30": 108.44, + "12:34": 108.38, + "13:10": 108.24, + "13:31": 108.23, + "13:35": 108.24, + "14:11": 108.28, + "14:31": 108.18, + "14:50": 108.28, + "14:55": 108.22, + "15:31": 108.46, + "15:51": 108.33, + "16:10": 108.24, + "16:31": 108.29, + "16:35": 108.26, + "17:10": 108.2, + "17:14": 108.24, + "17:34": 108.21, + "17:54": 108.48, + "18:05": 108.48 + } + }, + "2023-11-16": { + "XPLG11": { + "10:11": 108.19, + "10:31": 108.37, + "10:50": 108.15, + "11:10": 108.14, + "11:30": 108.16, + "11:35": 108.16, + "12:10": 108.14, + "12:31": 108.12, + "12:50": 108.14, + "13:10": 108.11, + "13:14": 108.17, + "13:51": 108.14, + "14:11": 108.17, + "14:50": 108.14, + "15:10": 108.09, + "15:31": 108.1, + "15:50": 108.08, + "16:10": 108.14, + "16:31": 108.15, + "16:51": 108.16, + "17:31": 108.14, + "17:50": 108.13, + "18:06": 108.15 + } + }, + "2023-11-14": { + "XPLG11": { + "10:10": 108.03, + "10:31": 108.18, + "10:51": 108.13, + "11:10": 108.2, + "11:31": 108.25, + "11:50": 108.27, + "12:10": 108.13, + "12:30": 108.08, + "12:51": 108.27, + "13:11": 108.26, + "13:30": 108.09, + "13:51": 108.09, + "14:10": 108.23, + "14:30": 108.21, + "14:51": 108.29, + "15:10": 108.22, + "15:30": 108.24, + "15:50": 108.3, + "16:10": 108.27, + "16:31": 108.24, + "16:50": 108.29, + "17:11": 108.23, + "17:15": 108.18, + "17:51": 108.19, + "18:05": 108 + } + }, + "2023-11-13": { + "XPLG11": { + "10:11": 108.13, + "10:31": 107.9, + "10:51": 107.81, + "11:11": 107.89, + "11:30": 107.83, + "11:51": 107.83, + "12:11": 107.85, + "12:30": 108.02, + "12:50": 108, + "13:10": 108.06, + "13:30": 108.21, + "13:51": 108.17, + "14:10": 108.02, + "14:32": 108.18, + "14:51": 108.07, + "15:11": 108.04, + "15:30": 108.03, + "15:50": 108.05, + "15:54": 108.04, + "16:30": 108.21, + "16:51": 108.23, + "17:10": 108.01, + "17:31": 108.04, + "17:51": 107.89, + "17:54": 107.95, + "18:05": 107.95 + } + }, + "2023-11-10": { + "XPLG11": { + "10:30": 108.99, + "10:51": 108.98, + "11:11": 108.96, + "11:31": 107.7, + "11:51": 107.6, + "12:11": 107.7, + "12:30": 107.81, + "12:51": 107.8, + "13:10": 107.77, + "13:30": 107.69, + "13:50": 107.64, + "14:11": 107.68, + "14:15": 107.67, + "14:50": 107.53, + "15:11": 107.39, + "15:30": 107.15, + "15:51": 107.13, + "16:10": 107.39, + "16:30": 107.55, + "16:51": 107.54, + "17:11": 107.5, + "17:30": 107.64, + "17:50": 107.6, + "18:06": 107.87 + } + }, + "2023-11-09": { + "XPLG11": { + "10:10": 109.25, + "10:14": 109.45, + "10:50": 108.99, + "11:10": 109.01, + "11:30": 109.11, + "11:34": 109.21, + "11:54": 109.11, + "12:30": 109.09, + "12:50": 109.09, + "13:10": 108.95, + "13:31": 109.04, + "13:50": 109, + "14:11": 109.1, + "14:31": 109.1, + "14:50": 109.17, + "14:55": 109.17, + "15:30": 109.16, + "15:51": 108.99, + "16:11": 109.11, + "16:30": 109.18, + "16:34": 109.26, + "17:10": 109.09, + "17:31": 108.82, + "17:51": 108.95, + "18:06": 108.9 + } + }, + "2023-11-08": { + "XPLG11": { + "10:10": 108.99, + "10:30": 109.01, + "10:51": 108.99, + "11:11": 109.03, + "11:14": 109, + "11:51": 109.03, + "12:11": 109.06, + "12:31": 109.04, + "12:35": 109.08, + "13:10": 109.07, + "13:31": 109.07, + "13:51": 109.06, + "14:11": 109.15, + "14:31": 109.12, + "14:50": 109.07, + "15:11": 109.08, + "15:30": 109.08, + "15:51": 109.06, + "16:11": 109.07, + "16:31": 109.07, + "16:50": 109.13, + "17:10": 109.02, + "17:30": 108.93, + "17:51": 108.94, + "18:05": 108.99 + } + }, + "2023-11-07": { + "XPLG11": { + "10:10": 108.38, + "10:30": 108.19, + "10:51": 108.2, + "10:54": 108.09, + "11:31": 108.44, + "11:51": 108.57, + "12:10": 108.82, + "12:14": 108.77, + "12:34": 108.72, + "13:11": 108.47, + "13:30": 108.61, + "13:51": 108.54, + "14:10": 108.42, + "14:30": 108.43, + "14:51": 108.14, + "15:10": 108.28, + "15:31": 108.25, + "15:35": 108.29, + "16:10": 108.37, + "16:15": 108.37, + "16:51": 108.44, + "16:55": 108.45, + "17:31": 108.73, + "17:50": 108.71, + "18:06": 109 + } + }, + "2023-11-06": { + "XPLG11": { + "10:11": 108.45, + "10:30": 108, + "10:50": 108.01, + "11:10": 107.98, + "11:31": 108.04, + "11:50": 108.13, + "12:11": 108.17, + "12:30": 108.2, + "12:51": 108.22, + "13:10": 108.25, + "13:30": 108.12, + "13:51": 108.26, + "13:54": 108.36, + "14:30": 108.42, + "14:51": 108.34, + "15:10": 108.13, + "15:31": 108.26, + "15:50": 108.26, + "16:11": 108.07, + "16:30": 107.99, + "16:51": 107.98, + "17:11": 108.05, + "17:30": 108.1, + "17:50": 108.15, + "18:06": 108.15 + } + }, + "2023-11-03": { + "XPLG11": { + "10:11": 108.2, + "10:31": 108.69, + "10:51": 108.55, + "11:10": 108.46, + "11:31": 108.49, + "11:51": 108.54, + "12:11": 108.55, + "12:30": 108.55, + "12:50": 108.79, + "13:11": 108.52, + "13:30": 108.62, + "13:50": 108.51, + "14:11": 108.6, + "14:31": 108.52, + "14:50": 108.5, + "15:11": 108.49, + "15:30": 108.5, + "15:50": 108.69, + "16:10": 108.59, + "16:31": 108.56, + "16:50": 108.47, + "17:06": 108.45 + } + }, + "2023-11-01": { + "XPLG11": { + "10:11": 108, + "10:30": 108.07, + "10:50": 108.01, + "11:11": 108.08, + "11:30": 107.86, + "11:50": 108.06, + "11:55": 108.05, + "12:30": 107.94, + "12:50": 107.87, + "13:30": 107.98, + "13:51": 107.97, + "14:10": 108.04, + "14:30": 108.07, + "14:51": 107.74, + "15:11": 107.66, + "15:30": 107.78, + "15:50": 107.61, + "16:11": 107.64, + "16:30": 107.99, + "16:51": 108.15, + "17:07": 108.15 + } + }, + "2023-10-31": { + "XPLG11": { + "10:10": 109.17, + "10:14": 109.05, + "10:35": 109.03, + "11:10": 108.92, + "11:31": 108.99, + "11:50": 109, + "12:10": 108.98, + "12:30": 108.99, + "12:50": 108.9, + "12:54": 109, + "13:30": 108.98, + "13:50": 109, + "13:54": 108.98, + "14:30": 108.92, + "14:35": 108.96, + "15:11": 108.9, + "15:30": 108.96, + "15:35": 108.97, + "16:10": 108.9, + "16:15": 109.01, + "16:50": 108.98, + "17:07": 108.95 + } + }, + "2023-10-30": { + "XPLG11": { + "10:11": 107.9, + "10:30": 108.62, + "10:51": 108.58, + "11:30": 108.76, + "11:50": 109.15, + "11:54": 108.98, + "12:15": 108.95, + "12:50": 108.69, + "13:11": 108.5, + "13:31": 108.89, + "13:51": 108.85, + "14:11": 108.83, + "14:30": 108.72, + "14:51": 108.81, + "15:10": 108.8, + "15:30": 108.66, + "15:51": 108.75, + "16:10": 108.76, + "16:15": 108.87, + "16:35": 108.86, + "17:06": 108.51 + } + }, + "2023-10-27": { + "XPLG11": { + "10:15": 107.03, + "10:50": 107.26, + "11:10": 107.2, + "11:17": 107.32, + "11:51": 107.18, + "12:11": 107.17, + "12:30": 107.18, + "12:50": 107.29, + "13:10": 107.3, + "13:30": 107.32, + "13:51": 107.99, + "14:10": 108.09, + "14:30": 107.99, + "14:51": 107.84, + "15:10": 107.7, + "15:31": 107.63, + "15:50": 107.7, + "15:54": 107.7, + "16:30": 107.68, + "16:50": 107.77, + "17:05": 107.51 + } + } + }, + "execution_time": 0.52, + "from_cache": false + } + } + }, + { + "httpRequest": { + "method": "GET", + "path": "/finance/stock_dividends", + "queryStringParameters": { + "symbol": ["XPLG11"], + "key": [".*"], + "format": ["json-cors"] + } + }, + "httpResponse": { + "statusCode": 200, + "headers" : { + "Content-Type" : [ "application/json" ] + }, + "body": { + "by": "symbol_dividends", + "valid_key": true, + "results": { + "XPLG11": [ + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGCTF002", + "label": "Rendimento", + "amount": 0.78, + "approved_in": "2023-10-31", + "traded_until": "2023-10-31", + "payment_date": "2023-11-16" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGR15M19", + "label": "Rendimento", + "amount": 0.78, + "approved_in": "2023-10-31", + "traded_until": "2023-10-31", + "payment_date": "2023-11-16" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGR16M18", + "label": "Rendimento", + "amount": 0.78, + "approved_in": "2023-10-31", + "traded_until": "2023-10-31", + "payment_date": "2023-11-16" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGR17M17", + "label": "Rendimento", + "amount": 0.78, + "approved_in": "2023-10-31", + "traded_until": "2023-10-31", + "payment_date": "2023-11-16" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGCTF002", + "label": "Rendimento", + "amount": 0.78, + "approved_in": "2023-09-29", + "traded_until": "2023-09-29", + "payment_date": "2023-10-16" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGR15M19", + "label": "Rendimento", + "amount": 0.31, + "approved_in": "2023-09-29", + "traded_until": "2023-09-29", + "payment_date": "2023-10-16" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGCTF002", + "label": "Rendimento", + "amount": 0.78, + "approved_in": "2023-08-31", + "traded_until": "2023-08-31", + "payment_date": "2023-09-15" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGCTF002", + "label": "Rendimento", + "amount": 0.78, + "approved_in": "2023-07-31", + "traded_until": "2023-07-31", + "payment_date": "2023-08-14" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGCTF002", + "label": "Rendimento", + "amount": 0.79, + "approved_in": "2023-06-30", + "traded_until": "2023-06-30", + "payment_date": "2023-07-14" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGCTF002", + "label": "Rendimento", + "amount": 0.75, + "approved_in": "2023-05-31", + "traded_until": "2023-05-31", + "payment_date": "2023-06-15" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGCTF002", + "label": "Rendimento", + "amount": 0.74, + "approved_in": "2023-04-28", + "traded_until": "2023-04-28", + "payment_date": "2023-05-15" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGCTF002", + "label": "Rendimento", + "amount": 0.74, + "approved_in": "2023-03-31", + "traded_until": "2023-03-31", + "payment_date": "2023-04-17" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGCTF002", + "label": "Rendimento", + "amount": 0.74, + "approved_in": "2023-02-28", + "traded_until": "2023-02-28", + "payment_date": "2023-03-14" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGCTF002", + "label": "Rendimento", + "amount": 0.74, + "approved_in": "2023-01-31", + "traded_until": "2023-01-31", + "payment_date": "2023-02-14" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGCTF002", + "label": "Rendimento", + "amount": 0.74, + "approved_in": "2022-12-29", + "traded_until": "2022-12-29", + "payment_date": "2023-01-13" + }, + { + "kind": "cash", + "currency": "brl", + "isin_code": "BRXPLGCTF002", + "label": "Rendimento", + "amount": 0.74, + "approved_in": "2022-11-30", + "traded_until": "2022-11-30", + "payment_date": "2022-12-14" + } + ] + }, + "execution_time": 0.13, + "from_cache": false + } + } + } +] \ No newline at end of file diff --git a/mock-server/config/mockserver.properties b/mock-server/config/mockserver.properties new file mode 100644 index 0000000..84ac39c --- /dev/null +++ b/mock-server/config/mockserver.properties @@ -0,0 +1,8 @@ +############################### +# MockServer & Proxy Settings # +############################### + +# Socket & Port Settings +mockserver.logLevel = INFO +mockserver.serverPort = 1080 +mockserver.maxSocketTimeout=120000 diff --git a/next.config.js b/next.config.js index 9e438a9..1ed5ece 100644 --- a/next.config.js +++ b/next.config.js @@ -2,7 +2,7 @@ const nextConfig = { experimental: { - serverComponentsExternalPackages: ['@tremor/react'], + // serverComponentsExternalPackages: ['@tremor/react'], }, } diff --git a/package-lock.json b/package-lock.json index e8a3dba..b0bae85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@heroicons/react": "^1.0.6", "@phosphor-icons/react": "^2.0.9", - "@tremor/react": "^2.1.0", + "@tremor/react": "^2.11.0", "@types/lodash": "^4.14.192", "@types/node": "18.15.11", "@types/react": "18.0.31", @@ -18,27 +18,41 @@ "b3api": "^0.0.1", "canvas": "^2.11.2", "cheerio": "^1.0.0-rc.12", - "eslint-config-next": "^13.4.4", + "eslint-config-next": "^13.4.19", + "js-cookie": "^3.0.5", "jsdom": "^21.1.1", "lodash": "^4.17.21", "moment": "^2.29.4", - "next": "^13.4.4", + "next": "^13.4.19", "react": "^18.2.0", "react-dom": "^18.2.0", "react-toastify": "^9.1.3", + "swr": "^2.2.2", + "tailwind-merge": "^1.14.0", "typescript": "5.0.3", "uuidv4": "^6.2.13", "xpath": "^0.0.32" }, "devDependencies": { + "@edge-runtime/vm": "^3.1.7", + "@next/eslint-plugin-next": "^13.4.13", "@rocketseat/eslint-config": "^1.2.0", + "@testing-library/react": "^14.1.2", + "@types/js-cookie": "^3.0.6", "@types/jsdom": "^21.1.1", + "@types/testing-library__jest-dom": "^6.0.0", + "@vitejs/plugin-react": "^4.2.0", + "@vitest/coverage-v8": "^0.34.6", "autoprefixer": "^10.4.14", "concurrently": "^8.2.0", + "cypress": "^13.6.0", + "dotenv": "^16.3.1", "eslint": "^8.37.0", + "eslint-plugin-cypress": "^2.15.1", "postcss": "^8.4.21", "postcss-import": "^15.1.0", - "tailwindcss": "^3.3.1" + "tailwindcss": "^3.3.1", + "vitest": "^0.34.6" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -49,27 +63,970 @@ "node": ">=0.10.0" } }, + "node_modules/@adobe/css-tools": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz", + "integrity": "sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==", + "dev": true + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", + "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", + "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", + "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.4", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", + "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", + "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", + "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", + "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", + "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.4", + "@babel/generator": "^7.23.4", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.4", + "@babel/types": "^7.23.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", + "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@edge-runtime/primitives": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@edge-runtime/primitives/-/primitives-4.0.5.tgz", + "integrity": "sha512-t7QiN5d/KpXgCvIfSt6Nm9Hj3WVdNgc5CpOD73jasY+9EvTI7Ngdj5cXvjcHrPcmYWJZMySPgeEeoL/1N/Llag==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@edge-runtime/vm": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@edge-runtime/vm/-/vm-3.1.7.tgz", + "integrity": "sha512-hUMFbDQ/nZN+1TLMi6iMO1QFz9RSV8yGG8S42WFPFma1d7VSNE0eMdJUmwjmtav22/iQkzHMmu6oTSfAvRGS8g==", + "dev": true, + "dependencies": { + "@edge-runtime/primitives": "4.0.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.7.tgz", + "integrity": "sha512-YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.7.tgz", + "integrity": "sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.7.tgz", + "integrity": "sha512-jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.7.tgz", + "integrity": "sha512-dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.7.tgz", + "integrity": "sha512-Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.7.tgz", + "integrity": "sha512-+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.7.tgz", + "integrity": "sha512-CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.7.tgz", + "integrity": "sha512-Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.7.tgz", + "integrity": "sha512-inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.7.tgz", + "integrity": "sha512-2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.7.tgz", + "integrity": "sha512-BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.7.tgz", + "integrity": "sha512-DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.7.tgz", + "integrity": "sha512-JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.7.tgz", + "integrity": "sha512-xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.7.tgz", + "integrity": "sha512-U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.7.tgz", + "integrity": "sha512-ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.7.tgz", + "integrity": "sha512-/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.7.tgz", + "integrity": "sha512-MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.7.tgz", + "integrity": "sha512-JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/runtime": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", - "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.7.tgz", + "integrity": "sha512-ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.7.tgz", + "integrity": "sha512-CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.7.tgz", + "integrity": "sha512-gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, "node_modules/@eslint-community/eslint-utils": { @@ -87,17 +1044,17 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -116,25 +1073,54 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/js": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@floating-ui/core": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.3.1.tgz", - "integrity": "sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } }, "node_modules/@floating-ui/dom": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.4.4.tgz", - "integrity": "sha512-21hhDEPOiWkGp0Ys4Wi6Neriah7HweToKra626CIK712B5m9qkdz54OP9gVldUg+URnBTpv/j/bi/skmGdstXQ==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", "dependencies": { - "@floating-ui/core": "^1.3.1" + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" } }, "node_modules/@floating-ui/react": { @@ -163,6 +1149,11 @@ "react-dom": ">=16.8.0" } }, + "node_modules/@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, "node_modules/@heroicons/react": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-1.0.6.tgz", @@ -172,11 +1163,11 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -197,9 +1188,30 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==" + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", @@ -216,9 +1228,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, "engines": { "node": ">=6.0.0" @@ -240,25 +1252,19 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", @@ -275,22 +1281,22 @@ } }, "node_modules/@next/env": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.9.tgz", - "integrity": "sha512-vuDRK05BOKfmoBYLNi2cujG2jrYbEod/ubSSyqgmEx9n/W3eZaJQdRNhTfumO+qmq/QTzLurW487n/PM/fHOkw==" + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz", + "integrity": "sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==" }, "node_modules/@next/eslint-plugin-next": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.9.tgz", - "integrity": "sha512-nDtGpa992tNyAkT/KmSMy7QkHfNZmGCBYhHtafU97DubqxzNdvLsqRtliQ4FU04CysRCtvP2hg8rRC1sAKUTUA==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.5.6.tgz", + "integrity": "sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg==", "dependencies": { "glob": "7.1.7" } }, "node_modules/@next/swc-darwin-arm64": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.9.tgz", - "integrity": "sha512-TVzGHpZoVBk3iDsTOQA/R6MGmFp0+17SWXMEWd6zG30AfuELmSSMe2SdPqxwXU0gbpWkJL1KgfLzy5ReN0crqQ==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.6.tgz", + "integrity": "sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==", "cpu": [ "arm64" ], @@ -303,9 +1309,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.9.tgz", - "integrity": "sha512-aSfF1fhv28N2e7vrDZ6zOQ+IIthocfaxuMWGReB5GDriF0caTqtHttAvzOMgJgXQtQx6XhyaJMozLTSEXeNN+A==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.6.tgz", + "integrity": "sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==", "cpu": [ "x64" ], @@ -318,9 +1324,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.9.tgz", - "integrity": "sha512-JhKoX5ECzYoTVyIy/7KykeO4Z2lVKq7HGQqvAH+Ip9UFn1MOJkOnkPRB7v4nmzqAoY+Je05Aj5wNABR1N18DMg==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.6.tgz", + "integrity": "sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==", "cpu": [ "arm64" ], @@ -333,9 +1339,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.9.tgz", - "integrity": "sha512-OOn6zZBIVkm/4j5gkPdGn4yqQt+gmXaLaSjRSO434WplV8vo2YaBNbSHaTM9wJpZTHVDYyjzuIYVEzy9/5RVZw==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.6.tgz", + "integrity": "sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==", "cpu": [ "arm64" ], @@ -348,9 +1354,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.9.tgz", - "integrity": "sha512-iA+fJXFPpW0SwGmx/pivVU+2t4zQHNOOAr5T378PfxPHY6JtjV6/0s1vlAJUdIHeVpX98CLp9k5VuKgxiRHUpg==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.6.tgz", + "integrity": "sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==", "cpu": [ "x64" ], @@ -363,9 +1369,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.9.tgz", - "integrity": "sha512-rlNf2WUtMM+GAQrZ9gMNdSapkVi3koSW3a+dmBVp42lfugWVvnyzca/xJlN48/7AGx8qu62WyO0ya1ikgOxh6A==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.6.tgz", + "integrity": "sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==", "cpu": [ "x64" ], @@ -378,9 +1384,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.9.tgz", - "integrity": "sha512-5T9ybSugXP77nw03vlgKZxD99AFTHaX8eT1ayKYYnGO9nmYhJjRPxcjU5FyYI+TdkQgEpIcH7p/guPLPR0EbKA==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.6.tgz", + "integrity": "sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==", "cpu": [ "arm64" ], @@ -393,9 +1399,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.9.tgz", - "integrity": "sha512-ojZTCt1lP2ucgpoiFgrFj07uq4CZsq4crVXpLGgQfoFq00jPKRPgesuGPaz8lg1yLfvafkU3Jd1i8snKwYR3LA==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.6.tgz", + "integrity": "sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==", "cpu": [ "ia32" ], @@ -408,9 +1414,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.9.tgz", - "integrity": "sha512-QbT03FXRNdpuL+e9pLnu+XajZdm/TtIXVYY4lA9t+9l0fLZbHXDYEKitAqxrOj37o3Vx5ufxiRAniaIebYDCgw==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.6.tgz", + "integrity": "sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==", "cpu": [ "x64" ], @@ -454,78 +1460,312 @@ "node": ">= 8" } }, - "node_modules/@phosphor-icons/react": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@phosphor-icons/react/-/react-2.0.10.tgz", - "integrity": "sha512-q5ITPNFhmEiYZLZOvEhjo2phlfxoOmit7vE1tBYMxcMqnZX2vdbMw3deDE7wCegpBKM/q/p39BJmhhoPcjZyCg==", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": ">= 16.8", - "react-dom": ">= 16.8" + "node_modules/@phosphor-icons/react": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@phosphor-icons/react/-/react-2.0.15.tgz", + "integrity": "sha512-PQKNcRrfERlC8gJGNz0su0i9xVmeubXSNxucPcbCLDd9u0cwJVTEyYK87muul/svf0UXFdL2Vl6bbeOhT1Mwow==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">= 16.8", + "react-dom": ">= 16.8" + } + }, + "node_modules/@rocketseat/eslint-config": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@rocketseat/eslint-config/-/eslint-config-1.3.0.tgz", + "integrity": "sha512-NP7v/bbAWjp8NufV1WwlfnwPp1tE8NC3gWBH/GIXzarIIwGUnGdYzSlmAQme+zBySEVvHgYIrdqKHQi9aLf+qw==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "^5.25.0", + "@typescript-eslint/parser": "^5.25.0", + "eslint": "^7.23.0 || ^8.0.0", + "eslint-config-prettier": "^8.5.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-n": "^15.2.0", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-promise": "^6.0.0", + "eslint-plugin-react": "^7.30.0", + "eslint-plugin-react-hooks": "^4.5.0", + "prettier": "^2.6.2" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.1.tgz", + "integrity": "sha512-YaN43wTyEBaMqLDYeze+gQ4ZrW5RbTEGtT5o1GVDkhpdNcsLTnLRcLccvwy3E9wiDKWg9RIhuoy3JQKDRBfaZA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.1.tgz", + "integrity": "sha512-n1bX+LCGlQVuPlCofO0zOKe1b2XkFozAVRoczT+yxWZPGnkEAKTTYVOGZz8N4sKuBnKMxDbfhUsB1uwYdup/sw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.1.tgz", + "integrity": "sha512-QqJBumdvfBqBBmyGHlKxje+iowZwrHna7pokj/Go3dV1PJekSKfmjKrjKQ/e6ESTGhkfPNLq3VXdYLAc+UtAQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.1.tgz", + "integrity": "sha512-RrkDNkR/P5AEQSPkxQPmd2ri8WTjSl0RYmuFOiEABkEY/FSg0a4riihWQGKDJ4LnV9gigWZlTMx2DtFGzUrYQw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.1.tgz", + "integrity": "sha512-ZFPxvUZmE+fkB/8D9y/SWl/XaDzNSaxd1TJUSE27XAKlRpQ2VNce/86bGd9mEUgL3qrvjJ9XTGwoX0BrJkYK/A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.1.tgz", + "integrity": "sha512-FEuAjzVIld5WVhu+M2OewLmjmbXWd3q7Zcx+Rwy4QObQCqfblriDMMS7p7+pwgjZoo9BLkP3wa9uglQXzsB9ww==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.1.tgz", + "integrity": "sha512-f5Gs8WQixqGRtI0Iq/cMqvFYmgFzMinuJO24KRfnv7Ohi/HQclwrBCYkzQu1XfLEEt3DZyvveq9HWo4bLJf1Lw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.1.tgz", + "integrity": "sha512-CWPkPGrFfN2vj3mw+S7A/4ZaU3rTV7AkXUr08W9lNP+UzOvKLVf34tWCqrKrfwQ0NTk5GFqUr2XGpeR2p6R4gw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.1.tgz", + "integrity": "sha512-ZRETMFA0uVukUC9u31Ed1nx++29073goCxZtmZARwk5aF/ltuENaeTtRVsSQzFlzdd4J6L3qUm+EW8cbGt0CKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.1.tgz", + "integrity": "sha512-ihqfNJNb2XtoZMSCPeoo0cYMgU04ksyFIoOw5S0JUVbOhafLot+KD82vpKXOurE2+9o/awrqIxku9MRR9hozHQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.1.tgz", + "integrity": "sha512-zK9MRpC8946lQ9ypFn4gLpdwr5a01aQ/odiIJeL9EbgZDMgbZjjT/XzTqJvDfTmnE1kHdbG20sAeNlpc91/wbg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.1.tgz", + "integrity": "sha512-5I3Nz4Sb9TYOtkRwlH0ow+BhMH2vnh38tZ4J4mggE48M/YyJyp/0sPSxhw1UeS1+oBgQ8q7maFtSeKpeRJu41Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz", + "integrity": "sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@swc/helpers": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", + "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "dependencies": { + "tslib": "^2.4.0" } }, - "node_modules/@pkgr/utils": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", - "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "node_modules/@testing-library/dom": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.3.tgz", + "integrity": "sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==", + "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "fast-glob": "^3.3.0", - "is-glob": "^4.0.3", - "open": "^9.1.0", - "picocolors": "^1.0.0", - "tslib": "^2.6.0" + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" }, "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" + "node": ">=14" } }, - "node_modules/@rocketseat/eslint-config": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@rocketseat/eslint-config/-/eslint-config-1.3.0.tgz", - "integrity": "sha512-NP7v/bbAWjp8NufV1WwlfnwPp1tE8NC3gWBH/GIXzarIIwGUnGdYzSlmAQme+zBySEVvHgYIrdqKHQi9aLf+qw==", + "node_modules/@testing-library/jest-dom": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.1.4.tgz", + "integrity": "sha512-wpoYrCYwSZ5/AxcrjLxJmCU6I5QAJXslEeSiMQqaWmP2Kzpd1LvF/qxmAIW2qposULGWq2gw30GgVNFLSc2Jnw==", "dev": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "^5.25.0", - "@typescript-eslint/parser": "^5.25.0", - "eslint": "^7.23.0 || ^8.0.0", - "eslint-config-prettier": "^8.5.0", - "eslint-config-standard": "^17.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-n": "^15.2.0", - "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-promise": "^6.0.0", - "eslint-plugin-react": "^7.30.0", - "eslint-plugin-react-hooks": "^4.5.0", - "prettier": "^2.6.2" + "@adobe/css-tools": "^4.3.1", + "@babel/runtime": "^7.9.2", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" }, "peerDependencies": { - "eslint": "^7.23.0 || ^8.0.0", - "typescript": ">=3.3.1" + "@jest/globals": ">= 28", + "@types/jest": ">= 28", + "jest": ">= 28", + "vitest": ">= 0.32" }, "peerDependenciesMeta": { - "typescript": { + "@jest/globals": { + "optional": true + }, + "@types/jest": { + "optional": true + }, + "jest": { + "optional": true + }, + "vitest": { "optional": true } } }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.3.2.tgz", - "integrity": "sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==" + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/@swc/helpers": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz", - "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==", + "node_modules/@testing-library/react": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.1.2.tgz", + "integrity": "sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg==", + "dev": true, "dependencies": { - "tslib": "^2.4.0" + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^9.0.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, "node_modules/@tootallnate/once": { @@ -552,64 +1792,138 @@ "react-dom": ">=16.6.0" } }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/chai": { + "version": "4.3.11", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.11.tgz", + "integrity": "sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==", + "dev": true + }, + "node_modules/@types/chai-subset": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", + "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", + "dev": true, + "dependencies": { + "@types/chai": "*" + } + }, "node_modules/@types/d3-array": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.0.5.tgz", - "integrity": "sha512-Qk7fpJ6qFp+26VeQ47WY0mkwXaiq8+76RJcncDEfMc2ocRzXLO67bLFRNI4OX1aGBoPzsM5Y2T+/m1pldOgD+A==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==" }, "node_modules/@types/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==" }, "node_modules/@types/d3-ease": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.0.tgz", - "integrity": "sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==" }, "node_modules/@types/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", "dependencies": { "@types/d3-color": "*" } }, "node_modules/@types/d3-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.0.tgz", - "integrity": "sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.2.tgz", + "integrity": "sha512-WAIEVlOCdd/NKRYTsqCpOMHQHemKBEINf8YXMYOtXH0GA7SY0dqMB78P3Uhgfy+4X+/Mlw2wDtlETkN6kQUCMA==" }, "node_modules/@types/d3-scale": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.3.tgz", - "integrity": "sha512-PATBiMCpvHJSMtZAMEhc2WyL+hnzarKzI6wAHYjhsonjWJYGq5BXTzQjv4l8m2jO183/4wZ90rKvSeT7o72xNQ==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", + "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", "dependencies": { "@types/d3-time": "*" } }, "node_modules/@types/d3-shape": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.1.tgz", - "integrity": "sha512-6Uh86YFF7LGg4PQkuO2oG6EMBRLuW9cbavUW46zkIO5kuS2PfTqo2o9SkgtQzguBHbLgNnU90UNsITpsX1My+A==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", + "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", "dependencies": { "@types/d3-path": "*" } }, "node_modules/@types/d3-time": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.0.tgz", - "integrity": "sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", + "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==" }, "node_modules/@types/d3-timer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.0.tgz", - "integrity": "sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/js-cookie": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.6.tgz", + "integrity": "sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==", + "dev": true }, "node_modules/@types/jsdom": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.1.tgz", - "integrity": "sha512-cZFuoVLtzKP3gmq9eNosUL1R50U+USkbLtUQ1bYVgl/lKp0FZM7Cq4aIHAL8oIvQ17uSHi7jXPtfDOdjPwBE7A==", + "version": "21.1.6", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.6.tgz", + "integrity": "sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw==", "dev": true, "dependencies": { "@types/node": "*", @@ -618,9 +1932,9 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/json5": { @@ -629,9 +1943,9 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" }, "node_modules/@types/lodash": { - "version": "4.14.195", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.195.tgz", - "integrity": "sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==" + "version": "4.14.202", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==" }, "node_modules/@types/node": { "version": "18.15.11", @@ -639,9 +1953,9 @@ "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==" }, "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" }, "node_modules/@types/react": { "version": "18.0.31", @@ -662,20 +1976,42 @@ } }, "node_modules/@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, "node_modules/@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", "dev": true }, + "node_modules/@types/testing-library__jest-dom": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-6.0.0.tgz", + "integrity": "sha512-bnreXCgus6IIadyHNlN/oI5FfX4dWgvGhOPvpr7zzCYDGAPIfvyIoAozMBINmhmsVuqV0cncejF2y5KC7ScqOg==", + "deprecated": "This is a stub types definition. @testing-library/jest-dom provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "@testing-library/jest-dom": "*" + } + }, "node_modules/@types/tough-cookie": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", - "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", "dev": true }, "node_modules/@types/uuid": { @@ -683,16 +2019,26 @@ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.61.0.tgz", - "integrity": "sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.61.0", - "@typescript-eslint/type-utils": "5.61.0", - "@typescript-eslint/utils": "5.61.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.0", @@ -718,13 +2064,13 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.61.0.tgz", - "integrity": "sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dependencies": { - "@typescript-eslint/scope-manager": "5.61.0", - "@typescript-eslint/types": "5.61.0", - "@typescript-eslint/typescript-estree": "5.61.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "debug": "^4.3.4" }, "engines": { @@ -744,12 +2090,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz", - "integrity": "sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dependencies": { - "@typescript-eslint/types": "5.61.0", - "@typescript-eslint/visitor-keys": "5.61.0" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -760,13 +2106,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.61.0.tgz", - "integrity": "sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.61.0", - "@typescript-eslint/utils": "5.61.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -780,92 +2126,300 @@ "peerDependencies": { "eslint": "*" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.0.tgz", + "integrity": "sha512-+MHTH/e6H12kRp5HUkzOGqPMksezRMmW+TNzlh/QXfI8rRf6l2Z2yH/v12no1UvTwhZgEDMuQ7g7rrfMseU6FQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/plugin-transform-react-jsx-self": "^7.23.3", + "@babel/plugin-transform-react-jsx-source": "^7.23.3", + "@types/babel__core": "^7.20.4", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/@vitest/coverage-v8": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-0.34.6.tgz", + "integrity": "sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@bcoe/v8-coverage": "^0.2.3", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.1.5", + "magic-string": "^0.30.1", + "picocolors": "^1.0.0", + "std-env": "^3.3.3", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": ">=0.32.0 <1" + } + }, + "node_modules/@vitest/expect": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz", + "integrity": "sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==", + "dev": true, + "dependencies": { + "@vitest/spy": "0.34.6", + "@vitest/utils": "0.34.6", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz", + "integrity": "sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==", + "dev": true, + "dependencies": { + "@vitest/utils": "0.34.6", + "p-limit": "^4.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz", + "integrity": "sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.1", + "pathe": "^1.1.1", + "pretty-format": "^29.5.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.61.0.tgz", - "integrity": "sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ==", + "node_modules/@vitest/snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.61.0.tgz", - "integrity": "sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw==", + "node_modules/@vitest/snapshot/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, "dependencies": { - "@typescript-eslint/types": "5.61.0", - "@typescript-eslint/visitor-keys": "5.61.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/snapshot/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/@vitest/spy": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz", + "integrity": "sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==", + "dev": true, + "dependencies": { + "tinyspy": "^2.1.1" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://opencollective.com/vitest" } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.61.0.tgz", - "integrity": "sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==", + "node_modules/@vitest/utils": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz", + "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.61.0", - "@typescript-eslint/types": "5.61.0", - "@typescript-eslint/typescript-estree": "5.61.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "diff-sequences": "^29.4.3", + "loupe": "^2.3.6", + "pretty-format": "^29.5.0" }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.61.0.tgz", - "integrity": "sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg==", + "node_modules/@vitest/utils/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, "dependencies": { - "@typescript-eslint/types": "5.61.0", - "eslint-visitor-keys": "^3.3.0" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@vitest/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -877,9 +2431,9 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "bin": { "acorn": "bin/acorn" }, @@ -905,9 +2459,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", + "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", "engines": { "node": ">=0.4.0" } @@ -923,6 +2477,19 @@ "node": ">= 6.0.0" } }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -938,6 +2505,30 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -984,6 +2575,26 @@ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/are-we-there-yet": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", @@ -1019,11 +2630,12 @@ } }, "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, "dependencies": { - "dequal": "^2.0.3" + "deep-equal": "^2.0.5" } }, "node_modules/array-buffer-byte-length": { @@ -1039,14 +2651,14 @@ } }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -1064,14 +2676,32 @@ "node": ">=8" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -1082,13 +2712,13 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -1099,31 +2729,110 @@ } }, "node_modules/array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" } }, "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dependencies": { + "has-symbols": "^1.0.3" + } }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", "dev": true, "funding": [ { @@ -1133,12 +2842,16 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -1164,10 +2877,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, "node_modules/axe-core": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz", - "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", "engines": { "node": ">=4" } @@ -1193,12 +2921,33 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "engines": { - "node": ">=0.6" + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" } }, "node_modules/binary-extensions": { @@ -1210,22 +2959,23 @@ "node": ">=8" } }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "node_modules/bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "dependencies": { - "big-integer": "^1.6.44" - }, - "engines": { - "node": ">= 5.10.0" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1247,9 +2997,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "funding": [ { @@ -1257,25 +3007,58 @@ "url": "https://opencollective.com/browserslist" }, { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, { - "type": "github", - "url": "https://github.com/sponsors/ai" + "type": "consulting", + "url": "https://feross.org/support" } ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" - }, + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": "*" } }, "node_modules/builtins": { @@ -1287,20 +3070,6 @@ "semver": "^7.0.0" } }, - "node_modules/bundle-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", - "dependencies": { - "run-applescript": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -1312,13 +3081,32 @@ "node": ">=10.16.0" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1342,9 +3130,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001513", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001513.tgz", - "integrity": "sha512-pnjGJo7SOOjAGytZZ203Em95MRM8Cr6jhCXNF/FAXTpCTRTECnqQWLpiTRqrFtdYcth8hf4WECUpkezuYsMVww==", + "version": "1.0.30001564", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz", + "integrity": "sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==", "funding": [ { "type": "opencollective", @@ -1374,6 +3162,30 @@ "node": ">=6" } }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/chai": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -1389,15 +3201,25 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "get-func-name": "^2.0.2" }, "engines": { - "node": ">=8" + "node": "*" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true, + "engines": { + "node": ">= 0.8.0" } }, "node_modules/cheerio": { @@ -1483,10 +3305,72 @@ "node": ">=10" } }, - "node_modules/classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/client-only": { "version": "0.0.1", @@ -1539,6 +3423,12 @@ "color-support": "bin.js" } }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -1551,23 +3441,32 @@ } }, "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, "engines": { "node": ">= 6" } }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/concurrently": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.0.tgz", - "integrity": "sha512-nnLMxO2LU492mTUj9qX/az/lESonSZu81UznYDoXtz1IQf996ixVqPAgHXwvHiHCAef/7S8HIK+fTFK7Ifk8YA==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", + "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", "dev": true, "dependencies": { "chalk": "^4.1.2", @@ -1591,11 +3490,38 @@ "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1624,11 +3550,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/css-unit-converter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", - "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==" - }, "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", @@ -1640,6 +3561,12 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -1668,6 +3595,88 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, + "node_modules/cypress": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.0.tgz", + "integrity": "sha512-quIsnFmtj4dBUEJYU4OH0H12bABJpSujvWexC24Ju1gTlKMJbeT6tTO0vh7WNfiBPPjoIXLN+OUqVtiKFs6SGw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^3.0.0", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^18.17.5", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/cypress/node_modules/@types/node": { + "version": "18.18.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.13.tgz", + "integrity": "sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/cypress/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/d3-array": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", @@ -1783,6 +3792,18 @@ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/data-urls": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", @@ -1811,6 +3832,12 @@ "url": "https://opencollective.com/date-fns" } }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "dev": true + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1848,59 +3875,74 @@ "node": ">=8" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/default-browser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, "dependencies": { - "bundle-name": "^3.0.0", - "default-browser-id": "^3.0.0", - "execa": "^7.1.1", - "titleize": "^3.0.0" + "type-detect": "^4.0.0" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/default-browser-id": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, "dependencies": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "engines": { - "node": ">=12" + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.4" } }, "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -1933,9 +3975,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "engines": { "node": ">=8" } @@ -1946,6 +3988,15 @@ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -1974,6 +4025,12 @@ "node": ">=6.0.0" } }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true + }, "node_modules/dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", @@ -2045,10 +4102,32 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "node_modules/electron-to-chromium": { - "version": "1.4.454", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.454.tgz", - "integrity": "sha512-pmf1rbAStw8UEQ0sr2cdJtWl48ZMuPD9Sto8HVQOq9vx9j2WgDEN6lYoaqFvqEHYOmGA9oRGn7LqWI9ta0YugQ==", + "version": "1.4.593", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.593.tgz", + "integrity": "sha512-c7+Hhj87zWmdpmjDONbvNKNo24tvmD4mjal1+qqTYTrlF0/sNpAcDlU0Ki84ftA/5yj3BF2QhSGEC0Rky6larg==", "dev": true }, "node_modules/emoji-regex": { @@ -2056,6 +4135,15 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/enhanced-resolve": { "version": "5.15.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", @@ -2065,7 +4153,20 @@ "tapable": "^2.2.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" } }, "node_modules/entities": { @@ -2080,24 +4181,25 @@ } }, "node_modules/es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dependencies": { "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", + "hasown": "^2.0.0", "internal-slot": "^1.0.5", "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", @@ -2105,19 +4207,23 @@ "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -2126,25 +4232,66 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, "dependencies": { + "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -2163,6 +4310,43 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/esbuild": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.7.tgz", + "integrity": "sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.19.7", + "@esbuild/android-arm64": "0.19.7", + "@esbuild/android-x64": "0.19.7", + "@esbuild/darwin-arm64": "0.19.7", + "@esbuild/darwin-x64": "0.19.7", + "@esbuild/freebsd-arm64": "0.19.7", + "@esbuild/freebsd-x64": "0.19.7", + "@esbuild/linux-arm": "0.19.7", + "@esbuild/linux-arm64": "0.19.7", + "@esbuild/linux-ia32": "0.19.7", + "@esbuild/linux-loong64": "0.19.7", + "@esbuild/linux-mips64el": "0.19.7", + "@esbuild/linux-ppc64": "0.19.7", + "@esbuild/linux-riscv64": "0.19.7", + "@esbuild/linux-s390x": "0.19.7", + "@esbuild/linux-x64": "0.19.7", + "@esbuild/netbsd-x64": "0.19.7", + "@esbuild/openbsd-x64": "0.19.7", + "@esbuild/sunos-x64": "0.19.7", + "@esbuild/win32-arm64": "0.19.7", + "@esbuild/win32-ia32": "0.19.7", + "@esbuild/win32-x64": "0.19.7" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -2204,26 +4388,27 @@ } }, "node_modules/eslint": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", - "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.54.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -2233,7 +4418,6 @@ "globals": "^13.19.0", "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", @@ -2245,7 +4429,6 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -2259,19 +4442,19 @@ } }, "node_modules/eslint-config-next": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.4.9.tgz", - "integrity": "sha512-0fLtKRR268NArpqeXXwnLgMXPvF64YESQvptVg+RMLCaijKm3FICN9Y7Jc1p2o+yrWwE4DufJXDM/Vo53D1L7g==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.5.6.tgz", + "integrity": "sha512-o8pQsUHTo9aHqJ2YiZDym5gQAMRf7O2HndHo/JZeY7TDD+W4hk6Ma8Vw54RHiBeb7OWWO5dPirQB+Is/aVQ7Kg==", "dependencies": { - "@next/eslint-plugin-next": "13.4.9", - "@rushstack/eslint-patch": "^1.1.3", - "@typescript-eslint/parser": "^5.42.0", + "@next/eslint-plugin-next": "13.5.6", + "@rushstack/eslint-patch": "^1.3.3", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.31.7", - "eslint-plugin-react-hooks": "5.0.0-canary-7118f5dd7-20230705" + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" }, "peerDependencies": { "eslint": "^7.23.0 || ^8.0.0", @@ -2283,21 +4466,10 @@ } } }, - "node_modules/eslint-config-next/node_modules/eslint-plugin-react-hooks": { - "version": "5.0.0-canary-7118f5dd7-20230705", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", - "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, "node_modules/eslint-config-prettier": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -2336,13 +4508,13 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -2354,18 +4526,17 @@ } }, "node_modules/eslint-import-resolver-typescript": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz", - "integrity": "sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", "dependencies": { "debug": "^4.3.4", "enhanced-resolve": "^5.12.0", "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", "get-tsconfig": "^4.5.0", - "globby": "^13.1.3", "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "synckit": "^0.8.5" + "is-glob": "^4.0.3" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -2378,35 +4549,6 @@ "eslint-plugin-import": "*" } }, - "node_modules/eslint-import-resolver-typescript/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-import-resolver-typescript/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint-module-utils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", @@ -2431,6 +4573,45 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-plugin-cypress": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz", + "integrity": "sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==", + "dev": true, + "dependencies": { + "globals": "^13.20.0" + }, + "peerDependencies": { + "eslint": ">= 3.2.1" + } + }, + "node_modules/eslint-plugin-cypress/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-cypress/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint-plugin-es": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", @@ -2475,25 +4656,27 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "engines": { "node": ">=4" @@ -2522,34 +4705,34 @@ } }, "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", - "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", - "dependencies": { - "@babel/runtime": "^7.20.7", - "aria-query": "^5.1.3", - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.6.2", - "axobject-query": "^3.1.1", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", + "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "aria-query": "^5.3.0", + "array-includes": "^3.1.7", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "=4.7.0", + "axobject-query": "^3.2.1", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.3", - "language-tags": "=1.0.5", + "es-iterator-helpers": "^1.0.15", + "hasown": "^2.0.0", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "semver": "^6.3.0" + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7" }, "engines": { "node": ">=4.0" @@ -2558,12 +4741,12 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" + "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dependencies": { + "dequal": "^2.0.3" } }, "node_modules/eslint-plugin-n": { @@ -2625,14 +4808,15 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.32.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", - "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flatmap": "^1.3.1", "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", @@ -2642,7 +4826,7 @@ "object.values": "^1.1.6", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.4", - "semver": "^6.3.0", + "semver": "^6.3.1", "string.prototype.matchall": "^4.0.8" }, "engines": { @@ -2656,7 +4840,6 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "dev": true, "engines": { "node": ">=10" }, @@ -2676,11 +4859,11 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -2692,9 +4875,9 @@ } }, "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -2749,9 +4932,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -2760,9 +4943,9 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -2774,10 +4957,35 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/espree": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", - "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -2840,33 +5048,87 @@ "node": ">=0.10.0" } }, + "node_modules/eventemitter2": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", + "dev": true + }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, "node_modules/execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2887,9 +5149,9 @@ } }, "node_modules/fast-glob": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2930,6 +5192,39 @@ "reusify": "^1.0.4" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -2968,11 +5263,12 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -2980,9 +5276,9 @@ } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" }, "node_modules/for-each": { "version": "0.3.3", @@ -2992,30 +5288,55 @@ "is-callable": "^1.1.3" } }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 6" + "node": ">= 0.12" } }, "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, "engines": { "node": "*" }, "funding": { "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/fs-minipass": { @@ -3040,15 +5361,20 @@ "node": ">=8" } }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -3060,19 +5386,22 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -3108,35 +5437,57 @@ "node": ">=10" } }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3158,9 +5509,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.6.2.tgz", - "integrity": "sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -3168,6 +5519,24 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, "node_modules/glob": { "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", @@ -3203,20 +5572,30 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, "dependencies": { - "type-fest": "^0.20.2" + "ini": "2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/globalthis": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", @@ -3271,17 +5650,6 @@ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -3299,11 +5667,11 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dependencies": { - "get-intrinsic": "^1.1.1" + "get-intrinsic": "^1.2.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3350,6 +5718,17 @@ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -3361,6 +5740,12 @@ "node": ">=12" } }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, "node_modules/htmlparser2": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", @@ -3392,6 +5777,20 @@ "node": ">= 6" } }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -3405,11 +5804,12 @@ } }, "node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, "engines": { - "node": ">=14.18.0" + "node": ">=8.12.0" } }, "node_modules/iconv-lite": { @@ -3423,10 +5823,30 @@ "node": ">=0.10.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "engines": { "node": ">= 4" } @@ -3454,6 +5874,15 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3468,13 +5897,22 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -3489,6 +5927,22 @@ "node": ">=12" } }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-array-buffer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", @@ -3502,6 +5956,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -3551,12 +6019,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3576,20 +6056,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3598,6 +6064,17 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -3606,6 +6083,20 @@ "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -3617,23 +6108,30 @@ "node": ">=0.10.0" } }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" }, "engines": { - "node": ">=14.16" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -3695,6 +6193,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", @@ -3707,11 +6213,12 @@ } }, "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3746,15 +6253,11 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -3763,6 +6266,32 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -3774,45 +6303,128 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", "dependencies": { - "is-docker": "^2.0.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/is-wsl/node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } }, "node_modules/jiti": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz", - "integrity": "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", "dev": true, "bin": { "jiti": "bin/jiti.js" } }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "engines": { + "node": ">=14" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -3829,6 +6441,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, "node_modules/jsdom": { "version": "21.1.2", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.2.tgz", @@ -3873,6 +6491,42 @@ } } }, + "node_modules/jsdom/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -3883,21 +6537,61 @@ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dependencies": { - "minimist": "^1.2.0" - }, + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, "bin": { "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" } }, "node_modules/jsx-ast-utils": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz", - "integrity": "sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -3908,17 +6602,37 @@ "node": ">=4.0" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" }, "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dependencies": { - "language-subtag-registry": "~0.3.2" + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true, + "engines": { + "node": "> 0.8" } }, "node_modules/levn": { @@ -3948,6 +6662,45 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -3972,6 +6725,77 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -3983,15 +6807,43 @@ "loose-envify": "cli.js" } }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "dependencies": { - "yallist": "^4.0.0" + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/make-dir": { @@ -4009,9 +6861,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -4019,7 +6871,8 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/merge2": { "version": "1.4.1", @@ -4061,14 +6914,12 @@ } }, "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/mimic-response": { @@ -4082,6 +6933,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -4132,6 +6992,11 @@ "node": ">=8" } }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -4143,6 +7008,18 @@ "node": ">=10" } }, + "node_modules/mlly": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" + } + }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -4168,14 +7045,14 @@ } }, "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "funding": [ { "type": "github", @@ -4201,39 +7078,37 @@ "dev": true }, "node_modules/next": { - "version": "13.4.9", - "resolved": "https://registry.npmjs.org/next/-/next-13.4.9.tgz", - "integrity": "sha512-vtefFm/BWIi/eWOqf1GsmKG3cjKw1k3LjuefKRcL3iiLl3zWzFdPG3as6xtxrGO6gwTzzaO1ktL4oiHt/uvTjA==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/next/-/next-13.5.6.tgz", + "integrity": "sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==", "dependencies": { - "@next/env": "13.4.9", - "@swc/helpers": "0.5.1", + "@next/env": "13.5.6", + "@swc/helpers": "0.5.2", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001406", - "postcss": "8.4.14", + "postcss": "8.4.31", "styled-jsx": "5.1.1", - "watchpack": "2.4.0", - "zod": "3.21.4" + "watchpack": "2.4.0" }, "bin": { "next": "dist/bin/next" }, "engines": { - "node": ">=16.8.0" + "node": ">=16.14.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "13.4.9", - "@next/swc-darwin-x64": "13.4.9", - "@next/swc-linux-arm64-gnu": "13.4.9", - "@next/swc-linux-arm64-musl": "13.4.9", - "@next/swc-linux-x64-gnu": "13.4.9", - "@next/swc-linux-x64-musl": "13.4.9", - "@next/swc-win32-arm64-msvc": "13.4.9", - "@next/swc-win32-ia32-msvc": "13.4.9", - "@next/swc-win32-x64-msvc": "13.4.9" + "@next/swc-darwin-arm64": "13.5.6", + "@next/swc-darwin-x64": "13.5.6", + "@next/swc-linux-arm64-gnu": "13.5.6", + "@next/swc-linux-arm64-musl": "13.5.6", + "@next/swc-linux-x64-gnu": "13.5.6", + "@next/swc-linux-x64-musl": "13.5.6", + "@next/swc-win32-arm64-msvc": "13.5.6", + "@next/swc-win32-ia32-msvc": "13.5.6", + "@next/swc-win32-x64-msvc": "13.5.6" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", - "fibers": ">= 3.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", "sass": "^1.3.0" @@ -4242,41 +7117,15 @@ "@opentelemetry/api": { "optional": true }, - "fibers": { - "optional": true - }, "sass": { "optional": true } } }, - "node_modules/next/node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "node_modules/node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -4350,28 +7199,15 @@ } }, "node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "path-key": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/npmlog": { @@ -4419,9 +7255,25 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4452,26 +7304,26 @@ } }, "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -4480,26 +7332,37 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, "node_modules/object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -4517,31 +7380,15 @@ } }, "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, "dependencies": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=14.16" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4563,6 +7410,12 @@ "node": ">= 0.8.0" } }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -4591,6 +7444,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -4662,6 +7530,33 @@ "node": ">=8" } }, + "node_modules/pathe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -4696,11 +7591,21 @@ "node": ">= 6" } }, - "node_modules/postcss": { - "version": "8.4.25", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", - "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", + "node_modules/pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -4761,21 +7666,27 @@ } }, "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" }, "engines": { "node": ">= 14" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" @@ -4789,6 +7700,15 @@ } } }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "node_modules/postcss-nested": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", @@ -4862,6 +7782,53 @@ "node": ">=6.0.0" } }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -4872,19 +7839,55 @@ "react-is": "^16.13.1" } }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } }, + "node_modules/qs": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -4933,31 +7936,29 @@ } }, "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true }, "node_modules/react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, - "node_modules/react-resize-detector": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-8.1.0.tgz", - "integrity": "sha512-S7szxlaIuiy5UqLhLL1KY3aoyGHbZzsTpYal9eYMwCyKqoqoVLCmIgAgNyIM1FhnP2KyBygASJxdhejrzjMb+w==", - "dependencies": { - "lodash": "^4.17.21" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/react-smooth": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.3.tgz", - "integrity": "sha512-yl4y3XiMorss7ayF5QnBiSprig0+qFHui8uh7Hgg46QX5O+aRMRKlfGGNGLHno35JkQSvSYY8eCWkBfHfrSHfg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.5.tgz", + "integrity": "sha512-BMP2Ad42tD60h0JW6BFaib+RJuV5dsXJK9Baxiv/HlNFjvRLqA9xrNKxVWnUIZPQfzUwGXIlU/dSYLU+54YGQA==", "dependencies": { "fast-equals": "^5.0.0", "react-transition-group": "2.9.0" @@ -5053,22 +8054,21 @@ } }, "node_modules/recharts": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.7.2.tgz", - "integrity": "sha512-HMKRBkGoOXHW+7JcRa6+MukPSifNtJlqbc+JreGVNA407VLE/vOP+8n3YYjprDVVIF9E2ZgwWnL3D7K/LUFzBg==", + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.10.1.tgz", + "integrity": "sha512-9bi0jIzxOTfEda+oYqgimKuYfApmBr0zKnAX8r4Iw56k3Saz/IQyBD4zohZL0eyzfz0oGFRH7alpJBgH1eC57g==", "dependencies": { - "classnames": "^2.2.5", + "clsx": "^2.0.0", "eventemitter3": "^4.0.1", "lodash": "^4.17.19", "react-is": "^16.10.2", - "react-resize-detector": "^8.0.4", - "react-smooth": "^2.0.2", + "react-smooth": "^2.0.5", "recharts-scale": "^0.4.4", - "reduce-css-calc": "^2.1.8", + "tiny-invariant": "^1.3.1", "victory-vendor": "^36.6.8" }, "engines": { - "node": ">=12" + "node": ">=14" }, "peerDependencies": { "prop-types": "^15.6.0", @@ -5084,33 +8084,64 @@ "decimal.js-light": "^2.4.1" } }, - "node_modules/reduce-css-calc": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", - "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", + "node_modules/recharts/node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/recharts/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, "dependencies": { - "css-unit-converter": "^1.1.1", - "postcss-value-parser": "^3.3.0" + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/reduce-css-calc/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" }, "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -5131,6 +8162,15 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dev": true, + "dependencies": { + "throttleit": "^1.0.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -5146,11 +8186,11 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -5174,133 +8214,84 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rrweb-cssom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" - }, - "node_modules/run-applescript": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/run-applescript/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/run-applescript/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/run-applescript/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, "dependencies": { - "path-key": "^3.0.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { "node": ">=8" } }, - "node_modules/run-applescript/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dependencies": { - "mimic-fn": "^2.1.0" + "glob": "^7.1.3" }, - "engines": { - "node": ">=6" + "bin": { + "rimraf": "bin.js" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/run-applescript/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/rollup": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.5.1.tgz", + "integrity": "sha512-0EQribZoPKpb5z1NW/QYm3XSR//Xr8BeEXU49Lc/mQmpmVVG5jPUVrpc2iptup/0WMrY9mzas0fxH+TjYvG2CA==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, "engines": { - "node": ">=6" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.5.1", + "@rollup/rollup-android-arm64": "4.5.1", + "@rollup/rollup-darwin-arm64": "4.5.1", + "@rollup/rollup-darwin-x64": "4.5.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.5.1", + "@rollup/rollup-linux-arm64-gnu": "4.5.1", + "@rollup/rollup-linux-arm64-musl": "4.5.1", + "@rollup/rollup-linux-x64-gnu": "4.5.1", + "@rollup/rollup-linux-x64-musl": "4.5.1", + "@rollup/rollup-win32-arm64-msvc": "4.5.1", + "@rollup/rollup-win32-ia32-msvc": "4.5.1", + "@rollup/rollup-win32-x64-msvc": "4.5.1", + "fsevents": "~2.3.2" } }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -5332,6 +8323,23 @@ "tslib": "^2.1.0" } }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -5402,11 +8410,54 @@ "node": ">=10" } }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5448,6 +8499,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -5490,11 +8547,25 @@ "node": ">=8" } }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -5513,6 +8584,55 @@ "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", "dev": true }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/std-env": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz", + "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==", + "dev": true + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -5548,17 +8668,18 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", "side-channel": "^1.0.4" }, "funding": { @@ -5566,13 +8687,13 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -5582,26 +8703,26 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5627,14 +8748,24 @@ } }, "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, "engines": { - "node": ">=12" + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, "node_modules/strip-json-comments": { @@ -5648,6 +8779,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strip-literal": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", + "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/styled-jsx": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", @@ -5671,9 +8814,9 @@ } }, "node_modules/sucrase": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", - "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", @@ -5692,6 +8835,15 @@ "node": ">=8" } }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/sucrase/node_modules/glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -5713,18 +8865,14 @@ } }, "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -5738,44 +8886,41 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/swr": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.4.tgz", + "integrity": "sha512-njiZ/4RiIhoOlAaLYDqwz5qH/KZXVilRLvomrx83HjzCWTfa+InyfAjv05PSFxnmLzZkNO9ZfvgoqzAaEI4sGQ==", + "dependencies": { + "client-only": "^0.0.1", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, - "node_modules/synckit": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", - "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", - "dependencies": { - "@pkgr/utils": "^2.3.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, "node_modules/tabbable": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "node_modules/tailwind-merge": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.13.2.tgz", - "integrity": "sha512-R2/nULkdg1VR/EL4RXg4dEohdoxNUJGLMnWIQnPKL+O9Twu7Cn3Rxi4dlXkDzZrEGtR+G+psSXFouWlpTyLhCQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz", + "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" } }, "node_modules/tailwindcss": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz", - "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz", + "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -5783,10 +8928,10 @@ "chokidar": "^3.5.3", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.0", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.18.2", + "jiti": "^1.19.1", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", @@ -5798,7 +8943,6 @@ "postcss-load-config": "^4.0.1", "postcss-nested": "^6.0.1", "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0", "resolve": "^1.22.2", "sucrase": "^3.32.0" }, @@ -5819,9 +8963,9 @@ } }, "node_modules/tar": { - "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -5834,41 +8978,114 @@ "node": ">=10" } }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throttleit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", + "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + }, + "node_modules/tinybench": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", + "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz", + "integrity": "sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz", + "integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==", "dev": true, - "dependencies": { - "any-promise": "^1.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "dependencies": { - "thenify": ">= 3.1.0 < 4" + "rimraf": "^3.0.0" }, "engines": { - "node": ">=0.8" + "node": ">=8.17.0" } }, - "node_modules/titleize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/to-regex-range": { @@ -5896,6 +9113,14 @@ "node": ">=6" } }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/tr46": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", @@ -5933,10 +9158,21 @@ "strip-bom": "^3.0.0" } }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/tslib": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -5957,6 +9193,24 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -5968,10 +9222,20 @@ "node": ">= 0.8.0" } }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, "engines": { "node": ">=10" }, @@ -5979,6 +9243,54 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-array-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", @@ -6004,6 +9316,12 @@ "node": ">=12.20" } }, + "node_modules/ufo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "dev": true + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -6018,26 +9336,34 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, "engines": { - "node": ">= 4.0.0" + "node": ">= 10.0.0" } }, "node_modules/untildify": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, "engines": { "node": ">=8" } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -6081,6 +9407,14 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6103,10 +9437,38 @@ "uuid": "8.3.2" } }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, "node_modules/victory-vendor": { - "version": "36.6.11", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.6.11.tgz", - "integrity": "sha512-nT8kCiJp8dQh8g991J/R5w5eE2KnO8EAIP0xocWlh9l2okngMWglOPoMZzJvek8Q1KUc4XE/mJxTZnvOB1sTYg==", + "version": "36.6.12", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.6.12.tgz", + "integrity": "sha512-pJrTkNHln+D83vDCCSUf0ZfxBvIaVrFHmrBOsnnLAbdqfudRACAj51He2zU94/IWq9464oTADcPVkmWAfNMwgA==", "dependencies": { "@types/d3-array": "^3.0.3", "@types/d3-ease": "^3.0.0", @@ -6124,6 +9486,161 @@ "d3-timer": "^3.0.1" } }, + "node_modules/vite": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.2.tgz", + "integrity": "sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.31", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz", + "integrity": "sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "mlly": "^1.4.0", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": ">=v14.18.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz", + "integrity": "sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==", + "dev": true, + "dependencies": { + "@types/chai": "^4.3.5", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "@vitest/expect": "0.34.6", + "@vitest/runner": "0.34.6", + "@vitest/snapshot": "0.34.6", + "@vitest/spy": "0.34.6", + "@vitest/utils": "0.34.6", + "acorn": "^8.9.0", + "acorn-walk": "^8.2.0", + "cac": "^6.7.14", + "chai": "^4.3.10", + "debug": "^4.3.4", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.1", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.3.3", + "strip-literal": "^1.0.1", + "tinybench": "^2.5.0", + "tinypool": "^0.7.0", + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0", + "vite-node": "0.34.6", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": ">=v14.18.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@vitest/browser": "*", + "@vitest/ui": "*", + "happy-dom": "*", + "jsdom": "*", + "playwright": "*", + "safaridriver": "*", + "webdriverio": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true + } + } + }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", @@ -6215,17 +9732,55 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6234,6 +9789,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -6265,9 +9836,9 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "engines": { "node": ">=10.0.0" }, @@ -6315,14 +9886,15 @@ } }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", "dev": true, "engines": { "node": ">= 14" @@ -6355,6 +9927,16 @@ "node": ">=12" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -6365,14 +9947,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zod": { - "version": "3.21.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", - "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } } } } diff --git a/package.json b/package.json index cf67dc4..f40e5fa 100644 --- a/package.json +++ b/package.json @@ -4,15 +4,19 @@ "private": true, "scripts": { "dev": "next dev", - "watch-css": "tailwindcss --input ./src/styles/globals.css --output ./src/styles/output.css --watch", + "css": "tailwindcss --input ./src/styles/globals.css --output ./src/styles/output.css --watch", "build": "tailwindcss ./src/styles/globals.css --output ./src/styles/output.css && next build", + "test:watch": "vitest watch", + "test": "vitest run --coverage", + "test:e2e": "cypress open --e2e", + "test:e2e:run": "cypress run --e2e", "start": "next start", "lint": "next lint" }, "dependencies": { "@heroicons/react": "^1.0.6", "@phosphor-icons/react": "^2.0.9", - "@tremor/react": "^2.1.0", + "@tremor/react": "^2.11.0", "@types/lodash": "^4.14.192", "@types/node": "18.15.11", "@types/react": "18.0.31", @@ -20,26 +24,40 @@ "b3api": "^0.0.1", "canvas": "^2.11.2", "cheerio": "^1.0.0-rc.12", - "eslint-config-next": "^13.4.4", + "eslint-config-next": "^13.4.19", + "js-cookie": "^3.0.5", "jsdom": "^21.1.1", "lodash": "^4.17.21", "moment": "^2.29.4", - "next": "^13.4.4", + "next": "^13.4.19", "react": "^18.2.0", "react-dom": "^18.2.0", "react-toastify": "^9.1.3", + "swr": "^2.2.2", + "tailwind-merge": "^1.14.0", "typescript": "5.0.3", "uuidv4": "^6.2.13", "xpath": "^0.0.32" }, "devDependencies": { + "@edge-runtime/vm": "^3.1.7", + "@next/eslint-plugin-next": "^13.4.13", "@rocketseat/eslint-config": "^1.2.0", + "@testing-library/react": "^14.1.2", + "@types/js-cookie": "^3.0.6", "@types/jsdom": "^21.1.1", + "@types/testing-library__jest-dom": "^6.0.0", + "@vitejs/plugin-react": "^4.2.0", + "@vitest/coverage-v8": "^0.34.6", "autoprefixer": "^10.4.14", "concurrently": "^8.2.0", + "cypress": "^13.6.0", + "dotenv": "^16.3.1", "eslint": "^8.37.0", + "eslint-plugin-cypress": "^2.15.1", "postcss": "^8.4.21", "postcss-import": "^15.1.0", - "tailwindcss": "^3.3.1" + "tailwindcss": "^3.3.1", + "vitest": "^0.34.6" } } diff --git a/public/about.txt b/public/about.txt new file mode 100644 index 0000000..7d6aedf --- /dev/null +++ b/public/about.txt @@ -0,0 +1,6 @@ +This favicon was generated using the following font: + +- Font Title: Leckerli One +- Font Author: Copyright (c) 2011 Gesine Todt (www.gesine-todt.de), with Reserved Font Names "Leckerli" +- Font Source: http://fonts.gstatic.com/s/leckerlione/v16/V8mCoQH8VCsNttEnxnGQ-1itLZxcBtItFw.ttf +- Font License: SIL Open Font License, 1.1 (http://scripts.sil.org/OFL)) diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000..5de3877 Binary files /dev/null and b/public/android-chrome-192x192.png differ diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png new file mode 100644 index 0000000..03bc399 Binary files /dev/null and b/public/android-chrome-512x512.png differ diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000..69ed2e1 Binary files /dev/null and b/public/apple-touch-icon.png differ diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000..9f96d62 Binary files /dev/null and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000..025f873 Binary files /dev/null and b/public/favicon-32x32.png differ diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..0e8b638 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/src/@types/ContextTypes.d.ts b/src/@types/ContextTypes.d.ts new file mode 100644 index 0000000..44c4f4a --- /dev/null +++ b/src/@types/ContextTypes.d.ts @@ -0,0 +1,48 @@ +import { Portfolio } from '@/@types/PortfoliosTypes' +import { Ticker } from '@/@types/TickersTypes' +import { ReactNode } from 'react' + +export interface TickerActionType { + type: 'INSERT' | 'REMOVE' | 'SET_VISIBILITY' + payload?: any +} + +export interface PortfolioActionType { + type: 'INSERT' | 'UPDATE' | 'REMOVE' + payload?: any +} + +export interface DataContextType { + tickers: Ticker[] + portfolios: Portfolio[] + dispatchTickers: React.Dispatch + dispatchPortfolios: React.Dispatch +} + +export interface PortfolioContextType { + portfolioId: string + tickers: Ticker[] +} + +export interface SidebarContextType { + isOpen: boolean + toggleSidebar: () => void + closeSidebar: () => void + openSidebar: () => void +} + +interface ModalConfig { + title: ReactNode + content: ReactNode + closeBtnTitle?: string + closeModal?: () => void +} + +export interface ModalContextType { + showModal: boolean + title: ReactNode + content?: ReactNode + closeBtnTitle?: string + closeModal: () => void + openModal: (config: ModalConfig) => void +} diff --git a/src/@types/DataTypes.d.ts b/src/@types/DataTypes.d.ts deleted file mode 100644 index 7b856f7..0000000 --- a/src/@types/DataTypes.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Portfolio } from '@/@types/PortfoliosTypes' -import { Result } from '@/@types/ResultsTypes' -import { Ticker } from '@/@types/TickersTypes' - -export type ActionsFunctionsTypes = - 'LOAD' | 'CLEAR' | - 'TICKERS_UPDATE' | 'TICKERS_INSERT' | 'TICKERS_REMOVE' | 'TICKERS_SET_VISIBILITY' | - 'PORTFOLIOS_UPDATE' | 'PORTFOLIOS_INSERT' | 'PORTFOLIOS_REMOVE' - -export interface DataType { - tickers: Ticker[] - portfolios: Portfolio[] -} - -export interface ActionsType { - type: ActionsFunctionsTypes - payload?: any -} - -export interface DataContextType { - data: DataType - results: Result[] - dispatch: React.Dispatch -} diff --git a/src/@types/PortfoliosTypes.d.ts b/src/@types/PortfoliosTypes.d.ts index df07262..31de4bc 100644 --- a/src/@types/PortfoliosTypes.d.ts +++ b/src/@types/PortfoliosTypes.d.ts @@ -2,17 +2,3 @@ export interface Portfolio { id: string name: string } - -export interface PortfolioResponse { - status: 'success' | 'error' - message: string -} - -export interface PortfoliosContextType { - portfolios: Portfolio[] - getPortfolio: (id: string) => Portfolio - listPortfolios: () => Portfolio[] - insertPortfolio: (portfolio: Omit) => PortfolioResponse - deletePortfolio: (id: string) => PortfolioResponse - updatePortfolio: (id: string, portfolio: Portfolio) => PortfolioResponse -} diff --git a/src/@types/QuotesTypes.d.ts b/src/@types/QuotesTypes.d.ts deleted file mode 100644 index 293e598..0000000 --- a/src/@types/QuotesTypes.d.ts +++ /dev/null @@ -1,90 +0,0 @@ -export interface HistoricalDataPrice { - date: number - open?: number - high?: number - low?: number - close: number - volume?: number - adjustedClose: number -} - -export interface CashDividend { - assetIssued: string - paymentDate: string - rate: number - relatedTo: string - approvedOn: string - isinCode: string - label: string - lastDatePrior: string - remarks: string -} - -export interface StockDividend { - assetIssued: string - factor: number - approvedOn: string - isinCode: string - label: string - lastDatePrior: string - remarks: string -} - -export interface Subscription { - assetIssued: string - percentage: number - priceUnit: number - tradingPeriod: string - subscriptionDate: string - approvedOn: string - isinCode: string - label: string - lastDatePrior: string - remarks: string -} - -export interface DividendsData { - cashDividends: CashDividend[] - stockDividends: StockDividend[] - subscriptions: Subscription[] -} - -export interface Result { - symbol: string - shortName: string - longName: string - currency: string - regularMarketPrice: number - regularMarketDayHigh: number - regularMarketDayLow: number - regularMarketDayRange: string - regularMarketChange: number - regularMarketChangePercent: number - regularMarketTime: string - marketCap: number - regularMarketVolume: number - regularMarketPreviousClose: number - regularMarketOpen: number - averageDailyVolume10Day: number - averageDailyVolume3Month: number - fiftyTwoWeekLowChange: number - fiftyTwoWeekRange: string - fiftyTwoWeekHighChange: number - fiftyTwoWeekHighChangePercent: number - fiftyTwoWeekLow: number - fiftyTwoWeekHigh: number - twoHundredDayAverage: number - twoHundredDayAverageChange: number - twoHundredDayAverageChangePercent: number - validRanges: string[] - historicalDataPrice: HistoricalDataPrice[] - priceEarnings: any - earningsPerShare: any - logourl: string - dividendsData: DividendsData -} - -export interface ResultQuotes { - results: Result[] - requestedAt: string -} diff --git a/src/@types/ResultsTypes.ts b/src/@types/ResultsTypes.ts deleted file mode 100644 index c2d2818..0000000 --- a/src/@types/ResultsTypes.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Ticker } from "./TickersTypes" - -export interface Result{ - ticker: string - dy: number - pvp: number - price: number - requestedAt: number - lastDividend: number - isError: boolean - isLoading: boolean -} - -export interface ResultsContextType { - results: Result[] - get: (ticker: string) => Result - load: (tickers: Ticker[]) => Promise -} diff --git a/src/@types/StocksTypes.d.ts b/src/@types/StocksTypes.d.ts new file mode 100644 index 0000000..32298f9 --- /dev/null +++ b/src/@types/StocksTypes.d.ts @@ -0,0 +1,10 @@ +export interface Stock { + name: string + location: string + variation: number + price: number +} + +export interface StockResult { + [keyof: string]: Stock +} diff --git a/src/@types/SuggestionsTypes.d.ts b/src/@types/SuggestionsTypes.d.ts new file mode 100644 index 0000000..7fdc5b1 --- /dev/null +++ b/src/@types/SuggestionsTypes.d.ts @@ -0,0 +1,3 @@ +export interface Suggestion { + ticker: string +} diff --git a/src/@types/TickerServiceTypes.d.ts b/src/@types/TickerServiceTypes.d.ts new file mode 100644 index 0000000..a86c1c4 --- /dev/null +++ b/src/@types/TickerServiceTypes.d.ts @@ -0,0 +1,18 @@ +export interface DividendsHistory { + amount: number + isinCode: string + paymentAt: number + monthPaymentAt: string +} + +export interface ResultsPriceHistory { + [key: string]: Record> +} + +export interface PriceHistory { + timestamp: number + date: string + avg: number + min: number + max: number +} diff --git a/src/@types/TickersTypes.d.ts b/src/@types/TickersTypes.d.ts index b2788c6..1a34a4e 100644 --- a/src/@types/TickersTypes.d.ts +++ b/src/@types/TickersTypes.d.ts @@ -1,26 +1,21 @@ -export interface TickerData{ - price: number - pvp: number - dy: number - lastDividend: number -} - export interface Ticker { + ticker: string portfolioId: string - isHidden: boolean quantity: number - ticker: string + isHidden: boolean } -export interface TickerActionResponse { - status: 'success' | 'error' - message: string +export interface TickerData { + ticker: string + dy12: number + pvp: number + price: number + dividend12: number + lastDividend: number + pricesHistory: any[] + dividendsHistory: any[] } -export interface TickersContextType { - tickers: Ticker[] - addTickers: (tickers: string[], portfolios: string[]) => Promise - removeTicker: (ticker: Ticker) => TickerActionResponse - updateTicker: (ticker: Ticker) => TickerActionResponse - listByPortfolioId: (id: string) => Ticker[] +export interface TickerResult extends Ticker { + data: TickerData } diff --git a/src/actions/portfoliosActions.test.ts b/src/actions/portfoliosActions.test.ts new file mode 100644 index 0000000..9ed7300 --- /dev/null +++ b/src/actions/portfoliosActions.test.ts @@ -0,0 +1,48 @@ +import { describe, expect, test } from 'vitest' +import { portfoliosActions } from './portfoliosActions' +import { Portfolio } from '@/@types/PortfoliosTypes' + +describe('portfoliosActions', () => { + const initialState: Portfolio[] = [ + { id: 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b', name: 'Portfolio 1' }, + { id: 'bdcfe013-ae51-4f79-b8a1-791f745e9116', name: 'Portfolio 2' }, + { id: 'b33c91c4-2661-462c-8cbd-a4501f629351', name: 'Portfolio 3' }, + ] + + test('should update the portfolio with the given payload', () => { + const newState = portfoliosActions.update(initialState, { + id: 'bdcfe013-ae51-4f79-b8a1-791f745e9116', + name: 'Portfolio Edited', + }) + + expect(newState).toEqual([ + { id: 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b', name: 'Portfolio 1' }, + { id: 'bdcfe013-ae51-4f79-b8a1-791f745e9116', name: 'Portfolio Edited' }, + { id: 'b33c91c4-2661-462c-8cbd-a4501f629351', name: 'Portfolio 3' }, + ]) + }) + + test('should insert a new portfolio into the state', () => { + const newState = portfoliosActions.insert(initialState, { + name: 'Portfolio New', + }) + + expect(newState).toEqual([ + { id: 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b', name: 'Portfolio 1' }, + { id: 'bdcfe013-ae51-4f79-b8a1-791f745e9116', name: 'Portfolio 2' }, + { id: 'b33c91c4-2661-462c-8cbd-a4501f629351', name: 'Portfolio 3' }, + { id: expect.any(String), name: 'Portfolio New' }, + ]) + }) + + test('should remove the specified portfolio from the state', () => { + const newState = portfoliosActions.remove(initialState, { + id: 'bdcfe013-ae51-4f79-b8a1-791f745e9116', + }) + + expect(newState).toEqual([ + { id: 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b', name: 'Portfolio 1' }, + { id: 'b33c91c4-2661-462c-8cbd-a4501f629351', name: 'Portfolio 3' }, + ]) + }) +}) diff --git a/src/actions/portfoliosActions.ts b/src/actions/portfoliosActions.ts index f6fa5fd..cc8aa1e 100644 --- a/src/actions/portfoliosActions.ts +++ b/src/actions/portfoliosActions.ts @@ -1,47 +1,31 @@ -import { DataType } from "@/@types/DataTypes" -import { Portfolio } from "@/@types/PortfoliosTypes" -import { findIndex } from 'lodash' +import { Portfolio } from '@/@types/PortfoliosTypes' import { v4 as uuid } from 'uuid' - export const portfoliosActions = { - update: (state: DataType, payload: any): DataType => { - const { portfolios } = state - - const index = findIndex(portfolios, { id: payload.id }) + update: (state: Portfolio[], payload: any): Portfolio[] => { + const portfolios = state.map((p) => { + if (p.id === payload.id) { + return payload + } - portfolios[index].name = payload.name + return p + }) - return { - ...state, - portfolios: [...portfolios] - } + return [...portfolios] }, - - insert: (state: DataType, payload: any): DataType => { - const { portfolios } = state - - const newPortfolio: Portfolio = { - id: uuid(), - name: payload.name - } - return { + insert: (state: Portfolio[], payload: any): Portfolio[] => { + return [ ...state, - portfolios: [...portfolios, newPortfolio] - } + { + id: uuid(), + name: payload.name, + }, + ] }, - - remove: (state: DataType, payload: any): DataType => { - const { portfolios } = state - const index = findIndex(portfolios, { id: payload.id }) - - portfolios.splice(index, 1) - - return { - ...state, - portfolios: [...portfolios] - } + remove: (state: Portfolio[], payload: any): Portfolio[] => { + const portfolios = state.filter((p) => p.id !== payload.id) + return [...portfolios] }, } diff --git a/src/actions/storageActions.ts b/src/actions/storageActions.ts deleted file mode 100644 index c516446..0000000 --- a/src/actions/storageActions.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { DataType } from "@/@types/DataTypes" -import { dataInitialState } from "@/reducers/dataReducer" - -export const storageActions = { - load: (state: DataType): DataType => { - const data = localStorage.getItem('data') - - if (data) { - return JSON.parse(data) - } - - return state - }, - - save: (state: DataType) => { - const data = JSON.stringify(state) - localStorage.setItem('data', data) - - return state - }, - - clear: () => { - const data = JSON.stringify(dataInitialState) - localStorage.setItem('data', data) - - return dataInitialState - } -} diff --git a/src/actions/tickersActions.test.ts b/src/actions/tickersActions.test.ts new file mode 100644 index 0000000..1f1eb8b --- /dev/null +++ b/src/actions/tickersActions.test.ts @@ -0,0 +1,68 @@ +/* eslint-disable prettier/prettier */ +import { describe, expect, test } from 'vitest' +import { Ticker } from '@/@types/TickersTypes' +import { tickersActions } from './tickersActions' + +describe('tickersActions', () => { + const initialState: Ticker[] = [ + { ticker: 'AABB11', portfolioId: 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b', isHidden: false, quantity: 1 }, + { ticker: 'AABB11', portfolioId: 'bdcfe013-ae51-4f79-b8a1-791f745e9116', isHidden: false, quantity: 1 }, + { ticker: 'AAXX11', portfolioId: 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b', isHidden: false, quantity: 1 }, + ] + + describe('insert', () => { + test('should insert new tickers into the state', () => { + const tickersList = ['AABB11', 'AAXX11'] + const portfoliosList = [ + 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b', + 'bdcfe013-ae51-4f79-b8a1-791f745e9116', + ] + + const newState = tickersActions.insert(initialState, { + tickersList, + portfoliosList, + }) + + expect(newState).toEqual([ + { ticker: 'AABB11', portfolioId: 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b', isHidden: false, quantity: 1 }, + { ticker: 'AABB11', portfolioId: 'bdcfe013-ae51-4f79-b8a1-791f745e9116', isHidden: false, quantity: 1 }, + { ticker: 'AAXX11', portfolioId: 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b', isHidden: false, quantity: 1 }, + { ticker: 'AAXX11', portfolioId: 'bdcfe013-ae51-4f79-b8a1-791f745e9116', isHidden: false, quantity: 1 }, + ]) + }) + }) + + describe('remove', () => { + test('should remove the specified ticker from the state', () => { + const ticker = 'AAXX11' + const portfolioId = 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b' + + const newState = tickersActions.remove(initialState, { + ticker, + portfolioId, + }) + + expect(newState).toEqual([ + { ticker: 'AABB11', portfolioId: 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b', isHidden: false, quantity: 1 }, + { ticker: 'AABB11', portfolioId: 'bdcfe013-ae51-4f79-b8a1-791f745e9116', isHidden: false, quantity: 1 }, + ]) + }) + }) + + describe('update', () => { + test('should update the specified ticker in the state', () => { + const newState = tickersActions.update(initialState, { + ticker: 'AABB11', + portfolioId: 'bdcfe013-ae51-4f79-b8a1-791f745e9116', + isHidden: true, + quantity: 5, + }) + + expect(newState).toEqual([ + { ticker: 'AABB11', portfolioId: 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b', isHidden: false, quantity: 1 }, + { ticker: 'AABB11', portfolioId: 'bdcfe013-ae51-4f79-b8a1-791f745e9116', isHidden: true, quantity: 5 }, + { ticker: 'AAXX11', portfolioId: 'e5d46968-3a05-46d1-b5ec-a003c2a38a3b', isHidden: false, quantity: 1 }, + ]) + }) + }) +}) diff --git a/src/actions/tickersActions.ts b/src/actions/tickersActions.ts index d031938..3f48cbd 100644 --- a/src/actions/tickersActions.ts +++ b/src/actions/tickersActions.ts @@ -1,77 +1,43 @@ -import { Ticker } from "@/@types/TickersTypes" -import { DataType } from "@/@types/DataTypes" -import { findIndex, uniqWith } from 'lodash' - -const defaultValues: Ticker = { - ticker: '', - portfolioId: '', - quantity: 0, - isHidden: false, -} +import { Ticker } from '@/@types/TickersTypes' +import { uniqWith } from 'lodash' +import { config } from '@/config' export const tickersActions = { - update: (state: DataType, { ticker, portfolioId, data }: any): DataType => { - const { tickers } = state - - const newTickers = tickers.map((t) => { - if (t.ticker === ticker.ticker && t.portfolioId === ticker.portfolioId) { - return ticker - } - - return t - }) - - return { ...state, tickers: newTickers } - }, - - insert: (state: DataType, { tickersList, portfoliosList }: any): DataType => { - const { tickers } = state - + insert: (state: Ticker[], { tickersList, portfoliosList }: any): Ticker[] => { const newTickers: Ticker[] = [] portfoliosList.forEach((portfolioId: string) => { tickersList.forEach((ticker: string) => { - newTickers.push({ ...defaultValues, ticker, portfolioId }) + newTickers.push({ ...config.defaults.ticker, ticker, portfolioId }) }) }) - const tickersFiltred = uniqWith([...tickers, ...newTickers], (a, b) => { + const tickersFiltred = uniqWith([...state, ...newTickers], (a, b) => { return a.ticker === b.ticker && a.portfolioId === b.portfolioId }) - // for (const ticker of tickersFiltred) { - // try { - // ticker.data = await fetchTicker(ticker.ticker) - // }catch (error) { - // ticker.isError = true - // } - // } - - return { - ...state, - tickers: tickersFiltred - } + return [...tickersFiltred] }, - remove: (state: DataType, { ticker, portfolioId }: any): DataType => { - const { tickers } = state + remove: (state: Ticker[], { ticker, portfolioId }: any): Ticker[] => { + const tickers = state.filter( + (i) => i.ticker !== ticker || i.portfolioId !== portfolioId, + ) - const index = findIndex(tickers, { ticker, portfolioId }) - tickers.splice(index, 1) - - return { ...state, tickers } + return [...tickers] }, - setVisibility: (state: DataType, { ticker, portfolioId, isHidden }: any): DataType => { - const { tickers } = state - - const newTickers = tickers.map((t) => { - if (t.ticker === ticker && t.portfolioId === portfolioId) { - return { ...t, isHidden } + update: (state: Ticker[], payload: any): Ticker[] => { + const tickers = state.map((i) => { + if ( + i.ticker === payload.ticker && + i.portfolioId === payload.portfolioId + ) { + return payload } - return t + return i }) - return { ...state, tickers: newTickers } - } + return [...tickers] + }, } diff --git a/src/app/api/ticker/[ticker]/route.ts b/src/app/api/ticker/[ticker]/route.ts new file mode 100644 index 0000000..47225ce --- /dev/null +++ b/src/app/api/ticker/[ticker]/route.ts @@ -0,0 +1,13 @@ +import { TickerService } from '@/services/TickerService' +import { NextResponse } from 'next/server' + +type ParamsType = { + params: { + ticker: string + } +} + +export const GET = async (request: Request, { params }: ParamsType) => { + const data = await new TickerService(params.ticker).fetch() + return NextResponse.json(data) +} diff --git a/src/app/api/tickers/route.ts b/src/app/api/tickers/route.ts new file mode 100644 index 0000000..a2a7491 --- /dev/null +++ b/src/app/api/tickers/route.ts @@ -0,0 +1,20 @@ +import { TickerData } from '@/@types/TickersTypes' +import { TickerService } from '@/services/TickerService' +import { NextResponse } from 'next/server' + +export const GET = async (request: Request) => { + const { searchParams } = new URL(request.url) + const tickers = (searchParams.get('tickers') || '').split(',').filter(Boolean) + + const results = await Promise.allSettled( + tickers.map((ticker) => new TickerService(ticker).fetch()), + ) + + const dataFiltred = results.filter( + ({ status }) => status === 'fulfilled', + ) as PromiseFulfilledResult[] + + const data = dataFiltred.map(({ value }) => value) + + return NextResponse.json(data) +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 23416cc..9dffdcb 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,14 +1,19 @@ import { ReactNode, Suspense } from 'react' -// import { ToastContainer } from 'react-toastify' import { Inter } from 'next/font/google' +import { ToastContainer } from 'react-toastify' + +import 'react-toastify/dist/ReactToastify.css' import { config } from '@/config' -import { Header } from '@/components/layout/Header' +import { Sidebar } from '@/components/layout/Sidebar' import { Main } from '@/components/layout/Main' -import { DataProvider } from '@/providers/DataProvider' +import { AppProvider } from '@/providers/AppProvider' -// import 'react-toastify/dist/ReactToastify.css' import '../styles/output.css' +import Loading from './loading' +import { HeaderMobile } from '@/components/layout/HeaderMobile' +import Modal from '@/components/common/Modal' +import { Term } from '@/components/common/Term' const inter = Inter({ weight: ['100', '200', '300', '400', '500', '600', '700', '800', '900'], @@ -25,14 +30,19 @@ export default function RootLayout({ children }: { children: ReactNode }) { className={inter.className} suppressHydrationWarning={true} > - - -
-
- {children} -
- {/* */} - + + + + + +
+ +
+ }>{children} +
+
+ +
) diff --git a/src/app/page.tsx b/src/app/page.tsx index b13569c..447f19d 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,11 +1,44 @@ -import { Info } from '@/components/home/Info' -import { Form } from '@/components/home/Form' +import { FormCard } from '@/components/pages/home/form-card' +import { HistoryCard } from '@/components/pages/home/history-chart' +import { SuggestionsCard } from '@/components/pages/home/suggestions-card' +import { TickersTable } from '@/components/pages/home/tickers-table' export default function Home() { return ( <> -
- +
+
+ + +
+
+ + + + + +
+
) } diff --git a/src/app/portfolios/[portfolioId]/details/page.tsx b/src/app/portfolios/[portfolioId]/details/page.tsx deleted file mode 100644 index 75c6349..0000000 --- a/src/app/portfolios/[portfolioId]/details/page.tsx +++ /dev/null @@ -1,61 +0,0 @@ -'use client' - -import { Portfolio } from "@/@types/PortfoliosTypes" -import { Ticker } from "@/@types/TickersTypes" -import { PageTitle } from "@/components/PageTitle" -import { Card } from "@tremor/react" -import { useEffect, useState } from "react" -import { usePortfolios } from "@/hooks/usePortfolios" -import { useTickers } from "@/hooks/useTickers" -import { DetailsTable } from "@/components/details/DatailsTable" -import { useData } from "@/hooks/useData" - -interface AnalisesProps { - params: { - portfolioId: string - } -} - -// const dataFormatter = (number: number) => -// `R$ ${Intl.NumberFormat('pt-BR').format(number).toString()}` - -export default function PagePortfolioDetails({ params }: AnalisesProps) { - const { data } = useData() - const { listByPortfolioId } = useTickers() - const { getPortfolio } = usePortfolios() - - const [portfolio, setPortfolio] = useState(false) - const [tickersFiltred, setTickersFiltred] = useState([]) - - useEffect(() => { - setPortfolio(getPortfolio(params.portfolioId)) - setTickersFiltred(listByPortfolioId(params.portfolioId)) - }, []) - - useEffect(() => { - setTickersFiltred(listByPortfolioId(params.portfolioId)) - }, [data]) - - if (!portfolio) { - return ( - Loading... - ) - } - - return ( -
- - Análise da carteira - {portfolio.name} - - - - - - - Dividendos pagos últimos 12 meses - - -
- ) -} diff --git a/src/app/simulator/page.tsx b/src/app/simulator/page.tsx new file mode 100644 index 0000000..3a2d8d5 --- /dev/null +++ b/src/app/simulator/page.tsx @@ -0,0 +1,116 @@ +'use client' +import { Button } from '@tremor/react' +import { useRef, useState } from 'react' +import { Card } from '@/components/common/Card' +import { + SimulatorResult, + simulatorCalculate, +} from '@/helpers/simulatorCalculate' +import { Table } from '@/components/pages/simulator/table' +import { Chart } from '@/components/pages/simulator/chart' +import { toCurrency } from '@/helpers/currency' +import { Metric } from '@/components/pages/simulator/metric' +import { Input } from '@/components/pages/simulator/input' + +export default function Simulator() { + const initialAmountRef = useRef(null) + const investmentAmountRef = useRef(null) + const periodInMonthsRef = useRef(null) + const taxePerYearRef = useRef(null) + + const [results, setResults] = useState([]) + const [totalInvested, setTotalInvested] = useState('R$ 0,00') + const [totalReceived, setTotalReceived] = useState('R$ 0,00') + const [totalAccumulated, setTotalAccumulated] = useState('R$ 0,00') + + const onSubmit = () => { + const params = { + initialAmount: Number(initialAmountRef.current?.value) || 0, + investmentAmount: Number(investmentAmountRef.current?.value) || 0, + periodInMonths: Number(periodInMonthsRef.current?.value) || 0, + taxePerYear: Number(taxePerYearRef.current?.value) || 0, + } + + const simulatorResults = simulatorCalculate(params) + const lastResult = simulatorResults[params.periodInMonths] + + setTotalInvested(toCurrency(lastResult.totalInvested)) + setTotalReceived(toCurrency(lastResult.totalReceived)) + setTotalAccumulated(toCurrency(lastResult.totalAccumulated)) + + setResults(simulatorResults) + } + + return ( + <> +
+ +
+ + + + + + + + + + +
+
+ + + + {results.length === 0 && ( +

+ Faça uma simulação para visualizar +

+ )} +
+ + + + {results.length === 0 && ( +

+ Faça uma simulação para visualizar +

+ )} + + + + ) +} diff --git a/src/components/PageTitle.tsx b/src/components/PageTitle.tsx deleted file mode 100644 index f7d0da8..0000000 --- a/src/components/PageTitle.tsx +++ /dev/null @@ -1,12 +0,0 @@ -'use client' - -import { Title } from "@tremor/react" -import { ReactNode } from "react" - -export function PageTitle({ children }: { children: ReactNode }) { - return ( - - {children} - - ) -} diff --git a/src/components/TableTickers.tsx b/src/components/TableTickers.tsx deleted file mode 100644 index ba6d769..0000000 --- a/src/components/TableTickers.tsx +++ /dev/null @@ -1,38 +0,0 @@ -'use client' - -import { Ticker } from '@/@types/TickersTypes' -import { - Table, - TableBody, - TableHead, - TableHeaderCell, - TableRow, -} from '@tremor/react' - -import { TableTickersRow } from './TableTickersRow' - -type Props = { - tickers: Ticker[] -} - -export function TableTickers({ tickers }: Props) { - - return ( -
- - - Papel - Valor Atual - PV/P - Dividend Yield - Últ. Rendimento - - - - {tickers.map((t) => ( - - ))} - -
- ) -} diff --git a/src/components/TableTickersRow.tsx b/src/components/TableTickersRow.tsx deleted file mode 100644 index 023931d..0000000 --- a/src/components/TableTickersRow.tsx +++ /dev/null @@ -1,36 +0,0 @@ -'use client' - -import { Ticker } from '@/@types/TickersTypes' -import { useResult } from '@/hooks/useResults' -import { TableCell, TableRow } from '@tremor/react' - -type Props = { - ticker: Ticker, -} - -export function TableTickersRow({ ticker }: Props) { - - const { dy, isError, isLoading, lastDividend, price } = useResult(ticker.ticker) - - if (isError || isLoading) { - return ( - - {ticker.ticker} - - - - - - - - - - ) - } - - return ( - - {ticker.ticker} - {price} - - - {dy} - {lastDividend} - - ) -} diff --git a/src/components/common/Card.test.tsx b/src/components/common/Card.test.tsx new file mode 100644 index 0000000..d185df4 --- /dev/null +++ b/src/components/common/Card.test.tsx @@ -0,0 +1,25 @@ +import { beforeEach, describe, expect, test } from 'vitest' +import { cleanup, render } from '@testing-library/react' +import React from 'react' +import { Card } from './Card' + +describe('Card', () => { + beforeEach(cleanup) + + test('renders the card correctly', () => { + const { getByTestId } = render( + +
Content
+
, + ) + + expect(getByTestId('title')).toBeInTheDocument() + expect(getByTestId('title').textContent).toBe('Title') + + expect(getByTestId('subtitle')).toBeInTheDocument() + expect(getByTestId('subtitle').textContent).toBe('Subtitle') + + expect(getByTestId('children')).toBeInTheDocument() + expect(getByTestId('children').textContent).toBe('Content') + }) +}) diff --git a/src/components/common/Card.tsx b/src/components/common/Card.tsx new file mode 100644 index 0000000..ebe498b --- /dev/null +++ b/src/components/common/Card.tsx @@ -0,0 +1,23 @@ +import { ReactElement, ReactNode } from 'react' +import { Card as CardTremor } from '@tremor/react' +import { Title } from '@/components/common/Title' + +interface Props { + children: ReactNode + subtitle?: string | ReactElement + title: string +} + +export function Card({ title, subtitle, children, ...props }: Props) { + return ( + + + <span data-testid="title">{title}</span> + <span data-testid="subtitle" className="text-gray-500 text-sm"> + {subtitle} + </span> + + {children} + + ) +} diff --git a/src/components/common/Logo.test.tsx b/src/components/common/Logo.test.tsx new file mode 100644 index 0000000..8995588 --- /dev/null +++ b/src/components/common/Logo.test.tsx @@ -0,0 +1,17 @@ +import { beforeEach, describe, expect, test } from 'vitest' +import { cleanup, render } from '@testing-library/react' +import React from 'react' +import { Logo } from './Logo' +import { config } from '@/config' + +describe('Logo', () => { + beforeEach(cleanup) + + test('renders the logo correctly', () => { + const { getByText } = render() + const title = config.app.metadata.title.default + + expect(getByText(title)).toBeInTheDocument() + expect(getByText(title).textContent).toBe(title) + }) +}) diff --git a/src/components/common/Logo.tsx b/src/components/common/Logo.tsx new file mode 100644 index 0000000..8f6e000 --- /dev/null +++ b/src/components/common/Logo.tsx @@ -0,0 +1,15 @@ +'use client' + +import { config } from '@/config' + +export function Logo() { + return ( + + ) +} diff --git a/src/components/common/Modal.test.tsx b/src/components/common/Modal.test.tsx new file mode 100644 index 0000000..ec44bfe --- /dev/null +++ b/src/components/common/Modal.test.tsx @@ -0,0 +1,52 @@ +import { beforeEach, describe, expect, test, vi } from 'vitest' +import { cleanup, fireEvent, render } from '@testing-library/react' +import Modal from './Modal' +import React from 'react' + +const closeModalMock = vi.fn() + +const useModalMock = { + title: 'Title', + content: 'content...', + showModal: true, + closeBtnTitle: 'close', + closeModal: closeModalMock, +} + +vi.mock('@/hooks/useModal', () => ({ + useModal: () => useModalMock, +})) + +describe('Modal', () => { + beforeEach(cleanup) + + test('renders the modal correctly', () => { + const { getByRole, getByTestId } = render() + + const buttom = getByRole('button', { name: /close/i }) + expect(buttom).toBeInTheDocument() + + const title = getByTestId('title') + expect(title).toBeInTheDocument() + expect(title.textContent).toBe('Title') + + const content = getByTestId('content') + expect(content).toBeInTheDocument() + expect(content.textContent).toBe('content...') + }) + + test('calls closeModal when the close button is clicked', () => { + const { getByTestId } = render() + + fireEvent.click(getByTestId('close-btn')) + + expect(closeModalMock).toHaveBeenCalled() + }) + + test('does not render the modal when showModal is false', () => { + useModalMock.showModal = false + + const { container } = render() + expect(container).toBeEmptyDOMElement() + }) +}) diff --git a/src/components/common/Modal.tsx b/src/components/common/Modal.tsx new file mode 100644 index 0000000..50cb64a --- /dev/null +++ b/src/components/common/Modal.tsx @@ -0,0 +1,46 @@ +'use client' + +import { useModal } from '@/hooks/useModal' +import { Button } from '@tremor/react' + +export default function Modal() { + const { showModal, title, content, closeBtnTitle, closeModal } = useModal() + + return ( + <> + {showModal ? ( + <> +
+
+
+
+
+ {title} +
+
+
+ {content} +
+
+ +
+
+
+
+
+ + ) : null} + + ) +} diff --git a/src/components/common/Term.test.tsx b/src/components/common/Term.test.tsx new file mode 100644 index 0000000..b0fe977 --- /dev/null +++ b/src/components/common/Term.test.tsx @@ -0,0 +1,21 @@ +import { beforeEach, describe, expect, test, vi } from 'vitest' +import { cleanup, render } from '@testing-library/react' +import { Term } from './Term' +import React from 'react' + +const openModalMock = vi.fn() + +vi.mock('@/hooks/useModal', () => ({ + useModal: () => ({ + openModal: openModalMock, + }), +})) + +describe('Term', () => { + beforeEach(cleanup) + + test('calls openModal when the term is rendered', () => { + render() + expect(openModalMock).toHaveBeenCalled() + }) +}) diff --git a/src/components/common/Term.tsx b/src/components/common/Term.tsx new file mode 100644 index 0000000..af92d8c --- /dev/null +++ b/src/components/common/Term.tsx @@ -0,0 +1,55 @@ +'use client' + +import { useModal } from '@/hooks/useModal' +import { useEffect } from 'react' +import Cookies from 'js-cookie' + +const TermContent = () => { + return ( + <> +

Prezado usuário,

+ +

+ Gostaríamos de informar que nosso site utiliza cookies e tecnologias + semelhantes do seu navegador para aprimorar sua experiência de navegação + e fornecer funcionalidades personalizadas. +

+ +

+ Os dados armazenados não contém informações pessoais sensíveis, como + nome, endereço ou alguma outra informação de indentificação. Nosso + compromisso com a privacidade é reforçado pela conformidade com a Lei + Geral de Proteção de Dados (LGPD), que garanta a proteção de suas + informações pessoais. +

+ +

+ Ao continuar navegando em nosso site, você está concordando com o uso + destas tecnologias. +

+ + ) +} + +export function Term() { + const { openModal } = useModal() + const cookieName = 'TermsOfUseAccepted' + + useEffect(() => { + if (Cookies.get(cookieName)) { + return + } + + openModal({ + content: , + title: 'Termos de uso', + closeBtnTitle: 'Aceitar e continuar navegando', + closeModal: () => { + Cookies.set(cookieName, 'true') + }, + }) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []) + + return <> +} diff --git a/src/components/common/Title.test.tsx b/src/components/common/Title.test.tsx new file mode 100644 index 0000000..99423aa --- /dev/null +++ b/src/components/common/Title.test.tsx @@ -0,0 +1,27 @@ +import { beforeEach, describe, expect, test } from 'vitest' +import { cleanup, render } from '@testing-library/react' +import { Title } from './Title' +import React from 'react' + +describe('Title', () => { + beforeEach(cleanup) + + test('renders the title correctly', () => { + const { getByTestId } = render( + + <span data-testid="children">Title Text</span> + , + ) + + expect(getByTestId('children')).toBeInTheDocument() + expect(getByTestId('children').textContent).toBe('Title Text') + }) + + test('applies additional class names correctly', () => { + const { getByText } = render( + Title Text, + ) + + expect(getByText('Title Text')).toHaveClass('custom-class') + }) +}) diff --git a/src/components/common/Title.tsx b/src/components/common/Title.tsx new file mode 100644 index 0000000..f88bdcf --- /dev/null +++ b/src/components/common/Title.tsx @@ -0,0 +1,18 @@ +'use client' + +import { cn } from '@/helpers/cn' +import { TitleProps, Title as TitleTremor } from '@tremor/react' + +export function Title({ children, ...props }: TitleProps) { + return ( + + {children} + + ) +} diff --git a/src/components/common/TooltipHelper.test.tsx b/src/components/common/TooltipHelper.test.tsx new file mode 100644 index 0000000..7ba384a --- /dev/null +++ b/src/components/common/TooltipHelper.test.tsx @@ -0,0 +1,33 @@ +import { beforeEach, describe, expect, test, vi } from 'vitest' +import { cleanup, fireEvent, render } from '@testing-library/react' +import { TooltipHelper } from './TooltipHelper' +import React from 'react' + +const openModalMock = vi.fn() +vi.mock('@/hooks/useModal', () => ({ + useModal: () => ({ + openModal: openModalMock, + }), +})) + +describe('TooltipHelper', () => { + beforeEach(cleanup) + + test('renders the tooltip correctly', () => { + const { getByTestId } = render( + , + ) + + expect(getByTestId('tooltip-button')).toBeInTheDocument() + }) + + test('opens the modal when the button is clicked', () => { + const { getByTestId } = render( + , + ) + + fireEvent.click(getByTestId('tooltip-button')) + + expect(openModalMock).toHaveBeenCalled() + }) +}) diff --git a/src/components/common/TooltipHelper.tsx b/src/components/common/TooltipHelper.tsx new file mode 100644 index 0000000..2aab1d5 --- /dev/null +++ b/src/components/common/TooltipHelper.tsx @@ -0,0 +1,38 @@ +'use client' + +import { ReactNode } from 'react' +import { useModal } from '@/hooks/useModal' +import { QuestionMarkCircleIcon } from '@heroicons/react/solid' + +type HelperTitleProps = { + title: string +} + +function HelperTitle({ title }: HelperTitleProps) { + return ( +
+ {title} + +
+ ) +} + +type TooltipHelperProps = { + title: string + content: ReactNode +} + +export function TooltipHelper({ title, content }: TooltipHelperProps) { + const { openModal } = useModal() + + return ( +
+ +
+ ) +} diff --git a/src/components/details/DatailsTable.tsx b/src/components/details/DatailsTable.tsx deleted file mode 100644 index e67deba..0000000 --- a/src/components/details/DatailsTable.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { Ticker } from '@/@types/TickersTypes' -import { - Table, - TableBody, - TableHead, - TableHeaderCell, - TableRow, -} from '@tremor/react' -import { Row } from './table/Row' - -type Props = { - tickers: Ticker[] -} - -export function DetailsTable({ tickers }: Props) { - return ( - - - - Papel - Valor Atual - PV/P - Dividend Yield - Últ. Rendimento - - - - - {tickers.map((t) => ( - - ))} - -
- ) -} diff --git a/src/components/details/table/Remove.tsx b/src/components/details/table/Remove.tsx deleted file mode 100644 index 7a600c8..0000000 --- a/src/components/details/table/Remove.tsx +++ /dev/null @@ -1,20 +0,0 @@ -'use client' - -import { useTickers } from '@/hooks/useTickers' -import { Button, Icon } from '@tremor/react' -import { Ticker } from '@/@types/TickersTypes' -import { Trash } from '@phosphor-icons/react' - -type Props = { - ticker: Ticker, -} - -export function Remove({ ticker }: Props) { - const { removeTicker } = useTickers() - - return ( - - ) -} diff --git a/src/components/details/table/Row.tsx b/src/components/details/table/Row.tsx deleted file mode 100644 index 10d0505..0000000 --- a/src/components/details/table/Row.tsx +++ /dev/null @@ -1,46 +0,0 @@ -'use client' - -import { TableCell, TableRow } from '@tremor/react' -import { Ticker } from '@/@types/TickersTypes' -import { Remove } from './Remove' -import { useResult } from '@/hooks/useResults' -import { Visibility } from './Visibility' - -type Props = { - ticker: Ticker, -} - -export function Row({ ticker }: Props) { - const { dy, isError, isLoading, lastDividend, price } = useResult(ticker.ticker) - - if (isError || isLoading) { - return ( - - {ticker.ticker} - - - - - - - - - - - - - - ) - } - - return ( - - {ticker.ticker} - {price} - - - {dy} - {lastDividend} - - - - - - - ) -} diff --git a/src/components/details/table/Visibility.tsx b/src/components/details/table/Visibility.tsx deleted file mode 100644 index 7d2fa7c..0000000 --- a/src/components/details/table/Visibility.tsx +++ /dev/null @@ -1,23 +0,0 @@ -'use client' - -import { useTickers } from '@/hooks/useTickers' -import { Button, Icon } from '@tremor/react' -import { Ticker } from '@/@types/TickersTypes' -import { Eye, EyeSlash, Trash } from '@phosphor-icons/react' - -type Props = { - ticker: Ticker, - isDisabled?: boolean, -} - -export function Visibility({ ticker, isDisabled = false}: Props) { - const { setVisibility } = useTickers() - - const icon = isDisabled || ticker.isHidden ? EyeSlash : Eye - - return ( - - ) -} diff --git a/src/components/home/Form/index.tsx b/src/components/home/Form/index.tsx deleted file mode 100644 index 3fd22a3..0000000 --- a/src/components/home/Form/index.tsx +++ /dev/null @@ -1,44 +0,0 @@ -'use client' - -import { Button, Title } from '@tremor/react' -import { useState } from 'react' -import { SelectTickers } from './SelectTickers' -import { SelectPortfolios } from './SelectPortfolios' -import { useTickers } from '@/hooks/useTickers' - -export function Form() { - const { addTickers } = useTickers() - - const [portfolioSelected, setPortfolioSelected] = useState([]) - const [tickersSelected, setTickersSelected] = useState([]) - - const onTickersSelected = (value: any) => setTickersSelected(value) - const onPortfoliosSelected = (value: any) => setPortfolioSelected(value) - - const onSubmit = () => { - console.log('onSubmit...'); - - if (!portfolioSelected.length || !tickersSelected.length) { - return console.error('Portfolio selection') - } - - addTickers(tickersSelected, portfolioSelected) - } - - return ( -
- - Análise de Fundos Imobiliários - - -
- - - - -
-
- ) -} diff --git a/src/components/home/Info/InfoHeader.tsx b/src/components/home/Info/InfoHeader.tsx deleted file mode 100644 index d55098b..0000000 --- a/src/components/home/Info/InfoHeader.tsx +++ /dev/null @@ -1,18 +0,0 @@ -'use client' - -import { Title } from "@tremor/react" -import { InfoHeaderButtons } from "./InfoHeaderButtons" - -type Props = { - portfolioId: string - portfolioName: string -} - -export function InfoHeader({ portfolioId, portfolioName }: Props) { - return ( -
- {portfolioName} - -
- ) -} \ No newline at end of file diff --git a/src/components/home/Info/InfoHeaderButtons.tsx b/src/components/home/Info/InfoHeaderButtons.tsx deleted file mode 100644 index 3ea840b..0000000 --- a/src/components/home/Info/InfoHeaderButtons.tsx +++ /dev/null @@ -1,23 +0,0 @@ -'use client' - -import { Button, Icon } from "@tremor/react" -import { PencilSimple, ChartLineUp } from '@phosphor-icons/react' -import Link from "next/link" - -type Props = { - portfolioId: string -} - -export function InfoHeaderButtons({ portfolioId }: Props) { - return ( -
- - - - - - - -
- ) -} diff --git a/src/components/home/Info/InfoTable.tsx b/src/components/home/Info/InfoTable.tsx deleted file mode 100644 index f41afa9..0000000 --- a/src/components/home/Info/InfoTable.tsx +++ /dev/null @@ -1,33 +0,0 @@ -'use client' - -import { Card } from '@tremor/react' - -import { useTickers } from '@/hooks/useTickers' -import { TableTickers } from '@/components/TableTickers' -import { InfoHeader } from './InfoHeader' - -type Props = { - portfolioId: string - portfolioName: string -} - -export function InfoTable({ portfolioId, portfolioName }: Props) { - const { listByPortfolioId } = useTickers() - const tickers = listByPortfolioId(portfolioId) - - if (!tickers.length) { - return ( - - -

Sem ativos nesta carteira

-
- ) - } - - return ( - - - - - ) -} diff --git a/src/components/home/Info/index.tsx b/src/components/home/Info/index.tsx deleted file mode 100644 index 2915cbb..0000000 --- a/src/components/home/Info/index.tsx +++ /dev/null @@ -1,21 +0,0 @@ -'use client' - -import { usePortfolios } from '@/hooks/usePortfolios' -import { InfoTable } from './InfoTable' -import { Title } from '@tremor/react' - -export function Info() { - const { listPortfolios } = usePortfolios() - - return ( -
- Minhas Carteiras - -
- {listPortfolios().map((g) => ( - - ))} -
-
- ) -} diff --git a/src/components/layout/Header.tsx b/src/components/layout/Header.tsx deleted file mode 100644 index 2d9e1e5..0000000 --- a/src/components/layout/Header.tsx +++ /dev/null @@ -1,18 +0,0 @@ -'use client' - -import { config } from '@/config' -import { List, Gear } from '@phosphor-icons/react' - -export function Header() { - return ( -
- -
- ) -} diff --git a/src/components/layout/HeaderMobile.test.tsx b/src/components/layout/HeaderMobile.test.tsx new file mode 100644 index 0000000..211f724 --- /dev/null +++ b/src/components/layout/HeaderMobile.test.tsx @@ -0,0 +1,28 @@ +import { beforeEach, describe, expect, test, vi } from 'vitest' +import { cleanup, fireEvent, render } from '@testing-library/react' +import React from 'react' +import { HeaderMobile } from './HeaderMobile' + +const useSidebarMock = vi.fn() +vi.mock('@/hooks/useSidebar', () => ({ + useSidebar: () => ({ + toggleSidebar: useSidebarMock, + }), +})) + +describe('HeaderMobile', () => { + beforeEach(cleanup) + + test('renders the card correctly', () => { + const { getByTestId } = render() + expect(getByTestId('sidebar-button-overlay')).toBeInTheDocument() + }) + + test('calls toggleSidebar on button click', () => { + const { getByTestId } = render() + + fireEvent.click(getByTestId('sidebar-button-overlay')) + + expect(useSidebarMock).toHaveBeenCalled() + }) +}) diff --git a/src/components/layout/HeaderMobile.tsx b/src/components/layout/HeaderMobile.tsx new file mode 100644 index 0000000..5e54c50 --- /dev/null +++ b/src/components/layout/HeaderMobile.tsx @@ -0,0 +1,24 @@ +'use client' + +import { Button } from '@tremor/react' +import { Logo } from '../common/Logo' +import { List } from '@phosphor-icons/react' +import { useSidebar } from '@/hooks/useSidebar' + +export function HeaderMobile() { + const { toggleSidebar } = useSidebar() + + return ( +
+ + +
+ ) +} diff --git a/src/components/layout/Main.test.tsx b/src/components/layout/Main.test.tsx new file mode 100644 index 0000000..cb23d61 --- /dev/null +++ b/src/components/layout/Main.test.tsx @@ -0,0 +1,39 @@ +import { beforeEach, describe, expect, test, vi } from 'vitest' +import { cleanup, fireEvent, render } from '@testing-library/react' +import React from 'react' +import { Main } from './Main' + +const sideBarMock = { + toggleSidebar: vi.fn(), + closeSidebar: vi.fn(), + isOpen: true, +} + +vi.mock('@/hooks/useSidebar', () => ({ + useSidebar: () => sideBarMock, +})) + +describe('Main', () => { + beforeEach(cleanup) + + test('renders the card correctly', () => { + const { findAllByText } = render(
main content
) + expect(findAllByText('main content')).toBeTruthy() + }) + + test('calls toggleSidebar on button click', () => { + const { getByTestId } = render(
main content
) + + fireEvent.click(getByTestId('sidebar-button-overlay')) + + expect(sideBarMock.closeSidebar).toHaveBeenCalled() + }) + + test('renders the backdrop when sidebar is open', () => { + sideBarMock.isOpen = false + const { queryByTestId, getByText } = render(
main content
) + + expect(getByText('main content')).toBeTruthy() + expect(queryByTestId('button')).toBeNull() + }) +}) diff --git a/src/components/layout/Main.tsx b/src/components/layout/Main.tsx index bf481ed..303466f 100644 --- a/src/components/layout/Main.tsx +++ b/src/components/layout/Main.tsx @@ -1,5 +1,28 @@ +'use client' + +import { cn } from '@/helpers/cn' +import { useSidebar } from '@/hooks/useSidebar' import { ReactNode } from 'react' export function Main({ children }: { children: ReactNode }) { - return
{children}
+ const { isOpen, closeSidebar } = useSidebar() + + return ( + <> + {isOpen && ( +
+ )} +
+
+ {children} +
+
+ + ) } diff --git a/src/components/layout/Sidebar.test.tsx b/src/components/layout/Sidebar.test.tsx new file mode 100644 index 0000000..89bf43a --- /dev/null +++ b/src/components/layout/Sidebar.test.tsx @@ -0,0 +1,37 @@ +import { beforeEach, describe, expect, test, vi } from 'vitest' +import { cleanup, render } from '@testing-library/react' +import React from 'react' +import { Sidebar } from './Sidebar' + +const sideBarMock = { + isOpen: true, +} + +vi.mock('@/hooks/useSidebar', () => ({ + useSidebar: () => sideBarMock, +})) + +describe('Sidebar', () => { + beforeEach(cleanup) + + test('renders the sidebar correctly', () => { + const { getAllByTestId } = render() + const items = getAllByTestId('sidebar-menu-item') + + expect(items.length).toBe(2) + expect(items[0]).toHaveTextContent('Minha Carteira') + expect(items[1]).toHaveTextContent('Simulador') + }) + + test('renders the sidebar correctly when it is closed', () => { + sideBarMock.isOpen = false + const { getByTestId } = render() + expect(getByTestId('sidebar')).not.toHaveClass('left-0') + }) + + test('renders the sidebar correctly when it is open', () => { + sideBarMock.isOpen = true + const { getByTestId } = render() + expect(getByTestId('sidebar')).toHaveClass('left-0') + }) +}) diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx new file mode 100644 index 0000000..810b468 --- /dev/null +++ b/src/components/layout/Sidebar.tsx @@ -0,0 +1,37 @@ +'use client' + +import { Calculator, Wallet } from '@phosphor-icons/react' +import { SidebarMenuItem } from './SidebarMenuItem' +import { Logo } from '../common/Logo' +import { useSidebar } from '@/hooks/useSidebar' +import { cn } from '@/helpers/cn' + +export function Sidebar() { + const { isOpen } = useSidebar() + + return ( + + ) +} diff --git a/src/components/layout/SidebarMenuItem.test.tsx b/src/components/layout/SidebarMenuItem.test.tsx new file mode 100644 index 0000000..70ad0f8 --- /dev/null +++ b/src/components/layout/SidebarMenuItem.test.tsx @@ -0,0 +1,20 @@ +import { beforeEach, describe, expect, test } from 'vitest' +import { cleanup, render } from '@testing-library/react' +import React from 'react' +import { SidebarMenuItem } from './SidebarMenuItem' +import { Calculator } from '@phosphor-icons/react' + +describe('SidebarMenuItem', () => { + beforeEach(cleanup) + + test('renders the menu item correctly', () => { + const label = 'Minha Carteira' + + const { getByText } = render( + , + ) + + const elLabel = getByText(label) + expect(elLabel).toHaveTextContent(label) + }) +}) diff --git a/src/components/layout/SidebarMenuItem.tsx b/src/components/layout/SidebarMenuItem.tsx new file mode 100644 index 0000000..241ed2d --- /dev/null +++ b/src/components/layout/SidebarMenuItem.tsx @@ -0,0 +1,27 @@ +import { useSidebar } from '@/hooks/useSidebar' +import { Icon } from '@phosphor-icons/react' +import Link from 'next/link' + +interface MenuItemProps { + icon: Icon + label: string + href: string +} + +export function SidebarMenuItem({ label, icon: Icon, href }: MenuItemProps) { + const { closeSidebar } = useSidebar() + + return ( +
  • + + + {label} + +
  • + ) +} diff --git a/src/components/home/Form/SelectPortfolios.tsx b/src/components/pages/home/form-card/SelectPortfolios.tsx similarity index 100% rename from src/components/home/Form/SelectPortfolios.tsx rename to src/components/pages/home/form-card/SelectPortfolios.tsx diff --git a/src/components/home/Form/SelectTickers.tsx b/src/components/pages/home/form-card/SelectTickers.tsx similarity index 95% rename from src/components/home/Form/SelectTickers.tsx rename to src/components/pages/home/form-card/SelectTickers.tsx index 0d01e85..a0e4eb4 100644 --- a/src/components/home/Form/SelectTickers.tsx +++ b/src/components/pages/home/form-card/SelectTickers.tsx @@ -14,9 +14,8 @@ export function SelectTickers(props: SelectTickersProps) {
    {getFundsStorage().map((f) => { return ( diff --git a/src/components/pages/home/form-card/index.test.tsx b/src/components/pages/home/form-card/index.test.tsx new file mode 100644 index 0000000..1d826f8 --- /dev/null +++ b/src/components/pages/home/form-card/index.test.tsx @@ -0,0 +1,27 @@ +import { beforeEach, describe, expect, test, vi } from 'vitest' +import { cleanup, fireEvent, render } from '@testing-library/react' +import React from 'react' +import { FormCard } from './index' + +const addTickersMock = vi.fn() +vi.mock('@/hooks/useTickers', () => ({ + useTickers: vi.fn(() => ({ + addTickers: addTickersMock, + })), +})) + +describe('FormCard', () => { + beforeEach(cleanup) + + test('renders the form card correctly', () => { + const { getByText, getByRole } = render() + const addButton = getByRole('button', { name: 'Adicionar' }) + + expect(getByText('Fundos imobiliários')).toBeInTheDocument() + expect(getByText('Selecione os fundos imobiliários')).toBeInTheDocument() + expect(addButton).toBeInTheDocument() + + fireEvent.click(addButton) + expect(addTickersMock).toHaveBeenCalledTimes(1) + }) +}) diff --git a/src/components/pages/home/form-card/index.tsx b/src/components/pages/home/form-card/index.tsx new file mode 100644 index 0000000..ccdc2a9 --- /dev/null +++ b/src/components/pages/home/form-card/index.tsx @@ -0,0 +1,31 @@ +'use client' + +import { Button } from '@tremor/react' +import { useState } from 'react' +import { SelectTickers } from './SelectTickers' +import { useTickers } from '@/hooks/useTickers' +import { portfoliosInitialState } from '@/storage/portfoliosInitialState' +import { Card } from '@/components/common/Card' + +export function FormCard() { + const { addTickers } = useTickers() + + const [tickersSelected, setTickersSelected] = useState([]) + + const onTickersSelected = (value: string[]) => setTickersSelected(value) + + const onSubmit = () => { + addTickers(tickersSelected, [portfoliosInitialState[0].id]) + } + + return ( + +
    + + +
    +
    + ) +} diff --git a/src/components/pages/home/history-chart/Chart.tsx b/src/components/pages/home/history-chart/Chart.tsx new file mode 100644 index 0000000..3aff0ee --- /dev/null +++ b/src/components/pages/home/history-chart/Chart.tsx @@ -0,0 +1,50 @@ +import { toCurrency } from '@/helpers/currency' +import { AreaChart } from '@tremor/react' + +interface Props { + data: any[] + categories: string[] +} + +export function Chart({ data = [], categories = [] }: Props) { + if (!data.length || !categories.length) { + return null + } + + return ( + + ) +} diff --git a/src/components/pages/home/history-chart/index.tsx b/src/components/pages/home/history-chart/index.tsx new file mode 100644 index 0000000..aea0b6d --- /dev/null +++ b/src/components/pages/home/history-chart/index.tsx @@ -0,0 +1,106 @@ +'use client' + +import { usePortfolioFetch } from '@/hooks/usePortfolioFetch' +import { usePortfolios } from '@/hooks/usePortfolios' +import { Card } from '../../../common/Card' +import { TickerData } from '@/@types/TickersTypes' +import { Chart } from './Chart' +import { getLastDays } from '@/helpers/getLastDays' +import { getLastMonths } from '@/helpers/getLastMonths' +import { mergeArrayOfObjects } from '@/helpers/mergeArrayOfObjects' + +type Report = 'pricesHistory' | 'dividendsHistory' + +interface Props { + report: Report + metric: string + subtitle: string + title: string +} +const convertData = ( + dateList: string[], + tickers: TickerData[], + report: Report, + metric: string, +) => { + const data = dateList.map((date) => { + const rowData = tickers.map((ticker) => { + const reportData = ticker[report] + const result = reportData.find((history) => { + return history.date === date + }) + + const value = result ? result[metric] : 0 + return { date, [ticker.ticker]: value } + }) + + return mergeArrayOfObjects(rowData) + }) + + return data.reverse().filter((row) => { + return Object.values(row).every((value) => { + if (String(value).includes('/')) { + return true + } + + return value !== 0 + }) + }) +} + +const getCategories = (tickers: TickerData[]) => { + return tickers.map((ticker) => { + return ticker.ticker + }) +} + +export function HistoryCard({ report, title, subtitle, metric }: Props) { + const { tickers } = usePortfolios() + + const dateList = + report === 'dividendsHistory' ? getLastMonths(12) : getLastDays(20) + + const { + error, + isLoading, + data: tickersData, + } = usePortfolioFetch(tickers.filter((t) => !t.isHidden)) + + if (isLoading || !tickersData) { + return ( + +

    Carregando...

    +
    + ) + } + + if (error) { + return ( + +

    + Ocorreu um erro ao carregar os dados! +

    +
    + ) + } + + if (tickersData.length === 0) { + return ( + +

    + Adicione os ativos na carteira para visualizar +

    +
    + ) + } + + const data = convertData(dateList, tickersData, report, metric) + + const categories = getCategories(tickersData) + + return ( + + + + ) +} diff --git a/src/components/pages/home/stocks-cards/StockCard.tsx b/src/components/pages/home/stocks-cards/StockCard.tsx new file mode 100644 index 0000000..6d8a60e --- /dev/null +++ b/src/components/pages/home/stocks-cards/StockCard.tsx @@ -0,0 +1,25 @@ +import { cn } from '@/helpers/cn' +import { Card, Text, BadgeDelta, Metric, CardProps } from '@tremor/react' + +interface Props extends CardProps { + title: string + points: number + percentage: number +} + +export function StockCard({ title, points, percentage, className }: Props) { + const type = percentage > 0 ? 'increase' : 'decrease' + const color = percentage > 0 ? 'green' : 'red' + + return ( + +
    + {title} + + {percentage}% + +
    + {points} +
    + ) +} diff --git a/src/components/pages/home/stocks-cards/index.tsx b/src/components/pages/home/stocks-cards/index.tsx new file mode 100644 index 0000000..c8aef5c --- /dev/null +++ b/src/components/pages/home/stocks-cards/index.tsx @@ -0,0 +1,10 @@ +import { StockCard } from './StockCard' + +export function StocksCards() { + return ( +
    + + +
    + ) +} diff --git a/src/components/pages/home/suggestions-card/index.tsx b/src/components/pages/home/suggestions-card/index.tsx new file mode 100644 index 0000000..8d3f68c --- /dev/null +++ b/src/components/pages/home/suggestions-card/index.tsx @@ -0,0 +1,65 @@ +'use client' + +import { Button, ListItem, List, Card } from '@tremor/react' +import { useEffect, useState } from 'react' +import { Suggestion } from '@/@types/SuggestionsTypes' +import { usePortfolios } from '@/hooks/usePortfolios' +import { ArrowsClockwise } from '@phosphor-icons/react' +import { useTickers } from '@/hooks/useTickers' +import { Title } from '@/components/common/Title' + +export function SuggestionsCard() { + const { addTickers } = useTickers() + const { getSuggestions, portfolioId } = usePortfolios() + const [suggestions, setSuggestions] = useState([]) + + const onReload = () => { + setSuggestions(getSuggestions()) + } + + const addTicker = (ticker: string) => { + addTickers([ticker], [portfolioId]) + + const newSuggestions = suggestions.filter((s) => s.ticker !== ticker) + + if (newSuggestions.length) { + return setSuggestions(newSuggestions) + } + + onReload() + } + + // eslint-disable-next-line react-hooks/exhaustive-deps + useEffect(onReload, []) + + return ( + + + <span>Talvez tenha interesse</span> + <Button + size="xs" + onClick={onReload} + variant="secondary" + className="text-gray-500 text-sm" + > + <ArrowsClockwise /> + </Button> + + + {suggestions.map((suggestion) => ( + + {suggestion.ticker} + + + + + ))} + + + ) +} diff --git a/src/components/pages/home/tickers-table/BtnRemove.tsx b/src/components/pages/home/tickers-table/BtnRemove.tsx new file mode 100644 index 0000000..4b5f099 --- /dev/null +++ b/src/components/pages/home/tickers-table/BtnRemove.tsx @@ -0,0 +1,28 @@ +'use client' + +import { useTickers } from '@/hooks/useTickers' +import { Button, Icon } from '@tremor/react' +import { Ticker } from '@/@types/TickersTypes' +import { Trash } from '@phosphor-icons/react' + +type Props = { + ticker: Ticker + isDisabled?: boolean +} + +export function BtnRemove({ ticker, isDisabled = false }: Props) { + const { removeTicker } = useTickers() + + return ( + + ) +} diff --git a/src/components/pages/home/tickers-table/BtnVisibility.tsx b/src/components/pages/home/tickers-table/BtnVisibility.tsx new file mode 100644 index 0000000..78777da --- /dev/null +++ b/src/components/pages/home/tickers-table/BtnVisibility.tsx @@ -0,0 +1,29 @@ +'use client' + +import { useTickers } from '@/hooks/useTickers' +import { Button, Icon } from '@tremor/react' +import { Ticker } from '@/@types/TickersTypes' +import { Eye, EyeClosed } from '@phosphor-icons/react' + +type Props = { + ticker: Ticker + isDisabled?: boolean +} + +export function BtnVisibility({ ticker, isDisabled = false }: Props) { + const { setVisibility } = useTickers() + const icon = isDisabled || ticker.isHidden ? EyeClosed : Eye + + return ( + + ) +} diff --git a/src/components/pages/home/tickers-table/Cell.tsx b/src/components/pages/home/tickers-table/Cell.tsx new file mode 100644 index 0000000..fac8e00 --- /dev/null +++ b/src/components/pages/home/tickers-table/Cell.tsx @@ -0,0 +1,17 @@ +import { TableCell } from '@tremor/react' + +type Props = { + children: React.ReactNode + isHidden?: boolean +} + +export function Cell({ children, isHidden = false }: Props) { + const className = + 'text-center ' + (isHidden ? 'text-gray-300 line-through;' : '') + + return ( + <> + {children} + + ) +} diff --git a/src/components/pages/home/tickers-table/HeaderCell.tsx b/src/components/pages/home/tickers-table/HeaderCell.tsx new file mode 100644 index 0000000..f9766fc --- /dev/null +++ b/src/components/pages/home/tickers-table/HeaderCell.tsx @@ -0,0 +1,19 @@ +import { TooltipHelper } from '@/components/common/TooltipHelper' +import { TableHeaderCell } from '@tremor/react' +import { ReactNode } from 'react' + +type Props = { + title: string + helper?: ReactNode +} + +export function HeaderCell({ title, helper }: Props) { + return ( + +
    + {title} + {helper && } +
    +
    + ) +} diff --git a/src/components/pages/home/tickers-table/Helpers.tsx b/src/components/pages/home/tickers-table/Helpers.tsx new file mode 100644 index 0000000..c6e677c --- /dev/null +++ b/src/components/pages/home/tickers-table/Helpers.tsx @@ -0,0 +1,88 @@ +import { Callout } from '@tremor/react' +import { ReactNode } from 'react' + +import { ExclamationCircleIcon } from '@heroicons/react/solid' + +interface HelperContentProps { + formula?: string + children: ReactNode +} + +export const HelperContent = ({ children, formula }: HelperContentProps) => { + return ( + <> +
    {children}
    + {formula && ( +
    + Cálculo: + {formula} +
    + )} + + ) +} + +export const HelperPVP = () => { + return ( + + Essa métrica reflete o montante que o mercado está disposto a investir no + patrimônio da empresa. Quando é inferior a 1, sugere que a empresa está + sendo comercializada por um valor inferior ao seu valor patrimonial real. + + ) +} + +export const HelperDY = () => { + return ( + + O Dividend Yield é uma métrica financeira que representa a porcentagem do + dividendo distribuídos pela empresa nos últimos 12 meses em relação ao seu + preço de mercado por ação. É usado por investidores para avaliar o retorno + de dividendos potencial de um investimento em ações. Quanto maior o + Dividend Yield, maior o potencial de renda gerada pelos dividendos. + + ) +} + +export const HelperLastDividend = () => { + return ( + + Último redimento pago + + ) +} + +export const HelperSumDividends = () => { + return ( + + Soma dos redimentos pagos dos últimos 12 meses + + ) +} + +export const HelperTicker = () => { + return ( + + Nome do indetificador do ativo da empresa, também conhecido como papel, + symbol, ticker, ticket, etc... + + ) +} + +export const HelperPrice = () => { + return ( + + Valor atual do ativo + + Por favor, esteja ciente de que os preços das ações exibidos podem ter + um atraso de até 15 minutos. Recomendamos consultar fontes financeiras + em tempo real para informações atualizadas. + + + ) +} diff --git a/src/components/pages/home/tickers-table/Row.tsx b/src/components/pages/home/tickers-table/Row.tsx new file mode 100644 index 0000000..6c797e6 --- /dev/null +++ b/src/components/pages/home/tickers-table/Row.tsx @@ -0,0 +1,73 @@ +'use client' + +import { TableCell, TableRow } from '@tremor/react' +import { BtnVisibility } from './BtnVisibility' +import { toCurrency } from '@/helpers/currency' +import { Ticker } from '@/@types/TickersTypes' +import { useTicker } from '@/hooks/useTicker' +import { BtnRemove } from './BtnRemove' +import { Cell } from './Cell' + +type Props = { + ticker: Ticker +} + +export function Row({ ticker }: Props) { + const { data, error, isLoading } = useTicker(ticker.ticker) + const { isHidden } = ticker + + const rowAttributes = { + 'data-testid': `row-ticker-${ticker.ticker}`, + } + + if (isLoading) { + return ( + + + + + + + Carregando... + + + + ) + } + + if (error) { + return ( + + + + + + + {ticker.ticker} + + + Infelizmente ocorreu um erro ao tentar carregar os dados desse ativo! + + + ) + } + + if (!data) { + return null + } + + return ( + + + + + + {ticker.ticker} + {toCurrency(data.price)} + {data.pvp} + {data.dy12}% + {toCurrency(data.lastDividend)} + {toCurrency(data.dividend12)} + + ) +} diff --git a/src/components/pages/home/tickers-table/Table.tsx b/src/components/pages/home/tickers-table/Table.tsx new file mode 100644 index 0000000..1140658 --- /dev/null +++ b/src/components/pages/home/tickers-table/Table.tsx @@ -0,0 +1,56 @@ +'use client' + +import { + Table as TremorTable, + TableBody, + TableHead, + TableRow, +} from '@tremor/react' + +import { usePortfolios } from '@/hooks/usePortfolios' +import { HeaderCell } from './HeaderCell' +import { Row } from './Row' +import { + HelperDY, + HelperLastDividend, + HelperPVP, + HelperPrice, + HelperSumDividends, + HelperTicker, +} from './Helpers' + +export function Table() { + const { tickers } = usePortfolios() + + return ( + <> + + + + + } /> + } /> + } /> + } /> + } /> + } + /> + + + + {tickers.map((t) => ( + + ))} + + + + {tickers.length === 0 && ( +

    + Adicione os ativos na carteira para visualizar +

    + )} + + ) +} diff --git a/src/components/pages/home/tickers-table/index.tsx b/src/components/pages/home/tickers-table/index.tsx new file mode 100644 index 0000000..febd4f4 --- /dev/null +++ b/src/components/pages/home/tickers-table/index.tsx @@ -0,0 +1,10 @@ +import { Table } from './Table' +import { Card } from '@/components/common/Card' + +export function TickersTable() { + return ( + + + + ) +} diff --git a/src/components/pages/simulator/chart/index.tsx b/src/components/pages/simulator/chart/index.tsx new file mode 100644 index 0000000..0715d9d --- /dev/null +++ b/src/components/pages/simulator/chart/index.tsx @@ -0,0 +1,33 @@ +import { toCurrency } from '@/helpers/currency' +import { SimulatorResult } from '@/helpers/simulatorCalculate' +import { AreaChart } from '@tremor/react' + +interface Props { + results: SimulatorResult[] +} + +export function Chart({ results = [] }: Props) { + if (!results.length) { + return null + } + + const data = results.map((result) => ({ + Mês: result.month, + 'Total Acumulado': result.totalAccumulated, + 'Total Investido': result.totalInvested, + })) + + return ( + + ) +} diff --git a/src/components/pages/simulator/input/index.tsx b/src/components/pages/simulator/input/index.tsx new file mode 100644 index 0000000..9a0938d --- /dev/null +++ b/src/components/pages/simulator/input/index.tsx @@ -0,0 +1,26 @@ +/* eslint-disable react/display-name */ +import { Text, TextInput } from '@tremor/react' +import React, { ForwardedRef, forwardRef } from 'react' + +interface Props { + testid: string + title: string + defaultValue?: string + placeholder?: string +} + +export const Input = forwardRef( + (props: Props, ref: ForwardedRef) => { + return ( +
    + {props.title} + +
    + ) + }, +) diff --git a/src/components/pages/simulator/metric/index.tsx b/src/components/pages/simulator/metric/index.tsx new file mode 100644 index 0000000..b1f4f1b --- /dev/null +++ b/src/components/pages/simulator/metric/index.tsx @@ -0,0 +1,17 @@ +import { Metric as MetricTremor, Text } from '@tremor/react' +import React from 'react' + +interface Props { + testid: string + title: string + metric: string +} + +export function Metric({ title, metric, testid }: Props) { + return ( +
    + {title} + {metric} +
    + ) +} diff --git a/src/components/pages/simulator/table/HeaderCell.tsx b/src/components/pages/simulator/table/HeaderCell.tsx new file mode 100644 index 0000000..f9766fc --- /dev/null +++ b/src/components/pages/simulator/table/HeaderCell.tsx @@ -0,0 +1,19 @@ +import { TooltipHelper } from '@/components/common/TooltipHelper' +import { TableHeaderCell } from '@tremor/react' +import { ReactNode } from 'react' + +type Props = { + title: string + helper?: ReactNode +} + +export function HeaderCell({ title, helper }: Props) { + return ( + +
    + {title} + {helper && } +
    +
    + ) +} diff --git a/src/components/pages/simulator/table/Row.tsx b/src/components/pages/simulator/table/Row.tsx new file mode 100644 index 0000000..a424b6b --- /dev/null +++ b/src/components/pages/simulator/table/Row.tsx @@ -0,0 +1,29 @@ +'use client' + +import { TableCell, TableRow } from '@tremor/react' +import { SimulatorResult } from '@/helpers/simulatorCalculate' +import { toCurrency } from '@/helpers/currency' + +interface Props { + result: SimulatorResult +} + +export function Row({ result }: Props) { + return ( + + {result.month} + + {toCurrency(result.valueReceived)} + + + {toCurrency(result.totalInvested)} + + + {toCurrency(result.totalReceived)} + + + {toCurrency(result.totalAccumulated)} + + + ) +} diff --git a/src/components/pages/simulator/table/index.tsx b/src/components/pages/simulator/table/index.tsx new file mode 100644 index 0000000..b888f86 --- /dev/null +++ b/src/components/pages/simulator/table/index.tsx @@ -0,0 +1,35 @@ +import { + Table as TremorTable, + TableBody, + TableHead, + TableRow, +} from '@tremor/react' + +import { HeaderCell } from './HeaderCell' +import { Row } from './Row' +import { SimulatorResult } from '@/helpers/simulatorCalculate' + +export interface TableProps { + results: SimulatorResult[] +} + +export function Table({ results }: TableProps) { + return ( + + + + + + + + + + + + {results.map((result) => ( + + ))} + + + ) +} diff --git a/src/config.test.ts b/src/config.test.ts new file mode 100644 index 0000000..a8fe99d --- /dev/null +++ b/src/config.test.ts @@ -0,0 +1,73 @@ +import { afterEach, beforeEach, describe, expect, test } from 'vitest' +import { getConfigAPI } from './config' + +describe('getConfigAPI', () => { + beforeEach(() => { + process.env.NEXT_PUBLIC_API_KEY = 'test-key' + process.env.NEXT_PUBLIC_API_URL = 'https://api.example.com' + process.env.NEXT_PUBLIC_API_CACHE = 'no-cache' + process.env.NEXT_PUBLIC_API_REVALIDATE = '3600' + }) + + afterEach(() => { + delete process.env.NEXT_PUBLIC_API_KEY + delete process.env.NEXT_PUBLIC_API_URL + delete process.env.NEXT_PUBLIC_API_CACHE + delete process.env.NEXT_PUBLIC_API_REVALIDATE + }) + + test('should return config object with valid environment variables', () => { + const expectedConfig = { + key: 'test-key', + url: 'https://api.example.com', + cache: 'no-cache', + revalidate: 3600, + } + + const config = getConfigAPI() + + expect(config).toEqual(expectedConfig) + }) + + test('should throw an error if NEXT_PUBLIC_API_KEY is not found', () => { + delete process.env.NEXT_PUBLIC_API_KEY + + expect(getConfigAPI).toThrowError('NEXT_PUBLIC_API_KEY not found') + }) + + test('should throw an error if NEXT_PUBLIC_API_URL is not found', () => { + delete process.env.NEXT_PUBLIC_API_URL + + expect(getConfigAPI).toThrowError('NEXT_PUBLIC_API_URL not found') + }) + + test('should return default values if NEXT_PUBLIC_API_CACHE is not found', () => { + delete process.env.NEXT_PUBLIC_API_CACHE + + const expectedConfig = { + key: 'test-key', + url: 'https://api.example.com', + cache: 'force-cache', + revalidate: 3600, + } + + const config = getConfigAPI() + + expect(config).toEqual(expectedConfig) + }) + + test('should return default values if NEXT_PUBLIC_API_REVALIDATE is not found', () => { + delete process.env.NEXT_PUBLIC_API_REVALIDATE + + const expectedConfig = { + key: 'test-key', + url: 'https://api.example.com', + cache: 'no-cache', + revalidate: 3600, + } + + const config = getConfigAPI() + + expect(config).toEqual(expectedConfig) + }) +}) diff --git a/src/config.ts b/src/config.ts index 903e065..e5b556b 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,3 +1,22 @@ +import { ToastContainerProps } from 'react-toastify' + +export const getConfigAPI = () => { + if (!process.env.NEXT_PUBLIC_API_KEY) { + throw new Error('NEXT_PUBLIC_API_KEY not found') + } + + if (!process.env.NEXT_PUBLIC_API_URL) { + throw new Error('NEXT_PUBLIC_API_URL not found') + } + + return { + key: process.env.NEXT_PUBLIC_API_KEY, + url: process.env.NEXT_PUBLIC_API_URL, + cache: (process.env.NEXT_PUBLIC_API_CACHE || 'force-cache') as RequestCache, + revalidate: parseInt(process.env.NEXT_PUBLIC_API_REVALIDATE || '3600'), + } +} + export const config = { app: { metadata: { @@ -8,13 +27,29 @@ export const config = { }, }, - apis: { - brapi: { - host: 'https://brapi.dev/', + api: getConfigAPI(), + + defaults: { + ticker: { + quantity: 1, + isHidden: false, }, }, - cache: { - time: 1000 * 60 * 15, // 15 minutes + suggestions: { + limit: 5, }, + + toast: { + position: 'bottom-right', + autoClose: 3000, + hideProgressBar: false, + newestOnTop: false, + rtl: false, + pauseOnFocusLoss: true, + draggable: true, + closeOnClick: true, + pauseOnHover: true, + theme: 'light', + } as ToastContainerProps, } diff --git a/src/helpers/brapi.ts b/src/helpers/brapi.ts deleted file mode 100644 index cab06b4..0000000 --- a/src/helpers/brapi.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Result, ResultQuotes } from '@/@types/QuotesTypes' - -export const brAPI = async (ticket: string): Promise => { - try { - const response = await fetch( - `https://brapi.dev/api/quote/${ticket}?range=1y&interval=1mo&fundamental=true÷nds=true`, - { - cache: 'force-cache', - next: { - revalidate: 300 - } - } - ) - - const quotes: ResultQuotes = await response.json() - - if (!quotes || !quotes.results[0]) { - throw new Error('Nenhum resultado foi encontrado!') - } - - return quotes.results[0] - } catch (error) { - return false; - } -} diff --git a/src/helpers/cn.test.ts b/src/helpers/cn.test.ts new file mode 100644 index 0000000..f8ace2b --- /dev/null +++ b/src/helpers/cn.test.ts @@ -0,0 +1,9 @@ +import { describe, expect, test } from 'vitest' +import { cn } from './cn' + +describe('cn', () => { + test('should return string with merged values', () => { + const result = cn('a', 'b', 'c') + expect(result).toBe('a b c') + }) +}) diff --git a/src/helpers/cn.ts b/src/helpers/cn.ts new file mode 100644 index 0000000..d32b0fe --- /dev/null +++ b/src/helpers/cn.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from 'clsx' +import { twMerge } from 'tailwind-merge' + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/src/helpers/currency.test.ts b/src/helpers/currency.test.ts new file mode 100644 index 0000000..1446f2a --- /dev/null +++ b/src/helpers/currency.test.ts @@ -0,0 +1,12 @@ +import { describe, test, expect } from 'vitest' +import { toCurrency } from './currency' + +describe('toCurrency', () => { + test('should return the correct currency format for a given number', () => { + const number = 1234.56 + const expected = 'R$ 1.234,56' + + const result = toCurrency(number) + expect(result).toBe(expected) + }) +}) diff --git a/src/helpers/currency.ts b/src/helpers/currency.ts new file mode 100644 index 0000000..1e17d6d --- /dev/null +++ b/src/helpers/currency.ts @@ -0,0 +1,9 @@ +export const toCurrency = (number: number) => { + return `R$ ${Intl.NumberFormat('pt-BR', { + currency: 'BRL', + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }) + .format(number) + .toString()}` +} diff --git a/src/helpers/getLastDays.test.ts b/src/helpers/getLastDays.test.ts new file mode 100644 index 0000000..20ad4da --- /dev/null +++ b/src/helpers/getLastDays.test.ts @@ -0,0 +1,14 @@ +import { describe, expect, test } from 'vitest' +import { getLastDays } from './getLastDays' + +describe('getLastDays', () => { + test('should return array with last 20 days', () => { + const days = getLastDays() + expect(days.length).toBe(20) + }) + + test('should return array with custom days', () => { + const days = getLastDays(10) + expect(days.length).toBe(10) + }) +}) diff --git a/src/helpers/getLastDays.ts b/src/helpers/getLastDays.ts new file mode 100644 index 0000000..d960149 --- /dev/null +++ b/src/helpers/getLastDays.ts @@ -0,0 +1,17 @@ +import moment from 'moment' + +export function getLastDays(count = 20): string[] { + const today = moment() + const days = [] + + for (let i = 0; days.length < count; i++) { + const currentDay = today.clone().subtract(i, 'days') + + if (currentDay.isoWeekday() !== 6 && currentDay.isoWeekday() !== 7) { + const dayStr = currentDay.format('DD/MMM') + days.push(dayStr) + } + } + + return days +} diff --git a/src/helpers/getLastMonths.test.ts b/src/helpers/getLastMonths.test.ts new file mode 100644 index 0000000..e9f02a8 --- /dev/null +++ b/src/helpers/getLastMonths.test.ts @@ -0,0 +1,14 @@ +import { describe, expect, test } from 'vitest' +import { getLastMonths } from './getLastMonths' + +describe('getLastMonths', () => { + test('should return array with last 12 months', () => { + const months = getLastMonths() + expect(months.length).toBe(12) + }) + + test('should return array with custom months', () => { + const months = getLastMonths(10) + expect(months.length).toBe(10) + }) +}) diff --git a/src/helpers/getLastMonths.ts b/src/helpers/getLastMonths.ts new file mode 100644 index 0000000..8cd85af --- /dev/null +++ b/src/helpers/getLastMonths.ts @@ -0,0 +1,14 @@ +import moment from 'moment' + +export function getLastMonths(count = 12): string[] { + const today = moment() + const months = [] + + for (let i = 0; i < count; i++) { + const currentMonth = today.clone().subtract(i, 'months') + const monthStr = currentMonth.format('MMM/YY') + months.push(monthStr) + } + + return months +} diff --git a/src/helpers/investidor10.ts b/src/helpers/investidor10.ts deleted file mode 100644 index fa9d61d..0000000 --- a/src/helpers/investidor10.ts +++ /dev/null @@ -1,46 +0,0 @@ -import * as cheerio from 'cheerio' - -export const investidor10API = async (ticket: string) => { - // const response = await fetch( - // `https://www.suno.com.br/fundos-imobiliarios/${ticket.toLowerCase()}/`, - // ) - - const result = { - totalCotas: 0, - valuePerCotas: 0, - valuePatrimonial: 0, - } - - // const data = await response.text() - // const dom = cheerio.load(data) - - // #indicadores > div.row.gx-4 > div.col-12.gx-4.col-lg-4 > div > div:nth-child(1) > div > div.style__GaugeContent-sc-7o52xg-2.paGZO > div.style__GaugeValues-sc-7o52xg-5.iISrIB.col-6 > ul > li:nth-child(1) > span:nth-child(2) - - - // const table = dom('//*[@id="indicadores"]/div[2]/div[1]/div/div[1]/div/div[2]/div[2]/ul/li[1]/span[2]').text() - // console.log(table); - - - // const valuePerCotas = table - // .match(/VAL. PATRIMONIAL P\/ COTA\s*(R\$ ([\d.,]+))/)?.[2] - // .replaceAll('.', '') - // .replaceAll(',', '.') - // .trim() - - // const totalCotas = table - // .match(/COTAS EMITIDAS\s*([\d.]+)/)?.[1] - // .replaceAll('.', '') - // .trim() - - // if (totalCotas) { - // result.totalCotas = Number(totalCotas) - // } - - // if (valuePerCotas) { - // result.valuePerCotas = Number(valuePerCotas) - // } - - // result.valuePatrimonial = result.valuePerCotas * result.totalCotas - - return result -} diff --git a/src/helpers/mergeArrayOfObjects.test.ts b/src/helpers/mergeArrayOfObjects.test.ts new file mode 100644 index 0000000..7218c91 --- /dev/null +++ b/src/helpers/mergeArrayOfObjects.test.ts @@ -0,0 +1,10 @@ +import { describe, expect, test } from 'vitest' +import { mergeArrayOfObjects } from './mergeArrayOfObjects' + +describe('mergeArrayOfObjects', () => { + test('should return object with merged values', () => { + const arr = [{ a: 1 }, { b: 2 }, { c: 3 }, { a: 4 }] + const result = mergeArrayOfObjects(arr) + expect(result).toEqual({ a: 4, b: 2, c: 3 }) + }) +}) diff --git a/src/helpers/mergeArrayOfObjects.ts b/src/helpers/mergeArrayOfObjects.ts new file mode 100644 index 0000000..5caf9ba --- /dev/null +++ b/src/helpers/mergeArrayOfObjects.ts @@ -0,0 +1,5 @@ +export function mergeArrayOfObjects(arr: object[]): object { + return arr.reduce((mergedObj, currentObj) => { + return { ...mergedObj, ...currentObj } + }, {}) +} diff --git a/src/helpers/results.ts b/src/helpers/results.ts deleted file mode 100644 index 5b523cc..0000000 --- a/src/helpers/results.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Result } from "@/@types/ResultsTypes"; -import { config } from "@/config"; - -const validateRequestAt = (timestamp : number): boolean => { - return timestamp + config.cache.time > new Date().getTime() -} - -export const getResultByCache = (ticker: string, results: Result[]): Result | false => { - const index = results.findIndex((result) => result.ticker === ticker) - - if (index === -1 || !validateRequestAt(results[index].requestedAt)) { - return false - } - - return results[index] -} - diff --git a/src/helpers/simulatorCalculate.test.ts b/src/helpers/simulatorCalculate.test.ts new file mode 100644 index 0000000..72cf5e8 --- /dev/null +++ b/src/helpers/simulatorCalculate.test.ts @@ -0,0 +1,35 @@ +import { describe, expect, test } from 'vitest' +import { simulatorCalculate } from './simulatorCalculate' + +describe('simulatorCalculate', () => { + test('should calculate the correct result', () => { + const params = { + initialAmount: 1000, + investmentAmount: 100, + periodInMonths: 12, + taxePerYear: 5, + } + + const result = simulatorCalculate(params) + + expect(result.length).toBe(params.periodInMonths + 1) + + expect(result[0].month).toBe(0) + expect(result[0].valueReceived).toBe(0) + expect(result[0].totalReceived).toBe(0) + expect(result[0].totalInvested).toBe(params.initialAmount) + expect(result[0].totalAccumulated).toBe(params.initialAmount) + + expect(result[1].month).toBe(1) + expect(result[1].valueReceived).toBe(4.0741237836483535) + expect(result[1].totalReceived).toBe(4.0741237836483535) + expect(result[1].totalInvested).toBe(1100) + expect(result[1].totalAccumulated).toBe(1104.0741237836482) + + expect(result[12].month).toBe(12) + expect(result[12].valueReceived).toBe(8.834425053241732) + expect(result[12].totalReceived).toBe(77.25775295972907) + expect(result[12].totalInvested).toBe(2200) + expect(result[12].totalAccumulated).toBe(2277.2577529597293) + }) +}) diff --git a/src/helpers/simulatorCalculate.ts b/src/helpers/simulatorCalculate.ts new file mode 100644 index 0000000..e5f2eeb --- /dev/null +++ b/src/helpers/simulatorCalculate.ts @@ -0,0 +1,61 @@ +export interface SimulatorResult { + month: number + valueReceived: number + totalReceived: number + totalInvested: number + totalAccumulated: number +} + +export interface SimulatorParams { + initialAmount: number + investmentAmount: number + taxePerYear: number + periodInMonths: number +} + +function annualToMonthlyRate(annualRate: number): number { + return Math.pow(1 + annualRate / 100, 1 / 12) - 1 +} + +export const simulatorCalculate = ({ + initialAmount, + investmentAmount, + periodInMonths, + taxePerYear, +}: SimulatorParams): SimulatorResult[] => { + const result: SimulatorResult[] = [] + + let totalAccumulated = initialAmount + let totalReceived = 0 + + for (let month = 0; month <= periodInMonths; month++) { + if (month === 0) { + result.push({ + month, + valueReceived: 0, + totalReceived: 0, + totalInvested: initialAmount, + totalAccumulated: initialAmount, + }) + continue + } + + const monthlyRate = annualToMonthlyRate(taxePerYear) + + const valueReceived = monthlyRate * totalAccumulated + totalAccumulated += investmentAmount + valueReceived + totalReceived += valueReceived + + const totalInvested = investmentAmount * month + initialAmount + + result.push({ + month, + valueReceived, + totalReceived, + totalInvested, + totalAccumulated, + }) + } + + return result +} diff --git a/src/helpers/storage.ts b/src/helpers/storage.ts new file mode 100644 index 0000000..4dc4b89 --- /dev/null +++ b/src/helpers/storage.ts @@ -0,0 +1,27 @@ +// import { dataInitialState } from "@/reducers/dataReducer" + +// export const storageActions = { +// load: (state: DataType): DataType => { +// const data = localStorage.getItem('data') + +// if (data) { +// return JSON.parse(data) +// } + +// return state +// }, + +// save: (state: DataType) => { +// const data = JSON.stringify(state) +// localStorage.setItem('data', data) + +// return state +// }, + +// clear: () => { +// const data = JSON.stringify(dataInitialState) +// localStorage.setItem('data', data) + +// return dataInitialState +// } +// } diff --git a/src/helpers/tickers.ts b/src/helpers/tickers.ts deleted file mode 100644 index 8ce33b3..0000000 --- a/src/helpers/tickers.ts +++ /dev/null @@ -1,114 +0,0 @@ -'use client' - -import { brAPI } from "./brapi" -import { DividendsData, Result as Response } from "@/@types/QuotesTypes" -import { Result } from "@/@types/ResultsTypes" -import { round, uniqBy } from "lodash" -import { Ticker } from "@/@types/TickersTypes" -import { getResultByCache } from "./results" - -const getPrice = (data: Response): number => { - return round(data.regularMarketPrice, 2) -} - -const getPVP = (data: Response): number => { - - // valuePatrimonial: number, - // // totalCotas: number, - // if (totalCotas === 0) { - // throw new Error('Não foi possível calcular o PVP!') - // } - - // console.log(valuePatrimonial, regularMarketPrice) - - // return round(regularMarketPrice / (valuePatrimonial / totalCotas), 2) - - return 1 -} - -const getDY = (data: Response): number => { - const total = data.dividendsData.cashDividends - .filter((dividend) => dividend.label === 'RENDIMENTO') - .reduce((acc, dividend) => acc + dividend.rate, 0) - - return round((total / data.regularMarketPrice) * 100, 2) -} - -const getLastDividend = (data: Response): number => { - const dividends = data.dividendsData.cashDividends.filter( - (dividend) => dividend.label === 'RENDIMENTO', - ) - - return round(dividends[0].rate, 2) -} - -export const getHistoryDividendsData = (data: DividendsData) => { - return data.cashDividends - .filter((dividend) => dividend.label === 'RENDIMENTO') - .map((dividend) => { - return { - ...dividend, - - // ? - // paymentDate: moment(dividend.paymentDate).format('MM/YYYY'), - } - }) - .reverse() -} - -export const fetchTicker = async (ticker: string): Promise => { - const brResultAPI = await brAPI(ticker) - // const company = await investidor10API(ticker) - - const requestedAt = new Date().getTime() - - if (brResultAPI === false) { - return { - ticker, - dy: 0, - pvp: 0, - price: 0, - lastDividend: 0, - requestedAt, - isError: true, - isLoading: false, - } - } - - return { - ticker, - dy: getDY(brResultAPI), - pvp: getPVP(brResultAPI), - price: getPrice(brResultAPI), - lastDividend: getLastDividend(brResultAPI), - requestedAt, - isError: false, - isLoading: false, - } -} - -export const getAllResults = async (tickers: Ticker[], results: Result[]): Promise => { - const newResults: Result[] = [] - - const uniqueTickers = uniqBy(tickers, 'ticker') - const tickersToFetch = await Promise.allSettled( - uniqueTickers.map(async (ticker) => { - const result = getResultByCache(ticker.ticker, results) - - if (result) { - console.log(ticker.ticker, 'from cache'); - return result - } - - return await fetchTicker(ticker.ticker) - }) - ) - - tickersToFetch.forEach((tickerToFetch) => { - if (tickerToFetch.status === 'fulfilled') { - newResults.push(tickerToFetch.value) - } - }) - - return newResults -} \ No newline at end of file diff --git a/src/hooks/useData.ts b/src/hooks/useData.ts index 640b527..927d139 100644 --- a/src/hooks/useData.ts +++ b/src/hooks/useData.ts @@ -1,14 +1,14 @@ -import { useContext } from "react" +import { useContext } from 'react' -import { DataContextType } from "@/@types/DataTypes" -import { DataContext } from "@/providers/DataProvider" +import { DataContextType } from '@/@types/ContextTypes' +import { DataContext } from '@/providers/DataProvider' export const useData = () => { const context = useContext(DataContext) as DataContextType if (!context) { - throw new Error("useData must be used within a DataProvider"); + throw new Error('useData must be used within a DataProvider') } return context -} \ No newline at end of file +} diff --git a/src/hooks/useModal.ts b/src/hooks/useModal.ts new file mode 100644 index 0000000..4e91b5f --- /dev/null +++ b/src/hooks/useModal.ts @@ -0,0 +1,14 @@ +import { useContext } from 'react' + +import { ModalContextType } from '@/@types/ContextTypes' +import { ModalContext } from '@/providers/ModalProvider' + +export const useModal = () => { + const context = useContext(ModalContext) as ModalContextType + + if (!context) { + throw new Error('useModal must be used within a ModalProvider') + } + + return context +} diff --git a/src/hooks/usePortfolioFetch.ts b/src/hooks/usePortfolioFetch.ts new file mode 100644 index 0000000..0ee95ae --- /dev/null +++ b/src/hooks/usePortfolioFetch.ts @@ -0,0 +1,14 @@ +'use client' + +import useSWR from 'swr' +import { Ticker, TickerData } from '@/@types/TickersTypes' + +export const usePortfolioFetch = (tickers: Ticker[]) => { + const symbols = tickers.map((ticker) => ticker.ticker).join(',') + + const data = useSWR(`/api/tickers/${symbols}`, () => { + return fetch(`/api/tickers?tickers=${symbols}`).then((res) => res.json()) + }) + + return data +} diff --git a/src/hooks/usePortfolios.ts b/src/hooks/usePortfolios.ts index 0667370..f8807f7 100644 --- a/src/hooks/usePortfolios.ts +++ b/src/hooks/usePortfolios.ts @@ -1,21 +1,46 @@ -import { findIndex } from "lodash"; -import { useData } from "./useData"; +import { useContext } from 'react' +import { find, findIndex, sampleSize } from 'lodash' +import { useData } from './useData' + +import { PortfolioContext } from '@/providers/PortfolioProvider' +import { PortfolioContextType } from '@/@types/ContextTypes' +import { getFundsStorage } from '@/storage/funds' +import { Suggestion } from '@/@types/SuggestionsTypes' +import { config } from '@/config' export const usePortfolios = () => { - const { data } = useData() + const { portfolios } = useData() + const portfolio = useContext(PortfolioContext) as PortfolioContextType - return { - listPortfolios: () => data.portfolios.sort((a, b) => a.name.localeCompare(b.name)), + if (!portfolio) { + throw new Error('useData must be used within a DataProvider') + } + const { tickers, portfolioId } = portfolio + + return { + portfolioId, + tickers, + listPortfolios: () => { + return portfolios.sort((a, b) => a.name.localeCompare(b.name)) + }, getPortfolio: (id: string) => { - const index = findIndex(data.portfolios, (portfolio) => portfolio.id === id); + const index = findIndex(portfolios, (portfolio) => portfolio.id === id) - if(index === -1) { + if (index === -1) { throw new Error(`Portfolio not found (${id})`) } - return data.portfolios[index] - } + return portfolios[index] + }, + getSuggestions: (): Suggestion[] => { + const funds = getFundsStorage() + + const fundsFiltered = funds.filter(({ ticker }) => { + return typeof find(tickers, { ticker }) === 'undefined' + }) + return sampleSize(fundsFiltered, config.suggestions.limit) + }, } -} \ No newline at end of file +} diff --git a/src/hooks/useResults.ts b/src/hooks/useResults.ts deleted file mode 100644 index 05954ee..0000000 --- a/src/hooks/useResults.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Result } from "@/@types/ResultsTypes"; -import { useData } from "./useData"; - -export const useResult = (ticker: string): Result => { - const { results } = useData() - - const result = results.find((r) => r.ticker === ticker) - - if(!result) { - return { - ticker, - dy: 0, - pvp: 0, - price: 0, - lastDividend: 0, - requestedAt: 0, - isError: false, - isLoading: true, - } - } - - return result -} \ No newline at end of file diff --git a/src/hooks/useSidebar.ts b/src/hooks/useSidebar.ts new file mode 100644 index 0000000..ea2bcfc --- /dev/null +++ b/src/hooks/useSidebar.ts @@ -0,0 +1,14 @@ +import { useContext } from 'react' + +import { SidebarContextType } from '@/@types/ContextTypes' +import { SidebarContext } from '@/providers/SidebarProvider' + +export const useSidebar = () => { + const context = useContext(SidebarContext) as SidebarContextType + + if (!context) { + throw new Error('useSidebar must be used within a SidebarProvider') + } + + return context +} diff --git a/src/hooks/useTicker.ts b/src/hooks/useTicker.ts new file mode 100644 index 0000000..700dc0f --- /dev/null +++ b/src/hooks/useTicker.ts @@ -0,0 +1,12 @@ +'use client' + +import useSWR from 'swr' +import { TickerData } from '@/@types/TickersTypes' + +export const useTicker = (ticker: string) => { + const data = useSWR(`/api/ticker/${ticker}`, () => { + return fetch(`/api/ticker/${ticker}`).then((res) => res.json()) + }) + + return data +} diff --git a/src/hooks/useTickers.ts b/src/hooks/useTickers.ts index 6e40f58..66fc530 100644 --- a/src/hooks/useTickers.ts +++ b/src/hooks/useTickers.ts @@ -1,38 +1,42 @@ -import { Ticker } from "@/@types/TickersTypes" -import { useData } from "./useData" +import { Ticker } from '@/@types/TickersTypes' +import { useData } from './useData' +import { toast } from 'react-toastify' export const useTickers = () => { - const { data, dispatch } = useData() + const { tickers, dispatchTickers } = useData() return { addTickers: (tickersList: string[], portfoliosList: string[]) => { - dispatch({ - type: 'TICKERS_INSERT', payload: { - tickersList, portfoliosList - } + if (!tickersList.length) { + toast(`Nenhum ativo selecionado!`, { type: 'error' }) + return + } + + if (tickersList.length === 1) { + toast(`${tickersList[0]} adicionado com sucesso!`, { type: 'success' }) + } else { + toast(`${tickersList.length} ativos adicionados com sucesso!`, { + type: 'success', + }) + } + + dispatchTickers({ + type: 'INSERT', + payload: { tickersList, portfoliosList }, }) }, - removeTicker: ({ ticker, portfolioId }: Ticker) => { - dispatch({ - type: 'TICKERS_REMOVE', payload: { - ticker, portfolioId - } - }) + removeTicker: (ticker: Ticker) => { + toast(`${ticker.ticker} removido com sucesso!`, { type: 'success' }) + dispatchTickers({ type: 'REMOVE', payload: ticker }) }, - setVisibility: ({ ticker, portfolioId, isHidden }: Ticker) => { - dispatch({ - type: 'TICKERS_SET_VISIBILITY', payload: { - ticker, - portfolioId, - isHidden: !isHidden - } - }) + setVisibility: (ticker: Ticker) => { + dispatchTickers({ type: 'SET_VISIBILITY', payload: ticker }) }, listByPortfolioId: (id: string) => { - return data.tickers.filter((t) => t.portfolioId === id) - } + return tickers.filter((t) => t.portfolioId === id) + }, } -} \ No newline at end of file +} diff --git a/src/providers/AppProvider.tsx b/src/providers/AppProvider.tsx new file mode 100644 index 0000000..c2356e6 --- /dev/null +++ b/src/providers/AppProvider.tsx @@ -0,0 +1,21 @@ +import { ReactNode } from 'react' + +import { SwrProvider } from './SwrProvider' +import { ModalProvider } from './ModalProvider' +import { DataProvider } from '@/providers/DataProvider' +import { SidebarProvider } from '@/providers/SidebarProvider' +import { PortfolioProvider } from '@/providers/PortfolioProvider' + +export function AppProvider({ children }: { children: ReactNode }) { + return ( + + + + + {children} + + + + + ) +} diff --git a/src/providers/DataProvider.tsx b/src/providers/DataProvider.tsx index a92b696..63edc12 100644 --- a/src/providers/DataProvider.tsx +++ b/src/providers/DataProvider.tsx @@ -1,38 +1,38 @@ -"use client" +'use client' -import { ActionsType } from '@/@types/DataTypes'; -import { Result } from '@/@types/ResultsTypes'; -import { storageActions } from '@/actions/storageActions'; -import { getAllResults } from '@/helpers/tickers'; -import { dataInitialState, dataReducer } from '@/reducers/dataReducer'; -import { ReactNode, createContext, useEffect, useReducer, useState } from 'react' +import { ReactNode, createContext, useEffect, useReducer } from 'react' +import { portfoliosInitialState } from '@/storage/portfoliosInitialState' +import { tickersInitialState } from '@/storage/tickersInitialState' +import { portfoliosReducer } from '@/reducers/portfoliosReducer' +import { tickersReducer } from '@/reducers/tickersReducer' +import { DataContextType } from '@/@types/ContextTypes' -export const DataContext = createContext({}) +export const DataContext = createContext({} as DataContextType) export function DataProvider({ children }: { children: ReactNode }) { - const [data, dispatchReducerData] = useReducer(dataReducer, dataInitialState); - const [results, setResult] = useState([]) - const { save } = storageActions + const [tickers, dispatchTickers] = useReducer( + tickersReducer, + tickersInitialState, + ) - const dispatch = (action: ActionsType) => { - console.log('dispatch', action); - dispatchReducerData(action) - } + const [portfolios, dispatchPortfolios] = useReducer( + portfoliosReducer, + portfoliosInitialState, + ) useEffect(() => { - dispatch({ type: 'LOAD' }); + // dispatch({ type: 'LOAD' }); }, []) - useEffect(() => { - getAllResults(data.tickers, results).then((results) => { - setResult(results) - }) - - save(data) - }, [data]) - return ( - + {children} ) diff --git a/src/providers/ModalProvider.tsx b/src/providers/ModalProvider.tsx new file mode 100644 index 0000000..cef2b37 --- /dev/null +++ b/src/providers/ModalProvider.tsx @@ -0,0 +1,61 @@ +'use client' + +import { ReactNode, createContext, useState } from 'react' +import { ModalContextType } from '@/@types/ContextTypes' + +export const ModalContext = createContext( + {} as ModalContextType, +) + +export function ModalProvider({ children }: { children: ReactNode }) { + const [showModal, setShowModal] = useState(false) + const [title, setTitle] = useState() + const [content, setContent] = useState() + const [closeBtnTitle, setCloseBtnTitle] = useState() + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const [closeModalFn, setCloseModalFn] = useState<() => void | undefined>() + + const closeModal: ModalContextType['closeModal'] = () => { + document.body.classList.remove('overflow-hidden') + + setCloseBtnTitle(undefined) + setTitle(undefined) + setContent(undefined) + + setShowModal(false) + } + + const openModal: ModalContextType['openModal'] = ({ + title, + content, + closeBtnTitle, + closeModal, + }) => { + document.body.classList.add('overflow-hidden') + + setCloseBtnTitle(closeBtnTitle || 'Fechar') + setTitle(title) + setContent(content) + setShowModal(true) + + if (closeModal) { + setCloseModalFn(closeModal) + } + } + + return ( + + {children} + + ) +} diff --git a/src/providers/PortfolioProvider.tsx b/src/providers/PortfolioProvider.tsx new file mode 100644 index 0000000..8786f00 --- /dev/null +++ b/src/providers/PortfolioProvider.tsx @@ -0,0 +1,37 @@ +/* eslint-disable react-hooks/exhaustive-deps */ +'use client' + +import { ReactNode, createContext, useEffect, useState } from 'react' +import { PortfolioContextType } from '@/@types/ContextTypes' +import { Ticker } from '@/@types/TickersTypes' +import { useTickers } from '@/hooks/useTickers' +import { useData } from '@/hooks/useData' +import { portfoliosInitialState } from '@/storage/portfoliosInitialState' + +export const PortfolioContext = createContext( + {} as PortfolioContextType, +) + +export function PortfolioProvider({ children }: { children: ReactNode }) { + const { tickers } = useData() + const { listByPortfolioId } = useTickers() + const [portfolioTickers, setPortfolioTickers] = useState([]) + + const portfolioId = portfoliosInitialState[0].id + + useEffect(() => { + const tickers = listByPortfolioId(portfolioId) + setPortfolioTickers(tickers) + }, [tickers]) + + return ( + + {children} + + ) +} diff --git a/src/providers/SidebarProvider.tsx b/src/providers/SidebarProvider.tsx new file mode 100644 index 0000000..996e8a4 --- /dev/null +++ b/src/providers/SidebarProvider.tsx @@ -0,0 +1,35 @@ +'use client' + +import { ReactNode, createContext, useState } from 'react' +import { SidebarContextType } from '@/@types/ContextTypes' + +export const SidebarContext = createContext( + {} as SidebarContextType, +) + +export function SidebarProvider({ children }: { children: ReactNode }) { + const [isOpen, setIsOpen] = useState(false) + + const toggleSidebar = () => { + setIsOpen(!isOpen) + } + + const closeSidebar = () => { + console.log('closeSidebar') + + setIsOpen(false) + } + + const openSidebar = () => { + console.log('openSidebar') + setIsOpen(true) + } + + return ( + + {children} + + ) +} diff --git a/src/providers/SwrProvider.tsx b/src/providers/SwrProvider.tsx new file mode 100644 index 0000000..c2b8472 --- /dev/null +++ b/src/providers/SwrProvider.tsx @@ -0,0 +1,22 @@ +'use client' + +import { ReactNode } from 'react' +import { SWRConfig } from 'swr' + +export function SwrProvider({ children }: { children: ReactNode }) { + const provider = () => new Map() + + return ( + + {children} + + ) +} diff --git a/src/reducers/dataReducer.ts b/src/reducers/dataReducer.ts deleted file mode 100644 index 9bb69cd..0000000 --- a/src/reducers/dataReducer.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { portfoliosActions } from '@/actions/portfoliosActions' -import { ActionsType, DataType } from '@/@types/DataTypes' -import { storageActions } from '@/actions/storageActions' -import { tickersActions } from '@/actions/tickersActions' - -export const dataInitialState: DataType = { - tickers: [ - { - "ticker": "AAGR11", - "portfolioId": "5a31ee47-6b2f-4586-8fb9-983010149ec7", - "quantity": 0, - "isHidden": false, - }, - { - "ticker": "AAZQ11", - "portfolioId": "5a31ee47-6b2f-4586-8fb9-983010149ec7", - "quantity": 0, - "isHidden": false, - }, - { - "ticker": "MXRF11", - "portfolioId": "5a31ee47-6b2f-4586-8fb9-983010149ec7", - "quantity": 0, - "isHidden": false, - } - ], - portfolios: [ - { id: '5a31ee47-6b2f-4586-8fb9-983010149ec7', name: 'Carteira #1' }, - ], -} - -export const dataReducer = (state: DataType, action: ActionsType): DataType => { - switch (action.type) { - case 'LOAD': { - return storageActions.load(state) - } - - case 'CLEAR': { - return storageActions.clear() - } - - case 'PORTFOLIOS_INSERT': { - return portfoliosActions.insert(state, action.payload) - } - - case 'PORTFOLIOS_UPDATE': { - return portfoliosActions.insert(state, action.payload) - } - - case 'PORTFOLIOS_REMOVE': { - return portfoliosActions.insert(state, action.payload) - } - - case 'TICKERS_INSERT': { - return tickersActions.insert(state, action.payload) - } - - case 'TICKERS_UPDATE': { - return tickersActions.update(state, action.payload) - } - - case 'TICKERS_REMOVE': { - return tickersActions.remove(state, action.payload) - } - - case 'TICKERS_SET_VISIBILITY': { - return tickersActions.setVisibility(state, action.payload) - } - } - -} \ No newline at end of file diff --git a/src/reducers/portfoliosReducer.ts b/src/reducers/portfoliosReducer.ts new file mode 100644 index 0000000..c3ff716 --- /dev/null +++ b/src/reducers/portfoliosReducer.ts @@ -0,0 +1,22 @@ +import { portfoliosActions } from '@/actions/portfoliosActions' +import { PortfolioActionType } from '@/@types/ContextTypes' +import { Portfolio } from '@/@types/PortfoliosTypes' + +export const portfoliosReducer = ( + state: Portfolio[], + action: PortfolioActionType, +): Portfolio[] => { + switch (action.type) { + case 'INSERT': { + return portfoliosActions.insert(state, action.payload) + } + + case 'UPDATE': { + return portfoliosActions.update(state, action.payload) + } + + case 'REMOVE': { + return portfoliosActions.remove(state, action.payload) + } + } +} diff --git a/src/reducers/tickersReducer.ts b/src/reducers/tickersReducer.ts new file mode 100644 index 0000000..4a37d7e --- /dev/null +++ b/src/reducers/tickersReducer.ts @@ -0,0 +1,25 @@ +import { tickersActions } from '@/actions/tickersActions' +import { TickerActionType } from '@/@types/ContextTypes' +import { Ticker } from '@/@types/TickersTypes' + +export const tickersReducer = ( + state: Ticker[], + action: TickerActionType, +): Ticker[] => { + switch (action.type) { + case 'INSERT': { + return tickersActions.insert(state, action.payload) + } + + case 'REMOVE': { + return tickersActions.remove(state, action.payload) + } + + case 'SET_VISIBILITY': { + return tickersActions.update(state, { + ...action.payload, + isHidden: !action.payload.isHidden, + }) + } + } +} diff --git a/src/services/TickerService.test.ts b/src/services/TickerService.test.ts new file mode 100644 index 0000000..60476f4 --- /dev/null +++ b/src/services/TickerService.test.ts @@ -0,0 +1,75 @@ +import { describe, expect, test } from 'vitest' +import { TickerService } from './TickerService' + +const ticker = 'XPLG11' + +describe('TickerService', () => { + test('should return result with success', async () => { + const service = new TickerService(ticker) + const result = await service.fetch() + + expect(result).toBeDefined() + expect(result.ticker).toBe(ticker) + expect(result.pvp).toBe(1.05) + expect(result.dy12).toBe(8.5) + expect(result.price).toBe(107) + expect(result.dividend12).toBe(9.1) + expect(result.lastDividend).toBe(0.74) + expect(result.dividendsHistory.length).toBe(12) + expect(result.pricesHistory.length).toBeTruthy() + }) + + test('should return error when ticker is invalid', async () => { + await expect(async () => { + return new TickerService('invalid').fetch() + }).rejects.toThrowError('Ocorreu um erro ao buscar o ticker') + }) + + test('should return error when ticker is empty', async () => { + await expect(async () => { + return new TickerService('').fetch() + }).rejects.toThrowError('Ocorreu um erro ao buscar o ticker') + }) + + test('should return error when ticker is null', async () => { + await expect(async () => { + return new TickerService(null as any).fetch() + }).rejects.toThrowError('Ocorreu um erro ao buscar o ticker') + }) + + test('should return dividendsHistory with array of object', async () => { + const service = new TickerService(ticker) + const result = await service.fetch() + + expect(result).toBeDefined() + expect(result.dividendsHistory.length).toBe(12) + + expect(result.dividendsHistory[0]).toEqual({ + amount: 0.78, + date: 'Nov/23', + timestamp: 1700103600000, + }) + + expect(result.dividendsHistory[11]).toEqual({ + amount: 0.74, + date: 'Dec/22', + timestamp: 1670986800000, + }) + }) + + test('should return pricesHistory with array of object', async () => { + const service = new TickerService(ticker) + const result = await service.fetch() + + expect(result).toBeDefined() + expect(result.pricesHistory.length).toBeTruthy() + + expect(result.pricesHistory[0]).toEqual({ + timestamp: 1700535600000, + avg: 107.7, + min: 107, + max: 108.56, + date: '21/Nov', + }) + }) +}) diff --git a/src/services/TickerService.ts b/src/services/TickerService.ts new file mode 100644 index 0000000..3962a8e --- /dev/null +++ b/src/services/TickerService.ts @@ -0,0 +1,179 @@ +import moment from 'moment' +import { min, max, mean, round, last } from 'lodash' + +import { config } from '@/config' +import { TickerData } from '@/@types/TickersTypes' +import { + DividendsHistory, + ResultsPriceHistory, + PriceHistory, +} from '@/@types/TickerServiceTypes' + +type Params = Record + +export class TickerService { + private ticker: string + private apiKey: string + private apiBaseUrl: string + + private fetchConfig: RequestInit + + constructor(ticker: string) { + const { revalidate, cache, key, url } = config.api + + this.ticker = ticker + this.apiKey = key + this.apiBaseUrl = url + + this.fetchConfig = { + method: 'GET', + cache, + next: { + revalidate, + }, + } + } + + private getURL(endpoint: string, params: Params): string { + const queryString = new URLSearchParams({ + ...params, + key: this.apiKey, + format: 'json-cors', + }) + + const url = new URL(this.apiBaseUrl) + + url.pathname = endpoint + url.search = queryString.toString() + + return url.toString() + } + + public async fetch(): Promise { + try { + const { price, pvp } = await this.fetchTicker(this.ticker) + const pricesHistory = await this.fetchPricesHistory(this.ticker) + const dividendsHistory = await this.fetchDividendsHistory(this.ticker) + + const { dividend12, dy12, lastDividend } = this.getDividendsByHistory( + dividendsHistory, + price, + ) + + return { + pvp, + dy12, + price, + dividend12, + lastDividend, + dividendsHistory, + pricesHistory, + ticker: this.ticker, + } + } catch (_err) { + throw new Error('Ocorreu um erro ao buscar o ticker') + } + } + + private async fetchTicker(symbol: string) { + const url = this.getURL('finance/stock_price', { symbol }) + + const response = await fetch(url, this.fetchConfig) + + const data = await response.json() + const result = data.results[symbol] || { + financials: { price_to_book_ratio: 0 }, + price: 0, + } + + return { + price: round(Number(result.price || 0), 2), + pvp: round(result.financials?.price_to_book_ratio || 0, 2), + } + } + + private async fetchDividendsHistory(symbol: string) { + const url = this.getURL('finance/stock_dividends', { symbol }) + + const response = await fetch(url, this.fetchConfig) + + const data = await response.json() + const dividends = data.results[symbol] + + if (dividends.error) { + throw new Error(dividends.message) + } + + return dividends + .filter((result: any) => { + const tickerCode = `BR${symbol.substring(0, 4)}CTF` + return ( + result.label === 'Rendimento' && result.isin_code.includes(tickerCode) + ) + }) + .map((result: any) => { + const timestamp = new Date( + result.payment_date + ' 00:00:00 GMT-0300', + ).getTime() + + const date = moment(timestamp).format('MMM/YY') + const amount = round(Number(result.amount), 2) + + return { timestamp, amount, date } + }) + .splice(0, 12) + } + + private async fetchPricesHistory(symbol: string) { + const url = this.getURL('finance/historical/stocks', { + days_ago: '20', + symbol, + }) + + const response = await fetch(url, this.fetchConfig) + const data = await response.json() + + return this.getPricesHistory(data.results) + } + + private getPricesHistory(prices: ResultsPriceHistory): PriceHistory[] { + const history: PriceHistory[] = [] + + for (const day in prices) { + const pricesDaily = Object.values(prices[day][this.ticker]) + const timestamp = new Date(`${day} 00:00:00 GMT-0300`).getTime() + + history.push({ + timestamp, + avg: round(mean(pricesDaily) || 0, 2), + min: round(min(pricesDaily) || 0, 2), + max: round(max(pricesDaily) || 0, 2), + date: moment(timestamp).format('DD/MMM'), + }) + } + + return history + } + + private getDividendsByHistory( + dividendsHistory: DividendsHistory[], + price: number, + ) { + const lastDividend = round(last(dividendsHistory)?.amount || 0, 2) + + const dividend12 = round( + dividendsHistory.reduce((acc, dividend) => { + return acc + dividend.amount + }, 0), + 2, + ) + + const dy12 = round((dividend12 / price) * 100, 2) + + return { + dy12, + dividend12, + lastDividend, + } + } +} diff --git a/src/storage/portfoliosInitialState.ts b/src/storage/portfoliosInitialState.ts new file mode 100644 index 0000000..90dfb2a --- /dev/null +++ b/src/storage/portfoliosInitialState.ts @@ -0,0 +1,5 @@ +import { Portfolio } from '@/@types/PortfoliosTypes' + +export const portfoliosInitialState: Portfolio[] = [ + { id: '5a31ee47-6b2f-4586-8fb9-983010149ec7', name: 'Carteira #1' }, +] diff --git a/src/storage/tickersInitialState.ts b/src/storage/tickersInitialState.ts new file mode 100644 index 0000000..4fe1e8f --- /dev/null +++ b/src/storage/tickersInitialState.ts @@ -0,0 +1,11 @@ +import { Ticker } from '@/@types/TickersTypes' +import { config } from '@/config' +import { portfoliosInitialState } from './portfoliosInitialState' + +const portfolioId = portfoliosInitialState[0].id + +export const tickersInitialState: Ticker[] = [ + { ...config.defaults.ticker, portfolioId, ticker: 'XPLG11' }, + { ...config.defaults.ticker, portfolioId, ticker: 'XPML11' }, + { ...config.defaults.ticker, portfolioId, ticker: 'PVBI11' }, +] diff --git a/src/styles/globals.css b/src/styles/globals.css index b5c61c9..399284a 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -1,3 +1,11 @@ @tailwind base; @tailwind components; @tailwind utilities; + +:root { + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} diff --git a/src/styles/output.css b/src/styles/output.css deleted file mode 100644 index 2fa0e92..0000000 --- a/src/styles/output.css +++ /dev/null @@ -1,14805 +0,0 @@ -/* -! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com -*/ - -/* -1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) -2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) -*/ - -*, -::before, -::after { - box-sizing: border-box; - /* 1 */ - border-width: 0; - /* 2 */ - border-style: solid; - /* 2 */ - border-color: #e5e7eb; - /* 2 */ -} - -::before, -::after { - --tw-content: ''; -} - -/* -1. Use a consistent sensible line-height in all browsers. -2. Prevent adjustments of font size after orientation changes in iOS. -3. Use a more readable tab size. -4. Use the user's configured `sans` font-family by default. -5. Use the user's configured `sans` font-feature-settings by default. -6. Use the user's configured `sans` font-variation-settings by default. -*/ - -html { - line-height: 1.5; - /* 1 */ - -webkit-text-size-adjust: 100%; - /* 2 */ - -moz-tab-size: 4; - /* 3 */ - -o-tab-size: 4; - tab-size: 4; - /* 3 */ - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - /* 4 */ - font-feature-settings: normal; - /* 5 */ - font-variation-settings: normal; - /* 6 */ -} - -/* -1. Remove the margin in all browsers. -2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. -*/ - -body { - margin: 0; - /* 1 */ - line-height: inherit; - /* 2 */ -} - -/* -1. Add the correct height in Firefox. -2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) -3. Ensure horizontal rules are visible by default. -*/ - -hr { - height: 0; - /* 1 */ - color: inherit; - /* 2 */ - border-top-width: 1px; - /* 3 */ -} - -/* -Add the correct text decoration in Chrome, Edge, and Safari. -*/ - -abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; -} - -/* -Remove the default font size and weight for headings. -*/ - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: inherit; - font-weight: inherit; -} - -/* -Reset links to optimize for opt-in styling instead of opt-out. -*/ - -a { - color: inherit; - text-decoration: inherit; -} - -/* -Add the correct font weight in Edge and Safari. -*/ - -b, -strong { - font-weight: bolder; -} - -/* -1. Use the user's configured `mono` font family by default. -2. Correct the odd `em` font sizing in all browsers. -*/ - -code, -kbd, -samp, -pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - /* 1 */ - font-size: 1em; - /* 2 */ -} - -/* -Add the correct font size in all browsers. -*/ - -small { - font-size: 80%; -} - -/* -Prevent `sub` and `sup` elements from affecting the line height in all browsers. -*/ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* -1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) -2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) -3. Remove gaps between table borders by default. -*/ - -table { - text-indent: 0; - /* 1 */ - border-color: inherit; - /* 2 */ - border-collapse: collapse; - /* 3 */ -} - -/* -1. Change the font styles in all browsers. -2. Remove the margin in Firefox and Safari. -3. Remove default padding in all browsers. -*/ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - /* 1 */ - font-size: 100%; - /* 1 */ - font-weight: inherit; - /* 1 */ - line-height: inherit; - /* 1 */ - color: inherit; - /* 1 */ - margin: 0; - /* 2 */ - padding: 0; - /* 3 */ -} - -/* -Remove the inheritance of text transform in Edge and Firefox. -*/ - -button, -select { - text-transform: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Remove default button styles. -*/ - -button, -[type='button'], -[type='reset'], -[type='submit'] { - -webkit-appearance: button; - /* 1 */ - background-color: transparent; - /* 2 */ - background-image: none; - /* 2 */ -} - -/* -Use the modern Firefox focus style for all focusable elements. -*/ - -:-moz-focusring { - outline: auto; -} - -/* -Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) -*/ - -:-moz-ui-invalid { - box-shadow: none; -} - -/* -Add the correct vertical alignment in Chrome and Firefox. -*/ - -progress { - vertical-align: baseline; -} - -/* -Correct the cursor style of increment and decrement buttons in Safari. -*/ - -::-webkit-inner-spin-button, -::-webkit-outer-spin-button { - height: auto; -} - -/* -1. Correct the odd appearance in Chrome and Safari. -2. Correct the outline style in Safari. -*/ - -[type='search'] { - -webkit-appearance: textfield; - /* 1 */ - outline-offset: -2px; - /* 2 */ -} - -/* -Remove the inner padding in Chrome and Safari on macOS. -*/ - -::-webkit-search-decoration { - -webkit-appearance: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Change font properties to `inherit` in Safari. -*/ - -::-webkit-file-upload-button { - -webkit-appearance: button; - /* 1 */ - font: inherit; - /* 2 */ -} - -/* -Add the correct display in Chrome and Safari. -*/ - -summary { - display: list-item; -} - -/* -Removes the default spacing and border for appropriate elements. -*/ - -blockquote, -dl, -dd, -h1, -h2, -h3, -h4, -h5, -h6, -hr, -figure, -p, -pre { - margin: 0; -} - -fieldset { - margin: 0; - padding: 0; -} - -legend { - padding: 0; -} - -ol, -ul, -menu { - list-style: none; - margin: 0; - padding: 0; -} - -/* -Prevent resizing textareas horizontally by default. -*/ - -textarea { - resize: vertical; -} - -/* -1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) -2. Set the default placeholder color to the user's configured gray 400 color. -*/ - -input::-moz-placeholder, textarea::-moz-placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -input::placeholder, -textarea::placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -/* -Set the default cursor for buttons. -*/ - -button, -[role="button"] { - cursor: pointer; -} - -/* -Make sure disabled buttons don't get the pointer cursor. -*/ - -:disabled { - cursor: default; -} - -/* -1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) -2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) - This can trigger a poorly considered lint error in some tools but is included by design. -*/ - -img, -svg, -video, -canvas, -audio, -iframe, -embed, -object { - display: block; - /* 1 */ - vertical-align: middle; - /* 2 */ -} - -/* -Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) -*/ - -img, -video { - max-width: 100%; - height: auto; -} - -/* Make elements with the HTML hidden attribute stay hidden by default */ - -[hidden] { - display: none; -} - -*, ::before, ::after { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; -} - -::backdrop { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; -} - -.absolute { - position: absolute; -} - -.relative { - position: relative; -} - -.sticky { - position: sticky; -} - -.bottom-0 { - bottom: 0px; -} - -.bottom-0\.5 { - bottom: 0.125rem; -} - -.bottom-1 { - bottom: 0.25rem; -} - -.bottom-1\.5 { - bottom: 0.375rem; -} - -.bottom-2 { - bottom: 0.5rem; -} - -.bottom-2\.5 { - bottom: 0.625rem; -} - -.bottom-3 { - bottom: 0.75rem; -} - -.bottom-3\.5 { - bottom: 0.875rem; -} - -.bottom-4 { - bottom: 1rem; -} - -.bottom-6 { - bottom: 1.5rem; -} - -.bottom-8 { - bottom: 2rem; -} - -.bottom-px { - bottom: 1px; -} - -.left-0 { - left: 0px; -} - -.left-0\.5 { - left: 0.125rem; -} - -.left-1 { - left: 0.25rem; -} - -.left-1\.5 { - left: 0.375rem; -} - -.left-1\/2 { - left: 50%; -} - -.left-2 { - left: 0.5rem; -} - -.left-2\.5 { - left: 0.625rem; -} - -.left-3 { - left: 0.75rem; -} - -.left-3\.5 { - left: 0.875rem; -} - -.left-4 { - left: 1rem; -} - -.left-6 { - left: 1.5rem; -} - -.left-8 { - left: 2rem; -} - -.left-px { - left: 1px; -} - -.right-0 { - right: 0px; -} - -.right-0\.5 { - right: 0.125rem; -} - -.right-1 { - right: 0.25rem; -} - -.right-1\.5 { - right: 0.375rem; -} - -.right-1\/2 { - right: 50%; -} - -.right-2 { - right: 0.5rem; -} - -.right-2\.5 { - right: 0.625rem; -} - -.right-3 { - right: 0.75rem; -} - -.right-3\.5 { - right: 0.875rem; -} - -.right-4 { - right: 1rem; -} - -.right-6 { - right: 1.5rem; -} - -.right-8 { - right: 2rem; -} - -.right-px { - right: 1px; -} - -.top-0 { - top: 0px; -} - -.top-0\.5 { - top: 0.125rem; -} - -.top-1 { - top: 0.25rem; -} - -.top-1\.5 { - top: 0.375rem; -} - -.top-2 { - top: 0.5rem; -} - -.top-2\.5 { - top: 0.625rem; -} - -.top-3 { - top: 0.75rem; -} - -.top-3\.5 { - top: 0.875rem; -} - -.top-4 { - top: 1rem; -} - -.top-6 { - top: 1.5rem; -} - -.top-8 { - top: 2rem; -} - -.top-px { - top: 1px; -} - -.z-10 { - z-index: 10; -} - -.z-20 { - z-index: 20; -} - -.col-span-1 { - grid-column: span 1 / span 1; -} - -.col-span-10 { - grid-column: span 10 / span 10; -} - -.col-span-11 { - grid-column: span 11 / span 11; -} - -.col-span-12 { - grid-column: span 12 / span 12; -} - -.col-span-2 { - grid-column: span 2 / span 2; -} - -.col-span-3 { - grid-column: span 3 / span 3; -} - -.col-span-4 { - grid-column: span 4 / span 4; -} - -.col-span-5 { - grid-column: span 5 / span 5; -} - -.col-span-6 { - grid-column: span 6 / span 6; -} - -.col-span-7 { - grid-column: span 7 / span 7; -} - -.col-span-8 { - grid-column: span 8 / span 8; -} - -.col-span-9 { - grid-column: span 9 / span 9; -} - -.col-start-2 { - grid-column-start: 2; -} - -.col-start-3 { - grid-column-start: 3; -} - -.col-start-4 { - grid-column-start: 4; -} - -.col-start-5 { - grid-column-start: 5; -} - -.col-start-6 { - grid-column-start: 6; -} - -.col-start-7 { - grid-column-start: 7; -} - -.m-4 { - margin: 1rem; -} - -.mx-auto { - margin-left: auto; - margin-right: auto; -} - -.-mb-0 { - margin-bottom: -0px; -} - -.-mb-0\.5 { - margin-bottom: -0.125rem; -} - -.-mb-1 { - margin-bottom: -0.25rem; -} - -.-mb-1\.5 { - margin-bottom: -0.375rem; -} - -.-mb-2 { - margin-bottom: -0.5rem; -} - -.-mb-2\.5 { - margin-bottom: -0.625rem; -} - -.-mb-3 { - margin-bottom: -0.75rem; -} - -.-mb-3\.5 { - margin-bottom: -0.875rem; -} - -.-mb-4 { - margin-bottom: -1rem; -} - -.-mb-6 { - margin-bottom: -1.5rem; -} - -.-mb-8 { - margin-bottom: -2rem; -} - -.-mb-px { - margin-bottom: -1px; -} - -.-ml-0 { - margin-left: -0px; -} - -.-ml-0\.5 { - margin-left: -0.125rem; -} - -.-ml-1 { - margin-left: -0.25rem; -} - -.-ml-1\.5 { - margin-left: -0.375rem; -} - -.-ml-2 { - margin-left: -0.5rem; -} - -.-ml-2\.5 { - margin-left: -0.625rem; -} - -.-ml-3 { - margin-left: -0.75rem; -} - -.-ml-3\.5 { - margin-left: -0.875rem; -} - -.-ml-4 { - margin-left: -1rem; -} - -.-ml-6 { - margin-left: -1.5rem; -} - -.-ml-8 { - margin-left: -2rem; -} - -.-ml-px { - margin-left: -1px; -} - -.-mr-0 { - margin-right: -0px; -} - -.-mr-0\.5 { - margin-right: -0.125rem; -} - -.-mr-1 { - margin-right: -0.25rem; -} - -.-mr-1\.5 { - margin-right: -0.375rem; -} - -.-mr-2 { - margin-right: -0.5rem; -} - -.-mr-2\.5 { - margin-right: -0.625rem; -} - -.-mr-3 { - margin-right: -0.75rem; -} - -.-mr-3\.5 { - margin-right: -0.875rem; -} - -.-mr-4 { - margin-right: -1rem; -} - -.-mr-6 { - margin-right: -1.5rem; -} - -.-mr-8 { - margin-right: -2rem; -} - -.-mr-px { - margin-right: -1px; -} - -.-mt-0 { - margin-top: -0px; -} - -.-mt-0\.5 { - margin-top: -0.125rem; -} - -.-mt-1 { - margin-top: -0.25rem; -} - -.-mt-1\.5 { - margin-top: -0.375rem; -} - -.-mt-2 { - margin-top: -0.5rem; -} - -.-mt-2\.5 { - margin-top: -0.625rem; -} - -.-mt-3 { - margin-top: -0.75rem; -} - -.-mt-3\.5 { - margin-top: -0.875rem; -} - -.-mt-4 { - margin-top: -1rem; -} - -.-mt-6 { - margin-top: -1.5rem; -} - -.-mt-8 { - margin-top: -2rem; -} - -.-mt-px { - margin-top: -1px; -} - -.mb-0 { - margin-bottom: 0px; -} - -.mb-0\.5 { - margin-bottom: 0.125rem; -} - -.mb-1 { - margin-bottom: 0.25rem; -} - -.mb-1\.5 { - margin-bottom: 0.375rem; -} - -.mb-2 { - margin-bottom: 0.5rem; -} - -.mb-2\.5 { - margin-bottom: 0.625rem; -} - -.mb-3 { - margin-bottom: 0.75rem; -} - -.mb-3\.5 { - margin-bottom: 0.875rem; -} - -.mb-4 { - margin-bottom: 1rem; -} - -.mb-6 { - margin-bottom: 1.5rem; -} - -.mb-8 { - margin-bottom: 2rem; -} - -.mb-px { - margin-bottom: 1px; -} - -.ml-0 { - margin-left: 0px; -} - -.ml-0\.5 { - margin-left: 0.125rem; -} - -.ml-1 { - margin-left: 0.25rem; -} - -.ml-1\.5 { - margin-left: 0.375rem; -} - -.ml-2 { - margin-left: 0.5rem; -} - -.ml-2\.5 { - margin-left: 0.625rem; -} - -.ml-3 { - margin-left: 0.75rem; -} - -.ml-3\.5 { - margin-left: 0.875rem; -} - -.ml-4 { - margin-left: 1rem; -} - -.ml-6 { - margin-left: 1.5rem; -} - -.ml-8 { - margin-left: 2rem; -} - -.ml-px { - margin-left: 1px; -} - -.mr-0 { - margin-right: 0px; -} - -.mr-0\.5 { - margin-right: 0.125rem; -} - -.mr-1 { - margin-right: 0.25rem; -} - -.mr-1\.5 { - margin-right: 0.375rem; -} - -.mr-2 { - margin-right: 0.5rem; -} - -.mr-2\.5 { - margin-right: 0.625rem; -} - -.mr-3 { - margin-right: 0.75rem; -} - -.mr-3\.5 { - margin-right: 0.875rem; -} - -.mr-4 { - margin-right: 1rem; -} - -.mr-6 { - margin-right: 1.5rem; -} - -.mr-8 { - margin-right: 2rem; -} - -.mr-px { - margin-right: 1px; -} - -.mt-0 { - margin-top: 0px; -} - -.mt-0\.5 { - margin-top: 0.125rem; -} - -.mt-1 { - margin-top: 0.25rem; -} - -.mt-1\.5 { - margin-top: 0.375rem; -} - -.mt-2 { - margin-top: 0.5rem; -} - -.mt-2\.5 { - margin-top: 0.625rem; -} - -.mt-3 { - margin-top: 0.75rem; -} - -.mt-3\.5 { - margin-top: 0.875rem; -} - -.mt-4 { - margin-top: 1rem; -} - -.mt-5 { - margin-top: 1.25rem; -} - -.mt-6 { - margin-top: 1.5rem; -} - -.mt-8 { - margin-top: 2rem; -} - -.mt-px { - margin-top: 1px; -} - -.block { - display: block; -} - -.flex { - display: flex; -} - -.inline-flex { - display: inline-flex; -} - -.table { - display: table; -} - -.grid { - display: grid; -} - -.hidden { - display: none; -} - -.h-0 { - height: 0px; -} - -.h-0\.5 { - height: 0.125rem; -} - -.h-1 { - height: 0.25rem; -} - -.h-10 { - height: 2.5rem; -} - -.h-2 { - height: 0.5rem; -} - -.h-3 { - height: 0.75rem; -} - -.h-4 { - height: 1rem; -} - -.h-44 { - height: 11rem; -} - -.h-5 { - height: 1.25rem; -} - -.h-6 { - height: 1.5rem; -} - -.h-7 { - height: 1.75rem; -} - -.h-80 { - height: 20rem; -} - -.h-9 { - height: 2.25rem; -} - -.h-full { - height: 100%; -} - -.max-h-\[228px\] { - max-height: 228px; -} - -.max-h-fit { - max-height: -moz-fit-content; - max-height: fit-content; -} - -.w-0 { - width: 0px; -} - -.w-0\.5 { - width: 0.125rem; -} - -.w-1 { - width: 0.25rem; -} - -.w-1\/2 { - width: 50%; -} - -.w-16 { - width: 4rem; -} - -.w-2 { - width: 0.5rem; -} - -.w-3 { - width: 0.75rem; -} - -.w-4 { - width: 1rem; -} - -.w-4\/5 { - width: 80%; -} - -.w-48 { - width: 12rem; -} - -.w-5 { - width: 1.25rem; -} - -.w-6 { - width: 1.5rem; -} - -.w-7 { - width: 1.75rem; -} - -.w-9 { - width: 2.25rem; -} - -.w-full { - width: 100%; -} - -.w-max { - width: -moz-max-content; - width: max-content; -} - -.min-w-\[10rem\] { - min-width: 10rem; -} - -.min-w-min { - min-width: -moz-min-content; - min-width: min-content; -} - -.max-w-full { - max-width: 100%; -} - -.max-w-xs { - max-width: 20rem; -} - -.flex-1 { - flex: 1 1 0%; -} - -.flex-none { - flex: none; -} - -.flex-shrink-0 { - flex-shrink: 0; -} - -.shrink-0 { - flex-shrink: 0; -} - -.-translate-x-1\/2 { - --tw-translate-x: -50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.translate-x-1\/2 { - --tw-translate-x: 50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.-rotate-180 { - --tw-rotate: -180deg; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.transform { - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -@keyframes spin { - to { - transform: rotate(360deg); - } -} - -.animate-spin { - animation: spin 1s linear infinite; -} - -.cursor-default { - cursor: default; -} - -.cursor-pointer { - cursor: pointer; -} - -.cursor-text { - cursor: text; -} - -.resize { - resize: both; -} - -.columns-auto { - -moz-columns: auto; - columns: auto; -} - -.grid-cols-1 { - grid-template-columns: repeat(1, minmax(0, 1fr)); -} - -.grid-cols-10 { - grid-template-columns: repeat(10, minmax(0, 1fr)); -} - -.grid-cols-11 { - grid-template-columns: repeat(11, minmax(0, 1fr)); -} - -.grid-cols-12 { - grid-template-columns: repeat(12, minmax(0, 1fr)); -} - -.grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); -} - -.grid-cols-3 { - grid-template-columns: repeat(3, minmax(0, 1fr)); -} - -.grid-cols-4 { - grid-template-columns: repeat(4, minmax(0, 1fr)); -} - -.grid-cols-5 { - grid-template-columns: repeat(5, minmax(0, 1fr)); -} - -.grid-cols-6 { - grid-template-columns: repeat(6, minmax(0, 1fr)); -} - -.grid-cols-7 { - grid-template-columns: repeat(7, minmax(0, 1fr)); -} - -.grid-cols-8 { - grid-template-columns: repeat(8, minmax(0, 1fr)); -} - -.grid-cols-9 { - grid-template-columns: repeat(9, minmax(0, 1fr)); -} - -.grid-cols-none { - grid-template-columns: none; -} - -.flex-row { - flex-direction: row; -} - -.flex-row-reverse { - flex-direction: row-reverse; -} - -.flex-col { - flex-direction: column; -} - -.flex-col-reverse { - flex-direction: column-reverse; -} - -.flex-wrap { - flex-wrap: wrap; -} - -.flex-nowrap { - flex-wrap: nowrap; -} - -.items-start { - align-items: flex-start; -} - -.items-end { - align-items: flex-end; -} - -.items-center { - align-items: center; -} - -.items-baseline { - align-items: baseline; -} - -.items-stretch { - align-items: stretch; -} - -.justify-start { - justify-content: flex-start; -} - -.justify-end { - justify-content: flex-end; -} - -.justify-center { - justify-content: center; -} - -.justify-between { - justify-content: space-between; -} - -.justify-around { - justify-content: space-around; -} - -.justify-evenly { - justify-content: space-evenly; -} - -.gap-4 { - gap: 1rem; -} - -.gap-8 { - gap: 2rem; -} - -.space-x-0 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(0px * var(--tw-space-x-reverse)); - margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse))); -} - -.space-x-0\.5 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(0.125rem * var(--tw-space-x-reverse)); - margin-left: calc(0.125rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-x-1 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(0.25rem * var(--tw-space-x-reverse)); - margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-x-1\.5 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(0.375rem * var(--tw-space-x-reverse)); - margin-left: calc(0.375rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-x-2 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(0.5rem * var(--tw-space-x-reverse)); - margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-x-2\.5 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(0.625rem * var(--tw-space-x-reverse)); - margin-left: calc(0.625rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-x-3 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(0.75rem * var(--tw-space-x-reverse)); - margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-x-3\.5 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(0.875rem * var(--tw-space-x-reverse)); - margin-left: calc(0.875rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-x-4 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(1rem * var(--tw-space-x-reverse)); - margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-x-6 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(1.5rem * var(--tw-space-x-reverse)); - margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-x-8 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(2rem * var(--tw-space-x-reverse)); - margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-x-px > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(1px * var(--tw-space-x-reverse)); - margin-left: calc(1px * calc(1 - var(--tw-space-x-reverse))); -} - -.space-y-1 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); -} - -.space-y-4 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(1rem * var(--tw-space-y-reverse)); -} - -.divide-y > :not([hidden]) ~ :not([hidden]) { - --tw-divide-y-reverse: 0; - border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); - border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); -} - -.divide-amber-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(254 243 199 / var(--tw-divide-opacity)); -} - -.divide-amber-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(253 230 138 / var(--tw-divide-opacity)); -} - -.divide-amber-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(252 211 77 / var(--tw-divide-opacity)); -} - -.divide-amber-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(251 191 36 / var(--tw-divide-opacity)); -} - -.divide-amber-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(255 251 235 / var(--tw-divide-opacity)); -} - -.divide-amber-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(245 158 11 / var(--tw-divide-opacity)); -} - -.divide-amber-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(217 119 6 / var(--tw-divide-opacity)); -} - -.divide-amber-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(180 83 9 / var(--tw-divide-opacity)); -} - -.divide-amber-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(146 64 14 / var(--tw-divide-opacity)); -} - -.divide-amber-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(120 53 15 / var(--tw-divide-opacity)); -} - -.divide-black > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-divide-opacity)); -} - -.divide-blue-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(219 234 254 / var(--tw-divide-opacity)); -} - -.divide-blue-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(191 219 254 / var(--tw-divide-opacity)); -} - -.divide-blue-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(147 197 253 / var(--tw-divide-opacity)); -} - -.divide-blue-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(96 165 250 / var(--tw-divide-opacity)); -} - -.divide-blue-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(239 246 255 / var(--tw-divide-opacity)); -} - -.divide-blue-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(59 130 246 / var(--tw-divide-opacity)); -} - -.divide-blue-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(37 99 235 / var(--tw-divide-opacity)); -} - -.divide-blue-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(29 78 216 / var(--tw-divide-opacity)); -} - -.divide-blue-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(30 64 175 / var(--tw-divide-opacity)); -} - -.divide-blue-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(30 58 138 / var(--tw-divide-opacity)); -} - -.divide-cyan-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(207 250 254 / var(--tw-divide-opacity)); -} - -.divide-cyan-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(165 243 252 / var(--tw-divide-opacity)); -} - -.divide-cyan-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(103 232 249 / var(--tw-divide-opacity)); -} - -.divide-cyan-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(34 211 238 / var(--tw-divide-opacity)); -} - -.divide-cyan-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(236 254 255 / var(--tw-divide-opacity)); -} - -.divide-cyan-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(6 182 212 / var(--tw-divide-opacity)); -} - -.divide-cyan-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(8 145 178 / var(--tw-divide-opacity)); -} - -.divide-cyan-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(14 116 144 / var(--tw-divide-opacity)); -} - -.divide-cyan-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(21 94 117 / var(--tw-divide-opacity)); -} - -.divide-cyan-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(22 78 99 / var(--tw-divide-opacity)); -} - -.divide-emerald-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(209 250 229 / var(--tw-divide-opacity)); -} - -.divide-emerald-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(167 243 208 / var(--tw-divide-opacity)); -} - -.divide-emerald-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(110 231 183 / var(--tw-divide-opacity)); -} - -.divide-emerald-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(52 211 153 / var(--tw-divide-opacity)); -} - -.divide-emerald-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(236 253 245 / var(--tw-divide-opacity)); -} - -.divide-emerald-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(16 185 129 / var(--tw-divide-opacity)); -} - -.divide-emerald-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(5 150 105 / var(--tw-divide-opacity)); -} - -.divide-emerald-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(4 120 87 / var(--tw-divide-opacity)); -} - -.divide-emerald-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(6 95 70 / var(--tw-divide-opacity)); -} - -.divide-emerald-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(6 78 59 / var(--tw-divide-opacity)); -} - -.divide-fuchsia-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(250 232 255 / var(--tw-divide-opacity)); -} - -.divide-fuchsia-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(245 208 254 / var(--tw-divide-opacity)); -} - -.divide-fuchsia-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(240 171 252 / var(--tw-divide-opacity)); -} - -.divide-fuchsia-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(232 121 249 / var(--tw-divide-opacity)); -} - -.divide-fuchsia-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(253 244 255 / var(--tw-divide-opacity)); -} - -.divide-fuchsia-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(217 70 239 / var(--tw-divide-opacity)); -} - -.divide-fuchsia-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(192 38 211 / var(--tw-divide-opacity)); -} - -.divide-fuchsia-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(162 28 175 / var(--tw-divide-opacity)); -} - -.divide-fuchsia-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(134 25 143 / var(--tw-divide-opacity)); -} - -.divide-fuchsia-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(112 26 117 / var(--tw-divide-opacity)); -} - -.divide-gray-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(243 244 246 / var(--tw-divide-opacity)); -} - -.divide-gray-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-divide-opacity)); -} - -.divide-gray-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-divide-opacity)); -} - -.divide-gray-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-divide-opacity)); -} - -.divide-gray-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(249 250 251 / var(--tw-divide-opacity)); -} - -.divide-gray-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(107 114 128 / var(--tw-divide-opacity)); -} - -.divide-gray-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-divide-opacity)); -} - -.divide-gray-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-divide-opacity)); -} - -.divide-gray-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(31 41 55 / var(--tw-divide-opacity)); -} - -.divide-gray-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(17 24 39 / var(--tw-divide-opacity)); -} - -.divide-green-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(220 252 231 / var(--tw-divide-opacity)); -} - -.divide-green-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(187 247 208 / var(--tw-divide-opacity)); -} - -.divide-green-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(134 239 172 / var(--tw-divide-opacity)); -} - -.divide-green-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(74 222 128 / var(--tw-divide-opacity)); -} - -.divide-green-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(240 253 244 / var(--tw-divide-opacity)); -} - -.divide-green-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(34 197 94 / var(--tw-divide-opacity)); -} - -.divide-green-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(22 163 74 / var(--tw-divide-opacity)); -} - -.divide-green-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(21 128 61 / var(--tw-divide-opacity)); -} - -.divide-green-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(22 101 52 / var(--tw-divide-opacity)); -} - -.divide-green-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(20 83 45 / var(--tw-divide-opacity)); -} - -.divide-indigo-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(224 231 255 / var(--tw-divide-opacity)); -} - -.divide-indigo-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(199 210 254 / var(--tw-divide-opacity)); -} - -.divide-indigo-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(165 180 252 / var(--tw-divide-opacity)); -} - -.divide-indigo-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(129 140 248 / var(--tw-divide-opacity)); -} - -.divide-indigo-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(238 242 255 / var(--tw-divide-opacity)); -} - -.divide-indigo-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(99 102 241 / var(--tw-divide-opacity)); -} - -.divide-indigo-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(79 70 229 / var(--tw-divide-opacity)); -} - -.divide-indigo-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(67 56 202 / var(--tw-divide-opacity)); -} - -.divide-indigo-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(55 48 163 / var(--tw-divide-opacity)); -} - -.divide-indigo-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(49 46 129 / var(--tw-divide-opacity)); -} - -.divide-lime-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(236 252 203 / var(--tw-divide-opacity)); -} - -.divide-lime-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(217 249 157 / var(--tw-divide-opacity)); -} - -.divide-lime-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(190 242 100 / var(--tw-divide-opacity)); -} - -.divide-lime-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(163 230 53 / var(--tw-divide-opacity)); -} - -.divide-lime-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(247 254 231 / var(--tw-divide-opacity)); -} - -.divide-lime-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(132 204 22 / var(--tw-divide-opacity)); -} - -.divide-lime-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(101 163 13 / var(--tw-divide-opacity)); -} - -.divide-lime-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(77 124 15 / var(--tw-divide-opacity)); -} - -.divide-lime-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(63 98 18 / var(--tw-divide-opacity)); -} - -.divide-lime-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(54 83 20 / var(--tw-divide-opacity)); -} - -.divide-neutral-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(245 245 245 / var(--tw-divide-opacity)); -} - -.divide-neutral-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(229 229 229 / var(--tw-divide-opacity)); -} - -.divide-neutral-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(212 212 212 / var(--tw-divide-opacity)); -} - -.divide-neutral-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(163 163 163 / var(--tw-divide-opacity)); -} - -.divide-neutral-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(250 250 250 / var(--tw-divide-opacity)); -} - -.divide-neutral-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(115 115 115 / var(--tw-divide-opacity)); -} - -.divide-neutral-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(82 82 82 / var(--tw-divide-opacity)); -} - -.divide-neutral-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(64 64 64 / var(--tw-divide-opacity)); -} - -.divide-neutral-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(38 38 38 / var(--tw-divide-opacity)); -} - -.divide-neutral-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(23 23 23 / var(--tw-divide-opacity)); -} - -.divide-orange-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(255 237 213 / var(--tw-divide-opacity)); -} - -.divide-orange-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(254 215 170 / var(--tw-divide-opacity)); -} - -.divide-orange-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(253 186 116 / var(--tw-divide-opacity)); -} - -.divide-orange-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(251 146 60 / var(--tw-divide-opacity)); -} - -.divide-orange-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(255 247 237 / var(--tw-divide-opacity)); -} - -.divide-orange-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(249 115 22 / var(--tw-divide-opacity)); -} - -.divide-orange-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(234 88 12 / var(--tw-divide-opacity)); -} - -.divide-orange-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(194 65 12 / var(--tw-divide-opacity)); -} - -.divide-orange-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(154 52 18 / var(--tw-divide-opacity)); -} - -.divide-orange-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(124 45 18 / var(--tw-divide-opacity)); -} - -.divide-pink-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(252 231 243 / var(--tw-divide-opacity)); -} - -.divide-pink-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(251 207 232 / var(--tw-divide-opacity)); -} - -.divide-pink-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(249 168 212 / var(--tw-divide-opacity)); -} - -.divide-pink-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(244 114 182 / var(--tw-divide-opacity)); -} - -.divide-pink-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(253 242 248 / var(--tw-divide-opacity)); -} - -.divide-pink-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(236 72 153 / var(--tw-divide-opacity)); -} - -.divide-pink-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(219 39 119 / var(--tw-divide-opacity)); -} - -.divide-pink-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(190 24 93 / var(--tw-divide-opacity)); -} - -.divide-pink-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(131 24 67 / var(--tw-divide-opacity)); -} - -.divide-purple-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(243 232 255 / var(--tw-divide-opacity)); -} - -.divide-purple-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(233 213 255 / var(--tw-divide-opacity)); -} - -.divide-purple-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(216 180 254 / var(--tw-divide-opacity)); -} - -.divide-purple-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(192 132 252 / var(--tw-divide-opacity)); -} - -.divide-purple-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(250 245 255 / var(--tw-divide-opacity)); -} - -.divide-purple-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(168 85 247 / var(--tw-divide-opacity)); -} - -.divide-purple-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(147 51 234 / var(--tw-divide-opacity)); -} - -.divide-purple-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(126 34 206 / var(--tw-divide-opacity)); -} - -.divide-purple-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(107 33 168 / var(--tw-divide-opacity)); -} - -.divide-purple-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(88 28 135 / var(--tw-divide-opacity)); -} - -.divide-red-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(254 226 226 / var(--tw-divide-opacity)); -} - -.divide-red-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(254 202 202 / var(--tw-divide-opacity)); -} - -.divide-red-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(252 165 165 / var(--tw-divide-opacity)); -} - -.divide-red-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(248 113 113 / var(--tw-divide-opacity)); -} - -.divide-red-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(254 242 242 / var(--tw-divide-opacity)); -} - -.divide-red-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(239 68 68 / var(--tw-divide-opacity)); -} - -.divide-red-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(220 38 38 / var(--tw-divide-opacity)); -} - -.divide-red-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(185 28 28 / var(--tw-divide-opacity)); -} - -.divide-red-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(153 27 27 / var(--tw-divide-opacity)); -} - -.divide-red-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(127 29 29 / var(--tw-divide-opacity)); -} - -.divide-rose-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(255 228 230 / var(--tw-divide-opacity)); -} - -.divide-rose-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(254 205 211 / var(--tw-divide-opacity)); -} - -.divide-rose-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(253 164 175 / var(--tw-divide-opacity)); -} - -.divide-rose-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(251 113 133 / var(--tw-divide-opacity)); -} - -.divide-rose-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(255 241 242 / var(--tw-divide-opacity)); -} - -.divide-rose-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(244 63 94 / var(--tw-divide-opacity)); -} - -.divide-rose-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(225 29 72 / var(--tw-divide-opacity)); -} - -.divide-rose-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(190 18 60 / var(--tw-divide-opacity)); -} - -.divide-rose-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(159 18 57 / var(--tw-divide-opacity)); -} - -.divide-rose-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(136 19 55 / var(--tw-divide-opacity)); -} - -.divide-sky-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(224 242 254 / var(--tw-divide-opacity)); -} - -.divide-sky-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(186 230 253 / var(--tw-divide-opacity)); -} - -.divide-sky-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(125 211 252 / var(--tw-divide-opacity)); -} - -.divide-sky-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(56 189 248 / var(--tw-divide-opacity)); -} - -.divide-sky-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(240 249 255 / var(--tw-divide-opacity)); -} - -.divide-sky-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(14 165 233 / var(--tw-divide-opacity)); -} - -.divide-sky-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(2 132 199 / var(--tw-divide-opacity)); -} - -.divide-sky-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(3 105 161 / var(--tw-divide-opacity)); -} - -.divide-sky-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(7 89 133 / var(--tw-divide-opacity)); -} - -.divide-sky-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(12 74 110 / var(--tw-divide-opacity)); -} - -.divide-slate-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(241 245 249 / var(--tw-divide-opacity)); -} - -.divide-slate-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(226 232 240 / var(--tw-divide-opacity)); -} - -.divide-slate-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(203 213 225 / var(--tw-divide-opacity)); -} - -.divide-slate-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(148 163 184 / var(--tw-divide-opacity)); -} - -.divide-slate-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(248 250 252 / var(--tw-divide-opacity)); -} - -.divide-slate-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(100 116 139 / var(--tw-divide-opacity)); -} - -.divide-slate-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(71 85 105 / var(--tw-divide-opacity)); -} - -.divide-slate-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(51 65 85 / var(--tw-divide-opacity)); -} - -.divide-slate-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(30 41 59 / var(--tw-divide-opacity)); -} - -.divide-slate-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(15 23 42 / var(--tw-divide-opacity)); -} - -.divide-stone-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(245 245 244 / var(--tw-divide-opacity)); -} - -.divide-stone-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(231 229 228 / var(--tw-divide-opacity)); -} - -.divide-stone-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(214 211 209 / var(--tw-divide-opacity)); -} - -.divide-stone-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(168 162 158 / var(--tw-divide-opacity)); -} - -.divide-stone-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(250 250 249 / var(--tw-divide-opacity)); -} - -.divide-stone-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(120 113 108 / var(--tw-divide-opacity)); -} - -.divide-stone-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(87 83 78 / var(--tw-divide-opacity)); -} - -.divide-stone-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(68 64 60 / var(--tw-divide-opacity)); -} - -.divide-stone-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(41 37 36 / var(--tw-divide-opacity)); -} - -.divide-stone-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(28 25 23 / var(--tw-divide-opacity)); -} - -.divide-teal-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(204 251 241 / var(--tw-divide-opacity)); -} - -.divide-teal-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(153 246 228 / var(--tw-divide-opacity)); -} - -.divide-teal-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(94 234 212 / var(--tw-divide-opacity)); -} - -.divide-teal-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(45 212 191 / var(--tw-divide-opacity)); -} - -.divide-teal-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(240 253 250 / var(--tw-divide-opacity)); -} - -.divide-teal-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(20 184 166 / var(--tw-divide-opacity)); -} - -.divide-teal-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(13 148 136 / var(--tw-divide-opacity)); -} - -.divide-teal-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(15 118 110 / var(--tw-divide-opacity)); -} - -.divide-teal-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(17 94 89 / var(--tw-divide-opacity)); -} - -.divide-teal-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(19 78 74 / var(--tw-divide-opacity)); -} - -.divide-transparent > :not([hidden]) ~ :not([hidden]) { - border-color: transparent; -} - -.divide-violet-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(237 233 254 / var(--tw-divide-opacity)); -} - -.divide-violet-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(221 214 254 / var(--tw-divide-opacity)); -} - -.divide-violet-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(196 181 253 / var(--tw-divide-opacity)); -} - -.divide-violet-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(167 139 250 / var(--tw-divide-opacity)); -} - -.divide-violet-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(245 243 255 / var(--tw-divide-opacity)); -} - -.divide-violet-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(139 92 246 / var(--tw-divide-opacity)); -} - -.divide-violet-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(124 58 237 / var(--tw-divide-opacity)); -} - -.divide-violet-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(109 40 217 / var(--tw-divide-opacity)); -} - -.divide-violet-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(91 33 182 / var(--tw-divide-opacity)); -} - -.divide-violet-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(76 29 149 / var(--tw-divide-opacity)); -} - -.divide-white > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(255 255 255 / var(--tw-divide-opacity)); -} - -.divide-yellow-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(254 249 195 / var(--tw-divide-opacity)); -} - -.divide-yellow-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(254 240 138 / var(--tw-divide-opacity)); -} - -.divide-yellow-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(253 224 71 / var(--tw-divide-opacity)); -} - -.divide-yellow-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(250 204 21 / var(--tw-divide-opacity)); -} - -.divide-yellow-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(254 252 232 / var(--tw-divide-opacity)); -} - -.divide-yellow-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(234 179 8 / var(--tw-divide-opacity)); -} - -.divide-yellow-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(202 138 4 / var(--tw-divide-opacity)); -} - -.divide-yellow-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(161 98 7 / var(--tw-divide-opacity)); -} - -.divide-yellow-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(133 77 14 / var(--tw-divide-opacity)); -} - -.divide-yellow-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(113 63 18 / var(--tw-divide-opacity)); -} - -.divide-zinc-100 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(244 244 245 / var(--tw-divide-opacity)); -} - -.divide-zinc-200 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(228 228 231 / var(--tw-divide-opacity)); -} - -.divide-zinc-300 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(212 212 216 / var(--tw-divide-opacity)); -} - -.divide-zinc-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(161 161 170 / var(--tw-divide-opacity)); -} - -.divide-zinc-50 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(250 250 250 / var(--tw-divide-opacity)); -} - -.divide-zinc-500 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(113 113 122 / var(--tw-divide-opacity)); -} - -.divide-zinc-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(82 82 91 / var(--tw-divide-opacity)); -} - -.divide-zinc-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(63 63 70 / var(--tw-divide-opacity)); -} - -.divide-zinc-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(39 39 42 / var(--tw-divide-opacity)); -} - -.divide-zinc-900 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(24 24 27 / var(--tw-divide-opacity)); -} - -.overflow-auto { - overflow: auto; -} - -.overflow-hidden { - overflow: hidden; -} - -.overflow-x-auto { - overflow-x: auto; -} - -.overflow-y-auto { - overflow-y: auto; -} - -.overflow-x-clip { - overflow-x: clip; -} - -.truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.whitespace-nowrap { - white-space: nowrap; -} - -.rounded { - border-radius: 0.25rem; -} - -.rounded-full { - border-radius: 9999px; -} - -.rounded-lg { - border-radius: 0.5rem; -} - -.rounded-md { - border-radius: 0.375rem; -} - -.rounded-none { - border-radius: 0px; -} - -.rounded-b { - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; -} - -.rounded-b-full { - border-bottom-right-radius: 9999px; - border-bottom-left-radius: 9999px; -} - -.rounded-b-lg { - border-bottom-right-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; -} - -.rounded-b-md { - border-bottom-right-radius: 0.375rem; - border-bottom-left-radius: 0.375rem; -} - -.rounded-b-none { - border-bottom-right-radius: 0px; - border-bottom-left-radius: 0px; -} - -.rounded-l { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; -} - -.rounded-l-full { - border-top-left-radius: 9999px; - border-bottom-left-radius: 9999px; -} - -.rounded-l-lg { - border-top-left-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; -} - -.rounded-l-md { - border-top-left-radius: 0.375rem; - border-bottom-left-radius: 0.375rem; -} - -.rounded-l-none { - border-top-left-radius: 0px; - border-bottom-left-radius: 0px; -} - -.rounded-r { - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; -} - -.rounded-r-full { - border-top-right-radius: 9999px; - border-bottom-right-radius: 9999px; -} - -.rounded-r-lg { - border-top-right-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; -} - -.rounded-r-md { - border-top-right-radius: 0.375rem; - border-bottom-right-radius: 0.375rem; -} - -.rounded-r-none { - border-top-right-radius: 0px; - border-bottom-right-radius: 0px; -} - -.rounded-t { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; -} - -.rounded-t-full { - border-top-left-radius: 9999px; - border-top-right-radius: 9999px; -} - -.rounded-t-lg { - border-top-left-radius: 0.5rem; - border-top-right-radius: 0.5rem; -} - -.rounded-t-md { - border-top-left-radius: 0.375rem; - border-top-right-radius: 0.375rem; -} - -.rounded-t-none { - border-top-left-radius: 0px; - border-top-right-radius: 0px; -} - -.border { - border-width: 1px; -} - -.border-0 { - border-width: 0px; -} - -.border-2 { - border-width: 2px; -} - -.border-4 { - border-width: 4px; -} - -.border-b { - border-bottom-width: 1px; -} - -.border-b-0 { - border-bottom-width: 0px; -} - -.border-b-2 { - border-bottom-width: 2px; -} - -.border-b-4 { - border-bottom-width: 4px; -} - -.border-l { - border-left-width: 1px; -} - -.border-l-0 { - border-left-width: 0px; -} - -.border-l-2 { - border-left-width: 2px; -} - -.border-l-4 { - border-left-width: 4px; -} - -.border-r { - border-right-width: 1px; -} - -.border-r-0 { - border-right-width: 0px; -} - -.border-r-2 { - border-right-width: 2px; -} - -.border-r-4 { - border-right-width: 4px; -} - -.border-t { - border-top-width: 1px; -} - -.border-t-0 { - border-top-width: 0px; -} - -.border-t-2 { - border-top-width: 2px; -} - -.border-t-4 { - border-top-width: 4px; -} - -.border-solid { - border-style: solid; -} - -.border-dashed { - border-style: dashed; -} - -.border-amber-100 { - --tw-border-opacity: 1; - border-color: rgb(254 243 199 / var(--tw-border-opacity)); -} - -.border-amber-200 { - --tw-border-opacity: 1; - border-color: rgb(253 230 138 / var(--tw-border-opacity)); -} - -.border-amber-300 { - --tw-border-opacity: 1; - border-color: rgb(252 211 77 / var(--tw-border-opacity)); -} - -.border-amber-400 { - --tw-border-opacity: 1; - border-color: rgb(251 191 36 / var(--tw-border-opacity)); -} - -.border-amber-50 { - --tw-border-opacity: 1; - border-color: rgb(255 251 235 / var(--tw-border-opacity)); -} - -.border-amber-500 { - --tw-border-opacity: 1; - border-color: rgb(245 158 11 / var(--tw-border-opacity)); -} - -.border-amber-600 { - --tw-border-opacity: 1; - border-color: rgb(217 119 6 / var(--tw-border-opacity)); -} - -.border-amber-700 { - --tw-border-opacity: 1; - border-color: rgb(180 83 9 / var(--tw-border-opacity)); -} - -.border-amber-800 { - --tw-border-opacity: 1; - border-color: rgb(146 64 14 / var(--tw-border-opacity)); -} - -.border-amber-900 { - --tw-border-opacity: 1; - border-color: rgb(120 53 15 / var(--tw-border-opacity)); -} - -.border-black { - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); -} - -.border-blue-100 { - --tw-border-opacity: 1; - border-color: rgb(219 234 254 / var(--tw-border-opacity)); -} - -.border-blue-200 { - --tw-border-opacity: 1; - border-color: rgb(191 219 254 / var(--tw-border-opacity)); -} - -.border-blue-300 { - --tw-border-opacity: 1; - border-color: rgb(147 197 253 / var(--tw-border-opacity)); -} - -.border-blue-400 { - --tw-border-opacity: 1; - border-color: rgb(96 165 250 / var(--tw-border-opacity)); -} - -.border-blue-50 { - --tw-border-opacity: 1; - border-color: rgb(239 246 255 / var(--tw-border-opacity)); -} - -.border-blue-500 { - --tw-border-opacity: 1; - border-color: rgb(59 130 246 / var(--tw-border-opacity)); -} - -.border-blue-600 { - --tw-border-opacity: 1; - border-color: rgb(37 99 235 / var(--tw-border-opacity)); -} - -.border-blue-700 { - --tw-border-opacity: 1; - border-color: rgb(29 78 216 / var(--tw-border-opacity)); -} - -.border-blue-800 { - --tw-border-opacity: 1; - border-color: rgb(30 64 175 / var(--tw-border-opacity)); -} - -.border-blue-900 { - --tw-border-opacity: 1; - border-color: rgb(30 58 138 / var(--tw-border-opacity)); -} - -.border-cyan-100 { - --tw-border-opacity: 1; - border-color: rgb(207 250 254 / var(--tw-border-opacity)); -} - -.border-cyan-200 { - --tw-border-opacity: 1; - border-color: rgb(165 243 252 / var(--tw-border-opacity)); -} - -.border-cyan-300 { - --tw-border-opacity: 1; - border-color: rgb(103 232 249 / var(--tw-border-opacity)); -} - -.border-cyan-400 { - --tw-border-opacity: 1; - border-color: rgb(34 211 238 / var(--tw-border-opacity)); -} - -.border-cyan-50 { - --tw-border-opacity: 1; - border-color: rgb(236 254 255 / var(--tw-border-opacity)); -} - -.border-cyan-500 { - --tw-border-opacity: 1; - border-color: rgb(6 182 212 / var(--tw-border-opacity)); -} - -.border-cyan-600 { - --tw-border-opacity: 1; - border-color: rgb(8 145 178 / var(--tw-border-opacity)); -} - -.border-cyan-700 { - --tw-border-opacity: 1; - border-color: rgb(14 116 144 / var(--tw-border-opacity)); -} - -.border-cyan-800 { - --tw-border-opacity: 1; - border-color: rgb(21 94 117 / var(--tw-border-opacity)); -} - -.border-cyan-900 { - --tw-border-opacity: 1; - border-color: rgb(22 78 99 / var(--tw-border-opacity)); -} - -.border-emerald-100 { - --tw-border-opacity: 1; - border-color: rgb(209 250 229 / var(--tw-border-opacity)); -} - -.border-emerald-200 { - --tw-border-opacity: 1; - border-color: rgb(167 243 208 / var(--tw-border-opacity)); -} - -.border-emerald-300 { - --tw-border-opacity: 1; - border-color: rgb(110 231 183 / var(--tw-border-opacity)); -} - -.border-emerald-400 { - --tw-border-opacity: 1; - border-color: rgb(52 211 153 / var(--tw-border-opacity)); -} - -.border-emerald-50 { - --tw-border-opacity: 1; - border-color: rgb(236 253 245 / var(--tw-border-opacity)); -} - -.border-emerald-500 { - --tw-border-opacity: 1; - border-color: rgb(16 185 129 / var(--tw-border-opacity)); -} - -.border-emerald-600 { - --tw-border-opacity: 1; - border-color: rgb(5 150 105 / var(--tw-border-opacity)); -} - -.border-emerald-700 { - --tw-border-opacity: 1; - border-color: rgb(4 120 87 / var(--tw-border-opacity)); -} - -.border-emerald-800 { - --tw-border-opacity: 1; - border-color: rgb(6 95 70 / var(--tw-border-opacity)); -} - -.border-emerald-900 { - --tw-border-opacity: 1; - border-color: rgb(6 78 59 / var(--tw-border-opacity)); -} - -.border-fuchsia-100 { - --tw-border-opacity: 1; - border-color: rgb(250 232 255 / var(--tw-border-opacity)); -} - -.border-fuchsia-200 { - --tw-border-opacity: 1; - border-color: rgb(245 208 254 / var(--tw-border-opacity)); -} - -.border-fuchsia-300 { - --tw-border-opacity: 1; - border-color: rgb(240 171 252 / var(--tw-border-opacity)); -} - -.border-fuchsia-400 { - --tw-border-opacity: 1; - border-color: rgb(232 121 249 / var(--tw-border-opacity)); -} - -.border-fuchsia-50 { - --tw-border-opacity: 1; - border-color: rgb(253 244 255 / var(--tw-border-opacity)); -} - -.border-fuchsia-500 { - --tw-border-opacity: 1; - border-color: rgb(217 70 239 / var(--tw-border-opacity)); -} - -.border-fuchsia-600 { - --tw-border-opacity: 1; - border-color: rgb(192 38 211 / var(--tw-border-opacity)); -} - -.border-fuchsia-700 { - --tw-border-opacity: 1; - border-color: rgb(162 28 175 / var(--tw-border-opacity)); -} - -.border-fuchsia-800 { - --tw-border-opacity: 1; - border-color: rgb(134 25 143 / var(--tw-border-opacity)); -} - -.border-fuchsia-900 { - --tw-border-opacity: 1; - border-color: rgb(112 26 117 / var(--tw-border-opacity)); -} - -.border-gray-100 { - --tw-border-opacity: 1; - border-color: rgb(243 244 246 / var(--tw-border-opacity)); -} - -.border-gray-200 { - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity)); -} - -.border-gray-300 { - --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity)); -} - -.border-gray-400 { - --tw-border-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-border-opacity)); -} - -.border-gray-50 { - --tw-border-opacity: 1; - border-color: rgb(249 250 251 / var(--tw-border-opacity)); -} - -.border-gray-500 { - --tw-border-opacity: 1; - border-color: rgb(107 114 128 / var(--tw-border-opacity)); -} - -.border-gray-600 { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity)); -} - -.border-gray-700 { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity)); -} - -.border-gray-800 { - --tw-border-opacity: 1; - border-color: rgb(31 41 55 / var(--tw-border-opacity)); -} - -.border-gray-900 { - --tw-border-opacity: 1; - border-color: rgb(17 24 39 / var(--tw-border-opacity)); -} - -.border-green-100 { - --tw-border-opacity: 1; - border-color: rgb(220 252 231 / var(--tw-border-opacity)); -} - -.border-green-200 { - --tw-border-opacity: 1; - border-color: rgb(187 247 208 / var(--tw-border-opacity)); -} - -.border-green-300 { - --tw-border-opacity: 1; - border-color: rgb(134 239 172 / var(--tw-border-opacity)); -} - -.border-green-400 { - --tw-border-opacity: 1; - border-color: rgb(74 222 128 / var(--tw-border-opacity)); -} - -.border-green-50 { - --tw-border-opacity: 1; - border-color: rgb(240 253 244 / var(--tw-border-opacity)); -} - -.border-green-500 { - --tw-border-opacity: 1; - border-color: rgb(34 197 94 / var(--tw-border-opacity)); -} - -.border-green-600 { - --tw-border-opacity: 1; - border-color: rgb(22 163 74 / var(--tw-border-opacity)); -} - -.border-green-700 { - --tw-border-opacity: 1; - border-color: rgb(21 128 61 / var(--tw-border-opacity)); -} - -.border-green-800 { - --tw-border-opacity: 1; - border-color: rgb(22 101 52 / var(--tw-border-opacity)); -} - -.border-green-900 { - --tw-border-opacity: 1; - border-color: rgb(20 83 45 / var(--tw-border-opacity)); -} - -.border-indigo-100 { - --tw-border-opacity: 1; - border-color: rgb(224 231 255 / var(--tw-border-opacity)); -} - -.border-indigo-200 { - --tw-border-opacity: 1; - border-color: rgb(199 210 254 / var(--tw-border-opacity)); -} - -.border-indigo-300 { - --tw-border-opacity: 1; - border-color: rgb(165 180 252 / var(--tw-border-opacity)); -} - -.border-indigo-400 { - --tw-border-opacity: 1; - border-color: rgb(129 140 248 / var(--tw-border-opacity)); -} - -.border-indigo-50 { - --tw-border-opacity: 1; - border-color: rgb(238 242 255 / var(--tw-border-opacity)); -} - -.border-indigo-500 { - --tw-border-opacity: 1; - border-color: rgb(99 102 241 / var(--tw-border-opacity)); -} - -.border-indigo-600 { - --tw-border-opacity: 1; - border-color: rgb(79 70 229 / var(--tw-border-opacity)); -} - -.border-indigo-700 { - --tw-border-opacity: 1; - border-color: rgb(67 56 202 / var(--tw-border-opacity)); -} - -.border-indigo-800 { - --tw-border-opacity: 1; - border-color: rgb(55 48 163 / var(--tw-border-opacity)); -} - -.border-indigo-900 { - --tw-border-opacity: 1; - border-color: rgb(49 46 129 / var(--tw-border-opacity)); -} - -.border-lime-100 { - --tw-border-opacity: 1; - border-color: rgb(236 252 203 / var(--tw-border-opacity)); -} - -.border-lime-200 { - --tw-border-opacity: 1; - border-color: rgb(217 249 157 / var(--tw-border-opacity)); -} - -.border-lime-300 { - --tw-border-opacity: 1; - border-color: rgb(190 242 100 / var(--tw-border-opacity)); -} - -.border-lime-400 { - --tw-border-opacity: 1; - border-color: rgb(163 230 53 / var(--tw-border-opacity)); -} - -.border-lime-50 { - --tw-border-opacity: 1; - border-color: rgb(247 254 231 / var(--tw-border-opacity)); -} - -.border-lime-500 { - --tw-border-opacity: 1; - border-color: rgb(132 204 22 / var(--tw-border-opacity)); -} - -.border-lime-600 { - --tw-border-opacity: 1; - border-color: rgb(101 163 13 / var(--tw-border-opacity)); -} - -.border-lime-700 { - --tw-border-opacity: 1; - border-color: rgb(77 124 15 / var(--tw-border-opacity)); -} - -.border-lime-800 { - --tw-border-opacity: 1; - border-color: rgb(63 98 18 / var(--tw-border-opacity)); -} - -.border-lime-900 { - --tw-border-opacity: 1; - border-color: rgb(54 83 20 / var(--tw-border-opacity)); -} - -.border-neutral-100 { - --tw-border-opacity: 1; - border-color: rgb(245 245 245 / var(--tw-border-opacity)); -} - -.border-neutral-200 { - --tw-border-opacity: 1; - border-color: rgb(229 229 229 / var(--tw-border-opacity)); -} - -.border-neutral-300 { - --tw-border-opacity: 1; - border-color: rgb(212 212 212 / var(--tw-border-opacity)); -} - -.border-neutral-400 { - --tw-border-opacity: 1; - border-color: rgb(163 163 163 / var(--tw-border-opacity)); -} - -.border-neutral-50 { - --tw-border-opacity: 1; - border-color: rgb(250 250 250 / var(--tw-border-opacity)); -} - -.border-neutral-500 { - --tw-border-opacity: 1; - border-color: rgb(115 115 115 / var(--tw-border-opacity)); -} - -.border-neutral-600 { - --tw-border-opacity: 1; - border-color: rgb(82 82 82 / var(--tw-border-opacity)); -} - -.border-neutral-700 { - --tw-border-opacity: 1; - border-color: rgb(64 64 64 / var(--tw-border-opacity)); -} - -.border-neutral-800 { - --tw-border-opacity: 1; - border-color: rgb(38 38 38 / var(--tw-border-opacity)); -} - -.border-neutral-900 { - --tw-border-opacity: 1; - border-color: rgb(23 23 23 / var(--tw-border-opacity)); -} - -.border-orange-100 { - --tw-border-opacity: 1; - border-color: rgb(255 237 213 / var(--tw-border-opacity)); -} - -.border-orange-200 { - --tw-border-opacity: 1; - border-color: rgb(254 215 170 / var(--tw-border-opacity)); -} - -.border-orange-300 { - --tw-border-opacity: 1; - border-color: rgb(253 186 116 / var(--tw-border-opacity)); -} - -.border-orange-400 { - --tw-border-opacity: 1; - border-color: rgb(251 146 60 / var(--tw-border-opacity)); -} - -.border-orange-50 { - --tw-border-opacity: 1; - border-color: rgb(255 247 237 / var(--tw-border-opacity)); -} - -.border-orange-500 { - --tw-border-opacity: 1; - border-color: rgb(249 115 22 / var(--tw-border-opacity)); -} - -.border-orange-600 { - --tw-border-opacity: 1; - border-color: rgb(234 88 12 / var(--tw-border-opacity)); -} - -.border-orange-700 { - --tw-border-opacity: 1; - border-color: rgb(194 65 12 / var(--tw-border-opacity)); -} - -.border-orange-800 { - --tw-border-opacity: 1; - border-color: rgb(154 52 18 / var(--tw-border-opacity)); -} - -.border-orange-900 { - --tw-border-opacity: 1; - border-color: rgb(124 45 18 / var(--tw-border-opacity)); -} - -.border-pink-100 { - --tw-border-opacity: 1; - border-color: rgb(252 231 243 / var(--tw-border-opacity)); -} - -.border-pink-200 { - --tw-border-opacity: 1; - border-color: rgb(251 207 232 / var(--tw-border-opacity)); -} - -.border-pink-300 { - --tw-border-opacity: 1; - border-color: rgb(249 168 212 / var(--tw-border-opacity)); -} - -.border-pink-400 { - --tw-border-opacity: 1; - border-color: rgb(244 114 182 / var(--tw-border-opacity)); -} - -.border-pink-50 { - --tw-border-opacity: 1; - border-color: rgb(253 242 248 / var(--tw-border-opacity)); -} - -.border-pink-500 { - --tw-border-opacity: 1; - border-color: rgb(236 72 153 / var(--tw-border-opacity)); -} - -.border-pink-600 { - --tw-border-opacity: 1; - border-color: rgb(219 39 119 / var(--tw-border-opacity)); -} - -.border-pink-700 { - --tw-border-opacity: 1; - border-color: rgb(190 24 93 / var(--tw-border-opacity)); -} - -.border-pink-900 { - --tw-border-opacity: 1; - border-color: rgb(131 24 67 / var(--tw-border-opacity)); -} - -.border-purple-100 { - --tw-border-opacity: 1; - border-color: rgb(243 232 255 / var(--tw-border-opacity)); -} - -.border-purple-200 { - --tw-border-opacity: 1; - border-color: rgb(233 213 255 / var(--tw-border-opacity)); -} - -.border-purple-300 { - --tw-border-opacity: 1; - border-color: rgb(216 180 254 / var(--tw-border-opacity)); -} - -.border-purple-400 { - --tw-border-opacity: 1; - border-color: rgb(192 132 252 / var(--tw-border-opacity)); -} - -.border-purple-50 { - --tw-border-opacity: 1; - border-color: rgb(250 245 255 / var(--tw-border-opacity)); -} - -.border-purple-500 { - --tw-border-opacity: 1; - border-color: rgb(168 85 247 / var(--tw-border-opacity)); -} - -.border-purple-600 { - --tw-border-opacity: 1; - border-color: rgb(147 51 234 / var(--tw-border-opacity)); -} - -.border-purple-700 { - --tw-border-opacity: 1; - border-color: rgb(126 34 206 / var(--tw-border-opacity)); -} - -.border-purple-800 { - --tw-border-opacity: 1; - border-color: rgb(107 33 168 / var(--tw-border-opacity)); -} - -.border-purple-900 { - --tw-border-opacity: 1; - border-color: rgb(88 28 135 / var(--tw-border-opacity)); -} - -.border-red-100 { - --tw-border-opacity: 1; - border-color: rgb(254 226 226 / var(--tw-border-opacity)); -} - -.border-red-200 { - --tw-border-opacity: 1; - border-color: rgb(254 202 202 / var(--tw-border-opacity)); -} - -.border-red-300 { - --tw-border-opacity: 1; - border-color: rgb(252 165 165 / var(--tw-border-opacity)); -} - -.border-red-400 { - --tw-border-opacity: 1; - border-color: rgb(248 113 113 / var(--tw-border-opacity)); -} - -.border-red-50 { - --tw-border-opacity: 1; - border-color: rgb(254 242 242 / var(--tw-border-opacity)); -} - -.border-red-500 { - --tw-border-opacity: 1; - border-color: rgb(239 68 68 / var(--tw-border-opacity)); -} - -.border-red-600 { - --tw-border-opacity: 1; - border-color: rgb(220 38 38 / var(--tw-border-opacity)); -} - -.border-red-700 { - --tw-border-opacity: 1; - border-color: rgb(185 28 28 / var(--tw-border-opacity)); -} - -.border-red-800 { - --tw-border-opacity: 1; - border-color: rgb(153 27 27 / var(--tw-border-opacity)); -} - -.border-red-900 { - --tw-border-opacity: 1; - border-color: rgb(127 29 29 / var(--tw-border-opacity)); -} - -.border-rose-100 { - --tw-border-opacity: 1; - border-color: rgb(255 228 230 / var(--tw-border-opacity)); -} - -.border-rose-200 { - --tw-border-opacity: 1; - border-color: rgb(254 205 211 / var(--tw-border-opacity)); -} - -.border-rose-300 { - --tw-border-opacity: 1; - border-color: rgb(253 164 175 / var(--tw-border-opacity)); -} - -.border-rose-400 { - --tw-border-opacity: 1; - border-color: rgb(251 113 133 / var(--tw-border-opacity)); -} - -.border-rose-50 { - --tw-border-opacity: 1; - border-color: rgb(255 241 242 / var(--tw-border-opacity)); -} - -.border-rose-500 { - --tw-border-opacity: 1; - border-color: rgb(244 63 94 / var(--tw-border-opacity)); -} - -.border-rose-600 { - --tw-border-opacity: 1; - border-color: rgb(225 29 72 / var(--tw-border-opacity)); -} - -.border-rose-700 { - --tw-border-opacity: 1; - border-color: rgb(190 18 60 / var(--tw-border-opacity)); -} - -.border-rose-800 { - --tw-border-opacity: 1; - border-color: rgb(159 18 57 / var(--tw-border-opacity)); -} - -.border-rose-900 { - --tw-border-opacity: 1; - border-color: rgb(136 19 55 / var(--tw-border-opacity)); -} - -.border-sky-100 { - --tw-border-opacity: 1; - border-color: rgb(224 242 254 / var(--tw-border-opacity)); -} - -.border-sky-200 { - --tw-border-opacity: 1; - border-color: rgb(186 230 253 / var(--tw-border-opacity)); -} - -.border-sky-300 { - --tw-border-opacity: 1; - border-color: rgb(125 211 252 / var(--tw-border-opacity)); -} - -.border-sky-400 { - --tw-border-opacity: 1; - border-color: rgb(56 189 248 / var(--tw-border-opacity)); -} - -.border-sky-50 { - --tw-border-opacity: 1; - border-color: rgb(240 249 255 / var(--tw-border-opacity)); -} - -.border-sky-500 { - --tw-border-opacity: 1; - border-color: rgb(14 165 233 / var(--tw-border-opacity)); -} - -.border-sky-600 { - --tw-border-opacity: 1; - border-color: rgb(2 132 199 / var(--tw-border-opacity)); -} - -.border-sky-700 { - --tw-border-opacity: 1; - border-color: rgb(3 105 161 / var(--tw-border-opacity)); -} - -.border-sky-800 { - --tw-border-opacity: 1; - border-color: rgb(7 89 133 / var(--tw-border-opacity)); -} - -.border-sky-900 { - --tw-border-opacity: 1; - border-color: rgb(12 74 110 / var(--tw-border-opacity)); -} - -.border-slate-100 { - --tw-border-opacity: 1; - border-color: rgb(241 245 249 / var(--tw-border-opacity)); -} - -.border-slate-200 { - --tw-border-opacity: 1; - border-color: rgb(226 232 240 / var(--tw-border-opacity)); -} - -.border-slate-300 { - --tw-border-opacity: 1; - border-color: rgb(203 213 225 / var(--tw-border-opacity)); -} - -.border-slate-400 { - --tw-border-opacity: 1; - border-color: rgb(148 163 184 / var(--tw-border-opacity)); -} - -.border-slate-50 { - --tw-border-opacity: 1; - border-color: rgb(248 250 252 / var(--tw-border-opacity)); -} - -.border-slate-500 { - --tw-border-opacity: 1; - border-color: rgb(100 116 139 / var(--tw-border-opacity)); -} - -.border-slate-600 { - --tw-border-opacity: 1; - border-color: rgb(71 85 105 / var(--tw-border-opacity)); -} - -.border-slate-700 { - --tw-border-opacity: 1; - border-color: rgb(51 65 85 / var(--tw-border-opacity)); -} - -.border-slate-800 { - --tw-border-opacity: 1; - border-color: rgb(30 41 59 / var(--tw-border-opacity)); -} - -.border-slate-900 { - --tw-border-opacity: 1; - border-color: rgb(15 23 42 / var(--tw-border-opacity)); -} - -.border-stone-100 { - --tw-border-opacity: 1; - border-color: rgb(245 245 244 / var(--tw-border-opacity)); -} - -.border-stone-200 { - --tw-border-opacity: 1; - border-color: rgb(231 229 228 / var(--tw-border-opacity)); -} - -.border-stone-300 { - --tw-border-opacity: 1; - border-color: rgb(214 211 209 / var(--tw-border-opacity)); -} - -.border-stone-400 { - --tw-border-opacity: 1; - border-color: rgb(168 162 158 / var(--tw-border-opacity)); -} - -.border-stone-50 { - --tw-border-opacity: 1; - border-color: rgb(250 250 249 / var(--tw-border-opacity)); -} - -.border-stone-500 { - --tw-border-opacity: 1; - border-color: rgb(120 113 108 / var(--tw-border-opacity)); -} - -.border-stone-600 { - --tw-border-opacity: 1; - border-color: rgb(87 83 78 / var(--tw-border-opacity)); -} - -.border-stone-700 { - --tw-border-opacity: 1; - border-color: rgb(68 64 60 / var(--tw-border-opacity)); -} - -.border-stone-800 { - --tw-border-opacity: 1; - border-color: rgb(41 37 36 / var(--tw-border-opacity)); -} - -.border-stone-900 { - --tw-border-opacity: 1; - border-color: rgb(28 25 23 / var(--tw-border-opacity)); -} - -.border-teal-100 { - --tw-border-opacity: 1; - border-color: rgb(204 251 241 / var(--tw-border-opacity)); -} - -.border-teal-200 { - --tw-border-opacity: 1; - border-color: rgb(153 246 228 / var(--tw-border-opacity)); -} - -.border-teal-300 { - --tw-border-opacity: 1; - border-color: rgb(94 234 212 / var(--tw-border-opacity)); -} - -.border-teal-400 { - --tw-border-opacity: 1; - border-color: rgb(45 212 191 / var(--tw-border-opacity)); -} - -.border-teal-50 { - --tw-border-opacity: 1; - border-color: rgb(240 253 250 / var(--tw-border-opacity)); -} - -.border-teal-500 { - --tw-border-opacity: 1; - border-color: rgb(20 184 166 / var(--tw-border-opacity)); -} - -.border-teal-600 { - --tw-border-opacity: 1; - border-color: rgb(13 148 136 / var(--tw-border-opacity)); -} - -.border-teal-700 { - --tw-border-opacity: 1; - border-color: rgb(15 118 110 / var(--tw-border-opacity)); -} - -.border-teal-800 { - --tw-border-opacity: 1; - border-color: rgb(17 94 89 / var(--tw-border-opacity)); -} - -.border-teal-900 { - --tw-border-opacity: 1; - border-color: rgb(19 78 74 / var(--tw-border-opacity)); -} - -.border-transparent { - border-color: transparent; -} - -.border-violet-100 { - --tw-border-opacity: 1; - border-color: rgb(237 233 254 / var(--tw-border-opacity)); -} - -.border-violet-200 { - --tw-border-opacity: 1; - border-color: rgb(221 214 254 / var(--tw-border-opacity)); -} - -.border-violet-300 { - --tw-border-opacity: 1; - border-color: rgb(196 181 253 / var(--tw-border-opacity)); -} - -.border-violet-400 { - --tw-border-opacity: 1; - border-color: rgb(167 139 250 / var(--tw-border-opacity)); -} - -.border-violet-50 { - --tw-border-opacity: 1; - border-color: rgb(245 243 255 / var(--tw-border-opacity)); -} - -.border-violet-500 { - --tw-border-opacity: 1; - border-color: rgb(139 92 246 / var(--tw-border-opacity)); -} - -.border-violet-600 { - --tw-border-opacity: 1; - border-color: rgb(124 58 237 / var(--tw-border-opacity)); -} - -.border-violet-700 { - --tw-border-opacity: 1; - border-color: rgb(109 40 217 / var(--tw-border-opacity)); -} - -.border-violet-800 { - --tw-border-opacity: 1; - border-color: rgb(91 33 182 / var(--tw-border-opacity)); -} - -.border-violet-900 { - --tw-border-opacity: 1; - border-color: rgb(76 29 149 / var(--tw-border-opacity)); -} - -.border-white { - --tw-border-opacity: 1; - border-color: rgb(255 255 255 / var(--tw-border-opacity)); -} - -.border-yellow-100 { - --tw-border-opacity: 1; - border-color: rgb(254 249 195 / var(--tw-border-opacity)); -} - -.border-yellow-200 { - --tw-border-opacity: 1; - border-color: rgb(254 240 138 / var(--tw-border-opacity)); -} - -.border-yellow-300 { - --tw-border-opacity: 1; - border-color: rgb(253 224 71 / var(--tw-border-opacity)); -} - -.border-yellow-400 { - --tw-border-opacity: 1; - border-color: rgb(250 204 21 / var(--tw-border-opacity)); -} - -.border-yellow-50 { - --tw-border-opacity: 1; - border-color: rgb(254 252 232 / var(--tw-border-opacity)); -} - -.border-yellow-500 { - --tw-border-opacity: 1; - border-color: rgb(234 179 8 / var(--tw-border-opacity)); -} - -.border-yellow-600 { - --tw-border-opacity: 1; - border-color: rgb(202 138 4 / var(--tw-border-opacity)); -} - -.border-yellow-700 { - --tw-border-opacity: 1; - border-color: rgb(161 98 7 / var(--tw-border-opacity)); -} - -.border-yellow-800 { - --tw-border-opacity: 1; - border-color: rgb(133 77 14 / var(--tw-border-opacity)); -} - -.border-yellow-900 { - --tw-border-opacity: 1; - border-color: rgb(113 63 18 / var(--tw-border-opacity)); -} - -.border-zinc-100 { - --tw-border-opacity: 1; - border-color: rgb(244 244 245 / var(--tw-border-opacity)); -} - -.border-zinc-200 { - --tw-border-opacity: 1; - border-color: rgb(228 228 231 / var(--tw-border-opacity)); -} - -.border-zinc-300 { - --tw-border-opacity: 1; - border-color: rgb(212 212 216 / var(--tw-border-opacity)); -} - -.border-zinc-400 { - --tw-border-opacity: 1; - border-color: rgb(161 161 170 / var(--tw-border-opacity)); -} - -.border-zinc-50 { - --tw-border-opacity: 1; - border-color: rgb(250 250 250 / var(--tw-border-opacity)); -} - -.border-zinc-500 { - --tw-border-opacity: 1; - border-color: rgb(113 113 122 / var(--tw-border-opacity)); -} - -.border-zinc-600 { - --tw-border-opacity: 1; - border-color: rgb(82 82 91 / var(--tw-border-opacity)); -} - -.border-zinc-700 { - --tw-border-opacity: 1; - border-color: rgb(63 63 70 / var(--tw-border-opacity)); -} - -.border-zinc-800 { - --tw-border-opacity: 1; - border-color: rgb(39 39 42 / var(--tw-border-opacity)); -} - -.border-zinc-900 { - --tw-border-opacity: 1; - border-color: rgb(24 24 27 / var(--tw-border-opacity)); -} - -.border-b-gray-500 { - --tw-border-opacity: 1; - border-bottom-color: rgb(107 114 128 / var(--tw-border-opacity)); -} - -.bg-amber-100 { - --tw-bg-opacity: 1; - background-color: rgb(254 243 199 / var(--tw-bg-opacity)); -} - -.bg-amber-200 { - --tw-bg-opacity: 1; - background-color: rgb(253 230 138 / var(--tw-bg-opacity)); -} - -.bg-amber-300 { - --tw-bg-opacity: 1; - background-color: rgb(252 211 77 / var(--tw-bg-opacity)); -} - -.bg-amber-400 { - --tw-bg-opacity: 1; - background-color: rgb(251 191 36 / var(--tw-bg-opacity)); -} - -.bg-amber-50 { - --tw-bg-opacity: 1; - background-color: rgb(255 251 235 / var(--tw-bg-opacity)); -} - -.bg-amber-500 { - --tw-bg-opacity: 1; - background-color: rgb(245 158 11 / var(--tw-bg-opacity)); -} - -.bg-amber-600 { - --tw-bg-opacity: 1; - background-color: rgb(217 119 6 / var(--tw-bg-opacity)); -} - -.bg-amber-700 { - --tw-bg-opacity: 1; - background-color: rgb(180 83 9 / var(--tw-bg-opacity)); -} - -.bg-amber-800 { - --tw-bg-opacity: 1; - background-color: rgb(146 64 14 / var(--tw-bg-opacity)); -} - -.bg-amber-900 { - --tw-bg-opacity: 1; - background-color: rgb(120 53 15 / var(--tw-bg-opacity)); -} - -.bg-black { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); -} - -.bg-blue-100 { - --tw-bg-opacity: 1; - background-color: rgb(219 234 254 / var(--tw-bg-opacity)); -} - -.bg-blue-200 { - --tw-bg-opacity: 1; - background-color: rgb(191 219 254 / var(--tw-bg-opacity)); -} - -.bg-blue-300 { - --tw-bg-opacity: 1; - background-color: rgb(147 197 253 / var(--tw-bg-opacity)); -} - -.bg-blue-400 { - --tw-bg-opacity: 1; - background-color: rgb(96 165 250 / var(--tw-bg-opacity)); -} - -.bg-blue-50 { - --tw-bg-opacity: 1; - background-color: rgb(239 246 255 / var(--tw-bg-opacity)); -} - -.bg-blue-500 { - --tw-bg-opacity: 1; - background-color: rgb(59 130 246 / var(--tw-bg-opacity)); -} - -.bg-blue-600 { - --tw-bg-opacity: 1; - background-color: rgb(37 99 235 / var(--tw-bg-opacity)); -} - -.bg-blue-700 { - --tw-bg-opacity: 1; - background-color: rgb(29 78 216 / var(--tw-bg-opacity)); -} - -.bg-blue-800 { - --tw-bg-opacity: 1; - background-color: rgb(30 64 175 / var(--tw-bg-opacity)); -} - -.bg-blue-900 { - --tw-bg-opacity: 1; - background-color: rgb(30 58 138 / var(--tw-bg-opacity)); -} - -.bg-cyan-100 { - --tw-bg-opacity: 1; - background-color: rgb(207 250 254 / var(--tw-bg-opacity)); -} - -.bg-cyan-200 { - --tw-bg-opacity: 1; - background-color: rgb(165 243 252 / var(--tw-bg-opacity)); -} - -.bg-cyan-300 { - --tw-bg-opacity: 1; - background-color: rgb(103 232 249 / var(--tw-bg-opacity)); -} - -.bg-cyan-400 { - --tw-bg-opacity: 1; - background-color: rgb(34 211 238 / var(--tw-bg-opacity)); -} - -.bg-cyan-50 { - --tw-bg-opacity: 1; - background-color: rgb(236 254 255 / var(--tw-bg-opacity)); -} - -.bg-cyan-500 { - --tw-bg-opacity: 1; - background-color: rgb(6 182 212 / var(--tw-bg-opacity)); -} - -.bg-cyan-600 { - --tw-bg-opacity: 1; - background-color: rgb(8 145 178 / var(--tw-bg-opacity)); -} - -.bg-cyan-700 { - --tw-bg-opacity: 1; - background-color: rgb(14 116 144 / var(--tw-bg-opacity)); -} - -.bg-cyan-800 { - --tw-bg-opacity: 1; - background-color: rgb(21 94 117 / var(--tw-bg-opacity)); -} - -.bg-cyan-900 { - --tw-bg-opacity: 1; - background-color: rgb(22 78 99 / var(--tw-bg-opacity)); -} - -.bg-emerald-100 { - --tw-bg-opacity: 1; - background-color: rgb(209 250 229 / var(--tw-bg-opacity)); -} - -.bg-emerald-200 { - --tw-bg-opacity: 1; - background-color: rgb(167 243 208 / var(--tw-bg-opacity)); -} - -.bg-emerald-300 { - --tw-bg-opacity: 1; - background-color: rgb(110 231 183 / var(--tw-bg-opacity)); -} - -.bg-emerald-400 { - --tw-bg-opacity: 1; - background-color: rgb(52 211 153 / var(--tw-bg-opacity)); -} - -.bg-emerald-50 { - --tw-bg-opacity: 1; - background-color: rgb(236 253 245 / var(--tw-bg-opacity)); -} - -.bg-emerald-500 { - --tw-bg-opacity: 1; - background-color: rgb(16 185 129 / var(--tw-bg-opacity)); -} - -.bg-emerald-600 { - --tw-bg-opacity: 1; - background-color: rgb(5 150 105 / var(--tw-bg-opacity)); -} - -.bg-emerald-700 { - --tw-bg-opacity: 1; - background-color: rgb(4 120 87 / var(--tw-bg-opacity)); -} - -.bg-emerald-800 { - --tw-bg-opacity: 1; - background-color: rgb(6 95 70 / var(--tw-bg-opacity)); -} - -.bg-emerald-900 { - --tw-bg-opacity: 1; - background-color: rgb(6 78 59 / var(--tw-bg-opacity)); -} - -.bg-fuchsia-100 { - --tw-bg-opacity: 1; - background-color: rgb(250 232 255 / var(--tw-bg-opacity)); -} - -.bg-fuchsia-200 { - --tw-bg-opacity: 1; - background-color: rgb(245 208 254 / var(--tw-bg-opacity)); -} - -.bg-fuchsia-300 { - --tw-bg-opacity: 1; - background-color: rgb(240 171 252 / var(--tw-bg-opacity)); -} - -.bg-fuchsia-400 { - --tw-bg-opacity: 1; - background-color: rgb(232 121 249 / var(--tw-bg-opacity)); -} - -.bg-fuchsia-50 { - --tw-bg-opacity: 1; - background-color: rgb(253 244 255 / var(--tw-bg-opacity)); -} - -.bg-fuchsia-500 { - --tw-bg-opacity: 1; - background-color: rgb(217 70 239 / var(--tw-bg-opacity)); -} - -.bg-fuchsia-600 { - --tw-bg-opacity: 1; - background-color: rgb(192 38 211 / var(--tw-bg-opacity)); -} - -.bg-fuchsia-700 { - --tw-bg-opacity: 1; - background-color: rgb(162 28 175 / var(--tw-bg-opacity)); -} - -.bg-fuchsia-800 { - --tw-bg-opacity: 1; - background-color: rgb(134 25 143 / var(--tw-bg-opacity)); -} - -.bg-fuchsia-900 { - --tw-bg-opacity: 1; - background-color: rgb(112 26 117 / var(--tw-bg-opacity)); -} - -.bg-gray-100 { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity)); -} - -.bg-gray-200 { - --tw-bg-opacity: 1; - background-color: rgb(229 231 235 / var(--tw-bg-opacity)); -} - -.bg-gray-300 { - --tw-bg-opacity: 1; - background-color: rgb(209 213 219 / var(--tw-bg-opacity)); -} - -.bg-gray-400 { - --tw-bg-opacity: 1; - background-color: rgb(156 163 175 / var(--tw-bg-opacity)); -} - -.bg-gray-50 { - --tw-bg-opacity: 1; - background-color: rgb(249 250 251 / var(--tw-bg-opacity)); -} - -.bg-gray-500 { - --tw-bg-opacity: 1; - background-color: rgb(107 114 128 / var(--tw-bg-opacity)); -} - -.bg-gray-600 { - --tw-bg-opacity: 1; - background-color: rgb(75 85 99 / var(--tw-bg-opacity)); -} - -.bg-gray-700 { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity)); -} - -.bg-gray-800 { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); -} - -.bg-gray-900 { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity)); -} - -.bg-green-100 { - --tw-bg-opacity: 1; - background-color: rgb(220 252 231 / var(--tw-bg-opacity)); -} - -.bg-green-200 { - --tw-bg-opacity: 1; - background-color: rgb(187 247 208 / var(--tw-bg-opacity)); -} - -.bg-green-300 { - --tw-bg-opacity: 1; - background-color: rgb(134 239 172 / var(--tw-bg-opacity)); -} - -.bg-green-400 { - --tw-bg-opacity: 1; - background-color: rgb(74 222 128 / var(--tw-bg-opacity)); -} - -.bg-green-50 { - --tw-bg-opacity: 1; - background-color: rgb(240 253 244 / var(--tw-bg-opacity)); -} - -.bg-green-500 { - --tw-bg-opacity: 1; - background-color: rgb(34 197 94 / var(--tw-bg-opacity)); -} - -.bg-green-600 { - --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity)); -} - -.bg-green-700 { - --tw-bg-opacity: 1; - background-color: rgb(21 128 61 / var(--tw-bg-opacity)); -} - -.bg-green-800 { - --tw-bg-opacity: 1; - background-color: rgb(22 101 52 / var(--tw-bg-opacity)); -} - -.bg-green-900 { - --tw-bg-opacity: 1; - background-color: rgb(20 83 45 / var(--tw-bg-opacity)); -} - -.bg-indigo-100 { - --tw-bg-opacity: 1; - background-color: rgb(224 231 255 / var(--tw-bg-opacity)); -} - -.bg-indigo-200 { - --tw-bg-opacity: 1; - background-color: rgb(199 210 254 / var(--tw-bg-opacity)); -} - -.bg-indigo-300 { - --tw-bg-opacity: 1; - background-color: rgb(165 180 252 / var(--tw-bg-opacity)); -} - -.bg-indigo-400 { - --tw-bg-opacity: 1; - background-color: rgb(129 140 248 / var(--tw-bg-opacity)); -} - -.bg-indigo-50 { - --tw-bg-opacity: 1; - background-color: rgb(238 242 255 / var(--tw-bg-opacity)); -} - -.bg-indigo-500 { - --tw-bg-opacity: 1; - background-color: rgb(99 102 241 / var(--tw-bg-opacity)); -} - -.bg-indigo-600 { - --tw-bg-opacity: 1; - background-color: rgb(79 70 229 / var(--tw-bg-opacity)); -} - -.bg-indigo-700 { - --tw-bg-opacity: 1; - background-color: rgb(67 56 202 / var(--tw-bg-opacity)); -} - -.bg-indigo-800 { - --tw-bg-opacity: 1; - background-color: rgb(55 48 163 / var(--tw-bg-opacity)); -} - -.bg-indigo-900 { - --tw-bg-opacity: 1; - background-color: rgb(49 46 129 / var(--tw-bg-opacity)); -} - -.bg-inherit { - background-color: inherit; -} - -.bg-lime-100 { - --tw-bg-opacity: 1; - background-color: rgb(236 252 203 / var(--tw-bg-opacity)); -} - -.bg-lime-200 { - --tw-bg-opacity: 1; - background-color: rgb(217 249 157 / var(--tw-bg-opacity)); -} - -.bg-lime-300 { - --tw-bg-opacity: 1; - background-color: rgb(190 242 100 / var(--tw-bg-opacity)); -} - -.bg-lime-400 { - --tw-bg-opacity: 1; - background-color: rgb(163 230 53 / var(--tw-bg-opacity)); -} - -.bg-lime-50 { - --tw-bg-opacity: 1; - background-color: rgb(247 254 231 / var(--tw-bg-opacity)); -} - -.bg-lime-500 { - --tw-bg-opacity: 1; - background-color: rgb(132 204 22 / var(--tw-bg-opacity)); -} - -.bg-lime-600 { - --tw-bg-opacity: 1; - background-color: rgb(101 163 13 / var(--tw-bg-opacity)); -} - -.bg-lime-700 { - --tw-bg-opacity: 1; - background-color: rgb(77 124 15 / var(--tw-bg-opacity)); -} - -.bg-lime-800 { - --tw-bg-opacity: 1; - background-color: rgb(63 98 18 / var(--tw-bg-opacity)); -} - -.bg-lime-900 { - --tw-bg-opacity: 1; - background-color: rgb(54 83 20 / var(--tw-bg-opacity)); -} - -.bg-neutral-100 { - --tw-bg-opacity: 1; - background-color: rgb(245 245 245 / var(--tw-bg-opacity)); -} - -.bg-neutral-200 { - --tw-bg-opacity: 1; - background-color: rgb(229 229 229 / var(--tw-bg-opacity)); -} - -.bg-neutral-300 { - --tw-bg-opacity: 1; - background-color: rgb(212 212 212 / var(--tw-bg-opacity)); -} - -.bg-neutral-400 { - --tw-bg-opacity: 1; - background-color: rgb(163 163 163 / var(--tw-bg-opacity)); -} - -.bg-neutral-50 { - --tw-bg-opacity: 1; - background-color: rgb(250 250 250 / var(--tw-bg-opacity)); -} - -.bg-neutral-500 { - --tw-bg-opacity: 1; - background-color: rgb(115 115 115 / var(--tw-bg-opacity)); -} - -.bg-neutral-600 { - --tw-bg-opacity: 1; - background-color: rgb(82 82 82 / var(--tw-bg-opacity)); -} - -.bg-neutral-700 { - --tw-bg-opacity: 1; - background-color: rgb(64 64 64 / var(--tw-bg-opacity)); -} - -.bg-neutral-800 { - --tw-bg-opacity: 1; - background-color: rgb(38 38 38 / var(--tw-bg-opacity)); -} - -.bg-neutral-900 { - --tw-bg-opacity: 1; - background-color: rgb(23 23 23 / var(--tw-bg-opacity)); -} - -.bg-orange-100 { - --tw-bg-opacity: 1; - background-color: rgb(255 237 213 / var(--tw-bg-opacity)); -} - -.bg-orange-200 { - --tw-bg-opacity: 1; - background-color: rgb(254 215 170 / var(--tw-bg-opacity)); -} - -.bg-orange-300 { - --tw-bg-opacity: 1; - background-color: rgb(253 186 116 / var(--tw-bg-opacity)); -} - -.bg-orange-400 { - --tw-bg-opacity: 1; - background-color: rgb(251 146 60 / var(--tw-bg-opacity)); -} - -.bg-orange-50 { - --tw-bg-opacity: 1; - background-color: rgb(255 247 237 / var(--tw-bg-opacity)); -} - -.bg-orange-500 { - --tw-bg-opacity: 1; - background-color: rgb(249 115 22 / var(--tw-bg-opacity)); -} - -.bg-orange-600 { - --tw-bg-opacity: 1; - background-color: rgb(234 88 12 / var(--tw-bg-opacity)); -} - -.bg-orange-700 { - --tw-bg-opacity: 1; - background-color: rgb(194 65 12 / var(--tw-bg-opacity)); -} - -.bg-orange-800 { - --tw-bg-opacity: 1; - background-color: rgb(154 52 18 / var(--tw-bg-opacity)); -} - -.bg-orange-900 { - --tw-bg-opacity: 1; - background-color: rgb(124 45 18 / var(--tw-bg-opacity)); -} - -.bg-pink-100 { - --tw-bg-opacity: 1; - background-color: rgb(252 231 243 / var(--tw-bg-opacity)); -} - -.bg-pink-200 { - --tw-bg-opacity: 1; - background-color: rgb(251 207 232 / var(--tw-bg-opacity)); -} - -.bg-pink-300 { - --tw-bg-opacity: 1; - background-color: rgb(249 168 212 / var(--tw-bg-opacity)); -} - -.bg-pink-400 { - --tw-bg-opacity: 1; - background-color: rgb(244 114 182 / var(--tw-bg-opacity)); -} - -.bg-pink-50 { - --tw-bg-opacity: 1; - background-color: rgb(253 242 248 / var(--tw-bg-opacity)); -} - -.bg-pink-500 { - --tw-bg-opacity: 1; - background-color: rgb(236 72 153 / var(--tw-bg-opacity)); -} - -.bg-pink-600 { - --tw-bg-opacity: 1; - background-color: rgb(219 39 119 / var(--tw-bg-opacity)); -} - -.bg-pink-700 { - --tw-bg-opacity: 1; - background-color: rgb(190 24 93 / var(--tw-bg-opacity)); -} - -.bg-pink-900 { - --tw-bg-opacity: 1; - background-color: rgb(131 24 67 / var(--tw-bg-opacity)); -} - -.bg-purple-100 { - --tw-bg-opacity: 1; - background-color: rgb(243 232 255 / var(--tw-bg-opacity)); -} - -.bg-purple-200 { - --tw-bg-opacity: 1; - background-color: rgb(233 213 255 / var(--tw-bg-opacity)); -} - -.bg-purple-300 { - --tw-bg-opacity: 1; - background-color: rgb(216 180 254 / var(--tw-bg-opacity)); -} - -.bg-purple-400 { - --tw-bg-opacity: 1; - background-color: rgb(192 132 252 / var(--tw-bg-opacity)); -} - -.bg-purple-50 { - --tw-bg-opacity: 1; - background-color: rgb(250 245 255 / var(--tw-bg-opacity)); -} - -.bg-purple-500 { - --tw-bg-opacity: 1; - background-color: rgb(168 85 247 / var(--tw-bg-opacity)); -} - -.bg-purple-600 { - --tw-bg-opacity: 1; - background-color: rgb(147 51 234 / var(--tw-bg-opacity)); -} - -.bg-purple-700 { - --tw-bg-opacity: 1; - background-color: rgb(126 34 206 / var(--tw-bg-opacity)); -} - -.bg-purple-800 { - --tw-bg-opacity: 1; - background-color: rgb(107 33 168 / var(--tw-bg-opacity)); -} - -.bg-purple-900 { - --tw-bg-opacity: 1; - background-color: rgb(88 28 135 / var(--tw-bg-opacity)); -} - -.bg-red-100 { - --tw-bg-opacity: 1; - background-color: rgb(254 226 226 / var(--tw-bg-opacity)); -} - -.bg-red-200 { - --tw-bg-opacity: 1; - background-color: rgb(254 202 202 / var(--tw-bg-opacity)); -} - -.bg-red-300 { - --tw-bg-opacity: 1; - background-color: rgb(252 165 165 / var(--tw-bg-opacity)); -} - -.bg-red-400 { - --tw-bg-opacity: 1; - background-color: rgb(248 113 113 / var(--tw-bg-opacity)); -} - -.bg-red-50 { - --tw-bg-opacity: 1; - background-color: rgb(254 242 242 / var(--tw-bg-opacity)); -} - -.bg-red-500 { - --tw-bg-opacity: 1; - background-color: rgb(239 68 68 / var(--tw-bg-opacity)); -} - -.bg-red-600 { - --tw-bg-opacity: 1; - background-color: rgb(220 38 38 / var(--tw-bg-opacity)); -} - -.bg-red-700 { - --tw-bg-opacity: 1; - background-color: rgb(185 28 28 / var(--tw-bg-opacity)); -} - -.bg-red-800 { - --tw-bg-opacity: 1; - background-color: rgb(153 27 27 / var(--tw-bg-opacity)); -} - -.bg-red-900 { - --tw-bg-opacity: 1; - background-color: rgb(127 29 29 / var(--tw-bg-opacity)); -} - -.bg-rose-100 { - --tw-bg-opacity: 1; - background-color: rgb(255 228 230 / var(--tw-bg-opacity)); -} - -.bg-rose-200 { - --tw-bg-opacity: 1; - background-color: rgb(254 205 211 / var(--tw-bg-opacity)); -} - -.bg-rose-300 { - --tw-bg-opacity: 1; - background-color: rgb(253 164 175 / var(--tw-bg-opacity)); -} - -.bg-rose-400 { - --tw-bg-opacity: 1; - background-color: rgb(251 113 133 / var(--tw-bg-opacity)); -} - -.bg-rose-50 { - --tw-bg-opacity: 1; - background-color: rgb(255 241 242 / var(--tw-bg-opacity)); -} - -.bg-rose-500 { - --tw-bg-opacity: 1; - background-color: rgb(244 63 94 / var(--tw-bg-opacity)); -} - -.bg-rose-600 { - --tw-bg-opacity: 1; - background-color: rgb(225 29 72 / var(--tw-bg-opacity)); -} - -.bg-rose-700 { - --tw-bg-opacity: 1; - background-color: rgb(190 18 60 / var(--tw-bg-opacity)); -} - -.bg-rose-800 { - --tw-bg-opacity: 1; - background-color: rgb(159 18 57 / var(--tw-bg-opacity)); -} - -.bg-rose-900 { - --tw-bg-opacity: 1; - background-color: rgb(136 19 55 / var(--tw-bg-opacity)); -} - -.bg-sky-100 { - --tw-bg-opacity: 1; - background-color: rgb(224 242 254 / var(--tw-bg-opacity)); -} - -.bg-sky-200 { - --tw-bg-opacity: 1; - background-color: rgb(186 230 253 / var(--tw-bg-opacity)); -} - -.bg-sky-300 { - --tw-bg-opacity: 1; - background-color: rgb(125 211 252 / var(--tw-bg-opacity)); -} - -.bg-sky-400 { - --tw-bg-opacity: 1; - background-color: rgb(56 189 248 / var(--tw-bg-opacity)); -} - -.bg-sky-50 { - --tw-bg-opacity: 1; - background-color: rgb(240 249 255 / var(--tw-bg-opacity)); -} - -.bg-sky-500 { - --tw-bg-opacity: 1; - background-color: rgb(14 165 233 / var(--tw-bg-opacity)); -} - -.bg-sky-600 { - --tw-bg-opacity: 1; - background-color: rgb(2 132 199 / var(--tw-bg-opacity)); -} - -.bg-sky-700 { - --tw-bg-opacity: 1; - background-color: rgb(3 105 161 / var(--tw-bg-opacity)); -} - -.bg-sky-800 { - --tw-bg-opacity: 1; - background-color: rgb(7 89 133 / var(--tw-bg-opacity)); -} - -.bg-sky-900 { - --tw-bg-opacity: 1; - background-color: rgb(12 74 110 / var(--tw-bg-opacity)); -} - -.bg-slate-100 { - --tw-bg-opacity: 1; - background-color: rgb(241 245 249 / var(--tw-bg-opacity)); -} - -.bg-slate-200 { - --tw-bg-opacity: 1; - background-color: rgb(226 232 240 / var(--tw-bg-opacity)); -} - -.bg-slate-300 { - --tw-bg-opacity: 1; - background-color: rgb(203 213 225 / var(--tw-bg-opacity)); -} - -.bg-slate-400 { - --tw-bg-opacity: 1; - background-color: rgb(148 163 184 / var(--tw-bg-opacity)); -} - -.bg-slate-50 { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); -} - -.bg-slate-500 { - --tw-bg-opacity: 1; - background-color: rgb(100 116 139 / var(--tw-bg-opacity)); -} - -.bg-slate-600 { - --tw-bg-opacity: 1; - background-color: rgb(71 85 105 / var(--tw-bg-opacity)); -} - -.bg-slate-700 { - --tw-bg-opacity: 1; - background-color: rgb(51 65 85 / var(--tw-bg-opacity)); -} - -.bg-slate-800 { - --tw-bg-opacity: 1; - background-color: rgb(30 41 59 / var(--tw-bg-opacity)); -} - -.bg-slate-900 { - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity)); -} - -.bg-stone-100 { - --tw-bg-opacity: 1; - background-color: rgb(245 245 244 / var(--tw-bg-opacity)); -} - -.bg-stone-200 { - --tw-bg-opacity: 1; - background-color: rgb(231 229 228 / var(--tw-bg-opacity)); -} - -.bg-stone-300 { - --tw-bg-opacity: 1; - background-color: rgb(214 211 209 / var(--tw-bg-opacity)); -} - -.bg-stone-400 { - --tw-bg-opacity: 1; - background-color: rgb(168 162 158 / var(--tw-bg-opacity)); -} - -.bg-stone-50 { - --tw-bg-opacity: 1; - background-color: rgb(250 250 249 / var(--tw-bg-opacity)); -} - -.bg-stone-500 { - --tw-bg-opacity: 1; - background-color: rgb(120 113 108 / var(--tw-bg-opacity)); -} - -.bg-stone-600 { - --tw-bg-opacity: 1; - background-color: rgb(87 83 78 / var(--tw-bg-opacity)); -} - -.bg-stone-700 { - --tw-bg-opacity: 1; - background-color: rgb(68 64 60 / var(--tw-bg-opacity)); -} - -.bg-stone-800 { - --tw-bg-opacity: 1; - background-color: rgb(41 37 36 / var(--tw-bg-opacity)); -} - -.bg-stone-900 { - --tw-bg-opacity: 1; - background-color: rgb(28 25 23 / var(--tw-bg-opacity)); -} - -.bg-teal-100 { - --tw-bg-opacity: 1; - background-color: rgb(204 251 241 / var(--tw-bg-opacity)); -} - -.bg-teal-200 { - --tw-bg-opacity: 1; - background-color: rgb(153 246 228 / var(--tw-bg-opacity)); -} - -.bg-teal-300 { - --tw-bg-opacity: 1; - background-color: rgb(94 234 212 / var(--tw-bg-opacity)); -} - -.bg-teal-400 { - --tw-bg-opacity: 1; - background-color: rgb(45 212 191 / var(--tw-bg-opacity)); -} - -.bg-teal-50 { - --tw-bg-opacity: 1; - background-color: rgb(240 253 250 / var(--tw-bg-opacity)); -} - -.bg-teal-500 { - --tw-bg-opacity: 1; - background-color: rgb(20 184 166 / var(--tw-bg-opacity)); -} - -.bg-teal-600 { - --tw-bg-opacity: 1; - background-color: rgb(13 148 136 / var(--tw-bg-opacity)); -} - -.bg-teal-700 { - --tw-bg-opacity: 1; - background-color: rgb(15 118 110 / var(--tw-bg-opacity)); -} - -.bg-teal-800 { - --tw-bg-opacity: 1; - background-color: rgb(17 94 89 / var(--tw-bg-opacity)); -} - -.bg-teal-900 { - --tw-bg-opacity: 1; - background-color: rgb(19 78 74 / var(--tw-bg-opacity)); -} - -.bg-transparent { - background-color: transparent; -} - -.bg-violet-100 { - --tw-bg-opacity: 1; - background-color: rgb(237 233 254 / var(--tw-bg-opacity)); -} - -.bg-violet-200 { - --tw-bg-opacity: 1; - background-color: rgb(221 214 254 / var(--tw-bg-opacity)); -} - -.bg-violet-300 { - --tw-bg-opacity: 1; - background-color: rgb(196 181 253 / var(--tw-bg-opacity)); -} - -.bg-violet-400 { - --tw-bg-opacity: 1; - background-color: rgb(167 139 250 / var(--tw-bg-opacity)); -} - -.bg-violet-50 { - --tw-bg-opacity: 1; - background-color: rgb(245 243 255 / var(--tw-bg-opacity)); -} - -.bg-violet-500 { - --tw-bg-opacity: 1; - background-color: rgb(139 92 246 / var(--tw-bg-opacity)); -} - -.bg-violet-600 { - --tw-bg-opacity: 1; - background-color: rgb(124 58 237 / var(--tw-bg-opacity)); -} - -.bg-violet-700 { - --tw-bg-opacity: 1; - background-color: rgb(109 40 217 / var(--tw-bg-opacity)); -} - -.bg-violet-800 { - --tw-bg-opacity: 1; - background-color: rgb(91 33 182 / var(--tw-bg-opacity)); -} - -.bg-violet-900 { - --tw-bg-opacity: 1; - background-color: rgb(76 29 149 / var(--tw-bg-opacity)); -} - -.bg-white { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); -} - -.bg-yellow-100 { - --tw-bg-opacity: 1; - background-color: rgb(254 249 195 / var(--tw-bg-opacity)); -} - -.bg-yellow-200 { - --tw-bg-opacity: 1; - background-color: rgb(254 240 138 / var(--tw-bg-opacity)); -} - -.bg-yellow-300 { - --tw-bg-opacity: 1; - background-color: rgb(253 224 71 / var(--tw-bg-opacity)); -} - -.bg-yellow-400 { - --tw-bg-opacity: 1; - background-color: rgb(250 204 21 / var(--tw-bg-opacity)); -} - -.bg-yellow-50 { - --tw-bg-opacity: 1; - background-color: rgb(254 252 232 / var(--tw-bg-opacity)); -} - -.bg-yellow-500 { - --tw-bg-opacity: 1; - background-color: rgb(234 179 8 / var(--tw-bg-opacity)); -} - -.bg-yellow-600 { - --tw-bg-opacity: 1; - background-color: rgb(202 138 4 / var(--tw-bg-opacity)); -} - -.bg-yellow-700 { - --tw-bg-opacity: 1; - background-color: rgb(161 98 7 / var(--tw-bg-opacity)); -} - -.bg-yellow-800 { - --tw-bg-opacity: 1; - background-color: rgb(133 77 14 / var(--tw-bg-opacity)); -} - -.bg-yellow-900 { - --tw-bg-opacity: 1; - background-color: rgb(113 63 18 / var(--tw-bg-opacity)); -} - -.bg-zinc-100 { - --tw-bg-opacity: 1; - background-color: rgb(244 244 245 / var(--tw-bg-opacity)); -} - -.bg-zinc-200 { - --tw-bg-opacity: 1; - background-color: rgb(228 228 231 / var(--tw-bg-opacity)); -} - -.bg-zinc-300 { - --tw-bg-opacity: 1; - background-color: rgb(212 212 216 / var(--tw-bg-opacity)); -} - -.bg-zinc-400 { - --tw-bg-opacity: 1; - background-color: rgb(161 161 170 / var(--tw-bg-opacity)); -} - -.bg-zinc-50 { - --tw-bg-opacity: 1; - background-color: rgb(250 250 250 / var(--tw-bg-opacity)); -} - -.bg-zinc-500 { - --tw-bg-opacity: 1; - background-color: rgb(113 113 122 / var(--tw-bg-opacity)); -} - -.bg-zinc-600 { - --tw-bg-opacity: 1; - background-color: rgb(82 82 91 / var(--tw-bg-opacity)); -} - -.bg-zinc-700 { - --tw-bg-opacity: 1; - background-color: rgb(63 63 70 / var(--tw-bg-opacity)); -} - -.bg-zinc-800 { - --tw-bg-opacity: 1; - background-color: rgb(39 39 42 / var(--tw-bg-opacity)); -} - -.bg-zinc-900 { - --tw-bg-opacity: 1; - background-color: rgb(24 24 27 / var(--tw-bg-opacity)); -} - -.p-0 { - padding: 0px; -} - -.p-0\.5 { - padding: 0.125rem; -} - -.p-1 { - padding: 0.25rem; -} - -.p-1\.5 { - padding: 0.375rem; -} - -.p-2 { - padding: 0.5rem; -} - -.p-2\.5 { - padding: 0.625rem; -} - -.p-3 { - padding: 0.75rem; -} - -.p-3\.5 { - padding: 0.875rem; -} - -.p-4 { - padding: 1rem; -} - -.p-6 { - padding: 1.5rem; -} - -.p-8 { - padding: 2rem; -} - -.p-px { - padding: 1px; -} - -.px-0 { - padding-left: 0px; - padding-right: 0px; -} - -.px-0\.5 { - padding-left: 0.125rem; - padding-right: 0.125rem; -} - -.px-1 { - padding-left: 0.25rem; - padding-right: 0.25rem; -} - -.px-1\.5 { - padding-left: 0.375rem; - padding-right: 0.375rem; -} - -.px-2 { - padding-left: 0.5rem; - padding-right: 0.5rem; -} - -.px-2\.5 { - padding-left: 0.625rem; - padding-right: 0.625rem; -} - -.px-3 { - padding-left: 0.75rem; - padding-right: 0.75rem; -} - -.px-3\.5 { - padding-left: 0.875rem; - padding-right: 0.875rem; -} - -.px-4 { - padding-left: 1rem; - padding-right: 1rem; -} - -.px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem; -} - -.px-8 { - padding-left: 2rem; - padding-right: 2rem; -} - -.px-px { - padding-left: 1px; - padding-right: 1px; -} - -.py-0 { - padding-top: 0px; - padding-bottom: 0px; -} - -.py-0\.5 { - padding-top: 0.125rem; - padding-bottom: 0.125rem; -} - -.py-1 { - padding-top: 0.25rem; - padding-bottom: 0.25rem; -} - -.py-1\.5 { - padding-top: 0.375rem; - padding-bottom: 0.375rem; -} - -.py-2 { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.py-2\.5 { - padding-top: 0.625rem; - padding-bottom: 0.625rem; -} - -.py-3 { - padding-top: 0.75rem; - padding-bottom: 0.75rem; -} - -.py-3\.5 { - padding-top: 0.875rem; - padding-bottom: 0.875rem; -} - -.py-4 { - padding-top: 1rem; - padding-bottom: 1rem; -} - -.py-6 { - padding-top: 1.5rem; - padding-bottom: 1.5rem; -} - -.py-8 { - padding-top: 2rem; - padding-bottom: 2rem; -} - -.py-px { - padding-top: 1px; - padding-bottom: 1px; -} - -.pb-0 { - padding-bottom: 0px; -} - -.pb-0\.5 { - padding-bottom: 0.125rem; -} - -.pb-1 { - padding-bottom: 0.25rem; -} - -.pb-1\.5 { - padding-bottom: 0.375rem; -} - -.pb-2 { - padding-bottom: 0.5rem; -} - -.pb-2\.5 { - padding-bottom: 0.625rem; -} - -.pb-3 { - padding-bottom: 0.75rem; -} - -.pb-3\.5 { - padding-bottom: 0.875rem; -} - -.pb-4 { - padding-bottom: 1rem; -} - -.pb-6 { - padding-bottom: 1.5rem; -} - -.pb-8 { - padding-bottom: 2rem; -} - -.pb-px { - padding-bottom: 1px; -} - -.pl-0 { - padding-left: 0px; -} - -.pl-0\.5 { - padding-left: 0.125rem; -} - -.pl-1 { - padding-left: 0.25rem; -} - -.pl-1\.5 { - padding-left: 0.375rem; -} - -.pl-2 { - padding-left: 0.5rem; -} - -.pl-2\.5 { - padding-left: 0.625rem; -} - -.pl-3 { - padding-left: 0.75rem; -} - -.pl-3\.5 { - padding-left: 0.875rem; -} - -.pl-4 { - padding-left: 1rem; -} - -.pl-6 { - padding-left: 1.5rem; -} - -.pl-8 { - padding-left: 2rem; -} - -.pl-px { - padding-left: 1px; -} - -.pr-0 { - padding-right: 0px; -} - -.pr-0\.5 { - padding-right: 0.125rem; -} - -.pr-1 { - padding-right: 0.25rem; -} - -.pr-1\.5 { - padding-right: 0.375rem; -} - -.pr-2 { - padding-right: 0.5rem; -} - -.pr-2\.5 { - padding-right: 0.625rem; -} - -.pr-3 { - padding-right: 0.75rem; -} - -.pr-3\.5 { - padding-right: 0.875rem; -} - -.pr-4 { - padding-right: 1rem; -} - -.pr-6 { - padding-right: 1.5rem; -} - -.pr-8 { - padding-right: 2rem; -} - -.pr-px { - padding-right: 1px; -} - -.pt-0 { - padding-top: 0px; -} - -.pt-0\.5 { - padding-top: 0.125rem; -} - -.pt-1 { - padding-top: 0.25rem; -} - -.pt-1\.5 { - padding-top: 0.375rem; -} - -.pt-2 { - padding-top: 0.5rem; -} - -.pt-2\.5 { - padding-top: 0.625rem; -} - -.pt-3 { - padding-top: 0.75rem; -} - -.pt-3\.5 { - padding-top: 0.875rem; -} - -.pt-4 { - padding-top: 1rem; -} - -.pt-6 { - padding-top: 1.5rem; -} - -.pt-8 { - padding-top: 2rem; -} - -.pt-px { - padding-top: 1px; -} - -.text-left { - text-align: left; -} - -.text-center { - text-align: center; -} - -.text-right { - text-align: right; -} - -.text-start { - text-align: start; -} - -.align-top { - vertical-align: top; -} - -.align-middle { - vertical-align: middle; -} - -.text-2xl { - font-size: 1.5rem; - line-height: 2rem; -} - -.text-3xl { - font-size: 1.875rem; - line-height: 2.25rem; -} - -.text-base { - font-size: 1rem; - line-height: 1.5rem; -} - -.text-lg { - font-size: 1.125rem; - line-height: 1.75rem; -} - -.text-sm { - font-size: 0.875rem; - line-height: 1.25rem; -} - -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem; -} - -.text-xs { - font-size: 0.75rem; - line-height: 1rem; -} - -.font-medium { - font-weight: 500; -} - -.font-normal { - font-weight: 400; -} - -.font-semibold { - font-weight: 600; -} - -.capitalize { - text-transform: capitalize; -} - -.italic { - font-style: italic; -} - -.tabular-nums { - --tw-numeric-spacing: tabular-nums; - font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction); -} - -.leading-8 { - line-height: 2rem; -} - -.text-amber-100 { - --tw-text-opacity: 1; - color: rgb(254 243 199 / var(--tw-text-opacity)); -} - -.text-amber-200 { - --tw-text-opacity: 1; - color: rgb(253 230 138 / var(--tw-text-opacity)); -} - -.text-amber-300 { - --tw-text-opacity: 1; - color: rgb(252 211 77 / var(--tw-text-opacity)); -} - -.text-amber-400 { - --tw-text-opacity: 1; - color: rgb(251 191 36 / var(--tw-text-opacity)); -} - -.text-amber-50 { - --tw-text-opacity: 1; - color: rgb(255 251 235 / var(--tw-text-opacity)); -} - -.text-amber-500 { - --tw-text-opacity: 1; - color: rgb(245 158 11 / var(--tw-text-opacity)); -} - -.text-amber-600 { - --tw-text-opacity: 1; - color: rgb(217 119 6 / var(--tw-text-opacity)); -} - -.text-amber-700 { - --tw-text-opacity: 1; - color: rgb(180 83 9 / var(--tw-text-opacity)); -} - -.text-amber-800 { - --tw-text-opacity: 1; - color: rgb(146 64 14 / var(--tw-text-opacity)); -} - -.text-amber-900 { - --tw-text-opacity: 1; - color: rgb(120 53 15 / var(--tw-text-opacity)); -} - -.text-black { - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} - -.text-blue-100 { - --tw-text-opacity: 1; - color: rgb(219 234 254 / var(--tw-text-opacity)); -} - -.text-blue-200 { - --tw-text-opacity: 1; - color: rgb(191 219 254 / var(--tw-text-opacity)); -} - -.text-blue-300 { - --tw-text-opacity: 1; - color: rgb(147 197 253 / var(--tw-text-opacity)); -} - -.text-blue-400 { - --tw-text-opacity: 1; - color: rgb(96 165 250 / var(--tw-text-opacity)); -} - -.text-blue-50 { - --tw-text-opacity: 1; - color: rgb(239 246 255 / var(--tw-text-opacity)); -} - -.text-blue-500 { - --tw-text-opacity: 1; - color: rgb(59 130 246 / var(--tw-text-opacity)); -} - -.text-blue-600 { - --tw-text-opacity: 1; - color: rgb(37 99 235 / var(--tw-text-opacity)); -} - -.text-blue-700 { - --tw-text-opacity: 1; - color: rgb(29 78 216 / var(--tw-text-opacity)); -} - -.text-blue-800 { - --tw-text-opacity: 1; - color: rgb(30 64 175 / var(--tw-text-opacity)); -} - -.text-blue-900 { - --tw-text-opacity: 1; - color: rgb(30 58 138 / var(--tw-text-opacity)); -} - -.text-cyan-100 { - --tw-text-opacity: 1; - color: rgb(207 250 254 / var(--tw-text-opacity)); -} - -.text-cyan-200 { - --tw-text-opacity: 1; - color: rgb(165 243 252 / var(--tw-text-opacity)); -} - -.text-cyan-300 { - --tw-text-opacity: 1; - color: rgb(103 232 249 / var(--tw-text-opacity)); -} - -.text-cyan-400 { - --tw-text-opacity: 1; - color: rgb(34 211 238 / var(--tw-text-opacity)); -} - -.text-cyan-50 { - --tw-text-opacity: 1; - color: rgb(236 254 255 / var(--tw-text-opacity)); -} - -.text-cyan-500 { - --tw-text-opacity: 1; - color: rgb(6 182 212 / var(--tw-text-opacity)); -} - -.text-cyan-600 { - --tw-text-opacity: 1; - color: rgb(8 145 178 / var(--tw-text-opacity)); -} - -.text-cyan-700 { - --tw-text-opacity: 1; - color: rgb(14 116 144 / var(--tw-text-opacity)); -} - -.text-cyan-800 { - --tw-text-opacity: 1; - color: rgb(21 94 117 / var(--tw-text-opacity)); -} - -.text-cyan-900 { - --tw-text-opacity: 1; - color: rgb(22 78 99 / var(--tw-text-opacity)); -} - -.text-emerald-100 { - --tw-text-opacity: 1; - color: rgb(209 250 229 / var(--tw-text-opacity)); -} - -.text-emerald-200 { - --tw-text-opacity: 1; - color: rgb(167 243 208 / var(--tw-text-opacity)); -} - -.text-emerald-300 { - --tw-text-opacity: 1; - color: rgb(110 231 183 / var(--tw-text-opacity)); -} - -.text-emerald-400 { - --tw-text-opacity: 1; - color: rgb(52 211 153 / var(--tw-text-opacity)); -} - -.text-emerald-50 { - --tw-text-opacity: 1; - color: rgb(236 253 245 / var(--tw-text-opacity)); -} - -.text-emerald-500 { - --tw-text-opacity: 1; - color: rgb(16 185 129 / var(--tw-text-opacity)); -} - -.text-emerald-600 { - --tw-text-opacity: 1; - color: rgb(5 150 105 / var(--tw-text-opacity)); -} - -.text-emerald-700 { - --tw-text-opacity: 1; - color: rgb(4 120 87 / var(--tw-text-opacity)); -} - -.text-emerald-800 { - --tw-text-opacity: 1; - color: rgb(6 95 70 / var(--tw-text-opacity)); -} - -.text-emerald-900 { - --tw-text-opacity: 1; - color: rgb(6 78 59 / var(--tw-text-opacity)); -} - -.text-fuchsia-100 { - --tw-text-opacity: 1; - color: rgb(250 232 255 / var(--tw-text-opacity)); -} - -.text-fuchsia-200 { - --tw-text-opacity: 1; - color: rgb(245 208 254 / var(--tw-text-opacity)); -} - -.text-fuchsia-300 { - --tw-text-opacity: 1; - color: rgb(240 171 252 / var(--tw-text-opacity)); -} - -.text-fuchsia-400 { - --tw-text-opacity: 1; - color: rgb(232 121 249 / var(--tw-text-opacity)); -} - -.text-fuchsia-50 { - --tw-text-opacity: 1; - color: rgb(253 244 255 / var(--tw-text-opacity)); -} - -.text-fuchsia-500 { - --tw-text-opacity: 1; - color: rgb(217 70 239 / var(--tw-text-opacity)); -} - -.text-fuchsia-600 { - --tw-text-opacity: 1; - color: rgb(192 38 211 / var(--tw-text-opacity)); -} - -.text-fuchsia-700 { - --tw-text-opacity: 1; - color: rgb(162 28 175 / var(--tw-text-opacity)); -} - -.text-fuchsia-800 { - --tw-text-opacity: 1; - color: rgb(134 25 143 / var(--tw-text-opacity)); -} - -.text-fuchsia-900 { - --tw-text-opacity: 1; - color: rgb(112 26 117 / var(--tw-text-opacity)); -} - -.text-gray-100 { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity)); -} - -.text-gray-200 { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity)); -} - -.text-gray-300 { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); -} - -.text-gray-400 { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); -} - -.text-gray-50 { - --tw-text-opacity: 1; - color: rgb(249 250 251 / var(--tw-text-opacity)); -} - -.text-gray-500 { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); -} - -.text-gray-600 { - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity)); -} - -.text-gray-700 { - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity)); -} - -.text-gray-800 { - --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity)); -} - -.text-gray-900 { - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity)); -} - -.text-green-100 { - --tw-text-opacity: 1; - color: rgb(220 252 231 / var(--tw-text-opacity)); -} - -.text-green-200 { - --tw-text-opacity: 1; - color: rgb(187 247 208 / var(--tw-text-opacity)); -} - -.text-green-300 { - --tw-text-opacity: 1; - color: rgb(134 239 172 / var(--tw-text-opacity)); -} - -.text-green-400 { - --tw-text-opacity: 1; - color: rgb(74 222 128 / var(--tw-text-opacity)); -} - -.text-green-50 { - --tw-text-opacity: 1; - color: rgb(240 253 244 / var(--tw-text-opacity)); -} - -.text-green-500 { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity)); -} - -.text-green-600 { - --tw-text-opacity: 1; - color: rgb(22 163 74 / var(--tw-text-opacity)); -} - -.text-green-700 { - --tw-text-opacity: 1; - color: rgb(21 128 61 / var(--tw-text-opacity)); -} - -.text-green-800 { - --tw-text-opacity: 1; - color: rgb(22 101 52 / var(--tw-text-opacity)); -} - -.text-green-900 { - --tw-text-opacity: 1; - color: rgb(20 83 45 / var(--tw-text-opacity)); -} - -.text-indigo-100 { - --tw-text-opacity: 1; - color: rgb(224 231 255 / var(--tw-text-opacity)); -} - -.text-indigo-200 { - --tw-text-opacity: 1; - color: rgb(199 210 254 / var(--tw-text-opacity)); -} - -.text-indigo-300 { - --tw-text-opacity: 1; - color: rgb(165 180 252 / var(--tw-text-opacity)); -} - -.text-indigo-400 { - --tw-text-opacity: 1; - color: rgb(129 140 248 / var(--tw-text-opacity)); -} - -.text-indigo-50 { - --tw-text-opacity: 1; - color: rgb(238 242 255 / var(--tw-text-opacity)); -} - -.text-indigo-500 { - --tw-text-opacity: 1; - color: rgb(99 102 241 / var(--tw-text-opacity)); -} - -.text-indigo-600 { - --tw-text-opacity: 1; - color: rgb(79 70 229 / var(--tw-text-opacity)); -} - -.text-indigo-700 { - --tw-text-opacity: 1; - color: rgb(67 56 202 / var(--tw-text-opacity)); -} - -.text-indigo-800 { - --tw-text-opacity: 1; - color: rgb(55 48 163 / var(--tw-text-opacity)); -} - -.text-indigo-900 { - --tw-text-opacity: 1; - color: rgb(49 46 129 / var(--tw-text-opacity)); -} - -.text-inherit { - color: inherit; -} - -.text-lime-100 { - --tw-text-opacity: 1; - color: rgb(236 252 203 / var(--tw-text-opacity)); -} - -.text-lime-200 { - --tw-text-opacity: 1; - color: rgb(217 249 157 / var(--tw-text-opacity)); -} - -.text-lime-300 { - --tw-text-opacity: 1; - color: rgb(190 242 100 / var(--tw-text-opacity)); -} - -.text-lime-400 { - --tw-text-opacity: 1; - color: rgb(163 230 53 / var(--tw-text-opacity)); -} - -.text-lime-50 { - --tw-text-opacity: 1; - color: rgb(247 254 231 / var(--tw-text-opacity)); -} - -.text-lime-500 { - --tw-text-opacity: 1; - color: rgb(132 204 22 / var(--tw-text-opacity)); -} - -.text-lime-600 { - --tw-text-opacity: 1; - color: rgb(101 163 13 / var(--tw-text-opacity)); -} - -.text-lime-700 { - --tw-text-opacity: 1; - color: rgb(77 124 15 / var(--tw-text-opacity)); -} - -.text-lime-800 { - --tw-text-opacity: 1; - color: rgb(63 98 18 / var(--tw-text-opacity)); -} - -.text-lime-900 { - --tw-text-opacity: 1; - color: rgb(54 83 20 / var(--tw-text-opacity)); -} - -.text-neutral-100 { - --tw-text-opacity: 1; - color: rgb(245 245 245 / var(--tw-text-opacity)); -} - -.text-neutral-200 { - --tw-text-opacity: 1; - color: rgb(229 229 229 / var(--tw-text-opacity)); -} - -.text-neutral-300 { - --tw-text-opacity: 1; - color: rgb(212 212 212 / var(--tw-text-opacity)); -} - -.text-neutral-400 { - --tw-text-opacity: 1; - color: rgb(163 163 163 / var(--tw-text-opacity)); -} - -.text-neutral-50 { - --tw-text-opacity: 1; - color: rgb(250 250 250 / var(--tw-text-opacity)); -} - -.text-neutral-500 { - --tw-text-opacity: 1; - color: rgb(115 115 115 / var(--tw-text-opacity)); -} - -.text-neutral-600 { - --tw-text-opacity: 1; - color: rgb(82 82 82 / var(--tw-text-opacity)); -} - -.text-neutral-700 { - --tw-text-opacity: 1; - color: rgb(64 64 64 / var(--tw-text-opacity)); -} - -.text-neutral-800 { - --tw-text-opacity: 1; - color: rgb(38 38 38 / var(--tw-text-opacity)); -} - -.text-neutral-900 { - --tw-text-opacity: 1; - color: rgb(23 23 23 / var(--tw-text-opacity)); -} - -.text-orange-100 { - --tw-text-opacity: 1; - color: rgb(255 237 213 / var(--tw-text-opacity)); -} - -.text-orange-200 { - --tw-text-opacity: 1; - color: rgb(254 215 170 / var(--tw-text-opacity)); -} - -.text-orange-300 { - --tw-text-opacity: 1; - color: rgb(253 186 116 / var(--tw-text-opacity)); -} - -.text-orange-400 { - --tw-text-opacity: 1; - color: rgb(251 146 60 / var(--tw-text-opacity)); -} - -.text-orange-50 { - --tw-text-opacity: 1; - color: rgb(255 247 237 / var(--tw-text-opacity)); -} - -.text-orange-500 { - --tw-text-opacity: 1; - color: rgb(249 115 22 / var(--tw-text-opacity)); -} - -.text-orange-600 { - --tw-text-opacity: 1; - color: rgb(234 88 12 / var(--tw-text-opacity)); -} - -.text-orange-700 { - --tw-text-opacity: 1; - color: rgb(194 65 12 / var(--tw-text-opacity)); -} - -.text-orange-800 { - --tw-text-opacity: 1; - color: rgb(154 52 18 / var(--tw-text-opacity)); -} - -.text-orange-900 { - --tw-text-opacity: 1; - color: rgb(124 45 18 / var(--tw-text-opacity)); -} - -.text-pink-100 { - --tw-text-opacity: 1; - color: rgb(252 231 243 / var(--tw-text-opacity)); -} - -.text-pink-200 { - --tw-text-opacity: 1; - color: rgb(251 207 232 / var(--tw-text-opacity)); -} - -.text-pink-300 { - --tw-text-opacity: 1; - color: rgb(249 168 212 / var(--tw-text-opacity)); -} - -.text-pink-400 { - --tw-text-opacity: 1; - color: rgb(244 114 182 / var(--tw-text-opacity)); -} - -.text-pink-50 { - --tw-text-opacity: 1; - color: rgb(253 242 248 / var(--tw-text-opacity)); -} - -.text-pink-500 { - --tw-text-opacity: 1; - color: rgb(236 72 153 / var(--tw-text-opacity)); -} - -.text-pink-600 { - --tw-text-opacity: 1; - color: rgb(219 39 119 / var(--tw-text-opacity)); -} - -.text-pink-700 { - --tw-text-opacity: 1; - color: rgb(190 24 93 / var(--tw-text-opacity)); -} - -.text-pink-900 { - --tw-text-opacity: 1; - color: rgb(131 24 67 / var(--tw-text-opacity)); -} - -.text-purple-100 { - --tw-text-opacity: 1; - color: rgb(243 232 255 / var(--tw-text-opacity)); -} - -.text-purple-200 { - --tw-text-opacity: 1; - color: rgb(233 213 255 / var(--tw-text-opacity)); -} - -.text-purple-300 { - --tw-text-opacity: 1; - color: rgb(216 180 254 / var(--tw-text-opacity)); -} - -.text-purple-400 { - --tw-text-opacity: 1; - color: rgb(192 132 252 / var(--tw-text-opacity)); -} - -.text-purple-50 { - --tw-text-opacity: 1; - color: rgb(250 245 255 / var(--tw-text-opacity)); -} - -.text-purple-500 { - --tw-text-opacity: 1; - color: rgb(168 85 247 / var(--tw-text-opacity)); -} - -.text-purple-600 { - --tw-text-opacity: 1; - color: rgb(147 51 234 / var(--tw-text-opacity)); -} - -.text-purple-700 { - --tw-text-opacity: 1; - color: rgb(126 34 206 / var(--tw-text-opacity)); -} - -.text-purple-800 { - --tw-text-opacity: 1; - color: rgb(107 33 168 / var(--tw-text-opacity)); -} - -.text-purple-900 { - --tw-text-opacity: 1; - color: rgb(88 28 135 / var(--tw-text-opacity)); -} - -.text-red-100 { - --tw-text-opacity: 1; - color: rgb(254 226 226 / var(--tw-text-opacity)); -} - -.text-red-200 { - --tw-text-opacity: 1; - color: rgb(254 202 202 / var(--tw-text-opacity)); -} - -.text-red-300 { - --tw-text-opacity: 1; - color: rgb(252 165 165 / var(--tw-text-opacity)); -} - -.text-red-400 { - --tw-text-opacity: 1; - color: rgb(248 113 113 / var(--tw-text-opacity)); -} - -.text-red-50 { - --tw-text-opacity: 1; - color: rgb(254 242 242 / var(--tw-text-opacity)); -} - -.text-red-500 { - --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity)); -} - -.text-red-600 { - --tw-text-opacity: 1; - color: rgb(220 38 38 / var(--tw-text-opacity)); -} - -.text-red-700 { - --tw-text-opacity: 1; - color: rgb(185 28 28 / var(--tw-text-opacity)); -} - -.text-red-800 { - --tw-text-opacity: 1; - color: rgb(153 27 27 / var(--tw-text-opacity)); -} - -.text-red-900 { - --tw-text-opacity: 1; - color: rgb(127 29 29 / var(--tw-text-opacity)); -} - -.text-rose-100 { - --tw-text-opacity: 1; - color: rgb(255 228 230 / var(--tw-text-opacity)); -} - -.text-rose-200 { - --tw-text-opacity: 1; - color: rgb(254 205 211 / var(--tw-text-opacity)); -} - -.text-rose-300 { - --tw-text-opacity: 1; - color: rgb(253 164 175 / var(--tw-text-opacity)); -} - -.text-rose-400 { - --tw-text-opacity: 1; - color: rgb(251 113 133 / var(--tw-text-opacity)); -} - -.text-rose-50 { - --tw-text-opacity: 1; - color: rgb(255 241 242 / var(--tw-text-opacity)); -} - -.text-rose-500 { - --tw-text-opacity: 1; - color: rgb(244 63 94 / var(--tw-text-opacity)); -} - -.text-rose-600 { - --tw-text-opacity: 1; - color: rgb(225 29 72 / var(--tw-text-opacity)); -} - -.text-rose-700 { - --tw-text-opacity: 1; - color: rgb(190 18 60 / var(--tw-text-opacity)); -} - -.text-rose-800 { - --tw-text-opacity: 1; - color: rgb(159 18 57 / var(--tw-text-opacity)); -} - -.text-rose-900 { - --tw-text-opacity: 1; - color: rgb(136 19 55 / var(--tw-text-opacity)); -} - -.text-sky-100 { - --tw-text-opacity: 1; - color: rgb(224 242 254 / var(--tw-text-opacity)); -} - -.text-sky-200 { - --tw-text-opacity: 1; - color: rgb(186 230 253 / var(--tw-text-opacity)); -} - -.text-sky-300 { - --tw-text-opacity: 1; - color: rgb(125 211 252 / var(--tw-text-opacity)); -} - -.text-sky-400 { - --tw-text-opacity: 1; - color: rgb(56 189 248 / var(--tw-text-opacity)); -} - -.text-sky-50 { - --tw-text-opacity: 1; - color: rgb(240 249 255 / var(--tw-text-opacity)); -} - -.text-sky-500 { - --tw-text-opacity: 1; - color: rgb(14 165 233 / var(--tw-text-opacity)); -} - -.text-sky-600 { - --tw-text-opacity: 1; - color: rgb(2 132 199 / var(--tw-text-opacity)); -} - -.text-sky-700 { - --tw-text-opacity: 1; - color: rgb(3 105 161 / var(--tw-text-opacity)); -} - -.text-sky-800 { - --tw-text-opacity: 1; - color: rgb(7 89 133 / var(--tw-text-opacity)); -} - -.text-sky-900 { - --tw-text-opacity: 1; - color: rgb(12 74 110 / var(--tw-text-opacity)); -} - -.text-slate-100 { - --tw-text-opacity: 1; - color: rgb(241 245 249 / var(--tw-text-opacity)); -} - -.text-slate-200 { - --tw-text-opacity: 1; - color: rgb(226 232 240 / var(--tw-text-opacity)); -} - -.text-slate-300 { - --tw-text-opacity: 1; - color: rgb(203 213 225 / var(--tw-text-opacity)); -} - -.text-slate-400 { - --tw-text-opacity: 1; - color: rgb(148 163 184 / var(--tw-text-opacity)); -} - -.text-slate-50 { - --tw-text-opacity: 1; - color: rgb(248 250 252 / var(--tw-text-opacity)); -} - -.text-slate-500 { - --tw-text-opacity: 1; - color: rgb(100 116 139 / var(--tw-text-opacity)); -} - -.text-slate-600 { - --tw-text-opacity: 1; - color: rgb(71 85 105 / var(--tw-text-opacity)); -} - -.text-slate-700 { - --tw-text-opacity: 1; - color: rgb(51 65 85 / var(--tw-text-opacity)); -} - -.text-slate-800 { - --tw-text-opacity: 1; - color: rgb(30 41 59 / var(--tw-text-opacity)); -} - -.text-slate-900 { - --tw-text-opacity: 1; - color: rgb(15 23 42 / var(--tw-text-opacity)); -} - -.text-stone-100 { - --tw-text-opacity: 1; - color: rgb(245 245 244 / var(--tw-text-opacity)); -} - -.text-stone-200 { - --tw-text-opacity: 1; - color: rgb(231 229 228 / var(--tw-text-opacity)); -} - -.text-stone-300 { - --tw-text-opacity: 1; - color: rgb(214 211 209 / var(--tw-text-opacity)); -} - -.text-stone-400 { - --tw-text-opacity: 1; - color: rgb(168 162 158 / var(--tw-text-opacity)); -} - -.text-stone-50 { - --tw-text-opacity: 1; - color: rgb(250 250 249 / var(--tw-text-opacity)); -} - -.text-stone-500 { - --tw-text-opacity: 1; - color: rgb(120 113 108 / var(--tw-text-opacity)); -} - -.text-stone-600 { - --tw-text-opacity: 1; - color: rgb(87 83 78 / var(--tw-text-opacity)); -} - -.text-stone-700 { - --tw-text-opacity: 1; - color: rgb(68 64 60 / var(--tw-text-opacity)); -} - -.text-stone-800 { - --tw-text-opacity: 1; - color: rgb(41 37 36 / var(--tw-text-opacity)); -} - -.text-stone-900 { - --tw-text-opacity: 1; - color: rgb(28 25 23 / var(--tw-text-opacity)); -} - -.text-teal-100 { - --tw-text-opacity: 1; - color: rgb(204 251 241 / var(--tw-text-opacity)); -} - -.text-teal-200 { - --tw-text-opacity: 1; - color: rgb(153 246 228 / var(--tw-text-opacity)); -} - -.text-teal-300 { - --tw-text-opacity: 1; - color: rgb(94 234 212 / var(--tw-text-opacity)); -} - -.text-teal-400 { - --tw-text-opacity: 1; - color: rgb(45 212 191 / var(--tw-text-opacity)); -} - -.text-teal-50 { - --tw-text-opacity: 1; - color: rgb(240 253 250 / var(--tw-text-opacity)); -} - -.text-teal-500 { - --tw-text-opacity: 1; - color: rgb(20 184 166 / var(--tw-text-opacity)); -} - -.text-teal-600 { - --tw-text-opacity: 1; - color: rgb(13 148 136 / var(--tw-text-opacity)); -} - -.text-teal-700 { - --tw-text-opacity: 1; - color: rgb(15 118 110 / var(--tw-text-opacity)); -} - -.text-teal-800 { - --tw-text-opacity: 1; - color: rgb(17 94 89 / var(--tw-text-opacity)); -} - -.text-teal-900 { - --tw-text-opacity: 1; - color: rgb(19 78 74 / var(--tw-text-opacity)); -} - -.text-transparent { - color: transparent; -} - -.text-violet-100 { - --tw-text-opacity: 1; - color: rgb(237 233 254 / var(--tw-text-opacity)); -} - -.text-violet-200 { - --tw-text-opacity: 1; - color: rgb(221 214 254 / var(--tw-text-opacity)); -} - -.text-violet-300 { - --tw-text-opacity: 1; - color: rgb(196 181 253 / var(--tw-text-opacity)); -} - -.text-violet-400 { - --tw-text-opacity: 1; - color: rgb(167 139 250 / var(--tw-text-opacity)); -} - -.text-violet-50 { - --tw-text-opacity: 1; - color: rgb(245 243 255 / var(--tw-text-opacity)); -} - -.text-violet-500 { - --tw-text-opacity: 1; - color: rgb(139 92 246 / var(--tw-text-opacity)); -} - -.text-violet-600 { - --tw-text-opacity: 1; - color: rgb(124 58 237 / var(--tw-text-opacity)); -} - -.text-violet-700 { - --tw-text-opacity: 1; - color: rgb(109 40 217 / var(--tw-text-opacity)); -} - -.text-violet-800 { - --tw-text-opacity: 1; - color: rgb(91 33 182 / var(--tw-text-opacity)); -} - -.text-violet-900 { - --tw-text-opacity: 1; - color: rgb(76 29 149 / var(--tw-text-opacity)); -} - -.text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.text-yellow-100 { - --tw-text-opacity: 1; - color: rgb(254 249 195 / var(--tw-text-opacity)); -} - -.text-yellow-200 { - --tw-text-opacity: 1; - color: rgb(254 240 138 / var(--tw-text-opacity)); -} - -.text-yellow-300 { - --tw-text-opacity: 1; - color: rgb(253 224 71 / var(--tw-text-opacity)); -} - -.text-yellow-400 { - --tw-text-opacity: 1; - color: rgb(250 204 21 / var(--tw-text-opacity)); -} - -.text-yellow-50 { - --tw-text-opacity: 1; - color: rgb(254 252 232 / var(--tw-text-opacity)); -} - -.text-yellow-500 { - --tw-text-opacity: 1; - color: rgb(234 179 8 / var(--tw-text-opacity)); -} - -.text-yellow-600 { - --tw-text-opacity: 1; - color: rgb(202 138 4 / var(--tw-text-opacity)); -} - -.text-yellow-700 { - --tw-text-opacity: 1; - color: rgb(161 98 7 / var(--tw-text-opacity)); -} - -.text-yellow-800 { - --tw-text-opacity: 1; - color: rgb(133 77 14 / var(--tw-text-opacity)); -} - -.text-yellow-900 { - --tw-text-opacity: 1; - color: rgb(113 63 18 / var(--tw-text-opacity)); -} - -.text-zinc-100 { - --tw-text-opacity: 1; - color: rgb(244 244 245 / var(--tw-text-opacity)); -} - -.text-zinc-200 { - --tw-text-opacity: 1; - color: rgb(228 228 231 / var(--tw-text-opacity)); -} - -.text-zinc-300 { - --tw-text-opacity: 1; - color: rgb(212 212 216 / var(--tw-text-opacity)); -} - -.text-zinc-400 { - --tw-text-opacity: 1; - color: rgb(161 161 170 / var(--tw-text-opacity)); -} - -.text-zinc-50 { - --tw-text-opacity: 1; - color: rgb(250 250 250 / var(--tw-text-opacity)); -} - -.text-zinc-500 { - --tw-text-opacity: 1; - color: rgb(113 113 122 / var(--tw-text-opacity)); -} - -.text-zinc-600 { - --tw-text-opacity: 1; - color: rgb(82 82 91 / var(--tw-text-opacity)); -} - -.text-zinc-700 { - --tw-text-opacity: 1; - color: rgb(63 63 70 / var(--tw-text-opacity)); -} - -.text-zinc-800 { - --tw-text-opacity: 1; - color: rgb(39 39 42 / var(--tw-text-opacity)); -} - -.text-zinc-900 { - --tw-text-opacity: 1; - color: rgb(24 24 27 / var(--tw-text-opacity)); -} - -.no-underline { - text-decoration-line: none; -} - -.opacity-50 { - opacity: 0.5; -} - -.opacity-70 { - opacity: 0.7; -} - -.shadow { - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-lg { - --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-none { - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-sm { - --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); - --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.outline-none { - outline: 2px solid transparent; - outline-offset: 2px; -} - -.outline { - outline-style: solid; -} - -.outline-amber-100 { - outline-color: #fef3c7; -} - -.outline-amber-200 { - outline-color: #fde68a; -} - -.outline-amber-300 { - outline-color: #fcd34d; -} - -.outline-amber-400 { - outline-color: #fbbf24; -} - -.outline-amber-50 { - outline-color: #fffbeb; -} - -.outline-amber-500 { - outline-color: #f59e0b; -} - -.outline-amber-600 { - outline-color: #d97706; -} - -.outline-amber-700 { - outline-color: #b45309; -} - -.outline-amber-800 { - outline-color: #92400e; -} - -.outline-amber-900 { - outline-color: #78350f; -} - -.outline-black { - outline-color: #000; -} - -.outline-blue-100 { - outline-color: #dbeafe; -} - -.outline-blue-200 { - outline-color: #bfdbfe; -} - -.outline-blue-300 { - outline-color: #93c5fd; -} - -.outline-blue-400 { - outline-color: #60a5fa; -} - -.outline-blue-50 { - outline-color: #eff6ff; -} - -.outline-blue-500 { - outline-color: #3b82f6; -} - -.outline-blue-600 { - outline-color: #2563eb; -} - -.outline-blue-700 { - outline-color: #1d4ed8; -} - -.outline-blue-800 { - outline-color: #1e40af; -} - -.outline-blue-900 { - outline-color: #1e3a8a; -} - -.outline-cyan-100 { - outline-color: #cffafe; -} - -.outline-cyan-200 { - outline-color: #a5f3fc; -} - -.outline-cyan-300 { - outline-color: #67e8f9; -} - -.outline-cyan-400 { - outline-color: #22d3ee; -} - -.outline-cyan-50 { - outline-color: #ecfeff; -} - -.outline-cyan-500 { - outline-color: #06b6d4; -} - -.outline-cyan-600 { - outline-color: #0891b2; -} - -.outline-cyan-700 { - outline-color: #0e7490; -} - -.outline-cyan-800 { - outline-color: #155e75; -} - -.outline-cyan-900 { - outline-color: #164e63; -} - -.outline-emerald-100 { - outline-color: #d1fae5; -} - -.outline-emerald-200 { - outline-color: #a7f3d0; -} - -.outline-emerald-300 { - outline-color: #6ee7b7; -} - -.outline-emerald-400 { - outline-color: #34d399; -} - -.outline-emerald-50 { - outline-color: #ecfdf5; -} - -.outline-emerald-500 { - outline-color: #10b981; -} - -.outline-emerald-600 { - outline-color: #059669; -} - -.outline-emerald-700 { - outline-color: #047857; -} - -.outline-emerald-800 { - outline-color: #065f46; -} - -.outline-emerald-900 { - outline-color: #064e3b; -} - -.outline-fuchsia-100 { - outline-color: #fae8ff; -} - -.outline-fuchsia-200 { - outline-color: #f5d0fe; -} - -.outline-fuchsia-300 { - outline-color: #f0abfc; -} - -.outline-fuchsia-400 { - outline-color: #e879f9; -} - -.outline-fuchsia-50 { - outline-color: #fdf4ff; -} - -.outline-fuchsia-500 { - outline-color: #d946ef; -} - -.outline-fuchsia-600 { - outline-color: #c026d3; -} - -.outline-fuchsia-700 { - outline-color: #a21caf; -} - -.outline-fuchsia-800 { - outline-color: #86198f; -} - -.outline-fuchsia-900 { - outline-color: #701a75; -} - -.outline-gray-100 { - outline-color: #f3f4f6; -} - -.outline-gray-200 { - outline-color: #e5e7eb; -} - -.outline-gray-300 { - outline-color: #d1d5db; -} - -.outline-gray-400 { - outline-color: #9ca3af; -} - -.outline-gray-50 { - outline-color: #f9fafb; -} - -.outline-gray-500 { - outline-color: #6b7280; -} - -.outline-gray-600 { - outline-color: #4b5563; -} - -.outline-gray-700 { - outline-color: #374151; -} - -.outline-gray-800 { - outline-color: #1f2937; -} - -.outline-gray-900 { - outline-color: #111827; -} - -.outline-green-100 { - outline-color: #dcfce7; -} - -.outline-green-200 { - outline-color: #bbf7d0; -} - -.outline-green-300 { - outline-color: #86efac; -} - -.outline-green-400 { - outline-color: #4ade80; -} - -.outline-green-50 { - outline-color: #f0fdf4; -} - -.outline-green-500 { - outline-color: #22c55e; -} - -.outline-green-600 { - outline-color: #16a34a; -} - -.outline-green-700 { - outline-color: #15803d; -} - -.outline-green-800 { - outline-color: #166534; -} - -.outline-green-900 { - outline-color: #14532d; -} - -.outline-indigo-100 { - outline-color: #e0e7ff; -} - -.outline-indigo-200 { - outline-color: #c7d2fe; -} - -.outline-indigo-300 { - outline-color: #a5b4fc; -} - -.outline-indigo-400 { - outline-color: #818cf8; -} - -.outline-indigo-50 { - outline-color: #eef2ff; -} - -.outline-indigo-500 { - outline-color: #6366f1; -} - -.outline-indigo-600 { - outline-color: #4f46e5; -} - -.outline-indigo-700 { - outline-color: #4338ca; -} - -.outline-indigo-800 { - outline-color: #3730a3; -} - -.outline-indigo-900 { - outline-color: #312e81; -} - -.outline-lime-100 { - outline-color: #ecfccb; -} - -.outline-lime-200 { - outline-color: #d9f99d; -} - -.outline-lime-300 { - outline-color: #bef264; -} - -.outline-lime-400 { - outline-color: #a3e635; -} - -.outline-lime-50 { - outline-color: #f7fee7; -} - -.outline-lime-500 { - outline-color: #84cc16; -} - -.outline-lime-600 { - outline-color: #65a30d; -} - -.outline-lime-700 { - outline-color: #4d7c0f; -} - -.outline-lime-800 { - outline-color: #3f6212; -} - -.outline-lime-900 { - outline-color: #365314; -} - -.outline-neutral-100 { - outline-color: #f5f5f5; -} - -.outline-neutral-200 { - outline-color: #e5e5e5; -} - -.outline-neutral-300 { - outline-color: #d4d4d4; -} - -.outline-neutral-400 { - outline-color: #a3a3a3; -} - -.outline-neutral-50 { - outline-color: #fafafa; -} - -.outline-neutral-500 { - outline-color: #737373; -} - -.outline-neutral-600 { - outline-color: #525252; -} - -.outline-neutral-700 { - outline-color: #404040; -} - -.outline-neutral-800 { - outline-color: #262626; -} - -.outline-neutral-900 { - outline-color: #171717; -} - -.outline-orange-100 { - outline-color: #ffedd5; -} - -.outline-orange-200 { - outline-color: #fed7aa; -} - -.outline-orange-300 { - outline-color: #fdba74; -} - -.outline-orange-400 { - outline-color: #fb923c; -} - -.outline-orange-50 { - outline-color: #fff7ed; -} - -.outline-orange-500 { - outline-color: #f97316; -} - -.outline-orange-600 { - outline-color: #ea580c; -} - -.outline-orange-700 { - outline-color: #c2410c; -} - -.outline-orange-800 { - outline-color: #9a3412; -} - -.outline-orange-900 { - outline-color: #7c2d12; -} - -.outline-pink-100 { - outline-color: #fce7f3; -} - -.outline-pink-200 { - outline-color: #fbcfe8; -} - -.outline-pink-300 { - outline-color: #f9a8d4; -} - -.outline-pink-400 { - outline-color: #f472b6; -} - -.outline-pink-50 { - outline-color: #fdf2f8; -} - -.outline-pink-500 { - outline-color: #ec4899; -} - -.outline-pink-600 { - outline-color: #db2777; -} - -.outline-pink-700 { - outline-color: #be185d; -} - -.outline-pink-900 { - outline-color: #831843; -} - -.outline-purple-100 { - outline-color: #f3e8ff; -} - -.outline-purple-200 { - outline-color: #e9d5ff; -} - -.outline-purple-300 { - outline-color: #d8b4fe; -} - -.outline-purple-400 { - outline-color: #c084fc; -} - -.outline-purple-50 { - outline-color: #faf5ff; -} - -.outline-purple-500 { - outline-color: #a855f7; -} - -.outline-purple-600 { - outline-color: #9333ea; -} - -.outline-purple-700 { - outline-color: #7e22ce; -} - -.outline-purple-800 { - outline-color: #6b21a8; -} - -.outline-purple-900 { - outline-color: #581c87; -} - -.outline-red-100 { - outline-color: #fee2e2; -} - -.outline-red-200 { - outline-color: #fecaca; -} - -.outline-red-300 { - outline-color: #fca5a5; -} - -.outline-red-400 { - outline-color: #f87171; -} - -.outline-red-50 { - outline-color: #fef2f2; -} - -.outline-red-500 { - outline-color: #ef4444; -} - -.outline-red-600 { - outline-color: #dc2626; -} - -.outline-red-700 { - outline-color: #b91c1c; -} - -.outline-red-800 { - outline-color: #991b1b; -} - -.outline-red-900 { - outline-color: #7f1d1d; -} - -.outline-rose-100 { - outline-color: #ffe4e6; -} - -.outline-rose-200 { - outline-color: #fecdd3; -} - -.outline-rose-300 { - outline-color: #fda4af; -} - -.outline-rose-400 { - outline-color: #fb7185; -} - -.outline-rose-50 { - outline-color: #fff1f2; -} - -.outline-rose-500 { - outline-color: #f43f5e; -} - -.outline-rose-600 { - outline-color: #e11d48; -} - -.outline-rose-700 { - outline-color: #be123c; -} - -.outline-rose-800 { - outline-color: #9f1239; -} - -.outline-rose-900 { - outline-color: #881337; -} - -.outline-sky-100 { - outline-color: #e0f2fe; -} - -.outline-sky-200 { - outline-color: #bae6fd; -} - -.outline-sky-300 { - outline-color: #7dd3fc; -} - -.outline-sky-400 { - outline-color: #38bdf8; -} - -.outline-sky-50 { - outline-color: #f0f9ff; -} - -.outline-sky-500 { - outline-color: #0ea5e9; -} - -.outline-sky-600 { - outline-color: #0284c7; -} - -.outline-sky-700 { - outline-color: #0369a1; -} - -.outline-sky-800 { - outline-color: #075985; -} - -.outline-sky-900 { - outline-color: #0c4a6e; -} - -.outline-slate-100 { - outline-color: #f1f5f9; -} - -.outline-slate-200 { - outline-color: #e2e8f0; -} - -.outline-slate-300 { - outline-color: #cbd5e1; -} - -.outline-slate-400 { - outline-color: #94a3b8; -} - -.outline-slate-50 { - outline-color: #f8fafc; -} - -.outline-slate-500 { - outline-color: #64748b; -} - -.outline-slate-600 { - outline-color: #475569; -} - -.outline-slate-700 { - outline-color: #334155; -} - -.outline-slate-800 { - outline-color: #1e293b; -} - -.outline-slate-900 { - outline-color: #0f172a; -} - -.outline-stone-100 { - outline-color: #f5f5f4; -} - -.outline-stone-200 { - outline-color: #e7e5e4; -} - -.outline-stone-300 { - outline-color: #d6d3d1; -} - -.outline-stone-400 { - outline-color: #a8a29e; -} - -.outline-stone-50 { - outline-color: #fafaf9; -} - -.outline-stone-500 { - outline-color: #78716c; -} - -.outline-stone-600 { - outline-color: #57534e; -} - -.outline-stone-700 { - outline-color: #44403c; -} - -.outline-stone-800 { - outline-color: #292524; -} - -.outline-stone-900 { - outline-color: #1c1917; -} - -.outline-teal-100 { - outline-color: #ccfbf1; -} - -.outline-teal-200 { - outline-color: #99f6e4; -} - -.outline-teal-300 { - outline-color: #5eead4; -} - -.outline-teal-400 { - outline-color: #2dd4bf; -} - -.outline-teal-50 { - outline-color: #f0fdfa; -} - -.outline-teal-500 { - outline-color: #14b8a6; -} - -.outline-teal-600 { - outline-color: #0d9488; -} - -.outline-teal-700 { - outline-color: #0f766e; -} - -.outline-teal-800 { - outline-color: #115e59; -} - -.outline-teal-900 { - outline-color: #134e4a; -} - -.outline-transparent { - outline-color: transparent; -} - -.outline-violet-100 { - outline-color: #ede9fe; -} - -.outline-violet-200 { - outline-color: #ddd6fe; -} - -.outline-violet-300 { - outline-color: #c4b5fd; -} - -.outline-violet-400 { - outline-color: #a78bfa; -} - -.outline-violet-50 { - outline-color: #f5f3ff; -} - -.outline-violet-500 { - outline-color: #8b5cf6; -} - -.outline-violet-600 { - outline-color: #7c3aed; -} - -.outline-violet-700 { - outline-color: #6d28d9; -} - -.outline-violet-800 { - outline-color: #5b21b6; -} - -.outline-violet-900 { - outline-color: #4c1d95; -} - -.outline-white { - outline-color: #fff; -} - -.outline-yellow-100 { - outline-color: #fef9c3; -} - -.outline-yellow-200 { - outline-color: #fef08a; -} - -.outline-yellow-300 { - outline-color: #fde047; -} - -.outline-yellow-400 { - outline-color: #facc15; -} - -.outline-yellow-50 { - outline-color: #fefce8; -} - -.outline-yellow-500 { - outline-color: #eab308; -} - -.outline-yellow-600 { - outline-color: #ca8a04; -} - -.outline-yellow-700 { - outline-color: #a16207; -} - -.outline-yellow-800 { - outline-color: #854d0e; -} - -.outline-yellow-900 { - outline-color: #713f12; -} - -.outline-zinc-100 { - outline-color: #f4f4f5; -} - -.outline-zinc-200 { - outline-color: #e4e4e7; -} - -.outline-zinc-300 { - outline-color: #d4d4d8; -} - -.outline-zinc-400 { - outline-color: #a1a1aa; -} - -.outline-zinc-50 { - outline-color: #fafafa; -} - -.outline-zinc-500 { - outline-color: #71717a; -} - -.outline-zinc-600 { - outline-color: #52525b; -} - -.outline-zinc-700 { - outline-color: #3f3f46; -} - -.outline-zinc-800 { - outline-color: #27272a; -} - -.outline-zinc-900 { - outline-color: #18181b; -} - -.ring { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); -} - -.ring-1 { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); -} - -.ring-2 { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); -} - -.ring-amber-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 243 199 / var(--tw-ring-opacity)); -} - -.ring-amber-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity)); -} - -.ring-amber-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity)); -} - -.ring-amber-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 191 36 / var(--tw-ring-opacity)); -} - -.ring-amber-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 251 235 / var(--tw-ring-opacity)); -} - -.ring-amber-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity)); -} - -.ring-amber-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(217 119 6 / var(--tw-ring-opacity)); -} - -.ring-amber-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(180 83 9 / var(--tw-ring-opacity)); -} - -.ring-amber-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(146 64 14 / var(--tw-ring-opacity)); -} - -.ring-amber-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(120 53 15 / var(--tw-ring-opacity)); -} - -.ring-black { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity)); -} - -.ring-blue-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(219 234 254 / var(--tw-ring-opacity)); -} - -.ring-blue-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity)); -} - -.ring-blue-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity)); -} - -.ring-blue-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity)); -} - -.ring-blue-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(239 246 255 / var(--tw-ring-opacity)); -} - -.ring-blue-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity)); -} - -.ring-blue-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity)); -} - -.ring-blue-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(29 78 216 / var(--tw-ring-opacity)); -} - -.ring-blue-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(30 64 175 / var(--tw-ring-opacity)); -} - -.ring-blue-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(30 58 138 / var(--tw-ring-opacity)); -} - -.ring-cyan-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(207 250 254 / var(--tw-ring-opacity)); -} - -.ring-cyan-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(165 243 252 / var(--tw-ring-opacity)); -} - -.ring-cyan-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity)); -} - -.ring-cyan-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(34 211 238 / var(--tw-ring-opacity)); -} - -.ring-cyan-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(236 254 255 / var(--tw-ring-opacity)); -} - -.ring-cyan-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity)); -} - -.ring-cyan-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(8 145 178 / var(--tw-ring-opacity)); -} - -.ring-cyan-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(14 116 144 / var(--tw-ring-opacity)); -} - -.ring-cyan-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity)); -} - -.ring-cyan-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 78 99 / var(--tw-ring-opacity)); -} - -.ring-emerald-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(209 250 229 / var(--tw-ring-opacity)); -} - -.ring-emerald-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity)); -} - -.ring-emerald-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity)); -} - -.ring-emerald-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(52 211 153 / var(--tw-ring-opacity)); -} - -.ring-emerald-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(236 253 245 / var(--tw-ring-opacity)); -} - -.ring-emerald-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity)); -} - -.ring-emerald-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(5 150 105 / var(--tw-ring-opacity)); -} - -.ring-emerald-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(4 120 87 / var(--tw-ring-opacity)); -} - -.ring-emerald-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(6 95 70 / var(--tw-ring-opacity)); -} - -.ring-emerald-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(6 78 59 / var(--tw-ring-opacity)); -} - -.ring-fuchsia-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 232 255 / var(--tw-ring-opacity)); -} - -.ring-fuchsia-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 208 254 / var(--tw-ring-opacity)); -} - -.ring-fuchsia-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(240 171 252 / var(--tw-ring-opacity)); -} - -.ring-fuchsia-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(232 121 249 / var(--tw-ring-opacity)); -} - -.ring-fuchsia-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 244 255 / var(--tw-ring-opacity)); -} - -.ring-fuchsia-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(217 70 239 / var(--tw-ring-opacity)); -} - -.ring-fuchsia-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(192 38 211 / var(--tw-ring-opacity)); -} - -.ring-fuchsia-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(162 28 175 / var(--tw-ring-opacity)); -} - -.ring-fuchsia-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(134 25 143 / var(--tw-ring-opacity)); -} - -.ring-fuchsia-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(112 26 117 / var(--tw-ring-opacity)); -} - -.ring-gray-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(243 244 246 / var(--tw-ring-opacity)); -} - -.ring-gray-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity)); -} - -.ring-gray-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity)); -} - -.ring-gray-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity)); -} - -.ring-gray-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(249 250 251 / var(--tw-ring-opacity)); -} - -.ring-gray-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity)); -} - -.ring-gray-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity)); -} - -.ring-gray-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity)); -} - -.ring-gray-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity)); -} - -.ring-gray-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity)); -} - -.ring-green-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(220 252 231 / var(--tw-ring-opacity)); -} - -.ring-green-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(187 247 208 / var(--tw-ring-opacity)); -} - -.ring-green-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(134 239 172 / var(--tw-ring-opacity)); -} - -.ring-green-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(74 222 128 / var(--tw-ring-opacity)); -} - -.ring-green-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(240 253 244 / var(--tw-ring-opacity)); -} - -.ring-green-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity)); -} - -.ring-green-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 163 74 / var(--tw-ring-opacity)); -} - -.ring-green-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(21 128 61 / var(--tw-ring-opacity)); -} - -.ring-green-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 101 52 / var(--tw-ring-opacity)); -} - -.ring-green-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(20 83 45 / var(--tw-ring-opacity)); -} - -.ring-indigo-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(224 231 255 / var(--tw-ring-opacity)); -} - -.ring-indigo-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(199 210 254 / var(--tw-ring-opacity)); -} - -.ring-indigo-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity)); -} - -.ring-indigo-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(129 140 248 / var(--tw-ring-opacity)); -} - -.ring-indigo-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(238 242 255 / var(--tw-ring-opacity)); -} - -.ring-indigo-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity)); -} - -.ring-indigo-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity)); -} - -.ring-indigo-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(67 56 202 / var(--tw-ring-opacity)); -} - -.ring-indigo-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(55 48 163 / var(--tw-ring-opacity)); -} - -.ring-indigo-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(49 46 129 / var(--tw-ring-opacity)); -} - -.ring-lime-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(236 252 203 / var(--tw-ring-opacity)); -} - -.ring-lime-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(217 249 157 / var(--tw-ring-opacity)); -} - -.ring-lime-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(190 242 100 / var(--tw-ring-opacity)); -} - -.ring-lime-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(163 230 53 / var(--tw-ring-opacity)); -} - -.ring-lime-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(247 254 231 / var(--tw-ring-opacity)); -} - -.ring-lime-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(132 204 22 / var(--tw-ring-opacity)); -} - -.ring-lime-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(101 163 13 / var(--tw-ring-opacity)); -} - -.ring-lime-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(77 124 15 / var(--tw-ring-opacity)); -} - -.ring-lime-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(63 98 18 / var(--tw-ring-opacity)); -} - -.ring-lime-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(54 83 20 / var(--tw-ring-opacity)); -} - -.ring-neutral-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 245 245 / var(--tw-ring-opacity)); -} - -.ring-neutral-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(229 229 229 / var(--tw-ring-opacity)); -} - -.ring-neutral-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(212 212 212 / var(--tw-ring-opacity)); -} - -.ring-neutral-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(163 163 163 / var(--tw-ring-opacity)); -} - -.ring-neutral-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 250 250 / var(--tw-ring-opacity)); -} - -.ring-neutral-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(115 115 115 / var(--tw-ring-opacity)); -} - -.ring-neutral-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(82 82 82 / var(--tw-ring-opacity)); -} - -.ring-neutral-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(64 64 64 / var(--tw-ring-opacity)); -} - -.ring-neutral-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(38 38 38 / var(--tw-ring-opacity)); -} - -.ring-neutral-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(23 23 23 / var(--tw-ring-opacity)); -} - -.ring-orange-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 237 213 / var(--tw-ring-opacity)); -} - -.ring-orange-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 215 170 / var(--tw-ring-opacity)); -} - -.ring-orange-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 186 116 / var(--tw-ring-opacity)); -} - -.ring-orange-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 146 60 / var(--tw-ring-opacity)); -} - -.ring-orange-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 247 237 / var(--tw-ring-opacity)); -} - -.ring-orange-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity)); -} - -.ring-orange-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(234 88 12 / var(--tw-ring-opacity)); -} - -.ring-orange-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(194 65 12 / var(--tw-ring-opacity)); -} - -.ring-orange-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(154 52 18 / var(--tw-ring-opacity)); -} - -.ring-orange-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(124 45 18 / var(--tw-ring-opacity)); -} - -.ring-pink-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(252 231 243 / var(--tw-ring-opacity)); -} - -.ring-pink-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 207 232 / var(--tw-ring-opacity)); -} - -.ring-pink-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(249 168 212 / var(--tw-ring-opacity)); -} - -.ring-pink-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(244 114 182 / var(--tw-ring-opacity)); -} - -.ring-pink-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 242 248 / var(--tw-ring-opacity)); -} - -.ring-pink-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(236 72 153 / var(--tw-ring-opacity)); -} - -.ring-pink-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(219 39 119 / var(--tw-ring-opacity)); -} - -.ring-pink-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(190 24 93 / var(--tw-ring-opacity)); -} - -.ring-pink-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(131 24 67 / var(--tw-ring-opacity)); -} - -.ring-purple-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(243 232 255 / var(--tw-ring-opacity)); -} - -.ring-purple-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(233 213 255 / var(--tw-ring-opacity)); -} - -.ring-purple-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(216 180 254 / var(--tw-ring-opacity)); -} - -.ring-purple-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(192 132 252 / var(--tw-ring-opacity)); -} - -.ring-purple-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 245 255 / var(--tw-ring-opacity)); -} - -.ring-purple-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity)); -} - -.ring-purple-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(147 51 234 / var(--tw-ring-opacity)); -} - -.ring-purple-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(126 34 206 / var(--tw-ring-opacity)); -} - -.ring-purple-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(107 33 168 / var(--tw-ring-opacity)); -} - -.ring-purple-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(88 28 135 / var(--tw-ring-opacity)); -} - -.ring-red-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 226 226 / var(--tw-ring-opacity)); -} - -.ring-red-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity)); -} - -.ring-red-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity)); -} - -.ring-red-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity)); -} - -.ring-red-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 242 242 / var(--tw-ring-opacity)); -} - -.ring-red-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity)); -} - -.ring-red-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(220 38 38 / var(--tw-ring-opacity)); -} - -.ring-red-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(185 28 28 / var(--tw-ring-opacity)); -} - -.ring-red-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(153 27 27 / var(--tw-ring-opacity)); -} - -.ring-red-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(127 29 29 / var(--tw-ring-opacity)); -} - -.ring-rose-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 228 230 / var(--tw-ring-opacity)); -} - -.ring-rose-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 205 211 / var(--tw-ring-opacity)); -} - -.ring-rose-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 164 175 / var(--tw-ring-opacity)); -} - -.ring-rose-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 113 133 / var(--tw-ring-opacity)); -} - -.ring-rose-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 241 242 / var(--tw-ring-opacity)); -} - -.ring-rose-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(244 63 94 / var(--tw-ring-opacity)); -} - -.ring-rose-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(225 29 72 / var(--tw-ring-opacity)); -} - -.ring-rose-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(190 18 60 / var(--tw-ring-opacity)); -} - -.ring-rose-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(159 18 57 / var(--tw-ring-opacity)); -} - -.ring-rose-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(136 19 55 / var(--tw-ring-opacity)); -} - -.ring-sky-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(224 242 254 / var(--tw-ring-opacity)); -} - -.ring-sky-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(186 230 253 / var(--tw-ring-opacity)); -} - -.ring-sky-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(125 211 252 / var(--tw-ring-opacity)); -} - -.ring-sky-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(56 189 248 / var(--tw-ring-opacity)); -} - -.ring-sky-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(240 249 255 / var(--tw-ring-opacity)); -} - -.ring-sky-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity)); -} - -.ring-sky-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(2 132 199 / var(--tw-ring-opacity)); -} - -.ring-sky-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(3 105 161 / var(--tw-ring-opacity)); -} - -.ring-sky-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(7 89 133 / var(--tw-ring-opacity)); -} - -.ring-sky-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(12 74 110 / var(--tw-ring-opacity)); -} - -.ring-slate-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(241 245 249 / var(--tw-ring-opacity)); -} - -.ring-slate-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity)); -} - -.ring-slate-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(203 213 225 / var(--tw-ring-opacity)); -} - -.ring-slate-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(148 163 184 / var(--tw-ring-opacity)); -} - -.ring-slate-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(248 250 252 / var(--tw-ring-opacity)); -} - -.ring-slate-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(100 116 139 / var(--tw-ring-opacity)); -} - -.ring-slate-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(71 85 105 / var(--tw-ring-opacity)); -} - -.ring-slate-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(51 65 85 / var(--tw-ring-opacity)); -} - -.ring-slate-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(30 41 59 / var(--tw-ring-opacity)); -} - -.ring-slate-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(15 23 42 / var(--tw-ring-opacity)); -} - -.ring-stone-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 245 244 / var(--tw-ring-opacity)); -} - -.ring-stone-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(231 229 228 / var(--tw-ring-opacity)); -} - -.ring-stone-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(214 211 209 / var(--tw-ring-opacity)); -} - -.ring-stone-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(168 162 158 / var(--tw-ring-opacity)); -} - -.ring-stone-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 250 249 / var(--tw-ring-opacity)); -} - -.ring-stone-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(120 113 108 / var(--tw-ring-opacity)); -} - -.ring-stone-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(87 83 78 / var(--tw-ring-opacity)); -} - -.ring-stone-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(68 64 60 / var(--tw-ring-opacity)); -} - -.ring-stone-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(41 37 36 / var(--tw-ring-opacity)); -} - -.ring-stone-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(28 25 23 / var(--tw-ring-opacity)); -} - -.ring-teal-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(204 251 241 / var(--tw-ring-opacity)); -} - -.ring-teal-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(153 246 228 / var(--tw-ring-opacity)); -} - -.ring-teal-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(94 234 212 / var(--tw-ring-opacity)); -} - -.ring-teal-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(45 212 191 / var(--tw-ring-opacity)); -} - -.ring-teal-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(240 253 250 / var(--tw-ring-opacity)); -} - -.ring-teal-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(20 184 166 / var(--tw-ring-opacity)); -} - -.ring-teal-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(13 148 136 / var(--tw-ring-opacity)); -} - -.ring-teal-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(15 118 110 / var(--tw-ring-opacity)); -} - -.ring-teal-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(17 94 89 / var(--tw-ring-opacity)); -} - -.ring-teal-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(19 78 74 / var(--tw-ring-opacity)); -} - -.ring-transparent { - --tw-ring-color: transparent; -} - -.ring-violet-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(237 233 254 / var(--tw-ring-opacity)); -} - -.ring-violet-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(221 214 254 / var(--tw-ring-opacity)); -} - -.ring-violet-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity)); -} - -.ring-violet-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(167 139 250 / var(--tw-ring-opacity)); -} - -.ring-violet-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 243 255 / var(--tw-ring-opacity)); -} - -.ring-violet-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(139 92 246 / var(--tw-ring-opacity)); -} - -.ring-violet-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(124 58 237 / var(--tw-ring-opacity)); -} - -.ring-violet-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(109 40 217 / var(--tw-ring-opacity)); -} - -.ring-violet-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(91 33 182 / var(--tw-ring-opacity)); -} - -.ring-violet-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(76 29 149 / var(--tw-ring-opacity)); -} - -.ring-white { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity)); -} - -.ring-yellow-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 249 195 / var(--tw-ring-opacity)); -} - -.ring-yellow-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 240 138 / var(--tw-ring-opacity)); -} - -.ring-yellow-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 224 71 / var(--tw-ring-opacity)); -} - -.ring-yellow-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 204 21 / var(--tw-ring-opacity)); -} - -.ring-yellow-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 252 232 / var(--tw-ring-opacity)); -} - -.ring-yellow-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(234 179 8 / var(--tw-ring-opacity)); -} - -.ring-yellow-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(202 138 4 / var(--tw-ring-opacity)); -} - -.ring-yellow-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(161 98 7 / var(--tw-ring-opacity)); -} - -.ring-yellow-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(133 77 14 / var(--tw-ring-opacity)); -} - -.ring-yellow-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(113 63 18 / var(--tw-ring-opacity)); -} - -.ring-zinc-100 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(244 244 245 / var(--tw-ring-opacity)); -} - -.ring-zinc-200 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(228 228 231 / var(--tw-ring-opacity)); -} - -.ring-zinc-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(212 212 216 / var(--tw-ring-opacity)); -} - -.ring-zinc-400 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(161 161 170 / var(--tw-ring-opacity)); -} - -.ring-zinc-50 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 250 250 / var(--tw-ring-opacity)); -} - -.ring-zinc-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(113 113 122 / var(--tw-ring-opacity)); -} - -.ring-zinc-600 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(82 82 91 / var(--tw-ring-opacity)); -} - -.ring-zinc-700 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(63 63 70 / var(--tw-ring-opacity)); -} - -.ring-zinc-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(39 39 42 / var(--tw-ring-opacity)); -} - -.ring-zinc-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(24 24 27 / var(--tw-ring-opacity)); -} - -.blur { - --tw-blur: blur(8px); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.filter { - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.transition { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.transition-all { - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.placeholder\:text-gray-400::-moz-placeholder { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); -} - -.placeholder\:text-gray-400::placeholder { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); -} - -.placeholder\:text-gray-500::-moz-placeholder { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); -} - -.placeholder\:text-gray-500::placeholder { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); -} - -.visited\:text-blue-500:visited { - color: rgb(59 130 246 ); -} - -.hover\:border-b-2:hover { - border-bottom-width: 2px; -} - -.hover\:border-amber-100:hover { - --tw-border-opacity: 1; - border-color: rgb(254 243 199 / var(--tw-border-opacity)); -} - -.hover\:border-amber-200:hover { - --tw-border-opacity: 1; - border-color: rgb(253 230 138 / var(--tw-border-opacity)); -} - -.hover\:border-amber-300:hover { - --tw-border-opacity: 1; - border-color: rgb(252 211 77 / var(--tw-border-opacity)); -} - -.hover\:border-amber-400:hover { - --tw-border-opacity: 1; - border-color: rgb(251 191 36 / var(--tw-border-opacity)); -} - -.hover\:border-amber-50:hover { - --tw-border-opacity: 1; - border-color: rgb(255 251 235 / var(--tw-border-opacity)); -} - -.hover\:border-amber-500:hover { - --tw-border-opacity: 1; - border-color: rgb(245 158 11 / var(--tw-border-opacity)); -} - -.hover\:border-amber-600:hover { - --tw-border-opacity: 1; - border-color: rgb(217 119 6 / var(--tw-border-opacity)); -} - -.hover\:border-amber-700:hover { - --tw-border-opacity: 1; - border-color: rgb(180 83 9 / var(--tw-border-opacity)); -} - -.hover\:border-amber-800:hover { - --tw-border-opacity: 1; - border-color: rgb(146 64 14 / var(--tw-border-opacity)); -} - -.hover\:border-amber-900:hover { - --tw-border-opacity: 1; - border-color: rgb(120 53 15 / var(--tw-border-opacity)); -} - -.hover\:border-black:hover { - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); -} - -.hover\:border-blue-100:hover { - --tw-border-opacity: 1; - border-color: rgb(219 234 254 / var(--tw-border-opacity)); -} - -.hover\:border-blue-200:hover { - --tw-border-opacity: 1; - border-color: rgb(191 219 254 / var(--tw-border-opacity)); -} - -.hover\:border-blue-300:hover { - --tw-border-opacity: 1; - border-color: rgb(147 197 253 / var(--tw-border-opacity)); -} - -.hover\:border-blue-400:hover { - --tw-border-opacity: 1; - border-color: rgb(96 165 250 / var(--tw-border-opacity)); -} - -.hover\:border-blue-50:hover { - --tw-border-opacity: 1; - border-color: rgb(239 246 255 / var(--tw-border-opacity)); -} - -.hover\:border-blue-500:hover { - --tw-border-opacity: 1; - border-color: rgb(59 130 246 / var(--tw-border-opacity)); -} - -.hover\:border-blue-600:hover { - --tw-border-opacity: 1; - border-color: rgb(37 99 235 / var(--tw-border-opacity)); -} - -.hover\:border-blue-700:hover { - --tw-border-opacity: 1; - border-color: rgb(29 78 216 / var(--tw-border-opacity)); -} - -.hover\:border-blue-800:hover { - --tw-border-opacity: 1; - border-color: rgb(30 64 175 / var(--tw-border-opacity)); -} - -.hover\:border-blue-900:hover { - --tw-border-opacity: 1; - border-color: rgb(30 58 138 / var(--tw-border-opacity)); -} - -.hover\:border-cyan-100:hover { - --tw-border-opacity: 1; - border-color: rgb(207 250 254 / var(--tw-border-opacity)); -} - -.hover\:border-cyan-200:hover { - --tw-border-opacity: 1; - border-color: rgb(165 243 252 / var(--tw-border-opacity)); -} - -.hover\:border-cyan-300:hover { - --tw-border-opacity: 1; - border-color: rgb(103 232 249 / var(--tw-border-opacity)); -} - -.hover\:border-cyan-400:hover { - --tw-border-opacity: 1; - border-color: rgb(34 211 238 / var(--tw-border-opacity)); -} - -.hover\:border-cyan-50:hover { - --tw-border-opacity: 1; - border-color: rgb(236 254 255 / var(--tw-border-opacity)); -} - -.hover\:border-cyan-500:hover { - --tw-border-opacity: 1; - border-color: rgb(6 182 212 / var(--tw-border-opacity)); -} - -.hover\:border-cyan-600:hover { - --tw-border-opacity: 1; - border-color: rgb(8 145 178 / var(--tw-border-opacity)); -} - -.hover\:border-cyan-700:hover { - --tw-border-opacity: 1; - border-color: rgb(14 116 144 / var(--tw-border-opacity)); -} - -.hover\:border-cyan-800:hover { - --tw-border-opacity: 1; - border-color: rgb(21 94 117 / var(--tw-border-opacity)); -} - -.hover\:border-cyan-900:hover { - --tw-border-opacity: 1; - border-color: rgb(22 78 99 / var(--tw-border-opacity)); -} - -.hover\:border-emerald-100:hover { - --tw-border-opacity: 1; - border-color: rgb(209 250 229 / var(--tw-border-opacity)); -} - -.hover\:border-emerald-200:hover { - --tw-border-opacity: 1; - border-color: rgb(167 243 208 / var(--tw-border-opacity)); -} - -.hover\:border-emerald-300:hover { - --tw-border-opacity: 1; - border-color: rgb(110 231 183 / var(--tw-border-opacity)); -} - -.hover\:border-emerald-400:hover { - --tw-border-opacity: 1; - border-color: rgb(52 211 153 / var(--tw-border-opacity)); -} - -.hover\:border-emerald-50:hover { - --tw-border-opacity: 1; - border-color: rgb(236 253 245 / var(--tw-border-opacity)); -} - -.hover\:border-emerald-500:hover { - --tw-border-opacity: 1; - border-color: rgb(16 185 129 / var(--tw-border-opacity)); -} - -.hover\:border-emerald-600:hover { - --tw-border-opacity: 1; - border-color: rgb(5 150 105 / var(--tw-border-opacity)); -} - -.hover\:border-emerald-700:hover { - --tw-border-opacity: 1; - border-color: rgb(4 120 87 / var(--tw-border-opacity)); -} - -.hover\:border-emerald-800:hover { - --tw-border-opacity: 1; - border-color: rgb(6 95 70 / var(--tw-border-opacity)); -} - -.hover\:border-emerald-900:hover { - --tw-border-opacity: 1; - border-color: rgb(6 78 59 / var(--tw-border-opacity)); -} - -.hover\:border-fuchsia-100:hover { - --tw-border-opacity: 1; - border-color: rgb(250 232 255 / var(--tw-border-opacity)); -} - -.hover\:border-fuchsia-200:hover { - --tw-border-opacity: 1; - border-color: rgb(245 208 254 / var(--tw-border-opacity)); -} - -.hover\:border-fuchsia-300:hover { - --tw-border-opacity: 1; - border-color: rgb(240 171 252 / var(--tw-border-opacity)); -} - -.hover\:border-fuchsia-400:hover { - --tw-border-opacity: 1; - border-color: rgb(232 121 249 / var(--tw-border-opacity)); -} - -.hover\:border-fuchsia-50:hover { - --tw-border-opacity: 1; - border-color: rgb(253 244 255 / var(--tw-border-opacity)); -} - -.hover\:border-fuchsia-500:hover { - --tw-border-opacity: 1; - border-color: rgb(217 70 239 / var(--tw-border-opacity)); -} - -.hover\:border-fuchsia-600:hover { - --tw-border-opacity: 1; - border-color: rgb(192 38 211 / var(--tw-border-opacity)); -} - -.hover\:border-fuchsia-700:hover { - --tw-border-opacity: 1; - border-color: rgb(162 28 175 / var(--tw-border-opacity)); -} - -.hover\:border-fuchsia-800:hover { - --tw-border-opacity: 1; - border-color: rgb(134 25 143 / var(--tw-border-opacity)); -} - -.hover\:border-fuchsia-900:hover { - --tw-border-opacity: 1; - border-color: rgb(112 26 117 / var(--tw-border-opacity)); -} - -.hover\:border-gray-100:hover { - --tw-border-opacity: 1; - border-color: rgb(243 244 246 / var(--tw-border-opacity)); -} - -.hover\:border-gray-200:hover { - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity)); -} - -.hover\:border-gray-300:hover { - --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity)); -} - -.hover\:border-gray-400:hover { - --tw-border-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-border-opacity)); -} - -.hover\:border-gray-50:hover { - --tw-border-opacity: 1; - border-color: rgb(249 250 251 / var(--tw-border-opacity)); -} - -.hover\:border-gray-500:hover { - --tw-border-opacity: 1; - border-color: rgb(107 114 128 / var(--tw-border-opacity)); -} - -.hover\:border-gray-600:hover { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity)); -} - -.hover\:border-gray-700:hover { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity)); -} - -.hover\:border-gray-800:hover { - --tw-border-opacity: 1; - border-color: rgb(31 41 55 / var(--tw-border-opacity)); -} - -.hover\:border-gray-900:hover { - --tw-border-opacity: 1; - border-color: rgb(17 24 39 / var(--tw-border-opacity)); -} - -.hover\:border-green-100:hover { - --tw-border-opacity: 1; - border-color: rgb(220 252 231 / var(--tw-border-opacity)); -} - -.hover\:border-green-200:hover { - --tw-border-opacity: 1; - border-color: rgb(187 247 208 / var(--tw-border-opacity)); -} - -.hover\:border-green-300:hover { - --tw-border-opacity: 1; - border-color: rgb(134 239 172 / var(--tw-border-opacity)); -} - -.hover\:border-green-400:hover { - --tw-border-opacity: 1; - border-color: rgb(74 222 128 / var(--tw-border-opacity)); -} - -.hover\:border-green-50:hover { - --tw-border-opacity: 1; - border-color: rgb(240 253 244 / var(--tw-border-opacity)); -} - -.hover\:border-green-500:hover { - --tw-border-opacity: 1; - border-color: rgb(34 197 94 / var(--tw-border-opacity)); -} - -.hover\:border-green-600:hover { - --tw-border-opacity: 1; - border-color: rgb(22 163 74 / var(--tw-border-opacity)); -} - -.hover\:border-green-700:hover { - --tw-border-opacity: 1; - border-color: rgb(21 128 61 / var(--tw-border-opacity)); -} - -.hover\:border-green-800:hover { - --tw-border-opacity: 1; - border-color: rgb(22 101 52 / var(--tw-border-opacity)); -} - -.hover\:border-green-900:hover { - --tw-border-opacity: 1; - border-color: rgb(20 83 45 / var(--tw-border-opacity)); -} - -.hover\:border-indigo-100:hover { - --tw-border-opacity: 1; - border-color: rgb(224 231 255 / var(--tw-border-opacity)); -} - -.hover\:border-indigo-200:hover { - --tw-border-opacity: 1; - border-color: rgb(199 210 254 / var(--tw-border-opacity)); -} - -.hover\:border-indigo-300:hover { - --tw-border-opacity: 1; - border-color: rgb(165 180 252 / var(--tw-border-opacity)); -} - -.hover\:border-indigo-400:hover { - --tw-border-opacity: 1; - border-color: rgb(129 140 248 / var(--tw-border-opacity)); -} - -.hover\:border-indigo-50:hover { - --tw-border-opacity: 1; - border-color: rgb(238 242 255 / var(--tw-border-opacity)); -} - -.hover\:border-indigo-500:hover { - --tw-border-opacity: 1; - border-color: rgb(99 102 241 / var(--tw-border-opacity)); -} - -.hover\:border-indigo-600:hover { - --tw-border-opacity: 1; - border-color: rgb(79 70 229 / var(--tw-border-opacity)); -} - -.hover\:border-indigo-700:hover { - --tw-border-opacity: 1; - border-color: rgb(67 56 202 / var(--tw-border-opacity)); -} - -.hover\:border-indigo-800:hover { - --tw-border-opacity: 1; - border-color: rgb(55 48 163 / var(--tw-border-opacity)); -} - -.hover\:border-indigo-900:hover { - --tw-border-opacity: 1; - border-color: rgb(49 46 129 / var(--tw-border-opacity)); -} - -.hover\:border-lime-100:hover { - --tw-border-opacity: 1; - border-color: rgb(236 252 203 / var(--tw-border-opacity)); -} - -.hover\:border-lime-200:hover { - --tw-border-opacity: 1; - border-color: rgb(217 249 157 / var(--tw-border-opacity)); -} - -.hover\:border-lime-300:hover { - --tw-border-opacity: 1; - border-color: rgb(190 242 100 / var(--tw-border-opacity)); -} - -.hover\:border-lime-400:hover { - --tw-border-opacity: 1; - border-color: rgb(163 230 53 / var(--tw-border-opacity)); -} - -.hover\:border-lime-50:hover { - --tw-border-opacity: 1; - border-color: rgb(247 254 231 / var(--tw-border-opacity)); -} - -.hover\:border-lime-500:hover { - --tw-border-opacity: 1; - border-color: rgb(132 204 22 / var(--tw-border-opacity)); -} - -.hover\:border-lime-600:hover { - --tw-border-opacity: 1; - border-color: rgb(101 163 13 / var(--tw-border-opacity)); -} - -.hover\:border-lime-700:hover { - --tw-border-opacity: 1; - border-color: rgb(77 124 15 / var(--tw-border-opacity)); -} - -.hover\:border-lime-800:hover { - --tw-border-opacity: 1; - border-color: rgb(63 98 18 / var(--tw-border-opacity)); -} - -.hover\:border-lime-900:hover { - --tw-border-opacity: 1; - border-color: rgb(54 83 20 / var(--tw-border-opacity)); -} - -.hover\:border-neutral-100:hover { - --tw-border-opacity: 1; - border-color: rgb(245 245 245 / var(--tw-border-opacity)); -} - -.hover\:border-neutral-200:hover { - --tw-border-opacity: 1; - border-color: rgb(229 229 229 / var(--tw-border-opacity)); -} - -.hover\:border-neutral-300:hover { - --tw-border-opacity: 1; - border-color: rgb(212 212 212 / var(--tw-border-opacity)); -} - -.hover\:border-neutral-400:hover { - --tw-border-opacity: 1; - border-color: rgb(163 163 163 / var(--tw-border-opacity)); -} - -.hover\:border-neutral-50:hover { - --tw-border-opacity: 1; - border-color: rgb(250 250 250 / var(--tw-border-opacity)); -} - -.hover\:border-neutral-500:hover { - --tw-border-opacity: 1; - border-color: rgb(115 115 115 / var(--tw-border-opacity)); -} - -.hover\:border-neutral-600:hover { - --tw-border-opacity: 1; - border-color: rgb(82 82 82 / var(--tw-border-opacity)); -} - -.hover\:border-neutral-700:hover { - --tw-border-opacity: 1; - border-color: rgb(64 64 64 / var(--tw-border-opacity)); -} - -.hover\:border-neutral-800:hover { - --tw-border-opacity: 1; - border-color: rgb(38 38 38 / var(--tw-border-opacity)); -} - -.hover\:border-neutral-900:hover { - --tw-border-opacity: 1; - border-color: rgb(23 23 23 / var(--tw-border-opacity)); -} - -.hover\:border-orange-100:hover { - --tw-border-opacity: 1; - border-color: rgb(255 237 213 / var(--tw-border-opacity)); -} - -.hover\:border-orange-200:hover { - --tw-border-opacity: 1; - border-color: rgb(254 215 170 / var(--tw-border-opacity)); -} - -.hover\:border-orange-300:hover { - --tw-border-opacity: 1; - border-color: rgb(253 186 116 / var(--tw-border-opacity)); -} - -.hover\:border-orange-400:hover { - --tw-border-opacity: 1; - border-color: rgb(251 146 60 / var(--tw-border-opacity)); -} - -.hover\:border-orange-50:hover { - --tw-border-opacity: 1; - border-color: rgb(255 247 237 / var(--tw-border-opacity)); -} - -.hover\:border-orange-500:hover { - --tw-border-opacity: 1; - border-color: rgb(249 115 22 / var(--tw-border-opacity)); -} - -.hover\:border-orange-600:hover { - --tw-border-opacity: 1; - border-color: rgb(234 88 12 / var(--tw-border-opacity)); -} - -.hover\:border-orange-700:hover { - --tw-border-opacity: 1; - border-color: rgb(194 65 12 / var(--tw-border-opacity)); -} - -.hover\:border-orange-800:hover { - --tw-border-opacity: 1; - border-color: rgb(154 52 18 / var(--tw-border-opacity)); -} - -.hover\:border-orange-900:hover { - --tw-border-opacity: 1; - border-color: rgb(124 45 18 / var(--tw-border-opacity)); -} - -.hover\:border-pink-100:hover { - --tw-border-opacity: 1; - border-color: rgb(252 231 243 / var(--tw-border-opacity)); -} - -.hover\:border-pink-200:hover { - --tw-border-opacity: 1; - border-color: rgb(251 207 232 / var(--tw-border-opacity)); -} - -.hover\:border-pink-300:hover { - --tw-border-opacity: 1; - border-color: rgb(249 168 212 / var(--tw-border-opacity)); -} - -.hover\:border-pink-400:hover { - --tw-border-opacity: 1; - border-color: rgb(244 114 182 / var(--tw-border-opacity)); -} - -.hover\:border-pink-50:hover { - --tw-border-opacity: 1; - border-color: rgb(253 242 248 / var(--tw-border-opacity)); -} - -.hover\:border-pink-500:hover { - --tw-border-opacity: 1; - border-color: rgb(236 72 153 / var(--tw-border-opacity)); -} - -.hover\:border-pink-600:hover { - --tw-border-opacity: 1; - border-color: rgb(219 39 119 / var(--tw-border-opacity)); -} - -.hover\:border-pink-700:hover { - --tw-border-opacity: 1; - border-color: rgb(190 24 93 / var(--tw-border-opacity)); -} - -.hover\:border-pink-900:hover { - --tw-border-opacity: 1; - border-color: rgb(131 24 67 / var(--tw-border-opacity)); -} - -.hover\:border-purple-100:hover { - --tw-border-opacity: 1; - border-color: rgb(243 232 255 / var(--tw-border-opacity)); -} - -.hover\:border-purple-200:hover { - --tw-border-opacity: 1; - border-color: rgb(233 213 255 / var(--tw-border-opacity)); -} - -.hover\:border-purple-300:hover { - --tw-border-opacity: 1; - border-color: rgb(216 180 254 / var(--tw-border-opacity)); -} - -.hover\:border-purple-400:hover { - --tw-border-opacity: 1; - border-color: rgb(192 132 252 / var(--tw-border-opacity)); -} - -.hover\:border-purple-50:hover { - --tw-border-opacity: 1; - border-color: rgb(250 245 255 / var(--tw-border-opacity)); -} - -.hover\:border-purple-500:hover { - --tw-border-opacity: 1; - border-color: rgb(168 85 247 / var(--tw-border-opacity)); -} - -.hover\:border-purple-600:hover { - --tw-border-opacity: 1; - border-color: rgb(147 51 234 / var(--tw-border-opacity)); -} - -.hover\:border-purple-700:hover { - --tw-border-opacity: 1; - border-color: rgb(126 34 206 / var(--tw-border-opacity)); -} - -.hover\:border-purple-800:hover { - --tw-border-opacity: 1; - border-color: rgb(107 33 168 / var(--tw-border-opacity)); -} - -.hover\:border-purple-900:hover { - --tw-border-opacity: 1; - border-color: rgb(88 28 135 / var(--tw-border-opacity)); -} - -.hover\:border-red-100:hover { - --tw-border-opacity: 1; - border-color: rgb(254 226 226 / var(--tw-border-opacity)); -} - -.hover\:border-red-200:hover { - --tw-border-opacity: 1; - border-color: rgb(254 202 202 / var(--tw-border-opacity)); -} - -.hover\:border-red-300:hover { - --tw-border-opacity: 1; - border-color: rgb(252 165 165 / var(--tw-border-opacity)); -} - -.hover\:border-red-400:hover { - --tw-border-opacity: 1; - border-color: rgb(248 113 113 / var(--tw-border-opacity)); -} - -.hover\:border-red-50:hover { - --tw-border-opacity: 1; - border-color: rgb(254 242 242 / var(--tw-border-opacity)); -} - -.hover\:border-red-500:hover { - --tw-border-opacity: 1; - border-color: rgb(239 68 68 / var(--tw-border-opacity)); -} - -.hover\:border-red-600:hover { - --tw-border-opacity: 1; - border-color: rgb(220 38 38 / var(--tw-border-opacity)); -} - -.hover\:border-red-700:hover { - --tw-border-opacity: 1; - border-color: rgb(185 28 28 / var(--tw-border-opacity)); -} - -.hover\:border-red-800:hover { - --tw-border-opacity: 1; - border-color: rgb(153 27 27 / var(--tw-border-opacity)); -} - -.hover\:border-red-900:hover { - --tw-border-opacity: 1; - border-color: rgb(127 29 29 / var(--tw-border-opacity)); -} - -.hover\:border-rose-100:hover { - --tw-border-opacity: 1; - border-color: rgb(255 228 230 / var(--tw-border-opacity)); -} - -.hover\:border-rose-200:hover { - --tw-border-opacity: 1; - border-color: rgb(254 205 211 / var(--tw-border-opacity)); -} - -.hover\:border-rose-300:hover { - --tw-border-opacity: 1; - border-color: rgb(253 164 175 / var(--tw-border-opacity)); -} - -.hover\:border-rose-400:hover { - --tw-border-opacity: 1; - border-color: rgb(251 113 133 / var(--tw-border-opacity)); -} - -.hover\:border-rose-50:hover { - --tw-border-opacity: 1; - border-color: rgb(255 241 242 / var(--tw-border-opacity)); -} - -.hover\:border-rose-500:hover { - --tw-border-opacity: 1; - border-color: rgb(244 63 94 / var(--tw-border-opacity)); -} - -.hover\:border-rose-600:hover { - --tw-border-opacity: 1; - border-color: rgb(225 29 72 / var(--tw-border-opacity)); -} - -.hover\:border-rose-700:hover { - --tw-border-opacity: 1; - border-color: rgb(190 18 60 / var(--tw-border-opacity)); -} - -.hover\:border-rose-800:hover { - --tw-border-opacity: 1; - border-color: rgb(159 18 57 / var(--tw-border-opacity)); -} - -.hover\:border-rose-900:hover { - --tw-border-opacity: 1; - border-color: rgb(136 19 55 / var(--tw-border-opacity)); -} - -.hover\:border-sky-100:hover { - --tw-border-opacity: 1; - border-color: rgb(224 242 254 / var(--tw-border-opacity)); -} - -.hover\:border-sky-200:hover { - --tw-border-opacity: 1; - border-color: rgb(186 230 253 / var(--tw-border-opacity)); -} - -.hover\:border-sky-300:hover { - --tw-border-opacity: 1; - border-color: rgb(125 211 252 / var(--tw-border-opacity)); -} - -.hover\:border-sky-400:hover { - --tw-border-opacity: 1; - border-color: rgb(56 189 248 / var(--tw-border-opacity)); -} - -.hover\:border-sky-50:hover { - --tw-border-opacity: 1; - border-color: rgb(240 249 255 / var(--tw-border-opacity)); -} - -.hover\:border-sky-500:hover { - --tw-border-opacity: 1; - border-color: rgb(14 165 233 / var(--tw-border-opacity)); -} - -.hover\:border-sky-600:hover { - --tw-border-opacity: 1; - border-color: rgb(2 132 199 / var(--tw-border-opacity)); -} - -.hover\:border-sky-700:hover { - --tw-border-opacity: 1; - border-color: rgb(3 105 161 / var(--tw-border-opacity)); -} - -.hover\:border-sky-800:hover { - --tw-border-opacity: 1; - border-color: rgb(7 89 133 / var(--tw-border-opacity)); -} - -.hover\:border-sky-900:hover { - --tw-border-opacity: 1; - border-color: rgb(12 74 110 / var(--tw-border-opacity)); -} - -.hover\:border-slate-100:hover { - --tw-border-opacity: 1; - border-color: rgb(241 245 249 / var(--tw-border-opacity)); -} - -.hover\:border-slate-200:hover { - --tw-border-opacity: 1; - border-color: rgb(226 232 240 / var(--tw-border-opacity)); -} - -.hover\:border-slate-300:hover { - --tw-border-opacity: 1; - border-color: rgb(203 213 225 / var(--tw-border-opacity)); -} - -.hover\:border-slate-400:hover { - --tw-border-opacity: 1; - border-color: rgb(148 163 184 / var(--tw-border-opacity)); -} - -.hover\:border-slate-50:hover { - --tw-border-opacity: 1; - border-color: rgb(248 250 252 / var(--tw-border-opacity)); -} - -.hover\:border-slate-500:hover { - --tw-border-opacity: 1; - border-color: rgb(100 116 139 / var(--tw-border-opacity)); -} - -.hover\:border-slate-600:hover { - --tw-border-opacity: 1; - border-color: rgb(71 85 105 / var(--tw-border-opacity)); -} - -.hover\:border-slate-700:hover { - --tw-border-opacity: 1; - border-color: rgb(51 65 85 / var(--tw-border-opacity)); -} - -.hover\:border-slate-800:hover { - --tw-border-opacity: 1; - border-color: rgb(30 41 59 / var(--tw-border-opacity)); -} - -.hover\:border-slate-900:hover { - --tw-border-opacity: 1; - border-color: rgb(15 23 42 / var(--tw-border-opacity)); -} - -.hover\:border-stone-100:hover { - --tw-border-opacity: 1; - border-color: rgb(245 245 244 / var(--tw-border-opacity)); -} - -.hover\:border-stone-200:hover { - --tw-border-opacity: 1; - border-color: rgb(231 229 228 / var(--tw-border-opacity)); -} - -.hover\:border-stone-300:hover { - --tw-border-opacity: 1; - border-color: rgb(214 211 209 / var(--tw-border-opacity)); -} - -.hover\:border-stone-400:hover { - --tw-border-opacity: 1; - border-color: rgb(168 162 158 / var(--tw-border-opacity)); -} - -.hover\:border-stone-50:hover { - --tw-border-opacity: 1; - border-color: rgb(250 250 249 / var(--tw-border-opacity)); -} - -.hover\:border-stone-500:hover { - --tw-border-opacity: 1; - border-color: rgb(120 113 108 / var(--tw-border-opacity)); -} - -.hover\:border-stone-600:hover { - --tw-border-opacity: 1; - border-color: rgb(87 83 78 / var(--tw-border-opacity)); -} - -.hover\:border-stone-700:hover { - --tw-border-opacity: 1; - border-color: rgb(68 64 60 / var(--tw-border-opacity)); -} - -.hover\:border-stone-800:hover { - --tw-border-opacity: 1; - border-color: rgb(41 37 36 / var(--tw-border-opacity)); -} - -.hover\:border-stone-900:hover { - --tw-border-opacity: 1; - border-color: rgb(28 25 23 / var(--tw-border-opacity)); -} - -.hover\:border-teal-100:hover { - --tw-border-opacity: 1; - border-color: rgb(204 251 241 / var(--tw-border-opacity)); -} - -.hover\:border-teal-200:hover { - --tw-border-opacity: 1; - border-color: rgb(153 246 228 / var(--tw-border-opacity)); -} - -.hover\:border-teal-300:hover { - --tw-border-opacity: 1; - border-color: rgb(94 234 212 / var(--tw-border-opacity)); -} - -.hover\:border-teal-400:hover { - --tw-border-opacity: 1; - border-color: rgb(45 212 191 / var(--tw-border-opacity)); -} - -.hover\:border-teal-50:hover { - --tw-border-opacity: 1; - border-color: rgb(240 253 250 / var(--tw-border-opacity)); -} - -.hover\:border-teal-500:hover { - --tw-border-opacity: 1; - border-color: rgb(20 184 166 / var(--tw-border-opacity)); -} - -.hover\:border-teal-600:hover { - --tw-border-opacity: 1; - border-color: rgb(13 148 136 / var(--tw-border-opacity)); -} - -.hover\:border-teal-700:hover { - --tw-border-opacity: 1; - border-color: rgb(15 118 110 / var(--tw-border-opacity)); -} - -.hover\:border-teal-800:hover { - --tw-border-opacity: 1; - border-color: rgb(17 94 89 / var(--tw-border-opacity)); -} - -.hover\:border-teal-900:hover { - --tw-border-opacity: 1; - border-color: rgb(19 78 74 / var(--tw-border-opacity)); -} - -.hover\:border-transparent:hover { - border-color: transparent; -} - -.hover\:border-violet-100:hover { - --tw-border-opacity: 1; - border-color: rgb(237 233 254 / var(--tw-border-opacity)); -} - -.hover\:border-violet-200:hover { - --tw-border-opacity: 1; - border-color: rgb(221 214 254 / var(--tw-border-opacity)); -} - -.hover\:border-violet-300:hover { - --tw-border-opacity: 1; - border-color: rgb(196 181 253 / var(--tw-border-opacity)); -} - -.hover\:border-violet-400:hover { - --tw-border-opacity: 1; - border-color: rgb(167 139 250 / var(--tw-border-opacity)); -} - -.hover\:border-violet-50:hover { - --tw-border-opacity: 1; - border-color: rgb(245 243 255 / var(--tw-border-opacity)); -} - -.hover\:border-violet-500:hover { - --tw-border-opacity: 1; - border-color: rgb(139 92 246 / var(--tw-border-opacity)); -} - -.hover\:border-violet-600:hover { - --tw-border-opacity: 1; - border-color: rgb(124 58 237 / var(--tw-border-opacity)); -} - -.hover\:border-violet-700:hover { - --tw-border-opacity: 1; - border-color: rgb(109 40 217 / var(--tw-border-opacity)); -} - -.hover\:border-violet-800:hover { - --tw-border-opacity: 1; - border-color: rgb(91 33 182 / var(--tw-border-opacity)); -} - -.hover\:border-violet-900:hover { - --tw-border-opacity: 1; - border-color: rgb(76 29 149 / var(--tw-border-opacity)); -} - -.hover\:border-white:hover { - --tw-border-opacity: 1; - border-color: rgb(255 255 255 / var(--tw-border-opacity)); -} - -.hover\:border-yellow-100:hover { - --tw-border-opacity: 1; - border-color: rgb(254 249 195 / var(--tw-border-opacity)); -} - -.hover\:border-yellow-200:hover { - --tw-border-opacity: 1; - border-color: rgb(254 240 138 / var(--tw-border-opacity)); -} - -.hover\:border-yellow-300:hover { - --tw-border-opacity: 1; - border-color: rgb(253 224 71 / var(--tw-border-opacity)); -} - -.hover\:border-yellow-400:hover { - --tw-border-opacity: 1; - border-color: rgb(250 204 21 / var(--tw-border-opacity)); -} - -.hover\:border-yellow-50:hover { - --tw-border-opacity: 1; - border-color: rgb(254 252 232 / var(--tw-border-opacity)); -} - -.hover\:border-yellow-500:hover { - --tw-border-opacity: 1; - border-color: rgb(234 179 8 / var(--tw-border-opacity)); -} - -.hover\:border-yellow-600:hover { - --tw-border-opacity: 1; - border-color: rgb(202 138 4 / var(--tw-border-opacity)); -} - -.hover\:border-yellow-700:hover { - --tw-border-opacity: 1; - border-color: rgb(161 98 7 / var(--tw-border-opacity)); -} - -.hover\:border-yellow-800:hover { - --tw-border-opacity: 1; - border-color: rgb(133 77 14 / var(--tw-border-opacity)); -} - -.hover\:border-yellow-900:hover { - --tw-border-opacity: 1; - border-color: rgb(113 63 18 / var(--tw-border-opacity)); -} - -.hover\:border-zinc-100:hover { - --tw-border-opacity: 1; - border-color: rgb(244 244 245 / var(--tw-border-opacity)); -} - -.hover\:border-zinc-200:hover { - --tw-border-opacity: 1; - border-color: rgb(228 228 231 / var(--tw-border-opacity)); -} - -.hover\:border-zinc-300:hover { - --tw-border-opacity: 1; - border-color: rgb(212 212 216 / var(--tw-border-opacity)); -} - -.hover\:border-zinc-400:hover { - --tw-border-opacity: 1; - border-color: rgb(161 161 170 / var(--tw-border-opacity)); -} - -.hover\:border-zinc-50:hover { - --tw-border-opacity: 1; - border-color: rgb(250 250 250 / var(--tw-border-opacity)); -} - -.hover\:border-zinc-500:hover { - --tw-border-opacity: 1; - border-color: rgb(113 113 122 / var(--tw-border-opacity)); -} - -.hover\:border-zinc-600:hover { - --tw-border-opacity: 1; - border-color: rgb(82 82 91 / var(--tw-border-opacity)); -} - -.hover\:border-zinc-700:hover { - --tw-border-opacity: 1; - border-color: rgb(63 63 70 / var(--tw-border-opacity)); -} - -.hover\:border-zinc-800:hover { - --tw-border-opacity: 1; - border-color: rgb(39 39 42 / var(--tw-border-opacity)); -} - -.hover\:border-zinc-900:hover { - --tw-border-opacity: 1; - border-color: rgb(24 24 27 / var(--tw-border-opacity)); -} - -.hover\:bg-amber-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(254 243 199 / var(--tw-bg-opacity)); -} - -.hover\:bg-amber-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(253 230 138 / var(--tw-bg-opacity)); -} - -.hover\:bg-amber-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(252 211 77 / var(--tw-bg-opacity)); -} - -.hover\:bg-amber-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(251 191 36 / var(--tw-bg-opacity)); -} - -.hover\:bg-amber-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(255 251 235 / var(--tw-bg-opacity)); -} - -.hover\:bg-amber-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(245 158 11 / var(--tw-bg-opacity)); -} - -.hover\:bg-amber-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(217 119 6 / var(--tw-bg-opacity)); -} - -.hover\:bg-amber-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(180 83 9 / var(--tw-bg-opacity)); -} - -.hover\:bg-amber-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(146 64 14 / var(--tw-bg-opacity)); -} - -.hover\:bg-amber-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(120 53 15 / var(--tw-bg-opacity)); -} - -.hover\:bg-black:hover { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); -} - -.hover\:bg-blue-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(219 234 254 / var(--tw-bg-opacity)); -} - -.hover\:bg-blue-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(191 219 254 / var(--tw-bg-opacity)); -} - -.hover\:bg-blue-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(147 197 253 / var(--tw-bg-opacity)); -} - -.hover\:bg-blue-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(96 165 250 / var(--tw-bg-opacity)); -} - -.hover\:bg-blue-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(239 246 255 / var(--tw-bg-opacity)); -} - -.hover\:bg-blue-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(59 130 246 / var(--tw-bg-opacity)); -} - -.hover\:bg-blue-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(37 99 235 / var(--tw-bg-opacity)); -} - -.hover\:bg-blue-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(29 78 216 / var(--tw-bg-opacity)); -} - -.hover\:bg-blue-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(30 64 175 / var(--tw-bg-opacity)); -} - -.hover\:bg-blue-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(30 58 138 / var(--tw-bg-opacity)); -} - -.hover\:bg-cyan-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(207 250 254 / var(--tw-bg-opacity)); -} - -.hover\:bg-cyan-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(165 243 252 / var(--tw-bg-opacity)); -} - -.hover\:bg-cyan-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(103 232 249 / var(--tw-bg-opacity)); -} - -.hover\:bg-cyan-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(34 211 238 / var(--tw-bg-opacity)); -} - -.hover\:bg-cyan-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(236 254 255 / var(--tw-bg-opacity)); -} - -.hover\:bg-cyan-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(6 182 212 / var(--tw-bg-opacity)); -} - -.hover\:bg-cyan-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(8 145 178 / var(--tw-bg-opacity)); -} - -.hover\:bg-cyan-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(14 116 144 / var(--tw-bg-opacity)); -} - -.hover\:bg-cyan-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(21 94 117 / var(--tw-bg-opacity)); -} - -.hover\:bg-cyan-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(22 78 99 / var(--tw-bg-opacity)); -} - -.hover\:bg-emerald-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(209 250 229 / var(--tw-bg-opacity)); -} - -.hover\:bg-emerald-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(167 243 208 / var(--tw-bg-opacity)); -} - -.hover\:bg-emerald-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(110 231 183 / var(--tw-bg-opacity)); -} - -.hover\:bg-emerald-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(52 211 153 / var(--tw-bg-opacity)); -} - -.hover\:bg-emerald-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(236 253 245 / var(--tw-bg-opacity)); -} - -.hover\:bg-emerald-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(16 185 129 / var(--tw-bg-opacity)); -} - -.hover\:bg-emerald-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(5 150 105 / var(--tw-bg-opacity)); -} - -.hover\:bg-emerald-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(4 120 87 / var(--tw-bg-opacity)); -} - -.hover\:bg-emerald-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(6 95 70 / var(--tw-bg-opacity)); -} - -.hover\:bg-emerald-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(6 78 59 / var(--tw-bg-opacity)); -} - -.hover\:bg-fuchsia-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(250 232 255 / var(--tw-bg-opacity)); -} - -.hover\:bg-fuchsia-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(245 208 254 / var(--tw-bg-opacity)); -} - -.hover\:bg-fuchsia-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(240 171 252 / var(--tw-bg-opacity)); -} - -.hover\:bg-fuchsia-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(232 121 249 / var(--tw-bg-opacity)); -} - -.hover\:bg-fuchsia-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(253 244 255 / var(--tw-bg-opacity)); -} - -.hover\:bg-fuchsia-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(217 70 239 / var(--tw-bg-opacity)); -} - -.hover\:bg-fuchsia-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(192 38 211 / var(--tw-bg-opacity)); -} - -.hover\:bg-fuchsia-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(162 28 175 / var(--tw-bg-opacity)); -} - -.hover\:bg-fuchsia-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(134 25 143 / var(--tw-bg-opacity)); -} - -.hover\:bg-fuchsia-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(112 26 117 / var(--tw-bg-opacity)); -} - -.hover\:bg-gray-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity)); -} - -.hover\:bg-gray-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(229 231 235 / var(--tw-bg-opacity)); -} - -.hover\:bg-gray-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(209 213 219 / var(--tw-bg-opacity)); -} - -.hover\:bg-gray-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(156 163 175 / var(--tw-bg-opacity)); -} - -.hover\:bg-gray-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(249 250 251 / var(--tw-bg-opacity)); -} - -.hover\:bg-gray-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(107 114 128 / var(--tw-bg-opacity)); -} - -.hover\:bg-gray-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(75 85 99 / var(--tw-bg-opacity)); -} - -.hover\:bg-gray-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity)); -} - -.hover\:bg-gray-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); -} - -.hover\:bg-gray-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity)); -} - -.hover\:bg-green-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(220 252 231 / var(--tw-bg-opacity)); -} - -.hover\:bg-green-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(187 247 208 / var(--tw-bg-opacity)); -} - -.hover\:bg-green-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(134 239 172 / var(--tw-bg-opacity)); -} - -.hover\:bg-green-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(74 222 128 / var(--tw-bg-opacity)); -} - -.hover\:bg-green-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(240 253 244 / var(--tw-bg-opacity)); -} - -.hover\:bg-green-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(34 197 94 / var(--tw-bg-opacity)); -} - -.hover\:bg-green-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity)); -} - -.hover\:bg-green-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(21 128 61 / var(--tw-bg-opacity)); -} - -.hover\:bg-green-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(22 101 52 / var(--tw-bg-opacity)); -} - -.hover\:bg-green-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(20 83 45 / var(--tw-bg-opacity)); -} - -.hover\:bg-indigo-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(224 231 255 / var(--tw-bg-opacity)); -} - -.hover\:bg-indigo-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(199 210 254 / var(--tw-bg-opacity)); -} - -.hover\:bg-indigo-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(165 180 252 / var(--tw-bg-opacity)); -} - -.hover\:bg-indigo-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(129 140 248 / var(--tw-bg-opacity)); -} - -.hover\:bg-indigo-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(238 242 255 / var(--tw-bg-opacity)); -} - -.hover\:bg-indigo-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(99 102 241 / var(--tw-bg-opacity)); -} - -.hover\:bg-indigo-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(79 70 229 / var(--tw-bg-opacity)); -} - -.hover\:bg-indigo-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(67 56 202 / var(--tw-bg-opacity)); -} - -.hover\:bg-indigo-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(55 48 163 / var(--tw-bg-opacity)); -} - -.hover\:bg-indigo-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(49 46 129 / var(--tw-bg-opacity)); -} - -.hover\:bg-lime-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(236 252 203 / var(--tw-bg-opacity)); -} - -.hover\:bg-lime-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(217 249 157 / var(--tw-bg-opacity)); -} - -.hover\:bg-lime-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(190 242 100 / var(--tw-bg-opacity)); -} - -.hover\:bg-lime-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(163 230 53 / var(--tw-bg-opacity)); -} - -.hover\:bg-lime-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(247 254 231 / var(--tw-bg-opacity)); -} - -.hover\:bg-lime-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(132 204 22 / var(--tw-bg-opacity)); -} - -.hover\:bg-lime-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(101 163 13 / var(--tw-bg-opacity)); -} - -.hover\:bg-lime-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(77 124 15 / var(--tw-bg-opacity)); -} - -.hover\:bg-lime-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(63 98 18 / var(--tw-bg-opacity)); -} - -.hover\:bg-lime-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(54 83 20 / var(--tw-bg-opacity)); -} - -.hover\:bg-neutral-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(245 245 245 / var(--tw-bg-opacity)); -} - -.hover\:bg-neutral-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(229 229 229 / var(--tw-bg-opacity)); -} - -.hover\:bg-neutral-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(212 212 212 / var(--tw-bg-opacity)); -} - -.hover\:bg-neutral-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(163 163 163 / var(--tw-bg-opacity)); -} - -.hover\:bg-neutral-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(250 250 250 / var(--tw-bg-opacity)); -} - -.hover\:bg-neutral-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(115 115 115 / var(--tw-bg-opacity)); -} - -.hover\:bg-neutral-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(82 82 82 / var(--tw-bg-opacity)); -} - -.hover\:bg-neutral-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(64 64 64 / var(--tw-bg-opacity)); -} - -.hover\:bg-neutral-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(38 38 38 / var(--tw-bg-opacity)); -} - -.hover\:bg-neutral-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(23 23 23 / var(--tw-bg-opacity)); -} - -.hover\:bg-orange-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(255 237 213 / var(--tw-bg-opacity)); -} - -.hover\:bg-orange-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(254 215 170 / var(--tw-bg-opacity)); -} - -.hover\:bg-orange-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(253 186 116 / var(--tw-bg-opacity)); -} - -.hover\:bg-orange-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(251 146 60 / var(--tw-bg-opacity)); -} - -.hover\:bg-orange-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(255 247 237 / var(--tw-bg-opacity)); -} - -.hover\:bg-orange-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(249 115 22 / var(--tw-bg-opacity)); -} - -.hover\:bg-orange-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(234 88 12 / var(--tw-bg-opacity)); -} - -.hover\:bg-orange-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(194 65 12 / var(--tw-bg-opacity)); -} - -.hover\:bg-orange-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(154 52 18 / var(--tw-bg-opacity)); -} - -.hover\:bg-orange-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(124 45 18 / var(--tw-bg-opacity)); -} - -.hover\:bg-pink-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(252 231 243 / var(--tw-bg-opacity)); -} - -.hover\:bg-pink-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(251 207 232 / var(--tw-bg-opacity)); -} - -.hover\:bg-pink-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(249 168 212 / var(--tw-bg-opacity)); -} - -.hover\:bg-pink-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(244 114 182 / var(--tw-bg-opacity)); -} - -.hover\:bg-pink-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(253 242 248 / var(--tw-bg-opacity)); -} - -.hover\:bg-pink-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(236 72 153 / var(--tw-bg-opacity)); -} - -.hover\:bg-pink-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(219 39 119 / var(--tw-bg-opacity)); -} - -.hover\:bg-pink-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(190 24 93 / var(--tw-bg-opacity)); -} - -.hover\:bg-pink-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(131 24 67 / var(--tw-bg-opacity)); -} - -.hover\:bg-purple-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(243 232 255 / var(--tw-bg-opacity)); -} - -.hover\:bg-purple-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(233 213 255 / var(--tw-bg-opacity)); -} - -.hover\:bg-purple-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(216 180 254 / var(--tw-bg-opacity)); -} - -.hover\:bg-purple-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(192 132 252 / var(--tw-bg-opacity)); -} - -.hover\:bg-purple-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(250 245 255 / var(--tw-bg-opacity)); -} - -.hover\:bg-purple-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(168 85 247 / var(--tw-bg-opacity)); -} - -.hover\:bg-purple-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(147 51 234 / var(--tw-bg-opacity)); -} - -.hover\:bg-purple-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(126 34 206 / var(--tw-bg-opacity)); -} - -.hover\:bg-purple-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(107 33 168 / var(--tw-bg-opacity)); -} - -.hover\:bg-purple-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(88 28 135 / var(--tw-bg-opacity)); -} - -.hover\:bg-red-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(254 226 226 / var(--tw-bg-opacity)); -} - -.hover\:bg-red-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(254 202 202 / var(--tw-bg-opacity)); -} - -.hover\:bg-red-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(252 165 165 / var(--tw-bg-opacity)); -} - -.hover\:bg-red-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(248 113 113 / var(--tw-bg-opacity)); -} - -.hover\:bg-red-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(254 242 242 / var(--tw-bg-opacity)); -} - -.hover\:bg-red-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(239 68 68 / var(--tw-bg-opacity)); -} - -.hover\:bg-red-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(220 38 38 / var(--tw-bg-opacity)); -} - -.hover\:bg-red-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(185 28 28 / var(--tw-bg-opacity)); -} - -.hover\:bg-red-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(153 27 27 / var(--tw-bg-opacity)); -} - -.hover\:bg-red-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(127 29 29 / var(--tw-bg-opacity)); -} - -.hover\:bg-rose-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(255 228 230 / var(--tw-bg-opacity)); -} - -.hover\:bg-rose-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(254 205 211 / var(--tw-bg-opacity)); -} - -.hover\:bg-rose-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(253 164 175 / var(--tw-bg-opacity)); -} - -.hover\:bg-rose-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(251 113 133 / var(--tw-bg-opacity)); -} - -.hover\:bg-rose-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(255 241 242 / var(--tw-bg-opacity)); -} - -.hover\:bg-rose-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(244 63 94 / var(--tw-bg-opacity)); -} - -.hover\:bg-rose-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(225 29 72 / var(--tw-bg-opacity)); -} - -.hover\:bg-rose-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(190 18 60 / var(--tw-bg-opacity)); -} - -.hover\:bg-rose-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(159 18 57 / var(--tw-bg-opacity)); -} - -.hover\:bg-rose-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(136 19 55 / var(--tw-bg-opacity)); -} - -.hover\:bg-sky-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(224 242 254 / var(--tw-bg-opacity)); -} - -.hover\:bg-sky-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(186 230 253 / var(--tw-bg-opacity)); -} - -.hover\:bg-sky-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(125 211 252 / var(--tw-bg-opacity)); -} - -.hover\:bg-sky-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(56 189 248 / var(--tw-bg-opacity)); -} - -.hover\:bg-sky-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(240 249 255 / var(--tw-bg-opacity)); -} - -.hover\:bg-sky-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(14 165 233 / var(--tw-bg-opacity)); -} - -.hover\:bg-sky-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(2 132 199 / var(--tw-bg-opacity)); -} - -.hover\:bg-sky-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(3 105 161 / var(--tw-bg-opacity)); -} - -.hover\:bg-sky-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(7 89 133 / var(--tw-bg-opacity)); -} - -.hover\:bg-sky-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(12 74 110 / var(--tw-bg-opacity)); -} - -.hover\:bg-slate-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(241 245 249 / var(--tw-bg-opacity)); -} - -.hover\:bg-slate-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(226 232 240 / var(--tw-bg-opacity)); -} - -.hover\:bg-slate-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(203 213 225 / var(--tw-bg-opacity)); -} - -.hover\:bg-slate-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(148 163 184 / var(--tw-bg-opacity)); -} - -.hover\:bg-slate-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); -} - -.hover\:bg-slate-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(100 116 139 / var(--tw-bg-opacity)); -} - -.hover\:bg-slate-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(71 85 105 / var(--tw-bg-opacity)); -} - -.hover\:bg-slate-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(51 65 85 / var(--tw-bg-opacity)); -} - -.hover\:bg-slate-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(30 41 59 / var(--tw-bg-opacity)); -} - -.hover\:bg-slate-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity)); -} - -.hover\:bg-stone-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(245 245 244 / var(--tw-bg-opacity)); -} - -.hover\:bg-stone-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(231 229 228 / var(--tw-bg-opacity)); -} - -.hover\:bg-stone-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(214 211 209 / var(--tw-bg-opacity)); -} - -.hover\:bg-stone-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(168 162 158 / var(--tw-bg-opacity)); -} - -.hover\:bg-stone-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(250 250 249 / var(--tw-bg-opacity)); -} - -.hover\:bg-stone-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(120 113 108 / var(--tw-bg-opacity)); -} - -.hover\:bg-stone-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(87 83 78 / var(--tw-bg-opacity)); -} - -.hover\:bg-stone-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(68 64 60 / var(--tw-bg-opacity)); -} - -.hover\:bg-stone-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(41 37 36 / var(--tw-bg-opacity)); -} - -.hover\:bg-stone-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(28 25 23 / var(--tw-bg-opacity)); -} - -.hover\:bg-teal-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(204 251 241 / var(--tw-bg-opacity)); -} - -.hover\:bg-teal-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(153 246 228 / var(--tw-bg-opacity)); -} - -.hover\:bg-teal-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(94 234 212 / var(--tw-bg-opacity)); -} - -.hover\:bg-teal-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(45 212 191 / var(--tw-bg-opacity)); -} - -.hover\:bg-teal-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(240 253 250 / var(--tw-bg-opacity)); -} - -.hover\:bg-teal-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(20 184 166 / var(--tw-bg-opacity)); -} - -.hover\:bg-teal-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(13 148 136 / var(--tw-bg-opacity)); -} - -.hover\:bg-teal-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(15 118 110 / var(--tw-bg-opacity)); -} - -.hover\:bg-teal-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(17 94 89 / var(--tw-bg-opacity)); -} - -.hover\:bg-teal-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(19 78 74 / var(--tw-bg-opacity)); -} - -.hover\:bg-transparent:hover { - background-color: transparent; -} - -.hover\:bg-violet-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(237 233 254 / var(--tw-bg-opacity)); -} - -.hover\:bg-violet-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(221 214 254 / var(--tw-bg-opacity)); -} - -.hover\:bg-violet-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(196 181 253 / var(--tw-bg-opacity)); -} - -.hover\:bg-violet-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(167 139 250 / var(--tw-bg-opacity)); -} - -.hover\:bg-violet-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(245 243 255 / var(--tw-bg-opacity)); -} - -.hover\:bg-violet-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(139 92 246 / var(--tw-bg-opacity)); -} - -.hover\:bg-violet-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(124 58 237 / var(--tw-bg-opacity)); -} - -.hover\:bg-violet-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(109 40 217 / var(--tw-bg-opacity)); -} - -.hover\:bg-violet-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(91 33 182 / var(--tw-bg-opacity)); -} - -.hover\:bg-violet-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(76 29 149 / var(--tw-bg-opacity)); -} - -.hover\:bg-white:hover { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); -} - -.hover\:bg-yellow-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(254 249 195 / var(--tw-bg-opacity)); -} - -.hover\:bg-yellow-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(254 240 138 / var(--tw-bg-opacity)); -} - -.hover\:bg-yellow-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(253 224 71 / var(--tw-bg-opacity)); -} - -.hover\:bg-yellow-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(250 204 21 / var(--tw-bg-opacity)); -} - -.hover\:bg-yellow-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(254 252 232 / var(--tw-bg-opacity)); -} - -.hover\:bg-yellow-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(234 179 8 / var(--tw-bg-opacity)); -} - -.hover\:bg-yellow-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(202 138 4 / var(--tw-bg-opacity)); -} - -.hover\:bg-yellow-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(161 98 7 / var(--tw-bg-opacity)); -} - -.hover\:bg-yellow-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(133 77 14 / var(--tw-bg-opacity)); -} - -.hover\:bg-yellow-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(113 63 18 / var(--tw-bg-opacity)); -} - -.hover\:bg-zinc-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(244 244 245 / var(--tw-bg-opacity)); -} - -.hover\:bg-zinc-200:hover { - --tw-bg-opacity: 1; - background-color: rgb(228 228 231 / var(--tw-bg-opacity)); -} - -.hover\:bg-zinc-300:hover { - --tw-bg-opacity: 1; - background-color: rgb(212 212 216 / var(--tw-bg-opacity)); -} - -.hover\:bg-zinc-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(161 161 170 / var(--tw-bg-opacity)); -} - -.hover\:bg-zinc-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(250 250 250 / var(--tw-bg-opacity)); -} - -.hover\:bg-zinc-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(113 113 122 / var(--tw-bg-opacity)); -} - -.hover\:bg-zinc-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(82 82 91 / var(--tw-bg-opacity)); -} - -.hover\:bg-zinc-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(63 63 70 / var(--tw-bg-opacity)); -} - -.hover\:bg-zinc-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(39 39 42 / var(--tw-bg-opacity)); -} - -.hover\:bg-zinc-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(24 24 27 / var(--tw-bg-opacity)); -} - -.hover\:text-amber-100:hover { - --tw-text-opacity: 1; - color: rgb(254 243 199 / var(--tw-text-opacity)); -} - -.hover\:text-amber-200:hover { - --tw-text-opacity: 1; - color: rgb(253 230 138 / var(--tw-text-opacity)); -} - -.hover\:text-amber-300:hover { - --tw-text-opacity: 1; - color: rgb(252 211 77 / var(--tw-text-opacity)); -} - -.hover\:text-amber-400:hover { - --tw-text-opacity: 1; - color: rgb(251 191 36 / var(--tw-text-opacity)); -} - -.hover\:text-amber-50:hover { - --tw-text-opacity: 1; - color: rgb(255 251 235 / var(--tw-text-opacity)); -} - -.hover\:text-amber-500:hover { - --tw-text-opacity: 1; - color: rgb(245 158 11 / var(--tw-text-opacity)); -} - -.hover\:text-amber-600:hover { - --tw-text-opacity: 1; - color: rgb(217 119 6 / var(--tw-text-opacity)); -} - -.hover\:text-amber-700:hover { - --tw-text-opacity: 1; - color: rgb(180 83 9 / var(--tw-text-opacity)); -} - -.hover\:text-amber-800:hover { - --tw-text-opacity: 1; - color: rgb(146 64 14 / var(--tw-text-opacity)); -} - -.hover\:text-amber-900:hover { - --tw-text-opacity: 1; - color: rgb(120 53 15 / var(--tw-text-opacity)); -} - -.hover\:text-black:hover { - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} - -.hover\:text-blue-100:hover { - --tw-text-opacity: 1; - color: rgb(219 234 254 / var(--tw-text-opacity)); -} - -.hover\:text-blue-200:hover { - --tw-text-opacity: 1; - color: rgb(191 219 254 / var(--tw-text-opacity)); -} - -.hover\:text-blue-300:hover { - --tw-text-opacity: 1; - color: rgb(147 197 253 / var(--tw-text-opacity)); -} - -.hover\:text-blue-400:hover { - --tw-text-opacity: 1; - color: rgb(96 165 250 / var(--tw-text-opacity)); -} - -.hover\:text-blue-50:hover { - --tw-text-opacity: 1; - color: rgb(239 246 255 / var(--tw-text-opacity)); -} - -.hover\:text-blue-500:hover { - --tw-text-opacity: 1; - color: rgb(59 130 246 / var(--tw-text-opacity)); -} - -.hover\:text-blue-600:hover { - --tw-text-opacity: 1; - color: rgb(37 99 235 / var(--tw-text-opacity)); -} - -.hover\:text-blue-700:hover { - --tw-text-opacity: 1; - color: rgb(29 78 216 / var(--tw-text-opacity)); -} - -.hover\:text-blue-800:hover { - --tw-text-opacity: 1; - color: rgb(30 64 175 / var(--tw-text-opacity)); -} - -.hover\:text-blue-900:hover { - --tw-text-opacity: 1; - color: rgb(30 58 138 / var(--tw-text-opacity)); -} - -.hover\:text-cyan-100:hover { - --tw-text-opacity: 1; - color: rgb(207 250 254 / var(--tw-text-opacity)); -} - -.hover\:text-cyan-200:hover { - --tw-text-opacity: 1; - color: rgb(165 243 252 / var(--tw-text-opacity)); -} - -.hover\:text-cyan-300:hover { - --tw-text-opacity: 1; - color: rgb(103 232 249 / var(--tw-text-opacity)); -} - -.hover\:text-cyan-400:hover { - --tw-text-opacity: 1; - color: rgb(34 211 238 / var(--tw-text-opacity)); -} - -.hover\:text-cyan-50:hover { - --tw-text-opacity: 1; - color: rgb(236 254 255 / var(--tw-text-opacity)); -} - -.hover\:text-cyan-500:hover { - --tw-text-opacity: 1; - color: rgb(6 182 212 / var(--tw-text-opacity)); -} - -.hover\:text-cyan-600:hover { - --tw-text-opacity: 1; - color: rgb(8 145 178 / var(--tw-text-opacity)); -} - -.hover\:text-cyan-700:hover { - --tw-text-opacity: 1; - color: rgb(14 116 144 / var(--tw-text-opacity)); -} - -.hover\:text-cyan-800:hover { - --tw-text-opacity: 1; - color: rgb(21 94 117 / var(--tw-text-opacity)); -} - -.hover\:text-cyan-900:hover { - --tw-text-opacity: 1; - color: rgb(22 78 99 / var(--tw-text-opacity)); -} - -.hover\:text-emerald-100:hover { - --tw-text-opacity: 1; - color: rgb(209 250 229 / var(--tw-text-opacity)); -} - -.hover\:text-emerald-200:hover { - --tw-text-opacity: 1; - color: rgb(167 243 208 / var(--tw-text-opacity)); -} - -.hover\:text-emerald-300:hover { - --tw-text-opacity: 1; - color: rgb(110 231 183 / var(--tw-text-opacity)); -} - -.hover\:text-emerald-400:hover { - --tw-text-opacity: 1; - color: rgb(52 211 153 / var(--tw-text-opacity)); -} - -.hover\:text-emerald-50:hover { - --tw-text-opacity: 1; - color: rgb(236 253 245 / var(--tw-text-opacity)); -} - -.hover\:text-emerald-500:hover { - --tw-text-opacity: 1; - color: rgb(16 185 129 / var(--tw-text-opacity)); -} - -.hover\:text-emerald-600:hover { - --tw-text-opacity: 1; - color: rgb(5 150 105 / var(--tw-text-opacity)); -} - -.hover\:text-emerald-700:hover { - --tw-text-opacity: 1; - color: rgb(4 120 87 / var(--tw-text-opacity)); -} - -.hover\:text-emerald-800:hover { - --tw-text-opacity: 1; - color: rgb(6 95 70 / var(--tw-text-opacity)); -} - -.hover\:text-emerald-900:hover { - --tw-text-opacity: 1; - color: rgb(6 78 59 / var(--tw-text-opacity)); -} - -.hover\:text-fuchsia-100:hover { - --tw-text-opacity: 1; - color: rgb(250 232 255 / var(--tw-text-opacity)); -} - -.hover\:text-fuchsia-200:hover { - --tw-text-opacity: 1; - color: rgb(245 208 254 / var(--tw-text-opacity)); -} - -.hover\:text-fuchsia-300:hover { - --tw-text-opacity: 1; - color: rgb(240 171 252 / var(--tw-text-opacity)); -} - -.hover\:text-fuchsia-400:hover { - --tw-text-opacity: 1; - color: rgb(232 121 249 / var(--tw-text-opacity)); -} - -.hover\:text-fuchsia-50:hover { - --tw-text-opacity: 1; - color: rgb(253 244 255 / var(--tw-text-opacity)); -} - -.hover\:text-fuchsia-500:hover { - --tw-text-opacity: 1; - color: rgb(217 70 239 / var(--tw-text-opacity)); -} - -.hover\:text-fuchsia-600:hover { - --tw-text-opacity: 1; - color: rgb(192 38 211 / var(--tw-text-opacity)); -} - -.hover\:text-fuchsia-700:hover { - --tw-text-opacity: 1; - color: rgb(162 28 175 / var(--tw-text-opacity)); -} - -.hover\:text-fuchsia-800:hover { - --tw-text-opacity: 1; - color: rgb(134 25 143 / var(--tw-text-opacity)); -} - -.hover\:text-fuchsia-900:hover { - --tw-text-opacity: 1; - color: rgb(112 26 117 / var(--tw-text-opacity)); -} - -.hover\:text-gray-100:hover { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity)); -} - -.hover\:text-gray-200:hover { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity)); -} - -.hover\:text-gray-300:hover { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); -} - -.hover\:text-gray-400:hover { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); -} - -.hover\:text-gray-50:hover { - --tw-text-opacity: 1; - color: rgb(249 250 251 / var(--tw-text-opacity)); -} - -.hover\:text-gray-500:hover { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); -} - -.hover\:text-gray-600:hover { - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity)); -} - -.hover\:text-gray-700:hover { - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity)); -} - -.hover\:text-gray-800:hover { - --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity)); -} - -.hover\:text-gray-900:hover { - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity)); -} - -.hover\:text-green-100:hover { - --tw-text-opacity: 1; - color: rgb(220 252 231 / var(--tw-text-opacity)); -} - -.hover\:text-green-200:hover { - --tw-text-opacity: 1; - color: rgb(187 247 208 / var(--tw-text-opacity)); -} - -.hover\:text-green-300:hover { - --tw-text-opacity: 1; - color: rgb(134 239 172 / var(--tw-text-opacity)); -} - -.hover\:text-green-400:hover { - --tw-text-opacity: 1; - color: rgb(74 222 128 / var(--tw-text-opacity)); -} - -.hover\:text-green-50:hover { - --tw-text-opacity: 1; - color: rgb(240 253 244 / var(--tw-text-opacity)); -} - -.hover\:text-green-500:hover { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity)); -} - -.hover\:text-green-600:hover { - --tw-text-opacity: 1; - color: rgb(22 163 74 / var(--tw-text-opacity)); -} - -.hover\:text-green-700:hover { - --tw-text-opacity: 1; - color: rgb(21 128 61 / var(--tw-text-opacity)); -} - -.hover\:text-green-800:hover { - --tw-text-opacity: 1; - color: rgb(22 101 52 / var(--tw-text-opacity)); -} - -.hover\:text-green-900:hover { - --tw-text-opacity: 1; - color: rgb(20 83 45 / var(--tw-text-opacity)); -} - -.hover\:text-indigo-100:hover { - --tw-text-opacity: 1; - color: rgb(224 231 255 / var(--tw-text-opacity)); -} - -.hover\:text-indigo-200:hover { - --tw-text-opacity: 1; - color: rgb(199 210 254 / var(--tw-text-opacity)); -} - -.hover\:text-indigo-300:hover { - --tw-text-opacity: 1; - color: rgb(165 180 252 / var(--tw-text-opacity)); -} - -.hover\:text-indigo-400:hover { - --tw-text-opacity: 1; - color: rgb(129 140 248 / var(--tw-text-opacity)); -} - -.hover\:text-indigo-50:hover { - --tw-text-opacity: 1; - color: rgb(238 242 255 / var(--tw-text-opacity)); -} - -.hover\:text-indigo-500:hover { - --tw-text-opacity: 1; - color: rgb(99 102 241 / var(--tw-text-opacity)); -} - -.hover\:text-indigo-600:hover { - --tw-text-opacity: 1; - color: rgb(79 70 229 / var(--tw-text-opacity)); -} - -.hover\:text-indigo-700:hover { - --tw-text-opacity: 1; - color: rgb(67 56 202 / var(--tw-text-opacity)); -} - -.hover\:text-indigo-800:hover { - --tw-text-opacity: 1; - color: rgb(55 48 163 / var(--tw-text-opacity)); -} - -.hover\:text-indigo-900:hover { - --tw-text-opacity: 1; - color: rgb(49 46 129 / var(--tw-text-opacity)); -} - -.hover\:text-lime-100:hover { - --tw-text-opacity: 1; - color: rgb(236 252 203 / var(--tw-text-opacity)); -} - -.hover\:text-lime-200:hover { - --tw-text-opacity: 1; - color: rgb(217 249 157 / var(--tw-text-opacity)); -} - -.hover\:text-lime-300:hover { - --tw-text-opacity: 1; - color: rgb(190 242 100 / var(--tw-text-opacity)); -} - -.hover\:text-lime-400:hover { - --tw-text-opacity: 1; - color: rgb(163 230 53 / var(--tw-text-opacity)); -} - -.hover\:text-lime-50:hover { - --tw-text-opacity: 1; - color: rgb(247 254 231 / var(--tw-text-opacity)); -} - -.hover\:text-lime-500:hover { - --tw-text-opacity: 1; - color: rgb(132 204 22 / var(--tw-text-opacity)); -} - -.hover\:text-lime-600:hover { - --tw-text-opacity: 1; - color: rgb(101 163 13 / var(--tw-text-opacity)); -} - -.hover\:text-lime-700:hover { - --tw-text-opacity: 1; - color: rgb(77 124 15 / var(--tw-text-opacity)); -} - -.hover\:text-lime-800:hover { - --tw-text-opacity: 1; - color: rgb(63 98 18 / var(--tw-text-opacity)); -} - -.hover\:text-lime-900:hover { - --tw-text-opacity: 1; - color: rgb(54 83 20 / var(--tw-text-opacity)); -} - -.hover\:text-neutral-100:hover { - --tw-text-opacity: 1; - color: rgb(245 245 245 / var(--tw-text-opacity)); -} - -.hover\:text-neutral-200:hover { - --tw-text-opacity: 1; - color: rgb(229 229 229 / var(--tw-text-opacity)); -} - -.hover\:text-neutral-300:hover { - --tw-text-opacity: 1; - color: rgb(212 212 212 / var(--tw-text-opacity)); -} - -.hover\:text-neutral-400:hover { - --tw-text-opacity: 1; - color: rgb(163 163 163 / var(--tw-text-opacity)); -} - -.hover\:text-neutral-50:hover { - --tw-text-opacity: 1; - color: rgb(250 250 250 / var(--tw-text-opacity)); -} - -.hover\:text-neutral-500:hover { - --tw-text-opacity: 1; - color: rgb(115 115 115 / var(--tw-text-opacity)); -} - -.hover\:text-neutral-600:hover { - --tw-text-opacity: 1; - color: rgb(82 82 82 / var(--tw-text-opacity)); -} - -.hover\:text-neutral-700:hover { - --tw-text-opacity: 1; - color: rgb(64 64 64 / var(--tw-text-opacity)); -} - -.hover\:text-neutral-800:hover { - --tw-text-opacity: 1; - color: rgb(38 38 38 / var(--tw-text-opacity)); -} - -.hover\:text-neutral-900:hover { - --tw-text-opacity: 1; - color: rgb(23 23 23 / var(--tw-text-opacity)); -} - -.hover\:text-orange-100:hover { - --tw-text-opacity: 1; - color: rgb(255 237 213 / var(--tw-text-opacity)); -} - -.hover\:text-orange-200:hover { - --tw-text-opacity: 1; - color: rgb(254 215 170 / var(--tw-text-opacity)); -} - -.hover\:text-orange-300:hover { - --tw-text-opacity: 1; - color: rgb(253 186 116 / var(--tw-text-opacity)); -} - -.hover\:text-orange-400:hover { - --tw-text-opacity: 1; - color: rgb(251 146 60 / var(--tw-text-opacity)); -} - -.hover\:text-orange-50:hover { - --tw-text-opacity: 1; - color: rgb(255 247 237 / var(--tw-text-opacity)); -} - -.hover\:text-orange-500:hover { - --tw-text-opacity: 1; - color: rgb(249 115 22 / var(--tw-text-opacity)); -} - -.hover\:text-orange-600:hover { - --tw-text-opacity: 1; - color: rgb(234 88 12 / var(--tw-text-opacity)); -} - -.hover\:text-orange-700:hover { - --tw-text-opacity: 1; - color: rgb(194 65 12 / var(--tw-text-opacity)); -} - -.hover\:text-orange-800:hover { - --tw-text-opacity: 1; - color: rgb(154 52 18 / var(--tw-text-opacity)); -} - -.hover\:text-orange-900:hover { - --tw-text-opacity: 1; - color: rgb(124 45 18 / var(--tw-text-opacity)); -} - -.hover\:text-pink-100:hover { - --tw-text-opacity: 1; - color: rgb(252 231 243 / var(--tw-text-opacity)); -} - -.hover\:text-pink-200:hover { - --tw-text-opacity: 1; - color: rgb(251 207 232 / var(--tw-text-opacity)); -} - -.hover\:text-pink-300:hover { - --tw-text-opacity: 1; - color: rgb(249 168 212 / var(--tw-text-opacity)); -} - -.hover\:text-pink-400:hover { - --tw-text-opacity: 1; - color: rgb(244 114 182 / var(--tw-text-opacity)); -} - -.hover\:text-pink-50:hover { - --tw-text-opacity: 1; - color: rgb(253 242 248 / var(--tw-text-opacity)); -} - -.hover\:text-pink-500:hover { - --tw-text-opacity: 1; - color: rgb(236 72 153 / var(--tw-text-opacity)); -} - -.hover\:text-pink-600:hover { - --tw-text-opacity: 1; - color: rgb(219 39 119 / var(--tw-text-opacity)); -} - -.hover\:text-pink-700:hover { - --tw-text-opacity: 1; - color: rgb(190 24 93 / var(--tw-text-opacity)); -} - -.hover\:text-pink-900:hover { - --tw-text-opacity: 1; - color: rgb(131 24 67 / var(--tw-text-opacity)); -} - -.hover\:text-purple-100:hover { - --tw-text-opacity: 1; - color: rgb(243 232 255 / var(--tw-text-opacity)); -} - -.hover\:text-purple-200:hover { - --tw-text-opacity: 1; - color: rgb(233 213 255 / var(--tw-text-opacity)); -} - -.hover\:text-purple-300:hover { - --tw-text-opacity: 1; - color: rgb(216 180 254 / var(--tw-text-opacity)); -} - -.hover\:text-purple-400:hover { - --tw-text-opacity: 1; - color: rgb(192 132 252 / var(--tw-text-opacity)); -} - -.hover\:text-purple-50:hover { - --tw-text-opacity: 1; - color: rgb(250 245 255 / var(--tw-text-opacity)); -} - -.hover\:text-purple-500:hover { - --tw-text-opacity: 1; - color: rgb(168 85 247 / var(--tw-text-opacity)); -} - -.hover\:text-purple-600:hover { - --tw-text-opacity: 1; - color: rgb(147 51 234 / var(--tw-text-opacity)); -} - -.hover\:text-purple-700:hover { - --tw-text-opacity: 1; - color: rgb(126 34 206 / var(--tw-text-opacity)); -} - -.hover\:text-purple-800:hover { - --tw-text-opacity: 1; - color: rgb(107 33 168 / var(--tw-text-opacity)); -} - -.hover\:text-purple-900:hover { - --tw-text-opacity: 1; - color: rgb(88 28 135 / var(--tw-text-opacity)); -} - -.hover\:text-red-100:hover { - --tw-text-opacity: 1; - color: rgb(254 226 226 / var(--tw-text-opacity)); -} - -.hover\:text-red-200:hover { - --tw-text-opacity: 1; - color: rgb(254 202 202 / var(--tw-text-opacity)); -} - -.hover\:text-red-300:hover { - --tw-text-opacity: 1; - color: rgb(252 165 165 / var(--tw-text-opacity)); -} - -.hover\:text-red-400:hover { - --tw-text-opacity: 1; - color: rgb(248 113 113 / var(--tw-text-opacity)); -} - -.hover\:text-red-50:hover { - --tw-text-opacity: 1; - color: rgb(254 242 242 / var(--tw-text-opacity)); -} - -.hover\:text-red-500:hover { - --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity)); -} - -.hover\:text-red-600:hover { - --tw-text-opacity: 1; - color: rgb(220 38 38 / var(--tw-text-opacity)); -} - -.hover\:text-red-700:hover { - --tw-text-opacity: 1; - color: rgb(185 28 28 / var(--tw-text-opacity)); -} - -.hover\:text-red-800:hover { - --tw-text-opacity: 1; - color: rgb(153 27 27 / var(--tw-text-opacity)); -} - -.hover\:text-red-900:hover { - --tw-text-opacity: 1; - color: rgb(127 29 29 / var(--tw-text-opacity)); -} - -.hover\:text-rose-100:hover { - --tw-text-opacity: 1; - color: rgb(255 228 230 / var(--tw-text-opacity)); -} - -.hover\:text-rose-200:hover { - --tw-text-opacity: 1; - color: rgb(254 205 211 / var(--tw-text-opacity)); -} - -.hover\:text-rose-300:hover { - --tw-text-opacity: 1; - color: rgb(253 164 175 / var(--tw-text-opacity)); -} - -.hover\:text-rose-400:hover { - --tw-text-opacity: 1; - color: rgb(251 113 133 / var(--tw-text-opacity)); -} - -.hover\:text-rose-50:hover { - --tw-text-opacity: 1; - color: rgb(255 241 242 / var(--tw-text-opacity)); -} - -.hover\:text-rose-500:hover { - --tw-text-opacity: 1; - color: rgb(244 63 94 / var(--tw-text-opacity)); -} - -.hover\:text-rose-600:hover { - --tw-text-opacity: 1; - color: rgb(225 29 72 / var(--tw-text-opacity)); -} - -.hover\:text-rose-700:hover { - --tw-text-opacity: 1; - color: rgb(190 18 60 / var(--tw-text-opacity)); -} - -.hover\:text-rose-800:hover { - --tw-text-opacity: 1; - color: rgb(159 18 57 / var(--tw-text-opacity)); -} - -.hover\:text-rose-900:hover { - --tw-text-opacity: 1; - color: rgb(136 19 55 / var(--tw-text-opacity)); -} - -.hover\:text-sky-100:hover { - --tw-text-opacity: 1; - color: rgb(224 242 254 / var(--tw-text-opacity)); -} - -.hover\:text-sky-200:hover { - --tw-text-opacity: 1; - color: rgb(186 230 253 / var(--tw-text-opacity)); -} - -.hover\:text-sky-300:hover { - --tw-text-opacity: 1; - color: rgb(125 211 252 / var(--tw-text-opacity)); -} - -.hover\:text-sky-400:hover { - --tw-text-opacity: 1; - color: rgb(56 189 248 / var(--tw-text-opacity)); -} - -.hover\:text-sky-50:hover { - --tw-text-opacity: 1; - color: rgb(240 249 255 / var(--tw-text-opacity)); -} - -.hover\:text-sky-500:hover { - --tw-text-opacity: 1; - color: rgb(14 165 233 / var(--tw-text-opacity)); -} - -.hover\:text-sky-600:hover { - --tw-text-opacity: 1; - color: rgb(2 132 199 / var(--tw-text-opacity)); -} - -.hover\:text-sky-700:hover { - --tw-text-opacity: 1; - color: rgb(3 105 161 / var(--tw-text-opacity)); -} - -.hover\:text-sky-800:hover { - --tw-text-opacity: 1; - color: rgb(7 89 133 / var(--tw-text-opacity)); -} - -.hover\:text-sky-900:hover { - --tw-text-opacity: 1; - color: rgb(12 74 110 / var(--tw-text-opacity)); -} - -.hover\:text-slate-100:hover { - --tw-text-opacity: 1; - color: rgb(241 245 249 / var(--tw-text-opacity)); -} - -.hover\:text-slate-200:hover { - --tw-text-opacity: 1; - color: rgb(226 232 240 / var(--tw-text-opacity)); -} - -.hover\:text-slate-300:hover { - --tw-text-opacity: 1; - color: rgb(203 213 225 / var(--tw-text-opacity)); -} - -.hover\:text-slate-400:hover { - --tw-text-opacity: 1; - color: rgb(148 163 184 / var(--tw-text-opacity)); -} - -.hover\:text-slate-50:hover { - --tw-text-opacity: 1; - color: rgb(248 250 252 / var(--tw-text-opacity)); -} - -.hover\:text-slate-500:hover { - --tw-text-opacity: 1; - color: rgb(100 116 139 / var(--tw-text-opacity)); -} - -.hover\:text-slate-600:hover { - --tw-text-opacity: 1; - color: rgb(71 85 105 / var(--tw-text-opacity)); -} - -.hover\:text-slate-700:hover { - --tw-text-opacity: 1; - color: rgb(51 65 85 / var(--tw-text-opacity)); -} - -.hover\:text-slate-800:hover { - --tw-text-opacity: 1; - color: rgb(30 41 59 / var(--tw-text-opacity)); -} - -.hover\:text-slate-900:hover { - --tw-text-opacity: 1; - color: rgb(15 23 42 / var(--tw-text-opacity)); -} - -.hover\:text-stone-100:hover { - --tw-text-opacity: 1; - color: rgb(245 245 244 / var(--tw-text-opacity)); -} - -.hover\:text-stone-200:hover { - --tw-text-opacity: 1; - color: rgb(231 229 228 / var(--tw-text-opacity)); -} - -.hover\:text-stone-300:hover { - --tw-text-opacity: 1; - color: rgb(214 211 209 / var(--tw-text-opacity)); -} - -.hover\:text-stone-400:hover { - --tw-text-opacity: 1; - color: rgb(168 162 158 / var(--tw-text-opacity)); -} - -.hover\:text-stone-50:hover { - --tw-text-opacity: 1; - color: rgb(250 250 249 / var(--tw-text-opacity)); -} - -.hover\:text-stone-500:hover { - --tw-text-opacity: 1; - color: rgb(120 113 108 / var(--tw-text-opacity)); -} - -.hover\:text-stone-600:hover { - --tw-text-opacity: 1; - color: rgb(87 83 78 / var(--tw-text-opacity)); -} - -.hover\:text-stone-700:hover { - --tw-text-opacity: 1; - color: rgb(68 64 60 / var(--tw-text-opacity)); -} - -.hover\:text-stone-800:hover { - --tw-text-opacity: 1; - color: rgb(41 37 36 / var(--tw-text-opacity)); -} - -.hover\:text-stone-900:hover { - --tw-text-opacity: 1; - color: rgb(28 25 23 / var(--tw-text-opacity)); -} - -.hover\:text-teal-100:hover { - --tw-text-opacity: 1; - color: rgb(204 251 241 / var(--tw-text-opacity)); -} - -.hover\:text-teal-200:hover { - --tw-text-opacity: 1; - color: rgb(153 246 228 / var(--tw-text-opacity)); -} - -.hover\:text-teal-300:hover { - --tw-text-opacity: 1; - color: rgb(94 234 212 / var(--tw-text-opacity)); -} - -.hover\:text-teal-400:hover { - --tw-text-opacity: 1; - color: rgb(45 212 191 / var(--tw-text-opacity)); -} - -.hover\:text-teal-50:hover { - --tw-text-opacity: 1; - color: rgb(240 253 250 / var(--tw-text-opacity)); -} - -.hover\:text-teal-500:hover { - --tw-text-opacity: 1; - color: rgb(20 184 166 / var(--tw-text-opacity)); -} - -.hover\:text-teal-600:hover { - --tw-text-opacity: 1; - color: rgb(13 148 136 / var(--tw-text-opacity)); -} - -.hover\:text-teal-700:hover { - --tw-text-opacity: 1; - color: rgb(15 118 110 / var(--tw-text-opacity)); -} - -.hover\:text-teal-800:hover { - --tw-text-opacity: 1; - color: rgb(17 94 89 / var(--tw-text-opacity)); -} - -.hover\:text-teal-900:hover { - --tw-text-opacity: 1; - color: rgb(19 78 74 / var(--tw-text-opacity)); -} - -.hover\:text-transparent:hover { - color: transparent; -} - -.hover\:text-violet-100:hover { - --tw-text-opacity: 1; - color: rgb(237 233 254 / var(--tw-text-opacity)); -} - -.hover\:text-violet-200:hover { - --tw-text-opacity: 1; - color: rgb(221 214 254 / var(--tw-text-opacity)); -} - -.hover\:text-violet-300:hover { - --tw-text-opacity: 1; - color: rgb(196 181 253 / var(--tw-text-opacity)); -} - -.hover\:text-violet-400:hover { - --tw-text-opacity: 1; - color: rgb(167 139 250 / var(--tw-text-opacity)); -} - -.hover\:text-violet-50:hover { - --tw-text-opacity: 1; - color: rgb(245 243 255 / var(--tw-text-opacity)); -} - -.hover\:text-violet-500:hover { - --tw-text-opacity: 1; - color: rgb(139 92 246 / var(--tw-text-opacity)); -} - -.hover\:text-violet-600:hover { - --tw-text-opacity: 1; - color: rgb(124 58 237 / var(--tw-text-opacity)); -} - -.hover\:text-violet-700:hover { - --tw-text-opacity: 1; - color: rgb(109 40 217 / var(--tw-text-opacity)); -} - -.hover\:text-violet-800:hover { - --tw-text-opacity: 1; - color: rgb(91 33 182 / var(--tw-text-opacity)); -} - -.hover\:text-violet-900:hover { - --tw-text-opacity: 1; - color: rgb(76 29 149 / var(--tw-text-opacity)); -} - -.hover\:text-white:hover { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.hover\:text-yellow-100:hover { - --tw-text-opacity: 1; - color: rgb(254 249 195 / var(--tw-text-opacity)); -} - -.hover\:text-yellow-200:hover { - --tw-text-opacity: 1; - color: rgb(254 240 138 / var(--tw-text-opacity)); -} - -.hover\:text-yellow-300:hover { - --tw-text-opacity: 1; - color: rgb(253 224 71 / var(--tw-text-opacity)); -} - -.hover\:text-yellow-400:hover { - --tw-text-opacity: 1; - color: rgb(250 204 21 / var(--tw-text-opacity)); -} - -.hover\:text-yellow-50:hover { - --tw-text-opacity: 1; - color: rgb(254 252 232 / var(--tw-text-opacity)); -} - -.hover\:text-yellow-500:hover { - --tw-text-opacity: 1; - color: rgb(234 179 8 / var(--tw-text-opacity)); -} - -.hover\:text-yellow-600:hover { - --tw-text-opacity: 1; - color: rgb(202 138 4 / var(--tw-text-opacity)); -} - -.hover\:text-yellow-700:hover { - --tw-text-opacity: 1; - color: rgb(161 98 7 / var(--tw-text-opacity)); -} - -.hover\:text-yellow-800:hover { - --tw-text-opacity: 1; - color: rgb(133 77 14 / var(--tw-text-opacity)); -} - -.hover\:text-yellow-900:hover { - --tw-text-opacity: 1; - color: rgb(113 63 18 / var(--tw-text-opacity)); -} - -.hover\:text-zinc-100:hover { - --tw-text-opacity: 1; - color: rgb(244 244 245 / var(--tw-text-opacity)); -} - -.hover\:text-zinc-200:hover { - --tw-text-opacity: 1; - color: rgb(228 228 231 / var(--tw-text-opacity)); -} - -.hover\:text-zinc-300:hover { - --tw-text-opacity: 1; - color: rgb(212 212 216 / var(--tw-text-opacity)); -} - -.hover\:text-zinc-400:hover { - --tw-text-opacity: 1; - color: rgb(161 161 170 / var(--tw-text-opacity)); -} - -.hover\:text-zinc-50:hover { - --tw-text-opacity: 1; - color: rgb(250 250 250 / var(--tw-text-opacity)); -} - -.hover\:text-zinc-500:hover { - --tw-text-opacity: 1; - color: rgb(113 113 122 / var(--tw-text-opacity)); -} - -.hover\:text-zinc-600:hover { - --tw-text-opacity: 1; - color: rgb(82 82 91 / var(--tw-text-opacity)); -} - -.hover\:text-zinc-700:hover { - --tw-text-opacity: 1; - color: rgb(63 63 70 / var(--tw-text-opacity)); -} - -.hover\:text-zinc-800:hover { - --tw-text-opacity: 1; - color: rgb(39 39 42 / var(--tw-text-opacity)); -} - -.hover\:text-zinc-900:hover { - --tw-text-opacity: 1; - color: rgb(24 24 27 / var(--tw-text-opacity)); -} - -.hover\:underline:hover { - text-decoration-line: underline; -} - -.hover\:ring-amber-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 243 199 / var(--tw-ring-opacity)); -} - -.hover\:ring-amber-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity)); -} - -.hover\:ring-amber-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity)); -} - -.hover\:ring-amber-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 191 36 / var(--tw-ring-opacity)); -} - -.hover\:ring-amber-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 251 235 / var(--tw-ring-opacity)); -} - -.hover\:ring-amber-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity)); -} - -.hover\:ring-amber-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(217 119 6 / var(--tw-ring-opacity)); -} - -.hover\:ring-amber-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(180 83 9 / var(--tw-ring-opacity)); -} - -.hover\:ring-amber-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(146 64 14 / var(--tw-ring-opacity)); -} - -.hover\:ring-amber-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(120 53 15 / var(--tw-ring-opacity)); -} - -.hover\:ring-black:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity)); -} - -.hover\:ring-blue-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(219 234 254 / var(--tw-ring-opacity)); -} - -.hover\:ring-blue-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity)); -} - -.hover\:ring-blue-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity)); -} - -.hover\:ring-blue-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity)); -} - -.hover\:ring-blue-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(239 246 255 / var(--tw-ring-opacity)); -} - -.hover\:ring-blue-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity)); -} - -.hover\:ring-blue-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity)); -} - -.hover\:ring-blue-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(29 78 216 / var(--tw-ring-opacity)); -} - -.hover\:ring-blue-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(30 64 175 / var(--tw-ring-opacity)); -} - -.hover\:ring-blue-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(30 58 138 / var(--tw-ring-opacity)); -} - -.hover\:ring-cyan-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(207 250 254 / var(--tw-ring-opacity)); -} - -.hover\:ring-cyan-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(165 243 252 / var(--tw-ring-opacity)); -} - -.hover\:ring-cyan-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity)); -} - -.hover\:ring-cyan-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(34 211 238 / var(--tw-ring-opacity)); -} - -.hover\:ring-cyan-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(236 254 255 / var(--tw-ring-opacity)); -} - -.hover\:ring-cyan-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity)); -} - -.hover\:ring-cyan-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(8 145 178 / var(--tw-ring-opacity)); -} - -.hover\:ring-cyan-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(14 116 144 / var(--tw-ring-opacity)); -} - -.hover\:ring-cyan-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity)); -} - -.hover\:ring-cyan-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 78 99 / var(--tw-ring-opacity)); -} - -.hover\:ring-emerald-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(209 250 229 / var(--tw-ring-opacity)); -} - -.hover\:ring-emerald-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity)); -} - -.hover\:ring-emerald-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity)); -} - -.hover\:ring-emerald-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(52 211 153 / var(--tw-ring-opacity)); -} - -.hover\:ring-emerald-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(236 253 245 / var(--tw-ring-opacity)); -} - -.hover\:ring-emerald-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity)); -} - -.hover\:ring-emerald-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(5 150 105 / var(--tw-ring-opacity)); -} - -.hover\:ring-emerald-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(4 120 87 / var(--tw-ring-opacity)); -} - -.hover\:ring-emerald-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(6 95 70 / var(--tw-ring-opacity)); -} - -.hover\:ring-emerald-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(6 78 59 / var(--tw-ring-opacity)); -} - -.hover\:ring-fuchsia-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 232 255 / var(--tw-ring-opacity)); -} - -.hover\:ring-fuchsia-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 208 254 / var(--tw-ring-opacity)); -} - -.hover\:ring-fuchsia-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(240 171 252 / var(--tw-ring-opacity)); -} - -.hover\:ring-fuchsia-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(232 121 249 / var(--tw-ring-opacity)); -} - -.hover\:ring-fuchsia-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 244 255 / var(--tw-ring-opacity)); -} - -.hover\:ring-fuchsia-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(217 70 239 / var(--tw-ring-opacity)); -} - -.hover\:ring-fuchsia-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(192 38 211 / var(--tw-ring-opacity)); -} - -.hover\:ring-fuchsia-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(162 28 175 / var(--tw-ring-opacity)); -} - -.hover\:ring-fuchsia-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(134 25 143 / var(--tw-ring-opacity)); -} - -.hover\:ring-fuchsia-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(112 26 117 / var(--tw-ring-opacity)); -} - -.hover\:ring-gray-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(243 244 246 / var(--tw-ring-opacity)); -} - -.hover\:ring-gray-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity)); -} - -.hover\:ring-gray-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity)); -} - -.hover\:ring-gray-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity)); -} - -.hover\:ring-gray-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(249 250 251 / var(--tw-ring-opacity)); -} - -.hover\:ring-gray-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity)); -} - -.hover\:ring-gray-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity)); -} - -.hover\:ring-gray-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity)); -} - -.hover\:ring-gray-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity)); -} - -.hover\:ring-gray-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity)); -} - -.hover\:ring-green-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(220 252 231 / var(--tw-ring-opacity)); -} - -.hover\:ring-green-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(187 247 208 / var(--tw-ring-opacity)); -} - -.hover\:ring-green-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(134 239 172 / var(--tw-ring-opacity)); -} - -.hover\:ring-green-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(74 222 128 / var(--tw-ring-opacity)); -} - -.hover\:ring-green-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(240 253 244 / var(--tw-ring-opacity)); -} - -.hover\:ring-green-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity)); -} - -.hover\:ring-green-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 163 74 / var(--tw-ring-opacity)); -} - -.hover\:ring-green-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(21 128 61 / var(--tw-ring-opacity)); -} - -.hover\:ring-green-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 101 52 / var(--tw-ring-opacity)); -} - -.hover\:ring-green-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(20 83 45 / var(--tw-ring-opacity)); -} - -.hover\:ring-indigo-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(224 231 255 / var(--tw-ring-opacity)); -} - -.hover\:ring-indigo-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(199 210 254 / var(--tw-ring-opacity)); -} - -.hover\:ring-indigo-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity)); -} - -.hover\:ring-indigo-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(129 140 248 / var(--tw-ring-opacity)); -} - -.hover\:ring-indigo-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(238 242 255 / var(--tw-ring-opacity)); -} - -.hover\:ring-indigo-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity)); -} - -.hover\:ring-indigo-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity)); -} - -.hover\:ring-indigo-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(67 56 202 / var(--tw-ring-opacity)); -} - -.hover\:ring-indigo-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(55 48 163 / var(--tw-ring-opacity)); -} - -.hover\:ring-indigo-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(49 46 129 / var(--tw-ring-opacity)); -} - -.hover\:ring-lime-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(236 252 203 / var(--tw-ring-opacity)); -} - -.hover\:ring-lime-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(217 249 157 / var(--tw-ring-opacity)); -} - -.hover\:ring-lime-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(190 242 100 / var(--tw-ring-opacity)); -} - -.hover\:ring-lime-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(163 230 53 / var(--tw-ring-opacity)); -} - -.hover\:ring-lime-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(247 254 231 / var(--tw-ring-opacity)); -} - -.hover\:ring-lime-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(132 204 22 / var(--tw-ring-opacity)); -} - -.hover\:ring-lime-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(101 163 13 / var(--tw-ring-opacity)); -} - -.hover\:ring-lime-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(77 124 15 / var(--tw-ring-opacity)); -} - -.hover\:ring-lime-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(63 98 18 / var(--tw-ring-opacity)); -} - -.hover\:ring-lime-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(54 83 20 / var(--tw-ring-opacity)); -} - -.hover\:ring-neutral-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 245 245 / var(--tw-ring-opacity)); -} - -.hover\:ring-neutral-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(229 229 229 / var(--tw-ring-opacity)); -} - -.hover\:ring-neutral-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(212 212 212 / var(--tw-ring-opacity)); -} - -.hover\:ring-neutral-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(163 163 163 / var(--tw-ring-opacity)); -} - -.hover\:ring-neutral-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 250 250 / var(--tw-ring-opacity)); -} - -.hover\:ring-neutral-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(115 115 115 / var(--tw-ring-opacity)); -} - -.hover\:ring-neutral-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(82 82 82 / var(--tw-ring-opacity)); -} - -.hover\:ring-neutral-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(64 64 64 / var(--tw-ring-opacity)); -} - -.hover\:ring-neutral-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(38 38 38 / var(--tw-ring-opacity)); -} - -.hover\:ring-neutral-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(23 23 23 / var(--tw-ring-opacity)); -} - -.hover\:ring-orange-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 237 213 / var(--tw-ring-opacity)); -} - -.hover\:ring-orange-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 215 170 / var(--tw-ring-opacity)); -} - -.hover\:ring-orange-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 186 116 / var(--tw-ring-opacity)); -} - -.hover\:ring-orange-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 146 60 / var(--tw-ring-opacity)); -} - -.hover\:ring-orange-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 247 237 / var(--tw-ring-opacity)); -} - -.hover\:ring-orange-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity)); -} - -.hover\:ring-orange-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(234 88 12 / var(--tw-ring-opacity)); -} - -.hover\:ring-orange-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(194 65 12 / var(--tw-ring-opacity)); -} - -.hover\:ring-orange-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(154 52 18 / var(--tw-ring-opacity)); -} - -.hover\:ring-orange-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(124 45 18 / var(--tw-ring-opacity)); -} - -.hover\:ring-pink-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(252 231 243 / var(--tw-ring-opacity)); -} - -.hover\:ring-pink-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 207 232 / var(--tw-ring-opacity)); -} - -.hover\:ring-pink-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(249 168 212 / var(--tw-ring-opacity)); -} - -.hover\:ring-pink-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(244 114 182 / var(--tw-ring-opacity)); -} - -.hover\:ring-pink-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 242 248 / var(--tw-ring-opacity)); -} - -.hover\:ring-pink-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(236 72 153 / var(--tw-ring-opacity)); -} - -.hover\:ring-pink-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(219 39 119 / var(--tw-ring-opacity)); -} - -.hover\:ring-pink-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(190 24 93 / var(--tw-ring-opacity)); -} - -.hover\:ring-pink-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(131 24 67 / var(--tw-ring-opacity)); -} - -.hover\:ring-purple-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(243 232 255 / var(--tw-ring-opacity)); -} - -.hover\:ring-purple-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(233 213 255 / var(--tw-ring-opacity)); -} - -.hover\:ring-purple-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(216 180 254 / var(--tw-ring-opacity)); -} - -.hover\:ring-purple-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(192 132 252 / var(--tw-ring-opacity)); -} - -.hover\:ring-purple-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 245 255 / var(--tw-ring-opacity)); -} - -.hover\:ring-purple-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity)); -} - -.hover\:ring-purple-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(147 51 234 / var(--tw-ring-opacity)); -} - -.hover\:ring-purple-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(126 34 206 / var(--tw-ring-opacity)); -} - -.hover\:ring-purple-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(107 33 168 / var(--tw-ring-opacity)); -} - -.hover\:ring-purple-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(88 28 135 / var(--tw-ring-opacity)); -} - -.hover\:ring-red-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 226 226 / var(--tw-ring-opacity)); -} - -.hover\:ring-red-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity)); -} - -.hover\:ring-red-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity)); -} - -.hover\:ring-red-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity)); -} - -.hover\:ring-red-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 242 242 / var(--tw-ring-opacity)); -} - -.hover\:ring-red-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity)); -} - -.hover\:ring-red-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(220 38 38 / var(--tw-ring-opacity)); -} - -.hover\:ring-red-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(185 28 28 / var(--tw-ring-opacity)); -} - -.hover\:ring-red-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(153 27 27 / var(--tw-ring-opacity)); -} - -.hover\:ring-red-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(127 29 29 / var(--tw-ring-opacity)); -} - -.hover\:ring-rose-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 228 230 / var(--tw-ring-opacity)); -} - -.hover\:ring-rose-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 205 211 / var(--tw-ring-opacity)); -} - -.hover\:ring-rose-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 164 175 / var(--tw-ring-opacity)); -} - -.hover\:ring-rose-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 113 133 / var(--tw-ring-opacity)); -} - -.hover\:ring-rose-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 241 242 / var(--tw-ring-opacity)); -} - -.hover\:ring-rose-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(244 63 94 / var(--tw-ring-opacity)); -} - -.hover\:ring-rose-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(225 29 72 / var(--tw-ring-opacity)); -} - -.hover\:ring-rose-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(190 18 60 / var(--tw-ring-opacity)); -} - -.hover\:ring-rose-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(159 18 57 / var(--tw-ring-opacity)); -} - -.hover\:ring-rose-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(136 19 55 / var(--tw-ring-opacity)); -} - -.hover\:ring-sky-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(224 242 254 / var(--tw-ring-opacity)); -} - -.hover\:ring-sky-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(186 230 253 / var(--tw-ring-opacity)); -} - -.hover\:ring-sky-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(125 211 252 / var(--tw-ring-opacity)); -} - -.hover\:ring-sky-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(56 189 248 / var(--tw-ring-opacity)); -} - -.hover\:ring-sky-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(240 249 255 / var(--tw-ring-opacity)); -} - -.hover\:ring-sky-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity)); -} - -.hover\:ring-sky-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(2 132 199 / var(--tw-ring-opacity)); -} - -.hover\:ring-sky-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(3 105 161 / var(--tw-ring-opacity)); -} - -.hover\:ring-sky-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(7 89 133 / var(--tw-ring-opacity)); -} - -.hover\:ring-sky-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(12 74 110 / var(--tw-ring-opacity)); -} - -.hover\:ring-slate-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(241 245 249 / var(--tw-ring-opacity)); -} - -.hover\:ring-slate-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity)); -} - -.hover\:ring-slate-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(203 213 225 / var(--tw-ring-opacity)); -} - -.hover\:ring-slate-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(148 163 184 / var(--tw-ring-opacity)); -} - -.hover\:ring-slate-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(248 250 252 / var(--tw-ring-opacity)); -} - -.hover\:ring-slate-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(100 116 139 / var(--tw-ring-opacity)); -} - -.hover\:ring-slate-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(71 85 105 / var(--tw-ring-opacity)); -} - -.hover\:ring-slate-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(51 65 85 / var(--tw-ring-opacity)); -} - -.hover\:ring-slate-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(30 41 59 / var(--tw-ring-opacity)); -} - -.hover\:ring-slate-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(15 23 42 / var(--tw-ring-opacity)); -} - -.hover\:ring-stone-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 245 244 / var(--tw-ring-opacity)); -} - -.hover\:ring-stone-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(231 229 228 / var(--tw-ring-opacity)); -} - -.hover\:ring-stone-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(214 211 209 / var(--tw-ring-opacity)); -} - -.hover\:ring-stone-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(168 162 158 / var(--tw-ring-opacity)); -} - -.hover\:ring-stone-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 250 249 / var(--tw-ring-opacity)); -} - -.hover\:ring-stone-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(120 113 108 / var(--tw-ring-opacity)); -} - -.hover\:ring-stone-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(87 83 78 / var(--tw-ring-opacity)); -} - -.hover\:ring-stone-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(68 64 60 / var(--tw-ring-opacity)); -} - -.hover\:ring-stone-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(41 37 36 / var(--tw-ring-opacity)); -} - -.hover\:ring-stone-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(28 25 23 / var(--tw-ring-opacity)); -} - -.hover\:ring-teal-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(204 251 241 / var(--tw-ring-opacity)); -} - -.hover\:ring-teal-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(153 246 228 / var(--tw-ring-opacity)); -} - -.hover\:ring-teal-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(94 234 212 / var(--tw-ring-opacity)); -} - -.hover\:ring-teal-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(45 212 191 / var(--tw-ring-opacity)); -} - -.hover\:ring-teal-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(240 253 250 / var(--tw-ring-opacity)); -} - -.hover\:ring-teal-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(20 184 166 / var(--tw-ring-opacity)); -} - -.hover\:ring-teal-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(13 148 136 / var(--tw-ring-opacity)); -} - -.hover\:ring-teal-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(15 118 110 / var(--tw-ring-opacity)); -} - -.hover\:ring-teal-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(17 94 89 / var(--tw-ring-opacity)); -} - -.hover\:ring-teal-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(19 78 74 / var(--tw-ring-opacity)); -} - -.hover\:ring-transparent:hover { - --tw-ring-color: transparent; -} - -.hover\:ring-violet-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(237 233 254 / var(--tw-ring-opacity)); -} - -.hover\:ring-violet-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(221 214 254 / var(--tw-ring-opacity)); -} - -.hover\:ring-violet-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity)); -} - -.hover\:ring-violet-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(167 139 250 / var(--tw-ring-opacity)); -} - -.hover\:ring-violet-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 243 255 / var(--tw-ring-opacity)); -} - -.hover\:ring-violet-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(139 92 246 / var(--tw-ring-opacity)); -} - -.hover\:ring-violet-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(124 58 237 / var(--tw-ring-opacity)); -} - -.hover\:ring-violet-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(109 40 217 / var(--tw-ring-opacity)); -} - -.hover\:ring-violet-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(91 33 182 / var(--tw-ring-opacity)); -} - -.hover\:ring-violet-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(76 29 149 / var(--tw-ring-opacity)); -} - -.hover\:ring-white:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity)); -} - -.hover\:ring-yellow-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 249 195 / var(--tw-ring-opacity)); -} - -.hover\:ring-yellow-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 240 138 / var(--tw-ring-opacity)); -} - -.hover\:ring-yellow-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 224 71 / var(--tw-ring-opacity)); -} - -.hover\:ring-yellow-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 204 21 / var(--tw-ring-opacity)); -} - -.hover\:ring-yellow-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 252 232 / var(--tw-ring-opacity)); -} - -.hover\:ring-yellow-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(234 179 8 / var(--tw-ring-opacity)); -} - -.hover\:ring-yellow-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(202 138 4 / var(--tw-ring-opacity)); -} - -.hover\:ring-yellow-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(161 98 7 / var(--tw-ring-opacity)); -} - -.hover\:ring-yellow-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(133 77 14 / var(--tw-ring-opacity)); -} - -.hover\:ring-yellow-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(113 63 18 / var(--tw-ring-opacity)); -} - -.hover\:ring-zinc-100:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(244 244 245 / var(--tw-ring-opacity)); -} - -.hover\:ring-zinc-200:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(228 228 231 / var(--tw-ring-opacity)); -} - -.hover\:ring-zinc-300:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(212 212 216 / var(--tw-ring-opacity)); -} - -.hover\:ring-zinc-400:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(161 161 170 / var(--tw-ring-opacity)); -} - -.hover\:ring-zinc-50:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 250 250 / var(--tw-ring-opacity)); -} - -.hover\:ring-zinc-500:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(113 113 122 / var(--tw-ring-opacity)); -} - -.hover\:ring-zinc-600:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(82 82 91 / var(--tw-ring-opacity)); -} - -.hover\:ring-zinc-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(63 63 70 / var(--tw-ring-opacity)); -} - -.hover\:ring-zinc-800:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(39 39 42 / var(--tw-ring-opacity)); -} - -.hover\:ring-zinc-900:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(24 24 27 / var(--tw-ring-opacity)); -} - -.focus\:outline-none:focus { - outline: 2px solid transparent; - outline-offset: 2px; -} - -.focus\:ring-0:focus { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); -} - -.focus\:ring-2:focus { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); -} - -.focus\:ring-amber-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 243 199 / var(--tw-ring-opacity)); -} - -.focus\:ring-amber-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity)); -} - -.focus\:ring-amber-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity)); -} - -.focus\:ring-amber-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 191 36 / var(--tw-ring-opacity)); -} - -.focus\:ring-amber-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 251 235 / var(--tw-ring-opacity)); -} - -.focus\:ring-amber-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity)); -} - -.focus\:ring-amber-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(217 119 6 / var(--tw-ring-opacity)); -} - -.focus\:ring-amber-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(180 83 9 / var(--tw-ring-opacity)); -} - -.focus\:ring-amber-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(146 64 14 / var(--tw-ring-opacity)); -} - -.focus\:ring-amber-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(120 53 15 / var(--tw-ring-opacity)); -} - -.focus\:ring-black:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity)); -} - -.focus\:ring-blue-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(219 234 254 / var(--tw-ring-opacity)); -} - -.focus\:ring-blue-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity)); -} - -.focus\:ring-blue-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity)); -} - -.focus\:ring-blue-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity)); -} - -.focus\:ring-blue-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(239 246 255 / var(--tw-ring-opacity)); -} - -.focus\:ring-blue-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity)); -} - -.focus\:ring-blue-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity)); -} - -.focus\:ring-blue-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(29 78 216 / var(--tw-ring-opacity)); -} - -.focus\:ring-blue-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(30 64 175 / var(--tw-ring-opacity)); -} - -.focus\:ring-blue-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(30 58 138 / var(--tw-ring-opacity)); -} - -.focus\:ring-cyan-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(207 250 254 / var(--tw-ring-opacity)); -} - -.focus\:ring-cyan-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(165 243 252 / var(--tw-ring-opacity)); -} - -.focus\:ring-cyan-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity)); -} - -.focus\:ring-cyan-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(34 211 238 / var(--tw-ring-opacity)); -} - -.focus\:ring-cyan-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(236 254 255 / var(--tw-ring-opacity)); -} - -.focus\:ring-cyan-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity)); -} - -.focus\:ring-cyan-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(8 145 178 / var(--tw-ring-opacity)); -} - -.focus\:ring-cyan-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(14 116 144 / var(--tw-ring-opacity)); -} - -.focus\:ring-cyan-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity)); -} - -.focus\:ring-cyan-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 78 99 / var(--tw-ring-opacity)); -} - -.focus\:ring-emerald-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(209 250 229 / var(--tw-ring-opacity)); -} - -.focus\:ring-emerald-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity)); -} - -.focus\:ring-emerald-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity)); -} - -.focus\:ring-emerald-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(52 211 153 / var(--tw-ring-opacity)); -} - -.focus\:ring-emerald-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(236 253 245 / var(--tw-ring-opacity)); -} - -.focus\:ring-emerald-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity)); -} - -.focus\:ring-emerald-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(5 150 105 / var(--tw-ring-opacity)); -} - -.focus\:ring-emerald-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(4 120 87 / var(--tw-ring-opacity)); -} - -.focus\:ring-emerald-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(6 95 70 / var(--tw-ring-opacity)); -} - -.focus\:ring-emerald-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(6 78 59 / var(--tw-ring-opacity)); -} - -.focus\:ring-fuchsia-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 232 255 / var(--tw-ring-opacity)); -} - -.focus\:ring-fuchsia-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 208 254 / var(--tw-ring-opacity)); -} - -.focus\:ring-fuchsia-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(240 171 252 / var(--tw-ring-opacity)); -} - -.focus\:ring-fuchsia-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(232 121 249 / var(--tw-ring-opacity)); -} - -.focus\:ring-fuchsia-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 244 255 / var(--tw-ring-opacity)); -} - -.focus\:ring-fuchsia-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(217 70 239 / var(--tw-ring-opacity)); -} - -.focus\:ring-fuchsia-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(192 38 211 / var(--tw-ring-opacity)); -} - -.focus\:ring-fuchsia-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(162 28 175 / var(--tw-ring-opacity)); -} - -.focus\:ring-fuchsia-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(134 25 143 / var(--tw-ring-opacity)); -} - -.focus\:ring-fuchsia-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(112 26 117 / var(--tw-ring-opacity)); -} - -.focus\:ring-gray-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(243 244 246 / var(--tw-ring-opacity)); -} - -.focus\:ring-gray-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity)); -} - -.focus\:ring-gray-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity)); -} - -.focus\:ring-gray-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity)); -} - -.focus\:ring-gray-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(249 250 251 / var(--tw-ring-opacity)); -} - -.focus\:ring-gray-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity)); -} - -.focus\:ring-gray-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity)); -} - -.focus\:ring-gray-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity)); -} - -.focus\:ring-gray-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity)); -} - -.focus\:ring-gray-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity)); -} - -.focus\:ring-green-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(220 252 231 / var(--tw-ring-opacity)); -} - -.focus\:ring-green-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(187 247 208 / var(--tw-ring-opacity)); -} - -.focus\:ring-green-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(134 239 172 / var(--tw-ring-opacity)); -} - -.focus\:ring-green-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(74 222 128 / var(--tw-ring-opacity)); -} - -.focus\:ring-green-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(240 253 244 / var(--tw-ring-opacity)); -} - -.focus\:ring-green-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity)); -} - -.focus\:ring-green-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 163 74 / var(--tw-ring-opacity)); -} - -.focus\:ring-green-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(21 128 61 / var(--tw-ring-opacity)); -} - -.focus\:ring-green-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 101 52 / var(--tw-ring-opacity)); -} - -.focus\:ring-green-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(20 83 45 / var(--tw-ring-opacity)); -} - -.focus\:ring-indigo-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(224 231 255 / var(--tw-ring-opacity)); -} - -.focus\:ring-indigo-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(199 210 254 / var(--tw-ring-opacity)); -} - -.focus\:ring-indigo-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity)); -} - -.focus\:ring-indigo-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(129 140 248 / var(--tw-ring-opacity)); -} - -.focus\:ring-indigo-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(238 242 255 / var(--tw-ring-opacity)); -} - -.focus\:ring-indigo-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity)); -} - -.focus\:ring-indigo-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity)); -} - -.focus\:ring-indigo-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(67 56 202 / var(--tw-ring-opacity)); -} - -.focus\:ring-indigo-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(55 48 163 / var(--tw-ring-opacity)); -} - -.focus\:ring-indigo-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(49 46 129 / var(--tw-ring-opacity)); -} - -.focus\:ring-lime-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(236 252 203 / var(--tw-ring-opacity)); -} - -.focus\:ring-lime-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(217 249 157 / var(--tw-ring-opacity)); -} - -.focus\:ring-lime-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(190 242 100 / var(--tw-ring-opacity)); -} - -.focus\:ring-lime-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(163 230 53 / var(--tw-ring-opacity)); -} - -.focus\:ring-lime-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(247 254 231 / var(--tw-ring-opacity)); -} - -.focus\:ring-lime-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(132 204 22 / var(--tw-ring-opacity)); -} - -.focus\:ring-lime-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(101 163 13 / var(--tw-ring-opacity)); -} - -.focus\:ring-lime-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(77 124 15 / var(--tw-ring-opacity)); -} - -.focus\:ring-lime-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(63 98 18 / var(--tw-ring-opacity)); -} - -.focus\:ring-lime-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(54 83 20 / var(--tw-ring-opacity)); -} - -.focus\:ring-neutral-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 245 245 / var(--tw-ring-opacity)); -} - -.focus\:ring-neutral-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(229 229 229 / var(--tw-ring-opacity)); -} - -.focus\:ring-neutral-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(212 212 212 / var(--tw-ring-opacity)); -} - -.focus\:ring-neutral-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(163 163 163 / var(--tw-ring-opacity)); -} - -.focus\:ring-neutral-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 250 250 / var(--tw-ring-opacity)); -} - -.focus\:ring-neutral-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(115 115 115 / var(--tw-ring-opacity)); -} - -.focus\:ring-neutral-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(82 82 82 / var(--tw-ring-opacity)); -} - -.focus\:ring-neutral-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(64 64 64 / var(--tw-ring-opacity)); -} - -.focus\:ring-neutral-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(38 38 38 / var(--tw-ring-opacity)); -} - -.focus\:ring-neutral-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(23 23 23 / var(--tw-ring-opacity)); -} - -.focus\:ring-orange-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 237 213 / var(--tw-ring-opacity)); -} - -.focus\:ring-orange-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 215 170 / var(--tw-ring-opacity)); -} - -.focus\:ring-orange-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 186 116 / var(--tw-ring-opacity)); -} - -.focus\:ring-orange-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 146 60 / var(--tw-ring-opacity)); -} - -.focus\:ring-orange-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 247 237 / var(--tw-ring-opacity)); -} - -.focus\:ring-orange-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity)); -} - -.focus\:ring-orange-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(234 88 12 / var(--tw-ring-opacity)); -} - -.focus\:ring-orange-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(194 65 12 / var(--tw-ring-opacity)); -} - -.focus\:ring-orange-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(154 52 18 / var(--tw-ring-opacity)); -} - -.focus\:ring-orange-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(124 45 18 / var(--tw-ring-opacity)); -} - -.focus\:ring-pink-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(252 231 243 / var(--tw-ring-opacity)); -} - -.focus\:ring-pink-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 207 232 / var(--tw-ring-opacity)); -} - -.focus\:ring-pink-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(249 168 212 / var(--tw-ring-opacity)); -} - -.focus\:ring-pink-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(244 114 182 / var(--tw-ring-opacity)); -} - -.focus\:ring-pink-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 242 248 / var(--tw-ring-opacity)); -} - -.focus\:ring-pink-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(236 72 153 / var(--tw-ring-opacity)); -} - -.focus\:ring-pink-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(219 39 119 / var(--tw-ring-opacity)); -} - -.focus\:ring-pink-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(190 24 93 / var(--tw-ring-opacity)); -} - -.focus\:ring-pink-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(131 24 67 / var(--tw-ring-opacity)); -} - -.focus\:ring-purple-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(243 232 255 / var(--tw-ring-opacity)); -} - -.focus\:ring-purple-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(233 213 255 / var(--tw-ring-opacity)); -} - -.focus\:ring-purple-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(216 180 254 / var(--tw-ring-opacity)); -} - -.focus\:ring-purple-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(192 132 252 / var(--tw-ring-opacity)); -} - -.focus\:ring-purple-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 245 255 / var(--tw-ring-opacity)); -} - -.focus\:ring-purple-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity)); -} - -.focus\:ring-purple-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(147 51 234 / var(--tw-ring-opacity)); -} - -.focus\:ring-purple-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(126 34 206 / var(--tw-ring-opacity)); -} - -.focus\:ring-purple-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(107 33 168 / var(--tw-ring-opacity)); -} - -.focus\:ring-purple-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(88 28 135 / var(--tw-ring-opacity)); -} - -.focus\:ring-red-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 226 226 / var(--tw-ring-opacity)); -} - -.focus\:ring-red-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity)); -} - -.focus\:ring-red-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity)); -} - -.focus\:ring-red-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity)); -} - -.focus\:ring-red-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 242 242 / var(--tw-ring-opacity)); -} - -.focus\:ring-red-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity)); -} - -.focus\:ring-red-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(220 38 38 / var(--tw-ring-opacity)); -} - -.focus\:ring-red-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(185 28 28 / var(--tw-ring-opacity)); -} - -.focus\:ring-red-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(153 27 27 / var(--tw-ring-opacity)); -} - -.focus\:ring-red-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(127 29 29 / var(--tw-ring-opacity)); -} - -.focus\:ring-rose-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 228 230 / var(--tw-ring-opacity)); -} - -.focus\:ring-rose-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 205 211 / var(--tw-ring-opacity)); -} - -.focus\:ring-rose-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 164 175 / var(--tw-ring-opacity)); -} - -.focus\:ring-rose-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 113 133 / var(--tw-ring-opacity)); -} - -.focus\:ring-rose-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 241 242 / var(--tw-ring-opacity)); -} - -.focus\:ring-rose-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(244 63 94 / var(--tw-ring-opacity)); -} - -.focus\:ring-rose-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(225 29 72 / var(--tw-ring-opacity)); -} - -.focus\:ring-rose-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(190 18 60 / var(--tw-ring-opacity)); -} - -.focus\:ring-rose-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(159 18 57 / var(--tw-ring-opacity)); -} - -.focus\:ring-rose-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(136 19 55 / var(--tw-ring-opacity)); -} - -.focus\:ring-sky-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(224 242 254 / var(--tw-ring-opacity)); -} - -.focus\:ring-sky-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(186 230 253 / var(--tw-ring-opacity)); -} - -.focus\:ring-sky-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(125 211 252 / var(--tw-ring-opacity)); -} - -.focus\:ring-sky-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(56 189 248 / var(--tw-ring-opacity)); -} - -.focus\:ring-sky-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(240 249 255 / var(--tw-ring-opacity)); -} - -.focus\:ring-sky-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity)); -} - -.focus\:ring-sky-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(2 132 199 / var(--tw-ring-opacity)); -} - -.focus\:ring-sky-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(3 105 161 / var(--tw-ring-opacity)); -} - -.focus\:ring-sky-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(7 89 133 / var(--tw-ring-opacity)); -} - -.focus\:ring-sky-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(12 74 110 / var(--tw-ring-opacity)); -} - -.focus\:ring-slate-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(241 245 249 / var(--tw-ring-opacity)); -} - -.focus\:ring-slate-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity)); -} - -.focus\:ring-slate-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(203 213 225 / var(--tw-ring-opacity)); -} - -.focus\:ring-slate-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(148 163 184 / var(--tw-ring-opacity)); -} - -.focus\:ring-slate-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(248 250 252 / var(--tw-ring-opacity)); -} - -.focus\:ring-slate-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(100 116 139 / var(--tw-ring-opacity)); -} - -.focus\:ring-slate-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(71 85 105 / var(--tw-ring-opacity)); -} - -.focus\:ring-slate-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(51 65 85 / var(--tw-ring-opacity)); -} - -.focus\:ring-slate-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(30 41 59 / var(--tw-ring-opacity)); -} - -.focus\:ring-slate-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(15 23 42 / var(--tw-ring-opacity)); -} - -.focus\:ring-stone-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 245 244 / var(--tw-ring-opacity)); -} - -.focus\:ring-stone-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(231 229 228 / var(--tw-ring-opacity)); -} - -.focus\:ring-stone-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(214 211 209 / var(--tw-ring-opacity)); -} - -.focus\:ring-stone-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(168 162 158 / var(--tw-ring-opacity)); -} - -.focus\:ring-stone-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 250 249 / var(--tw-ring-opacity)); -} - -.focus\:ring-stone-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(120 113 108 / var(--tw-ring-opacity)); -} - -.focus\:ring-stone-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(87 83 78 / var(--tw-ring-opacity)); -} - -.focus\:ring-stone-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(68 64 60 / var(--tw-ring-opacity)); -} - -.focus\:ring-stone-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(41 37 36 / var(--tw-ring-opacity)); -} - -.focus\:ring-stone-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(28 25 23 / var(--tw-ring-opacity)); -} - -.focus\:ring-teal-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(204 251 241 / var(--tw-ring-opacity)); -} - -.focus\:ring-teal-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(153 246 228 / var(--tw-ring-opacity)); -} - -.focus\:ring-teal-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(94 234 212 / var(--tw-ring-opacity)); -} - -.focus\:ring-teal-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(45 212 191 / var(--tw-ring-opacity)); -} - -.focus\:ring-teal-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(240 253 250 / var(--tw-ring-opacity)); -} - -.focus\:ring-teal-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(20 184 166 / var(--tw-ring-opacity)); -} - -.focus\:ring-teal-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(13 148 136 / var(--tw-ring-opacity)); -} - -.focus\:ring-teal-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(15 118 110 / var(--tw-ring-opacity)); -} - -.focus\:ring-teal-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(17 94 89 / var(--tw-ring-opacity)); -} - -.focus\:ring-teal-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(19 78 74 / var(--tw-ring-opacity)); -} - -.focus\:ring-transparent:focus { - --tw-ring-color: transparent; -} - -.focus\:ring-violet-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(237 233 254 / var(--tw-ring-opacity)); -} - -.focus\:ring-violet-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(221 214 254 / var(--tw-ring-opacity)); -} - -.focus\:ring-violet-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity)); -} - -.focus\:ring-violet-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(167 139 250 / var(--tw-ring-opacity)); -} - -.focus\:ring-violet-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(245 243 255 / var(--tw-ring-opacity)); -} - -.focus\:ring-violet-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(139 92 246 / var(--tw-ring-opacity)); -} - -.focus\:ring-violet-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(124 58 237 / var(--tw-ring-opacity)); -} - -.focus\:ring-violet-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(109 40 217 / var(--tw-ring-opacity)); -} - -.focus\:ring-violet-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(91 33 182 / var(--tw-ring-opacity)); -} - -.focus\:ring-violet-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(76 29 149 / var(--tw-ring-opacity)); -} - -.focus\:ring-white:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity)); -} - -.focus\:ring-yellow-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 249 195 / var(--tw-ring-opacity)); -} - -.focus\:ring-yellow-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 240 138 / var(--tw-ring-opacity)); -} - -.focus\:ring-yellow-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 224 71 / var(--tw-ring-opacity)); -} - -.focus\:ring-yellow-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 204 21 / var(--tw-ring-opacity)); -} - -.focus\:ring-yellow-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 252 232 / var(--tw-ring-opacity)); -} - -.focus\:ring-yellow-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(234 179 8 / var(--tw-ring-opacity)); -} - -.focus\:ring-yellow-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(202 138 4 / var(--tw-ring-opacity)); -} - -.focus\:ring-yellow-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(161 98 7 / var(--tw-ring-opacity)); -} - -.focus\:ring-yellow-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(133 77 14 / var(--tw-ring-opacity)); -} - -.focus\:ring-yellow-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(113 63 18 / var(--tw-ring-opacity)); -} - -.focus\:ring-zinc-100:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(244 244 245 / var(--tw-ring-opacity)); -} - -.focus\:ring-zinc-200:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(228 228 231 / var(--tw-ring-opacity)); -} - -.focus\:ring-zinc-300:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(212 212 216 / var(--tw-ring-opacity)); -} - -.focus\:ring-zinc-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(161 161 170 / var(--tw-ring-opacity)); -} - -.focus\:ring-zinc-50:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 250 250 / var(--tw-ring-opacity)); -} - -.focus\:ring-zinc-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(113 113 122 / var(--tw-ring-opacity)); -} - -.focus\:ring-zinc-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(82 82 91 / var(--tw-ring-opacity)); -} - -.focus\:ring-zinc-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(63 63 70 / var(--tw-ring-opacity)); -} - -.focus\:ring-zinc-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(39 39 42 / var(--tw-ring-opacity)); -} - -.focus\:ring-zinc-900:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(24 24 27 / var(--tw-ring-opacity)); -} - -.focus\:ring-offset-2:focus { - --tw-ring-offset-width: 2px; -} - -@media (min-width: 640px) { - .sm\:col-span-1 { - grid-column: span 1 / span 1; - } - - .sm\:col-span-10 { - grid-column: span 10 / span 10; - } - - .sm\:col-span-11 { - grid-column: span 11 / span 11; - } - - .sm\:col-span-12 { - grid-column: span 12 / span 12; - } - - .sm\:col-span-2 { - grid-column: span 2 / span 2; - } - - .sm\:col-span-3 { - grid-column: span 3 / span 3; - } - - .sm\:col-span-4 { - grid-column: span 4 / span 4; - } - - .sm\:col-span-5 { - grid-column: span 5 / span 5; - } - - .sm\:col-span-6 { - grid-column: span 6 / span 6; - } - - .sm\:col-span-7 { - grid-column: span 7 / span 7; - } - - .sm\:col-span-8 { - grid-column: span 8 / span 8; - } - - .sm\:col-span-9 { - grid-column: span 9 / span 9; - } - - .sm\:grid-cols-1 { - grid-template-columns: repeat(1, minmax(0, 1fr)); - } - - .sm\:grid-cols-10 { - grid-template-columns: repeat(10, minmax(0, 1fr)); - } - - .sm\:grid-cols-11 { - grid-template-columns: repeat(11, minmax(0, 1fr)); - } - - .sm\:grid-cols-12 { - grid-template-columns: repeat(12, minmax(0, 1fr)); - } - - .sm\:grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - - .sm\:grid-cols-3 { - grid-template-columns: repeat(3, minmax(0, 1fr)); - } - - .sm\:grid-cols-4 { - grid-template-columns: repeat(4, minmax(0, 1fr)); - } - - .sm\:grid-cols-5 { - grid-template-columns: repeat(5, minmax(0, 1fr)); - } - - .sm\:grid-cols-6 { - grid-template-columns: repeat(6, minmax(0, 1fr)); - } - - .sm\:grid-cols-7 { - grid-template-columns: repeat(7, minmax(0, 1fr)); - } - - .sm\:grid-cols-8 { - grid-template-columns: repeat(8, minmax(0, 1fr)); - } - - .sm\:grid-cols-9 { - grid-template-columns: repeat(9, minmax(0, 1fr)); - } - - .sm\:grid-cols-none { - grid-template-columns: none; - } -} - -@media (min-width: 768px) { - .md\:col-span-1 { - grid-column: span 1 / span 1; - } - - .md\:col-span-10 { - grid-column: span 10 / span 10; - } - - .md\:col-span-11 { - grid-column: span 11 / span 11; - } - - .md\:col-span-12 { - grid-column: span 12 / span 12; - } - - .md\:col-span-2 { - grid-column: span 2 / span 2; - } - - .md\:col-span-3 { - grid-column: span 3 / span 3; - } - - .md\:col-span-4 { - grid-column: span 4 / span 4; - } - - .md\:col-span-5 { - grid-column: span 5 / span 5; - } - - .md\:col-span-6 { - grid-column: span 6 / span 6; - } - - .md\:col-span-7 { - grid-column: span 7 / span 7; - } - - .md\:col-span-8 { - grid-column: span 8 / span 8; - } - - .md\:col-span-9 { - grid-column: span 9 / span 9; - } - - .md\:grid { - display: grid; - } - - .md\:w-96 { - width: 24rem; - } - - .md\:grid-cols-1 { - grid-template-columns: repeat(1, minmax(0, 1fr)); - } - - .md\:grid-cols-10 { - grid-template-columns: repeat(10, minmax(0, 1fr)); - } - - .md\:grid-cols-11 { - grid-template-columns: repeat(11, minmax(0, 1fr)); - } - - .md\:grid-cols-12 { - grid-template-columns: repeat(12, minmax(0, 1fr)); - } - - .md\:grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - - .md\:grid-cols-3 { - grid-template-columns: repeat(3, minmax(0, 1fr)); - } - - .md\:grid-cols-4 { - grid-template-columns: repeat(4, minmax(0, 1fr)); - } - - .md\:grid-cols-5 { - grid-template-columns: repeat(5, minmax(0, 1fr)); - } - - .md\:grid-cols-6 { - grid-template-columns: repeat(6, minmax(0, 1fr)); - } - - .md\:grid-cols-7 { - grid-template-columns: repeat(7, minmax(0, 1fr)); - } - - .md\:grid-cols-8 { - grid-template-columns: repeat(8, minmax(0, 1fr)); - } - - .md\:grid-cols-9 { - grid-template-columns: repeat(9, minmax(0, 1fr)); - } - - .md\:grid-cols-none { - grid-template-columns: none; - } - - .md\:gap-4 { - gap: 1rem; - } - - .md\:text-center { - text-align: center; - } -} - -@media (min-width: 1024px) { - .lg\:col-span-1 { - grid-column: span 1 / span 1; - } - - .lg\:col-span-10 { - grid-column: span 10 / span 10; - } - - .lg\:col-span-11 { - grid-column: span 11 / span 11; - } - - .lg\:col-span-12 { - grid-column: span 12 / span 12; - } - - .lg\:col-span-2 { - grid-column: span 2 / span 2; - } - - .lg\:col-span-3 { - grid-column: span 3 / span 3; - } - - .lg\:col-span-4 { - grid-column: span 4 / span 4; - } - - .lg\:col-span-5 { - grid-column: span 5 / span 5; - } - - .lg\:col-span-6 { - grid-column: span 6 / span 6; - } - - .lg\:col-span-7 { - grid-column: span 7 / span 7; - } - - .lg\:col-span-8 { - grid-column: span 8 / span 8; - } - - .lg\:col-span-9 { - grid-column: span 9 / span 9; - } - - .lg\:grid-cols-1 { - grid-template-columns: repeat(1, minmax(0, 1fr)); - } - - .lg\:grid-cols-10 { - grid-template-columns: repeat(10, minmax(0, 1fr)); - } - - .lg\:grid-cols-11 { - grid-template-columns: repeat(11, minmax(0, 1fr)); - } - - .lg\:grid-cols-12 { - grid-template-columns: repeat(12, minmax(0, 1fr)); - } - - .lg\:grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - - .lg\:grid-cols-3 { - grid-template-columns: repeat(3, minmax(0, 1fr)); - } - - .lg\:grid-cols-4 { - grid-template-columns: repeat(4, minmax(0, 1fr)); - } - - .lg\:grid-cols-5 { - grid-template-columns: repeat(5, minmax(0, 1fr)); - } - - .lg\:grid-cols-6 { - grid-template-columns: repeat(6, minmax(0, 1fr)); - } - - .lg\:grid-cols-7 { - grid-template-columns: repeat(7, minmax(0, 1fr)); - } - - .lg\:grid-cols-8 { - grid-template-columns: repeat(8, minmax(0, 1fr)); - } - - .lg\:grid-cols-9 { - grid-template-columns: repeat(9, minmax(0, 1fr)); - } - - .lg\:grid-cols-none { - grid-template-columns: none; - } -} diff --git a/tsconfig.json b/tsconfig.json index 0c7555f..1ff80ca 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,8 +21,9 @@ ], "paths": { "@/*": ["./src/*"] - } + }, + "types": ["@testing-library/jest-dom", "cypress", "node"] }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "vitest.config.mjs", "cypress/support/index.d.ts"], "exclude": ["node_modules"] } diff --git a/vitest.config.mjs b/vitest.config.mjs new file mode 100644 index 0000000..749a697 --- /dev/null +++ b/vitest.config.mjs @@ -0,0 +1,19 @@ +// +import { defineConfig } from 'vitest/config' +import react from '@vitejs/plugin-react' +import path from 'path' + +export default defineConfig({ + plugins: [react()], + test: { + globals: true, + environment: 'jsdom', + setupFiles: ['dotenv/config', './vitest.setup.ts'], + threads: false, + }, + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + }, + }, +}) diff --git a/vitest.setup.ts b/vitest.setup.ts new file mode 100644 index 0000000..0d11365 --- /dev/null +++ b/vitest.setup.ts @@ -0,0 +1,8 @@ +import '@testing-library/jest-dom/vitest' + +Object.assign(process.env, { + NEXT_PUBLIC_API_KEY: 'abcd123456', + NEXT_PUBLIC_API_URL: 'http://localhost:1080', + NEXT_PUBLIC_API_REVALIDATE: '60', + NEXT_PUBLIC_API_CACHE: 'no-cache', +})