From 1eea74e63a59db135a55b8ddc43bafc15a21fbab Mon Sep 17 00:00:00 2001 From: Maximilian Schoell Date: Thu, 26 Feb 2026 14:16:04 +0100 Subject: [PATCH 1/7] chore: add more controls to multiselect dev page --- package-lock.json | 100 ++++++-------------------- pages/multiselect/select-all.page.tsx | 83 ++++++++++++++------- 2 files changed, 80 insertions(+), 103 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66823ea2d9..8a29a2d85a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "date-fns": "^2.25.0", "intl-messageformat": "^10.3.1", "mnth": "^2.0.0", - "react-keyed-flatten-children": "^2.2.1", + "react-is": "^18.2.0", "react-transition-group": "^4.4.2", "tslib": "^2.4.0", "weekstart": "^1.1.0" @@ -53,6 +53,7 @@ "@types/node": "^20.17.14", "@types/react": "^16.14.20", "@types/react-dom": "^16.9.14", + "@types/react-is": "^18.2.0", "@types/react-router": "^5.1.18", "@types/react-router-dom": "^5.3.2", "@types/react-test-renderer": "^16.9.12", @@ -2397,11 +2398,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jest/core/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/@jest/core/node_modules/strip-ansi": { "version": "6.0.1", "dev": true, @@ -4504,11 +4500,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/jest/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/@types/jsdom": { "version": "20.0.1", "dev": true, @@ -4591,6 +4582,16 @@ "@types/react": "^16" } }, + "node_modules/@types/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-zts4lhQn5ia0cF/y2+3V6Riu0MAfez9/LJYavdM8TvcVl+S91A/7VWxyBT8hbRuWspmuCaiGI0F41OJYGrKhRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "^18" + } + }, "node_modules/@types/react-router": { "version": "5.1.20", "dev": true, @@ -9938,14 +9939,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/expect-webdriverio/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/express": { "version": "4.22.1", "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", @@ -12818,11 +12811,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/jest-cli": { "version": "29.7.0", "dev": true, @@ -13040,11 +13028,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-config/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/jest-diff": { "version": "29.7.0", "dev": true, @@ -13098,11 +13081,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-diff/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/jest-docblock": { "version": "29.7.0", "dev": true, @@ -13168,11 +13146,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-each/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/jest-environment-jsdom": { "version": "29.7.0", "dev": true, @@ -13311,11 +13284,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/jest-matcher-utils": { "version": "29.7.0", "dev": true, @@ -13369,11 +13337,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/jest-message-util": { "version": "29.7.0", "dev": true, @@ -13432,11 +13395,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/jest-mock": { "version": "29.7.0", "dev": true, @@ -13740,11 +13698,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.7.2", "dev": true, @@ -13864,11 +13817,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/jest-watcher": { "version": "29.7.0", "dev": true, @@ -16998,6 +16946,13 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" + }, "node_modules/process": { "version": "0.11.10", "dev": true, @@ -17412,22 +17367,9 @@ } }, "node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/react-keyed-flatten-children": { - "version": "2.2.1", - "license": "MIT", - "dependencies": { - "react-is": "^18.2.0" - }, - "peerDependencies": { - "react": ">=15.0.0" - } - }, - "node_modules/react-keyed-flatten-children/node_modules/react-is": { "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "license": "MIT" }, "node_modules/react-router": { diff --git a/pages/multiselect/select-all.page.tsx b/pages/multiselect/select-all.page.tsx index bb9618bd26..dcd2be97dd 100644 --- a/pages/multiselect/select-all.page.tsx +++ b/pages/multiselect/select-all.page.tsx @@ -13,14 +13,18 @@ import { deselectAriaLabel, getInlineAriaLabel, groupedOptions, i18nStrings } fr type DemoContext = React.Context< AppContextType<{ - closeAfter?: boolean; - expandToViewport?: boolean; - inlineTokens?: boolean; - manyOptions?: boolean; - virtualScroll?: boolean; + // Props passed to the component + enableSelectAll?: MultiselectProps['enableSelectAll']; + expandToViewport?: MultiselectProps['expandToViewport']; + filteringType?: MultiselectProps['filteringType']; + inlineTokens?: MultiselectProps['inlineTokens']; + keepOpen?: MultiselectProps['keepOpen']; + statusType?: MultiselectProps['statusType']; + virtualScroll?: MultiselectProps['virtualScroll']; + // Content controls withDisabledOptions?: boolean; - withFiltering?: boolean; withGroups?: boolean; + manyOptions?: boolean; }> >; @@ -100,10 +104,10 @@ export default function MultiselectPage() { + + { - setSelectedOptions(event.detail.selectedOptions); - }} ariaLabel={urlParams.inlineTokens ? getInlineAriaLabel(selectedOptions) : undefined} - inlineTokens={urlParams.inlineTokens} + enableSelectAll={urlParams.enableSelectAll} expandToViewport={urlParams.expandToViewport} - keepOpen={!urlParams.closeAfter} + filteringType={urlParams.filteringType} + inlineTokens={urlParams.inlineTokens} + keepOpen={urlParams.keepOpen} + onLoadItems={() => {}} + options={options} + selectedOptions={selectedOptions} + statusType={urlParams.statusType} virtualScroll={urlParams.virtualScroll} + onChange={event => setSelectedOptions(event.detail.selectedOptions)} + placeholder={'Choose options'} + deselectAriaLabel={deselectAriaLabel} + i18nStrings={{ ...i18nStrings, selectAllText: 'Select all' }} + recoveryText="Retry" + finishedText="End of all results" + errorText="verylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspaces" /> From 194d6d782fdafe9e254605d2023b04527a318e42 Mon Sep 17 00:00:00 2001 From: Maximilian Schoell Date: Thu, 26 Feb 2026 14:17:24 +0100 Subject: [PATCH 2/7] chore: remove redundant dev page --- pages/multiselect/screenshot.page.tsx | 251 ++++++++++++++++++++------ pages/multiselect/select-all.page.tsx | 208 --------------------- 2 files changed, 193 insertions(+), 266 deletions(-) delete mode 100644 pages/multiselect/select-all.page.tsx diff --git a/pages/multiselect/screenshot.page.tsx b/pages/multiselect/screenshot.page.tsx index c4171230a9..dcd2be97dd 100644 --- a/pages/multiselect/screenshot.page.tsx +++ b/pages/multiselect/screenshot.page.tsx @@ -1,73 +1,208 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import React, { useState } from 'react'; +import React, { useContext, useState } from 'react'; +import Box from '~components/box'; +import { OptionGroup } from '~components/internal/components/option/interfaces'; import Multiselect, { MultiselectProps } from '~components/multiselect'; +import SpaceBetween from '~components/space-between'; +import AppContext, { AppContextType } from '../app/app-context'; import ScreenshotArea from '../utils/screenshot-area'; -import { deselectAriaLabel, i18nStrings } from './constants'; +import { deselectAriaLabel, getInlineAriaLabel, groupedOptions, i18nStrings } from './constants'; -const options: MultiselectProps.Options = [ - { value: 'first', label: 'Simple' }, - { - value: 'second', - label: 'With small icon', - iconSvg: ( - - - - - ), - }, - { value: 'third', label: 'With big icon icon', description: 'Very big option', iconName: 'heart' }, - { - label: 'Option group', - options: [{ value: 'forth', label: 'Nested option' }], - }, +type DemoContext = React.Context< + AppContextType<{ + // Props passed to the component + enableSelectAll?: MultiselectProps['enableSelectAll']; + expandToViewport?: MultiselectProps['expandToViewport']; + filteringType?: MultiselectProps['filteringType']; + inlineTokens?: MultiselectProps['inlineTokens']; + keepOpen?: MultiselectProps['keepOpen']; + statusType?: MultiselectProps['statusType']; + virtualScroll?: MultiselectProps['virtualScroll']; + // Content controls + withDisabledOptions?: boolean; + withGroups?: boolean; + manyOptions?: boolean; + }> +>; + +// Mix of grouped and top-level options +const groupedOptionsWithDisabledOptions: MultiselectProps.Options = [ + ...groupedOptions.slice(0, 2), // First 2 groups + ...groupedOptions[2].options, // children of the 2rd group ]; -export default function () { - const [selected, setSelected] = useState(options.slice(0, 3)); - const [virtualScroll, setVirtualScroll] = useState(false); - const [showError, setShowError] = useState(false); +const initialSelectedOptions = [ + (groupedOptionsWithDisabledOptions[0] as OptionGroup).options[2], + (groupedOptionsWithDisabledOptions[1] as OptionGroup).options[0], + (groupedOptionsWithDisabledOptions[1] as OptionGroup).options[1], +]; - return ( - <> -

Multiselect for screenshot

+export default function MultiselectPage() { + const { urlParams, setUrlParams } = useContext(AppContext as DemoContext); + const [selectedOptions, setSelectedOptions] = useState(initialSelectedOptions); - + const groupedOptions: MultiselectProps.Options = urlParams.withDisabledOptions + ? groupedOptionsWithDisabledOptions + : groupedOptionsWithDisabledOptions.map(option => ({ + ...option, + disabled: false, + options: + 'options' in option && option.options.length + ? option.options.map(childOption => ({ ...childOption, disabled: false })) + : undefined, + })); - + const baseOptions: MultiselectProps.Options = urlParams.withGroups + ? groupedOptions + : groupedOptions.reduce( + (previousValue: MultiselectProps.Options, currentValue: MultiselectProps.Option) => + 'options' in currentValue && (currentValue as OptionGroup).options?.length + ? [...previousValue, ...(currentValue as OptionGroup).options] + : [...previousValue, currentValue], + [] + ); + + const options = urlParams.manyOptions + ? [ + ...baseOptions, + ...Array(100) + .fill(undefined) + .map((_, index) => ({ + value: `option${index + baseOptions.length + 1}`, + label: `option${index + baseOptions.length + 1}`, + description: `option${index + baseOptions.length + 1}`, + tags: ['2-CPU', '2Gb RAM'], + })), + ] + : baseOptions; + + return ( +
+

Multiselect with "Select all"

+ + + + + + + + + + + + + + - - {}} - statusType={showError ? 'error' : 'finished'} - onChange={event => setSelected(event.detail.selectedOptions)} - i18nStrings={i18nStrings} - tokenLimit={2} - deselectAriaLabel={deselectAriaLabel} - virtualScroll={virtualScroll} - ariaLabel="multiselect demo" - data-testid="multiselect-demo" - /> - - + + {}} + options={options} + selectedOptions={selectedOptions} + statusType={urlParams.statusType} + virtualScroll={urlParams.virtualScroll} + onChange={event => setSelectedOptions(event.detail.selectedOptions)} + placeholder={'Choose options'} + deselectAriaLabel={deselectAriaLabel} + i18nStrings={{ ...i18nStrings, selectAllText: 'Select all' }} + recoveryText="Retry" + finishedText="End of all results" + errorText="verylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspaces" + /> + + + +
); } diff --git a/pages/multiselect/select-all.page.tsx b/pages/multiselect/select-all.page.tsx deleted file mode 100644 index dcd2be97dd..0000000000 --- a/pages/multiselect/select-all.page.tsx +++ /dev/null @@ -1,208 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 -import React, { useContext, useState } from 'react'; - -import Box from '~components/box'; -import { OptionGroup } from '~components/internal/components/option/interfaces'; -import Multiselect, { MultiselectProps } from '~components/multiselect'; -import SpaceBetween from '~components/space-between'; - -import AppContext, { AppContextType } from '../app/app-context'; -import ScreenshotArea from '../utils/screenshot-area'; -import { deselectAriaLabel, getInlineAriaLabel, groupedOptions, i18nStrings } from './constants'; - -type DemoContext = React.Context< - AppContextType<{ - // Props passed to the component - enableSelectAll?: MultiselectProps['enableSelectAll']; - expandToViewport?: MultiselectProps['expandToViewport']; - filteringType?: MultiselectProps['filteringType']; - inlineTokens?: MultiselectProps['inlineTokens']; - keepOpen?: MultiselectProps['keepOpen']; - statusType?: MultiselectProps['statusType']; - virtualScroll?: MultiselectProps['virtualScroll']; - // Content controls - withDisabledOptions?: boolean; - withGroups?: boolean; - manyOptions?: boolean; - }> ->; - -// Mix of grouped and top-level options -const groupedOptionsWithDisabledOptions: MultiselectProps.Options = [ - ...groupedOptions.slice(0, 2), // First 2 groups - ...groupedOptions[2].options, // children of the 2rd group -]; - -const initialSelectedOptions = [ - (groupedOptionsWithDisabledOptions[0] as OptionGroup).options[2], - (groupedOptionsWithDisabledOptions[1] as OptionGroup).options[0], - (groupedOptionsWithDisabledOptions[1] as OptionGroup).options[1], -]; - -export default function MultiselectPage() { - const { urlParams, setUrlParams } = useContext(AppContext as DemoContext); - const [selectedOptions, setSelectedOptions] = useState(initialSelectedOptions); - - const groupedOptions: MultiselectProps.Options = urlParams.withDisabledOptions - ? groupedOptionsWithDisabledOptions - : groupedOptionsWithDisabledOptions.map(option => ({ - ...option, - disabled: false, - options: - 'options' in option && option.options.length - ? option.options.map(childOption => ({ ...childOption, disabled: false })) - : undefined, - })); - - const baseOptions: MultiselectProps.Options = urlParams.withGroups - ? groupedOptions - : groupedOptions.reduce( - (previousValue: MultiselectProps.Options, currentValue: MultiselectProps.Option) => - 'options' in currentValue && (currentValue as OptionGroup).options?.length - ? [...previousValue, ...(currentValue as OptionGroup).options] - : [...previousValue, currentValue], - [] - ); - - const options = urlParams.manyOptions - ? [ - ...baseOptions, - ...Array(100) - .fill(undefined) - .map((_, index) => ({ - value: `option${index + baseOptions.length + 1}`, - label: `option${index + baseOptions.length + 1}`, - description: `option${index + baseOptions.length + 1}`, - tags: ['2-CPU', '2Gb RAM'], - })), - ] - : baseOptions; - - return ( -
-

Multiselect with "Select all"

- - - - - - - - - - - - - - - - - {}} - options={options} - selectedOptions={selectedOptions} - statusType={urlParams.statusType} - virtualScroll={urlParams.virtualScroll} - onChange={event => setSelectedOptions(event.detail.selectedOptions)} - placeholder={'Choose options'} - deselectAriaLabel={deselectAriaLabel} - i18nStrings={{ ...i18nStrings, selectAllText: 'Select all' }} - recoveryText="Retry" - finishedText="End of all results" - errorText="verylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspacesverylongtextwithoutspaces" - /> - - - -
- ); -} From 0ec0b9a08f6a93ba53ccbd8e7fe6cae8c3cce6ac Mon Sep 17 00:00:00 2001 From: Maximilian Schoell Date: Thu, 26 Feb 2026 14:35:59 +0100 Subject: [PATCH 3/7] chore: add padding back to screenshot area --- pages/multiselect/screenshot.page.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pages/multiselect/screenshot.page.tsx b/pages/multiselect/screenshot.page.tsx index dcd2be97dd..58e48cf04d 100644 --- a/pages/multiselect/screenshot.page.tsx +++ b/pages/multiselect/screenshot.page.tsx @@ -179,7 +179,12 @@ export default function MultiselectPage() { - + Date: Thu, 26 Feb 2026 15:08:46 +0100 Subject: [PATCH 4/7] refactor: update testing page --- src/multiselect/__integ__/select-all.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/multiselect/__integ__/select-all.test.ts b/src/multiselect/__integ__/select-all.test.ts index 13d7421789..f38bce85fc 100644 --- a/src/multiselect/__integ__/select-all.test.ts +++ b/src/multiselect/__integ__/select-all.test.ts @@ -22,8 +22,8 @@ function setup( return useBrowser(async browser => { const page = new BasePageObject(browser); await page.setWindowSize({ width: 950, height: 300 }); - const params = new URLSearchParams({ visualRefresh: String(visualRefresh) }).toString(); - await browser.url(`/#/light/multiselect/select-all?${params}`); + const params = new URLSearchParams({ visualRefresh: String(visualRefresh), enableSelectAll: 'true' }).toString(); + await browser.url(`/#/light/multiselect/screenshot?${params}`); await page.click(multiselect.findTrigger().toSelector()); await testFn(page); }); From d562d96aff583175981a1c3964c67c1f92e348d3 Mon Sep 17 00:00:00 2001 From: Maximilian Schoell Date: Thu, 26 Feb 2026 17:57:32 +0100 Subject: [PATCH 5/7] chore: update page title --- pages/multiselect/screenshot.page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/multiselect/screenshot.page.tsx b/pages/multiselect/screenshot.page.tsx index 58e48cf04d..ebc40f75be 100644 --- a/pages/multiselect/screenshot.page.tsx +++ b/pages/multiselect/screenshot.page.tsx @@ -81,7 +81,7 @@ export default function MultiselectPage() { return (
-

Multiselect with "Select all"

+

Multiselect for screenshot

From 8ff9e627b2c2f0225974dbde5d2b36376d769ca5 Mon Sep 17 00:00:00 2001 From: Maximilian Schoell Date: Thu, 26 Feb 2026 17:59:51 +0100 Subject: [PATCH 6/7] chore: restore package-lock.json --- package-lock.json | 101 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 79 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8a29a2d85a..d663110273 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,6 @@ "": { "name": "@cloudscape-design/components", "version": "3.0.0", - "hasInstallScript": true, "dependencies": { "@cloudscape-design/collection-hooks": "^1.0.0", "@cloudscape-design/component-toolkit": "^1.0.0-beta", @@ -22,7 +21,7 @@ "date-fns": "^2.25.0", "intl-messageformat": "^10.3.1", "mnth": "^2.0.0", - "react-is": "^18.2.0", + "react-keyed-flatten-children": "^2.2.1", "react-transition-group": "^4.4.2", "tslib": "^2.4.0", "weekstart": "^1.1.0" @@ -53,7 +52,6 @@ "@types/node": "^20.17.14", "@types/react": "^16.14.20", "@types/react-dom": "^16.9.14", - "@types/react-is": "^18.2.0", "@types/react-router": "^5.1.18", "@types/react-router-dom": "^5.3.2", "@types/react-test-renderer": "^16.9.12", @@ -2398,6 +2396,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/@jest/core/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, "node_modules/@jest/core/node_modules/strip-ansi": { "version": "6.0.1", "dev": true, @@ -4500,6 +4503,11 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, "node_modules/@types/jsdom": { "version": "20.0.1", "dev": true, @@ -4582,16 +4590,6 @@ "@types/react": "^16" } }, - "node_modules/@types/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-zts4lhQn5ia0cF/y2+3V6Riu0MAfez9/LJYavdM8TvcVl+S91A/7VWxyBT8hbRuWspmuCaiGI0F41OJYGrKhRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "^18" - } - }, "node_modules/@types/react-router": { "version": "5.1.20", "dev": true, @@ -9939,6 +9937,14 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/expect-webdriverio/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/express": { "version": "4.22.1", "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", @@ -12811,6 +12817,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-circus/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, "node_modules/jest-cli": { "version": "29.7.0", "dev": true, @@ -13028,6 +13039,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-config/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, "node_modules/jest-diff": { "version": "29.7.0", "dev": true, @@ -13081,6 +13097,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-diff/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, "node_modules/jest-docblock": { "version": "29.7.0", "dev": true, @@ -13146,6 +13167,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-each/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, "node_modules/jest-environment-jsdom": { "version": "29.7.0", "dev": true, @@ -13284,6 +13310,11 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, "node_modules/jest-matcher-utils": { "version": "29.7.0", "dev": true, @@ -13337,6 +13368,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-matcher-utils/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, "node_modules/jest-message-util": { "version": "29.7.0", "dev": true, @@ -13395,6 +13431,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, "node_modules/jest-mock": { "version": "29.7.0", "dev": true, @@ -13698,6 +13739,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-snapshot/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.7.2", "dev": true, @@ -13817,6 +13863,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-validate/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, "node_modules/jest-watcher": { "version": "29.7.0", "dev": true, @@ -16946,13 +16997,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "license": "MIT" - }, "node_modules/process": { "version": "0.11.10", "dev": true, @@ -17367,9 +17411,22 @@ } }, "node_modules/react-is": { + "version": "17.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/react-keyed-flatten-children": { + "version": "2.2.1", + "license": "MIT", + "dependencies": { + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=15.0.0" + } + }, + "node_modules/react-keyed-flatten-children/node_modules/react-is": { "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "license": "MIT" }, "node_modules/react-router": { From f6f736792d5deec79c962230e6b11990bb02e2ce Mon Sep 17 00:00:00 2001 From: Maximilian Schoell Date: Thu, 26 Feb 2026 22:14:54 +0100 Subject: [PATCH 7/7] fix: increase spacing for open select --- pages/multiselect/screenshot.page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/multiselect/screenshot.page.tsx b/pages/multiselect/screenshot.page.tsx index ebc40f75be..a1fee6a6e9 100644 --- a/pages/multiselect/screenshot.page.tsx +++ b/pages/multiselect/screenshot.page.tsx @@ -182,7 +182,7 @@ export default function MultiselectPage() {