diff --git a/.changeset/swift-fans-decide.md b/.changeset/swift-fans-decide.md new file mode 100644 index 00000000..c258a790 --- /dev/null +++ b/.changeset/swift-fans-decide.md @@ -0,0 +1,5 @@ +--- +'playroom': patch +--- + +Remove `data-testid` attributes from UI elements diff --git a/cypress/e2e/editor.cy.js b/cypress/e2e/editor.cy.ts similarity index 90% rename from cypress/e2e/editor.cy.js rename to cypress/e2e/editor.cy.ts index e42ec32d..6521ce15 100644 --- a/cypress/e2e/editor.cy.js +++ b/cypress/e2e/editor.cy.ts @@ -21,7 +21,7 @@ describe('Editor', () => { }); it('autocompletes', () => { - typeCode('', { delay: 100 }); + typeCode('', 100); assertFirstFrameContains('Foo'); assertCodePaneContains(''); }); diff --git a/cypress/e2e/keymaps.cy.js b/cypress/e2e/keymaps.cy.ts similarity index 99% rename from cypress/e2e/keymaps.cy.js rename to cypress/e2e/keymaps.cy.ts index 36114b82..8ab3dd2e 100644 --- a/cypress/e2e/keymaps.cy.js +++ b/cypress/e2e/keymaps.cy.ts @@ -492,7 +492,7 @@ describe('Keymaps', () => { }); it('should jump to line and column number correctly', () => { - jumpToLine('6:10'); + jumpToLine(6, 10); typeCode('a'); assertCodePaneContains(dedent` diff --git a/cypress/e2e/scope.cy.js b/cypress/e2e/scope.cy.ts similarity index 100% rename from cypress/e2e/scope.cy.js rename to cypress/e2e/scope.cy.ts diff --git a/cypress/e2e/smoke.cy.js b/cypress/e2e/smoke.cy.ts similarity index 100% rename from cypress/e2e/smoke.cy.js rename to cypress/e2e/smoke.cy.ts diff --git a/cypress/e2e/snippets.cy.js b/cypress/e2e/snippets.cy.ts similarity index 92% rename from cypress/e2e/snippets.cy.js rename to cypress/e2e/snippets.cy.ts index 1db83317..088e3f55 100644 --- a/cypress/e2e/snippets.cy.js +++ b/cypress/e2e/snippets.cy.ts @@ -8,7 +8,7 @@ import { filterSnippets, toggleSnippets, assertSnippetCount, - assertSnippetsListIsVisible, + assertSnippetsSearchFieldIsVisible, mouseOverSnippet, loadPlayroom, } from '../support/utils'; @@ -23,7 +23,7 @@ describe('Snippets', () => { it('driven with mouse', () => { // Open and format for insertion point toggleSnippets(); - assertSnippetsListIsVisible(); + assertSnippetsSearchFieldIsVisible(); assertCodePaneLineCount(8); // Browse snippetlist @@ -69,12 +69,12 @@ describe('Snippets', () => { it('driven with keyboard', () => { // Open and format for insertion point typeCode(`${isMac() ? '{cmd}' : '{ctrl}'}k`); - assertSnippetsListIsVisible(); + assertSnippetsSearchFieldIsVisible(); assertCodePaneLineCount(8); filterSnippets('{esc}'); - assertCodePaneLineCount(1, { wait: 500 }); + assertCodePaneLineCount(1, true); typeCode(`${isMac() ? '{cmd}' : '{ctrl}'}k`); - assertSnippetsListIsVisible(); + assertSnippetsSearchFieldIsVisible(); assertCodePaneLineCount(8); // Browse snippetlist @@ -89,7 +89,7 @@ describe('Snippets', () => { // Close without persisting filterSnippets('{esc}'); assertCodePaneContains('
Initial code
'); - assertCodePaneLineCount(1, { wait: 500 }); + assertCodePaneLineCount(1, true); // Re-open and persist typeCode(`${isMac() ? '{cmd}' : '{ctrl}'}k`); diff --git a/cypress/e2e/toolbar.cy.js b/cypress/e2e/toolbar.cy.ts similarity index 83% rename from cypress/e2e/toolbar.cy.js rename to cypress/e2e/toolbar.cy.ts index d5eaa3fb..dfc184c6 100644 --- a/cypress/e2e/toolbar.cy.js +++ b/cypress/e2e/toolbar.cy.ts @@ -1,10 +1,10 @@ import { assertFramesMatch, - selectWidthPreferenceByIndex, assertPreviewContains, typeCode, gotoPreview, loadPlayroom, + selectWidthPreference, } from '../support/utils'; describe('Toolbar', () => { @@ -13,11 +13,11 @@ describe('Toolbar', () => { }); it('filter widths', () => { - const frames = ['320px', '375px', '768px', '1024px']; + const frames = [320, 375, 768, 1024]; const widthIndexToSelect = 1; assertFramesMatch(frames); - selectWidthPreferenceByIndex(widthIndexToSelect); + selectWidthPreference(frames[widthIndexToSelect]); assertFramesMatch([frames[widthIndexToSelect]]); }); @@ -45,8 +45,9 @@ describe('Toolbar', () => { } }); }) - .get('[data-testid="copyToClipboard"]') + .findByRole('button', { name: /Copy Playroom link/i }) .click(); + cy.then(() => expect(copySpy).to.have.been.called); }); }); diff --git a/cypress/e2e/urlHandling.cy.js b/cypress/e2e/urlHandling.cy.ts similarity index 86% rename from cypress/e2e/urlHandling.cy.js rename to cypress/e2e/urlHandling.cy.ts index fa971d1e..82723fbf 100644 --- a/cypress/e2e/urlHandling.cy.js +++ b/cypress/e2e/urlHandling.cy.ts @@ -20,7 +20,7 @@ describe('URL handling', () => { 'http://localhost:9000/#?code=N4Ig7glgJgLgFgZxALgNoGYDsBWANJgNgA4BdAXyA' ); - assertFramesMatch(['375px', '768px']); + assertFramesMatch([375, 768]); }); }); @@ -40,10 +40,10 @@ describe('URL handling', () => { ); assertFramesMatch([ - 'themeOne – 375px', - 'themeTwo – 375px', - 'themeOne – 768px', - 'themeTwo – 768px', + ['themeOne', 375], + ['themeTwo', 375], + ['themeOne', 768], + ['themeTwo', 768], ]); }); }); diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 51d9ec46..8ebed4b2 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -1,3 +1,5 @@ +import '@testing-library/cypress/add-commands'; + Cypress.Commands.add( 'getFromPreviewFrame', { prevSubject: 'element' }, diff --git a/cypress/support/utils.js b/cypress/support/utils.ts similarity index 52% rename from cypress/support/utils.js rename to cypress/support/utils.ts index 4bc657e2..dc8ce39b 100644 --- a/cypress/support/utils.js +++ b/cypress/support/utils.ts @@ -4,8 +4,11 @@ import dedent from 'dedent'; import { createUrl } from '../../utils'; import { isMac } from '../../src/utils/formatting'; +import type { Direction } from '../../src/Playroom/CodeEditor/keymaps/types'; -export const cmdPlus = (keyCombo) => { +const CYPRESS_DEFAULT_WAIT_TIME = 500; + +export const cmdPlus = (keyCombo: string) => { const platformSpecificKey = isMac() ? 'cmd' : 'ctrl'; return `${platformSpecificKey}+${keyCombo}`; }; @@ -17,7 +20,7 @@ export const getPreviewFrames = () => cy.get('[data-testid="previewFrame"]'); export const getPreviewFrameNames = () => cy.get('[data-testid="frameName"]'); -export const typeCode = (code, { delay } = {}) => +export const typeCode = (code: string, delay?: number) => getCodeEditor().focused().type(code, { delay }); export const formatCode = () => @@ -25,45 +28,44 @@ export const formatCode = () => .focused() .type(`${isMac() ? '{cmd}' : '{ctrl}'}s`); -export const selectWidthPreferenceByIndex = (index) => - cy - .get('[data-testid="toggleFrames"]') - .then((el) => el.get(0).click()) - .get('[data-testid="widthsPreferences"] label') - .eq(index) - .then((el) => el.get(0).click()); +export const selectWidthPreference = (width: number) => { + cy.findByRole('button', { name: 'Configure visible frames' }).click(); + cy.findByRole('checkbox', { name: `${width}` }).click(); +}; export const togglePreviewPanel = () => - cy.get('[data-testid="togglePreview"]').then((el) => el.get(0).click()); + cy.findByRole('button', { name: 'Preview playroom' }).click(); export const gotoPreview = () => { - togglePreviewPanel() - .get('[data-testid="view-prototype"]') - .then((el) => cy.visit(el.get(0).href)); + togglePreviewPanel(); + cy.findByRole('link', { name: 'Open' }).then((link) => { + cy.visit(link.prop('href')); + }); }; export const toggleSnippets = () => - cy.get('[data-testid="toggleSnippets"]').click(); + cy.findByRole('button', { name: /Insert snippet/i }).click(); -export const filterSnippets = (search) => { - cy.get('[data-testid="filterSnippets"]').type(search); +export const filterSnippets = (search: string) => { + cy.findByRole('searchbox', { name: 'Search snippets' }).type(search); }; -export const assertSnippetsListIsVisible = () => - cy.get('[data-testid="snippets"]').should('be.visible'); +export const assertSnippetsSearchFieldIsVisible = () => + cy.findByRole('searchbox', { name: 'Search snippets' }).should('be.visible'); -const getSnippets = () => cy.get('[data-testid="snippet-list"] li'); +const getSnippets = () => + cy.findByRole('list', { name: 'Filtered snippets' }).find('li'); -export const selectSnippetByIndex = (index) => getSnippets().eq(index); +export const selectSnippetByIndex = (index: number) => getSnippets().eq(index); -export const mouseOverSnippet = (index) => +export const mouseOverSnippet = (index: number) => // force stops cypress scrolling the panel out of the editor selectSnippetByIndex(index).trigger('mousemove', { force: true }); -export const assertSnippetCount = (count) => +export const assertSnippetCount = (count: number) => getSnippets().should('have.length', count); -export const assertFirstFrameContains = (text) => +export const assertFirstFrameContains = (text: string) => getPreviewFrames() .first() .its('0.contentDocument.body') @@ -71,17 +73,11 @@ export const assertFirstFrameContains = (text) => expect(frameBody.innerText).to.eq(text); }); -/** - * @param {number} numCharacters - */ -export const selectNextCharacters = (numCharacters) => { +export const selectNextCharacters = (numCharacters: number) => { typeCode('{shift+rightArrow}'.repeat(numCharacters)); }; -/** - * @param {number} numWords - */ -export const selectNextWords = (numWords) => { +export const selectNextWords = (numWords: number) => { const modifier = isMac() ? 'alt' : 'ctrl'; typeCode(`{shift+${modifier}+rightArrow}`.repeat(numWords)); }; @@ -94,11 +90,7 @@ export const selectToEndOfLine = () => { typeCode(isMac() ? '{shift+cmd+rightArrow}' : '{shift+end}'); }; -/** - * @param {number} x; - * @param {number | undefined} y - */ -export const moveBy = (x, y = 0) => { +export const moveBy = (x: number, y: number | undefined = 0) => { if (x) { const xDirection = x >= 0 ? '{rightArrow}' : '{leftArrow}'; typeCode(xDirection.repeat(x)); @@ -110,10 +102,7 @@ export const moveBy = (x, y = 0) => { } }; -/** - * @param {number} numWords - */ -export const moveByWords = (numWords) => { +export const moveByWords = (numWords: number) => { const modifier = isMac() ? 'alt' : 'ctrl'; typeCode(`{${modifier}+rightArrow}`.repeat(numWords)); }; @@ -122,22 +111,18 @@ export const moveToEndOfLine = () => { typeCode(isMac() ? '{cmd+rightArrow}' : '{end}'); }; -/** - * @typedef {import('../../src/Playroom/CodeEditor/keymaps/types').Direction} Direction - */ -/** - * @param {number} numLines - * @param {Direction} direction - */ -export const selectNextLines = (numLines, direction = 'down') => { +export const selectNextLines = ( + numLines: number, + direction: Direction = 'down' +) => { const arrowCode = direction === 'down' ? 'downArrow' : 'upArrow'; typeCode(`{shift+${arrowCode}}`.repeat(numLines)); }; -export const assertCodePaneContains = (text) => { +export const assertCodePaneContains = (text: string) => { getCodeEditor().within(() => { // Accumulate text from individual line elements as they don't include line numbers - const lines = []; + const lines: string[] = []; cy.get('.CodeMirror-line').each(($el) => lines.push($el.text())); cy.then(() => { @@ -149,26 +134,38 @@ export const assertCodePaneContains = (text) => { }); }; -export const assertCodePaneLineCount = (lines, { wait } = {}) => { +export const assertCodePaneLineCount = ( + lines: number, + wait: boolean = false +) => { getCodeEditor().within(() => cy.get('.CodeMirror-line').should('have.length', lines) ); // Wait after check to ensure original focus is restored - if (typeof wait === 'number') { - cy.wait(wait); + if (wait) { + cy.wait(CYPRESS_DEFAULT_WAIT_TIME); // eslint-disable-line @finsit/cypress/no-unnecessary-waiting } }; -export const assertFramesMatch = (matches) => +export const assertFramesMatch = ( + frames: number[] | Array<[frameTheme: string, frameWidth: number]> +) => { + const formattedFrames = frames.map((frame) => + typeof frame === 'number' ? `${frame}px` : `${frame[0]} – ${frame[1]}px` + ); + getPreviewFrameNames() - .should('have.length', matches.length) - .should((frames) => { - const frameNames = frames.map((_, el) => el.innerText).toArray(); - return expect(frameNames).to.deep.equal(matches); + .should('have.length', frames.length) + .should((previewFrames) => { + const formattedPreviewFrames = previewFrames + .map((_, el) => el.innerText) + .toArray(); + return expect(formattedPreviewFrames).to.deep.equal(formattedFrames); }); +}; -export const assertPreviewContains = (text) => +export const assertPreviewContains = (text: string) => cy .then(() => { cy.get('[data-testid="splashscreen"]').should('not.be.visible'); @@ -178,42 +175,32 @@ export const assertPreviewContains = (text) => expect(el.get(0).innerText).to.eq(text); }); -export const loadPlayroom = (initialCode) => { +export const loadPlayroom = (initialCode?: string) => { const baseUrl = 'http://localhost:9000'; const visitUrl = initialCode ? createUrl({ baseUrl, code: dedent(initialCode) }) : baseUrl; - return cy - .visit(visitUrl) - .window() - .then((win) => { - const { storageKey } = win.__playroomConfig__; - indexedDB.deleteDatabase(storageKey); - }); + return cy.visit(visitUrl).then((window) => { + const { storageKey } = window.__playroomConfig__; + indexedDB.deleteDatabase(storageKey); + }); }; -const typeInSearchField = (text) => +const typeInSearchField = (text: string) => cy.get('.CodeMirror-search-field').type(text); -/** - * @param {string} term - */ -export const findInCode = (term) => { +export const findInCode = (term: string) => { // Wait necessary to ensure code pane is focussed - cy.wait(500); // eslint-disable-line @finsit/cypress/no-unnecessary-waiting + cy.wait(CYPRESS_DEFAULT_WAIT_TIME); // eslint-disable-line @finsit/cypress/no-unnecessary-waiting typeCode(`{${cmdPlus('f')}}`); typeInSearchField(`${term}{enter}`); }; -/** - * @param {string} term - * @param {string} [replaceWith] - */ -export const replaceInCode = (term, replaceWith) => { +export const replaceInCode = (term: string, replaceWith?: string) => { // Wait necessary to ensure code pane is focussed - cy.wait(500); // eslint-disable-line @finsit/cypress/no-unnecessary-waiting + cy.wait(CYPRESS_DEFAULT_WAIT_TIME); // eslint-disable-line @finsit/cypress/no-unnecessary-waiting typeCode(`{${cmdPlus('alt+f')}}`); typeInSearchField(`${term}{enter}`); if (replaceWith) { @@ -221,20 +208,15 @@ export const replaceInCode = (term, replaceWith) => { } }; -/** - * @param {number} line - */ -export const jumpToLine = (line) => { +export const jumpToLine = (line: number, character?: number) => { // Wait necessary to ensure code pane is focussed - cy.wait(500); // eslint-disable-line @finsit/cypress/no-unnecessary-waiting + cy.wait(CYPRESS_DEFAULT_WAIT_TIME); // eslint-disable-line @finsit/cypress/no-unnecessary-waiting typeCode(`{${cmdPlus('g')}}`); - typeCode(`${line}{enter}`); + + typeCode(character ? `${line}:${character}{enter}` : `${line}{enter}`); }; -/** - * @param {number} lines - */ -export const assertCodePaneSearchMatchesCount = (lines) => { +export const assertCodePaneSearchMatchesCount = (lines: number) => { getCodeEditor().within(() => cy.get('.cm-searching').should('have.length', lines) ); diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json index 3223b8fe..c72b5d9d 100644 --- a/cypress/tsconfig.json +++ b/cypress/tsconfig.json @@ -1,9 +1,12 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "isolatedModules": false, - "types": ["cypress"] + "types": ["cypress", "@testing-library/cypress"], + "isolatedModules": false }, - "include": ["**/*"], // override the include from the root tsconfig + "include": [ + "**/*", // override the include from the root tsconfig + "../src/index.d.ts" // contains definitions for global variables + ], "exclude": [] // override the exclude from the root tsconfig } diff --git a/package.json b/package.json index 14720b2e..2964bb80 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "serve:all": "concurrently 'npm:serve:*(!all)'", "build-and-serve:all": "pnpm build:all && pnpm serve:all", "lint": "concurrently 'npm:lint:*'", - "lint:eslint": "eslint --cache .", + "lint:eslint": "NODE_OPTIONS=--max_old_space_size=8192 eslint --cache .", "lint:prettier": "prettier --list-different '**/*.{js,md,ts,tsx}'", "lint:tsc": "tsc --noEmit", "lint:cypress": "tsc --project cypress/tsconfig.json", @@ -121,12 +121,13 @@ "@actions/core": "^1.10.0", "@changesets/cli": "^2.25.2", "@octokit/rest": "^19.0.5", + "@testing-library/cypress": "^10.0.1", "@types/jest": "^29.2.4", "@types/react-helmet": "^6.1.6", "@types/react-transition-group": "^4.4.10", "concurrently": "^7.6.0", "cypress": "^13.6.6", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "eslint-config-seek": "^11.3.1", "husky": "^8.0.2", "jest": "^29.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42c14785..295093da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -175,6 +175,9 @@ devDependencies: '@octokit/rest': specifier: ^19.0.5 version: 19.0.5 + '@testing-library/cypress': + specifier: ^10.0.1 + version: 10.0.1(cypress@13.6.6) '@types/jest': specifier: ^29.2.4 version: 29.2.4 @@ -191,11 +194,11 @@ devDependencies: specifier: ^13.6.6 version: 13.6.6 eslint: - specifier: ^8.44.0 - version: 8.44.0 + specifier: ^8.56.0 + version: 8.57.0 eslint-config-seek: specifier: ^11.3.1 - version: 11.3.1(eslint@8.44.0)(jest@29.3.1)(typescript@5.0.4) + version: 11.3.1(eslint@8.57.0)(jest@29.3.1)(typescript@5.0.4) husky: specifier: ^8.0.2 version: 8.0.2 @@ -281,7 +284,7 @@ packages: transitivePeerDependencies: - supports-color - /@babel/eslint-parser@7.22.7(@babel/core@7.23.3)(eslint@8.44.0): + /@babel/eslint-parser@7.22.7(@babel/core@7.23.3)(eslint@8.57.0): resolution: {integrity: sha512-LH6HJqjOyu/Qtp7LuSycZXK/CYXQ4ohdkliEaL1QTdtOXVdOVpTBKVxAo/+eeyt+x/2SRzB+zUPduVl+xiEvdg==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -291,7 +294,7 @@ packages: '@babel/core': 7.23.3 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 '@nicolo-ribaudo/semver-v6': 6.3.3 - eslint: 8.44.0 + eslint: 8.57.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1927,14 +1930,19 @@ packages: dev: false optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.44.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.44.0 - eslint-visitor-keys: 3.4.1 + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true /@eslint-community/regexpp@4.5.1: @@ -1942,13 +1950,13 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.0: - resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) - espree: 9.6.0 + espree: 9.6.1 globals: 13.20.0 ignore: 5.2.4 import-fresh: 3.3.0 @@ -1959,18 +1967,18 @@ packages: - supports-color dev: true - /@eslint/js@8.44.0: - resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@finsit/eslint-plugin-cypress@3.1.1(eslint@8.44.0): + /@finsit/eslint-plugin-cypress@3.1.1(eslint@8.57.0): resolution: {integrity: sha512-cowFcoYNYOjg/yxKlQ7f26uiGl7FK2Sksvo0KaBnRF0EZbIJTv3apSRLB1RqaTg1N5bhLL9EpVwXqXRpcICNQg==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>= 7.0.0' dependencies: - eslint: 8.44.0 + eslint: 8.57.0 globals: 13.20.0 dev: true @@ -1984,11 +1992,11 @@ packages: '@hapi/hoek': 9.3.0 dev: true - /@humanwhocodes/config-array@0.11.10: - resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 + '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: @@ -2000,8 +2008,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} dev: true /@isaacs/cliui@8.0.2: @@ -2619,6 +2627,35 @@ packages: webpack: 5.75.0 dev: false + /@testing-library/cypress@10.0.1(cypress@13.6.6): + resolution: {integrity: sha512-e8uswjTZIBhaIXjzEcrQQ8nHRWHgZH7XBxKuIWxZ/T7FxfWhCR48nFhUX5nfPizjVOKSThEfOSv67jquc1ASkw==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + cypress: ^12.0.0 || ^13.0.0 + dependencies: + '@babel/runtime': 7.20.6 + '@testing-library/dom': 9.3.4 + cypress: 13.6.6 + dev: true + + /@testing-library/dom@9.3.4: + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} + dependencies: + '@babel/code-frame': 7.23.4 + '@babel/runtime': 7.20.6 + '@types/aria-query': 5.0.4 + aria-query: 5.1.3 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + dev: true + + /@types/aria-query@5.0.4: + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + dev: true + /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: @@ -2939,7 +2976,7 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin@5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.57.0)(typescript@5.0.4): resolution: {integrity: sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2951,12 +2988,12 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.61.0(eslint@8.44.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.61.0(eslint@8.57.0)(typescript@5.0.4) '@typescript-eslint/scope-manager': 5.61.0 - '@typescript-eslint/type-utils': 5.61.0(eslint@8.44.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.61.0(eslint@8.44.0)(typescript@5.0.4) + '@typescript-eslint/type-utils': 5.61.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.61.0(eslint@8.57.0)(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.44.0 + eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 @@ -2967,7 +3004,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@5.61.0(eslint@8.44.0)(typescript@5.0.4): + /@typescript-eslint/parser@5.61.0(eslint@8.57.0)(typescript@5.0.4): resolution: {integrity: sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2981,7 +3018,7 @@ packages: '@typescript-eslint/types': 5.61.0 '@typescript-eslint/typescript-estree': 5.61.0(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.44.0 + eslint: 8.57.0 typescript: 5.0.4 transitivePeerDependencies: - supports-color @@ -2995,7 +3032,7 @@ packages: '@typescript-eslint/visitor-keys': 5.61.0 dev: true - /@typescript-eslint/type-utils@5.61.0(eslint@8.44.0)(typescript@5.0.4): + /@typescript-eslint/type-utils@5.61.0(eslint@8.57.0)(typescript@5.0.4): resolution: {integrity: sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3006,9 +3043,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.61.0(typescript@5.0.4) - '@typescript-eslint/utils': 5.61.0(eslint@8.44.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.61.0(eslint@8.57.0)(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.44.0 + eslint: 8.57.0 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: @@ -3041,19 +3078,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.61.0(eslint@8.44.0)(typescript@5.0.4): + /@typescript-eslint/utils@5.61.0(eslint@8.57.0)(typescript@5.0.4): resolution: {integrity: sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.11 '@types/semver': 7.3.13 '@typescript-eslint/scope-manager': 5.61.0 '@typescript-eslint/types': 5.61.0 '@typescript-eslint/typescript-estree': 5.61.0(typescript@5.0.4) - eslint: 8.44.0 + eslint: 8.57.0 eslint-scope: 5.1.1 semver: 7.6.0 transitivePeerDependencies: @@ -3069,6 +3106,10 @@ packages: eslint-visitor-keys: 3.4.1 dev: true + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + /@vanilla-extract/babel-plugin-debug-ids@1.0.4: resolution: {integrity: sha512-mevYcVMwsT6960xnXRw/Rr2K7SOEwzwVBApg/2SJ3eg2KGsHfj1rN0oQ12WdoTT3RzThq+0551bVQKPvQnjeaA==} dependencies: @@ -3473,6 +3514,12 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.2.3 + dev: true + /array-back@3.1.0: resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} engines: {node: '>=6'} @@ -3483,6 +3530,14 @@ packages: engines: {node: '>=8'} dev: false + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + dev: true + /array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: false @@ -3573,6 +3628,13 @@ packages: engines: {node: '>= 4.0.0'} dev: true + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + dependencies: + possible-typed-array-names: 1.0.0 + dev: true + /aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} dev: true @@ -3892,6 +3954,17 @@ packages: dependencies: function-bind: 1.1.1 get-intrinsic: 1.1.3 + dev: true + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -4554,6 +4627,30 @@ packages: optional: true dev: false + /deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + 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.6 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.2 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + dev: true + /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -4596,6 +4693,14 @@ packages: clone: 1.0.4 dev: true + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} @@ -4614,6 +4719,15 @@ packages: object-keys: 1.1.1 dev: true + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -4685,6 +4799,10 @@ packages: esutils: 2.0.3 dev: true + /dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dev: true + /dom-converter@0.2.0: resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} dependencies: @@ -4844,6 +4962,30 @@ packages: unbox-primitive: 1.0.2 dev: true + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + /es-module-lexer@0.9.3: resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} dev: false @@ -4916,34 +5058,34 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-prettier@8.8.0(eslint@8.44.0): + /eslint-config-prettier@8.8.0(eslint@8.57.0): resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.44.0 + eslint: 8.57.0 dev: true - /eslint-config-seek@11.3.1(eslint@8.44.0)(jest@29.3.1)(typescript@5.0.4): + /eslint-config-seek@11.3.1(eslint@8.57.0)(jest@29.3.1)(typescript@5.0.4): resolution: {integrity: sha512-UmzHGS7yons8BjWmUOaoEdSTCcO3GHaoHoytM0ewPB5lByk1dqFVKU5ecaSqAvIM9Ms0NlA35JMGpURAL6VqcA==} peerDependencies: eslint: '>=6' typescript: '>=4.5' dependencies: '@babel/core': 7.23.3 - '@babel/eslint-parser': 7.22.7(@babel/core@7.23.3)(eslint@8.44.0) + '@babel/eslint-parser': 7.22.7(@babel/core@7.23.3)(eslint@8.57.0) '@babel/preset-react': 7.22.5(@babel/core@7.23.3) - '@finsit/eslint-plugin-cypress': 3.1.1(eslint@8.44.0) - '@typescript-eslint/eslint-plugin': 5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.61.0(eslint@8.44.0)(typescript@5.0.4) - eslint: 8.44.0 - eslint-config-prettier: 8.8.0(eslint@8.44.0) - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.61.0)(eslint-plugin-import@2.27.5)(eslint@8.44.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) - eslint-plugin-jest: 27.2.2(@typescript-eslint/eslint-plugin@5.61.0)(eslint@8.44.0)(jest@29.3.1)(typescript@5.0.4) - eslint-plugin-react: 7.32.2(eslint@8.44.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.44.0) + '@finsit/eslint-plugin-cypress': 3.1.1(eslint@8.57.0) + '@typescript-eslint/eslint-plugin': 5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.61.0(eslint@8.57.0)(typescript@5.0.4) + eslint: 8.57.0 + eslint-config-prettier: 8.8.0(eslint@8.57.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.61.0)(eslint-plugin-import@2.27.5)(eslint@8.57.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.57.0) + eslint-plugin-jest: 27.2.2(@typescript-eslint/eslint-plugin@5.61.0)(eslint@8.57.0)(jest@29.3.1)(typescript@5.0.4) + eslint-plugin-react: 7.32.2(eslint@8.57.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) eslint-plugin-rulesdir: 0.2.2 find-root: 1.1.0 typescript: 5.0.4 @@ -4964,7 +5106,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.61.0)(eslint-plugin-import@2.27.5)(eslint@8.44.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.61.0)(eslint-plugin-import@2.27.5)(eslint@8.57.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4973,9 +5115,9 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.12.0 - eslint: 8.44.0 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) + eslint: 8.57.0 + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.57.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.57.0) get-tsconfig: 4.6.2 globby: 13.2.2 is-core-module: 2.11.0 @@ -4988,7 +5130,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0): + /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.57.0): resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -5009,16 +5151,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.61.0(eslint@8.44.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.61.0(eslint@8.57.0)(typescript@5.0.4) debug: 3.2.7(supports-color@8.1.1) - eslint: 8.44.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.61.0)(eslint-plugin-import@2.27.5)(eslint@8.44.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.61.0)(eslint-plugin-import@2.27.5)(eslint@8.57.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.57.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -5028,15 +5170,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.61.0(eslint@8.44.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.61.0(eslint@8.57.0)(typescript@5.0.4) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 - eslint: 8.44.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.57.0) has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -5051,7 +5193,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.2.2(@typescript-eslint/eslint-plugin@5.61.0)(eslint@8.44.0)(jest@29.3.1)(typescript@5.0.4): + /eslint-plugin-jest@27.2.2(@typescript-eslint/eslint-plugin@5.61.0)(eslint@8.57.0)(jest@29.3.1)(typescript@5.0.4): resolution: {integrity: sha512-euzbp06F934Z7UDl5ZUaRPLAc9MKjh0rMPERrHT7UhlCEwgb25kBj37TvMgWeHZVkR5I9CayswrpoaqZU1RImw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5064,25 +5206,25 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.61.0(eslint@8.44.0)(typescript@5.0.4) - eslint: 8.44.0 + '@typescript-eslint/eslint-plugin': 5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.61.0(eslint@8.57.0)(typescript@5.0.4) + eslint: 8.57.0 jest: 29.3.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.44.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.44.0 + eslint: 8.57.0 dev: true - /eslint-plugin-react@7.32.2(eslint@8.44.0): + /eslint-plugin-react@7.32.2(eslint@8.57.0): resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: @@ -5092,7 +5234,7 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.44.0 + eslint: 8.57.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 @@ -5118,8 +5260,8 @@ packages: esrecurse: 4.3.0 estraverse: 4.3.0 - /eslint-scope@7.2.0: - resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 @@ -5136,27 +5278,33 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.44.0: - resolution: {integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0) - '@eslint-community/regexpp': 4.5.1 - '@eslint/eslintrc': 2.1.0 - '@eslint/js': 8.44.0 - '@humanwhocodes/config-array': 0.11.10 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.4(supports-color@8.1.1) 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.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -5166,7 +5314,6 @@ packages: globals: 13.20.0 graphemer: 1.4.0 ignore: 5.2.4 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -5178,19 +5325,18 @@ packages: natural-compare: 1.4.0 optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color dev: true - /espree@9.6.0: - resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==} + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.3 dev: true /esprima@4.0.1: @@ -5576,6 +5722,12 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + /foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} @@ -5662,6 +5814,9 @@ packages: /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + /function.prototype.name@1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} @@ -5701,6 +5856,17 @@ packages: function-bind: 1.1.1 has: 1.0.3 has-symbols: 1.0.3 + dev: true + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} @@ -5852,8 +6018,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.1.3 - dev: true + get-intrinsic: 1.2.4 /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -5904,9 +6069,18 @@ packages: /has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - get-intrinsic: 1.1.3 + get-intrinsic: 1.2.4 dev: true + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} @@ -5918,12 +6092,25 @@ packages: has-symbols: 1.0.3 dev: true + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -6209,6 +6396,15 @@ packages: side-channel: 1.0.4 dev: true + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.4 + dev: true + /intersection-observer@0.12.2: resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==} dev: false @@ -6223,6 +6419,22 @@ packages: engines: {node: '>= 10'} dev: false + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.0 + dev: true + + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -6243,7 +6455,7 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 has-tostringtag: 1.0.0 dev: true @@ -6339,6 +6551,11 @@ packages: is-path-inside: 3.0.3 dev: true + /is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + dev: true + /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} @@ -6396,14 +6613,19 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 has-tostringtag: 1.0.0 dev: true + /is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + dev: true + /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 dev: true /is-stream@2.0.1: @@ -6445,12 +6667,25 @@ packages: engines: {node: '>=10'} dev: true + /is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + dev: true + /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 dev: true + /is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -6474,6 +6709,10 @@ packages: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: false + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -7324,7 +7563,6 @@ packages: /lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - dev: false /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -7690,6 +7928,14 @@ packages: /object-inspect@1.12.2: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + /object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + dev: true + /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -7699,7 +7945,7 @@ packages: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 define-properties: 1.1.4 has-symbols: 1.0.3 object-keys: 1.1.1 @@ -8049,6 +8295,11 @@ packages: - supports-color dev: false + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true + /postcss-modules-extract-imports@3.0.0(postcss@8.4.35): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} @@ -8143,6 +8394,15 @@ packages: renderkid: 3.0.0 dev: false + /pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + dev: true + /pretty-format@29.3.1: resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8337,6 +8597,10 @@ packages: /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + /react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true + /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -8507,6 +8771,16 @@ packages: functions-have-names: 1.2.3 dev: true + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + dev: true + /regexpu-core@5.2.2: resolution: {integrity: sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==} engines: {node: '>=4'} @@ -8943,6 +9217,27 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + dev: true + /set-harmonic-interval@1.0.1: resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} engines: {node: '>=6.9'} @@ -8991,8 +9286,8 @@ packages: /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.3 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 object-inspect: 1.12.2 /signal-exit@3.0.7: @@ -9250,6 +9545,13 @@ packages: engines: {node: '>= 0.8'} dev: false + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.7 + dev: true + /stream-combiner@0.0.4: resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} dependencies: @@ -10214,6 +10516,16 @@ packages: is-symbol: 1.0.4 dev: true + /which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 + dev: true + /which-module@2.0.0: resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} dev: true @@ -10226,6 +10538,17 @@ packages: path-exists: 4.0.0 dev: true + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + dev: true + /which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true diff --git a/src/Playroom/Button/Button.tsx b/src/Playroom/Button/Button.tsx index 1700f326..62454c51 100644 --- a/src/Playroom/Button/Button.tsx +++ b/src/Playroom/Button/Button.tsx @@ -7,7 +7,6 @@ interface BaseProps { as?: ElementType; tone?: 'positive'; icon?: ReactElement; - 'data-testid'?: string; } interface ButtonProps diff --git a/src/Playroom/FramesPanel/FramesPanel.css.ts b/src/Playroom/FramesPanel/FramesPanel.css.ts index babbd4f8..ccde74b1 100644 --- a/src/Playroom/FramesPanel/FramesPanel.css.ts +++ b/src/Playroom/FramesPanel/FramesPanel.css.ts @@ -67,7 +67,6 @@ export const checkbox = style([ left: 0, right: 0, opacity: 0, - pointerEvents: 'none', }), { height: checkboxSize, @@ -85,6 +84,7 @@ export const fakeCheckbox = style([ borderRadius: 'large', marginRight: 'large', padding: checkboxPadding, + pointerEvents: 'none', }), { flexGrow: 0, diff --git a/src/Playroom/FramesPanel/FramesPanel.tsx b/src/Playroom/FramesPanel/FramesPanel.tsx index 9c1319e3..35f1c9ac 100644 --- a/src/Playroom/FramesPanel/FramesPanel.tsx +++ b/src/Playroom/FramesPanel/FramesPanel.tsx @@ -112,7 +112,7 @@ export default ({ availableWidths, availableThemes }: FramesPanelProps) => { {displayedTitle} )} - + -
+ dispatch({ type: 'resetVisibleWidths' })} > Widths - {availableWidths.map((option) => ( { }} /> ))} -
+
{hasThemes ? ( -
+ dispatch({ type: 'resetVisibleThemes' })} > Themes - {availableThemes.map((option) => ( { }} /> ))} -
+ ) : null}
diff --git a/src/Playroom/PreviewPanel/CopyButton.tsx b/src/Playroom/PreviewPanel/CopyButton.tsx index 1a1c4e68..585e242a 100644 --- a/src/Playroom/PreviewPanel/CopyButton.tsx +++ b/src/Playroom/PreviewPanel/CopyButton.tsx @@ -36,7 +36,6 @@ export const CopyButton = ({ copyContent, title }: CopyButtonProps) => { return (