{"version":3,"names":["dynamic","omit","untrack","useFieldRootContext","fieldStateAttrs","useLabel","mergeRootProps","resolveClassStyle","FieldLabel","props","field","label","id","undefined","userStyling","state","userHtmlProps","internalProps","for","controlId","data-disabled","disabled","styledUserProps","merged","Tag","as"],"sources":["field-label.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { omit, untrack } from \"solid-js\";\nimport {\n\ttype FieldRootState,\n\tuseFieldRootContext,\n} from \"../../internals/field-context.ts\";\nimport { fieldStateAttrs } from \"../../internals/field-state-attrs.ts\";\nimport { useLabel } from \"../../internals/labelable-provider/use-label.ts\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\n\nexport interface FieldLabelState extends FieldRootState {}\n\nexport interface FieldLabelProps\n\textends BaseUIComponentProps<\"label\", FieldLabelState> {\n\t/** Tag/component to render. Defaults to `\"label\"`. */\n\tas?: ValidComponent;\n}\n\n/**\n * An accessible label automatically associated with the field control.\n * Renders a `<label>` element (or `as` override).\n */\nexport function FieldLabel(props: FieldLabelProps): JSX.Element {\n\tconst field = useFieldRootContext();\n\n\tconst label = useLabel({\n\t\tid: untrack(() => (typeof props.id === \"string\" ? props.id : undefined)),\n\t});\n\n\tconst userStyling = resolveClassStyle(props, () => field.state());\n\n\tconst userHtmlProps = omit(\n\t\tprops,\n\t\t\"class\",\n\t\t\"style\",\n\t\t\"attrs\",\n\t\t\"as\",\n\t\t\"id\",\n\t) as Record<string, unknown>;\n\n\tconst internalProps = mergeRootProps(fieldStateAttrs(field.state), {\n\t\tid: label.id,\n\t\tget for() {\n\t\t\tconst controlId = label.controlId();\n\t\t\tif (typeof controlId === \"string\") return controlId;\n\t\t\treturn \"\";\n\t\t},\n\t\tget \"data-disabled\"(): \"\" | undefined {\n\t\t\treturn field.state().disabled ? \"\" : undefined;\n\t\t},\n\t});\n\n\tconst styledUserProps = mergeRootProps(userStyling, userHtmlProps);\n\n\tconst merged = mergeRootProps(internalProps, styledUserProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"label\");\n\treturn <Tag {...merged} />;\n}\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,cAAc;AACtC,SAASC,IAAI,EAAEC,OAAO,QAAQ,UAAU;AACxC,SAECC,mBAAmB,QACb,kCAAkC;AACzC,SAASC,eAAe,QAAQ,sCAAsC;AACtE,SAASC,QAAQ,QAAQ,iDAAiD;AAC1E,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,iBAAiB,QAAQ,qCAAqC;AAWvE;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAe;EAC/D,MAAMC,KAAK,GAAGP,mBAAmB,CAAC,CAAC;EAEnC,MAAMQ,KAAK,GAAGN,QAAQ,CAAC;IACtBO,EAAE,EAAEV,OAAO,CAAC,MAAO,OAAOO,KAAK,CAACG,EAAE,KAAK,QAAQ,GAAGH,KAAK,CAACG,EAAE,GAAGC,SAAU;EACxE,CAAC,CAAC;EAEF,MAAMC,WAAW,GAAGP,iBAAiB,CAACE,KAAK,EAAE,MAAMC,KAAK,CAACK,KAAK,CAAC,CAAC,CAAC;EAEjE,MAAMC,aAAa,GAAGf,IAAI,CACzBQ,KAAK,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,IAAI,EACJ,IACD,CAA4B;EAE5B,MAAMQ,aAAa,GAAGX,cAAc,CAACF,eAAe,CAACM,KAAK,CAACK,KAAK,CAAC,EAAE;IAClEH,EAAE,EAAED,KAAK,CAACC,EAAE;IACZ,IAAIM,GAAGA,CAAA,EAAG;MACT,MAAMC,SAAS,GAAGR,KAAK,CAACQ,SAAS,CAAC,CAAC;MACnC,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE,OAAOA,SAAS;MACnD,OAAO,EAAE;IACV,CAAC;IACD,IAAI,eAAeC,CAAA,EAAmB;MACrC,OAAOV,KAAK,CAACK,KAAK,CAAC,CAAC,CAACM,QAAQ,GAAG,EAAE,GAAGR,SAAS;IAC/C;EACD,CAAC,CAAC;EAEF,MAAMS,eAAe,GAAGhB,cAAc,CAACQ,WAAW,EAAEE,aAAa,CAAC;EAElE,MAAMO,MAAM,GAAGjB,cAAc,CAACW,aAAa,EAAEK,eAAe,CAAC;EAE7D,MAAME,GAAG,GAAGxB,OAAO,CAAC,MAAMS,KAAK,CAACgB,EAAE,IAAI,OAAO,CAAC;EAC9C,OAAO,CAAC,GAAG,CAAC,IAAIF,MAAM,CAAC,GAAG;AAC3B","ignoreList":[]}