import { dynamic } from "@solidjs/web";
import { createRenderEffect, omit, onCleanup } from "solid-js";
import { useBaseUiId } from "../../internals/base-ui-id.jsx";
import { composeRefs, userRef } from "../../internals/compose-refs.jsx";
import { mergeRootProps } from "../../internals/merge-root-props.jsx";
import { resolveClassStyle } from "../../internals/resolve-class-style.jsx";
import { useComboboxRootContext } from "../root/combobox-root-context.jsx";
const EMPTY_STATE = {};

/**
 * An accessible label that is automatically associated with the combobox
 * trigger via the root's `labelId` registration. Renders a `<div>` element.
 */
export function ComboboxLabel(props) {
  const root = useComboboxRootContext();
  const id = useBaseUiId();
  createRenderEffect(() => id, next => {
    root.setLabelId(next);
    return undefined;
  });
  onCleanup(() => root.setLabelId(undefined));
  const internal = {
    id
  };
  const userClassStyle = resolveClassStyle(props, () => EMPTY_STATE);
  const userProps = omit(props, "as", "class", "style", "attrs");
  let merged = mergeRootProps(internal, userClassStyle);
  merged = mergeRootProps(merged, userProps);
  const Tag = dynamic(() => props.as ?? "div");
  return <Tag {...merged} ref={composeRefs(userRef(props))} />;
}
//# sourceMappingURL=combobox-label.jsx.map
