{"version":3,"file":"useFormCheck-Bcx8Ea7M.mjs","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'\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':\n        resolvedItems.plain === false &&\n        resolvedItems.button === false &&\n        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 &&\n        resolvedItems.size !== 'md' &&\n        resolvedItems.button === false,\n    }\n  })\n\ninterface InputClassesItemsInput {\n  plain?: boolean\n  button?: boolean\n  state?: boolean | null\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':\n        resolvedItems.value.plain === false && resolvedItems.value.button === false,\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 === false && resolvedItems.button === false,\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?: boolean | null\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"],"names":[],"mappings":";;;AAiBA,MAAM,aAAa,CAAC,UAClB,SAAS,MAAM;AACP,QAAA,gBAAgB,QAAQ,KAAK;AAC5B,SAAA;AAAA,IACL,cACE,cAAc,UAAU,SACxB,cAAc,WAAW,SACzB,cAAc;AAAA,IAChB,sBAAsB,cAAc,YAAY;AAAA,IAChD,qBAAqB,cAAc,WAAW;AAAA,IAC9C,eAAe,cAAc,WAAW;AAAA,IACxC,CAAC,gBAAgB,cAAc,IAAI,EAAE,GACnC,cAAc,SAAS,UACvB,cAAc,SAAS,QACvB,cAAc,WAAW;AAAA,EAAA;AAE/B,CAAC;AAQG,MAAA,kBAAkB,CAAC,UAAoD;AAC3E,QAAM,gBAAgB,SAAS,MAAM,KAAK,CAAC;AAE3C,QAAM,aAAa,cAAc,MAAM,cAAc,MAAM,SAAS,IAAI;AAExE,SAAO,SAAS,MAAM;AAAA,IACpB,WAAW;AAAA,IACX;AAAA,MACE,oBACE,cAAc,MAAM,UAAU,SAAS,cAAc,MAAM,WAAW;AAAA,MACxE,aAAa,cAAc,MAAM,WAAW;AAAA,IAC9C;AAAA,EAAA,CACD;AACH;AASA,MAAM,kBAAkB,CAAC,UACvB,SAAS,MAAM;AACP,QAAA,gBAAgB,QAAQ,KAAK;AAC5B,SAAA;AAAA,IACL,oBAAoB,cAAc,UAAU,SAAS,cAAc,WAAW;AAAA,IAC9E,OAAO,cAAc,WAAW;AAAA,IAChC,CAAC,OAAO,cAAc,aAAa,EAAE,GACnC,cAAc,WAAW,QACzB,cAAc,kBAAkB,UAChC,cAAc,kBAAkB;AAAA,IAClC,CAAC,OAAO,cAAc,IAAI,EAAE,GAC1B,cAAc,UAAU,cAAc,QAAQ,cAAc,SAAS;AAAA,EAAA;AAE3E,CAAC;AAQG,MAAA,eAAe,CAAC,UAAiD;AACrE,QAAM,gBAAgB,SAAS,MAAM,KAAK,CAAC;AAC3C,QAAM,sBAAsB;AAAA,IAC1B,MAAM,cAAc,MAAM;AAAA,IAC1B,MAAM,cAAc,MAAM;AAAA,EAAA;AAE5B,SAAO,SAAS,OAAO;AAAA,IACrB,gBAAgB,oBAAoB;AAAA,IACpC,iBAAiB,cAAc,MAAM,aAAa,OAAO,OAAO;AAAA,EAChE,EAAA;AACJ;AASA,MAAM,kBAAkB,CAAC,UACvB,SAAS,MAAM;AACP,QAAA,gBAAgB,QAAQ,KAAK;AAC5B,SAAA;AAAA,IACL,iBAAiB,cAAc,cAAc;AAAA,IAC7C,aAAa,cAAc,YAAY,QAAQ,cAAc,YAAY;AAAA,IACzE,sBAAsB,cAAc,YAAY,QAAQ,cAAc,YAAY;AAAA,IAClF,CAAC,aAAa,cAAc,IAAI,EAAE,GAAG,cAAc,SAAS;AAAA,EAAA;AAEhE,CAAC;"}