/**
 * Stringification helpers for combobox item values. Subset of Base UI
 * React's `packages/react/src/internals/resolveValueLabel.tsx` — only the
 * string-returning helpers are ported (the JSX-returning
 * `resolveMultipleLabels` / `resolveSelectedLabel` are not needed for the
 * Solid single-select port).
 */

export function isGroupedItems(items) {
  return items != null && items.length > 0 && typeof items[0] === "object" && items[0] != null && "items" in items[0];
}
function serializeValue(value) {
  if (value == null) return "";
  if (typeof value === "string") return value;
  return String(value);
}
export function stringifyAsLabel(item, itemToStringLabel) {
  if (itemToStringLabel && item != null) {
    return itemToStringLabel(item) ?? "";
  }
  if (item && typeof item === "object") {
    const obj = item;
    if ("label" in obj && obj.label != null) {
      return String(obj.label);
    }
    if ("value" in obj) {
      return String(obj.value);
    }
  }
  return serializeValue(item);
}
export function stringifyAsValue(item, itemToStringValue) {
  if (itemToStringValue && item != null) {
    return itemToStringValue(item) ?? "";
  }
  if (item && typeof item === "object" && "value" in item && "label" in item) {
    return serializeValue(item.value);
  }
  return serializeValue(item);
}
//# sourceMappingURL=resolve-value-label.jsx.map
