import { dynamic } from "@solidjs/web";
import { omit } from "solid-js";
import { mergeRootProps } from "../../internals/merge-root-props.jsx";
import { resolveClassStyle } from "../../internals/resolve-class-style.jsx";
import { AvatarRootContext } from "../avatar-root-context.jsx";
import { createAvatar } from "../create-avatar.jsx";
/**
 * Displays a user's profile picture, initials, or fallback icon.
 * Renders a `<span>` element (or `as` override).
 *
 * Base UI React maps `imageLoadingStatus` to `null` so no `data-*` attribute
 * is emitted for it on the root.
 */
export function AvatarRoot(props) {
  // Compose the headless primitive — it owns the imageLoadingStatus signal
  // that `<Avatar.Image>` writes into from its load/error handlers.
  const c = createAvatar();
  const contextValue = {
    imageLoadingStatus: c.imageLoadingStatus,
    setImageLoadingStatus: c.setImageLoadingStatus
  };
  const userStyling = resolveClassStyle(props, () => ({
    imageLoadingStatus: c.imageLoadingStatus()
  }));
  const userHtmlProps = omit(props, "class", "style", "attrs", "as");
  const styledUserProps = mergeRootProps(userStyling, userHtmlProps);
  const merged = mergeRootProps({}, styledUserProps);
  const Tag = dynamic(() => props.as ?? "span");
  return <AvatarRootContext value={contextValue}>
			<Tag {...merged} />
		</AvatarRootContext>;
}
//# sourceMappingURL=avatar-root.jsx.map
