/**
 * `<Dialog.Description>` — paragraph with additional info.
 */

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 { useDialogRootContext } from "../dialog-root-context.jsx";

// biome-ignore lint/complexity/noBannedTypes: matches Base UI React — description exposes no state fields.

/**
 * A paragraph with additional information about the dialog. Renders a
 * `<p>` by default.
 */
export function DialogDescription(props) {
  const root = useDialogRootContext();

  // `props.id` is an id override read once at setup; untrack it so the read
  // doesn't trip STRICT_READ_UNTRACKED (same fix as <Popover.Description>).
  const id = useRegisteredLabelId(untrack(() => props.id), root.setDescriptionId);
  const internal = {
    id
  };
  const userClassStyle = resolveClassStyle(props, () => ({}));
  const userProps = omit(props, "as", "class", "style", "attrs");
  let merged = mergeRootProps(internal, userClassStyle);
  merged = mergeRootProps(merged, userProps);
  const Tag = dynamic(() => props.as ?? "p");
  return <Tag {...merged} />;
}
//# sourceMappingURL=dialog-description.jsx.map
