import { dynamic } from "@solidjs/web";
import { omit, untrack } from "solid-js";
import { mergeRootProps } from "../../internals/merge-root-props.jsx";
import { resolveClassStyle } from "../../internals/resolve-class-style.jsx";
import { useRegisteredLabelId } from "../../internals/use-registered-label-id.jsx";
import { useMeterRootContext } from "../meter-root-context.jsx";
/**
 * An accessible label for the meter. Renders a `<span>` (or `as` override).
 * On mount registers its id with the root so `aria-labelledby` wires up.
 */
export function MeterLabel(props) {
  const context = useMeterRootContext();
  const idOverride = untrack(() => typeof props.id === "string" ? props.id : undefined);
  const id = useRegisteredLabelId(idOverride, context.setLabelId);
  const userClassStyle = resolveClassStyle(props, () => ({}));
  const userProps = omit(props, "as", "id", "class", "style", "attrs");
  const internalSlot = {
    id,
    role: "presentation"
  };
  let merged = mergeRootProps(internalSlot, userClassStyle);
  merged = mergeRootProps(merged, userProps);
  const Tag = dynamic(() => props.as ?? "span");
  return <Tag {...merged} />;
}
//# sourceMappingURL=meter-label.jsx.map
