{"version":3,"names":["createMemo","stringifyAsLabel","useComboboxRootContext","ComboboxValue","props","root","resolved","sv","selectedValue","child","children","value","hasValue","Array","isArray","length","placeholder","itv","itemToStringLabel","map","v","join"],"sources":["combobox-value.tsx"],"sourcesContent":["import type { JSX } from \"@solidjs/web\";\nimport { createMemo } from \"solid-js\";\nimport { stringifyAsLabel } from \"../internals/resolve-value-label\";\nimport { useComboboxRootContext } from \"../root/combobox-root-context\";\n\nexport interface ComboboxValueProps<Value = unknown> {\n\t/**\n\t * Render function receiving `{ value }` (the raw selected value), or\n\t * static JSX that overrides the default stringification.\n\t */\n\tchildren?: ((args: { value: Value }) => JSX.Element) | JSX.Element;\n\t/**\n\t * Placeholder content displayed when no value is selected. Overridden\n\t * by `children` when supplied.\n\t */\n\tplaceholder?: JSX.Element;\n}\n\n/**\n * Displays the stringified selected value. When a render-function child\n * is supplied, it's called with the current selected value and may return\n * custom JSX (e.g. for badge / icon rendering).\n *\n * Doesn't render its own HTML element.\n */\nexport function ComboboxValue<Value = unknown>(\n\tprops: ComboboxValueProps<Value>,\n): JSX.Element {\n\tconst root = useComboboxRootContext();\n\n\tconst resolved = createMemo<JSX.Element>(() => {\n\t\tconst sv = root.selectedValue();\n\t\tconst child = props.children;\n\t\tif (typeof child === \"function\") {\n\t\t\t// `selectedValue()` is `unknown` at runtime; the `Value` generic is a\n\t\t\t// typed convenience for callers, so cast at this boundary.\n\t\t\treturn (child as (args: { value: Value }) => JSX.Element)({\n\t\t\t\tvalue: sv as Value,\n\t\t\t});\n\t\t}\n\t\tif (child != null) return child as JSX.Element;\n\t\t// No selected value → placeholder wins when supplied.\n\t\tconst hasValue = Array.isArray(sv) ? sv.length > 0 : sv != null;\n\t\tif (!hasValue && props.placeholder != null) {\n\t\t\treturn props.placeholder;\n\t\t}\n\t\tconst itv = root.itemToStringLabel() as\n\t\t\t| ((item: unknown) => string)\n\t\t\t| undefined;\n\t\tif (Array.isArray(sv)) {\n\t\t\treturn sv.map((v) => stringifyAsLabel(v, itv)).join(\", \") as JSX.Element;\n\t\t}\n\t\treturn stringifyAsLabel(sv, itv) as JSX.Element;\n\t});\n\n\treturn <>{resolved()}</>;\n}\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,UAAU;AACrC,SAASC,gBAAgB,QAAQ,kCAAkC;AACnE,SAASC,sBAAsB,QAAQ,+BAA+B;AAetE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAC5BC,KAAgC,EAClB;EACd,MAAMC,IAAI,GAAGH,sBAAsB,CAAC,CAAC;EAErC,MAAMI,QAAQ,GAAGN,UAAU,CAAc,MAAM;IAC9C,MAAMO,EAAE,GAAGF,IAAI,CAACG,aAAa,CAAC,CAAC;IAC/B,MAAMC,KAAK,GAAGL,KAAK,CAACM,QAAQ;IAC5B,IAAI,OAAOD,KAAK,KAAK,UAAU,EAAE;MAChC;MACA;MACA,OAAQA,KAAK,CAA6C;QACzDE,KAAK,EAAEJ;MACR,CAAC,CAAC;IACH;IACA,IAAIE,KAAK,IAAI,IAAI,EAAE,OAAOA,KAAK;IAC/B;IACA,MAAMG,QAAQ,GAAGC,KAAK,CAACC,OAAO,CAACP,EAAE,CAAC,GAAGA,EAAE,CAACQ,MAAM,GAAG,CAAC,GAAGR,EAAE,IAAI,IAAI;IAC/D,IAAI,CAACK,QAAQ,IAAIR,KAAK,CAACY,WAAW,IAAI,IAAI,EAAE;MAC3C,OAAOZ,KAAK,CAACY,WAAW;IACzB;IACA,MAAMC,GAAG,GAAGZ,IAAI,CAACa,iBAAiB,CAAC,CAEvB;IACZ,IAAIL,KAAK,CAACC,OAAO,CAACP,EAAE,CAAC,EAAE;MACtB,OAAOA,EAAE,CAACY,GAAG,CAAEC,CAAC,IAAKnB,gBAAgB,CAACmB,CAAC,EAAEH,GAAG,CAAC,CAAC,CAACI,IAAI,CAAC,IAAI,CAAC;IAC1D;IACA,OAAOpB,gBAAgB,CAACM,EAAE,EAAEU,GAAG,CAAC;EACjC,CAAC,CAAC;EAEF,OAAO,EAAE,CAACX,QAAQ,CAAC,CAAC,CAAC,GAAG;AACzB","ignoreList":[]}