diff --git a/app/assets/javascripts/app/frontend/models/app/extension.js b/app/assets/javascripts/app/frontend/models/app/extension.js index 445c4dbb1..4e80f484e 100644 --- a/app/assets/javascripts/app/frontend/models/app/extension.js +++ b/app/assets/javascripts/app/frontend/models/app/extension.js @@ -8,55 +8,12 @@ class Action { this.lastExecuted = new Date(this.lastExecuted); } } - - permissionsString() { - if(!this.permissions) { - return ""; - } - - var permission = this.permissions.charAt(0).toUpperCase() + this.permissions.slice(1); // capitalize first letter - permission += ": "; - for(var contentType of this.content_types) { - if(contentType == "*") { - permission += "All items"; - } else { - permission += contentType; - } - - permission += " "; - } - - return permission; - } - - encryptionModeString() { - if(this.verb != "post") { - return null; - } - var encryptionMode = "This action accepts data "; - if(this.accepts_encrypted && this.accepts_decrypted) { - encryptionMode += "encrypted or decrypted."; - } else { - if(this.accepts_encrypted) { - encryptionMode += "encrypted."; - } else { - encryptionMode += "decrypted."; - } - } - return encryptionMode; - } - } class Extension extends Item { constructor(json) { super(json); - if(this.encrypted === null || this.encrypted === undefined) { - // Default to encrypted on creation. - this.encrypted = true; - } - if(json.actions) { this.actions = json.actions.map(function(action){ return new Action(action); @@ -68,12 +25,6 @@ class Extension extends Item { } } - actionsInGlobalContext() { - return this.actions.filter(function(action){ - return action.context == "global"; - }) - } - actionsWithContextForItem(item) { return this.actions.filter(function(action){ return action.context == item.content_type || action.context == "Item"; @@ -86,12 +37,6 @@ class Extension extends Item { this.description = content.description; this.url = content.url; - if(content.encrypted !== null && content.encrypted !== undefined) { - this.encrypted = content.encrypted; - } else { - this.encrypted = true; - } - this.supported_types = content.supported_types; if(content.actions) { this.actions = content.actions.map(function(action){ @@ -114,8 +59,7 @@ class Extension extends Item { url: this.url, description: this.description, actions: this.actions, - supported_types: this.supported_types, - encrypted: this.encrypted + supported_types: this.supported_types }; _.merge(params, super.structureParams()); diff --git a/app/assets/javascripts/app/services/actionsManager.js b/app/assets/javascripts/app/services/actionsManager.js index f976dd2ae..f2926b139 100644 --- a/app/assets/javascripts/app/services/actionsManager.js +++ b/app/assets/javascripts/app/services/actionsManager.js @@ -7,16 +7,6 @@ class ActionsManager { this.enabledRepeatActionUrls = JSON.parse(storageManager.getItem("enabledRepeatActionUrls")) || []; this.syncManager = syncManager; this.storageManager = storageManager; - - modelManager.addItemSyncObserver("actionsManager", "Extension", function(allItems, validItems, deletedItems){ - for (var ext of validItems) { - for (var action of ext.actions) { - if(_.includes(this.enabledRepeatActionUrls, action.url)) { - this.enableRepeatAction(action, ext); - } - } - } - }.bind(this)) } get extensions() { @@ -40,14 +30,6 @@ class ActionsManager { } deleteExtension(extension) { - for(var action of extension.actions) { - if(action.repeat_mode) { - if(this.isRepeatActionEnabled(action)) { - this.disableRepeatAction(action); - } - } - } - this.modelManager.setItemToBeDeleted(extension); this.syncManager.sync(null); } @@ -90,7 +72,6 @@ class ActionsManager { handleExtensionLoadExternalResponseItem(url, externalResponseItem) { // Don't allow remote response to set these flags - delete externalResponseItem.encrypted; delete externalResponseItem.uuid; var extension = _.find(this.extensions, {url: url}); @@ -125,13 +106,6 @@ class ActionsManager { } refreshExtensionsFromServer() { - for (var url of this.enabledRepeatActionUrls) { - var action = this.actionWithURL(url); - if(action) { - this.disableRepeatAction(action); - } - } - for(var ext of this.extensions) { this.retrieveExtensionFromServer(ext.url, function(extension){ extension.setDirty(true); @@ -141,12 +115,6 @@ class ActionsManager { executeAction(action, extension, item, callback) { - if(extension.encrypted && this.authManager.offline()) { - alert("To send data encrypted, you must have an encryption key, and must therefore be signed in."); - callback(null); - return; - } - var customCallback = function(response) { action.running = false; callback(response); @@ -154,6 +122,8 @@ class ActionsManager { action.running = true; + let decrypted = action.access_type == "decrypted"; + switch (action.verb) { case "get": { @@ -204,12 +174,12 @@ class ActionsManager { if(action.all) { var items = this.modelManager.allItemsMatchingTypes(action.content_types); params.items = items.map(function(item){ - var params = this.outgoingParamsForItem(item, extension); + var params = this.outgoingParamsForItem(item, extension, decrypted); return params; }.bind(this)) } else { - params.items = [this.outgoingParamsForItem(item, extension)]; + params.items = [this.outgoingParamsForItem(item, extension, decrypted)]; } this.performPost(action, extension, params, function(response){ @@ -231,35 +201,6 @@ class ActionsManager { return _.includes(this.enabledRepeatActionUrls, action.url); } - disableRepeatAction(action, extension) { - _.pull(this.enabledRepeatActionUrls, action.url); - this.storageManager.setItem("enabledRepeatActionUrls", JSON.stringify(this.enabledRepeatActionUrls)); - this.modelManager.removeItemChangeObserver(action.url); - - console.assert(this.isRepeatActionEnabled(action) == false); - } - - enableRepeatAction(action, extension) { - if(!_.find(this.enabledRepeatActionUrls, action.url)) { - this.enabledRepeatActionUrls.push(action.url); - this.storageManager.setItem("enabledRepeatActionUrls", JSON.stringify(this.enabledRepeatActionUrls)); - } - - if(action.repeat_mode) { - - if(action.repeat_mode == "watch") { - this.modelManager.addItemChangeObserver(action.url, action.content_types, function(changedItems){ - this.triggerWatchAction(action, extension, changedItems); - }.bind(this)) - } - - if(action.repeat_mode == "loop") { - // todo - } - - } - } - queueAction(action, extension, delay, changedItems) { this.actionQueue = this.actionQueue || []; if(_.find(this.actionQueue, {url: action.url})) { @@ -274,38 +215,9 @@ class ActionsManager { }.bind(this), delay * 1000); } - triggerWatchAction(action, extension, changedItems) { - if(action.repeat_timeout > 0) { - var lastExecuted = action.lastExecuted; - var diffInSeconds = (new Date() - lastExecuted)/1000; - if(diffInSeconds < action.repeat_timeout) { - var delay = action.repeat_timeout - diffInSeconds; - this.queueAction(action, extension, delay, changedItems); - return; - } - } - - action.lastExecuted = new Date(); - - if(action.verb == "post") { - var params = {}; - params.items = changedItems.map(function(item){ - var params = this.outgoingParamsForItem(item, extension); - return params; - }.bind(this)) - - action.running = true; - this.performPost(action, extension, params, function(){ - action.running = false; - }); - } else { - // todo - } - } - - outgoingParamsForItem(item, extension) { + outgoingParamsForItem(item, extension, decrypted = false) { var keys = this.authManager.keys(); - if(!extension.encrypted) { + if(decrypted) { keys = null; } var itemParams = new ItemParams(item, keys, this.authManager.protocolVersion()); @@ -313,11 +225,6 @@ class ActionsManager { } performPost(action, extension, params, callback) { - - if(extension.encrypted) { - params.auth_params = this.authManager.getAuthParams(); - } - this.httpManager.postAbsolute(action.url, params, function(response){ action.error = false; if(callback) { diff --git a/app/assets/javascripts/app/services/directives/views/actionsMenu.js b/app/assets/javascripts/app/services/directives/views/actionsMenu.js index d395dd69f..f4ef1a4ae 100644 --- a/app/assets/javascripts/app/services/directives/views/actionsMenu.js +++ b/app/assets/javascripts/app/services/directives/views/actionsMenu.js @@ -23,12 +23,12 @@ class ActionsMenu { } $scope.executeAction = function(action, extension, parentAction) { - if(!$scope.isActionEnabled(action, extension)) { - alert("This action requires " + action.access_type + " access to this note. You can change this setting in the Extensions menu on the bottom of the app."); - return; - } if(action.verb == "nested") { - action.showNestedActions = !action.showNestedActions; + if(!action.subrows) { + action.subrows = $scope.subRowsForAction(action, extension); + } else { + action.subrows = null; + } return; } action.running = true; @@ -41,7 +41,7 @@ class ActionsMenu { // keep nested state if(parentAction) { var matchingAction = _.find(ext.actions, {label: parentAction.label}); - matchingAction.showNestedActions = true; + matchingAction.subrows = $scope.subRowsForAction(parentAction, extension); } }); }) @@ -60,21 +60,25 @@ class ActionsMenu { } } - $scope.isActionEnabled = function(action, extension) { - if(action.access_type) { - var extEncryptedAccess = extension.encrypted; - if(action.access_type == "decrypted" && extEncryptedAccess) { - return false; - } else if(action.access_type == "encrypted" && !extEncryptedAccess) { - return false; - } + + $scope.subRowsForAction = function(parentAction, extension) { + if(!parentAction.subactions) { + return null; } - return true; + return parentAction.subactions.map((subaction) => { + return { + onClick: ($event) => { + this.executeAction(subaction, extension, parentAction); + $event.stopPropagation(); + }, + title: subaction.label, + subtitle: subaction.desc, + spinnerClass: subaction.running ? 'info' : null + } + }) } - $scope.accessTypeForExtension = function(extension) { - return extension.encrypted ? "encrypted" : "decrypted"; - } + } } diff --git a/app/assets/javascripts/app/services/directives/views/menuRow.js b/app/assets/javascripts/app/services/directives/views/menuRow.js index c3a1061ef..1809a2505 100644 --- a/app/assets/javascripts/app/services/directives/views/menuRow.js +++ b/app/assets/javascripts/app/services/directives/views/menuRow.js @@ -11,7 +11,9 @@ class MenuRow { hasButton: "=", buttonText: "=", buttonClass: "=", - buttonAction: "&" + buttonAction: "&", + spinnerClass: "=", + subRows: "=" }; } diff --git a/app/assets/stylesheets/_ionicons.scss b/app/assets/stylesheets/_ionicons.scss index 47fd1b15c..884e1f781 100644 --- a/app/assets/stylesheets/_ionicons.scss +++ b/app/assets/stylesheets/_ionicons.scss @@ -1,6 +1,6 @@ @charset "UTF-8"; /*! - Ionicons, v2.0.0 + Ionicons, v2.0.1 Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ https://twitter.com/benjsperry https://twitter.com/ionicframework MIT License: https://github.com/driftyco/ionicons @@ -10,2957 +10,15 @@ used under CC BY http://creativecommons.org/licenses/by/4.0/ Modified icons to fit ionicon’s grid from original. */ -@font-face { - font-family: "Ionicons"; - src: url("../assets/ionicons.eot?v=2.0.0"); - src: url("../assets/ionicons.eot?v=2.0.0#iefix") format("embedded-opentype"), url("../assets/ionicons.ttf?v=2.0.0") format("truetype"), url("../assets/ionicons.woff?v=2.0.0") format("woff"), url("../assets/ionicons.svg?v=2.0.0#Ionicons") format("svg"); - font-weight: normal; - font-style: normal; -} -.ion, .ionicons, .ion-alert:before, .ion-alert-circled:before, .ion-android-add:before, .ion-android-add-circle:before, .ion-android-alarm-clock:before, .ion-android-alert:before, .ion-android-apps:before, .ion-android-archive:before, .ion-android-arrow-back:before, .ion-android-arrow-down:before, .ion-android-arrow-dropdown:before, .ion-android-arrow-dropdown-circle:before, .ion-android-arrow-dropleft:before, .ion-android-arrow-dropleft-circle:before, .ion-android-arrow-dropright:before, .ion-android-arrow-dropright-circle:before, .ion-android-arrow-dropup:before, .ion-android-arrow-dropup-circle:before, .ion-android-arrow-forward:before, .ion-android-arrow-up:before, .ion-android-attach:before, .ion-android-bar:before, .ion-android-bicycle:before, .ion-android-boat:before, .ion-android-bookmark:before, .ion-android-bulb:before, .ion-android-bus:before, .ion-android-calendar:before, .ion-android-call:before, .ion-android-camera:before, .ion-android-cancel:before, .ion-android-car:before, .ion-android-cart:before, .ion-android-chat:before, .ion-android-checkbox:before, .ion-android-checkbox-blank:before, .ion-android-checkbox-outline:before, .ion-android-checkbox-outline-blank:before, .ion-android-checkmark-circle:before, .ion-android-clipboard:before, .ion-android-close:before, .ion-android-cloud:before, .ion-android-cloud-circle:before, .ion-android-cloud-done:before, .ion-android-cloud-outline:before, .ion-android-color-palette:before, .ion-android-compass:before, .ion-android-contact:before, .ion-android-contacts:before, .ion-android-contract:before, .ion-android-create:before, .ion-android-delete:before, .ion-android-desktop:before, .ion-android-document:before, .ion-android-done:before, .ion-android-done-all:before, .ion-android-download:before, .ion-android-drafts:before, .ion-android-exit:before, .ion-android-expand:before, .ion-android-favorite:before, .ion-android-favorite-outline:before, .ion-android-film:before, .ion-android-folder:before, .ion-android-folder-open:before, .ion-android-funnel:before, .ion-android-globe:before, .ion-android-hand:before, .ion-android-hangout:before, .ion-android-happy:before, .ion-android-home:before, .ion-android-image:before, .ion-android-laptop:before, .ion-android-list:before, .ion-android-locate:before, .ion-android-lock:before, .ion-android-mail:before, .ion-android-map:before, .ion-android-menu:before, .ion-android-microphone:before, .ion-android-microphone-off:before, .ion-android-more-horizontal:before, .ion-android-more-vertical:before, .ion-android-navigate:before, .ion-android-notifications:before, .ion-android-notifications-none:before, .ion-android-notifications-off:before, .ion-android-open:before, .ion-android-options:before, .ion-android-people:before, .ion-android-person:before, .ion-android-person-add:before, .ion-android-phone-landscape:before, .ion-android-phone-portrait:before, .ion-android-pin:before, .ion-android-plane:before, .ion-android-playstore:before, .ion-android-print:before, .ion-android-radio-button-off:before, .ion-android-radio-button-on:before, .ion-android-refresh:before, .ion-android-remove:before, .ion-android-remove-circle:before, .ion-android-restaurant:before, .ion-android-sad:before, .ion-android-search:before, .ion-android-send:before, .ion-android-settings:before, .ion-android-share:before, .ion-android-share-alt:before, .ion-android-star:before, .ion-android-star-half:before, .ion-android-star-outline:before, .ion-android-stopwatch:before, .ion-android-subway:before, .ion-android-sunny:before, .ion-android-sync:before, .ion-android-textsms:before, .ion-android-time:before, .ion-android-train:before, .ion-android-unlock:before, .ion-android-upload:before, .ion-android-volume-down:before, .ion-android-volume-mute:before, .ion-android-volume-off:before, .ion-android-volume-up:before, .ion-android-walk:before, .ion-android-warning:before, .ion-android-watch:before, .ion-android-wifi:before, .ion-aperture:before, .ion-archive:before, .ion-arrow-down-a:before, .ion-arrow-down-b:before, .ion-arrow-down-c:before, .ion-arrow-expand:before, .ion-arrow-graph-down-left:before, .ion-arrow-graph-down-right:before, .ion-arrow-graph-up-left:before, .ion-arrow-graph-up-right:before, .ion-arrow-left-a:before, .ion-arrow-left-b:before, .ion-arrow-left-c:before, .ion-arrow-move:before, .ion-arrow-resize:before, .ion-arrow-return-left:before, .ion-arrow-return-right:before, .ion-arrow-right-a:before, .ion-arrow-right-b:before, .ion-arrow-right-c:before, .ion-arrow-shrink:before, .ion-arrow-swap:before, .ion-arrow-up-a:before, .ion-arrow-up-b:before, .ion-arrow-up-c:before, .ion-asterisk:before, .ion-at:before, .ion-backspace:before, .ion-backspace-outline:before, .ion-bag:before, .ion-battery-charging:before, .ion-battery-empty:before, .ion-battery-full:before, .ion-battery-half:before, .ion-battery-low:before, .ion-beaker:before, .ion-beer:before, .ion-bluetooth:before, .ion-bonfire:before, .ion-bookmark:before, .ion-bowtie:before, .ion-briefcase:before, .ion-bug:before, .ion-calculator:before, .ion-calendar:before, .ion-camera:before, .ion-card:before, .ion-cash:before, .ion-chatbox:before, .ion-chatbox-working:before, .ion-chatboxes:before, .ion-chatbubble:before, .ion-chatbubble-working:before, .ion-chatbubbles:before, .ion-checkmark:before, .ion-checkmark-circled:before, .ion-checkmark-round:before, .ion-chevron-down:before, .ion-chevron-left:before, .ion-chevron-right:before, .ion-chevron-up:before, .ion-clipboard:before, .ion-clock:before, .ion-close:before, .ion-close-circled:before, .ion-close-round:before, .ion-closed-captioning:before, .ion-cloud:before, .ion-code:before, .ion-code-download:before, .ion-code-working:before, .ion-coffee:before, .ion-compass:before, .ion-compose:before, .ion-connection-bars:before, .ion-contrast:before, .ion-crop:before, .ion-cube:before, .ion-disc:before, .ion-document:before, .ion-document-text:before, .ion-drag:before, .ion-earth:before, .ion-easel:before, .ion-edit:before, .ion-egg:before, .ion-eject:before, .ion-email:before, .ion-email-unread:before, .ion-erlenmeyer-flask:before, .ion-erlenmeyer-flask-bubbles:before, .ion-eye:before, .ion-eye-disabled:before, .ion-female:before, .ion-filing:before, .ion-film-marker:before, .ion-fireball:before, .ion-flag:before, .ion-flame:before, .ion-flash:before, .ion-flash-off:before, .ion-folder:before, .ion-fork:before, .ion-fork-repo:before, .ion-forward:before, .ion-funnel:before, .ion-gear-a:before, .ion-gear-b:before, .ion-grid:before, .ion-hammer:before, .ion-happy:before, .ion-happy-outline:before, .ion-headphone:before, .ion-heart:before, .ion-heart-broken:before, .ion-help:before, .ion-help-buoy:before, .ion-help-circled:before, .ion-home:before, .ion-icecream:before, .ion-image:before, .ion-images:before, .ion-information:before, .ion-information-circled:before, .ion-ionic:before, .ion-ios-alarm:before, .ion-ios-alarm-outline:before, .ion-ios-albums:before, .ion-ios-albums-outline:before, .ion-ios-americanfootball:before, .ion-ios-americanfootball-outline:before, .ion-ios-analytics:before, .ion-ios-analytics-outline:before, .ion-ios-arrow-back:before, .ion-ios-arrow-down:before, .ion-ios-arrow-forward:before, .ion-ios-arrow-left:before, .ion-ios-arrow-right:before, .ion-ios-arrow-thin-down:before, .ion-ios-arrow-thin-left:before, .ion-ios-arrow-thin-right:before, .ion-ios-arrow-thin-up:before, .ion-ios-arrow-up:before, .ion-ios-at:before, .ion-ios-at-outline:before, .ion-ios-barcode:before, .ion-ios-barcode-outline:before, .ion-ios-baseball:before, .ion-ios-baseball-outline:before, .ion-ios-basketball:before, .ion-ios-basketball-outline:before, .ion-ios-bell:before, .ion-ios-bell-outline:before, .ion-ios-body:before, .ion-ios-body-outline:before, .ion-ios-bolt:before, .ion-ios-bolt-outline:before, .ion-ios-book:before, .ion-ios-book-outline:before, .ion-ios-bookmarks:before, .ion-ios-bookmarks-outline:before, .ion-ios-box:before, .ion-ios-box-outline:before, .ion-ios-briefcase:before, .ion-ios-briefcase-outline:before, .ion-ios-browsers:before, .ion-ios-browsers-outline:before, .ion-ios-calculator:before, .ion-ios-calculator-outline:before, .ion-ios-calendar:before, .ion-ios-calendar-outline:before, .ion-ios-camera:before, .ion-ios-camera-outline:before, .ion-ios-cart:before, .ion-ios-cart-outline:before, .ion-ios-chatboxes:before, .ion-ios-chatboxes-outline:before, .ion-ios-chatbubble:before, .ion-ios-chatbubble-outline:before, .ion-ios-checkmark:before, .ion-ios-checkmark-empty:before, .ion-ios-checkmark-outline:before, .ion-ios-circle-filled:before, .ion-ios-circle-outline:before, .ion-ios-clock:before, .ion-ios-clock-outline:before, .ion-ios-close:before, .ion-ios-close-empty:before, .ion-ios-close-outline:before, .ion-ios-cloud:before, .ion-ios-cloud-download:before, .ion-ios-cloud-download-outline:before, .ion-ios-cloud-outline:before, .ion-ios-cloud-upload:before, .ion-ios-cloud-upload-outline:before, .ion-ios-cloudy:before, .ion-ios-cloudy-night:before, .ion-ios-cloudy-night-outline:before, .ion-ios-cloudy-outline:before, .ion-ios-cog:before, .ion-ios-cog-outline:before, .ion-ios-color-filter:before, .ion-ios-color-filter-outline:before, .ion-ios-color-wand:before, .ion-ios-color-wand-outline:before, .ion-ios-compose:before, .ion-ios-compose-outline:before, .ion-ios-contact:before, .ion-ios-contact-outline:before, .ion-ios-copy:before, .ion-ios-copy-outline:before, .ion-ios-crop:before, .ion-ios-crop-strong:before, .ion-ios-download:before, .ion-ios-download-outline:before, .ion-ios-drag:before, .ion-ios-email:before, .ion-ios-email-outline:before, .ion-ios-eye:before, .ion-ios-eye-outline:before, .ion-ios-fastforward:before, .ion-ios-fastforward-outline:before, .ion-ios-filing:before, .ion-ios-filing-outline:before, .ion-ios-film:before, .ion-ios-film-outline:before, .ion-ios-flag:before, .ion-ios-flag-outline:before, .ion-ios-flame:before, .ion-ios-flame-outline:before, .ion-ios-flask:before, .ion-ios-flask-outline:before, .ion-ios-flower:before, .ion-ios-flower-outline:before, .ion-ios-folder:before, .ion-ios-folder-outline:before, .ion-ios-football:before, .ion-ios-football-outline:before, .ion-ios-game-controller-a:before, .ion-ios-game-controller-a-outline:before, .ion-ios-game-controller-b:before, .ion-ios-game-controller-b-outline:before, .ion-ios-gear:before, .ion-ios-gear-outline:before, .ion-ios-glasses:before, .ion-ios-glasses-outline:before, .ion-ios-grid-view:before, .ion-ios-grid-view-outline:before, .ion-ios-heart:before, .ion-ios-heart-outline:before, .ion-ios-help:before, .ion-ios-help-empty:before, .ion-ios-help-outline:before, .ion-ios-home:before, .ion-ios-home-outline:before, .ion-ios-infinite:before, .ion-ios-infinite-outline:before, .ion-ios-information:before, .ion-ios-information-empty:before, .ion-ios-information-outline:before, .ion-ios-ionic-outline:before, .ion-ios-keypad:before, .ion-ios-keypad-outline:before, .ion-ios-lightbulb:before, .ion-ios-lightbulb-outline:before, .ion-ios-list:before, .ion-ios-list-outline:before, .ion-ios-location:before, .ion-ios-location-outline:before, .ion-ios-locked:before, .ion-ios-locked-outline:before, .ion-ios-loop:before, .ion-ios-loop-strong:before, .ion-ios-medical:before, .ion-ios-medical-outline:before, .ion-ios-medkit:before, .ion-ios-medkit-outline:before, .ion-ios-mic:before, .ion-ios-mic-off:before, .ion-ios-mic-outline:before, .ion-ios-minus:before, .ion-ios-minus-empty:before, .ion-ios-minus-outline:before, .ion-ios-monitor:before, .ion-ios-monitor-outline:before, .ion-ios-moon:before, .ion-ios-moon-outline:before, .ion-ios-more:before, .ion-ios-more-outline:before, .ion-ios-musical-note:before, .ion-ios-musical-notes:before, .ion-ios-navigate:before, .ion-ios-navigate-outline:before, .ion-ios-nutrition:before, .ion-ios-nutrition-outline:before, .ion-ios-paper:before, .ion-ios-paper-outline:before, .ion-ios-paperplane:before, .ion-ios-paperplane-outline:before, .ion-ios-partlysunny:before, .ion-ios-partlysunny-outline:before, .ion-ios-pause:before, .ion-ios-pause-outline:before, .ion-ios-paw:before, .ion-ios-paw-outline:before, .ion-ios-people:before, .ion-ios-people-outline:before, .ion-ios-person:before, .ion-ios-person-outline:before, .ion-ios-personadd:before, .ion-ios-personadd-outline:before, .ion-ios-photos:before, .ion-ios-photos-outline:before, .ion-ios-pie:before, .ion-ios-pie-outline:before, .ion-ios-pint:before, .ion-ios-pint-outline:before, .ion-ios-play:before, .ion-ios-play-outline:before, .ion-ios-plus:before, .ion-ios-plus-empty:before, .ion-ios-plus-outline:before, .ion-ios-pricetag:before, .ion-ios-pricetag-outline:before, .ion-ios-pricetags:before, .ion-ios-pricetags-outline:before, .ion-ios-printer:before, .ion-ios-printer-outline:before, .ion-ios-pulse:before, .ion-ios-pulse-strong:before, .ion-ios-rainy:before, .ion-ios-rainy-outline:before, .ion-ios-recording:before, .ion-ios-recording-outline:before, .ion-ios-redo:before, .ion-ios-redo-outline:before, .ion-ios-refresh:before, .ion-ios-refresh-empty:before, .ion-ios-refresh-outline:before, .ion-ios-reload:before, .ion-ios-reverse-camera:before, .ion-ios-reverse-camera-outline:before, .ion-ios-rewind:before, .ion-ios-rewind-outline:before, .ion-ios-rose:before, .ion-ios-rose-outline:before, .ion-ios-search:before, .ion-ios-search-strong:before, .ion-ios-settings:before, .ion-ios-settings-strong:before, .ion-ios-shuffle:before, .ion-ios-shuffle-strong:before, .ion-ios-skipbackward:before, .ion-ios-skipbackward-outline:before, .ion-ios-skipforward:before, .ion-ios-skipforward-outline:before, .ion-ios-snowy:before, .ion-ios-speedometer:before, .ion-ios-speedometer-outline:before, .ion-ios-star:before, .ion-ios-star-half:before, .ion-ios-star-outline:before, .ion-ios-stopwatch:before, .ion-ios-stopwatch-outline:before, .ion-ios-sunny:before, .ion-ios-sunny-outline:before, .ion-ios-telephone:before, .ion-ios-telephone-outline:before, .ion-ios-tennisball:before, .ion-ios-tennisball-outline:before, .ion-ios-thunderstorm:before, .ion-ios-thunderstorm-outline:before, .ion-ios-time:before, .ion-ios-time-outline:before, .ion-ios-timer:before, .ion-ios-timer-outline:before, .ion-ios-toggle:before, .ion-ios-toggle-outline:before, .ion-ios-trash:before, .ion-ios-trash-outline:before, .ion-ios-undo:before, .ion-ios-undo-outline:before, .ion-ios-unlocked:before, .ion-ios-unlocked-outline:before, .ion-ios-upload:before, .ion-ios-upload-outline:before, .ion-ios-videocam:before, .ion-ios-videocam-outline:before, .ion-ios-volume-high:before, .ion-ios-volume-low:before, .ion-ios-wineglass:before, .ion-ios-wineglass-outline:before, .ion-ios-world:before, .ion-ios-world-outline:before, .ion-ipad:before, .ion-iphone:before, .ion-ipod:before, .ion-jet:before, .ion-key:before, .ion-knife:before, .ion-laptop:before, .ion-leaf:before, .ion-levels:before, .ion-lightbulb:before, .ion-link:before, .ion-load-a:before, .ion-load-b:before, .ion-load-c:before, .ion-load-d:before, .ion-location:before, .ion-lock-combination:before, .ion-locked:before, .ion-log-in:before, .ion-log-out:before, .ion-loop:before, .ion-magnet:before, .ion-male:before, .ion-man:before, .ion-map:before, .ion-medkit:before, .ion-merge:before, .ion-mic-a:before, .ion-mic-b:before, .ion-mic-c:before, .ion-minus:before, .ion-minus-circled:before, .ion-minus-round:before, .ion-model-s:before, .ion-monitor:before, .ion-more:before, .ion-mouse:before, .ion-music-note:before, .ion-navicon:before, .ion-navicon-round:before, .ion-navigate:before, .ion-network:before, .ion-no-smoking:before, .ion-nuclear:before, .ion-outlet:before, .ion-paintbrush:before, .ion-paintbucket:before, .ion-paper-airplane:before, .ion-paperclip:before, .ion-pause:before, .ion-person:before, .ion-person-add:before, .ion-person-stalker:before, .ion-pie-graph:before, .ion-pin:before, .ion-pinpoint:before, .ion-pizza:before, .ion-plane:before, .ion-planet:before, .ion-play:before, .ion-playstation:before, .ion-plus:before, .ion-plus-circled:before, .ion-plus-round:before, .ion-podium:before, .ion-pound:before, .ion-power:before, .ion-pricetag:before, .ion-pricetags:before, .ion-printer:before, .ion-pull-request:before, .ion-qr-scanner:before, .ion-quote:before, .ion-radio-waves:before, .ion-record:before, .ion-refresh:before, .ion-reply:before, .ion-reply-all:before, .ion-ribbon-a:before, .ion-ribbon-b:before, .ion-sad:before, .ion-sad-outline:before, .ion-scissors:before, .ion-search:before, .ion-settings:before, .ion-share:before, .ion-shuffle:before, .ion-skip-backward:before, .ion-skip-forward:before, .ion-social-android:before, .ion-social-android-outline:before, .ion-social-angular:before, .ion-social-angular-outline:before, .ion-social-apple:before, .ion-social-apple-outline:before, .ion-social-bitcoin:before, .ion-social-bitcoin-outline:before, .ion-social-buffer:before, .ion-social-buffer-outline:before, .ion-social-chrome:before, .ion-social-chrome-outline:before, .ion-social-codepen:before, .ion-social-codepen-outline:before, .ion-social-css3:before, .ion-social-css3-outline:before, .ion-social-designernews:before, .ion-social-designernews-outline:before, .ion-social-dribbble:before, .ion-social-dribbble-outline:before, .ion-social-dropbox:before, .ion-social-dropbox-outline:before, .ion-social-euro:before, .ion-social-euro-outline:before, .ion-social-facebook:before, .ion-social-facebook-outline:before, .ion-social-foursquare:before, .ion-social-foursquare-outline:before, .ion-social-freebsd-devil:before, .ion-social-github:before, .ion-social-github-outline:before, .ion-social-google:before, .ion-social-google-outline:before, .ion-social-googleplus:before, .ion-social-googleplus-outline:before, .ion-social-hackernews:before, .ion-social-hackernews-outline:before, .ion-social-html5:before, .ion-social-html5-outline:before, .ion-social-instagram:before, .ion-social-instagram-outline:before, .ion-social-javascript:before, .ion-social-javascript-outline:before, .ion-social-linkedin:before, .ion-social-linkedin-outline:before, .ion-social-markdown:before, .ion-social-nodejs:before, .ion-social-octocat:before, .ion-social-pinterest:before, .ion-social-pinterest-outline:before, .ion-social-python:before, .ion-social-reddit:before, .ion-social-reddit-outline:before, .ion-social-rss:before, .ion-social-rss-outline:before, .ion-social-sass:before, .ion-social-skype:before, .ion-social-skype-outline:before, .ion-social-snapchat:before, .ion-social-snapchat-outline:before, .ion-social-tumblr:before, .ion-social-tumblr-outline:before, .ion-social-tux:before, .ion-social-twitch:before, .ion-social-twitch-outline:before, .ion-social-twitter:before, .ion-social-twitter-outline:before, .ion-social-usd:before, .ion-social-usd-outline:before, .ion-social-vimeo:before, .ion-social-vimeo-outline:before, .ion-social-whatsapp:before, .ion-social-whatsapp-outline:before, .ion-social-windows:before, .ion-social-windows-outline:before, .ion-social-wordpress:before, .ion-social-wordpress-outline:before, .ion-social-yahoo:before, .ion-social-yahoo-outline:before, .ion-social-yen:before, .ion-social-yen-outline:before, .ion-social-youtube:before, .ion-social-youtube-outline:before, .ion-soup-can:before, .ion-soup-can-outline:before, .ion-speakerphone:before, .ion-speedometer:before, .ion-spoon:before, .ion-star:before, .ion-stats-bars:before, .ion-steam:before, .ion-stop:before, .ion-thermometer:before, .ion-thumbsdown:before, .ion-thumbsup:before, .ion-toggle:before, .ion-toggle-filled:before, .ion-transgender:before, .ion-trash-a:before, .ion-trash-b:before, .ion-trophy:before, .ion-tshirt:before, .ion-tshirt-outline:before, .ion-umbrella:before, .ion-university:before, .ion-unlocked:before, .ion-upload:before, .ion-usb:before, .ion-videocamera:before, .ion-volume-high:before, .ion-volume-low:before, .ion-volume-medium:before, .ion-volume-mute:before, .ion-wand:before, .ion-waterdrop:before, .ion-wifi:before, .ion-wineglass:before, .ion-woman:before, .ion-wrench:before, .ion-xbox:before { - display: inline-block; - font-family: "Ionicons"; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - text-rendering: auto; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} +@font-face { font-family: "Ionicons"; src: url("../assets/ionicons.eot?v=2.0.0"); src: url("../assets/ionicons.eot?v=2.0.1#iefix") format("embedded-opentype"), url("../assets/ionicons.ttf?v=2.0.1") format("truetype"), url("../assets/ionicons.woff?v=2.0.1") format("woff"), url("../assets/ionicons.svg?v=2.0.1#Ionicons") format("svg"); font-weight: normal; font-style: normal; } +.ion, .ionicons, .ion-ios-box:before, .ion-bookmark:before, .ion-locked:before { display: inline-block; font-family: "Ionicons"; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; text-rendering: auto; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } -.ion-alert:before { - content: "\f101"; -} +.ion-ios-box:before { content: "\f3ec"; } -.ion-alert-circled:before { - content: "\f100"; -} - -.ion-android-add:before { - content: "\f2c7"; -} - -.ion-android-add-circle:before { - content: "\f359"; -} - -.ion-android-alarm-clock:before { - content: "\f35a"; -} - -.ion-android-alert:before { - content: "\f35b"; -} - -.ion-android-apps:before { - content: "\f35c"; -} - -.ion-android-archive:before { - content: "\f2c9"; -} - -.ion-android-arrow-back:before { - content: "\f2ca"; -} - -.ion-android-arrow-down:before { - content: "\f35d"; -} - -.ion-android-arrow-dropdown:before { - content: "\f35f"; -} - -.ion-android-arrow-dropdown-circle:before { - content: "\f35e"; -} - -.ion-android-arrow-dropleft:before { - content: "\f361"; -} - -.ion-android-arrow-dropleft-circle:before { - content: "\f360"; -} - -.ion-android-arrow-dropright:before { - content: "\f363"; -} - -.ion-android-arrow-dropright-circle:before { - content: "\f362"; -} - -.ion-android-arrow-dropup:before { - content: "\f365"; -} - -.ion-android-arrow-dropup-circle:before { - content: "\f364"; -} - -.ion-android-arrow-forward:before { - content: "\f30f"; -} - -.ion-android-arrow-up:before { - content: "\f366"; -} - -.ion-android-attach:before { - content: "\f367"; -} - -.ion-android-bar:before { - content: "\f368"; -} - -.ion-android-bicycle:before { - content: "\f369"; -} - -.ion-android-boat:before { - content: "\f36a"; -} - -.ion-android-bookmark:before { - content: "\f36b"; -} - -.ion-android-bulb:before { - content: "\f36c"; -} - -.ion-android-bus:before { - content: "\f36d"; -} - -.ion-android-calendar:before { - content: "\f2d1"; -} - -.ion-android-call:before { - content: "\f2d2"; -} - -.ion-android-camera:before { - content: "\f2d3"; -} - -.ion-android-cancel:before { - content: "\f36e"; -} - -.ion-android-car:before { - content: "\f36f"; -} - -.ion-android-cart:before { - content: "\f370"; -} - -.ion-android-chat:before { - content: "\f2d4"; -} - -.ion-android-checkbox:before { - content: "\f374"; -} - -.ion-android-checkbox-blank:before { - content: "\f371"; -} - -.ion-android-checkbox-outline:before { - content: "\f373"; -} - -.ion-android-checkbox-outline-blank:before { - content: "\f372"; -} - -.ion-android-checkmark-circle:before { - content: "\f375"; -} - -.ion-android-clipboard:before { - content: "\f376"; -} - -.ion-android-close:before { - content: "\f2d7"; -} - -.ion-android-cloud:before { - content: "\f37a"; -} - -.ion-android-cloud-circle:before { - content: "\f377"; -} - -.ion-android-cloud-done:before { - content: "\f378"; -} - -.ion-android-cloud-outline:before { - content: "\f379"; -} - -.ion-android-color-palette:before { - content: "\f37b"; -} - -.ion-android-compass:before { - content: "\f37c"; -} - -.ion-android-contact:before { - content: "\f2d8"; -} - -.ion-android-contacts:before { - content: "\f2d9"; -} - -.ion-android-contract:before { - content: "\f37d"; -} - -.ion-android-create:before { - content: "\f37e"; -} - -.ion-android-delete:before { - content: "\f37f"; -} - -.ion-android-desktop:before { - content: "\f380"; -} - -.ion-android-document:before { - content: "\f381"; -} - -.ion-android-done:before { - content: "\f383"; -} - -.ion-android-done-all:before { - content: "\f382"; -} - -.ion-android-download:before { - content: "\f2dd"; -} - -.ion-android-drafts:before { - content: "\f384"; -} - -.ion-android-exit:before { - content: "\f385"; -} - -.ion-android-expand:before { - content: "\f386"; -} - -.ion-android-favorite:before { - content: "\f388"; -} - -.ion-android-favorite-outline:before { - content: "\f387"; -} - -.ion-android-film:before { - content: "\f389"; -} - -.ion-android-folder:before { - content: "\f2e0"; -} - -.ion-android-folder-open:before { - content: "\f38a"; -} - -.ion-android-funnel:before { - content: "\f38b"; -} - -.ion-android-globe:before { - content: "\f38c"; -} - -.ion-android-hand:before { - content: "\f2e3"; -} - -.ion-android-hangout:before { - content: "\f38d"; -} - -.ion-android-happy:before { - content: "\f38e"; -} - -.ion-android-home:before { - content: "\f38f"; -} - -.ion-android-image:before { - content: "\f2e4"; -} - -.ion-android-laptop:before { - content: "\f390"; -} - -.ion-android-list:before { - content: "\f391"; -} - -.ion-android-locate:before { - content: "\f2e9"; -} - -.ion-android-lock:before { - content: "\f392"; -} - -.ion-android-mail:before { - content: "\f2eb"; -} - -.ion-android-map:before { - content: "\f393"; -} - -.ion-android-menu:before { - content: "\f394"; -} - -.ion-android-microphone:before { - content: "\f2ec"; -} - -.ion-android-microphone-off:before { - content: "\f395"; -} - -.ion-android-more-horizontal:before { - content: "\f396"; -} - -.ion-android-more-vertical:before { - content: "\f397"; -} - -.ion-android-navigate:before { - content: "\f398"; -} - -.ion-android-notifications:before { - content: "\f39b"; -} - -.ion-android-notifications-none:before { - content: "\f399"; -} - -.ion-android-notifications-off:before { - content: "\f39a"; -} - -.ion-android-open:before { - content: "\f39c"; -} - -.ion-android-options:before { - content: "\f39d"; -} - -.ion-android-people:before { - content: "\f39e"; -} - -.ion-android-person:before { - content: "\f3a0"; -} - -.ion-android-person-add:before { - content: "\f39f"; -} - -.ion-android-phone-landscape:before { - content: "\f3a1"; -} - -.ion-android-phone-portrait:before { - content: "\f3a2"; -} - -.ion-android-pin:before { - content: "\f3a3"; -} - -.ion-android-plane:before { - content: "\f3a4"; -} - -.ion-android-playstore:before { - content: "\f2f0"; -} - -.ion-android-print:before { - content: "\f3a5"; -} - -.ion-android-radio-button-off:before { - content: "\f3a6"; -} - -.ion-android-radio-button-on:before { - content: "\f3a7"; -} - -.ion-android-refresh:before { - content: "\f3a8"; -} - -.ion-android-remove:before { - content: "\f2f4"; -} - -.ion-android-remove-circle:before { - content: "\f3a9"; -} - -.ion-android-restaurant:before { - content: "\f3aa"; -} - -.ion-android-sad:before { - content: "\f3ab"; -} - -.ion-android-search:before { - content: "\f2f5"; -} - -.ion-android-send:before { - content: "\f2f6"; -} - -.ion-android-settings:before { - content: "\f2f7"; -} - -.ion-android-share:before { - content: "\f2f8"; -} - -.ion-android-share-alt:before { - content: "\f3ac"; -} - -.ion-android-star:before { - content: "\f2fc"; -} - -.ion-android-star-half:before { - content: "\f3ad"; -} - -.ion-android-star-outline:before { - content: "\f3ae"; -} - -.ion-android-stopwatch:before { - content: "\f2fd"; -} - -.ion-android-subway:before { - content: "\f3af"; -} - -.ion-android-sunny:before { - content: "\f3b0"; -} - -.ion-android-sync:before { - content: "\f3b1"; -} - -.ion-android-textsms:before { - content: "\f3b2"; -} - -.ion-android-time:before { - content: "\f3b3"; -} - -.ion-android-train:before { - content: "\f3b4"; -} - -.ion-android-unlock:before { - content: "\f3b5"; -} - -.ion-android-upload:before { - content: "\f3b6"; -} - -.ion-android-volume-down:before { - content: "\f3b7"; -} - -.ion-android-volume-mute:before { - content: "\f3b8"; -} - -.ion-android-volume-off:before { - content: "\f3b9"; -} - -.ion-android-volume-up:before { - content: "\f3ba"; -} - -.ion-android-walk:before { - content: "\f3bb"; -} - -.ion-android-warning:before { - content: "\f3bc"; -} - -.ion-android-watch:before { - content: "\f3bd"; -} - -.ion-android-wifi:before { - content: "\f305"; -} - -.ion-aperture:before { - content: "\f313"; -} - -.ion-archive:before { - content: "\f102"; -} - -.ion-arrow-down-a:before { - content: "\f103"; -} - -.ion-arrow-down-b:before { - content: "\f104"; -} - -.ion-arrow-down-c:before { - content: "\f105"; -} - -.ion-arrow-expand:before { - content: "\f25e"; -} - -.ion-arrow-graph-down-left:before { - content: "\f25f"; -} - -.ion-arrow-graph-down-right:before { - content: "\f260"; -} - -.ion-arrow-graph-up-left:before { - content: "\f261"; -} - -.ion-arrow-graph-up-right:before { - content: "\f262"; -} - -.ion-arrow-left-a:before { - content: "\f106"; -} - -.ion-arrow-left-b:before { - content: "\f107"; -} - -.ion-arrow-left-c:before { - content: "\f108"; -} - -.ion-arrow-move:before { - content: "\f263"; -} - -.ion-arrow-resize:before { - content: "\f264"; -} - -.ion-arrow-return-left:before { - content: "\f265"; -} - -.ion-arrow-return-right:before { - content: "\f266"; -} - -.ion-arrow-right-a:before { - content: "\f109"; -} - -.ion-arrow-right-b:before { - content: "\f10a"; -} - -.ion-arrow-right-c:before { - content: "\f10b"; -} - -.ion-arrow-shrink:before { - content: "\f267"; -} - -.ion-arrow-swap:before { - content: "\f268"; -} - -.ion-arrow-up-a:before { - content: "\f10c"; -} - -.ion-arrow-up-b:before { - content: "\f10d"; -} - -.ion-arrow-up-c:before { - content: "\f10e"; -} - -.ion-asterisk:before { - content: "\f314"; -} - -.ion-at:before { - content: "\f10f"; -} - -.ion-backspace:before { - content: "\f3bf"; -} - -.ion-backspace-outline:before { - content: "\f3be"; -} - -.ion-bag:before { - content: "\f110"; -} - -.ion-battery-charging:before { - content: "\f111"; -} - -.ion-battery-empty:before { - content: "\f112"; -} - -.ion-battery-full:before { - content: "\f113"; -} - -.ion-battery-half:before { - content: "\f114"; -} - -.ion-battery-low:before { - content: "\f115"; -} - -.ion-beaker:before { - content: "\f269"; -} - -.ion-beer:before { - content: "\f26a"; -} - -.ion-bluetooth:before { - content: "\f116"; -} - -.ion-bonfire:before { - content: "\f315"; -} +.ion-locked:before { content: "\f200"; } .ion-bookmark:before { content: "\f26b"; } -.ion-bowtie:before { - content: "\f3c0"; -} - -.ion-briefcase:before { - content: "\f26c"; -} - -.ion-bug:before { - content: "\f2be"; -} - -.ion-calculator:before { - content: "\f26d"; -} - -.ion-calendar:before { - content: "\f117"; -} - -.ion-camera:before { - content: "\f118"; -} - -.ion-card:before { - content: "\f119"; -} - -.ion-cash:before { - content: "\f316"; -} - -.ion-chatbox:before { - content: "\f11b"; -} - -.ion-chatbox-working:before { - content: "\f11a"; -} - -.ion-chatboxes:before { - content: "\f11c"; -} - -.ion-chatbubble:before { - content: "\f11e"; -} - -.ion-chatbubble-working:before { - content: "\f11d"; -} - -.ion-chatbubbles:before { - content: "\f11f"; -} - -.ion-checkmark:before { - content: "\f122"; -} - -.ion-checkmark-circled:before { - content: "\f120"; -} - -.ion-checkmark-round:before { - content: "\f121"; -} - -.ion-chevron-down:before { - content: "\f123"; -} - -.ion-chevron-left:before { - content: "\f124"; -} - -.ion-chevron-right:before { - content: "\f125"; -} - -.ion-chevron-up:before { - content: "\f126"; -} - -.ion-clipboard:before { - content: "\f127"; -} - -.ion-clock:before { - content: "\f26e"; -} - -.ion-close:before { - content: "\f12a"; -} - -.ion-close-circled:before { - content: "\f128"; -} - -.ion-close-round:before { - content: "\f129"; -} - -.ion-closed-captioning:before { - content: "\f317"; -} - -.ion-cloud:before { - content: "\f12b"; -} - -.ion-code:before { - content: "\f271"; -} - -.ion-code-download:before { - content: "\f26f"; -} - -.ion-code-working:before { - content: "\f270"; -} - -.ion-coffee:before { - content: "\f272"; -} - -.ion-compass:before { - content: "\f273"; -} - -.ion-compose:before { - content: "\f12c"; -} - -.ion-connection-bars:before { - content: "\f274"; -} - -.ion-contrast:before { - content: "\f275"; -} - -.ion-crop:before { - content: "\f3c1"; -} - -.ion-cube:before { - content: "\f318"; -} - -.ion-disc:before { - content: "\f12d"; -} - -.ion-document:before { - content: "\f12f"; -} - -.ion-document-text:before { - content: "\f12e"; -} - -.ion-drag:before { - content: "\f130"; -} - -.ion-earth:before { - content: "\f276"; -} - -.ion-easel:before { - content: "\f3c2"; -} - -.ion-edit:before { - content: "\f2bf"; -} - -.ion-egg:before { - content: "\f277"; -} - -.ion-eject:before { - content: "\f131"; -} - -.ion-email:before { - content: "\f132"; -} - -.ion-email-unread:before { - content: "\f3c3"; -} - -.ion-erlenmeyer-flask:before { - content: "\f3c5"; -} - -.ion-erlenmeyer-flask-bubbles:before { - content: "\f3c4"; -} - -.ion-eye:before { - content: "\f133"; -} - -.ion-eye-disabled:before { - content: "\f306"; -} - -.ion-female:before { - content: "\f278"; -} - -.ion-filing:before { - content: "\f134"; -} - -.ion-film-marker:before { - content: "\f135"; -} - -.ion-fireball:before { - content: "\f319"; -} - -.ion-flag:before { - content: "\f279"; -} - -.ion-flame:before { - content: "\f31a"; -} - -.ion-flash:before { - content: "\f137"; -} - -.ion-flash-off:before { - content: "\f136"; -} - -.ion-folder:before { - content: "\f139"; -} - -.ion-fork:before { - content: "\f27a"; -} - -.ion-fork-repo:before { - content: "\f2c0"; -} - -.ion-forward:before { - content: "\f13a"; -} - -.ion-funnel:before { - content: "\f31b"; -} - -.ion-gear-a:before { - content: "\f13d"; -} - -.ion-gear-b:before { - content: "\f13e"; -} - -.ion-grid:before { - content: "\f13f"; -} - -.ion-hammer:before { - content: "\f27b"; -} - -.ion-happy:before { - content: "\f31c"; -} - -.ion-happy-outline:before { - content: "\f3c6"; -} - -.ion-headphone:before { - content: "\f140"; -} - -.ion-heart:before { - content: "\f141"; -} - -.ion-heart-broken:before { - content: "\f31d"; -} - -.ion-help:before { - content: "\f143"; -} - -.ion-help-buoy:before { - content: "\f27c"; -} - -.ion-help-circled:before { - content: "\f142"; -} - -.ion-home:before { - content: "\f144"; -} - -.ion-icecream:before { - content: "\f27d"; -} - -.ion-image:before { - content: "\f147"; -} - -.ion-images:before { - content: "\f148"; -} - -.ion-information:before { - content: "\f14a"; -} - -.ion-information-circled:before { - content: "\f149"; -} - -.ion-ionic:before { - content: "\f14b"; -} - -.ion-ios-alarm:before { - content: "\f3c8"; -} - -.ion-ios-alarm-outline:before { - content: "\f3c7"; -} - -.ion-ios-albums:before { - content: "\f3ca"; -} - -.ion-ios-albums-outline:before { - content: "\f3c9"; -} - -.ion-ios-americanfootball:before { - content: "\f3cc"; -} - -.ion-ios-americanfootball-outline:before { - content: "\f3cb"; -} - -.ion-ios-analytics:before { - content: "\f3ce"; -} - -.ion-ios-analytics-outline:before { - content: "\f3cd"; -} - -.ion-ios-arrow-back:before { - content: "\f3cf"; -} - -.ion-ios-arrow-down:before { - content: "\f3d0"; -} - -.ion-ios-arrow-forward:before { - content: "\f3d1"; -} - -.ion-ios-arrow-left:before { - content: "\f3d2"; -} - -.ion-ios-arrow-right:before { - content: "\f3d3"; -} - -.ion-ios-arrow-thin-down:before { - content: "\f3d4"; -} - -.ion-ios-arrow-thin-left:before { - content: "\f3d5"; -} - -.ion-ios-arrow-thin-right:before { - content: "\f3d6"; -} - -.ion-ios-arrow-thin-up:before { - content: "\f3d7"; -} - -.ion-ios-arrow-up:before { - content: "\f3d8"; -} - -.ion-ios-at:before { - content: "\f3da"; -} - -.ion-ios-at-outline:before { - content: "\f3d9"; -} - -.ion-ios-barcode:before { - content: "\f3dc"; -} - -.ion-ios-barcode-outline:before { - content: "\f3db"; -} - -.ion-ios-baseball:before { - content: "\f3de"; -} - -.ion-ios-baseball-outline:before { - content: "\f3dd"; -} - -.ion-ios-basketball:before { - content: "\f3e0"; -} - -.ion-ios-basketball-outline:before { - content: "\f3df"; -} - -.ion-ios-bell:before { - content: "\f3e2"; -} - -.ion-ios-bell-outline:before { - content: "\f3e1"; -} - -.ion-ios-body:before { - content: "\f3e4"; -} - -.ion-ios-body-outline:before { - content: "\f3e3"; -} - -.ion-ios-bolt:before { - content: "\f3e6"; -} - -.ion-ios-bolt-outline:before { - content: "\f3e5"; -} - -.ion-ios-book:before { - content: "\f3e8"; -} - -.ion-ios-book-outline:before { - content: "\f3e7"; -} - -.ion-ios-bookmarks:before { - content: "\f3ea"; -} - -.ion-ios-bookmarks-outline:before { - content: "\f3e9"; -} - -.ion-ios-box:before { - content: "\f3ec"; -} - -.ion-ios-box-outline:before { - content: "\f3eb"; -} - -.ion-ios-briefcase:before { - content: "\f3ee"; -} - -.ion-ios-briefcase-outline:before { - content: "\f3ed"; -} - -.ion-ios-browsers:before { - content: "\f3f0"; -} - -.ion-ios-browsers-outline:before { - content: "\f3ef"; -} - -.ion-ios-calculator:before { - content: "\f3f2"; -} - -.ion-ios-calculator-outline:before { - content: "\f3f1"; -} - -.ion-ios-calendar:before { - content: "\f3f4"; -} - -.ion-ios-calendar-outline:before { - content: "\f3f3"; -} - -.ion-ios-camera:before { - content: "\f3f6"; -} - -.ion-ios-camera-outline:before { - content: "\f3f5"; -} - -.ion-ios-cart:before { - content: "\f3f8"; -} - -.ion-ios-cart-outline:before { - content: "\f3f7"; -} - -.ion-ios-chatboxes:before { - content: "\f3fa"; -} - -.ion-ios-chatboxes-outline:before { - content: "\f3f9"; -} - -.ion-ios-chatbubble:before { - content: "\f3fc"; -} - -.ion-ios-chatbubble-outline:before { - content: "\f3fb"; -} - -.ion-ios-checkmark:before { - content: "\f3ff"; -} - -.ion-ios-checkmark-empty:before { - content: "\f3fd"; -} - -.ion-ios-checkmark-outline:before { - content: "\f3fe"; -} - -.ion-ios-circle-filled:before { - content: "\f400"; -} - -.ion-ios-circle-outline:before { - content: "\f401"; -} - -.ion-ios-clock:before { - content: "\f403"; -} - -.ion-ios-clock-outline:before { - content: "\f402"; -} - -.ion-ios-close:before { - content: "\f406"; -} - -.ion-ios-close-empty:before { - content: "\f404"; -} - -.ion-ios-close-outline:before { - content: "\f405"; -} - -.ion-ios-cloud:before { - content: "\f40c"; -} - -.ion-ios-cloud-download:before { - content: "\f408"; -} - -.ion-ios-cloud-download-outline:before { - content: "\f407"; -} - -.ion-ios-cloud-outline:before { - content: "\f409"; -} - -.ion-ios-cloud-upload:before { - content: "\f40b"; -} - -.ion-ios-cloud-upload-outline:before { - content: "\f40a"; -} - -.ion-ios-cloudy:before { - content: "\f410"; -} - -.ion-ios-cloudy-night:before { - content: "\f40e"; -} - -.ion-ios-cloudy-night-outline:before { - content: "\f40d"; -} - -.ion-ios-cloudy-outline:before { - content: "\f40f"; -} - -.ion-ios-cog:before { - content: "\f412"; -} - -.ion-ios-cog-outline:before { - content: "\f411"; -} - -.ion-ios-color-filter:before { - content: "\f414"; -} - -.ion-ios-color-filter-outline:before { - content: "\f413"; -} - -.ion-ios-color-wand:before { - content: "\f416"; -} - -.ion-ios-color-wand-outline:before { - content: "\f415"; -} - -.ion-ios-compose:before { - content: "\f418"; -} - -.ion-ios-compose-outline:before { - content: "\f417"; -} - -.ion-ios-contact:before { - content: "\f41a"; -} - -.ion-ios-contact-outline:before { - content: "\f419"; -} - -.ion-ios-copy:before { - content: "\f41c"; -} - -.ion-ios-copy-outline:before { - content: "\f41b"; -} - -.ion-ios-crop:before { - content: "\f41e"; -} - -.ion-ios-crop-strong:before { - content: "\f41d"; -} - -.ion-ios-download:before { - content: "\f420"; -} - -.ion-ios-download-outline:before { - content: "\f41f"; -} - -.ion-ios-drag:before { - content: "\f421"; -} - -.ion-ios-email:before { - content: "\f423"; -} - -.ion-ios-email-outline:before { - content: "\f422"; -} - -.ion-ios-eye:before { - content: "\f425"; -} - -.ion-ios-eye-outline:before { - content: "\f424"; -} - -.ion-ios-fastforward:before { - content: "\f427"; -} - -.ion-ios-fastforward-outline:before { - content: "\f426"; -} - -.ion-ios-filing:before { - content: "\f429"; -} - -.ion-ios-filing-outline:before { - content: "\f428"; -} - -.ion-ios-film:before { - content: "\f42b"; -} - -.ion-ios-film-outline:before { - content: "\f42a"; -} - -.ion-ios-flag:before { - content: "\f42d"; -} - -.ion-ios-flag-outline:before { - content: "\f42c"; -} - -.ion-ios-flame:before { - content: "\f42f"; -} - -.ion-ios-flame-outline:before { - content: "\f42e"; -} - -.ion-ios-flask:before { - content: "\f431"; -} - -.ion-ios-flask-outline:before { - content: "\f430"; -} - -.ion-ios-flower:before { - content: "\f433"; -} - -.ion-ios-flower-outline:before { - content: "\f432"; -} - -.ion-ios-folder:before { - content: "\f435"; -} - -.ion-ios-folder-outline:before { - content: "\f434"; -} - -.ion-ios-football:before { - content: "\f437"; -} - -.ion-ios-football-outline:before { - content: "\f436"; -} - -.ion-ios-game-controller-a:before { - content: "\f439"; -} - -.ion-ios-game-controller-a-outline:before { - content: "\f438"; -} - -.ion-ios-game-controller-b:before { - content: "\f43b"; -} - -.ion-ios-game-controller-b-outline:before { - content: "\f43a"; -} - -.ion-ios-gear:before { - content: "\f43d"; -} - -.ion-ios-gear-outline:before { - content: "\f43c"; -} - -.ion-ios-glasses:before { - content: "\f43f"; -} - -.ion-ios-glasses-outline:before { - content: "\f43e"; -} - -.ion-ios-grid-view:before { - content: "\f441"; -} - -.ion-ios-grid-view-outline:before { - content: "\f440"; -} - -.ion-ios-heart:before { - content: "\f443"; -} - -.ion-ios-heart-outline:before { - content: "\f442"; -} - -.ion-ios-help:before { - content: "\f446"; -} - -.ion-ios-help-empty:before { - content: "\f444"; -} - -.ion-ios-help-outline:before { - content: "\f445"; -} - -.ion-ios-home:before { - content: "\f448"; -} - -.ion-ios-home-outline:before { - content: "\f447"; -} - -.ion-ios-infinite:before { - content: "\f44a"; -} - -.ion-ios-infinite-outline:before { - content: "\f449"; -} - -.ion-ios-information:before { - content: "\f44d"; -} - -.ion-ios-information-empty:before { - content: "\f44b"; -} - -.ion-ios-information-outline:before { - content: "\f44c"; -} - -.ion-ios-ionic-outline:before { - content: "\f44e"; -} - -.ion-ios-keypad:before { - content: "\f450"; -} - -.ion-ios-keypad-outline:before { - content: "\f44f"; -} - -.ion-ios-lightbulb:before { - content: "\f452"; -} - -.ion-ios-lightbulb-outline:before { - content: "\f451"; -} - -.ion-ios-list:before { - content: "\f454"; -} - -.ion-ios-list-outline:before { - content: "\f453"; -} - -.ion-ios-location:before { - content: "\f456"; -} - -.ion-ios-location-outline:before { - content: "\f455"; -} - -.ion-ios-locked:before { - content: "\f458"; -} - -.ion-ios-locked-outline:before { - content: "\f457"; -} - -.ion-ios-loop:before { - content: "\f45a"; -} - -.ion-ios-loop-strong:before { - content: "\f459"; -} - -.ion-ios-medical:before { - content: "\f45c"; -} - -.ion-ios-medical-outline:before { - content: "\f45b"; -} - -.ion-ios-medkit:before { - content: "\f45e"; -} - -.ion-ios-medkit-outline:before { - content: "\f45d"; -} - -.ion-ios-mic:before { - content: "\f461"; -} - -.ion-ios-mic-off:before { - content: "\f45f"; -} - -.ion-ios-mic-outline:before { - content: "\f460"; -} - -.ion-ios-minus:before { - content: "\f464"; -} - -.ion-ios-minus-empty:before { - content: "\f462"; -} - -.ion-ios-minus-outline:before { - content: "\f463"; -} - -.ion-ios-monitor:before { - content: "\f466"; -} - -.ion-ios-monitor-outline:before { - content: "\f465"; -} - -.ion-ios-moon:before { - content: "\f468"; -} - -.ion-ios-moon-outline:before { - content: "\f467"; -} - -.ion-ios-more:before { - content: "\f46a"; -} - -.ion-ios-more-outline:before { - content: "\f469"; -} - -.ion-ios-musical-note:before { - content: "\f46b"; -} - -.ion-ios-musical-notes:before { - content: "\f46c"; -} - -.ion-ios-navigate:before { - content: "\f46e"; -} - -.ion-ios-navigate-outline:before { - content: "\f46d"; -} - -.ion-ios-nutrition:before { - content: "\f470"; -} - -.ion-ios-nutrition-outline:before { - content: "\f46f"; -} - -.ion-ios-paper:before { - content: "\f472"; -} - -.ion-ios-paper-outline:before { - content: "\f471"; -} - -.ion-ios-paperplane:before { - content: "\f474"; -} - -.ion-ios-paperplane-outline:before { - content: "\f473"; -} - -.ion-ios-partlysunny:before { - content: "\f476"; -} - -.ion-ios-partlysunny-outline:before { - content: "\f475"; -} - -.ion-ios-pause:before { - content: "\f478"; -} - -.ion-ios-pause-outline:before { - content: "\f477"; -} - -.ion-ios-paw:before { - content: "\f47a"; -} - -.ion-ios-paw-outline:before { - content: "\f479"; -} - -.ion-ios-people:before { - content: "\f47c"; -} - -.ion-ios-people-outline:before { - content: "\f47b"; -} - -.ion-ios-person:before { - content: "\f47e"; -} - -.ion-ios-person-outline:before { - content: "\f47d"; -} - -.ion-ios-personadd:before { - content: "\f480"; -} - -.ion-ios-personadd-outline:before { - content: "\f47f"; -} - -.ion-ios-photos:before { - content: "\f482"; -} - -.ion-ios-photos-outline:before { - content: "\f481"; -} - -.ion-ios-pie:before { - content: "\f484"; -} - -.ion-ios-pie-outline:before { - content: "\f483"; -} - -.ion-ios-pint:before { - content: "\f486"; -} - -.ion-ios-pint-outline:before { - content: "\f485"; -} - -.ion-ios-play:before { - content: "\f488"; -} - -.ion-ios-play-outline:before { - content: "\f487"; -} - -.ion-ios-plus:before { - content: "\f48b"; -} - -.ion-ios-plus-empty:before { - content: "\f489"; -} - -.ion-ios-plus-outline:before { - content: "\f48a"; -} - -.ion-ios-pricetag:before { - content: "\f48d"; -} - -.ion-ios-pricetag-outline:before { - content: "\f48c"; -} - -.ion-ios-pricetags:before { - content: "\f48f"; -} - -.ion-ios-pricetags-outline:before { - content: "\f48e"; -} - -.ion-ios-printer:before { - content: "\f491"; -} - -.ion-ios-printer-outline:before { - content: "\f490"; -} - -.ion-ios-pulse:before { - content: "\f493"; -} - -.ion-ios-pulse-strong:before { - content: "\f492"; -} - -.ion-ios-rainy:before { - content: "\f495"; -} - -.ion-ios-rainy-outline:before { - content: "\f494"; -} - -.ion-ios-recording:before { - content: "\f497"; -} - -.ion-ios-recording-outline:before { - content: "\f496"; -} - -.ion-ios-redo:before { - content: "\f499"; -} - -.ion-ios-redo-outline:before { - content: "\f498"; -} - -.ion-ios-refresh:before { - content: "\f49c"; -} - -.ion-ios-refresh-empty:before { - content: "\f49a"; -} - -.ion-ios-refresh-outline:before { - content: "\f49b"; -} - -.ion-ios-reload:before { - content: "\f49d"; -} - -.ion-ios-reverse-camera:before { - content: "\f49f"; -} - -.ion-ios-reverse-camera-outline:before { - content: "\f49e"; -} - -.ion-ios-rewind:before { - content: "\f4a1"; -} - -.ion-ios-rewind-outline:before { - content: "\f4a0"; -} - -.ion-ios-rose:before { - content: "\f4a3"; -} - -.ion-ios-rose-outline:before { - content: "\f4a2"; -} - -.ion-ios-search:before { - content: "\f4a5"; -} - -.ion-ios-search-strong:before { - content: "\f4a4"; -} - -.ion-ios-settings:before { - content: "\f4a7"; -} - -.ion-ios-settings-strong:before { - content: "\f4a6"; -} - -.ion-ios-shuffle:before { - content: "\f4a9"; -} - -.ion-ios-shuffle-strong:before { - content: "\f4a8"; -} - -.ion-ios-skipbackward:before { - content: "\f4ab"; -} - -.ion-ios-skipbackward-outline:before { - content: "\f4aa"; -} - -.ion-ios-skipforward:before { - content: "\f4ad"; -} - -.ion-ios-skipforward-outline:before { - content: "\f4ac"; -} - -.ion-ios-snowy:before { - content: "\f4ae"; -} - -.ion-ios-speedometer:before { - content: "\f4b0"; -} - -.ion-ios-speedometer-outline:before { - content: "\f4af"; -} - -.ion-ios-star:before { - content: "\f4b3"; -} - -.ion-ios-star-half:before { - content: "\f4b1"; -} - -.ion-ios-star-outline:before { - content: "\f4b2"; -} - -.ion-ios-stopwatch:before { - content: "\f4b5"; -} - -.ion-ios-stopwatch-outline:before { - content: "\f4b4"; -} - -.ion-ios-sunny:before { - content: "\f4b7"; -} - -.ion-ios-sunny-outline:before { - content: "\f4b6"; -} - -.ion-ios-telephone:before { - content: "\f4b9"; -} - -.ion-ios-telephone-outline:before { - content: "\f4b8"; -} - -.ion-ios-tennisball:before { - content: "\f4bb"; -} - -.ion-ios-tennisball-outline:before { - content: "\f4ba"; -} - -.ion-ios-thunderstorm:before { - content: "\f4bd"; -} - -.ion-ios-thunderstorm-outline:before { - content: "\f4bc"; -} - -.ion-ios-time:before { - content: "\f4bf"; -} - -.ion-ios-time-outline:before { - content: "\f4be"; -} - -.ion-ios-timer:before { - content: "\f4c1"; -} - -.ion-ios-timer-outline:before { - content: "\f4c0"; -} - -.ion-ios-toggle:before { - content: "\f4c3"; -} - -.ion-ios-toggle-outline:before { - content: "\f4c2"; -} - -.ion-ios-trash:before { - content: "\f4c5"; -} - -.ion-ios-trash-outline:before { - content: "\f4c4"; -} - -.ion-ios-undo:before { - content: "\f4c7"; -} - -.ion-ios-undo-outline:before { - content: "\f4c6"; -} - -.ion-ios-unlocked:before { - content: "\f4c9"; -} - -.ion-ios-unlocked-outline:before { - content: "\f4c8"; -} - -.ion-ios-upload:before { - content: "\f4cb"; -} - -.ion-ios-upload-outline:before { - content: "\f4ca"; -} - -.ion-ios-videocam:before { - content: "\f4cd"; -} - -.ion-ios-videocam-outline:before { - content: "\f4cc"; -} - -.ion-ios-volume-high:before { - content: "\f4ce"; -} - -.ion-ios-volume-low:before { - content: "\f4cf"; -} - -.ion-ios-wineglass:before { - content: "\f4d1"; -} - -.ion-ios-wineglass-outline:before { - content: "\f4d0"; -} - -.ion-ios-world:before { - content: "\f4d3"; -} - -.ion-ios-world-outline:before { - content: "\f4d2"; -} - -.ion-ipad:before { - content: "\f1f9"; -} - -.ion-iphone:before { - content: "\f1fa"; -} - -.ion-ipod:before { - content: "\f1fb"; -} - -.ion-jet:before { - content: "\f295"; -} - -.ion-key:before { - content: "\f296"; -} - -.ion-knife:before { - content: "\f297"; -} - -.ion-laptop:before { - content: "\f1fc"; -} - -.ion-leaf:before { - content: "\f1fd"; -} - -.ion-levels:before { - content: "\f298"; -} - -.ion-lightbulb:before { - content: "\f299"; -} - -.ion-link:before { - content: "\f1fe"; -} - -.ion-load-a:before { - content: "\f29a"; -} - -.ion-load-b:before { - content: "\f29b"; -} - -.ion-load-c:before { - content: "\f29c"; -} - -.ion-load-d:before { - content: "\f29d"; -} - -.ion-location:before { - content: "\f1ff"; -} - -.ion-lock-combination:before { - content: "\f4d4"; -} - -.ion-locked:before { - content: "\f200"; -} - -.ion-log-in:before { - content: "\f29e"; -} - -.ion-log-out:before { - content: "\f29f"; -} - -.ion-loop:before { - content: "\f201"; -} - -.ion-magnet:before { - content: "\f2a0"; -} - -.ion-male:before { - content: "\f2a1"; -} - -.ion-man:before { - content: "\f202"; -} - -.ion-map:before { - content: "\f203"; -} - -.ion-medkit:before { - content: "\f2a2"; -} - -.ion-merge:before { - content: "\f33f"; -} - -.ion-mic-a:before { - content: "\f204"; -} - -.ion-mic-b:before { - content: "\f205"; -} - -.ion-mic-c:before { - content: "\f206"; -} - -.ion-minus:before { - content: "\f209"; -} - -.ion-minus-circled:before { - content: "\f207"; -} - -.ion-minus-round:before { - content: "\f208"; -} - -.ion-model-s:before { - content: "\f2c1"; -} - -.ion-monitor:before { - content: "\f20a"; -} - -.ion-more:before { - content: "\f20b"; -} - -.ion-mouse:before { - content: "\f340"; -} - -.ion-music-note:before { - content: "\f20c"; -} - -.ion-navicon:before { - content: "\f20e"; -} - -.ion-navicon-round:before { - content: "\f20d"; -} - -.ion-navigate:before { - content: "\f2a3"; -} - -.ion-network:before { - content: "\f341"; -} - -.ion-no-smoking:before { - content: "\f2c2"; -} - -.ion-nuclear:before { - content: "\f2a4"; -} - -.ion-outlet:before { - content: "\f342"; -} - -.ion-paintbrush:before { - content: "\f4d5"; -} - -.ion-paintbucket:before { - content: "\f4d6"; -} - -.ion-paper-airplane:before { - content: "\f2c3"; -} - -.ion-paperclip:before { - content: "\f20f"; -} - -.ion-pause:before { - content: "\f210"; -} - -.ion-person:before { - content: "\f213"; -} - -.ion-person-add:before { - content: "\f211"; -} - -.ion-person-stalker:before { - content: "\f212"; -} - -.ion-pie-graph:before { - content: "\f2a5"; -} - -.ion-pin:before { - content: "\f2a6"; -} - -.ion-pinpoint:before { - content: "\f2a7"; -} - -.ion-pizza:before { - content: "\f2a8"; -} - -.ion-plane:before { - content: "\f214"; -} - -.ion-planet:before { - content: "\f343"; -} - -.ion-play:before { - content: "\f215"; -} - -.ion-playstation:before { - content: "\f30a"; -} - -.ion-plus:before { - content: "\f218"; -} - -.ion-plus-circled:before { - content: "\f216"; -} - -.ion-plus-round:before { - content: "\f217"; -} - -.ion-podium:before { - content: "\f344"; -} - -.ion-pound:before { - content: "\f219"; -} - -.ion-power:before { - content: "\f2a9"; -} - -.ion-pricetag:before { - content: "\f2aa"; -} - -.ion-pricetags:before { - content: "\f2ab"; -} - -.ion-printer:before { - content: "\f21a"; -} - -.ion-pull-request:before { - content: "\f345"; -} - -.ion-qr-scanner:before { - content: "\f346"; -} - -.ion-quote:before { - content: "\f347"; -} - -.ion-radio-waves:before { - content: "\f2ac"; -} - -.ion-record:before { - content: "\f21b"; -} - -.ion-refresh:before { - content: "\f21c"; -} - -.ion-reply:before { - content: "\f21e"; -} - -.ion-reply-all:before { - content: "\f21d"; -} - -.ion-ribbon-a:before { - content: "\f348"; -} - -.ion-ribbon-b:before { - content: "\f349"; -} - -.ion-sad:before { - content: "\f34a"; -} - -.ion-sad-outline:before { - content: "\f4d7"; -} - -.ion-scissors:before { - content: "\f34b"; -} - -.ion-search:before { - content: "\f21f"; -} - -.ion-settings:before { - content: "\f2ad"; -} - -.ion-share:before { - content: "\f220"; -} - -.ion-shuffle:before { - content: "\f221"; -} - -.ion-skip-backward:before { - content: "\f222"; -} - -.ion-skip-forward:before { - content: "\f223"; -} - -.ion-social-android:before { - content: "\f225"; -} - -.ion-social-android-outline:before { - content: "\f224"; -} - -.ion-social-angular:before { - content: "\f4d9"; -} - -.ion-social-angular-outline:before { - content: "\f4d8"; -} - -.ion-social-apple:before { - content: "\f227"; -} - -.ion-social-apple-outline:before { - content: "\f226"; -} - -.ion-social-bitcoin:before { - content: "\f2af"; -} - -.ion-social-bitcoin-outline:before { - content: "\f2ae"; -} - -.ion-social-buffer:before { - content: "\f229"; -} - -.ion-social-buffer-outline:before { - content: "\f228"; -} - -.ion-social-chrome:before { - content: "\f4db"; -} - -.ion-social-chrome-outline:before { - content: "\f4da"; -} - -.ion-social-codepen:before { - content: "\f4dd"; -} - -.ion-social-codepen-outline:before { - content: "\f4dc"; -} - -.ion-social-css3:before { - content: "\f4df"; -} - -.ion-social-css3-outline:before { - content: "\f4de"; -} - -.ion-social-designernews:before { - content: "\f22b"; -} - -.ion-social-designernews-outline:before { - content: "\f22a"; -} - -.ion-social-dribbble:before { - content: "\f22d"; -} - -.ion-social-dribbble-outline:before { - content: "\f22c"; -} - -.ion-social-dropbox:before { - content: "\f22f"; -} - -.ion-social-dropbox-outline:before { - content: "\f22e"; -} - -.ion-social-euro:before { - content: "\f4e1"; -} - -.ion-social-euro-outline:before { - content: "\f4e0"; -} - -.ion-social-facebook:before { - content: "\f231"; -} - -.ion-social-facebook-outline:before { - content: "\f230"; -} - -.ion-social-foursquare:before { - content: "\f34d"; -} - -.ion-social-foursquare-outline:before { - content: "\f34c"; -} - -.ion-social-freebsd-devil:before { - content: "\f2c4"; -} - -.ion-social-github:before { - content: "\f233"; -} - -.ion-social-github-outline:before { - content: "\f232"; -} - -.ion-social-google:before { - content: "\f34f"; -} - -.ion-social-google-outline:before { - content: "\f34e"; -} - -.ion-social-googleplus:before { - content: "\f235"; -} - -.ion-social-googleplus-outline:before { - content: "\f234"; -} - -.ion-social-hackernews:before { - content: "\f237"; -} - -.ion-social-hackernews-outline:before { - content: "\f236"; -} - -.ion-social-html5:before { - content: "\f4e3"; -} - -.ion-social-html5-outline:before { - content: "\f4e2"; -} - -.ion-social-instagram:before { - content: "\f351"; -} - -.ion-social-instagram-outline:before { - content: "\f350"; -} - -.ion-social-javascript:before { - content: "\f4e5"; -} - -.ion-social-javascript-outline:before { - content: "\f4e4"; -} - -.ion-social-linkedin:before { - content: "\f239"; -} - -.ion-social-linkedin-outline:before { - content: "\f238"; -} - -.ion-social-markdown:before { - content: "\f4e6"; -} - -.ion-social-nodejs:before { - content: "\f4e7"; -} - -.ion-social-octocat:before { - content: "\f4e8"; -} - -.ion-social-pinterest:before { - content: "\f2b1"; -} - -.ion-social-pinterest-outline:before { - content: "\f2b0"; -} - -.ion-social-python:before { - content: "\f4e9"; -} - -.ion-social-reddit:before { - content: "\f23b"; -} - -.ion-social-reddit-outline:before { - content: "\f23a"; -} - -.ion-social-rss:before { - content: "\f23d"; -} - -.ion-social-rss-outline:before { - content: "\f23c"; -} - -.ion-social-sass:before { - content: "\f4ea"; -} - -.ion-social-skype:before { - content: "\f23f"; -} - -.ion-social-skype-outline:before { - content: "\f23e"; -} - -.ion-social-snapchat:before { - content: "\f4ec"; -} - -.ion-social-snapchat-outline:before { - content: "\f4eb"; -} - -.ion-social-tumblr:before { - content: "\f241"; -} - -.ion-social-tumblr-outline:before { - content: "\f240"; -} - -.ion-social-tux:before { - content: "\f2c5"; -} - -.ion-social-twitch:before { - content: "\f4ee"; -} - -.ion-social-twitch-outline:before { - content: "\f4ed"; -} - -.ion-social-twitter:before { - content: "\f243"; -} - -.ion-social-twitter-outline:before { - content: "\f242"; -} - -.ion-social-usd:before { - content: "\f353"; -} - -.ion-social-usd-outline:before { - content: "\f352"; -} - -.ion-social-vimeo:before { - content: "\f245"; -} - -.ion-social-vimeo-outline:before { - content: "\f244"; -} - -.ion-social-whatsapp:before { - content: "\f4f0"; -} - -.ion-social-whatsapp-outline:before { - content: "\f4ef"; -} - -.ion-social-windows:before { - content: "\f247"; -} - -.ion-social-windows-outline:before { - content: "\f246"; -} - -.ion-social-wordpress:before { - content: "\f249"; -} - -.ion-social-wordpress-outline:before { - content: "\f248"; -} - -.ion-social-yahoo:before { - content: "\f24b"; -} - -.ion-social-yahoo-outline:before { - content: "\f24a"; -} - -.ion-social-yen:before { - content: "\f4f2"; -} - -.ion-social-yen-outline:before { - content: "\f4f1"; -} - -.ion-social-youtube:before { - content: "\f24d"; -} - -.ion-social-youtube-outline:before { - content: "\f24c"; -} - -.ion-soup-can:before { - content: "\f4f4"; -} - -.ion-soup-can-outline:before { - content: "\f4f3"; -} - -.ion-speakerphone:before { - content: "\f2b2"; -} - -.ion-speedometer:before { - content: "\f2b3"; -} - -.ion-spoon:before { - content: "\f2b4"; -} - -.ion-star:before { - content: "\f24e"; -} - -.ion-stats-bars:before { - content: "\f2b5"; -} - -.ion-steam:before { - content: "\f30b"; -} - -.ion-stop:before { - content: "\f24f"; -} - -.ion-thermometer:before { - content: "\f2b6"; -} - -.ion-thumbsdown:before { - content: "\f250"; -} - -.ion-thumbsup:before { - content: "\f251"; -} - -.ion-toggle:before { - content: "\f355"; -} - -.ion-toggle-filled:before { - content: "\f354"; -} - -.ion-transgender:before { - content: "\f4f5"; -} - -.ion-trash-a:before { - content: "\f252"; -} - -.ion-trash-b:before { - content: "\f253"; -} - -.ion-trophy:before { - content: "\f356"; -} - -.ion-tshirt:before { - content: "\f4f7"; -} - -.ion-tshirt-outline:before { - content: "\f4f6"; -} - -.ion-umbrella:before { - content: "\f2b7"; -} - -.ion-university:before { - content: "\f357"; -} - -.ion-unlocked:before { - content: "\f254"; -} - -.ion-upload:before { - content: "\f255"; -} - -.ion-usb:before { - content: "\f2b8"; -} - -.ion-videocamera:before { - content: "\f256"; -} - -.ion-volume-high:before { - content: "\f257"; -} - -.ion-volume-low:before { - content: "\f258"; -} - -.ion-volume-medium:before { - content: "\f259"; -} - -.ion-volume-mute:before { - content: "\f25a"; -} - -.ion-wand:before { - content: "\f358"; -} - -.ion-waterdrop:before { - content: "\f25b"; -} - -.ion-wifi:before { - content: "\f25c"; -} - -.ion-wineglass:before { - content: "\f2b9"; -} - -.ion-woman:before { - content: "\f25d"; -} - -.ion-wrench:before { - content: "\f2ba"; -} - -.ion-xbox:before { - content: "\f30c"; -} - /*# sourceMappingURL=ionicons.css.map */ diff --git a/app/assets/stylesheets/app/_extensions.scss b/app/assets/stylesheets/app/_extensions.scss deleted file mode 100644 index 71edefcdb..000000000 --- a/app/assets/stylesheets/app/_extensions.scss +++ /dev/null @@ -1,97 +0,0 @@ -.extension-render-modal { - position: fixed; - margin-left: auto; - margin-right: auto; - left: 0; - right: 0; - top: 0; - bottom: 0; - z-index: 10000; - width: 100vw; - height: 100vh; - background-color: rgba(gray, 0.3); - color: black; - - .content { - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-color: white; - width: 700px; - height: 500px; - margin: auto; - padding: 25px; - position: absolute; - top: 0; left: 0; bottom: 0; right: 0; - overflow-y: scroll; - } -} - -#global-ext-menu { - color: black; - .panel-body { - padding: 0; - } - - .container { - padding: 13px 18px; - - &.no-bottom { - padding-bottom: 0; - } - } - - p { - font-size: 14px; - - &.small { - font-size: 12px; - } - } - - .link-group { - a { - margin-right: 2px; - } - } - - .dashboard-link { - padding-top: 12px; - font-weight: normal; - } - - .section-margin { - margin-top: 20px; - } - - input { - border: 1px solid $blue-color; - border-radius: 2px; - } - - .header { - padding-bottom: 12px; - } - - ul { - border-top: 1px solid $light-bg-color; - border-bottom: 1px solid $light-bg-color; - margin: 0; - padding: 0; - - li { - cursor: pointer; - background-color: rgba($light-bg-color, 0.2); - &:hover { - background-color: rgba($light-bg-color, 0.4); - } - &:not(:last-child) { - border-bottom: 1px solid $light-bg-color; - } - } - } - -} - -ul { - margin: 0; - padding: 0; -} diff --git a/app/assets/stylesheets/app/_footer.scss b/app/assets/stylesheets/app/_footer.scss index 0694c4e2e..5eb9851d0 100644 --- a/app/assets/stylesheets/app/_footer.scss +++ b/app/assets/stylesheets/app/_footer.scss @@ -21,12 +21,6 @@ z-index: 1000; margin-top: 15px; background-color: white; - - .close-button { - &:hover { - text-decoration: none; - } - } } } @@ -43,58 +37,8 @@ a.disabled { pointer-events: none; } - .icon.ion-locked { margin-left: 5px; border-left: 1px solid gray; padding-left: 8px; } - - - - -/* Global Ext Menu */ - -.ext-section { - - min-height: 50px; - - h1 { - margin: 0; - padding: 0; - padding-top: 5px; - } - - &.opened { - h1 { - padding-top: 0px; - // padding-bottom: 6px; - } - } -} - -.room-iframe { - width: 100%; - height: 100%; -} - - - -// .spinner { -// height: 10px; -// width: 10px; -// animation: rotate 0.8s infinite linear; -// border: 1px solid #515263; -// border-right-color: transparent; -// border-radius: 50%; -// -// &.tinted { -// border: 1px solid $blue-color; -// border-right-color: transparent; -// } -// } -// -// @keyframes rotate { -// 0% { transform: rotate(0deg); } -// 100% { transform: rotate(360deg); } -// } diff --git a/app/assets/stylesheets/app/_main.scss b/app/assets/stylesheets/app/_main.scss index a6cd228f9..8dc27c5a5 100644 --- a/app/assets/stylesheets/app/_main.scss +++ b/app/assets/stylesheets/app/_main.scss @@ -22,7 +22,15 @@ body { } * { - box-sizing: border-box; + box-sizing: border-box; +} + +.tinted { + color: $blue-color; +} + +.tinted-selected { + color: white; } *:focus {outline:0;} @@ -37,51 +45,6 @@ input, button, select, textarea { line-height: inherit; } -.tinted { - color: $blue-color; -} - -.tinted-selected { - color: white; -} - -.tinted-box { - background-color: $blue-color; - color: white; - border-radius: 4px; - padding: 16px 20px; - - button { - background-color: white; - color: $blue-color; - border-radius: 3px; - font-weight: bold; - padding: 6px 20px; - width: 100%; - &:hover { - text-decoration: underline; - } - } -} - -.dark-button { - background-color: #2e2e2e; - border: 0; - padding: 6px 18px; - font-size: 16px; - cursor: pointer; - color: #fff; - border-radius: 2px; - border: 1px solid transparent; - -webkit-appearance: none; - -webkit-font-smoothing: antialiased; - -webkit-tap-highlight-color: transparent; - - &:hover { - background-color: black; - } -} - a { color: $blue-color; text-decoration: none; @@ -120,21 +83,6 @@ $footer-height: 32px; overflow: hidden; position: relative; - .light-button { - background-color: $bg-color; - font-weight: bold; - color: $main-text-color; - font-size: 16px; - text-align: center; - height: 35px; - border-radius: 4px; - padding-top: 6px; - - &:hover { - background-color: #cdcdcd; - } - } - panel-resizer { top: 0; right: 0; diff --git a/app/assets/stylesheets/app/_menus.scss b/app/assets/stylesheets/app/_menus.scss index 3defb1d9e..362eaf767 100644 --- a/app/assets/stylesheets/app/_menus.scss +++ b/app/assets/stylesheets/app/_menus.scss @@ -5,19 +5,16 @@ } .dropdown-menu { - position: absolute; - top: 100%; - left: 0; - float: left; - min-width: 160px; - z-index: 100; + position: absolute; + top: 100%; + left: 0; + float: left; + min-width: 160px; + z-index: 100; - margin-top: 5px; - - width: 280px; - - max-height: calc(85vh - 90px); - - background-color: white; - color: $selected-text-color; + margin-top: 5px; + width: 280px; + max-height: calc(85vh - 90px); + background-color: white; + color: $selected-text-color; } diff --git a/app/assets/stylesheets/app/_modals.scss b/app/assets/stylesheets/app/_modals.scss index fb0ab7435..1bf064a03 100644 --- a/app/assets/stylesheets/app/_modals.scss +++ b/app/assets/stylesheets/app/_modals.scss @@ -37,6 +37,20 @@ align-items: center; justify-content: center; + .sn-component { + height: 100%; + .panel { + height: 100%; + } + } + + &.medium { + > .content { + width: 700px; + height: 500px; + } + } + .background { position: absolute; z-index: -1; diff --git a/app/assets/stylesheets/app/_standard.scss b/app/assets/stylesheets/app/_standard.scss deleted file mode 100644 index 134609878..000000000 --- a/app/assets/stylesheets/app/_standard.scss +++ /dev/null @@ -1,48 +0,0 @@ -.mt-5 { - margin-top: 5px !important; -} - -.mt-10 { - margin-top: 10px !important; -} - -.faded { - opacity: 0.5; -} - -.center-align { - text-align: center !important; -} - -.block { - display: block !important; -} - -.wrap { - word-wrap: break-word; - word-break: break-all; -} - -.medium-padding { - padding: 10px !important; -} - -.red { - color: red !important; -} - -.bold { - font-weight: bold !important; -} - -.normal { - font-weight: normal !important; -} - -.small { - font-size: 10px; -} - -.medium { - font-size: 14px !important; -} diff --git a/app/assets/stylesheets/app/_stylekit-sub.scss b/app/assets/stylesheets/app/_stylekit-sub.scss index 15fd3da56..5fb32e5bc 100644 --- a/app/assets/stylesheets/app/_stylekit-sub.scss +++ b/app/assets/stylesheets/app/_stylekit-sub.scss @@ -1,6 +1,18 @@ +.sn-component { + +} + .panel { color: black; + .header { + .close-button { + &:hover { + text-decoration: none; + } + } + } + input { min-height: 39px; } diff --git a/app/assets/stylesheets/app/_ui.scss b/app/assets/stylesheets/app/_ui.scss index 1a48b6ca2..91b0be017 100644 --- a/app/assets/stylesheets/app/_ui.scss +++ b/app/assets/stylesheets/app/_ui.scss @@ -56,3 +56,57 @@ $screen-md-max: ($screen-lg-min - 1) !default; @content; } } + +.selectable { + user-select: text !important; + cursor: text; +} + +.mt-5 { + margin-top: 5px !important; +} + +.mt-10 { + margin-top: 10px !important; +} + +.faded { + opacity: 0.5; +} + +.center-align { + text-align: center !important; +} + +.block { + display: block !important; +} + +.wrap { + word-wrap: break-word; + word-break: break-all; +} + +.medium-padding { + padding: 10px !important; +} + +.red { + color: red !important; +} + +.bold { + font-weight: bold !important; +} + +.normal { + font-weight: normal !important; +} + +.small { + font-size: 10px; +} + +.medium { + font-size: 14px !important; +} diff --git a/app/assets/stylesheets/frontend.css.scss b/app/assets/stylesheets/frontend.css.scss index 2097406ef..f33649227 100644 --- a/app/assets/stylesheets/frontend.css.scss +++ b/app/assets/stylesheets/frontend.css.scss @@ -1,13 +1,9 @@ -$dark-gray: #2e2e2e; - -@import "app/standard"; @import "app/main"; @import "app/ui"; @import "app/footer"; @import "app/tags"; @import "app/notes"; @import "app/editor"; -@import "app/extensions"; @import "app/menus"; @import "app/modals"; @import "app/lock-screen"; diff --git a/app/assets/templates/frontend/directives/actions-menu.html.haml b/app/assets/templates/frontend/directives/actions-menu.html.haml index 59eb519c7..52470f972 100644 --- a/app/assets/templates/frontend/directives/actions-menu.html.haml +++ b/app/assets/templates/frontend/directives/actions-menu.html.haml @@ -4,33 +4,29 @@ %a.no-decoration{"ng-if" => "extensions.length == 0", "href" => "https://standardnotes.org/extensions", "target" => "blank"} %menu-row{"title" => "'Download Actions'"} - .section{"ng-repeat" => "extension in extensions"} + %div{"ng-repeat" => "extension in extensions"} .header{"ng-click" => "extension.hide = !extension.hide; $event.stopPropagation();"} .column %h4.title {{extension.name}} - .subtitle - Will submit your note - %strong {{accessTypeForExtension(extension)}} .spinner.small.loading{"ng-if" => "extension.loading"} %div{"ng-if" => "extension.hide"} … - %menu-row{"ng-if" => "!extension.hide", "ng-repeat" => "action in extension.actionsWithContextForItem(item)", "ng-click" => "executeAction(action, extension); $event.stopPropagation();", - "ng-class" => "{'faded' : !isActionEnabled(action, extension)}", "title" => "action.label", "subtitle" => "action.desc"} - .small.normal{"ng-if" => "!isActionEnabled(action, extension)"} - Requires {{action.access_type}} access to this note. + %menu-row{"ng-if" => "!extension.hide", "ng-repeat" => "action in extension.actionsWithContextForItem(item)", + "ng-click" => "executeAction(action, extension); $event.stopPropagation();", "title" => "action.label", "subtitle" => "action.desc", + "spinner-class" => "action.running ? 'info' : null", "sub-rows" => "action.subrows"} + .sublabel{"ng-if" => "action.access_type"} + Uses + %strong {{action.access_type}} + access to this note. - %div{"ng-if" => "action.showNestedActions"} - %ul.mt-10 - %li.menu-item.white-bg.nested-hover{"ng-repeat" => "subaction in action.subactions", "ng-click" => "executeAction(subaction, extension, action); $event.stopPropagation();", "style" => "margin-top: -1px;"} - %label.menu-item-title {{subaction.label}} - .menu-item-subtitle {{subaction.desc}} - %span{"ng-if" => "subaction.running"} - .spinner.small{"style" => "margin-top: 3px;"} - %span{"ng-if" => "action.running"} - .spinner.small{"style" => "margin-top: 3px;"} - - .extension-render-modal{"ng-if" => "renderData.showRenderModal", "ng-click" => "renderData.showRenderModal = false"} - .content - %h2 {{renderData.title}} - %p.normal{"style" => "white-space: pre-wrap; font-family: monospace; font-size: 16px;"} {{renderData.text}} +.modal.medium{"ng-if" => "renderData.showRenderModal", "ng-click" => "$event.stopPropagation();"} + .content + .sn-component + .panel + .header + %h1.title Preview + %a.close-button.info{"ng-click" => "renderData.showRenderModal = false; $event.stopPropagation();"} Close + .content.selectable + %h2 {{renderData.title}} + %p.normal{"style" => "white-space: pre-wrap; font-family: monospace; font-size: 16px;"} {{renderData.text}} diff --git a/app/assets/templates/frontend/directives/editor-menu.html.haml b/app/assets/templates/frontend/directives/editor-menu.html.haml index 4e0796e6b..f6508d3af 100644 --- a/app/assets/templates/frontend/directives/editor-menu.html.haml +++ b/app/assets/templates/frontend/directives/editor-menu.html.haml @@ -9,7 +9,7 @@ "circle" => "selectedEditor === editor && 'success'", "has-button" => "selectedEditor == editor || defaultEditor == editor", "button-text" => "defaultEditor == editor ? 'Undefault' : 'Set Default'", "button-action" => "toggleDefaultForEditor(editor)", "button-class" => "defaultEditor == editor ? 'warning' : 'info'"} - .row + .row{"ng-if" => "component.conflict_of || offlineAvailableForComponent(editor)"} .column %strong.red.medium{"ng-if" => "editor.conflict_of"} Conflicted copy .sublabel{"ng-if" => "offlineAvailableForComponent(editor)"} @@ -22,8 +22,8 @@ %h4.title Editor Stack %menu-row{"ng-repeat" => "component in stack", "ng-click" => "selectComponent($event, component)", "title" => "component.name", "circle" => "component.active ? 'success' : 'danger'"} - .row + .row{"ng-if" => "component.conflict_of || offlineAvailableForComponent(component)"} .column %strong.red.medium{"ng-if" => "component.conflict_of"} Conflicted copy - .sublabel{"ng-if" => "component.local_url"} + .sublabel{"ng-if" => "offlineAvailableForComponent(component)"} Available Offline diff --git a/app/assets/templates/frontend/directives/menu-row.html.haml b/app/assets/templates/frontend/directives/menu-row.html.haml index df8d0dea3..f710800cc 100644 --- a/app/assets/templates/frontend/directives/menu-row.html.haml +++ b/app/assets/templates/frontend/directives/menu-row.html.haml @@ -9,6 +9,13 @@ .sublabel{"ng-if" => "subtitle"} {{subtitle}} %ng-transclude + .subrows{"ng-if" => "subRows && subRows.length > 0"} + %menu-row{"ng-repeat" => "row in subRows", "ng-click" => "row.onClick($event); $event.stopPropagation();", + "title" => "row.title", "subtitle" => "row.subtitle", "spinner-class" => "row.spinnerClass"} + .column{"ng-if" => "hasButton"} .button.info{"ng-click" => "clickButton($event)", "ng-class" => "buttonClass"} {{buttonText}} + + .column{"ng-if" => "spinnerClass"} + .spinner.small{"ng-class" => "spinnerClass"} diff --git a/app/assets/templates/frontend/footer.html.haml b/app/assets/templates/frontend/footer.html.haml index 0cdeb3796..8712d3b83 100644 --- a/app/assets/templates/frontend/footer.html.haml +++ b/app/assets/templates/frontend/footer.html.haml @@ -28,7 +28,7 @@ .right .item{"ng-if" => "ctrl.newUpdateAvailable", "ng-click" => "ctrl.clickedNewUpdateAnnouncement()"} - %span.tinted.normal New update downloaded. Installs on app restart. + %span.info.normal New update downloaded. Installs on app restart. .item.no-pointer{"ng-if" => "ctrl.lastSyncDate && !ctrl.isRefreshing"} .label.subtle diff --git a/app/assets/templates/frontend/notes.html.haml b/app/assets/templates/frontend/notes.html.haml index 5574d5a1c..e9a62fdfc 100644 --- a/app/assets/templates/frontend/notes.html.haml +++ b/app/assets/templates/frontend/notes.html.haml @@ -48,7 +48,7 @@ %strong.red.medium{"ng-if" => "note.errorDecrypting"} Error decrypting .pinned.tinted{"ng-if" => "note.pinned", "ng-class" => "{'tinted-selected' : ctrl.selectedNote == note}"} - %i.icon.ion-ios-flag + %i.icon.ion-bookmark %strong.medium Pinned .archived.tinted{"ng-if" => "note.archived && !ctrl.tag.archiveTag", "ng-class" => "{'tinted-selected' : ctrl.selectedNote == note}"} diff --git a/package-lock.json b/package-lock.json index 8ba4e4043..fe2b9754a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5781,9 +5781,10 @@ "dev": true }, "sn-stylekit": { - "version": "1.0.115", - "resolved": "https://registry.npmjs.org/sn-stylekit/-/sn-stylekit-1.0.115.tgz", - "integrity": "sha512-NsOS+sJoLBexantCSU/kwFWoRquAVDWs/+lxPQ1UHhEFh2Gj8G7q3omZmmbesTnHvL0vf+XK55Ne8sr50ZWJag==" + "version": "1.0.1191", + "resolved": "https://registry.npmjs.org/sn-stylekit/-/sn-stylekit-1.0.1191.tgz", + "integrity": "sha512-Xez1FNz822zw7NsG9krfxiSXklYZQNwQRSaTbxnYXmOjqCvcsGiWAgEyUzSo5p3g2nVIC/8LzKIrQw4/b3ORXw==", + "dev": true }, "snake-case": { "version": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", diff --git a/package.json b/package.json index 67c79db5e..03cc10c4f 100644 --- a/package.json +++ b/package.json @@ -32,10 +32,8 @@ "karma": "^1.4.0", "karma-cli": "^1.0.1", "karma-jasmine": "^1.1.0", - "karma-phantomjs-launcher": "^1.0.2" + "karma-phantomjs-launcher": "^1.0.2", + "sn-stylekit": "^1.0.1191" }, - "license": "GPL-3.0", - "dependencies": { - "sn-stylekit": "^1.0.115" - } + "license": "GPL-3.0" } diff --git a/vendor/assets/fonts/ionicons.eot b/vendor/assets/fonts/ionicons.eot index 92a3f20a3..9edec3907 100644 Binary files a/vendor/assets/fonts/ionicons.eot and b/vendor/assets/fonts/ionicons.eot differ diff --git a/vendor/assets/fonts/ionicons.svg b/vendor/assets/fonts/ionicons.svg index 49fc8f367..5188c5687 100644 --- a/vendor/assets/fonts/ionicons.svg +++ b/vendor/assets/fonts/ionicons.svg @@ -1,2230 +1,36 @@ - + -Created by FontForge 20120731 at Thu Dec 4 09:51:48 2014 - By Adam Bradley -Created by Adam Bradley with FontForge 2.0 (http://fontforge.sf.net) +Created by FontForge 20170925 at Fri Jan 19 12:18:20 2018 + By mo +Copyright (c) 2018, mo - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/assets/fonts/ionicons.ttf b/vendor/assets/fonts/ionicons.ttf index c4e463248..01db5bbde 100644 Binary files a/vendor/assets/fonts/ionicons.ttf and b/vendor/assets/fonts/ionicons.ttf differ diff --git a/vendor/assets/fonts/ionicons.woff b/vendor/assets/fonts/ionicons.woff index 5f3a14e0a..20532652f 100644 Binary files a/vendor/assets/fonts/ionicons.woff and b/vendor/assets/fonts/ionicons.woff differ