diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index 02d6f8e..ef7ad97 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -11,7 +11,7 @@ jobs: strategy: matrix: - node-version: [20.x, 21.x, 22.x] + node-version: [18.x, 20.x, 21.x] steps: - name: Checkout repository diff --git a/.npmignore b/.npmignore index 2275be4..e26b462 100644 --- a/.npmignore +++ b/.npmignore @@ -3,13 +3,9 @@ # dependencies /node_modules -/.pnp -.pnp.js # production -webpack* -rollup* -.babelrc.js +/.github #development /build @@ -17,14 +13,12 @@ rollup* #demo /example -index.html /demo # testing /coverage # misc -.DS_Store .env.local .env.development.local .env.test.local diff --git a/CHANGELOG.md b/CHANGELOG.md index 2683030..6b4b806 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +# v6.2.2 + +Fix Tabs resizing issue + +# v6.2.1 + +- Fix tablistStyle issue when when adding MoreButtonPlgin +- Improve document +- Fix type issue of `MoreButtonPlugin` +- Update demo + +# v6.2.0 + +Adding new option `tablistStyle` + +# v6.1.1 + +- Fix `ssr` rendering issue of `element-resize-detector` package + # v6.1.0 - new `theme` option diff --git a/README.md b/README.md index ac10300..7dd76df 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,16 @@ +# react-dyn-tabs + +Create responsive and dynamic tabs in React. This library supports ARIA accessibility and provides complete control over tab management using hooks. + [](https://codecov.io/gh/dev-javascript/react-dyn-tabs) [](https://www.npmjs.com/package/react-dyn-tabs) [](http://nodejs.org/download/) [](https://react.dev/) [](LICENSE) [](https://npmjs.org/package/react-dyn-tabs) [](https://travis-ci.org/ly-components/react-dyn-tabs) -# react-dyn-tabs +## Screenshot -React Dynamic Tabs with full API + -### [Demo](https://dev-javascript.github.io/react-dyn-tabs/) +## Demo + +- [Online Demo](https://dev-javascript.github.io/react-dyn-tabs/) ## Features @@ -27,6 +33,7 @@ React Dynamic Tabs with full API - [Syntax](#syntax) - [Minimal Usage Example](#minimal-usage-example) - [Simple Manipulation Example](#simple-manipulation-example) +- [ready function](#ready-function) - [Options](#options) - [tabs](#tabs) - [selectedTabID](#selectedtabid) @@ -36,6 +43,7 @@ React Dynamic Tabs with full API - [accessibility](#accessibility) - [isVertical](#isvertical) - [theme](#theme) + - [tablistStyle](#tabliststyle) - [onLoad](#onload) - [onInit](#oninit) - [onChange](#onchange) @@ -160,7 +168,9 @@ const initialOptions = { export default () => { const [TabList, PanelList, ready] = useDynTabs(initialOptions); + const addTab3 = function () { + // use ready function to access the instance object ready((instance) => { // open tab 3 instance.open({id: '3', title: 'Tab 3', panelComponent: (props) => <p> panel 3 </p>}).then(() => { @@ -183,21 +193,34 @@ export default () => { }; ``` -**NOTE :** +## ready function -- Use `ready` function to access the `instance` object +The `ready` function in the `react-dyn-tabs` library is part of the array returned by the `useDynTabs` hook, alongside the `TabList` and `PanelList` components. This function allows developers to execute a callback when the `TabList` and `PanelList` components are fully mounted, providing access to the instance object for further manipulation. - ```js - ready((instance) => { - // manipulate tabs using instance object here - }); - ``` +### Key Features -- `ready` function accepts a `callback` as its parameter and executes it as soon as Tabs get mounted. +- **Multiple Calls**: Developers can invoke the `ready` function multiple times without any issues. +- **Stable Identity**: The reference to the `ready` function remains stable across component re-renders, ensuring consistent behavior. +- **Immediate Execution**: If the `ready` function is called after the tabs have already been mounted, the provided callback will be executed immediately. -- If `ready` function is called after the Tabs has been mounted, the `callback` passed in will be executed immediately. +### Example Usage -- `ready` function can be executed multiple times and its identity is stable and won’t change on re-renders. +```js +const [TabList, PanelList, ready] = useDynTabs(initialOptions); + +const addTab3 = function () { + ready((instance) => { + // open tab 3 + instance.open({id: '3', title: 'Tab 3', panelComponent: (props) => <p> panel 3 </p>}).then(() => { + console.log('tab 3 is open'); + }); + // switch to tab 3 + instance.select('3').then(() => { + console.log('tab 3 is selected'); + }); + }); +}; +``` ## Options @@ -473,6 +496,41 @@ const [TabList, PanelList, ready] = useDynTabs({isVertical: true}); useDynTabs({theme:'classic'}); ``` +#### Notes + +- If the `theme` option is not provided then all imported themes CSS will be applied to the `Tablist`. + +- If the `theme` option is set to a empty string then imported themes CSS will not be applied to the `Tablist`. + +- You can create your own theme CSS and set the `theme` option to your theme class name + +### tablistStyle + +<table> + <tbody> + <tr> + <th>type</th> + <th>default value</th> + <th>required</th> + <th>description</th> + </tr> + <tr> + <td>object</td> + <td>{}</td> + <td>no</td> + <td>sets the style object for root element of Tablist</td> + </tr> + </tbody> +</table> + +**Example** + +```js +const [TabList, PanelList, ready] = useDynTabs({ + tablistStyle: {backgroundColor: 'blue'}, +}); +``` + ### onLoad <table> @@ -1291,6 +1349,12 @@ useDynamicTabs( ); ``` +**unpkg Link** + +```js +<script src="https://unpkg.com/react-dyn-tabs@latest/dist/more-button-plugin.umd.min.js"></script> +``` + ## Render custom components at the end of the Tablist - render `new tab` button example : diff --git a/example/stories/change-options/README.md b/example/stories/change-options/README.md index 258616d..c67ef1f 100644 --- a/example/stories/change-options/README.md +++ b/example/stories/change-options/README.md @@ -199,3 +199,46 @@ function App() { } <App />; ``` + +### change moreButtonPlugin_iconComponent + +```jsx +import React from 'react'; +import 'react-dyn-tabs/style/react-dyn-tabs.css'; +import 'react-dyn-tabs/themes/react-dyn-tabs-card.css'; +import useDynTabs from 'react-dyn-tabs'; +import MoreButtonPlugin from 'react-dyn-tabs/plugins/moreButtonPlugin'; + +const initialOptions = { + tabs: Array.from({length: 20}).map((value, i) => ({ + id: `${i + 1}`, + title: `tab ${i + 1}`, + panelComponent: <p> {`panel ${i + 1}`} </p>, + })), + selectedTabID: '2', + theme: 'card', +}; + +function App() { + const [TabList, PanelList, ready] = useDynTabs(initialOptions, [MoreButtonPlugin]); + + function handler() { + ready((instance) => { + instance + .setOption('moreButtonPlugin_iconComponent', ({instance}) => { + return <span style={{padding: '0.5rem 1rem', textTransform: 'none'}}>More</span>; + }) + .refresh(); + }); + } + + return ( + <div> + <button onClick={handler}>customize icon component of more button</button> + <TabList></TabList> + <PanelList></PanelList> + </div> + ); +} +<App />; +``` diff --git a/example/stories/minimal-usage/README.md b/example/stories/minimal-usage/README.md index f74a737..3f438c5 100644 --- a/example/stories/minimal-usage/README.md +++ b/example/stories/minimal-usage/README.md @@ -145,3 +145,39 @@ function App() { } <App />; ``` + +### blank theme + +```jsx +import React from 'react'; +import 'react-dyn-tabs/style/react-dyn-tabs.css'; +import useDynTabs from 'react-dyn-tabs'; + +const initialOptions = { + tabs: [ + { + id: '1', + title: 'tab 1', + panelComponent: (props) => <p> panel 1 </p>, + }, + { + id: '2', + title: 'tab 2', + panelComponent: (props) => <p> panel 2 </p>, + }, + ], + selectedTabID: '1', + theme: '', +}; + +function App() { + const [TabList, PanelList] = useDynTabs(initialOptions); + return ( + <div> + <TabList></TabList> + <PanelList></PanelList> + </div> + ); +} +<App />; +``` diff --git a/index.d.ts b/index.d.ts index 6cbed21..c9fd4a3 100644 --- a/index.d.ts +++ b/index.d.ts @@ -95,5 +95,5 @@ export interface Instance { } type Tablist = FC<PropsWithChildren<{}>>; type Panellist = FunctionComponent<{}>; -declare const useDynTabs: (options?: Options) => [Tablist, Panellist, Ready]; +declare const useDynTabs: (options?: Options, plugins?: Array<(instance: any, components: any) => void>) => [Tablist, Panellist, Ready]; export default useDynTabs; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 17653b4..c48d484 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18 +1,18 @@ { "name": "react-dyn-tabs", - "version": "6.0.1", + "version": "6.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "react-dyn-tabs", - "version": "6.0.1", + "version": "6.2.1", "license": "MIT", "dependencies": { "@popperjs/core": "^2.11.8", "element-resize-detector": "^1.2.4", "prop-types": "^15.7.2", - "tabs-more-button": "^1.0.1" + "tabs-more-button": "^2.0.0" }, "devDependencies": { "@babel/cli": "^7.24.7", @@ -15962,9 +15962,9 @@ } }, "node_modules/tabs-more-button": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tabs-more-button/-/tabs-more-button-1.0.1.tgz", - "integrity": "sha512-mkVR2ejRfuHJcrLvfzJSSs1+x+6fiHDSEAK5WMvCQKvFbHhJ+rvBuwbOazxd4SZnAiCjdndyKUN056djPJ6mlg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tabs-more-button/-/tabs-more-button-2.0.0.tgz", + "integrity": "sha512-Jz2X90BgITBG2dp9FJeIr8sPi9Zbjrpf1jkOSpRl2MnpErpfd1tiTmB4dNj7wxlL1+GgOiVUQhGe1SU6kBg/XQ==" }, "node_modules/tapable": { "version": "2.2.1", diff --git a/package.json b/package.json index f1ceabd..2e42fdd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-dyn-tabs", - "version": "6.1.0", + "version": "6.2.2", "private": false, "description": "React dynamic tabs with full API", "keywords": [ @@ -137,6 +137,6 @@ "@popperjs/core": "^2.11.8", "element-resize-detector": "^1.2.4", "prop-types": "^15.7.2", - "tabs-more-button": "^1.0.1" + "tabs-more-button": "^2.0.0" } } diff --git a/plugins/moreButtonPlugin/index.d.ts b/plugins/moreButtonPlugin/index.d.ts new file mode 100644 index 0000000..0c9534d --- /dev/null +++ b/plugins/moreButtonPlugin/index.d.ts @@ -0,0 +1,6 @@ +/** + * @param {any} instance - developer instance of Tabs + * @param {any} components - references of all components in the library + */ +declare const MoreButtonPlugin: (instance: any, components: any) => void; +export default MoreButtonPlugin; \ No newline at end of file diff --git a/plugins/moreButtonPlugin/package.json b/plugins/moreButtonPlugin/package.json index 6640a3d..25c7240 100644 --- a/plugins/moreButtonPlugin/package.json +++ b/plugins/moreButtonPlugin/package.json @@ -1,5 +1,6 @@ { - "main": "../../lib/cjs/plugins/moreButtonPlugin/index.js", - "module": "../../lib/esm/plugins/moreButtonPlugin/index.js", - "sideEffects": false -} \ No newline at end of file + "main": "../../lib/cjs/plugins/moreButtonPlugin/index.js", + "module": "../../lib/esm/plugins/moreButtonPlugin/index.js", + "types": "./index.d.ts", + "sideEffects": false +} diff --git a/src/hooks.js b/src/hooks.js index 47a8747..4ffb51d 100644 --- a/src/hooks.js +++ b/src/hooks.js @@ -1,4 +1,4 @@ -import React, {useContext} from 'react'; +import {useContext} from 'react'; import {ApiContext, StateContext, ForceUpdateContext} from './context.js'; export const useApi = function useApi() { return useContext(ApiContext); diff --git a/src/plugins/moreButtonPlugin/button/api.js b/src/plugins/moreButtonPlugin/button/api.js index 97ec128..1818808 100644 --- a/src/plugins/moreButtonPlugin/button/api.js +++ b/src/plugins/moreButtonPlugin/button/api.js @@ -74,11 +74,12 @@ export default function Api(components, setOpen) { this._components.TabFactory.bind(undefined, (ins) => ({ tabPropsManager: (props) => { const originalProps = this._components.tabPropsManager(ins, props); + const { - 'aria-controls': ariaControls, - 'aria-expanded': ariaExpanded, - 'aria-selected': ariaSelected, - id, + 'aria-controls': ariaControls, // eslint-disable-line no-unused-vars + 'aria-expanded': ariaExpanded, // eslint-disable-line no-unused-vars + 'aria-selected': ariaSelected, // eslint-disable-line no-unused-vars + id, // eslint-disable-line no-unused-vars ...rest } = originalProps; if (rest.role) { diff --git a/src/plugins/moreButtonPlugin/setComponents.js b/src/plugins/moreButtonPlugin/setComponents.js index bec0b14..5053c12 100644 --- a/src/plugins/moreButtonPlugin/setComponents.js +++ b/src/plugins/moreButtonPlugin/setComponents.js @@ -8,7 +8,7 @@ export default function setComponents(deps, ctx, components) { setComponents.setMoreButtonPlugin(ctx, components, ShowMoreTabs, setComponents.ShowMoreButton, memo); setComponents.setTablistOverflow(components); } -export const ShowMoreButton = (setComponents.ShowMoreButton = function (deps, props) { +export const ShowMoreButton = (setComponents.ShowMoreButton = function ShowMoreButton(deps, props) { const { ShowMoreTabs, components: {useForceUpdate, useRootState}, @@ -17,7 +17,7 @@ export const ShowMoreButton = (setComponents.ShowMoreButton = function (deps, pr const {openTabIDs, selectedTabID} = useRootState(); return ( <ShowMoreTabs {...props} ctx={deps.ctx} openTabIDs={openTabIDs} selectedTabID={selectedTabID}> - {props.children} + {props.children /* eslint-disable-line react/prop-types */} </ShowMoreTabs> ); }); @@ -38,10 +38,10 @@ export const setMoreButtonPlugin = (setComponents.setMoreButtonPlugin = function export const setTablistOverflow = (setComponents.setTablistOverflow = function (components) { if (!components.OriginalTablistOverflow) { components.OriginalTablistOverflow = components.TablistOverflow; - components.TablistOverflow = function (props) { + components.TablistOverflow = function TablistOverflow(props) { return ( <components.OriginalTablistOverflow {...props}> - {props.children} + {props.children /* eslint-disable-line react/prop-types */} <components.MoreButtonPlugin /> </components.OriginalTablistOverflow> ); @@ -51,9 +51,9 @@ export const setTablistOverflow = (setComponents.setTablistOverflow = function ( export const setTablistView = (setComponents.setTablistView = function (components) { components.TablistView = components.TablistViewFactory.bind(undefined, (ins) => ({ tablistViewPropsManager: () => { - let {className} = components.tablistViewPropsManager(ins); - className += ' rc-dyn-tabs-responsive'; - return {className}; + const attrs = components.tablistViewPropsManager(ins); + attrs.className += ' rc-dyn-tabs-responsive'; + return attrs; }, })); }); diff --git a/src/plugins/moreButtonPlugin/show-more-tabs/element-resize-detector-adapter.js b/src/plugins/moreButtonPlugin/show-more-tabs/element-resize-detector-adapter.js index 96781b2..8a230d7 100644 --- a/src/plugins/moreButtonPlugin/show-more-tabs/element-resize-detector-adapter.js +++ b/src/plugins/moreButtonPlugin/show-more-tabs/element-resize-detector-adapter.js @@ -1,36 +1,37 @@ import elementResizeDetectorMaker from 'element-resize-detector'; -const resizerIns = elementResizeDetectorMaker({ - strategy: 'scroll', - callOnAdd: true, -}); -const getRaf = () => { - const w = window; - return ( - w.requestAnimationFrame || - w.webkitRequestAnimationFrame || - w.mozRequestAnimationFrame || - w.oRequestAnimationFrame || - w.msRequestAnimationFrame || - function (callback) { - w.setTimeout(callback, 1000 / 60); - } - ); -}; -resizerIns.debncListenTo = (el, callback) => { - return resizerIns.listenTo( - el, - (function (func, wait) { - let timeout; - return function (...args) { - const later = () => { +export default () => { + const resizerIns = elementResizeDetectorMaker({ + strategy: 'scroll', + callOnAdd: true, + }); + const getRaf = () => { + const w = window; + return ( + w.requestAnimationFrame || + w.webkitRequestAnimationFrame || + w.mozRequestAnimationFrame || + w.oRequestAnimationFrame || + w.msRequestAnimationFrame || + function (callback) { + w.setTimeout(callback, 1000 / 60); + } + ); + }; + resizerIns.debncListenTo = (el, callback) => { + return resizerIns.listenTo( + el, + (function (func, wait) { + let timeout; + return function (...args) { + const later = () => { + clearTimeout(timeout); + getRaf()(() => func(...args)); + }; clearTimeout(timeout); - getRaf()(() => func(...args)); + timeout = setTimeout(later, wait); }; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - }; - })(callback, 10), - ); + })(callback, 10), + ); + }; + return resizerIns; }; - -export default resizerIns; diff --git a/src/plugins/moreButtonPlugin/show-more-tabs/index.js b/src/plugins/moreButtonPlugin/show-more-tabs/index.js index 5c98d6d..9d0912e 100644 --- a/src/plugins/moreButtonPlugin/show-more-tabs/index.js +++ b/src/plugins/moreButtonPlugin/show-more-tabs/index.js @@ -1,11 +1,11 @@ import React from 'react'; import Api from './api.js'; -import resizeDetectorIns from './element-resize-detector-adapter.js'; +import getResizeDetectorIns from './element-resize-detector-adapter.js'; import tabsMoreButton from 'tabs-more-button'; import ShowMoreTabs from './show-more-tabs.js'; const getDeps = () => { return { - resizeDetectorIns, + getResizeDetectorIns, getInstance: (ctx, setHiddenTabIDs) => new Api({ setHiddenTabIDs, diff --git a/src/plugins/moreButtonPlugin/show-more-tabs/show-more-tabs.js b/src/plugins/moreButtonPlugin/show-more-tabs/show-more-tabs.js index 9292c4e..4fcebb0 100644 --- a/src/plugins/moreButtonPlugin/show-more-tabs/show-more-tabs.js +++ b/src/plugins/moreButtonPlugin/show-more-tabs/show-more-tabs.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; export default function ShowMoreTabs(getDeps, props) { const {ctx, openTabIDs, selectedTabID} = props; const [hiddenTabIDs, setHiddenTabIDs] = useState(''); - const {getInstance, resizeDetectorIns} = getDeps(); + const {getInstance, getResizeDetectorIns} = getDeps(); const ref = useRef(); ref.current = ref.current || {ins: getInstance(ctx, setHiddenTabIDs)}; const ins = ref.current.ins; @@ -12,6 +12,7 @@ export default function ShowMoreTabs(getDeps, props) { ins.setResizer(); }, []); useLayoutEffect(() => { + const resizeDetectorIns = getResizeDetectorIns(); ins.installResizer(resizeDetectorIns); return () => { ins.uninstallResizer(resizeDetectorIns); diff --git a/src/plugins/moreButtonPlugin/show-more-tabs/show-more-tabs.test.js b/src/plugins/moreButtonPlugin/show-more-tabs/show-more-tabs.test.js index f211de4..a9d2e10 100644 --- a/src/plugins/moreButtonPlugin/show-more-tabs/show-more-tabs.test.js +++ b/src/plugins/moreButtonPlugin/show-more-tabs/show-more-tabs.test.js @@ -55,8 +55,8 @@ beforeEach(() => { insProperties, ); }; - const resizeDetectorIns = deps.resizeDetectorIns || {}; - const ShowMoreButton = ShowMoreTabsComponent.bind(undefined, () => ({getInstance, resizeDetectorIns})); + const getResizeDetectorIns = deps.getResizeDetectorIns || (() => ({})); + const ShowMoreButton = ShowMoreTabsComponent.bind(undefined, () => ({getInstance, getResizeDetectorIns})); if (snapshot) { return <ShowMoreButton {...props}></ShowMoreButton>; } diff --git a/src/tab/memomizeTab.js b/src/tab/memomizeTab.js index a85c99d..f75fc3b 100644 --- a/src/tab/memomizeTab.js +++ b/src/tab/memomizeTab.js @@ -1,4 +1,4 @@ -import React, {memo} from 'react'; +import {memo} from 'react'; export default (TabComponent) => memo(TabComponent, (oldProps, newProps) => { const {id, selectedTabID: oldActiveId} = oldProps, diff --git a/src/tab/tab.factory.js b/src/tab/tab.factory.js index 43c4725..8b485dd 100644 --- a/src/tab/tab.factory.js +++ b/src/tab/tab.factory.js @@ -5,7 +5,7 @@ const TabComponent = function TabComponent(deps, props) { React.useContext(ForceUpdateContext); const api = React.useContext(ApiContext); const {tabPropsManager, tabInnerPropsManager, closeIconPropsManager} = deps(api); - const {id, selectedTabID} = props, + const {id, selectedTabID} = props, // eslint-disable-line no-unused-vars TabInnerComponent = api.getOption('tabComponent'), tabObj = api.getTab(id), clkHandler = function (e) { diff --git a/src/tablistView/__snapshots__/tablistView.test.js.snap b/src/tablistView/__snapshots__/tablistView.test.js.snap index 3898312..0c0f589 100644 --- a/src/tablistView/__snapshots__/tablistView.test.js.snap +++ b/src/tablistView/__snapshots__/tablistView.test.js.snap @@ -4,6 +4,7 @@ exports[`TabListView structure : children props 1`] = ` <div> <div className="rc-dyn-tabs-tablist-view rc-dyn-tabs-ltr all-themes" + style={{}} > <div className="rc-dyn-tabs-tablist-container" @@ -16,6 +17,7 @@ exports[`TabListView structure : default options 1`] = ` <div> <div className="rc-dyn-tabs-tablist-view rc-dyn-tabs-ltr all-themes" + style={{}} /> </div> `; @@ -24,6 +26,7 @@ exports[`TabListView structure : isVertical option 1`] = ` <div> <div className="rc-dyn-tabs-tablist-view rc-dyn-tabs-ltr rc-dyn-tabs-vertical all-themes" + style={{}} /> </div> `; @@ -32,6 +35,20 @@ exports[`TabListView structure : rtl option 1`] = ` <div> <div className="rc-dyn-tabs-tablist-view rc-dyn-tabs-rtl all-themes" + style={{}} + /> +</div> +`; + +exports[`TabListView structure : style option 1`] = ` +<div> + <div + className="rc-dyn-tabs-tablist-view rc-dyn-tabs-ltr all-themes" + style={ + { + "backgroundColor": "red", + } + } /> </div> `; diff --git a/src/tablistView/tablistView.js b/src/tablistView/tablistView.js index d85d1b1..7d948e8 100644 --- a/src/tablistView/tablistView.js +++ b/src/tablistView/tablistView.js @@ -8,7 +8,12 @@ export const tablistViewPropsManager = function (ins) { if (themeName) { className += ' ' + themeName; } - return {className}; + const tablistStyle = ins.getOption('tablistStyle') || {}; + const result = {className}; + if (typeof tablistStyle === 'object') { + result.style = tablistStyle; + } + return result; }; export default TablistView.bind(undefined, (ins) => ({ tablistViewPropsManager: () => tablistViewPropsManager(ins), diff --git a/src/tablistView/tablistView.test.js b/src/tablistView/tablistView.test.js index 536fdc0..f26d7ba 100644 --- a/src/tablistView/tablistView.test.js +++ b/src/tablistView/tablistView.test.js @@ -70,4 +70,15 @@ describe('TabListView structure : ', () => { .toJSON(); expect(tree).toMatchSnapshot(); }); + test('style option', () => { + setMockUseContext({tablistStyle: {backgroundColor: 'red'}}); + const tree = renderer + .create( + <div> + <TablistView></TablistView> + </div>, + ) + .toJSON(); + expect(tree).toMatchSnapshot(); + }); }); diff --git a/src/utils/api/api.factory.js b/src/utils/api/api.factory.js index 5d895e4..39290f4 100644 --- a/src/utils/api/api.factory.js +++ b/src/utils/api/api.factory.js @@ -244,7 +244,7 @@ Helper.setNoneEnumProps(_apiProps, { }, getSetting: function (settingName) { const st = this.optionsManager.setting; - if (st.hasOwnProperty(settingName)) { + if (Object.prototype.hasOwnProperty.call(st, settingName)) { if (typeof st[settingName] === 'function') { return st[settingName].apply(st, Array.prototype.slice.call(arguments, 1)); } diff --git a/src/utils/api/optionManager/defaultOptions.js b/src/utils/api/optionManager/defaultOptions.js index b28a064..87a1a13 100644 --- a/src/utils/api/optionManager/defaultOptions.js +++ b/src/utils/api/optionManager/defaultOptions.js @@ -16,6 +16,7 @@ export default Helper.module( tabs: [], selectedTabID: '', theme: 'all-themes', + tablistStyle: {}, beforeSelect: function () { return true; }, diff --git a/src/utils/api/optionManager/defaultOptions.test.js b/src/utils/api/optionManager/defaultOptions.test.js index dd43138..a4f6942 100644 --- a/src/utils/api/optionManager/defaultOptions.test.js +++ b/src/utils/api/optionManager/defaultOptions.test.js @@ -6,6 +6,7 @@ describe('DefaultOptions.prototype.getOptions : ', () => { tabs: [], selectedTabID: '', theme: 'all-themes', + tablistStyle: {}, beforeSelect: expect.any(Function), beforeClose: expect.any(Function), onOpen: expect.any(Function), diff --git a/styleguide.config.js b/styleguide.config.js index 4731f67..db59274 100644 --- a/styleguide.config.js +++ b/styleguide.config.js @@ -1,9 +1,20 @@ const webpack = require('webpack'); -const {version} = require('./package'); +const {version, name} = require('./package'); const path = require('path'); module.exports = { - title: 'react-dyn-tabs', + title: name, + template: { + head: { + meta: [ + { + name: 'description', + content: + 'react-dyn-tabs : create responsive and dynamic tabs, supports ARIA accessibility and provides complete control over tab management using hook.', + }, + ], + }, + }, getComponentPathLine(componentPath) { return ``; }, diff --git a/yarn.lock b/yarn.lock index 0c1dd5b..6e4d18f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -39,7 +39,7 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz" integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9", "@babel/core@^7.24.7", "@babel/core@^7.7.5": +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.11.0", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.23.9", "@babel/core@^7.24.7", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.7.5", "@babel/core@^7.8.0": version "7.24.7" resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz" integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g== @@ -1422,7 +1422,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -1492,81 +1492,6 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/rollup-android-arm-eabi@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz#bbd0e616b2078cd2d68afc9824d1fadb2f2ffd27" - integrity sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ== - -"@rollup/rollup-android-arm64@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz#97255ef6384c5f73f4800c0de91f5f6518e21203" - integrity sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA== - -"@rollup/rollup-darwin-arm64@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz#b6dd74e117510dfe94541646067b0545b42ff096" - integrity sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w== - -"@rollup/rollup-darwin-x64@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz#e07d76de1cec987673e7f3d48ccb8e106d42c05c" - integrity sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA== - -"@rollup/rollup-linux-arm-gnueabihf@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz#9f1a6d218b560c9d75185af4b8bb42f9f24736b8" - integrity sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA== - -"@rollup/rollup-linux-arm-musleabihf@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz#53618b92e6ffb642c7b620e6e528446511330549" - integrity sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A== - -"@rollup/rollup-linux-arm64-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz#99a7ba5e719d4f053761a698f7b52291cefba577" - integrity sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw== - -"@rollup/rollup-linux-arm64-musl@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz#f53db99a45d9bc00ce94db8a35efa7c3c144a58c" - integrity sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ== - -"@rollup/rollup-linux-powerpc64le-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz#cbb0837408fe081ce3435cf3730e090febafc9bf" - integrity sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA== - -"@rollup/rollup-linux-riscv64-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz#8ed09c1d1262ada4c38d791a28ae0fea28b80cc9" - integrity sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg== - -"@rollup/rollup-linux-s390x-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz#938138d3c8e0c96f022252a28441dcfb17afd7ec" - integrity sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg== - -"@rollup/rollup-linux-x64-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz#1a7481137a54740bee1ded4ae5752450f155d942" - integrity sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w== - -"@rollup/rollup-linux-x64-musl@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz#f1186afc601ac4f4fc25fac4ca15ecbee3a1874d" - integrity sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg== - -"@rollup/rollup-win32-arm64-msvc@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz#ed6603e93636a96203c6915be4117245c1bd2daf" - integrity sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA== - -"@rollup/rollup-win32-ia32-msvc@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz#14e0b404b1c25ebe6157a15edb9c46959ba74c54" - integrity sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg== - "@rollup/rollup-win32-x64-msvc@4.18.0": version "4.18.0" resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz" @@ -1674,7 +1599,7 @@ "@types/eslint" "*" "@types/estree" "*" -"@types/eslint@*": +"@types/eslint@*", "@types/eslint@>=8.0.0": version "8.56.10" resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz" integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== @@ -1682,7 +1607,7 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@1.0.5", "@types/estree@^1.0.0", "@types/estree@^1.0.5": +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.5", "@types/estree@1.0.5": version "1.0.5" resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== @@ -1900,7 +1825,7 @@ dependencies: common-tags "^1.8.0" -"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": +"@webassemblyjs/ast@^1.12.1", "@webassemblyjs/ast@1.12.1": version "1.12.1" resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz" integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== @@ -2001,7 +1926,7 @@ "@webassemblyjs/wasm-gen" "1.12.1" "@webassemblyjs/wasm-parser" "1.12.1" -"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": +"@webassemblyjs/wasm-parser@^1.12.1", "@webassemblyjs/wasm-parser@1.12.1": version "1.12.1" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz" integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== @@ -2089,16 +2014,16 @@ acorn-walk@^8.0.2: dependencies: acorn "^8.11.0" -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^8.1.0, acorn@^8.11.0, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.1.0, acorn@^8.11.0, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: version "8.12.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz" integrity sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw== +acorn@^6.0.0, acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + address@^1.0.1, address@^1.1.2: version "1.2.2" resolved "https://registry.npmjs.org/address/-/address-1.2.2.tgz" @@ -2130,7 +2055,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2140,7 +2065,17 @@ ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.9.0: +ajv@^8.0.0: + version "8.16.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz" + integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== + dependencies: + fast-deep-equal "^3.1.3" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.4.1" + +ajv@^8.8.2, ajv@^8.9.0: version "8.16.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz" integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== @@ -2184,7 +2119,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -2196,7 +2138,17 @@ ansi-styles@^5.0.0: resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: +ansi-styles@^6.0.0: + version "6.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +ansi-styles@^6.2.1: version "6.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== @@ -2338,12 +2290,7 @@ assert@1.5.0: object-assign "^4.1.1" util "0.10.3" -ast-types@0.13.3: - version "0.13.3" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.3.tgz" - integrity sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA== - -ast-types@0.14.2, ast-types@^0.14.2, ast-types@~0.14.2: +ast-types@^0.14.2, ast-types@~0.14.2, ast-types@0.14.2: version "0.14.2" resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz" integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== @@ -2355,6 +2302,11 @@ ast-types@^0.7.2: resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz" integrity sha512-RIOpVnVlltB6PcBJ5BMLx+H+6JJ/zjDGU0t7f0L6c2M1dqcK92VQopLBlPQ9R80AVXelfqYgjcPLtHtDbNFg0Q== +ast-types@0.13.3: + version "0.13.3" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.3.tgz" + integrity sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA== + async@^3.2.4: version "3.2.5" resolved "https://registry.npmjs.org/async/-/async-3.2.5.tgz" @@ -2547,7 +2499,7 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0: +browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0, "browserslist@>= 4.21.0": version "4.23.1" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz" integrity sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw== @@ -2663,7 +2615,23 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2696,7 +2664,7 @@ character-reference-invalid@^1.0.0: resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.4.2, chokidar@^3.5.3: +chokidar@^3.4.0, chokidar@^3.4.2, chokidar@^3.5.3, "chokidar@>=3.0.0 <4.0.0": version "3.6.0" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== @@ -2826,16 +2794,16 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.20: version "2.0.20" resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" @@ -2863,7 +2831,12 @@ commander@^11.0.0: resolved "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz" integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== -commander@^2.19.0, commander@^2.20.0: +commander@^2.19.0: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^2.20.0: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -3134,20 +3107,27 @@ data-view-byte-offset@^1.0.0: es-errors "^1.3.0" is-data-view "^1.0.1" -debug@2.6.9, debug@^2.6.0: +debug@^2.6.0: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@~4.3.4: +debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@~4.3.4, debug@4: version "4.3.5" resolved "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz" integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== dependencies: ms "2.1.2" +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + decimal.js@^10.4.2: version "10.4.3" resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz" @@ -3223,16 +3203,16 @@ delayed-stream@~1.0.0: resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -depd@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - depd@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + destroy@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" @@ -3557,7 +3537,7 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^9.1.0: +eslint-config-prettier@*, eslint-config-prettier@^9.1.0: version "9.1.0" resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== @@ -3594,14 +3574,6 @@ eslint-plugin-react@^7.34.3: semver "^6.3.1" string.prototype.matchall "^4.0.11" -eslint-scope@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - eslint-scope@^7.2.2: version "7.2.2" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" @@ -3610,17 +3582,35 @@ eslint-scope@^7.2.2: esrecurse "^4.3.0" estraverse "^5.2.0" +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.3.0: + version "3.4.3" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint-visitor-keys@^3.4.1: version "3.4.3" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.0.0: +eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +"eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.5.0 || ^8.0.0 || ^9.0.0", eslint@^8.0.0, "eslint@>= 6", eslint@>=7.0.0, eslint@>=8.0.0: version "8.57.0" resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== @@ -3697,7 +3687,12 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^4.2.0: version "4.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -3966,7 +3961,15 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0, find-up@^4.1.0: +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -4117,11 +4120,6 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" @@ -4227,7 +4225,14 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1, glob-parent@^6.0.2: +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -4457,6 +4462,16 @@ http-deceiver@^1.2.7: resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" @@ -4468,16 +4483,6 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-parser-js@>=0.5.1: version "0.5.8" resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz" @@ -4598,7 +4603,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@2, inherits@2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4632,16 +4637,16 @@ interpret@^3.1.1: resolved "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - ipaddr.js@^2.0.1: version "2.2.0" resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz" integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz" @@ -5305,7 +5310,7 @@ jest-resolve-dependencies@^29.7.0: jest-regex-util "^29.6.3" jest-snapshot "^29.7.0" -jest-resolve@^29.7.0: +jest-resolve@*, jest-resolve@^29.7.0: version "29.7.0" resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz" integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== @@ -5458,7 +5463,7 @@ jest-worker@^29.7.0: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.7.0: +jest@^29.7.0, jest@>=27.2.5: version "29.7.0" resolved "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz" integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== @@ -5626,7 +5631,7 @@ jss-plugin-nested@^10.9.0: jss "10.10.0" tiny-warning "^1.0.2" -jss@10.10.0, jss@^10.9.0: +jss@^10.9.0, jss@10.10.0: version "10.10.0" resolved "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz" integrity sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw== @@ -5978,7 +5983,7 @@ micromatch@^4.0.2, micromatch@^4.0.4, micromatch@~4.0.7: braces "^3.0.3" picomatch "^2.3.1" -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": +"mime-db@>= 1.43.0 < 2", mime-db@1.52.0: version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== @@ -6322,7 +6327,14 @@ ora@^4.0.2: strip-ansi "^6.0.0" wcwidth "^1.0.1" -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -6565,7 +6577,14 @@ pirates@^4.0.4: resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -6632,7 +6651,7 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.33: +postcss@^8.1.0, postcss@^8.4.33: version "8.4.39" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz" integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== @@ -6658,7 +6677,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@3.3.2: +prettier@>=3.0.0, prettier@3.3.2: version "3.3.2" resolved "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz" integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== @@ -6822,7 +6841,7 @@ react-docgen-displayname-handler@^3.0.0: dependencies: ast-types "0.14.2" -react-docgen@^5.0.0: +"react-docgen@^3.0.0 || ^4.0.0 || ^5.0.0-beta || ^5.0.0", react-docgen@^5.0.0: version "5.4.3" resolved "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.3.tgz" integrity sha512-xlLJyOlnfr8lLEEeaDZ+X2J/KJoe6Nr9AzxnkdQWush5hz2ZSu66w6iLMOScMmxoSHWpWMn+k3v5ZiyCfcWsOA== @@ -6838,7 +6857,7 @@ react-docgen@^5.0.0: node-dir "^0.1.10" strip-indent "^3.0.0" -react-dom@16.9.0: +react-dom@^16.0.0, react-dom@>=16.8, react-dom@16.9.0: version "16.9.0" resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz" integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ== @@ -6867,7 +6886,12 @@ react-icons@^3.8.0: dependencies: camelcase "^5.0.0" -react-is@^16.13.1, react-is@^16.9.0: +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^16.9.0: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -6959,7 +6983,7 @@ react-test-renderer@16.9.0: react-is "^16.9.0" scheduler "^0.15.0" -react@16.9.0: +react@*, react@^16.0.0, "react@>= 0.14.0", react@>=16.0.0, react@>=16.8, react@16.9.0: version "16.9.0" resolved "https://registry.npmjs.org/react/-/react-16.9.0.tgz" integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w== @@ -7084,18 +7108,6 @@ regexp.prototype.flags@^1.5.2: es-errors "^1.3.0" set-function-name "^2.0.1" -regexpu-core@4.5.4: - version "4.5.4" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz" - integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.0.2" - regjsgen "^0.5.0" - regjsparser "^0.6.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" - regexpu-core@^5.3.1: version "5.3.2" resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz" @@ -7108,6 +7120,18 @@ regexpu-core@^5.3.1: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.1.0" +regexpu-core@4.5.4: + version "4.5.4" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz" + integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.0.2" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" + regjsgen@^0.5.0: version "0.5.2" resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz" @@ -7255,7 +7279,7 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rollup@^4.18.0: +rollup@^1.20.0||^2.0.0||^3.0.0||^4.0.0, rollup@^2.0.0||^3.0.0||^4.0.0, rollup@^2.68.0||^3.0.0||^4.0.0, rollup@^2.78.0||^3.0.0||^4.0.0, rollup@^4.18.0: version "4.18.0" resolved "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz" integrity sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg== @@ -7297,15 +7321,20 @@ safe-array-concat@^1.1.2: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex-test@^1.0.3: version "1.0.3" @@ -7345,16 +7374,16 @@ scheduler@^0.15.0: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== +schema-utils@^3.1.1: + version "3.3.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" -schema-utils@^3.1.1, schema-utils@^3.2.0: +schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -7373,6 +7402,15 @@ schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" @@ -7386,7 +7424,12 @@ selfsigned@^2.1.1: "@types/node-forge" "^1.3.0" node-forge "^1" -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: +semver@^5.5.0: + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^5.6.0: version "5.7.2" resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== @@ -7396,11 +7439,26 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.5.3, semver@^7.5.4: +semver@^7.3.2: + version "7.6.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + +semver@^7.5.3: + version "7.6.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + +semver@^7.5.4: version "7.6.2" resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== +"semver@2 || 3 || 4 || 5": + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + send@0.18.0: version "0.18.0" resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" @@ -7533,7 +7591,12 @@ signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.0.1, signal-exit@^4.1.0: +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +signal-exit@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== @@ -7593,19 +7656,11 @@ source-list-map@^2.0.1: resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.0: +source-map-js@^1.2.0, "source-map-js@>=0.6.2 <2.0.0": version "1.2.0" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" @@ -7614,6 +7669,14 @@ source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" @@ -7690,15 +7753,29 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" string-argv@~0.3.2: version "0.3.2" @@ -7713,7 +7790,25 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -7796,20 +7891,6 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - stringify-object@^3.2.0: version "3.3.0" resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" @@ -7819,14 +7900,28 @@ stringify-object@^3.2.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1, strip-ansi@^7.1.0: +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== @@ -7921,10 +8016,10 @@ synckit@^0.8.6: "@pkgr/core" "^0.1.0" tslib "^2.6.2" -tabs-more-button@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tabs-more-button/-/tabs-more-button-1.0.1.tgz" - integrity sha512-mkVR2ejRfuHJcrLvfzJSSs1+x+6fiHDSEAK5WMvCQKvFbHhJ+rvBuwbOazxd4SZnAiCjdndyKUN056djPJ6mlg== +tabs-more-button@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/tabs-more-button/-/tabs-more-button-2.0.0.tgz" + integrity sha512-Jz2X90BgITBG2dp9FJeIr8sPi9Zbjrpf1jkOSpRl2MnpErpfd1tiTmB4dNj7wxlL1+GgOiVUQhGe1SU6kBg/XQ== tapable@^1.0.0: version "1.1.3" @@ -8066,7 +8161,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@4.0.8, type-detect@^4.0.8: +type-detect@^4.0.8, type-detect@4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -8133,6 +8228,11 @@ typed-array-length@^1.0.6: is-typed-array "^1.1.13" possible-typed-array-names "^1.0.0" +"typescript@>= 2.7": + version "5.5.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz" + integrity sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" @@ -8245,7 +8345,7 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@~1.0.0, unpipe@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -8381,7 +8481,7 @@ webidl-conversions@^7.0.0: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -webpack-cli@^5.1.4: +webpack-cli@^5.1.4, webpack-cli@5.x.x: version "5.1.4" resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz" integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== @@ -8476,7 +8576,7 @@ webpack-sources@^3.2.3: resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.92.1: +"webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", webpack@^5.1.0, webpack@^5.27.0, webpack@^5.92.1, "webpack@>= 4", webpack@>=4, "webpack@>=4.0.0 <6.0.0", webpack@>=5, webpack@5.x.x: version "5.92.1" resolved "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz" integrity sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA== @@ -8506,7 +8606,7 @@ webpack@^5.92.1: watchpack "^2.4.1" webpack-sources "^3.2.3" -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: +websocket-driver@^0.7.4, websocket-driver@>=0.5.1: version "0.7.4" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== @@ -8590,7 +8690,14 @@ which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.9: gopd "^1.0.1" has-tostringtag "^1.0.2" -which@^1.2.9, which@^1.3.1: +which@^1.2.9: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -8614,7 +8721,16 @@ word-wrap@^1.2.5, word-wrap@~1.2.3: resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==