////
/// @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

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

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


/* 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/popup.scss";


/* 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;
	
}

 


