feat: make dropdown component public #21083
build-lint-test.yml
on: pull_request
Matrix: build
Matrix: deploy
Waiting for pending jobs
Annotations
12 errors and 28 warnings
|
build / build
Process completed with exit code 1.
|
|
Test-utils › selectors definitions match the snapshot:
src/__tests__/snapshot-tests/documenter.test.ts#L25
expect(received).toMatchSnapshot()
Snapshot name: `Test-utils selectors definitions match the snapshot 1`
- Snapshot - 0
+ Received + 4
@@ -4062,10 +4062,11 @@
"name": "DrawerWrapper",
},
{
"methods": [
{
+ "description": "Returns the dropdown content element.",
"name": "findContent",
"parameters": [
{
"defaultValue": "{
expandToViewport: false
@@ -4082,10 +4083,11 @@
"isNullable": false,
"name": "ElementWrapper",
},
},
{
+ "description": "Returns the dropdown wrapper.",
"name": "findDropdown",
"parameters": [
{
"defaultValue": "{
expandToViewport: false
@@ -4102,10 +4104,11 @@
"isNullable": false,
"name": "DropdownContentWrapper",
},
},
{
+ "description": "Returns the dropdown footer element.",
"name": "findFooter",
"parameters": [
{
"defaultValue": "{
expandToViewport: false
@@ -4122,10 +4125,11 @@
"isNullable": false,
"name": "ElementWrapper",
},
},
{
+ "description": "Returns the dropdown header element.",
"name": "findHeader",
"parameters": [
{
"defaultValue": "{
expandToViewport: false
at Object.<anonymous> (src/__tests__/snapshot-tests/documenter.test.ts:25:42)
|
|
Test-utils › dom definitions match the snapshot:
src/__tests__/snapshot-tests/documenter.test.ts#L21
expect(received).toMatchSnapshot()
Snapshot name: `Test-utils dom definitions match the snapshot 1`
- Snapshot - 0
+ Received + 4
@@ -5815,10 +5815,11 @@
"name": "DrawerWrapper",
},
{
"methods": [
{
+ "description": "Returns the dropdown content element.",
"name": "findContent",
"parameters": [
{
"defaultValue": "{ expandToViewport: false }",
"description": "* expandToViewport (boolean) - Use this when the component under test is rendered with an `expandToViewport` flag.",
@@ -5838,10 +5839,11 @@
},
],
},
},
{
+ "description": "Returns the dropdown wrapper.",
"name": "findDropdown",
"parameters": [
{
"defaultValue": "{ expandToViewport: false }",
"description": "* expandToViewport (boolean) - Use this when the component under test is rendered with an `expandToViewport` flag.",
@@ -5856,10 +5858,11 @@
"isNullable": false,
"name": "DropdownContentWrapper",
},
},
{
+ "description": "Returns the dropdown footer element.",
"name": "findFooter",
"parameters": [
{
"defaultValue": "{ expandToViewport: false }",
"description": "* expandToViewport (boolean) - Use this when the component under test is rendered with an `expandToViewport` flag.",
@@ -5879,10 +5882,11 @@
},
],
},
},
{
+ "description": "Returns the dropdown header element.",
"name": "findHeader",
"parameters": [
{
"defaultValue": "{ expandToViewport: false }",
"description": "* expandToViewport (boolean) - Use this when the component under test is rendered with an `expandToViewport` flag.",
at Object.<anonymous> (src/__tests__/snapshot-tests/documenter.test.ts:21:36)
|
|
Components › definition for dropdown matches the snapshot:
src/__tests__/snapshot-tests/documenter.test.ts#L15
expect(received).toMatchSnapshot(hint)
Snapshot name: `Components definition for dropdown matches the snapshot: dropdown 1`
- Snapshot - 15
+ Received + 24
@@ -8,12 +8,12 @@
must update the `open` prop to close the dropdown.",
"name": "onEscape",
},
{
"cancelable": false,
- "description": "Called when focus enters the dropdown content from outside.
- This fires only once when focus moves into the dropdown, not when moving between elements within it.",
+ "description": "Called when any element inside the dropdown content gains focus.
+ This includes nested interactive elements like buttons, links, or inputs.",
"detailInlineType": {
"name": "Pick<React.FocusEvent<Element, Element>, "relatedTarget" | "target">",
"properties": [
{
"inlineType": {
@@ -85,39 +85,41 @@
"detailType": "Pick<React.FocusEvent<Element, Element>, "relatedTarget" | "target">",
"name": "onFocusLeave",
},
{
"cancelable": false,
- "description": "Called when the user clicks outside the dropdown and trigger.
- The dropdown does not close automatically - the parent component
- must update the `open` prop to close the dropdown.",
+ "description": "Called when the user clicks outside the dropdown. The dropdown does not
+ close automatically - the parent component must update the `open` prop to
+ actually close the dropdown.",
"name": "onOutsideClick",
},
],
"functions": [],
"name": "Dropdown",
"properties": [
{
- "description": "Describedby for the dropdown (recommended when role="dialog")",
+ "description": "ARIA describedby attribute for the dropdown content",
"name": "ariaDescribedby",
"optional": true,
"type": "string",
},
{
- "description": "Aria label for the dropdown content wrapper",
+ "description": "ARIA label for the dropdown content.
+ Use either this or ariaLabelledby, not both.",
"name": "ariaLabel",
"optional": true,
"type": "string",
},
{
- "description": "Labelledby for the dropdown (required when role="dialog")",
+ "description": "ARIA labelledby attribute for the dropdown content.
+ Use either this or ariaLabel, not both.",
"name": "ariaLabelledby",
"optional": true,
"type": "string",
},
{
- "description": "HTML role for the dropdown content wrapper",
+ "description": "ARIA role for the dropdown content (e.g., 'menu', 'listbox', 'dialog')",
"name": "ariaRole",
"optional": true,
"type": "string",
},
{
@@ -133,17 +135,21 @@
"name": "expandToViewport",
"optional": true,
"type": "boolean",
},
{
- "description": "Maximum width constraint for the dropdown in pixels.",
+ "description": "Maximum width constraint for the dropdown.
+ - Number: maximum width in pixels
+ - undefined: no maximum constraint (natural content sizing)",
"name": "maxWidth",
"optional": true,
"type": "number",
},
{
- "description": "Minimum width constraint for the dropdown in pixels.",
+ "description": "Minimum width constraint for the dropdown.
+ - Number: minimum width in pixels
+ - undefined: no maximum constraint (natural content sizing)",
"name": "minWidth",
"optional": true,
"type": "number",
},
{
@@ -153,26 +159,29 @@
"type": "boolean",
},
],
"regions": [
{
- "description": "Dropdown content elements.",
+ "description": "Main content of the dropdown",
"isDefault": false,
"name": "content",
},
{
- "description": "Footer slot fixed at the bottom of the dropdown",
+ "description": "Optional footer content that stays fixed at the bottom while
+ scrolling dropdown content.
+ Typically used to display loading status or action buttons.",
"isDefault": false,
"name": "footer",
|
|
DropdownWrapper test-utils › findOpenDropdown with expandToViewport returns null when closed:
src/test-utils/dom/dropdown/index.ts#L69
TypeError: Cannot read properties of null (reading 'findOpenDropdown')
at DropdownWrapper.findOpenDropdown (src/test-utils/dom/dropdown/index.ts:69:38)
at Object.<anonymous> (src/__tests__/functional-tests/test-utils.test.tsx:283:20)
|
|
build (React 18) / build
The strategy configuration was canceled because "build._16" failed
|
|
build (React 18) / build
Process completed with exit code 1.
|
|
Test-utils › selectors definitions match the snapshot:
src/__tests__/snapshot-tests/documenter.test.ts#L25
expect(received).toMatchSnapshot()
Snapshot name: `Test-utils selectors definitions match the snapshot 1`
- Snapshot - 0
+ Received + 4
@@ -4062,10 +4062,11 @@
"name": "DrawerWrapper",
},
{
"methods": [
{
+ "description": "Returns the dropdown content element.",
"name": "findContent",
"parameters": [
{
"defaultValue": "{
expandToViewport: false
@@ -4082,10 +4083,11 @@
"isNullable": false,
"name": "ElementWrapper",
},
},
{
+ "description": "Returns the dropdown wrapper.",
"name": "findDropdown",
"parameters": [
{
"defaultValue": "{
expandToViewport: false
@@ -4102,10 +4104,11 @@
"isNullable": false,
"name": "DropdownContentWrapper",
},
},
{
+ "description": "Returns the dropdown footer element.",
"name": "findFooter",
"parameters": [
{
"defaultValue": "{
expandToViewport: false
@@ -4122,10 +4125,11 @@
"isNullable": false,
"name": "ElementWrapper",
},
},
{
+ "description": "Returns the dropdown header element.",
"name": "findHeader",
"parameters": [
{
"defaultValue": "{
expandToViewport: false
at Object.<anonymous> (src/__tests__/snapshot-tests/documenter.test.ts:25:42)
|
|
Test-utils › dom definitions match the snapshot:
src/__tests__/snapshot-tests/documenter.test.ts#L21
expect(received).toMatchSnapshot()
Snapshot name: `Test-utils dom definitions match the snapshot 1`
- Snapshot - 0
+ Received + 4
@@ -5815,10 +5815,11 @@
"name": "DrawerWrapper",
},
{
"methods": [
{
+ "description": "Returns the dropdown content element.",
"name": "findContent",
"parameters": [
{
"defaultValue": "{ expandToViewport: false }",
"description": "* expandToViewport (boolean) - Use this when the component under test is rendered with an `expandToViewport` flag.",
@@ -5838,10 +5839,11 @@
},
],
},
},
{
+ "description": "Returns the dropdown wrapper.",
"name": "findDropdown",
"parameters": [
{
"defaultValue": "{ expandToViewport: false }",
"description": "* expandToViewport (boolean) - Use this when the component under test is rendered with an `expandToViewport` flag.",
@@ -5856,10 +5858,11 @@
"isNullable": false,
"name": "DropdownContentWrapper",
},
},
{
+ "description": "Returns the dropdown footer element.",
"name": "findFooter",
"parameters": [
{
"defaultValue": "{ expandToViewport: false }",
"description": "* expandToViewport (boolean) - Use this when the component under test is rendered with an `expandToViewport` flag.",
@@ -5879,10 +5882,11 @@
},
],
},
},
{
+ "description": "Returns the dropdown header element.",
"name": "findHeader",
"parameters": [
{
"defaultValue": "{ expandToViewport: false }",
"description": "* expandToViewport (boolean) - Use this when the component under test is rendered with an `expandToViewport` flag.",
at Object.<anonymous> (src/__tests__/snapshot-tests/documenter.test.ts:21:36)
|
|
Components › definition for dropdown matches the snapshot:
src/__tests__/snapshot-tests/documenter.test.ts#L15
expect(received).toMatchSnapshot(hint)
Snapshot name: `Components definition for dropdown matches the snapshot: dropdown 1`
- Snapshot - 15
+ Received + 24
@@ -8,12 +8,12 @@
must update the `open` prop to close the dropdown.",
"name": "onEscape",
},
{
"cancelable": false,
- "description": "Called when focus enters the dropdown content from outside.
- This fires only once when focus moves into the dropdown, not when moving between elements within it.",
+ "description": "Called when any element inside the dropdown content gains focus.
+ This includes nested interactive elements like buttons, links, or inputs.",
"detailInlineType": {
"name": "Pick<React.FocusEvent<Element, Element>, "relatedTarget" | "target">",
"properties": [
{
"inlineType": {
@@ -85,39 +85,41 @@
"detailType": "Pick<React.FocusEvent<Element, Element>, "relatedTarget" | "target">",
"name": "onFocusLeave",
},
{
"cancelable": false,
- "description": "Called when the user clicks outside the dropdown and trigger.
- The dropdown does not close automatically - the parent component
- must update the `open` prop to close the dropdown.",
+ "description": "Called when the user clicks outside the dropdown. The dropdown does not
+ close automatically - the parent component must update the `open` prop to
+ actually close the dropdown.",
"name": "onOutsideClick",
},
],
"functions": [],
"name": "Dropdown",
"properties": [
{
- "description": "Describedby for the dropdown (recommended when role="dialog")",
+ "description": "ARIA describedby attribute for the dropdown content",
"name": "ariaDescribedby",
"optional": true,
"type": "string",
},
{
- "description": "Aria label for the dropdown content wrapper",
+ "description": "ARIA label for the dropdown content.
+ Use either this or ariaLabelledby, not both.",
"name": "ariaLabel",
"optional": true,
"type": "string",
},
{
- "description": "Labelledby for the dropdown (required when role="dialog")",
+ "description": "ARIA labelledby attribute for the dropdown content.
+ Use either this or ariaLabel, not both.",
"name": "ariaLabelledby",
"optional": true,
"type": "string",
},
{
- "description": "HTML role for the dropdown content wrapper",
+ "description": "ARIA role for the dropdown content (e.g., 'menu', 'listbox', 'dialog')",
"name": "ariaRole",
"optional": true,
"type": "string",
},
{
@@ -133,17 +135,21 @@
"name": "expandToViewport",
"optional": true,
"type": "boolean",
},
{
- "description": "Maximum width constraint for the dropdown in pixels.",
+ "description": "Maximum width constraint for the dropdown.
+ - Number: maximum width in pixels
+ - undefined: no maximum constraint (natural content sizing)",
"name": "maxWidth",
"optional": true,
"type": "number",
},
{
- "description": "Minimum width constraint for the dropdown in pixels.",
+ "description": "Minimum width constraint for the dropdown.
+ - Number: minimum width in pixels
+ - undefined: no maximum constraint (natural content sizing)",
"name": "minWidth",
"optional": true,
"type": "number",
},
{
@@ -153,26 +159,29 @@
"type": "boolean",
},
],
"regions": [
{
- "description": "Dropdown content elements.",
+ "description": "Main content of the dropdown",
"isDefault": false,
"name": "content",
},
{
- "description": "Footer slot fixed at the bottom of the dropdown",
+ "description": "Optional footer content that stays fixed at the bottom while
+ scrolling dropdown content.
+ Typically used to display loading status or action buttons.",
"isDefault": false,
"name": "footer",
|
|
DropdownWrapper test-utils › findOpenDropdown with expandToViewport returns null when closed:
src/test-utils/dom/dropdown/index.ts#L69
TypeError: Cannot read properties of null (reading 'findOpenDropdown')
at DropdownWrapper.findOpenDropdown (src/test-utils/dom/dropdown/index.ts:69:38)
at Object.<anonymous> (src/__tests__/functional-tests/test-utils.test.tsx:283:20)
|
|
Build, lint and test
The strategy configuration was canceled because "build._16" failed
|
|
build (React 18) / git-secrets
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build / git-secrets
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build / codeql
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, github/codeql-action/analyze@v3, github/codeql-action/init@v3. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build / codeql
CodeQL Action v3 will be deprecated in December 2026. Please update all occurrences of the CodeQL Action in your workflow files to v4. For more information, see https://github.blog/changelog/2025-10-28-upcoming-deprecation-of-codeql-action-v3/
|
|
build (React 18) / codeql
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, github/codeql-action/analyze@v3, github/codeql-action/init@v3. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build (React 18) / codeql
CodeQL Action v3 will be deprecated in December 2026. Please update all occurrences of the CodeQL Action in your workflow files to v4. For more information, see https://github.blog/changelog/2025-10-28-upcoming-deprecation-of-codeql-action-v3/
|
|
build / build
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/setup-node@v4, actions/upload-artifact@v4, cloudscape-design/actions/.github/actions/patch-local-dependencies@main, cloudscape-design/actions/.github/actions/unlock-dependencies@main. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
|
|
build / build:
src/app-layout/__integ__/app-layout-focus-delegation.test.ts#L192
Unexpected 'todo' comment: 'todo - investigate why resize observer...'
|
|
build / build:
src/app-layout/__integ__/app-layout-drawers.test.ts#L227
Unexpected 'todo' comment: 'todo: resolve split panel positioning...'
|
|
build / build:
pages/utils/permutations-view.tsx#L18
Unexpected 'todo' comment: 'TODO: Pretty-print original JSX,...'
|
|
build / build:
pages/steps/with-updates.page.tsx#L167
JSX element uses aria-live property. Prefer using LiveRegion component instead
|
|
build / build:
pages/steps/with-updates.page.tsx#L155
JSX element uses aria-live property. Prefer using LiveRegion component instead
|
|
build / build:
pages/steps/with-updates.page.tsx#L143
JSX element uses aria-live property. Prefer using LiveRegion component instead
|
|
build / build:
pages/steps/with-updates.page.tsx#L127
JSX element uses aria-live property. Prefer using LiveRegion component instead
|
|
build / build:
pages/form-field/form-field-columns.page.tsx#L20
Unexpected 'todo' comment: 'TODO: Replace this with Select'
|
|
build / build:
pages/button/alignment.page.tsx#L25
Unexpected 'todo' comment: 'TODO: uncomment when we add...'
|
|
build (React 18) / build
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/setup-node@v4, actions/upload-artifact@v4, cloudscape-design/actions/.github/actions/patch-local-dependencies@main, cloudscape-design/actions/.github/actions/unlock-dependencies@main. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
|
|
build (React 18) / build:
src/app-layout/__integ__/app-layout-focus-delegation.test.ts#L192
Unexpected 'todo' comment: 'todo - investigate why resize observer...'
|
|
build (React 18) / build:
src/app-layout/__integ__/app-layout-drawers.test.ts#L227
Unexpected 'todo' comment: 'todo: resolve split panel positioning...'
|
|
build (React 18) / build:
pages/utils/permutations-view.tsx#L18
Unexpected 'todo' comment: 'TODO: Pretty-print original JSX,...'
|
|
build (React 18) / build:
pages/steps/with-updates.page.tsx#L167
JSX element uses aria-live property. Prefer using LiveRegion component instead
|
|
build (React 18) / build:
pages/steps/with-updates.page.tsx#L155
JSX element uses aria-live property. Prefer using LiveRegion component instead
|
|
build (React 18) / build:
pages/steps/with-updates.page.tsx#L143
JSX element uses aria-live property. Prefer using LiveRegion component instead
|
|
build (React 18) / build:
pages/steps/with-updates.page.tsx#L127
JSX element uses aria-live property. Prefer using LiveRegion component instead
|
|
build (React 18) / build:
pages/form-field/form-field-columns.page.tsx#L20
Unexpected 'todo' comment: 'TODO: Replace this with Select'
|
|
build (React 18) / build:
pages/button/alignment.page.tsx#L25
Unexpected 'todo' comment: 'TODO: uncomment when we add...'
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
dev-pages-react16
|
15.3 MB |
sha256:4ba9f3e2f9d50bf7133407e0f29ddf2a03a3458f53eb145b7ed8741e6f715918
|
|
|
dev-pages-react18
|
15.3 MB |
sha256:7d7318b9ed44781efe10b9c55bcc1d9fa1a530a33c6491d15cacf6360f0fbb80
|
|