////
/// @group root/osbp
////

@import "variables-osbp.scss"; 	/* settings specific to this theme */
@import "variables-common.scss";    /* settings used by themes of this set, 
	    /!\ theme-specific settings overwrite valo/shared settings */
@import "../valo/valo.scss";

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)

@import "external/reset.scss"
*/
@import "external/dragdrop.scss";
@import "external/charts.scss";	//os-charts

/* style definitions derived from vaadin addons 
*/
@import "addons/designer.scss";			//os-designer
@import "addons/absolutelayout.scss";	//os-absolute-layout


/* variables used in components related to POS/cash register 
*/
@import "common/cash-variables.scss";   //POS

/* style definitions under /layout reference these mixins. 
*  components are not included directly in @mixin <mainStyleName>
*/
@import "components/color-palette.scss";
@import "components/textfield.scss";
@import "components/button.scss";
@import "components/typeface.scss";
@import "components/focus.scss";
@import "components/checkbox.scss";
@import "components/bits.scss";
@import "components/group.scss";
@import "components/popup.scss";
@import "addons/suggesttext.scss";		//os-suggesttext



/* scss under /layout have to be encased in a @mixin to be used below 
*  @mixin <mainStyleName>
*  else, the prefix .mainStyleName will not be included in the resulting 
*  css file. 
*  also, valo has to be included before adding custom styles.
*/ 
@import "layout/login.scss";	//os-login, os-login-basic, os-login-bgimage
@import "layout/pageframe.scss";		//os-pageframe
@import "layout/header.scss";	//os-heaeder
@import "layout/dialog.scss";    //os-dialog
@import "layout/table.scss";	//os-table
@import "layout/tabsheet.scss"; //os-tabsheet
@import "layout/user.scss";		//os-user, os-user-accordion
@import "layout/responsive.scss";	//os-responsive
@import "layout/sidebar.scss";  //os-sidebar, os-sidebar-table-variant
@import "layout/iconfont.scss"; 	//os-icons
@import "layout/gridview.scss"; 	//os-gridview
@import "layout/oconfigdialog.scss"; 	//os-configdialog
@import "layout/gridutil.scss";		//os-grid-util (displays certain elements within grids)
@import "layout/cash-register.scss"; 	//os-cash-register

@mixin osbp {
	@include valo;
	
	//@include os-base;
	@include os-pageframe;
	@include os-header;
	@include os-login;
	@include os-table;
	@include os-tabsheet;
	@include os-dialog;
	@include os-user;
	@include os-user-accordion;
	//@include os-birt-report;
	@include os-icons;
	//@include os-sidebar;
	@include os-sidebar-table-variant;
	@include os-responsive;
	@include os-gridview;
	@include os-grid-util;
	 
	@include os-charts; 
	@include os-configdialog;
	@include os-suggesttext; /* before cash-register */
	@include os-cash-register;
	//@include os-ignore-dimensions;
	
	
	//bits
	@include os-progress-login;
	@include os-popup-notification;
		
	//external
	@include ex-drag-drop-layout;
	
	//addons
	@include os-absolutelayout;
	@include os-designer;
	
}

 


