{"version":3,"file":"elevation.mjs","names":["computed","isRef","propsFactory","makeElevationProps","elevation","type","Number","String","validator","v","value","parseInt","isNaN","useElevation","props","elevationClasses","classes","push","concat"],"sources":["../../src/composables/elevation.ts"],"sourcesContent":["// Utilities\nimport { computed, isRef } from 'vue'\nimport { propsFactory } from '@/utils'\n\n// Types\nimport type { Ref } from 'vue'\nexport interface ElevationProps {\n  elevation?: number | string | null\n}\n\n// Composables\nexport const makeElevationProps = propsFactory(\n  {\n    elevation: {\n      type: [Number, String],\n      validator(v: any) {\n        const value = parseInt(v)\n\n        return (\n          !isNaN(value) &&\n          value >= 0 &&\n          // Material Design has a maximum elevation of 24\n          // https://material.io/design/environment/elevation.html#default-elevations\n          value <= 24\n        )\n      },\n    },\n  },\n  'elevation'\n)\n\ntype ElevationData = {\n  elevationClasses: Ref<string[]>\n}\n\nexport function useElevation(\n  props: ElevationProps | Ref<number | string | undefined>\n): ElevationData {\n  const elevationClasses = computed(() => {\n    const elevation = isRef(props) ? props.value : props.elevation\n    const classes: string[] = []\n\n    if (elevation == null) return classes\n\n    classes.push(`elevation-${elevation}`)\n\n    return classes\n  })\n\n  return { elevationClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,YAAY,8BAErB;AAMA;AACA,OAAO,IAAMC,kBAAkB,GAAGD,YAAY,CAC5C;EACEE,SAAS,EAAE;IACTC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,SAAS,WAAAA,UAACC,CAAM,EAAE;MAChB,IAAMC,KAAK,GAAGC,QAAQ,CAACF,CAAC,CAAC;MAEzB,OACE,CAACG,KAAK,CAACF,KAAK,CAAC,IACbA,KAAK,IAAI,CAAC;MACV;MACA;MACAA,KAAK,IAAI,EAAE;IAEf;EACF;AACF,CAAC,EACD,WACF,CAAC;AAMD,OAAO,SAASG,YAAYA,CAC1BC,KAAwD,EACzC;EACf,IAAMC,gBAAgB,GAAGf,QAAQ,CAAC,YAAM;IACtC,IAAMI,SAAS,GAAGH,KAAK,CAACa,KAAK,CAAC,GAAGA,KAAK,CAACJ,KAAK,GAAGI,KAAK,CAACV,SAAS;IAC9D,IAAMY,OAAiB,GAAG,EAAE;IAE5B,IAAIZ,SAAS,IAAI,IAAI,EAAE,OAAOY,OAAO;IAErCA,OAAO,CAACC,IAAI,cAAAC,MAAA,CAAcd,SAAS,CAAE,CAAC;IAEtC,OAAOY,OAAO;EAChB,CAAC,CAAC;EAEF,OAAO;IAAED,gBAAgB,EAAhBA;EAAiB,CAAC;AAC7B"}