From 87f0a02c2bd3014a2fc561da3b7ed2e36fae26a3 Mon Sep 17 00:00:00 2001 From: zthxxx Date: Sat, 29 Jul 2023 15:31:00 +0800 Subject: [PATCH] chore: update storybook and unit test for OverlayTip component style --- .eslintrc.cjs | 2 +- packages/inspector/.storybook/tailwind.css | 3 + packages/inspector/jest.config.ts | 39 - packages/inspector/package.json | 31 +- .../src/Inspector/Overlay/Overlay.stories.tsx | 173 ++- .../src/Inspector/Overlay/Overlay.tsx | 4 +- .../src/Inspector/Overlay/OverlayRect.tsx | 110 +- .../src/Inspector/Overlay/OverlayTip.tsx | 214 +-- .../src/Inspector/Overlay/elements.d.ts | 6 +- .../src/Inspector/Overlay/overlay.test.ts | 296 ++++ .../inspector/src/Inspector/Overlay/types.ts | 4 +- .../inspector/src/Inspector/Overlay/utils.ts | 14 +- packages/inspector/tsconfig.json | 1 + packages/inspector/vitest.config.ts | 9 + pnpm-lock.yaml | 1358 +++++++++++------ 15 files changed, 1628 insertions(+), 636 deletions(-) delete mode 100644 packages/inspector/jest.config.ts create mode 100644 packages/inspector/src/Inspector/Overlay/overlay.test.ts create mode 100644 packages/inspector/vitest.config.ts diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 99f63b3e..a3d82e3d 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -305,7 +305,7 @@ module.exports = { overrides: [ { - files: ['packages/*/src/**/*.{js,ts}'], + files: ['packages/*/src/**/*.{js,ts,tsx}'], rules: { // For more compatibility with lower Node.js versions 'unicorn/prefer-node-protocol': 'off', diff --git a/packages/inspector/.storybook/tailwind.css b/packages/inspector/.storybook/tailwind.css index ccf52fe6..e028bf47 100644 --- a/packages/inspector/.storybook/tailwind.css +++ b/packages/inspector/.storybook/tailwind.css @@ -39,3 +39,6 @@ --radius: 0.5rem; } + #storybook-root { + padding: 0 !important; + } diff --git a/packages/inspector/jest.config.ts b/packages/inspector/jest.config.ts deleted file mode 100644 index fcd13cd4..00000000 --- a/packages/inspector/jest.config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import type { Config } from 'jest' - - -const config: Config = { - testTimeout: 20000, - testEnvironment: 'jsdom', - testMatch: ['/src/**/*.test.(ts|tsx)'], - testPathIgnorePatterns: [ - '/node_modules/', - '/templates/', - '/coverage/', - '/dist/', - '/lib/', - '/es/', - ], - transform: { - '^.+\\.tsx?$': [ - 'ts-jest', - // https://kulshekhar.github.io/ts-jest/docs/getting-started/options#options - { - diagnostics: false, - isolatedModules: true, - }, - ], - }, - collectCoverage: false, - collectCoverageFrom: [ - '**/src/**/*.{ts,tsx}', - '!**/node_modules/**', - '!**/coverage/**', - '!**/*.mock.ts', - '!**/mocks/**', - '!**/dist/**', - '!**/lib/**', - '!**/es/**', - ], -} - -export default config diff --git a/packages/inspector/package.json b/packages/inspector/package.json index 4401efc1..1dca833b 100644 --- a/packages/inspector/package.json +++ b/packages/inspector/package.json @@ -7,7 +7,8 @@ "module": "es", "types": "es", "scripts": { - "test": "jest --passWithNoTests", + "test": "vitest run", + "test:watch": "vitest watch", "clean": "rimraf coverage dist es lib build", "dev": "storybook dev -p 6006", "build:storybook": "storybook build", @@ -55,11 +56,21 @@ "react": ">=16.14.0" }, "peerDependenciesMeta": { - "@react-dev-inspector/babel-plugin": { "optional": true }, - "@react-dev-inspector/middleware": { "optional": true }, - "@react-dev-inspector/umi3-plugin": { "optional": true }, - "@react-dev-inspector/umi4-plugin": { "optional": true }, - "@react-dev-inspector/vite-plugin": { "optional": true } + "@react-dev-inspector/babel-plugin": { + "optional": true + }, + "@react-dev-inspector/middleware": { + "optional": true + }, + "@react-dev-inspector/umi3-plugin": { + "optional": true + }, + "@react-dev-inspector/umi4-plugin": { + "optional": true + }, + "@react-dev-inspector/vite-plugin": { + "optional": true + } }, "devDependencies": { "@babel/plugin-proposal-decorators": "7.22.15", @@ -76,16 +87,16 @@ "@storybook/react": "7.6.6", "@storybook/react-vite": "7.6.6", "@storybook/testing-library": "0.2.2", - "@types/node": "^20.10.1", + "@types/node": "16.18.7", "@types/react": "18.0.26", "@types/react-dev-utils": "9.0.11", + "@types/react-dom": "18.0.9", "@types/react-reconciler": "0.28.0", "@vitejs/plugin-react": "4.0.3", "@zthxxx/tsconfig": "1.0.2", "autoprefixer": "10.4.14", "class-variance-authority": "0.6.1", "clsx": "1.2.1", - "jest": "29.6.1", "npm-run-all": "4.1.5", "postcss": "8.4.26", "react": "18.2.0", @@ -94,9 +105,9 @@ "rxjs": "7.8.1", "storybook": "7.6.6", "tailwindcss": "3.3.3", - "ts-jest": "29.1.1", "ts-node": "10.9.1", "typescript": "5.3.2", - "vite": "4.4.2" + "vite": "4.4.2", + "vitest": "1.1.1" } } diff --git a/packages/inspector/src/Inspector/Overlay/Overlay.stories.tsx b/packages/inspector/src/Inspector/Overlay/Overlay.stories.tsx index 59235dd1..e410a203 100644 --- a/packages/inspector/src/Inspector/Overlay/Overlay.stories.tsx +++ b/packages/inspector/src/Inspector/Overlay/Overlay.stories.tsx @@ -1,6 +1,14 @@ - +import assert from 'assert' import { useState, useRef, useEffect } from 'react' -import type { Meta } from '@storybook/react' +import type { StoryFn, Meta } from '@storybook/react' +import { clsx } from 'clsx' +import { + fromEvent, + map, + switchMap, + takeUntil, + tap, +} from 'rxjs' import { Button, Card as CardContainer, @@ -18,7 +26,7 @@ import { } from '../utils' import { getElementDimensions, - getNestedBoundingClientRect, + getNestedBoundingBox, } from './utils' import { type InspectorOverlay, @@ -40,8 +48,7 @@ export default { title: 'Overlay', } satisfies Meta - -export const OverlayTips = () => { +export const CornerItems = () => { const setup = async () => { const tips = document.querySelectorAll('inspector-overlay-tip') const rects = document.querySelectorAll('inspector-overlay-rect') @@ -77,6 +84,30 @@ export const OverlayTips = () => { top: (screenHeight - itemSize) / 2, left: (screenWidth - itemSize) / 2, }, + + // Top-Center but outside the space + { + top: -2 * itemSize, + left: (screenWidth - itemSize) / 2, + }, + + // Bottom-Center but outside the space + { + top: screenHeight + 2 * itemSize, + left: (screenWidth - itemSize) / 2, + }, + + // Left-Center but outside the space + { + top: (screenHeight - itemSize) / 2, + left: -2 * itemSize, + }, + + // Right-Center but outside the space + { + top: (screenHeight - itemSize) / 2, + left: screenWidth + 2 * itemSize, + }, ] @@ -84,13 +115,13 @@ export const OverlayTips = () => { positions.forEach((position, index) => { const rect = rects[index] const tip = tips[index] + assert(rect) + assert(tip) const boundingRect: Rect = { ...position, width: itemSize, height: itemSize, - right: position.left + itemSize, - bottom: position.top + itemSize, } const boxSizing: BoxSizing = { @@ -141,10 +172,136 @@ export const OverlayTips = () => { + + + + + + + + + + + + ) } + +export const MoveableDragItem: StoryFn<{ itemSize: 'normal' | 'full' | 'large' }> = ({ itemSize }) => { + const elementRef = useRef(null) + const overlayRef = useRef(null) + const overlayTipRef = useRef(null) + + const positionRef = useRef({ + top: 0, + left: 0, + }) + const [position, setPosition] = useState(positionRef.current) + + const mockInspectElement = (element?: HTMLElement | null) => { + const overlayRect = overlayRef.current + const overlayTip = overlayTipRef.current + if (!(element && overlayRect && overlayTip)) return + + const boxSizing = getElementDimensions(element) + const boundingRect = getNestedBoundingBox(element) + + overlayRect.updateBound({ + boundingRect, + boxSizing, + }) + + overlayTip.updateTip({ + title: 'div in ', + info: 'relative/path/to/packages/component.tsx', + boundingRect, + boxSizing, + }) + } + + useEffect(() => { + const element = elementRef.current + assert(element) + mockInspectElement(element) + + const subscriber = fromEvent(element, 'pointerdown').pipe( + switchMap(down => { + const start = positionRef.current + return fromEvent(document, 'pointermove').pipe( + map(move => ({ + x: move.clientX - down.clientX, + y: move.clientY - down.clientY, + })), + map(movement => ({ + left: movement.x + start.left, + top: movement.y + start.top, + })), + takeUntil(fromEvent(document, 'pointerup')), + ) + }), + tap(position => { + setPosition(position) + positionRef.current = position + mockInspectElement(element) + }), + ).subscribe() + + return () => subscriber.unsubscribe() + }, []) + + return ( +
+
+ ({position.top.toFixed(0)}, {position.left.toFixed(0)}) +
+ + + +
+ ) +} + +/** + * https://storybook.js.org/docs/api/arg-types + */ +MoveableDragItem.argTypes = { + itemSize: { + name: 'Item Size', + type: { + name: 'enum', + value: ['normal', 'full', 'large'], + required: true, + }, + }, +} + +// https://storybook.js.org/docs/writing-stories/args +MoveableDragItem.args = { + itemSize: 'normal', +} + + export const OverlayRectAndTipItems = () => { const [active, setActive] = useState(false) const contentRef = useRef(null) @@ -157,7 +314,7 @@ export const OverlayRectAndTipItems = () => { if (!(element && overlayRect && overlayTip)) return const boxSizing = getElementDimensions(element) - const boundingRect = getNestedBoundingClientRect(element) + const boundingRect = getNestedBoundingBox(element) overlayRect.updateBound({ boundingRect, diff --git a/packages/inspector/src/Inspector/Overlay/Overlay.tsx b/packages/inspector/src/Inspector/Overlay/Overlay.tsx index f58fe1c4..db3c33e4 100644 --- a/packages/inspector/src/Inspector/Overlay/Overlay.tsx +++ b/packages/inspector/src/Inspector/Overlay/Overlay.tsx @@ -4,7 +4,7 @@ import { ref, createRef, type Ref } from 'lit/directives/ref.js' import { registerElement, getElementDimensions, - getNestedBoundingClientRect, + getNestedBoundingBox, } from './utils' import { InspectorOverlayRect, @@ -58,7 +58,7 @@ export class InspectorOverlay extends LitElement { overlayTip: InspectorOverlayTip; }) { const boxSizing = getElementDimensions(element) - const boundingRect = getNestedBoundingClientRect(element) + const boundingRect = getNestedBoundingBox(element) overlayRect.updateBound({ boundingRect, diff --git a/packages/inspector/src/Inspector/Overlay/OverlayRect.tsx b/packages/inspector/src/Inspector/Overlay/OverlayRect.tsx index 4765d605..a1bf557f 100644 --- a/packages/inspector/src/Inspector/Overlay/OverlayRect.tsx +++ b/packages/inspector/src/Inspector/Overlay/OverlayRect.tsx @@ -3,25 +3,70 @@ import { html, css, LitElement } from 'lit' import { customElement, property } from 'lit/decorators.js' import { styleMap, type StyleInfo } from 'lit/directives/style-map.js' import type { - Box, + Rect, BoxSizing, } from './types' @customElement('inspector-overlay-rect') export class InspectorOverlayRect extends LitElement { - @property({ attribute: false }) - public boundingRect?: Box + private boxSizing?: BoxSizing + private boundingRect?: Rect @property({ attribute: false }) - public boxSizing?: BoxSizing + private styles: { + hostStyle: Pick; + marginStyle: ReturnType; + borderStyle: ReturnType; + paddingStyle: ReturnType; + contentStyle: ReturnType; + } = { + hostStyle: { + top: 0, + left: 0, + }, + marginStyle: styleMap({ display: 'none' }), + borderStyle: styleMap({ display: 'none' }), + paddingStyle: styleMap({ display: 'none' }), + contentStyle: styleMap({ display: 'none' }), + } - public updateBound({ boundingRect, boxSizing }: { - boundingRect: Box; + public updateBound({ boxSizing, boundingRect }: { boxSizing: BoxSizing; + boundingRect: Rect; }) { - this.boundingRect = boundingRect this.boxSizing = boxSizing + this.boundingRect = boundingRect + + this.styles = { + hostStyle: { + top: (this.boundingRect?.top ?? 0) - (this.boxSizing?.marginTop ?? 0), + left: (this.boundingRect?.left ?? 0) - (this.boxSizing?.marginLeft ?? 0), + }, + + marginStyle: styleMap(this.getBoxStyle(this.boxSizing, 'margin') as StyleInfo), + borderStyle: styleMap(this.getBoxStyle(this.boxSizing, 'border') as StyleInfo), + paddingStyle: styleMap(this.getBoxStyle(this.boxSizing, 'padding') as StyleInfo), + + contentStyle: !(this.boundingRect && this.boxSizing) + ? styleMap({}) + : styleMap({ + height: `${ + this.boundingRect.height + - this.boxSizing.borderTop + - this.boxSizing.borderBottom + - this.boxSizing.paddingTop + - this.boxSizing.paddingBottom + }px`, + width: `${ + this.boundingRect.width + - this.boxSizing.borderLeft + - this.boxSizing.borderRight + - this.boxSizing.paddingLeft + - this.boxSizing.paddingRight + }px`, + }), + } } protected getBoxStyle(boxSizing: BoxSizing | undefined, type: 'margin' | 'padding' | 'border'): CSSProperties { @@ -41,34 +86,22 @@ export class InspectorOverlayRect extends LitElement { } override render() { - const marginStyle = styleMap({ - ...this.getBoxStyle(this.boxSizing, 'margin') as StyleInfo, - top: `${(this.boundingRect?.top ?? 0) - (this.boxSizing?.marginTop ?? 0)}px`, - left: `${(this.boundingRect?.left ?? 0) - (this.boxSizing?.marginLeft ?? 0)}px`, - }) + const { + hostStyle, + marginStyle, + borderStyle, + paddingStyle, + contentStyle, + } = this.styles - const borderStyle = styleMap(this.getBoxStyle(this.boxSizing, 'border') as StyleInfo) - - const paddingStyle = styleMap(this.getBoxStyle(this.boxSizing, 'padding') as StyleInfo) - - const contentStyle = !(this.boundingRect && this.boxSizing) - ? styleMap({}) - : styleMap({ - height: `${ - this.boundingRect.height - - this.boxSizing.borderTop - - this.boxSizing.borderBottom - - this.boxSizing.paddingTop - - this.boxSizing.paddingBottom - }px`, - width: `${ - this.boundingRect.width - - this.boxSizing.borderLeft - - this.boxSizing.borderRight - - this.boxSizing.paddingLeft - - this.boxSizing.paddingRight - }px`, - }) + this.style.setProperty( + '--inspector-overlay-rect-top', + `${hostStyle.top}px`, + ) + this.style.setProperty( + '--inspector-overlay-rect-left', + `${hostStyle.left}px`, + ) return html`
@@ -38,7 +37,8 @@ export class InspectorOverlayTip extends LitElement { @state() protected position: Pick = {} - protected tipRef: Ref = createRef() + @property({ attribute: false }) + private infoStyle: ReturnType = styleMap({}) public updateTip({ title, @@ -55,155 +55,129 @@ export class InspectorOverlayTip extends LitElement { }) { this.title = title this.info = info - this.boundingRect = boundingRect + this.boundingBox = { + ...boundingRect, + right: boundingRect.left + boundingRect.width, + bottom: boundingRect.top + boundingRect.height, + } this.boxSizing = boxSizing this.spaceBox = spaceBox ?? InspectorOverlayTip.getViewSpaceBox() + this.infoStyle = styleMap({ + display: this.info ? 'block' : 'none', + }) } protected get outerBox(): Box { - const { boundingRect, boxSizing } = this - if (!boundingRect || !boxSizing) { + const { boundingBox, boxSizing } = this + if (!boundingBox || !boxSizing) { return { top: 0, left: 0, width: 0, height: 0, + bottom: 0, + right: 0, } } const box = { - top: Math.min(boundingRect.top, boundingRect.top - boxSizing.marginTop), - left: Math.max(boundingRect.left, boundingRect.left - boxSizing.marginLeft), - right: Math.max(boundingRect.right, boundingRect.right + boxSizing.marginRight), - bottom: Math.max(boundingRect.bottom, boundingRect.bottom + boxSizing.marginBottom), + top: Math.min(boundingBox.top, boundingBox.top - boxSizing.marginTop), + left: Math.min(boundingBox.left, boundingBox.left - boxSizing.marginLeft), + right: Math.max(boundingBox.right, boundingBox.right + boxSizing.marginRight), + bottom: Math.max(boundingBox.bottom, boundingBox.bottom + boxSizing.marginBottom), } return { top: box.top, left: box.left, + right: box.right, + bottom: box.bottom, width: box.right - box.left, height: box.bottom - box.top, } } protected get width() { - return Math.round(this.boundingRect?.width ?? 0) + return Math.round(this.boundingBox?.width ?? 0) } protected get height() { - return Math.round(this.boundingRect?.height ?? 0) + return Math.round(this.boundingBox?.height ?? 0) } - static getViewSpaceBox(boundaryWindow?: Window): Box { const windowAgent = boundaryWindow ?? window.__REACT_DEVTOOLS_TARGET_WINDOW__ ?? window - const documentBox = getNestedBoundingClientRect(windowAgent.document.documentElement) + const documentBox = getNestedBoundingBox(windowAgent.document.documentElement) return { - top: documentBox.top + window.scrollY, - left: documentBox.left + window.scrollX, - height: windowAgent.innerHeight, + top: documentBox.top + windowAgent.scrollY, + left: documentBox.left + windowAgent.scrollX, + right: documentBox.left + windowAgent.scrollX + windowAgent.innerWidth, + bottom: documentBox.top + windowAgent.scrollY + windowAgent.innerHeight, width: windowAgent.innerWidth, + height: windowAgent.innerHeight, } } override updated(changed: PropertyValues) { if ( !changed.get('position') - && this.tipRef.value - && this.boundingRect + && this.boundingBox && this.boxSizing && this.spaceBox ) { - this.position = this.calcTipPosition( - this.outerBox, - this.spaceBox, - this.tipRef.value.getBoundingClientRect(), - ) + this.position = restraintTipPosition({ + elementBox: this.outerBox, + spaceBox: this.spaceBox, + tipSize: this.getBoundingClientRect(), + }) this.requestUpdate('position') } } - protected calcTipPosition(elementBox: Box, space: Box, tipSize: Box): Pick { - const tipHeight = Math.max(tipSize.height, 20) - const tipWidth = Math.max(tipSize.width, 60) - const margin = 5 - - let top - if (elementBox.top + elementBox.height + tipHeight <= space.top + space.height) { - if (elementBox.top + elementBox.height < space.top + 0) { - top = space.top + margin - } - else { - top = elementBox.top + elementBox.height + margin - } - } - else if (elementBox.top - tipHeight <= space.top + space.height) { - if (elementBox.top - tipHeight - margin < space.top + margin) { - top = space.top + margin - } - else { - top = Math.max(0, elementBox.top - tipHeight - margin) - } - } - else { - top = Math.max(0, space.top + space.height - tipHeight - margin) - } - - let left = elementBox.left + margin - if (elementBox.left < space.left) { - left = space.left + margin - } - if (elementBox.left + tipWidth > space.left + space.width) { - left = Math.max(0, space.left + space.width - tipWidth - margin) - } - - return { - top: `${top}px`, - left: `${left}px`, - } - } - override render() { - const hidden = !this.boundingRect || !this.boxSizing - const containerStyles = styleMap({ - ...this.position, - display: hidden ? 'none' : 'flex', - }) - const tipInfoStyles = styleMap({ - display: this.info ? 'block' : 'none', - }) + const hidden = !this.boundingBox || !this.boxSizing - return html` -
-
-
- ‎${this.title}‎ -
+ this.style.setProperty( + '--inspector-overlay-tip-display', + hidden ? 'none' : 'flex', + ) + this.style.setProperty( + '--inspector-overlay-tip-top', + `${this.position.top}px`, + ) + this.style.setProperty( + '--inspector-overlay-tip-left', + `${this.position.left}px`, + ) -
- ‎${this.info}‎ -
+ return html` +
+
+ ‎${this.title}‎
-
-
- ${this.width}px × ${this.height}px + +
+ ‎${this.info}‎
+
+
+ ${this.width}px × ${this.height}px +
` } static styles = css` - .inspector-tip-container { + :host { position: fixed; z-index: 10000000; - display: flex; + display: var(--inspector-overlay-tip-display, none); + top: var(--inspector-overlay-tip-top, 0); + left: var(--inspector-overlay-tip-left, 0); + flex-flow: row nowrap; align-items: center; border-radius: 4px; @@ -259,3 +233,55 @@ export class InspectorOverlayTip extends LitElement { } ` } + +export const restraintTipPosition = ({ elementBox, spaceBox, tipSize }: { + elementBox: Box; + spaceBox: Box; + tipSize: { width: number; height: number }; +}): { top: number; left: number } => { + const MIN_TIP_WIDTH = 100 + const MIN_TIP_HEIGHT = 48 + const gap = 4 + const tipWidth = Math.max(tipSize.width, MIN_TIP_WIDTH) + const tipHeight = Math.max(tipSize.height, MIN_TIP_HEIGHT) + + const position = { + top: gap, + left: gap, + } + + if (spaceBox.top >= elementBox.bottom) { + position.top = spaceBox.top + } + else if (elementBox.top >= spaceBox.bottom) { + position.top = spaceBox.bottom - tipHeight + } + else if (spaceBox.bottom - elementBox.bottom >= tipHeight + gap) { + position.top = elementBox.bottom + gap + } + else if (elementBox.top - spaceBox.top >= tipHeight + gap) { + position.top = elementBox.top - tipHeight - gap + } + else { + position.top = Math.max(elementBox.top, spaceBox.top) + gap + } + + if (tipSize.width >= spaceBox.width) { + position.left = spaceBox.left + } + else if (spaceBox.left >= elementBox.right) { + position.left = spaceBox.left + } + else if (elementBox.left >= spaceBox.right) { + position.left = spaceBox.right - tipWidth + } + else if (spaceBox.right - elementBox.left >= tipWidth + gap) { + position.left = Math.max(elementBox.left, spaceBox.left, gap) + } + else { + position.left = spaceBox.right - tipWidth - gap + } + + return position +} + diff --git a/packages/inspector/src/Inspector/Overlay/elements.d.ts b/packages/inspector/src/Inspector/Overlay/elements.d.ts index 5f4de1e4..b02d757e 100644 --- a/packages/inspector/src/Inspector/Overlay/elements.d.ts +++ b/packages/inspector/src/Inspector/Overlay/elements.d.ts @@ -13,9 +13,9 @@ declare global { namespace JSX { interface IntrinsicElements { - 'inspector-overlay': RefAttributes; - 'inspector-overlay-rect': RefAttributes; - 'inspector-overlay-tip': RefAttributes; + 'inspector-overlay': RefAttributes & HTMLAttributes; + 'inspector-overlay-rect': RefAttributes & HTMLAttributes; + 'inspector-overlay-tip': RefAttributes & HTMLAttributes; } } } diff --git a/packages/inspector/src/Inspector/Overlay/overlay.test.ts b/packages/inspector/src/Inspector/Overlay/overlay.test.ts new file mode 100644 index 00000000..a0dfab13 --- /dev/null +++ b/packages/inspector/src/Inspector/Overlay/overlay.test.ts @@ -0,0 +1,296 @@ +import { restraintTipPosition } from './OverlayTip' +import type { + Box, + Rect, +} from './types' + + +class ItemBox implements Box { + top: number + left: number + width: number + height: number + + static itemSize = 50 + + constructor({ + top, left, width, height, + }: Partial) { + this.top = top ?? 0 + this.left = left ?? 0 + this.width = width ?? ItemBox.itemSize + this.height = height ?? ItemBox.itemSize + } + + get right() { + return this.left + this.width + } + + get bottom() { + return this.top + this.height + } +} + + +const spaceBox: Box = new ItemBox({ + top: 0, + left: 0, + width: 200, + height: 300, +}) + + +test('common corners', () => { + const tipSize = { + width: 100, + height: 48, + } + + const cases: Array<{ + /** target element */ + elementBox: Box; + /** tip element position */ + position: { top: number; left: number }; + }> = [ + // Top-Left corner + { + elementBox: new ItemBox({ + top: 0, + left: 0, + }), + position: { + top: ItemBox.itemSize + 4, + left: 4, + }, + }, + + // Top-Right corner + { + elementBox: new ItemBox({ + top: 0, + left: spaceBox.width - ItemBox.itemSize, + }), + position: { + top: ItemBox.itemSize + 4, + left: spaceBox.right - tipSize.width - 4, + }, + }, + + // Bottom-Left corner + { + elementBox: new ItemBox({ + top: spaceBox.height - ItemBox.itemSize, + left: 0, + }), + position: { + top: spaceBox.bottom - ItemBox.itemSize - tipSize.height - 4, + left: 4, + }, + }, + + // Bottom-Right corner + { + elementBox: new ItemBox({ + top: spaceBox.height - ItemBox.itemSize, + left: spaceBox.width - ItemBox.itemSize, + }), + position: { + top: spaceBox.bottom - ItemBox.itemSize - tipSize.height - 4, + left: spaceBox.right - tipSize.width - 4, + }, + }, + + // Center + { + elementBox: new ItemBox({ + top: (spaceBox.height - ItemBox.itemSize) / 2, + left: (spaceBox.width - ItemBox.itemSize) / 2, + }), + position: { + top: (spaceBox.height - ItemBox.itemSize) / 2 + ItemBox.itemSize + 4, + left: (spaceBox.width - ItemBox.itemSize) / 2, + }, + }, + + // Right-Center but not close to space right + { + elementBox: new ItemBox({ + top: (spaceBox.height - ItemBox.itemSize) / 2, + left: spaceBox.width - ItemBox.itemSize * 1.5, + }), + position: { + top: (spaceBox.height - ItemBox.itemSize) / 2 + ItemBox.itemSize + 4, + left: spaceBox.right - tipSize.width - 4, + }, + }, + ] + + cases.forEach(({ elementBox, position }) => { + const result = restraintTipPosition({ + elementBox, + spaceBox, + tipSize, + }) + expect(result).toEqual(position) + }) +}) + + +test('outside space', () => { + const tipSize = { + width: 100, + height: 48, + } + + const cases: Array<{ + /** target element */ + elementBox: Box; + /** tip element position */ + position: { top: number; left: number }; + }> = [ + // Top but outside the space + { + elementBox: new ItemBox({ + top: -2 * ItemBox.itemSize, + left: 0, + }), + position: { + top: 0, + left: 4, + }, + }, + + // Bottom but outside the space + { + elementBox: new ItemBox({ + top: spaceBox.height + 2 * ItemBox.itemSize, + left: spaceBox.width - ItemBox.itemSize, + }), + position: { + top: spaceBox.height - tipSize.height, + left: spaceBox.right - tipSize.width - 4, + }, + }, + + // Left but outside the space + { + elementBox: new ItemBox({ + top: spaceBox.height - ItemBox.itemSize, + left: -2 * ItemBox.itemSize, + }), + position: { + top: spaceBox.bottom - ItemBox.itemSize - tipSize.height - 4, + left: 0, + }, + }, + + // Right but outside the space + { + elementBox: new ItemBox({ + top: spaceBox.height - ItemBox.itemSize, + left: spaceBox.width + 2 * ItemBox.itemSize, + }), + position: { + top: spaceBox.bottom - ItemBox.itemSize - tipSize.height - 4, + left: spaceBox.right - tipSize.width, + }, + }, + ] + + cases.forEach(({ elementBox, position }) => { + const result = restraintTipPosition({ + elementBox, + spaceBox, + tipSize, + }) + expect(result).toEqual(position) + }) +}) + + +test('tips more width than space', () => { + const tipSize = { + width: 300, + height: 48, + } + + const cases: Array<{ + /** target element */ + elementBox: Box; + /** tip element position */ + position: { top: number; left: number }; + }> = [ + // Center + { + elementBox: new ItemBox({ + top: (spaceBox.height - ItemBox.itemSize) / 2, + left: (spaceBox.width - ItemBox.itemSize) / 2, + }), + position: { + top: (spaceBox.height - ItemBox.itemSize) / 2 + ItemBox.itemSize + 4, + left: 0, + }, + }, + ] + + cases.forEach(({ elementBox, position }) => { + const result = restraintTipPosition({ + elementBox, + spaceBox, + tipSize, + }) + expect(result).toEqual(position) + }) +}) + + +test('element large than space', () => { + const tipSize = { + width: 100, + height: 48, + } + + const cases: Array<{ + /** target element */ + elementBox: Box; + /** tip element position */ + position: { top: number; left: number }; + }> = [ + // Full Center + { + elementBox: new ItemBox({ + top: 0, + left: 0, + width: spaceBox.width, + height: spaceBox.height, + }), + position: { + top: 4, + left: 4, + }, + }, + + // Overflow Cover + { + elementBox: new ItemBox({ + top: -20, + left: -20, + width: spaceBox.width + 40, + height: spaceBox.height + 40, + }), + position: { + top: 4, + left: 4, + }, + }, + ] + + cases.forEach(({ elementBox, position }) => { + const result = restraintTipPosition({ + elementBox, + spaceBox, + tipSize, + }) + expect(result).toEqual(position) + }) +}) diff --git a/packages/inspector/src/Inspector/Overlay/types.ts b/packages/inspector/src/Inspector/Overlay/types.ts index 5535ec62..40617cd9 100644 --- a/packages/inspector/src/Inspector/Overlay/types.ts +++ b/packages/inspector/src/Inspector/Overlay/types.ts @@ -1,4 +1,4 @@ -export interface Rect { +export interface Box { top: number; left: number; width: number; @@ -7,7 +7,7 @@ export interface Rect { bottom: number; } -export interface Box { +export interface Rect { top: number; left: number; width: number; diff --git a/packages/inspector/src/Inspector/Overlay/utils.ts b/packages/inspector/src/Inspector/Overlay/utils.ts index 9b615a20..dc5493f5 100644 --- a/packages/inspector/src/Inspector/Overlay/utils.ts +++ b/packages/inspector/src/Inspector/Overlay/utils.ts @@ -1,5 +1,5 @@ import type { - Rect, + Box, BoxSizing, } from './types' @@ -10,8 +10,16 @@ export const registerElement = (tagName: string, elementClass: CustomElementCons } } -export function getNestedBoundingClientRect(node: HTMLElement): Rect { - return node.getBoundingClientRect() +export function getNestedBoundingBox(node: HTMLElement): Box { + const domRect = node.getBoundingClientRect() + return { + top: domRect.top, + left: domRect.left, + width: domRect.width, + height: domRect.height, + right: domRect.right, + bottom: domRect.bottom, + } } export function getElementDimensions(domElement: Element): BoxSizing { diff --git a/packages/inspector/tsconfig.json b/packages/inspector/tsconfig.json index bbe2b733..4c72ab72 100644 --- a/packages/inspector/tsconfig.json +++ b/packages/inspector/tsconfig.json @@ -7,6 +7,7 @@ "types": [ "node", + "vitest/globals", ], // https://lit.dev/docs/components/decorators/#decorators-typescript diff --git a/packages/inspector/vitest.config.ts b/packages/inspector/vitest.config.ts new file mode 100644 index 00000000..cc703d25 --- /dev/null +++ b/packages/inspector/vitest.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + // https://vitest.dev/config + test: { + globals: true, + environment: 'jsdom', + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 53ccb6e1..5f1af53b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -312,7 +312,7 @@ importers: devDependencies: '@babel/preset-typescript': specifier: 7.22.5 - version: 7.22.5(@babel/core@7.23.6) + version: 7.22.5(@babel/core@7.23.7) '@react-dev-inspector/babel-plugin': specifier: ^2 version: link:../../packages/babel-plugin @@ -339,7 +339,7 @@ importers: version: 10.4.14(postcss@8.4.26) babel-loader: specifier: 9.1.3 - version: 9.1.3(@babel/core@7.23.6)(webpack@5.89.0) + version: 9.1.3(@babel/core@7.23.7)(webpack@5.89.0) npm-run-all: specifier: 4.1.5 version: 4.1.5 @@ -476,7 +476,7 @@ importers: version: 5.3.2 umi: specifier: 4.0.72 - version: 4.0.72(@babel/core@7.23.6)(@types/node@16.18.7)(@types/react@18.0.26)(eslint@8.44.0)(postcss@8.4.26)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.3)(stylelint@14.16.1)(typescript@5.3.2)(webpack@5.89.0) + version: 4.0.72(@babel/core@7.23.7)(@types/node@16.18.7)(@types/react@18.0.26)(eslint@8.44.0)(postcss@8.4.26)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.3)(stylelint@14.16.1)(typescript@5.3.2)(webpack@5.89.0) examples/vite2: dependencies: @@ -662,7 +662,7 @@ importers: version: 5.3.2 vite: specifier: 4.4.2 - version: 4.4.2(@types/node@16.18.7) + version: 4.4.2(@types/node@16.18.7)(less@4.2.0) packages/babel-plugin: dependencies: @@ -710,8 +710,8 @@ importers: specifier: 11.1.0 version: 11.1.0 jest: - specifier: 29.6.1 - version: 29.6.1(@types/node@16.18.7)(ts-node@10.9.1) + specifier: 29.7.0 + version: 29.7.0(@types/node@16.18.7)(ts-node@10.9.1) npm-run-all: specifier: 4.1.5 version: 4.1.5 @@ -720,7 +720,7 @@ importers: version: 3.0.2 ts-jest: specifier: 29.1.1 - version: 29.1.1(@babel/core@7.23.5)(jest@29.6.1)(typescript@5.3.2) + version: 29.1.1(@babel/core@7.23.5)(jest@29.7.0)(typescript@5.3.2) ts-node: specifier: 10.9.1 version: 10.9.1(@types/node@16.18.7)(typescript@5.3.2) @@ -766,22 +766,22 @@ importers: devDependencies: '@babel/plugin-proposal-decorators': specifier: 7.22.15 - version: 7.22.15(@babel/core@7.23.6) + version: 7.22.15(@babel/core@7.23.7) '@babel/plugin-syntax-decorators': specifier: 7.22.10 - version: 7.22.10(@babel/core@7.23.6) + version: 7.22.10(@babel/core@7.23.7) '@radix-ui/react-label': specifier: 2.0.2 - version: 2.0.2(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.2(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': specifier: 1.0.2 version: 1.0.2(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-switch': specifier: 1.0.3 - version: 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-essentials': specifier: 7.6.6 - version: 7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + version: 7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-interactions': specifier: 7.6.6 version: 7.6.6 @@ -793,10 +793,10 @@ importers: version: 7.6.6 '@storybook/addon-styling': specifier: 1.3.7 - version: 1.3.7(@types/react@18.0.26)(less@4.2.0)(postcss@8.4.26)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)(webpack@5.89.0) + version: 1.3.7(@types/react-dom@18.0.9)(@types/react@18.0.26)(less@4.2.0)(postcss@8.4.26)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)(webpack@5.89.0) '@storybook/blocks': specifier: 7.6.6 - version: 7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + version: 7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@storybook/react': specifier: 7.6.6 version: 7.6.6(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2) @@ -807,14 +807,17 @@ importers: specifier: 0.2.2 version: 0.2.2 '@types/node': - specifier: ^20.10.1 - version: 20.10.1 + specifier: 16.18.7 + version: 16.18.7 '@types/react': specifier: 18.0.26 version: 18.0.26 '@types/react-dev-utils': specifier: 9.0.11 version: 9.0.11 + '@types/react-dom': + specifier: 18.0.9 + version: 18.0.9 '@vitejs/plugin-react': specifier: 4.0.3 version: 4.0.3(vite@4.4.2) @@ -830,9 +833,6 @@ importers: clsx: specifier: 1.2.1 version: 1.2.1 - jest: - specifier: 29.6.1 - version: 29.6.1(@types/node@20.10.1)(ts-node@10.9.1) npm-run-all: specifier: 4.1.5 version: 4.1.5 @@ -857,18 +857,18 @@ importers: tailwindcss: specifier: 3.3.3 version: 3.3.3(ts-node@10.9.1) - ts-jest: - specifier: 29.1.1 - version: 29.1.1(@babel/core@7.23.6)(esbuild@0.18.20)(jest@29.6.1)(typescript@5.3.2) ts-node: specifier: 10.9.1 - version: 10.9.1(@types/node@20.10.1)(typescript@5.3.2) + version: 10.9.1(@types/node@16.18.7)(typescript@5.3.2) typescript: specifier: 5.3.2 version: 5.3.2 vite: specifier: 4.4.2 - version: 4.4.2(@types/node@20.10.1)(less@4.2.0) + version: 4.4.2(@types/node@16.18.7)(less@4.2.0) + vitest: + specifier: 1.1.1 + version: 1.1.1(@types/node@16.18.7)(less@4.2.0) packages/middleware: dependencies: @@ -961,7 +961,7 @@ importers: version: 5.3.2 umi: specifier: 4.0.36 - version: 4.0.36(@babel/core@7.23.6)(eslint@8.44.0)(postcss@8.4.26)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(rollup@2.79.1)(styled-components@6.1.3)(stylelint@14.16.1)(typescript@5.3.2)(webpack@5.89.0) + version: 4.0.36(@babel/core@7.23.7)(eslint@8.44.0)(postcss@8.4.26)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(rollup@2.79.1)(styled-components@6.1.3)(stylelint@14.16.1)(typescript@5.3.2)(webpack@5.89.0) packages/vite-plugin: dependencies: @@ -1186,19 +1186,19 @@ packages: transitivePeerDependencies: - supports-color - /@babel/core@7.23.6: - resolution: {integrity: sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==} + /@babel/core@7.23.7: + resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.23.5 '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) - '@babel/helpers': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helpers': 7.23.7 '@babel/parser': 7.23.6 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.6 + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 convert-source-map: 2.0.0 debug: 4.3.4 @@ -1323,19 +1323,19 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.23.5(@babel/core@7.23.6): + /@babel/helper-create-class-features-plugin@7.23.5(@babel/core@7.23.7): resolution: {integrity: sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 @@ -1439,13 +1439,13 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.6): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -1489,13 +1489,13 @@ packages: '@babel/helper-optimise-call-expression': 7.22.5 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.6): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -1551,12 +1551,12 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helpers@7.23.6: - resolution: {integrity: sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==} + /@babel/helpers@7.23.7: + resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.6 + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color @@ -1630,18 +1630,18 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-decorators@7.22.15(@babel/core@7.23.6): + /@babel/plugin-proposal-decorators@7.22.15(@babel/core@7.23.7): resolution: {integrity: sha512-kc0VvbbUyKelvzcKOSyQUSVVXS5pT3UhRB0e3c9An86MvLqs+gx0dN4asllrDluqSa3m9YyooXKGOFVomnyFkg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-split-export-declaration': 7.22.6 - '@babel/plugin-syntax-decorators': 7.22.10(@babel/core@7.23.6) + '@babel/plugin-syntax-decorators': 7.22.10(@babel/core@7.23.7) dev: true /@babel/plugin-proposal-decorators@7.23.5(@babel/core@7.23.5): @@ -1739,12 +1739,12 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.6): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1757,12 +1757,12 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1775,12 +1775,12 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.6): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1794,13 +1794,13 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.23.6): + /@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.23.7): resolution: {integrity: sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1871,12 +1871,12 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.6): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1889,12 +1889,12 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1908,13 +1908,13 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1927,12 +1927,12 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.6): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1945,12 +1945,12 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1963,12 +1963,12 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.6): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1981,12 +1981,12 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1999,12 +1999,12 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -2017,12 +2017,12 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -2046,13 +2046,13 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.6): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -2066,13 +2066,13 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -2344,27 +2344,27 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.18.6(@babel/core@7.23.6): + /@babel/plugin-transform-modules-commonjs@7.18.6(@babel/core@7.23.7): resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 babel-plugin-dynamic-import-node: 2.3.3 dev: true - /@babel/plugin-transform-modules-commonjs@7.21.2(@babel/core@7.23.6): + /@babel/plugin-transform-modules-commonjs@7.21.2(@babel/core@7.23.7): resolution: {integrity: sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true @@ -2381,14 +2381,14 @@ packages: '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true @@ -2729,17 +2729,17 @@ packages: '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-typescript@7.23.5(@babel/core@7.23.6): + /@babel/plugin-transform-typescript@7.23.5(@babel/core@7.23.7): resolution: {integrity: sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.6) + '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) dev: true /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.5): @@ -2914,18 +2914,18 @@ packages: '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.23.5) dev: true - /@babel/preset-typescript@7.22.5(@babel/core@7.23.6): + /@babel/preset-typescript@7.22.5(@babel/core@7.23.7): resolution: {integrity: sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-typescript': 7.23.5(@babel/core@7.23.6) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-typescript': 7.23.5(@babel/core@7.23.7) dev: true /@babel/preset-typescript@7.23.3(@babel/core@7.23.5): @@ -3012,8 +3012,8 @@ packages: transitivePeerDependencies: - supports-color - /@babel/traverse@7.23.6: - resolution: {integrity: sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==} + /@babel/traverse@7.23.7: + resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 @@ -3703,6 +3703,15 @@ packages: get-tsconfig: 4.7.2 dev: true + /@esbuild/aix-ppc64@0.19.11: + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm64@0.17.19: resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -3720,6 +3729,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm64@0.19.11: + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm@0.15.18: resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} engines: {node: '>=12'} @@ -3746,6 +3764,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm@0.19.11: + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-x64@0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -3763,6 +3790,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-x64@0.19.11: + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-arm64@0.17.19: resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} @@ -3780,6 +3816,15 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-arm64@0.19.11: + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-x64@0.17.19: resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} @@ -3797,6 +3842,15 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-x64@0.19.11: + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-arm64@0.17.19: resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} @@ -3814,6 +3868,15 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-arm64@0.19.11: + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-x64@0.17.19: resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -3831,6 +3894,15 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-x64@0.19.11: + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm64@0.17.19: resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -3848,6 +3920,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm64@0.19.11: + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm@0.17.19: resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -3865,6 +3946,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm@0.19.11: + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ia32@0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -3882,6 +3972,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ia32@0.19.11: + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64@0.14.54: resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} engines: {node: '>=12'} @@ -3917,6 +4016,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-loong64@0.19.11: + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-mips64el@0.17.19: resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -3934,6 +4042,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-mips64el@0.19.11: + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ppc64@0.17.19: resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -3951,6 +4068,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ppc64@0.19.11: + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-riscv64@0.17.19: resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -3968,6 +4094,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-riscv64@0.19.11: + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-s390x@0.17.19: resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -3985,6 +4120,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-s390x@0.19.11: + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-x64@0.17.19: resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -4002,6 +4146,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-x64@0.19.11: + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/netbsd-x64@0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -4019,6 +4172,15 @@ packages: requiresBuild: true optional: true + /@esbuild/netbsd-x64@0.19.11: + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/openbsd-x64@0.17.19: resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -4036,6 +4198,15 @@ packages: requiresBuild: true optional: true + /@esbuild/openbsd-x64@0.19.11: + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/sunos-x64@0.17.19: resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -4053,6 +4224,15 @@ packages: requiresBuild: true optional: true + /@esbuild/sunos-x64@0.19.11: + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-arm64@0.17.19: resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} @@ -4070,6 +4250,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-arm64@0.19.11: + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-ia32@0.17.19: resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -4087,6 +4276,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-ia32@0.19.11: + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-x64@0.17.19: resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -4104,6 +4302,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-x64@0.19.11: + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint-community/eslint-utils@4.4.0(eslint@8.44.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4421,7 +4628,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.1 + '@types/node': 16.18.7 jest-mock: 29.7.0 dev: true @@ -4448,7 +4655,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 20.10.1 + '@types/node': 16.18.7 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -4460,7 +4667,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.10.1 + '@types/node': 16.18.7 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -4764,7 +4971,7 @@ packages: magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.3.2) typescript: 5.3.2 - vite: 4.4.2(@types/node@20.10.1)(less@4.2.0) + vite: 4.4.2(@types/node@16.18.7)(less@4.2.0) dev: true /@jridgewell/gen-mapping@0.3.3: @@ -5717,7 +5924,7 @@ packages: '@babel/runtime': 7.23.5 dev: true - /@radix-ui/react-arrow@1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -5731,13 +5938,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-collection@1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -5753,9 +5961,10 @@ packages: '@babel/runtime': 7.23.5 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.0.26)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.0.26)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true @@ -5802,7 +6011,7 @@ packages: react: 18.2.0 dev: true - /@radix-ui/react-dismissable-layer@1.0.4(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} peerDependencies: '@types/react': '*' @@ -5818,10 +6027,11 @@ packages: '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.26)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.0.26)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true @@ -5840,7 +6050,7 @@ packages: react: 18.2.0 dev: true - /@radix-ui/react-focus-scope@1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==} peerDependencies: '@types/react': '*' @@ -5855,9 +6065,10 @@ packages: dependencies: '@babel/runtime': 7.23.5 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.26)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true @@ -5877,7 +6088,7 @@ packages: react: 18.2.0 dev: true - /@radix-ui/react-label@2.0.2(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-label@2.0.2(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} peerDependencies: '@types/react': '*' @@ -5891,13 +6102,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-popper@1.1.2(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popper@1.1.2(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==} peerDependencies: '@types/react': '*' @@ -5912,21 +6124,22 @@ packages: dependencies: '@babel/runtime': 7.23.5 '@floating-ui/react-dom': 2.0.4(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.0.26)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-use-rect': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-use-size': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/rect': 1.0.1 '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-portal@1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-portal@1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} peerDependencies: '@types/react': '*' @@ -5940,13 +6153,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-primitive@1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -5962,11 +6176,12 @@ packages: '@babel/runtime': 7.23.5 '@radix-ui/react-slot': 1.0.2(@types/react@18.0.26)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-roving-focus@1.0.4(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -5981,20 +6196,21 @@ packages: dependencies: '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.0.26)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-select@1.2.2(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-select@1.2.2(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==} peerDependencies: '@types/react': '*' @@ -6010,31 +6226,32 @@ packages: '@babel/runtime': 7.23.5 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.0.26)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.0.26)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.0.26)(react@18.2.0) - '@radix-ui/react-popper': 1.1.2(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.0.26)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-remove-scroll: 2.5.5(@types/react@18.0.26)(react@18.2.0) dev: true - /@radix-ui/react-separator@1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-separator@1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} peerDependencies: '@types/react': '*' @@ -6048,8 +6265,9 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true @@ -6069,7 +6287,7 @@ packages: react: 18.2.0 dev: true - /@radix-ui/react-switch@1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-switch@1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} peerDependencies: '@types/react': '*' @@ -6086,16 +6304,17 @@ packages: '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.0.26)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-use-size': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-toggle-group@1.0.4(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==} peerDependencies: '@types/react': '*' @@ -6112,16 +6331,17 @@ packages: '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.0.26)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-toggle@1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toggle@1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==} peerDependencies: '@types/react': '*' @@ -6136,14 +6356,15 @@ packages: dependencies: '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-toolbar@1.0.4(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toolbar@1.0.4(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==} peerDependencies: '@types/react': '*' @@ -6160,11 +6381,12 @@ packages: '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.0.26)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.0.26)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-separator': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle-group': 1.0.4(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true @@ -6271,7 +6493,7 @@ packages: react: 18.2.0 dev: true - /@radix-ui/react-visually-hidden@1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': '*' @@ -6285,8 +6507,9 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true @@ -6378,6 +6601,110 @@ packages: picomatch: 2.3.1 dev: true + /@rollup/rollup-android-arm-eabi@4.9.2: + resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.9.2: + resolution: {integrity: sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.9.2: + resolution: {integrity: sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.9.2: + resolution: {integrity: sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.9.2: + resolution: {integrity: sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.9.2: + resolution: {integrity: sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.9.2: + resolution: {integrity: sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.2: + resolution: {integrity: sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.2: + resolution: {integrity: sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.9.2: + resolution: {integrity: sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.9.2: + resolution: {integrity: sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.9.2: + resolution: {integrity: sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.9.2: + resolution: {integrity: sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@rspack/binding-darwin-arm64@0.3.1: resolution: {integrity: sha512-imsab1RgVxNSdCJuXVg7EU1ED+UTbXA0VYm//BlOG68pFtugrfuhkW1o1NP2vYIxWATs6yIrseYngOZ4Q/8G9w==} cpu: [arm64] @@ -6656,10 +6983,10 @@ packages: ts-dedent: 2.2.0 dev: true - /@storybook/addon-controls@7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@storybook/addon-controls@7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-VAXXfPLi1M3RXhBf3uIBZ2hrD9UPDe7yvXHIlCzgj1HIJELODCFyUc+RtvN0mPc/nnlEfzhGfJtenZou5LYwIw==} dependencies: - '@storybook/blocks': 7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@storybook/blocks': 7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -6671,7 +6998,7 @@ packages: - supports-color dev: true - /@storybook/addon-docs@7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@storybook/addon-docs@7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-l4gtoNTn1wHE11x44te1cDkqfm+/w+eNonHe56bwgSqETclS5z18wvM9bQZF32G6C9fpSefaJW3cxVvcuJL1fg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -6679,9 +7006,9 @@ packages: dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.2.0) - '@storybook/blocks': 7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@storybook/blocks': 7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@storybook/client-logger': 7.6.6 - '@storybook/components': 7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@storybook/components': 7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@storybook/csf-plugin': 7.6.6 '@storybook/csf-tools': 7.6.6 '@storybook/global': 5.0.0 @@ -6705,7 +7032,7 @@ packages: - supports-color dev: true - /@storybook/addon-essentials@7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@storybook/addon-essentials@7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-OQ8A6r06mg/HvyIk/j2Gt9DK5Qtqgtwq2Ydm5IgVW6gZsuRnv1FAeUG6okf8oXowAzpYoHdsDmCVwNOAGWGO7w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -6713,8 +7040,8 @@ packages: dependencies: '@storybook/addon-actions': 7.6.6 '@storybook/addon-backgrounds': 7.6.6 - '@storybook/addon-controls': 7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-docs': 7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-controls': 7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-docs': 7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-highlight': 7.6.6 '@storybook/addon-measure': 7.6.6 '@storybook/addon-outline': 7.6.6 @@ -6786,7 +7113,7 @@ packages: tiny-invariant: 1.3.1 dev: true - /@storybook/addon-styling@1.3.7(@types/react@18.0.26)(less@4.2.0)(postcss@8.4.26)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)(webpack@5.89.0): + /@storybook/addon-styling@1.3.7(@types/react-dom@18.0.9)(@types/react@18.0.26)(less@4.2.0)(postcss@8.4.26)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)(webpack@5.89.0): resolution: {integrity: sha512-JSBZMOrSw/3rlq5YoEI7Qyq703KSNP0Jd+gxTWu3/tP6245mpjn2dXnR8FvqVxCi+FG4lt2kQyPzgsuwEw1SSA==} hasBin: true peerDependencies: @@ -6810,7 +7137,7 @@ packages: '@babel/template': 7.22.15 '@babel/types': 7.23.5 '@storybook/api': 7.6.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/components': 7.6.1(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@storybook/components': 7.6.1(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@storybook/core-common': 7.6.1 '@storybook/core-events': 7.6.1 '@storybook/manager-api': 7.6.1(react-dom@18.2.0)(react@18.2.0) @@ -6862,7 +7189,7 @@ packages: - react-dom dev: true - /@storybook/blocks@7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@storybook/blocks@7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-QLqkiSNrtGnh8RK9ipD63jVAUenkRu+72xR31DViZWRV9V8G2hzky5E/RoZWPEx+DfmBIUJ7Tcef6cCRcxEj9A==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -6870,7 +7197,7 @@ packages: dependencies: '@storybook/channels': 7.6.6 '@storybook/client-logger': 7.6.6 - '@storybook/components': 7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@storybook/components': 7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@storybook/core-events': 7.6.6 '@storybook/csf': 0.1.2 '@storybook/docs-tools': 7.6.6 @@ -6956,7 +7283,7 @@ packages: magic-string: 0.30.5 rollup: 3.29.4 typescript: 5.3.2 - vite: 4.4.2(@types/node@20.10.1)(less@4.2.0) + vite: 4.4.2(@types/node@16.18.7)(less@4.2.0) transitivePeerDependencies: - encoding - supports-color @@ -7069,14 +7396,14 @@ packages: - supports-color dev: true - /@storybook/components@7.6.1(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@storybook/components@7.6.1(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-jZNGVepmn/iwZ/WSwchZfBo8r4knUpHLwrffMc8FSltmzyKxlEmtZwzlTbBCi48mBc0CqucI1GYtnhzzgX6N8w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@radix-ui/react-select': 1.2.2(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toolbar': 1.0.4(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@storybook/client-logger': 7.6.1 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 @@ -7092,14 +7419,14 @@ packages: - '@types/react-dom' dev: true - /@storybook/components@7.6.6(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + /@storybook/components@7.6.6(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-FSfcRxdmV4+LJHjMk0eodGVnZdb2qrKKmbtsn0O/434z586zPA287/wJJsm4JS/Xr1WS9oTvU6mYMDChkcxgeQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@radix-ui/react-select': 1.2.2(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toolbar': 1.0.4(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.0.9)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@storybook/client-logger': 7.6.6 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 @@ -7436,7 +7763,7 @@ packages: react: 18.2.0 react-docgen: 7.0.1 react-dom: 18.2.0(react@18.2.0) - vite: 4.4.2(@types/node@20.10.1)(less@4.2.0) + vite: 4.4.2(@types/node@16.18.7)(less@4.2.0) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -8318,7 +8645,7 @@ packages: /@types/clean-css@4.2.11: resolution: {integrity: sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==} dependencies: - '@types/node': 20.10.1 + '@types/node': 16.18.7 source-map: 0.6.1 dev: true @@ -8338,7 +8665,7 @@ packages: /@types/cross-spawn@6.0.6: resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} dependencies: - '@types/node': 20.10.1 + '@types/node': 16.18.7 dev: true /@types/d3-scale-chromatic@3.0.3: @@ -8388,14 +8715,21 @@ packages: /@types/eslint-scope@3.7.7: resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: - '@types/eslint': 8.44.8 - '@types/estree': 0.0.51 + '@types/eslint': 8.56.0 + '@types/estree': 1.0.5 /@types/eslint@8.44.8: resolution: {integrity: sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 + dev: true + + /@types/eslint@8.56.0: + resolution: {integrity: sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 /@types/estree-jsx@1.0.3: resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==} @@ -8409,6 +8743,7 @@ packages: /@types/estree@0.0.51: resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + dev: true /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -8448,13 +8783,13 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.10.1 + '@types/node': 16.18.7 dev: true /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.10.1 + '@types/node': 16.18.7 dev: true /@types/hapi__joi@17.1.8: @@ -8598,7 +8933,7 @@ packages: /@types/node-fetch@2.6.9: resolution: {integrity: sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA==} dependencies: - '@types/node': 20.10.1 + '@types/node': 16.18.7 form-data: 4.0.0 dev: true @@ -8617,12 +8952,6 @@ packages: undici-types: 5.26.5 dev: true - /@types/node@20.10.1: - resolution: {integrity: sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg==} - dependencies: - undici-types: 5.26.5 - dev: true - /@types/normalize-package-data@2.4.4: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true @@ -8694,7 +9023,7 @@ packages: resolution: {integrity: sha512-Wn6c/tXdEgi9adCMtDwx8Q2vGty6TsPTc/wCQQ9kAlye8UqFxj0vGFWWuhywNfkwqth+SOgJxQTLTZukrqDQmQ==} dependencies: '@types/history': 4.7.11 - '@types/react': 16.14.52 + '@types/react': 18.0.26 '@types/react-router': 5.1.20 dev: true @@ -8750,7 +9079,7 @@ packages: /@types/resolve@1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 20.10.1 + '@types/node': 16.18.7 dev: true /@types/resolve@1.20.6: @@ -8846,7 +9175,7 @@ packages: /@types/webpack-sources@3.2.3: resolution: {integrity: sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==} dependencies: - '@types/node': 20.10.1 + '@types/node': 16.18.7 '@types/source-list-map': 0.1.6 source-map: 0.7.4 dev: true @@ -8854,7 +9183,7 @@ packages: /@types/webpack@4.41.38: resolution: {integrity: sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==} dependencies: - '@types/node': 20.10.1 + '@types/node': 16.18.7 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.4 '@types/webpack-sources': 3.2.3 @@ -10200,13 +10529,13 @@ packages: - supports-color dev: true - /@umijs/test@4.0.36(@babel/core@7.23.6): + /@umijs/test@4.0.36(@babel/core@7.23.7): resolution: {integrity: sha512-M5xa4T7CUGfxmpUflobOBakdvjf1IYrL5jK1ceVUEECtKVuXgZoNfbmfqLUQsJdIY1P+Lv+Ard5izxe3bo/gbQ==} dependencies: - '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.23.6) + '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.23.7) '@jest/types': 27.5.1 '@umijs/bundler-utils': 4.0.36 - babel-jest: 28.1.3(@babel/core@7.23.6) + babel-jest: 28.1.3(@babel/core@7.23.7) esbuild: 0.15.18 identity-obj-proxy: 3.0.0 isomorphic-unfetch: 3.1.0 @@ -10216,14 +10545,14 @@ packages: - supports-color dev: true - /@umijs/test@4.0.72(@babel/core@7.23.6): + /@umijs/test@4.0.72(@babel/core@7.23.7): resolution: {integrity: sha512-sSknbprNSQhVcyIIfOlRMay9yyG189XdmIgoJWHG0sqKOaJLt0iEJ4RkOWGv9YVnW7M06cE6+8+FGUEF8/lFXw==} dependencies: - '@babel/plugin-transform-modules-commonjs': 7.21.2(@babel/core@7.23.6) + '@babel/plugin-transform-modules-commonjs': 7.21.2(@babel/core@7.23.7) '@jest/types': 27.5.1 '@umijs/bundler-utils': 4.0.72 '@umijs/utils': 4.0.72 - babel-jest: 29.7.0(@babel/core@7.23.6) + babel-jest: 29.7.0(@babel/core@7.23.7) esbuild: 0.17.19 identity-obj-proxy: 3.0.0 isomorphic-unfetch: 4.0.2 @@ -10365,7 +10694,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.5) magic-string: 0.27.0 react-refresh: 0.14.0 - vite: 4.4.2(@types/node@20.10.1)(less@4.2.0) + vite: 4.4.2(@types/node@16.18.7)(less@4.2.0) transitivePeerDependencies: - supports-color dev: true @@ -10395,11 +10724,49 @@ packages: '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.5) '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.5) react-refresh: 0.14.0 - vite: 4.4.2(@types/node@16.18.7) + vite: 4.4.2(@types/node@16.18.7)(less@4.2.0) transitivePeerDependencies: - supports-color dev: true + /@vitest/expect@1.1.1: + resolution: {integrity: sha512-Qpw01C2Hyb3085jBkOJLQ7HRX0Ncnh2qV4p+xWmmhcIUlMykUF69zsnZ1vPmAjZpomw9+5tWEGOQ0GTfR8U+kA==} + dependencies: + '@vitest/spy': 1.1.1 + '@vitest/utils': 1.1.1 + chai: 4.3.10 + dev: true + + /@vitest/runner@1.1.1: + resolution: {integrity: sha512-8HokyJo1SnSi3uPFKfWm/Oq1qDwLC4QDcVsqpXIXwsRPAg3gIDh8EbZ1ri8cmQkBxdOu62aOF9B4xcqJhvt4xQ==} + dependencies: + '@vitest/utils': 1.1.1 + p-limit: 5.0.0 + pathe: 1.1.1 + dev: true + + /@vitest/snapshot@1.1.1: + resolution: {integrity: sha512-WnMHjv4VdHLbFGgCdVVvyRkRPnOKN75JJg+LLTdr6ah7YnL75W+7CTIMdzPEPzaDxA8r5yvSVlc1d8lH3yE28w==} + dependencies: + magic-string: 0.30.5 + pathe: 1.1.1 + pretty-format: 29.7.0 + dev: true + + /@vitest/spy@1.1.1: + resolution: {integrity: sha512-hDU2KkOTfFp4WFFPWwHFauddwcKuGQ7gF6Un/ZZkCogoAiTMN7/7YKvUDbywPZZ754iCQGjdUmXN3t4k0jm1IQ==} + dependencies: + tinyspy: 2.2.0 + dev: true + + /@vitest/utils@1.1.1: + resolution: {integrity: sha512-E9LedH093vST/JuBSyHLFMpxJKW3dLhe/flUSPFedoyj4wKiFX7Jm8gYLtOIiin59dgrssfmFv0BJ1u8P/LC/A==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true + /@webassemblyjs/ast@1.11.1: resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} dependencies: @@ -10985,6 +11352,10 @@ packages: util: 0.12.5 dev: true + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + /ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} dev: true @@ -11132,17 +11503,17 @@ packages: - supports-color dev: true - /babel-jest@28.1.3(@babel/core@7.23.6): + /babel-jest@28.1.3(@babel/core@7.23.7): resolution: {integrity: sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@jest/transform': 28.1.3 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 28.1.3(@babel/core@7.23.6) + babel-preset-jest: 28.1.3(@babel/core@7.23.7) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -11168,17 +11539,17 @@ packages: - supports-color dev: true - /babel-jest@29.7.0(@babel/core@7.23.6): + /babel-jest@29.7.0(@babel/core@7.23.7): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.23.6) + babel-preset-jest: 29.6.3(@babel/core@7.23.7) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -11201,14 +11572,14 @@ packages: webpack: 5.89.0 dev: true - /babel-loader@9.1.3(@babel/core@7.23.6)(webpack@5.89.0): + /babel-loader@9.1.3(@babel/core@7.23.7)(webpack@5.89.0): resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} engines: {node: '>= 14.15.0'} peerDependencies: '@babel/core': ^7.12.0 webpack: '>=5' dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 find-cache-dir: 4.0.0 schema-utils: 4.2.0 webpack: 5.89.0 @@ -11258,9 +11629,9 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.5 - '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.4 + '@babel/types': 7.20.5 + '@types/babel__core': 7.1.20 + '@types/babel__traverse': 7.18.3 dev: true /babel-plugin-macros@3.1.0: @@ -11382,24 +11753,24 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.5) dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.6): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.7): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.6) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) dev: true /babel-preset-jest@27.5.1(@babel/core@7.23.5): @@ -11413,15 +11784,15 @@ packages: babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.5) dev: true - /babel-preset-jest@28.1.3(@babel/core@7.23.6): + /babel-preset-jest@28.1.3(@babel/core@7.23.7): resolution: {integrity: sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 babel-plugin-jest-hoist: 28.1.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.6) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7) dev: true /babel-preset-jest@29.6.3(@babel/core@7.23.5): @@ -11435,15 +11806,15 @@ packages: babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.5) dev: true - /babel-preset-jest@29.6.3(@babel/core@7.23.6): + /babel-preset-jest@29.6.3(@babel/core@7.23.7): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.6) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7) dev: true /babel-preset-react-app@10.0.1: @@ -11707,7 +12078,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001571 + caniuse-lite: 1.0.30001572 electron-to-chromium: 1.4.616 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) @@ -11784,6 +12155,11 @@ packages: engines: {node: '>= 0.8'} dev: true + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: @@ -11862,8 +12238,8 @@ packages: /caniuse-lite@1.0.30001565: resolution: {integrity: sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==} - /caniuse-lite@1.0.30001571: - resolution: {integrity: sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==} + /caniuse-lite@1.0.30001572: + resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} dev: true /case-sensitive-paths-webpack-plugin@2.4.0: @@ -11875,6 +12251,19 @@ packages: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} dev: false + /chai@4.3.10: + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + engines: {node: '>=4'} + 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.7 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + /chalk@2.3.0: resolution: {integrity: sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==} engines: {node: '>=4'} @@ -11942,6 +12331,12 @@ packages: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} dev: false + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 + dev: true + /check-types@11.2.3: resolution: {integrity: sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==} dev: true @@ -12526,25 +12921,6 @@ packages: - ts-node dev: true - /create-jest@29.7.0(@types/node@20.10.1)(ts-node@10.9.1): - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.10.1)(ts-node@10.9.1) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true @@ -13379,6 +13755,13 @@ packages: optional: true dev: true + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -14519,6 +14902,37 @@ packages: '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + /esbuild@0.19.11: + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.11 + '@esbuild/android-arm': 0.19.11 + '@esbuild/android-arm64': 0.19.11 + '@esbuild/android-x64': 0.19.11 + '@esbuild/darwin-arm64': 0.19.11 + '@esbuild/darwin-x64': 0.19.11 + '@esbuild/freebsd-arm64': 0.19.11 + '@esbuild/freebsd-x64': 0.19.11 + '@esbuild/linux-arm': 0.19.11 + '@esbuild/linux-arm64': 0.19.11 + '@esbuild/linux-ia32': 0.19.11 + '@esbuild/linux-loong64': 0.19.11 + '@esbuild/linux-mips64el': 0.19.11 + '@esbuild/linux-ppc64': 0.19.11 + '@esbuild/linux-riscv64': 0.19.11 + '@esbuild/linux-s390x': 0.19.11 + '@esbuild/linux-x64': 0.19.11 + '@esbuild/netbsd-x64': 0.19.11 + '@esbuild/openbsd-x64': 0.19.11 + '@esbuild/sunos-x64': 0.19.11 + '@esbuild/win32-arm64': 0.19.11 + '@esbuild/win32-ia32': 0.19.11 + '@esbuild/win32-x64': 0.19.11 + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -15380,6 +15794,21 @@ packages: strip-final-newline: 3.0.0 dev: true + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + /exit-hook@3.2.0: resolution: {integrity: sha512-aIQN7Q04HGAV/I5BszisuHTZHXNoC23WtLkxdCLuYZMdWviRD0TMIt2bnUBi9MrHaF/hH8b3gwG9iaAUHKnJGA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -15981,6 +16410,10 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true + /get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: @@ -16036,6 +16469,11 @@ packages: engines: {node: '>=10'} dev: true + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + /get-tsconfig@4.7.2: resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} dependencies: @@ -16767,6 +17205,11 @@ packages: engines: {node: '>=14.18.0'} dev: true + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + /husky@8.0.3: resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} engines: {node: '>=14'} @@ -17534,56 +17977,28 @@ packages: peerDependenciesMeta: node-notifier: optional: true - dependencies: - '@jest/core': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - import-local: 3.1.0 - jest-config: 27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - prompts: 2.4.2 - yargs: 16.2.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-cli@29.7.0(@types/node@16.18.7)(ts-node@10.9.1): - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0(ts-node@10.9.1) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + dependencies: + '@jest/core': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/types': 27.5.1 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@16.18.7)(ts-node@10.9.1) exit: 0.1.2 + graceful-fs: 4.2.11 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@16.18.7)(ts-node@10.9.1) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 + jest-config: 27.5.1 + jest-util: 27.5.1 + jest-validate: 27.5.1 + prompts: 2.4.2 + yargs: 16.2.0 transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros + - bufferutil + - canvas - supports-color - ts-node + - utf-8-validate dev: true - /jest-cli@29.7.0(@types/node@20.10.1)(ts-node@10.9.1): + /jest-cli@29.7.0(@types/node@16.18.7)(ts-node@10.9.1): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -17597,10 +18012,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.10.1)(ts-node@10.9.1) + create-jest: 29.7.0(@types/node@16.18.7)(ts-node@10.9.1) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.10.1)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@16.18.7)(ts-node@10.9.1) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -17692,47 +18107,6 @@ packages: - supports-color dev: true - /jest-config@29.7.0(@types/node@20.10.1)(ts-node@10.9.1): - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': 7.23.5 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.10.1 - babel-jest: 29.7.0(@babel/core@7.23.5) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.10.1)(typescript@5.3.2) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - dev: true - /jest-diff@27.5.1: resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -18010,7 +18384,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.10.1 + '@types/node': 16.18.7 dev: true /jest-mock@29.7.0: @@ -18018,7 +18392,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.1 + '@types/node': 16.18.7 jest-util: 29.7.0 dev: true @@ -18154,7 +18528,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.1 + '@types/node': 16.18.7 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -18215,7 +18589,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.1 + '@types/node': 16.18.7 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -18238,7 +18612,7 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 20.10.1 + '@types/node': 16.18.7 graceful-fs: 4.2.11 dev: true @@ -18280,7 +18654,7 @@ packages: '@babel/generator': 7.23.5 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.5) '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5) - '@babel/types': 7.23.5 + '@babel/types': 7.20.5 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -18446,7 +18820,7 @@ packages: resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@types/node': 20.10.1 + '@types/node': 16.18.7 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -18492,8 +18866,8 @@ packages: - utf-8-validate dev: true - /jest@29.6.1(@types/node@16.18.7)(ts-node@10.9.1): - resolution: {integrity: sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw==} + /jest@29.7.0(@types/node@16.18.7)(ts-node@10.9.1): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -18513,27 +18887,6 @@ packages: - ts-node dev: true - /jest@29.6.1(@types/node@20.10.1)(ts-node@10.9.1): - resolution: {integrity: sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0(ts-node@10.9.1) - '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.10.1)(ts-node@10.9.1) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - /jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true @@ -18695,7 +19048,6 @@ packages: /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: false /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} @@ -19082,6 +19434,14 @@ packages: engines: {node: '>=14'} dev: true + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.4.2 + pkg-types: 1.0.3 + dev: true + /locate-path@3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} @@ -19207,6 +19567,12 @@ packages: dependencies: js-tokens: 4.0.0 + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + dependencies: + get-func-name: 2.0.2 + dev: true + /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: @@ -20286,6 +20652,15 @@ packages: hasBin: true dev: true + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + dependencies: + acorn: 8.11.2 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.2 + dev: true + /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -20868,6 +21243,13 @@ packages: yocto-queue: 1.0.0 dev: true + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + dependencies: + yocto-queue: 1.0.0 + dev: true + /p-locate@3.0.0: resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} engines: {node: '>=6'} @@ -21104,6 +21486,10 @@ packages: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} dev: true + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + /pbkdf2@3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} engines: {node: '>=0.12'} @@ -21239,6 +21625,14 @@ packages: find-up: 6.3.0 dev: true + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.2 + pathe: 1.1.1 + dev: true + /pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} @@ -22858,6 +23252,15 @@ packages: source-map-js: 1.0.2 dev: true + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /prelude-ls@1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} @@ -24360,6 +24763,27 @@ packages: fsevents: 2.3.3 dev: true + /rollup@4.9.2: + resolution: {integrity: sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.9.2 + '@rollup/rollup-android-arm64': 4.9.2 + '@rollup/rollup-darwin-arm64': 4.9.2 + '@rollup/rollup-darwin-x64': 4.9.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.2 + '@rollup/rollup-linux-arm64-gnu': 4.9.2 + '@rollup/rollup-linux-arm64-musl': 4.9.2 + '@rollup/rollup-linux-riscv64-gnu': 4.9.2 + '@rollup/rollup-linux-x64-gnu': 4.9.2 + '@rollup/rollup-linux-x64-musl': 4.9.2 + '@rollup/rollup-win32-arm64-msvc': 4.9.2 + '@rollup/rollup-win32-ia32-msvc': 4.9.2 + '@rollup/rollup-win32-x64-msvc': 4.9.2 + fsevents: 2.3.3 + dev: true + /run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} engines: {node: '>=12'} @@ -24753,6 +25177,10 @@ packages: object-inspect: 1.13.1 dev: true + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -25023,6 +25451,10 @@ packages: escape-string-regexp: 2.0.0 dev: true + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + /stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} dev: true @@ -25043,6 +25475,10 @@ packages: engines: {node: '>= 0.8'} dev: true + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + dev: true + /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} @@ -25233,6 +25669,12 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + dependencies: + acorn: 8.11.2 + dev: true + /style-loader@3.3.3(webpack@5.89.0): resolution: {integrity: sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==} engines: {node: '>= 12.13.0'} @@ -25828,6 +26270,20 @@ packages: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} dev: true + /tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + dev: true + + /tinypool@0.8.1: + resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + engines: {node: '>=14.0.0'} + dev: true + /title@3.5.3: resolution: {integrity: sha512-20JyowYglSEeCvZv3EZ0nZ046vLarO37prvV0mbtQV7C8DJPGgN967r8SJkqd3XK3K3lD3/Iyfp3avjfil8Q2Q==} hasBin: true @@ -25932,7 +26388,7 @@ packages: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /ts-jest@29.1.1(@babel/core@7.23.5)(jest@29.6.1)(typescript@5.3.2): + /ts-jest@29.1.1(@babel/core@7.23.5)(jest@29.7.0)(typescript@5.3.2): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -25956,42 +26412,7 @@ packages: '@babel/core': 7.23.5 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.6.1(@types/node@16.18.7)(ts-node@10.9.1) - jest-util: 29.7.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.5.4 - typescript: 5.3.2 - yargs-parser: 21.1.1 - dev: true - - /ts-jest@29.1.1(@babel/core@7.23.6)(esbuild@0.18.20)(jest@29.6.1)(typescript@5.3.2): - resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - '@babel/core': 7.23.6 - bs-logger: 0.2.6 - esbuild: 0.18.20 - fast-json-stable-stringify: 2.1.0 - jest: 29.6.1(@types/node@20.10.1)(ts-node@10.9.1) + jest: 29.7.0(@types/node@16.18.7)(ts-node@10.9.1) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -26032,37 +26453,6 @@ packages: yn: 3.1.1 dev: true - /ts-node@10.9.1(@types/node@20.10.1)(typescript@5.3.2): - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.10.1 - acorn: 8.11.2 - acorn-walk: 8.3.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.3.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - /tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: @@ -26229,6 +26619,10 @@ packages: engines: {node: '>=14.17'} hasBin: true + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + dev: true + /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} @@ -26255,7 +26649,7 @@ packages: - react-router dev: true - /umi@4.0.36(@babel/core@7.23.6)(eslint@8.44.0)(postcss@8.4.26)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(rollup@2.79.1)(styled-components@6.1.3)(stylelint@14.16.1)(typescript@5.3.2)(webpack@5.89.0): + /umi@4.0.36(@babel/core@7.23.7)(eslint@8.44.0)(postcss@8.4.26)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(rollup@2.79.1)(styled-components@6.1.3)(stylelint@14.16.1)(typescript@5.3.2)(webpack@5.89.0): resolution: {integrity: sha512-GT2g0Nai6FcSQxAjwfONewagHUv2Lqg8IWBtACXCDj3Nm2AjhJIGyG+UrOsgpI/T+/Upz7H3XjBjciex/Lrw0Q==} engines: {node: '>=14'} hasBin: true @@ -26268,7 +26662,7 @@ packages: '@umijs/preset-umi': 4.0.36(postcss@8.4.26)(rollup@2.79.1)(styled-components@6.1.3)(typescript@5.3.2)(webpack@5.89.0) '@umijs/renderer-react': 4.0.36(react-dom@18.2.0)(react@18.2.0) '@umijs/server': 4.0.36 - '@umijs/test': 4.0.36(@babel/core@7.23.6) + '@umijs/test': 4.0.36(@babel/core@7.23.7) '@umijs/utils': 4.0.36 prettier-plugin-organize-imports: 2.3.4(prettier@3.1.1)(typescript@5.3.2) prettier-plugin-packagejson: 2.4.6(prettier@3.1.1) @@ -26302,7 +26696,7 @@ packages: - webpack-plugin-serve dev: true - /umi@4.0.72(@babel/core@7.23.6)(@types/node@16.18.7)(@types/react@18.0.26)(eslint@8.44.0)(postcss@8.4.26)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.3)(stylelint@14.16.1)(typescript@5.3.2)(webpack@5.89.0): + /umi@4.0.72(@babel/core@7.23.7)(@types/node@16.18.7)(@types/react@18.0.26)(eslint@8.44.0)(postcss@8.4.26)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(styled-components@6.1.3)(stylelint@14.16.1)(typescript@5.3.2)(webpack@5.89.0): resolution: {integrity: sha512-VXXwhHtZAApRR02c2F+uDv84m/Bf5g56pMKrArtIUFsrWM8hqS3f7whzgpdjzh0H8EFjpXwan0kJrkXFr6dAPg==} engines: {node: '>=14'} hasBin: true @@ -26315,7 +26709,7 @@ packages: '@umijs/preset-umi': 4.0.72(@types/node@16.18.7)(@types/react@18.0.26)(postcss@8.4.26)(styled-components@6.1.3)(typescript@5.3.2)(webpack@5.89.0) '@umijs/renderer-react': 4.0.72(react-dom@18.2.0)(react@18.2.0) '@umijs/server': 4.0.72 - '@umijs/test': 4.0.72(@babel/core@7.23.6) + '@umijs/test': 4.0.72(@babel/core@7.23.7) '@umijs/utils': 4.0.72 prettier-plugin-organize-imports: 3.2.4(prettier@3.1.1)(typescript@5.3.2) prettier-plugin-packagejson: 2.4.3(prettier@3.1.1) @@ -26867,6 +27261,27 @@ packages: vfile-message: 4.0.2 dev: false + /vite-node@1.1.1(@types/node@16.18.7)(less@4.2.0): + resolution: {integrity: sha512-2bGE5w4jvym5v8llF6Gu1oBrmImoNSs4WmRVcavnG2me6+8UQntTqLiAMFyiAobp+ZXhj5ZFhI7SmLiFr/jrow==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 5.0.10(@types/node@16.18.7)(less@4.2.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vite@2.9.16: resolution: {integrity: sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA==} engines: {node: '>=12.2.0'} @@ -26959,7 +27374,7 @@ packages: fsevents: 2.3.3 dev: true - /vite@4.4.2(@types/node@16.18.7): + /vite@4.4.2(@types/node@16.18.7)(less@4.2.0): resolution: {integrity: sha512-zUcsJN+UvdSyHhYa277UHhiJ3iq4hUBwHavOpsNUGsTgjBeoBlK8eDt+iT09pBq0h9/knhG/SPrZiM7cGmg7NA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -26989,18 +27404,19 @@ packages: dependencies: '@types/node': 16.18.7 esbuild: 0.18.20 + less: 4.2.0 postcss: 8.4.26 rollup: 3.29.4 optionalDependencies: fsevents: 2.3.3 dev: true - /vite@4.4.2(@types/node@20.10.1)(less@4.2.0): - resolution: {integrity: sha512-zUcsJN+UvdSyHhYa277UHhiJ3iq4hUBwHavOpsNUGsTgjBeoBlK8eDt+iT09pBq0h9/knhG/SPrZiM7cGmg7NA==} - engines: {node: ^14.18.0 || >=16.0.0} + /vite@5.0.10(@types/node@16.18.7)(less@4.2.0): + resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@types/node': '>= 14' + '@types/node': ^18.0.0 || >=20.0.0 less: '*' lightningcss: ^1.21.0 sass: '*' @@ -27023,15 +27439,72 @@ packages: terser: optional: true dependencies: - '@types/node': 20.10.1 - esbuild: 0.18.20 + '@types/node': 16.18.7 + esbuild: 0.19.11 less: 4.2.0 - postcss: 8.4.26 - rollup: 3.29.4 + postcss: 8.4.32 + rollup: 4.9.2 optionalDependencies: fsevents: 2.3.3 dev: true + /vitest@1.1.1(@types/node@16.18.7)(less@4.2.0): + resolution: {integrity: sha512-Ry2qs4UOu/KjpXVfOCfQkTnwSXYGrqTbBZxw6reIYEFjSy1QUARRg5pxiI5BEXy+kBVntxUYNMlq4Co+2vD3fQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': ^1.0.0 + '@vitest/ui': ^1.0.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/node': 16.18.7 + '@vitest/expect': 1.1.1 + '@vitest/runner': 1.1.1 + '@vitest/snapshot': 1.1.1 + '@vitest/spy': 1.1.1 + '@vitest/utils': 1.1.1 + acorn-walk: 8.3.0 + cac: 6.7.14 + chai: 4.3.10 + debug: 4.3.4 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.5 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.8.1 + vite: 5.0.10(@types/node@16.18.7)(less@4.2.0) + vite-node: 1.1.1(@types/node@16.18.7)(less@4.2.0) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} dev: true @@ -27555,6 +28028,15 @@ packages: dependencies: isexe: 2.0.0 + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + /word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'}