diff --git a/src/autosuggest/internal.tsx b/src/autosuggest/internal.tsx index d89872857cc..d20acea2f37 100644 --- a/src/autosuggest/internal.tsx +++ b/src/autosuggest/internal.tsx @@ -13,11 +13,11 @@ import { BaseChangeDetail } from '../input/interfaces'; import AutosuggestInput, { AutosuggestInputRef } from '../internal/components/autosuggest-input'; import DropdownFooter from '../internal/components/dropdown-footer'; import { useDropdownStatus } from '../internal/components/dropdown-status'; +import { checkOptionValueField } from '../internal/components/listbox/utils/check-option-value-field'; import { useGroupedControlContext } from '../internal/context/control-group-context'; import { fireCancelableEvent, fireNonCancelableEvent } from '../internal/events'; import checkControlled from '../internal/hooks/check-controlled'; import { InternalBaseComponentProps } from '../internal/hooks/use-base-component'; -import { checkOptionValueField } from '../select/utils/check-option-value-field'; import { BaseKeyDetail, NonCancelableCustomEvent } from '../types/events'; import { useAutosuggestTokenI18n } from './i18n-utils'; import { AutosuggestItem, AutosuggestProps } from './interfaces'; diff --git a/src/autosuggest/options-list.tsx b/src/autosuggest/options-list.tsx index 578ecef086f..42e47c53da3 100644 --- a/src/autosuggest/options-list.tsx +++ b/src/autosuggest/options-list.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import React from 'react'; -import { useAnnouncement } from '../select/utils/use-announcement'; +import { useAnnouncement } from '../internal/components/listbox/use-announcement'; import { AutosuggestProps } from './interfaces'; import { AutosuggestItemsHandlers, AutosuggestItemsState } from './options-controller'; import PlainList from './plain-list'; diff --git a/src/select/__tests__/connect-options.test.ts b/src/internal/components/listbox/__tests__/connect-options.test.ts similarity index 100% rename from src/select/__tests__/connect-options.test.ts rename to src/internal/components/listbox/__tests__/connect-options.test.ts diff --git a/src/select/__tests__/get-item-props.test.ts b/src/internal/components/listbox/__tests__/get-item-props.test.ts similarity index 94% rename from src/select/__tests__/get-item-props.test.ts rename to src/internal/components/listbox/__tests__/get-item-props.test.ts index 3847c3a823e..a8883b4d2b2 100644 --- a/src/select/__tests__/get-item-props.test.ts +++ b/src/internal/components/listbox/__tests__/get-item-props.test.ts @@ -1,8 +1,8 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import { flattenOptions } from '../../internal/components/option/utils/flatten-options'; -import { generateTestIndexes } from '../../internal/components/options-list/utils/test-indexes'; -import { getItemProps } from '../utils/get-item-props'; +import { flattenOptions } from '../../option/utils/flatten-options'; +import { generateTestIndexes } from '../../options-list/utils/test-indexes'; +import { getItemProps } from '../parts/get-item-props'; const options = [ { diff --git a/src/select/__tests__/scroll-to-index.test.ts b/src/internal/components/listbox/__tests__/scroll-to-index.test.ts similarity index 98% rename from src/select/__tests__/scroll-to-index.test.ts rename to src/internal/components/listbox/__tests__/scroll-to-index.test.ts index 1198e729253..a1699e3d6e5 100644 --- a/src/select/__tests__/scroll-to-index.test.ts +++ b/src/internal/components/listbox/__tests__/scroll-to-index.test.ts @@ -1,6 +1,6 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import scrollToIndex from '../utils/scroll-to-index'; +import scrollToIndex from '../parts/scroll-to-index'; describe('scroll-to-index', () => { function runWith({ diff --git a/src/select/__tests__/use-announcement.test.ts b/src/internal/components/listbox/__tests__/use-announcement.test.ts similarity index 94% rename from src/select/__tests__/use-announcement.test.ts rename to src/internal/components/listbox/__tests__/use-announcement.test.ts index 66bf7226515..f144edcfe85 100644 --- a/src/select/__tests__/use-announcement.test.ts +++ b/src/internal/components/listbox/__tests__/use-announcement.test.ts @@ -1,10 +1,10 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import { renderHook } from '../../__tests__/render-hook'; -import { DropdownOption } from '../../internal/components/option/interfaces'; -import { flattenOptions } from '../../internal/components/option/utils/flatten-options'; -import { OptionDefinition, OptionGroup } from '../../types/option'; -import { useAnnouncement } from '../utils/use-announcement'; +import { renderHook } from '../../../../__tests__/render-hook'; +import { OptionDefinition, OptionGroup } from '../../../../types/option'; +import { DropdownOption } from '../../option/interfaces'; +import { flattenOptions } from '../../option/utils/flatten-options'; +import { useAnnouncement } from '../use-announcement'; const options: DropdownOption['option'][] = [ { diff --git a/src/select/parts/common.ts b/src/internal/components/listbox/parts/common.ts similarity index 100% rename from src/select/parts/common.ts rename to src/internal/components/listbox/parts/common.ts diff --git a/src/select/utils/get-item-props.ts b/src/internal/components/listbox/parts/get-item-props.ts similarity index 80% rename from src/select/utils/get-item-props.ts rename to src/internal/components/listbox/parts/get-item-props.ts index e59a4f07bf7..03400ddf8ca 100644 --- a/src/select/utils/get-item-props.ts +++ b/src/internal/components/listbox/parts/get-item-props.ts @@ -1,7 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import { DropdownOption } from '../../internal/components/option/interfaces'; -import { getTestOptionIndexes } from '../../internal/components/options-list/utils/test-indexes'; +import { DropdownOption } from '../../option/interfaces'; +import { getTestOptionIndexes } from '../../options-list/utils/test-indexes'; interface ItemProps { option: DropdownOption; diff --git a/src/select/parts/option-group.tsx b/src/internal/components/listbox/parts/option-group.tsx similarity index 91% rename from src/select/parts/option-group.tsx rename to src/internal/components/listbox/parts/option-group.tsx index d652cc3141f..af8ecd82834 100644 --- a/src/select/parts/option-group.tsx +++ b/src/internal/components/listbox/parts/option-group.tsx @@ -3,7 +3,7 @@ import React from 'react'; import clsx from 'clsx'; -import styles from './styles.css.js'; +import styles from '../../../../select/parts/styles.css.js'; interface OptionGroupProps { children: React.ReactNode; diff --git a/src/select/utils/render-options.tsx b/src/internal/components/listbox/parts/render-options.tsx similarity index 87% rename from src/select/utils/render-options.tsx rename to src/internal/components/listbox/parts/render-options.tsx index 98a95a822ea..0c79dce23ca 100644 --- a/src/select/utils/render-options.tsx +++ b/src/internal/components/listbox/parts/render-options.tsx @@ -2,16 +2,16 @@ // SPDX-License-Identifier: Apache-2.0 import React from 'react'; -import { DropdownOption } from '../../internal/components/option/interfaces'; -import { NestedDropdownOption, unflattenOptions } from '../../internal/components/option/utils/unflatten-options'; -import { HighlightType } from '../../internal/components/options-list/utils/use-highlight-option'; -import { VirtualItem } from '../../internal/vendor/react-virtual'; -import { MultiselectProps } from '../../multiselect/interfaces'; -import { SelectProps } from '../interfaces'; -import Item, { ItemParentProps } from '../parts/item'; -import MultiselectItem, { MultiselectItemParentProps } from '../parts/multiselect-item'; -import OptionGroup from '../parts/option-group'; +import { MultiselectProps } from '../../../../multiselect/interfaces'; +import { SelectProps } from '../../../../select/interfaces'; +import Item, { ItemParentProps } from '../../../../select/parts/item'; +import MultiselectItem, { MultiselectItemParentProps } from '../../../../select/parts/multiselect-item'; +import { VirtualItem } from '../../../vendor/react-virtual'; +import { DropdownOption } from '../../option/interfaces'; +import { NestedDropdownOption, unflattenOptions } from '../../option/utils/unflatten-options'; +import { HighlightType } from '../../options-list/utils/use-highlight-option'; import { getItemProps } from './get-item-props'; +import OptionGroup from './option-group'; interface RenderOptionProps { options: ReadonlyArray; diff --git a/src/select/utils/scroll-to-index.ts b/src/internal/components/listbox/parts/scroll-to-index.ts similarity index 100% rename from src/select/utils/scroll-to-index.ts rename to src/internal/components/listbox/parts/scroll-to-index.ts diff --git a/src/select/utils/use-announcement.ts b/src/internal/components/listbox/use-announcement.ts similarity index 93% rename from src/select/utils/use-announcement.ts rename to src/internal/components/listbox/use-announcement.ts index 653279438db..191c65823ef 100644 --- a/src/select/utils/use-announcement.ts +++ b/src/internal/components/listbox/use-announcement.ts @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 import { useEffect, useRef } from 'react'; -import defaultOptionDescription from '../../internal/components/option/option-announcer'; -import { OptionDefinition, OptionGroup } from '../../types/option'; -import { SelectProps } from '../interfaces'; +import { SelectProps } from '../../../select/interfaces'; +import { OptionDefinition, OptionGroup } from '../../../types/option'; +import defaultOptionDescription from '../option/option-announcer'; interface OptionHolder { option?: OptionDefinition | OptionGroup; diff --git a/src/select/utils/check-option-value-field.ts b/src/internal/components/listbox/utils/check-option-value-field.ts similarity index 94% rename from src/select/utils/check-option-value-field.ts rename to src/internal/components/listbox/utils/check-option-value-field.ts index 1e82119f148..c6da719195a 100644 --- a/src/select/utils/check-option-value-field.ts +++ b/src/internal/components/listbox/utils/check-option-value-field.ts @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { warnOnce } from '@cloudscape-design/component-toolkit/internal'; -import { isDevelopment } from '../../internal/is-development'; +import { isDevelopment } from '../../../is-development'; export function checkOptionValueField>( componentName: string, diff --git a/src/select/utils/connect-options.ts b/src/internal/components/listbox/utils/connect-options.ts similarity index 89% rename from src/select/utils/connect-options.ts rename to src/internal/components/listbox/utils/connect-options.ts index 8cd8ca39a89..117fd947726 100644 --- a/src/select/utils/connect-options.ts +++ b/src/internal/components/listbox/utils/connect-options.ts @@ -1,7 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import { DropdownOption } from '../../internal/components/option/interfaces'; -import { OptionDefinition } from '../../types/option'; +import { OptionDefinition } from '../../../../types/option'; +import { DropdownOption } from '../../option/interfaces'; export const connectOptionsByValue = ( options: ReadonlyArray, diff --git a/src/multiselect/use-multiselect.tsx b/src/multiselect/use-multiselect.tsx index 76f7b893661..508a644688e 100644 --- a/src/multiselect/use-multiselect.tsx +++ b/src/multiselect/use-multiselect.tsx @@ -7,6 +7,9 @@ import { warnOnce } from '@cloudscape-design/component-toolkit/internal'; import { useInternalI18n } from '../i18n/context'; import { useDropdownStatus } from '../internal/components/dropdown-status'; +import { useAnnouncement } from '../internal/components/listbox/use-announcement'; +import { checkOptionValueField } from '../internal/components/listbox/utils/check-option-value-field.js'; +import { findOptionIndex } from '../internal/components/listbox/utils/connect-options'; import { DropdownOption } from '../internal/components/option/interfaces'; import { isGroup } from '../internal/components/option/utils/filter-options'; import { prepareOptions } from '../internal/components/option/utils/prepare-options'; @@ -14,9 +17,6 @@ import { fireNonCancelableEvent } from '../internal/events'; import { SomeRequired } from '../internal/types'; import { joinStrings } from '../internal/utils/strings'; import { SelectListProps } from '../select/parts/plain-list'; -import { checkOptionValueField } from '../select/utils/check-option-value-field.js'; -import { findOptionIndex } from '../select/utils/connect-options'; -import { useAnnouncement } from '../select/utils/use-announcement'; import { useLoadItems } from '../select/utils/use-load-items'; import { useNativeSearch } from '../select/utils/use-native-search'; import { useSelect } from '../select/utils/use-select'; diff --git a/src/prompt-input/components/menu-dropdown.tsx b/src/prompt-input/components/menu-dropdown.tsx index 5bfe6ad26d6..0dae6fd4c17 100644 --- a/src/prompt-input/components/menu-dropdown.tsx +++ b/src/prompt-input/components/menu-dropdown.tsx @@ -5,8 +5,8 @@ import React, { useEffect, useRef } from 'react'; import PlainList from '../../autosuggest/plain-list'; import VirtualList from '../../autosuggest/virtual-list'; +import { useAnnouncement } from '../../internal/components/listbox/use-announcement'; import InternalLiveRegion, { InternalLiveRegionRef } from '../../live-region/internal'; -import { useAnnouncement } from '../../select/utils/use-announcement'; import { MenuItemsHandlers, MenuItemsState } from '../core/menu-state'; import { PromptInputProps } from '../interfaces'; diff --git a/src/select/internal.tsx b/src/select/internal.tsx index 945795de6b9..003053a7ece 100644 --- a/src/select/internal.tsx +++ b/src/select/internal.tsx @@ -11,6 +11,8 @@ import { getBaseProps } from '../internal/base-component'; import { getBreakpointValue } from '../internal/breakpoints'; import DropdownFooter from '../internal/components/dropdown-footer'; import { useDropdownStatus } from '../internal/components/dropdown-status'; +import { useAnnouncement } from '../internal/components/listbox/use-announcement'; +import { checkOptionValueField } from '../internal/components/listbox/utils/check-option-value-field'; import { prepareOptions } from '../internal/components/option/utils/prepare-options.js'; import { ResetGroupedControlContext, useGroupedControlContext } from '../internal/context/control-group-context'; import { useFormFieldContext } from '../internal/context/form-field-context'; @@ -26,9 +28,7 @@ import Filter from './parts/filter'; import PlainList, { SelectListProps } from './parts/plain-list'; import Trigger from './parts/trigger'; import VirtualList from './parts/virtual-list'; -import { checkOptionValueField } from './utils/check-option-value-field'; import { composeDropdownContent } from './utils/dropdown-customization'; -import { useAnnouncement } from './utils/use-announcement'; import { useLoadItems } from './utils/use-load-items'; import { useNativeSearch } from './utils/use-native-search'; import { useSelect } from './utils/use-select'; diff --git a/src/select/parts/plain-list.tsx b/src/select/parts/plain-list.tsx index 60576e1630e..e5412171d44 100644 --- a/src/select/parts/plain-list.tsx +++ b/src/select/parts/plain-list.tsx @@ -5,15 +5,15 @@ import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react' import { useContainerQuery } from '@cloudscape-design/component-toolkit'; import { useMergeRefs, useUniqueId } from '@cloudscape-design/component-toolkit/internal'; +import { fallbackItemHeight } from '../../internal/components/listbox/parts/common'; +import { renderOptions } from '../../internal/components/listbox/parts/render-options'; +import scrollToIndex from '../../internal/components/listbox/parts/scroll-to-index'; import { DropdownOption } from '../../internal/components/option/interfaces'; import OptionsList from '../../internal/components/options-list'; import { HighlightType } from '../../internal/components/options-list/utils/use-highlight-option'; import { MultiselectProps } from '../../multiselect/interfaces'; import { SelectProps } from '../interfaces'; -import { renderOptions } from '../utils/render-options'; -import scrollToIndex from '../utils/scroll-to-index'; import { GetOptionProps, MenuProps } from '../utils/use-select'; -import { fallbackItemHeight } from './common'; import styles from './styles.css.js'; diff --git a/src/select/parts/virtual-list.tsx b/src/select/parts/virtual-list.tsx index 53281920321..2294f3b79b3 100644 --- a/src/select/parts/virtual-list.tsx +++ b/src/select/parts/virtual-list.tsx @@ -5,11 +5,11 @@ import React, { forwardRef, useCallback, useImperativeHandle, useRef } from 'rea import { useContainerQuery } from '@cloudscape-design/component-toolkit'; import { useMergeRefs, useUniqueId } from '@cloudscape-design/component-toolkit/internal'; +import { fallbackItemHeight } from '../../internal/components/listbox/parts/common'; +import { renderOptions } from '../../internal/components/listbox/parts/render-options'; +import customScrollToIndex from '../../internal/components/listbox/parts/scroll-to-index'; import OptionsList from '../../internal/components/options-list'; import { useVirtual } from '../../internal/hooks/use-virtual'; -import { renderOptions } from '../utils/render-options'; -import customScrollToIndex from '../utils/scroll-to-index'; -import { fallbackItemHeight } from './common'; import { SelectListProps } from './plain-list'; import styles from './styles.css.js'; diff --git a/src/select/utils/use-select.ts b/src/select/utils/use-select.ts index 606447346e6..1f205331c6d 100644 --- a/src/select/utils/use-select.ts +++ b/src/select/utils/use-select.ts @@ -7,6 +7,7 @@ import { useUniqueId } from '@cloudscape-design/component-toolkit/internal'; import { InternalDropdownProps } from '../../dropdown/internal'; import { ButtonTriggerProps } from '../../internal/components/button-trigger'; +import { connectOptionsByValue } from '../../internal/components/listbox/utils/connect-options'; import { DropdownOption } from '../../internal/components/option/interfaces'; import { isGroup, isGroupInteractive, isInteractive } from '../../internal/components/option/utils/filter-options'; import { OptionsListProps } from '../../internal/components/options-list'; @@ -23,7 +24,6 @@ import { OptionDefinition, OptionGroup } from '../../types/option'; import { SelectProps } from '../interfaces'; import { FilterProps } from '../parts/filter'; import { ItemProps } from '../parts/item'; -import { connectOptionsByValue } from './connect-options'; export type MenuProps = Omit & { ref: React.RefObject }; export type GetOptionProps = (option: DropdownOption, index: number) => ItemProps;