{"version":3,"names":["isGroupedItems","items","length","serializeValue","value","String","stringifyAsLabel","item","itemToStringLabel","obj","label","stringifyAsValue","itemToStringValue"],"sources":["resolve-value-label.ts"],"sourcesContent":["/**\n * Stringification helpers for combobox item values. Subset of Base UI\n * React's `packages/react/src/internals/resolveValueLabel.tsx` — only the\n * string-returning helpers are ported (the JSX-returning\n * `resolveMultipleLabels` / `resolveSelectedLabel` are not needed for the\n * Solid single-select port).\n */\n\nexport interface Group<Item = unknown> {\n\t[key: string]: unknown;\n\titems: ReadonlyArray<Item>;\n}\n\nexport function isGroupedItems(\n\titems: ReadonlyArray<unknown> | undefined,\n): items is ReadonlyArray<Group<unknown>> {\n\treturn (\n\t\titems != null &&\n\t\titems.length > 0 &&\n\t\ttypeof items[0] === \"object\" &&\n\t\titems[0] != null &&\n\t\t\"items\" in (items[0] as object)\n\t);\n}\n\nfunction serializeValue(value: unknown): string {\n\tif (value == null) return \"\";\n\tif (typeof value === \"string\") return value;\n\treturn String(value);\n}\n\nexport function stringifyAsLabel(\n\titem: unknown,\n\titemToStringLabel?: (item: unknown) => string,\n): string {\n\tif (itemToStringLabel && item != null) {\n\t\treturn itemToStringLabel(item) ?? \"\";\n\t}\n\tif (item && typeof item === \"object\") {\n\t\tconst obj = item as Record<string, unknown>;\n\t\tif (\"label\" in obj && obj.label != null) {\n\t\t\treturn String(obj.label);\n\t\t}\n\t\tif (\"value\" in obj) {\n\t\t\treturn String(obj.value);\n\t\t}\n\t}\n\treturn serializeValue(item);\n}\n\nexport function stringifyAsValue(\n\titem: unknown,\n\titemToStringValue?: (item: unknown) => string,\n): string {\n\tif (itemToStringValue && item != null) {\n\t\treturn itemToStringValue(item) ?? \"\";\n\t}\n\tif (\n\t\titem &&\n\t\ttypeof item === \"object\" &&\n\t\t\"value\" in (item as object) &&\n\t\t\"label\" in (item as object)\n\t) {\n\t\treturn serializeValue((item as { value: unknown }).value);\n\t}\n\treturn serializeValue(item);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,OAAO,SAASA,cAAcA,CAC7BC,KAAyC,EACA;EACzC,OACCA,KAAK,IAAI,IAAI,IACbA,KAAK,CAACC,MAAM,GAAG,CAAC,IAChB,OAAOD,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAC5BA,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,IAChB,OAAO,IAAKA,KAAK,CAAC,CAAC,CAAY;AAEjC;AAEA,SAASE,cAAcA,CAACC,KAAc,EAAU;EAC/C,IAAIA,KAAK,IAAI,IAAI,EAAE,OAAO,EAAE;EAC5B,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAOA,KAAK;EAC3C,OAAOC,MAAM,CAACD,KAAK,CAAC;AACrB;AAEA,OAAO,SAASE,gBAAgBA,CAC/BC,IAAa,EACbC,iBAA6C,EACpC;EACT,IAAIA,iBAAiB,IAAID,IAAI,IAAI,IAAI,EAAE;IACtC,OAAOC,iBAAiB,CAACD,IAAI,CAAC,IAAI,EAAE;EACrC;EACA,IAAIA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACrC,MAAME,GAAG,GAAGF,IAA+B;IAC3C,IAAI,OAAO,IAAIE,GAAG,IAAIA,GAAG,CAACC,KAAK,IAAI,IAAI,EAAE;MACxC,OAAOL,MAAM,CAACI,GAAG,CAACC,KAAK,CAAC;IACzB;IACA,IAAI,OAAO,IAAID,GAAG,EAAE;MACnB,OAAOJ,MAAM,CAACI,GAAG,CAACL,KAAK,CAAC;IACzB;EACD;EACA,OAAOD,cAAc,CAACI,IAAI,CAAC;AAC5B;AAEA,OAAO,SAASI,gBAAgBA,CAC/BJ,IAAa,EACbK,iBAA6C,EACpC;EACT,IAAIA,iBAAiB,IAAIL,IAAI,IAAI,IAAI,EAAE;IACtC,OAAOK,iBAAiB,CAACL,IAAI,CAAC,IAAI,EAAE;EACrC;EACA,IACCA,IAAI,IACJ,OAAOA,IAAI,KAAK,QAAQ,IACxB,OAAO,IAAKA,IAAe,IAC3B,OAAO,IAAKA,IAAe,EAC1B;IACD,OAAOJ,cAAc,CAAEI,IAAI,CAAwBH,KAAK,CAAC;EAC1D;EACA,OAAOD,cAAc,CAACI,IAAI,CAAC;AAC5B","ignoreList":[]}