diff --git a/.eslintrc.js b/.eslintrc.js index 8f417ac1..599c3d16 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -25,6 +25,17 @@ module.exports = { '@typescript-eslint/no-var-requires': 'off', '@typescript-eslint/ban-ts-comment': 'off', }, + parserOptions: { + sourceType: 'script', + }, + }, + { + files: ['**.test.ts', '**.test.tsx'], + rules: { + '@typescript-eslint/no-non-null-assertion': 'off', + 'jsx-a11y/click-events-have-key-events': 'off', + 'jsx-a11y/no-static-element-interactions': 'off', + }, }, ], env: { diff --git a/internal/playground/src/router.tsx b/internal/playground/src/router.tsx index ae364d2d..74546b69 100644 --- a/internal/playground/src/router.tsx +++ b/internal/playground/src/router.tsx @@ -126,6 +126,11 @@ export const baseRouter = [ path: '/tag', element: getDemos(import.meta.glob('~/tag/demo/*.tsx')), }, + { + name: 'select 选择器', + path: '/select', + element: getDemos(import.meta.glob('~/select/demo/*.tsx')), + }, /*insert target*/ ]; diff --git a/internal/playground/vite.config.ts b/internal/playground/vite.config.ts index 60a810af..fa3878a6 100644 --- a/internal/playground/vite.config.ts +++ b/internal/playground/vite.config.ts @@ -17,20 +17,26 @@ export default defineConfig(() => { cacheDir: `./.cache`, resolve: { alias: { - ...pkgs.reduce((prev, cur) => { - prev['@pkg/' + cur] = Path.resolve( - __dirname, - `../../packages/${cur}/src`, - ); - return prev; - }, {} as Record), - ...components.reduce((prev, cur) => { - prev['~/' + cur] = Path.resolve( - __dirname, - `../../packages/components/src/${cur}`, - ); - return prev; - }, {} as Record), + ...pkgs.reduce( + (prev, cur) => { + prev['@pkg/' + cur] = Path.resolve( + __dirname, + `../../packages/${cur}/src`, + ); + return prev; + }, + {} as Record, + ), + ...components.reduce( + (prev, cur) => { + prev['~/' + cur] = Path.resolve( + __dirname, + `../../packages/components/src/${cur}`, + ); + return prev; + }, + {} as Record, + ), '@tool-pack/react-ui': Path.resolve( __dirname, '../../packages/react-ui/src', diff --git a/package.json b/package.json index e35b10ad..e3d543f3 100644 --- a/package.json +++ b/package.json @@ -52,66 +52,66 @@ "react-dom": "^18.2.0" }, "devDependencies": { - "@commitlint/cli": "^17.6.5", - "@commitlint/config-conventional": "^17.6.5", + "@commitlint/cli": "^17.7.1", + "@commitlint/config-conventional": "^17.7.0", "@mxssfd/dumi-theme-antd-style": "^0.27.5-beta.9", "@rollup/plugin-json": "^6.0.0", - "@testing-library/jest-dom": "^5.16.5", + "@testing-library/jest-dom": "^6.1.2", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.4.3", - "@tool-pack/basic": "^0.1.1", + "@tool-pack/basic": "^0.1.2", "@tool-pack/bom": "0.0.1-beta.0", "@tool-pack/dom": "^0.0.13", - "@tool-pack/types": "^0.0.6", + "@tool-pack/types": "^0.0.9", "@types/fs-extra": "^11.0.1", - "@types/jest": "^29.5.1", - "@types/node": "^16.18.34", - "@types/react": "^18.2.7", - "@types/react-dom": "^18.2.4", - "@types/testing-library__jest-dom": "^5.14.6", - "@typescript-eslint/eslint-plugin": "^5.59.8", - "@typescript-eslint/parser": "^5.59.8", - "@umijs/lint": "^4.0.0", - "@vitejs/plugin-react": "^4.0.0", - "autoprefixer": "^10.4.14", - "chalk": "^5.2.0", + "@types/jest": "^29.5.4", + "@types/node": "^20.5.6", + "@types/react": "^18.2.21", + "@types/react-dom": "^18.2.7", + "@types/testing-library__jest-dom": "^5.14.9", + "@typescript-eslint/eslint-plugin": "5.62.0", + "@typescript-eslint/parser": "^5.62.0", + "@umijs/lint": "^4.0.78", + "@vitejs/plugin-react": "^4.0.4", + "autoprefixer": "^10.4.15", + "chalk": "^5.3.0", "conventional-changelog-cli": "^3.0.0", "cssnano": "^6.0.1", - "dumi": "^2.2.1", - "enquirer": "^2.3.6", - "eslint": "^8.41.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-prettier": "^4.2.1", - "esno": "^0.16.3", - "execa": "^7.1.1", - "father": "^4.1.0", + "dumi": "^2.2.6", + "enquirer": "^2.4.1", + "eslint": "^8.47.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0", + "esno": "^0.17.0", + "execa": "^8.0.1", + "father": "^4.3.1", "fs-extra": "^11.1.1", - "gh-pages": "^5.0.0", + "gh-pages": "^6.0.0", "husky": "^8.0.3", - "lint-staged": "^13.2.2", - "npm-check-updates": "^16.10.12", - "postcss": "^8.4.26", + "lint-staged": "^14.0.1", + "npm-check-updates": "^16.13.1", + "postcss": "^8.4.28", "postcss-cli": "^10.1.0", "postcss-merge-rules-plus": "^2.0.0", - "prettier": "^2.8.8", - "prettier-plugin-organize-imports": "^3.0.0", - "prettier-plugin-packagejson": "^2.2.18", + "prettier": "^3.0.2", + "prettier-plugin-organize-imports": "^3.2.3", + "prettier-plugin-packagejson": "^2.4.5", "react-scripts": "5.0.1", - "rollup": "^3.23.0", - "rollup-plugin-dts": "^5.3.0", - "rollup-plugin-typescript2": "^0.34.1", + "rollup": "^3.28.1", + "rollup-plugin-dts": "^6.0.0", + "rollup-plugin-typescript2": "^0.35.0", "rxjs": "^7.8.1", - "sass": "^1.62.1", - "serve": "^14.2.0", - "stylelint": "^15.7.0", + "sass": "^1.66.1", + "serve": "^14.2.1", + "stylelint": "^15.10.3", "stylelint-config-prettier": "^9.0.5", - "stylelint-config-standard": "^33.0.0", - "stylelint-config-standard-scss": "^9.0.0", + "stylelint-config-standard": "^34.0.0", + "stylelint-config-standard-scss": "^10.0.0", "stylelint-order": "^6.0.3", - "stylelint-scss": "^5.0.1", - "tsc-alias": "^1.8.6", - "typescript": "^5.1.5", - "vite": "^4.3.9", + "stylelint-scss": "^5.1.0", + "tsc-alias": "^1.8.7", + "typescript": "^5.2.2", + "vite": "^4.4.9", "yalc": "1.0.0-pre.53" }, "browserslist": { diff --git a/packages/components/package.json b/packages/components/package.json index 25888534..c679c967 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -13,6 +13,9 @@ "test": "react-scripts test --watchAll=false" }, "jest": { + "testMatch": [ + "/src/**/*.(spec|test).(ts|tsx)" + ], "moduleNameMapper": { "^@pkg/(.+)$": "/../../packages/$1/src", "^@tool-pack/react-ui$": "/../../packages/react-ui/src", diff --git a/packages/components/src/dropdown/Dropdown.tsx b/packages/components/src/dropdown/Dropdown.tsx index cdaac787..b982e970 100644 --- a/packages/components/src/dropdown/Dropdown.tsx +++ b/packages/components/src/dropdown/Dropdown.tsx @@ -1,16 +1,16 @@ -import React, { useEffect, useRef, useState } from 'react'; +import React, { useRef } from 'react'; import type { RequiredPart } from '@tool-pack/types'; import { getClassNames } from '@tool-pack/basic'; import type { - DropdownDivider, DropdownOptionsItem, + DropdownDivider, + DropdownOption, DropdownProps, } from './dropdown.types'; import { Popover } from '~/popover'; -import { Option } from '~/option'; -import { getComponentClass } from '@pkg/shared'; +import { DropdownInnerOption } from './DropdownInnerOption'; +import { getComponentClass, useStateWithTrailClear } from '@pkg/shared'; import { Divider } from '~/divider'; -import { DropdownOption } from './dropdown.types'; const defaultProps = { placement: 'bottom-start', @@ -34,22 +34,36 @@ export const Dropdown: React.FC = (props) => { } = props as RequiredPart; const boxRef = useRef(null); - const [show, setShow] = useState(); - - useEffect(() => { - show !== undefined && setShow(undefined); - }, [show]); - useEffect(() => { - setShow(visible); - }, [visible]); + const [show, setShow] = useStateWithTrailClear(visible); const name = 'dropdown'; const rootClass = getComponentClass(name); - const handleOptions = ( + const Box = ( + <> + {header &&
{header}
} +
+
    {handleOptions(options)}
+
+ {footer &&
{footer}
} + + ); + + return ( + + {children} + + ); + + function handleOptions( options: DropdownOptionsItem[] = [], parents: DropdownOption[] = [], - ): React.ReactElement[] => { + ): React.ReactElement[] { return options.map((opt) => { if (isDivider(opt)) { const { key, type: _type, tag = 'li', ...rest } = opt; @@ -64,7 +78,6 @@ export const Dropdown: React.FC = (props) => { type, label, key, - tag, children, attrs: optAttrs = {}, ...optRest @@ -73,7 +86,7 @@ export const Dropdown: React.FC = (props) => { if (type === 'group') { return (
  • - +
      {handleOptions(children, [...parents, opt])}
    @@ -103,15 +116,14 @@ export const Dropdown: React.FC = (props) => { emit(opt, parents); }; const option = ( - + ); if (!children || optRest.disabled) return option; @@ -138,33 +150,11 @@ export const Dropdown: React.FC = (props) => { ); }); - }; - - const Box = ( - <> - {header &&
    {header}
    } -
    -
      {handleOptions(options)}
    -
    - {footer &&
    {footer}
    } - - ); - - return ( - - {children} - - ); + } + function isDivider(opt: DropdownOptionsItem): opt is DropdownDivider { + return (opt as DropdownDivider).type === 'divider'; + } }; Dropdown.defaultProps = defaultProps; Dropdown.displayName = 'Dropdown'; - -function isDivider(opt: DropdownOptionsItem): opt is DropdownDivider { - return (opt as DropdownDivider).type === 'divider'; -} diff --git a/packages/components/src/dropdown/DropdownInnerOption.tsx b/packages/components/src/dropdown/DropdownInnerOption.tsx new file mode 100644 index 00000000..11c7554e --- /dev/null +++ b/packages/components/src/dropdown/DropdownInnerOption.tsx @@ -0,0 +1,42 @@ +import React from 'react'; +import { DropdownOptionProps } from '~/dropdown/dropdown.types'; +import { Option } from '~/option'; +import { getComponentClass } from '@pkg/shared'; +import { getClassNames } from '@tool-pack/basic'; +import { Icon } from '~/icon'; +import { Right as RightIcon } from '@pkg/icons'; + +const rootClass = getComponentClass('dropdown-option'); +const defaultProps = { + tag: 'li', +} satisfies Partial; + +export const DropdownInnerOption: React.FC = + React.forwardRef((props, ref) => { + const { expandable, children, extra, attrs = {}, ...rest } = props; + return ( + + ); + }); + +DropdownInnerOption.defaultProps = defaultProps; diff --git a/packages/components/src/dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap b/packages/components/src/dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap index 58bc1220..b71b6b04 100644 --- a/packages/components/src/dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +++ b/packages/components/src/dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap @@ -2,7 +2,7 @@ exports[`Dropdown basic 1`] = `
  • - 黄金蛋炒饭 +
    + 黄金蛋炒饭 +
  • - 扬州炒饭 +
    + 扬州炒饭 +
  • @@ -38,7 +46,7 @@ exports[`Dropdown basic 1`] = ` exports[`Dropdown basic 2`] = `
  • - 黄金蛋炒饭 +
    + 黄金蛋炒饭 +
  • - 扬州炒饭 +
    + 扬州炒饭 +
  • @@ -74,7 +90,7 @@ exports[`Dropdown basic 2`] = ` exports[`Dropdown disabled 1`] = `
  • - 黄金蛋炒饭 +
    + 黄金蛋炒饭 +
  • - 扬州炒饭 +
    + 扬州炒饭 +
  • @@ -107,7 +131,7 @@ exports[`Dropdown disabled 1`] = ` exports[`Dropdown group 1`] = `
    - 饭菜类 +
    + 饭菜类 +
    • - 手撕鸡 +
      + 手撕鸡 +
    • - 炒饭 +
      + 炒饭 +
      • - 黄金蛋炒饭 +
        + 黄金蛋炒饭 +
      • - 扬州炒饭 +
        + 扬州炒饭 +
  • - 其他 +
    + 其他 +
  • @@ -179,7 +227,7 @@ exports[`Dropdown group 1`] = ` exports[`Dropdown header footer 1`] = `
  • - 黄金蛋炒饭 +
    + 黄金蛋炒饭 +
  • - 扬州炒饭 +
    + 扬州炒饭 +
  • @@ -225,7 +281,7 @@ exports[`Dropdown header footer 1`] = ` exports[`Dropdown nest 1`] = `
  • - 手撕鸡 +
    + 手撕鸡 +
  • -
    蛋炒饭
  • - 黄金蛋炒饭,黄金蛋炒饭 +
    + 黄金蛋炒饭,黄金蛋炒饭 +
  • - 扬州炒饭 +
    + 扬州炒饭 +
  • - - +
    - - - - + + + + +
  • - 榴莲 +
    + 榴莲 +
  • diff --git a/packages/components/src/dropdown/demo/nest.tsx b/packages/components/src/dropdown/demo/nest.tsx index e8b01f87..8e75ba68 100644 --- a/packages/components/src/dropdown/demo/nest.tsx +++ b/packages/components/src/dropdown/demo/nest.tsx @@ -27,6 +27,7 @@ const options: DropdownOptionsItem[] = [
    蛋炒饭
    ), + extra: '推荐 ', children: [ { key: '4', diff --git a/packages/components/src/dropdown/dropdown.types.ts b/packages/components/src/dropdown/dropdown.types.ts index cffe2ae9..b0e2c2a3 100644 --- a/packages/components/src/dropdown/dropdown.types.ts +++ b/packages/components/src/dropdown/dropdown.types.ts @@ -4,11 +4,15 @@ import type { OptionProps } from '~/option'; import type { PopoverProps } from '~/popover'; import { DividerProps } from '~/divider'; +export interface DropdownOptionProps extends OptionProps { + expandable?: boolean; +} export interface DropdownDivider extends DividerProps { type: 'divider'; key: React.Key; } -export interface DropdownOption extends Omit { +export interface DropdownOption + extends Omit { type?: 'group' | 'option'; key: React.Key; label: React.ReactNode; diff --git a/packages/components/src/dropdown/index.scss b/packages/components/src/dropdown/index.scss index c14d5bf1..bc6b368e 100644 --- a/packages/components/src/dropdown/index.scss +++ b/packages/components/src/dropdown/index.scss @@ -2,6 +2,7 @@ @use '../popover/index' as Pop; $r: Name.$dropdown; +$o: Name.$dropdown-option; $balloon-content: #{Name.$word-balloon}__content; $option: Name.$option; @@ -36,3 +37,8 @@ $option: Name.$option; margin-left: var(--t-radius); } } +.#{$o} { + &__expand { + font-size: 0.8em; + } +} diff --git a/packages/components/src/dropdown/index.ts b/packages/components/src/dropdown/index.ts index 79f70f61..3717e6d4 100644 --- a/packages/components/src/dropdown/index.ts +++ b/packages/components/src/dropdown/index.ts @@ -1,2 +1,8 @@ -export type { DropdownProps, DropdownOptionsItem } from './dropdown.types'; +export type { + DropdownOptionsItem, + DropdownOptionProps, + DropdownDivider, + DropdownOption, + DropdownProps, +} from './dropdown.types'; export * from './Dropdown'; diff --git a/packages/components/src/dropdown/index.zh-CN.md b/packages/components/src/dropdown/index.zh-CN.md index 398e9abb..1fd7b390 100644 --- a/packages/components/src/dropdown/index.zh-CN.md +++ b/packages/components/src/dropdown/index.zh-CN.md @@ -31,23 +31,26 @@ Dropdown 说明。 Dropdown 的属性说明如下: ```typescript -export interface OptionProps { +export interface OptionProps extends PropsBase { tag?: keyof HTMLElementTagNameMap; size?: Size; disabled?: boolean; - expandable?: boolean; readonly?: boolean; icon?: React.ReactNode; - ref?: React.ForwardedRef; - attrs?: Partial>; - children: React.ReactNode; + extra?: React.ReactNode; +} + +export interface DropdownOptionProps extends OptionProps { + expandable?: boolean; } export interface DropdownDivider extends DividerProps { type: 'divider'; key: React.Key; } -export interface DropdownOption extends Omit { + +export interface DropdownOption + extends Omit { type?: 'group' | 'option'; key: React.Key; label: React.ReactNode; diff --git a/packages/components/src/index.scss b/packages/components/src/index.scss index 5422276b..1ba7e242 100644 --- a/packages/components/src/index.scss +++ b/packages/components/src/index.scss @@ -22,3 +22,4 @@ @import './switch'; @import './transition'; @import './tag'; +@import './select'; diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts index 0f7b3244..96e30bbc 100644 --- a/packages/components/src/index.ts +++ b/packages/components/src/index.ts @@ -28,3 +28,4 @@ export * from './number-transition'; export * from './alert'; export * from './switch'; export * from './tag'; +export * from './select'; diff --git a/packages/components/src/layouts/useElement.tsx b/packages/components/src/layouts/useElement.tsx index 30aa8d71..96e79cc1 100644 --- a/packages/components/src/layouts/useElement.tsx +++ b/packages/components/src/layouts/useElement.tsx @@ -7,7 +7,7 @@ export function useElement( props: BaseLayoutsProps, ref: React.ForwardedRef, rootClass: string, -) { +): React.ReactElement { const { children, className, diff --git a/packages/components/src/namespace.scss b/packages/components/src/namespace.scss index e300786c..0f39bcb5 100644 --- a/packages/components/src/namespace.scss +++ b/packages/components/src/namespace.scss @@ -25,8 +25,10 @@ $layout-header: '#{Var.$prefix}header'; $layout-footer: '#{Var.$prefix}footer'; $option: '#{Var.$prefix}option'; $dropdown: '#{Var.$prefix}dropdown'; +$dropdown-option: '#{Var.$prefix}dropdown-option'; $number-transition: '#{Var.$prefix}number-transition'; $alert: '#{Var.$prefix}alert'; $switch: '#{Var.$prefix}switch'; $transition: '#{Var.$prefix}transition'; $tag: '#{Var.$prefix}tag'; +$select: '#{Var.$prefix}select'; diff --git a/packages/components/src/option/Option.tsx b/packages/components/src/option/Option.tsx index 74fb9a9e..976201ec 100644 --- a/packages/components/src/option/Option.tsx +++ b/packages/components/src/option/Option.tsx @@ -4,7 +4,6 @@ import { getComponentClass, getSizeClassName } from '@pkg/shared'; import type { RequiredPart } from '@tool-pack/types'; import { getClassNames } from '@tool-pack/basic'; import { Icon } from '~/icon'; -import { Right as RightIcon } from '@pkg/icons'; const defaultProps = { tag: 'div', @@ -18,7 +17,7 @@ export const Option: React.FC = React.forwardRef< HTMLElement, OptionProps >((props, ref) => { - const { children, icon, readonly, expandable, size, tag, disabled } = + const { children, icon, readonly, extra, size, tag, disabled } = props as RequiredPart; const attrs = { @@ -29,16 +28,8 @@ export const Option: React.FC = React.forwardRef< const Child = ( <> {icon && {icon}} - {!icon && !expandable ? ( - children - ) : ( - {children} - )} - {expandable && ( - - - - )} +
    {children}
    + {extra &&
    {extra}
    } ); diff --git a/packages/components/src/option/__tests__/Option.test.tsx b/packages/components/src/option/__tests__/Option.test.tsx index 32e9e61a..6a380573 100644 --- a/packages/components/src/option/__tests__/Option.test.tsx +++ b/packages/components/src/option/__tests__/Option.test.tsx @@ -16,16 +16,16 @@ describe('Option', () => { expect(container.firstChild).toHaveAttribute('disabled', ''); }); - test('expandable', () => { - const { container } = render(); + test('extra', () => { + const { container } = render( + , + ); expect(container.firstChild).toMatchSnapshot(); }); test('icon', () => { const { container } = render( - , + , ); expect(container.firstChild).toMatchSnapshot(); }); diff --git a/packages/components/src/option/__tests__/__snapshots__/Option.test.tsx.snap b/packages/components/src/option/__tests__/__snapshots__/Option.test.tsx.snap index b1305b4b..bf58338d 100644 --- a/packages/components/src/option/__tests__/__snapshots__/Option.test.tsx.snap +++ b/packages/components/src/option/__tests__/__snapshots__/Option.test.tsx.snap @@ -1,28 +1,20 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Option expandable 1`] = ` +exports[`Option extra 1`] = `
    - foo bar - - +
    - - - - + hello world +
    `; @@ -48,24 +40,11 @@ exports[`Option icon 1`] = ` /> - foo bar - - - - - - +
    `; @@ -74,7 +53,11 @@ exports[`Option readonly 1`] = ` class="t-option t--size-m t-option--readonly" role="option" > - foo bar +
    + foo bar +
    `; @@ -83,6 +66,10 @@ exports[`Option snap 1`] = ` class="t-option t--size-m" role="option" > - foo bar +
    + foo bar +
    `; diff --git a/packages/components/src/option/demo/expandable.tsx b/packages/components/src/option/demo/expandable.tsx deleted file mode 100644 index f0cd3b8a..00000000 --- a/packages/components/src/option/demo/expandable.tsx +++ /dev/null @@ -1,12 +0,0 @@ -/** - * title: expandable - */ - -import React from 'react'; -import { Option } from '@tool-pack/react-ui'; - -const App: React.FC = () => { - return ; -}; - -export default App; diff --git a/packages/components/src/option/demo/extra.tsx b/packages/components/src/option/demo/extra.tsx new file mode 100644 index 00000000..0285203a --- /dev/null +++ b/packages/components/src/option/demo/extra.tsx @@ -0,0 +1,21 @@ +/** + * title: extra + */ + +import React from 'react'; +import { Option, Icon, Icons } from '@tool-pack/react-ui'; + +const App: React.FC = () => { + return ( + + ); +}; + +export default App; diff --git a/packages/components/src/option/index.scss b/packages/components/src/option/index.scss index 2b65f4df..0501ca0e 100644 --- a/packages/components/src/option/index.scss +++ b/packages/components/src/option/index.scss @@ -54,8 +54,9 @@ $r: Name.$option; &__icon { margin-right: 6px; } - &__expand { + &__extra { + display: flex; + align-items: center; margin-left: 1em; - font-size: 0.8em; } } diff --git a/packages/components/src/option/index.zh-CN.md b/packages/components/src/option/index.zh-CN.md index ffadd180..18a3fef6 100644 --- a/packages/components/src/option/index.zh-CN.md +++ b/packages/components/src/option/index.zh-CN.md @@ -18,7 +18,7 @@ Option 说明。 - + ## API diff --git a/packages/components/src/option/option.types.ts b/packages/components/src/option/option.types.ts index 8bc336ec..39b42691 100644 --- a/packages/components/src/option/option.types.ts +++ b/packages/components/src/option/option.types.ts @@ -5,7 +5,7 @@ export interface OptionProps extends PropsBase { tag?: keyof HTMLElementTagNameMap; size?: Size; disabled?: boolean; - expandable?: boolean; readonly?: boolean; icon?: React.ReactNode; + extra?: React.ReactNode; } diff --git a/packages/components/src/pop-confirm/__tests__/PopConfirm.test.tsx b/packages/components/src/pop-confirm/__tests__/PopConfirm.test.tsx index e3bb8d82..7d4af039 100644 --- a/packages/components/src/pop-confirm/__tests__/PopConfirm.test.tsx +++ b/packages/components/src/pop-confirm/__tests__/PopConfirm.test.tsx @@ -2,18 +2,6 @@ import { PopConfirm } from '..'; import { fireEvent, render } from '@testing-library/react'; describe('PopConfirm', () => { - // 模拟 ResizeObserver,ResizeObserver 不存在于 jsdom 中 - const MockObserverInstance: ResizeObserver = { - observe: jest.fn(), - unobserve: jest.fn(), - disconnect: jest.fn(), - }; - beforeEach(() => { - global.ResizeObserver = jest - .fn() - .mockImplementation(() => MockObserverInstance); - }); - test('attrs', () => { const onClick = jest.fn(); const { container } = render( diff --git a/packages/components/src/popover/Contextmenu.tsx b/packages/components/src/popover/Contextmenu.tsx index 135939a5..317cc880 100644 --- a/packages/components/src/popover/Contextmenu.tsx +++ b/packages/components/src/popover/Contextmenu.tsx @@ -9,7 +9,7 @@ const rootClass = getComponentClass('popover'); export const Contextmenu: React.FC = (props) => { const { children, trigger: _, ...rest } = props; - const triggerRef = useRef(null); + const triggerRef = useRef(null); const forceUpdate = useForceUpdate(); const onContextMenuCapture = (e: React.MouseEvent) => { @@ -35,8 +35,9 @@ export const Contextmenu: React.FC = (props) => { children.props.children, )} {createPortal( - +
    ; +export type PopoverRequiredPartProps = RequiredPart< + PopoverProps, + keyof typeof defaultProps +>; + export const Popover: React.FC = React.forwardRef< HTMLDivElement, PopoverProps @@ -48,43 +53,56 @@ export const Popover: React.FC = React.forwardRef< on, appendTo, viewport, - childrenRef: kidRef, showArrow, delay, leaveDelay, + onVisibleChange, + widthByTrigger, attrs = {}, - } = props as RequiredPart; + } = props as PopoverRequiredPartProps; const rootName = getComponentClass(name); const [appendToTarget] = useAppendTo(appendTo, defaultProps.appendTo); - const childrenRef = useForwardRef(kidRef); + const childrenRef = useForwardRef( + (children as React.RefAttributes).ref, + ) as React.MutableRefObject; const [balloonRef, refreshBalloonRef] = useForwardRef(ref, true) as [ React.MutableRefObject, () => void, ]; const [refreshPosition, resetPlacement] = usePosition( - placement, childrenRef, balloonRef, - appendTo, - offset, - viewport, + { + widthByTrigger, + placement, + viewport, + appendTo, + offset, + }, ); const show = useShowController( - disabled, - visible, - trigger, - children, childrenRef, balloonRef, refreshPosition, - delay, - leaveDelay, + // 下面👇的对象属性都是在 props 中取的,为什么不直接传 props ? + // 因为这样在上面的 props 解构中就可以直观的看出到底有哪些属性是没有用到的;传 props 是不直观的。 + // 如果看到没有按照这条规则弄的,那就是漏掉了,以该条规则为准。 + { + delay, + visible, + trigger, + children, + disabled, + leaveDelay, + onVisibleChange, + }, ); useResizeObserver(show, balloonRef, refreshPosition); + useResizeObserver(show, childrenRef, refreshPosition); useResizeEvent(show, refreshPosition); const Balloon = ( diff --git a/packages/components/src/popover/__tests__/Popover.test.tsx b/packages/components/src/popover/__tests__/Popover.test.tsx index fb3d504c..604b7236 100644 --- a/packages/components/src/popover/__tests__/Popover.test.tsx +++ b/packages/components/src/popover/__tests__/Popover.test.tsx @@ -2,20 +2,10 @@ import { Popover } from '..'; import { act, fireEvent, render } from '@testing-library/react'; import { Button } from '~/button'; import { nextTick } from '@tool-pack/basic'; +import { useRef, useState } from 'react'; describe('Popover', () => { - // 模拟 ResizeObserver,ResizeObserver 不存在于 jsdom 中 - const MockObserverInstance: ResizeObserver = { - observe: jest.fn(), - unobserve: jest.fn(), - disconnect: jest.fn(), - }; - beforeEach(() => { - global.ResizeObserver = jest - .fn() - .mockImplementation(() => MockObserverInstance); - }); - + jest.useFakeTimers(); test('attrs', () => { const onClick = jest.fn(); const { container } = render( @@ -94,6 +84,7 @@ describe('Popover', () => { expect(document.body).toMatchSnapshot(); fireEvent.click(container.querySelector('button')!); + act(() => jest.advanceTimersByTime(0)); expect(document.body).toMatchSnapshot(); }); @@ -133,7 +124,7 @@ describe('Popover', () => { expect(document.body).toMatchSnapshot(); fireEvent.contextMenu(container.querySelector('.trigger')!); await act(() => nextTick()); - + act(() => jest.advanceTimersByTime(0)); expect(document.body).toMatchSnapshot(); }); @@ -154,6 +145,7 @@ describe('Popover', () => { , ); fireEvent.click(container.querySelector('button')!); + act(() => jest.advanceTimersByTime(0)); expect(document.body).toMatchSnapshot(); }); }); @@ -209,18 +201,30 @@ describe('Popover', () => { fireEvent.mouseEnter(container.querySelector('button')!); expect(document.querySelector('.t-word-balloon')).not.toBeNull(); + expect(document.querySelector('.t-word-balloon')).toHaveClass( + 't-popover-enter-active', + ); + + // Transition 超时300毫秒后会切换为 idle 或 invisible + act(() => jest.advanceTimersByTime(300)); + expect(document.querySelector('.t-word-balloon')).not.toHaveClass( + 't-popover-enter-active', + ); + expect(document.querySelector('.t-word-balloon')).not.toHaveClass( 't-popover-leave-active', ); fireEvent.mouseLeave(document.querySelector('.t-word-balloon')!); + // 离开 200 毫秒后启动离开动画 act(() => jest.advanceTimersByTime(200)); - // todo: 这里暂时测不了,需要给 Transition 组件添加一个默认定时器触发 transitionend 事件 - // expect(document.querySelector('.t-word-balloon')).toHaveClass( - // 't-popover-leave-active', - // ); - expect(document.querySelector('.t-word-balloon')).not.toHaveClass( + expect(document.querySelector('.t-word-balloon')).toHaveClass( 't-popover-leave-active', ); + // 300 毫秒后 invisible + act(() => jest.advanceTimersByTime(300)); + expect(document.querySelector('.t-word-balloon')).toHaveClass( + 't-transition--invisible', + ); }); test('leaveDelay 500', () => { jest.useFakeTimers(); @@ -234,18 +238,157 @@ describe('Popover', () => { fireEvent.mouseEnter(container.querySelector('button')!); expect(document.querySelector('.t-word-balloon')).not.toBeNull(); + expect(document.querySelector('.t-word-balloon')).toHaveClass( + 't-popover-enter-active', + ); + act(() => jest.advanceTimersByTime(500)); + expect(document.querySelector('.t-word-balloon')).not.toHaveClass( + 't-popover-enter-active', + ); + expect(document.querySelector('.t-word-balloon')).not.toHaveClass( 't-popover-leave-active', ); fireEvent.mouseLeave(document.querySelector('.t-word-balloon')!); act(() => jest.advanceTimersByTime(500)); - // todo: 这里暂时测不了,需要给 Transition 组件添加一个默认定时器触发 transitionend 事件 - // expect(document.querySelector('.t-word-balloon')).toHaveClass( - // 't-popover-leave-active', - // ); + expect(document.querySelector('.t-word-balloon')).toHaveClass( + 't-popover-leave-active', + ); + act(() => jest.advanceTimersByTime(500)); expect(document.querySelector('.t-word-balloon')).not.toHaveClass( 't-popover-leave-active', ); + expect(document.querySelector('.t-word-balloon')).toHaveClass( + 't-transition--invisible', + ); }); }); + + describe('onVisibleChange', () => { + test('basic', () => { + jest.useFakeTimers(); + const onVisibleChange = jest.fn(); + const { container } = render( + + + , + ); + expect(onVisibleChange).not.toBeCalled(); + + fireEvent.mouseEnter(container.firstChild!); + expect(onVisibleChange).toBeCalled(); + expect(onVisibleChange.mock.calls[0][0]).toBeTruthy(); + + act(() => jest.advanceTimersByTime(300)); + fireEvent.mouseLeave(container.firstChild!); + act(() => jest.advanceTimersByTime(200)); + expect(onVisibleChange.mock.calls[1][0]).toBeFalsy(); + }); + + test('external', () => { + jest.useFakeTimers(); + const onVisibleChange = jest.fn(); + + const App = () => { + const [visible, setVisible] = useState(false); + return ( + + + + ); + }; + const { container } = render(); + expect(onVisibleChange).not.toBeCalled(); + + fireEvent.click(container.firstChild!); + expect(onVisibleChange).not.toBeCalled(); + }); + }); + + it('触发元素拦截点击事件后禁止触发', () => { + jest.useFakeTimers(); + const App = () => { + return ( + +
    + click + +
    +
    + ); + }; + const { container } = render(); + + const onClick = jest.fn(); + document.addEventListener('click', onClick); + + // react 的合成事件无法阻止原生事件冒泡,反过来却可以, + // 因为 react 的事件是代理在 document 上的,实际已经冒泡或者捕获在 document 上了 + // 除非是在捕获阶段拦截 + fireEvent.click(container.querySelector('button')!); + act(() => jest.advanceTimersByTime(500)); + expect(document.body).toMatchSnapshot(); + + expect(onClick).not.toBeCalled(); + }); + + it('被触发元素拦截事件后点击外部事件仍然有效', () => { + jest.useFakeTimers(); + const App = () => { + const visibleRef = useRef(false); + return ( + (visibleRef.current = visible)} + content="1"> +
    { + if (visibleRef.current) { + e.stopPropagation(); + e.preventDefault(); + } + }}> + +
    +
    + ); + }; + const { container } = render(); + + expect(getBalloon()).toBeNull(); + + fireEvent.click(container.querySelector('button')!); + act(() => jest.advanceTimersByTime(0)); + act(() => jest.advanceTimersByTime(300)); + + expect(getBalloon()).toMatchSnapshot(); + expect(getBalloon()).not.toHaveClass('t-popover-enter-active'); + + fireEvent.click(container.querySelector('button')!); + expect(getBalloon()).not.toHaveClass('t-popover-leave-active'); + + act(() => jest.advanceTimersByTime(300)); + + // 未修复前这一步会无效,外部事件会无法被 div 拦截,导致外部点击事件监听被移除而无法关闭弹窗 + fireEvent.click(document.body); + expect(getBalloon()).toHaveClass('t-popover-leave-active'); + + act(() => jest.advanceTimersByTime(0)); + act(() => jest.advanceTimersByTime(300)); + expect(getBalloon()).toMatchSnapshot(); + + function getBalloon() { + return document.querySelector('.t-word-balloon') as HTMLElement; + } + }); }); diff --git a/packages/components/src/popover/__tests__/__snapshots__/Popover.test.tsx.snap b/packages/components/src/popover/__tests__/__snapshots__/Popover.test.tsx.snap index c59c1a8f..3e1253ca 100644 --- a/packages/components/src/popover/__tests__/__snapshots__/Popover.test.tsx.snap +++ b/packages/components/src/popover/__tests__/__snapshots__/Popover.test.tsx.snap @@ -406,3 +406,68 @@ exports[`Popover trigger hover 2`] = `
    `; + +exports[`Popover 被触发元素拦截事件后点击外部事件仍然有效 1`] = ` +
    +
    + 1 +
    +
    + + + +
    +
    +`; + +exports[`Popover 被触发元素拦截事件后点击外部事件仍然有效 2`] = ` +
    +
    + 1 +
    +
    + + + +
    +
    +`; + +exports[`Popover 触发元素拦截点击事件后禁止触发 1`] = ` + +
    +
    + click + +
    +
    + +`; diff --git a/packages/components/src/popover/demo/appendTo.tsx b/packages/components/src/popover/demo/append-to.tsx similarity index 100% rename from packages/components/src/popover/demo/appendTo.tsx rename to packages/components/src/popover/demo/append-to.tsx diff --git a/packages/components/src/popover/demo/on-visible-change.tsx b/packages/components/src/popover/demo/on-visible-change.tsx new file mode 100644 index 00000000..1d50e60c --- /dev/null +++ b/packages/components/src/popover/demo/on-visible-change.tsx @@ -0,0 +1,44 @@ +/** + * title: 显隐变更回调 + * description: 由外部传入的 visible 不会触发回调。 + */ + +import React, { useState } from 'react'; +import { + Popover, + Button, + useMessageHolder, + Space, + Switch, +} from '@tool-pack/react-ui'; + +const App: React.FC = () => { + const [message, holder] = useMessageHolder(); + const [visible, setVisible] = useState(false); + return ( + <> + {holder} + + { + message[visible ? 'success' : 'error']('visible:' + visible); + }} + content="内部事件启动的会触发 onVisibleChange"> + + + + { + message[visible ? 'success' : 'error']('visible:' + visible); + }} + content="由外部传入的 visible 并不会触发 onVisibleChange"> + + + + + ); +}; + +export default App; diff --git a/packages/components/src/popover/demo/width-by-trigger.tsx b/packages/components/src/popover/demo/width-by-trigger.tsx new file mode 100644 index 00000000..940b5ecd --- /dev/null +++ b/packages/components/src/popover/demo/width-by-trigger.tsx @@ -0,0 +1,16 @@ +/** + * title: 使用触发元素的宽度 + */ + +import React from 'react'; +import { Popover, Button } from '@tool-pack/react-ui'; + +const App: React.FC = () => { + return ( + + + + ); +}; + +export default App; diff --git a/packages/components/src/popover/index.zh-CN.md b/packages/components/src/popover/index.zh-CN.md index 353ec329..77048f19 100644 --- a/packages/components/src/popover/index.zh-CN.md +++ b/packages/components/src/popover/index.zh-CN.md @@ -29,29 +29,32 @@ Popover 气泡弹框。 - + + + ## API Popover 的属性说明如下: -| 属性 | 说明 | 类型 | 默认值 | 版本 | -| ----------- | --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------- | ---- | -| content | Popover 显示内容 | React.ReactNode | -- | -- | -| children | 触发 Popover 显示的目标(必填) | React.ReactNode | -- | -- | -| placement | 同 [WordBalloon](/components/word-balloon#api) | | 'top' | -- | -| showArrow | 同 [WordBalloon](/components/word-balloon#api) | boolean | true | -- | -| trigger | 触发显示的方式 | 'hover' \| 'click' \| 'focus' \| 'contextmenu' | 'hover' | -- | -| disabled | 禁用任何触发显示操作 | boolean | false | -- | -| offset | Popover 窗体偏移量 (px) | number | 10 | -- | -| visible | 手动控制 Popover 的显示与隐藏 | boolean | -- | -- | -| appendTo | Popover 窗体插入指定的 html 标签中;如果为 null 的话会插入当前组件包裹的 children(不能是类似 input 这种自闭合的标签元素) 中 | null \| () => HTMLElement | () => document.body | -- | -| viewport | 用于计算窗体位置,需要搭配 appendTo=null 使用;默认 viewport 是 appendTo 对象,不过嵌套使用时需要指定 viewport | () => HTMLElement | -- | -- | -| childrenRef | 用于获取 Popover 包裹的 ref viewport | () => HTMLElement | -- | -- | -| delay | trigger 为 hover 的开启延时 | number | 0 (ms) | -- | -| leaveDelay | trigger 为 hover 的关闭延时 | number | 200 (ms) | -- | -| attrs | 组件 html 根元素的所有属性 | Partial\> | -- | -- | +| 属性 | 说明 | 类型 | 默认值 | 版本 | +| --------------- | --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------- | ---- | +| content | Popover 显示内容 | React.ReactNode | -- | -- | +| children | 触发 Popover 显示的目标(必填) | React.ReactNode | -- | -- | +| placement | 同 [WordBalloon](/components/word-balloon#api) | | 'top' | -- | +| showArrow | 同 [WordBalloon](/components/word-balloon#api) | boolean | true | -- | +| trigger | 触发显示的方式 | 'hover' \| 'click' \| 'focus' \| 'contextmenu' | 'hover' | -- | +| disabled | 禁用任何触发显示操作 | boolean | false | -- | +| offset | Popover 窗体偏移量 (px) | number | 10 | -- | +| visible | 手动控制 Popover 的显示与隐藏 | boolean | -- | -- | +| onVisibleChange | visible 变化时的回调 | (visible:boolean) => void | -- | -- | +| appendTo | Popover 窗体插入指定的 html 标签中;如果为 null 的话会插入当前组件包裹的 children(不能是类似 input 这种自闭合的标签元素) 中 | null \| () => HTMLElement | () => document.body | -- | +| viewport | 用于计算窗体位置,需要搭配 appendTo=null 使用;默认 viewport 是 appendTo 对象,不过嵌套使用时需要指定 viewport | () => HTMLElement | -- | -- | +| delay | trigger 为 hover 的开启延时 | number | 0 (ms) | -- | +| leaveDelay | trigger 为 hover 的关闭延时 | number | 200 (ms) | -- | +| widthByTrigger | 窗体宽度与触发元素保持一致 | boolean | -- | -- | +| attrs | 组件 html 根元素的所有属性 | Partial\> | -- | -- | diff --git a/packages/components/src/popover/popover.hooks.ts b/packages/components/src/popover/popover.hooks.ts index 763d6c72..0469652e 100644 --- a/packages/components/src/popover/popover.hooks.ts +++ b/packages/components/src/popover/popover.hooks.ts @@ -1,14 +1,14 @@ /*eslint no-case-declarations: "off"*/ -import React, { useEffect, useMemo, useRef, useState } from 'react'; -import { PopoverProps } from './popover.types'; +import { castArray, emptyFn, throttle } from '@tool-pack/basic'; import { calcPlacement, calcPosition } from './popover.utils'; -import { castArray, throttle } from '@tool-pack/basic'; +import React, { useEffect, useMemo, useRef, useState } from 'react'; import { collectScroller, calcDistanceWithParent } from '@tool-pack/dom'; import { getComponentClass, PLACEMENTS_12, type Placement_12, - outerEventObserve, + fromOuterEvent, + useNextEffect, } from '@pkg/shared'; import { delay, @@ -22,11 +22,13 @@ import { takeWhile, defer, retry, + AsyncSubject, } from 'rxjs'; +import type { PopoverRequiredPartProps } from './Popover'; export function useResizeObserver( enable: boolean, - elRef: React.MutableRefObject, + elRef: React.MutableRefObject, callback: () => void, ) { useEffect(() => { @@ -45,37 +47,64 @@ function replaceBalloonClass(balloon: HTMLElement, placement: Placement_12) { } export function usePosition( - placement: Placement_12, - refEl: React.RefObject, - relEl: React.MutableRefObject, - appendTo: Required['appendTo'], - offset: number, - getViewportEl?: PopoverProps['viewport'], + triggerElRef: React.RefObject, + balloonElRef: React.MutableRefObject, + { + offset, + placement, + viewport: getViewportEl, + appendTo, + widthByTrigger, + }: Pick< + PopoverRequiredPartProps, + 'offset' | 'placement' | 'viewport' | 'appendTo' | 'widthByTrigger' + >, ) { const _placement = useRef(placement); // const forceUpdate = useForceUpdate(); const refreshPosition = useMemo(() => { const refreshPosition = (): void => { - const ref = refEl.current; - const balloon = relEl.current; - if (!ref || !balloon || balloon.style.display === 'none') return; + const triggerEl = triggerElRef.current; + const balloonEl = balloonElRef.current; + if (!triggerEl || !balloonEl || balloonEl.style.display === 'none') + return; - const viewportEl = appendTo?.() || getViewportEl?.() || ref; + const viewportEl = appendTo?.() || getViewportEl?.() || triggerEl; const containerEl = - appendTo?.() || (ref.offsetParent as HTMLElement) || ref; + appendTo?.() || (triggerEl.offsetParent as HTMLElement) || triggerEl; + + // 窗体宽度跟触发元素一致 + if (widthByTrigger) { + balloonEl.style.width = triggerEl.offsetWidth + 'px'; + void balloonEl.offsetWidth; + } const lastPlace = _placement.current; - const place = calcPlacement(ref, balloon, lastPlace, viewportEl, offset); + const place = calcPlacement( + triggerEl, + balloonEl, + lastPlace, + viewportEl, + offset, + ); const distance: [number, number] = - appendTo === null ? [0, 0] : calcDistanceWithParent(ref, containerEl); - const { x, y } = calcPosition(ref, balloon, place, offset, distance); - balloon.style.top = y + 'px'; - balloon.style.left = x + 'px'; + appendTo === null + ? [0, 0] + : calcDistanceWithParent(triggerEl, containerEl); + const { x, y } = calcPosition( + triggerEl, + balloonEl, + place, + offset, + distance, + ); + balloonEl.style.top = y + 'px'; + balloonEl.style.left = x + 'px'; if (placement !== place || lastPlace !== place) - replaceBalloonClass(balloon, place); + replaceBalloonClass(balloonEl, place); _placement.current = place; }; @@ -83,7 +112,7 @@ export function usePosition( leading: true, trailing: true, }); - }, [offset, placement, refEl, relEl]); + }, [offset, placement, triggerElRef, balloonElRef, widthByTrigger]); return [ refreshPosition, @@ -142,17 +171,30 @@ function hoverTriggerHandler( } export function useShowController( - disabled: boolean | void, - visible: boolean | void, - trigger: Exclude, - children: React.ReactElement, triggerElRef: React.RefObject, balloonElRef: React.MutableRefObject, refreshPosition: () => void, - enterDelay: number, - leaveDelay: number, + { + delay: enterDelay, + onVisibleChange, + leaveDelay, + children, + disabled, + visible, + trigger, + }: Pick< + PopoverRequiredPartProps, + | 'onVisibleChange' + | 'leaveDelay' + | 'children' + | 'disabled' + | 'trigger' + | 'visible' + | 'delay' + >, ) { - const [show, setShow] = useState(false); + const [show, _setShow] = useState(false); + const nextEffect = useNextEffect(); // 事件触发启动 useEffect(() => { @@ -175,16 +217,16 @@ export function useShowController( show, ); case 'click': - const outerEvent = outerEventObserve( + const triggerClick$ = fromEvent(el, 'click').pipe( + delay(0), + takeWhile((e) => !e.defaultPrevented), + ); + const outerEvent = fromOuterEvent( () => [el, balloonElRef.current], 'click', - ).pipe( - tap(close), - takeUntil(fromEvent(el, 'click', { capture: true })), - take(1), - ); - const queueEvent = fromEvent(el, 'click').pipe( - switchMap(() => of(toggle()).pipe(takeWhile((v) => v))), + ).pipe(tap(close), takeUntil(triggerClick$), take(1)); + const queueEvent = triggerClick$.pipe( + switchMap(() => toggle().pipe(takeWhile((v) => v))), switchMap(() => outerEvent), ); // 当弹窗已经打开时(例如Button loading时会刷新该effect),添加点击和外部点击订阅 @@ -238,11 +280,23 @@ export function useShowController( // visible同步show useEffect(() => { if (visible === undefined || disabled) return; - setShow(visible); + _setShow(visible); }, [visible, disabled]); return show; + function setShow(value: boolean | ((prevValue: boolean) => boolean)): void { + const onChange: Exclude = onVisibleChange + ? (next) => nextEffect(() => onVisibleChange(next), true) + : emptyFn; + + _setShow((prev) => { + const next = typeof value === 'function' ? value(prev) : value; + // visible 同步 show 时不走 onVisibleChange + next !== prev && onChange(next); + return next; + }); + } function unwatchScroller(): void { cancelListRef.current.forEach((i) => i()); cancelListRef.current.length = 0; @@ -253,9 +307,20 @@ export function useShowController( function close(): void { setShow(false); } - function toggle(): boolean { - let visible = false; - setShow((v) => (visible = !v)); - return visible; + function toggle(): AsyncSubject { + // 因为 hook 设置值传的是函数的话,并不一定是同步执行的,有可能是异步的(猜是覆盖上一次设置的值但未刷新时), + // 如果是同步的那么用Subject后来的subscribe是订阅不到的,此时就需要 AsyncSubject 了。 + + // BehaviorSubject 也能发送最新值给后订阅者,但是 complete 后继续订阅就没有作用了。 + // ReplaySubject 也能发送最新值给后订阅者,并可重复一组特定大小的值,而且 complete 后仍然有作用,但是有点杀鸡用牛刀了。 + // AsyncSubject 仅发送 complete 前的最终值给订阅者,前面多少次 next 都无用,且 complete 后继续订阅仍然有效,是最符合的。 + const as$ = new AsyncSubject(); + setShow((prev) => { + const next = !prev; + as$.next(next); + as$.complete(); + return next; + }); + return as$; } } diff --git a/packages/components/src/popover/popover.types.ts b/packages/components/src/popover/popover.types.ts index 7edb8e1f..2a7398eb 100644 --- a/packages/components/src/popover/popover.types.ts +++ b/packages/components/src/popover/popover.types.ts @@ -12,13 +12,14 @@ export interface PopoverProps appendTo?: null | (() => HTMLElement | null); trigger?: PopoverTrigger[] | PopoverTrigger; visible?: boolean; + widthByTrigger?: boolean; disabled?: boolean; offset?: number; destroyOnHide?: boolean; name?: string; on?: TransitionCB; viewport?: () => HTMLElement; - childrenRef?: React.ForwardedRef; delay?: number; leaveDelay?: number; + onVisibleChange?: (visible: boolean) => void; } diff --git a/packages/components/src/popover/popover.utils.ts b/packages/components/src/popover/popover.utils.ts index 7697a5ec..8bb3714a 100644 --- a/packages/components/src/popover/popover.utils.ts +++ b/packages/components/src/popover/popover.utils.ts @@ -5,8 +5,8 @@ import { calcDistanceWithParent } from '@tool-pack/dom'; * 计算上下左右4个方位是否可以放得下窗体 */ export function calcPlacement( - refEl: HTMLElement, - relEl: HTMLElement, + triggerEl: HTMLElement, + balloonEl: HTMLElement, placement: Placement_12 = 'top', containerEl = globalThis.document?.body, offset = 10, @@ -30,9 +30,9 @@ export function calcPlacement( return { width: containerEl.clientWidth, height: containerEl.clientHeight }; }; - const sizes = { ref: getSize(refEl), rel: getSize(relEl) }; + const sizes = { ref: getSize(triggerEl), rel: getSize(balloonEl) }; const viewportSize = getViewportSize(); - const [distanceT, distanceL] = calcDistanceWithParent(refEl, containerEl); + const [distanceT, distanceL] = calcDistanceWithParent(triggerEl, containerEl); const [scrollTop, scrollLeft] = getScrollPoint(); const map: Record Placement> = { @@ -86,14 +86,14 @@ function getSize(el: HTMLElement): Size { } export function calcPosition( - refEl: HTMLElement, - relEl: HTMLElement, + triggerEl: HTMLElement, + balloonEl: HTMLElement, placement: Placement_12 = 'top', offset = 10, [distanceT, distanceL]: [number, number] = [0, 0], ): { x: number; y: number } { - const ref = getSize(refEl); - const rel = getSize(relEl); + const ref = getSize(triggerEl); + const rel = getSize(balloonEl); const commonFn = { vtcX: () => distanceL + (ref.width - rel.width) / 2, diff --git a/packages/components/src/select/Select.tsx b/packages/components/src/select/Select.tsx new file mode 100644 index 00000000..ee75c38e --- /dev/null +++ b/packages/components/src/select/Select.tsx @@ -0,0 +1,297 @@ +import React, { useEffect, useImperativeHandle, useRef, useState } from 'react'; +import type { + SelectOptionsItem, + SelectStaticProps, + SelectOption, + SelectProps, + SelectFC, +} from './select.types'; +import { + useEventListenerOnMounted, + useStateWithTrailClear, + getSizeClassName, + useForwardRef, + getClasses, +} from '@pkg/shared'; +import type { RequiredPart } from '@tool-pack/types'; +import { Popover } from '~/popover'; +import { Menu, Selection, TabTrigger } from '~/select/components'; +import { getClassNames } from '@tool-pack/basic'; +import { + pickOptionsByValue, + isValueChanged, + filterOptions, +} from '~/select/utils'; +import { useEsc } from '~/dialog/dialog.hooks'; +import { filter as rxFilter, fromEvent } from 'rxjs'; +import { transitionCBAdapter } from '~/transition'; + +const cls = getClasses( + 'select', + [], + ['active', 'selected', 'disabled', 'clearable', 'focus'], +); +const defaultProps = { + ignoreComposition: true, + placeholder: 'select', + trigger: 'click', + widthByTrigger: true, + showArrow: false, + placement: 'bottom', + offset: 2, + multiple: false, + size: 'medium', +} satisfies Partial; + +const _Select: React.FC = React.forwardRef< + HTMLDivElement, + SelectStaticProps +>((props, ref) => { + const { + ignoreComposition, + onVisibleChange, + controllerRef, + popoverAttrs, + placeholder, + maxTagCount, + filterable, + clearable, + showArrow, + disabled, + onChange, + onSelect, + onSearch, + multiple, + onClear, + loading, + options, + visible, + onFocus, + onBlur, + header, + filter, + remote, + empty, + footer, + status, + value, + icon, + size, + attrs = {}, + ...rest + } = props as RequiredPart; + + const rootRef = useForwardRef(ref); + const isTrailFocusRef = useRef(false); + const tabTriggerRef = useRef(null); + const [opened, setOpened] = useState(false); + const [focus, setFocus] = useState(); + const [show, setShow] = useStateWithTrailClear(visible); + const [selected, setSelected] = useState([]); + const [pattern, setPattern] = useState(''); + + useImperativeHandle(controllerRef, () => { + return { + focus() { + tabTriggerRef.current?.focus(); + }, + blur() { + tabTriggerRef.current?.blur(); + }, + }; + }); + + // 页面 blur + useEventListenerOnMounted( + window, + 'blur', + close, + undefined, + // active, + false, + ); + + // 单选关闭窗体 + useEffect(() => { + if (!multiple && opened) closeWithFocus(); + // 多选时选过后清理过滤值 + if (multiple && (filterable || remote)) setPattern(''); + }, [selected]); + + // 回显 + useEffect(() => { + if (isValueChanged(value, selected)) { + setSelected(pickOptionsByValue(options, value)); + } + }, [value]); + + useEffect(() => { + if (!opened) return; + + // 监听 tab 键 + const sub$ = fromEvent(window, 'keydown') + .pipe(rxFilter((e) => e.code === 'Tab')) + .subscribe(close); + + return () => sub$.unsubscribe(); + }, [opened]); + + useEffect(() => { + if (focus === undefined) return; + if (focus) onFocus?.(); + else onBlur?.(); + }, [focus]); + + useEsc(opened, true, closeWithFocus); + + // 过滤选项 + const filteredOptions = getFilteredOptions(); + + const popoverOn = transitionCBAdapter({ + onBeforeEnter: () => { + setOpened(true); + onVisibleChange?.(true); + setFocus(true); + }, + onBeforeLeave: () => { + setOpened(false); + onVisibleChange?.(false); + }, + onAfterLeave() { + // 关闭后清理过滤值 + if (!multiple) setPattern(''); + if (isTrailFocusRef.current) { + tabTriggerRef.current?.focus(); + isTrailFocusRef.current = false; + } else { + setFocus(false); + } + }, + }); + + return ( + + }> + {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */} +
    + + +
    +
    + ); + + function _onFocus(): void { + setFocus(true); + } + function _onBlur(): void { + if (opened || isTrailFocusRef.current) return; + setFocus(false); + } + function onSelectedChange(selected: SelectOption[]): void { + setSelected(selected); + if (!onChange) return; + const selectedValues = selected.map((s) => s.value); + const value = (multiple ? selectedValues : selectedValues[0]) as Parameters< + typeof onChange + >[0]; + onChange(value, selected); + } + function getFilteredOptions(): SelectOptionsItem[] { + // remote 由外部决定选项是什么,对应的回调是 onSearch,避免双重过滤 + if (remote) return options; + if (!pattern && !filter) return options; + return filterOptions(options, pattern, filter); + } + function onPatternChange(value: string): void { + setPattern(value); + if (remote) onSearch?.(value); + } + function closeWithFocus(): void { + isTrailFocusRef.current = true; + close(); + } + function close(): void { + setOpened(false); + setShow(false); + } + function open(): void { + setOpened(true); + setShow(true); + } + function onRootClick(e: React.MouseEvent): void { + attrs.onClick?.(e); + if (disabled || !opened) return; + if (filterable || remote) { + e.stopPropagation(); + e.preventDefault(); + return; + } + isTrailFocusRef.current = true; + } +}); + +_Select.defaultProps = defaultProps; +_Select.displayName = 'Select'; + +export const Select = _Select as SelectFC; diff --git a/packages/components/src/select/__tests__/Select.filter.test.tsx b/packages/components/src/select/__tests__/Select.filter.test.tsx new file mode 100644 index 00000000..8133071c --- /dev/null +++ b/packages/components/src/select/__tests__/Select.filter.test.tsx @@ -0,0 +1,177 @@ +import { Select, SelectOption, SelectOptionsItem } from '~/select'; +import { fireEvent, render } from '@testing-library/react'; +import { $$, getBalloon, getFilterInput } from '~/select/__tests__/utils'; + +describe('Select.filter', () => { + const options: SelectOptionsItem[] = [ + { + value: 1, + label: 'foo', + }, + { + value: 2, + label: 'bar', + }, + ]; + + // 测试:原生 html 模拟 change 事件 + // test('test', () => { + // const input = document.createElement('input'); + // document.body.appendChild(input); + // + // const onChange = jest.fn(); + // input.addEventListener('change', onChange); + // + // input.dispatchEvent(new Event('change', { target: { value: 'f' } })); + // + // expect(onChange).toBeCalled(); + // expect(input.value).toBe(''); + // }); + + it('should display the filter-input element when Select is in the open state', () => { + expect( + render(, + ); + expect(container.firstChild).toMatchSnapshot(); + + expect(getBalloon()).toMatchSnapshot(); + + fireEvent.change(getFilterInput(), { + target: { value: 'f' }, + }); + expect(getBalloon()).toMatchSnapshot(); + + fireEvent.change(getFilterInput(), { + target: { value: 'b' }, + }); + expect(getBalloon()).toMatchSnapshot(); + }); + + it('should use custom filter rules', () => { + const filter = jest.fn((pattern: string, option: SelectOption): boolean => { + if (!pattern) return true; + return (option.value as number) > Number(pattern); + }); + render(); + expect(filter).toBeCalled(); + + filter.mockClear(); + + fireEvent.change(getFilterInput(), { + target: { value: '1' }, + }); + expect(filter.mock.calls).toEqual([ + ['1', { label: 'foo', value: 1 }], + ['1', { label: 'bar', value: 2 }], + ['1', { label: 'foo', value: 1 }], + ['1', { label: 'bar', value: 2 }], + ]); + + filter.mockClear(); + fireEvent.compositionStart(getFilterInput()); + fireEvent.change(getFilterInput(), { + target: { value: '2' }, + }); + expect(filter).not.toBeCalled(); + + fireEvent.compositionEnd(getFilterInput(), { target: { value: '3' } }); + expect(filter.mock.calls).toEqual([ + ['3', { label: 'foo', value: 1 }], + ['3', { label: 'bar', value: 2 }], + ['3', { label: 'foo', value: 1 }], + ['3', { label: 'bar', value: 2 }], + ]); + }); + it('should continue calling the filter when ignoreComposition is false and the input state is composition', () => { + render( + ); + expect(container.firstChild).toHaveClass('t-select--active'); + expect(getBalloon()).not.toHaveClass(cls.invisible); + + fireEvent.keyDown(window, { key: 'Escape' }); + act(() => jest.advanceTimersByTime(500)); + + expect(container.firstChild).not.toHaveClass('t-select--active'); + expect(getBalloon()).toHaveClass(cls.invisible); + }); + + it('should highlight the first option', () => { + render(); + + const $options = $$('.t-select-option'); + expect($options.length).toBe(3); + + expect($options[0]).not.toHaveClass(cls.picked); + expect($options[1]).toHaveClass(cls.picked); + expect($options[2]).not.toHaveClass(cls.picked); + }); + + it('should focus TabTrigger when tab keydown', () => { + const value = options[1]!.value; + render(); + + const $options = $$('.t-select-option'); + + expect(getBalloon()).not.toHaveClass(cls.invisible); + expect($options.length).toBe(3); + + expect($options[0]).not.toHaveClass(cls.selected); + expect($options[1]).not.toHaveClass(cls.selected); + expect($options[2]).not.toHaveClass(cls.selected); + + expect($options[0]).toHaveClass(cls.picked); + expect($options[1]).not.toHaveClass(cls.picked); + expect($options[2]).not.toHaveClass(cls.picked); + + fireEvent.keyDown(window, { code: 'ArrowDown' }); + expect($options[0]).not.toHaveClass(cls.picked); + expect($options[1]).toHaveClass(cls.picked); + expect($options[2]).not.toHaveClass(cls.picked); + + fireEvent.keyDown(window, { code: 'ArrowDown' }); + expect($options[0]).not.toHaveClass(cls.picked); + expect($options[1]).not.toHaveClass(cls.picked); + expect($options[2]).toHaveClass(cls.picked); + + fireEvent.keyDown(window, { code: 'ArrowDown' }); + expect($options[0]).toHaveClass(cls.picked); + expect($options[1]).not.toHaveClass(cls.picked); + expect($options[2]).not.toHaveClass(cls.picked); + + fireEvent.keyDown(window, { code: 'ArrowUp' }); + expect($options[0]).not.toHaveClass(cls.picked); + expect($options[1]).not.toHaveClass(cls.picked); + expect($options[2]).toHaveClass(cls.picked); + + fireEvent.keyDown(window, { code: 'ArrowUp' }); + expect($options[0]).not.toHaveClass(cls.picked); + expect($options[1]).toHaveClass(cls.picked); + expect($options[2]).not.toHaveClass(cls.picked); + + fireEvent.keyDown(window, { code: 'Enter' }); + expect($options[0]).not.toHaveClass(cls.picked); + expect($options[1]).toHaveClass(cls.picked + ' ' + cls.selected); + expect($options[2]).not.toHaveClass(cls.picked); + + expect(container.querySelector('.t-select__selected')).toMatchSnapshot(); + + expect(getBalloon()).not.toHaveClass(cls.invisible); + act(() => jest.advanceTimersByTime(500)); + expect(getBalloon()).toHaveClass(cls.invisible); + }); +}); diff --git a/packages/components/src/select/__tests__/Select.remote.test.tsx b/packages/components/src/select/__tests__/Select.remote.test.tsx new file mode 100644 index 00000000..f85342fa --- /dev/null +++ b/packages/components/src/select/__tests__/Select.remote.test.tsx @@ -0,0 +1,83 @@ +import { fireEvent, render } from '@testing-library/react'; +import { useState } from 'react'; +import { Select, SelectOptionsItem } from '~/select'; +import { getBalloon, getFilterInput } from './utils'; + +describe('Select.remote', () => { + it('should display the filter-input element when Select is in the open state', () => { + expect( + render(); + + expect(onSearch).not.toBeCalled(); + + fireEvent.change(getFilterInput(), { target: { value: 'a' } }); + expect(onSearch).nthCalledWith(1, 'a'); + + fireEvent.change(getFilterInput(), { target: { value: 'b' } }); + expect(onSearch).nthCalledWith(2, 'b'); + }); + + it('should not apply the filter when remote is set to true', () => { + const filter = jest.fn(); + render(); + + expect(onSearch).not.toBeCalled(); + + fireEvent.change(getFilterInput(), { target: { value: 'a' } }); + expect(onSearch).nthCalledWith(1, 'a'); + + fireEvent.change(getFilterInput(), { target: { value: 'b' } }); + expect(onSearch).nthCalledWith(2, 'b'); + }); + + test('all', () => { + render(); + expect(getBalloon()).toMatchSnapshot(); + + fireEvent.change(getFilterInput(), { target: { value: '1' } }); + expect(getBalloon()).toMatchSnapshot(); + + fireEvent.change(getFilterInput(), { target: { value: '5' } }); + expect(getBalloon()).toMatchSnapshot(); + + function App() { + const [options, setOptions] = useState([]); + + return ( + ); + expect(container.firstChild).toMatchSnapshot(); + }); + + describe('select', () => { + const options: SelectOption[] = [ + { + value: 1, + label: 'foo', + }, + { + value: 2, + label: 'bar', + }, + ]; + test('single', () => { + const onSelect = jest.fn(); + const onChange = jest.fn(); + render( + , + ); + expect(onSelect).not.toBeCalled(); + expect(onChange).not.toBeCalled(); + expect(getBalloon()).not.toBeNull(); + + fireEvent.click($('.t-select-option')!); + expect(onSelect).toBeCalled(); + expect(onChange).toBeCalled(); + + expect(onSelect.mock.calls[0]).toEqual([options[0]]); + expect(onChange.mock.calls[0]).toEqual([ + [options[0]!.value], + [options[0]], + ]); + + onSelect.mockClear(); + onChange.mockClear(); + + fireEvent.click($$('.t-select-option')[1]!); + expect(onSelect.mock.calls[0]).toEqual([options[1]]); + expect(onChange.mock.calls[0]).toEqual([ + options.map((o) => o.value), + options, + ]); + }); + }); + + test('disabled', () => { + const options: SelectOptionsItem[] = [ + { + value: 1, + label: 'foo', + }, + { + value: 2, + label: 'bar', + }, + ]; + const { container } = render(); + expect(document.body).toMatchSnapshot(); + }); + + test('clearable|onClear', () => { + const onClear = jest.fn(); + const options: SelectOptionsItem[] = [ + { + value: 1, + label: 'foo', + }, + { + value: 2, + label: 'bar', + }, + ]; + const { container } = render( + ); + expect(document.body).toMatchSnapshot(); + }); + + test('maxTagCount', () => { + jest.useFakeTimers(); + const options: SelectOptionsItem[] = [ + { + value: 1, + label: 'foo', + }, + { + value: 2, + label: 'bar', + }, + { + value: 3, + label: 'bar', + }, + { + value: 4, + label: 'bar', + }, + { + value: 5, + label: 'bar', + }, + ]; + render( + + + ); + } + function getTrigger() { + return $('.t-select-tab-trigger'); + } + }); + + test('icon', () => { + expect( + render().container.querySelector( + '.t-select__suffix', + ), + ).toMatchSnapshot(); + }); + + test('status', () => { + expect( + render().container.firstChild, + ).toHaveClass(' t-select--warning'); + }); +}); diff --git a/packages/components/src/select/__tests__/__snapshots__/Select.filter.test.tsx.snap b/packages/components/src/select/__tests__/__snapshots__/Select.filter.test.tsx.snap new file mode 100644 index 00000000..1f572459 --- /dev/null +++ b/packages/components/src/select/__tests__/__snapshots__/Select.filter.test.tsx.snap @@ -0,0 +1,365 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Select.filter should display the filter-input element when Select is in the open state 1`] = ` +
    + +
    +
    +
    + select +
    +
    + + +
    +
    +
    + + + + + +
    +
    +
    +`; + +exports[`Select.filter should display the filter-input element when Select is in the open state 2`] = ` +
    +
    +
    +
    +
    + No Data +
    +
    +
    +
    +
    +`; + +exports[`Select.filter should use custom filter rules 1`] = ` +NodeList [ +
    +
    +
    +
      +
    • +
      + foo +
      +
    • +
    • +
      + bar +
      +
    • +
    +
    +
    +
    , +] +`; + +exports[`Select.filter should use custom filter rules 2`] = ` +
    +
    +
    +
    +
    + No Data +
    +
    +
    +
    +
    +`; + +exports[`Select.filter should use custom filter rules 3`] = ` +
    +
    +
    +
      +
    • +
      + bar +
      +
    • +
    +
    +
    +
    +`; + +exports[`Select.filter should use default rules when filter is omitted 1`] = ` +
    + +
    +
    +
    + foo +
    +
    + + +
    +
    +
    + + + + + +
    +
    +
    +`; + +exports[`Select.filter should use default rules when filter is omitted 2`] = ` +
    +
    +
    +
      +
    • +
      + foo +
      +
      + + + + + +
      +
    • +
    • +
      + bar +
      +
    • +
    +
    +
    +
    +`; + +exports[`Select.filter should use default rules when filter is omitted 3`] = ` +
    +
    +
    +
      +
    • +
      + foo +
      +
      + + + + + +
      +
    • +
    +
    +
    +
    +`; + +exports[`Select.filter should use default rules when filter is omitted 4`] = ` +
    +
    +
    +
      +
    • +
      + bar +
      +
    • +
    +
    +
    +
    +`; diff --git a/packages/components/src/select/__tests__/__snapshots__/Select.keyboard.test.tsx.snap b/packages/components/src/select/__tests__/__snapshots__/Select.keyboard.test.tsx.snap new file mode 100644 index 00000000..ffbb8e38 --- /dev/null +++ b/packages/components/src/select/__tests__/__snapshots__/Select.keyboard.test.tsx.snap @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Select.keyboard should allow controlling the selected option using the keyboard's up and down arrow keys and selecting by pressing the Enter key 1`] = `null`; diff --git a/packages/components/src/select/__tests__/__snapshots__/Select.remote.test.tsx.snap b/packages/components/src/select/__tests__/__snapshots__/Select.remote.test.tsx.snap new file mode 100644 index 00000000..33d0a9d4 --- /dev/null +++ b/packages/components/src/select/__tests__/__snapshots__/Select.remote.test.tsx.snap @@ -0,0 +1,161 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Select.remote all 1`] = ` +
    +
    +
    +
    + 空空如也 +
    +
    +
    +
    +`; + +exports[`Select.remote all 2`] = ` +
    +
    +
    +
      +
    • +
      + 1 +
      +
    • +
    +
    +
    +
    +`; + +exports[`Select.remote all 3`] = ` +
    +
    +
    +
      +
    • +
      + other +
      +
    • +
    +
    +
    +
    +`; + +exports[`Select.remote should display the filter-input element when Select is in the open state 1`] = ` +
    + +
    +
    +
    + select +
    +
    + + +
    +
    +
    + + + + + +
    +
    +
    +`; + +exports[`Select.remote should display the filter-input element when Select is in the open state 2`] = ` +
    +
    +
    +
    +
    + No Data +
    +
    +
    +
    +
    +`; diff --git a/packages/components/src/select/__tests__/__snapshots__/Select.test.tsx.snap b/packages/components/src/select/__tests__/__snapshots__/Select.test.tsx.snap new file mode 100644 index 00000000..5d86e2c4 --- /dev/null +++ b/packages/components/src/select/__tests__/__snapshots__/Select.test.tsx.snap @@ -0,0 +1,641 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Select basic 1`] = ` +
    + +
    +
    +
    + select +
    +
    +
    + + + + + +
    +
    +
    +`; + +exports[`Select clearable|onClear 1`] = ` +
    + +
    +
    +
    + foo +
    +
    +
    + + + + + + + + + + +
    +
    +
    +`; + +exports[`Select disabled 1`] = ` +
    + +
    +
    +
    + select +
    +
    +
    + + + + + +
    +
    +
    +`; + +exports[`Select group 1`] = ` + +
    +
    + +
    +
    +
    + select +
    +
    +
    + + + + + +
    +
    +
    +
    +
    +
    +
    +
      +
    • +
      +
      + 1 +
      +
      +
        +
      • +
        + foo +
        +
      • +
      • +
        + bar +
        +
      • +
      +
    • +
    • +
      + foo +
      +
    • +
    • +
      + bar +
      +
    • +
    +
    +
    +
    + +`; + +exports[`Select icon 1`] = `null`; + +exports[`Select loading 1`] = `null`; + +exports[`Select maxTagCount 1`] = ` + +
    +
    + +
    +
    +
    + + foo + + +
    +
    + + + + 1 + +
    +
    +
    + + + + + +
    +
    +
    +
    + +`; + +exports[`Select maxTagCount 2`] = ` + +
    +
    + +
    +
    +
    + + foo + + +
    +
    + + + + 1 + +
    +
    +
    + + + + + +
    +
    +
    +
    +
    +
    +
    +
    + + bar + + +
    +
    +
    +
    + + + +
    +
    + +`; + +exports[`Select multiple 1`] = ` + +
    +
    + +
    +
    +
    + + foo + + +
    +
    + + bar + + +
    +
    +
    + + + + + +
    +
    +
    +
    +
    +
    +
    +
      +
    • +
      + foo +
      +
      + + + + + +
      +
    • +
    • +
      + bar +
      +
      + + + + + +
      +
    • +
    +
    +
    +
    + +`; diff --git a/packages/components/src/select/__tests__/utils.ts b/packages/components/src/select/__tests__/utils.ts new file mode 100644 index 00000000..00501ffc --- /dev/null +++ b/packages/components/src/select/__tests__/utils.ts @@ -0,0 +1,11 @@ +export const $ = ( + selectors: string, +): T | null => document.querySelector(selectors); +export const $$ = (selectors: string) => document.querySelectorAll(selectors); + +export function getBalloon() { + return $('.t-word-balloon') as HTMLDivElement; +} +export function getFilterInput() { + return $('.t-select-filter__input') as HTMLInputElement; +} diff --git a/packages/components/src/select/components/Menu.empty.tsx b/packages/components/src/select/components/Menu.empty.tsx new file mode 100644 index 00000000..9aebea8d --- /dev/null +++ b/packages/components/src/select/components/Menu.empty.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import { getClasses } from '@pkg/shared'; +import { SelectProps } from '~/select'; +import { ConvertOptional } from '@tool-pack/types'; + +const cls = getClasses('select-empty', ['content'], []); + +export const MenuEmpty: React.FC< + ConvertOptional> +> = (props) => { + const { empty } = props; + + return ( +
    + {empty ||
    No Data
    } +
    + ); +}; diff --git a/packages/components/src/select/components/Menu.option.tsx b/packages/components/src/select/components/Menu.option.tsx new file mode 100644 index 00000000..3f70e3f3 --- /dev/null +++ b/packages/components/src/select/components/Menu.option.tsx @@ -0,0 +1,45 @@ +import React from 'react'; +import { Option } from '~/option'; +import { getClasses } from '@pkg/shared'; +import { getClassNames } from '@tool-pack/basic'; +import { SelectOptionProps } from '~/select/select.types'; +import { Icon } from '~/icon'; +import { Selected } from '@pkg/icons'; + +export const optionCls = getClasses( + 'select-option', + ['selected-icon'], + ['selected', 'picked'], +); +export const MenuOption: React.FC = React.forwardRef< + HTMLElement, + SelectOptionProps +>((props, ref) => { + const { children, selected, picked, extra, attrs = {}, ...rest } = props; + return ( + + ); +}); diff --git a/packages/components/src/select/components/Menu.tsx b/packages/components/src/select/components/Menu.tsx new file mode 100644 index 00000000..4f1bf05c --- /dev/null +++ b/packages/components/src/select/components/Menu.tsx @@ -0,0 +1,240 @@ +import React, { useEffect, useRef } from 'react'; +import { getClasses, useForceUpdate, useNextEffect } from '@pkg/shared'; +import { getClassNames } from '@tool-pack/basic'; +import { + SelectDivider, + SelectOption, + SelectOptionGroup, + SelectOptionsItem, + SelectProps, +} from '../select.types'; +import { Divider } from '~/divider'; +import { optionCls, MenuOption } from './Menu.option'; +import { filter, fromEvent } from 'rxjs'; +import { flattenOptions, intoView, isDivider, isGroup } from '~/select/utils'; +import { MenuEmpty } from '~/select/components/Menu.empty'; +import { ConvertOptional } from '@tool-pack/types'; + +interface Props + extends ConvertOptional< + Pick< + SelectProps, + 'onSelect' | 'multiple' | 'options' | 'footer' | 'header' | 'empty' + > + > { + onSelectedChange: (selected: SelectOption[]) => void; + selected: SelectOption[]; + active: boolean; +} + +const cls = getClasses( + 'select-menu', + [ + 'header', + 'body', + 'footer', + 'options', + 'divider', + 'group', + 'group-title', + 'group-body', + ], + [], +); +export const Menu: React.FC = (props) => { + const { + onSelectedChange, + multiple, + onSelect, + selected, + options, + footer, + header, + active, + empty, + } = props; + const forceUpdate = useForceUpdate(); + const boxRef = useRef(null); + const activeOptionRef = useRef(); + const nextEffect = useNextEffect(); + + // 方向键移动光标 + useEffect(() => { + if (!active) return; + const keydown$ = fromEvent(window, 'keydown') + .pipe(filter((e) => ['ArrowDown', 'ArrowUp', 'Enter'].includes(e.code))) + .subscribe((e) => { + e.preventDefault(); + if (e.code === 'Enter') { + handleEnterKeyDown(); + return; + } + handleArrowKeyDown(e.code); + }); + + return () => keydown$.unsubscribe(); + + function handleEnterKeyDown() { + const activeOpt = activeOptionRef.current; + if (!activeOpt) return; + emitChange(activeOpt); + } + function handleArrowKeyDown(code: string): void { + const prevActiveOption = activeOptionRef.current; + const flatOptions = flattenOptions(options, (option) => !option.disabled); + + const index = flatOptions.indexOf(prevActiveOption!); + const len = flatOptions.length; + const endIndex = len - 1; + + const nextActiveOption = code === 'ArrowDown' ? pickNext() : pickPrev(); + if (nextActiveOption === prevActiveOption) return; + + activeOptionRef.current = nextActiveOption; + forceUpdate(); + nextEffect(activeIntoView); + + function pickNext(): SelectOption { + return index === -1 || index === endIndex + ? flatOptions[0]! + : flatOptions[index + 1]!; + } + function pickPrev(): SelectOption { + return index <= 0 ? flatOptions[endIndex]! : flatOptions[index - 1]!; + } + } + }, [options, selected, active]); + + // 第一次加载时高亮选项 + useEffect(() => { + // 高亮第一个选中的选项 + if (selected.length) { + activeOptionRef.current = selected[0]; + return; + } + // 高亮第一个选项 + const opts = flattenOptions(options, (option) => !option.disabled); + if (!opts.length) return; + activeOptionRef.current = opts[0]; + }, []); + + return ( + <> + {header &&
    {header}
    } +
    + {options.length > 0 ? ( +
      {handleOptions(options)}
    + ) : ( + + )} +
    + {footer &&
    {footer}
    } + + ); + + // 让光标选中的元素可见 + function activeIntoView() { + const box = boxRef.current; + if (!box || !active || !activeOptionRef.current) return; + + const picked = box.querySelector('.' + optionCls['--'].picked); + if (!picked) return; + + intoView(picked, box); + } + function handleOptions( + options: SelectOptionsItem[] = [], + parents: Exclude[] = [], + ): React.ReactElement[] { + return options.map((opt) => { + if (isDivider(opt)) return getDivider(opt); + if (isGroup(opt)) return getGroup(opt, parents); + return getOption(opt); + }); + + function getDivider(opt: SelectDivider): React.ReactElement { + const { key, type: _type, tag = 'li', ...rest } = opt; + rest.attrs ||= {}; + rest.attrs.className = getClassNames( + rest.attrs.className, + cls.__.divider, + ); + return ; + } + function getGroup( + opt: SelectOptionGroup, + parents: Exclude[], + ): React.ReactElement { + const { label, key, children, attrs: optAttrs = {}, ...optRest } = opt; + + return ( +
  • + + {label} + +
      + {handleOptions(children, [...parents, opt])} +
    +
  • + ); + } + function getOption(opt: SelectOption): React.ReactElement { + const { label, value, tag, attrs: optAttrs = {}, ...optRest } = opt; + const index = selected.findIndex((item) => item.value === opt.value); + const checked = index > -1; + return ( + + {typeof label === 'function' ? label(false, opt) : label} + + ); + + function onMouseEnter(e: React.MouseEvent): void { + optAttrs.onMouseEnter?.(e); + if (opt.disabled) return; + activeOptionRef.current = opt; + forceUpdate(); + } + function onClick(e: React.MouseEvent): void { + optAttrs.onClick?.(e); + e.stopPropagation(); + if (opt.disabled) return; + emitChange(opt); + } + } + } + function emitChange(option: SelectOption): void { + const index = selected.indexOf(option); + if (index > -1) { + if (!multiple) return; + selected.splice(index, 1); + } else { + if (!multiple) selected.length = 0; + selected.push(option); + } + const selectedOptions = selected.slice(); + if (index === -1) { + onSelect?.(option); + } + onSelectedChange(selectedOptions); + } +}; diff --git a/packages/components/src/select/components/Selection.filter.tsx b/packages/components/src/select/components/Selection.filter.tsx new file mode 100644 index 00000000..b93fc2a0 --- /dev/null +++ b/packages/components/src/select/components/Selection.filter.tsx @@ -0,0 +1,94 @@ +import React, { useEffect, useRef } from 'react'; +import { getClasses } from '@pkg/shared'; +import { SelectProps } from '~/select'; +import { ConvertOptional } from '@tool-pack/types'; + +interface Props + extends ConvertOptional> { + onInputValueChange: (value: string) => void; + onPatternChange: (value: string) => void; + onDelete: () => void; + inputValue: string; + opened: boolean; +} + +const cls = getClasses('select-filter', ['input', 'mirror'], []); + +export const SelectionFilter: React.FC = (props) => { + const { + onInputValueChange, + ignoreComposition, + onPatternChange, + inputValue, + onDelete, + opened, + } = props; + + const inputRef = useRef(null); + const mirrorRef = useRef(null); + const isCompositionRef = useRef(false); + + // 给 input 续 focus + useEffect(() => { + const input = inputRef.current; + if (!input) return; + if (opened) input.focus(); + else input.blur(); + }, [opened]); + + // 复制镜像宽度给 input + useEffect(() => { + const input = inputRef.current; + const mirror = mirrorRef.current; + if (!input || !mirror) return; + input.style.width = mirror.offsetWidth + 'px'; + }, [inputValue]); + + return ( +
    + + + {inputValue} + +
    + ); + + function onCompositionStart() { + isCompositionRef.current = true; + } + function onCompositionEnd(e: React.CompositionEvent) { + isCompositionRef.current = false; + onChange(e as unknown as React.ChangeEvent); + } + + function onChange(e: React.ChangeEvent): void { + const value = e.target.value; + onInputValueChange(value); + if (isCompositionRef.current && ignoreComposition) return; + onPatternChange(value); + } + function onInputKeyDown(e: React.KeyboardEvent) { + if (isCompositionRef.current && e.code === 'Enter') { + e.stopPropagation(); + return; + } + if (e.code === 'Backspace' && !inputValue) { + onDelete(); + } + } + function onInputBlur(e: React.FocusEvent) { + if (!opened) return; + // safari 需要异步设置,否则会丢失光标 + setTimeout(() => e.target.focus()); + } +}; diff --git a/packages/components/src/select/components/Selection.tags.tsx b/packages/components/src/select/components/Selection.tags.tsx new file mode 100644 index 00000000..42813a23 --- /dev/null +++ b/packages/components/src/select/components/Selection.tags.tsx @@ -0,0 +1,70 @@ +import React from 'react'; +import { getClasses } from '@pkg/shared'; +import { SelectOption, SelectProps } from '~/select'; +import { Tag } from '~/tag'; +import { getClassNames, isFunction } from '@tool-pack/basic'; +import { ConvertOptional } from '@tool-pack/types'; +import { Popover } from '~/popover'; + +interface Props + extends ConvertOptional< + Pick + > { + onSelectedChange: (selected: SelectOption[]) => void; + selected: SelectOption[]; + active: boolean; +} + +const cls = getClasses('select-tags', ['pop-tags', 'tag', 'count'], []); + +export const SelectionTags: React.FC = (props) => { + const { size, active, maxTagCount, disabled, selected, onSelectedChange } = + props; + + const onClose = (_e: React.MouseEvent, opt: SelectOption) => { + const index = selected.indexOf(opt); + selected.splice(index, 1); + onSelectedChange([...selected]); + }; + + if (!maxTagCount || maxTagCount < 0 || maxTagCount >= selected.length) + return selected.map(getTag); + + const visibleTags = selected.slice(0, maxTagCount); + const invisibleTags = selected.slice(maxTagCount); + + return ( + <> + {visibleTags.map(getTag)} + {invisibleTags.map(getTag)} + }> + + + {invisibleTags.length} + + + + ); + + function getTag(option: SelectOption) { + return ( + onClose(e, option)} + attrs={{ className: cls.__.tag }} + closeBtnAttrs={{ tabIndex: -1 }} + closeable={!disabled} + bordered={false} + key={option.value} + size={size} + type="info"> + {isFunction(option.label) ? option.label(true, option) : option.label} + + ); + } +}; diff --git a/packages/components/src/select/components/Selection.tsx b/packages/components/src/select/components/Selection.tsx new file mode 100644 index 00000000..b066856c --- /dev/null +++ b/packages/components/src/select/components/Selection.tsx @@ -0,0 +1,150 @@ +import React, { useEffect, useState } from 'react'; +import { getClasses, getSizeClassName } from '@pkg/shared'; +import type { SelectOption, SelectProps } from '~/select'; +import { getClassNames, isFunction } from '@tool-pack/basic'; +import { + Down as DownIcon, + CircleCloseFill as CircleCloseFillIcon, + Loading as LoadingIcon, +} from '@pkg/icons'; +import { Icon } from '~/icon'; +import { SelectionTags, SelectionFilter } from '~/select/components'; +import type { ConvertOptional, RequiredPart } from '@tool-pack/types'; + +interface Props + extends ConvertOptional< + RequiredPart< + Pick< + SelectProps, + | 'ignoreComposition' + | 'maxTagCount' + | 'placeholder' + | 'filterable' + | 'clearable' + | 'disabled' + | 'multiple' + | 'onClear' + | 'loading' + | 'options' + | 'remote' + | 'icon' + | 'size' + >, + 'size' + > + > { + selected: SelectOption[]; + onSelectedChange: (selected: SelectOption[]) => void; + opened: boolean; + pattern: string; + onPatternChange: (value: string) => void; +} + +const cls = getClasses( + 'select-selection', + ['placeholder', 'selected', 'suffix', 'icon', 'clear', 'label'], + [], +); +export const Selection: React.FC = React.forwardRef< + HTMLDivElement, + Props +>((props, ref) => { + const { + ignoreComposition, + onSelectedChange, + onPatternChange, + maxTagCount, + placeholder, + filterable, + pattern, + clearable, + disabled, + multiple, + selected, + loading, + onClear, + opened, + remote, + icon, + size, + } = props; + + const [inputValue, setInputValue] = useState(''); + + useEffect(() => { + setInputValue(pattern); + }, [pattern]); + + const showFilter = (filterable || remote) && opened; + + return ( +
    +
    + {getSelectedView()} + {showFilter && ( + + )} +
    +
    + + {icon || (loading ? : )} + + {clearable && selected.length > 0 && ( + + + + )} +
    +
    + ); + + function handleInputDelete(): void { + if (!selected.length || !multiple) return; + selected.length--; + onSelectedChange(selected.slice()); + } + + function _onClear(e: React.MouseEvent): void { + onClear?.(); + e.stopPropagation(); + onSelectedChange([]); + } + + function getSelectedView(): React.ReactNode { + if (!selected.length) { + if (inputValue) return null; + return
    {placeholder}
    ; + } + + if (multiple) { + return ( + + ); + } + + if (showFilter && inputValue) return null; + + const selectedOption = selected[0]!; + const { label } = selectedOption; + const className = showFilter ? cls.__.placeholder : cls.__.label; + return ( +
    + {isFunction(label) ? label(true, selectedOption) : label} +
    + ); + } +}); diff --git a/packages/components/src/select/components/TabTrigger.tsx b/packages/components/src/select/components/TabTrigger.tsx new file mode 100644 index 00000000..7f9f5a19 --- /dev/null +++ b/packages/components/src/select/components/TabTrigger.tsx @@ -0,0 +1,37 @@ +import React from 'react'; +import { getComponentClass } from '@pkg/shared'; + +interface Props { + ref?: React.Ref; + onFocus: () => void; + disabled?: boolean; + onBlur: () => void; + onOpen: () => void; + opened: boolean; +} + +const cls = getComponentClass('select-tab-trigger'); + +export const TabTrigger: React.FC = React.forwardRef< + HTMLInputElement, + Props +>((props, ref) => { + const { disabled, opened, onOpen, onFocus, onBlur } = props; + + return ( + + ); + + function _onKeyDown(e: React.KeyboardEvent) { + if (opened || e.code !== 'Enter') return; + onOpen(); + e.stopPropagation(); + } +}); diff --git a/packages/components/src/select/components/index.ts b/packages/components/src/select/components/index.ts new file mode 100644 index 00000000..e0aeb6aa --- /dev/null +++ b/packages/components/src/select/components/index.ts @@ -0,0 +1,6 @@ +export * from './Menu.option'; +export * from './Selection.filter'; +export * from './Selection.tags'; +export * from './Selection'; +export * from './Menu'; +export * from './TabTrigger'; diff --git a/packages/components/src/select/demo/basic.tsx b/packages/components/src/select/demo/basic.tsx new file mode 100644 index 00000000..d145515c --- /dev/null +++ b/packages/components/src/select/demo/basic.tsx @@ -0,0 +1,37 @@ +/** + * title: 基础用法 + */ + +import React, { useState } from 'react'; +import { Select, SelectOptionsItem } from '@tool-pack/react-ui'; + +const options: SelectOptionsItem[] = [ + { + value: 1, + label: 'foo', + }, + { + value: 2, + label: 'bar', + }, +]; +const App: React.FC = () => { + const [value, setValue] = useState(1); + return ( + <> + + + ); +}; + +export default App; diff --git a/packages/components/src/select/demo/clear.tsx b/packages/components/src/select/demo/clear.tsx new file mode 100644 index 00000000..85ecfce2 --- /dev/null +++ b/packages/components/src/select/demo/clear.tsx @@ -0,0 +1,40 @@ +/** + * title: 清空 + */ + +import React from 'react'; +import { + Select, + SelectOptionsItem, + useMessageHolder, +} from '@tool-pack/react-ui'; + +const options: SelectOptionsItem[] = Array.from({ length: 20 }).map((_, i) => ({ + value: i, + label: String(i), +})); +const App: React.FC = () => { + const [message, holder] = useMessageHolder(); + const onClear = () => message.success('clear'); + return ( + <> + {holder} + + + ); +}; + +export default App; diff --git a/packages/components/src/select/demo/controller.tsx b/packages/components/src/select/demo/controller.tsx new file mode 100644 index 00000000..96520530 --- /dev/null +++ b/packages/components/src/select/demo/controller.tsx @@ -0,0 +1,54 @@ +/** + * title: 手动控制 focus、blur + */ + +import React, { useRef } from 'react'; +import type { + SelectControllerRef, + SelectOptionsItem, +} from '@tool-pack/react-ui'; +import { Button, Select, Space, useMessageHolder } from '@tool-pack/react-ui'; + +const options: SelectOptionsItem[] = [ + { + value: 1, + label: 'foo', + }, + { + value: 2, + label: 'bar', + }, +]; +const App: React.FC = () => { + const controllerRef = useRef(null); + const [message, holder] = useMessageHolder(); + + return ( + + {holder} + + +
    + +
    + +
    + { + const v = option.value as string; + if (!v.toLowerCase().includes(pattern.toLowerCase())) return false; + return !value.includes(v); + }} + placeholder="隐藏已选" + options={options2} + onChange={setValue} + value={value} + filterable + multiple + /> + + ); +}; + +export default App; diff --git a/packages/components/src/select/demo/group.tsx b/packages/components/src/select/demo/group.tsx new file mode 100644 index 00000000..fcde9ee9 --- /dev/null +++ b/packages/components/src/select/demo/group.tsx @@ -0,0 +1,55 @@ +/** + * title: 分组 + */ + +import React from 'react'; +import { Select, SelectOptionsItem } from '@tool-pack/react-ui'; + +const options: SelectOptionsItem[] = [ + { + type: 'group', + key: '[0, 20)', + label: '[0, 20)', + children: [ + ...Array.from({ length: 10 }).map((_, i) => ({ + value: i, + label: String(i), + })), + { + type: 'group', + key: '[10, 20)', + label: '[10, 20)', + children: Array.from({ length: 10 }).map((_, i) => ({ + value: i + 10, + label: String(i + 10), + })), + }, + ], + }, + { type: 'divider', key: 'd1' }, + { + type: 'group', + key: '[20, 30)', + label: '[20, 30)', + children: Array.from({ length: 10 }).map((_, i) => ({ + value: i + 20, + label: String(i + 20), + })), + }, +]; +const App: React.FC = () => { + return ( + <> + + + ); +}; + +export default App; diff --git a/packages/components/src/select/demo/hide-selected.tsx b/packages/components/src/select/demo/hide-selected.tsx new file mode 100644 index 00000000..65adc4db --- /dev/null +++ b/packages/components/src/select/demo/hide-selected.tsx @@ -0,0 +1,30 @@ +/** + * title: 隐藏已选 + */ + +import React, { useState } from 'react'; +import { Select, SelectOptionsItem } from '@tool-pack/react-ui'; + +const options: SelectOptionsItem[] = Array.from({ length: 20 }).map((_, i) => ({ + value: i, + label: String(i), +})); +const App: React.FC = () => { + const [value, setValue] = useState([]); + return ( + <> + : } + options={options} + placeholder="select" + clearable + /> + ); +}; + +export default App; diff --git a/packages/components/src/select/demo/max-tag-count.tsx b/packages/components/src/select/demo/max-tag-count.tsx new file mode 100644 index 00000000..09caaa26 --- /dev/null +++ b/packages/components/src/select/demo/max-tag-count.tsx @@ -0,0 +1,29 @@ +/** + * title: 多选标签数量限制 + */ + +import React, { useState } from 'react'; +import { Select, SelectOptionsItem } from '@tool-pack/react-ui'; + +const options: SelectOptionsItem[] = Array.from({ length: 20 }).map((_, i) => ({ + value: i, + label: String(i), +})); +const App: React.FC = () => { + const [value, setValue] = useState([]); + return ( + { + setValue(value); + console.log(values, options); + }} + options={options} + value={value} + multiple + /> +
    + +
    + +
    + + + ); +}; + +export default App; diff --git a/packages/components/src/select/demo/slots.tsx b/packages/components/src/select/demo/slots.tsx new file mode 100644 index 00000000..0f9c6515 --- /dev/null +++ b/packages/components/src/select/demo/slots.tsx @@ -0,0 +1,30 @@ +/** + * title: 头尾插槽 + */ + +import React from 'react'; +import { Select, SelectOptionsItem } from '@tool-pack/react-ui'; + +const options: SelectOptionsItem[] = Array.from({ length: 20 }).map((_, i) => ({ + value: i, + label: String(i), +})); +const App: React.FC = () => { + return ( + <> + footer 插槽} + options={options} + placeholder="footer" + /> + + ); +}; + +export default App; diff --git a/packages/components/src/select/demo/status.tsx b/packages/components/src/select/demo/status.tsx new file mode 100644 index 00000000..329203d0 --- /dev/null +++ b/packages/components/src/select/demo/status.tsx @@ -0,0 +1,28 @@ +/** + * title: 状态 + */ + +import React from 'react'; +import { Select, SelectOptionsItem } from '@tool-pack/react-ui'; + +const options: SelectOptionsItem[] = [ + { + value: 1, + label: 'foo', + }, + { + value: 2, + label: 'bar', + }, +]; +const App: React.FC = () => { + return ( + <> + + + ); +}; + +export default App; diff --git a/packages/components/src/select/index.scss b/packages/components/src/select/index.scss new file mode 100644 index 00000000..5ea8c73a --- /dev/null +++ b/packages/components/src/select/index.scss @@ -0,0 +1,221 @@ +@use '../namespace' as Name; +@use '../popover/index' as Pop; + +$r: Name.$select; +$option: #{$r}-option; +$tags: #{$r}-tags; +$menu: #{$r}-menu; +$filter: #{$r}-filter; +$tab-trigger: #{$r}-tab-trigger; +$empty: #{$r}-empty; +$selection: #{$r}-selection; +$balloon-content: #{Name.$word-balloon}__content; + +.#{$r} { + --t-select-border-color: var(--t-color-info-a-3); + --t-select-box-shadow: 0 0 0 0 var(--t-color-primary-a-6); + --t-select-bg-color: initial; + --t-select-active-border-color: var(--t-color-primary-a-2); + --t-select-active-box-shadow: 0 0 0 2px var(--t-color-primary-a-6); + + display: flex; + align-items: center; + padding: 2px var(--t-radius); + min-width: 120px; + min-height: var(--t-size); + border: 1px solid var(--t-select-border-color); + border-radius: var(--t-radius); + background-color: var(--t-select-bg-color); + box-shadow: var(--t-select-box-shadow); + transition: all var(--t-transition-duration); + box-sizing: border-box; + cursor: pointer; + &__dropdown { + --t-select-transition-duration: calc(var(--t-transition-duration) / 2); + @include Pop.pop-style(var(--t-select-transition-duration)); + + .#{$balloon-content} { + padding: 4px; + } + .#{$option} { + --t-option-border-radius: calc(var(--t-radius) / 2); + } + } + &__dropdown-enter-from, + &__dropdown-leave-to { + transform: scale(0.9); + } + + // : + &:hover { + &:not(.#{$r}--disabled) { + border-color: var(--t-select-active-border-color); + } + &.#{$r}--selected.#{$r}--clearable { + .#{$selection}__clear { + display: block; + } + .#{$selection}__icon { + opacity: 0; + } + } + } + + // status + &--active, + &--focus { + border-color: var(--t-select-active-border-color); + box-shadow: var(--t-select-active-box-shadow); + } + &--warning { + --t-select-border-color: var(--t-color-warning-a-2); + --t-select-active-border-color: var(--t-color-warning-a-2); + --t-select-active-box-shadow: 0 0 0 2px var(--t-color-warning-a-6); + } + &--error { + --t-select-border-color: var(--t-color-danger-a-2); + --t-select-active-border-color: var(--t-color-danger-a-2); + --t-select-active-box-shadow: 0 0 0 2px var(--t-color-danger-a-6); + } + &--disabled { + --t-select-bg-color: var(--t-color-info-a-7); + --t-select-border-color: var(--t-color-info-a-3); + + cursor: not-allowed; + } +} + +.#{$tags} { + &__pop-tags { + display: inline-flex; + align-items: center; + overflow: hidden; + flex: 1; + flex-wrap: wrap; + gap: 4px; + max-width: 30vw; + } +} +.#{$menu} { + &__body { + position: relative; + overflow: auto; + max-height: 50vh; + ::-webkit-scrollbar { + margin-right: 4px; + width: 6px; + height: 6px; + background-color: transparent; + } + ::-webkit-scrollbar-corner { + display: none; + } + ::-webkit-scrollbar-thumb { + border-radius: 4px; + background-color: rgb(220 220 242 / 18%); + } + } + &__group-title { + --t-option-color: var(--t-option-diabled-color); + } + &__options, + &__group-body { + margin: 0; + padding: 0; + list-style: none; + } + &__divider { + margin: 4px 0; + } + &__group-body { + margin-left: var(--t-radius); + } +} +.#{$empty} { + &__content { + text-align: center; + line-height: 60px; + color: var(--t-color-info); + } +} +.#{$filter} { + display: inline-block; + overflow: hidden; + &__input { + overflow: hidden; + padding: 0; + min-width: 1px; + max-width: 100%; + border: 0; + color: var(--t-text-color); + background-color: #00000000; + outline: 0; + } + &__mirror { + position: absolute; + top: 0; + left: 0; + white-space: pre; + opacity: 0; + visibility: hidden; + user-select: none; + } +} +.#{$selection} { + position: relative; + width: 100%; + &, + &__selected, + &__suffix { + display: flex; + align-items: center; + } + &__selected { + display: inline-flex; + align-items: center; + overflow: hidden; + flex: 1; + flex-wrap: wrap; + gap: 4px; + } + &__placeholder { + position: absolute; + color: var(--t-color-info-a-3); + } + &__suffix { + position: relative; + padding: 0 4px; + } + &__icon { + font-size: 0.8em; + } + &__clear { + position: absolute; + cursor: pointer; + display: none; + color: var(--t-color-info-a-4); + &:hover { + color: var(--t-color-info); + } + } +} +.#{$tab-trigger} { + padding: 0; + width: 0; + border: 0; + opacity: 0; + outline: 0; +} +.#{$option} { + &--selected { + --t-option-bg-color: var(--t-color-primary-a-7); + + color: var(--t-color-primary-a-2); + } + &--picked { + --t-option-bg-color: var(--t-option-active-bg-color); + } + &__selected-icon { + font-size: 0.8em; + } +} diff --git a/packages/components/src/select/index.ts b/packages/components/src/select/index.ts new file mode 100644 index 00000000..401a4b95 --- /dev/null +++ b/packages/components/src/select/index.ts @@ -0,0 +1,9 @@ +export type { + SelectControllerRef, + SelectStaticProps, + SelectOptionsItem, + SelectDivider, + SelectOption, + SelectProps, +} from './select.types'; +export * from './Select'; diff --git a/packages/components/src/select/index.zh-CN.md b/packages/components/src/select/index.zh-CN.md new file mode 100644 index 00000000..a10f214c --- /dev/null +++ b/packages/components/src/select/index.zh-CN.md @@ -0,0 +1,102 @@ +--- +category: Components +title: Select 选择器 +atomId: Select +demo: + cols: 2 +group: + title: 数据录入 +--- + +Select 选择器。 + +## 代码演示 + + + + + + + + + + + + + + + + +## API + +### SelectProps + +| 属性 | 说明 | 类型 | 默认值 | 版本 | +| ----------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | --------- | ---- | +| multiple | 多选 | boolean | -- | -- | +| value | 指定当前选中的条目,多选时为一个数组 | React.Key[] \| React.Key | -- | -- | +| size | 尺寸 | 'small' \| 'medium' \| 'large' | 'medium' | -- | +| options | 选项 | (SelectOption \| SelectOptionGroup \| SelectDivider)[] | -- | -- | +| disabled | 禁用 | boolean | -- | -- | +| clearable | 显示清理按钮 | boolean | -- | -- | +| loading | 加载中 | boolean | -- | -- | +| placeholder | 提示信息 | string | 'select' | -- | +| status | 验证状态 | 'warning' \| 'error' | -- | -- | +| onFocus | focus 回调 | () => void | -- | -- | +| onBlur | blur 回调 | () => void | -- | -- | +| onClear | 清理全部已选时的回调 | () => void | -- | -- | +| onSelect | 选中一个选项时的回调 | (option: SelectOption) => void; | -- | -- | +| onChange | 选中的结果变化时的回调 | (value: React.Key[] \| React.Key, options: SelectOption[]) => void | -- | -- | +| maxTagCount | 当 multiple 为 true 时,限定展示 tag 的数量,多的会收起来 | number | -- | -- | +| filterable | 过滤输入开关 | boolean | -- | -- | +| filter | 默认过滤选项 label 文字,传入 filter 后可自定义过滤方式;可脱离 filterable 使用 | (pattern: string, option: SelectOption) => boolean; | -- | -- | +| ignoreComposition | 忽略输入法 Composition 状态 | boolean | true | -- | +| remote | 是否异步获取选项。如果开启了,那么 filter 不会对 options 生效。这个时候你在全权控制 options | boolean | -- | -- | +| onSearch | 异步获取选项时的回调 | (pattern: string) => void | -- | -- | +| header | 窗体顶部插槽 | React.ReactNode | -- | -- | +| footer | 窗体底部插槽 | React.ReactNode | -- | -- | +| empty | 选项为空时显示的内容 | React.ReactNode | 'No Data' | -- | +| icon | 右侧图标插槽 | React.ReactNode | -- | -- | +| controllerRef | 控制器 | React.Ref\ | -- | -- | +| attrs | html 标签属性 | Partial\> | -- | -- | + +其他属性见 [Popover](./popover#api) 组件 + +### SelectControllerRef + +| 属性 | 说明 | 类型 | 版本 | +| ----- | -------- | ---------- | ---- | +| focus | 获取焦点 | () => void | -- | +| blur | 移除焦点 | () => void | -- | + +### SelectOption + +| 属性 | 说明 | 类型 | 默认值 | 版本 | +| -------- | -------------------------- | ---------------------------------------------------------------------------------- | ------ | ---- | +| type | 类型 | 'option' | -- | -- | +| value | 对应唯一值 | React.Key | -- | -- | +| label | tag 或者 option 显示的内容 | React.ReactNode \| ((selected: boolean, option: SelectOption) =\> React.ReactNode) | -- | -- | +| disabled | 禁用 | boolean | -- | -- | +| attrs | html 标签属性 | Partial\> | -- | -- | + +### SelectOptionGroup + +选项组属性。 + +| 属性 | 说明 | 类型 | 默认值 | 版本 | +| -------- | ------------- | ------------------------------------------------------ | ------ | ---- | +| type | 类型 | 'group' | -- | -- | +| key | 唯一 key | React.Key | -- | -- | +| children | 子选项 | (SelectOption \| SelectOptionGroup \| SelectDivider)[] | -- | -- | +| attrs | html 标签属性 | Partial\> | -- | -- | + +### SelectDivider + +分割线属性。 + +| 属性 | 说明 | 类型 | 默认值 | 版本 | +| ---- | -------- | --------- | ------ | ---- | +| type | 类型 | 'divider' | -- | -- | +| key | 唯一 key | React.Key | -- | -- | + +其他属性见 [Divider](./divider#api) 组件 diff --git a/packages/components/src/select/select.types.ts b/packages/components/src/select/select.types.ts new file mode 100644 index 00000000..d094077d --- /dev/null +++ b/packages/components/src/select/select.types.ts @@ -0,0 +1,97 @@ +import { DividerProps } from '~/divider'; +import React from 'react'; +import { OptionProps } from '~/option'; +import { PopoverProps } from '~/popover'; +import { Size } from '@pkg/shared'; + +export interface SelectOptionProps extends OptionProps { + selected?: boolean; + picked?: boolean; +} +export interface SelectDivider extends DividerProps { + type: 'divider'; + key: React.Key; +} +export interface SelectOption extends Omit { + type?: 'option'; + value: React.Key; + label: + | React.ReactNode + | ((selected: boolean, option: SelectOption) => React.ReactNode); + // [key: string]: unknown; +} +export interface SelectOptionGroup + extends Omit { + type: 'group'; + key: React.Key; + label: React.ReactNode; + children?: SelectOptionsItem[]; +} +export type SelectOptionsItem = + | SelectOption + | SelectOptionGroup + | SelectDivider; + +export interface SelectControllerRef { + focus(): void; + blur(): void; +} + +export interface SelectStaticProps + extends Omit { + popoverAttrs?: Partial>; + + size?: Size; + options: SelectOptionsItem[]; + disabled?: boolean; + clearable?: boolean; + loading?: boolean; + placeholder?: string; + status?: 'warning' | 'error'; + onFocus?: () => void; + onBlur?: () => void; + onClear?: () => void; + onSelect?: (option: SelectOption) => void; + maxTagCount?: number; + ignoreComposition?: boolean; + + // 过滤 + filterable?: boolean; + filter?: (pattern: string, option: SelectOption) => boolean; + + // 远程 + remote?: boolean; + onSearch?: (pattern: string) => void; + + // slots + header?: React.ReactNode; + footer?: React.ReactNode; + empty?: React.ReactNode; + icon?: React.ReactNode; + + // 控制器 + controllerRef?: React.Ref; + + // dynamic + value?: React.Key[] | React.Key; + multiple?: boolean; + onChange?: (value: any, options: SelectOption[]) => void; +} +export interface SelectProps< + Multiple extends boolean = false, + ValueType extends React.Key = React.Key, +> extends SelectStaticProps { + value?: Multiple extends true ? ValueType[] : ValueType; + multiple?: Multiple; + onChange?: ( + value: Multiple extends true ? ValueType[] : ValueType, + options: SelectOption[], + ) => void; +} + +export type SelectFC = < + Multiple extends boolean = false, + ValueType extends React.Key = React.Key, +>( + props: SelectProps, +) => React.ReactElement; diff --git a/packages/components/src/select/utils/__tests__/filterOptions.test.ts b/packages/components/src/select/utils/__tests__/filterOptions.test.ts new file mode 100644 index 00000000..9c642420 --- /dev/null +++ b/packages/components/src/select/utils/__tests__/filterOptions.test.ts @@ -0,0 +1,103 @@ +import { filterOptions } from '~/select/utils'; +import { SelectOptionsItem } from '~/select'; + +describe('filterOptions', () => { + it('should be empty', () => { + const options: SelectOptionsItem[] = [ + { + type: 'group', + label: '1', + key: 1, + children: [{ label: 'foo', value: 'foo' }], + }, + { + type: 'group', + label: '2', + key: 2, + children: [{ label: 'bar', value: 'bar' }], + }, + ]; + expect(filterOptions(options, '123')).toEqual([]); + }); + + it('should work', () => { + const options: SelectOptionsItem[] = [ + { + type: 'group', + key: '[10, 20)', + label: '[10, 20)', + children: Array.from({ length: 10 }).map((_, i) => ({ + value: i + 10, + label: String(i + 10), + })), + }, + { type: 'divider', key: 'd1' }, + { + type: 'group', + key: '[20, 30)', + label: '[20, 30)', + children: Array.from({ length: 10 }).map((_, i) => ({ + value: i + 20, + label: String(i + 20), + })), + }, + ]; + expect(filterOptions(options, '1')).toEqual([ + { + type: 'group', + label: '[10, 20)', + key: '[10, 20)', + children: [ + { value: 10, label: '10' }, + { value: 11, label: '11' }, + { value: 12, label: '12' }, + { value: 13, label: '13' }, + { value: 14, label: '14' }, + { value: 15, label: '15' }, + { value: 16, label: '16' }, + { value: 17, label: '17' }, + { value: 18, label: '18' }, + { value: 19, label: '19' }, + ], + }, + { + type: 'group', + label: '[20, 30)', + key: '[20, 30)', + children: [{ value: 21, label: '21' }], + }, + ] satisfies SelectOptionsItem[]); + }); + + test('custom filter', () => { + const options: SelectOptionsItem[] = [ + { + type: 'group', + label: '1', + key: 1, + children: [{ label: 'foo', value: 'foo', extra: '321' }], + }, + { + type: 'group', + label: '2', + key: 2, + children: [ + { label: 'bar', value: 'bar2', extra: '123' }, + { label: 'bar', value: 'bar3', extra: '333' }, + ], + }, + ]; + expect( + filterOptions(options, '123', (pattern, option) => { + return option.extra === pattern; + }), + ).toEqual([ + { + type: 'group', + label: '2', + key: 2, + children: [{ label: 'bar', value: 'bar2', extra: '123' }], + }, + ] satisfies SelectOptionsItem[]); + }); +}); diff --git a/packages/components/src/select/utils/__tests__/flattenOptions.test.ts b/packages/components/src/select/utils/__tests__/flattenOptions.test.ts new file mode 100644 index 00000000..7a08cd66 --- /dev/null +++ b/packages/components/src/select/utils/__tests__/flattenOptions.test.ts @@ -0,0 +1,75 @@ +import { flattenOptions } from '~/select/utils'; +import { SelectOption } from '~/select'; + +describe('flattenOptions', () => { + it('should work', () => { + expect( + flattenOptions([ + { + type: 'group', + label: '1', + key: 1, + children: [ + { label: '1-1', value: '1-1', disabled: true }, + { type: 'divider', key: 'd1' }, + { label: '1-2', value: '1-2', disabled: true }, + ], + }, + { + type: 'group', + label: '2', + key: 2, + children: [ + { label: '2-1', value: '2-1' }, + { type: 'divider', key: 'd2' }, + { label: '2-2', value: '2-2' }, + ], + }, + { type: 'divider', key: 'd3' }, + { label: '3', value: '3' }, + ]), + ).toEqual([ + { label: '1-1', value: '1-1', disabled: true }, + { label: '1-2', value: '1-2', disabled: true }, + { label: '2-1', value: '2-1' }, + { label: '2-2', value: '2-2' }, + { label: '3', value: '3' }, + ] satisfies SelectOption[]); + }); + + it('should be skip the disabled option', () => { + expect( + flattenOptions( + [ + { + type: 'group', + label: '1', + key: 1, + children: [ + { label: '1-1', value: '1-1', disabled: true }, + { type: 'divider', key: 'd1' }, + { label: '1-2', value: '1-2', disabled: true }, + ], + }, + { + type: 'group', + label: '2', + key: 2, + children: [ + { label: '2-1', value: '2-1' }, + { type: 'divider', key: 'd2' }, + { label: '2-2', value: '2-2' }, + ], + }, + { type: 'divider', key: 'd3' }, + { label: '3', value: '3' }, + ], + (option) => !option.disabled, + ), + ).toEqual([ + { label: '2-1', value: '2-1' }, + { label: '2-2', value: '2-2' }, + { label: '3', value: '3' }, + ] satisfies SelectOption[]); + }); +}); diff --git a/packages/components/src/select/utils/__tests__/isDivider.test.ts b/packages/components/src/select/utils/__tests__/isDivider.test.ts new file mode 100644 index 00000000..7a491fe5 --- /dev/null +++ b/packages/components/src/select/utils/__tests__/isDivider.test.ts @@ -0,0 +1,11 @@ +import { isDivider } from '~/select/utils'; + +describe('isDivider', () => { + it('should be true', () => { + expect(isDivider({ type: 'divider', key: 1 })).toBe(true); + }); + it('should be false', () => { + expect(isDivider({ type: 'group', label: '1', key: 1 })).toBe(false); + expect(isDivider({ label: '1', value: 1 })).toBe(false); + }); +}); diff --git a/packages/components/src/select/utils/__tests__/isGroup.test.ts b/packages/components/src/select/utils/__tests__/isGroup.test.ts new file mode 100644 index 00000000..f6ea8a2f --- /dev/null +++ b/packages/components/src/select/utils/__tests__/isGroup.test.ts @@ -0,0 +1,11 @@ +import { isGroup } from '~/select/utils'; + +describe('isGroup', () => { + it('should be true', () => { + expect(isGroup({ type: 'group', label: '1', key: 1 })).toBeTruthy(); + }); + it('should be false', () => { + expect(isGroup({ type: 'divider', key: 1 })).toBeFalsy(); + expect(isGroup({ label: '1', value: 1 })).toBeFalsy(); + }); +}); diff --git a/packages/components/src/select/utils/__tests__/isValueChanged.test.ts b/packages/components/src/select/utils/__tests__/isValueChanged.test.ts new file mode 100644 index 00000000..05a4b9ee --- /dev/null +++ b/packages/components/src/select/utils/__tests__/isValueChanged.test.ts @@ -0,0 +1,113 @@ +import { isValueChanged } from '~/select/utils'; + +describe('isValueChanged', () => { + test('value is undefined', () => { + expect(isValueChanged(undefined, [])).toBe(false); + expect( + isValueChanged(undefined, [ + { value: 1, label: 1 }, + { value: 2, label: 2 }, + ]), + ).toBe(false); + }); + + test('value is not array', () => { + expect( + isValueChanged('1', [ + { value: 1, label: 1 }, + { value: 2, label: 2 }, + ]), + ).toBe(true); + expect(isValueChanged('1', [])).toBe(true); + expect( + isValueChanged(1, [ + { value: 1, label: 1 }, + { value: 2, label: 2 }, + ]), + ).toBe(true); + expect( + isValueChanged(1, [ + { value: 2, label: 2 }, + { value: 1, label: 1 }, + ]), + ).toBe(true); + expect(isValueChanged(1, [{ value: 1, label: 1 }])).toBe(false); + }); + + test('value is array', () => { + expect( + isValueChanged( + ['1'], + [ + { value: 1, label: 1 }, + { value: 2, label: 2 }, + ], + ), + ).toBe(true); + expect(isValueChanged(['1'], [])).toBe(true); + expect( + isValueChanged( + [1], + [ + { value: 1, label: 1 }, + { value: 2, label: 2 }, + ], + ), + ).toBe(true); + expect( + isValueChanged( + [1], + [ + { value: 2, label: 2 }, + { value: 1, label: 1 }, + ], + ), + ).toBe(true); + expect( + isValueChanged( + [1, 3], + [ + { value: 2, label: 2 }, + { value: 1, label: 1 }, + ], + ), + ).toBe(true); + expect( + isValueChanged( + [1, 2, 3], + [ + { value: 2, label: 2 }, + { value: 1, label: 1 }, + ], + ), + ).toBe(true); + expect( + isValueChanged( + [1, 2], + [ + { value: 2, label: 2 }, + { value: 1, label: 1 }, + ], + ), + ).toBe(true); + expect( + isValueChanged( + [2, 1, 3], + [ + { value: 2, label: 2 }, + { value: 1, label: 1 }, + ], + ), + ).toBe(true); + expect( + isValueChanged( + [2, 1], + [ + { value: 2, label: 2 }, + { value: 1, label: 1 }, + ], + ), + ).toBe(false); + expect(isValueChanged([1], [{ value: 1, label: 1 }])).toBe(false); + }); +}); diff --git a/packages/components/src/select/utils/__tests__/pickOptionsByValue.test.ts b/packages/components/src/select/utils/__tests__/pickOptionsByValue.test.ts new file mode 100644 index 00000000..706af500 --- /dev/null +++ b/packages/components/src/select/utils/__tests__/pickOptionsByValue.test.ts @@ -0,0 +1,55 @@ +import { pickOptionsByValue } from '~/select/utils'; +import { SelectOption } from '~/select'; + +describe('pickOptionsByValue', () => { + test('value is undefined', () => { + expect(pickOptionsByValue([], undefined)).toEqual([]); + expect(pickOptionsByValue([{ label: 1, value: 1 }], undefined)).toEqual([]); + }); + + test('value is not array', () => { + expect(pickOptionsByValue([], 1)).toEqual([]); + expect(pickOptionsByValue([{ label: 1, value: 1 }], 1)).toEqual([ + { label: 1, value: 1 }, + ] satisfies SelectOption[]); + expect( + pickOptionsByValue( + [ + { label: 1, value: 1 }, + { type: 'divider', key: 2 }, + ], + 1, + ), + ).toEqual([{ label: 1, value: 1 }] satisfies SelectOption[]); + }); + + test('value is array', () => { + expect(pickOptionsByValue([], [1])).toEqual([]); + expect(pickOptionsByValue([{ label: 1, value: 1 }], [1])).toEqual([ + { label: 1, value: 1 }, + ] satisfies SelectOption[]); + expect( + pickOptionsByValue( + [ + { label: 1, value: 1 }, + { type: 'divider', key: 2 }, + ], + [1], + ), + ).toEqual([{ label: 1, value: 1 }] satisfies SelectOption[]); + expect( + pickOptionsByValue( + [ + { label: 1, value: 1 }, + { label: 1, value: 2 }, + { type: 'divider', key: 11 }, + { label: 1, value: 3 }, + ], + [1, 3], + ), + ).toEqual([ + { label: 1, value: 1 }, + { label: 1, value: 3 }, + ] satisfies SelectOption[]); + }); +}); diff --git a/packages/components/src/select/utils/filterOptions.ts b/packages/components/src/select/utils/filterOptions.ts new file mode 100644 index 00000000..6499276f --- /dev/null +++ b/packages/components/src/select/utils/filterOptions.ts @@ -0,0 +1,28 @@ +import type { SelectOption, SelectOptionsItem } from '../select.types'; +import { isString } from '@tool-pack/basic'; +import { isDivider } from './isDivider'; +import { isGroup } from './isGroup'; + +export function filterOptions( + options: SelectOptionsItem[], + pattern: string, + filter = filterLabel, +): SelectOptionsItem[] { + const result: SelectOptionsItem[] = []; + options.forEach((opt) => { + if (isDivider(opt)) return; + if (isGroup(opt)) { + if (!opt.children?.length) return; + const children = filterOptions(opt.children, pattern, filter); + if (!children.length) return; + result.push({ ...opt, children }); + return; + } + if (filter(pattern, opt)) result.push(opt); + }); + return result; +} + +function filterLabel(pattern: string, option: SelectOption): boolean { + return isString(option.label) && option.label.includes(pattern); +} diff --git a/packages/components/src/select/utils/flattenOptions.ts b/packages/components/src/select/utils/flattenOptions.ts new file mode 100644 index 00000000..8c221cce --- /dev/null +++ b/packages/components/src/select/utils/flattenOptions.ts @@ -0,0 +1,22 @@ +import type { SelectOptionsItem, SelectOption } from '../select.types'; +import { isDivider } from './isDivider'; +import { isGroup } from './isGroup'; + +export function flattenOptions( + options: SelectOptionsItem[], + filter: (option: SelectOption) => boolean = () => true, +): SelectOption[] { + const result: SelectOption[] = []; + const queue = options.slice(); + while (queue.length) { + const opt = queue.shift()!; + if (isDivider(opt)) continue; + if (isGroup(opt)) { + queue.unshift(...(opt.children || [])); + continue; + } + if (!filter(opt)) continue; + result.push(opt); + } + return result; +} diff --git a/packages/components/src/select/utils/index.ts b/packages/components/src/select/utils/index.ts new file mode 100644 index 00000000..16a05b10 --- /dev/null +++ b/packages/components/src/select/utils/index.ts @@ -0,0 +1,7 @@ +export * from './pickOptionsByValue'; +export * from './flattenOptions'; +export * from './isValueChanged'; +export * from './filterOptions'; +export * from './isDivider'; +export * from './intoView'; +export * from './isGroup'; diff --git a/packages/components/src/select/utils/intoView.ts b/packages/components/src/select/utils/intoView.ts new file mode 100644 index 00000000..f192fb68 --- /dev/null +++ b/packages/components/src/select/utils/intoView.ts @@ -0,0 +1,15 @@ +export function intoView(child: HTMLElement, parent: HTMLElement): void { + // 底部往顶部走 + if (parent.scrollTop > child.offsetTop) { + parent.scrollTop = child.offsetTop; + return; + } + // 顶部往底部走 + if ( + parent.scrollTop + parent.offsetHeight < + child.offsetTop + child.offsetHeight + ) { + parent.scrollTop = + child.offsetTop - parent.offsetHeight + child.offsetHeight; + } +} diff --git a/packages/components/src/select/utils/isDivider.ts b/packages/components/src/select/utils/isDivider.ts new file mode 100644 index 00000000..88ce8a9c --- /dev/null +++ b/packages/components/src/select/utils/isDivider.ts @@ -0,0 +1,5 @@ +import type { SelectDivider, SelectOptionsItem } from '../select.types'; + +export function isDivider(opt: SelectOptionsItem): opt is SelectDivider { + return (opt as SelectDivider).type === 'divider'; +} diff --git a/packages/components/src/select/utils/isGroup.ts b/packages/components/src/select/utils/isGroup.ts new file mode 100644 index 00000000..a96faf38 --- /dev/null +++ b/packages/components/src/select/utils/isGroup.ts @@ -0,0 +1,5 @@ +import type { SelectOptionsItem, SelectOptionGroup } from '../select.types'; + +export function isGroup(opt: SelectOptionsItem): opt is SelectOptionGroup { + return (opt as SelectOptionGroup).type === 'group'; +} diff --git a/packages/components/src/select/utils/isValueChanged.ts b/packages/components/src/select/utils/isValueChanged.ts new file mode 100644 index 00000000..6486b955 --- /dev/null +++ b/packages/components/src/select/utils/isValueChanged.ts @@ -0,0 +1,13 @@ +import React from 'react'; +import { SelectOption } from '~/select'; + +export function isValueChanged( + value: React.Key[] | React.Key | undefined, + selectedOptions: SelectOption[], +): boolean { + if (value === undefined) return false; + if (!Array.isArray(value)) + return selectedOptions.length !== 1 || selectedOptions[0]?.value !== value; + if (value.length !== selectedOptions.length) return true; + return selectedOptions.some((v, i) => value[i] !== v.value); +} diff --git a/packages/components/src/select/utils/pickOptionsByValue.ts b/packages/components/src/select/utils/pickOptionsByValue.ts new file mode 100644 index 00000000..e078111d --- /dev/null +++ b/packages/components/src/select/utils/pickOptionsByValue.ts @@ -0,0 +1,14 @@ +import React from 'react'; +import { SelectOption, SelectOptionsItem } from '~/select'; +import { flattenOptions } from '~/select/utils'; + +export function pickOptionsByValue( + options: SelectOptionsItem[], + value: React.Key[] | React.Key | undefined, +): SelectOption[] { + if (value === undefined) return []; + const filter: (option: SelectOption) => boolean = Array.isArray(value) + ? (opt) => value.includes(opt.value) + : (opt) => opt.value === value; + return flattenOptions(options, filter); +} diff --git a/packages/components/src/setupTests.ts b/packages/components/src/setupTests.ts index c4e6e927..cd63bf9e 100644 --- a/packages/components/src/setupTests.ts +++ b/packages/components/src/setupTests.ts @@ -4,3 +4,15 @@ // learn more: https://github.com/testing-library/jest-dom // learn more: https://create-react-app.dev/docs/running-tests import '@testing-library/jest-dom'; + +// 模拟 ResizeObserver,ResizeObserver 不存在于 jsdom 中 +const MockObserverInstance: ResizeObserver = { + observe: jest.fn(), + unobserve: jest.fn(), + disconnect: jest.fn(), +}; +beforeEach(() => { + global.ResizeObserver = jest + .fn() + .mockImplementation(() => MockObserverInstance); +}); diff --git a/packages/components/src/switch/index.scss b/packages/components/src/switch/index.scss index 67118a33..354aa97e 100644 --- a/packages/components/src/switch/index.scss +++ b/packages/components/src/switch/index.scss @@ -72,7 +72,9 @@ $r: Name.$switch; height: var(--t-switch-handle-size); border-radius: var(--t-switch-handle-radius); background-color: white; - transition: left var(--t-switch-duration), width var(--t-switch-duration); + transition: + left var(--t-switch-duration), + width var(--t-switch-duration); &::before { position: absolute; inset: 0; @@ -123,6 +125,7 @@ $r: Name.$switch; } } } + &:focus, &:hover { box-shadow: var(--t-switch-shadow); } diff --git a/packages/components/src/tag/Tag.tsx b/packages/components/src/tag/Tag.tsx index 2bd9ea40..1561ad7b 100644 --- a/packages/components/src/tag/Tag.tsx +++ b/packages/components/src/tag/Tag.tsx @@ -23,6 +23,7 @@ export const Tag: React.FC = React.forwardRef< TagProps >((props, ref) => { const { + closeBtnAttrs = {}, type, icon, size, @@ -64,7 +65,7 @@ export const Tag: React.FC = React.forwardRef< type={closeBtnType} size="small" plain="text" - onClick={handleClose}> + attrs={{ ...closeBtnAttrs, onClickCapture: handleClose }}> @@ -84,6 +85,7 @@ export const Tag: React.FC = React.forwardRef< }); } function handleClose(e: React.MouseEvent) { + closeBtnAttrs.onClickCapture?.(e); if (disabled || !closeable) return; onClose?.(e); if (e.isDefaultPrevented()) return; diff --git a/packages/components/src/tag/__tests__/Tag.test.tsx b/packages/components/src/tag/__tests__/Tag.test.tsx index 21007dac..d2414bb8 100644 --- a/packages/components/src/tag/__tests__/Tag.test.tsx +++ b/packages/components/src/tag/__tests__/Tag.test.tsx @@ -80,6 +80,17 @@ describe('Tag', () => { expect(container.firstChild).not.toHaveClass('t-tag--checked'); }); + test('closeBtnAttrs', () => { + const onChange = jest.fn(); + const { container } = render( + , + ); + expect(container.querySelector('button')).toHaveAttribute( + 'tabindex', + '-1', + ); + }); + test('checked', () => { const onChange = jest.fn(); const { container } = render( @@ -192,5 +203,27 @@ describe('Tag', () => { expect(onClose).not.toBeCalled(); expect(container.firstChild).not.toBeNull(); }); + + test('关闭按钮拦截外部点击事件', () => { + const onWindowClick = jest.fn(); + const onClick = jest.fn(); + const { container } = render( + // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions +
    + tag +
    , + ); + + window.addEventListener('click', onWindowClick); + + expect(onClick).not.toBeCalled(); + expect(onWindowClick).not.toBeCalled(); + expect(container.firstChild!.firstChild).not.toBeNull(); + + fireEvent.click(container.querySelector('.t-tag__close')!); + expect(onClick).not.toBeCalled(); + expect(onWindowClick).not.toBeCalled(); + expect(container.firstChild!.firstChild).toBeNull(); + }); }); }); diff --git a/packages/components/src/tag/index.zh-CN.md b/packages/components/src/tag/index.zh-CN.md index d993b9d3..5d95d0f8 100644 --- a/packages/components/src/tag/index.zh-CN.md +++ b/packages/components/src/tag/index.zh-CN.md @@ -26,17 +26,18 @@ Tag 标签。 Tag 的属性说明如下: -| 属性 | 说明 | 类型 | 默认值 | 版本 | -| --------- | --------------------------------------------------------------- | -------------------------------------------------------- | --------- | ---- | -| size | 大小 | 'small' \| 'medium' \| 'large' | 'medium' | -- | -| type | Tag 类型 | 'primary' \| 'info' \| 'success' \| 'warning' \| 'error' | 'primary' | -- | -| round | 圆角 | boolean | -- | -- | -| closeable | 是否显示关闭按钮 | boolean | -- | -- | -| onClose | 显示关闭按钮时的回调,当使用了 e.preventDefault()时,会停止关闭 | (e: React.MouseEvent\) => void | -- | -- | -| bordered | 是否显示边框 | boolean | true | -- | -| checkable | 是否可选择 | boolean | -- | -- | -| checked | 是否选中 | boolean | -- | -- | -| onChange | checked 变化时触发的回调 | (checked: boolean) => void | -- | -- | -| disabled | 是否禁止操作,对 checkable、closeable 有效 | boolean | -- | -- | -| icon | 图标 | React.ReactNode | -- | -- | -| attrs | html 标签属性 | Partial\> | -- | -- | +| 属性 | 说明 | 类型 | 默认值 | 版本 | +| ------------- | --------------------------------------------------------------- | -------------------------------------------------------- | --------- | ---- | +| size | 大小 | 'small' \| 'medium' \| 'large' | 'medium' | -- | +| type | Tag 类型 | 'primary' \| 'info' \| 'success' \| 'warning' \| 'error' | 'primary' | -- | +| round | 圆角 | boolean | -- | -- | +| closeable | 是否显示关闭按钮 | boolean | -- | -- | +| onClose | 显示关闭按钮时的回调,当使用了 e.preventDefault()时,会停止关闭 | (e: React.MouseEvent\) => void | -- | -- | +| bordered | 是否显示边框 | boolean | true | -- | +| checkable | 是否可选择 | boolean | -- | -- | +| checked | 是否选中 | boolean | -- | -- | +| onChange | checked 变化时触发的回调 | (checked: boolean) => void | -- | -- | +| disabled | 是否禁止操作,对 checkable、closeable 有效 | boolean | -- | -- | +| icon | 图标 | React.ReactNode | -- | -- | +| attrs | html 标签属性 | Partial\> | -- | -- | +| closeBtnAttrs | 关闭按钮的 html 标签属性 | Partial\> | -- | -- | diff --git a/packages/components/src/tag/tag.types.ts b/packages/components/src/tag/tag.types.ts index b6b4aa9d..b21383c2 100644 --- a/packages/components/src/tag/tag.types.ts +++ b/packages/components/src/tag/tag.types.ts @@ -1,5 +1,6 @@ import React from 'react'; -import { PropsBase, Size } from '@pkg/shared'; +import type { PropsBase, Size } from '@pkg/shared'; +import type { ButtonProps } from '~/button'; export interface TagProps extends PropsBase { size?: Size; @@ -9,6 +10,7 @@ export interface TagProps extends PropsBase { onClose?: (e: React.MouseEvent) => void; disabled?: boolean; closeable?: boolean; + closeBtnAttrs?: ButtonProps['attrs']; bordered?: boolean; checked?: boolean; checkable?: boolean; diff --git a/packages/components/src/word-balloon/WordBalloon.tsx b/packages/components/src/word-balloon/WordBalloon.tsx index 5e5a96f9..7e2429e6 100644 --- a/packages/components/src/word-balloon/WordBalloon.tsx +++ b/packages/components/src/word-balloon/WordBalloon.tsx @@ -33,6 +33,7 @@ export const WordBalloon: React.FC = React.forwardRef< rootName, attrs.className, `${rootName}--${placement}`, + { [`${rootName}--no-arrow`]: !showArrow }, )}>
    {children} diff --git a/packages/components/src/word-balloon/__tests__/__snapshots__/WordBalloon.test.tsx.snap b/packages/components/src/word-balloon/__tests__/__snapshots__/WordBalloon.test.tsx.snap index 33a6bee5..6605b921 100644 --- a/packages/components/src/word-balloon/__tests__/__snapshots__/WordBalloon.test.tsx.snap +++ b/packages/components/src/word-balloon/__tests__/__snapshots__/WordBalloon.test.tsx.snap @@ -2,7 +2,7 @@ exports[`WordBalloon showArrow 1`] = `
    ( + + + +); diff --git a/packages/react-ui/vite.config.ts b/packages/react-ui/vite.config.ts index 2981960d..34fc7a67 100644 --- a/packages/react-ui/vite.config.ts +++ b/packages/react-ui/vite.config.ts @@ -1,5 +1,5 @@ import react from '@vitejs/plugin-react'; -import { defineConfig } from 'vite'; +import { defineConfig, UserConfig } from 'vite'; import Path, { resolve } from 'path'; import Fs from 'fs'; import pkg from './package.json'; @@ -30,26 +30,32 @@ const entryPath = resolve(__dirname, './src/index.ts'); * Vite configuration * https://vitejs.dev/config/ */ -export default defineConfig(() => { +export default defineConfig((): UserConfig => { return { cacheDir: `./.cache`, resolve: { alias: { // '@pkg/*': Path.resolve(__dirname, '../../packages/*/src'), - ...pkgs.reduce((prev, cur) => { - prev['@pkg/' + cur] = Path.resolve( - __dirname, - `../../packages/${cur}/src`, - ); - return prev; - }, {} as Record), - ...components.reduce((prev, cur) => { - prev['~/' + cur] = Path.resolve( - __dirname, - `../../packages/components/src/${cur}`, - ); - return prev; - }, {} as Record), + ...pkgs.reduce( + (prev, cur) => { + prev['@pkg/' + cur] = Path.resolve( + __dirname, + `../../packages/${cur}/src`, + ); + return prev; + }, + {} as Record, + ), + ...components.reduce( + (prev, cur) => { + prev['~/' + cur] = Path.resolve( + __dirname, + `../../packages/components/src/${cur}`, + ); + return prev; + }, + {} as Record, + ), }, }, plugins: [ diff --git a/packages/shared/src/hooks/__tests__/useBeforeDestroy.test.ts b/packages/shared/src/hooks/__tests__/useBeforeDestroy.test.ts new file mode 100644 index 00000000..229dfaae --- /dev/null +++ b/packages/shared/src/hooks/__tests__/useBeforeDestroy.test.ts @@ -0,0 +1,28 @@ +import { act, renderHook } from '@testing-library/react'; +import { useForceUpdate, useBeforeDestroy } from '@pkg/shared'; + +describe('useBeforeDestroy', () => { + test('basic', () => { + const onBeforeDestroy = jest.fn(); + + let renderTimes = 0; + const hook = renderHook(() => { + renderTimes++; + const forceUpdate = useForceUpdate(); + useBeforeDestroy(onBeforeDestroy); + return forceUpdate; + }); + const forceUpdate = hook.result.current; + + expect(renderTimes).toBe(1); + expect(onBeforeDestroy).not.toBeCalled(); + + act(forceUpdate); + expect(renderTimes).toBe(2); + expect(onBeforeDestroy).not.toBeCalled(); + + hook.unmount(); + expect(renderTimes).toBe(2); + expect(onBeforeDestroy).toBeCalled(); + }); +}); diff --git a/packages/shared/src/hooks/__tests__/useEventListenerOnMounted.test.ts b/packages/shared/src/hooks/__tests__/useEventListenerOnMounted.test.ts new file mode 100644 index 00000000..2b8e5fae --- /dev/null +++ b/packages/shared/src/hooks/__tests__/useEventListenerOnMounted.test.ts @@ -0,0 +1,112 @@ +import { act, fireEvent, renderHook } from '@testing-library/react'; +import { useForceUpdate, useEventListenerOnMounted } from '@pkg/shared'; +import { createHtmlElement } from '@tool-pack/dom'; +import { useState } from 'react'; + +describe('useEventListenerOnMounted', () => { + test('basic', () => { + const onClick = jest.fn(); + + let renderTimes = 0; + const hook = renderHook(() => { + renderTimes++; + const forceUpdate = useForceUpdate(); + useEventListenerOnMounted(window, 'click', onClick, { capture: true }); + return forceUpdate; + }); + const forceUpdate = hook.result.current; + + expect(renderTimes).toBe(1); + expect(onClick).not.toBeCalled(); + + fireEvent.click(document.body); + expect(renderTimes).toBe(1); + expect(onClick).toBeCalled(); + + act(forceUpdate); + expect(renderTimes).toBe(2); + expect(onClick.mock.calls.length).toBe(1); + + hook.unmount(); + expect(renderTimes).toBe(2); + expect(onClick.mock.calls.length).toBe(1); + + fireEvent.click(document.body); + expect(renderTimes).toBe(2); + expect(onClick.mock.calls.length).toBe(1); + }); + test('getTarget', () => { + const onClick = jest.fn(); + const div = createHtmlElement('div', { parent: document.body }); + + let renderTimes = 0; + const hook = renderHook(() => { + renderTimes++; + const forceUpdate = useForceUpdate(); + useEventListenerOnMounted(() => div, 'click', onClick, { capture: true }); + return forceUpdate; + }); + const forceUpdate = hook.result.current; + + expect(renderTimes).toBe(1); + expect(onClick).not.toBeCalled(); + + fireEvent.click(document.body); + expect(renderTimes).toBe(1); + expect(onClick).not.toBeCalled(); + + fireEvent.click(div); + expect(renderTimes).toBe(1); + expect(onClick).toBeCalled(); + + act(forceUpdate); + expect(renderTimes).toBe(2); + expect(onClick.mock.calls.length).toBe(1); + + hook.unmount(); + expect(renderTimes).toBe(2); + expect(onClick.mock.calls.length).toBe(1); + + fireEvent.click(div); + expect(renderTimes).toBe(2); + expect(onClick.mock.calls.length).toBe(1); + }); + test('enabled', () => { + const onClick = jest.fn(); + + let renderTimes = 0; + const hook = renderHook(() => { + renderTimes++; + const [enabled, setEnabled] = useState(false); + useEventListenerOnMounted( + window, + 'click', + onClick, + { capture: true }, + enabled, + ); + return setEnabled; + }); + const setEnabled = hook.result.current; + + expect(renderTimes).toBe(1); + expect(onClick).not.toBeCalled(); + + fireEvent.click(document.body); + expect(renderTimes).toBe(1); + expect(onClick).not.toBeCalled(); + + act(() => setEnabled(true)); + fireEvent.click(document.body); + expect(renderTimes).toBe(2); + expect(onClick).toBeCalled(); + expect(onClick.mock.calls.length).toBe(1); + + hook.unmount(); + expect(renderTimes).toBe(2); + + fireEvent.click(document.body); + expect(renderTimes).toBe(2); + expect(onClick.mock.calls.length).toBe(1); + }); +}); diff --git a/packages/shared/src/hooks/__tests__/useMounted.test.ts b/packages/shared/src/hooks/__tests__/useMounted.test.ts new file mode 100644 index 00000000..760a3b57 --- /dev/null +++ b/packages/shared/src/hooks/__tests__/useMounted.test.ts @@ -0,0 +1,32 @@ +import { act, renderHook } from '@testing-library/react'; +import { useForceUpdate, useMounted } from '@pkg/shared'; + +describe('useMounted', () => { + test('basic', () => { + const onBeforeDestroy = jest.fn(); + const onMounted = jest.fn(() => onBeforeDestroy); + + let renderTimes = 0; + const hook = renderHook(() => { + renderTimes++; + const forceUpdate = useForceUpdate(); + useMounted(onMounted); + return forceUpdate; + }); + const forceUpdate = hook.result.current; + + expect(renderTimes).toBe(1); + expect(onMounted.mock.calls.length).toBe(1); + expect(onBeforeDestroy).not.toBeCalled(); + + act(forceUpdate); + expect(renderTimes).toBe(2); + expect(onMounted.mock.calls.length).toBe(1); + expect(onBeforeDestroy).not.toBeCalled(); + + hook.unmount(); + expect(renderTimes).toBe(2); + expect(onMounted.mock.calls.length).toBe(1); + expect(onBeforeDestroy).toBeCalled(); + }); +}); diff --git a/packages/shared/src/hooks/__tests__/useNextEffect.test.ts b/packages/shared/src/hooks/__tests__/useNextEffect.test.ts index 37b88de5..af96d60d 100644 --- a/packages/shared/src/hooks/__tests__/useNextEffect.test.ts +++ b/packages/shared/src/hooks/__tests__/useNextEffect.test.ts @@ -53,4 +53,59 @@ describe('useNextEffect', () => { expect(cb).not.toBeCalled(); expect(renderTimes).toBe(2); }); + test('withEffects', () => { + let renderTimes = 0; + const result = renderHook(() => { + renderTimes++; + const [nextEffect, effects] = useNextEffect(true); + const forceUpdate = useForceUpdate(); + + return [nextEffect, forceUpdate, effects] as const; + }); + + const [nextEffect, forceUpdate, effects] = result.result.current; + + expect(renderTimes).toBe(1); + + const cb = jest.fn(); + act(() => { + nextEffect(cb); + effects.length = 0; + forceUpdate(); + }); + expect(cb).not.toBeCalled(); + expect(renderTimes).toBe(2); + }); + test('clearPrev', () => { + let renderTimes = 0; + const result = renderHook(() => { + renderTimes++; + const [nextEffect] = useNextEffect(true); + const forceUpdate = useForceUpdate(); + + return [nextEffect, forceUpdate] as const; + }); + + const [nextEffect, forceUpdate] = result.result.current; + + expect(renderTimes).toBe(1); + + const cb = jest.fn(); + act(() => { + nextEffect(cb); + nextEffect(cb); + forceUpdate(); + }); + expect(cb.mock.calls.length).toBe(2); + expect(renderTimes).toBe(2); + + act(() => { + nextEffect(cb); + nextEffect(() => cb(123), true); + forceUpdate(); + }); + expect(cb.mock.calls.length).toBe(3); + expect(cb.mock.calls[2][0]).toBe(123); + expect(renderTimes).toBe(3); + }); }); diff --git a/packages/shared/src/hooks/__tests__/useStateWithTrailClear.test.ts b/packages/shared/src/hooks/__tests__/useStateWithTrailClear.test.ts new file mode 100644 index 00000000..fdc50eb4 --- /dev/null +++ b/packages/shared/src/hooks/__tests__/useStateWithTrailClear.test.ts @@ -0,0 +1,62 @@ +import { act, renderHook } from '@testing-library/react'; +import { useStateWithTrailClear } from '@pkg/shared'; +import { useState } from 'react'; + +describe('useStateWithTrailClear', () => { + test('basic', () => { + let times = 0; + const hook = renderHook(() => { + times++; + const [st, setSt] = useState(false); + const [state, setState] = useStateWithTrailClear(st); + return [st, setSt, state, setState] as const; + }); + + const [, setSt, , setState] = hook.result.current; + + expect(times).toBe(3); + expect(hook.result.current[0]).toBe(false); + expect(hook.result.current[2]).toBe(undefined); + + act(() => setSt(true)); + expect(times).toBe(6); + expect(hook.result.current[0]).toBe(true); + expect(hook.result.current[2]).toBe(undefined); + + // 同样的state不会触发更新 + act(() => setSt(true)); + // times 不是 hook,加了就是加了 + expect(times).toBe(7); + expect(hook.result.current[0]).toBe(true); + expect(hook.result.current[2]).toBe(undefined); + + act(() => setState(false)); + expect(times).toBe(9); + expect(hook.result.current[0]).toBe(true); + expect(hook.result.current[2]).toBe(undefined); + }); + test('相同值', () => { + let times = 0; + const hook = renderHook(() => { + times++; + const [st, setSt] = useState(false); + const [state, setState] = useStateWithTrailClear(st); + return [st, setSt, state, setState] as const; + }); + + const [, , , setState] = hook.result.current; + + expect(times).toBe(3); + + // setState 除了 undefined 都能触发 effect + act(() => setState(true)); + expect(times).toBe(5); + expect(hook.result.current[0]).toBe(false); + expect(hook.result.current[2]).toBe(undefined); + + act(() => setState(undefined)); + expect(times).toBe(6); + expect(hook.result.current[0]).toBe(false); + expect(hook.result.current[2]).toBe(undefined); + }); +}); diff --git a/packages/shared/src/hooks/index.ts b/packages/shared/src/hooks/index.ts index 686d2442..d2d0bc0d 100644 --- a/packages/shared/src/hooks/index.ts +++ b/packages/shared/src/hooks/index.ts @@ -11,3 +11,7 @@ export * from './useAppendTo'; export * from './useScrollLock'; export * from './useNextEffect'; export * from './useIsChanged'; +export * from './useStateWithTrailClear'; +export * from './useMounted'; +export * from './useEventListenerOnMounted'; +export * from './useBeforeDestroy'; diff --git a/packages/shared/src/hooks/useBeforeDestroy.ts b/packages/shared/src/hooks/useBeforeDestroy.ts new file mode 100644 index 00000000..a40b3ab1 --- /dev/null +++ b/packages/shared/src/hooks/useBeforeDestroy.ts @@ -0,0 +1,8 @@ +import { useEffect } from 'react'; + +/** + * useEffect 语义化,并没有省多少代码 + */ +export function useBeforeDestroy(onBeforeDestroy: () => void): void { + useEffect(() => onBeforeDestroy, []); +} diff --git a/packages/shared/src/hooks/useEventListenerOnMounted.ts b/packages/shared/src/hooks/useEventListenerOnMounted.ts new file mode 100644 index 00000000..038e3185 --- /dev/null +++ b/packages/shared/src/hooks/useEventListenerOnMounted.ts @@ -0,0 +1,73 @@ +import { isFunction } from '@tool-pack/basic'; +import { useEffect } from 'react'; + +/** + * target 是 window + */ +export function useEventListenerOnMounted( + target: Window, + eventName: K, + callback: (this: Window, ev: WindowEventMap[K]) => any, + options?: boolean | AddEventListenerOptions, + enabled?: boolean, +): void; +/** + * target 是 document + */ +export function useEventListenerOnMounted( + target: Document, + eventName: K, + callback: (this: Document, ev: DocumentEventMap[K]) => any, + options?: boolean | AddEventListenerOptions, + enabled?: boolean, +): void; +/** + * target 是 HTMLElement + */ +export function useEventListenerOnMounted( + target: HTMLElement, + eventName: K, + callback: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, + options?: boolean | AddEventListenerOptions, + enabled?: boolean, +): void; +/** + * target 是 ref 需要传函数 + */ +export function useEventListenerOnMounted( + getTarget: () => HTMLElement, + eventName: K, + callback: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, + options?: boolean | AddEventListenerOptions, + enabled?: boolean, +): void; +/** + * 在组件创建时添加事件监听,组件移除时移除事件监听 + * + * 如果想在 onMounted 时绑定多个事件,不应多次使用该 hook,而是使用 useMounted + RxJs 绑定多个事件代替 + * + * @example + * + * useEffect(() => { + * const handler = () => setShow(false); + * window.addEventListener('blur', handler); + * return () => window.removeEventListener('blur', handler); + * }, []); + * + * // 以上代码可简化为一行代码 + * useEventOnMounted(window, 'blur', () => setShow(false)); + */ +export function useEventListenerOnMounted( + target: Window | HTMLElement | Document | (() => HTMLElement), + eventName: string, + callback: (this: unknown, ev: unknown) => unknown, + options?: boolean | AddEventListenerOptions, + enable = true, +): void { + useEffect(() => { + if (!enable) return; + const tg = isFunction(target) ? target() : target; + tg.addEventListener(eventName, callback, options); + return () => tg.removeEventListener(eventName, callback, options); + }, [enable]); +} diff --git a/packages/shared/src/hooks/useMounted.ts b/packages/shared/src/hooks/useMounted.ts new file mode 100644 index 00000000..53f79445 --- /dev/null +++ b/packages/shared/src/hooks/useMounted.ts @@ -0,0 +1,9 @@ +import { useEffect, type EffectCallback } from 'react'; + +/** + * useEffect 语义化,并没有省多少代码,就少写个[] + * @param onMounted + */ +export function useMounted(onMounted: EffectCallback): void { + useEffect(onMounted, []); +} diff --git a/packages/shared/src/hooks/useNextEffect.ts b/packages/shared/src/hooks/useNextEffect.ts index e186dac4..6171406f 100644 --- a/packages/shared/src/hooks/useNextEffect.ts +++ b/packages/shared/src/hooks/useNextEffect.ts @@ -3,8 +3,26 @@ import { useCallback, useEffect, useRef } from 'react'; /** * 类似 nextTick 函数,只不过它的next不是js中的事件循环,而是useEffect; * 传入的函数会在下一次的useEffect中执行 + * + * @override 返回值为 nextEffect */ -export function useNextEffect() { +export function useNextEffect(): ( + effect: () => void, + clearPrev?: boolean, +) => () => void; +/** + * 类似 nextTick 函数,只不过它的next不是js中的事件循环,而是useEffect; + * 传入的函数会在下一次的useEffect中执行 + * + * @override 返回值改为 [nextEffect, effects] + */ +export function useNextEffect( + withEffects: true, +): [ + nextEffect: (effect: () => void, clearPrev?: boolean) => () => void, + effects: Array<() => void>, +]; +export function useNextEffect(withEffects = false) { const effectsRef = useRef void>>([]); useEffect(() => { @@ -15,13 +33,18 @@ export function useNextEffect() { effects.length = 0; }); - return useCallback((effect: () => void): (() => void) => { - const effects = effectsRef.current; - effects.push(effect); + const nextEffect: (effect: () => void, clearPrev?: boolean) => () => void = + useCallback((effect, clearPrev = false) => { + const effects = effectsRef.current; + clearPrev && (effects.length = 0); + effects.push(effect); + + return () => { + const index = effects.indexOf(effect); + effects.splice(index, 1); + }; + }, []); - return () => { - const index = effects.indexOf(effect); - effects.splice(index, 1); - }; - }, []); + if (!withEffects) return nextEffect; + return [nextEffect, effectsRef.current]; } diff --git a/packages/shared/src/hooks/useStateWithTrailClear.ts b/packages/shared/src/hooks/useStateWithTrailClear.ts new file mode 100644 index 00000000..4b2d5d6e --- /dev/null +++ b/packages/shared/src/hooks/useStateWithTrailClear.ts @@ -0,0 +1,25 @@ +import React, { useEffect, useState } from 'react'; + +/** + * 带后续清理的状态 + * + * 每当设置一个值,下一次 Effect 就会把它重置为 undefined, + * 也就是说会触发 3 次 effect: + * 1. 外部依赖状态更新 + * 2. 依据外部状态更新内部状态 + * 3. 内部状态恢复为 undefined + * + * 类似电子打火机的点火装置,点着了气体之后接下来就与点火器无关且可以关掉了。 + */ +export function useStateWithTrailClear( + visible: T | undefined, +): ReturnType> { + const [state, setState] = useState(); + + useEffect(() => { + state !== undefined && setState(undefined); + }, [state]); + useEffect(() => setState(visible), [visible]); + + return [state, setState]; +} diff --git a/packages/shared/src/observes/__tests__/fromEventDelegation.test.ts b/packages/shared/src/observes/__tests__/fromEventDelegation.test.ts new file mode 100644 index 00000000..0d09bc8e --- /dev/null +++ b/packages/shared/src/observes/__tests__/fromEventDelegation.test.ts @@ -0,0 +1,103 @@ +import { createHtmlElement } from '@tool-pack/dom'; +import { fromEventDelegation } from '@pkg/shared'; + +describe('fromEventDelegation', () => { + test('basic', () => { + const div = createHtmlElement('div', { parent: document.body }); + const onClick = jest.fn(); + fromEventDelegation(div, 'click').subscribe(onClick); + + expect(onClick).not.toBeCalled(); + + document.body.click(); + expect(onClick).not.toBeCalled(); + + div.click(); + expect(onClick).toBeCalled(); + }); + + test('capture', () => { + const div = createHtmlElement('div', { parent: document.body }); + const onClick = jest.fn(); + fromEventDelegation(div, 'click', { capture: true }).subscribe(onClick); + + expect(onClick).not.toBeCalled(); + + document.body.click(); + expect(onClick).not.toBeCalled(); + + div.click(); + expect(onClick).toBeCalled(); + }); + + test('getTarget', () => { + const div = createHtmlElement('div', { parent: document.body }); + const onClick = jest.fn(); + fromEventDelegation(() => div, 'click').subscribe(onClick); + + expect(onClick).not.toBeCalled(); + + document.body.click(); + expect(onClick).not.toBeCalled(); + + div.click(); + expect(onClick).toBeCalled(); + }); + + test('child', () => { + const child = createHtmlElement('div'); + const parent = createHtmlElement('div', { + children: [child], + parent: document.body, + }); + const onClick = jest.fn(); + fromEventDelegation(parent, 'click').subscribe(onClick); + + expect(onClick).not.toBeCalled(); + + document.body.click(); + expect(onClick).not.toBeCalled(); + + parent.click(); + expect(onClick).toBeCalled(); + + onClick.mockClear(); + expect(onClick).not.toBeCalled(); + child.click(); + expect(onClick).toBeCalled(); + + onClick.mockClear(); + child.addEventListener('click', (e) => e.stopPropagation()); + child.click(); + expect(onClick).not.toBeCalled(); + }); + + test('child capture', () => { + const child = createHtmlElement('div'); + const parent = createHtmlElement('div', { + children: [child], + parent: document.body, + }); + const onClick = jest.fn(); + fromEventDelegation(parent, 'click', { capture: true }).subscribe(onClick); + + expect(onClick).not.toBeCalled(); + + document.body.click(); + expect(onClick).not.toBeCalled(); + + parent.click(); + expect(onClick).toBeCalled(); + + onClick.mockClear(); + expect(onClick).not.toBeCalled(); + child.click(); + expect(onClick).toBeCalled(); + + onClick.mockClear(); + child.addEventListener('click', (e) => e.stopPropagation()); + child.click(); + // capture 在捕获阶段处于第一顺位,是无法被拦截的 + expect(onClick).toBeCalled(); + }); +}); diff --git a/packages/shared/src/observes/__tests__/outerEvent.observe.test.ts b/packages/shared/src/observes/__tests__/fromOuterEvent.test.ts similarity index 86% rename from packages/shared/src/observes/__tests__/outerEvent.observe.test.ts rename to packages/shared/src/observes/__tests__/fromOuterEvent.test.ts index d0f20fc5..a5ba6303 100644 --- a/packages/shared/src/observes/__tests__/outerEvent.observe.test.ts +++ b/packages/shared/src/observes/__tests__/fromOuterEvent.test.ts @@ -1,6 +1,6 @@ -import { outerEventObserve } from '@pkg/shared'; +import { fromOuterEvent } from '@pkg/shared'; -describe('outerEventObserve', () => { +describe('fromOuterEvent', () => { test('inner', () => { const div1 = document.createElement('div'); const div2 = document.createElement('div'); @@ -8,7 +8,7 @@ describe('outerEventObserve', () => { document.body.appendChild(div2); const onClick = jest.fn(); - outerEventObserve(div1, 'click').subscribe(onClick); + fromOuterEvent(div1, 'click').subscribe(onClick); expect(onClick).not.toBeCalled(); @@ -32,7 +32,7 @@ describe('outerEventObserve', () => { document.body.appendChild(div2); const onClick = jest.fn(); - outerEventObserve(() => div1, 'click').subscribe(onClick); + fromOuterEvent(() => div1, 'click').subscribe(onClick); expect(onClick).not.toBeCalled(); @@ -56,7 +56,7 @@ describe('outerEventObserve', () => { document.body.appendChild(div2); const onClick = jest.fn(); - outerEventObserve(() => [div1, div2], 'click').subscribe(onClick); + fromOuterEvent(() => [div1, div2], 'click').subscribe(onClick); expect(onClick).not.toBeCalled(); diff --git a/packages/shared/src/observes/fromEventDelegation.ts b/packages/shared/src/observes/fromEventDelegation.ts new file mode 100644 index 00000000..5802741f --- /dev/null +++ b/packages/shared/src/observes/fromEventDelegation.ts @@ -0,0 +1,39 @@ +import { filter, fromEvent, type Observable } from 'rxjs'; +import { isChildHTMLElement } from '@tool-pack/dom'; +import { isFunction } from '@tool-pack/basic'; + +/** + * 事件委托 + */ +export function fromEventDelegation( + target: HTMLElement, + eventName: K, + options?: Omit, +): Observable; +/** + * 事件委托 + */ +export function fromEventDelegation( + getTarget: () => HTMLElement, + eventName: K, + options?: Omit, +): Observable; +export function fromEventDelegation( + getEl: HTMLElement | (() => HTMLElement), + eventName: K, + options: Omit = {}, +): Observable { + return fromEvent( + document.documentElement, + eventName, + options, + ).pipe( + filter((e): boolean => { + // srcElement IE6-8 + const target = (e.target || e.srcElement) as HTMLElement | null; + const el = isFunction(getEl) ? getEl() : getEl; + if (!target) return false; + return target === el || isChildHTMLElement(target, el); + }), + ); +} diff --git a/packages/shared/src/observes/outerEvent.observe.ts b/packages/shared/src/observes/fromOuterEvent.ts similarity index 91% rename from packages/shared/src/observes/outerEvent.observe.ts rename to packages/shared/src/observes/fromOuterEvent.ts index a7275b7f..b8e55a4d 100644 --- a/packages/shared/src/observes/outerEvent.observe.ts +++ b/packages/shared/src/observes/fromOuterEvent.ts @@ -7,7 +7,7 @@ import { castArray } from '@tool-pack/basic'; * @param inner 与外部相对的内部元素 * @param eventName 事件名 */ -export function outerEventObserve( +export function fromOuterEvent( inner: HTMLElement, eventName: keyof HTMLElementEventMap, ): Observable; @@ -16,7 +16,7 @@ export function outerEventObserve( * @param getInner 获取与外部相对的内部元素 * @param eventName 事件名 */ -export function outerEventObserve( +export function fromOuterEvent( getInner: () => HTMLElement, eventName: keyof HTMLElementEventMap, ): Observable; @@ -25,11 +25,11 @@ export function outerEventObserve( * @param getInners 获取与外部相对的内部元素数组 * @param eventName 事件名 */ -export function outerEventObserve( +export function fromOuterEvent( getInners: () => (HTMLElement | undefined)[], eventName: keyof HTMLElementEventMap, ): Observable; -export function outerEventObserve( +export function fromOuterEvent( inners: | (() => (HTMLElement | undefined)[]) | (() => HTMLElement) diff --git a/packages/shared/src/observes/index.ts b/packages/shared/src/observes/index.ts index ed90dc53..009dca4d 100644 --- a/packages/shared/src/observes/index.ts +++ b/packages/shared/src/observes/index.ts @@ -1 +1,2 @@ -export * from './outerEvent.observe'; +export * from './fromOuterEvent'; +export * from './fromEventDelegation'; diff --git a/packages/shared/src/utils/getClasses.ts b/packages/shared/src/utils/getClasses.ts index ebf68284..e869280a 100644 --- a/packages/shared/src/utils/getClasses.ts +++ b/packages/shared/src/utils/getClasses.ts @@ -25,8 +25,11 @@ function handleClasses( divider: '__' | '--', list: readonly string[], ): Record { - return list.reduce((result, status) => { - result[status] = `${root}${divider}${status}`; - return result; - }, {} as Record); + return list.reduce( + (result, status) => { + result[status] = `${root}${divider}${status}`; + return result; + }, + {} as Record, + ); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b05c7a2..cd8746c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,133 +4,133 @@ importers: .: specifiers: - '@commitlint/cli': ^17.6.5 - '@commitlint/config-conventional': ^17.6.5 + '@commitlint/cli': ^17.7.1 + '@commitlint/config-conventional': ^17.7.0 '@mxssfd/dumi-theme-antd-style': ^0.27.5-beta.9 '@rollup/plugin-json': ^6.0.0 - '@testing-library/jest-dom': ^5.16.5 + '@testing-library/jest-dom': ^6.1.2 '@testing-library/react': ^14.0.0 '@testing-library/user-event': ^14.4.3 - '@tool-pack/basic': ^0.1.1 + '@tool-pack/basic': ^0.1.2 '@tool-pack/bom': 0.0.1-beta.0 '@tool-pack/dom': ^0.0.13 - '@tool-pack/types': ^0.0.6 + '@tool-pack/types': ^0.0.9 '@types/fs-extra': ^11.0.1 - '@types/jest': ^29.5.1 - '@types/node': ^16.18.34 - '@types/react': ^18.2.7 - '@types/react-dom': ^18.2.4 - '@types/testing-library__jest-dom': ^5.14.6 - '@typescript-eslint/eslint-plugin': ^5.59.8 - '@typescript-eslint/parser': ^5.59.8 - '@umijs/lint': ^4.0.0 - '@vitejs/plugin-react': ^4.0.0 - autoprefixer: ^10.4.14 - chalk: ^5.2.0 + '@types/jest': ^29.5.4 + '@types/node': ^20.5.6 + '@types/react': ^18.2.21 + '@types/react-dom': ^18.2.7 + '@types/testing-library__jest-dom': ^5.14.9 + '@typescript-eslint/eslint-plugin': 5.62.0 + '@typescript-eslint/parser': ^5.62.0 + '@umijs/lint': ^4.0.78 + '@vitejs/plugin-react': ^4.0.4 + autoprefixer: ^10.4.15 + chalk: ^5.3.0 conventional-changelog-cli: ^3.0.0 cssnano: ^6.0.1 - dumi: ^2.2.1 - enquirer: ^2.3.6 - eslint: ^8.41.0 - eslint-config-prettier: ^8.8.0 - eslint-plugin-prettier: ^4.2.1 - esno: ^0.16.3 - execa: ^7.1.1 - father: ^4.1.0 + dumi: ^2.2.6 + enquirer: ^2.4.1 + eslint: ^8.47.0 + eslint-config-prettier: ^9.0.0 + eslint-plugin-prettier: ^5.0.0 + esno: ^0.17.0 + execa: ^8.0.1 + father: ^4.3.1 fs-extra: ^11.1.1 - gh-pages: ^5.0.0 + gh-pages: ^6.0.0 husky: ^8.0.3 - lint-staged: ^13.2.2 - npm-check-updates: ^16.10.12 - postcss: ^8.4.26 + lint-staged: ^14.0.1 + npm-check-updates: ^16.13.1 + postcss: ^8.4.28 postcss-cli: ^10.1.0 postcss-merge-rules-plus: ^2.0.0 - prettier: ^2.8.8 - prettier-plugin-organize-imports: ^3.0.0 - prettier-plugin-packagejson: ^2.2.18 + prettier: ^3.0.2 + prettier-plugin-organize-imports: ^3.2.3 + prettier-plugin-packagejson: ^2.4.5 react: ^18.2.0 react-dom: ^18.2.0 react-scripts: 5.0.1 - rollup: ^3.23.0 - rollup-plugin-dts: ^5.3.0 - rollup-plugin-typescript2: ^0.34.1 + rollup: ^3.28.1 + rollup-plugin-dts: ^6.0.0 + rollup-plugin-typescript2: ^0.35.0 rxjs: ^7.8.1 - sass: ^1.62.1 - serve: ^14.2.0 - stylelint: ^15.7.0 + sass: ^1.66.1 + serve: ^14.2.1 + stylelint: ^15.10.3 stylelint-config-prettier: ^9.0.5 - stylelint-config-standard: ^33.0.0 - stylelint-config-standard-scss: ^9.0.0 + stylelint-config-standard: ^34.0.0 + stylelint-config-standard-scss: ^10.0.0 stylelint-order: ^6.0.3 - stylelint-scss: ^5.0.1 - tsc-alias: ^1.8.6 - typescript: ^5.1.5 - vite: ^4.3.9 + stylelint-scss: ^5.1.0 + tsc-alias: ^1.8.7 + typescript: ^5.2.2 + vite: ^4.4.9 yalc: 1.0.0-pre.53 dependencies: react: 18.2.0 react-dom: 18.2.0_react@18.2.0 devDependencies: - '@commitlint/cli': 17.6.5 - '@commitlint/config-conventional': 17.6.5 - '@mxssfd/dumi-theme-antd-style': 0.27.5-beta.9_gcc6bjtdpifl4cs2fo2vfujizq - '@rollup/plugin-json': 6.0.0_rollup@3.23.0 - '@testing-library/jest-dom': 5.16.5 + '@commitlint/cli': 17.7.1 + '@commitlint/config-conventional': 17.7.0 + '@mxssfd/dumi-theme-antd-style': 0.27.5-beta.9_kxcc44k6n7qqii7ccc3ncazjkq + '@rollup/plugin-json': 6.0.0_rollup@3.28.1 + '@testing-library/jest-dom': 6.1.2_@types+jest@29.5.4 '@testing-library/react': 14.0.0_biqbaboplfbrettd7655fr4n2y '@testing-library/user-event': 14.4.3 - '@tool-pack/basic': 0.1.1 + '@tool-pack/basic': 0.1.2 '@tool-pack/bom': 0.0.1-beta.0 '@tool-pack/dom': 0.0.13 - '@tool-pack/types': 0.0.6 + '@tool-pack/types': 0.0.9 '@types/fs-extra': 11.0.1 - '@types/jest': 29.5.2 - '@types/node': 16.18.34 - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 - '@types/testing-library__jest-dom': 5.14.6 - '@typescript-eslint/eslint-plugin': 5.59.9_qb52hxwymttcv6keasteivhon4 - '@typescript-eslint/parser': 5.59.9_vpom273qb76jyt57dlzy5jrwce - '@umijs/lint': 4.0.70_pqb4avgxdjjhzbr6dozjwjlhxi - '@vitejs/plugin-react': 4.0.0_vite@4.3.9 - autoprefixer: 10.4.14_postcss@8.4.26 - chalk: 5.2.0 + '@types/jest': 29.5.4 + '@types/node': 20.5.6 + '@types/react': 18.2.21 + '@types/react-dom': 18.2.7 + '@types/testing-library__jest-dom': 5.14.9 + '@typescript-eslint/eslint-plugin': 5.62.0_jkm4zv3ijokxgddfzejucr72i4 + '@typescript-eslint/parser': 5.62.0_sf2ha5dxxfjuf3a4egfvu5wr24 + '@umijs/lint': 4.0.78_igsqdvhtnoc4fddledok52lyua + '@vitejs/plugin-react': 4.0.4_vite@4.4.9 + autoprefixer: 10.4.15_postcss@8.4.28 + chalk: 5.3.0 conventional-changelog-cli: 3.0.0 - cssnano: 6.0.1_postcss@8.4.26 - dumi: 2.2.1_6vmw36hiqpnrq6vph2qfodiphm - enquirer: 2.3.6 - eslint: 8.41.0 - eslint-config-prettier: 8.8.0_eslint@8.41.0 - eslint-plugin-prettier: 4.2.1_xcqkel4mpum3npntysob2xmn54 - esno: 0.16.3 - execa: 7.1.1 - father: 4.2.3_@types+node@16.18.34 + cssnano: 6.0.1_postcss@8.4.28 + dumi: 2.2.6_5a6klyh4k4rnniv7alg3hozlqy + enquirer: 2.4.1 + eslint: 8.47.0 + eslint-config-prettier: 9.0.0_eslint@8.47.0 + eslint-plugin-prettier: 5.0.0_uyvdvlpviyvawi4o4rvt2srziy + esno: 0.17.0 + execa: 8.0.1 + father: 4.3.1_@types+node@20.5.6 fs-extra: 11.1.1 - gh-pages: 5.0.0 + gh-pages: 6.0.0 husky: 8.0.3 - lint-staged: 13.2.2_enquirer@2.3.6 - npm-check-updates: 16.10.12 - postcss: 8.4.26 - postcss-cli: 10.1.0_postcss@8.4.26 - postcss-merge-rules-plus: 2.0.0_postcss@8.4.26 - prettier: 2.8.8 - prettier-plugin-organize-imports: 3.2.2_dyixtp4kk4c7jiqt66igkf6jh4 - prettier-plugin-packagejson: 2.4.3_prettier@2.8.8 - react-scripts: 5.0.1_zidcde6s34xchjgatwaruzvysq - rollup: 3.23.0 - rollup-plugin-dts: 5.3.0_7m3vutr5n3ciruqg64geoeghpq - rollup-plugin-typescript2: 0.34.1_7m3vutr5n3ciruqg64geoeghpq + lint-staged: 14.0.1_enquirer@2.4.1 + npm-check-updates: 16.13.1 + postcss: 8.4.28 + postcss-cli: 10.1.0_postcss@8.4.28 + postcss-merge-rules-plus: 2.0.0_postcss@8.4.28 + prettier: 3.0.2 + prettier-plugin-organize-imports: 3.2.3_ryks3bcd2xrdaswy3gfjyoetha + prettier-plugin-packagejson: 2.4.5_prettier@3.0.2 + react-scripts: 5.0.1_nywitjp2ymwqnfytiuchkuqa5e + rollup: 3.28.1 + rollup-plugin-dts: 6.0.0_4pxs67mpxk7q3ijwvzb3ziuu7a + rollup-plugin-typescript2: 0.35.0_4pxs67mpxk7q3ijwvzb3ziuu7a rxjs: 7.8.1 - sass: 1.62.1 - serve: 14.2.0 - stylelint: 15.7.0 - stylelint-config-prettier: 9.0.5_stylelint@15.7.0 - stylelint-config-standard: 33.0.0_stylelint@15.7.0 - stylelint-config-standard-scss: 9.0.0_csuvv2ofmytdi4f2mfn763azyy - stylelint-order: 6.0.3_stylelint@15.7.0 - stylelint-scss: 5.0.1_stylelint@15.7.0 - tsc-alias: 1.8.6 - typescript: 5.1.6 - vite: 4.3.9_ry4qyapxqh4lizdioe23q4ynly + sass: 1.66.1 + serve: 14.2.1 + stylelint: 15.10.3 + stylelint-config-prettier: 9.0.5_stylelint@15.10.3 + stylelint-config-standard: 34.0.0_stylelint@15.10.3 + stylelint-config-standard-scss: 10.0.0_7d3mf2kza32tdlv7dc7dltorq4 + stylelint-order: 6.0.3_stylelint@15.10.3 + stylelint-scss: 5.1.0_stylelint@15.10.3 + tsc-alias: 1.8.7 + typescript: 5.2.2 + vite: 4.4.9_qlrdcraoafkf3ts4i7jojdzbye yalc: 1.0.0-pre.53 internal/playground: @@ -169,8 +169,13 @@ importers: packages: - /@adobe/css-tools/4.2.0: - resolution: {integrity: sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==} + /@aashutoshrathi/word-wrap/1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@adobe/css-tools/4.3.1: + resolution: {integrity: sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==} dev: true /@alloc/quick-lru/5.2.0: @@ -203,7 +208,7 @@ packages: '@emotion/unitless': 0.7.5 classnames: 2.3.2 csstype: 3.1.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 stylis: 4.2.0 @@ -272,6 +277,14 @@ packages: '@babel/highlight': 7.22.5 dev: true + /@babel/code-frame/7.22.10: + resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.10 + chalk: 2.4.2 + dev: true + /@babel/code-frame/7.22.5: resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} @@ -289,20 +302,25 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/compat-data/7.22.9: + resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/core/7.21.0: resolution: {integrity: sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.3 - '@babel/helper-compilation-targets': 7.22.1_@babel+core@7.21.0 - '@babel/helper-module-transforms': 7.22.1 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.21.0 + '@babel/helper-module-transforms': 7.22.5 '@babel/helpers': 7.22.3 - '@babel/parser': 7.22.4 - '@babel/template': 7.21.9 - '@babel/traverse': 7.22.4 - '@babel/types': 7.22.4 + '@babel/parser': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -330,26 +348,49 @@ packages: debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 - semver: 6.3.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/core/7.22.11: + resolution: {integrity: sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 + '@babel/helper-module-transforms': 7.22.9_@babel+core@7.22.11 + '@babel/helpers': 7.22.11 + '@babel/parser': 7.22.11 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/eslint-parser/7.19.1_by4wejwpbvx7rwok4n5jgqnouy: + /@babel/eslint-parser/7.19.1_erffllvglgz6k2uoq3qtxzxb24: resolution: {integrity: sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': '>=7.11.0' eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.41.0 + eslint: 8.47.0 eslint-visitor-keys: 2.1.0 semver: 6.3.0 dev: true - /@babel/eslint-parser/7.19.1_tiv66jdsh7ton7arir2bik3glm: + /@babel/eslint-parser/7.19.1_q5edd4sv6w2sxprkr2xie3kdmy: resolution: {integrity: sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -358,16 +399,26 @@ packages: dependencies: '@babel/core': 7.21.0 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.41.0 + eslint: 8.47.0 eslint-visitor-keys: 2.1.0 semver: 6.3.0 dev: true + /@babel/generator/7.22.10: + resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.11 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: true + /@babel/generator/7.22.3: resolution: {integrity: sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.4 + '@babel/types': 7.22.11 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 @@ -377,7 +428,7 @@ packages: resolution: {integrity: sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 @@ -387,35 +438,32 @@ packages: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-annotate-as-pure/7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-builder-binary-assignment-operator-visitor/7.22.5: resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true - /@babel/helper-compilation-targets/7.22.1_@babel+core@7.21.0: - resolution: {integrity: sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==} + /@babel/helper-compilation-targets/7.22.10: + resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.22.3 - '@babel/core': 7.21.0 - '@babel/helper-validator-option': 7.21.0 - browserslist: 4.21.7 + '@babel/compat-data': 7.22.9 + '@babel/helper-validator-option': 7.22.5 + browserslist: 4.21.10 lru-cache: 5.1.1 - semver: 6.3.0 + semver: 6.3.1 dev: true /@babel/helper-compilation-targets/7.22.1_@babel+core@7.22.1: @@ -427,32 +475,32 @@ packages: '@babel/compat-data': 7.22.3 '@babel/core': 7.22.1 '@babel/helper-validator-option': 7.21.0 - browserslist: 4.21.7 + browserslist: 4.21.10 lru-cache: 5.1.1 - semver: 6.3.0 + semver: 6.3.1 dev: true - /@babel/helper-compilation-targets/7.22.5_@babel+core@7.22.1: + /@babel/helper-compilation-targets/7.22.5_@babel+core@7.21.0: resolution: {integrity: sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.22.5 - '@babel/core': 7.22.1 + '@babel/core': 7.21.0 '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.7 + browserslist: 4.21.10 lru-cache: 5.1.1 - semver: 6.3.0 + semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin/7.22.5_@babel+core@7.22.1: + /@babel/helper-create-class-features-plugin/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 @@ -460,36 +508,36 @@ packages: '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-replace-supers': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.5 - semver: 6.3.0 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-create-regexp-features-plugin/7.22.5_@babel+core@7.22.1: + /@babel/helper-create-regexp-features-plugin/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 - semver: 6.3.0 + semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider/0.4.0_@babel+core@7.22.1: + /@babel/helper-define-polyfill-provider/0.4.0_@babel+core@7.22.11: resolution: {integrity: sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==} peerDependencies: '@babel/core': ^7.4.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.2 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true @@ -508,8 +556,8 @@ packages: resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.21.9 - '@babel/types': 7.22.5 + '@babel/template': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-function-name/7.22.5: @@ -517,42 +565,42 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.5 - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-hoist-variables/7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-member-expression-to-functions/7.22.5: resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-module-imports/7.21.4: resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-module-imports/7.22.5: resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-module-transforms/7.22.1: @@ -564,9 +612,9 @@ packages: '@babel/helper-simple-access': 7.21.5 '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.22.5 - '@babel/template': 7.21.9 - '@babel/traverse': 7.22.4 - '@babel/types': 7.22.4 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 transitivePeerDependencies: - supports-color dev: true @@ -581,22 +629,44 @@ packages: '@babel/helper-split-export-declaration': 7.22.5 '@babel/helper-validator-identifier': 7.22.5 '@babel/template': 7.22.5 - '@babel/traverse': 7.22.5 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-optimise-call-expression/7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + /@babel/helper-module-transforms/7.22.9: + resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/types': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.5 dev: true - /@babel/helper-plugin-utils/7.21.5: - resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==} + /@babel/helper-module-transforms/7.22.9_@babel+core@7.22.11: + resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.5 + dev: true + + /@babel/helper-optimise-call-expression/7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.11 dev: true /@babel/helper-plugin-utils/7.22.5: @@ -604,17 +674,17 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator/7.22.5_@babel+core@7.22.1: + /@babel/helper-remap-async-to-generator/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-wrap-function': 7.22.5 - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 transitivePeerDependencies: - supports-color dev: true @@ -627,8 +697,8 @@ packages: '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/template': 7.22.5 - '@babel/traverse': 7.22.5 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 transitivePeerDependencies: - supports-color dev: true @@ -637,35 +707,42 @@ packages: resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-simple-access/7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-skip-transparent-expression-wrappers/7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@babel/helper-split-export-declaration/7.22.5: resolution: {integrity: sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 + dev: true + + /@babel/helper-split-export-declaration/7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.11 dev: true /@babel/helper-string-parser/7.21.5: @@ -699,8 +776,19 @@ packages: dependencies: '@babel/helper-function-name': 7.22.5 '@babel/template': 7.22.5 - '@babel/traverse': 7.22.5 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers/7.22.11: + resolution: {integrity: sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 transitivePeerDependencies: - supports-color dev: true @@ -709,13 +797,22 @@ packages: resolution: {integrity: sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.21.9 - '@babel/traverse': 7.22.4 - '@babel/types': 7.22.4 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 transitivePeerDependencies: - supports-color dev: true + /@babel/highlight/7.22.10: + resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + /@babel/highlight/7.22.5: resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} engines: {node: '>=6.9.0'} @@ -725,12 +822,20 @@ packages: js-tokens: 4.0.0 dev: true + /@babel/parser/7.22.11: + resolution: {integrity: sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.11 + dev: true + /@babel/parser/7.22.4: resolution: {integrity: sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.4 + '@babel/types': 7.22.11 dev: true /@babel/parser/7.22.5: @@ -738,139 +843,139 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.22.5_@babel+core@7.22.1: + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.22.5_@babel+core@7.22.1: + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.22.5_@babel+core@7.22.1 + '@babel/plugin-transform-optional-chaining': 7.22.5_@babel+core@7.22.11 dev: true - /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.22.1: + /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.22.11: resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-decorators/7.22.5_@babel+core@7.22.1: + /@babel/plugin-proposal-decorators/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-h8hlezQ4dl6ixodgXkH8lUfcD7x+WAuIqPUjwGoItynrXOAv4a4Tci1zA/qjzQjjcl0v3QpLdc2LM6ZACQuY7A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.5 - '@babel/plugin-syntax-decorators': 7.22.5_@babel+core@7.22.1 + '@babel/plugin-syntax-decorators': 7.22.5_@babel+core@7.22.11 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.22.1: + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.22.11: resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.1 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.11 dev: true - /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.22.1: + /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.22.11: resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.1 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.11 dev: true - /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.22.1: + /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.22.11: resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.1 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.11 dev: true - /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.22.1: + /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.22.11: resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-private-property-in-object/7.21.0-placeholder-for-preset-env.2_@babel+core@7.22.1: + /@babel/plugin-proposal-private-property-in-object/7.21.0-placeholder-for-preset-env.2_@babel+core@7.22.11: resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 dev: true - /@babel/plugin-proposal-private-property-in-object/7.21.11_@babel+core@7.22.1: + /@babel/plugin-proposal-private-property-in-object/7.21.11_@babel+core@7.22.11: resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.1 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.11 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.22.1: + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.22.11: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -891,6 +996,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.22.11: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-bigint/7.8.3: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: @@ -908,6 +1022,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.22.11: + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-class-properties/7.12.13: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: @@ -925,71 +1048,80 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.22.1: + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.22.11: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.22.11: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-decorators/7.22.5_@babel+core@7.22.1: + /@babel/plugin-syntax-decorators/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-avpUOBS7IU6al8MmF1XpAyj9QYeLPuSDJI5D4pVMSMdL7xQokKqJPYQC67RCT0aCTashUXPiGwMJ0DEXXCEmMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.22.1: + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.22.11: resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.22.1: + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.22.11: resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow/7.22.5_@babel+core@7.22.1: + /@babel/plugin-syntax-flow/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions/7.22.5_@babel+core@7.22.1: + /@babel/plugin-syntax-import-assertions/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes/7.22.5_@babel+core@7.22.1: + /@babel/plugin-syntax-import-attributes/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1010,6 +1142,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.22.11: + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-json-strings/7.8.3: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: @@ -1027,13 +1168,22 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx/7.22.5_@babel+core@7.22.1: + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.22.11: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1054,6 +1204,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.22.11: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: @@ -1071,6 +1230,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.22.11: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-numeric-separator/7.10.4: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: @@ -1088,6 +1256,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.22.11: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-object-rest-spread/7.8.3: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: @@ -1105,6 +1282,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.22.11: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-optional-catch-binding/7.8.3: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: @@ -1122,6 +1308,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.22.11: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-optional-chaining/7.8.3: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: @@ -1139,13 +1334,22 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.22.1: + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.22.11: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.22.11: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1168,294 +1372,302 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript/7.22.5_@babel+core@7.22.1: + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.22.11: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex/7.18.6_@babel+core@7.22.1: + /@babel/plugin-syntax-unicode-sets-regex/7.18.6_@babel+core@7.22.11: resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-arrow-functions/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-async-generator-functions/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.1 + '@babel/helper-remap-async-to-generator': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.11 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-async-to-generator/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-async-to-generator/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.5_@babel+core@7.22.1 + '@babel/helper-remap-async-to-generator': 7.22.5_@babel+core@7.22.11 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-block-scoped-functions/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-block-scoped-functions/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-block-scoping/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-class-properties/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-class-static-block/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-class-static-block/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.22.1 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.22.11 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-classes/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-classes/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.1 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-computed-properties/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-computed-properties/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.5 dev: true - /@babel/plugin-transform-destructuring/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-destructuring/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-dotall-regex/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-duplicate-keys/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-dynamic-import/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.22.1 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.22.11 dev: true - /@babel/plugin-transform-exponentiation-operator/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-exponentiation-operator/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-export-namespace-from/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.22.1 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.22.11 dev: true - /@babel/plugin-transform-flow-strip-types/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-flow-strip-types/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.22.5_@babel+core@7.22.1 + '@babel/plugin-syntax-flow': 7.22.5_@babel+core@7.22.11 dev: true - /@babel/plugin-transform-for-of/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-for-of/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-function-name/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-function-name': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-json-strings/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.1 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.11 dev: true - /@babel/plugin-transform-literals/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-literals/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-logical-assignment-operators/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.1 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.11 dev: true - /@babel/plugin-transform-member-expression-literals/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-member-expression-literals/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-modules-amd/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-module-transforms': 7.22.5 + '@babel/core': 7.22.11 + '@babel/helper-module-transforms': 7.22.9_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-transform-modules-commonjs/7.21.2: @@ -1464,549 +1676,541 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-module-transforms': 7.22.5 + '@babel/helper-module-transforms': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 - transitivePeerDependencies: - - supports-color dev: true - /@babel/plugin-transform-modules-commonjs/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-modules-commonjs/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-module-transforms': 7.22.5 + '@babel/core': 7.22.11 + '@babel/helper-module-transforms': 7.22.9_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 - transitivePeerDependencies: - - supports-color dev: true - /@babel/plugin-transform-modules-systemjs/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-modules-systemjs/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.22.5 + '@babel/helper-module-transforms': 7.22.9_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.22.5 - transitivePeerDependencies: - - supports-color + '@babel/helper-validator-identifier': 7.22.5 dev: true - /@babel/plugin-transform-modules-umd/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-modules-umd/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-module-transforms': 7.22.5 + '@babel/core': 7.22.11 + '@babel/helper-module-transforms': 7.22.9_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 - transitivePeerDependencies: - - supports-color dev: true - /@babel/plugin-transform-named-capturing-groups-regex/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-named-capturing-groups-regex/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-new-target/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-nullish-coalescing-operator/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.1 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.11 dev: true - /@babel/plugin-transform-numeric-separator/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-numeric-separator/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.1 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.11 dev: true - /@babel/plugin-transform-object-rest-spread/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-object-rest-spread/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.22.5 - '@babel/core': 7.22.1 - '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.1 + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.11 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.1 - '@babel/plugin-transform-parameters': 7.22.5_@babel+core@7.22.1 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-transform-parameters': 7.22.5_@babel+core@7.22.11 dev: true - /@babel/plugin-transform-object-super/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-object-super/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.22.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-optional-catch-binding/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-optional-catch-binding/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.1 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.11 dev: true - /@babel/plugin-transform-optional-chaining/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-optional-chaining/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.1 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.11 dev: true - /@babel/plugin-transform-parameters/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-parameters/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-private-methods/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-private-property-in-object/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-private-property-in-object/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.1 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.11 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-property-literals/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-property-literals/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-constant-elements/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-react-constant-elements/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-display-name/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-react-display-name/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-development/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-react-jsx-development/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/plugin-transform-react-jsx': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/plugin-transform-react-jsx': 7.22.5_@babel+core@7.22.11 dev: true - /@babel/plugin-transform-react-jsx-self/7.21.0_@babel+core@7.22.1: - resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==} + /@babel/plugin-transform-react-jsx-self/7.22.5_@babel+core@7.22.11: + resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.22.1: - resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} + /@babel/plugin-transform-react-jsx-source/7.22.5_@babel+core@7.22.11: + resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-react-jsx/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.1 - '@babel/types': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.11 + '@babel/types': 7.22.11 dev: true - /@babel/plugin-transform-react-pure-annotations/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-react-pure-annotations/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-regenerator/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.1 dev: true - /@babel/plugin-transform-reserved-words/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-reserved-words/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-runtime/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-runtime/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-bg4Wxd1FWeFx3daHFTWk1pkSWK/AyQuiyAoeZAOkAOUBjnZPH6KT7eMxouV47tQ6hl6ax2zyAWBdWZXbrvXlaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.3_@babel+core@7.22.1 - babel-plugin-polyfill-corejs3: 0.8.1_@babel+core@7.22.1 - babel-plugin-polyfill-regenerator: 0.5.0_@babel+core@7.22.1 - semver: 6.3.0 + babel-plugin-polyfill-corejs2: 0.4.3_@babel+core@7.22.11 + babel-plugin-polyfill-corejs3: 0.8.1_@babel+core@7.22.11 + babel-plugin-polyfill-regenerator: 0.5.0_@babel+core@7.22.11 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-shorthand-properties/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-shorthand-properties/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-spread/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-sticky-regex/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-template-literals/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-typeof-symbol/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typescript/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-typescript/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.22.5_@babel+core@7.22.1 + '@babel/plugin-syntax-typescript': 7.22.5_@babel+core@7.22.11 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-unicode-escapes/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-unicode-escapes/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-unicode-property-regex/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-unicode-regex/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex/7.22.5_@babel+core@7.22.1: + /@babel/plugin-transform-unicode-sets-regex/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.11 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env/7.22.5_@babel+core@7.22.1: + /@babel/preset-env/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.22.5 - '@babel/core': 7.22.1 - '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2_@babel+core@7.22.1 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.1 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.22.1 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.22.1 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.22.1 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.22.1 - '@babel/plugin-syntax-import-assertions': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-syntax-import-attributes': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.22.1 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.1 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.1 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.1 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.1 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.1 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.1 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.1 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.1 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.22.1 - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6_@babel+core@7.22.1 - '@babel/plugin-transform-arrow-functions': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-async-generator-functions': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-async-to-generator': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-block-scoped-functions': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-block-scoping': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-class-properties': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-class-static-block': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-classes': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-computed-properties': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-destructuring': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-dotall-regex': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-duplicate-keys': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-dynamic-import': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-exponentiation-operator': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-export-namespace-from': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-for-of': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-function-name': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-json-strings': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-literals': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-logical-assignment-operators': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-member-expression-literals': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-modules-amd': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-modules-commonjs': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-modules-systemjs': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-modules-umd': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-new-target': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-numeric-separator': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-object-rest-spread': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-object-super': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-optional-catch-binding': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-optional-chaining': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-parameters': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-private-methods': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-private-property-in-object': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-property-literals': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-regenerator': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-reserved-words': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-shorthand-properties': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-spread': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-sticky-regex': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-template-literals': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-typeof-symbol': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-unicode-escapes': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-unicode-property-regex': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-unicode-regex': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-unicode-sets-regex': 7.22.5_@babel+core@7.22.1 - '@babel/preset-modules': 0.1.5_@babel+core@7.22.1 - '@babel/types': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.3_@babel+core@7.22.1 - babel-plugin-polyfill-corejs3: 0.8.1_@babel+core@7.22.1 - babel-plugin-polyfill-regenerator: 0.5.0_@babel+core@7.22.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2_@babel+core@7.22.11 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.11 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.22.11 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.22.11 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-import-assertions': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-syntax-import-attributes': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.22.11 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.11 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.11 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.11 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.22.11 + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6_@babel+core@7.22.11 + '@babel/plugin-transform-arrow-functions': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-async-generator-functions': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-async-to-generator': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-block-scoped-functions': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-block-scoping': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-class-properties': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-class-static-block': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-classes': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-computed-properties': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-destructuring': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-dotall-regex': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-duplicate-keys': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-dynamic-import': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-exponentiation-operator': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-export-namespace-from': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-for-of': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-function-name': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-json-strings': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-literals': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-logical-assignment-operators': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-member-expression-literals': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-modules-amd': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-modules-commonjs': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-modules-systemjs': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-modules-umd': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-new-target': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-numeric-separator': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-object-rest-spread': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-object-super': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-optional-catch-binding': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-optional-chaining': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-parameters': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-private-methods': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-private-property-in-object': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-property-literals': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-regenerator': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-reserved-words': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-shorthand-properties': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-spread': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-sticky-regex': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-template-literals': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-typeof-symbol': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-unicode-escapes': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-unicode-property-regex': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-unicode-regex': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-unicode-sets-regex': 7.22.5_@babel+core@7.22.11 + '@babel/preset-modules': 0.1.5_@babel+core@7.22.11 + '@babel/types': 7.22.11 + babel-plugin-polyfill-corejs2: 0.4.3_@babel+core@7.22.11 + babel-plugin-polyfill-corejs3: 0.8.1_@babel+core@7.22.11 + babel-plugin-polyfill-regenerator: 0.5.0_@babel+core@7.22.11 core-js-compat: 3.31.0 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules/0.1.5_@babel+core@7.22.1: + /@babel/preset-modules/0.1.5_@babel+core@7.22.11: resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.22.1 - '@babel/plugin-transform-dotall-regex': 7.22.5_@babel+core@7.22.1 - '@babel/types': 7.22.5 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.22.11 + '@babel/plugin-transform-dotall-regex': 7.22.5_@babel+core@7.22.11 + '@babel/types': 7.22.11 esutils: 2.0.3 dev: true - /@babel/preset-react/7.22.5_@babel+core@7.22.1: + /@babel/preset-react/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-transform-react-display-name': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-react-jsx': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-react-jsx-development': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-react-pure-annotations': 7.22.5_@babel+core@7.22.1 + '@babel/plugin-transform-react-display-name': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-react-jsx': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-react-jsx-development': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-react-pure-annotations': 7.22.5_@babel+core@7.22.11 dev: true - /@babel/preset-typescript/7.22.5_@babel+core@7.22.1: + /@babel/preset-typescript/7.22.5_@babel+core@7.22.11: resolution: {integrity: sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-modules-commonjs': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-typescript': 7.22.5_@babel+core@7.22.1 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-modules-commonjs': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-typescript': 7.22.5_@babel+core@7.22.11 transitivePeerDependencies: - supports-color dev: true @@ -2040,32 +2244,50 @@ packages: resolution: {integrity: sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/parser': 7.22.4 - '@babel/types': 7.22.4 + '@babel/code-frame': 7.22.10 + '@babel/parser': 7.22.11 + '@babel/types': 7.22.11 dev: true /@babel/template/7.22.5: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/parser': 7.22.5 - '@babel/types': 7.22.5 + '@babel/code-frame': 7.22.10 + '@babel/parser': 7.22.11 + '@babel/types': 7.22.11 + dev: true + + /@babel/traverse/7.22.11: + resolution: {integrity: sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.22.11 + '@babel/types': 7.22.11 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color dev: true /@babel/traverse/7.22.4: resolution: {integrity: sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.3 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 '@babel/helper-environment-visitor': 7.22.1 '@babel/helper-function-name': 7.21.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.22.4 - '@babel/types': 7.22.4 + '@babel/parser': 7.22.11 + '@babel/types': 7.22.11 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -2076,20 +2298,29 @@ packages: resolution: {integrity: sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.5 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.5 - '@babel/parser': 7.22.5 - '@babel/types': 7.22.5 + '@babel/parser': 7.22.11 + '@babel/types': 7.22.11 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true + /@babel/types/7.22.11: + resolution: {integrity: sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + to-fast-properties: 2.0.0 + dev: true + /@babel/types/7.22.4: resolution: {integrity: sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA==} engines: {node: '>=6.9.0'} @@ -2123,14 +2354,14 @@ packages: dev: true optional: true - /@commitlint/cli/17.6.5: - resolution: {integrity: sha512-3PQrWr/uo6lzF5k7n5QuosCYnzaxP9qGBp3jhWP0Vmsa7XA6wrl9ccPqfQyXpSbQE3zBROVO3TDqgPKe4tfmLQ==} + /@commitlint/cli/17.7.1: + resolution: {integrity: sha512-BCm/AT06SNCQtvFv921iNhudOHuY16LswT0R3OeolVGLk8oP+Rk9TfQfgjH7QPMjhvp76bNqGFEcpKojxUNW1g==} engines: {node: '>=v14'} hasBin: true dependencies: '@commitlint/format': 17.4.4 - '@commitlint/lint': 17.6.5 - '@commitlint/load': 17.5.0 + '@commitlint/lint': 17.7.0 + '@commitlint/load': 17.7.1 '@commitlint/read': 17.5.1 '@commitlint/types': 17.4.4 execa: 5.1.1 @@ -2143,23 +2374,23 @@ packages: - '@swc/wasm' dev: true - /@commitlint/config-conventional/17.6.5: - resolution: {integrity: sha512-Xl9H9KLl86NZm5CYNTNF9dcz1xelE/EbvhWIWcYxG/rn3UWYWdWmmnX2q6ZduNdLFSGbOxzUpIx61j5zxbeXxg==} + /@commitlint/config-conventional/17.7.0: + resolution: {integrity: sha512-iicqh2o6et+9kWaqsQiEYZzfLbtoWv9uZl8kbI8EGfnc0HeGafQBF7AJ0ylN9D/2kj6txltsdyQs8+2fTMwWEw==} engines: {node: '>=v14'} dependencies: - conventional-changelog-conventionalcommits: 5.0.0 + conventional-changelog-conventionalcommits: 6.1.0 dev: true - /@commitlint/config-validator/17.4.4: - resolution: {integrity: sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==} + /@commitlint/config-validator/17.6.7: + resolution: {integrity: sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ==} engines: {node: '>=v14'} dependencies: '@commitlint/types': 17.4.4 ajv: 8.12.0 dev: true - /@commitlint/ensure/17.4.4: - resolution: {integrity: sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g==} + /@commitlint/ensure/17.6.7: + resolution: {integrity: sha512-mfDJOd1/O/eIb/h4qwXzUxkmskXDL9vNPnZ4AKYKiZALz4vHzwMxBSYtyL2mUIDeU9DRSpEUins8SeKtFkYHSw==} engines: {node: '>=v14'} dependencies: '@commitlint/types': 17.4.4 @@ -2183,42 +2414,42 @@ packages: chalk: 4.1.2 dev: true - /@commitlint/is-ignored/17.6.5: - resolution: {integrity: sha512-CQvAPt9gX7cuUbMrIaIMKczfWJqqr6m8IlJs0F2zYwyyMTQ87QMHIj5jJ5HhOaOkaj6dvTMVGx8Dd1I4xgUuoQ==} + /@commitlint/is-ignored/17.7.0: + resolution: {integrity: sha512-043rA7m45tyEfW7Zv2vZHF++176MLHH9h70fnPoYlB1slKBeKl8BwNIlnPg4xBdRBVNPaCqvXxWswx2GR4c9Hw==} engines: {node: '>=v14'} dependencies: '@commitlint/types': 17.4.4 - semver: 7.5.0 + semver: 7.5.4 dev: true - /@commitlint/lint/17.6.5: - resolution: {integrity: sha512-BSJMwkE4LWXrOsiP9KoHG+/heSDfvOL/Nd16+ojTS/DX8HZr8dNl8l3TfVr/d/9maWD8fSegRGtBtsyGuugFrw==} + /@commitlint/lint/17.7.0: + resolution: {integrity: sha512-TCQihm7/uszA5z1Ux1vw+Nf3yHTgicus/+9HiUQk+kRSQawByxZNESeQoX9ujfVd3r4Sa+3fn0JQAguG4xvvbA==} engines: {node: '>=v14'} dependencies: - '@commitlint/is-ignored': 17.6.5 - '@commitlint/parse': 17.6.5 - '@commitlint/rules': 17.6.5 + '@commitlint/is-ignored': 17.7.0 + '@commitlint/parse': 17.7.0 + '@commitlint/rules': 17.7.0 '@commitlint/types': 17.4.4 dev: true - /@commitlint/load/17.5.0: - resolution: {integrity: sha512-l+4W8Sx4CD5rYFsrhHH8HP01/8jEP7kKf33Xlx2Uk2out/UKoKPYMOIRcDH5ppT8UXLMV+x6Wm5osdRKKgaD1Q==} + /@commitlint/load/17.7.1: + resolution: {integrity: sha512-S/QSOjE1ztdogYj61p6n3UbkUvweR17FQ0zDbNtoTLc+Hz7vvfS7ehoTMQ27hPSjVBpp7SzEcOQu081RLjKHJQ==} engines: {node: '>=v14'} dependencies: - '@commitlint/config-validator': 17.4.4 + '@commitlint/config-validator': 17.6.7 '@commitlint/execute-rule': 17.4.0 - '@commitlint/resolve-extends': 17.4.4 + '@commitlint/resolve-extends': 17.6.7 '@commitlint/types': 17.4.4 - '@types/node': 16.18.34 + '@types/node': 20.4.7 chalk: 4.1.2 - cosmiconfig: 8.1.3 - cosmiconfig-typescript-loader: 4.3.0_bxbo7oo5ajqr2yfir3mraipcru + cosmiconfig: 8.2.0 + cosmiconfig-typescript-loader: 4.3.0_gbiyrvx3k7fzis77ggo7qanwci lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 resolve-from: 5.0.0 - ts-node: 10.9.1_sxfyhp6doxyyy5b3aojkgj4teu - typescript: 5.1.6 + ts-node: 10.9.1_jjsxl3z4jzcyq5yjro7btxsuqe + typescript: 5.2.2 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -2229,13 +2460,13 @@ packages: engines: {node: '>=v14'} dev: true - /@commitlint/parse/17.6.5: - resolution: {integrity: sha512-0zle3bcn1Hevw5Jqpz/FzEWNo2KIzUbc1XyGg6WrWEoa6GH3A1pbqNF6MvE6rjuy6OY23c8stWnb4ETRZyN+Yw==} + /@commitlint/parse/17.7.0: + resolution: {integrity: sha512-dIvFNUMCUHqq5Abv80mIEjLVfw8QNuA4DS7OWip4pcK/3h5wggmjVnlwGCDvDChkw2TjK1K6O+tAEV78oxjxag==} engines: {node: '>=v14'} dependencies: '@commitlint/types': 17.4.4 - conventional-changelog-angular: 5.0.13 - conventional-commits-parser: 3.2.4 + conventional-changelog-angular: 6.0.0 + conventional-commits-parser: 4.0.0 dev: true /@commitlint/read/17.5.1: @@ -2249,11 +2480,11 @@ packages: minimist: 1.2.8 dev: true - /@commitlint/resolve-extends/17.4.4: - resolution: {integrity: sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==} + /@commitlint/resolve-extends/17.6.7: + resolution: {integrity: sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg==} engines: {node: '>=v14'} dependencies: - '@commitlint/config-validator': 17.4.4 + '@commitlint/config-validator': 17.6.7 '@commitlint/types': 17.4.4 import-fresh: 3.3.0 lodash.mergewith: 4.6.2 @@ -2261,11 +2492,11 @@ packages: resolve-global: 1.0.0 dev: true - /@commitlint/rules/17.6.5: - resolution: {integrity: sha512-uTB3zSmnPyW2qQQH+Dbq2rekjlWRtyrjDo4aLFe63uteandgkI+cc0NhhbBAzcXShzVk0qqp8SlkQMu0mgHg/A==} + /@commitlint/rules/17.7.0: + resolution: {integrity: sha512-J3qTh0+ilUE5folSaoK91ByOb8XeQjiGcdIdiB/8UT1/Rd1itKo0ju/eQVGyFzgTMYt8HrDJnGTmNWwcMR1rmA==} engines: {node: '>=v14'} dependencies: - '@commitlint/ensure': 17.4.4 + '@commitlint/ensure': 17.6.7 '@commitlint/message': 17.4.2 '@commitlint/to-lines': 17.4.0 '@commitlint/types': 17.4.4 @@ -2298,136 +2529,136 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@csstools/css-parser-algorithms/2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq: - resolution: {integrity: sha512-9BoQ/jSrPq4vv3b9jjLW+PNNv56KlDH5JMx5yASSNrCtvq70FCNZUjXRvbCeR9hYj9ZyhURtqpU/RFIgg6kiOw==} + /@csstools/css-parser-algorithms/2.3.1_2iaba7mwn2eejye7evc5orckwy: + resolution: {integrity: sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-tokenizer': ^2.1.1 + '@csstools/css-tokenizer': ^2.2.0 dependencies: - '@csstools/css-tokenizer': 2.1.1 + '@csstools/css-tokenizer': 2.2.0 dev: true - /@csstools/css-tokenizer/2.1.1: - resolution: {integrity: sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==} + /@csstools/css-tokenizer/2.2.0: + resolution: {integrity: sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==} engines: {node: ^14 || ^16 || >=18} dev: true - /@csstools/media-query-list-parser/2.1.0_g5wmdbqtzzaodrrmvxcit5gfji: - resolution: {integrity: sha512-MXkR+TeaS2q9IkpyO6jVCdtA/bfpABJxIrfkLswThFN8EZZgI2RfAHhm6sDNDuYV25d5+b8Lj1fpTccIcSLPsQ==} + /@csstools/media-query-list-parser/2.1.4_qf4qltc2k6xikzxwdc2htbpiiq: + resolution: {integrity: sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.1.1 - '@csstools/css-tokenizer': ^2.1.1 + '@csstools/css-parser-algorithms': ^2.3.1 + '@csstools/css-tokenizer': ^2.2.0 dependencies: - '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq - '@csstools/css-tokenizer': 2.1.1 + '@csstools/css-parser-algorithms': 2.3.1_2iaba7mwn2eejye7evc5orckwy + '@csstools/css-tokenizer': 2.2.0 dev: true /@csstools/normalize.css/12.0.0: resolution: {integrity: sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==} dev: true - /@csstools/postcss-color-function/1.1.1_postcss@8.4.26: + /@csstools/postcss-color-function/1.1.1_postcss@8.4.28: resolution: {integrity: sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.26 - postcss: 8.4.26 + '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.28 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-font-format-keywords/1.0.1_postcss@8.4.26: + /@csstools/postcss-font-format-keywords/1.0.1_postcss@8.4.28: resolution: {integrity: sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-hwb-function/1.0.2_postcss@8.4.26: + /@csstools/postcss-hwb-function/1.0.2_postcss@8.4.28: resolution: {integrity: sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-ic-unit/1.0.1_postcss@8.4.26: + /@csstools/postcss-ic-unit/1.0.1_postcss@8.4.28: resolution: {integrity: sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.26 - postcss: 8.4.26 + '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.28 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-is-pseudo-class/2.0.7_postcss@8.4.26: + /@csstools/postcss-is-pseudo-class/2.0.7_postcss@8.4.28: resolution: {integrity: sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: '@csstools/selector-specificity': 2.2.0_c3vcbepomgmxc74cgtawpgpkyi - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /@csstools/postcss-normalize-display-values/1.0.1_postcss@8.4.26: + /@csstools/postcss-normalize-display-values/1.0.1_postcss@8.4.28: resolution: {integrity: sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-oklab-function/1.1.1_postcss@8.4.26: + /@csstools/postcss-oklab-function/1.1.1_postcss@8.4.28: resolution: {integrity: sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.26 - postcss: 8.4.26 + '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.28 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-progressive-custom-properties/1.3.0_postcss@8.4.26: + /@csstools/postcss-progressive-custom-properties/1.3.0_postcss@8.4.28: resolution: {integrity: sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.3 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-stepped-value-functions/1.0.1_postcss@8.4.26: + /@csstools/postcss-stepped-value-functions/1.0.1_postcss@8.4.28: resolution: {integrity: sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-unset-value/1.0.2_postcss@8.4.26: + /@csstools/postcss-unset-value/1.0.2_postcss@8.4.28: resolution: {integrity: sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true /@csstools/selector-specificity/2.2.0_c3vcbepomgmxc74cgtawpgpkyi: @@ -2439,6 +2670,15 @@ packages: postcss-selector-parser: 6.0.13 dev: true + /@csstools/selector-specificity/3.0.0_c3vcbepomgmxc74cgtawpgpkyi: + resolution: {integrity: sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 + dependencies: + postcss-selector-parser: 6.0.13 + dev: true + /@ctrl/tinycolor/3.6.0: resolution: {integrity: sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==} engines: {node: '>=10'} @@ -2492,7 +2732,7 @@ packages: resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} dev: true - /@emotion/react/11.11.1_bfoz4c5kom3f237nig75ykjhhy: + /@emotion/react/11.11.1_gq4reeurwxuj4hvyerswzzqthy: resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==} peerDependencies: '@types/react': '*' @@ -2508,7 +2748,7 @@ packages: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1_react@18.2.0 '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.2.7 + '@types/react': 18.2.21 hoist-non-react-statics: 3.3.2 react: 18.2.0 dev: true @@ -2596,6 +2836,15 @@ packages: dev: true optional: true + /@esbuild/android-arm/0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm64/0.17.19: resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -2605,6 +2854,15 @@ packages: dev: true optional: true + /@esbuild/android-arm64/0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-x64/0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -2614,6 +2872,15 @@ packages: dev: true optional: true + /@esbuild/android-x64/0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + 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'} @@ -2623,6 +2890,15 @@ packages: dev: true optional: true + /@esbuild/darwin-arm64/0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + 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'} @@ -2632,6 +2908,15 @@ packages: dev: true optional: true + /@esbuild/darwin-x64/0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + 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'} @@ -2641,6 +2926,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-arm64/0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + 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'} @@ -2650,6 +2944,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-x64/0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm/0.17.19: resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -2659,6 +2962,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm/0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm64/0.17.19: resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -2668,6 +2980,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm64/0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ia32/0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -2677,6 +2998,15 @@ packages: dev: true optional: true + /@esbuild/linux-ia32/0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64/0.17.19: resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} @@ -2686,6 +3016,15 @@ packages: dev: true optional: true + /@esbuild/linux-loong64/0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + 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'} @@ -2695,6 +3034,15 @@ packages: dev: true optional: true + /@esbuild/linux-mips64el/0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + 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'} @@ -2704,6 +3052,15 @@ packages: dev: true optional: true + /@esbuild/linux-ppc64/0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + 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'} @@ -2713,6 +3070,15 @@ packages: dev: true optional: true + /@esbuild/linux-riscv64/0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + 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'} @@ -2722,6 +3088,15 @@ packages: dev: true optional: true + /@esbuild/linux-s390x/0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + 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'} @@ -2731,6 +3106,15 @@ packages: dev: true optional: true + /@esbuild/linux-x64/0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + 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'} @@ -2740,6 +3124,15 @@ packages: dev: true optional: true + /@esbuild/netbsd-x64/0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + 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'} @@ -2749,6 +3142,15 @@ packages: dev: true optional: true + /@esbuild/openbsd-x64/0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + 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'} @@ -2758,17 +3160,44 @@ packages: dev: true optional: true + /@esbuild/sunos-x64/0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + 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'} - cpu: [arm64] + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + 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'} + cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@esbuild/win32-ia32/0.17.19: - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + /@esbuild/win32-ia32/0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -2785,28 +3214,37 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils/4.4.0_eslint@8.41.0: + /@esbuild/win32-x64/0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils/4.4.0_eslint@8.47.0: resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.41.0 - eslint-visitor-keys: 3.4.1 + eslint: 8.47.0 + eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp/4.5.1: - resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} + /@eslint-community/regexpp/4.7.0: + resolution: {integrity: sha512-+HencqxU7CFJnQb7IKtuNBqS6Yx3Tz4kOL8BJXo+JyeiBm5MEX6pO8onXDkjrkCRlfYXS1Axro15ZjVFe9YgsA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc/2.0.3: - resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} + /@eslint/eslintrc/2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.5.2 + espree: 9.6.1 globals: 13.20.0 ignore: 5.2.4 import-fresh: 3.3.0 @@ -2817,8 +3255,8 @@ packages: - supports-color dev: true - /@eslint/js/8.41.0: - resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==} + /@eslint/js/8.47.0: + resolution: {integrity: sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -2842,21 +3280,21 @@ packages: '@floating-ui/core': 1.3.1 dev: true - /@floating-ui/react-dom-interactions/0.3.1_3dn4rtzgaeqcszdsqodiqukh7y: + /@floating-ui/react-dom-interactions/0.3.1_fcew3xkfv2gjrwrdory2io26am: resolution: {integrity: sha512-tP2KEh7EHJr5hokSBHcPGojb+AorDNUf0NYfZGg/M+FsMvCOOsSEeEF0O1NDfETIzDnpbHnCs0DuvCFhSMSStg==} deprecated: Package renamed to @floating-ui/react dependencies: - '@floating-ui/react-dom': 0.6.3_3dn4rtzgaeqcszdsqodiqukh7y + '@floating-ui/react-dom': 0.6.3_fcew3xkfv2gjrwrdory2io26am aria-hidden: 1.2.3 point-in-polygon: 1.1.0 - use-isomorphic-layout-effect: 1.1.2_g6ftqcdzjknzos3o5hdsspkjtm + use-isomorphic-layout-effect: 1.1.2_6gpsgwozql5zgs2mtrxxpfduxe transitivePeerDependencies: - '@types/react' - react - react-dom dev: true - /@floating-ui/react-dom/0.6.3_3dn4rtzgaeqcszdsqodiqukh7y: + /@floating-ui/react-dom/0.6.3_fcew3xkfv2gjrwrdory2io26am: resolution: {integrity: sha512-hC+pS5D6AgS2wWjbmSQ6UR6Kpy+drvWGJIri6e1EDGADTPsCaa4KzCgmCczHrQeInx9tqs81EyDmbKJYY2swKg==} peerDependencies: react: '>=16.8.0' @@ -2865,7 +3303,7 @@ packages: '@floating-ui/dom': 0.4.5 react: 18.1.0 react-dom: 18.1.0_react@18.1.0 - use-isomorphic-layout-effect: 1.1.2_g6ftqcdzjknzos3o5hdsspkjtm + use-isomorphic-layout-effect: 1.1.2_6gpsgwozql5zgs2mtrxxpfduxe transitivePeerDependencies: - '@types/react' dev: true @@ -2944,7 +3382,7 @@ packages: tslib: 2.5.2 dev: true - /@formatjs/intl/2.9.0_typescript@5.1.6: + /@formatjs/intl/2.9.0_typescript@5.2.2: resolution: {integrity: sha512-Ym0trUoC/VO6wQu4YHa0H1VR2tEixFRmwZgADkDLm7nD+vv1Ob+/88mUAoT0pwvirFqYKgUKEwp1tFepqyqvVA==} peerDependencies: typescript: ^4.7 || 5 @@ -2959,15 +3397,15 @@ packages: '@formatjs/intl-listformat': 7.4.0 intl-messageformat: 10.5.0 tslib: 2.5.2 - typescript: 5.1.6 + typescript: 5.2.2 dev: true /@gar/promisify/1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true - /@humanwhocodes/config-array/0.11.8: - resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + /@humanwhocodes/config-array/0.11.10: + resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -3041,7 +3479,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 chalk: 4.1.2 jest-message-util: 27.5.1 jest-util: 27.5.1 @@ -3053,7 +3491,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/types': 28.1.3 - '@types/node': 16.18.34 + '@types/node': 20.5.6 chalk: 4.1.2 jest-message-util: 28.1.3 jest-util: 28.1.3 @@ -3074,7 +3512,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 @@ -3111,7 +3549,7 @@ packages: dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 jest-mock: 27.5.1 dev: true @@ -3128,7 +3566,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 16.18.34 + '@types/node': 20.5.6 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -3157,7 +3595,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -3240,7 +3678,7 @@ packages: resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@jest/types': 27.5.1 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -3263,7 +3701,7 @@ packages: resolution: {integrity: sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@jest/types': 29.5.0 '@jridgewell/trace-mapping': 0.3.18 babel-plugin-istanbul: 6.1.1 @@ -3288,7 +3726,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 '@types/yargs': 16.0.5 chalk: 4.1.2 dev: true @@ -3300,7 +3738,7 @@ packages: '@jest/schemas': 28.1.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 '@types/yargs': 17.0.24 chalk: 4.1.2 dev: true @@ -3312,7 +3750,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 '@types/yargs': 17.0.24 chalk: 4.1.2 dev: true @@ -3407,32 +3845,32 @@ packages: react: 18.2.0 dev: true - /@microsoft/api-extractor-model/7.26.3_@types+node@16.18.34: - resolution: {integrity: sha512-1Y/JOkaCF5zE6P56saA0yPzEb7ZJwoF2d8fUYdzZY4I0p1gmqGbNk1h9WguvrN5hANg+2CaqcOX0eh+l4SAhJw==} + /@microsoft/api-extractor-model/7.27.5_@types+node@20.5.6: + resolution: {integrity: sha512-9/tBzYMJitR+o+zkPr1lQh2+e8ClcaTF6eZo7vZGDqRt2O5XmXWPbYJZmxyM3wb5at6lfJNEeGZrQXLjsQ0Nbw==} dependencies: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.55.1_@types+node@16.18.34 + '@rushstack/node-core-library': 3.59.6_@types+node@20.5.6 transitivePeerDependencies: - '@types/node' dev: true - /@microsoft/api-extractor/7.34.3_@types+node@16.18.34: - resolution: {integrity: sha512-vXpU+i/MMinVzDxbLo3of1Sx/IS5bwOZl4XrX8YyqNBXFvovEer5ex0wckWumkBErDZtLOMp3zhZfYL3W7h3cg==} + /@microsoft/api-extractor/7.36.3_@types+node@20.5.6: + resolution: {integrity: sha512-u0H6362AQq+r55X8drHx4npgkrCfJnMzRRHfQo8PMNKB8TcBnrTLfXhXWi+xnTM6CzlU/netEN8c4bq581Rnrg==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.26.3_@types+node@16.18.34 + '@microsoft/api-extractor-model': 7.27.5_@types+node@20.5.6 '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.55.1_@types+node@16.18.34 - '@rushstack/rig-package': 0.3.17 - '@rushstack/ts-command-line': 4.13.1 + '@rushstack/node-core-library': 3.59.6_@types+node@20.5.6 + '@rushstack/rig-package': 0.4.0 + '@rushstack/ts-command-line': 4.15.1 colors: 1.2.5 lodash: 4.17.21 resolve: 1.22.2 - semver: 7.3.8 + semver: 7.5.4 source-map: 0.6.1 - typescript: 4.8.4 + typescript: 5.0.4 transitivePeerDependencies: - '@types/node' dev: true @@ -3450,7 +3888,7 @@ packages: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true - /@mxssfd/dumi-theme-antd-style/0.27.5-beta.9_gcc6bjtdpifl4cs2fo2vfujizq: + /@mxssfd/dumi-theme-antd-style/0.27.5-beta.9_kxcc44k6n7qqii7ccc3ncazjkq: resolution: {integrity: sha512-PCxcUlTHBSPRa783BJP/Ng4S6+vw8/pO6iAKDuFWZYmamMLr6u/rfqt5X14afDIIP3ovGQkYDrKGTjV6qhcHTg==} peerDependencies: dumi: ^2.0.0 @@ -3462,11 +3900,11 @@ packages: '@floating-ui/react': 0.24.3_biqbaboplfbrettd7655fr4n2y ahooks: 3.7.8_react@18.2.0 antd: 5.6.3_biqbaboplfbrettd7655fr4n2y - antd-style: 3.3.0_w62cejjhf4h4jc2euum3uv26km + antd-style: 3.3.0_dxcbxq2sfrcuir7lwndpvtjyqy chalk: 4.1.2 chroma-js: 2.4.2 copy-to-clipboard: 3.3.3 - dumi: 2.2.1_6vmw36hiqpnrq6vph2qfodiphm + dumi: 2.2.6_5a6klyh4k4rnniv7alg3hozlqy fast-deep-equal: 3.1.3 lodash: 4.17.21 polished: 4.2.2 @@ -3518,14 +3956,14 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: '@gar/promisify': 1.1.3 - semver: 7.5.1 + semver: 7.5.4 dev: true /@npmcli/fs/3.1.0: resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - semver: 7.5.1 + semver: 7.5.4 dev: true /@npmcli/git/4.1.0: @@ -3538,7 +3976,7 @@ packages: proc-log: 3.0.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.5.1 + semver: 7.5.4 which: 3.0.1 transitivePeerDependencies: - bluebird @@ -3600,7 +4038,7 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 - fast-glob: 3.2.12 + fast-glob: 3.3.1 is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 @@ -3715,7 +4153,7 @@ packages: '@babel/runtime': 7.22.5 '@ctrl/tinycolor': 3.6.0 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -3727,7 +4165,7 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.22.5 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -3748,7 +4186,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -3762,7 +4200,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -3778,7 +4216,7 @@ packages: '@rc-component/portal': 1.1.1_biqbaboplfbrettd7655fr4n2y '@rc-component/trigger': 1.13.4_biqbaboplfbrettd7655fr4n2y classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -3796,7 +4234,7 @@ packages: rc-align: 4.0.15_biqbaboplfbrettd7655fr4n2y rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y rc-resize-observer: 1.3.1_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -3806,7 +4244,7 @@ packages: engines: {node: '>=14'} dev: true - /@rollup/plugin-babel/5.3.1_k3hxcgsuh2bw3lrplgyzu2m55q: + /@rollup/plugin-babel/5.3.1_lnssqozl4dgplk3xebfs3yicbq: resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -3817,13 +4255,13 @@ packages: '@types/babel__core': optional: true dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@babel/helper-module-imports': 7.22.5 '@rollup/pluginutils': 3.1.0_rollup@2.79.1 rollup: 2.79.1 dev: true - /@rollup/plugin-json/6.0.0_rollup@3.23.0: + /@rollup/plugin-json/6.0.0_rollup@3.28.1: resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3832,8 +4270,8 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.23.0 - rollup: 3.23.0 + '@rollup/pluginutils': 5.0.2_rollup@3.28.1 + rollup: 3.28.1 dev: true /@rollup/plugin-node-resolve/11.2.1_rollup@2.79.1: @@ -3881,7 +4319,7 @@ packages: picomatch: 2.3.1 dev: true - /@rollup/pluginutils/5.0.2_rollup@3.23.0: + /@rollup/pluginutils/5.0.2_rollup@3.28.1: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3893,40 +4331,40 @@ packages: '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.23.0 + rollup: 3.28.1 dev: true /@rushstack/eslint-patch/1.3.1: resolution: {integrity: sha512-RkmuBcqiNioeeBKbgzMlOdreUkJfYaSjwgx9XDgGGpjvWgyaxWvDmZVSN9CS6LjEASadhgPv2BcFp+SeouWXXA==} dev: true - /@rushstack/node-core-library/3.55.1_@types+node@16.18.34: - resolution: {integrity: sha512-t/nZHq4/4S3ltpYVyIsbbIqmcZx3qEe3Aaw8tI9B6XRNqCFzPxtoTopqTPTuRn8XqCtoDaSe6uMlnn7YCTu8lQ==} + /@rushstack/node-core-library/3.59.6_@types+node@20.5.6: + resolution: {integrity: sha512-bMYJwNFfWXRNUuHnsE9wMlW/mOB4jIwSUkRKtu02CwZhQdmzMsUbxE0s1xOLwTpNIwlzfW/YT7OnOHgDffLgYg==} peerDependencies: '@types/node': '*' peerDependenciesMeta: '@types/node': optional: true dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 colors: 1.2.5 fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 resolve: 1.22.2 - semver: 7.3.8 + semver: 7.5.4 z-schema: 5.0.5 dev: true - /@rushstack/rig-package/0.3.17: - resolution: {integrity: sha512-nxvAGeIMnHl1LlZSQmacgcRV4y1EYtgcDIrw6KkeVjudOMonlxO482PhDj3LVZEp6L7emSf6YSO2s5JkHlwfZA==} + /@rushstack/rig-package/0.4.0: + resolution: {integrity: sha512-FnM1TQLJYwSiurP6aYSnansprK5l8WUK8VG38CmAaZs29ZeL1msjK0AP1VS4ejD33G0kE/2cpsPsS9jDenBMxw==} dependencies: - resolve: 1.17.0 + resolve: 1.22.2 strip-json-comments: 3.1.1 dev: true - /@rushstack/ts-command-line/4.13.1: - resolution: {integrity: sha512-UTQMRyy/jH1IS2U+6pyzyn9xQ2iMcoUKkTcZUzOP/aaMiKlWLwCTDiBVwhw/M1crDx6apF9CwyjuWO9r1SBdJQ==} + /@rushstack/ts-command-line/4.15.1: + resolution: {integrity: sha512-EL4jxZe5fhb1uVL/P/wQO+Z8Rc8FMiWJ1G7VgnPDvdIt5GVjRfK7vwzder1CZQiX3x0PY6uxENYLNGTFd1InRQ==} dependencies: '@types/argparse': 1.0.38 argparse: 1.0.10 @@ -3934,11 +4372,11 @@ packages: string-argv: 0.3.2 dev: true - /@selderee/plugin-htmlparser2/0.6.0: - resolution: {integrity: sha512-J3jpy002TyBjd4N/p6s+s90eX42H2eRhK3SbsZuvTDv977/E8p2U3zikdiehyJja66do7FlxLomZLPlvl2/xaA==} + /@selderee/plugin-htmlparser2/0.11.0: + resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} dependencies: - domhandler: 4.3.1 - selderee: 0.6.0 + domhandler: 5.0.3 + selderee: 0.11.0 dev: true /@sigstore/protobuf-specs/0.1.0: @@ -3990,16 +4428,16 @@ packages: resolution: {integrity: sha512-3m6C7f8pnR5KXys/Hqx2x6ylnpqOak6HtnZI6T5keEO0yT+E4Spkw37VEbdwuC+2oxmjdgq6YZEgiKX7hM1GmQ==} dev: true - /@stylelint/postcss-css-in-js/0.38.0_62n7cnclcoj24423hvg6um5qgi: + /@stylelint/postcss-css-in-js/0.38.0_klfgn363pvupyvfnt3vpshrnte: resolution: {integrity: sha512-XOz5CAe49kS95p5yRd+DAIWDojTjfmyAQ4bbDlXMdbZTQ5t0ThjSLvWI6JI2uiS7MFurVBkZ6zUqcimzcLTBoQ==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: postcss: '>=7.0.0' postcss-syntax: '>=0.36.2' dependencies: - '@babel/core': 7.22.1 - postcss: 8.4.26 - postcss-syntax: 0.36.2_postcss@8.4.26 + '@babel/core': 7.22.11 + postcss: 8.4.28 + postcss-syntax: 0.36.2_postcss@8.4.28 transitivePeerDependencies: - supports-color dev: true @@ -4018,13 +4456,13 @@ packages: engines: {node: '>=10'} dev: true - /@svgr/babel-plugin-add-jsx-attribute/6.5.1_@babel+core@7.22.1: + /@svgr/babel-plugin-add-jsx-attribute/6.5.1_@babel+core@7.22.11: resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 dev: true /@svgr/babel-plugin-remove-jsx-attribute/5.4.0: @@ -4042,13 +4480,13 @@ packages: engines: {node: '>=10'} dev: true - /@svgr/babel-plugin-replace-jsx-attribute-value/6.5.1_@babel+core@7.22.1: + /@svgr/babel-plugin-replace-jsx-attribute-value/6.5.1_@babel+core@7.22.11: resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 dev: true /@svgr/babel-plugin-svg-dynamic-title/5.4.0: @@ -4056,13 +4494,13 @@ packages: engines: {node: '>=10'} dev: true - /@svgr/babel-plugin-svg-dynamic-title/6.5.1_@babel+core@7.22.1: + /@svgr/babel-plugin-svg-dynamic-title/6.5.1_@babel+core@7.22.11: resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 dev: true /@svgr/babel-plugin-svg-em-dimensions/5.4.0: @@ -4070,13 +4508,13 @@ packages: engines: {node: '>=10'} dev: true - /@svgr/babel-plugin-svg-em-dimensions/6.5.1_@babel+core@7.22.1: + /@svgr/babel-plugin-svg-em-dimensions/6.5.1_@babel+core@7.22.11: resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 dev: true /@svgr/babel-plugin-transform-react-native-svg/5.4.0: @@ -4084,13 +4522,13 @@ packages: engines: {node: '>=10'} dev: true - /@svgr/babel-plugin-transform-react-native-svg/6.5.1_@babel+core@7.22.1: + /@svgr/babel-plugin-transform-react-native-svg/6.5.1_@babel+core@7.22.11: resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 dev: true /@svgr/babel-plugin-transform-svg-component/5.5.0: @@ -4098,13 +4536,13 @@ packages: engines: {node: '>=10'} dev: true - /@svgr/babel-plugin-transform-svg-component/6.5.1_@babel+core@7.22.1: + /@svgr/babel-plugin-transform-svg-component/6.5.1_@babel+core@7.22.11: resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} engines: {node: '>=12'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 dev: true /@svgr/babel-preset/5.5.0: @@ -4121,21 +4559,21 @@ packages: '@svgr/babel-plugin-transform-svg-component': 5.5.0 dev: true - /@svgr/babel-preset/6.5.1_@babel+core@7.22.1: + /@svgr/babel-preset/6.5.1_@babel+core@7.22.11: resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@svgr/babel-plugin-add-jsx-attribute': 6.5.1_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@svgr/babel-plugin-add-jsx-attribute': 6.5.1_@babel+core@7.22.11 '@svgr/babel-plugin-remove-jsx-attribute': 5.4.0 '@svgr/babel-plugin-remove-jsx-empty-expression': 5.0.1 - '@svgr/babel-plugin-replace-jsx-attribute-value': 6.5.1_@babel+core@7.22.1 - '@svgr/babel-plugin-svg-dynamic-title': 6.5.1_@babel+core@7.22.1 - '@svgr/babel-plugin-svg-em-dimensions': 6.5.1_@babel+core@7.22.1 - '@svgr/babel-plugin-transform-react-native-svg': 6.5.1_@babel+core@7.22.1 - '@svgr/babel-plugin-transform-svg-component': 6.5.1_@babel+core@7.22.1 + '@svgr/babel-plugin-replace-jsx-attribute-value': 6.5.1_@babel+core@7.22.11 + '@svgr/babel-plugin-svg-dynamic-title': 6.5.1_@babel+core@7.22.11 + '@svgr/babel-plugin-svg-em-dimensions': 6.5.1_@babel+core@7.22.11 + '@svgr/babel-plugin-transform-react-native-svg': 6.5.1_@babel+core@7.22.11 + '@svgr/babel-plugin-transform-svg-component': 6.5.1_@babel+core@7.22.11 dev: true /@svgr/core/5.5.0: @@ -4153,8 +4591,8 @@ packages: resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.22.1 - '@svgr/babel-preset': 6.5.1_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@svgr/babel-preset': 6.5.1_@babel+core@7.22.11 '@svgr/plugin-jsx': 6.5.1_@svgr+core@6.5.1 camelcase: 6.3.0 cosmiconfig: 7.1.0 @@ -4166,14 +4604,14 @@ packages: resolution: {integrity: sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==} engines: {node: '>=10'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@svgr/hast-util-to-babel-ast/6.5.1: resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} engines: {node: '>=10'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 entities: 4.5.0 dev: true @@ -4181,7 +4619,7 @@ packages: resolution: {integrity: sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@svgr/babel-preset': 5.5.0 '@svgr/hast-util-to-babel-ast': 5.5.0 svg-parser: 2.0.4 @@ -4195,8 +4633,8 @@ packages: peerDependencies: '@svgr/core': ^6.0.0 dependencies: - '@babel/core': 7.22.1 - '@svgr/babel-preset': 6.5.1_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@svgr/babel-preset': 6.5.1_@babel+core@7.22.11 '@svgr/core': 6.5.1 '@svgr/hast-util-to-babel-ast': 6.5.1 svg-parser: 2.0.4 @@ -4229,10 +4667,10 @@ packages: resolution: {integrity: sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.22.1 - '@babel/plugin-transform-react-constant-elements': 7.22.5_@babel+core@7.22.1 - '@babel/preset-env': 7.22.5_@babel+core@7.22.1 - '@babel/preset-react': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/plugin-transform-react-constant-elements': 7.22.5_@babel+core@7.22.11 + '@babel/preset-env': 7.22.5_@babel+core@7.22.11 + '@babel/preset-react': 7.22.5_@babel+core@7.22.11 '@svgr/core': 5.5.0 '@svgr/plugin-jsx': 5.5.0 '@svgr/plugin-svgo': 5.5.0 @@ -4241,8 +4679,8 @@ packages: - supports-color dev: true - /@swc/core-darwin-arm64/1.3.57: - resolution: {integrity: sha512-lhAK9kF/ppZdNTdaxJl2gE0bXubzQXTgxB2Xojme/1sbOipaLTskBbJ3FLySChpmVOzD0QSCTiW8w/dmQxqNIQ==} + /@swc/core-darwin-arm64/1.3.72: + resolution: {integrity: sha512-oNSI5hVfZ+1xpj+dH1g4kQqA0VsGtqd8S9S+cDqkHZiOOVOevw9KN6dzVtmLOcPtlULVypVc0TVvsB55KdVZhQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] @@ -4250,8 +4688,8 @@ packages: dev: true optional: true - /@swc/core-darwin-x64/1.3.57: - resolution: {integrity: sha512-jsTDH8Et/xdOM/ZCNvtrT6J8FT255OrMhEDvHZQZTgoky4oW/3FHUfji4J2FE97gitJqNJI8MuNuiGq81pIJRw==} + /@swc/core-darwin-x64/1.3.72: + resolution: {integrity: sha512-y5O/WQ1g0/VfTgeNahWIOutbdD5U2Gi703jaefdcoJo3FUx8WU108QQdbVGwGMgaqapo3iQB6Qs9paixYQAYsA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] @@ -4259,8 +4697,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm-gnueabihf/1.3.57: - resolution: {integrity: sha512-MZv3fwcCmppbwfCWaE8cZvzbXOjX7n5SEC1hF2lgItTqp4S04dFk1iX50jKr6xS6xSLlRBPqDxwZH0sBpHaEuA==} + /@swc/core-linux-arm-gnueabihf/1.3.72: + resolution: {integrity: sha512-05JdWcso0OomHF+7bk5MBDgI8MZ9skcQ/4nhSv5gboSgSiuBmKM15Bg3lZ5iAUwGByNj7pGkSmmd3YwTrXEB+g==} engines: {node: '>=10'} cpu: [arm] os: [linux] @@ -4268,8 +4706,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-gnu/1.3.57: - resolution: {integrity: sha512-wUeqa/qbkOEGl6TaDQZZL7txrQXs1vL7ERjPYhi9El+ywacFY/rTW2pK5DqaNk2eulVnLhbbNjsE1OMGSEWGkQ==} + /@swc/core-linux-arm64-gnu/1.3.72: + resolution: {integrity: sha512-8qRELJaeYshhJgqvyOeXCKqBOpai+JYdWuouMbvvDUL85j3OcZhzR+bipexEbbJKcOCdRnoYB7Qg6mjqZ0t7VA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -4277,8 +4715,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-musl/1.3.57: - resolution: {integrity: sha512-pZfp1B9XfH7ZhDKFjr4qbyM093zU2Ri0IZq2M2A4W9q92+Ivy8oEIqw+gSRO3jwMDqRMEtFD49YuFhkJQakxdA==} + /@swc/core-linux-arm64-musl/1.3.72: + resolution: {integrity: sha512-tOqAGZw+Pe7YrBHFrwFVyRiKqjgjzwYbJmY+UDxLrzWrZSVtC3eO2TPrp7kWmhirg40Og81BbdfRAl8ds48w0Q==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -4286,8 +4724,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-gnu/1.3.57: - resolution: {integrity: sha512-dvtQnv07NikV+CJ+9PYJ3fqphSigzfvSUH6wRCmb5OzLDDLFnPLMrEO0pGeURvdIWCOhngcHF252C1Hl5uFSzA==} + /@swc/core-linux-x64-gnu/1.3.72: + resolution: {integrity: sha512-U2W2xWR3s9nplGVWz376GiBlcLTgxyYKlpZPBNZk0w3OvTcjKC62gW1Pe7PUkk4NgJUnaQDBa/mb4V4Zl+GZPA==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -4295,8 +4733,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-musl/1.3.57: - resolution: {integrity: sha512-1TKCSngyQxpzwBYDzF5MrEfYRDhlzt/GN1ZqlSnsJIPGkABOWZxYDvWJuMrkASdIztn3jSTPU2ih7rR7YQ8IIw==} + /@swc/core-linux-x64-musl/1.3.72: + resolution: {integrity: sha512-3+2dUiZBsifKgvnFEHWdysXjInK8K+BfPBw2tTZJmq1+fZLt0rvuErYDVMLfIJnVWLCcJMnDtTXrvkFV1y/6iA==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -4304,8 +4742,8 @@ packages: dev: true optional: true - /@swc/core-win32-arm64-msvc/1.3.57: - resolution: {integrity: sha512-HvBYFyf4uBua/jyTrcFLKcq8SIbKVYfz2qWsbgSAZvuQPZvDC1XhN5EDH2tPZmT97F0CJx3fltH5nli6XY1/EQ==} + /@swc/core-win32-arm64-msvc/1.3.72: + resolution: {integrity: sha512-ndI8xZ2AId806D25xgqw2SFJ9gc/jhg21+5hA8XPq9ZL+oDiaYDztaP3ijVmZ1G5xXKD9DpgB7xmylv/f6o6GA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] @@ -4313,8 +4751,8 @@ packages: dev: true optional: true - /@swc/core-win32-ia32-msvc/1.3.57: - resolution: {integrity: sha512-PS8AtK9e6Rp97S0ek9W5VCZNCbDaHBUasiJUmaYqRVCq/Mn6S7eQlhd0iUDnjsagigQtoCRgMUzkVknd1tarsQ==} + /@swc/core-win32-ia32-msvc/1.3.72: + resolution: {integrity: sha512-F3TK8JHP3SRFjLRlzcRVZPnvvGm2CQ5/cwbIkaEq0Dla3kyctU8SiRqvtYwWCW4JuY10cUygIg93Ec/C9Lkk4g==} engines: {node: '>=10'} cpu: [ia32] os: [win32] @@ -4322,8 +4760,8 @@ packages: dev: true optional: true - /@swc/core-win32-x64-msvc/1.3.57: - resolution: {integrity: sha512-A6aX/Rpp0v3g7Spf3LSwR+ivviH8x+1xla612KLZmlc0yymWt9BMd3CmBkzyRBr2e41zGCrkf6tra6wgtCbAwA==} + /@swc/core-win32-x64-msvc/1.3.72: + resolution: {integrity: sha512-FXMnIUtLl0yEmGkw+xbUg/uUPExvUxUlLSHbX7CnbSuOIHqMHzvEd9skIueLAst4bvmJ8kT1hDyAIWQcTIAJYQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] @@ -4331,8 +4769,8 @@ packages: dev: true optional: true - /@swc/core/1.3.57: - resolution: {integrity: sha512-gAT80hOVeK5qoi+BRlgXWgJYI9cbQn2oi05A09Tvb6vjFgBsr9SlQGNZB9uMlcXRXspkZFf9l3yyWRtT4we3Yw==} + /@swc/core/1.3.72: + resolution: {integrity: sha512-+AKjwLH3/STfPrd7CHzB9+NG1FVT0UKJMUChuWq9sQ8b9xlV8vUeRgZXgh/EHYvNQgl/OUTQKtL6xU2yOLuEuA==} engines: {node: '>=10'} requiresBuild: true peerDependencies: @@ -4341,16 +4779,16 @@ packages: '@swc/helpers': optional: true optionalDependencies: - '@swc/core-darwin-arm64': 1.3.57 - '@swc/core-darwin-x64': 1.3.57 - '@swc/core-linux-arm-gnueabihf': 1.3.57 - '@swc/core-linux-arm64-gnu': 1.3.57 - '@swc/core-linux-arm64-musl': 1.3.57 - '@swc/core-linux-x64-gnu': 1.3.57 - '@swc/core-linux-x64-musl': 1.3.57 - '@swc/core-win32-arm64-msvc': 1.3.57 - '@swc/core-win32-ia32-msvc': 1.3.57 - '@swc/core-win32-x64-msvc': 1.3.57 + '@swc/core-darwin-arm64': 1.3.72 + '@swc/core-darwin-x64': 1.3.72 + '@swc/core-linux-arm-gnueabihf': 1.3.72 + '@swc/core-linux-arm64-gnu': 1.3.72 + '@swc/core-linux-arm64-musl': 1.3.72 + '@swc/core-linux-x64-gnu': 1.3.72 + '@swc/core-linux-x64-musl': 1.3.72 + '@swc/core-win32-arm64-msvc': 1.3.72 + '@swc/core-win32-ia32-msvc': 1.3.72 + '@swc/core-win32-x64-msvc': 1.3.72 dev: true /@szmarczak/http-timer/5.0.1: @@ -4365,7 +4803,7 @@ packages: engines: {node: '>=14'} dependencies: '@babel/code-frame': 7.21.4 - '@babel/runtime': 7.22.3 + '@babel/runtime': 7.22.5 '@types/aria-query': 5.0.1 aria-query: 5.1.3 chalk: 4.1.2 @@ -4374,13 +4812,27 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/jest-dom/5.16.5: - resolution: {integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==} - engines: {node: '>=8', npm: '>=6', yarn: '>=1'} + /@testing-library/jest-dom/6.1.2_@types+jest@29.5.4: + resolution: {integrity: sha512-NP9jl1Q2qDDtx+cqogowtQtmgD2OVs37iMSIsTv5eN5ETRkf26Kj6ugVwA93/gZzzFWQAsgkKkcftDe91BJCkQ==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + peerDependencies: + '@jest/globals': '>= 28' + '@types/jest': '>= 28' + jest: '>= 28' + vitest: '>= 0.32' + peerDependenciesMeta: + '@jest/globals': + optional: true + '@types/jest': + optional: true + jest: + optional: true + vitest: + optional: true dependencies: - '@adobe/css-tools': 4.2.0 - '@babel/runtime': 7.22.3 - '@types/testing-library__jest-dom': 5.14.6 + '@adobe/css-tools': 4.3.1 + '@babel/runtime': 7.22.5 + '@types/jest': 29.5.4 aria-query: 5.1.3 chalk: 3.0.0 css.escape: 1.5.1 @@ -4398,7 +4850,7 @@ packages: dependencies: '@babel/runtime': 7.22.3 '@testing-library/dom': 9.3.0 - '@types/react-dom': 18.2.4 + '@types/react-dom': 18.2.7 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -4416,8 +4868,8 @@ packages: '@tool-pack/types': 0.0.1 dev: true - /@tool-pack/basic/0.1.1: - resolution: {integrity: sha512-xLjFWGuNrLvlkoeO8uhHusw2iFCCBep/FA+NhaGbI2eeg6o0UN1Fqn56j/tn9esb2MEr6RgyhCjIX7HekD5dPg==} + /@tool-pack/basic/0.1.2: + resolution: {integrity: sha512-1cC9XeZmfChaKFx+lZIfvo6LLaVQ1Way3LSqDAIKHNGhFXIor5Wukkm3OS54z+GZhbLefa1gCqujqnMQaGMRlg==} dependencies: '@tool-pack/types': 0.0.6 dev: true @@ -4439,7 +4891,7 @@ packages: /@tool-pack/dom/0.0.13: resolution: {integrity: sha512-ZIFr9C0M3EnMdOdU5Fsqmd2WrVojqTDi8Grgb7ZIFJmC/6owW3RwElmO6C24EWDFOdmE9W506KlEONKL+7lmQQ==} dependencies: - '@tool-pack/basic': 0.1.1 + '@tool-pack/basic': 0.1.2 '@tool-pack/types': 0.0.6 dev: true @@ -4450,6 +4902,10 @@ packages: /@tool-pack/types/0.0.6: resolution: {integrity: sha512-V2puQW1R2ufXhhHtGy7v5Kt/ulwfpEc87NK8iADwySU058oebY7gv+SdgehgTmbf6H2odqilcH5DeY8Acmhaww==} + /@tool-pack/types/0.0.9: + resolution: {integrity: sha512-Lfog7tSksvgArWAYRaaB4PCOVpzzE/iQ5bqvCaOmIZtL06CzapscJKPcpWZKIa025VPfb4TKXpayT9aAFZYbDw==} + dev: true + /@tootallnate/once/1.1.2: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} @@ -4491,7 +4947,7 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@tufjs/canonical-json': 1.0.0 - minimatch: 9.0.1 + minimatch: 9.0.3 dev: true /@types/argparse/1.0.38: @@ -4505,8 +4961,8 @@ packages: /@types/babel__core/7.20.1: resolution: {integrity: sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==} dependencies: - '@babel/parser': 7.22.4 - '@babel/types': 7.22.4 + '@babel/parser': 7.22.11 + '@babel/types': 7.22.11 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.20.0 @@ -4515,46 +4971,46 @@ packages: /@types/babel__generator/7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.22.4 - '@babel/types': 7.22.5 + '@babel/parser': 7.22.11 + '@babel/types': 7.22.11 dev: true /@types/babel__traverse/7.20.0: resolution: {integrity: sha512-TBOjqAGf0hmaqRwpii5LLkJLg7c6OMm4nHLmpsUxwk9bBHtoTC6dAHdVWdGv4TBxj2CZOZY8Xfq8WmfoVi7n4Q==} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 dev: true /@types/body-parser/1.19.2: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/bonjour/3.5.10: resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/connect-history-api-fallback/1.5.0: resolution: {integrity: sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==} dependencies: '@types/express-serve-static-core': 4.17.35 - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/debug/4.1.8: @@ -4594,7 +5050,7 @@ packages: /@types/express-serve-static-core/4.17.35: resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 @@ -4613,21 +5069,21 @@ packages: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/graceful-fs/4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/hapi__joi/17.1.9: resolution: {integrity: sha512-oOMFT8vmCTFncsF1engrs04jatz8/Anwx3De9uxnOK4chgSEgWBvFtpSoJo8u3784JNO+ql5tzRR6phHoRnscQ==} dev: true - /@types/hast/2.3.4: - resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} + /@types/hast/2.3.5: + resolution: {integrity: sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg==} dependencies: '@types/unist': 2.0.6 dev: true @@ -4635,7 +5091,7 @@ packages: /@types/hoist-non-react-statics/3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: - '@types/react': 18.2.7 + '@types/react': 18.2.21 hoist-non-react-statics: 3.3.2 dev: true @@ -4650,7 +5106,7 @@ packages: /@types/http-proxy/1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -4669,8 +5125,8 @@ packages: '@types/istanbul-lib-report': 3.0.0 dev: true - /@types/jest/29.5.2: - resolution: {integrity: sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==} + /@types/jest/29.5.4: + resolution: {integrity: sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A==} dependencies: expect: 29.5.0 pretty-format: 29.5.0 @@ -4691,17 +5147,17 @@ packages: /@types/jsonfile/6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true - /@types/mdast/3.0.11: - resolution: {integrity: sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==} + /@types/mdast/3.0.12: + resolution: {integrity: sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==} dependencies: '@types/unist': 2.0.6 dev: true @@ -4722,20 +5178,20 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node/16.18.34: - resolution: {integrity: sha512-VmVm7gXwhkUimRfBwVI1CHhwp86jDWR04B5FGebMMyxV90SlCmFujwUHrxTD4oO+SOYU86SoxvhgeRQJY7iXFg==} - dev: true - /@types/node/17.0.45: resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} dev: true - /@types/normalize-package-data/2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + /@types/node/20.4.7: + resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==} dev: true - /@types/nprogress/0.2.0: - resolution: {integrity: sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==} + /@types/node/20.5.6: + resolution: {integrity: sha512-Gi5wRGPbbyOTX+4Y2iULQ27oUPrefaB0PxGQJnfyWN3kvEDGM3mIB5M/gQLmitZf7A9FmLeaqxD3L1CXpm3VKQ==} + dev: true + + /@types/normalize-package-data/2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true /@types/parse-json/4.0.0: @@ -4762,18 +5218,24 @@ packages: resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} dev: true + /@types/ramda/0.29.3: + resolution: {integrity: sha512-Yh/RHkjN0ru6LVhSQtTkCRo6HXkfL9trot/2elzM/yXLJmbLm2v6kJc8yftTnwv1zvUob6TEtqI2cYjdqG3U0Q==} + dependencies: + types-ramda: 0.29.4 + dev: true + /@types/range-parser/1.2.4: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: true - /@types/react-dom/18.2.4: - resolution: {integrity: sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==} + /@types/react-dom/18.2.7: + resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} dependencies: - '@types/react': 18.2.7 + '@types/react': 18.2.21 dev: true - /@types/react/18.2.7: - resolution: {integrity: sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==} + /@types/react/18.2.21: + resolution: {integrity: sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 @@ -4783,13 +5245,13 @@ packages: /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/responselike/1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/retry/0.12.0: @@ -4799,7 +5261,7 @@ packages: /@types/sax/1.2.4: resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/scheduler/0.16.3: @@ -4814,7 +5276,7 @@ packages: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: '@types/mime': 1.3.2 - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/serve-index/1.9.1: @@ -4827,23 +5289,23 @@ packages: resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} dependencies: '@types/mime': 3.0.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/sockjs/0.3.33: resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/stack-utils/2.0.1: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true - /@types/testing-library__jest-dom/5.14.6: - resolution: {integrity: sha512-FkHXCb+ikSoUP4Y4rOslzTdX5sqYwMxfefKh1GmZ8ce1GOkEHntSp6b5cGadmNfp5e4BMEWOMx+WSKd5/MqlDA==} + /@types/testing-library__jest-dom/5.14.9: + resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==} dependencies: - '@types/jest': 29.5.2 + '@types/jest': 29.5.4 dev: true /@types/trusted-types/2.0.3: @@ -4857,7 +5319,7 @@ packages: /@types/ws/8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /@types/yargs-parser/21.0.0: @@ -4876,7 +5338,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin/5.48.1_ql6mcpnfkbsaga6lmnsbisgola: + /@typescript-eslint/eslint-plugin/5.48.1_tvtk6yk6bd6rvqcptlgaggxida: resolution: {integrity: sha512-9nY5K1Rp2ppmpb9s9S2aBiF3xo5uExCehMDmYmmFqqyxgenbHJ3qbarcLt4ITgaD6r/2ypdlcFRdcuVPnks+fQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4887,24 +5349,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.48.1_vpom273qb76jyt57dlzy5jrwce + '@typescript-eslint/parser': 5.48.1_sf2ha5dxxfjuf3a4egfvu5wr24 '@typescript-eslint/scope-manager': 5.48.1 - '@typescript-eslint/type-utils': 5.48.1_vpom273qb76jyt57dlzy5jrwce - '@typescript-eslint/utils': 5.48.1_vpom273qb76jyt57dlzy5jrwce + '@typescript-eslint/type-utils': 5.48.1_sf2ha5dxxfjuf3a4egfvu5wr24 + '@typescript-eslint/utils': 5.48.1_sf2ha5dxxfjuf3a4egfvu5wr24 debug: 4.3.4 - eslint: 8.41.0 + eslint: 8.47.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 regexpp: 3.2.0 - semver: 7.5.1 - tsutils: 3.21.0_typescript@5.1.6 - typescript: 5.1.6 + semver: 7.5.4 + tsutils: 3.21.0_typescript@5.2.2 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/eslint-plugin/5.59.9_qb52hxwymttcv6keasteivhon4: - resolution: {integrity: sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA==} + /@typescript-eslint/eslint-plugin/5.62.0_jkm4zv3ijokxgddfzejucr72i4: + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -4914,37 +5376,37 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.9_vpom273qb76jyt57dlzy5jrwce - '@typescript-eslint/scope-manager': 5.59.9 - '@typescript-eslint/type-utils': 5.59.9_vpom273qb76jyt57dlzy5jrwce - '@typescript-eslint/utils': 5.59.9_vpom273qb76jyt57dlzy5jrwce + '@eslint-community/regexpp': 4.7.0 + '@typescript-eslint/parser': 5.62.0_sf2ha5dxxfjuf3a4egfvu5wr24 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0_sf2ha5dxxfjuf3a4egfvu5wr24 + '@typescript-eslint/utils': 5.62.0_sf2ha5dxxfjuf3a4egfvu5wr24 debug: 4.3.4 - eslint: 8.41.0 - grapheme-splitter: 1.0.4 + eslint: 8.47.0 + graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 - semver: 7.5.1 - tsutils: 3.21.0_typescript@5.1.6 - typescript: 5.1.6 + semver: 7.5.4 + tsutils: 3.21.0_typescript@5.2.2 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils/5.59.9_vpom273qb76jyt57dlzy5jrwce: + /@typescript-eslint/experimental-utils/5.59.9_sf2ha5dxxfjuf3a4egfvu5wr24: resolution: {integrity: sha512-eZTK/Ci0QAqNc/q2MqMwI2+QI5ZI9HM12FcfGwbEvKif5ev/CIIYLmrlckvgPrC8XSbl39HtErR5NJiQkRkvWg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.59.9_vpom273qb76jyt57dlzy5jrwce - eslint: 8.41.0 + '@typescript-eslint/utils': 5.59.9_sf2ha5dxxfjuf3a4egfvu5wr24 + eslint: 8.47.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser/5.48.1_vpom273qb76jyt57dlzy5jrwce: + /@typescript-eslint/parser/5.48.1_sf2ha5dxxfjuf3a4egfvu5wr24: resolution: {integrity: sha512-4yg+FJR/V1M9Xoq56SF9Iygqm+r5LMXvheo6DQ7/yUWynQ4YfCRnsKuRgqH4EQ5Ya76rVwlEpw4Xu+TgWQUcdA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4956,16 +5418,16 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.48.1 '@typescript-eslint/types': 5.48.1 - '@typescript-eslint/typescript-estree': 5.48.1_typescript@5.1.6 + '@typescript-eslint/typescript-estree': 5.48.1_typescript@5.2.2 debug: 4.3.4 - eslint: 8.41.0 - typescript: 5.1.6 + eslint: 8.47.0 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.59.9_vpom273qb76jyt57dlzy5jrwce: - resolution: {integrity: sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ==} + /@typescript-eslint/parser/5.62.0_sf2ha5dxxfjuf3a4egfvu5wr24: + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -4974,12 +5436,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.59.9 - '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/typescript-estree': 5.59.9_typescript@5.1.6 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.2.2 debug: 4.3.4 - eslint: 8.41.0 - typescript: 5.1.6 + eslint: 8.47.0 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -5000,7 +5462,15 @@ packages: '@typescript-eslint/visitor-keys': 5.59.9 dev: true - /@typescript-eslint/type-utils/5.48.1_vpom273qb76jyt57dlzy5jrwce: + /@typescript-eslint/scope-manager/5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: true + + /@typescript-eslint/type-utils/5.48.1_sf2ha5dxxfjuf3a4egfvu5wr24: resolution: {integrity: sha512-Hyr8HU8Alcuva1ppmqSYtM/Gp0q4JOp1F+/JH5D1IZm/bUBrV0edoewQZiEc1r6I8L4JL21broddxK8HAcZiqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5010,18 +5480,18 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.48.1_typescript@5.1.6 - '@typescript-eslint/utils': 5.48.1_vpom273qb76jyt57dlzy5jrwce + '@typescript-eslint/typescript-estree': 5.48.1_typescript@5.2.2 + '@typescript-eslint/utils': 5.48.1_sf2ha5dxxfjuf3a4egfvu5wr24 debug: 4.3.4 - eslint: 8.41.0 - tsutils: 3.21.0_typescript@5.1.6 - typescript: 5.1.6 + eslint: 8.47.0 + tsutils: 3.21.0_typescript@5.2.2 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/type-utils/5.59.9_vpom273qb76jyt57dlzy5jrwce: - resolution: {integrity: sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q==} + /@typescript-eslint/type-utils/5.62.0_sf2ha5dxxfjuf3a4egfvu5wr24: + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -5030,12 +5500,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.59.9_typescript@5.1.6 - '@typescript-eslint/utils': 5.59.9_vpom273qb76jyt57dlzy5jrwce + '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.2.2 + '@typescript-eslint/utils': 5.62.0_sf2ha5dxxfjuf3a4egfvu5wr24 debug: 4.3.4 - eslint: 8.41.0 - tsutils: 3.21.0_typescript@5.1.6 - typescript: 5.1.6 + eslint: 8.47.0 + tsutils: 3.21.0_typescript@5.2.2 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -5050,7 +5520,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.48.1_typescript@5.1.6: + /@typescript-eslint/types/5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree/5.48.1_typescript@5.2.2: resolution: {integrity: sha512-Hut+Osk5FYr+sgFh8J/FHjqX6HFcDzTlWLrFqGoK5kVUN3VBHF/QzZmAsIXCQ8T/W9nQNBTqalxi1P3LSqWnRA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5064,14 +5539,14 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.1 - tsutils: 3.21.0_typescript@5.1.6 - typescript: 5.1.6 + semver: 7.5.4 + tsutils: 3.21.0_typescript@5.2.2 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.59.9_typescript@5.1.6: + /@typescript-eslint/typescript-estree/5.59.9_typescript@5.2.2: resolution: {integrity: sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5085,14 +5560,35 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.1 - tsutils: 3.21.0_typescript@5.1.6 - typescript: 5.1.6 + semver: 7.5.4 + tsutils: 3.21.0_typescript@5.2.2 + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/typescript-estree/5.62.0_typescript@5.2.2: + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + tsutils: 3.21.0_typescript@5.2.2 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.48.1_vpom273qb76jyt57dlzy5jrwce: + /@typescript-eslint/utils/5.48.1_sf2ha5dxxfjuf3a4egfvu5wr24: resolution: {integrity: sha512-SmQuSrCGUOdmGMwivW14Z0Lj8dxG1mOFZ7soeJ0TQZEJcs3n5Ndgkg0A4bcMFzBELqLJ6GTHnEU+iIoaD6hFGA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5102,31 +5598,51 @@ packages: '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.48.1 '@typescript-eslint/types': 5.48.1 - '@typescript-eslint/typescript-estree': 5.48.1_typescript@5.1.6 - eslint: 8.41.0 + '@typescript-eslint/typescript-estree': 5.48.1_typescript@5.2.2 + eslint: 8.47.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.41.0 - semver: 7.5.1 + eslint-utils: 3.0.0_eslint@8.47.0 + semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/utils/5.59.9_vpom273qb76jyt57dlzy5jrwce: + /@typescript-eslint/utils/5.59.9_sf2ha5dxxfjuf3a4egfvu5wr24: resolution: {integrity: sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.41.0 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.47.0 '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.59.9 '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/typescript-estree': 5.59.9_typescript@5.1.6 - eslint: 8.41.0 + '@typescript-eslint/typescript-estree': 5.59.9_typescript@5.2.2 + eslint: 8.47.0 eslint-scope: 5.1.1 - semver: 7.5.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils/5.62.0_sf2ha5dxxfjuf3a4egfvu5wr24: + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0_eslint@8.47.0 + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.0 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.2.2 + eslint: 8.47.0 + eslint-scope: 5.1.1 + semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript @@ -5137,7 +5653,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.48.1 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.3 dev: true /@typescript-eslint/visitor-keys/5.59.9: @@ -5145,24 +5661,32 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.59.9 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.3 + dev: true + + /@typescript-eslint/visitor-keys/5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 dev: true - /@umijs/ast/4.0.70: - resolution: {integrity: sha512-scrAlEGzgD3Ks/cRSJZza5QCPsdnZdtgPNcgpPU8xV4mXyWGyg98u9o2EE08awQDjqlPbHIvo7ZVZkvcC9nxnQ==} + /@umijs/ast/4.0.78: + resolution: {integrity: sha512-ID3wlgRyMCK+P1iDOe5Q14Q2aAWBei1axHewZhkUSLgzlwTRvKIa6Q2MhKrNjHQ8PyVcC92w56hYxOvbQXkqpg==} dependencies: - '@umijs/bundler-utils': 4.0.70 + '@umijs/bundler-utils': 4.0.78 transitivePeerDependencies: - supports-color dev: true - /@umijs/babel-preset-umi/4.0.70: - resolution: {integrity: sha512-xF2KHPw3VH65nziiC8Bu68dQsm2+/DNqYC4upgEyiuNwsLx4P+yzffFGkKfDsEpWAtYqAfClDT9m6o46inRxrA==} + /@umijs/babel-preset-umi/4.0.78: + resolution: {integrity: sha512-Hdjv4ORoz8woATS9rH4DsFpi7j4i+GZ8R366amhKtElNd1PkfE6CSUNL7f7fvDg+P73DnBF0aaE68OVoa0a8Gw==} dependencies: '@babel/runtime': 7.21.0 '@bloomberg/record-tuple-polyfill': 0.0.4 - '@umijs/bundler-utils': 4.0.70 - '@umijs/utils': 4.0.70 + '@umijs/bundler-utils': 4.0.78 + '@umijs/utils': 4.0.78 babel-plugin-styled-components: 2.1.1 core-js: 3.28.0 transitivePeerDependencies: @@ -5170,24 +5694,24 @@ packages: - supports-color dev: true - /@umijs/bundler-esbuild/4.0.70: - resolution: {integrity: sha512-elDtAGD/sVgY626E6OfhSmZbgXYmYBIe1uiTunQrbWzlHUP2lQ9iB4wJ6GGcoqNU/7itKXRf3rcihCIq2DCDtQ==} + /@umijs/bundler-esbuild/4.0.78: + resolution: {integrity: sha512-qyAcZ5GkhBPZrB1wnI+xZ8kBpUnSd3nEFpJzt3QUdiBiW9Jd9dYTHDSg0XQ7FuPq4I7PfGOhJMmaoncH18dAqw==} hasBin: true dependencies: - '@umijs/bundler-utils': 4.0.70 - '@umijs/utils': 4.0.70 + '@umijs/bundler-utils': 4.0.78 + '@umijs/utils': 4.0.78 enhanced-resolve: 5.9.3 - postcss: 8.4.26 - postcss-flexbugs-fixes: 5.0.2_postcss@8.4.26 - postcss-preset-env: 7.5.0_postcss@8.4.26 + postcss: 8.4.28 + postcss-flexbugs-fixes: 5.0.2_postcss@8.4.28 + postcss-preset-env: 7.5.0_postcss@8.4.28 transitivePeerDependencies: - supports-color dev: true - /@umijs/bundler-utils/4.0.70: - resolution: {integrity: sha512-ZvM2Ga+BoHo8OonrmptCR1Bo/mjbtbXJVJmMQCSrb/mtn2ZFvOGddZ/0YTL+ysXnBIA7vALnlNhGWnvArCls6w==} + /@umijs/bundler-utils/4.0.78: + resolution: {integrity: sha512-5SWfTr7gHbvrGfYLPU0FJNWoj8aMOtI0ELesG1V/INYQJK5uSSYqplLktbhqbS3/9O9+OOx3DFlDfeX3KZp+RQ==} dependencies: - '@umijs/utils': 4.0.70 + '@umijs/utils': 4.0.78 esbuild: 0.17.19 regenerate: 1.4.2 regenerate-unicode-properties: 10.1.0 @@ -5196,18 +5720,18 @@ packages: - supports-color dev: true - /@umijs/bundler-vite/4.0.70_yctufyvybs5mhzakmaadx6pbv4: - resolution: {integrity: sha512-19aDfNxPbOVfFttNSHEp9DnZFB/fFMEpsH6nBPkOIkXhr0UnmaWeOk7HJPbbT9T7vBA0mPxHA/vEIZPSWy84PQ==} + /@umijs/bundler-vite/4.0.78_fxmsoowtytfbkm2jtaohibxvxa: + resolution: {integrity: sha512-PABoTGO/PwVcz8zOK51T0WWLG6Or/CcRQuUc0o66vRPx29UA7jTKVTJbRgK2aHGLtzBmdaLCaNTtsCvZWo+Tbg==} hasBin: true dependencies: '@svgr/core': 6.5.1 - '@umijs/bundler-utils': 4.0.70 - '@umijs/utils': 4.0.70 + '@umijs/bundler-utils': 4.0.78 + '@umijs/utils': 4.0.78 '@vitejs/plugin-react': 4.0.0_vite@4.3.1 less: 4.1.3 - postcss-preset-env: 7.5.0_postcss@8.4.26 - rollup-plugin-visualizer: 5.9.0_rollup@3.23.0 - vite: 4.3.1_czn76ejmismrv2aq7yiaecbkxi + postcss-preset-env: 7.5.0_postcss@8.4.28 + rollup-plugin-visualizer: 5.9.0_rollup@3.28.1 + vite: 4.3.1_2bcfa5fly7valb65t64arj7wgi transitivePeerDependencies: - '@types/node' - postcss @@ -5219,8 +5743,8 @@ packages: - terser dev: true - /@umijs/bundler-webpack/4.0.70_typescript@4.8.4: - resolution: {integrity: sha512-QHaIEFesPzFSHnIMhHui9Ru54VYwNdnO683CzSoIoBjYAIcpDsGM7Tl3hIesujbfhrZl2eCJQVc//ZJ0SEFiTw==} + /@umijs/bundler-webpack/4.0.78_typescript@5.0.4: + resolution: {integrity: sha512-tHpRN1SmnbgVlItK7UIJIw7r+4Oaxk9RdBfKMA3R62GmbmduAnA/XG+hZb2AAliOHnEuWMNA/BCAmaxbvatfBA==} hasBin: true dependencies: '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_react-refresh@0.14.0 @@ -5228,20 +5752,20 @@ packages: '@svgr/plugin-jsx': 6.5.1_@svgr+core@6.5.1 '@svgr/plugin-svgo': 6.5.1_@svgr+core@6.5.1 '@types/hapi__joi': 17.1.9 - '@umijs/babel-preset-umi': 4.0.70 - '@umijs/bundler-utils': 4.0.70 + '@umijs/babel-preset-umi': 4.0.78 + '@umijs/bundler-utils': 4.0.78 '@umijs/case-sensitive-paths-webpack-plugin': 1.0.1 - '@umijs/mfsu': 4.0.70 - '@umijs/utils': 4.0.70 + '@umijs/mfsu': 4.0.78 + '@umijs/utils': 4.0.78 cors: 2.8.5 css-loader: 6.7.1 es5-imcompatible-versions: 0.1.83 - fork-ts-checker-webpack-plugin: 8.0.0_typescript@4.8.4 + fork-ts-checker-webpack-plugin: 8.0.0_typescript@5.0.4 jest-worker: 29.4.3 lightningcss: 1.19.0 node-libs-browser: 2.2.1 - postcss: 8.4.26 - postcss-preset-env: 7.5.0_postcss@8.4.26 + postcss: 8.4.28 + postcss-preset-env: 7.5.0_postcss@8.4.28 react-error-overlay: 6.0.9 react-refresh: 0.14.0 transitivePeerDependencies: @@ -5257,8 +5781,8 @@ packages: - webpack-plugin-serve dev: true - /@umijs/bundler-webpack/4.0.70_typescript@5.1.6: - resolution: {integrity: sha512-QHaIEFesPzFSHnIMhHui9Ru54VYwNdnO683CzSoIoBjYAIcpDsGM7Tl3hIesujbfhrZl2eCJQVc//ZJ0SEFiTw==} + /@umijs/bundler-webpack/4.0.78_typescript@5.2.2: + resolution: {integrity: sha512-tHpRN1SmnbgVlItK7UIJIw7r+4Oaxk9RdBfKMA3R62GmbmduAnA/XG+hZb2AAliOHnEuWMNA/BCAmaxbvatfBA==} hasBin: true dependencies: '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_react-refresh@0.14.0 @@ -5266,20 +5790,20 @@ packages: '@svgr/plugin-jsx': 6.5.1_@svgr+core@6.5.1 '@svgr/plugin-svgo': 6.5.1_@svgr+core@6.5.1 '@types/hapi__joi': 17.1.9 - '@umijs/babel-preset-umi': 4.0.70 - '@umijs/bundler-utils': 4.0.70 + '@umijs/babel-preset-umi': 4.0.78 + '@umijs/bundler-utils': 4.0.78 '@umijs/case-sensitive-paths-webpack-plugin': 1.0.1 - '@umijs/mfsu': 4.0.70 - '@umijs/utils': 4.0.70 + '@umijs/mfsu': 4.0.78 + '@umijs/utils': 4.0.78 cors: 2.8.5 css-loader: 6.7.1 es5-imcompatible-versions: 0.1.83 - fork-ts-checker-webpack-plugin: 8.0.0_typescript@5.1.6 + fork-ts-checker-webpack-plugin: 8.0.0_typescript@5.2.2 jest-worker: 29.4.3 lightningcss: 1.19.0 node-libs-browser: 2.2.1 - postcss: 8.4.26 - postcss-preset-env: 7.5.0_postcss@8.4.26 + postcss: 8.4.28 + postcss-preset-env: 7.5.0_postcss@8.4.28 react-error-overlay: 6.0.9 react-refresh: 0.14.0 transitivePeerDependencies: @@ -5299,11 +5823,11 @@ packages: resolution: {integrity: sha512-kDKJ8yTarxwxGJDInG33hOpaQRZ//XpNuuznQ/1Mscypw6kappzFmrBr2dOYave++K7JHouoANF354UpbEQw0Q==} dev: true - /@umijs/core/4.0.70: - resolution: {integrity: sha512-l2Hv8dRAJ6F9FD7VCUBAD2ars+yRBf7woQu8O88cWOgLbI/YOYEnt1n74g0uTfQBFdvnKNAsZhTY8yX8i0olGQ==} + /@umijs/core/4.0.78: + resolution: {integrity: sha512-ZfJyE9kKi/yiGEj/SQSSd6xQl/zQwY2MkI6q0yKrCDsd60iOfkiYLhxlQJ6A2bAn2V0KoqM3SIw31ZZLER9m2w==} dependencies: - '@umijs/bundler-utils': 4.0.70 - '@umijs/utils': 4.0.70 + '@umijs/bundler-utils': 4.0.78 + '@umijs/utils': 4.0.78 transitivePeerDependencies: - supports-color dev: true @@ -5415,21 +5939,21 @@ packages: query-string: 6.14.1 dev: true - /@umijs/lint/4.0.70_pqb4avgxdjjhzbr6dozjwjlhxi: - resolution: {integrity: sha512-89+1BC/taDfEcubrWGXI6Yzk6hVb3br21jx+7eYYOwJjOXDMULy3+8GCFqZN+TxIz9WXOG3NFHehcFehx9YPwg==} + /@umijs/lint/4.0.78_igsqdvhtnoc4fddledok52lyua: + resolution: {integrity: sha512-4AdNbcYMP33UmgM6uHPnfUwFXIKMOZUSrEW2qPZ2BpNvnD6HuswY7P8K7deQz4MOYYU1VPnovf94M8TNCDUdjA==} dependencies: '@babel/core': 7.21.0 - '@babel/eslint-parser': 7.19.1_tiv66jdsh7ton7arir2bik3glm - '@stylelint/postcss-css-in-js': 0.38.0_62n7cnclcoj24423hvg6um5qgi - '@typescript-eslint/eslint-plugin': 5.48.1_ql6mcpnfkbsaga6lmnsbisgola - '@typescript-eslint/parser': 5.48.1_vpom273qb76jyt57dlzy5jrwce - '@umijs/babel-preset-umi': 4.0.70 - eslint-plugin-jest: 27.2.1_tiddhy4kgwjh2xwl2qbnv6f3fi - eslint-plugin-react: 7.32.2_eslint@8.41.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.41.0 - postcss: 8.4.26 - postcss-syntax: 0.36.2_postcss@8.4.26 - stylelint-config-standard: 25.0.0_stylelint@15.7.0 + '@babel/eslint-parser': 7.19.1_q5edd4sv6w2sxprkr2xie3kdmy + '@stylelint/postcss-css-in-js': 0.38.0_klfgn363pvupyvfnt3vpshrnte + '@typescript-eslint/eslint-plugin': 5.48.1_tvtk6yk6bd6rvqcptlgaggxida + '@typescript-eslint/parser': 5.48.1_sf2ha5dxxfjuf3a4egfvu5wr24 + '@umijs/babel-preset-umi': 4.0.78 + eslint-plugin-jest: 27.2.1_zzocnn2bq5g45mlbcqpxkra5ta + eslint-plugin-react: 7.32.2_eslint@8.47.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.47.0 + postcss: 8.4.28 + postcss-syntax: 0.36.2_postcss@8.4.28 + stylelint-config-standard: 25.0.0_stylelint@15.10.3 transitivePeerDependencies: - eslint - jest @@ -5444,55 +5968,55 @@ packages: - typescript dev: true - /@umijs/mfsu/4.0.70: - resolution: {integrity: sha512-Kg4SfEvU90DW9Nxfr/WozWduQmGvKAWEyUUrn6ND8i3AapUA8MOYDWRVZ/61HKHBcPt9Y6ZPg2cLWSFeNk529g==} + /@umijs/mfsu/4.0.78: + resolution: {integrity: sha512-JXaY1QMqdDotqAXmYfg7DJATM16ONTxRqUjwFadg0tRpZ+Y3PuQhBL3tBN58GGzHEEuLrCYr/z1c4ITXRTFs2g==} dependencies: - '@umijs/bundler-esbuild': 4.0.70 - '@umijs/bundler-utils': 4.0.70 - '@umijs/utils': 4.0.70 + '@umijs/bundler-esbuild': 4.0.78 + '@umijs/bundler-utils': 4.0.78 + '@umijs/utils': 4.0.78 enhanced-resolve: 5.9.3 is-equal: 1.6.4 transitivePeerDependencies: - supports-color dev: true - /@umijs/plugin-run/4.0.70: - resolution: {integrity: sha512-9hTRdY3+UVqptiK7SFFqojGDFMrHngyPPHQNu1amxIIi2oBEim4mLq3XOGPzy4c3hA7K6BHLEZlWSsmTGpbudw==} + /@umijs/plugin-run/4.0.78: + resolution: {integrity: sha512-0FiedwRK0GY9YWt9Yc14iJghHfTH1NOpw2gBCduSDNbKXf2IHgWwtCmE3DT8wayVcA+OrxlmrHqOtH8teKf5cQ==} dependencies: tsx: 3.12.7 dev: true - /@umijs/preset-umi/4.0.70_uu27r4l33n3hcb65i3giusevau: - resolution: {integrity: sha512-N9TQbuaZNz+3HTtXm1QG+LpALJx/XLEJk1CYfff8Ey3hgQVRtvR/hTo6EhsUtovoqdcfBClxidHAfy9dvJ9Ebw==} + /@umijs/preset-umi/4.0.78_yvqx3bitrswgejqi24mkfqjfbu: + resolution: {integrity: sha512-Q0ZKp0JYfusecjCqGfK5/fXh5irt2sXbvA54N2GOAKvza/vnOsa617vexujENOYyI3Ozmxf1N2nu6MsPAWXa7g==} dependencies: '@iconify/utils': 2.1.1 '@svgr/core': 6.5.1 - '@umijs/ast': 4.0.70 - '@umijs/babel-preset-umi': 4.0.70 - '@umijs/bundler-esbuild': 4.0.70 - '@umijs/bundler-utils': 4.0.70 - '@umijs/bundler-vite': 4.0.70_yctufyvybs5mhzakmaadx6pbv4 - '@umijs/bundler-webpack': 4.0.70_typescript@5.1.6 - '@umijs/core': 4.0.70 + '@umijs/ast': 4.0.78 + '@umijs/babel-preset-umi': 4.0.78 + '@umijs/bundler-esbuild': 4.0.78 + '@umijs/bundler-utils': 4.0.78 + '@umijs/bundler-vite': 4.0.78_fxmsoowtytfbkm2jtaohibxvxa + '@umijs/bundler-webpack': 4.0.78_typescript@5.2.2 + '@umijs/core': 4.0.78 '@umijs/did-you-know': 1.0.3 '@umijs/es-module-parser': 0.0.7 '@umijs/history': 5.3.1 - '@umijs/mfsu': 4.0.70 - '@umijs/plugin-run': 4.0.70 - '@umijs/renderer-react': 4.0.70_ef5jwxihqo6n7gxfmzogljlgcm - '@umijs/server': 4.0.70 + '@umijs/mfsu': 4.0.78 + '@umijs/plugin-run': 4.0.78 + '@umijs/renderer-react': 4.0.78_ef5jwxihqo6n7gxfmzogljlgcm + '@umijs/server': 4.0.78 '@umijs/ui': 3.0.1 - '@umijs/utils': 4.0.70 - '@umijs/zod2ts': 4.0.70 + '@umijs/utils': 4.0.78 + '@umijs/zod2ts': 4.0.78 babel-plugin-dynamic-import-node: 2.3.3 - click-to-react-component: 1.0.8_3dn4rtzgaeqcszdsqodiqukh7y + click-to-react-component: 1.0.8_fcew3xkfv2gjrwrdory2io26am core-js: 3.28.0 current-script-polyfill: 1.0.0 enhanced-resolve: 5.9.3 fast-glob: 3.2.12 html-webpack-plugin: 5.5.0 path-to-regexp: 1.7.0 - postcss-prefix-selector: 1.16.0_postcss@8.4.26 + postcss-prefix-selector: 1.16.0_postcss@8.4.28 react: 18.1.0 react-dom: 18.1.0_react@18.1.0 react-router: 6.3.0_react@18.1.0 @@ -5519,8 +6043,8 @@ packages: - webpack-plugin-serve dev: true - /@umijs/renderer-react/4.0.70_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-TcqCd6uwkVyy7vvZ+yi49q/dcfxHOXihz6GJbOBkH4grkeaX2hwisJkU6RG1kwXeyv0ShIZCi4ewiCTnCSJb2g==} + /@umijs/renderer-react/4.0.78_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-P6Mky/jTmvZ7yCdzWeV8FSMA/wN/tPgOIs/9H6GS06HXlg1Fem4C4b/R4C7fOHiI+AfcUK4ubV4FxIJeITfasg==} peerDependencies: react: '>=16.8' react-dom: '>=16.8' @@ -5534,8 +6058,8 @@ packages: react-router-dom: 6.3.0_biqbaboplfbrettd7655fr4n2y dev: true - /@umijs/renderer-react/4.0.70_ef5jwxihqo6n7gxfmzogljlgcm: - resolution: {integrity: sha512-TcqCd6uwkVyy7vvZ+yi49q/dcfxHOXihz6GJbOBkH4grkeaX2hwisJkU6RG1kwXeyv0ShIZCi4ewiCTnCSJb2g==} + /@umijs/renderer-react/4.0.78_ef5jwxihqo6n7gxfmzogljlgcm: + resolution: {integrity: sha512-P6Mky/jTmvZ7yCdzWeV8FSMA/wN/tPgOIs/9H6GS06HXlg1Fem4C4b/R4C7fOHiI+AfcUK4ubV4FxIJeITfasg==} peerDependencies: react: '>=16.8' react-dom: '>=16.8' @@ -5549,10 +6073,10 @@ packages: react-router-dom: 6.3.0_ef5jwxihqo6n7gxfmzogljlgcm dev: true - /@umijs/server/4.0.70: - resolution: {integrity: sha512-aoTjXCe1hDjWTNxJ8c5XZRbur+H7feifG07SBe+2kc6EIpykvtRwgp7dZmMHlgmv7ptaXmSAZjWAUDdS0NhLyg==} + /@umijs/server/4.0.78: + resolution: {integrity: sha512-58nUZywwg+BQk0DHbpfG/Ym5YMq3PLJGm/R2wH3RfUwiila2kaGzeE8EQpYiTED/UIBAVPHXYOcpFINfLos/lQ==} dependencies: - '@umijs/bundler-utils': 4.0.70 + '@umijs/bundler-utils': 4.0.78 history: 5.3.0 react: 18.1.0 react-dom: 18.1.0_react@18.1.0 @@ -5561,13 +6085,13 @@ packages: - supports-color dev: true - /@umijs/test/4.0.70: - resolution: {integrity: sha512-DFu65yo8QIPKvw/p0/7Tm87ViLk+fCtfbWMQ8e4o2u17mCKgmaQP6X+GCHWs94lgtRYHjM3zHjUUvM+UKynLHg==} + /@umijs/test/4.0.78: + resolution: {integrity: sha512-7vQbuVHT19ZK24kX2L8iEe3Z+W2dXWkdLVcaEbtO2XmCq82h5H+fdk9baijhgqKSvNVZYqXFWws12/bqHedTdQ==} dependencies: '@babel/plugin-transform-modules-commonjs': 7.21.2 '@jest/types': 27.5.1 - '@umijs/bundler-utils': 4.0.70 - '@umijs/utils': 4.0.70 + '@umijs/bundler-utils': 4.0.78 + '@umijs/utils': 4.0.78 babel-jest: 29.5.0 esbuild: 0.17.19 identity-obj-proxy: 3.0.0 @@ -5581,15 +6105,15 @@ packages: resolution: {integrity: sha512-zcz37AJH0xt/6XVVbyO/hmsK9Hq4vH23HZ4KYVi5A8rbM9KeJkJigTS7ELOdArawZhVNGe+h3a5Oixs4a2QsWw==} dev: true - /@umijs/utils/4.0.70: - resolution: {integrity: sha512-ZfDrtE7GtfYsdd5QwJiZHLMql8ZbyzUw37S7eCgIl5RTOxec1Ojqbzpfis7j8nyWyMGd/PpsuUl5909gA0U9bg==} + /@umijs/utils/4.0.78: + resolution: {integrity: sha512-LGvP6MXdRnzh0v9tjP/cMAAfCvbHF8a/00yBoot5fUW0jxJrE5Y2OSr7Km6RI000Ez/S2BnCVMdkkd7NbmTDsA==} dependencies: chokidar: 3.5.3 pino: 7.11.0 dev: true - /@umijs/zod2ts/4.0.70: - resolution: {integrity: sha512-W7Uvyb9Rx3OjUuxrgTaUdkffHNH8yEVG2TW0AgEirNL0os/mC6Wp60r5lRCftgVe+sh9d6L0x2eqp05065fTzg==} + /@umijs/zod2ts/4.0.78: + resolution: {integrity: sha512-/pszbARt0+z+PqCaT1FVjL147RyIClvvqPTGh+kJpuaUlrpzTFmvV5FrVUvdPhn8/chDMYLUmTfqwqItufpYXQ==} dev: true /@vercel/ncc/0.33.3: @@ -5603,26 +6127,26 @@ packages: peerDependencies: vite: ^4.2.0 dependencies: - '@babel/core': 7.22.1 - '@babel/plugin-transform-react-jsx-self': 7.21.0_@babel+core@7.22.1 - '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/plugin-transform-react-jsx-self': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-react-jsx-source': 7.22.5_@babel+core@7.22.11 react-refresh: 0.14.0 - vite: 4.3.1_czn76ejmismrv2aq7yiaecbkxi + vite: 4.3.1_2bcfa5fly7valb65t64arj7wgi transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-react/4.0.0_vite@4.3.9: - resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==} + /@vitejs/plugin-react/4.0.4_vite@4.4.9: + resolution: {integrity: sha512-7wU921ABnNYkETiMaZy7XqpueMnpu5VxvVps13MjmCo+utBdD79sZzrApHawHtVX66cCJQQTXFcjH0y9dSUK8g==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 dependencies: - '@babel/core': 7.22.1 - '@babel/plugin-transform-react-jsx-self': 7.21.0_@babel+core@7.22.1 - '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/plugin-transform-react-jsx-self': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-react-jsx-source': 7.22.5_@babel+core@7.22.11 react-refresh: 0.14.0 - vite: 4.3.9_ry4qyapxqh4lizdioe23q4ynly + vite: 4.4.9_qlrdcraoafkf3ts4i7jojdzbye transitivePeerDependencies: - supports-color dev: true @@ -5784,12 +6308,12 @@ packages: acorn: 8.8.2 dev: true - /acorn-jsx/5.3.2_acorn@8.8.2: + /acorn-jsx/5.3.2_acorn@8.10.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.8.2 + acorn: 8.10.0 dev: true /acorn-walk/7.2.0: @@ -5808,6 +6332,12 @@ packages: hasBin: true dev: true + /acorn/8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /acorn/8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} @@ -5982,6 +6512,13 @@ packages: type-fest: 0.21.3 dev: true + /ansi-escapes/5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} + dependencies: + type-fest: 1.4.0 + dev: true + /ansi-html-community/0.0.8: resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} engines: {'0': node >= 0.8.0} @@ -6032,7 +6569,7 @@ packages: engines: {node: '>=12'} dev: true - /antd-style/3.3.0_w62cejjhf4h4jc2euum3uv26km: + /antd-style/3.3.0_dxcbxq2sfrcuir7lwndpvtjyqy: resolution: {integrity: sha512-GgZCcM1S1Z8tWzHra0up3mVSM8lOQ2MlG4CRMTG3zjZ2nDelvjiFzEP8RYyndPA0DrWGhJvCMCrVniCSSZb9cQ==} peerDependencies: antd: ^5 @@ -6042,7 +6579,7 @@ packages: '@babel/runtime': 7.22.5 '@emotion/cache': 11.11.0 '@emotion/css': 11.11.2 - '@emotion/react': 11.11.1_bfoz4c5kom3f237nig75ykjhhy + '@emotion/react': 11.11.1_gq4reeurwxuj4hvyerswzzqthy '@emotion/serialize': 1.1.2 '@emotion/server': 11.11.0_@emotion+css@11.11.2 '@emotion/utils': 1.2.1 @@ -6102,7 +6639,7 @@ packages: rc-tabs: 12.7.1_biqbaboplfbrettd7655fr4n2y rc-textarea: 1.2.3_biqbaboplfbrettd7655fr4n2y rc-tooltip: 6.0.1_biqbaboplfbrettd7655fr4n2y - rc-tree: 5.7.4_biqbaboplfbrettd7655fr4n2y + rc-tree: 5.7.10_biqbaboplfbrettd7655fr4n2y rc-tree-select: 5.9.0_biqbaboplfbrettd7655fr4n2y rc-upload: 4.3.4_biqbaboplfbrettd7655fr4n2y rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y @@ -6267,6 +6804,18 @@ packages: get-intrinsic: 1.2.1 dev: true + /arraybuffer.prototype.slice/1.0.1: + resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + /arrify/1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} @@ -6314,6 +6863,12 @@ packages: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} dev: true + /asynciterator.prototype/1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: true + /asynckit/0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true @@ -6334,19 +6889,19 @@ packages: engines: {node: '>=8.0.0'} dev: true - /autoprefixer/10.4.14_postcss@8.4.26: - resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} + /autoprefixer/10.4.15_postcss@8.4.28: + resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.7 - caniuse-lite: 1.0.30001492 + browserslist: 4.21.10 + caniuse-lite: 1.0.30001522 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true @@ -6395,6 +6950,25 @@ packages: - supports-color dev: true + /babel-jest/27.5.1_@babel+core@7.22.11: + resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.22.11 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/babel__core': 7.20.1 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 27.5.1_@babel+core@7.22.11 + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /babel-jest/29.5.0: resolution: {integrity: sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6450,8 +7024,8 @@ packages: resolution: {integrity: sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/template': 7.21.9 - '@babel/types': 7.22.5 + '@babel/template': 7.22.5 + '@babel/types': 7.22.11 '@types/babel__core': 7.20.1 '@types/babel__traverse': 7.20.0 dev: true @@ -6461,7 +7035,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.5 - '@babel/types': 7.22.5 + '@babel/types': 7.22.11 '@types/babel__core': 7.20.1 '@types/babel__traverse': 7.20.0 dev: true @@ -6494,53 +7068,49 @@ packages: '@babel/core': 7.22.1 dev: true - /babel-plugin-polyfill-corejs2/0.4.3_@babel+core@7.22.1: + /babel-plugin-polyfill-corejs2/0.4.3_@babel+core@7.22.11: resolution: {integrity: sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.22.5 - '@babel/core': 7.22.1 - '@babel/helper-define-polyfill-provider': 0.4.0_@babel+core@7.22.1 - semver: 6.3.0 + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.11 + '@babel/helper-define-polyfill-provider': 0.4.0_@babel+core@7.22.11 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3/0.8.1_@babel+core@7.22.1: + /babel-plugin-polyfill-corejs3/0.8.1_@babel+core@7.22.11: resolution: {integrity: sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-define-polyfill-provider': 0.4.0_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-define-polyfill-provider': 0.4.0_@babel+core@7.22.11 core-js-compat: 3.31.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator/0.5.0_@babel+core@7.22.1: + /babel-plugin-polyfill-regenerator/0.5.0_@babel+core@7.22.11: resolution: {integrity: sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-define-polyfill-provider': 0.4.0_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/helper-define-polyfill-provider': 0.4.0_@babel+core@7.22.11 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-react-require/3.1.3: - resolution: {integrity: sha512-kDXhW2iPTL81x4Ye2aUMdEXQ56JP0sBJmRQRXJPH5FsNB7fOc/YCsHTqHv8IovPyw9Rk07gdd7MVUz8tUmRBCA==} - dev: true - /babel-plugin-styled-components/2.1.1: resolution: {integrity: sha512-c8lJlszObVQPguHkI+akXv8+Jgb9Ccujx0EetL7oIvwU100LxO6XAGe45qry37wUL40a5U9f23SYrivro2XKhA==} peerDependencies: styled-components: '>= 2' dependencies: - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-module-imports': 7.21.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.5 babel-plugin-syntax-jsx: 6.18.0 lodash: 4.17.21 picomatch: 2.3.1 @@ -6601,6 +7171,26 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.22.1 dev: true + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.22.11: + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.11 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.11 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.22.11 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.22.11 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.11 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.11 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.11 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.22.11 + dev: true + /babel-preset-jest/27.5.1_@babel+core@7.22.1: resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -6612,6 +7202,17 @@ packages: babel-preset-current-node-syntax: 1.0.1_@babel+core@7.22.1 dev: true + /babel-preset-jest/27.5.1_@babel+core@7.22.11: + resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.11 + babel-plugin-jest-hoist: 27.5.1 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.22.11 + dev: true + /babel-preset-jest/29.5.0: resolution: {integrity: sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6625,21 +7226,21 @@ packages: /babel-preset-react-app/10.0.1: resolution: {integrity: sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==} dependencies: - '@babel/core': 7.22.1 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.22.1 - '@babel/plugin-proposal-decorators': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.22.1 - '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.22.1 - '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.22.1 - '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.22.1 - '@babel/plugin-proposal-private-property-in-object': 7.21.11_@babel+core@7.22.1 - '@babel/plugin-transform-flow-strip-types': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-react-display-name': 7.22.5_@babel+core@7.22.1 - '@babel/plugin-transform-runtime': 7.22.5_@babel+core@7.22.1 - '@babel/preset-env': 7.22.5_@babel+core@7.22.1 - '@babel/preset-react': 7.22.5_@babel+core@7.22.1 - '@babel/preset-typescript': 7.22.5_@babel+core@7.22.1 - '@babel/runtime': 7.22.3 + '@babel/core': 7.22.11 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.22.11 + '@babel/plugin-proposal-decorators': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.22.11 + '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.22.11 + '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.22.11 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.22.11 + '@babel/plugin-proposal-private-property-in-object': 7.21.11_@babel+core@7.22.11 + '@babel/plugin-transform-flow-strip-types': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-react-display-name': 7.22.5_@babel+core@7.22.11 + '@babel/plugin-transform-runtime': 7.22.5_@babel+core@7.22.11 + '@babel/preset-env': 7.22.5_@babel+core@7.22.11 + '@babel/preset-react': 7.22.5_@babel+core@7.22.11 + '@babel/preset-typescript': 7.22.5_@babel+core@7.22.11 + '@babel/runtime': 7.22.5 babel-plugin-macros: 3.1.0 babel-plugin-transform-react-remove-prop-types: 0.4.24 transitivePeerDependencies: @@ -6766,7 +7367,7 @@ packages: dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 - chalk: 5.2.0 + chalk: 5.3.0 cli-boxes: 3.0.0 string-width: 5.1.2 type-fest: 2.19.0 @@ -6780,7 +7381,7 @@ packages: dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 - chalk: 5.2.0 + chalk: 5.3.0 cli-boxes: 3.0.0 string-width: 5.1.2 type-fest: 2.19.0 @@ -6878,6 +7479,17 @@ packages: pako: 1.0.11 dev: true + /browserslist/4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001522 + electron-to-chromium: 1.4.502 + node-releases: 2.0.13 + update-browserslist-db: 1.0.11_browserslist@4.21.10 + dev: true + /browserslist/4.21.7: resolution: {integrity: sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -6946,7 +7558,7 @@ packages: /builtins/5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.1 + semver: 7.5.4 dev: true /bundle-name/3.0.0: @@ -7097,6 +7709,16 @@ packages: quick-lru: 4.0.1 dev: true + /camelcase-keys/7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} + dependencies: + camelcase: 6.3.0 + map-obj: 4.3.0 + quick-lru: 5.1.1 + type-fest: 1.4.0 + dev: true + /camelcase/4.1.0: resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==} engines: {node: '>=4'} @@ -7130,6 +7752,10 @@ packages: resolution: {integrity: sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw==} dev: true + /caniuse-lite/1.0.30001522: + resolution: {integrity: sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==} + dev: true + /capture-stack-trace/1.0.2: resolution: {integrity: sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w==} engines: {node: '>=0.10.0'} @@ -7181,8 +7807,8 @@ packages: engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true - /chalk/5.2.0: - resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} + /chalk/5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true @@ -7318,11 +7944,11 @@ packages: restore-cursor: 2.0.0 dev: true - /cli-cursor/3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + /cli-cursor/4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - restore-cursor: 3.1.0 + restore-cursor: 4.0.0 dev: true /cli-spinners/1.3.1: @@ -7339,14 +7965,6 @@ packages: '@colors/colors': 1.5.0 dev: true - /cli-truncate/2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} - dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 - dev: true - /cli-truncate/3.1.0: resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7359,12 +7977,12 @@ packages: resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} dev: true - /click-to-react-component/1.0.8_3dn4rtzgaeqcszdsqodiqukh7y: + /click-to-react-component/1.0.8_fcew3xkfv2gjrwrdory2io26am: resolution: {integrity: sha512-YBNYOp00udy+NBEnUmM/3Df0Yco1iHNQ8k0ltlJVcDYK9AuYt14xPoJicBh/BokLqbzkci1p+pbdY5r4JXZC4g==} peerDependencies: react: '>=16.8.0' dependencies: - '@floating-ui/react-dom-interactions': 0.3.1_3dn4rtzgaeqcszdsqodiqukh7y + '@floating-ui/react-dom-interactions': 0.3.1_fcew3xkfv2gjrwrdory2io26am htm: 3.1.1 react: 18.1.0 react-merge-refs: 1.1.0 @@ -7531,6 +8149,11 @@ packages: engines: {node: '>=14'} dev: true + /commander/11.0.0: + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} + dev: true + /commander/2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: true @@ -7684,14 +8307,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /conventional-changelog-angular/5.0.13: - resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - q: 1.5.1 - dev: true - /conventional-changelog-angular/6.0.0: resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} engines: {node: '>=14'} @@ -7720,15 +8335,6 @@ packages: engines: {node: '>=14'} dev: true - /conventional-changelog-conventionalcommits/5.0.0: - resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - lodash: 4.17.21 - q: 1.5.1 - dev: true - /conventional-changelog-conventionalcommits/6.1.0: resolution: {integrity: sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==} engines: {node: '>=14'} @@ -7795,7 +8401,7 @@ packages: handlebars: 4.7.7 json-stringify-safe: 5.0.1 meow: 8.1.2 - semver: 7.5.1 + semver: 7.5.4 split: 1.0.1 dev: true @@ -7824,19 +8430,6 @@ packages: modify-values: 1.0.1 dev: true - /conventional-commits-parser/3.2.4: - resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} - engines: {node: '>=10'} - hasBin: true - dependencies: - JSONStream: 1.3.5 - is-text-path: 1.0.1 - lodash: 4.17.21 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 - dev: true - /conventional-commits-parser/4.0.0: resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} engines: {node: '>=14'} @@ -7891,7 +8484,7 @@ packages: /core-js-compat/3.31.0: resolution: {integrity: sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==} dependencies: - browserslist: 4.21.7 + browserslist: 4.21.10 dev: true /core-js-pure/3.30.2: @@ -7916,7 +8509,7 @@ packages: vary: 1.1.2 dev: true - /cosmiconfig-typescript-loader/4.3.0_bxbo7oo5ajqr2yfir3mraipcru: + /cosmiconfig-typescript-loader/4.3.0_gbiyrvx3k7fzis77ggo7qanwci: resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -7925,10 +8518,10 @@ packages: ts-node: '>=10' typescript: '>=3' dependencies: - '@types/node': 16.18.34 - cosmiconfig: 8.1.3 - ts-node: 10.9.1_sxfyhp6doxyyy5b3aojkgj4teu - typescript: 5.1.6 + '@types/node': 20.4.7 + cosmiconfig: 8.2.0 + ts-node: 10.9.1_jjsxl3z4jzcyq5yjro7btxsuqe + typescript: 5.2.2 dev: true /cosmiconfig/6.0.0: @@ -7946,21 +8539,11 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} dependencies: - '@types/parse-json': 4.0.0 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: true - - /cosmiconfig/8.1.3: - resolution: {integrity: sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==} - engines: {node: '>=14'} - dependencies: + '@types/parse-json': 4.0.0 import-fresh: 3.3.0 - js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 + yaml: 1.10.2 dev: true /cosmiconfig/8.2.0: @@ -8062,39 +8645,39 @@ packages: type-fest: 1.4.0 dev: true - /css-blank-pseudo/3.0.3_postcss@8.4.26: + /css-blank-pseudo/3.0.3_postcss@8.4.28: resolution: {integrity: sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==} engines: {node: ^12 || ^14 || >=16} hasBin: true peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /css-declaration-sorter/6.4.0_postcss@8.4.26: + /css-declaration-sorter/6.4.0_postcss@8.4.28: resolution: {integrity: sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /css-functions-list/3.1.0: - resolution: {integrity: sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==} + /css-functions-list/3.2.0: + resolution: {integrity: sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==} engines: {node: '>=12.22'} dev: true - /css-has-pseudo/3.0.4_postcss@8.4.26: + /css-has-pseudo/3.0.4_postcss@8.4.28: resolution: {integrity: sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==} engines: {node: ^12 || ^14 || >=16} hasBin: true peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true @@ -8104,14 +8687,14 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.26 - postcss: 8.4.26 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.26 - postcss-modules-local-by-default: 4.0.3_postcss@8.4.26 - postcss-modules-scope: 3.0.0_postcss@8.4.26 - postcss-modules-values: 4.0.0_postcss@8.4.26 + icss-utils: 5.1.0_postcss@8.4.28 + postcss: 8.4.28 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.28 + postcss-modules-local-by-default: 4.0.3_postcss@8.4.28 + postcss-modules-scope: 3.0.0_postcss@8.4.28 + postcss-modules-values: 4.0.0_postcss@8.4.28 postcss-value-parser: 4.2.0 - semver: 7.5.1 + semver: 7.5.4 dev: true /css-loader/6.7.1_webpack@5.86.0: @@ -8120,14 +8703,14 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.26 - postcss: 8.4.26 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.26 - postcss-modules-local-by-default: 4.0.3_postcss@8.4.26 - postcss-modules-scope: 3.0.0_postcss@8.4.26 - postcss-modules-values: 4.0.0_postcss@8.4.26 + icss-utils: 5.1.0_postcss@8.4.28 + postcss: 8.4.28 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.28 + postcss-modules-local-by-default: 4.0.3_postcss@8.4.28 + postcss-modules-scope: 3.0.0_postcss@8.4.28 + postcss-modules-values: 4.0.0_postcss@8.4.28 postcss-value-parser: 4.2.0 - semver: 7.5.1 + semver: 7.5.4 webpack: 5.86.0 dev: true @@ -8150,23 +8733,23 @@ packages: esbuild: optional: true dependencies: - cssnano: 5.1.15_postcss@8.4.26 + cssnano: 5.1.15_postcss@8.4.28 jest-worker: 27.5.1 - postcss: 8.4.26 + postcss: 8.4.28 schema-utils: 4.1.0 serialize-javascript: 6.0.1 source-map: 0.6.1 webpack: 5.86.0 dev: true - /css-prefers-color-scheme/6.0.3_postcss@8.4.26: + /css-prefers-color-scheme/6.0.3_postcss@8.4.28: resolution: {integrity: sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==} engines: {node: ^12 || ^14 || >=16} hasBin: true peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true /css-select-base-adapter/0.1.1: @@ -8266,80 +8849,80 @@ packages: hasBin: true dev: true - /cssnano-preset-default/5.2.14_postcss@8.4.26: + /cssnano-preset-default/5.2.14_postcss@8.4.28: resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.4.0_postcss@8.4.26 - cssnano-utils: 3.1.0_postcss@8.4.26 - postcss: 8.4.26 - postcss-calc: 8.2.4_postcss@8.4.26 - postcss-colormin: 5.3.1_postcss@8.4.26 - postcss-convert-values: 5.1.3_postcss@8.4.26 - postcss-discard-comments: 5.1.2_postcss@8.4.26 - postcss-discard-duplicates: 5.1.0_postcss@8.4.26 - postcss-discard-empty: 5.1.1_postcss@8.4.26 - postcss-discard-overridden: 5.1.0_postcss@8.4.26 - postcss-merge-longhand: 5.1.7_postcss@8.4.26 - postcss-merge-rules: 5.1.4_postcss@8.4.26 - postcss-minify-font-values: 5.1.0_postcss@8.4.26 - postcss-minify-gradients: 5.1.1_postcss@8.4.26 - postcss-minify-params: 5.1.4_postcss@8.4.26 - postcss-minify-selectors: 5.2.1_postcss@8.4.26 - postcss-normalize-charset: 5.1.0_postcss@8.4.26 - postcss-normalize-display-values: 5.1.0_postcss@8.4.26 - postcss-normalize-positions: 5.1.1_postcss@8.4.26 - postcss-normalize-repeat-style: 5.1.1_postcss@8.4.26 - postcss-normalize-string: 5.1.0_postcss@8.4.26 - postcss-normalize-timing-functions: 5.1.0_postcss@8.4.26 - postcss-normalize-unicode: 5.1.1_postcss@8.4.26 - postcss-normalize-url: 5.1.0_postcss@8.4.26 - postcss-normalize-whitespace: 5.1.1_postcss@8.4.26 - postcss-ordered-values: 5.1.3_postcss@8.4.26 - postcss-reduce-initial: 5.1.2_postcss@8.4.26 - postcss-reduce-transforms: 5.1.0_postcss@8.4.26 - postcss-svgo: 5.1.0_postcss@8.4.26 - postcss-unique-selectors: 5.1.1_postcss@8.4.26 - dev: true - - /cssnano-preset-default/6.0.1_postcss@8.4.26: + css-declaration-sorter: 6.4.0_postcss@8.4.28 + cssnano-utils: 3.1.0_postcss@8.4.28 + postcss: 8.4.28 + postcss-calc: 8.2.4_postcss@8.4.28 + postcss-colormin: 5.3.1_postcss@8.4.28 + postcss-convert-values: 5.1.3_postcss@8.4.28 + postcss-discard-comments: 5.1.2_postcss@8.4.28 + postcss-discard-duplicates: 5.1.0_postcss@8.4.28 + postcss-discard-empty: 5.1.1_postcss@8.4.28 + postcss-discard-overridden: 5.1.0_postcss@8.4.28 + postcss-merge-longhand: 5.1.7_postcss@8.4.28 + postcss-merge-rules: 5.1.4_postcss@8.4.28 + postcss-minify-font-values: 5.1.0_postcss@8.4.28 + postcss-minify-gradients: 5.1.1_postcss@8.4.28 + postcss-minify-params: 5.1.4_postcss@8.4.28 + postcss-minify-selectors: 5.2.1_postcss@8.4.28 + postcss-normalize-charset: 5.1.0_postcss@8.4.28 + postcss-normalize-display-values: 5.1.0_postcss@8.4.28 + postcss-normalize-positions: 5.1.1_postcss@8.4.28 + postcss-normalize-repeat-style: 5.1.1_postcss@8.4.28 + postcss-normalize-string: 5.1.0_postcss@8.4.28 + postcss-normalize-timing-functions: 5.1.0_postcss@8.4.28 + postcss-normalize-unicode: 5.1.1_postcss@8.4.28 + postcss-normalize-url: 5.1.0_postcss@8.4.28 + postcss-normalize-whitespace: 5.1.1_postcss@8.4.28 + postcss-ordered-values: 5.1.3_postcss@8.4.28 + postcss-reduce-initial: 5.1.2_postcss@8.4.28 + postcss-reduce-transforms: 5.1.0_postcss@8.4.28 + postcss-svgo: 5.1.0_postcss@8.4.28 + postcss-unique-selectors: 5.1.1_postcss@8.4.28 + dev: true + + /cssnano-preset-default/6.0.1_postcss@8.4.28: resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.4.0_postcss@8.4.26 - cssnano-utils: 4.0.0_postcss@8.4.26 - postcss: 8.4.26 - postcss-calc: 9.0.1_postcss@8.4.26 - postcss-colormin: 6.0.0_postcss@8.4.26 - postcss-convert-values: 6.0.0_postcss@8.4.26 - postcss-discard-comments: 6.0.0_postcss@8.4.26 - postcss-discard-duplicates: 6.0.0_postcss@8.4.26 - postcss-discard-empty: 6.0.0_postcss@8.4.26 - postcss-discard-overridden: 6.0.0_postcss@8.4.26 - postcss-merge-longhand: 6.0.0_postcss@8.4.26 - postcss-merge-rules: 6.0.1_postcss@8.4.26 - postcss-minify-font-values: 6.0.0_postcss@8.4.26 - postcss-minify-gradients: 6.0.0_postcss@8.4.26 - postcss-minify-params: 6.0.0_postcss@8.4.26 - postcss-minify-selectors: 6.0.0_postcss@8.4.26 - postcss-normalize-charset: 6.0.0_postcss@8.4.26 - postcss-normalize-display-values: 6.0.0_postcss@8.4.26 - postcss-normalize-positions: 6.0.0_postcss@8.4.26 - postcss-normalize-repeat-style: 6.0.0_postcss@8.4.26 - postcss-normalize-string: 6.0.0_postcss@8.4.26 - postcss-normalize-timing-functions: 6.0.0_postcss@8.4.26 - postcss-normalize-unicode: 6.0.0_postcss@8.4.26 - postcss-normalize-url: 6.0.0_postcss@8.4.26 - postcss-normalize-whitespace: 6.0.0_postcss@8.4.26 - postcss-ordered-values: 6.0.0_postcss@8.4.26 - postcss-reduce-initial: 6.0.0_postcss@8.4.26 - postcss-reduce-transforms: 6.0.0_postcss@8.4.26 - postcss-svgo: 6.0.0_postcss@8.4.26 - postcss-unique-selectors: 6.0.0_postcss@8.4.26 + css-declaration-sorter: 6.4.0_postcss@8.4.28 + cssnano-utils: 4.0.0_postcss@8.4.28 + postcss: 8.4.28 + postcss-calc: 9.0.1_postcss@8.4.28 + postcss-colormin: 6.0.0_postcss@8.4.28 + postcss-convert-values: 6.0.0_postcss@8.4.28 + postcss-discard-comments: 6.0.0_postcss@8.4.28 + postcss-discard-duplicates: 6.0.0_postcss@8.4.28 + postcss-discard-empty: 6.0.0_postcss@8.4.28 + postcss-discard-overridden: 6.0.0_postcss@8.4.28 + postcss-merge-longhand: 6.0.0_postcss@8.4.28 + postcss-merge-rules: 6.0.1_postcss@8.4.28 + postcss-minify-font-values: 6.0.0_postcss@8.4.28 + postcss-minify-gradients: 6.0.0_postcss@8.4.28 + postcss-minify-params: 6.0.0_postcss@8.4.28 + postcss-minify-selectors: 6.0.0_postcss@8.4.28 + postcss-normalize-charset: 6.0.0_postcss@8.4.28 + postcss-normalize-display-values: 6.0.0_postcss@8.4.28 + postcss-normalize-positions: 6.0.0_postcss@8.4.28 + postcss-normalize-repeat-style: 6.0.0_postcss@8.4.28 + postcss-normalize-string: 6.0.0_postcss@8.4.28 + postcss-normalize-timing-functions: 6.0.0_postcss@8.4.28 + postcss-normalize-unicode: 6.0.0_postcss@8.4.28 + postcss-normalize-url: 6.0.0_postcss@8.4.28 + postcss-normalize-whitespace: 6.0.0_postcss@8.4.28 + postcss-ordered-values: 6.0.0_postcss@8.4.28 + postcss-reduce-initial: 6.0.0_postcss@8.4.28 + postcss-reduce-transforms: 6.0.0_postcss@8.4.28 + postcss-svgo: 6.0.0_postcss@8.4.28 + postcss-unique-selectors: 6.0.0_postcss@8.4.28 dev: true /cssnano-util-same-parent/4.0.1: @@ -8347,45 +8930,45 @@ packages: engines: {node: '>=6.9.0'} dev: true - /cssnano-utils/3.1.0_postcss@8.4.26: + /cssnano-utils/3.1.0_postcss@8.4.28: resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /cssnano-utils/4.0.0_postcss@8.4.26: + /cssnano-utils/4.0.0_postcss@8.4.28: resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /cssnano/5.1.15_postcss@8.4.26: + /cssnano/5.1.15_postcss@8.4.28: resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.14_postcss@8.4.26 + cssnano-preset-default: 5.2.14_postcss@8.4.28 lilconfig: 2.1.0 - postcss: 8.4.26 + postcss: 8.4.28 yaml: 1.10.2 dev: true - /cssnano/6.0.1_postcss@8.4.26: + /cssnano/6.0.1_postcss@8.4.28: resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 6.0.1_postcss@8.4.26 + cssnano-preset-default: 6.0.1_postcss@8.4.28 lilconfig: 2.1.0 - postcss: 8.4.26 + postcss: 8.4.28 dev: true /csso/4.2.0: @@ -8533,6 +9116,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /decamelize/5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + dev: true + /decimal.js/10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: true @@ -8618,7 +9206,7 @@ packages: dependencies: bundle-name: 3.0.0 default-browser-id: 3.0.0 - execa: 7.1.1 + execa: 7.2.0 titleize: 3.0.0 dev: true @@ -8773,10 +9361,6 @@ packages: path-type: 4.0.0 dev: true - /discontinuous-range/1.0.0: - resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} - dev: true - /dlv/1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} dev: true @@ -8937,16 +9521,16 @@ packages: engines: {node: '>=10'} dev: true - /dumi-afx-deps/1.0.0-alpha.15: - resolution: {integrity: sha512-wX6qr1ijp9ZbkXTJiO4J+d57Somcpmlnc0mi/Efmso0QuIgEnlxFuFLZGy19Er4t6j+jf4DGbqFste9LzEliCQ==} + /dumi-afx-deps/1.0.0-alpha.19: + resolution: {integrity: sha512-kc+8c5r5uEmYH1xQJj30qTYtzYPHbtT7baXZdL2DU1basdNHT3eCMGKu8cpKRzLlRXyAADWqKgt6If48cf88uw==} dev: true /dumi-assets-types/2.0.0-alpha.0: resolution: {integrity: sha512-a/Y5lf0G6gwsEQ9hop/n03CcjmHsGBk384Cz/AEX6mRYrfSpUx/lQvP9HLoXkCzScl9PL1sSmLPnMkgaXDCZLA==} dev: true - /dumi/2.2.1_6vmw36hiqpnrq6vph2qfodiphm: - resolution: {integrity: sha512-9AU79JbFQ+hhkL2Y0XYEuSuwiyz+U2KcqstzI68n9BKYODP9VGs0UlfrHfd8W+8bSbiHTNXNz0eRbBdZBMswgQ==} + /dumi/2.2.6_5a6klyh4k4rnniv7alg3hozlqy: + resolution: {integrity: sha512-1hzmn2KI4fwBT+WL8vNfUdH86qXzPZc4S87N41UUv+pngVkWeWFLzDaoAj69gjF7XsAw2V/dFV3qMipacXOMHw==} hasBin: true peerDependencies: react: '>=16.8' @@ -8955,30 +9539,30 @@ packages: '@ant-design/icons-svg': 4.2.1 '@makotot/ghostui': 2.0.0_react@18.2.0 '@stackblitz/sdk': 1.9.0 - '@swc/core': 1.3.57 - '@types/hast': 2.3.4 - '@types/mdast': 3.0.11 - '@types/nprogress': 0.2.0 - '@umijs/bundler-utils': 4.0.70 - '@umijs/core': 4.0.70 + '@swc/core': 1.3.72 + '@types/hast': 2.3.5 + '@types/mdast': 3.0.12 + '@umijs/bundler-utils': 4.0.78 + '@umijs/core': 4.0.78 animated-scroll-to: 2.3.0 classnames: 2.3.2 codesandbox: 2.2.3 copy-to-clipboard: 3.3.3 deepmerge: 4.3.1 - dumi-afx-deps: 1.0.0-alpha.15 + dumi-afx-deps: 1.0.0-alpha.19 dumi-assets-types: 2.0.0-alpha.0 - enhanced-resolve: 5.14.1 + enhanced-resolve: 5.15.0 estree-util-to-js: 1.2.0 estree-util-visit: 1.2.1 - file-system-cache: 2.3.0 + file-system-cache: 2.4.4 github-slugger: 1.5.0 hast-util-is-element: 2.1.3 - hast-util-raw: 7.2.3 + hast-util-raw: 8.0.0 hast-util-to-estree: 2.3.3 hast-util-to-string: 2.0.0 heti: 0.9.4 - html-to-text: 8.2.1 + hosted-git-info: 6.1.1 + html-to-text: 9.0.5 html2sketch: 1.0.2 js-yaml: 4.1.0 lodash.throttle: 4.1.1 @@ -8991,13 +9575,13 @@ packages: prismjs: 1.29.0 raw-loader: 4.0.2 rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y - rc-tabs: 12.7.1_biqbaboplfbrettd7655fr4n2y - rc-tree: 5.7.4_biqbaboplfbrettd7655fr4n2y + rc-tabs: 12.11.0_biqbaboplfbrettd7655fr4n2y + rc-tree: 5.7.10_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-copy-to-clipboard: 5.1.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0 - react-error-boundary: 3.1.4_react@18.2.0 - react-intl: 6.4.4_i5n5dea2j27pemvkl7j4yxbax4 + react-error-boundary: 4.0.11_react@18.2.0 + react-intl: 6.4.4_met4wgzfujk7j64aelglgsjh3q rehype-autolink-headings: 6.1.1 rehype-remove-comments: 5.0.0 rehype-stringify: 9.0.3 @@ -9006,9 +9590,9 @@ packages: remark-gfm: 3.0.1 remark-parse: 10.0.2 remark-rehype: 10.1.0 - sass: 1.62.1 + sass: 1.66.1 sitemap: 7.1.1 - umi: 4.0.70_x5gi6wxwbmpr4zqpfjt6hjb6oi + umi: 4.0.78_r6w5bo3yqebnxfnb3y67fqrpby unified: 10.1.2 unist-util-visit: 4.1.2 unist-util-visit-parents: 5.1.3 @@ -9089,7 +9673,7 @@ packages: engines: {node: '>=0.8'} dependencies: errlop: 2.2.0 - semver: 6.3.0 + semver: 6.3.1 dev: true /ee-first/1.1.1: @@ -9108,6 +9692,10 @@ packages: resolution: {integrity: sha512-RRuCvP6ekngVh2SAJaOKT/hxqc9JAsK+Pe0hP5tGQIfonU2Zy9gMGdJ+mBdyl/vNucMG6gkXYtuM4H/1giws5w==} dev: true + /electron-to-chromium/1.4.502: + resolution: {integrity: sha512-xqeGw3Gr6o3uyHy/yKjdnDQHY2RQvXcGC2cfHjccK1IGkH6cX1WQBN8EeC/YpwPhGkBaikDTecJ8+ssxSVRQlw==} + dev: true + /elliptic/6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} dependencies: @@ -9165,8 +9753,8 @@ packages: once: 1.4.0 dev: true - /enhanced-resolve/5.14.1: - resolution: {integrity: sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==} + /enhanced-resolve/5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -9181,11 +9769,12 @@ packages: tapable: 2.2.1 dev: true - /enquirer/2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + /enquirer/2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 + strip-ansi: 6.0.1 dev: true /entities/2.2.0: @@ -9276,6 +9865,51 @@ packages: which-typed-array: 1.1.9 dev: true + /es-abstract/1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.1 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-array-concat: 1.0.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: true + /es-array-method-boxes-properly/1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} dev: true @@ -9294,6 +9928,25 @@ packages: stop-iteration-iterator: 1.0.0 dev: true + /es-iterator-helpers/1.0.13: + resolution: {integrity: sha512-LK3VGwzvaPWobO8xzXXGRUOGw8Dcjyfk62CsY/wfHN75CwsJPbuypOYJxK6g5RyEL8YDjIWcl6jgd8foO6mmrA==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-set-tostringtag: 2.0.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + iterator.prototype: 1.1.0 + safe-array-concat: 1.0.0 + dev: true + /es-module-lexer/1.3.0: resolution: {integrity: sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==} dev: true @@ -9366,6 +10019,36 @@ packages: '@esbuild/win32-x64': 0.17.19 dev: true + /esbuild/0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + dev: true + /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -9413,16 +10096,16 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier/8.8.0_eslint@8.41.0: - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + /eslint-config-prettier/9.0.0_eslint@8.47.0: + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.41.0 + eslint: 8.47.0 dev: true - /eslint-config-react-app/7.0.1_i6ydrlk3re3lfoxdqgyo7fjx6a: + /eslint-config-react-app/7.0.1_n5f53kj4ou6d42lt7y5vdoemf4: resolution: {integrity: sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -9432,22 +10115,22 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.22.1 - '@babel/eslint-parser': 7.19.1_by4wejwpbvx7rwok4n5jgqnouy + '@babel/core': 7.22.11 + '@babel/eslint-parser': 7.19.1_erffllvglgz6k2uoq3qtxzxb24 '@rushstack/eslint-patch': 1.3.1 - '@typescript-eslint/eslint-plugin': 5.59.9_qb52hxwymttcv6keasteivhon4 - '@typescript-eslint/parser': 5.59.9_vpom273qb76jyt57dlzy5jrwce + '@typescript-eslint/eslint-plugin': 5.62.0_jkm4zv3ijokxgddfzejucr72i4 + '@typescript-eslint/parser': 5.62.0_sf2ha5dxxfjuf3a4egfvu5wr24 babel-preset-react-app: 10.0.1 confusing-browser-globals: 1.0.11 - eslint: 8.41.0 - eslint-plugin-flowtype: 8.0.3_eslint@8.41.0 - eslint-plugin-import: 2.27.5_3ofcnez4v5mtdbmj3wh2krsya4 - eslint-plugin-jest: 25.7.0_yxpn3q6yeabbob5qbfsnn4jjaq - eslint-plugin-jsx-a11y: 6.7.1_eslint@8.41.0 - eslint-plugin-react: 7.32.2_eslint@8.41.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.41.0 - eslint-plugin-testing-library: 5.11.0_vpom273qb76jyt57dlzy5jrwce - typescript: 5.1.6 + eslint: 8.47.0 + eslint-plugin-flowtype: 8.0.3_eslint@8.47.0 + eslint-plugin-import: 2.27.5_d2ajlqlsbxlpxgtbsghthbjqlq + eslint-plugin-jest: 25.7.0_6wd56pm5rdewnbf2l66zlcfb4i + eslint-plugin-jsx-a11y: 6.7.1_eslint@8.47.0 + eslint-plugin-react: 7.33.2_eslint@8.47.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.47.0 + eslint-plugin-testing-library: 5.11.0_sf2ha5dxxfjuf3a4egfvu5wr24 + typescript: 5.2.2 transitivePeerDependencies: - '@babel/plugin-syntax-flow' - '@babel/plugin-transform-react-jsx' @@ -9467,7 +10150,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.8.0_g37zm7n5gewfd3izwvhbrw6lse: + /eslint-module-utils/2.8.0_qounl6txyrpwaq74ygco4bnlsq: resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -9488,15 +10171,15 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.9_vpom273qb76jyt57dlzy5jrwce + '@typescript-eslint/parser': 5.62.0_sf2ha5dxxfjuf3a4egfvu5wr24 debug: 3.2.7 - eslint: 8.41.0 + eslint: 8.47.0 eslint-import-resolver-node: 0.3.7 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-flowtype/8.0.3_eslint@8.41.0: + /eslint-plugin-flowtype/8.0.3_eslint@8.47.0: resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -9504,12 +10187,12 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - eslint: 8.41.0 + eslint: 8.47.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-import/2.27.5_3ofcnez4v5mtdbmj3wh2krsya4: + /eslint-plugin-import/2.27.5_d2ajlqlsbxlpxgtbsghthbjqlq: resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -9519,22 +10202,22 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.9_vpom273qb76jyt57dlzy5jrwce + '@typescript-eslint/parser': 5.62.0_sf2ha5dxxfjuf3a4egfvu5wr24 array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.41.0 + eslint: 8.47.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0_g37zm7n5gewfd3izwvhbrw6lse + eslint-module-utils: 2.8.0_qounl6txyrpwaq74ygco4bnlsq has: 1.0.3 is-core-module: 2.12.1 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 resolve: 1.22.2 - semver: 6.3.0 + semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -9542,7 +10225,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest/25.7.0_yxpn3q6yeabbob5qbfsnn4jjaq: + /eslint-plugin-jest/25.7.0_6wd56pm5rdewnbf2l66zlcfb4i: resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} peerDependencies: @@ -9555,16 +10238,16 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.59.9_qb52hxwymttcv6keasteivhon4 - '@typescript-eslint/experimental-utils': 5.59.9_vpom273qb76jyt57dlzy5jrwce - eslint: 8.41.0 + '@typescript-eslint/eslint-plugin': 5.62.0_jkm4zv3ijokxgddfzejucr72i4 + '@typescript-eslint/experimental-utils': 5.59.9_sf2ha5dxxfjuf3a4egfvu5wr24 + eslint: 8.47.0 jest: 27.5.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jest/27.2.1_tiddhy4kgwjh2xwl2qbnv6f3fi: + /eslint-plugin-jest/27.2.1_zzocnn2bq5g45mlbcqpxkra5ta: resolution: {integrity: sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -9577,15 +10260,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.48.1_ql6mcpnfkbsaga6lmnsbisgola - '@typescript-eslint/utils': 5.59.9_vpom273qb76jyt57dlzy5jrwce - eslint: 8.41.0 + '@typescript-eslint/eslint-plugin': 5.48.1_tvtk6yk6bd6rvqcptlgaggxida + '@typescript-eslint/utils': 5.59.9_sf2ha5dxxfjuf3a4egfvu5wr24 + eslint: 8.47.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsx-a11y/6.7.1_eslint@8.41.0: + /eslint-plugin-jsx-a11y/6.7.1_eslint@8.47.0: resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -9600,43 +10283,47 @@ packages: axobject-query: 3.1.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.41.0 + eslint: 8.47.0 has: 1.0.3 jsx-ast-utils: 3.3.3 language-tags: 1.0.5 minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 - semver: 6.3.0 + semver: 6.3.1 dev: true - /eslint-plugin-prettier/4.2.1_xcqkel4mpum3npntysob2xmn54: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} + /eslint-plugin-prettier/5.0.0_uyvdvlpviyvawi4o4rvt2srziy: + resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=7.28.0' + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' eslint-config-prettier: '*' - prettier: '>=2.0.0' + prettier: '>=3.0.0' peerDependenciesMeta: + '@types/eslint': + optional: true eslint-config-prettier: optional: true dependencies: - eslint: 8.41.0 - eslint-config-prettier: 8.8.0_eslint@8.41.0 - prettier: 2.8.8 + eslint: 8.47.0 + eslint-config-prettier: 9.0.0_eslint@8.47.0 + prettier: 3.0.2 prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 dev: true - /eslint-plugin-react-hooks/4.6.0_eslint@8.41.0: + /eslint-plugin-react-hooks/4.6.0_eslint@8.47.0: resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.41.0 + eslint: 8.47.0 dev: true - /eslint-plugin-react/7.32.2_eslint@8.41.0: + /eslint-plugin-react/7.32.2_eslint@8.47.0: resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: @@ -9646,7 +10333,7 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.41.0 + eslint: 8.47.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 @@ -9660,14 +10347,39 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-testing-library/5.11.0_vpom273qb76jyt57dlzy5jrwce: + /eslint-plugin-react/7.33.2_eslint@8.47.0: + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + array.prototype.tosorted: 1.1.1 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.13 + eslint: 8.47.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.3 + minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + object.hasown: 1.1.2 + object.values: 1.1.6 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.1 + string.prototype.matchall: 4.0.8 + dev: true + + /eslint-plugin-testing-library/5.11.0_sf2ha5dxxfjuf3a4egfvu5wr24: resolution: {integrity: sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.59.9_vpom273qb76jyt57dlzy5jrwce - eslint: 8.41.0 + '@typescript-eslint/utils': 5.62.0_sf2ha5dxxfjuf3a4egfvu5wr24 + eslint: 8.47.0 transitivePeerDependencies: - supports-color - typescript @@ -9681,21 +10393,21 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope/7.2.0: - resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} + /eslint-scope/7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.41.0: + /eslint-utils/3.0.0_eslint@8.47.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.41.0 + eslint: 8.47.0 eslint-visitor-keys: 2.1.0 dev: true @@ -9704,12 +10416,12 @@ packages: engines: {node: '>=10'} dev: true - /eslint-visitor-keys/3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + /eslint-visitor-keys/3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint-webpack-plugin/3.2.0_e7ximgwtgqinidfiut5pwkg6dm: + /eslint-webpack-plugin/3.2.0_6oa5roqlvdcxzk3es7qzdn6wii: resolution: {integrity: sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -9717,7 +10429,7 @@ packages: webpack: ^5.0.0 dependencies: '@types/eslint': 8.40.1 - eslint: 8.41.0 + eslint: 8.47.0 jest-worker: 28.1.3 micromatch: 4.0.5 normalize-path: 3.0.0 @@ -9725,16 +10437,16 @@ packages: webpack: 5.86.0 dev: true - /eslint/8.41.0: - resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==} + /eslint/8.47.0: + resolution: {integrity: sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.41.0 - '@eslint-community/regexpp': 4.5.1 - '@eslint/eslintrc': 2.0.3 - '@eslint/js': 8.41.0 - '@humanwhocodes/config-array': 0.11.8 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.47.0 + '@eslint-community/regexpp': 4.7.0 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.47.0 + '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -9743,9 +10455,9 @@ packages: debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.1 - espree: 9.5.2 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -9755,7 +10467,6 @@ packages: globals: 13.20.0 graphemer: 1.4.0 ignore: 5.2.4 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -9765,28 +10476,27 @@ packages: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 + optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color dev: true - /esno/0.16.3: - resolution: {integrity: sha512-6slSBEV1lMKcX13DBifvnDFpNno5WXhw4j/ff7RI0y51BZiDqEe5dNhhjhIQ3iCOQuzsm2MbVzmwqbN78BBhPg==} + /esno/0.17.0: + resolution: {integrity: sha512-w78cQGlptQfsBYfootUCitsKS+MD74uR5L6kNsvwVkJsfzEepIafbvWsx2xK4rcFP4IUftt4F6J8EhagUxX+Bg==} hasBin: true dependencies: tsx: 3.12.7 dev: true - /espree/9.5.2: - resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} + /espree/9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2_acorn@8.8.2 - eslint-visitor-keys: 3.4.1 + acorn: 8.10.0 + acorn-jsx: 5.3.2_acorn@8.10.0 + eslint-visitor-keys: 3.4.3 dev: true /esprima/4.0.1: @@ -9870,6 +10580,10 @@ packages: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: true + /eventemitter3/5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: true + /events/3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -9910,8 +10624,8 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa/7.1.1: - resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} + /execa/7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} dependencies: cross-spawn: 7.0.3 @@ -9925,6 +10639,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/0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -10036,6 +10765,17 @@ packages: micromatch: 4.0.5 dev: true + /fast-glob/3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true @@ -10070,21 +10810,20 @@ packages: reusify: 1.0.4 dev: true - /father/4.2.3_@types+node@16.18.34: - resolution: {integrity: sha512-noRg6QGQ0+b7sdzjo6Re1TfqGpmF4hhcxjyLgr6NK4JoroW2ENXb0ewpOW3p2+7a67ltiBn/S4gYHXs9ptSrvQ==} + /father/4.3.1_@types+node@20.5.6: + resolution: {integrity: sha512-1s9WwUtjOgBogV4X0YTiOBZiwnmKRbUffq8Nih5HXvcL2HM4Clh9jDyaYhPrl+9LpJwXsSgT6kAn90A3PHHsVw==} hasBin: true dependencies: - '@microsoft/api-extractor': 7.34.3_@types+node@16.18.34 - '@umijs/babel-preset-umi': 4.0.70 - '@umijs/bundler-utils': 4.0.70 - '@umijs/bundler-webpack': 4.0.70_typescript@4.8.4 + '@microsoft/api-extractor': 7.36.3_@types+node@20.5.6 + '@umijs/babel-preset-umi': 4.0.78 + '@umijs/bundler-utils': 4.0.78 + '@umijs/bundler-webpack': 4.0.78_typescript@5.0.4 '@umijs/case-sensitive-paths-webpack-plugin': 1.0.1 - '@umijs/core': 4.0.70 - '@umijs/utils': 4.0.70 + '@umijs/core': 4.0.78 + '@umijs/utils': 4.0.78 '@vercel/ncc': 0.33.3 babel-plugin-dynamic-import-node: 2.3.3 babel-plugin-module-resolver: 4.1.0 - babel-plugin-react-require: 3.1.3 babel-plugin-transform-define: 2.0.1 enhanced-resolve: 5.9.3 fast-glob: 3.2.12 @@ -10092,8 +10831,8 @@ packages: loader-runner: 4.2.0 minimatch: 3.1.2 tsconfig-paths: 4.0.0 - typescript: 4.8.4 - typescript-transform-paths: 3.4.6_typescript@4.8.4 + typescript: 5.0.4 + typescript-transform-paths: 3.4.6_typescript@5.0.4 v8-compile-cache: 2.3.0 transitivePeerDependencies: - '@types/node' @@ -10178,9 +10917,11 @@ packages: ramda: 0.28.0 dev: true - /file-system-cache/2.3.0: - resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} + /file-system-cache/2.4.4: + resolution: {integrity: sha512-vCYhn8pb5nlC3Gs2FFCOkmf4NEg2Ym3ulJwkmS9o6p9oRShGj6CwTMFvpgZihBlsh373NaM0XgAgDHXQIlS4LQ==} dependencies: + '@types/fs-extra': 11.0.1 + '@types/ramda': 0.29.3 fs-extra: 11.1.1 ramda: 0.29.0 dev: true @@ -10347,10 +11088,10 @@ packages: engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 - signal-exit: 4.0.2 + signal-exit: 4.1.0 dev: true - /fork-ts-checker-webpack-plugin/6.5.3_t7tkqw6lef7ii5lqgcyttb6s3a: + /fork-ts-checker-webpack-plugin/6.5.3_y2ocxpfygslkyvnwbboiuyz2fa: resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: @@ -10364,32 +11105,32 @@ packages: vue-template-compiler: optional: true dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 '@types/json-schema': 7.0.12 chalk: 4.1.2 chokidar: 3.5.3 cosmiconfig: 6.0.0 deepmerge: 4.3.1 - eslint: 8.41.0 + eslint: 8.47.0 fs-extra: 9.1.0 glob: 7.2.3 memfs: 3.5.1 minimatch: 3.1.2 schema-utils: 2.7.0 - semver: 7.5.1 + semver: 7.5.4 tapable: 1.1.3 - typescript: 5.1.6 + typescript: 5.2.2 webpack: 5.86.0 dev: true - /fork-ts-checker-webpack-plugin/8.0.0_typescript@4.8.4: + /fork-ts-checker-webpack-plugin/8.0.0_typescript@5.0.4: resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: typescript: '>3.6.0' webpack: ^5.11.0 dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 chalk: 4.1.2 chokidar: 3.5.3 cosmiconfig: 7.1.0 @@ -10399,19 +11140,19 @@ packages: minimatch: 3.1.2 node-abort-controller: 3.1.1 schema-utils: 3.1.2 - semver: 7.5.1 + semver: 7.5.4 tapable: 2.2.1 - typescript: 4.8.4 + typescript: 5.0.4 dev: true - /fork-ts-checker-webpack-plugin/8.0.0_typescript@5.1.6: + /fork-ts-checker-webpack-plugin/8.0.0_typescript@5.2.2: resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: typescript: '>3.6.0' webpack: ^5.11.0 dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 chalk: 4.1.2 chokidar: 3.5.3 cosmiconfig: 7.1.0 @@ -10421,9 +11162,9 @@ packages: minimatch: 3.1.2 node-abort-controller: 3.1.1 schema-utils: 3.1.2 - semver: 7.5.1 + semver: 7.5.4 tapable: 2.2.1 - typescript: 5.1.6 + typescript: 5.2.2 dev: true /form-data-encoder/2.1.4: @@ -10675,6 +11416,11 @@ packages: engines: {node: '>=10'} dev: true + /get-stream/8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + /get-symbol-description/1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -10694,17 +11440,17 @@ packages: engines: {node: '>=0.10.0'} dev: true - /gh-pages/5.0.0: - resolution: {integrity: sha512-Nqp1SjkPIB94Xw/3yYNTUL+G2dxlhjvv1zeN/4kMC1jfViTEqhtVz/Ba1zSXHuvXCN9ADNS1dN4r5/J/nZWEQQ==} + /gh-pages/6.0.0: + resolution: {integrity: sha512-FXZWJRsvP/fK2HJGY+Di6FRNHvqFF6gOIELaopDjXXgjeOYSNURcuYwEO/6bwuq6koP5Lnkvnr5GViXzuOB89g==} engines: {node: '>=10'} hasBin: true dependencies: async: 3.2.4 - commander: 2.20.3 + commander: 11.0.0 email-addresses: 5.0.0 filenamify: 4.3.0 find-cache-dir: 3.3.2 - fs-extra: 8.1.0 + fs-extra: 11.1.1 globby: 6.1.0 dev: true @@ -10772,7 +11518,7 @@ packages: hasBin: true dependencies: meow: 8.1.2 - semver: 7.5.1 + semver: 7.5.4 dev: true /git-username/0.5.1: @@ -10817,7 +11563,7 @@ packages: dependencies: foreground-child: 3.1.1 jackspeak: 2.2.1 - minimatch: 9.0.1 + minimatch: 9.0.3 minipass: 6.0.2 path-scurry: 1.9.2 dev: true @@ -10928,7 +11674,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -11010,10 +11756,6 @@ packages: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true - /grapheme-splitter/1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true - /graphemer/1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true @@ -11137,7 +11879,7 @@ packages: /hast-util-from-parse5/7.1.2: resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 '@types/unist': 2.0.6 hastscript: 7.2.0 property-information: 6.2.0 @@ -11153,19 +11895,19 @@ packages: /hast-util-heading-rank/2.1.1: resolution: {integrity: sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 dev: true /hast-util-is-conditional-comment/2.0.0: resolution: {integrity: sha512-U66gW8ZWQdxP4ZjTEZ3xZT72y6rIKJqV4At5QmC1ItBbQyZyVkuTp8QkQwhxsbkHdzpifiZdQWrDipc9ByqhRg==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 dev: true /hast-util-is-element/2.1.3: resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 '@types/unist': 2.0.6 dev: true @@ -11176,13 +11918,13 @@ packages: /hast-util-parse-selector/3.1.1: resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 dev: true /hast-util-raw/7.2.3: resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 '@types/parse5': 6.0.3 hast-util-from-parse5: 7.1.2 hast-util-to-parse5: 7.1.0 @@ -11195,12 +11937,29 @@ packages: zwitch: 2.0.4 dev: true + /hast-util-raw/8.0.0: + resolution: {integrity: sha512-bKbaUxMNLjZMMowgcrc4l3aQSPiMLiceZD+mp+AKF8Si0mtyR2DYVdxzS2XBxXYDeW/VvfZy40lNxHRiY6MMTg==} + dependencies: + '@types/hast': 2.3.5 + extend: 3.0.2 + hast-util-from-parse5: 7.1.2 + hast-util-to-parse5: 7.1.0 + html-void-elements: 2.0.1 + mdast-util-to-hast: 12.3.0 + parse5: 7.1.2 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: true + /hast-util-to-estree/2.3.3: resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} dependencies: '@types/estree': 1.0.1 '@types/estree-jsx': 1.0.0 - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 '@types/unist': 2.0.6 comma-separated-tokens: 2.0.3 estree-util-attach-comments: 2.1.1 @@ -11220,7 +11979,7 @@ packages: /hast-util-to-html/8.0.4: resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 '@types/unist': 2.0.6 ccount: 2.0.1 comma-separated-tokens: 2.0.3 @@ -11236,7 +11995,7 @@ packages: /hast-util-to-parse5/7.1.0: resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 comma-separated-tokens: 2.0.3 property-information: 6.2.0 space-separated-tokens: 2.0.2 @@ -11247,7 +12006,7 @@ packages: /hast-util-to-string/2.0.0: resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 dev: true /hast-util-whitespace/2.0.1: @@ -11257,7 +12016,7 @@ packages: /hastscript/6.0.0: resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 comma-separated-tokens: 1.0.8 hast-util-parse-selector: 2.2.5 property-information: 5.6.0 @@ -11267,7 +12026,7 @@ packages: /hastscript/7.2.0: resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 3.1.1 property-information: 6.2.0 @@ -11397,17 +12156,15 @@ packages: engines: {node: '>=8'} dev: true - /html-to-text/8.2.1: - resolution: {integrity: sha512-aN/3JvAk8qFsWVeE9InWAWueLXrbkoVZy0TkzaGhoRBC2gCFEeRLDDJN3/ijIGHohy6H+SZzUQWN/hcYtaPK8w==} - engines: {node: '>=10.23.2'} - hasBin: true + /html-to-text/9.0.5: + resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} + engines: {node: '>=14'} dependencies: - '@selderee/plugin-htmlparser2': 0.6.0 + '@selderee/plugin-htmlparser2': 0.11.0 deepmerge: 4.3.1 - he: 1.2.0 - htmlparser2: 6.1.0 - minimist: 1.2.8 - selderee: 0.6.0 + dom-serializer: 2.0.0 + htmlparser2: 8.0.2 + selderee: 0.11.0 dev: true /html-tokenize/2.0.1: @@ -11475,6 +12232,15 @@ packages: entities: 2.2.0 dev: true + /htmlparser2/8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + dev: true + /http-cache-semantics/3.8.1: resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==} dev: true @@ -11616,6 +12382,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 + /humanize-ms/1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: @@ -11646,13 +12417,13 @@ packages: safer-buffer: 2.1.2 dev: true - /icss-utils/5.1.0_postcss@8.4.26: + /icss-utils/5.1.0_postcss@8.4.28: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true /idb/7.1.1: @@ -11684,7 +12455,7 @@ packages: resolution: {integrity: sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minimatch: 9.0.1 + minimatch: 9.0.3 dev: true /ignore/5.2.4: @@ -11753,6 +12524,11 @@ packages: engines: {node: '>=8'} dev: true + /indent-string/5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + dev: true + /infer-owner/1.0.4: resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} dev: true @@ -12383,11 +13159,11 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.22.1 - '@babel/parser': 7.22.4 + '@babel/core': 7.22.11 + '@babel/parser': 7.22.11 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true @@ -12429,6 +13205,16 @@ packages: textextensions: 2.6.0 dev: true + /iterator.prototype/1.1.0: + resolution: {integrity: sha512-rjuhAk1AJ1fssphHD0IFV6TWL40CwRZ53FrztKx43yk2v6rguBYsY4Bj1VU4HmoMmKwZUlx7mfnhDf9cOp4YTw==} + dependencies: + define-properties: 1.2.0 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + has-tostringtag: 1.0.0 + reflect.getprototypeof: 1.0.3 + dev: true + /jackspeak/2.2.1: resolution: {integrity: sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==} engines: {node: '>=14'} @@ -12465,7 +13251,7 @@ packages: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -12524,10 +13310,10 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.22.1 + '@babel/core': 7.22.11 '@jest/test-sequencer': 27.5.1 '@jest/types': 27.5.1 - babel-jest: 27.5.1_@babel+core@7.22.1 + babel-jest: 27.5.1_@babel+core@7.22.11 chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 @@ -12600,7 +13386,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0 @@ -12618,7 +13404,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 jest-mock: 27.5.1 jest-util: 27.5.1 dev: true @@ -12639,7 +13425,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@types/graceful-fs': 4.1.6 - '@types/node': 16.18.34 + '@types/node': 20.5.6 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -12659,7 +13445,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@types/graceful-fs': 4.1.6 - '@types/node': 16.18.34 + '@types/node': 20.5.6 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -12680,7 +13466,7 @@ packages: '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 @@ -12729,7 +13515,7 @@ packages: resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 '@jest/types': 27.5.1 '@types/stack-utils': 2.0.1 chalk: 4.1.2 @@ -12744,7 +13530,7 @@ packages: resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 '@jest/types': 28.1.3 '@types/stack-utils': 2.0.1 chalk: 4.1.2 @@ -12759,7 +13545,7 @@ packages: resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 '@jest/types': 29.5.0 '@types/stack-utils': 2.0.1 chalk: 4.1.2 @@ -12775,7 +13561,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 dev: true /jest-pnp-resolver/1.2.3_jest-resolve@27.5.1: @@ -12841,7 +13627,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 chalk: 4.1.2 emittery: 0.8.1 graceful-fs: 4.2.11 @@ -12898,7 +13684,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': 16.18.34 + '@types/node': 20.5.6 graceful-fs: 4.2.11 dev: true @@ -12906,16 +13692,16 @@ packages: resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.22.1 - '@babel/generator': 7.22.3 - '@babel/plugin-syntax-typescript': 7.22.5_@babel+core@7.22.1 - '@babel/traverse': 7.22.5 - '@babel/types': 7.22.5 + '@babel/core': 7.22.11 + '@babel/generator': 7.22.10 + '@babel/plugin-syntax-typescript': 7.22.5_@babel+core@7.22.11 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 '@types/babel__traverse': 7.20.0 '@types/prettier': 2.7.3 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.22.1 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.22.11 chalk: 4.1.2 expect: 27.5.1 graceful-fs: 4.2.11 @@ -12927,7 +13713,7 @@ packages: jest-util: 27.5.1 natural-compare: 1.4.0 pretty-format: 27.5.1 - semver: 7.5.1 + semver: 7.5.4 transitivePeerDependencies: - supports-color dev: true @@ -12937,7 +13723,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -12949,7 +13735,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/types': 28.1.3 - '@types/node': 16.18.34 + '@types/node': 20.5.6 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -12961,7 +13747,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 16.18.34 + '@types/node': 20.5.6 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -13002,7 +13788,7 @@ packages: dependencies: '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.34 + '@types/node': 20.5.6 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.5.1 @@ -13015,7 +13801,7 @@ packages: dependencies: '@jest/test-result': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 16.18.34 + '@types/node': 20.5.6 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.10.2 @@ -13027,7 +13813,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -13036,7 +13822,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -13045,7 +13831,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': 16.18.34 + '@types/node': 20.5.6 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -13054,7 +13840,7 @@ packages: resolution: {integrity: sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 jest-util: 29.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -13064,7 +13850,7 @@ packages: resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 jest-util: 29.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -13132,7 +13918,7 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.8.2 + acorn: 8.10.0 acorn-globals: 6.0.0 cssom: 0.4.4 cssstyle: 2.3.0 @@ -13317,8 +14103,8 @@ packages: engines: {node: '>= 8'} dev: true - /known-css-properties/0.27.0: - resolution: {integrity: sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==} + /known-css-properties/0.28.0: + resolution: {integrity: sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==} dev: true /kolorist/1.8.0: @@ -13361,6 +14147,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /leac/0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + dev: true + /less/4.1.3: resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==} engines: {node: '>=6'} @@ -13499,21 +14289,18 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /lint-staged/13.2.2_enquirer@2.3.6: - resolution: {integrity: sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==} - engines: {node: ^14.13.1 || >=16.0.0} + /lint-staged/14.0.1_enquirer@2.4.1: + resolution: {integrity: sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw==} + engines: {node: ^16.14.0 || >=18.0.0} hasBin: true dependencies: - chalk: 5.2.0 - cli-truncate: 3.1.0 - commander: 10.0.1 + chalk: 5.3.0 + commander: 11.0.0 debug: 4.3.4 - execa: 7.1.1 + execa: 7.2.0 lilconfig: 2.1.0 - listr2: 5.0.8_enquirer@2.3.6 + listr2: 6.6.1_enquirer@2.4.1 micromatch: 4.0.5 - normalize-path: 3.0.0 - object-inspect: 1.12.3 pidtree: 0.6.0 string-argv: 0.3.2 yaml: 2.3.1 @@ -13522,24 +14309,22 @@ packages: - supports-color dev: true - /listr2/5.0.8_enquirer@2.3.6: - resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==} - engines: {node: ^14.13.1 || >=16.0.0} + /listr2/6.6.1_enquirer@2.4.1: + resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + engines: {node: '>=16.0.0'} peerDependencies: enquirer: '>= 2.3.0 < 3' peerDependenciesMeta: enquirer: optional: true dependencies: - cli-truncate: 2.1.0 + cli-truncate: 3.1.0 colorette: 2.0.20 - enquirer: 2.3.6 - log-update: 4.0.0 - p-map: 4.0.0 + enquirer: 2.4.1 + eventemitter3: 5.0.1 + log-update: 5.0.1 rfdc: 1.3.0 - rxjs: 7.8.1 - through: 2.3.8 - wrap-ansi: 7.0.0 + wrap-ansi: 8.1.0 dev: true /load-json-file/4.0.0: @@ -13689,14 +14474,15 @@ packages: chalk: 2.4.2 dev: true - /log-update/4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} + /log-update/5.0.1: + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 + ansi-escapes: 5.0.0 + cli-cursor: 4.0.0 + slice-ansi: 5.0.0 + strip-ansi: 7.1.0 + wrap-ansi: 8.1.0 dev: true /longest-streak/3.1.0: @@ -13773,8 +14559,8 @@ packages: sourcemap-codec: 1.4.8 dev: true - /magic-string/0.30.0: - resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} + /magic-string/0.30.3: + resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -13801,7 +14587,7 @@ packages: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} dependencies: - semver: 6.3.0 + semver: 6.3.1 dev: true /make-error/1.3.6: @@ -13909,7 +14695,7 @@ packages: /mdast-util-definitions/5.1.2: resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 '@types/unist': 2.0.6 unist-util-visit: 4.1.2 dev: true @@ -13917,7 +14703,7 @@ packages: /mdast-util-directive/2.2.4: resolution: {integrity: sha512-sK3ojFP+jpj1n7Zo5ZKvoxP1MvLyzVG63+gm40Z/qI00avzdPCYxt7RBMgofwAva9gBjbDBWVRB/i+UD+fUCzQ==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 '@types/unist': 2.0.6 mdast-util-from-markdown: 1.3.1 mdast-util-to-markdown: 1.5.0 @@ -13931,7 +14717,7 @@ packages: /mdast-util-find-and-replace/2.2.2: resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 escape-string-regexp: 5.0.0 unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 @@ -13940,7 +14726,7 @@ packages: /mdast-util-from-markdown/1.3.1: resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 '@types/unist': 2.0.6 decode-named-character-reference: 1.0.2 mdast-util-to-string: 3.2.0 @@ -13959,7 +14745,7 @@ packages: /mdast-util-frontmatter/1.0.1: resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 mdast-util-to-markdown: 1.5.0 micromark-extension-frontmatter: 1.1.1 dev: true @@ -13967,7 +14753,7 @@ packages: /mdast-util-gfm-autolink-literal/1.0.3: resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 ccount: 2.0.1 mdast-util-find-and-replace: 2.2.2 micromark-util-character: 1.2.0 @@ -13976,7 +14762,7 @@ packages: /mdast-util-gfm-footnote/1.0.2: resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 mdast-util-to-markdown: 1.5.0 micromark-util-normalize-identifier: 1.1.0 dev: true @@ -13984,14 +14770,14 @@ packages: /mdast-util-gfm-strikethrough/1.0.3: resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 mdast-util-to-markdown: 1.5.0 dev: true /mdast-util-gfm-table/1.0.7: resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 markdown-table: 3.0.3 mdast-util-from-markdown: 1.3.1 mdast-util-to-markdown: 1.5.0 @@ -14002,7 +14788,7 @@ packages: /mdast-util-gfm-task-list-item/1.0.2: resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 mdast-util-to-markdown: 1.5.0 dev: true @@ -14024,8 +14810,8 @@ packages: resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} dependencies: '@types/estree-jsx': 1.0.0 - '@types/hast': 2.3.4 - '@types/mdast': 3.0.11 + '@types/hast': 2.3.5 + '@types/mdast': 3.0.12 mdast-util-from-markdown: 1.3.1 mdast-util-to-markdown: 1.5.0 transitivePeerDependencies: @@ -14036,8 +14822,8 @@ packages: resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==} dependencies: '@types/estree-jsx': 1.0.0 - '@types/hast': 2.3.4 - '@types/mdast': 3.0.11 + '@types/hast': 2.3.5 + '@types/mdast': 3.0.12 mdast-util-from-markdown: 1.3.1 mdast-util-to-markdown: 1.5.0 transitivePeerDependencies: @@ -14047,15 +14833,15 @@ packages: /mdast-util-phrasing/3.0.1: resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 unist-util-is: 5.2.1 dev: true /mdast-util-to-hast/12.3.0: resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} dependencies: - '@types/hast': 2.3.4 - '@types/mdast': 3.0.11 + '@types/hast': 2.3.5 + '@types/mdast': 3.0.12 mdast-util-definitions: 5.1.2 micromark-util-sanitize-uri: 1.2.0 trim-lines: 3.0.1 @@ -14067,7 +14853,7 @@ packages: /mdast-util-to-markdown/1.5.0: resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 '@types/unist': 2.0.6 longest-streak: 3.1.0 mdast-util-phrasing: 3.0.1 @@ -14080,7 +14866,7 @@ packages: /mdast-util-to-string/3.2.0: resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 dev: true /mdn-data/2.0.14: @@ -14111,30 +14897,30 @@ packages: fs-monkey: 1.0.3 dev: true - /meow/8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} + /meow/10.1.5: + resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: '@types/minimist': 1.2.2 - camelcase-keys: 6.2.2 + camelcase-keys: 7.0.2 + decamelize: 5.0.1 decamelize-keys: 1.1.1 hard-rejection: 2.1.0 minimist-options: 4.1.0 normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 + read-pkg-up: 8.0.0 + redent: 4.0.0 + trim-newlines: 4.1.1 + type-fest: 1.4.0 yargs-parser: 20.2.9 dev: true - /meow/9.0.0: - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + /meow/8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} dependencies: '@types/minimist': 1.2.2 camelcase-keys: 6.2.2 - decamelize: 1.2.0 decamelize-keys: 1.1.1 hard-rejection: 2.1.0 minimist-options: 4.1.0 @@ -14546,8 +15332,8 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch/9.0.1: - resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} + /minimatch/9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -14630,11 +15416,6 @@ packages: yallist: 4.0.0 dev: true - /minipass/4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} - engines: {node: '>=8'} - dev: true - /minipass/5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} @@ -14702,10 +15483,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /moo/0.5.2: - resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} - dev: true - /move-concurrently/1.0.1: resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==} dependencies: @@ -14784,16 +15561,6 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /nearley/2.20.1: - resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} - hasBin: true - dependencies: - commander: 2.20.3 - moo: 0.5.2 - railroad-diagrams: 1.0.0 - randexp: 0.4.6 - dev: true - /needle/3.2.0: resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==} engines: {node: '>= 4.4.x'} @@ -14869,7 +15636,7 @@ packages: nopt: 6.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.5.1 + semver: 7.5.4 tar: 6.1.15 which: 2.0.2 transitivePeerDependencies: @@ -14913,6 +15680,10 @@ packages: resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==} dev: true + /node-releases/2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: true + /nopt/6.0.0: resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -14936,7 +15707,7 @@ packages: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.12.1 - semver: 7.5.1 + semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -14946,7 +15717,7 @@ packages: dependencies: hosted-git-info: 6.1.1 is-core-module: 2.12.1 - semver: 7.5.1 + semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -14983,12 +15754,12 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true - /npm-check-updates/16.10.12: - resolution: {integrity: sha512-js/Gg9+5RTyOQZnmFcPswLxf4sK/H5AE/8bl4tkleLJTC1gXhQqqELUFwXqppNvx488aXxN52ZY9k9MSSvEW2A==} + /npm-check-updates/16.13.1: + resolution: {integrity: sha512-RIKBemiyAOEAUfzgYzDffLQwXI/Zo4CMSGHtup9fUoBpHqPNtD0pPFjpxDnt/sFpGiV5iANdE2Ck6xOxuQFfJg==} engines: {node: '>=14.14'} hasBin: true dependencies: - chalk: 5.2.0 + chalk: 5.3.0 cli-table3: 0.6.3 commander: 10.0.1 fast-memoize: 2.5.2 @@ -15002,20 +15773,21 @@ packages: json-parse-helpfulerror: 1.0.3 jsonlines: 0.1.1 lodash: 4.17.21 - minimatch: 9.0.1 + make-fetch-happen: 11.1.1 + minimatch: 9.0.3 p-map: 4.0.0 - pacote: 15.1.1 + pacote: 15.2.0 parse-github-url: 1.0.2 progress: 2.0.3 prompts-ncu: 3.0.0 - rc-config-loader: 4.1.2 + rc-config-loader: 4.1.3 remote-git-tags: 3.0.0 rimraf: 5.0.1 - semver: 7.5.1 + semver: 7.5.4 semver-utils: 1.1.4 source-map-support: 0.5.21 spawn-please: 2.0.1 - strip-json-comments: 5.0.0 + strip-json-comments: 5.0.1 untildify: 4.0.0 update-notifier: 6.0.2 transitivePeerDependencies: @@ -15027,7 +15799,7 @@ packages: resolution: {integrity: sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - semver: 7.5.1 + semver: 7.5.4 dev: true /npm-normalize-package-bin/1.0.1: @@ -15045,7 +15817,7 @@ packages: dependencies: hosted-git-info: 6.1.1 proc-log: 3.0.0 - semver: 7.5.1 + semver: 7.5.4 validate-npm-package-name: 5.0.0 dev: true @@ -15090,7 +15862,7 @@ packages: npm-install-checks: 6.1.1 npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 - semver: 7.5.1 + semver: 7.5.4 dev: true /npm-registry-fetch/14.0.5: @@ -15348,16 +16120,16 @@ packages: word-wrap: 1.2.3 dev: true - /optionator/0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + /optionator/0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 dev: true /ora/1.4.0: @@ -15492,11 +16264,11 @@ packages: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 - semver: 7.5.1 + semver: 7.5.4 dev: true - /pacote/15.1.1: - resolution: {integrity: sha512-eeqEe77QrA6auZxNHIp+1TzHQ0HBKf5V6c8zcaYZ134EJe1lCi+fjXATkNiEEfbG+e50nu02GLvUtmZcGOYabQ==} + /pacote/15.2.0: + resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true dependencies: @@ -15506,7 +16278,7 @@ packages: '@npmcli/run-script': 6.0.2 cacache: 17.1.3 fs-minipass: 3.0.2 - minipass: 4.2.8 + minipass: 5.0.0 npm-package-arg: 10.1.0 npm-packlist: 7.0.4 npm-pick-manifest: 8.0.1 @@ -15646,7 +16418,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -15666,11 +16438,17 @@ packages: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} dev: true - /parseley/0.7.0: - resolution: {integrity: sha512-xyOytsdDu077M3/46Am+2cGXEKM9U9QclBDv7fimY7e+BBlxh2JcBp2mgNsmkyA9uvgyTjVzDi7cP1v4hcFxbw==} + /parse5/7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: true + + /parseley/0.12.1: + resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} dependencies: - moo: 0.5.2 - nearley: 2.20.1 + leac: 0.6.0 + peberminta: 0.9.0 dev: true /parseurl/1.3.3: @@ -15772,6 +16550,10 @@ packages: sha.js: 2.4.11 dev: true + /peberminta/0.9.0: + resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} + dev: true + /performance-now/2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} dev: true @@ -15892,17 +16674,17 @@ packages: '@babel/runtime': 7.22.5 dev: true - /postcss-attribute-case-insensitive/5.0.2_postcss@8.4.26: + /postcss-attribute-case-insensitive/5.0.2_postcss@8.4.28: resolution: {integrity: sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-browser-comments/4.0.0_ovlgmangv5it2io6j6qgykv4o4: + /postcss-browser-comments/4.0.0_ej5suzfewe373ktotemrpglphy: resolution: {integrity: sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==} engines: {node: '>=8'} peerDependencies: @@ -15910,41 +16692,41 @@ packages: postcss: '>=8' dependencies: browserslist: 4.21.7 - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-calc/8.2.4_postcss@8.4.26: + /postcss-calc/8.2.4_postcss@8.4.28: resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true - /postcss-calc/9.0.1_postcss@8.4.26: + /postcss-calc/9.0.1_postcss@8.4.28: resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true - /postcss-clamp/4.1.0_postcss@8.4.26: + /postcss-clamp/4.1.0_postcss@8.4.28: resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} engines: {node: '>=7.6.0'} peerDependencies: postcss: ^8.4.6 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-cli/10.1.0_postcss@8.4.26: + /postcss-cli/10.1.0_postcss@8.4.28: resolution: {integrity: sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==} engines: {node: '>=14'} hasBin: true @@ -15957,9 +16739,9 @@ packages: get-stdin: 9.0.0 globby: 13.1.4 picocolors: 1.0.0 - postcss: 8.4.26 - postcss-load-config: 4.0.1_postcss@8.4.26 - postcss-reporter: 7.0.5_postcss@8.4.26 + postcss: 8.4.28 + postcss-load-config: 4.0.1_postcss@8.4.28 + postcss-reporter: 7.0.5_postcss@8.4.28 pretty-hrtime: 1.0.3 read-cache: 1.0.0 slash: 5.1.0 @@ -15968,50 +16750,50 @@ packages: - ts-node dev: true - /postcss-color-functional-notation/4.2.4_postcss@8.4.26: + /postcss-color-functional-notation/4.2.4_postcss@8.4.28: resolution: {integrity: sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-color-hex-alpha/8.0.4_postcss@8.4.26: + /postcss-color-hex-alpha/8.0.4_postcss@8.4.28: resolution: {integrity: sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-color-rebeccapurple/7.1.1_postcss@8.4.26: + /postcss-color-rebeccapurple/7.1.1_postcss@8.4.28: resolution: {integrity: sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-colormin/5.3.1_postcss@8.4.26: + /postcss-colormin/5.3.1_postcss@8.4.28: resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 + browserslist: 4.21.10 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-colormin/6.0.0_postcss@8.4.26: + /postcss-colormin/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -16020,262 +16802,262 @@ packages: browserslist: 4.21.7 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values/5.1.3_postcss@8.4.26: + /postcss-convert-values/5.1.3_postcss@8.4.28: resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 - postcss: 8.4.26 + browserslist: 4.21.10 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values/6.0.0_postcss@8.4.26: + /postcss-convert-values/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.7 - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-media/8.0.2_postcss@8.4.26: + /postcss-custom-media/8.0.2_postcss@8.4.28: resolution: {integrity: sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.3 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-properties/12.1.11_postcss@8.4.26: + /postcss-custom-properties/12.1.11_postcss@8.4.28: resolution: {integrity: sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-selectors/6.0.3_postcss@8.4.26: + /postcss-custom-selectors/6.0.3_postcss@8.4.28: resolution: {integrity: sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.3 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-dir-pseudo-class/6.0.5_postcss@8.4.26: + /postcss-dir-pseudo-class/6.0.5_postcss@8.4.28: resolution: {integrity: sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-discard-comments/5.1.2_postcss@8.4.26: + /postcss-discard-comments/5.1.2_postcss@8.4.28: resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-discard-comments/6.0.0_postcss@8.4.26: + /postcss-discard-comments/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-discard-duplicates/5.1.0_postcss@8.4.26: + /postcss-discard-duplicates/5.1.0_postcss@8.4.28: resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-discard-duplicates/6.0.0_postcss@8.4.26: + /postcss-discard-duplicates/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-discard-empty/5.1.1_postcss@8.4.26: + /postcss-discard-empty/5.1.1_postcss@8.4.28: resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-discard-empty/6.0.0_postcss@8.4.26: + /postcss-discard-empty/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-discard-overridden/5.1.0_postcss@8.4.26: + /postcss-discard-overridden/5.1.0_postcss@8.4.28: resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-discard-overridden/6.0.0_postcss@8.4.26: + /postcss-discard-overridden/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-double-position-gradients/3.1.2_postcss@8.4.26: + /postcss-double-position-gradients/3.1.2_postcss@8.4.28: resolution: {integrity: sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.26 - postcss: 8.4.26 + '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.28 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-env-function/4.0.6_postcss@8.4.26: + /postcss-env-function/4.0.6_postcss@8.4.28: resolution: {integrity: sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-flexbugs-fixes/5.0.2_postcss@8.4.26: + /postcss-flexbugs-fixes/5.0.2_postcss@8.4.28: resolution: {integrity: sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==} peerDependencies: postcss: ^8.1.4 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-focus-visible/6.0.4_postcss@8.4.26: + /postcss-focus-visible/6.0.4_postcss@8.4.28: resolution: {integrity: sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-focus-within/5.0.4_postcss@8.4.26: + /postcss-focus-within/5.0.4_postcss@8.4.28: resolution: {integrity: sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-font-variant/5.0.0_postcss@8.4.26: + /postcss-font-variant/5.0.0_postcss@8.4.28: resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-gap-properties/3.0.5_postcss@8.4.26: + /postcss-gap-properties/3.0.5_postcss@8.4.28: resolution: {integrity: sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-image-set-function/4.0.7_postcss@8.4.26: + /postcss-image-set-function/4.0.7_postcss@8.4.28: resolution: {integrity: sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-import/15.1.0_postcss@8.4.26: + /postcss-import/15.1.0_postcss@8.4.28: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.2 dev: true - /postcss-initial/4.0.1_postcss@8.4.26: + /postcss-initial/4.0.1_postcss@8.4.28: resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-js/4.0.1_postcss@8.4.26: + /postcss-js/4.0.1_postcss@8.4.28: resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-lab-function/4.2.1_postcss@8.4.26: + /postcss-lab-function/4.2.1_postcss@8.4.28: resolution: {integrity: sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.26 - postcss: 8.4.26 + '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.28 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-load-config/4.0.1_postcss@8.4.26: + /postcss-load-config/4.0.1_postcss@8.4.28: resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} peerDependencies: @@ -16288,11 +17070,11 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.26 + postcss: 8.4.28 yaml: 2.3.1 dev: true - /postcss-loader/6.2.1_z6cbt53pgxw4whowualpia2i7u: + /postcss-loader/6.2.1_afxhrea2ebb2qsd7z2cpx2wcti: resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -16301,56 +17083,56 @@ packages: dependencies: cosmiconfig: 7.1.0 klona: 2.0.6 - postcss: 8.4.26 - semver: 7.5.1 + postcss: 8.4.28 + semver: 7.5.4 webpack: 5.86.0 dev: true - /postcss-logical/5.0.4_postcss@8.4.26: + /postcss-logical/5.0.4_postcss@8.4.28: resolution: {integrity: sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-media-minmax/5.0.0_postcss@8.4.26: + /postcss-media-minmax/5.0.0_postcss@8.4.28: resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==} engines: {node: '>=10.0.0'} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true /postcss-media-query-parser/0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} dev: true - /postcss-merge-longhand/5.1.7_postcss@8.4.26: + /postcss-merge-longhand/5.1.7_postcss@8.4.28: resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1_postcss@8.4.26 + stylehacks: 5.1.1_postcss@8.4.28 dev: true - /postcss-merge-longhand/6.0.0_postcss@8.4.26: + /postcss-merge-longhand/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 - stylehacks: 6.0.0_postcss@8.4.26 + stylehacks: 6.0.0_postcss@8.4.28 dev: true - /postcss-merge-rules-plus/2.0.0_postcss@8.4.26: + /postcss-merge-rules-plus/2.0.0_postcss@8.4.28: resolution: {integrity: sha512-AUIG9rqadFO48KYICr8s9cjwkbf9rRZ81B0dhYKsgH3TwQdfCbB2seAsXbk4DvGMkFMABZFw9ypf56CooUMgZg==} engines: {node: '>=12.0.0'} peerDependencies: @@ -16359,24 +17141,24 @@ packages: browserslist: 4.21.7 caniuse-api: 3.0.0 cssnano-util-same-parent: 4.0.1 - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-merge-rules/5.1.4_postcss@8.4.26: + /postcss-merge-rules/5.1.4_postcss@8.4.28: resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 + browserslist: 4.21.10 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0_postcss@8.4.26 - postcss: 8.4.26 + cssnano-utils: 3.1.0_postcss@8.4.28 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-merge-rules/6.0.1_postcss@8.4.26: + /postcss-merge-rules/6.0.1_postcss@8.4.28: resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -16384,343 +17166,343 @@ packages: dependencies: browserslist: 4.21.7 caniuse-api: 3.0.0 - cssnano-utils: 4.0.0_postcss@8.4.26 - postcss: 8.4.26 + cssnano-utils: 4.0.0_postcss@8.4.28 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-minify-font-values/5.1.0_postcss@8.4.26: + /postcss-minify-font-values/5.1.0_postcss@8.4.28: resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-font-values/6.0.0_postcss@8.4.26: + /postcss-minify-font-values/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients/5.1.1_postcss@8.4.26: + /postcss-minify-gradients/5.1.1_postcss@8.4.28: resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0_postcss@8.4.26 - postcss: 8.4.26 + cssnano-utils: 3.1.0_postcss@8.4.28 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients/6.0.0_postcss@8.4.26: + /postcss-minify-gradients/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 4.0.0_postcss@8.4.26 - postcss: 8.4.26 + cssnano-utils: 4.0.0_postcss@8.4.28 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params/5.1.4_postcss@8.4.26: + /postcss-minify-params/5.1.4_postcss@8.4.28: resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 - cssnano-utils: 3.1.0_postcss@8.4.26 - postcss: 8.4.26 + browserslist: 4.21.10 + cssnano-utils: 3.1.0_postcss@8.4.28 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params/6.0.0_postcss@8.4.26: + /postcss-minify-params/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.7 - cssnano-utils: 4.0.0_postcss@8.4.26 - postcss: 8.4.26 + cssnano-utils: 4.0.0_postcss@8.4.28 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-selectors/5.2.1_postcss@8.4.26: + /postcss-minify-selectors/5.2.1_postcss@8.4.28: resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-minify-selectors/6.0.0_postcss@8.4.26: + /postcss-minify-selectors/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-modules-extract-imports/3.0.0_postcss@8.4.26: + /postcss-modules-extract-imports/3.0.0_postcss@8.4.28: resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-modules-local-by-default/4.0.3_postcss@8.4.26: + /postcss-modules-local-by-default/4.0.3_postcss@8.4.28: resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.26 - postcss: 8.4.26 + icss-utils: 5.1.0_postcss@8.4.28 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true - /postcss-modules-scope/3.0.0_postcss@8.4.26: + /postcss-modules-scope/3.0.0_postcss@8.4.28: resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-modules-values/4.0.0_postcss@8.4.26: + /postcss-modules-values/4.0.0_postcss@8.4.28: resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.26 - postcss: 8.4.26 + icss-utils: 5.1.0_postcss@8.4.28 + postcss: 8.4.28 dev: true - /postcss-nested/6.0.1_postcss@8.4.26: + /postcss-nested/6.0.1_postcss@8.4.28: resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-nesting/10.2.0_postcss@8.4.26: + /postcss-nesting/10.2.0_postcss@8.4.28: resolution: {integrity: sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: '@csstools/selector-specificity': 2.2.0_c3vcbepomgmxc74cgtawpgpkyi - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-normalize-charset/5.1.0_postcss@8.4.26: + /postcss-normalize-charset/5.1.0_postcss@8.4.28: resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-normalize-charset/6.0.0_postcss@8.4.26: + /postcss-normalize-charset/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-normalize-display-values/5.1.0_postcss@8.4.26: + /postcss-normalize-display-values/5.1.0_postcss@8.4.28: resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-display-values/6.0.0_postcss@8.4.26: + /postcss-normalize-display-values/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions/5.1.1_postcss@8.4.26: + /postcss-normalize-positions/5.1.1_postcss@8.4.28: resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions/6.0.0_postcss@8.4.26: + /postcss-normalize-positions/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style/5.1.1_postcss@8.4.26: + /postcss-normalize-repeat-style/5.1.1_postcss@8.4.28: resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style/6.0.0_postcss@8.4.26: + /postcss-normalize-repeat-style/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string/5.1.0_postcss@8.4.26: + /postcss-normalize-string/5.1.0_postcss@8.4.28: resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string/6.0.0_postcss@8.4.26: + /postcss-normalize-string/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions/5.1.0_postcss@8.4.26: + /postcss-normalize-timing-functions/5.1.0_postcss@8.4.28: resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions/6.0.0_postcss@8.4.26: + /postcss-normalize-timing-functions/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode/5.1.1_postcss@8.4.26: + /postcss-normalize-unicode/5.1.1_postcss@8.4.28: resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 - postcss: 8.4.26 + browserslist: 4.21.10 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode/6.0.0_postcss@8.4.26: + /postcss-normalize-unicode/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.7 - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url/5.1.0_postcss@8.4.26: + /postcss-normalize-url/5.1.0_postcss@8.4.28: resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url/6.0.0_postcss@8.4.26: + /postcss-normalize-url/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace/5.1.1_postcss@8.4.26: + /postcss-normalize-whitespace/5.1.1_postcss@8.4.28: resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace/6.0.0_postcss@8.4.26: + /postcss-normalize-whitespace/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize/10.0.1_ovlgmangv5it2io6j6qgykv4o4: + /postcss-normalize/10.0.1_ej5suzfewe373ktotemrpglphy: resolution: {integrity: sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==} engines: {node: '>= 12'} peerDependencies: @@ -16729,154 +17511,154 @@ packages: dependencies: '@csstools/normalize.css': 12.0.0 browserslist: 4.21.7 - postcss: 8.4.26 - postcss-browser-comments: 4.0.0_ovlgmangv5it2io6j6qgykv4o4 + postcss: 8.4.28 + postcss-browser-comments: 4.0.0_ej5suzfewe373ktotemrpglphy sanitize.css: 13.0.0 dev: true - /postcss-opacity-percentage/1.1.3_postcss@8.4.26: + /postcss-opacity-percentage/1.1.3_postcss@8.4.28: resolution: {integrity: sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-ordered-values/5.1.3_postcss@8.4.26: + /postcss-ordered-values/5.1.3_postcss@8.4.28: resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0_postcss@8.4.26 - postcss: 8.4.26 + cssnano-utils: 3.1.0_postcss@8.4.28 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-ordered-values/6.0.0_postcss@8.4.26: + /postcss-ordered-values/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 4.0.0_postcss@8.4.26 - postcss: 8.4.26 + cssnano-utils: 4.0.0_postcss@8.4.28 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-overflow-shorthand/3.0.4_postcss@8.4.26: + /postcss-overflow-shorthand/3.0.4_postcss@8.4.28: resolution: {integrity: sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-page-break/3.0.4_postcss@8.4.26: + /postcss-page-break/3.0.4_postcss@8.4.28: resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} peerDependencies: postcss: ^8 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-place/7.0.5_postcss@8.4.26: + /postcss-place/7.0.5_postcss@8.4.28: resolution: {integrity: sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-prefix-selector/1.16.0_postcss@8.4.26: + /postcss-prefix-selector/1.16.0_postcss@8.4.28: resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==} peerDependencies: postcss: '>4 <9' dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-preset-env/7.5.0_postcss@8.4.26: + /postcss-preset-env/7.5.0_postcss@8.4.28: resolution: {integrity: sha512-0BJzWEfCdTtK2R3EiKKSdkE51/DI/BwnhlnicSW482Ym6/DGHud8K0wGLcdjip1epVX0HKo4c8zzTeV/SkiejQ==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-color-function': 1.1.1_postcss@8.4.26 - '@csstools/postcss-font-format-keywords': 1.0.1_postcss@8.4.26 - '@csstools/postcss-hwb-function': 1.0.2_postcss@8.4.26 - '@csstools/postcss-ic-unit': 1.0.1_postcss@8.4.26 - '@csstools/postcss-is-pseudo-class': 2.0.7_postcss@8.4.26 - '@csstools/postcss-normalize-display-values': 1.0.1_postcss@8.4.26 - '@csstools/postcss-oklab-function': 1.1.1_postcss@8.4.26 - '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.26 - '@csstools/postcss-stepped-value-functions': 1.0.1_postcss@8.4.26 - '@csstools/postcss-unset-value': 1.0.2_postcss@8.4.26 - autoprefixer: 10.4.14_postcss@8.4.26 - browserslist: 4.21.7 - css-blank-pseudo: 3.0.3_postcss@8.4.26 - css-has-pseudo: 3.0.4_postcss@8.4.26 - css-prefers-color-scheme: 6.0.3_postcss@8.4.26 + '@csstools/postcss-color-function': 1.1.1_postcss@8.4.28 + '@csstools/postcss-font-format-keywords': 1.0.1_postcss@8.4.28 + '@csstools/postcss-hwb-function': 1.0.2_postcss@8.4.28 + '@csstools/postcss-ic-unit': 1.0.1_postcss@8.4.28 + '@csstools/postcss-is-pseudo-class': 2.0.7_postcss@8.4.28 + '@csstools/postcss-normalize-display-values': 1.0.1_postcss@8.4.28 + '@csstools/postcss-oklab-function': 1.1.1_postcss@8.4.28 + '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.28 + '@csstools/postcss-stepped-value-functions': 1.0.1_postcss@8.4.28 + '@csstools/postcss-unset-value': 1.0.2_postcss@8.4.28 + autoprefixer: 10.4.15_postcss@8.4.28 + browserslist: 4.21.10 + css-blank-pseudo: 3.0.3_postcss@8.4.28 + css-has-pseudo: 3.0.4_postcss@8.4.28 + css-prefers-color-scheme: 6.0.3_postcss@8.4.28 cssdb: 6.6.3 - postcss: 8.4.26 - postcss-attribute-case-insensitive: 5.0.2_postcss@8.4.26 - postcss-clamp: 4.1.0_postcss@8.4.26 - postcss-color-functional-notation: 4.2.4_postcss@8.4.26 - postcss-color-hex-alpha: 8.0.4_postcss@8.4.26 - postcss-color-rebeccapurple: 7.1.1_postcss@8.4.26 - postcss-custom-media: 8.0.2_postcss@8.4.26 - postcss-custom-properties: 12.1.11_postcss@8.4.26 - postcss-custom-selectors: 6.0.3_postcss@8.4.26 - postcss-dir-pseudo-class: 6.0.5_postcss@8.4.26 - postcss-double-position-gradients: 3.1.2_postcss@8.4.26 - postcss-env-function: 4.0.6_postcss@8.4.26 - postcss-focus-visible: 6.0.4_postcss@8.4.26 - postcss-focus-within: 5.0.4_postcss@8.4.26 - postcss-font-variant: 5.0.0_postcss@8.4.26 - postcss-gap-properties: 3.0.5_postcss@8.4.26 - postcss-image-set-function: 4.0.7_postcss@8.4.26 - postcss-initial: 4.0.1_postcss@8.4.26 - postcss-lab-function: 4.2.1_postcss@8.4.26 - postcss-logical: 5.0.4_postcss@8.4.26 - postcss-media-minmax: 5.0.0_postcss@8.4.26 - postcss-nesting: 10.2.0_postcss@8.4.26 - postcss-opacity-percentage: 1.1.3_postcss@8.4.26 - postcss-overflow-shorthand: 3.0.4_postcss@8.4.26 - postcss-page-break: 3.0.4_postcss@8.4.26 - postcss-place: 7.0.5_postcss@8.4.26 - postcss-pseudo-class-any-link: 7.1.6_postcss@8.4.26 - postcss-replace-overflow-wrap: 4.0.0_postcss@8.4.26 - postcss-selector-not: 5.0.0_postcss@8.4.26 + postcss: 8.4.28 + postcss-attribute-case-insensitive: 5.0.2_postcss@8.4.28 + postcss-clamp: 4.1.0_postcss@8.4.28 + postcss-color-functional-notation: 4.2.4_postcss@8.4.28 + postcss-color-hex-alpha: 8.0.4_postcss@8.4.28 + postcss-color-rebeccapurple: 7.1.1_postcss@8.4.28 + postcss-custom-media: 8.0.2_postcss@8.4.28 + postcss-custom-properties: 12.1.11_postcss@8.4.28 + postcss-custom-selectors: 6.0.3_postcss@8.4.28 + postcss-dir-pseudo-class: 6.0.5_postcss@8.4.28 + postcss-double-position-gradients: 3.1.2_postcss@8.4.28 + postcss-env-function: 4.0.6_postcss@8.4.28 + postcss-focus-visible: 6.0.4_postcss@8.4.28 + postcss-focus-within: 5.0.4_postcss@8.4.28 + postcss-font-variant: 5.0.0_postcss@8.4.28 + postcss-gap-properties: 3.0.5_postcss@8.4.28 + postcss-image-set-function: 4.0.7_postcss@8.4.28 + postcss-initial: 4.0.1_postcss@8.4.28 + postcss-lab-function: 4.2.1_postcss@8.4.28 + postcss-logical: 5.0.4_postcss@8.4.28 + postcss-media-minmax: 5.0.0_postcss@8.4.28 + postcss-nesting: 10.2.0_postcss@8.4.28 + postcss-opacity-percentage: 1.1.3_postcss@8.4.28 + postcss-overflow-shorthand: 3.0.4_postcss@8.4.28 + postcss-page-break: 3.0.4_postcss@8.4.28 + postcss-place: 7.0.5_postcss@8.4.28 + postcss-pseudo-class-any-link: 7.1.6_postcss@8.4.28 + postcss-replace-overflow-wrap: 4.0.0_postcss@8.4.28 + postcss-selector-not: 5.0.0_postcss@8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-pseudo-class-any-link/7.1.6_postcss@8.4.26: + /postcss-pseudo-class-any-link/7.1.6_postcss@8.4.28: resolution: {integrity: sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-reduce-initial/5.1.2_postcss@8.4.26: + /postcss-reduce-initial/5.1.2_postcss@8.4.28: resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 + browserslist: 4.21.10 caniuse-api: 3.0.0 - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-reduce-initial/6.0.0_postcss@8.4.26: + /postcss-reduce-initial/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -16884,45 +17666,45 @@ packages: dependencies: browserslist: 4.21.7 caniuse-api: 3.0.0 - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-reduce-transforms/5.1.0_postcss@8.4.26: + /postcss-reduce-transforms/5.1.0_postcss@8.4.28: resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-reduce-transforms/6.0.0_postcss@8.4.26: + /postcss-reduce-transforms/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-replace-overflow-wrap/4.0.0_postcss@8.4.26: + /postcss-replace-overflow-wrap/4.0.0_postcss@8.4.28: resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} peerDependencies: postcss: ^8.0.3 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-reporter/7.0.5_postcss@8.4.26: + /postcss-reporter/7.0.5_postcss@8.4.28: resolution: {integrity: sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==} engines: {node: '>=10'} peerDependencies: postcss: ^8.1.0 dependencies: picocolors: 1.0.0 - postcss: 8.4.26 + postcss: 8.4.28 thenby: 1.3.4 dev: true @@ -16930,31 +17712,31 @@ packages: resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} dev: true - /postcss-safe-parser/6.0.0_postcss@8.4.26: + /postcss-safe-parser/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-scss/4.0.6_postcss@8.4.26: + /postcss-scss/4.0.6_postcss@8.4.28: resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.19 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-selector-not/5.0.0_postcss@8.4.26: + /postcss-selector-not/5.0.0_postcss@8.4.28: resolution: {integrity: sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==} peerDependencies: postcss: ^8.1.0 dependencies: balanced-match: 1.0.2 - postcss: 8.4.26 + postcss: 8.4.28 dev: true /postcss-selector-parser/6.0.13: @@ -16965,37 +17747,37 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss-sorting/8.0.2_postcss@8.4.26: + /postcss-sorting/8.0.2_postcss@8.4.28: resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==} peerDependencies: postcss: ^8.4.20 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-svgo/5.1.0_postcss@8.4.26: + /postcss-svgo/5.1.0_postcss@8.4.28: resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 svgo: 2.8.0 dev: true - /postcss-svgo/6.0.0_postcss@8.4.26: + /postcss-svgo/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-value-parser: 4.2.0 svgo: 3.0.2 dev: true - /postcss-syntax/0.36.2_postcss@8.4.26: + /postcss-syntax/0.36.2_postcss@8.4.28: resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==} peerDependencies: postcss: '>=5.0.0' @@ -17016,26 +17798,26 @@ packages: postcss-scss: optional: true dependencies: - postcss: 8.4.26 + postcss: 8.4.28 dev: true - /postcss-unique-selectors/5.1.1_postcss@8.4.26: + /postcss-unique-selectors/5.1.1_postcss@8.4.28: resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-unique-selectors/6.0.0_postcss@8.4.26: + /postcss-unique-selectors/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true @@ -17051,8 +17833,8 @@ packages: source-map: 0.6.1 dev: true - /postcss/8.4.26: - resolution: {integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==} + /postcss/8.4.28: + resolution: {integrity: sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -17082,8 +17864,8 @@ packages: fast-diff: 1.3.0 dev: true - /prettier-plugin-organize-imports/3.2.2_dyixtp4kk4c7jiqt66igkf6jh4: - resolution: {integrity: sha512-e97lE6odGSiHonHJMTYC0q0iLXQyw0u5z/PJpvP/3vRy6/Zi9kLBwFAbEGjDzIowpjQv8b+J04PDamoUSQbzGA==} + /prettier-plugin-organize-imports/3.2.3_ryks3bcd2xrdaswy3gfjyoetha: + resolution: {integrity: sha512-KFvk8C/zGyvUaE3RvxN2MhCLwzV6OBbFSkwZ2OamCrs9ZY4i5L77jQ/w4UmUr+lqX8qbaqVq6bZZkApn+IgJSg==} peerDependencies: '@volar/vue-language-plugin-pug': ^1.0.4 '@volar/vue-typescript': ^1.0.4 @@ -17095,11 +17877,11 @@ packages: '@volar/vue-typescript': optional: true dependencies: - prettier: 2.8.8 - typescript: 5.1.6 + prettier: 3.0.2 + typescript: 5.2.2 dev: true - /prettier-plugin-packagejson/2.4.3_prettier@2.8.8: + /prettier-plugin-packagejson/2.4.3_prettier@3.0.2: resolution: {integrity: sha512-kPeeviJiwy0BgOSk7No8NmzzXfW4R9FYWni6ziA5zc1kGVVrKnBzMZdu2TUhI+I7h8/5Htt3vARYOk7KKJTTNQ==} peerDependencies: prettier: '>= 1.16.0' @@ -17107,14 +17889,27 @@ packages: prettier: optional: true dependencies: - prettier: 2.8.8 + prettier: 3.0.2 sort-package-json: 2.4.1 synckit: 0.8.5 dev: true - /prettier/2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + /prettier-plugin-packagejson/2.4.5_prettier@3.0.2: + resolution: {integrity: sha512-glG71jE1gO3y5+JNAhC8X+4yrlN28rub6Aj461SKbaPie9RgMiHKcInH2Moi2VGOfkTXaEHBhg4uVMBqa+kBUA==} + peerDependencies: + prettier: '>= 1.16.0' + peerDependenciesMeta: + prettier: + optional: true + dependencies: + prettier: 3.0.2 + sort-package-json: 2.5.1 + synckit: 0.8.5 + dev: true + + /prettier/3.0.2: + resolution: {integrity: sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==} + engines: {node: '>=14'} hasBin: true dev: true @@ -17437,10 +18232,6 @@ packages: performance-now: 2.1.0 dev: true - /railroad-diagrams/1.0.0: - resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} - dev: true - /ramda/0.28.0: resolution: {integrity: sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==} dev: true @@ -17449,14 +18240,6 @@ packages: resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==} dev: true - /randexp/0.4.6: - resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} - engines: {node: '>=0.12'} - dependencies: - discontinuous-range: 1.0.0 - ret: 0.1.15 - dev: true - /randombytes/2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: @@ -17509,7 +18292,7 @@ packages: '@babel/runtime': 7.22.5 classnames: 2.3.2 dom-align: 1.12.4 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 resize-observer-polyfill: 1.5.1 @@ -17525,8 +18308,8 @@ packages: array-tree-filter: 2.1.0 classnames: 2.3.2 rc-select: 14.5.2_biqbaboplfbrettd7655fr4n2y - rc-tree: 5.7.4_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-tree: 5.7.10_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17539,7 +18322,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17553,13 +18336,13 @@ packages: '@babel/runtime': 7.22.5 classnames: 2.3.2 rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true - /rc-config-loader/4.1.2: - resolution: {integrity: sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==} + /rc-config-loader/4.1.3: + resolution: {integrity: sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==} dependencies: debug: 4.3.4 js-yaml: 4.1.0 @@ -17579,7 +18362,7 @@ packages: '@rc-component/portal': 1.1.1_biqbaboplfbrettd7655fr4n2y classnames: 2.3.2 rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17594,7 +18377,7 @@ packages: '@rc-component/portal': 1.1.1_biqbaboplfbrettd7655fr4n2y classnames: 2.3.2 rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17608,7 +18391,7 @@ packages: '@babel/runtime': 7.22.5 '@rc-component/trigger': 1.13.4_biqbaboplfbrettd7655fr4n2y classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17622,7 +18405,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 async-validator: 4.2.5 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17650,7 +18433,7 @@ packages: classnames: 2.3.2 rc-dialog: 9.1.0_biqbaboplfbrettd7655fr4n2y rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17664,7 +18447,7 @@ packages: '@babel/runtime': 7.22.5 '@rc-component/mini-decimal': 1.1.0 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17677,7 +18460,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17694,7 +18477,23 @@ packages: rc-input: 1.0.4_biqbaboplfbrettd7655fr4n2y rc-menu: 9.9.2_biqbaboplfbrettd7655fr4n2y rc-textarea: 1.2.3_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /rc-menu/9.11.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-jq9I3XkPKgFpsn8MYko+OAjnrNxzQGQauy0MNysYZ5iw5JGeg5wwCP/toZX2ZWQwxNUfye14mY/uVLE6HCcQlQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.22.5 + '@rc-component/trigger': 1.13.4_biqbaboplfbrettd7655fr4n2y + classnames: 2.3.2 + rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y + rc-overflow: 1.3.1_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17710,7 +18509,7 @@ packages: classnames: 2.3.2 rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y rc-overflow: 1.3.0_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17738,7 +18537,7 @@ packages: '@babel/runtime': 7.22.5 classnames: 2.3.2 rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17752,7 +18551,21 @@ packages: '@babel/runtime': 7.22.5 classnames: 2.3.2 rc-resize-observer: 1.3.1_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /rc-overflow/1.3.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-RY0nVBlfP9CkxrpgaLlGzkSoh9JhjJLu6Icqs9E7CW6Ewh9s0peF9OHIex4OhfoPsR92LR0fN6BlCY9Z4VoUtA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.22.5 + classnames: 2.3.2 + rc-resize-observer: 1.3.1_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17765,7 +18578,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17794,7 +18607,7 @@ packages: '@rc-component/trigger': 1.13.4_biqbaboplfbrettd7655fr4n2y classnames: 2.3.2 dayjs: 1.11.8 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17807,7 +18620,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17821,7 +18634,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17834,7 +18647,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 resize-observer-polyfill: 1.5.1 @@ -17849,7 +18662,7 @@ packages: '@babel/runtime': 7.22.5 classnames: 2.3.2 rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17866,7 +18679,7 @@ packages: classnames: 2.3.2 rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y rc-overflow: 1.3.0_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y rc-virtual-list: 3.5.2_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 @@ -17881,7 +18694,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17895,7 +18708,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17908,7 +18721,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17924,7 +18737,25 @@ packages: '@rc-component/context': 1.3.0_biqbaboplfbrettd7655fr4n2y classnames: 2.3.2 rc-resize-observer: 1.3.1_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /rc-tabs/12.11.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-5GLspxlJw5V3UjslAPuIgkuTybN6JEOWMWc8N1hztaNKeY6cBxQvf7XWJ32SsqqkggM34ZIN1dggtrnlPqa3sA==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.22.5 + classnames: 2.3.2 + rc-dropdown: 4.1.0_biqbaboplfbrettd7655fr4n2y + rc-menu: 9.11.1_biqbaboplfbrettd7655fr4n2y + rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y + rc-resize-observer: 1.3.1_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17942,7 +18773,7 @@ packages: rc-menu: 9.9.2_biqbaboplfbrettd7655fr4n2y rc-motion: 2.7.3_biqbaboplfbrettd7655fr4n2y rc-resize-observer: 1.3.1_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17957,7 +18788,7 @@ packages: classnames: 2.3.2 rc-input: 1.0.4_biqbaboplfbrettd7655fr4n2y rc-resize-observer: 1.3.1_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -17984,14 +18815,14 @@ packages: '@babel/runtime': 7.22.5 classnames: 2.3.2 rc-select: 14.5.2_biqbaboplfbrettd7655fr4n2y - rc-tree: 5.7.4_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-tree: 5.7.10_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true - /rc-tree/5.7.4_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-7VfDq4jma+6fvlzfDXvUJ34SaO2EWkcXGBmPgeFmVKsLNNXcKGl4cRAhs6Ts1zqnX994vu/hb3f1dyTjn43RFg==} + /rc-tree/5.7.10_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-n4UkMQY3bzvJUNnbw6e3YI7sy2kE9c9vAYbSt94qAhcPKtMOThONNr1LIaFB/M5XeFYYrWVbvRVoT8k38eFuSQ==} engines: {node: '>=10.x'} peerDependencies: react: '*' @@ -18014,7 +18845,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 classnames: 2.3.2 - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -18031,6 +18862,18 @@ packages: react-is: 16.13.1 dev: true + /rc-util/5.37.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-cPMV8DzaHI1KDaS7XPRXAf4J7mtBqjvjikLpQieaeOO7+cEbqY2j7Kso/T0R0OiEZTNcLS/8Zl9YrlXiO9UbjQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.22.5 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-is: 16.13.1 + dev: true + /rc-virtual-list/3.5.2_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-sE2G9hTPjVmatQni8OP2Kx33+Oth6DMKm67OblBBmgMBJDJQOOFpSGH7KZ6Pm85rrI2IGxDRXZCr0QhYOH2pfQ==} engines: {node: '>=8.x'} @@ -18041,7 +18884,7 @@ packages: '@babel/runtime': 7.22.5 classnames: 2.3.2 rc-resize-observer: 1.3.1_biqbaboplfbrettd7655fr4n2y - rc-util: 5.33.0_biqbaboplfbrettd7655fr4n2y + rc-util: 5.37.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -18078,7 +18921,7 @@ packages: react: 18.2.0 dev: true - /react-dev-utils/12.0.1_t7tkqw6lef7ii5lqgcyttb6s3a: + /react-dev-utils/12.0.1_y2ocxpfygslkyvnwbboiuyz2fa: resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} engines: {node: '>=14'} peerDependencies: @@ -18090,14 +18933,14 @@ packages: dependencies: '@babel/code-frame': 7.22.5 address: 1.2.2 - browserslist: 4.21.7 + browserslist: 4.21.10 chalk: 4.1.2 cross-spawn: 7.0.3 detect-port-alt: 1.1.6 escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3_t7tkqw6lef7ii5lqgcyttb6s3a + fork-ts-checker-webpack-plugin: 6.5.3_y2ocxpfygslkyvnwbboiuyz2fa global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -18112,7 +18955,7 @@ packages: shell-quote: 1.8.1 strip-ansi: 6.0.1 text-table: 0.2.0 - typescript: 5.1.6 + typescript: 5.2.2 webpack: 5.86.0 transitivePeerDependencies: - eslint @@ -18139,9 +18982,8 @@ packages: react: 18.2.0 scheduler: 0.23.0 - /react-error-boundary/3.1.4_react@18.2.0: - resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} - engines: {node: '>=10', npm: '>=6'} + /react-error-boundary/4.0.11_react@18.2.0: + resolution: {integrity: sha512-U13ul67aP5DOSPNSCWQ/eO0AQEYzEFkVljULQIjMV0KlffTAhxuDoBKdO0pb/JZ8mDhMKFZ9NZi0BmLGUiNphw==} peerDependencies: react: '>=16.13.1' dependencies: @@ -18191,7 +19033,7 @@ packages: shallowequal: 1.1.0 dev: true - /react-intl/6.4.4_i5n5dea2j27pemvkl7j4yxbax4: + /react-intl/6.4.4_met4wgzfujk7j64aelglgsjh3q: resolution: {integrity: sha512-/C9Sl/5//ohfkNG6AWlJuf4BhTXsbzyk93K62A4zRhSPANyOGpKZ+fWhN+TLfFd5YjDUHy+exU/09y0w1bO4Xw==} peerDependencies: react: ^16.6.0 || 17 || 18 @@ -18202,16 +19044,16 @@ packages: dependencies: '@formatjs/ecma402-abstract': 1.17.0 '@formatjs/icu-messageformat-parser': 2.6.0 - '@formatjs/intl': 2.9.0_typescript@5.1.6 + '@formatjs/intl': 2.9.0_typescript@5.2.2 '@formatjs/intl-displaynames': 6.5.0 '@formatjs/intl-listformat': 7.4.0 '@types/hoist-non-react-statics': 3.3.1 - '@types/react': 18.2.7 + '@types/react': 18.2.21 hoist-non-react-statics: 3.3.2 intl-messageformat: 10.5.0 react: 18.2.0 tslib: 2.5.2 - typescript: 5.1.6 + typescript: 5.2.2 dev: true /react-is/16.13.1: @@ -18315,7 +19157,7 @@ packages: react: 18.2.0 dev: true - /react-scripts/5.0.1_zidcde6s34xchjgatwaruzvysq: + /react-scripts/5.0.1_nywitjp2ymwqnfytiuchkuqa5e: resolution: {integrity: sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -18342,9 +19184,9 @@ packages: css-minimizer-webpack-plugin: 3.4.1_webpack@5.86.0 dotenv: 10.0.0 dotenv-expand: 5.1.0 - eslint: 8.41.0 - eslint-config-react-app: 7.0.1_i6ydrlk3re3lfoxdqgyo7fjx6a - eslint-webpack-plugin: 3.2.0_e7ximgwtgqinidfiut5pwkg6dm + eslint: 8.47.0 + eslint-config-react-app: 7.0.1_n5f53kj4ou6d42lt7y5vdoemf4 + eslint-webpack-plugin: 3.2.0_6oa5roqlvdcxzk3es7qzdn6wii file-loader: 6.2.0_webpack@5.86.0 fs-extra: 10.1.0 html-webpack-plugin: 5.5.0_webpack@5.86.0 @@ -18353,25 +19195,25 @@ packages: jest-resolve: 27.5.1 jest-watch-typeahead: 1.1.0_jest@27.5.1 mini-css-extract-plugin: 2.7.6_webpack@5.86.0 - postcss: 8.4.26 - postcss-flexbugs-fixes: 5.0.2_postcss@8.4.26 - postcss-loader: 6.2.1_z6cbt53pgxw4whowualpia2i7u - postcss-normalize: 10.0.1_ovlgmangv5it2io6j6qgykv4o4 - postcss-preset-env: 7.5.0_postcss@8.4.26 + postcss: 8.4.28 + postcss-flexbugs-fixes: 5.0.2_postcss@8.4.28 + postcss-loader: 6.2.1_afxhrea2ebb2qsd7z2cpx2wcti + postcss-normalize: 10.0.1_ej5suzfewe373ktotemrpglphy + postcss-preset-env: 7.5.0_postcss@8.4.28 prompts: 2.4.2 react: 18.2.0 react-app-polyfill: 3.0.0 - react-dev-utils: 12.0.1_t7tkqw6lef7ii5lqgcyttb6s3a + react-dev-utils: 12.0.1_y2ocxpfygslkyvnwbboiuyz2fa react-refresh: 0.11.0 resolve: 1.22.2 resolve-url-loader: 4.0.0 - sass-loader: 12.6.0_sass@1.62.1+webpack@5.86.0 + sass-loader: 12.6.0_sass@1.66.1+webpack@5.86.0 semver: 7.5.1 source-map-loader: 3.0.2_webpack@5.86.0 style-loader: 3.3.3_webpack@5.86.0 tailwindcss: 3.3.2 terser-webpack-plugin: 5.3.9_webpack@5.86.0 - typescript: 5.1.6 + typescript: 5.2.2 webpack: 5.86.0 webpack-dev-server: 4.15.1_webpack@5.86.0 webpack-manifest-plugin: 4.1.1_webpack@5.86.0 @@ -18478,6 +19320,15 @@ packages: type-fest: 0.8.1 dev: true + /read-pkg-up/8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} + dependencies: + find-up: 5.0.0 + read-pkg: 6.0.0 + type-fest: 1.4.0 + dev: true + /read-pkg/3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} engines: {node: '>=4'} @@ -18497,6 +19348,16 @@ packages: type-fest: 0.6.0 dev: true + /read-pkg/6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 3.0.3 + parse-json: 5.2.0 + type-fest: 1.4.0 + dev: true + /readable-stream/1.0.34: resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} dependencies: @@ -18554,6 +19415,14 @@ packages: strip-indent: 3.0.0 dev: true + /redent/4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + dependencies: + indent-string: 5.0.0 + strip-indent: 4.0.0 + dev: true + /reflect.getprototypeof/1.0.3: resolution: {integrity: sha512-TTAOZpkJ2YLxl7mVHWrNo3iDMEkYlva/kgFcXndqMgbo/AZUmmavEkdXV+hXtE4P8xdyEKRzalaFqZVuwIk/Nw==} engines: {node: '>= 0.4'} @@ -18670,7 +19539,7 @@ packages: /rehype-autolink-headings/6.1.1: resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 extend: 3.0.2 hast-util-has-property: 2.0.1 hast-util-heading-rank: 2.1.1 @@ -18682,7 +19551,7 @@ packages: /rehype-remove-comments/5.0.0: resolution: {integrity: sha512-sfiVT+u1in19sxo9vv/SDQVbHE2mADScNrpeVsUxBFl14zOMZnfPb6l4hR+lXqe10G13UFVqv5pt8zDbCR4JYQ==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 hast-util-is-conditional-comment: 2.0.0 unified: 10.1.2 unist-util-filter: 4.0.1 @@ -18691,7 +19560,7 @@ packages: /rehype-stringify/9.0.3: resolution: {integrity: sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==} dependencies: - '@types/hast': 2.3.4 + '@types/hast': 2.3.5 hast-util-to-html: 8.0.4 unified: 10.1.2 dev: true @@ -18704,7 +19573,7 @@ packages: /remark-directive/2.0.1: resolution: {integrity: sha512-oosbsUAkU/qmUE78anLaJePnPis4ihsE7Agp0T/oqTzvTea8pOiaYEtfInU/+xMOVTS9PN5AhGOiaIVe4GD8gw==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 mdast-util-directive: 2.2.4 micromark-extension-directive: 2.2.1 unified: 10.1.2 @@ -18715,7 +19584,7 @@ packages: /remark-frontmatter/4.0.1: resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 mdast-util-frontmatter: 1.0.1 micromark-extension-frontmatter: 1.1.1 unified: 10.1.2 @@ -18724,7 +19593,7 @@ packages: /remark-gfm/3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 mdast-util-gfm: 2.0.2 micromark-extension-gfm: 2.0.3 unified: 10.1.2 @@ -18735,7 +19604,7 @@ packages: /remark-parse/10.0.2: resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} dependencies: - '@types/mdast': 3.0.11 + '@types/mdast': 3.0.12 mdast-util-from-markdown: 1.3.1 unified: 10.1.2 transitivePeerDependencies: @@ -18745,8 +19614,8 @@ packages: /remark-rehype/10.1.0: resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} dependencies: - '@types/hast': 2.3.4 - '@types/mdast': 3.0.11 + '@types/hast': 2.3.5 + '@types/mdast': 3.0.12 mdast-util-to-hast: 12.3.0 unified: 10.1.2 dev: true @@ -18871,12 +19740,6 @@ packages: engines: {node: '>=10'} dev: true - /resolve/1.17.0: - resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} - dependencies: - path-parse: 1.0.7 - dev: true - /resolve/1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: @@ -18917,19 +19780,14 @@ packages: signal-exit: 3.0.7 dev: true - /restore-cursor/3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + /restore-cursor/4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 dev: true - /ret/0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: true - /retry/0.10.1: resolution: {integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==} dev: true @@ -18982,18 +19840,18 @@ packages: inherits: 2.0.4 dev: true - /rollup-plugin-dts/5.3.0_7m3vutr5n3ciruqg64geoeghpq: - resolution: {integrity: sha512-8FXp0ZkyZj1iU5klkIJYLjIq/YZSwBoERu33QBDxm/1yw5UU4txrEtcmMkrq+ZiKu3Q4qvPCNqc3ovX6rjqzbQ==} - engines: {node: '>=v14'} + /rollup-plugin-dts/6.0.0_4pxs67mpxk7q3ijwvzb3ziuu7a: + resolution: {integrity: sha512-A996xSZDAqnx/KfFttzC8mDEuyMjsRpiLCrlGc8effhK8KhE3AG0g1woQiITgFc5HSE8HWU7ccR9CiQ3vXgUlQ==} + engines: {node: '>=v18.17.1'} peerDependencies: - rollup: ^3.0.0 - typescript: ^4.1 || ^5.0 + rollup: ^3.25.0 + typescript: ^4.5 || ^5.0 dependencies: - magic-string: 0.30.0 - rollup: 3.23.0 - typescript: 5.1.6 + magic-string: 0.30.3 + rollup: 3.28.1 + typescript: 5.2.2 optionalDependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 dev: true /rollup-plugin-terser/7.0.2_rollup@2.79.1: @@ -19002,15 +19860,15 @@ packages: peerDependencies: rollup: ^2.0.0 dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 jest-worker: 26.6.2 rollup: 2.79.1 serialize-javascript: 4.0.0 terser: 5.17.6 dev: true - /rollup-plugin-typescript2/0.34.1_7m3vutr5n3ciruqg64geoeghpq: - resolution: {integrity: sha512-P4cHLtGikESmqi1CA+tdMDUv8WbQV48mzPYt77TSTOPJpERyZ9TXdDgjSDix8Fkqce6soYz3+fa4lrC93IEkcw==} + /rollup-plugin-typescript2/0.35.0_4pxs67mpxk7q3ijwvzb3ziuu7a: + resolution: {integrity: sha512-szcIO9hPUx3PhQl91u4pfNAH2EKbtrXaES+m163xQVE5O1CC0ea6YZV/5woiDDW3CR9jF2CszPrKN+AFiND0bg==} peerDependencies: rollup: '>=1.26.3' typescript: '>=2.4.0' @@ -19018,13 +19876,13 @@ packages: '@rollup/pluginutils': 4.2.1 find-cache-dir: 3.3.2 fs-extra: 10.1.0 - rollup: 3.23.0 - semver: 7.5.1 + rollup: 3.28.1 + semver: 7.5.4 tslib: 2.5.2 - typescript: 5.1.6 + typescript: 5.2.2 dev: true - /rollup-plugin-visualizer/5.9.0_rollup@3.23.0: + /rollup-plugin-visualizer/5.9.0_rollup@3.28.1: resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} engines: {node: '>=14'} hasBin: true @@ -19036,7 +19894,7 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: 3.23.0 + rollup: 3.28.1 source-map: 0.7.4 yargs: 17.7.2 dev: true @@ -19049,8 +19907,8 @@ packages: fsevents: 2.3.2 dev: true - /rollup/3.23.0: - resolution: {integrity: sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ==} + /rollup/3.28.1: + resolution: {integrity: sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -19140,7 +19998,7 @@ packages: resolution: {integrity: sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==} dev: true - /sass-loader/12.6.0_sass@1.62.1+webpack@5.86.0: + /sass-loader/12.6.0_sass@1.66.1+webpack@5.86.0: resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -19161,12 +20019,12 @@ packages: dependencies: klona: 2.0.6 neo-async: 2.6.2 - sass: 1.62.1 + sass: 1.66.1 webpack: 5.86.0 dev: true - /sass/1.62.1: - resolution: {integrity: sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==} + /sass/1.66.1: + resolution: {integrity: sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -19245,10 +20103,10 @@ packages: compute-scroll-into-view: 3.0.3 dev: true - /selderee/0.6.0: - resolution: {integrity: sha512-ibqWGV5aChDvfVdqNYuaJP/HnVBhlRGSRrlbttmlMpHcLuTqqbMH36QkSs9GEgj5M88JDYLI8eyP94JaQ8xRlg==} + /selderee/0.11.0: + resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} dependencies: - parseley: 0.7.0 + parseley: 0.12.1 dev: true /select-hose/2.0.0: @@ -19273,7 +20131,7 @@ packages: resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} engines: {node: '>=12'} dependencies: - semver: 7.5.1 + semver: 7.5.4 dev: true /semver-utils/1.1.4: @@ -19290,24 +20148,21 @@ packages: hasBin: true dev: true - /semver/7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} - engines: {node: '>=10'} + /semver/6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - dependencies: - lru-cache: 6.0.0 dev: true - /semver/7.5.0: - resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} + /semver/7.5.1: + resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 dev: true - /semver/7.5.1: - resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} + /semver/7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -19387,8 +20242,8 @@ packages: - supports-color dev: true - /serve/14.2.0: - resolution: {integrity: sha512-+HOw/XK1bW8tw5iBilBz/mJLWRzM8XM6MPxL4J/dKzdxq1vfdEWSwhaR7/yS8EJp5wzvP92p1qirysJvnEtjXg==} + /serve/14.2.1: + resolution: {integrity: sha512-48er5fzHh7GCShLnNyPBRPEjs2I6QBozeGr02gaacROiyS/8ARADlj595j39iZXAqBbJHH/ivJJyPRWY9sQWZA==} engines: {node: '>= 14'} hasBin: true dependencies: @@ -19469,6 +20324,7 @@ packages: /shortid/2.2.16: resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: nanoid: 2.1.11 dev: true @@ -19485,8 +20341,8 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /signal-exit/4.0.2: - resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} + /signal-exit/4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} dev: true @@ -19539,15 +20395,6 @@ packages: engines: {node: '>=14.16'} dev: true - /slice-ansi/3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - /slice-ansi/4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -19640,6 +20487,19 @@ packages: sort-object-keys: 1.1.3 dev: true + /sort-package-json/2.5.1: + resolution: {integrity: sha512-vx/KoZxm8YNMUqdlw7SGTfqR5pqZ/sUfgOuRtDILiOy/3AvzhAibyUe2cY3OpLs3oRSow9up4yLVtQaM24rbDQ==} + hasBin: true + dependencies: + detect-indent: 7.0.1 + detect-newline: 4.0.0 + get-stdin: 9.0.0 + git-hooks-list: 3.1.0 + globby: 13.1.4 + is-plain-obj: 4.1.0 + sort-object-keys: 1.1.3 + dev: true + /source-list-map/2.0.1: resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} dev: true @@ -20074,6 +20934,13 @@ packages: min-indent: 1.0.1 dev: true + /strip-indent/4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + dependencies: + min-indent: 1.0.1 + dev: true + /strip-json-comments/2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -20084,8 +20951,8 @@ packages: engines: {node: '>=8'} dev: true - /strip-json-comments/5.0.0: - resolution: {integrity: sha512-V1LGY4UUo0jgwC+ELQ2BNWfPa17TIuwBLg+j1AA/9RPzKINl1lhxVEu2r+ZTTO8aetIsUzE5Qj6LMSBkoGYKKw==} + /strip-json-comments/5.0.1: + resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} engines: {node: '>=14.16'} dev: true @@ -20115,40 +20982,40 @@ packages: inline-style-parser: 0.1.1 dev: true - /stylehacks/5.1.1_postcss@8.4.26: + /stylehacks/5.1.1_postcss@8.4.28: resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 - postcss: 8.4.26 + browserslist: 4.21.10 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /stylehacks/6.0.0_postcss@8.4.26: + /stylehacks/6.0.0_postcss@8.4.28: resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.7 - postcss: 8.4.26 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /stylelint-config-prettier/9.0.5_stylelint@15.7.0: + /stylelint-config-prettier/9.0.5_stylelint@15.10.3: resolution: {integrity: sha512-U44lELgLZhbAD/xy/vncZ2Pq8sh2TnpiPvo38Ifg9+zeioR+LAkHu0i6YORIOxFafZoVg0xqQwex6e6F25S5XA==} engines: {node: '>= 12'} hasBin: true peerDependencies: stylelint: '>= 11.x < 15' dependencies: - stylelint: 15.7.0 + stylelint: 15.10.3 dev: true - /stylelint-config-recommended-scss/11.0.0_csuvv2ofmytdi4f2mfn763azyy: - resolution: {integrity: sha512-EDghTDU7aOv2LTsRZvcT1w8mcjUaMhuy+t38iV5I/0Qiu6ixdkRwhLEMul3K/fnB2v9Nwqvb3xpvJfPH+HduDw==} + /stylelint-config-recommended-scss/12.0.0_7d3mf2kza32tdlv7dc7dltorq4: + resolution: {integrity: sha512-5Bb2mlGy6WLa30oNeKpZvavv2lowJUsUJO25+OA68GFTemlwd1zbFsL7q0bReKipOSU3sG47hKneZ6Nd+ctrFA==} peerDependencies: postcss: ^8.3.3 stylelint: ^15.5.0 @@ -20156,31 +21023,40 @@ packages: postcss: optional: true dependencies: - postcss: 8.4.26 - postcss-scss: 4.0.6_postcss@8.4.26 - stylelint: 15.7.0 - stylelint-config-recommended: 12.0.0_stylelint@15.7.0 - stylelint-scss: 4.7.0_stylelint@15.7.0 + postcss: 8.4.28 + postcss-scss: 4.0.6_postcss@8.4.28 + stylelint: 15.10.3 + stylelint-config-recommended: 12.0.0_stylelint@15.10.3 + stylelint-scss: 5.1.0_stylelint@15.10.3 dev: true - /stylelint-config-recommended/12.0.0_stylelint@15.7.0: + /stylelint-config-recommended/12.0.0_stylelint@15.10.3: resolution: {integrity: sha512-x6x8QNARrGO2sG6iURkzqL+Dp+4bJorPMMRNPScdvaUK8PsynriOcMW7AFDKqkWAS5wbue/u8fUT/4ynzcmqdQ==} peerDependencies: stylelint: ^15.5.0 dependencies: - stylelint: 15.7.0 + stylelint: 15.10.3 + dev: true + + /stylelint-config-recommended/13.0.0_stylelint@15.10.3: + resolution: {integrity: sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + stylelint: ^15.10.0 + dependencies: + stylelint: 15.10.3 dev: true - /stylelint-config-recommended/7.0.0_stylelint@15.7.0: + /stylelint-config-recommended/7.0.0_stylelint@15.10.3: resolution: {integrity: sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==} peerDependencies: stylelint: ^14.4.0 dependencies: - stylelint: 15.7.0 + stylelint: 15.10.3 dev: true - /stylelint-config-standard-scss/9.0.0_csuvv2ofmytdi4f2mfn763azyy: - resolution: {integrity: sha512-yPKpJsrZn4ybuQZx/DkEHuCjw7pJginErE/47dFhCnrvD48IJ4UYec8tSiCuJWMA3HRjbIa3nh5ZeSauDGuVAg==} + /stylelint-config-standard-scss/10.0.0_7d3mf2kza32tdlv7dc7dltorq4: + resolution: {integrity: sha512-bChBEo1p3xUVWh/wenJI+josoMk21f2yuLDGzGjmKYcALfl2u3DFltY+n4UHswYiXghqXaA8mRh+bFy/q1hQlg==} peerDependencies: postcss: ^8.3.3 stylelint: ^15.5.0 @@ -20188,54 +21064,52 @@ packages: postcss: optional: true dependencies: - postcss: 8.4.26 - stylelint: 15.7.0 - stylelint-config-recommended-scss: 11.0.0_csuvv2ofmytdi4f2mfn763azyy - stylelint-config-standard: 33.0.0_stylelint@15.7.0 + postcss: 8.4.28 + stylelint: 15.10.3 + stylelint-config-recommended-scss: 12.0.0_7d3mf2kza32tdlv7dc7dltorq4 + stylelint-config-standard: 33.0.0_stylelint@15.10.3 dev: true - /stylelint-config-standard/25.0.0_stylelint@15.7.0: + /stylelint-config-standard/25.0.0_stylelint@15.10.3: resolution: {integrity: sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==} peerDependencies: stylelint: ^14.4.0 dependencies: - stylelint: 15.7.0 - stylelint-config-recommended: 7.0.0_stylelint@15.7.0 + stylelint: 15.10.3 + stylelint-config-recommended: 7.0.0_stylelint@15.10.3 dev: true - /stylelint-config-standard/33.0.0_stylelint@15.7.0: + /stylelint-config-standard/33.0.0_stylelint@15.10.3: resolution: {integrity: sha512-eyxnLWoXImUn77+ODIuW9qXBDNM+ALN68L3wT1lN2oNspZ7D9NVGlNHb2QCUn4xDug6VZLsh0tF8NyoYzkgTzg==} peerDependencies: stylelint: ^15.5.0 dependencies: - stylelint: 15.7.0 - stylelint-config-recommended: 12.0.0_stylelint@15.7.0 + stylelint: 15.10.3 + stylelint-config-recommended: 12.0.0_stylelint@15.10.3 dev: true - /stylelint-order/6.0.3_stylelint@15.7.0: - resolution: {integrity: sha512-1j1lOb4EU/6w49qZeT2SQVJXm0Ht+Qnq9GMfUa3pMwoyojIWfuA+JUDmoR97Bht1RLn4ei0xtLGy87M7d29B1w==} + /stylelint-config-standard/34.0.0_stylelint@15.10.3: + resolution: {integrity: sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==} + engines: {node: ^14.13.1 || >=16.0.0} peerDependencies: - stylelint: ^14.0.0 || ^15.0.0 + stylelint: ^15.10.0 dependencies: - postcss: 8.4.26 - postcss-sorting: 8.0.2_postcss@8.4.26 - stylelint: 15.7.0 + stylelint: 15.10.3 + stylelint-config-recommended: 13.0.0_stylelint@15.10.3 dev: true - /stylelint-scss/4.7.0_stylelint@15.7.0: - resolution: {integrity: sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==} + /stylelint-order/6.0.3_stylelint@15.10.3: + resolution: {integrity: sha512-1j1lOb4EU/6w49qZeT2SQVJXm0Ht+Qnq9GMfUa3pMwoyojIWfuA+JUDmoR97Bht1RLn4ei0xtLGy87M7d29B1w==} peerDependencies: - stylelint: ^14.5.1 || ^15.0.0 + stylelint: ^14.0.0 || ^15.0.0 dependencies: - postcss-media-query-parser: 0.2.3 - postcss-resolve-nested-selector: 0.1.1 - postcss-selector-parser: 6.0.13 - postcss-value-parser: 4.2.0 - stylelint: 15.7.0 + postcss: 8.4.28 + postcss-sorting: 8.0.2_postcss@8.4.28 + stylelint: 15.10.3 dev: true - /stylelint-scss/5.0.1_stylelint@15.7.0: - resolution: {integrity: sha512-n87iCRZrr2J7//I/QFsDXxFLnHKw633U4qvWZ+mOW6KDAp/HLj06H+6+f9zOuTYy+MdGdTuCSDROCpQIhw5fvQ==} + /stylelint-scss/5.1.0_stylelint@15.10.3: + resolution: {integrity: sha512-E+KlQFXv1Euha43qw3q+wKBSli557wxbbo6/39DWhRNXlUa9Cz+FYrcgz+PT6ag0l6UisCYjAGCNhoSl4FcwlA==} peerDependencies: stylelint: ^14.5.1 || ^15.0.0 dependencies: @@ -20243,25 +21117,25 @@ packages: postcss-resolve-nested-selector: 0.1.1 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 - stylelint: 15.7.0 + stylelint: 15.10.3 dev: true - /stylelint/15.7.0: - resolution: {integrity: sha512-fQRwHwWuZsDn4ENyE9AsKkOkV9WlD2CmYiVDbdZPdS3iZh0ceypOn1EuwTNuZ8xTrHF+jVeIEzLtFFSlD/nJHg==} + /stylelint/15.10.3: + resolution: {integrity: sha512-aBQMMxYvFzJJwkmg+BUUg3YfPyeuCuKo2f+LOw7yYbU8AZMblibwzp9OV4srHVeQldxvSFdz0/Xu8blq2AesiA==} engines: {node: ^14.13.1 || >=16.0.0} hasBin: true dependencies: - '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq - '@csstools/css-tokenizer': 2.1.1 - '@csstools/media-query-list-parser': 2.1.0_g5wmdbqtzzaodrrmvxcit5gfji - '@csstools/selector-specificity': 2.2.0_c3vcbepomgmxc74cgtawpgpkyi + '@csstools/css-parser-algorithms': 2.3.1_2iaba7mwn2eejye7evc5orckwy + '@csstools/css-tokenizer': 2.2.0 + '@csstools/media-query-list-parser': 2.1.4_qf4qltc2k6xikzxwdc2htbpiiq + '@csstools/selector-specificity': 3.0.0_c3vcbepomgmxc74cgtawpgpkyi balanced-match: 2.0.0 colord: 2.9.3 cosmiconfig: 8.2.0 - css-functions-list: 3.1.0 + css-functions-list: 3.2.0 css-tree: 2.3.1 debug: 4.3.4 - fast-glob: 3.2.12 + fast-glob: 3.3.1 fastest-levenshtein: 1.0.16 file-entry-cache: 6.0.1 global-modules: 2.0.0 @@ -20272,16 +21146,15 @@ packages: import-lazy: 4.0.0 imurmurhash: 0.1.4 is-plain-object: 5.0.0 - known-css-properties: 0.27.0 + known-css-properties: 0.28.0 mathml-tag-names: 2.1.3 - meow: 9.0.0 + meow: 10.1.5 micromatch: 4.0.5 normalize-path: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.26 - postcss-media-query-parser: 0.2.3 + postcss: 8.4.28 postcss-resolve-nested-selector: 0.1.1 - postcss-safe-parser: 6.0.0_postcss@8.4.26 + postcss-safe-parser: 6.0.0_postcss@8.4.28 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 @@ -20291,7 +21164,6 @@ packages: supports-hyperlinks: 3.0.0 svg-tags: 1.0.0 table: 6.8.1 - v8-compile-cache: 2.3.0 write-file-atomic: 5.0.1 transitivePeerDependencies: - supports-color @@ -20491,11 +21363,11 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.26 - postcss-import: 15.1.0_postcss@8.4.26 - postcss-js: 4.0.1_postcss@8.4.26 - postcss-load-config: 4.0.1_postcss@8.4.26 - postcss-nested: 6.0.1_postcss@8.4.26 + postcss: 8.4.28 + postcss-import: 15.1.0_postcss@8.4.28 + postcss-js: 4.0.1_postcss@8.4.28 + postcss-load-config: 4.0.1_postcss@8.4.28 + postcss-nested: 6.0.1_postcss@8.4.28 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 resolve: 1.22.2 @@ -20789,7 +21661,7 @@ packages: dev: true /traverse/0.6.6: - resolution: {integrity: sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=} + resolution: {integrity: sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==} dev: true /trim-lines/3.0.1: @@ -20801,6 +21673,11 @@ packages: engines: {node: '>=8'} dev: true + /trim-newlines/4.1.1: + resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} + engines: {node: '>=12'} + dev: true + /trim-repeated/1.0.0: resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} engines: {node: '>=0.10.0'} @@ -20820,7 +21697,7 @@ packages: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /ts-node/10.9.1_sxfyhp6doxyyy5b3aojkgj4teu: + /ts-node/10.9.1_jjsxl3z4jzcyq5yjro7btxsuqe: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -20839,20 +21716,24 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 16.18.34 - acorn: 8.8.2 + '@types/node': 20.4.7 + acorn: 8.10.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.1.6 + typescript: 5.2.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true - /tsc-alias/1.8.6: - resolution: {integrity: sha512-vq+i6VpE83IeMsSJVcFN03ZBofADhr8/gIJXjxpbnTRfN/MFXy0+SBaKG2o7p95QqXBGkeG98HYz3IkOOveFbg==} + /ts-toolbelt/9.6.0: + resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} + dev: true + + /tsc-alias/1.8.7: + resolution: {integrity: sha512-59Q/zUQa3miTf99mLbSqaW0hi1jt4WoG8Uhe5hSZJHQpSoFW9eEwvW7jlKMHXWvT+zrzy3SN9PE/YBhQ+WVydA==} hasBin: true dependencies: chokidar: 3.5.3 @@ -20888,14 +21769,14 @@ packages: resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==} dev: true - /tsutils/3.21.0_typescript@5.1.6: + /tsutils/3.21.0_typescript@5.2.2: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.1.6 + typescript: 5.2.2 dev: true /tsx/3.12.7: @@ -20991,6 +21872,36 @@ packages: mime-types: 2.1.35 dev: true + /typed-array-buffer/1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.10 + dev: true + + /typed-array-byte-length/1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.10 + dev: true + + /typed-array-byte-offset/1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.10 + dev: true + /typed-array-length/1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: @@ -21009,23 +21920,29 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true - /typescript-transform-paths/3.4.6_typescript@4.8.4: + /types-ramda/0.29.4: + resolution: {integrity: sha512-XO/820iRsCDwqLjE8XE+b57cVGPyk1h+U9lBGpDWvbEky+NQChvHVwaKM05WnW1c5z3EVQh8NhXFmh2E/1YazQ==} + dependencies: + ts-toolbelt: 9.6.0 + dev: true + + /typescript-transform-paths/3.4.6_typescript@5.0.4: resolution: {integrity: sha512-qdgpCk9oRHkIBhznxaHAapCFapJt5e4FbFik7Y4qdqtp6VyC3smAIPoDEIkjZ2eiF7x5+QxUPYNwJAtw0thsTw==} peerDependencies: typescript: '>=3.6.5' dependencies: minimatch: 3.1.2 - typescript: 4.8.4 + typescript: 5.0.4 dev: true - /typescript/4.8.4: - resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} - engines: {node: '>=4.2.0'} + /typescript/5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} + engines: {node: '>=12.20'} hasBin: true dev: true - /typescript/5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + /typescript/5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -21038,23 +21955,23 @@ packages: dev: true optional: true - /umi/4.0.70_x5gi6wxwbmpr4zqpfjt6hjb6oi: - resolution: {integrity: sha512-e6GwzZXC1U+XPJhLaOMIr6IBWpi8mGap6ExRkApidfbYZ8HxilvrVHnaLUYSykp206RhZBnJWI7r99mYu3e5eQ==} + /umi/4.0.78_r6w5bo3yqebnxfnb3y67fqrpby: + resolution: {integrity: sha512-t8kO2KmYtTikrZxyAPTV7TbbuW6C2BNk8WJ0ZJz4qLCIxPgvZb1DgaicuH4ilrYaNFdGK2LzdXojaXt3SB/Nbg==} engines: {node: '>=14'} hasBin: true dependencies: '@babel/runtime': 7.21.0 - '@umijs/bundler-utils': 4.0.70 - '@umijs/bundler-webpack': 4.0.70_typescript@5.1.6 - '@umijs/core': 4.0.70 - '@umijs/lint': 4.0.70_pqb4avgxdjjhzbr6dozjwjlhxi - '@umijs/preset-umi': 4.0.70_uu27r4l33n3hcb65i3giusevau - '@umijs/renderer-react': 4.0.70_biqbaboplfbrettd7655fr4n2y - '@umijs/server': 4.0.70 - '@umijs/test': 4.0.70 - '@umijs/utils': 4.0.70 - prettier-plugin-organize-imports: 3.2.2_dyixtp4kk4c7jiqt66igkf6jh4 - prettier-plugin-packagejson: 2.4.3_prettier@2.8.8 + '@umijs/bundler-utils': 4.0.78 + '@umijs/bundler-webpack': 4.0.78_typescript@5.2.2 + '@umijs/core': 4.0.78 + '@umijs/lint': 4.0.78_igsqdvhtnoc4fddledok52lyua + '@umijs/preset-umi': 4.0.78_yvqx3bitrswgejqi24mkfqjfbu + '@umijs/renderer-react': 4.0.78_biqbaboplfbrettd7655fr4n2y + '@umijs/server': 4.0.78 + '@umijs/test': 4.0.78 + '@umijs/utils': 4.0.78 + prettier-plugin-organize-imports: 3.2.3_ryks3bcd2xrdaswy3gfjyoetha + prettier-plugin-packagejson: 2.4.3_prettier@3.0.2 transitivePeerDependencies: - '@babel/core' - '@types/node' @@ -21291,6 +22208,17 @@ packages: engines: {node: '>=4'} dev: true + /update-browserslist-db/1.0.11_browserslist@4.21.10: + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.10 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /update-browserslist-db/1.0.11_browserslist@4.21.7: resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true @@ -21330,7 +22258,7 @@ packages: engines: {node: '>=14.16'} dependencies: boxen: 7.1.0 - chalk: 5.2.0 + chalk: 5.3.0 configstore: 6.0.0 has-yarn: 3.0.0 import-lazy: 4.0.0 @@ -21340,7 +22268,7 @@ packages: is-yarn-global: 0.4.1 latest-version: 7.0.0 pupa: 3.1.0 - semver: 7.5.1 + semver: 7.5.4 semver-diff: 4.0.0 xdg-basedir: 5.1.0 dev: true @@ -21372,7 +22300,7 @@ packages: qs: 6.11.0 dev: true - /use-isomorphic-layout-effect/1.1.2_g6ftqcdzjknzos3o5hdsspkjtm: + /use-isomorphic-layout-effect/1.1.2_6gpsgwozql5zgs2mtrxxpfduxe: resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' @@ -21381,7 +22309,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.7 + '@types/react': 18.2.21 react: 18.1.0 dev: true @@ -21527,7 +22455,7 @@ packages: vfile-message: 3.1.4 dev: true - /vite/4.3.1_czn76ejmismrv2aq7yiaecbkxi: + /vite/4.3.1_2bcfa5fly7valb65t64arj7wgi: resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -21552,23 +22480,24 @@ packages: terser: optional: true dependencies: - '@types/node': 16.18.34 + '@types/node': 20.5.6 esbuild: 0.17.19 less: 4.1.3 - postcss: 8.4.26 - rollup: 3.23.0 - sass: 1.62.1 + postcss: 8.4.28 + rollup: 3.28.1 + sass: 1.66.1 optionalDependencies: fsevents: 2.3.2 dev: true - /vite/4.3.9_ry4qyapxqh4lizdioe23q4ynly: - resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} + /vite/4.4.9_qlrdcraoafkf3ts4i7jojdzbye: + resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: '@types/node': '>= 14' less: '*' + lightningcss: ^1.21.0 sass: '*' stylus: '*' sugarss: '*' @@ -21578,6 +22507,8 @@ packages: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -21587,11 +22518,11 @@ packages: terser: optional: true dependencies: - '@types/node': 16.18.34 - esbuild: 0.17.19 - postcss: 8.4.26 - rollup: 3.23.0 - sass: 1.62.1 + '@types/node': 20.5.6 + esbuild: 0.18.20 + postcss: 8.4.28 + rollup: 3.28.1 + sass: 1.66.1 optionalDependencies: fsevents: 2.3.2 dev: true @@ -21773,9 +22704,9 @@ packages: '@webassemblyjs/wasm-parser': 1.11.6 acorn: 8.8.2 acorn-import-assertions: 1.9.0_acorn@8.8.2 - browserslist: 4.21.7 + browserslist: 4.21.10 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.14.1 + enhanced-resolve: 5.15.0 es-module-lexer: 1.3.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -21878,6 +22809,17 @@ packages: is-weakset: 2.0.2 dev: true + /which-typed-array/1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + /which-typed-array/1.1.9: resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} engines: {node: '>= 0.4'} @@ -21960,10 +22902,10 @@ packages: engines: {node: '>=10.0.0'} dependencies: '@apideck/better-ajv-errors': 0.3.6_ajv@8.12.0 - '@babel/core': 7.22.1 - '@babel/preset-env': 7.22.5_@babel+core@7.22.1 + '@babel/core': 7.22.11 + '@babel/preset-env': 7.22.5_@babel+core@7.22.11 '@babel/runtime': 7.22.5 - '@rollup/plugin-babel': 5.3.1_k3hxcgsuh2bw3lrplgyzu2m55q + '@rollup/plugin-babel': 5.3.1_lnssqozl4dgplk3xebfs3yicbq '@rollup/plugin-node-resolve': 11.2.1_rollup@2.79.1 '@rollup/plugin-replace': 2.4.2_rollup@2.79.1 '@surma/rollup-plugin-off-main-thread': 2.2.3 @@ -22105,15 +23047,6 @@ packages: workbox-core: 6.6.0 dev: true - /wrap-ansi/6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -22166,7 +23099,7 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 - signal-exit: 4.0.2 + signal-exit: 4.1.0 dev: true /ws/7.5.9: diff --git a/scripts/new-component.ts b/scripts/new-component.ts index b5b684db..f912f07b 100644 --- a/scripts/new-component.ts +++ b/scripts/new-component.ts @@ -90,7 +90,7 @@ export const ${componentName}: React.FC<${props}> = React.forwardRef< HTMLDivElement, ${props} >((props, ref) => { - const { attrs, children } = props as RequiredPart< + const { attrs = {}, children } = props as RequiredPart< ${props}, keyof typeof defaultProps >; @@ -98,7 +98,7 @@ export const ${componentName}: React.FC<${props}> = React.forwardRef<
    + className={getClassNames(cls.root, attrs.className)}> {children}
    ); @@ -202,9 +202,10 @@ ${config.componentName} ${config.alias}。 ${config.componentName} 的属性说明如下: -| 属性 | 说明 | 类型 | 默认值 | 版本 | -| ---- | ---- | ---- | ------ | ---- | -| -- | -- | -- | -- | -- | +| 属性 | 说明 | 类型 | 默认值 | 版本 | +| ----- | ------------- | ----------------------------------------------- | ------ | ---- | +| -- | -- | -- | -- | -- | +| attrs | html 标签属性 | Partial\\> | -- | -- | 其他说明。