import { dynamic } from "@solidjs/web";
import { createMemo, omit } from "solid-js";
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 { useSelectRootContext } from "../select-root-context.jsx";
/**
 * `<Select.Icon>` — a decorative `<span>` that indicates the trigger opens a
 * select popup.
 */
export function SelectIcon(props) {
  const root = useSelectRootContext();
  const state = createMemo(() => ({
    open: root.open()
  }));
  const internal = {
    "aria-hidden": "true",
    children: "▼",
    // triggerOpenStateMapping: open → data-popup-open.
    get "data-popup-open"() {
      return state().open ? "" : undefined;
    }
  };
  const userClassStyle = resolveClassStyle(props, () => state());
  const userProps = omit(props, "as", "class", "style", "attrs");
  let merged = mergeRootProps(internal, userClassStyle);
  merged = mergeRootProps(merged, userProps);
  const Tag = dynamic(() => props.as ?? "span");
  return <Tag {...merged} ref={composeRefs(userRef(props))} />;
}
//# sourceMappingURL=select-icon.jsx.map
