├── .eslintignore ├── .eslintrc ├── .gitignore ├── .meteor ├── .finished-upgraders ├── .gitignore ├── .id ├── packages ├── platforms ├── release └── versions ├── .travis.yml ├── README.md ├── client ├── lib │ ├── base │ │ ├── global.less │ │ ├── lib │ │ │ ├── admin-lte │ │ │ │ ├── .csslintrc │ │ │ │ ├── 404_500_errors.less │ │ │ │ ├── AdminLTE-without-plugins.less │ │ │ │ ├── AdminLTE.less │ │ │ │ ├── alerts.less │ │ │ │ ├── bootstrap-social.less │ │ │ │ ├── boxes.less │ │ │ │ ├── buttons.less │ │ │ │ ├── callout.less │ │ │ │ ├── carousel.less │ │ │ │ ├── control-sidebar.less │ │ │ │ ├── core.less │ │ │ │ ├── datepicker.less │ │ │ │ ├── direct-chat.less │ │ │ │ ├── dist │ │ │ │ │ └── js │ │ │ │ │ │ └── adminlte.min.js │ │ │ │ ├── dropdown.less │ │ │ │ ├── forms.less │ │ │ │ ├── fullcalendar.less │ │ │ │ ├── header.less │ │ │ │ ├── info-box.less │ │ │ │ ├── invoice.less │ │ │ │ ├── labels.less │ │ │ │ ├── lockscreen.less │ │ │ │ ├── login_and_register.less │ │ │ │ ├── mailbox.less │ │ │ │ ├── miscellaneous.less │ │ │ │ ├── mixins.less │ │ │ │ ├── modal.less │ │ │ │ ├── navs.less │ │ │ │ ├── plugins.less │ │ │ │ ├── print.less │ │ │ │ ├── products.less │ │ │ │ ├── profile.less │ │ │ │ ├── progress-bars.less │ │ │ │ ├── select2.less │ │ │ │ ├── sidebar-mini.less │ │ │ │ ├── sidebar.less │ │ │ │ ├── skins │ │ │ │ │ ├── _all-skins.less │ │ │ │ │ ├── skin-black-light.less │ │ │ │ │ ├── skin-black.less │ │ │ │ │ ├── skin-blue-light.less │ │ │ │ │ ├── skin-blue.less │ │ │ │ │ ├── skin-green-light.less │ │ │ │ │ ├── skin-green.less │ │ │ │ │ ├── skin-purple-light.less │ │ │ │ │ ├── skin-purple.less │ │ │ │ │ ├── skin-red-light.less │ │ │ │ │ ├── skin-red.less │ │ │ │ │ ├── skin-yellow-light.less │ │ │ │ │ └── skin-yellow.less │ │ │ │ ├── small-box.less │ │ │ │ ├── social-widgets.less │ │ │ │ ├── table.less │ │ │ │ ├── timeline.less │ │ │ │ ├── treeview.less │ │ │ │ ├── users-list.less │ │ │ │ └── variables.less │ │ │ ├── bootstrap │ │ │ │ ├── alerts.import.less │ │ │ │ ├── badges.import.less │ │ │ │ ├── bootstrap.import.less │ │ │ │ ├── breadcrumbs.import.less │ │ │ │ ├── button-groups.import.less │ │ │ │ ├── buttons.import.less │ │ │ │ ├── carousel.import.less │ │ │ │ ├── close.import.less │ │ │ │ ├── code.import.less │ │ │ │ ├── component-animations.import.less │ │ │ │ ├── dropdowns.import.less │ │ │ │ ├── forms.import.less │ │ │ │ ├── glyphicons.import.less │ │ │ │ ├── grid.import.less │ │ │ │ ├── input-groups.import.less │ │ │ │ ├── jumbotron.import.less │ │ │ │ ├── labels.import.less │ │ │ │ ├── list-group.import.less │ │ │ │ ├── media.import.less │ │ │ │ ├── mixins.import.less │ │ │ │ ├── mixins │ │ │ │ │ ├── alerts.import.less │ │ │ │ │ ├── background-variant.import.less │ │ │ │ │ ├── border-radius.import.less │ │ │ │ │ ├── buttons.import.less │ │ │ │ │ ├── center-block.import.less │ │ │ │ │ ├── clearfix.import.less │ │ │ │ │ ├── forms.import.less │ │ │ │ │ ├── gradients.import.less │ │ │ │ │ ├── grid-framework.import.less │ │ │ │ │ ├── grid.import.less │ │ │ │ │ ├── hide-text.import.less │ │ │ │ │ ├── image.import.less │ │ │ │ │ ├── labels.import.less │ │ │ │ │ ├── list-group.import.less │ │ │ │ │ ├── nav-divider.import.less │ │ │ │ │ ├── nav-vertical-align.import.less │ │ │ │ │ ├── opacity.import.less │ │ │ │ │ ├── pagination.import.less │ │ │ │ │ ├── panels.import.less │ │ │ │ │ ├── progress-bar.import.less │ │ │ │ │ ├── reset-filter.import.less │ │ │ │ │ ├── resize.import.less │ │ │ │ │ ├── responsive-visibility.import.less │ │ │ │ │ ├── size.import.less │ │ │ │ │ ├── tab-focus.import.less │ │ │ │ │ ├── table-row.import.less │ │ │ │ │ ├── text-emphasis.import.less │ │ │ │ │ ├── text-overflow.import.less │ │ │ │ │ └── vendor-prefixes.import.less │ │ │ │ ├── modals.import.less │ │ │ │ ├── navbar.import.less │ │ │ │ ├── navs.import.less │ │ │ │ ├── normalize.import.less │ │ │ │ ├── pager.import.less │ │ │ │ ├── pagination.import.less │ │ │ │ ├── panels.import.less │ │ │ │ ├── popovers.import.less │ │ │ │ ├── print.import.less │ │ │ │ ├── progress-bars.import.less │ │ │ │ ├── responsive-embed.import.less │ │ │ │ ├── responsive-utilities.import.less │ │ │ │ ├── scaffolding.import.less │ │ │ │ ├── tables.import.less │ │ │ │ ├── theme.import.less │ │ │ │ ├── thumbnails.import.less │ │ │ │ ├── tooltip.import.less │ │ │ │ ├── type.import.less │ │ │ │ ├── utilities.import.less │ │ │ │ ├── variables.import.less │ │ │ │ └── wells.import.less │ │ │ └── font-awesome │ │ │ │ ├── animated.import.less │ │ │ │ ├── bordered-pulled.import.less │ │ │ │ ├── core.import.less │ │ │ │ ├── fixed-width.import.less │ │ │ │ ├── font-awesome.import.less │ │ │ │ ├── icons.import.less │ │ │ │ ├── larger.import.less │ │ │ │ ├── list.import.less │ │ │ │ ├── mixins.import.less │ │ │ │ ├── path.import.less │ │ │ │ ├── rotated-flipped.import.less │ │ │ │ ├── stacked.import.less │ │ │ │ └── variables.import.less │ │ ├── mixins.import.less │ │ ├── type.import.less │ │ └── variables.import.less │ ├── compatibility │ │ └── bootstrap.min.js │ └── components │ │ ├── buttons.import.less │ │ └── loading.import.less ├── main.css ├── main.html └── main.js ├── imports ├── api │ └── users │ │ ├── server │ │ ├── methods.js │ │ └── publications.js │ │ └── users.js ├── startup │ ├── client │ │ ├── authRoute.js │ │ ├── index.js │ │ └── routes.js │ └── server │ │ ├── api.js │ │ ├── config │ │ └── index.js │ │ ├── index.js │ │ └── seeds │ │ ├── index.js │ │ └── users.js └── ui │ ├── components │ ├── app │ │ ├── app_footer.js │ │ ├── app_header.js │ │ └── header_menus │ │ │ ├── app_header_notification_menu.js │ │ │ ├── app_header_notification_menu_item.js │ │ │ └── app_header_user_menu.js │ ├── controls │ │ └── box_control.js │ ├── dashboard │ │ ├── dashboard.js │ │ ├── sidebar │ │ │ ├── sidebar.js │ │ │ ├── sidebar_menu.js │ │ │ ├── sidebar_search_panel.js │ │ │ └── sidebar_user_panel.js │ │ └── views │ │ │ ├── content_header.js │ │ │ └── statistics │ │ │ └── statistics.js │ ├── home.js │ ├── sign_in.js │ ├── sign_up.js │ └── warnings │ │ └── callout_message.js │ ├── layouts │ └── loading │ │ ├── loading.css │ │ └── loading.js │ └── pages │ └── not_found │ ├── not_found.css │ └── not_found.js ├── package.json ├── public ├── fonts │ └── font-awesome │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 └── img │ ├── Screenshot from 2016-06-24 09:52:37.png │ ├── avatar.png │ ├── avatar04.png │ ├── avatar2.png │ ├── avatar3.png │ ├── avatar5.png │ ├── boxed-bg.jpg │ ├── boxed-bg.png │ ├── credit │ ├── american-express.png │ ├── cirrus.png │ ├── mastercard.png │ ├── mestro.png │ ├── paypal.png │ ├── paypal2.png │ └── visa.png │ ├── default-50x50.gif │ ├── icons.png │ ├── photo1.png │ ├── photo2.png │ ├── photo3.jpg │ ├── photo4.jpg │ ├── user1-128x128.jpg │ ├── user2-160x160.jpg │ ├── user3-128x128.jpg │ ├── user4-128x128.jpg │ ├── user5-128x128.jpg │ ├── user6-128x128.jpg │ ├── user7-128x128.jpg │ └── user8-128x128.jpg ├── server └── main.js └── test ├── client └── components │ └── home.spec.js └── server └── index.spec.js /.eslintignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /.meteor 3 | /.vscode 4 | /client 5 | /public -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "airbnb" 4 | ], 5 | "env": { 6 | "es6": true, 7 | "browser": true, 8 | "node": true, 9 | "jquery": true, 10 | "mocha": true 11 | }, 12 | "rules": { 13 | "no-trailing-spaces": 0, 14 | "react/jsx-filename-extension": 0, 15 | "react/forbid-prop-types": 0, 16 | "jsx-a11y/anchor-is-valid": 0, 17 | "import/extensions": 0, 18 | "react/require-default-props": 0 19 | } 20 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | npm-debug.log* 3 | .idea/ 4 | .vscode/ -------------------------------------------------------------------------------- /.meteor/.finished-upgraders: -------------------------------------------------------------------------------- 1 | # This file contains information which helps Meteor properly upgrade your 2 | # app when you run 'meteor update'. You should check it into version control 3 | # with your project. 4 | 5 | notices-for-0.9.0 6 | notices-for-0.9.1 7 | 0.9.4-platform-file 8 | notices-for-facebook-graph-api-2 9 | 1.2.0-standard-minifiers-package 10 | 1.2.0-meteor-platform-split 11 | 1.2.0-cordova-changes 12 | 1.2.0-breaking-changes 13 | 1.3.0-split-minifiers-package 14 | 1.4.0-remove-old-dev-bundle-link 15 | 1.4.1-add-shell-server-package 16 | 1.4.3-split-account-service-packages 17 | 1.5-add-dynamic-import-package 18 | -------------------------------------------------------------------------------- /.meteor/.gitignore: -------------------------------------------------------------------------------- 1 | local 2 | -------------------------------------------------------------------------------- /.meteor/.id: -------------------------------------------------------------------------------- 1 | # This file contains a token that is unique to your project. 2 | # Check it into your repository along with the rest of this directory. 3 | # It can be used for purposes such as: 4 | # - ensuring you don't accidentally deploy one app on top of another 5 | # - providing package authors with aggregated statistics 6 | 7 | 1kqcosy1krwg81sswjqa 8 | -------------------------------------------------------------------------------- /.meteor/packages: -------------------------------------------------------------------------------- 1 | # Meteor packages used by this project, one per line. 2 | # Check this file (and the other files in this directory) into your repository. 3 | # 4 | # 'meteor add' and 'meteor remove' will edit this file for you, 5 | # but you can also edit it by hand. 6 | 7 | meteor-base@1.3.0 # Packages every Meteor app needs to have 8 | mobile-experience@1.0.5 # Packages for a great mobile UX 9 | mongo@1.4.2 # The database Meteor supports right now 10 | blaze-html-templates # Compile .html files into Meteor Blaze views 11 | reactive-var@1.0.11 # Reactive variable for tracker 12 | jquery@1.11.10 # Helpful client-side library 13 | tracker@1.1.3 # Meteor's client-side reactive programming library 14 | 15 | standard-minifier-css@1.4.0 # CSS minifier run for production mode 16 | standard-minifier-js@2.3.1 # JS minifier run for production mode 17 | es5-shim@4.7.0 # ECMAScript 5 compatibility for older browsers. 18 | ecmascript@0.10.0 # Enable ECMAScript2015+ syntax in app code 19 | 20 | react-meteor-data 21 | less@2.7.11 22 | mizzao:jquery-ui 23 | accounts-password@1.5.0 24 | alanning:roles 25 | accounts-base@1.4.2 26 | shell-server@0.3.1 27 | dynamic-import 28 | meteortesting:mocha 29 | -------------------------------------------------------------------------------- /.meteor/platforms: -------------------------------------------------------------------------------- 1 | server 2 | browser 3 | -------------------------------------------------------------------------------- /.meteor/release: -------------------------------------------------------------------------------- 1 | METEOR@1.6.1 2 | -------------------------------------------------------------------------------- /.meteor/versions: -------------------------------------------------------------------------------- 1 | accounts-base@1.4.2 2 | accounts-password@1.5.1 3 | alanning:roles@1.2.16 4 | allow-deny@1.1.0 5 | autoupdate@1.4.0 6 | babel-compiler@7.0.5 7 | babel-runtime@1.2.2 8 | base64@1.0.11 9 | binary-heap@1.0.10 10 | blaze@2.3.2 11 | blaze-html-templates@1.1.2 12 | blaze-tools@1.0.10 13 | boilerplate-generator@1.4.0 14 | caching-compiler@1.1.11 15 | caching-html-compiler@1.1.2 16 | callback-hook@1.1.0 17 | check@1.3.0 18 | ddp@1.4.0 19 | ddp-client@2.3.1 20 | ddp-common@1.4.0 21 | ddp-rate-limiter@1.0.7 22 | ddp-server@2.1.2 23 | deps@1.0.12 24 | diff-sequence@1.1.0 25 | dynamic-import@0.3.0 26 | ecmascript@0.10.5 27 | ecmascript-runtime@0.5.0 28 | ecmascript-runtime-client@0.6.2 29 | ecmascript-runtime-server@0.5.0 30 | ejson@1.1.0 31 | email@1.2.3 32 | es5-shim@4.7.3 33 | geojson-utils@1.0.10 34 | hot-code-push@1.0.4 35 | html-tools@1.0.11 36 | htmljs@1.0.11 37 | http@1.4.0 38 | id-map@1.1.0 39 | jquery@1.11.11 40 | launch-screen@1.1.1 41 | less@2.7.12 42 | livedata@1.0.18 43 | localstorage@1.2.0 44 | logging@1.1.19 45 | meteor@1.8.4 46 | meteor-base@1.3.0 47 | meteortesting:browser-tests@0.1.2 48 | meteortesting:mocha@0.5.0 49 | minifier-css@1.3.1 50 | minifier-js@2.3.3 51 | minimongo@1.4.3 52 | mizzao:build-fetcher@0.3.2 53 | mizzao:jquery-ui@1.11.4 54 | mobile-experience@1.0.5 55 | mobile-status-bar@1.0.14 56 | modules@0.11.5 57 | modules-runtime@0.9.2 58 | mongo@1.4.5 59 | mongo-dev-server@1.1.0 60 | mongo-id@1.0.6 61 | npm-bcrypt@0.9.3 62 | npm-mongo@2.2.34 63 | observe-sequence@1.0.16 64 | ordered-dict@1.1.0 65 | practicalmeteor:mocha-core@1.0.1 66 | promise@0.10.2 67 | random@1.1.0 68 | rate-limit@1.0.9 69 | react-meteor-data@0.2.16 70 | reactive-var@1.0.11 71 | reload@1.2.0 72 | retry@1.1.0 73 | routepolicy@1.0.12 74 | server-render@0.3.0 75 | service-configuration@1.0.11 76 | sha@1.0.9 77 | shell-server@0.3.1 78 | shim-common@0.1.0 79 | socket-stream-client@0.1.0 80 | spacebars@1.0.15 81 | spacebars-compiler@1.1.3 82 | srp@1.0.10 83 | standard-minifier-css@1.4.1 84 | standard-minifier-js@2.3.2 85 | templating@1.3.2 86 | templating-compiler@1.3.3 87 | templating-runtime@1.3.2 88 | templating-tools@1.1.2 89 | tmeasday:check-npm-versions@0.3.2 90 | tracker@1.1.3 91 | ui@1.0.13 92 | underscore@1.0.10 93 | url@1.2.0 94 | webapp@1.5.0 95 | webapp-hashing@1.0.9 96 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | language: node_js 3 | node_js: 4 | - 6 5 | - 7 6 | 7 | before_install: 8 | - "curl -L https://git.io/ejPSng | /bin/sh" 9 | - curl "https://install.meteor.com/?release=1.4.2.7" 10 | - export PATH="$HOME/.meteor:$PATH" 11 | 12 | env: 13 | - CXX=g++-4.8 14 | 15 | cache: 16 | directories: 17 | - node_modules 18 | - .meteor 19 | 20 | before_script: 21 | - meteor npm install 22 | 23 | script: 24 | - meteor npm run test 25 | - meteor build $HOME/build.tgz -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Meteor + React + AdminLTE 2 | [![bitHound Code](https://www.bithound.io/github/jeescu/meteor-react-admin-lte/badges/code.svg)](https://www.bithound.io/github/jeescu/meteor-react-admin-lte) 3 | [![bitHound Dependencies](https://www.bithound.io/github/jeescu/meteor-react-admin-lte/badges/dependencies.svg)](https://www.bithound.io/github/jeescu/meteor-react-admin-lte/master/dependencies/npm) 4 | [![bitHound Dev Dependencies](https://www.bithound.io/github/jeescu/meteor-react-admin-lte/badges/devDependencies.svg)](https://www.bithound.io/github/jeescu/meteor-react-admin-lte/master/dependencies/npm) 5 | 6 | Meteor project boilerplate in [ES6](https://es6.io/) and [React](https://facebook.github.io/react/) using [AdminLTE 2.4.3](http://almsaeedstudio.com/themes/AdminLTE/documentation/index.html) styles. 7 | 8 | ![Boilerplate screenshot](https://raw.githubusercontent.com/jeescu/meteor-react-admin-lte/master/public/img/Screenshot%20from%202016-06-24%2009%3A52%3A37.png) 9 | 10 | ### Prerequisites 11 | * Node v6.9 or higher 12 | * Npm v3 or higher 13 | * Meteor v1.6.1 14 | 15 | ### Meteor packages 16 | * accounts-password 17 | * accounts-base 18 | * alanning:roles 19 | * react-meteor-data 20 | * dispatch:mocha 21 | 22 | ### Basic features 23 | * Authentication 24 | * Routing (Uses [React Router](https://github.com/ReactTraining/react-router) as standard for React) 25 | 26 | ### Installation 27 | ``` 28 | > git clone https://github.com/jeescu/meteor-react-admin-lte.git 29 | > cd && rm -rf .git 30 | > npm install 31 | ``` 32 | 33 | ### Running Tests 34 | Using [Mocha](https://mochajs.org/) as test driver package and [PhantomJS](http://phantomjs.org/) for browser driver. 35 | Also included test utilities, [Enzyme](https://github.com/airbnb/enzyme) and [Chai](http://chaijs.com/api/). See test examples in `test/` folder. 36 | 37 | ``` 38 | > npm test 39 | ``` 40 | 41 | ### Linting 42 | Uses [Airbnb style guide](https://github.com/airbnb/javascript). Just modify your rules in `.eslintrc`. 43 | Lint will also run automatically on precommit, making sure your code is still ES6 standard! You can modify the precommit command list on `package.json` if you want to add more cool stuffs. 44 | 45 | ``` 46 | > npm run lint 47 | ``` 48 | 49 | ### Own the project and start coding! 50 | ``` 51 | > npm start 52 | ``` 53 | -------------------------------------------------------------------------------- /client/lib/base/global.less: -------------------------------------------------------------------------------- 1 | // Bootstrap 2 | @import "./lib/bootstrap/bootstrap.import.less"; 3 | 4 | // Font Awesome 5 | @import './lib/font-awesome/font-awesome.import.less'; 6 | 7 | // AdminLTE 8 | @import './lib/admin-lte/AdminLTE.less'; 9 | 10 | @import './mixins.import.less'; 11 | @import './variables.import.less'; 12 | 13 | // Misc Global Styles 14 | @import './type.import.less'; 15 | 16 | // Components 17 | @import '../components/loading.import.less'; 18 | @import '../components/buttons.import.less'; 19 | 20 | //Override classes 21 | .form-control { 22 | color: black !important; 23 | } 24 | 25 | // ends here 26 | 27 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/.csslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "adjoining-classes": false, 3 | "box-sizing": false, 4 | "box-model": false, 5 | "compatible-vendor-prefixes": false, 6 | "floats": false, 7 | "font-sizes": false, 8 | "gradients": false, 9 | "important": false, 10 | "known-properties": false, 11 | "outline-none": false, 12 | "qualified-headings": false, 13 | "regex-selectors": false, 14 | "shorthand": false, 15 | "text-indent": false, 16 | "unique-headings": false, 17 | "universal-selector": false, 18 | "unqualified-attributes": false, 19 | "ids": false, 20 | "fallback-colors": false, 21 | "vendor-prefix": false, 22 | "import": false 23 | } 24 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/404_500_errors.less: -------------------------------------------------------------------------------- 1 | @import (reference) "../bootstrap/variables.import.less"; 2 | /* 3 | * Page: 400 and 500 error pages 4 | * ------------------------------ 5 | */ 6 | .error-page { 7 | width: 600px; 8 | margin: 20px auto 0 auto; 9 | @media (max-width: @screen-sm-max) { 10 | width: 100%; 11 | } 12 | //For the error number e.g: 404 13 | > .headline { 14 | float: left; 15 | font-size: 100px; 16 | font-weight: 300; 17 | @media (max-width: @screen-sm-max) { 18 | float: none; 19 | text-align: center; 20 | } 21 | } 22 | //For the message 23 | > .error-content { 24 | margin-left: 190px; 25 | @media (max-width: @screen-sm-max) { 26 | margin-left: 0; 27 | } 28 | > h3 { 29 | font-weight: 300; 30 | font-size: 25px; 31 | @media (max-width: @screen-sm-max) { 32 | text-align: center; 33 | } 34 | } 35 | display: block; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/AdminLTE-without-plugins.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * AdminLTE v2.4.0 Without Third-Party Plugins 3 | * Author: Almsaeed Studio 4 | * Website: Almsaeed Studio 5 | * License: Open source - MIT 6 | * Please visit http://opensource.org/licenses/MIT for more information 7 | !*/ 8 | 9 | //Bootstrap Variables & Mixins 10 | //The core bootstrap code have not been modified. These files 11 | //are included only for reference. 12 | // @import (reference) "../bootstrap-less/mixins"; 13 | // @import (reference) "../bootstrap-less/variables"; 14 | //MISC 15 | //---- 16 | @import "core"; 17 | @import "variables"; 18 | @import "mixins"; 19 | //COMPONENTS 20 | //----------- 21 | @import "header"; 22 | @import "sidebar"; 23 | @import "sidebar-mini"; 24 | @import "control-sidebar"; 25 | @import "dropdown"; 26 | @import "forms"; 27 | @import "progress-bars"; 28 | @import "small-box"; 29 | @import "boxes"; 30 | @import "info-box"; 31 | @import "timeline"; 32 | @import "buttons"; 33 | @import "callout"; 34 | @import "alerts"; 35 | @import "navs"; 36 | @import "products"; 37 | @import "table"; 38 | @import "labels"; 39 | @import "direct-chat"; 40 | @import "users-list"; 41 | @import "carousel"; 42 | @import "modal"; 43 | @import "social-widgets"; 44 | @import "treeview"; 45 | //PAGES 46 | //------ 47 | @import "mailbox"; 48 | @import "lockscreen"; 49 | @import "login_and_register"; 50 | @import "404_500_errors"; 51 | @import "invoice"; 52 | @import "profile"; 53 | //Miscellaneous 54 | //------------- 55 | @import "miscellaneous"; 56 | @import "print"; 57 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/AdminLTE.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * AdminLTE v2.4.2 3 | * Author: Almsaeed Studio 4 | * Website: Almsaeed Studio 5 | * License: Open source - MIT 6 | * Please visit http://opensource.org/licenses/MIT for more information 7 | */ 8 | // Bootstrap 9 | //-------------------------------------------------------- 10 | @import (reference) "../bootstrap/mixins.import.less"; 11 | @import (reference) "../bootstrap/variables.import.less"; 12 | 13 | // MISC 14 | //-------------------------------------------------------- 15 | @import "core"; 16 | @import "variables"; 17 | @import "mixins"; 18 | 19 | // COMPONENTS 20 | //-------------------------------------------------------- 21 | @import "header"; 22 | @import "sidebar"; 23 | @import "sidebar-mini"; 24 | @import "control-sidebar"; 25 | @import "dropdown"; 26 | @import "forms"; 27 | @import "progress-bars"; 28 | @import "small-box"; 29 | @import "boxes"; 30 | @import "info-box"; 31 | @import "timeline"; 32 | @import "buttons"; 33 | @import "callout"; 34 | @import "alerts"; 35 | @import "navs"; 36 | @import "products"; 37 | @import "table"; 38 | @import "labels"; 39 | @import "direct-chat"; 40 | @import "users-list"; 41 | @import "carousel"; 42 | @import "modal"; 43 | @import "social-widgets"; 44 | @import "treeview"; 45 | 46 | // PAGES 47 | //-------------------------------------------------------- 48 | @import "mailbox"; 49 | @import "lockscreen"; 50 | @import "login_and_register"; 51 | @import "404_500_errors"; 52 | @import "invoice"; 53 | @import "profile"; 54 | 55 | // Plugins 56 | //-------------------------------------------------------- 57 | @import "plugins"; 58 | 59 | // Miscellaneous 60 | //-------------------------------------------------------- 61 | @import "miscellaneous"; 62 | @import "print"; 63 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/alerts.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | 5 | @import (reference) "../bootstrap/mixins.import.less"; 6 | /* 7 | * Component: alert 8 | * ---------------- 9 | */ 10 | 11 | .alert { 12 | .border-radius(3px); 13 | h4 { 14 | font-weight: 600; 15 | } 16 | .icon { 17 | margin-right: 10px; 18 | } 19 | .close { 20 | color: #000; 21 | .opacity(.2); 22 | &:hover { 23 | .opacity(.5); 24 | } 25 | } 26 | a { 27 | color: #fff; 28 | text-decoration: underline; 29 | } 30 | } 31 | 32 | //Alert Variants 33 | .alert-success { 34 | &:extend(.bg-green); 35 | border-color: darken(@green, 5%); 36 | } 37 | 38 | .alert-danger, 39 | .alert-error { 40 | &:extend(.bg-red); 41 | border-color: darken(@red, 5%); 42 | } 43 | 44 | .alert-warning { 45 | &:extend(.bg-yellow); 46 | border-color: darken(@yellow, 5%); 47 | } 48 | 49 | .alert-info { 50 | &:extend(.bg-aqua); 51 | border-color: darken(@aqua, 5%); 52 | } 53 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/bootstrap-social.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Social Buttons for Bootstrap 3 | * 4 | * Copyright 2013-2015 Panayiotis Lipiridis 5 | * Licensed under the MIT License 6 | * 7 | * https://github.com/lipis/bootstrap-social 8 | */ 9 | 10 | // Import variables and mixins as a reference for separate plugins version 11 | @import (reference) "../bootstrap/mixins.import.less"; 12 | @import (reference) "../bootstrap/variables.import.less"; 13 | @import (reference) "variables"; 14 | @import (reference) "mixins"; 15 | 16 | @bs-height-base: (@line-height-computed + @padding-base-vertical * 2); 17 | @bs-height-lg: (floor(@font-size-large * @line-height-base) + @padding-large-vertical * 2); 18 | @bs-height-sm: (floor(@font-size-small * 1.5) + @padding-small-vertical * 2); 19 | @bs-height-xs: (floor(@font-size-small * 1.2) + @padding-small-vertical + 1); 20 | 21 | .btn-social { 22 | position: relative; 23 | padding-left: (@bs-height-base + @padding-base-horizontal); 24 | text-align: left; 25 | white-space: nowrap; 26 | overflow: hidden; 27 | text-overflow: ellipsis; 28 | > :first-child { 29 | position: absolute; 30 | left: 0; 31 | top: 0; 32 | bottom: 0; 33 | width: @bs-height-base; 34 | line-height: (@bs-height-base + 2); 35 | font-size: 1.6em; 36 | text-align: center; 37 | border-right: 1px solid rgba(0, 0, 0, 0.2); 38 | } 39 | &.btn-lg { 40 | padding-left: (@bs-height-lg + @padding-large-horizontal); 41 | > :first-child { 42 | line-height: @bs-height-lg; 43 | width: @bs-height-lg; 44 | font-size: 1.8em; 45 | } 46 | } 47 | &.btn-sm { 48 | padding-left: (@bs-height-sm + @padding-small-horizontal); 49 | > :first-child { 50 | line-height: @bs-height-sm; 51 | width: @bs-height-sm; 52 | font-size: 1.4em; 53 | } 54 | } 55 | &.btn-xs { 56 | padding-left: (@bs-height-xs + @padding-small-horizontal); 57 | > :first-child { 58 | line-height: @bs-height-xs; 59 | width: @bs-height-xs; 60 | font-size: 1.2em; 61 | } 62 | } 63 | } 64 | 65 | .btn-social-icon { 66 | .btn-social; 67 | height: (@bs-height-base + 2); 68 | width: (@bs-height-base + 2); 69 | padding: 0; 70 | > :first-child { 71 | border: none; 72 | text-align: center; 73 | width: 100%; 74 | } 75 | &.btn-lg { 76 | height: @bs-height-lg; 77 | width: @bs-height-lg; 78 | padding-left: 0; 79 | padding-right: 0; 80 | } 81 | &.btn-sm { 82 | height: (@bs-height-sm + 2); 83 | width: (@bs-height-sm + 2); 84 | padding-left: 0; 85 | padding-right: 0; 86 | } 87 | &.btn-xs { 88 | height: (@bs-height-xs + 2); 89 | width: (@bs-height-xs + 2); 90 | padding-left: 0; 91 | padding-right: 0; 92 | } 93 | } 94 | 95 | .btn-social(@color-bg, @color: #fff) { 96 | background-color: @color-bg; 97 | .button-variant(@color, @color-bg, rgba(0, 0, 0, .2)); 98 | } 99 | 100 | .btn-adn { 101 | .btn-social(#d87a68); 102 | } 103 | 104 | .btn-bitbucket { 105 | .btn-social(#205081); 106 | } 107 | 108 | .btn-dropbox { 109 | .btn-social(#1087dd); 110 | } 111 | 112 | .btn-facebook { 113 | .btn-social(#3b5998); 114 | } 115 | 116 | .btn-flickr { 117 | .btn-social(#ff0084); 118 | } 119 | 120 | .btn-foursquare { 121 | .btn-social(#f94877); 122 | } 123 | 124 | .btn-github { 125 | .btn-social(#444444); 126 | } 127 | 128 | .btn-google { 129 | .btn-social(#dd4b39); 130 | } 131 | 132 | .btn-instagram { 133 | .btn-social(#3f729b); 134 | } 135 | 136 | .btn-linkedin { 137 | .btn-social(#007bb6); 138 | } 139 | 140 | .btn-microsoft { 141 | .btn-social(#2672ec); 142 | } 143 | 144 | .btn-openid { 145 | .btn-social(#f7931e); 146 | } 147 | 148 | .btn-pinterest { 149 | .btn-social(#cb2027); 150 | } 151 | 152 | .btn-reddit { 153 | .btn-social(#eff7ff, #000); 154 | } 155 | 156 | .btn-soundcloud { 157 | .btn-social(#ff5500); 158 | } 159 | 160 | .btn-tumblr { 161 | .btn-social(#2c4762); 162 | } 163 | 164 | .btn-twitter { 165 | .btn-social(#55acee); 166 | } 167 | 168 | .btn-vimeo { 169 | .btn-social(#1ab7ea); 170 | } 171 | 172 | .btn-vk { 173 | .btn-social(#587ea3); 174 | } 175 | 176 | .btn-yahoo { 177 | .btn-social(#720e9e); 178 | } 179 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/buttons.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | 5 | @import (reference) "../bootstrap/mixins.import.less"; 6 | /* 7 | * Component: Button 8 | * ----------------- 9 | */ 10 | 11 | .btn { 12 | .border-radius(@btn-border-radius); 13 | .box-shadow(@btn-boxshadow); 14 | border: 1px solid transparent; 15 | 16 | &.uppercase { 17 | text-transform: uppercase 18 | } 19 | 20 | // Flat buttons 21 | &.btn-flat { 22 | .border-radius(0); 23 | -webkit-box-shadow: none; 24 | -moz-box-shadow: none; 25 | box-shadow: none; 26 | border-width: 1px; 27 | } 28 | 29 | // Active state 30 | &:active { 31 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 32 | -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 33 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 34 | } 35 | 36 | &:focus { 37 | outline: none; 38 | } 39 | 40 | // input file btn 41 | &.btn-file { 42 | position: relative; 43 | overflow: hidden; 44 | > input[type='file'] { 45 | position: absolute; 46 | top: 0; 47 | right: 0; 48 | min-width: 100%; 49 | min-height: 100%; 50 | font-size: 100px; 51 | text-align: right; 52 | .opacity(0); 53 | outline: none; 54 | background: white; 55 | cursor: inherit; 56 | display: block; 57 | } 58 | } 59 | } 60 | 61 | //Button color variations 62 | .btn-default { 63 | background-color: #f4f4f4; 64 | color: #444; 65 | border-color: #ddd; 66 | &:hover, 67 | &:active, 68 | &.hover { 69 | background-color: darken(#f4f4f4, 5%); 70 | } 71 | } 72 | 73 | .btn-primary { 74 | background-color: @light-blue; 75 | border-color: darken(@light-blue, 5%); 76 | &:hover, &:active, &.hover { 77 | background-color: darken(@light-blue, 5%); 78 | } 79 | } 80 | 81 | .btn-success { 82 | background-color: @green; 83 | border-color: darken(@green, 5%); 84 | &:hover, &:active, &.hover { 85 | background-color: darken(@green, 5%); 86 | } 87 | } 88 | 89 | .btn-info { 90 | background-color: @aqua; 91 | border-color: darken(@aqua, 5%); 92 | &:hover, &:active, &.hover { 93 | background-color: darken(@aqua, 5%); 94 | } 95 | } 96 | 97 | .btn-danger { 98 | background-color: @red; 99 | border-color: darken(@red, 5%); 100 | &:hover, &:active, &.hover { 101 | background-color: darken(@red, 5%); 102 | } 103 | } 104 | 105 | .btn-warning { 106 | background-color: @yellow; 107 | border-color: darken(@yellow, 5%); 108 | &:hover, &:active, &.hover { 109 | background-color: darken(@yellow, 5%); 110 | } 111 | } 112 | 113 | .btn-outline { 114 | border: 1px solid #fff; 115 | background: transparent; 116 | color: #fff; 117 | &:hover, 118 | &:focus, 119 | &:active { 120 | color: rgba(255, 255, 255, .7); 121 | border-color: rgba(255, 255, 255, .7); 122 | } 123 | } 124 | 125 | .btn-link { 126 | .box-shadow(none); 127 | } 128 | 129 | //General .btn with bg class 130 | .btn[class*='bg-']:hover { 131 | .box-shadow(inset 0 0 100px rgba(0, 0, 0, 0.2)); 132 | } 133 | 134 | // Application buttons 135 | .btn-app { 136 | .border-radius(3px); 137 | position: relative; 138 | padding: 15px 5px; 139 | margin: 0 0 10px 10px; 140 | min-width: 80px; 141 | height: 60px; 142 | text-align: center; 143 | color: #666; 144 | border: 1px solid #ddd; 145 | background-color: #f4f4f4; 146 | font-size: 12px; 147 | //Icons within the btn 148 | > .fa, > .glyphicon, > .ion { 149 | font-size: 20px; 150 | display: block; 151 | } 152 | 153 | &:hover { 154 | background: #f4f4f4; 155 | color: #444; 156 | border-color: #aaa; 157 | } 158 | 159 | &:active, &:focus { 160 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 161 | -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 162 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 163 | } 164 | 165 | //The badge 166 | > .badge { 167 | position: absolute; 168 | top: -3px; 169 | right: -10px; 170 | font-size: 10px; 171 | font-weight: 400; 172 | } 173 | } 174 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/callout.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Component: Callout 7 | * ------------------ 8 | */ 9 | 10 | // Base styles (regardless of theme) 11 | .callout { 12 | .border-radius(3px); 13 | margin: 0 0 20px 0; 14 | padding: 15px 30px 15px 15px; 15 | border-left: 5px solid #eee; 16 | a { 17 | color: #fff; 18 | text-decoration: underline; 19 | &:hover { 20 | color: #eee; 21 | } 22 | } 23 | h4 { 24 | margin-top: 0; 25 | font-weight: 600; 26 | } 27 | p:last-child { 28 | margin-bottom: 0; 29 | } 30 | code, 31 | .highlight { 32 | background-color: #fff; 33 | } 34 | 35 | // Themes for different contexts 36 | &.callout-danger { 37 | &:extend(.bg-red); 38 | border-color: darken(@red, 10%); 39 | } 40 | &.callout-warning { 41 | &:extend(.bg-yellow); 42 | border-color: darken(@yellow, 10%); 43 | } 44 | &.callout-info { 45 | &:extend(.bg-aqua); 46 | border-color: darken(@aqua, 10%); 47 | } 48 | &.callout-success { 49 | &:extend(.bg-green); 50 | border-color: darken(@green, 10%); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/carousel.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Component: Carousel 3 | * ------------------- 4 | */ 5 | .carousel-control { 6 | &.left, 7 | &.right { 8 | background-image: none; 9 | } 10 | > .fa { 11 | font-size: 40px; 12 | position: absolute; 13 | top: 50%; 14 | z-index: 5; 15 | display: inline-block; 16 | margin-top: -20px; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/core.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Core: General Layout Style 7 | * ------------------------- 8 | */ 9 | html, 10 | body { 11 | height: 100%; 12 | .layout-boxed & { 13 | height: 100%; 14 | } 15 | } 16 | 17 | body { 18 | font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif; 19 | font-weight: 400; 20 | overflow-x: hidden; 21 | overflow-y: auto; 22 | } 23 | 24 | /* Layout */ 25 | .wrapper { 26 | .clearfix(); 27 | height: 100%; 28 | position: relative; 29 | overflow-x: hidden; 30 | overflow-y: auto; 31 | .layout-boxed & { 32 | max-width: 1250px; 33 | margin: 0 auto; 34 | min-height: 100%; 35 | box-shadow: 0 0 8px rgba(0, 0, 0, 0.5); 36 | position: relative; 37 | } 38 | } 39 | 40 | .layout-boxed { 41 | background: url('@{boxed-layout-bg-image-path}') repeat fixed; 42 | } 43 | 44 | /* 45 | * Content Wrapper - contains the main content 46 | */ 47 | .content-wrapper, 48 | .main-footer { 49 | // Using disposable variable to join statements with a comma 50 | @transition-rule: @transition-speed @transition-fn, 51 | margin @transition-speed @transition-fn; 52 | .transition-transform(@transition-rule); 53 | margin-left: @sidebar-width; 54 | z-index: 820; 55 | // Top nav layout 56 | .layout-top-nav & { 57 | margin-left: 0; 58 | } 59 | @media (max-width: @screen-xs-max) { 60 | margin-left: 0; 61 | } 62 | // When opening the sidebar on large screens 63 | .sidebar-collapse & { 64 | @media (min-width: @screen-sm) { 65 | margin-left: 0; 66 | } 67 | } 68 | // When opening the sidebar on small screens 69 | .sidebar-open & { 70 | @media (max-width: @screen-xs-max) { 71 | .translate(@sidebar-width, 0); 72 | } 73 | } 74 | } 75 | 76 | .content-wrapper { 77 | min-height: 100%; 78 | background-color: @content-bg; 79 | z-index: 800; 80 | } 81 | 82 | .main-footer { 83 | background: #fff; 84 | padding: 15px; 85 | color: #444; 86 | border-top: 1px solid @gray-lte; 87 | } 88 | 89 | /* Fixed layout */ 90 | .fixed { 91 | .main-header, 92 | .main-sidebar, 93 | .left-side { 94 | position: fixed; 95 | } 96 | .main-header { 97 | top: 0; 98 | right: 0; 99 | left: 0; 100 | } 101 | .content-wrapper, 102 | .right-side { 103 | padding-top: 50px; 104 | @media (max-width: @screen-header-collapse) { 105 | padding-top: 100px; 106 | } 107 | } 108 | &.layout-boxed { 109 | .wrapper { 110 | max-width: 100%; 111 | } 112 | } 113 | .wrapper { 114 | overflow: hidden; 115 | } 116 | } 117 | 118 | .hold-transition { 119 | .content-wrapper, 120 | .right-side, 121 | .main-footer, 122 | .main-sidebar, 123 | .left-side, 124 | .main-header .navbar, 125 | .main-header .logo, 126 | .menu-open .fa-angle-left { 127 | /* Fix for IE */ 128 | .transition(none); 129 | } 130 | } 131 | 132 | /* Content */ 133 | .content { 134 | min-height: 250px; 135 | padding: 15px; 136 | .container-fixed(@grid-gutter-width); 137 | } 138 | 139 | /* H1 - H6 font */ 140 | h1, 141 | h2, 142 | h3, 143 | h4, 144 | h5, 145 | h6, 146 | .h1, 147 | .h2, 148 | .h3, 149 | .h4, 150 | .h5, 151 | .h6 { 152 | font-family: 'Source Sans Pro', sans-serif; 153 | } 154 | 155 | /* General Links */ 156 | a { 157 | color: @link-color; 158 | } 159 | 160 | a:hover, 161 | a:active, 162 | a:focus { 163 | outline: none; 164 | text-decoration: none; 165 | color: @link-hover-color; 166 | } 167 | 168 | /* Page Header */ 169 | .page-header { 170 | margin: 10px 0 20px 0; 171 | font-size: 22px; 172 | 173 | > small { 174 | color: #666; 175 | display: block; 176 | margin-top: 5px; 177 | } 178 | } 179 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/datepicker.less: -------------------------------------------------------------------------------- 1 | .box { 2 | .datepicker-inline { 3 | &, 4 | .datepicker-days { 5 | &, 6 | > table { 7 | width: 100%; 8 | td { 9 | &:hover { 10 | background-color: rgba(255, 255, 255, .3); 11 | } 12 | &.day { 13 | &.old, 14 | &.new { 15 | color: #777; 16 | } 17 | } 18 | } 19 | } 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/direct-chat.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Component: Direct Chat 7 | * ---------------------- 8 | */ 9 | .direct-chat { 10 | .box-body { 11 | .border-bottom-radius(0); 12 | position: relative; 13 | overflow-x: hidden; 14 | padding: 0; 15 | } 16 | &.chat-pane-open { 17 | .direct-chat-contacts { 18 | .translate(0, 0); 19 | } 20 | } 21 | } 22 | 23 | .direct-chat-messages { 24 | .translate(0, 0); 25 | padding: 10px; 26 | height: 250px; 27 | overflow: auto; 28 | } 29 | 30 | .direct-chat-msg, 31 | .direct-chat-text { 32 | display: block; 33 | } 34 | 35 | .direct-chat-msg { 36 | .clearfix(); 37 | margin-bottom: 10px; 38 | } 39 | 40 | .direct-chat-messages, 41 | .direct-chat-contacts { 42 | .transition-transform(.5s ease-in-out); 43 | } 44 | 45 | .direct-chat-text { 46 | .border-radius(5px); 47 | position: relative; 48 | padding: 5px 10px; 49 | background: @direct-chat-default-msg-bg; 50 | border: 1px solid @direct-chat-default-msg-border-color; 51 | margin: 5px 0 0 50px; 52 | color: @direct-chat-default-font-color; 53 | 54 | //Create the arrow 55 | &:after, 56 | &:before { 57 | position: absolute; 58 | right: 100%; 59 | top: 15px; 60 | border: solid transparent; 61 | border-right-color: @direct-chat-default-msg-border-color; 62 | content: ' '; 63 | height: 0; 64 | width: 0; 65 | pointer-events: none; 66 | } 67 | 68 | &:after { 69 | border-width: 5px; 70 | margin-top: -5px; 71 | } 72 | &:before { 73 | border-width: 6px; 74 | margin-top: -6px; 75 | } 76 | .right & { 77 | margin-right: 50px; 78 | margin-left: 0; 79 | &:after, 80 | &:before { 81 | right: auto; 82 | left: 100%; 83 | border-right-color: transparent; 84 | border-left-color: @direct-chat-default-msg-border-color; 85 | } 86 | } 87 | } 88 | 89 | .direct-chat-img { 90 | .border-radius(50%); 91 | float: left; 92 | width: 40px; 93 | height: 40px; 94 | .right & { 95 | float: right; 96 | } 97 | } 98 | 99 | .direct-chat-info { 100 | display: block; 101 | margin-bottom: 2px; 102 | font-size: 12px; 103 | } 104 | 105 | .direct-chat-name { 106 | font-weight: 600; 107 | } 108 | 109 | .direct-chat-timestamp { 110 | color: #999; 111 | } 112 | 113 | //Direct chat contacts pane 114 | .direct-chat-contacts-open { 115 | .direct-chat-contacts { 116 | .translate(0, 0); 117 | } 118 | } 119 | 120 | .direct-chat-contacts { 121 | .translate(101%, 0); 122 | position: absolute; 123 | top: 0; 124 | bottom: 0; 125 | height: 250px; 126 | width: 100%; 127 | background: #222d32; 128 | color: #fff; 129 | overflow: auto; 130 | } 131 | 132 | //Contacts list -- for displaying contacts in direct chat contacts pane 133 | .contacts-list { 134 | &:extend(.list-unstyled); 135 | > li { 136 | .clearfix(); 137 | border-bottom: 1px solid rgba(0, 0, 0, 0.2); 138 | padding: 10px; 139 | margin: 0; 140 | &:last-of-type { 141 | border-bottom: none; 142 | } 143 | } 144 | } 145 | 146 | .contacts-list-img { 147 | .border-radius(50%); 148 | width: 40px; 149 | float: left; 150 | } 151 | 152 | .contacts-list-info { 153 | margin-left: 45px; 154 | color: #fff; 155 | } 156 | 157 | .contacts-list-name, 158 | .contacts-list-status { 159 | display: block; 160 | } 161 | 162 | .contacts-list-name { 163 | font-weight: 600; 164 | } 165 | 166 | .contacts-list-status { 167 | font-size: 12px; 168 | } 169 | 170 | .contacts-list-date { 171 | color: #aaa; 172 | font-weight: normal; 173 | } 174 | 175 | .contacts-list-msg { 176 | color: #999; 177 | } 178 | 179 | //Direct Chat Variants 180 | .direct-chat-danger { 181 | .direct-chat-variant(@red); 182 | } 183 | 184 | .direct-chat-primary { 185 | .direct-chat-variant(@light-blue); 186 | } 187 | 188 | .direct-chat-warning { 189 | .direct-chat-variant(@yellow); 190 | } 191 | 192 | .direct-chat-info { 193 | .direct-chat-variant(@aqua); 194 | } 195 | 196 | .direct-chat-success { 197 | .direct-chat-variant(@green); 198 | } 199 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/forms.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Component: Form 7 | * --------------- 8 | */ 9 | .form-control { 10 | .border-radius(@input-radius); 11 | box-shadow: none; 12 | border-color: @gray-lte; 13 | &:focus { 14 | border-color: @light-blue; 15 | box-shadow: none; 16 | } 17 | &::-moz-placeholder, 18 | &:-ms-input-placeholder, 19 | &::-webkit-input-placeholder { 20 | color: #bbb; 21 | opacity: 1; 22 | } 23 | 24 | &:not(select) { 25 | -webkit-appearance: none; 26 | -moz-appearance: none; 27 | appearance: none; 28 | } 29 | } 30 | 31 | .form-group { 32 | &.has-success { 33 | label { 34 | color: @green; 35 | } 36 | .form-control, 37 | .input-group-addon { 38 | border-color: @green; 39 | box-shadow: none; 40 | } 41 | .help-block { 42 | color: @green; 43 | } 44 | } 45 | 46 | &.has-warning { 47 | label { 48 | color: @yellow; 49 | } 50 | .form-control, 51 | .input-group-addon { 52 | border-color: @yellow; 53 | box-shadow: none; 54 | } 55 | .help-block { 56 | color: @yellow; 57 | } 58 | } 59 | 60 | &.has-error { 61 | label { 62 | color: @red; 63 | } 64 | .form-control, 65 | .input-group-addon { 66 | border-color: @red; 67 | box-shadow: none; 68 | } 69 | .help-block { 70 | color: @red; 71 | } 72 | } 73 | } 74 | 75 | /* Input group */ 76 | .input-group { 77 | .input-group-addon { 78 | .border-radius(@input-radius); 79 | border-color: @gray-lte; 80 | background-color: #fff; 81 | } 82 | } 83 | 84 | /* button groups */ 85 | .btn-group-vertical { 86 | .btn { 87 | &.btn-flat:first-of-type, &.btn-flat:last-of-type { 88 | .border-radius(0); 89 | } 90 | } 91 | } 92 | 93 | .icheck > label { 94 | padding-left: 0; 95 | } 96 | 97 | /* support Font Awesome icons in form-control */ 98 | .form-control-feedback.fa { 99 | line-height: @input-height-base; 100 | } 101 | 102 | .input-lg + .form-control-feedback.fa, 103 | .input-group-lg + .form-control-feedback.fa, 104 | .form-group-lg .form-control + .form-control-feedback.fa { 105 | line-height: @input-height-large; 106 | } 107 | 108 | .input-sm + .form-control-feedback.fa, 109 | .input-group-sm + .form-control-feedback.fa, 110 | .form-group-sm .form-control + .form-control-feedback.fa { 111 | line-height: @input-height-small; 112 | } 113 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/fullcalendar.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Plugin: Full Calendar 3 | * --------------------- 4 | */ 5 | 6 | // Import variables and mixins as a reference for separate plugins version 7 | @import (reference) "../bootstrap/mixins.import.less"; 8 | @import (reference) "../bootstrap/variables.import.less"; 9 | @import (reference) "variables"; 10 | @import (reference) "mixins"; 11 | 12 | //Fullcalendar buttons 13 | .fc-button { 14 | background: #f4f4f4; 15 | background-image: none; 16 | color: #444; 17 | border-color: #ddd; 18 | border-bottom-color: #ddd; 19 | &:hover, 20 | &:active, 21 | &.hover { 22 | background-color: #e9e9e9; 23 | } 24 | } 25 | 26 | // Calendar title 27 | .fc-header-title h2 { 28 | font-size: 15px; 29 | line-height: 1.6em; 30 | color: #666; 31 | margin-left: 10px; 32 | } 33 | 34 | .fc-header-right { 35 | padding-right: 10px; 36 | } 37 | 38 | .fc-header-left { 39 | padding-left: 10px; 40 | } 41 | 42 | // Calendar table header cells 43 | .fc-widget-header { 44 | background: #fafafa; 45 | } 46 | 47 | .fc-grid { 48 | width: 100%; 49 | border: 0; 50 | } 51 | 52 | .fc-widget-header:first-of-type, 53 | .fc-widget-content:first-of-type { 54 | border-left: 0; 55 | border-right: 0; 56 | } 57 | 58 | .fc-widget-header:last-of-type, 59 | .fc-widget-content:last-of-type { 60 | border-right: 0; 61 | } 62 | 63 | .fc-toolbar { 64 | padding: @box-padding; 65 | margin: 0; 66 | } 67 | 68 | .fc-day-number { 69 | font-size: 20px; 70 | font-weight: 300; 71 | padding-right: 10px; 72 | } 73 | 74 | .fc-color-picker { 75 | list-style: none; 76 | margin: 0; 77 | padding: 0; 78 | > li { 79 | float: left; 80 | font-size: 30px; 81 | margin-right: 5px; 82 | line-height: 30px; 83 | .fa { 84 | .transition-transform(linear .3s); 85 | &:hover { 86 | .rotate(30deg); 87 | } 88 | } 89 | } 90 | } 91 | 92 | #add-new-event { 93 | .transition(all linear .3s); 94 | } 95 | 96 | .external-event { 97 | padding: 5px 10px; 98 | font-weight: bold; 99 | margin-bottom: 4px; 100 | box-shadow: @box-boxshadow; 101 | text-shadow: @box-boxshadow; 102 | border-radius: @box-border-radius; 103 | cursor: move; 104 | &:hover { 105 | box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2); 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/info-box.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Component: Info Box 7 | * ------------------- 8 | */ 9 | .info-box { 10 | display: block; 11 | min-height: 90px; 12 | background: #fff; 13 | width: 100%; 14 | box-shadow: @box-boxshadow; 15 | .border-radius(2px); 16 | margin-bottom: 15px; 17 | small { 18 | font-size: 14px; 19 | } 20 | .progress { 21 | background: rgba(0, 0, 0, .2); 22 | margin: 5px -10px 5px -10px; 23 | height: 2px; 24 | &, 25 | & .progress-bar { 26 | .border-radius(0); 27 | } 28 | .progress-bar { 29 | background: #fff; 30 | } 31 | } 32 | } 33 | 34 | .info-box-icon { 35 | .border-radius(2px; 0; 2px; 0); 36 | display: block; 37 | float: left; 38 | height: 90px; 39 | width: 90px; 40 | text-align: center; 41 | font-size: 45px; 42 | line-height: 90px; 43 | background: rgba(0, 0, 0, 0.2); 44 | > img { 45 | max-width: 100%; 46 | } 47 | } 48 | 49 | .info-box-content { 50 | padding: 5px 10px; 51 | margin-left: 90px; 52 | } 53 | 54 | .info-box-number { 55 | display: block; 56 | font-weight: bold; 57 | font-size: 18px; 58 | } 59 | 60 | .progress-description, 61 | .info-box-text { 62 | display: block; 63 | font-size: 14px; 64 | white-space: nowrap; 65 | overflow: hidden; 66 | text-overflow: ellipsis; 67 | } 68 | 69 | .info-box-text { 70 | text-transform: uppercase; 71 | } 72 | 73 | .info-box-more { 74 | display: block; 75 | } 76 | 77 | .progress-description { 78 | margin: 0; 79 | } 80 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/invoice.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Page: Invoice 3 | * ------------- 4 | */ 5 | 6 | .invoice { 7 | position: relative; 8 | background: #fff; 9 | border: 1px solid #f4f4f4; 10 | padding: 20px; 11 | margin: 10px 25px; 12 | } 13 | 14 | .invoice-title { 15 | margin-top: 0; 16 | } 17 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/labels.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Component: Label 7 | * ---------------- 8 | */ 9 | .label-default { 10 | background-color: @gray-lte; 11 | color: #444; 12 | } 13 | 14 | .label-danger { 15 | &:extend(.bg-red); 16 | } 17 | 18 | .label-info { 19 | &:extend(.bg-aqua); 20 | } 21 | 22 | .label-warning { 23 | &:extend(.bg-yellow); 24 | } 25 | 26 | .label-primary { 27 | &:extend(.bg-light-blue); 28 | } 29 | 30 | .label-success { 31 | &:extend(.bg-green); 32 | } 33 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/lockscreen.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Page: Lock Screen 7 | * ----------------- 8 | */ 9 | /* ADD THIS CLASS TO THE TAG */ 10 | .lockscreen { 11 | background: @gray-lte; 12 | } 13 | 14 | .lockscreen-logo { 15 | font-size: 35px; 16 | text-align: center; 17 | margin-bottom: 25px; 18 | font-weight: 300; 19 | a { 20 | color: #444; 21 | } 22 | } 23 | 24 | .lockscreen-wrapper { 25 | max-width: 400px; 26 | margin: 0 auto; 27 | margin-top: 10%; 28 | } 29 | 30 | /* User name [optional] */ 31 | .lockscreen .lockscreen-name { 32 | text-align: center; 33 | font-weight: 600; 34 | } 35 | 36 | /* Will contain the image and the sign in form */ 37 | .lockscreen-item { 38 | .border-radius(4px); 39 | padding: 0; 40 | background: #fff; 41 | position: relative; 42 | margin: 10px auto 30px auto; 43 | width: 290px; 44 | } 45 | 46 | /* User image */ 47 | .lockscreen-image { 48 | .border-radius(50%); 49 | position: absolute; 50 | left: -10px; 51 | top: -25px; 52 | background: #fff; 53 | padding: 5px; 54 | z-index: 10; 55 | > img { 56 | .border-radius(50%); 57 | width: 70px; 58 | height: 70px; 59 | } 60 | } 61 | 62 | /* Contains the password input and the login button */ 63 | .lockscreen-credentials { 64 | margin-left: 70px; 65 | .form-control { 66 | border: 0; 67 | } 68 | .btn { 69 | background-color: #fff; 70 | border: 0; 71 | padding: 0 10px; 72 | } 73 | } 74 | 75 | .lockscreen-footer { 76 | margin-top: 10px; 77 | } 78 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/login_and_register.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | @import (reference) "../bootstrap/variables.import.less"; 6 | /* 7 | * Page: Login & Register 8 | * ---------------------- 9 | */ 10 | 11 | .login-logo, 12 | .register-logo { 13 | font-size: 35px; 14 | text-align: center; 15 | margin-bottom: 25px; 16 | font-weight: 300; 17 | a { 18 | color: #444; 19 | } 20 | } 21 | 22 | .login-page, 23 | .register-page { 24 | background: @gray-lte; 25 | } 26 | 27 | .login-box, 28 | .register-box { 29 | width: 360px; 30 | margin: 7% auto; 31 | @media (max-width: @screen-sm) { 32 | width: 90%; 33 | margin-top: 20px; 34 | } 35 | } 36 | 37 | .login-box-body, 38 | .register-box-body { 39 | background: #fff; 40 | padding: 20px; 41 | border-top: 0; 42 | color: #666; 43 | .form-control-feedback { 44 | color: #777; 45 | } 46 | } 47 | 48 | .login-box-msg, 49 | .register-box-msg { 50 | margin: 0; 51 | text-align: center; 52 | padding: 0 20px 20px 20px; 53 | } 54 | 55 | .social-auth-links { 56 | margin: 10px 0; 57 | } 58 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/mailbox.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Page: Mailbox 7 | * ------------- 8 | */ 9 | .mailbox-messages { 10 | > .table { 11 | margin: 0; 12 | } 13 | } 14 | 15 | .mailbox-controls { 16 | padding: 5px; 17 | &.with-border { 18 | border-bottom: 1px solid @box-border-color; 19 | } 20 | } 21 | 22 | .mailbox-read-info { 23 | border-bottom: 1px solid @box-border-color; 24 | padding: 10px; 25 | h3 { 26 | font-size: 20px; 27 | margin: 0; 28 | } 29 | h5 { 30 | margin: 0; 31 | padding: 5px 0 0 0; 32 | } 33 | } 34 | 35 | .mailbox-read-time { 36 | color: #999; 37 | font-size: 13px; 38 | } 39 | 40 | .mailbox-read-message { 41 | padding: 10px; 42 | } 43 | 44 | .mailbox-attachments { 45 | &:extend(.list-unstyled); 46 | li { 47 | float: left; 48 | width: 200px; 49 | border: 1px solid #eee; 50 | margin-bottom: 10px; 51 | margin-right: 10px; 52 | } 53 | } 54 | 55 | .mailbox-attachment-name { 56 | font-weight: bold; 57 | color: #666; 58 | } 59 | 60 | .mailbox-attachment-icon, 61 | .mailbox-attachment-info, 62 | .mailbox-attachment-size { 63 | display: block; 64 | } 65 | 66 | .mailbox-attachment-info { 67 | padding: 10px; 68 | background: #f4f4f4; 69 | } 70 | 71 | .mailbox-attachment-size { 72 | color: #999; 73 | font-size: 12px; 74 | } 75 | 76 | .mailbox-attachment-icon { 77 | text-align: center; 78 | font-size: 65px; 79 | color: #666; 80 | padding: 20px 10px; 81 | &.has-img { 82 | padding: 0; 83 | > img { 84 | max-width: 100%; 85 | height: auto; 86 | } 87 | } 88 | } 89 | 90 | .mailbox-attachment-close { 91 | &:extend(.close); 92 | } 93 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/modal.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | @import (reference) "../bootstrap/variables.import.less"; 6 | /* 7 | * Component: modal 8 | * ---------------- 9 | */ 10 | .modal { 11 | background: rgba(0, 0, 0, .3); 12 | } 13 | 14 | .modal-content { 15 | .border-radius(0); 16 | .box-shadow(0 2px 3px rgba(0, 0, 0, .125)); 17 | border: 0; 18 | @media (min-width: @screen-sm-min) { 19 | .box-shadow(0 2px 3px rgba(0, 0, 0, .125)); 20 | } 21 | } 22 | 23 | .modal-header { 24 | border-bottom-color: @box-border-color; 25 | } 26 | 27 | .modal-footer { 28 | border-top-color: @box-border-color; 29 | } 30 | 31 | //Modal variants 32 | .modal-primary { 33 | .modal-body { 34 | &:extend(.bg-light-blue); 35 | } 36 | .modal-header, 37 | .modal-footer { 38 | &:extend(.bg-light-blue-active); 39 | border-color: darken(@light-blue, 10%); 40 | } 41 | } 42 | 43 | .modal-warning { 44 | .modal-body { 45 | &:extend(.bg-yellow); 46 | } 47 | .modal-header, 48 | .modal-footer { 49 | &:extend(.bg-yellow-active); 50 | border-color: darken(@yellow, 10%); 51 | } 52 | } 53 | 54 | .modal-info { 55 | .modal-body { 56 | &:extend(.bg-aqua); 57 | } 58 | .modal-header, 59 | .modal-footer { 60 | &:extend(.bg-aqua-active); 61 | border-color: darken(@aqua, 10%); 62 | } 63 | } 64 | 65 | .modal-success { 66 | .modal-body { 67 | &:extend(.bg-green); 68 | } 69 | .modal-header, 70 | .modal-footer { 71 | &:extend(.bg-green-active); 72 | border-color: darken(@green, 10%); 73 | } 74 | } 75 | 76 | .modal-danger { 77 | .modal-body { 78 | &:extend(.bg-red); 79 | } 80 | .modal-header, 81 | .modal-footer { 82 | &:extend(.bg-red-active); 83 | border-color: darken(@red, 10%); 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/plugins.less: -------------------------------------------------------------------------------- 1 | // Customized third-party plugins 2 | @import "bootstrap-social.less"; 3 | @import "fullcalendar.less"; 4 | @import "select2.less"; 5 | @import "datepicker"; -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/print.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | @import (reference) "../bootstrap/variables.import.less"; 6 | /* 7 | * Misc: print 8 | * ----------- 9 | */ 10 | @media print { 11 | //Add to elements that you do not want to show when printing 12 | .no-print { 13 | display: none !important; 14 | } 15 | 16 | //Elements that we want to hide when printing 17 | .main-sidebar, 18 | .left-side, 19 | .main-header, 20 | .content-header { 21 | &:extend(.no-print); 22 | } 23 | 24 | //This is the only element that should appear, so let's remove the margins 25 | .content-wrapper, 26 | .right-side, 27 | .main-footer { 28 | margin-left: 0 !important; 29 | min-height: 0 !important; 30 | .translate(0, 0) !important; 31 | } 32 | 33 | .fixed .content-wrapper, 34 | .fixed .right-side { 35 | padding-top: 0 !important; 36 | } 37 | 38 | //Invoice printing 39 | .invoice { 40 | width: 100%; 41 | border: 0; 42 | margin: 0; 43 | padding: 0; 44 | } 45 | 46 | .invoice-col { 47 | float: left; 48 | width: 33.3333333%; 49 | } 50 | 51 | //Make sure table content displays properly 52 | .table-responsive { 53 | overflow: auto; 54 | > .table tr th, 55 | > .table tr td { 56 | white-space: normal !important; 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/products.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Component: Products List 7 | * ------------------------ 8 | */ 9 | .products-list { 10 | list-style: none; 11 | margin: 0; 12 | padding: 0; 13 | > .item { 14 | .border-radius(@box-border-radius); 15 | .box-shadow(@box-boxshadow); 16 | .clearfix(); 17 | padding: 10px 0; 18 | background: #fff; 19 | } 20 | .product-img { 21 | float: left; 22 | img { 23 | width: 50px; 24 | height: 50px; 25 | } 26 | } 27 | .product-info { 28 | margin-left: 60px; 29 | } 30 | .product-title { 31 | font-weight: 600; 32 | } 33 | .product-description { 34 | display: block; 35 | color: #999; 36 | overflow: hidden; 37 | white-space: nowrap; 38 | text-overflow: ellipsis; 39 | } 40 | } 41 | 42 | .product-list-in-box > .item { 43 | .box-shadow(none); 44 | .border-radius(0); 45 | border-bottom: 1px solid @box-border-color; 46 | &:last-of-type { 47 | border-bottom-width: 0; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/profile.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Page: Profile 7 | * ------------- 8 | */ 9 | 10 | .profile-user-img { 11 | margin: 0 auto; 12 | width: 100px; 13 | padding: 3px; 14 | border: 3px solid @gray-lte; 15 | } 16 | 17 | .profile-username { 18 | font-size: 21px; 19 | margin-top: 5px; 20 | } 21 | 22 | .post { 23 | border-bottom: 1px solid @gray-lte; 24 | margin-bottom: 15px; 25 | padding-bottom: 15px; 26 | color: #666; 27 | &:last-of-type { 28 | border-bottom: 0; 29 | margin-bottom: 0; 30 | padding-bottom: 0; 31 | } 32 | .user-block { 33 | margin-bottom: 15px; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/progress-bars.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | @import (reference) "../bootstrap/variables.import.less"; 6 | /* 7 | * Component: Progress Bar 8 | * ----------------------- 9 | */ 10 | 11 | //General CSS 12 | .progress, 13 | .progress > .progress-bar { 14 | .box-shadow(none); 15 | &, .progress-bar { 16 | .border-radius(@progress-bar-border-radius); 17 | } 18 | } 19 | 20 | /* size variation */ 21 | .progress.sm, 22 | .progress-sm { 23 | height: 10px; 24 | &, .progress-bar { 25 | .border-radius(@progress-bar-sm-border-radius); 26 | } 27 | } 28 | 29 | .progress.xs, 30 | .progress-xs { 31 | height: 7px; 32 | &, .progress-bar { 33 | .border-radius(@progress-bar-xs-border-radius); 34 | } 35 | } 36 | 37 | .progress.xxs, 38 | .progress-xxs { 39 | height: 3px; 40 | &, .progress-bar { 41 | .border-radius(@progress-bar-xs-border-radius); 42 | } 43 | } 44 | 45 | /* Vertical bars */ 46 | .progress.vertical { 47 | position: relative; 48 | width: 30px; 49 | height: 200px; 50 | display: inline-block; 51 | margin-right: 10px; 52 | > .progress-bar { 53 | width: 100%; 54 | position: absolute; 55 | bottom: 0; 56 | } 57 | 58 | //Sizes 59 | &.sm, 60 | &.progress-sm { 61 | width: 20px; 62 | } 63 | 64 | &.xs, 65 | &.progress-xs { 66 | width: 10px; 67 | } 68 | &.xxs, 69 | &.progress-xxs { 70 | width: 3px; 71 | } 72 | } 73 | 74 | //Progress Groups 75 | .progress-group { 76 | .progress-text { 77 | font-weight: 600; 78 | } 79 | .progress-number { 80 | float: right; 81 | } 82 | } 83 | 84 | /* Remove margins from progress bars when put in a table */ 85 | .table { 86 | tr > td .progress { 87 | margin: 0; 88 | } 89 | } 90 | 91 | // Variations 92 | // ------------------------- 93 | .progress-bar-light-blue, 94 | .progress-bar-primary { 95 | .progress-bar-variant(@light-blue); 96 | } 97 | 98 | .progress-bar-green, 99 | .progress-bar-success { 100 | .progress-bar-variant(@green); 101 | } 102 | 103 | .progress-bar-aqua, 104 | .progress-bar-info { 105 | .progress-bar-variant(@aqua); 106 | } 107 | 108 | .progress-bar-yellow, 109 | .progress-bar-warning { 110 | .progress-bar-variant(@yellow); 111 | } 112 | 113 | .progress-bar-red, 114 | .progress-bar-danger { 115 | .progress-bar-variant(@red); 116 | } 117 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/select2.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Plugin: Select2 3 | * --------------- 4 | */ 5 | 6 | // Import variables and mixins as a reference for separate plugins version 7 | @import (reference) "../bootstrap/mixins.import.less"; 8 | @import (reference) "../bootstrap/variables.import.less"; 9 | @import (reference) "variables"; 10 | @import (reference) "mixins"; 11 | 12 | //Signle select 13 | .select2-container--default, 14 | .select2-selection { 15 | &.select2-container--focus, 16 | &:focus, 17 | &:active { 18 | outline: none; 19 | } 20 | .select2-selection--single { 21 | border: 1px solid @gray-lte; 22 | border-radius: @input-radius; 23 | padding: 6px 12px; 24 | height: 34px; 25 | } 26 | } 27 | 28 | .select2-container--default.select2-container--open { 29 | border-color: @light-blue; 30 | } 31 | 32 | .select2-dropdown { 33 | border: 1px solid @gray-lte; 34 | border-radius: @input-radius; 35 | } 36 | 37 | .select2-container--default .select2-results__option--highlighted[aria-selected] { 38 | background-color: @light-blue; 39 | color: white; 40 | } 41 | 42 | .select2-results__option { 43 | padding: 6px 12px; 44 | user-select: none; 45 | -webkit-user-select: none; 46 | } 47 | 48 | .select2-container .select2-selection--single .select2-selection__rendered { 49 | padding-left: 0; 50 | padding-right: 0; 51 | height: auto; 52 | margin-top: -4px; 53 | } 54 | 55 | .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered { 56 | padding-right: 6px; 57 | padding-left: 20px; 58 | } 59 | 60 | .select2-container--default .select2-selection--single .select2-selection__arrow { 61 | height: 28px; 62 | right: 3px; 63 | } 64 | 65 | .select2-container--default .select2-selection--single .select2-selection__arrow b { 66 | margin-top: 0; 67 | } 68 | 69 | .select2-dropdown, 70 | .select2-search--inline { 71 | .select2-search__field { 72 | border: 1px solid @gray-lte; 73 | &:focus { 74 | outline: none; 75 | //border: 1px solid @light-blue; 76 | } 77 | } 78 | } 79 | 80 | .select2-container--default.select2-container--focus .select2-selection--multiple, 81 | .select2-container--default .select2-search--dropdown .select2-search__field { 82 | border-color: @light-blue !important; 83 | } 84 | 85 | .select2-container--default .select2-results__option[aria-disabled=true] { 86 | color: #999; 87 | } 88 | 89 | .select2-container--default .select2-results__option[aria-selected=true] { 90 | background-color: #ddd; 91 | &, 92 | &:hover { 93 | color: #444; 94 | } 95 | } 96 | 97 | //Multiple select 98 | .select2-container--default { 99 | .select2-selection--multiple { 100 | border: 1px solid @gray-lte; 101 | border-radius: @input-radius; 102 | &:focus { 103 | border-color: @light-blue; 104 | } 105 | } 106 | &.select2-container--focus .select2-selection--multiple { 107 | border-color: @gray-lte; 108 | } 109 | } 110 | 111 | .select2-container--default .select2-selection--multiple .select2-selection__choice { 112 | background-color: @light-blue; 113 | border-color: darken(@light-blue, 5%); 114 | padding: 1px 10px; 115 | color: #fff; 116 | } 117 | 118 | .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { 119 | margin-right: 5px; 120 | color: rgba(255, 255, 255, .7); 121 | &:hover { 122 | color: #fff; 123 | } 124 | } 125 | 126 | .select2-container .select2-selection--single .select2-selection__rendered { 127 | padding-right: 10px; 128 | } 129 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/sidebar.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Component: Sidebar 7 | * ------------------ 8 | */ 9 | // Main Sidebar 10 | .main-sidebar { 11 | position: absolute; 12 | top: 0; 13 | left: 0; 14 | padding-top: 50px; 15 | min-height: 100%; 16 | width: @sidebar-width; 17 | z-index: 810; 18 | 19 | // Using disposable variable to join statements with a comma 20 | @transition-rule: @transition-speed @transition-fn, width @transition-speed @transition-fn; 21 | .transition-transform(@transition-rule); 22 | 23 | @media (max-width: @screen-header-collapse) { 24 | padding-top: 100px; 25 | } 26 | 27 | @media (max-width: @screen-xs-max) { 28 | .translate(-@sidebar-width, 0); 29 | } 30 | 31 | .sidebar-collapse & { 32 | @media (min-width: @screen-sm) { 33 | .translate(-@sidebar-width, 0); 34 | } 35 | } 36 | 37 | .sidebar-open & { 38 | @media (max-width: @screen-xs-max) { 39 | .translate(0, 0); 40 | } 41 | } 42 | } 43 | 44 | .sidebar { 45 | padding-bottom: 10px; 46 | } 47 | 48 | // Remove border from form 49 | .sidebar-form { 50 | input:focus { 51 | border-color: transparent; 52 | } 53 | } 54 | 55 | // Sidebar user panel 56 | .user-panel { 57 | position: relative; 58 | width: 100%; 59 | padding: 10px; 60 | overflow: hidden; 61 | .clearfix(); 62 | > .image > img { 63 | width: 100%; 64 | max-width: 45px; 65 | height: auto; 66 | } 67 | > .info { 68 | padding: 5px 5px 5px 15px; 69 | line-height: 1; 70 | position: absolute; 71 | left: 55px; 72 | > p { 73 | font-weight: 600; 74 | margin-bottom: 9px; 75 | } 76 | > a { 77 | text-decoration: none; 78 | padding-right: 5px; 79 | margin-top: 3px; 80 | font-size: 11px; 81 | > .fa, 82 | > .ion, 83 | > .glyphicon { 84 | margin-right: 3px; 85 | } 86 | } 87 | } 88 | } 89 | 90 | // Sidebar menu 91 | .sidebar-menu { 92 | list-style: none; 93 | margin: 0; 94 | padding: 0; 95 | //First Level 96 | > li { 97 | position: relative; 98 | margin: 0; 99 | padding: 0; 100 | > a { 101 | padding: 12px 5px 12px 15px; 102 | display: block; 103 | > .fa, 104 | > .glyphicon, 105 | > .ion { 106 | width: 20px; 107 | } 108 | } 109 | .label, 110 | .badge { 111 | margin-right: 5px; 112 | } 113 | .badge { 114 | margin-top: 3px; 115 | } 116 | } 117 | li.header { 118 | padding: 10px 25px 10px 15px; 119 | font-size: 12px; 120 | } 121 | li > a > .fa-angle-left, 122 | li > a > .pull-right-container > .fa-angle-left { 123 | width: auto; 124 | height: auto; 125 | padding: 0; 126 | margin-right: 10px; 127 | .transition(transform .5s ease); 128 | } 129 | li > a > .fa-angle-left { 130 | position: absolute; 131 | top: 50%; 132 | right: 10px; 133 | margin-top: -8px; 134 | } 135 | 136 | .menu-open { 137 | > a > .fa-angle-left, 138 | > a > .pull-right-container > .fa-angle-left { 139 | .rotate(-90deg); 140 | } 141 | } 142 | .active > .treeview-menu { 143 | display: block; 144 | } 145 | } 146 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/_all-skins.less: -------------------------------------------------------------------------------- 1 | //All skins in one file 2 | @import "skin-blue.less"; 3 | @import "skin-blue-light.less"; 4 | @import "skin-black.less"; 5 | @import "skin-black-light.less"; 6 | @import "skin-green.less"; 7 | @import "skin-green-light.less"; 8 | @import "skin-red.less"; 9 | @import "skin-red-light.less"; 10 | @import "skin-yellow.less"; 11 | @import "skin-yellow-light.less"; 12 | @import "skin-purple.less"; 13 | @import "skin-purple-light.less"; 14 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/skin-black-light.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Black 3 | * ----------- 4 | */ 5 | @import "../../bootstrap/mixins.import.less"; 6 | @import "../../bootstrap/variables.import.less"; 7 | @import "../variables.less"; 8 | @import "../mixins.less"; 9 | 10 | /* skin-black navbar */ 11 | .skin-black-light { 12 | //Navbar & Logo 13 | .main-header { 14 | //.box-shadow(0px 1px 1px rgba(0, 0, 0, 0.05)); 15 | border-bottom: 1px solid @gray-lte; 16 | .navbar-toggle { 17 | color: #333; 18 | } 19 | .navbar-brand { 20 | color: #333; 21 | border-right: 1px solid @gray-lte; 22 | } 23 | .navbar { 24 | .navbar-variant(#fff; #333; #999; #fff); 25 | > .sidebar-toggle { 26 | color: #333; 27 | border-right: 1px solid @gray-lte; 28 | } 29 | .navbar-nav { 30 | > li > a { 31 | border-right: 1px solid @gray-lte; 32 | } 33 | } 34 | .navbar-custom-menu .navbar-nav, 35 | .navbar-right { 36 | > li { 37 | > a { 38 | border-left: 1px solid @gray-lte; 39 | border-right-width: 0; 40 | } 41 | } 42 | } 43 | } 44 | > .logo { 45 | .logo-variant(#fff; #333); 46 | border-right: 1px solid @gray-lte; 47 | @media (max-width: @screen-header-collapse) { 48 | .logo-variant(#222; #fff); 49 | border-right: none; 50 | } 51 | } 52 | 53 | li.user-header { 54 | background-color: #222; 55 | } 56 | } 57 | 58 | //Content Header 59 | .content-header { 60 | background: transparent; 61 | box-shadow: none; 62 | } 63 | //Create the sidebar skin 64 | .skin-light-sidebar(#fff); 65 | } -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/skin-black.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Black 3 | * ----------- 4 | */ 5 | @import "../../bootstrap/mixins.import.less"; 6 | @import "../../bootstrap/variables.import.less"; 7 | @import "../variables.less"; 8 | @import "../mixins.less"; 9 | 10 | /* skin-black navbar */ 11 | .skin-black { 12 | //Navbar & Logo 13 | .main-header { 14 | .box-shadow(0px 1px 1px rgba(0, 0, 0, 0.05)); 15 | .navbar-toggle { 16 | color: #333; 17 | } 18 | .navbar-brand { 19 | color: #333; 20 | border-right: 1px solid #eee; 21 | } 22 | .navbar { 23 | .navbar-variant(#fff; #333; #999; #fff); 24 | > .sidebar-toggle { 25 | color: #333; 26 | border-right: 1px solid #eee; 27 | } 28 | .navbar-nav { 29 | > li > a { 30 | border-right: 1px solid #eee; 31 | } 32 | } 33 | .navbar-custom-menu .navbar-nav, 34 | .navbar-right { 35 | > li { 36 | > a { 37 | border-left: 1px solid #eee; 38 | border-right-width: 0; 39 | } 40 | } 41 | } 42 | } 43 | > .logo { 44 | .logo-variant(#fff; #333); 45 | border-right: 1px solid #eee; 46 | @media (max-width: @screen-header-collapse) { 47 | .logo-variant(#222; #fff); 48 | border-right: none; 49 | } 50 | } 51 | 52 | li.user-header { 53 | background-color: #222; 54 | } 55 | } 56 | 57 | //Content Header 58 | .content-header { 59 | background: transparent; 60 | box-shadow: none; 61 | } 62 | //Create the sidebar skin 63 | .skin-dark-sidebar(#fff); 64 | 65 | .pace { 66 | .pace-progress { 67 | background: #222; 68 | } 69 | .pace-activity { 70 | border-top-color: #222; 71 | border-left-color: #222; 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/skin-blue-light.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Blue 3 | * ---------- 4 | */ 5 | @import "../../bootstrap/mixins.import.less"; 6 | @import "../../bootstrap/variables.import.less"; 7 | @import "../variables.less"; 8 | @import "../mixins.less"; 9 | 10 | .skin-blue-light { 11 | //Navbar 12 | .main-header { 13 | .navbar { 14 | .navbar-variant(@light-blue; #fff); 15 | .sidebar-toggle { 16 | color: #fff; 17 | &:hover { 18 | background-color: darken(@light-blue, 5%); 19 | } 20 | } 21 | @media (max-width: @screen-header-collapse) { 22 | .dropdown-menu { 23 | li { 24 | &.divider { 25 | background-color: rgba(255, 255, 255, 0.1); 26 | } 27 | a { 28 | color: #fff; 29 | &:hover { 30 | background: darken(@light-blue, 5%); 31 | } 32 | } 33 | } 34 | } 35 | } 36 | } 37 | //Logo 38 | .logo { 39 | .logo-variant(@light-blue); 40 | } 41 | 42 | li.user-header { 43 | background-color: @light-blue; 44 | } 45 | } 46 | 47 | //Content Header 48 | .content-header { 49 | background: transparent; 50 | } 51 | 52 | //Create the sidebar skin 53 | .skin-light-sidebar(@light-blue); 54 | .main-footer { 55 | border-top-color: @gray-lte; 56 | } 57 | } 58 | 59 | .skin-blue.layout-top-nav .main-header > .logo { 60 | .logo-variant(@light-blue); 61 | } 62 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/skin-blue.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Blue 3 | * ---------- 4 | */ 5 | @import "../../bootstrap/mixins.import.less"; 6 | @import "../../bootstrap/variables.import.less"; 7 | @import "../variables.less"; 8 | @import "../mixins.less"; 9 | 10 | .skin-blue { 11 | //Navbar 12 | .main-header { 13 | .navbar { 14 | .navbar-variant(@light-blue; #fff); 15 | .sidebar-toggle { 16 | color: #fff; 17 | &:hover { 18 | background-color: darken(@light-blue, 5%); 19 | } 20 | } 21 | @media (max-width: @screen-header-collapse) { 22 | .dropdown-menu { 23 | li { 24 | &.divider { 25 | background-color: rgba(255, 255, 255, 0.1); 26 | } 27 | a { 28 | color: #fff; 29 | &:hover { 30 | background: darken(@light-blue, 5%); 31 | } 32 | } 33 | } 34 | } 35 | } 36 | } 37 | //Logo 38 | .logo { 39 | .logo-variant(darken(@light-blue, 5%)); 40 | } 41 | 42 | li.user-header { 43 | background-color: @light-blue; 44 | } 45 | } 46 | 47 | //Content Header 48 | .content-header { 49 | background: transparent; 50 | } 51 | 52 | //Create the sidebar skin 53 | .skin-dark-sidebar(@light-blue); 54 | } 55 | 56 | .skin-blue.layout-top-nav .main-header > .logo { 57 | .logo-variant(@light-blue); 58 | } 59 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/skin-green-light.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Green 3 | * ----------- 4 | */ 5 | @import "../../bootstrap/mixins.import.less"; 6 | @import "../../bootstrap/variables.import.less"; 7 | @import "../variables.less"; 8 | @import "../mixins.less"; 9 | 10 | .skin-green-light { 11 | //Navbar 12 | .main-header { 13 | .navbar { 14 | .navbar-variant(@green; #fff); 15 | .sidebar-toggle { 16 | color: #fff; 17 | &:hover { 18 | background-color: darken(@green, 5%); 19 | } 20 | } 21 | @media (max-width: @screen-header-collapse) { 22 | .dropdown-menu { 23 | li { 24 | &.divider { 25 | background-color: rgba(255, 255, 255, 0.1); 26 | } 27 | a { 28 | color: #fff; 29 | &:hover { 30 | background: darken(@green, 5%); 31 | } 32 | } 33 | } 34 | } 35 | } 36 | } 37 | //Logo 38 | .logo { 39 | .logo-variant(@green); 40 | } 41 | 42 | li.user-header { 43 | background-color: @green; 44 | } 45 | } 46 | 47 | //Content Header 48 | .content-header { 49 | background: transparent; 50 | } 51 | 52 | //Create the sidebar skin 53 | .skin-light-sidebar(@green); 54 | 55 | } 56 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/skin-green.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Green 3 | * ----------- 4 | */ 5 | @import "../../bootstrap/mixins.import.less"; 6 | @import "../../bootstrap/variables.import.less"; 7 | @import "../variables.less"; 8 | @import "../mixins.less"; 9 | 10 | .skin-green { 11 | //Navbar 12 | .main-header { 13 | .navbar { 14 | .navbar-variant(@green; #fff); 15 | .sidebar-toggle { 16 | color: #fff; 17 | &:hover { 18 | background-color: darken(@green, 5%); 19 | } 20 | } 21 | @media (max-width: @screen-header-collapse) { 22 | .dropdown-menu { 23 | li { 24 | &.divider { 25 | background-color: rgba(255, 255, 255, 0.1); 26 | } 27 | a { 28 | color: #fff; 29 | &:hover { 30 | background: darken(@green, 5%); 31 | } 32 | } 33 | } 34 | } 35 | } 36 | } 37 | //Logo 38 | .logo { 39 | .logo-variant(darken(@green, 5%)); 40 | } 41 | 42 | li.user-header { 43 | background-color: @green; 44 | } 45 | } 46 | 47 | //Content Header 48 | .content-header { 49 | background: transparent; 50 | } 51 | 52 | //Create the sidebar skin 53 | .skin-dark-sidebar(@green); 54 | 55 | } 56 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/skin-purple-light.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Purple 3 | * ------------ 4 | */ 5 | @import "../../bootstrap/mixins.import.less"; 6 | @import "../../bootstrap/variables.import.less"; 7 | @import "../variables.less"; 8 | @import "../mixins.less"; 9 | 10 | .skin-purple-light { 11 | //Navbar 12 | .main-header { 13 | .navbar { 14 | .navbar-variant(@purple; #fff); 15 | .sidebar-toggle { 16 | color: #fff; 17 | &:hover { 18 | background-color: darken(@purple, 5%); 19 | } 20 | } 21 | @media (max-width: @screen-header-collapse) { 22 | .dropdown-menu { 23 | li { 24 | &.divider { 25 | background-color: rgba(255, 255, 255, 0.1); 26 | } 27 | a { 28 | color: #fff; 29 | &:hover { 30 | background: darken(@purple, 5%); 31 | } 32 | } 33 | } 34 | } 35 | } 36 | } 37 | //Logo 38 | .logo { 39 | .logo-variant(@purple); 40 | } 41 | 42 | li.user-header { 43 | background-color: @purple; 44 | } 45 | } 46 | 47 | //Content Header 48 | .content-header { 49 | background: transparent; 50 | } 51 | 52 | //Create the sidebar skin 53 | .skin-light-sidebar(@purple); 54 | } 55 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/skin-purple.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Purple 3 | * ------------ 4 | */ 5 | @import "../../bootstrap/mixins.import.less"; 6 | @import "../../bootstrap/variables.import.less"; 7 | @import "../variables.less"; 8 | @import "../mixins.less"; 9 | 10 | .skin-purple { 11 | //Navbar 12 | .main-header { 13 | .navbar { 14 | .navbar-variant(@purple; #fff); 15 | .sidebar-toggle { 16 | color: #fff; 17 | &:hover { 18 | background-color: darken(@purple, 5%); 19 | } 20 | } 21 | @media (max-width: @screen-header-collapse) { 22 | .dropdown-menu { 23 | li { 24 | &.divider { 25 | background-color: rgba(255, 255, 255, 0.1); 26 | } 27 | a { 28 | color: #fff; 29 | &:hover { 30 | background: darken(@purple, 5%); 31 | } 32 | } 33 | } 34 | } 35 | } 36 | } 37 | //Logo 38 | .logo { 39 | .logo-variant(darken(@purple, 5%)); 40 | } 41 | 42 | li.user-header { 43 | background-color: @purple; 44 | } 45 | } 46 | 47 | //Content Header 48 | .content-header { 49 | background: transparent; 50 | } 51 | 52 | //Create the sidebar skin 53 | .skin-dark-sidebar(@purple); 54 | } 55 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/skin-red-light.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Red 3 | * --------- 4 | */ 5 | @import "../../bootstrap/mixins.import.less"; 6 | @import "../../bootstrap/variables.import.less"; 7 | @import "../variables.less"; 8 | @import "../mixins.less"; 9 | 10 | .skin-red-light { 11 | //Navbar 12 | .main-header { 13 | .navbar { 14 | .navbar-variant(@red; #fff); 15 | .sidebar-toggle { 16 | color: #fff; 17 | &:hover { 18 | background-color: darken(@red, 5%); 19 | } 20 | } 21 | @media (max-width: @screen-header-collapse) { 22 | .dropdown-menu { 23 | li { 24 | &.divider { 25 | background-color: rgba(255, 255, 255, 0.1); 26 | } 27 | a { 28 | color: #fff; 29 | &:hover { 30 | background: darken(@red, 5%); 31 | } 32 | } 33 | } 34 | } 35 | } 36 | } 37 | //Logo 38 | .logo { 39 | .logo-variant(@red); 40 | } 41 | 42 | li.user-header { 43 | background-color: @red; 44 | } 45 | } 46 | 47 | //Content Header 48 | .content-header { 49 | background: transparent; 50 | } 51 | 52 | //Create the sidebar skin 53 | .skin-light-sidebar(@red); 54 | } 55 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/skin-red.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Red 3 | * --------- 4 | */ 5 | @import "../../bootstrap/mixins.import.less"; 6 | @import "../../bootstrap/variables.import.less"; 7 | @import "../variables.less"; 8 | @import "../mixins.less"; 9 | 10 | .skin-red { 11 | //Navbar 12 | .main-header { 13 | .navbar { 14 | .navbar-variant(@red; #fff); 15 | .sidebar-toggle { 16 | color: #fff; 17 | &:hover { 18 | background-color: darken(@red, 5%); 19 | } 20 | } 21 | @media (max-width: @screen-header-collapse) { 22 | .dropdown-menu { 23 | li { 24 | &.divider { 25 | background-color: rgba(255, 255, 255, 0.1); 26 | } 27 | a { 28 | color: #fff; 29 | &:hover { 30 | background: darken(@red, 5%); 31 | } 32 | } 33 | } 34 | } 35 | } 36 | } 37 | //Logo 38 | .logo { 39 | .logo-variant(darken(@red, 5%)); 40 | } 41 | 42 | li.user-header { 43 | background-color: @red; 44 | } 45 | } 46 | 47 | //Content Header 48 | .content-header { 49 | background: transparent; 50 | } 51 | 52 | //Create the sidebar skin 53 | .skin-dark-sidebar(@red); 54 | } 55 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/skin-yellow-light.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Yellow 3 | * ------------ 4 | */ 5 | @import "../../bootstrap/mixins.import.less"; 6 | @import "../../bootstrap/variables.import.less"; 7 | @import "../variables.less"; 8 | @import "../mixins.less"; 9 | 10 | .skin-yellow-light { 11 | //Navbar 12 | .main-header { 13 | .navbar { 14 | .navbar-variant(@yellow; #fff); 15 | .sidebar-toggle { 16 | color: #fff; 17 | &:hover { 18 | background-color: darken(@yellow, 5%); 19 | } 20 | } 21 | @media (max-width: @screen-header-collapse) { 22 | .dropdown-menu { 23 | li { 24 | &.divider { 25 | background-color: rgba(255, 255, 255, 0.1); 26 | } 27 | a { 28 | color: #fff; 29 | &:hover { 30 | background: darken(@yellow, 5%); 31 | } 32 | } 33 | } 34 | } 35 | } 36 | } 37 | //Logo 38 | .logo { 39 | .logo-variant(@yellow); 40 | } 41 | 42 | li.user-header { 43 | background-color: @yellow; 44 | } 45 | } 46 | 47 | //Content Header 48 | .content-header { 49 | background: transparent; 50 | } 51 | 52 | //Create the sidebar skin 53 | .skin-light-sidebar(@yellow); 54 | } 55 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/skins/skin-yellow.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Yellow 3 | * ------------ 4 | */ 5 | @import "../../bootstrap/mixins.import.less"; 6 | @import "../../bootstrap/variables.import.less"; 7 | @import "../variables.less"; 8 | @import "../mixins.less"; 9 | 10 | .skin-yellow { 11 | //Navbar 12 | .main-header { 13 | .navbar { 14 | .navbar-variant(@yellow; #fff); 15 | .sidebar-toggle { 16 | color: #fff; 17 | &:hover { 18 | background-color: darken(@yellow, 5%); 19 | } 20 | } 21 | @media (max-width: @screen-header-collapse) { 22 | .dropdown-menu { 23 | li { 24 | &.divider { 25 | background-color: rgba(255, 255, 255, 0.1); 26 | } 27 | a { 28 | color: #fff; 29 | &:hover { 30 | background: darken(@yellow, 5%); 31 | } 32 | } 33 | } 34 | } 35 | } 36 | } 37 | //Logo 38 | .logo { 39 | .logo-variant(darken(@yellow, 5%)); 40 | } 41 | 42 | li.user-header { 43 | background-color: @yellow; 44 | } 45 | } 46 | 47 | //Content Header 48 | .content-header { 49 | background: transparent; 50 | } 51 | 52 | //Create the sidebar skin 53 | .skin-dark-sidebar(@yellow); 54 | } 55 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/small-box.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Component: Small Box 7 | * -------------------- 8 | */ 9 | 10 | .small-box { 11 | .border-radius(2px); 12 | position: relative; 13 | display: block; 14 | margin-bottom: 20px; 15 | box-shadow: @box-boxshadow; 16 | // content wrapper 17 | > .inner { 18 | padding: 10px; 19 | } 20 | 21 | > .small-box-footer { 22 | position: relative; 23 | text-align: center; 24 | padding: 3px 0; 25 | color: #fff; 26 | color: rgba(255, 255, 255, 0.8); 27 | display: block; 28 | z-index: 10; 29 | background: rgba(0, 0, 0, 0.1); 30 | text-decoration: none; 31 | &:hover { 32 | color: #fff; 33 | background: rgba(0, 0, 0, 0.15); 34 | } 35 | } 36 | 37 | h3 { 38 | font-size: 38px; 39 | font-weight: bold; 40 | margin: 0 0 10px 0; 41 | white-space: nowrap; 42 | padding: 0; 43 | 44 | } 45 | 46 | p { 47 | font-size: 15px; 48 | > small { 49 | display: block; 50 | color: #f9f9f9; 51 | font-size: 13px; 52 | margin-top: 5px; 53 | } 54 | } 55 | 56 | h3, p { 57 | z-index: 5; 58 | } 59 | 60 | // the icon 61 | .icon { 62 | .transition(all @transition-speed linear); 63 | position: absolute; 64 | top: -10px; 65 | right: 10px; 66 | z-index: 0; 67 | font-size: 90px; 68 | color: rgba(0, 0, 0, 0.15); 69 | } 70 | 71 | // Small box hover state 72 | &:hover { 73 | text-decoration: none; 74 | color: #f9f9f9; 75 | // Animate icons on small box hover 76 | .icon { 77 | font-size: 95px; 78 | } 79 | } 80 | } 81 | 82 | @media (max-width: @screen-xs-max) { 83 | // No need for icons on very small devices 84 | .small-box { 85 | text-align: center; 86 | .icon { 87 | display: none; 88 | } 89 | p { 90 | font-size: 12px; 91 | } 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/social-widgets.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | @import (reference) "../bootstrap/variables.import.less"; 6 | /* 7 | * Component: Social Widgets 8 | * ------------------------- 9 | */ 10 | //General widget style 11 | .box-widget { 12 | border: none; 13 | position: relative; 14 | } 15 | 16 | //User Widget Style 1 17 | .widget-user { 18 | //User name container 19 | .widget-user-header { 20 | padding: 20px; 21 | height: 120px; 22 | .border-top-radius(@box-border-radius); 23 | } 24 | //User name 25 | .widget-user-username { 26 | margin-top: 0; 27 | margin-bottom: 5px; 28 | font-size: 25px; 29 | font-weight: 300; 30 | text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); 31 | } 32 | //User single line description 33 | .widget-user-desc { 34 | margin-top: 0; 35 | } 36 | //User image container 37 | .widget-user-image { 38 | position: absolute; 39 | top: 65px; 40 | left: 50%; 41 | margin-left: -45px; 42 | > img { 43 | width: 90px; 44 | height: auto; 45 | border: 3px solid #fff; 46 | } 47 | } 48 | .box-footer { 49 | padding-top: 30px; 50 | } 51 | } 52 | 53 | //User Widget Style 2 54 | .widget-user-2 { 55 | //User name container 56 | .widget-user-header { 57 | padding: 20px; 58 | .border-top-radius(@box-border-radius); 59 | } 60 | //User name 61 | .widget-user-username { 62 | margin-top: 5px; 63 | margin-bottom: 5px; 64 | font-size: 25px; 65 | font-weight: 300; 66 | } 67 | //User single line description 68 | .widget-user-desc { 69 | margin-top: 0; 70 | } 71 | .widget-user-username, 72 | .widget-user-desc { 73 | margin-left: 75px; 74 | } 75 | //User image container 76 | .widget-user-image { 77 | > img { 78 | width: 65px; 79 | height: auto; 80 | float: left; 81 | } 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/table.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | /* 5 | * Component: Table 6 | * ---------------- 7 | */ 8 | 9 | .table { 10 | //Cells 11 | > thead, 12 | > tbody, 13 | > tfoot { 14 | > tr { 15 | > th, 16 | > td { 17 | border-top: 1px solid @box-border-color; 18 | } 19 | } 20 | } 21 | //thead cells 22 | > thead > tr > th { 23 | border-bottom: 2px solid @box-border-color; 24 | } 25 | //progress bars in tables 26 | tr td .progress { 27 | margin-top: 5px; 28 | } 29 | } 30 | 31 | //Bordered Table 32 | .table-bordered { 33 | border: 1px solid @box-border-color; 34 | > thead, 35 | > tbody, 36 | > tfoot { 37 | > tr { 38 | > th, 39 | > td { 40 | border: 1px solid @box-border-color; 41 | } 42 | } 43 | } 44 | > thead > tr { 45 | > th, 46 | > td { 47 | border-bottom-width: 2px; 48 | } 49 | } 50 | } 51 | 52 | .table.no-border { 53 | &, 54 | td, 55 | th { 56 | border: 0; 57 | } 58 | } 59 | 60 | /* .text-center in tables */ 61 | table.text-center { 62 | &, td, th { 63 | text-align: center; 64 | } 65 | } 66 | 67 | .table.align { 68 | th { 69 | text-align: left; 70 | } 71 | td { 72 | text-align: right; 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/timeline.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | /* 6 | * Component: Timeline 7 | * ------------------- 8 | */ 9 | 10 | .timeline { 11 | position: relative; 12 | margin: 0 0 30px 0; 13 | padding: 0; 14 | list-style: none; 15 | 16 | // The line 17 | &:before { 18 | content: ''; 19 | position: absolute; 20 | top: 0; 21 | bottom: 0; 22 | width: 4px; 23 | background: #ddd; 24 | left: 31px; 25 | margin: 0; 26 | .border-radius(2px); 27 | } 28 | 29 | > li { 30 | position: relative; 31 | margin-right: 10px; 32 | margin-bottom: 15px; 33 | .clearfix(); 34 | 35 | // The content 36 | > .timeline-item { 37 | .box-shadow(@box-boxshadow); 38 | .border-radius(@box-border-radius); 39 | margin-top: 0; 40 | background: #fff; 41 | color: #444; 42 | margin-left: 60px; 43 | margin-right: 15px; 44 | padding: 0; 45 | position: relative; 46 | 47 | // The time and header 48 | > .time { 49 | color: #999; 50 | float: right; 51 | padding: 10px; 52 | font-size: 12px; 53 | } 54 | > .timeline-header { 55 | margin: 0; 56 | color: #555; 57 | border-bottom: 1px solid @box-border-color; 58 | padding: 10px; 59 | font-size: 16px; 60 | line-height: 1.1; 61 | > a { 62 | font-weight: 600; 63 | } 64 | } 65 | // Item body and footer 66 | > .timeline-body, > .timeline-footer { 67 | padding: 10px; 68 | } 69 | 70 | } 71 | 72 | // The icons 73 | > .fa, 74 | > .glyphicon, 75 | > .ion { 76 | width: 30px; 77 | height: 30px; 78 | font-size: 15px; 79 | line-height: 30px; 80 | position: absolute; 81 | color: #666; 82 | background: @gray-lte; 83 | border-radius: 50%; 84 | text-align: center; 85 | left: 18px; 86 | top: 0; 87 | } 88 | } 89 | 90 | // Time label 91 | > .time-label { 92 | > span { 93 | font-weight: 600; 94 | padding: 5px; 95 | display: inline-block; 96 | background-color: #fff; 97 | 98 | .border-radius(4px); 99 | } 100 | } 101 | } 102 | 103 | .timeline-inverse { 104 | > li { 105 | > .timeline-item { 106 | background: #f0f0f0; 107 | border: 1px solid #ddd; 108 | .box-shadow(none); 109 | > .timeline-header { 110 | border-bottom-color: #ddd; 111 | } 112 | } 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/treeview.less: -------------------------------------------------------------------------------- 1 | // Tree view menu 2 | .treeview-menu { 3 | display: none; 4 | list-style: none; 5 | padding: 0; 6 | margin: 0; 7 | padding-left: 5px; 8 | .treeview-menu { 9 | padding-left: 20px; 10 | } 11 | > li { 12 | margin: 0; 13 | > a { 14 | padding: 5px 5px 5px 15px; 15 | display: block; 16 | font-size: 14px; 17 | > .fa, 18 | > .glyphicon, 19 | > .ion { 20 | width: 20px; 21 | } 22 | > .pull-right-container > .fa-angle-left, 23 | > .pull-right-container > .fa-angle-down, 24 | > .fa-angle-left, 25 | > .fa-angle-down { 26 | width: auto; 27 | } 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/users-list.less: -------------------------------------------------------------------------------- 1 | // Admin LTE variables and Mixins 2 | @import (reference) "variables.less"; 3 | @import (reference) "mixins.less"; 4 | @import (reference) "../bootstrap/mixins.import.less"; 5 | @import (reference) "../bootstrap/variables.import.less"; 6 | /* 7 | * Component: Users List 8 | * --------------------- 9 | */ 10 | .users-list { 11 | &:extend(.list-unstyled); 12 | > li { 13 | width: 25%; 14 | float: left; 15 | padding: 10px; 16 | text-align: center; 17 | img { 18 | .border-radius(50%); 19 | max-width: 100%; 20 | height: auto; 21 | } 22 | > a:hover { 23 | &, 24 | .users-list-name { 25 | color: #999; 26 | } 27 | } 28 | } 29 | } 30 | 31 | .users-list-name, 32 | .users-list-date { 33 | display: block; 34 | } 35 | 36 | .users-list-name { 37 | font-weight: 600; 38 | color: #444; 39 | overflow: hidden; 40 | white-space: nowrap; 41 | text-overflow: ellipsis; 42 | } 43 | 44 | .users-list-date { 45 | color: #999; 46 | font-size: 12px; 47 | } 48 | -------------------------------------------------------------------------------- /client/lib/base/lib/admin-lte/variables.less: -------------------------------------------------------------------------------- 1 | @import (reference) "../bootstrap/variables.import.less"; 2 | // AdminLTE 2 Variables.less 3 | // ========================= 4 | 5 | // PATHS 6 | // -------------------------------------------------------- 7 | 8 | @boxed-layout-bg-image-path: "../img/boxed-bg.jpg"; 9 | 10 | // COLORS 11 | // -------------------------------------------------------- 12 | // Primary 13 | @light-blue: #3c8dbc; 14 | // Danger 15 | @red: #dd4b39; 16 | // Success 17 | @green: #00a65a; 18 | // Info 19 | @aqua: #00c0ef; 20 | // Warning 21 | @yellow: #f39c12; 22 | @blue: #0073b7; 23 | @navy: #001F3F; 24 | @teal: #39CCCC; 25 | @olive: #3D9970; 26 | @lime: #01FF70; 27 | @orange: #FF851B; 28 | @fuchsia: #F012BE; 29 | @purple: #605ca8; 30 | @maroon: #D81B60; 31 | @black: #111; 32 | @gray-lte: #d2d6de; 33 | 34 | // LAYOUT 35 | // -------------------------------------------------------- 36 | 37 | // Side bar and logo width 38 | @sidebar-width: 230px; 39 | // Boxed layout maximum width 40 | @boxed-layout-max-width: 1024px; 41 | // When the logo should go to the top of the screen 42 | @screen-header-collapse: @screen-xs-max; 43 | 44 | // Link colors (Aka: tags) 45 | @link-color: @light-blue; 46 | @link-hover-color: lighten(@link-color, 15%); 47 | 48 | // Body background (Affects main content background only) 49 | @body-bg: #ecf0f5; // DEPRECATED 50 | @content-bg: #ecf0f5; 51 | 52 | // SIDEBAR SKINS 53 | // -------------------------------------------------------- 54 | 55 | // Dark sidebar 56 | @sidebar-dark-bg: #222d32; 57 | @sidebar-dark-hover-bg: darken(@sidebar-dark-bg, 2%); 58 | @sidebar-dark-color: lighten(@sidebar-dark-bg, 60%); 59 | @sidebar-dark-hover-color: #fff; 60 | @sidebar-dark-submenu-bg: lighten(@sidebar-dark-bg, 5%); 61 | @sidebar-dark-submenu-color: lighten(@sidebar-dark-submenu-bg, 40%); 62 | @sidebar-dark-submenu-hover-color: #fff; 63 | 64 | // Light sidebar 65 | @sidebar-light-bg: #f9fafc; 66 | @sidebar-light-hover-bg: lighten(#f0f0f1, 1.5%); 67 | @sidebar-light-color: #444; 68 | @sidebar-light-hover-color: #000; 69 | @sidebar-light-submenu-bg: @sidebar-light-hover-bg; 70 | @sidebar-light-submenu-color: #777; 71 | @sidebar-light-submenu-hover-color: #000; 72 | 73 | // sidebar-expanded-on-hover 74 | @sidebar-expanded-shadow: 3px 0 8px rgba(0,0,0,.125); 75 | 76 | // CONTROL SIDEBAR 77 | // -------------------------------------------------------- 78 | @control-sidebar-width: @sidebar-width; 79 | 80 | // BOXES 81 | // -------------------------------------------------------- 82 | @box-border-color: #f4f4f4; 83 | @box-border-radius: 3px; 84 | @box-footer-bg: #fff; 85 | @box-boxshadow: 0 1px 1px rgba(0, 0, 0, .1); 86 | @box-padding: 10px; 87 | 88 | // Box variants 89 | @box-default-border-top-color: #d2d6de; 90 | 91 | // BUTTONS 92 | // -------------------------------------------------------- 93 | @btn-boxshadow: none; 94 | 95 | // PROGRESS BARS 96 | // -------------------------------------------------------- 97 | @progress-bar-border-radius: 1px; 98 | @progress-bar-sm-border-radius: 1px; 99 | @progress-bar-xs-border-radius: 1px; 100 | 101 | // FORMS 102 | // -------------------------------------------------------- 103 | @input-radius: 0; 104 | 105 | // BUTTONS 106 | // -------------------------------------------------------- 107 | 108 | // Border radius for non flat buttons 109 | @btn-border-radius: 3px; 110 | 111 | // DIRECT CHAT 112 | // -------------------------------------------------------- 113 | @direct-chat-height: 250px; 114 | @direct-chat-default-msg-bg: @gray-lte; 115 | @direct-chat-default-font-color: #444; 116 | @direct-chat-default-msg-border-color: @gray-lte; 117 | 118 | // CHAT WIDGET 119 | // -------------------------------------------------------- 120 | @attachment-border-radius: 3px; 121 | 122 | // TRANSITIONS SETTINGS 123 | // -------------------------------------------------------- 124 | 125 | // Transition global options 126 | @transition-speed: .3s; 127 | @transition-fn: ease-in-out; 128 | -------------------------------------------------------------------------------- /client/lib/base/lib/bootstrap/alerts.import.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: @alert-padding; 11 | margin-bottom: @line-height-computed; 12 | border: 1px solid transparent; 13 | border-radius: @alert-border-radius; 14 | 15 | // Headings for larger alerts 16 | h4 { 17 | margin-top: 0; 18 | // Specified for the h4 to prevent conflicts of changing @headings-color 19 | color: inherit; 20 | } 21 | 22 | // Provide class for links that match alerts 23 | .alert-link { 24 | font-weight: @alert-link-font-weight; 25 | } 26 | 27 | // Improve alignment and spacing of inner content 28 | > p, 29 | > ul { 30 | margin-bottom: 0; 31 | } 32 | 33 | > p + p { 34 | margin-top: 5px; 35 | } 36 | } 37 | 38 | // Dismissible alerts 39 | // 40 | // Expand the right padding and account for the close button's positioning. 41 | 42 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. 43 | .alert-dismissible { 44 | padding-right: (@alert-padding + 20); 45 | 46 | // Adjust close link position 47 | .close { 48 | position: relative; 49 | top: -2px; 50 | right: -21px; 51 | color: inherit; 52 | } 53 | } 54 | 55 | // Alternate styles 56 | // 57 | // Generate contextual modifier classes for colorizing the alert. 58 | 59 | .alert-success { 60 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); 61 | } 62 | 63 | .alert-info { 64 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); 65 | } 66 | 67 | .alert-warning { 68 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); 69 | } 70 | 71 | .alert-danger { 72 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); 73 | } 74 | -------------------------------------------------------------------------------- /client/lib/base/lib/bootstrap/badges.import.less: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .badge { 8 | display: inline-block; 9 | min-width: 10px; 10 | padding: 3px 7px; 11 | font-size: @font-size-small; 12 | font-weight: @badge-font-weight; 13 | color: @badge-color; 14 | line-height: @badge-line-height; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-align: center; 18 | background-color: @badge-bg; 19 | border-radius: @badge-border-radius; 20 | 21 | // Empty badges collapse automatically (not available in IE8) 22 | &:empty { 23 | display: none; 24 | } 25 | 26 | // Quick fix for badges in buttons 27 | .btn & { 28 | position: relative; 29 | top: -1px; 30 | } 31 | 32 | .btn-xs &, 33 | .btn-group-xs > .btn & { 34 | top: 0; 35 | padding: 1px 5px; 36 | } 37 | 38 | // Hover state, but only for links 39 | a& { 40 | &:hover, 41 | &:focus { 42 | color: @badge-link-hover-color; 43 | text-decoration: none; 44 | cursor: pointer; 45 | } 46 | } 47 | 48 | // Account for badges in navs 49 | .list-group-item.active > &, 50 | .nav-pills > .active > a > & { 51 | color: @badge-active-color; 52 | background-color: @badge-active-bg; 53 | } 54 | 55 | .list-group-item > & { 56 | float: right; 57 | } 58 | 59 | .list-group-item > & + & { 60 | margin-right: 5px; 61 | } 62 | 63 | .nav-pills > li > a > & { 64 | margin-left: 3px; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /client/lib/base/lib/bootstrap/bootstrap.import.less: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "variables.import.less"; 3 | @import "mixins.import.less"; 4 | 5 | // Reset and dependencies 6 | @import "normalize.import.less"; 7 | @import "print.import.less"; 8 | @import "glyphicons.import.less"; 9 | 10 | // Core CSS 11 | @import "scaffolding.import.less"; 12 | @import "type.import.less"; 13 | @import "code.import.less"; 14 | @import "grid.import.less"; 15 | @import "tables.import.less"; 16 | @import "forms.import.less"; 17 | @import "buttons.import.less"; 18 | 19 | // Components 20 | @import "component-animations.import.less"; 21 | @import "dropdowns.import.less"; 22 | @import "button-groups.import.less"; 23 | @import "input-groups.import.less"; 24 | @import "navs.import.less"; 25 | @import "navbar.import.less"; 26 | @import "breadcrumbs.import.less"; 27 | @import "pagination.import.less"; 28 | @import "pager.import.less"; 29 | @import "labels.import.less"; 30 | @import "badges.import.less"; 31 | @import "jumbotron.import.less"; 32 | @import "thumbnails.import.less"; 33 | @import "alerts.import.less"; 34 | @import "progress-bars.import.less"; 35 | @import "media.import.less"; 36 | @import "list-group.import.less"; 37 | @import "panels.import.less"; 38 | @import "responsive-embed.import.less"; 39 | @import "wells.import.less"; 40 | @import "close.import.less"; 41 | 42 | // Components w/ JavaScript 43 | @import "modals.import.less"; 44 | @import "tooltip.import.less"; 45 | @import "popovers.import.less"; 46 | @import "carousel.import.less"; 47 | 48 | // Utility classes 49 | @import "utilities.import.less"; 50 | @import "responsive-utilities.import.less"; 51 | -------------------------------------------------------------------------------- /client/lib/base/lib/bootstrap/breadcrumbs.import.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /client/lib/base/lib/bootstrap/buttons.import.less: -------------------------------------------------------------------------------- 1 | // 2 | // Buttons 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // -------------------------------------------------- 8 | 9 | .btn { 10 | display: inline-block; 11 | margin-bottom: 0; // For input.btn 12 | font-weight: @btn-font-weight; 13 | text-align: center; 14 | vertical-align: middle; 15 | touch-action: manipulation; 16 | cursor: pointer; 17 | background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 18 | border: 1px solid transparent; 19 | white-space: nowrap; 20 | .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base); 21 | .user-select(none); 22 | 23 | &, 24 | &:active, 25 | &.active { 26 | &:focus, 27 | &.focus { 28 | .tab-focus(); 29 | } 30 | } 31 | 32 | &:hover, 33 | &:focus, 34 | &.focus { 35 | color: @btn-default-color; 36 | text-decoration: none; 37 | } 38 | 39 | &:active, 40 | &.active { 41 | outline: 0; 42 | background-image: none; 43 | .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); 44 | } 45 | 46 | &.disabled, 47 | &[disabled], 48 | fieldset[disabled] & { 49 | cursor: @cursor-disabled; 50 | pointer-events: none; // Future-proof disabling of clicks 51 | .opacity(.65); 52 | .box-shadow(none); 53 | } 54 | } 55 | 56 | 57 | // Alternate buttons 58 | // -------------------------------------------------- 59 | 60 | .btn-default { 61 | .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border); 62 | } 63 | .btn-primary { 64 | .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border); 65 | } 66 | // Success appears as green 67 | .btn-success { 68 | .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border); 69 | } 70 | // Info appears as blue-green 71 | .btn-info { 72 | .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border); 73 | } 74 | // Warning appears as orange 75 | .btn-warning { 76 | .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border); 77 | } 78 | // Danger and error appear as red 79 | .btn-danger { 80 | .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border); 81 | } 82 | 83 | 84 | // Link buttons 85 | // ------------------------- 86 | 87 | // Make a button look and behave like a link 88 | .btn-link { 89 | color: @link-color; 90 | font-weight: normal; 91 | border-radius: 0; 92 | 93 | &, 94 | &:active, 95 | &.active, 96 | &[disabled], 97 | fieldset[disabled] & { 98 | background-color: transparent; 99 | .box-shadow(none); 100 | } 101 | &, 102 | &:hover, 103 | &:focus, 104 | &:active { 105 | border-color: transparent; 106 | } 107 | &:hover, 108 | &:focus { 109 | color: @link-hover-color; 110 | text-decoration: @link-hover-decoration; 111 | background-color: transparent; 112 | } 113 | &[disabled], 114 | fieldset[disabled] & { 115 | &:hover, 116 | &:focus { 117 | color: @btn-link-disabled-color; 118 | text-decoration: none; 119 | } 120 | } 121 | } 122 | 123 | 124 | // Button Sizes 125 | // -------------------------------------------------- 126 | 127 | .btn-lg { 128 | // line-height: ensure even-numbered height of button next to large input 129 | .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); 130 | } 131 | .btn-sm { 132 | // line-height: ensure proper height of button next to small input 133 | .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); 134 | } 135 | .btn-xs { 136 | .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small); 137 | } 138 | 139 | 140 | // Block button 141 | // -------------------------------------------------- 142 | 143 | .btn-block { 144 | display: block; 145 | width: 100%; 146 | } 147 | 148 | // Vertically space out multiple block buttons 149 | .btn-block + .btn-block { 150 | margin-top: 5px; 151 | } 152 | 153 | // Specificity overrides 154 | input[type="submit"], 155 | input[type="reset"], 156 | input[type="button"] { 157 | &.btn-block { 158 | width: 100%; 159 | } 160 | } 161 | -------------------------------------------------------------------------------- /client/lib/base/lib/bootstrap/close.import.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 27 | button& { 28 | padding: 0; 29 | cursor: pointer; 30 | background: transparent; 31 | border: 0; 32 | -webkit-appearance: none; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /client/lib/base/lib/bootstrap/code.import.less: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and block) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | kbd, 9 | pre, 10 | samp { 11 | font-family: @font-family-monospace; 12 | } 13 | 14 | // Inline code 15 | code { 16 | padding: 2px 4px; 17 | font-size: 90%; 18 | color: @code-color; 19 | background-color: @code-bg; 20 | border-radius: @border-radius-base; 21 | } 22 | 23 | // User input typically entered via keyboard 24 | kbd { 25 | padding: 2px 4px; 26 | font-size: 90%; 27 | color: @kbd-color; 28 | background-color: @kbd-bg; 29 | border-radius: @border-radius-small; 30 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); 31 | 32 | kbd { 33 | padding: 0; 34 | font-size: 100%; 35 | font-weight: bold; 36 | box-shadow: none; 37 | } 38 | } 39 | 40 | // Blocks of code 41 | pre { 42 | display: block; 43 | padding: ((@line-height-computed - 1) / 2); 44 | margin: 0 0 (@line-height-computed / 2); 45 | font-size: (@font-size-base - 1); // 14px to 13px 46 | line-height: @line-height-base; 47 | word-break: break-all; 48 | word-wrap: break-word; 49 | color: @pre-color; 50 | background-color: @pre-bg; 51 | border: 1px solid @pre-border-color; 52 | border-radius: @border-radius-base; 53 | 54 | // Account for some code outputs that place code tags in pre tags 55 | code { 56 | padding: 0; 57 | font-size: inherit; 58 | color: inherit; 59 | white-space: pre-wrap; 60 | background-color: transparent; 61 | border-radius: 0; 62 | } 63 | } 64 | 65 | // Enable scrollable blocks of code 66 | .pre-scrollable { 67 | max-height: @pre-scrollable-max-height; 68 | overflow-y: scroll; 69 | } 70 | -------------------------------------------------------------------------------- /client/lib/base/lib/bootstrap/component-animations.import.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | visibility: hidden; 21 | 22 | &.in { display: block; visibility: visible; } 23 | tr&.in { display: table-row; } 24 | tbody&.in { display: table-row-group; } 25 | } 26 | 27 | .collapsing { 28 | position: relative; 29 | height: 0; 30 | overflow: hidden; 31 | .transition-property(~"height, visibility"); 32 | .transition-duration(.35s); 33 | .transition-timing-function(ease); 34 | } 35 | -------------------------------------------------------------------------------- /client/lib/base/lib/bootstrap/grid.import.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container widths 7 | // 8 | // Set the container width, and override it for fixed navbars in media queries. 9 | 10 | .container { 11 | .container-fixed(); 12 | 13 | @media (min-width: @screen-sm-min) { 14 | width: @container-sm; 15 | } 16 | @media (min-width: @screen-md-min) { 17 | width: @container-md; 18 | } 19 | @media (min-width: @screen-lg-min) { 20 | width: @container-lg; 21 | } 22 | } 23 | 24 | 25 | // Fluid container 26 | // 27 | // Utilizes the mixin meant for fixed width containers, but without any defined 28 | // width for fluid, full width layouts. 29 | 30 | .container-fluid { 31 | .container-fixed(); 32 | } 33 | 34 | 35 | // Row 36 | // 37 | // Rows contain and clear the floats of your columns. 38 | 39 | .row { 40 | .make-row(); 41 | } 42 | 43 | 44 | // Columns 45 | // 46 | // Common styles for small and large grid columns 47 | 48 | .make-grid-columns(); 49 | 50 | 51 | // Extra small grid 52 | // 53 | // Columns, offsets, pushes, and pulls for extra small devices like 54 | // smartphones. 55 | 56 | .make-grid(xs); 57 | 58 | 59 | // Small grid 60 | // 61 | // Columns, offsets, pushes, and pulls for the small device range, from phones 62 | // to tablets. 63 | 64 | @media (min-width: @screen-sm-min) { 65 | .make-grid(sm); 66 | } 67 | 68 | 69 | // Medium grid 70 | // 71 | // Columns, offsets, pushes, and pulls for the desktop device range. 72 | 73 | @media (min-width: @screen-md-min) { 74 | .make-grid(md); 75 | } 76 | 77 | 78 | // Large grid 79 | // 80 | // Columns, offsets, pushes, and pulls for the large desktop device range. 81 | 82 | @media (min-width: @screen-lg-min) { 83 | .make-grid(lg); 84 | } 85 | -------------------------------------------------------------------------------- /client/lib/base/lib/bootstrap/jumbotron.import.less: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding: @jumbotron-padding (@jumbotron-padding / 2); 8 | margin-bottom: @jumbotron-padding; 9 | color: @jumbotron-color; 10 | background-color: @jumbotron-bg; 11 | 12 | h1, 13 | .h1 { 14 | color: @jumbotron-heading-color; 15 | } 16 | 17 | p { 18 | margin-bottom: (@jumbotron-padding / 2); 19 | font-size: @jumbotron-font-size; 20 | font-weight: 200; 21 | } 22 | 23 | > hr { 24 | border-top-color: darken(@jumbotron-bg, 10%); 25 | } 26 | 27 | .container &, 28 | .container-fluid & { 29 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container 30 | } 31 | 32 | .container { 33 | max-width: 100%; 34 | } 35 | 36 | @media screen and (min-width: @screen-sm-min) { 37 | padding: (@jumbotron-padding * 1.6) 0; 38 | 39 | .container &, 40 | .container-fluid & { 41 | padding-left: (@jumbotron-padding * 2); 42 | padding-right: (@jumbotron-padding * 2); 43 | } 44 | 45 | h1, 46 | .h1 { 47 | font-size: (@font-size-base * 4.5); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /client/lib/base/lib/bootstrap/labels.import.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | a& { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label-default { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | -------------------------------------------------------------------------------- /client/lib/base/lib/bootstrap/list-group.import.less: -------------------------------------------------------------------------------- 1 | // 2 | // List groups 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | // 8 | // Easily usable on