{"version":3,"file":"variant.mjs","names":["useColor","computed","unref","getCurrentInstanceName","propsFactory","allowedVariants","makeVariantProps","color","type","String","variant","validator","v","includes","useVariant","props","name","arguments","length","undefined","variantClasses","_unref","concat","_useColor","_unref2","_defineProperty","colorClasses","colorStyles"],"sources":["../../src/composables/variant.tsx"],"sourcesContent":["// Composables\nimport { useColor } from '@/composables/colors'\n\n// Utilities\nimport { computed, unref } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/utils'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MaybeRef } from '@/utils'\n\nexport const allowedVariants = ['default', 'outline', 'text', 'plain'] as const\n\nexport type Variant = (typeof allowedVariants)[number]\n\nexport interface VariantProps {\n  color?: string\n  variant: Variant\n}\n\n// export function genOverlays(isClickable: boolean, name: string) {\n//   return (\n//     <>\n//       {isClickable && <span key=\"overlay\" class={`${name}__overlay`} />}\n//\n//       <span key=\"underlay\" class={`${name}__underlay`} />\n//     </>\n//   )\n// }\n\nexport const makeVariantProps = propsFactory(\n  {\n    color: { type: String, default: 'white' },\n    variant: {\n      type: String as PropType<Variant>,\n      default: 'default',\n      validator: (v: any) => allowedVariants.includes(v),\n    },\n  },\n  'variant'\n)\n\nexport function useVariant(\n  props: MaybeRef<VariantProps>,\n  name = getCurrentInstanceName()\n) {\n  const variantClasses = computed(() => {\n    const { variant } = unref(props)\n    return `${name}--variant-${variant}`\n  })\n\n  const { colorClasses, colorStyles } = useColor(\n    computed(() => {\n      const { variant, color } = unref(props)\n      return {\n        [['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color,\n      }\n    })\n  )\n\n  return { colorClasses, colorStyles, variantClasses }\n}\n"],"mappings":";;;;AAAA;AAAA,SACSA,QAAQ,wBAEjB;AACA,SAASC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,sBAAsB,EAAEC,YAAY,8BAE7C;AAIA,OAAO,IAAMC,eAAe,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAU;AAS/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAO,IAAMC,gBAAgB,GAAGF,YAAY,CAC1C;EACEG,KAAK,EAAE;IAAEC,IAAI,EAAEC,MAAM;IAAE,WAAS;EAAQ,CAAC;EACzCC,OAAO,EAAE;IACPF,IAAI,EAAEC,MAA2B;IACjC,WAAS,SAAS;IAClBE,SAAS,EAAE,SAAAA,UAACC,CAAM;MAAA,OAAKP,eAAe,CAACQ,QAAQ,CAACD,CAAC,CAAC;IAAA;EACpD;AACF,CAAC,EACD,SACF,CAAC;AAED,OAAO,SAASE,UAAUA,CACxBC,KAA6B,EAE7B;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGd,sBAAsB,CAAC,CAAC;EAE/B,IAAMiB,cAAc,GAAGnB,QAAQ,CAAC,YAAM;IACpC,IAAAoB,MAAA,GAAoBnB,KAAK,CAACa,KAAK,CAAC;MAAxBL,OAAO,GAAAW,MAAA,CAAPX,OAAO;IACf,UAAAY,MAAA,CAAUN,IAAI,gBAAAM,MAAA,CAAaZ,OAAO;EACpC,CAAC,CAAC;EAEF,IAAAa,SAAA,GAAsCvB,QAAQ,CAC5CC,QAAQ,CAAC,YAAM;MACb,IAAAuB,OAAA,GAA2BtB,KAAK,CAACa,KAAK,CAAC;QAA/BL,OAAO,GAAAc,OAAA,CAAPd,OAAO;QAAEH,KAAK,GAAAiB,OAAA,CAALjB,KAAK;MACtB,OAAAkB,eAAA,KACG,CAAC,UAAU,EAAE,MAAM,CAAC,CAACZ,QAAQ,CAACH,OAAO,CAAC,GAAG,YAAY,GAAG,MAAM,EAAGH,KAAK;IAE3E,CAAC,CACH,CAAC;IAPOmB,YAAY,GAAAH,SAAA,CAAZG,YAAY;IAAEC,WAAW,GAAAJ,SAAA,CAAXI,WAAW;EASjC,OAAO;IAAED,YAAY,EAAZA,YAAY;IAAEC,WAAW,EAAXA,WAAW;IAAEP,cAAc,EAAdA;EAAe,CAAC;AACtD"}