{"version":3,"names":["dynamic","omit","mergeRootProps","resolveClassStyle","useMeterRootContext","MeterValue","props","context","content","value","formattedValue","child","children","undefined","userClassStyle","userProps","internalSlot","merged","Tag","as"],"sources":["meter-value.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { omit } from \"solid-js\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport { useMeterRootContext } from \"../meter-root-context.ts\";\nimport type { MeterRootState } from \"../root/meter-root.tsx\";\n\nexport interface MeterValueState extends MeterRootState {}\n\nexport type MeterValueChildren =\n\t| JSX.Element\n\t| ((formattedValue: string, value: number) => JSX.Element);\n\nexport interface MeterValueProps\n\textends Omit<BaseUIComponentProps<\"span\", MeterValueState>, \"children\"> {\n\t/** Tag/component to render. Defaults to `\"span\"`. */\n\tas?: ValidComponent;\n\tchildren?: MeterValueChildren | undefined;\n}\n\n/**\n * A text element displaying the current value. Renders a `<span>` (or `as`\n * override).\n *\n * §1 wave 2: replaces `renderElement` with a `dynamic()` element. Function-children\n * are resolved via a reactive getter on the internal slot bag.\n */\nexport function MeterValue(props: MeterValueProps): JSX.Element {\n\tconst context = useMeterRootContext();\n\n\tconst content = (): JSX.Element => {\n\t\tconst value = context.value();\n\t\tconst formattedValue = context.formattedValue();\n\t\tconst child = props.children;\n\t\tif (typeof child === \"function\") {\n\t\t\treturn child(formattedValue, value);\n\t\t}\n\t\tif (child !== undefined) return child;\n\t\treturn formattedValue || value;\n\t};\n\n\tconst userClassStyle = resolveClassStyle(props, () => ({}));\n\tconst userProps = omit(props, \"as\", \"children\", \"class\", \"style\", \"attrs\");\n\n\tconst internalSlot = {\n\t\t\"aria-hidden\": \"true\" as const,\n\t\tget children(): JSX.Element {\n\t\t\treturn content();\n\t\t},\n\t};\n\n\tlet merged = mergeRootProps(internalSlot, userClassStyle);\n\tmerged = mergeRootProps(merged, userProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"span\");\n\treturn <Tag {...merged} />;\n}\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,cAAc;AACtC,SAASC,IAAI,QAAQ,UAAU;AAC/B,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,iBAAiB,QAAQ,qCAAqC;AAEvE,SAASC,mBAAmB,QAAQ,0BAA0B;AAgB9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAe;EAC/D,MAAMC,OAAO,GAAGH,mBAAmB,CAAC,CAAC;EAErC,MAAMI,OAAO,GAAGA,CAAA,KAAmB;IAClC,MAAMC,KAAK,GAAGF,OAAO,CAACE,KAAK,CAAC,CAAC;IAC7B,MAAMC,cAAc,GAAGH,OAAO,CAACG,cAAc,CAAC,CAAC;IAC/C,MAAMC,KAAK,GAAGL,KAAK,CAACM,QAAQ;IAC5B,IAAI,OAAOD,KAAK,KAAK,UAAU,EAAE;MAChC,OAAOA,KAAK,CAACD,cAAc,EAAED,KAAK,CAAC;IACpC;IACA,IAAIE,KAAK,KAAKE,SAAS,EAAE,OAAOF,KAAK;IACrC,OAAOD,cAAc,IAAID,KAAK;EAC/B,CAAC;EAED,MAAMK,cAAc,GAAGX,iBAAiB,CAACG,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;EAC3D,MAAMS,SAAS,GAAGd,IAAI,CAACK,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;EAE1E,MAAMU,YAAY,GAAG;IACpB,aAAa,EAAE,MAAe;IAC9B,IAAIJ,QAAQA,CAAA,EAAgB;MAC3B,OAAOJ,OAAO,CAAC,CAAC;IACjB;EACD,CAAC;EAED,IAAIS,MAAM,GAAGf,cAAc,CAACc,YAAY,EAAEF,cAAc,CAAC;EACzDG,MAAM,GAAGf,cAAc,CAACe,MAAM,EAAEF,SAAS,CAAC;EAE1C,MAAMG,GAAG,GAAGlB,OAAO,CAAC,MAAMM,KAAK,CAACa,EAAE,IAAI,MAAM,CAAC;EAC7C,OAAO,CAAC,GAAG,CAAC,IAAIF,MAAM,CAAC,GAAG;AAC3B","ignoreList":[]}