/**
 * `<Menu.GroupLabel>` — label element automatically associated with its
 * parent `<Menu.Group>`. Mirrors React.
 */

import { dynamic } from "@solidjs/web";
import { createRenderEffect, omit, onCleanup } from "solid-js";
import { useBaseUiId } from "../../internals/base-ui-id.jsx";
import { mergeRootProps } from "../../internals/merge-root-props.jsx";
import { resolveClassStyle } from "../../internals/resolve-class-style.jsx";
import { useMenuGroupContext } from "../group/menu-group-context.jsx";
export function MenuGroupLabel(props) {
  const group = useMenuGroupContext();
  const fallbackId = useBaseUiId();
  const resolvedId = () => typeof props.id === "string" ? props.id : fallbackId;
  createRenderEffect(() => resolvedId(), id => {
    group.setLabelId(id);
  });
  onCleanup(() => {
    group.setLabelId(undefined);
  });
  const internal = {
    role: "presentation",
    get id() {
      return resolvedId();
    }
  };
  const userClassStyle = resolveClassStyle(props, () => ({}));
  const userProps = omit(props, "as", "class", "style", "attrs", "id");
  let merged = mergeRootProps(internal, userClassStyle);
  merged = mergeRootProps(merged, userProps);
  const Tag = dynamic(() => props.as ?? "div");
  return <Tag {...merged} />;
}
//# sourceMappingURL=menu-group-label.jsx.map
