Initial Sass and JavaScript files

pull/91/head
Francis Lachapelle 2014-06-19 15:50:29 -04:00
parent c21ec86365
commit 29e147ee86
10 changed files with 2287 additions and 0 deletions

View File

@ -0,0 +1,37 @@
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
sass: {
options: {
includePaths: ['bower_components/foundation/scss']
},
dist: {
options: {
// outputStyle: 'compressed'
outputStyle: 'expanded'
},
files: {
'css/app.css': 'scss/app.scss',
'css/SOGoRootPage.css': 'scss/SOGoRootPage.scss',
'css/ContactsUI.css': 'scss/ContactsUI.scss'
}
}
},
watch: {
grunt: { files: ['Gruntfile.js'] },
sass: {
files: 'scss/**/*.scss',
tasks: ['sass']
}
}
});
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('build', ['sass']);
grunt.registerTask('default', ['build','watch']);
}

View File

@ -0,0 +1,209 @@
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* JavaScript for SOGoContacts */
(function() {
'use strict';
angular.module('SOGo').config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/:addressbook_id', {
controller: 'contactDisplayController',
templateUrl: 'rightPanel.html'
})
.when('/:addressbook_id/:contact_id', {
controller: 'contactDisplayController',
templateUrl: 'rightPanel.html'
})
.otherwise({
redirectTo: '/personal'
});
}]);
angular.module('SOGo').directive('sgFocusOn', function() {
return function(scope, elem, attr) {
scope.$on('sgFocusOn', function(e, name) {
if (name === attr.sgFocusOn) {
elem[0].focus();
}
});
};
});
angular.module('SOGo').factory('sgFocus', ['$rootScope', '$timeout', function ($rootScope, $timeout) {
return function(name) {
$timeout(function (){
$rootScope.$broadcast('sgFocusOn', name);
});
}
}]);
// angular.module('SOGo').provider('Contact', function() {
// var folders = contactFolders;
// var selectedIndex;
// this.$get = [function() {
// var self = this;
// var service = {
// getFoldersList: function() {
// return folders
// },
// selectFolder: function(index) {
// selectedIndex = index;
// },
// currentFolder: function() {
// return selectedIndex;
// }
// };
// return service;
// }];
// });
// angular.module('SOGo').controller('addressbookSharingModal', ['$scope', '$rootScope', '$modal', function($scope, $rootScope, $modal) {
// }]);
angular.module('SOGo').controller('addressbooksList', ['$scope', '$rootScope', '$timeout', '$modal', 'sgFocus', 'sgContact', 'sgAddressBook', function($scope, $rootScope, $timeout, $modal, focus, Contact, AddressBook) {
// Initialize with data from template
// $rootScope.addressbooks = new Array();
// angular.forEach(contactFolders, function(folder, index) {
// $rootScope.addressbooks.push(new AddressBook(folder));
// // contactFolders[index].$omit();
// });
//$scope.contactFolders = contactFolders;
$rootScope.addressbooks = contactFolders;
$scope.select = function(rowIndex) {
//$rootScope.selectedAddressBook = $scope.contactFolders[rowIndex];
$scope.editMode = false;
};
// $rootScope.$on('AddressBook:selected', function(event, id) {
// $rootScope.selectedAddressBook = id;
// });
$scope.rename = function() {
console.debug("rename folder");
$scope.editMode = $rootScope.addressbook.id;
focus('folderName');
};
$scope.save = function() {
console.debug("save addressbook");
$rootScope.addressbook.$save()
.then(function(data) {
console.debug("saved!");
$scope.editMode = false;
}, function(data, status) {
console.debug("failed");
});
};
$scope.sharing = function() {
var modal = $modal.open({
templateUrl: 'addressbookSharing.html',
//controller: 'addressbookSharingCtrl'
controller: function($scope, $modalInstance) {
$scope.closeModal = function() {
console.debug('please close it');
$modalInstance.close();
};
}
});
// modal.result.then(function() {
// console.debug('close');
// }, function() {
// console.debug('dismiss');
// });
};
// $scope.rename = function(rowIndex) {
// var folder = $scope.contactFolders[rowIndex];
// if (folder.owner != "nobody") {
// showPromptDialog(l("Properties"),
// l("Address Book Name"),
// onAddressBookModifyConfirm,
// folder.name);
// }
// };
}]);
// angular.module('SOGo').controller('addressbookSharingCtrl', ['$scope', '$modalInstance', function($scope, modal) {
// $scope.closeModal = function() {
// console.debug('please close it');
// modal.close();
// };
// }]);
angular.module('SOGo').controller('contactDisplayController', ['$scope', '$rootScope', 'sgAddressBook', 'sgContact', 'sgFocus', '$routeParams', function($scope, $rootScope, AddressBook, Contact, focus, $routeParams) {
if ($routeParams.addressbook_id &&
($rootScope.addressbook == undefined || $routeParams.addressbook_id != $rootScope.addressbook.id)) {
// Selected addressbook has changed
console.debug("show addressbook " + $routeParams.addressbook_id);
$rootScope.addressbook = AddressBook.$find($routeParams.addressbook_id);
// Extend resulting model instance with parameters from addressbooks listing
angular.forEach($rootScope.addressbooks, function(o, i) {
if (o.id == $routeParams.addressbook_id) {
angular.extend($rootScope.addressbook, o);
$rootScope.addressbooks[i] = $rootScope.addressbook;
}
});
angular.extend($rootScope.addressbook, $rootScope.selectedAddressBook);
}
if ($routeParams.contact_id) {
console.debug("show contact " + $routeParams.contact_id);
$rootScope.addressbook.$getContact($routeParams.contact_id);
$scope.editMode = false;
}
$scope.allEmailTypes = Contact.$email_types;
$scope.allTelTypes = Contact.$tel_types;
$scope.allUrlTypes = Contact.$url_types;
$scope.allAddressTypes = Contact.$address_types;
// $scope.select = function(cname) {
// console.debug('show contact ' + cname);
// };
$scope.edit = function() {
$rootScope.master_contact = angular.copy($rootScope.addressbook.contact);
$scope.editMode = true;
console.debug('edit');
};
$scope.addOrgUnit = function() {
var i = $rootScope.addressbook.contact.$addOrgUnit('');
focus('orgUnit_' + i);
};
$scope.addCategory = function() {
var i = $rootScope.addressbook.contact.$addCategory($scope.new_category);
focus('category_' + i);
};
$scope.addEmail = function() {
var i = $rootScope.addressbook.contact.$addEmail($scope.new_email_type);
focus('email_' + i);
};
$scope.addPhone = function() {
var i = $rootScope.addressbook.contact.$addPhone($scope.new_phone_type);
focus('phone_' + i);
};
$scope.addUrl = function() {
var i = $rootScope.addressbook.contact.$addUrl('', '');
focus('url_' + i);
};
$scope.addAddress = function() {
var i = $rootScope.addressbook.contact.$addAddress('', '', '', '', '', '', '', '');
focus('address_' + i);
};
$scope.save = function(contactForm) {
console.debug("save");
if (contactForm.$valid) {
$rootScope.addressbook.contact.$save()
.then(function(data) {
console.debug("saved!");
$scope.editMode = false;
}, function(data, status) {
console.debug("failed");
});
}
};
$scope.cancel = function() {
$scope.reset();
$scope.editMode = false;
};
$scope.reset = function() {
$rootScope.addressbook.contact = angular.copy($rootScope.master_contact);
};
}]);
})();

View File

@ -0,0 +1,8 @@
(function() {
'use strict';
angular.module('SOGo', ['ngRoute', 'ngSanitize', 'mm.foundation', 'mm.foundation.offcanvas'])
.constant('sgSettings', {
'baseURL': '/SOGo/so/francis/Contacts'
});
})();

View File

@ -0,0 +1,45 @@
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* JavaScript for SOGoContacts */
'use strict';
var SOGoRootPageApp = angular.module('SOGoRootPage', ['SOGoAuthentication']);
SOGoRootPageApp.controller('loginController', ['$scope', '$http', 'SOGoAuthentication', function($scope, $http, SOGoAuthentication) {
$scope.warning = false;
$scope.login = function($event) {
//$event.stopPropagation();
$scope.warning = false;
var username = $scope.username,
password = $scope.password,
domain = $scope.domain,
language,
rememberLogin = $scope.rememberLogin ? 1 : 0;
if ($scope.loginSuffix && !username.endsWith($scope.loginSuffix)) {
username += loginSuffix;
domain = false;
}
if ($scope.language && $scope.language != 'WONoSelectionString') {
language = $scope.language;
}
SOGoAuthentication.login(username, password, domain, language, rememberLogin)
.then(function(url) {
window.location.href = url;
}, function(msg) {
$scope.warning = msg;
});
// $http({
// method: 'POST',
// url: 'http://debian.inverse.ca/SOGo/connect',
// params: postData})
// .success(function(data, status, headers, config) {
// alert('success: ' + status);
// }).error(function(data, status, headers, config) {
// alert('error: ' + status);
// });
return false;
};
}]);

View File

@ -0,0 +1,84 @@
//$(document).foundation();
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
String.prototype.startsWith = function(pattern, position) {
position = angular.isNumber(position) ? position : 0;
return this.lastIndexOf(pattern, position) === position;
};
String.prototype._base64_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
String.prototype.base64encode = function () {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
var input = this.utf8encode();
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
this._base64_keyStr.charAt(enc1) + this._base64_keyStr.charAt(enc2) +
this._base64_keyStr.charAt(enc3) + this._base64_keyStr.charAt(enc4);
}
return output;
};
String.prototype.base64decode = function() {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
var input = "" + this; // .replace(/[^A-Za-z0-9\+\/\=]/g, "")
while (i < input.length) {
enc1 = this._base64_keyStr.indexOf(input.charAt(i++));
enc2 = this._base64_keyStr.indexOf(input.charAt(i++));
enc3 = this._base64_keyStr.indexOf(input.charAt(i++));
enc4 = this._base64_keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
return output;
};
function l(key) {
var value = key;
if (labels[key]) {
value = labels[key];
}
else if (clabels[key]) {
value = clabels[key];
}
return value;
}

View File

@ -0,0 +1,10 @@
{
"name": "foundation-libsass-template",
"version": "0.0.1",
"devDependencies": {
"node-sass": "~0.7.0",
"grunt": "~0.4.1",
"grunt-contrib-watch": "~0.5.3",
"grunt-sass": "~0.8.0"
}
}

View File

@ -0,0 +1,489 @@
@import "settings";
//$primary-color: #75B4BF;
//$topbar-link-bg-active: #75B4BF;
//$topbar-bg-color: $primary-color;
$module-color: #75B4BF;
$module-color: #C6C543;
$module-color: #6F5A73;
$module-secondary-color: #8EC588; // light green
$module-secondary-color: #3D792A; // green
$module-secondary-color: #B996BF;
$module-secondary-color: #B59BB9;
$module-light-color: #F7ECFF;
$topbar-bg-color: $module-color;
$topbar-link-bg-active-hover: scale-color($module-secondary-color, $lightness: -14%);
$topbar-link-bg-active: $module-secondary-color;
$topbar-link-bg-hover: scale-color($module-color, $lightness: -14%);
//$topbar-link-font-size: rem-calc(12);
//$off-canvas-link-text-size: rem-calc(12);
//$table-head-font-size: rem-calc(12);
//$table-row-font-size: rem-calc(12);
@import "foundation";
//@import "foundation/components/grid";
@import "foundation/components/offcanvas";
//@import "toolbars";
@mixin off-canvas-list {
list-style-type: none;
padding:0;
margin:0;
li {
label {
padding: $off-canvas-label-padding;
color: $off-canvas-label-color;
text-transform: $off-canvas-label-text-transform;
font-weight: $off-canvas-label-font-weight;
background: $off-canvas-label-bg;
border-top: $off-canvas-label-border-top;
border-bottom: $off-canvas-label-border-bottom;
margin: $off-canvas-label-margin;
}
div, a {
display: block;
}
div {
padding: $off-canvas-link-padding;
color: $off-canvas-link-color;
border-bottom: $off-canvas-link-border-bottom;
&:hover { background: scale-color($tabbar-bg, $lightness: -30%); }
transition: background 300ms ease;
a { color: $off-canvas-link-color; }
}
}
}
//ul.off-canvas-list { @include off-canvas-list; }
$total-columns: 13;
$column-gutter: 0;
.folders-list {
@include off-canvas-wrap();
ul {
@include off-canvas-list();
li {
&._selected {
background-color: #242424 !important;
border: 0 !important;
a {
color: #eee !important;
}
}
div {
@include grid-row($behavior: nest);
.folder {
@include grid-column($columns:11);
i {
float: left;
width: 30px;
padding: $off-canvas-link-padding / 2;
}
}
.actions {
@include grid-column($columns:2);
text-align: center;
}
}
a {
&[data-ng-click] {
//display: table-cell;
//font-size: $off-canvas-link-text-size;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
//padding-right: 30px;
}
&[data-dropdown-toggle-n0] {
//display: table-cell;
//float: right;
color: #fff;
position: absolute;
right: 7px;
//line-height: 3em;
}
}
input {
//padding-right: 30px;
//background-color: scale-color($f-dropdown-list-hover-bg, $lightness: 28%);
//background-color: scale-color($tabbar-bg, $lightness: 52%);
font-size: 1em;
height: 23px;
height: 1.6em;
padding-left: 30px;
margin: 0;
}
}
}
}
.contact-picture {
display: inline-block;
float: left;
width: 40px;
height: 40px;
border-radius: 20px;
color: $input-disabled-bg;
line-height: 40px;
text-align: center;
border: 1px solid $input-disabled-bg;
margin-right: 1em;
i {
font-size: 42px;
line-height: 36px;
}
}
#pageContent {
@include grid-row($behavior: nest);
#addressbooksList {
position: absolute;
overflow: auto;
overflow-x: hidden;
top: $topbar-height;
bottom: 0;
background-color: #333;
@include grid-column($columns:13); //, $collapse:true);
@media #{$medium-up} {
@include grid-column($columns:3);
}
.newItemsToolbar {
margin-top: rem-calc(6);
text-align: center;
text-transform: uppercase;
}
}
#rightPanel {
#contactsList {
position: absolute;
overflow: auto;
overflow-x: hidden;
top: $topbar-height;
bottom: 0;
left: 23.07692%;
background-color: $f-dropdown-list-hover-bg;
@include grid-column($columns:13);
@media #{$medium-up} {
@include grid-column($columns:5);
}
ul {
margin: 0;
padding: 5px 0;
li {
list-style-type: none;
//border-bottom: $topbar-divider-border-bottom;
width: 100%;
float: left;
clear: left;
//border: 2px solid #fff;
//-webkit-border-radius: 4px;
//-moz-border-radius: 4px;
//border-radius: 4px;
//transition: all 300ms ease;
background-color: $f-dropdown-list-hover-bg;
transition: background 300ms ease;
a {
display: block;
color: #666;
//border-bottom: 1px dotted #ddd;
//width: 100%;
//font-size: $table-row-font-size;
//line-height: $table-line-height;
line-height: rem-calc(24);
padding: $table-head-padding;
//padding: rem-calc(8 10 18);
//margin: 0 rem-calc(12);
.name {
margin: 0;
//font-size: $table-head-font-size;
color: $table-head-font-color;
font-weight: $table-head-font-weight;
}
}
&:hover, &:active {
background-color: $f-dropdown-list-hover-bg;
//background-color: scale-color($f-dropdown-list-hover-bg, $lightness: 28%);
background-color: #fff;
}
&._selected, &._selected span {
//background-color: $module-light-color;
//background-color: $sub-nav-active-bg-hover;
//background-color: $f-dropdown-list-hover-bg;
background-color: $module-color;
background-color: #fff;
//color: $module-color;
//color: $module-secondary-color;
.name {
//color: #fff;
}
}
}
}
}
#contactView {
position: absolute;
top: $topbar-height;
bottom: 0;
left: 61.53846%;
overflow: auto;
overflow-x: hidden;
border-left: $topbar-divider-border-bottom;
padding: $table-head-padding;
padding-top: 0;
//font-size: $table-row-font-size;
/* span { */
/* ul { */
/* margin-left: 20px; */
/* } */
/* } */
@include grid-column($columns:13);
@media #{$medium-up} {
@include grid-column($columns:5);
}
h1, h2, h3, h4, h5, h6 {
margin-left: rem-calc(12);
margin-top: 0;
}
h1 {
margin-bottom: 0;
}
ul {
font-size: $form-label-font-size;
}
.label {
margin-left: rem-calc(3);
}
.header {
background-color: $secondary-color;
padding-bottom: 0.2em;
h1, h6 {
color: #fff;
}
.label {
background-color: transparent;
border: 1px solid $primary-color;
border: 1px solid scale-color($primary-color, $lightness: 52%);
color: $primary-color;
color: scale-color($primary-color, $lightness: 52%);
}
}
.section {
border-bottom: 1px solid #ddd;
//margin-bottom: rem-calc(12);
margin: 0 rem-calc(12) rem-calc(12) rem-calc(12);
padding-bottom: rem-calc(12);
}
/*
+-----------------------------------------------+
+ .attr (13) |
|+-------------+-------------------------------+|
|| .key (4) | .value (9) ||
|+-------------+-------------------------------+|
+-----------------------------------------------+
*/
.attr {
@include grid-row($behavior:collapse);
.key {
@include grid-column($columns:4);
label {
color: #999;
margin-right: rem-calc(12);
}
}
.value {
@include grid-column($columns:9);
&.single {
@include grid-column($offset: 4, $columns:9);
}
}
}
.buttonsToolbar {
margin-bottom: rem-calc(12);
//text-align: right;
background-color: #eee;
border-top: 2px solid #ddd;
.button {
margin: 0.4em;
&.alert {
//display: $button-display;
color: #fff;
}
}
}
.viewer {
.value {
div, a, ul, span {
line-height: $form-label-line-height;
margin-left: rem-calc(12);
}
}
}
.editor {
.section {
border-bottom: 0;
}
/*
+-----------------------------------------------+
+ .attr (13) |
|+-------------+-------------------------------+|
|+ .action (1) | .key (4) | .value (8) ||
|+-------------+-------------------------------+|
+-----------------------------------------------+
*/
.attr {
.action {
@include grid-column($columns:1);
padding-left: rem-calc(6);
}
.key {
@include grid-column($columns:4);
}
.value {
@include grid-column($columns:8);
padding-right: rem-calc(6);
&.compact {
margin-bottom: $form-spacing;
input {
margin-bottom: 0;
}
}
&.single {
@include grid-column($offset: 5, $columns:8);
}
}
}
}
}
}
}
.buttonsToolbar {
/* background-color: $secondary-color; */
/* text-align: center; */
text-align: right;
/* font-size: 1.5em; */
/* line-height: 2.5em; */
/* min-height: 2.5em; */
.button {
margin-bottom: 0;
//background-color: $tabbar-bg;
/* background-color: $secondary-color; */
/* color: scale-color($secondary-color, $lightness: 52%); */
//padding: 0.45em 1em 0.35em 1em;
/* padding: 0 1em; */
/* font-size: 1.0em; */
font-size: 1.0em;
/* transition: color 300ms ease; */
//&.success {
// background-color: $secondary-color;
//}
/* &:focus, &:hover { */
/* color: #fff; */
/* //background-color: #449539; */
/* //background-color: scale-color($secondary-color, $lightness: 13%); */
/* } */
}
.folders-list & {
background-color: $tabbar-bg;
background-color: $off-canvas-bg;
text-align: center;
.button {
background-color: $tabbar-bg;
font-size: 1.5em;
transition: color 300ms ease;
color: scale-color($tabbar-bg, $lightness: 52%);
&:focus, &:hover {
color: $primary-color;
color: #fff;
//background-color: scale-color($tabbar-bg, $lightness: 13%);
}
}
}
}
.searchToolbar {
@include grid-row($behavior:collapse);
.inputField {
//@include grid-column($offset:1, $columns:9);
@include grid-column($offset:0, $columns:11);
input {
transition: background-color 300ms ease;
//background-color: $secondary-color;
background-color: transparent;
margin: 0.4em;
&:focus {
background-color: #fff;
}
}
}
.optionsButton {
@include grid-column($columns:2);
.button {
color: $input-disabled-bg;
background-color: transparent;
//line-height: 3.5em;
}
}
}
.button {
&.icon {
background-color: transparent;
color: $primary-color;
padding: 0;
@include button-size($padding:$button-tny,$full-width:true);
}
&.alert {
color: $alert-color;
}
}
.f-dropdown {
dd {
a {
background-color: $module-secondary-color;
color: #fff;
&:hover {
background-color: $module-color;
}
}
&.active {
a {
background-color: $module-color;
color: #fff;
}
}
}
&.icons-dropdown {
width: auto;
//background-color: $primary-color;
.button {
margin: 0;
padding: $f-dropdown-list-padding;
border-color: $primary-color;
//color: scale-color($secondary-color, $lightness: 52%);
color: #fff;
}
background-color: $primary-color;
border-color: $primary-color;
&:before {
border-color: transparent transparent $primary-color transparent;
}
}
}
h1 {
font-weight: lighter;
}
input.ng-dirty.ng-invalid {
border-color: $alert-color !important;
color: $alert-color !important;
}

View File

@ -0,0 +1,30 @@
@import "settings";
@import "foundation/components/grid";
@import "foundation/components/forms";
$total-columns: 12;
#pageContent {
#login {
@include grid-row();
@media #{$medium-up} {
padding-top: rem-calc(48);
}
#logo {
text-align: center;
@include grid-column(12);
@media #{$medium-up} {
text-align: right;
@include grid-column($columns:4, $offset:2);
}
}
form {
@include grid-column(12);
@media #{$medium-up} {
@include grid-column($columns:3);
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,83 @@
//@import "settings";
//@import "foundation";
// Or selectively include components
// @import
// "foundation/components/accordion",
// "foundation/components/alert-boxes",
// "foundation/components/block-grid",
// "foundation/components/breadcrumbs",
// "foundation/components/button-groups",
// "foundation/components/buttons",
// "foundation/components/clearing",
// "foundation/components/dropdown",
// "foundation/components/dropdown-buttons",
// "foundation/components/flex-video",
// "foundation/components/forms",
// "foundation/components/grid",
// "foundation/components/inline-lists",
// "foundation/components/joyride",
// "foundation/components/keystrokes",
// "foundation/components/labels",
// "foundation/components/magellan",
// "foundation/components/orbit",
// "foundation/components/pagination",
// "foundation/components/panels",
// "foundation/components/pricing-tables",
// "foundation/components/progress-bars",
// "foundation/components/reveal",
// "foundation/components/side-nav",
// "foundation/components/split-buttons",
// "foundation/components/sub-nav",
// "foundation/components/switch",
// "foundation/components/tables",
// "foundation/components/tabs",
// "foundation/components/thumbs",
// "foundation/components/tooltips",
// "foundation/components/top-bar",
// "foundation/components/type",
// "foundation/components/offcanvas",
// "foundation/components/visibility";
// http://docs.angularjs.org/api/ng/directive/ngCloak
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
.animate-show {
-webkit-transition:all linear 0.5s;
transition:all linear 0.5s;
line-height:20px;
opacity:1;
padding:10px;
border:1px solid black;
background:white;
}
.animate-show.ng-hide-add,
.animate-show.ng-hide-remove {
display:block!important;
}
.animate-show.ng-hide {
line-height:0;
opacity:0;
padding:0 10px;
}
.reveal-modal {
.close-reveal-modal {
&:hover {
color: #aaa;
}
}
}
._selected {
//background-color: #ddd !important;
//border: 2px solid #ddd !important;
/* -webkit-border-radius: 2px; */
/* -moz-border-radius: 2px; */
/* border-radius: 2px; */
}