/* ------------------------------------------------------------------------ *\
   mixins.util.position
\* ------------------------------------------------------------------------ */

/**
 * [pos description]
 * @param  {[type]} type [description]
 * @param  {[type]} args [description]
 * @return {[type]}      [description]
 */
-pos(type, args)
  i = 0
  position: unquote(type)
  for j in (1..4)
    if length(args) > i
      {args[i]}: args[i + 1] is a "unit" ? args[i += 1] : 0
    i += 1


/**
 * [position description]
 * @return {[type]} [description]
 */
u-position()
  position: arguments
  z-index: 1 unless @z-index


/*
 * Position utility.
 *
 * Synopsis:
 *
 *   fixed: <pos> [n] <pos> [n]
 *
 * Examples:
 *
 *     fixed: top left
 *     fixed: top 5px left
 *     fixed: top left 5px
 *     fixed: top 5px left 5px
 *
 */

u-position--fixed()
  -pos("fixed", arguments)

/*
 * Position utility.
 *
 * Synopsis:
 *
 *   absolute: <pos> [n] <pos> [n]
 *
 * Examples:
 *
 *     absolute: top left
 *     absolute: top 5px left
 *     absolute: top left 5px
 *     absolute: top 5px left 5px
 *
 */

u-position--absolute()
  -pos("absolute", arguments)

/*
 * Position utility.
 *
 * Synopsis:
 *
 *   relative: <pos> [n] <pos> [n]
 *
 * Examples:
 *
 *     relative: top left
 *     relative: top 5px left
 *     relative: top left 5px
 *     relative: top 5px left 5px
 *
 */

u-position--relative()
  -pos("relative", arguments)
