/* This file is automatically managed and will be overwritten from time to time. */
/* Do not manually edit this file. */

/* Import and include this mixin into your project theme to include the addon themes */
////
/// @group root/addons
////

///Include addons here.
@mixin addons {
	}
