"use strict";const s=require("vue"),g=require("./CdxLabel.cjs"),y=require("./CdxMessage.cjs"),t=require("./constants.js"),b=require("./useComputedDisabled.cjs"),I=require("./_plugin-vue_export-helper.js"),$=t.makeStringTypeValidator(t.ValidationStatusTypes),C=s.defineComponent({name:"CdxField",components:{CdxLabel:g,CdxMessage:y},props:{labelIcon:{type:[String,Object],default:""},optional:{type:Boolean,default:!1},optionalFlag:{type:String,default:""},hideLabel:{type:Boolean,default:!1},isFieldset:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},status:{type:String,default:"default",validator:$},messages:{type:Object,default:()=>({})}},setup(e,{slots:a}){const{disabled:n,status:r,isFieldset:o}=s.toRefs(e),d=b(n),i=s.computed(()=>({"cdx-field--disabled":d.value,"cdx-field--is-fieldset":o.value})),l=s.useId(),u=s.useId(),c=s.useId(),p=s.computed(()=>o.value?void 0:c);s.provide(t.FieldInputIdKey,p);const m=s.computed(()=>!o.value&&a.description?u:void 0);s.provide(t.FieldDescriptionIdKey,m),s.provide(t.DisabledKey,d),s.provide(t.FieldStatusKey,r);const f=s.computed(()=>e.status!=="default"&&e.status in e.messages?e.messages[e.status]:""),v=s.computed(()=>e.status==="default"?"notice":e.status);return{rootClasses:i,computedDisabled:d,labelId:l,descriptionId:u,inputId:c,validationMessage:f,validationMessageType:v}}}),h={class:"cdx-field__control"},S={class:"cdx-field__help-text"},F={key:0,class:"cdx-field__validation-message"};function k(e,a,n,r,o,d){const i=s.resolveComponent("cdx-label"),l=s.resolveComponent("cdx-message");return s.openBlock(),s.createBlock(s.resolveDynamicComponent(e.isFieldset?"fieldset":"div"),{class:s.normalizeClass(["cdx-field",e.rootClasses]),"aria-disabled":!e.isFieldset&&e.computedDisabled?!0:void 0,disabled:e.isFieldset&&e.computedDisabled?!0:void 0},{default:s.withCtx(()=>[s.createVNode(i,{id:e.labelId,icon:e.labelIcon,"visually-hidden":e.hideLabel,optional:e.optional,"optional-flag":e.optionalFlag,"input-id":e.inputId,"description-id":e.descriptionId,disabled:e.computedDisabled,"is-legend":e.isFieldset},s.createSlots({default:s.withCtx(()=>[s.renderSlot(e.$slots,"label")]),_:2},[e.$slots.description&&e.$slots.description().length>0?{name:"description",fn:s.withCtx(()=>[s.renderSlot(e.$slots,"description")]),key:"0"}:void 0]),1032,["id","icon","visually-hidden","optional","optional-flag","input-id","description-id","disabled","is-legend"]),s.createElementVNode("div",h,[s.renderSlot(e.$slots,"default")]),s.createElementVNode("div",S,[s.renderSlot(e.$slots,"help-text")]),!e.computedDisabled&&e.validationMessage||e.$slots[e.validationMessageType]?(s.openBlock(),s.createElementBlock("div",F,[s.createVNode(l,{type:e.validationMessageType,inline:!0},{default:s.withCtx(()=>[e.status==="warning"&&e.$slots.warning?s.renderSlot(e.$slots,"warning",{key:0}):e.status==="error"&&e.$slots.error?s.renderSlot(e.$slots,"error",{key:1}):e.status==="success"&&e.$slots.success?s.renderSlot(e.$slots,"success",{key:2}):(s.openBlock(),s.createElementBlock(s.Fragment,{key:3},[s.createTextVNode(s.toDisplayString(e.validationMessage),1)],64))]),_:3},8,["type"])])):s.createCommentVNode("v-if",!0)]),_:3},8,["class","aria-disabled","disabled"])}const D=I._export_sfc(C,[["render",k]]);module.exports=D;