component
renders with short color 1`] = `
onKeyDown={[Function]}
placeholder="Select..."
readOnly={false}
+ ref={
+ {
+ "current": {
+ "blur": [Function],
+ "focus": [Function],
+ "scrollIntoView": [Function],
+ },
+ }
+ }
style={
{
"--input-size": 9,
diff --git a/packages/react-dropdown-select/__tests__/components/Clear.spec.js b/packages/react-dropdown-select/__tests__/components/Clear.spec.js
index 625ca0dd..d1cf6858 100644
--- a/packages/react-dropdown-select/__tests__/components/Clear.spec.js
+++ b/packages/react-dropdown-select/__tests__/components/Clear.spec.js
@@ -29,30 +29,42 @@ describe('
component', () => {
});
it('
renders correctly', () => {
- const tree = TestRenderer.create(
).toJSON();
+ let renderer;
+ TestRenderer.act(() => {
+ renderer = TestRenderer.create(
);
+ });
+ const tree = renderer.toJSON();
expect(tree).toMatchSnapshot();
});
it('onClick clears all', () => {
- TestRenderer.create(
)
- .root.findByProps({ className: 'react-dropdown-select-clear' })
- .props.onClick();
+ let instance;
+ TestRenderer.act(() => {
+ instance = TestRenderer.create(
+
,
+ );
+ });
+ instance.root.findByProps({ className: 'react-dropdown-select-clear' }).props.onClick();
expect(spy).toHaveBeenCalled;
});
it('onKeyDown clears all', () => {
const clearSpy = jest.fn();
- TestRenderer.create(
-
,
- )
- .root.findByProps({ className: 'react-dropdown-select-clear' })
+ let instance;
+ TestRenderer.act(() => {
+ instance = TestRenderer.create(
+
,
+ );
+ });
+ instance.root
+ .findByProps({ className: 'react-dropdown-select-clear' })
.props.onKeyDown({ key: 'Enter' });
expect(clearSpy).toHaveBeenCalled;
diff --git a/packages/react-dropdown-select/__tests__/components/Content.spec.js b/packages/react-dropdown-select/__tests__/components/Content.spec.js
index 702be8b8..d01f23b8 100644
--- a/packages/react-dropdown-select/__tests__/components/Content.spec.js
+++ b/packages/react-dropdown-select/__tests__/components/Content.spec.js
@@ -45,9 +45,12 @@ describe('
component', () => {
});
it('
renders correctly', () => {
- const tree = TestRenderer.create(
).toJSON();
+ let tree;
+ TestRenderer.act(() => {
+ tree = TestRenderer.create(
);
+ });
- expect(tree).toMatchSnapshot();
+ expect(tree.toJSON()).toMatchSnapshot();
});
it('onClick opens dropdown', () => {
diff --git a/packages/react-dropdown-select/__tests__/components/Dropdown.spec.js b/packages/react-dropdown-select/__tests__/components/Dropdown.spec.js
index c720da51..166a949b 100644
--- a/packages/react-dropdown-select/__tests__/components/Dropdown.spec.js
+++ b/packages/react-dropdown-select/__tests__/components/Dropdown.spec.js
@@ -26,7 +26,10 @@ const props = {
};
it('
renders correctly', () => {
- const tree = renderer.create(
).toJSON();
+ let tree;
+ renderer.act(() => {
+ tree = renderer.create(
);
+ });
- expect(tree).toMatchSnapshot();
+ expect(tree.toJSON()).toMatchSnapshot();
});
diff --git a/packages/react-dropdown-select/__tests__/components/DropdownHandle.spec.js b/packages/react-dropdown-select/__tests__/components/DropdownHandle.spec.js
index 3f7f8871..dcb39015 100644
--- a/packages/react-dropdown-select/__tests__/components/DropdownHandle.spec.js
+++ b/packages/react-dropdown-select/__tests__/components/DropdownHandle.spec.js
@@ -31,23 +31,30 @@ describe('
component', () => {
});
it('
renders correctly', () => {
- const tree = TestRenderer.create(
).toJSON();
+ let instance;
+ TestRenderer.act(() => {
+ instance = TestRenderer.create(
);
+ });
- expect(tree).toMatchSnapshot();
+ expect(instance.toJSON()).toMatchSnapshot();
});
it('onClick toggles dropdown', () => {
- TestRenderer.create(
)
- .root.findByType('div')
- .props.onClick();
+ let instance;
+ TestRenderer.act(() => {
+ instance = TestRenderer.create(
);
+ });
+ instance.root.findByType('div').props.onClick();
expect(spy).toHaveBeenCalled;
});
it('onKeyDown toggles dropdown', () => {
- TestRenderer.create(
)
- .root.findByType('div')
- .props.onKeyDown();
+ let instance;
+ TestRenderer.act(() => {
+ instance = TestRenderer.create(
);
+ });
+ instance.root.findByType('div').props.onKeyDown();
expect(spy).toHaveBeenCalled;
});
diff --git a/packages/react-dropdown-select/__tests__/components/Input.spec.js b/packages/react-dropdown-select/__tests__/components/Input.spec.js
index 80cf3281..02784c12 100644
--- a/packages/react-dropdown-select/__tests__/components/Input.spec.js
+++ b/packages/react-dropdown-select/__tests__/components/Input.spec.js
@@ -23,13 +23,19 @@ const props = (props = {}) => ({
});
it('
renders correctly', () => {
- const tree = renderer.create(
).toJSON();
+ let instance;
+ renderer.act(() => {
+ instance = renderer.create(
);
+ });
- expect(tree).toMatchSnapshot();
+ expect(instance.toJSON()).toMatchSnapshot();
});
it('
is disabled', () => {
- const tree = renderer.create(
).toJSON();
+ let instance;
+ renderer.act(() => {
+ instance = renderer.create(
);
+ });
- expect(tree).toMatchSnapshot();
+ expect(instance.toJSON()).toMatchSnapshot();
});
diff --git a/packages/react-dropdown-select/__tests__/components/Item.spec.js b/packages/react-dropdown-select/__tests__/components/Item.spec.js
index 3f7292ab..dc883816 100644
--- a/packages/react-dropdown-select/__tests__/components/Item.spec.js
+++ b/packages/react-dropdown-select/__tests__/components/Item.spec.js
@@ -28,64 +28,79 @@ describe('
component', () => {
});
test('renders correctly', () => {
- const tree = TestRenderer.create(
).toJSON();
+ let renderer;
+ TestRenderer.act(() => {
+ renderer = TestRenderer.create(
);
+ });
+ const tree = renderer.toJSON();
expect(tree).toMatchSnapshot();
});
test('onChange with click', () => {
const addItemSpy = jest.fn();
- TestRenderer.create(
-
- undefined, addItem: addItemSpy },
- })}
- />,
- )
- .root.findByType('span')
- .props.onClick();
+ let instance;
+ TestRenderer.act(() => {
+ instance = TestRenderer.create(
+
- undefined, addItem: addItemSpy },
+ })}
+ />,
+ );
+ });
+ instance.root.findByType('span').props.onClick();
expect(addItemSpy).toHaveBeenCalled;
});
test('onChange with key press', () => {
const addItemSpy = jest.fn();
- TestRenderer.create(
-
- undefined, addItem: addItemSpy },
- })}
- />,
- )
- .root.findByType('span')
- .props.onKeyDown({ key: 'Enter' });
+ let instance;
+ TestRenderer.act(() => {
+ instance = TestRenderer.create(
+
- undefined, addItem: addItemSpy },
+ })}
+ />,
+ );
+ });
+ instance.root.findByType('span').props.onKeyDown({ key: 'Enter' });
expect(addItemSpy).toHaveBeenCalled;
});
test('keepSelectedInList: false', () => {
- const tree = TestRenderer.create(
-
- true,
- },
- })}
- />,
- ).toJSON();
+ let tree;
+ TestRenderer.act(() => {
+ tree = TestRenderer.create(
+
- true,
+ },
+ })}
+ />,
+ ).toJSON();
+ });
});
test('pass item renderer', () => {
- const tree = TestRenderer.create(
-
-
item
})} />,
- ).toJSON();
+ let renderer;
+ TestRenderer.act(() => {
+ renderer = TestRenderer.create(
+ -
item
})} />,
+ );
+ });
+ const tree = renderer.toJSON();
expect(tree).toMatchSnapshot();
});
diff --git a/packages/react-dropdown-select/__tests__/components/Loading.spec.js b/packages/react-dropdown-select/__tests__/components/Loading.spec.js
index f71bc26c..32fa337a 100644
--- a/packages/react-dropdown-select/__tests__/components/Loading.spec.js
+++ b/packages/react-dropdown-select/__tests__/components/Loading.spec.js
@@ -13,7 +13,10 @@ const props = {
};
it(' renders correctly', () => {
- const tree = renderer.create().toJSON();
+ let tree;
+ renderer.act(() => {
+ tree = renderer.create();
+ });
- expect(tree).toMatchSnapshot();
+ expect(tree.toJSON()).toMatchSnapshot();
});
diff --git a/packages/react-dropdown-select/__tests__/components/NoData.spec.js b/packages/react-dropdown-select/__tests__/components/NoData.spec.js
index 4d864144..d27022b0 100644
--- a/packages/react-dropdown-select/__tests__/components/NoData.spec.js
+++ b/packages/react-dropdown-select/__tests__/components/NoData.spec.js
@@ -13,7 +13,10 @@ const props = {
};
it(' renders correctly', () => {
- const tree = renderer.create().toJSON();
+ let instance;
+ renderer.act(() => {
+ instance = renderer.create();
+ });
- expect(tree).toMatchSnapshot();
+ expect(instance.toJSON()).toMatchSnapshot();
});
diff --git a/packages/react-dropdown-select/__tests__/components/Option.spec.js b/packages/react-dropdown-select/__tests__/components/Option.spec.js
index 6a665838..e4da83fe 100644
--- a/packages/react-dropdown-select/__tests__/components/Option.spec.js
+++ b/packages/react-dropdown-select/__tests__/components/Option.spec.js
@@ -35,15 +35,21 @@ describe(' component', () => {
});
it('renders correctly', () => {
- const tree = TestRenderer.create().toJSON();
+ let renderer;
+ TestRenderer.act(() => {
+ renderer = TestRenderer.create();
+ });
+ const tree = renderer.toJSON();
expect(tree).toMatchSnapshot();
});
it('onClick remove item', () => {
- TestRenderer.create()
- .root.findByProps({ className: 'react-dropdown-select-option-remove' })
- .props.onClick();
+ let instance;
+ TestRenderer.act(() => {
+ instance = TestRenderer.create();
+ });
+ instance.root.findByProps({ className: 'react-dropdown-select-option-remove' }).props.onClick();
expect(spy).toHaveBeenCalled;
});
diff --git a/packages/react-dropdown-select/__tests__/components/Separator.spec.js b/packages/react-dropdown-select/__tests__/components/Separator.spec.js
index 794080b3..da83fa5e 100644
--- a/packages/react-dropdown-select/__tests__/components/Separator.spec.js
+++ b/packages/react-dropdown-select/__tests__/components/Separator.spec.js
@@ -13,7 +13,10 @@ const props = {
};
it(' renders correctly', () => {
- const tree = renderer.create().toJSON();
+ let tree;
+ renderer.act(() => {
+ tree = renderer.create();
+ });
- expect(tree).toMatchSnapshot();
+ expect(tree.toJSON()).toMatchSnapshot();
});
diff --git a/packages/react-dropdown-select/__tests__/components/__snapshots__/Content.spec.js.snap b/packages/react-dropdown-select/__tests__/components/__snapshots__/Content.spec.js.snap
index ed53e8b8..ed6b1eb3 100644
--- a/packages/react-dropdown-select/__tests__/components/__snapshots__/Content.spec.js.snap
+++ b/packages/react-dropdown-select/__tests__/components/__snapshots__/Content.spec.js.snap
@@ -29,6 +29,11 @@ exports[` component renders correctly 1`] = `
onKeyDown={[Function]}
placeholder=""
readOnly={true}
+ ref={
+ {
+ "current": null,
+ }
+ }
style={
{
"--input-size": undefined,
diff --git a/packages/react-dropdown-select/__tests__/components/__snapshots__/Input.spec.js.snap b/packages/react-dropdown-select/__tests__/components/__snapshots__/Input.spec.js.snap
index 93beb109..54c56b04 100644
--- a/packages/react-dropdown-select/__tests__/components/__snapshots__/Input.spec.js.snap
+++ b/packages/react-dropdown-select/__tests__/components/__snapshots__/Input.spec.js.snap
@@ -9,6 +9,11 @@ exports[` is disabled 1`] = `
onKeyDown={[Function]}
placeholder=""
readOnly={false}
+ ref={
+ {
+ "current": null,
+ }
+ }
style={
{
"--input-size": undefined,
@@ -27,6 +32,11 @@ exports[` renders correctly 1`] = `
onKeyDown={[Function]}
placeholder=""
readOnly={false}
+ ref={
+ {
+ "current": null,
+ }
+ }
style={
{
"--input-size": undefined,
diff --git a/packages/react-dropdown-select/__tests__/components/__snapshots__/Item.spec.js.snap b/packages/react-dropdown-select/__tests__/components/__snapshots__/Item.spec.js.snap
index 7a311e2b..213fef80 100644
--- a/packages/react-dropdown-select/__tests__/components/__snapshots__/Item.spec.js.snap
+++ b/packages/react-dropdown-select/__tests__/components/__snapshots__/Item.spec.js.snap
@@ -5,6 +5,11 @@ exports[` component pass item renderer 1`] = `
className="react-dropdown-select-item"
onClick={[Function]}
onKeyDown={[Function]}
+ ref={
+ {
+ "current": null,
+ }
+ }
role="option"
tabIndex={-1}
>
@@ -17,6 +22,11 @@ exports[` component renders correctly 1`] = `
className="react-dropdown-select-item"
onClick={[Function]}
onKeyDown={[Function]}
+ ref={
+ {
+ "current": null,
+ }
+ }
role="option"
tabIndex={-1}
>
diff --git a/packages/react-dropdown-select/__tests__/index.spec.js b/packages/react-dropdown-select/__tests__/index.spec.js
index cf924d0d..aafd1c68 100644
--- a/packages/react-dropdown-select/__tests__/index.spec.js
+++ b/packages/react-dropdown-select/__tests__/index.spec.js
@@ -78,4 +78,24 @@ describe(' component', () => {
expect(tree).toMatchSnapshot();
});
+
+ it(' applies defaults without defaultProps (React 19)', () => {
+ const component = selectWithProps();
+
+ const placeholderInput = component.root.find(
+ (element) => element.props.placeholder === 'Select...',
+ );
+
+ expect(placeholderInput).toBeTruthy();
+ });
+
+ it(' falls back to default for explicitly undefined prop (React 19)', () => {
+ const component = selectWithProps();
+
+ const placeholderInput = component.root.find(
+ (element) => element.props.placeholder === 'Select...',
+ );
+
+ expect(placeholderInput).toBeTruthy();
+ });
});
diff --git a/packages/react-dropdown-select/__tests__/use-cases/helpers.js b/packages/react-dropdown-select/__tests__/use-cases/helpers.js
index 9e96d376..e4777a8c 100644
--- a/packages/react-dropdown-select/__tests__/use-cases/helpers.js
+++ b/packages/react-dropdown-select/__tests__/use-cases/helpers.js
@@ -6,41 +6,44 @@ import { options } from '../options';
export const selectWithProps = (component) => {
const testRef = createRef();
- const renderer = TestRenderer.create(React.cloneElement(component, { ref: testRef }), {
- createNodeMock: (element) => {
- if (element.type === 'input') {
- return {
- focus: () => {},
- blur: () => {},
- scrollIntoView: () => {},
- };
- }
- if (element.type === 'span') {
- return {
- focus: () => {},
- blur: () => {},
- scrollIntoView: () => {},
- };
- }
- if (element.type === 'div') {
- return {
- focus: () => {},
- blur: () => {},
- scrollIntoView: () => {},
- contains: () => true,
- setAttribute: () => {},
- getBoundingClientRect: () => ({
- top: 0,
- bottom: 100,
- height: 100,
- width: 400,
- left: 0,
- right: 400,
- }),
- };
- }
- return null;
- },
+ let renderer;
+ TestRenderer.act(() => {
+ renderer = TestRenderer.create(React.cloneElement(component, { ref: testRef }), {
+ createNodeMock: (element) => {
+ if (element.type === 'input') {
+ return {
+ focus: () => {},
+ blur: () => {},
+ scrollIntoView: () => {},
+ };
+ }
+ if (element.type === 'span') {
+ return {
+ focus: () => {},
+ blur: () => {},
+ scrollIntoView: () => {},
+ };
+ }
+ if (element.type === 'div') {
+ return {
+ focus: () => {},
+ blur: () => {},
+ scrollIntoView: () => {},
+ contains: () => true,
+ setAttribute: () => {},
+ getBoundingClientRect: () => ({
+ top: 0,
+ bottom: 100,
+ height: 100,
+ width: 400,
+ left: 0,
+ right: 400,
+ }),
+ };
+ }
+ return null;
+ },
+ });
});
const origUpdate = renderer.update.bind(renderer);
renderer.getInstance = () =>
@@ -50,7 +53,8 @@ export const selectWithProps = (component) => {
get: (_, prop) => (testRef.current ? testRef.current[prop] : undefined),
},
);
- renderer.update = (el) => origUpdate(React.cloneElement(el, { ref: testRef }));
+ renderer.update = (el) =>
+ TestRenderer.act(() => origUpdate(React.cloneElement(el, { ref: testRef })));
return renderer;
};
diff --git a/packages/react-dropdown-select/babel.lib.config.js b/packages/react-dropdown-select/babel.lib.config.js
new file mode 100644
index 00000000..6f223e3a
--- /dev/null
+++ b/packages/react-dropdown-select/babel.lib.config.js
@@ -0,0 +1,36 @@
+const addJsExtension = () => ({
+ name: 'add-js-extension',
+ visitor: {
+ 'ImportDeclaration|ExportNamedDeclaration|ExportAllDeclaration'(path) {
+ const source = path.node.source;
+ if (!source || !/^\.\.?\//.test(source.value)) return;
+ if (!/\.[a-zA-Z0-9]+$/.test(source.value)) {
+ source.value = `${source.value}.js`;
+ }
+ },
+ },
+});
+
+module.exports = {
+ presets: [
+ [
+ '@babel/preset-env',
+ {
+ loose: true,
+ modules: false,
+ },
+ ],
+ '@babel/preset-react',
+ '@babel/preset-typescript',
+ 'minify',
+ ],
+ plugins: [
+ [
+ '@babel/plugin-proposal-class-properties',
+ {
+ loose: true,
+ },
+ ],
+ addJsExtension,
+ ],
+};
diff --git a/packages/react-dropdown-select/jest.setup.js b/packages/react-dropdown-select/jest.setup.js
new file mode 100644
index 00000000..2cd201ef
--- /dev/null
+++ b/packages/react-dropdown-select/jest.setup.js
@@ -0,0 +1,10 @@
+global.IS_REACT_ACT_ENVIRONMENT = true;
+
+const originalError = console.error;
+
+console.error = (...args) => {
+ if (typeof args[0] === 'string' && args[0].includes('react-test-renderer is deprecated')) {
+ return;
+ }
+ originalError(...args);
+};
diff --git a/packages/react-dropdown-select/package.json b/packages/react-dropdown-select/package.json
index 1774575f..ebfa2929 100644
--- a/packages/react-dropdown-select/package.json
+++ b/packages/react-dropdown-select/package.json
@@ -5,6 +5,18 @@
"main": "dist/react-dropdown-select.js",
"module": "lib/index.js",
"types": "types/index.d.ts",
+ "exports": {
+ ".": {
+ "types": "./types/index.d.ts",
+ "import": "./lib/index.js",
+ "require": "./dist/react-dropdown-select.js"
+ },
+ "./types/*": {
+ "types": "./types/*.d.ts",
+ "default": "./types/*"
+ },
+ "./package.json": "./package.json"
+ },
"sideEffects": false,
"files": [
"dist",
@@ -22,7 +34,7 @@
"test:watch": "jest --bail --watch",
"coveralls": "jest --coverage && cat ./coverage/lcov.info | coveralls",
"build": "tsc --noEmit && webpack && pnpm run transpile && pnpm run types && bundlesize",
- "transpile": "babel src --out-dir lib --extensions .ts,.tsx",
+ "transpile": "babel src --out-dir lib --extensions .ts,.tsx --config-file ./babel.lib.config.js --no-babelrc --source-maps && printf '{\"type\":\"module\"}' > lib/package.json",
"prepublishOnly": "pnpm run build",
"// ℹ️ ------- versioning and release -------": "",
"changelog": "cd ../.. && npx git-cliff@2.13.1 -c cliff.toml --output CHANGELOG.md --tag v$npm_package_version",
@@ -62,8 +74,8 @@
"author": "Sasha Khamkov ",
"license": "MIT",
"peerDependencies": {
- "react": ">=16.x",
- "react-dom": ">=16.x"
+ "react": ">=16.8",
+ "react-dom": ">=16.8"
},
"devDependencies": {
"@babel/cli": "^7.7.7",
@@ -76,8 +88,8 @@
"@babel/preset-typescript": "^7.29.7",
"@storybook/addon-webpack5-compiler-swc": "4.0.3",
"@storybook/react-webpack5": "10.5.4",
- "@types/react": "^18.3.31",
- "@types/react-dom": "^18.3.7",
+ "@types/react": "^19.2.18",
+ "@types/react-dom": "^19.2.4",
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "^25.3.0",
"babel-loader": "^10.1.1",
@@ -90,9 +102,9 @@
"html-webpack-plugin": "^5.5.0",
"jest": "29.6.2",
"jest-environment-jsdom": "29.6.2",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
- "react-test-renderer": "^18.3.1",
+ "react": "^19.2.8",
+ "react-dom": "^19.2.8",
+ "react-test-renderer": "^19.2.8",
"storybook": "10.5.4",
"style-loader": "^3.3.1",
"typescript": "^5.9.3",
@@ -101,6 +113,9 @@
"webpack-dev-server": "4.15.1"
},
"jest": {
+ "setupFiles": [
+ "/jest.setup.js"
+ ],
"transform": {
"^.+\\.(js|ts|tsx)$": "babel-jest"
},
diff --git a/packages/react-dropdown-select/src/components/Input.tsx b/packages/react-dropdown-select/src/components/Input.tsx
index fe4b1271..bf74e2e0 100644
--- a/packages/react-dropdown-select/src/components/Input.tsx
+++ b/packages/react-dropdown-select/src/components/Input.tsx
@@ -33,7 +33,7 @@ const handlePlaceHolder = >(
};
class Input> extends Component> {
- input: RefObject = React.createRef();
+ input: RefObject = React.createRef();
componentDidUpdate(prevProps: InputProps) {
if (
diff --git a/packages/react-dropdown-select/src/components/Item.tsx b/packages/react-dropdown-select/src/components/Item.tsx
index cb481c70..fb3ca61f 100644
--- a/packages/react-dropdown-select/src/components/Item.tsx
+++ b/packages/react-dropdown-select/src/components/Item.tsx
@@ -12,7 +12,7 @@ interface ItemProps {
}
class Item> extends Component> {
- item: RefObject = React.createRef();
+ item: RefObject = React.createRef();
componentDidMount() {
const { props, methods } = this.props;
diff --git a/packages/react-dropdown-select/src/index.tsx b/packages/react-dropdown-select/src/index.tsx
index 4d78fede..9a5c51af 100644
--- a/packages/react-dropdown-select/src/index.tsx
+++ b/packages/react-dropdown-select/src/index.tsx
@@ -1,4 +1,4 @@
-import React, { forwardRef, useImperativeHandle } from 'react';
+import React, { forwardRef, useImperativeHandle, type ReactElement } from 'react';
import ClickOutside from './components/ClickOutside';
import Content from './components/Content';
@@ -13,9 +13,19 @@ import { SelectProps } from './select-types';
import { useSelect } from './hooks/useSelect';
function SelectInner>(
- props: SelectProps,
+ rawProps: SelectProps,
ref: React.ForwardedRef<{ state: any; methods: any }>,
) {
+ const props = React.useMemo(() => {
+ const merged = { ...rawProps } as SelectProps;
+ (Object.keys(defaultProps) as (keyof SelectProps)[]).forEach((key) => {
+ if (merged[key] === undefined) {
+ merged[key] = defaultProps[key] as any;
+ }
+ });
+ return merged;
+ }, [rawProps]);
+
const { state, methods, selectRef, renderDropdown, setState, handleKeyDownFn } = useSelect(props);
useImperativeHandle(
@@ -79,11 +89,11 @@ type SelectRef = {
methods: any;
};
-const Select = forwardRef(SelectInner) as (>(
+const Select = forwardRef(SelectInner) as >(
props: SelectProps & { ref?: React.ForwardedRef },
-) => JSX.Element) & { defaultProps: Partial> };
+) => ReactElement;
-Select.defaultProps = {
+export const defaultProps: Partial> = {
addPlaceholder: '',
additionalProps: undefined,
autoFocus: false,
diff --git a/packages/react-dropdown-select/src/select-types.ts b/packages/react-dropdown-select/src/select-types.ts
index 94d6c14e..a5ce0c2c 100644
--- a/packages/react-dropdown-select/src/select-types.ts
+++ b/packages/react-dropdown-select/src/select-types.ts
@@ -3,6 +3,7 @@ import {
HTMLAttributes,
KeyboardEvent,
MouseEvent,
+ ReactElement,
RefObject,
ChangeEvent,
} from 'react';
@@ -448,70 +449,70 @@ export interface SelectProps {
* @receives { props, state, methods }
* @replaces Clear button
*/
- clearRenderer?: (args: RendererArgs) => JSX.Element | null;
+ clearRenderer?: (args: RendererArgs) => ReactElement | null;
/**
* Replaces the entire content area (selected values + input).
* @category renderer
* @receives { props, state, methods }
* @replaces Entire content area (selected values + input)
*/
- contentRenderer?: (args: RendererArgs) => JSX.Element | null;
+ contentRenderer?: (args: RendererArgs) => ReactElement | null;
/**
* Replaces the entire dropdown container.
* @category renderer
* @receives { props, state, methods }
* @replaces Entire dropdown container
*/
- dropdownRenderer?: (args: RendererArgs) => JSX.Element | null;
+ dropdownRenderer?: (args: RendererArgs) => ReactElement | null;
/**
* Replaces the dropdown arrow handle.
* @category renderer
* @receives { props, state, methods }
* @replaces Dropdown arrow handle
*/
- dropdownHandleRenderer?: (args: RendererArgs) => JSX.Element | null;
+ dropdownHandleRenderer?: (args: RendererArgs) => ReactElement | null;
/**
* Replaces the search input element.
* @category renderer
* @receives { props, state, methods, inputRef }
* @replaces Search input element
*/
- inputRenderer?: (args: InputRendererArgs) => JSX.Element | null;
+ inputRenderer?: (args: InputRendererArgs) => ReactElement | null;
/**
* Replaces individual dropdown list items.
* @category renderer
* @receives { item, itemIndex, props, state, methods }
* @replaces Individual dropdown list item
*/
- itemRenderer?: (args: ItemRendererArgs) => JSX.Element | null;
+ itemRenderer?: (args: ItemRendererArgs) => ReactElement | null;
/**
* Replaces the loading indicator.
* @category renderer
* @receives { props }
* @replaces Loading indicator
*/
- loadingRenderer?: (args: { props: SelectProps }) => JSX.Element | null;
+ loadingRenderer?: (args: { props: SelectProps }) => ReactElement | null;
/**
* Replaces the "No data" message.
* @category renderer
* @receives { props, state, methods }
* @replaces "No data" message
*/
- noDataRenderer?: (args: RendererArgs) => JSX.Element | null;
+ noDataRenderer?: (args: RendererArgs) => ReactElement | null;
/**
* Replaces selected value pills/tags.
* @category renderer
* @receives { item, props, state, methods }
* @replaces Selected value pill/tag
*/
- optionRenderer?: (args: ItemRendererArgs) => JSX.Element | null;
+ optionRenderer?: (args: ItemRendererArgs) => ReactElement | null;
/**
* Replaces the separator line.
* @category renderer
* @receives { props, state, methods }
* @replaces Separator line
*/
- separatorRenderer?: (args: RendererArgs) => JSX.Element | null;
+ separatorRenderer?: (args: RendererArgs) => ReactElement | null;
/**
* Additional HTML attributes passed to the root element.
* @category behavior
@@ -548,7 +549,7 @@ export interface RendererArgs {
}
export interface InputRendererArgs extends RendererArgs {
- inputRef: RefObject;
+ inputRef: RefObject;
}
export interface ItemRendererArgs {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b6c144ae..d0d827b8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -54,30 +54,30 @@ importers:
packages/docs-site:
dependencies:
react:
- specifier: ^18.3.1
- version: 18.3.1
+ specifier: ^19.2.8
+ version: 19.2.8
react-dom:
- specifier: ^18.3.1
- version: 18.3.1(react@18.3.1)
+ specifier: ^19.2.8
+ version: 19.2.8(react@19.2.8)
react-dropdown-select:
specifier: workspace:*
version: link:../react-dropdown-select
react-router-dom:
specifier: ^7.18.2
- version: 7.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 7.18.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
react-syntax-highlighter:
specifier: ^16.1.1
- version: 16.1.1(react@18.3.1)
+ version: 16.1.1(react@19.2.8)
devDependencies:
'@tailwindcss/vite':
specifier: ^4.3.2
version: 4.3.3(vite@6.4.3(@types/node@26.2.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.49.2)(yaml@2.9.0))
'@types/react':
- specifier: ^18.3.31
- version: 18.3.31
+ specifier: ^19.2.18
+ version: 19.2.18
'@types/react-dom':
- specifier: ^18.3.7
- version: 18.3.7(@types/react@18.3.31)
+ specifier: ^19.2.4
+ version: 19.2.4(@types/react@19.2.18)
'@types/react-syntax-highlighter':
specifier: ^15.5.13
version: 15.5.13
@@ -128,16 +128,16 @@ importers:
version: 7.29.7(@babel/core@7.29.7)
'@storybook/addon-webpack5-compiler-swc':
specifier: 4.0.3
- version: 4.0.3(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))(webpack@5.109.2)
+ version: 4.0.3(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))(webpack@5.109.2)
'@storybook/react-webpack5':
specifier: 10.5.4
- version: 10.5.4(@swc/core@1.15.43)(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(postcss@8.5.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))(typescript@5.9.3)(webpack-cli@5.1.4)
+ version: 10.5.4(@swc/core@1.15.43)(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(postcss@8.5.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))(typescript@5.9.3)(webpack-cli@5.1.4)
'@types/react':
- specifier: ^18.3.31
- version: 18.3.31
+ specifier: ^19.2.18
+ version: 19.2.18
'@types/react-dom':
- specifier: ^18.3.7
- version: 18.3.7(@types/react@18.3.31)
+ specifier: ^19.2.4
+ version: 19.2.4(@types/react@19.2.18)
babel-core:
specifier: ^7.0.0-bridge.0
version: 7.0.0-bridge.0(@babel/core@7.29.7)
@@ -175,17 +175,17 @@ importers:
specifier: 29.6.2
version: 29.6.2
react:
- specifier: ^18.3.1
- version: 18.3.1
+ specifier: ^19.2.8
+ version: 19.2.8
react-dom:
- specifier: ^18.3.1
- version: 18.3.1(react@18.3.1)
+ specifier: ^19.2.8
+ version: 19.2.8(react@19.2.8)
react-test-renderer:
- specifier: ^18.3.1
- version: 18.3.1(react@18.3.1)
+ specifier: ^19.2.8
+ version: 19.2.8(react@19.2.8)
storybook:
specifier: 10.5.4
- version: 10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1)
+ version: 10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8)
style-loader:
specifier: ^3.3.1
version: 3.3.4(webpack@5.109.2)
@@ -2221,25 +2221,22 @@ packages:
'@types/prismjs@1.26.6':
resolution: {integrity: sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==}
- '@types/prop-types@15.7.15':
- resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==}
-
'@types/qs@6.15.1':
resolution: {integrity: sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==}
'@types/range-parser@1.2.7':
resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
- '@types/react-dom@18.3.7':
- resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==}
+ '@types/react-dom@19.2.4':
+ resolution: {integrity: sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==}
peerDependencies:
- '@types/react': ^18.0.0
+ '@types/react': ^19.2.0
'@types/react-syntax-highlighter@15.5.13':
resolution: {integrity: sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==}
- '@types/react@18.3.31':
- resolution: {integrity: sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==}
+ '@types/react@19.2.18':
+ resolution: {integrity: sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==}
'@types/resolve@1.20.6':
resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==}
@@ -5682,10 +5679,10 @@ packages:
resolution: {integrity: sha512-aEZ9qP+/M+58x2qgfSFEWH1BxLyHe5+qkLNJOZQb5iGS017jpbRnoKhNRrXPeA6RfBrZO5wZrT9DMC1UqE1f1w==}
engines: {node: ^20.9.0 || >=22}
- react-dom@18.3.1:
- resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
+ react-dom@19.2.8:
+ resolution: {integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==}
peerDependencies:
- react: ^18.3.1
+ react: ^19.2.8
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
@@ -5696,6 +5693,9 @@ packages:
react-is@18.3.1:
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+ react-is@19.2.8:
+ resolution: {integrity: sha512-s5un28nYxKJw5gvUHyW5PCC28CvBqLu9r3cWgzHT4Vo/5fqqkFcdRYsGcKf50WMPpjjFZS5d76fn3YCo2njKwQ==}
+
react-refresh@0.17.0:
resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
engines: {node: '>=0.10.0'}
@@ -5717,24 +5717,19 @@ packages:
react-dom:
optional: true
- react-shallow-renderer@16.15.0:
- resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==}
- peerDependencies:
- react: ^16.0.0 || ^17.0.0 || ^18.0.0
-
react-syntax-highlighter@16.1.1:
resolution: {integrity: sha512-PjVawBGy80C6YbC5DDZJeUjBmC7skaoEUdvfFQediQHgCL7aKyVHe57SaJGfQsloGDac+gCpTfRdtxzWWKmCXA==}
engines: {node: '>= 16.20.2'}
peerDependencies:
react: '>= 0.14.0'
- react-test-renderer@18.3.1:
- resolution: {integrity: sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==}
+ react-test-renderer@19.2.8:
+ resolution: {integrity: sha512-GHKPaDRaNYU24PHTLG8Bx8VMY9t+qNfxQbt/Yjp7aMWBkKU6766SR0n6TnYu7P5I1MfEuAMUadqiyDHyI4Yy9Q==}
peerDependencies:
- react: ^18.3.1
+ react: ^19.2.8
- react@18.3.1:
- resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
+ react@19.2.8:
+ resolution: {integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==}
engines: {node: '>=0.10.0'}
readable-stream@2.3.8:
@@ -5949,8 +5944,8 @@ packages:
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
engines: {node: '>=v12.22.7'}
- scheduler@0.23.2:
- resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
+ scheduler@0.27.0:
+ resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==}
schema-utils@3.3.0:
resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
@@ -8556,18 +8551,18 @@ snapshots:
dependencies:
'@sinonjs/commons': 3.0.1
- '@storybook/addon-webpack5-compiler-swc@4.0.3(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))(webpack@5.109.2)':
+ '@storybook/addon-webpack5-compiler-swc@4.0.3(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))(webpack@5.109.2)':
dependencies:
'@swc/core': 1.15.43
- storybook: 10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1)
+ storybook: 10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8)
swc-loader: 0.2.7(@swc/core@1.15.43)(webpack@5.109.2)
transitivePeerDependencies:
- '@swc/helpers'
- webpack
- '@storybook/builder-webpack5@10.5.4(@swc/core@1.15.43)(postcss@8.5.16)(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))(typescript@5.9.3)(webpack-cli@5.1.4)':
+ '@storybook/builder-webpack5@10.5.4(@swc/core@1.15.43)(postcss@8.5.16)(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))(typescript@5.9.3)(webpack-cli@5.1.4)':
dependencies:
- '@storybook/core-webpack': 10.5.4(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))
+ '@storybook/core-webpack': 10.5.4(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))
case-sensitive-paths-webpack-plugin: 2.4.0
cjs-module-lexer: 1.4.3
css-loader: 7.1.4(webpack@5.109.2)
@@ -8576,7 +8571,7 @@ snapshots:
html-webpack-plugin: 5.6.7(webpack@5.109.2)
magic-string: 0.30.21
semver: 7.8.5
- storybook: 10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1)
+ storybook: 10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8)
style-loader: 4.0.0(webpack@5.109.2)
terser-webpack-plugin: 5.6.1(@swc/core@1.15.43)(postcss@8.5.16)(webpack@5.109.2)
ts-dedent: 2.3.0
@@ -8602,29 +8597,29 @@ snapshots:
- uglify-js
- webpack-cli
- '@storybook/core-webpack@10.5.4(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))':
+ '@storybook/core-webpack@10.5.4(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))':
dependencies:
- storybook: 10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1)
+ storybook: 10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8)
ts-dedent: 2.3.0
'@storybook/global@5.0.0': {}
- '@storybook/icons@2.1.0(react@18.3.1)':
+ '@storybook/icons@2.1.0(react@19.2.8)':
dependencies:
- react: 18.3.1
+ react: 19.2.8
- '@storybook/preset-react-webpack@10.5.4(@swc/core@1.15.43)(postcss@8.5.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))(typescript@5.9.3)(webpack-cli@5.1.4)':
+ '@storybook/preset-react-webpack@10.5.4(@swc/core@1.15.43)(postcss@8.5.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))(typescript@5.9.3)(webpack-cli@5.1.4)':
dependencies:
- '@storybook/core-webpack': 10.5.4(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))
+ '@storybook/core-webpack': 10.5.4(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))
'@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.109.2)
'@types/semver': 7.7.1
magic-string: 0.30.21
- react: 18.3.1
+ react: 19.2.8
react-docgen: 8.0.3
- react-dom: 18.3.1(react@18.3.1)
+ react-dom: 19.2.8(react@19.2.8)
resolve: 1.22.12
semver: 7.8.5
- storybook: 10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1)
+ storybook: 10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8)
tsconfig-paths: 4.2.0
webpack: 5.109.2(@swc/core@1.15.43)(postcss@8.5.16)(webpack-cli@5.1.4)
optionalDependencies:
@@ -8659,23 +8654,23 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@storybook/react-dom-shim@10.5.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))':
+ '@storybook/react-dom-shim@10.5.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))':
dependencies:
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- storybook: 10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ storybook: 10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8)
optionalDependencies:
- '@types/react': 18.3.31
- '@types/react-dom': 18.3.7(@types/react@18.3.31)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@storybook/react-webpack5@10.5.4(@swc/core@1.15.43)(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(postcss@8.5.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))(typescript@5.9.3)(webpack-cli@5.1.4)':
+ '@storybook/react-webpack5@10.5.4(@swc/core@1.15.43)(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(postcss@8.5.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))(typescript@5.9.3)(webpack-cli@5.1.4)':
dependencies:
- '@storybook/builder-webpack5': 10.5.4(@swc/core@1.15.43)(postcss@8.5.16)(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))(typescript@5.9.3)(webpack-cli@5.1.4)
- '@storybook/preset-react-webpack': 10.5.4(@swc/core@1.15.43)(postcss@8.5.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))(typescript@5.9.3)(webpack-cli@5.1.4)
- '@storybook/react': 10.5.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))(typescript@5.9.3)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- storybook: 10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1)
+ '@storybook/builder-webpack5': 10.5.4(@swc/core@1.15.43)(postcss@8.5.16)(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))(typescript@5.9.3)(webpack-cli@5.1.4)
+ '@storybook/preset-react-webpack': 10.5.4(@swc/core@1.15.43)(postcss@8.5.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))(typescript@5.9.3)(webpack-cli@5.1.4)
+ '@storybook/react': 10.5.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))(typescript@5.9.3)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ storybook: 10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8)
optionalDependencies:
typescript: 5.9.3
transitivePeerDependencies:
@@ -8697,18 +8692,18 @@ snapshots:
- uglify-js
- webpack-cli
- '@storybook/react@10.5.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))(typescript@5.9.3)':
+ '@storybook/react@10.5.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))(typescript@5.9.3)':
dependencies:
'@storybook/global': 5.0.0
- '@storybook/react-dom-shim': 10.5.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1))
- react: 18.3.1
+ '@storybook/react-dom-shim': 10.5.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))
+ react: 19.2.8
react-docgen: 8.0.3
react-docgen-typescript: 2.4.0(typescript@5.9.3)
- react-dom: 18.3.1(react@18.3.1)
- storybook: 10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1)
+ react-dom: 19.2.8(react@19.2.8)
+ storybook: 10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8)
optionalDependencies:
- '@types/react': 18.3.31
- '@types/react-dom': 18.3.7(@types/react@18.3.31)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -9009,23 +9004,20 @@ snapshots:
'@types/prismjs@1.26.6': {}
- '@types/prop-types@15.7.15': {}
-
'@types/qs@6.15.1': {}
'@types/range-parser@1.2.7': {}
- '@types/react-dom@18.3.7(@types/react@18.3.31)':
+ '@types/react-dom@19.2.4(@types/react@19.2.18)':
dependencies:
- '@types/react': 18.3.31
+ '@types/react': 19.2.18
'@types/react-syntax-highlighter@15.5.13':
dependencies:
- '@types/react': 18.3.31
+ '@types/react': 19.2.18
- '@types/react@18.3.31':
+ '@types/react@19.2.18':
dependencies:
- '@types/prop-types': 15.7.15
csstype: 3.2.3
'@types/resolve@1.20.6': {}
@@ -13124,11 +13116,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- react-dom@18.3.1(react@18.3.1):
+ react-dom@19.2.8(react@19.2.8):
dependencies:
- loose-envify: 1.4.0
- react: 18.3.1
- scheduler: 0.23.2
+ react: 19.2.8
+ scheduler: 0.27.0
react-is@16.13.1: {}
@@ -13136,48 +13127,41 @@ snapshots:
react-is@18.3.1: {}
+ react-is@19.2.8: {}
+
react-refresh@0.17.0: {}
- react-router-dom@7.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ react-router-dom@7.18.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
dependencies:
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-router: 7.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ react-router: 7.18.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- react-router@7.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ react-router@7.18.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
dependencies:
cookie: 1.1.1
- react: 18.3.1
+ react: 19.2.8
set-cookie-parser: 2.7.2
optionalDependencies:
- react-dom: 18.3.1(react@18.3.1)
-
- react-shallow-renderer@16.15.0(react@18.3.1):
- dependencies:
- object-assign: 4.1.1
- react: 18.3.1
- react-is: 18.3.1
+ react-dom: 19.2.8(react@19.2.8)
- react-syntax-highlighter@16.1.1(react@18.3.1):
+ react-syntax-highlighter@16.1.1(react@19.2.8):
dependencies:
'@babel/runtime': 7.29.7
highlight.js: 10.7.3
highlightjs-vue: 1.0.0
lowlight: 1.20.0
prismjs: 1.30.0
- react: 18.3.1
+ react: 19.2.8
refractor: 5.0.0
- react-test-renderer@18.3.1(react@18.3.1):
+ react-test-renderer@19.2.8(react@19.2.8):
dependencies:
- react: 18.3.1
- react-is: 18.3.1
- react-shallow-renderer: 16.15.0(react@18.3.1)
- scheduler: 0.23.2
+ react: 19.2.8
+ react-is: 19.2.8
+ scheduler: 0.27.0
- react@18.3.1:
- dependencies:
- loose-envify: 1.4.0
+ react@19.2.8: {}
readable-stream@2.3.8:
dependencies:
@@ -13457,9 +13441,7 @@ snapshots:
dependencies:
xmlchars: 2.2.0
- scheduler@0.23.2:
- dependencies:
- loose-envify: 1.4.0
+ scheduler@0.27.0: {}
schema-utils@3.3.0:
dependencies:
@@ -13729,10 +13711,10 @@ snapshots:
es-errors: 1.3.0
internal-slot: 1.1.0
- storybook@10.5.4(@types/react@18.3.31)(prettier@3.9.6)(react@18.3.1):
+ storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8):
dependencies:
'@storybook/global': 5.0.0
- '@storybook/icons': 2.1.0(react@18.3.1)
+ '@storybook/icons': 2.1.0(react@19.2.8)
'@testing-library/dom': 10.4.1
'@testing-library/jest-dom': 6.9.1
'@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1)
@@ -13746,10 +13728,10 @@ snapshots:
oxc-resolver: 11.24.2
recast: 0.23.12
semver: 7.8.5
- use-sync-external-store: 1.6.0(react@18.3.1)
+ use-sync-external-store: 1.6.0(react@19.2.8)
ws: 8.21.0
optionalDependencies:
- '@types/react': 18.3.31
+ '@types/react': 19.2.18
prettier: 3.9.6
transitivePeerDependencies:
- bufferutil
@@ -14103,9 +14085,9 @@ snapshots:
querystringify: 2.2.0
requires-port: 1.0.0
- use-sync-external-store@1.6.0(react@18.3.1):
+ use-sync-external-store@1.6.0(react@19.2.8):
dependencies:
- react: 18.3.1
+ react: 19.2.8
use@3.1.1: {}