{"version":3,"file":"useFormCheck-CJvIDxcO.mjs","names":[],"sources":["../src/composables/useFormCheck.ts"],"sourcesContent":["import type {AriaInvalid} from '../types/AriaInvalid'\nimport {computed, type MaybeRefOrGetter, readonly, toRef, toValue} from 'vue'\nimport {useAriaInvalid} from './useAriaInvalid'\nimport {useStateClass} from './useStateClass'\nimport type {Size} from '../types/Size'\nimport type {ButtonVariant} from '../types/ColorTypes'\nimport type {ValidationState} from '../types/CommonTypes'\n\ninterface ClassesItemsInput {\n  plain?: boolean\n  button?: boolean\n  inline?: boolean\n  reverse?: boolean\n  switch?: boolean\n  size?: Size\n  hasDefaultSlot?: boolean\n}\n\nconst getClasses = (items: MaybeRefOrGetter<ClassesItemsInput>) =>\n  computed(() => {\n    const resolvedItems = toValue(items)\n    return {\n      'form-check': !resolvedItems.plain && !resolvedItems.button && resolvedItems.hasDefaultSlot,\n      'form-check-reverse': resolvedItems.reverse === true,\n      'form-check-inline': resolvedItems.inline === true,\n      'form-switch': resolvedItems.switch === true,\n      [`form-control-${resolvedItems.size}`]:\n        resolvedItems.size !== undefined && resolvedItems.size !== 'md' && !resolvedItems.button,\n    }\n  })\n\ninterface InputClassesItemsInput {\n  plain?: boolean\n  button?: boolean\n  state?: ValidationState\n}\n\nconst getInputClasses = (items: MaybeRefOrGetter<InputClassesItemsInput>) => {\n  const resolvedItems = readonly(toRef(items))\n\n  const stateClass = useStateClass(() => resolvedItems.value.state ?? null)\n\n  return computed(() => [\n    stateClass.value,\n    {\n      'form-check-input': !resolvedItems.value.plain && !resolvedItems.value.button,\n      'btn-check': resolvedItems.value.button === true,\n    },\n  ])\n}\n\ninterface LabelClasesItemsInput {\n  plain?: boolean\n  button?: boolean\n  buttonVariant?: ButtonVariant | null\n  size?: Size\n}\n\nconst getLabelClasses = (items: MaybeRefOrGetter<LabelClasesItemsInput>) =>\n  computed(() => {\n    const resolvedItems = toValue(items)\n    return {\n      'form-check-label': !resolvedItems.plain && !resolvedItems.button,\n      'btn': resolvedItems.button === true,\n      [`btn-${resolvedItems.buttonVariant}`]:\n        resolvedItems.button === true &&\n        resolvedItems.buttonVariant !== undefined &&\n        resolvedItems.buttonVariant !== null,\n      [`btn-${resolvedItems.size}`]:\n        resolvedItems.button && resolvedItems.size && resolvedItems.size !== 'md',\n    }\n  })\n\ninterface GroupAttrItemsInput {\n  required?: boolean\n  ariaInvalid?: AriaInvalid\n  state?: ValidationState\n}\n\nconst getGroupAttr = (items: MaybeRefOrGetter<GroupAttrItemsInput>) => {\n  const resolvedItems = readonly(toRef(items))\n  const computedAriaInvalid = useAriaInvalid(\n    () => resolvedItems.value.ariaInvalid,\n    () => resolvedItems.value.state\n  )\n  return computed(() => ({\n    'aria-invalid': computedAriaInvalid.value as Exclude<AriaInvalid, ''> | undefined,\n    'aria-required': resolvedItems.value.required === true ? true : undefined,\n  }))\n}\n\ninterface GroupClassesItemsInput {\n  validated?: boolean\n  buttons?: boolean\n  stacked?: boolean\n  size?: Size\n}\n\nconst getGroupClasses = (items: MaybeRefOrGetter<GroupClassesItemsInput>) =>\n  computed(() => {\n    const resolvedItems = toValue(items)\n    return {\n      'was-validated': resolvedItems.validated === true,\n      'btn-group': resolvedItems.buttons === true && resolvedItems.stacked === false,\n      'btn-group-vertical': resolvedItems.stacked === true && resolvedItems.buttons === true,\n      [`btn-group-${resolvedItems.size}`]: resolvedItems.size !== undefined,\n    }\n  })\n\nexport {getClasses, getInputClasses, getLabelClasses, getGroupAttr, getGroupClasses}\n"],"mappings":";;;;AAkBA,IAAM,cAAc,UAClB,eAAe;CACb,MAAM,gBAAgB,QAAQ,MAAM;AACpC,QAAO;EACL,cAAc,CAAC,cAAc,SAAS,CAAC,cAAc,UAAU,cAAc;EAC7E,sBAAsB,cAAc,YAAY;EAChD,qBAAqB,cAAc,WAAW;EAC9C,eAAe,cAAc,WAAW;GACvC,gBAAgB,cAAc,SAC7B,cAAc,SAAS,KAAA,KAAa,cAAc,SAAS,QAAQ,CAAC,cAAc;EACrF;EACD;AAQJ,IAAM,mBAAmB,UAAoD;CAC3E,MAAM,gBAAgB,SAAS,MAAM,MAAM,CAAC;CAE5C,MAAM,aAAa,oBAAoB,cAAc,MAAM,SAAS,KAAK;AAEzE,QAAO,eAAe,CACpB,WAAW,OACX;EACE,oBAAoB,CAAC,cAAc,MAAM,SAAS,CAAC,cAAc,MAAM;EACvE,aAAa,cAAc,MAAM,WAAW;EAC7C,CACF,CAAC;;AAUJ,IAAM,mBAAmB,UACvB,eAAe;CACb,MAAM,gBAAgB,QAAQ,MAAM;AACpC,QAAO;EACL,oBAAoB,CAAC,cAAc,SAAS,CAAC,cAAc;EAC3D,OAAO,cAAc,WAAW;GAC/B,OAAO,cAAc,kBACpB,cAAc,WAAW,QACzB,cAAc,kBAAkB,KAAA,KAChC,cAAc,kBAAkB;GACjC,OAAO,cAAc,SACpB,cAAc,UAAU,cAAc,QAAQ,cAAc,SAAS;EACxE;EACD;AAQJ,IAAM,gBAAgB,UAAiD;CACrE,MAAM,gBAAgB,SAAS,MAAM,MAAM,CAAC;CAC5C,MAAM,sBAAsB,qBACpB,cAAc,MAAM,mBACpB,cAAc,MAAM,MAC3B;AACD,QAAO,gBAAgB;EACrB,gBAAgB,oBAAoB;EACpC,iBAAiB,cAAc,MAAM,aAAa,OAAO,OAAO,KAAA;EACjE,EAAE;;AAUL,IAAM,mBAAmB,UACvB,eAAe;CACb,MAAM,gBAAgB,QAAQ,MAAM;AACpC,QAAO;EACL,iBAAiB,cAAc,cAAc;EAC7C,aAAa,cAAc,YAAY,QAAQ,cAAc,YAAY;EACzE,sBAAsB,cAAc,YAAY,QAAQ,cAAc,YAAY;GACjF,aAAa,cAAc,SAAS,cAAc,SAAS,KAAA;EAC7D;EACD"}