{"version":3,"file":"use-checkbox-status.mjs","sources":["../../../../../../../packages/components/checkbox/src/composables/use-checkbox-status.ts"],"sourcesContent":["import { computed, inject, ref, toRaw } from 'vue'\nimport { useSize } from '@bigin/hooks'\nimport { isArray, isBoolean } from '@bigin/utils'\nimport { checkboxGroupContextKey } from '@bigin/tokens'\n\nimport type { ComponentInternalInstance } from 'vue'\nimport type { CheckboxProps } from '../checkbox'\nimport type { CheckboxModel } from '../composables'\n\nexport const useCheckboxStatus = (\n  props: CheckboxProps,\n  slots: ComponentInternalInstance['slots'],\n  { model }: Pick<CheckboxModel, 'model'>\n) => {\n  const checkboxGroup = inject(checkboxGroupContextKey, undefined)\n  const isFocused = ref(false)\n  const isChecked = computed<boolean>(() => {\n    const value = model.value\n    if (isBoolean(value)) {\n      return value\n    } else if (isArray(value)) {\n      return value.map(toRaw).includes(props.value)\n    } else if (value !== null && value !== undefined) {\n      return value === props.trueValue\n    } else {\n      return !!value\n    }\n  })\n\n  const large = checkboxGroup?.large\n  const small = checkboxGroup?.small\n  const vertical = checkboxGroup?.vertical\n\n  const checkboxButtonSize = useSize(\n    computed(\n      () =>\n        (large?.value && 'large') ||\n        (small?.value && 'small') ||\n        checkboxGroup?.size?.value\n    ),\n    {\n      prop: true,\n    }\n  )\n  const checkboxSize = useSize(\n    computed(\n      () =>\n        (large?.value && 'large') ||\n        (small?.value && 'small') ||\n        checkboxGroup?.size?.value\n    )\n  )\n\n  const hasOwnLabel = computed<boolean>(() => {\n    return !!(slots.default || props.label)\n  })\n\n  return {\n    checkboxButtonSize,\n    isChecked,\n    isFocused,\n    checkboxSize,\n    hasOwnLabel,\n    large,\n    small,\n    vertical,\n  }\n}\n\nexport type CheckboxStatus = ReturnType<typeof useCheckboxStatus>\n"],"names":[],"mappings":";;;;;;;;;AASO,MAAM,oBAAoB,CAC/B,KAAA,EACA,KACA,EAAA,EAAE,OACC,KAAA;AACH,EAAM,MAAA,aAAA,GAAgB,MAAO,CAAA,uBAAA,EAAyB,KAAS,CAAA,CAAA,CAAA;AAC/D,EAAM,MAAA,SAAA,GAAY,IAAI,KAAK,CAAA,CAAA;AAC3B,EAAM,MAAA,SAAA,GAAY,SAAkB,MAAM;AACxC,IAAA,MAAM,QAAQ,KAAM,CAAA,KAAA,CAAA;AACpB,IAAI,IAAA,SAAA,CAAU,KAAK,CAAG,EAAA;AACpB,MAAO,OAAA,KAAA,CAAA;AAAA,KACT,MAAA,IAAW,OAAQ,CAAA,KAAK,CAAG,EAAA;AACzB,MAAA,OAAO,MAAM,GAAI,CAAA,KAAK,CAAE,CAAA,QAAA,CAAS,MAAM,KAAK,CAAA,CAAA;AAAA,KACnC,MAAA,IAAA,KAAA,KAAU,IAAQ,IAAA,KAAA,KAAU,KAAW,CAAA,EAAA;AAChD,MAAA,OAAO,UAAU,KAAM,CAAA,SAAA,CAAA;AAAA,KAClB,MAAA;AACL,MAAA,OAAO,CAAC,CAAC,KAAA,CAAA;AAAA,KACX;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAM,QAAQ,aAAe,EAAA,KAAA,CAAA;AAC7B,EAAA,MAAM,QAAQ,aAAe,EAAA,KAAA,CAAA;AAC7B,EAAA,MAAM,WAAW,aAAe,EAAA,QAAA,CAAA;AAEhC,EAAA,MAAM,kBAAqB,GAAA,OAAA;AAAA,IACzB,QAAA;AAAA,MACE,MACG,OAAO,KAAS,IAAA,OAAA,IAChB,OAAO,KAAS,IAAA,OAAA,IACjB,eAAe,IAAM,EAAA,KAAA;AAAA,KACzB;AAAA,IACA;AAAA,MACE,IAAM,EAAA,IAAA;AAAA,KACR;AAAA,GACF,CAAA;AACA,EAAA,MAAM,YAAe,GAAA,OAAA;AAAA,IACnB,QAAA;AAAA,MACE,MACG,OAAO,KAAS,IAAA,OAAA,IAChB,OAAO,KAAS,IAAA,OAAA,IACjB,eAAe,IAAM,EAAA,KAAA;AAAA,KACzB;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,WAAA,GAAc,SAAkB,MAAM;AAC1C,IAAA,OAAO,CAAC,EAAE,KAAM,CAAA,OAAA,IAAW,KAAM,CAAA,KAAA,CAAA,CAAA;AAAA,GAClC,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,kBAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,GACF,CAAA;AACF;;;;"}