'use client'; import * as React from 'react'; import { useRefWithInit } from '../../hooks/useRefWithInit'; import { useStableCallback } from '../../hooks/useStableCallback'; import { useTransitionStatus } from '../../internals/useTransitionStatus'; import { usePopupRootHandle } from '../../utils/popups/usePopupRootHandle'; import { useFieldControlRegistration } from '../../internals/field/useFieldControlRegistration'; import { defaultItemEquality, type ItemEqualityComparer } from '../../internals/itemEquality'; import type { ZestChangeEventDetails } from '../../utils/createChangeEventDetails'; import type { REASONS } from '../../utils/reasons'; import type { SelectHandle } from '../store/SelectHandle'; import { SelectStore, type SelectItems } from '../store/SelectStore'; import { SelectRootContext } from './SelectRootContext'; import { SelectTransitionContext } from './SelectTransitionContext'; import { useContextCallback, useControlledProp, useStoreState, useSyncedValues } from '../../store/ReactStore'; /** * Groups all parts of the select. * Doesn't render its own element. * * Unlike the web version there is no hidden `