').addClass(namespacify('overlay') + ' ' + namespacify('is', STATES.CLOSED)).hide();
+ $appendTo.append(remodal.$overlay);
+ }
+
+ remodal.$bg = $('.' + namespacify('bg')).addClass(namespacify('is', STATES.CLOSED));
+
+ remodal.$modal = $modal
+ .addClass(
+ NAMESPACE + ' ' +
+ namespacify('is-initialized') + ' ' +
+ remodal.settings.modifier + ' ' +
+ namespacify('is', STATES.CLOSED))
+ .attr('tabindex', '-1');
+
+ remodal.$wrapper = $('
')
+ .addClass(
+ namespacify('wrapper') + ' ' +
+ remodal.settings.modifier + ' ' +
+ namespacify('is', STATES.CLOSED))
+ .hide()
+ .append(remodal.$modal);
+ $appendTo.append(remodal.$wrapper);
+
+ // Add the event listener for the close button
+ remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action="close"]', function(e) {
+ e.preventDefault();
+
+ remodal.close();
+ });
+
+ // Add the event listener for the cancel button
+ remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action="cancel"]', function(e) {
+ e.preventDefault();
+
+ remodal.$modal.trigger(STATE_CHANGE_REASONS.CANCELLATION);
+
+ if (remodal.settings.closeOnCancel) {
+ remodal.close(STATE_CHANGE_REASONS.CANCELLATION);
+ }
+ });
+
+ // Add the event listener for the confirm button
+ remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action="confirm"]', function(e) {
+ e.preventDefault();
+
+ remodal.$modal.trigger(STATE_CHANGE_REASONS.CONFIRMATION);
+
+ if (remodal.settings.closeOnConfirm) {
+ remodal.close(STATE_CHANGE_REASONS.CONFIRMATION);
+ }
+ });
+
+ // Add the event listener for the overlay
+ remodal.$wrapper.on('click.' + NAMESPACE, function(e) {
+ var $target = $(e.target);
+ var isWrapper = $target.hasClass(namespacify('wrapper'));
+ var isWithin = $target.closest('.' + namespacify('is', STATES.OPENED)).length;
+
+ if (!isWrapper && isWithin) {
+ return;
+ }
+
+ if (remodal.settings.closeOnOutsideClick) {
+ remodal.close();
+ }
+ });
+ }
+
+ /**
+ * Opens a modal window
+ * @public
+ */
+ Remodal.prototype.open = function() {
+ var remodal = this;
+ var current;
+ var modalCount;
+
+ // Check if the animation was completed
+ if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING) {
+ return;
+ }
+
+ // id = remodal.$modal.attr('data-' + PLUGIN_NAME + '-id');
+
+ if (remodal.id && remodal.settings.hashTracking) {
+ scrollTop = $(window).scrollTop();
+ location.hash = remodal.id;
+ }
+
+ if (!remodal.settings.stack) {
+ current = currentModal();
+ if (current && current !== remodal) {
+ halt(current);
+ }
+ }
+
+ modalCount = openModals.push(remodal);
+ remodal.$overlay.css('z-index', function(_, value) { return parseInt(value, 10) + modalCount; });
+ remodal.$wrapper.css('z-index', function(_, value) { return parseInt(value, 10) + modalCount; });
+
+ lockScreen();
+ remodal.$bg.addClass(remodal.settings.modifier);
+ remodal.$overlay.addClass(remodal.settings.modifier).show();
+ remodal.$wrapper.show().scrollTop(0);
+ remodal.$modal.focus();
+
+ syncWithAnimation(
+ function() {
+ setState(remodal, STATES.OPENING);
+ },
+
+ function() {
+ setState(remodal, STATES.OPENED);
+ },
+
+ remodal);
+ };
+
+ /**
+ * Closes a modal window
+ * @public
+ * @param {String} reason
+ */
+ Remodal.prototype.close = function(reason) {
+ var remodal = this;
+ var current;
+
+ // Check if the animation was completed
+ if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING || remodal.state === STATES.CLOSED) {
+ return;
+ }
+
+ removeModal(remodal);
+
+ if (
+ remodal.settings.hashTracking &&
+ remodal.id === location.hash.substr(1)
+ ) {
+ current = currentModal();
+ if (current) {
+ location.hash = current.id;
+ } else {
+ location.hash = '';
+ $(window).scrollTop(scrollTop);
+ }
+ }
+
+ syncWithAnimation(
+ function() {
+ setState(remodal, STATES.CLOSING, false, reason);
+ },
+
+ function() {
+ remodal.$bg.removeClass(remodal.settings.modifier);
+ remodal.$overlay.removeClass(remodal.settings.modifier).hide();
+ remodal.$wrapper.hide();
+
+ if (openModals.length === 0) {
+ unlockScreen();
+ }
+
+ setState(remodal, STATES.CLOSED, false, reason);
+ },
+
+ remodal);
+ };
+
+ /**
+ * Returns a current state of a modal
+ * @public
+ * @returns {STATES}
+ */
+ Remodal.prototype.getState = function() {
+ return this.state;
+ };
+
+ /**
+ * Destroys a modal
+ * @public
+ */
+ Remodal.prototype.destroy = function() {
+ var lookup = $[PLUGIN_NAME].lookup;
+ var instanceCount;
+
+ halt(this);
+ this.$wrapper.remove();
+
+ delete lookup[this.index];
+ instanceCount = $.grep(lookup, function(instance) {
+ return !!instance;
+ }).length;
+
+ if (instanceCount === 0) {
+ this.$overlay.remove();
+ this.$bg.removeClass(
+ namespacify('is', STATES.CLOSING) + ' ' +
+ namespacify('is', STATES.OPENING) + ' ' +
+ namespacify('is', STATES.CLOSED) + ' ' +
+ namespacify('is', STATES.OPENED));
+ }
+ };
+
+ /**
+ * Special plugin object for instances
+ * @public
+ * @type {Object}
+ */
+ $[PLUGIN_NAME] = {
+ lookup: []
+ };
+
+ /**
+ * Plugin constructor
+ * @constructor
+ * @param {Object} options
+ * @returns {JQuery}
+ */
+ $.fn[PLUGIN_NAME] = function(opts) {
+ var instance;
+ var $elem;
+
+ this.each(function(index, elem) {
+ $elem = $(elem);
+
+ if ($elem.data(PLUGIN_NAME) == null) {
+ instance = new Remodal($elem, opts);
+ $elem.data(PLUGIN_NAME, instance.index);
+
+ if (
+ instance.settings.hashTracking &&
+ instance.id === location.hash.substr(1)
+ ) {
+ instance.open();
+ }
+ } else {
+ instance = $[PLUGIN_NAME].lookup[$elem.data(PLUGIN_NAME)];
+ }
+ });
+
+ return instance;
+ };
+
+ $(document).ready(function() {
+
+ // data-remodal-target opens a modal window with the special Id
+ $(document).on('click', '[data-' + PLUGIN_NAME + '-target]', function(e) {
+ e.preventDefault();
+
+ var elem = e.currentTarget;
+ var id = elem.getAttribute('data-' + PLUGIN_NAME + '-target');
+ var $target = $('[data-' + PLUGIN_NAME + '-id="' + id + '"]');
+
+ $[PLUGIN_NAME].lookup[$target.data(PLUGIN_NAME)].open();
+ });
+
+ // Auto initialization of modal windows
+ // They should have the 'remodal' class attribute
+ // Also you can write the `data-remodal-options` attribute to pass params into the modal
+ $(document).find('.' + NAMESPACE).each(function(i, container) {
+ var $container = $(container);
+ var options = $container.data(PLUGIN_NAME + '-options');
+
+ if (!options) {
+ options = {};
+ } else if (typeof options === 'string' || options instanceof String) {
+ options = parseOptions(options);
+ }
+
+ $container[PLUGIN_NAME](options);
+ });
+
+ // Handles the keydown event
+ $(document).on('keydown.' + NAMESPACE, function(e) {
+ var current = currentModal();
+
+ if (current && current.settings.closeOnEscape && current.state === STATES.OPENED && e.keyCode === 27) {
+ current.close();
+ }
+ });
+
+ // Handles the hashchange event
+ $(window).on('hashchange.' + NAMESPACE, handleHashChangeEvent);
+ });
+});
diff --git a/source/user/plugins/admin/themes/grav/app/utils/request.js b/source/user/plugins/admin/themes/grav/app/utils/request.js
new file mode 100644
index 0000000..2b7911f
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/app/utils/request.js
@@ -0,0 +1,38 @@
+import { parseStatus, parseJSON, userFeedback, userFeedbackError } from './response';
+import { config } from 'grav-config';
+
+let raw;
+let request = function(url, options = {}, callback = () => true) {
+ if (typeof options === 'function') {
+ callback = options;
+ options = {};
+ }
+
+ if (options.method && options.method === 'post') {
+ let data = new FormData();
+
+ options.body = Object.assign({ 'admin-nonce': config.admin_nonce }, options.body || {});
+ Object.keys(options.body).map((key) => data.append(key, options.body[key]));
+ options.body = data;
+ }
+
+ options = Object.assign({
+ credentials: 'same-origin',
+ headers: {
+ 'Accept': 'application/json'
+ }
+ }, options);
+
+ return fetch(url, options)
+ .then((response) => {
+ raw = response;
+ return response;
+ })
+ .then(parseStatus)
+ .then(parseJSON)
+ .then(userFeedback)
+ .then((response) => callback(response, raw))
+ .catch(userFeedbackError);
+};
+
+export default request;
diff --git a/source/user/plugins/admin/themes/grav/app/utils/response.js b/source/user/plugins/admin/themes/grav/app/utils/response.js
new file mode 100644
index 0000000..9cb8d05
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/app/utils/response.js
@@ -0,0 +1,101 @@
+import $ from 'jquery';
+import toastr from './toastr';
+import isOnline from './offline';
+import { config } from 'grav-config';
+import trim from 'mout/string/trim';
+
+let UNLOADING = false;
+let error = function(response) {
+ let error = new Error(response.statusText || response || '');
+ error.response = response;
+
+ return error;
+};
+
+export function parseStatus(response) {
+ return response;
+
+ /* Whoops can handle JSON responses so we don't need this for now.
+ if (response.status >= 200 && response.status < 300) {
+ return response;
+ } else {
+ throw error(response);
+ }
+ */
+}
+
+export function parseJSON(response) {
+ return response.text().then((text) => {
+ let parsed = text;
+ try {
+ parsed = JSON.parse(text);
+ } catch (error) {
+ let content = document.createElement('div');
+ content.innerHTML = text;
+
+ let the_error = new Error();
+ the_error.stack = trim(content.innerText);
+
+ throw the_error;
+ }
+
+ return parsed;
+ });
+}
+
+export function userFeedback(response) {
+ if (UNLOADING) { return true; }
+
+ let status = response.status || (response.error ? 'error' : '');
+ let message = response.message || (response.error ? response.error.message : null);
+ let settings = response.toastr || null;
+ let backup;
+
+ switch (status) {
+ case 'unauthenticated':
+ document.location.href = config.base_url_relative;
+ throw error('Logged out');
+ case 'unauthorized':
+ status = 'error';
+ message = message || 'Unauthorized.';
+ break;
+ case 'error':
+ status = 'error';
+ message = message || 'Unknown error.';
+ break;
+ case 'success':
+ status = 'success';
+ message = message || '';
+ break;
+ default:
+ status = 'error';
+ message = message || 'Invalid AJAX response.';
+ break;
+ }
+
+ if (settings) {
+ backup = Object.assign({}, toastr.options);
+ Object.keys(settings).forEach((key) => { toastr.options[key] = settings[key]; });
+ }
+
+ if (message && (isOnline || (!isOnline && status !== 'error'))) {
+ toastr[status === 'success' ? 'success' : 'error'](message);
+ }
+
+ if (settings) {
+ toastr.options = backup;
+ }
+
+ return response;
+}
+
+export function userFeedbackError(error) {
+ if (UNLOADING) { return true; }
+ let stack = error.stack ? `
${error.stack}
` : '';
+ toastr.error(`Fetch Failed:
${error.message} ${stack}`);
+ console.error(`${error.message} at ${error.stack}`);
+}
+
+$(global).on('beforeunload._ajax', () => {
+ UNLOADING = true;
+});
diff --git a/source/user/plugins/admin/themes/grav/app/utils/scrollbar.js b/source/user/plugins/admin/themes/grav/app/utils/scrollbar.js
new file mode 100644
index 0000000..1633314
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/app/utils/scrollbar.js
@@ -0,0 +1 @@
+import 'simplebar';
diff --git a/source/user/plugins/admin/themes/grav/app/utils/selectize-option-click.js b/source/user/plugins/admin/themes/grav/app/utils/selectize-option-click.js
new file mode 100644
index 0000000..e2d6ade
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/app/utils/selectize-option-click.js
@@ -0,0 +1,42 @@
+import $ from 'jquery';
+import Selectize from 'selectize';
+
+Selectize.define('option_click', function(options) {
+ const self = this;
+ const setup = self.setup;
+ this.setup = function() {
+ setup.apply(self, arguments);
+ let clicking = false;
+
+ // Detect click on a .clickable
+ self.$dropdown_content.on('mousedown click', function(e) {
+ const target = $(e.target);
+ if (target.hasClass('clickable') || target.closest('.clickable').length) {
+ if (e.type === 'mousedown') {
+ clicking = true;
+ self.isFocused = false; // awful hack to defuse the document mousedown listener
+ } else {
+ self.isFocused = true;
+ setTimeout(function() {
+ clicking = false; // wait until blur has been preempted
+ });
+ }
+ } else { // cleanup in case user right-clicked or dragged off the element
+ clicking = false;
+ self.isFocused = true;
+ }
+ });
+
+ // Intercept default handlers
+ self.$dropdown.off('mousedown click', '[data-selectable]').on('mousedown click', '[data-selectable]', function() {
+ if (!clicking) {
+ return self.onOptionSelect.apply(self, arguments);
+ }
+ });
+ self.$control_input.off('blur').on('blur', function() {
+ if (!clicking) {
+ return self.onBlur.apply(self, arguments);
+ }
+ });
+ };
+});
diff --git a/source/user/plugins/admin/themes/grav/app/utils/selectize-required-fix.js b/source/user/plugins/admin/themes/grav/app/utils/selectize-required-fix.js
new file mode 100644
index 0000000..c0a5bed
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/app/utils/selectize-required-fix.js
@@ -0,0 +1,28 @@
+/**
+ * This is a plugin to override the `.refreshValidityState` method of
+ * the Selectize library (https://selectize.github.io/selectize.js/).
+ * The library is not maintained anymore (as of 2017-09-13) and contains
+ * a bug which causes Microsoft Edge to not work with selectized [required]
+ * form fields. This plugin should be removed if
+ * https://github.com/selectize/selectize.js/pull/1320 is ever merged
+ * and a new version of Selectize gets released.
+ */
+
+import Selectize from 'selectize';
+
+Selectize.define('required-fix', function(options) {
+ this.refreshValidityState = () => {
+ if (!this.isRequired) return false;
+
+ let invalid = !this.items.length;
+ this.isInvalid = invalid;
+
+ if (invalid) {
+ this.$control_input.attr('required', '');
+ this.$input.removeAttr('required');
+ } else {
+ this.$control_input.removeAttr('required');
+ this.$input.attr('required');
+ }
+ };
+});
diff --git a/source/user/plugins/admin/themes/grav/app/utils/sidebar.js b/source/user/plugins/admin/themes/grav/app/utils/sidebar.js
new file mode 100644
index 0000000..3460f57
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/app/utils/sidebar.js
@@ -0,0 +1,181 @@
+import $ from 'jquery';
+import Map from 'es6-map';
+import Cookies from '../utils/cookies';
+
+const MOBILE_BREAKPOINT = 48 - 0.062;
+const DESKTOP_BREAKPOINT = 75 + 0.063;
+const EVENTS = 'touchstart._grav click._grav';
+const TARGETS = '[data-sidebar-mobile-toggle], #overlay';
+const MOBILE_QUERY = `(max-width: ${MOBILE_BREAKPOINT}em)`;
+const DESKTOP_QUERY = `(min-width: ${DESKTOP_BREAKPOINT}em)`;
+
+let map = new Map();
+
+export default class Sidebar {
+ constructor() {
+ this.timeout = null;
+ this.isOpen = false;
+ this.body = $('body');
+ this.matchMedia = global.matchMedia(MOBILE_QUERY);
+ this.enable();
+ }
+
+ enable() {
+ const sidebar = $('#admin-sidebar');
+
+ this.matchMedia.addListener(this._getBound('checkMatch'));
+ this.checkMatch(this.matchMedia);
+ this.body.on(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));
+
+ if (sidebar.data('quickopen')) {
+ sidebar.hover(this._getBound('quickOpenIn'), this._getBound('quickOpenOut'));
+ }
+ }
+
+ disable() {
+ const sidebar = $('#admin-sidebar');
+
+ this.close();
+ this.matchMedia.removeListener(this._getBound('checkMatch'));
+ this.body.off(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));
+ if (sidebar.data('quickopen')) {
+ sidebar.off('mouseenter mouseleave');
+ }
+ }
+
+ attach() {
+ this.body.on(EVENTS, TARGETS, this._getBound('toggle'));
+ }
+
+ detach() {
+ this.body.off(EVENTS, TARGETS, this._getBound('toggle'));
+ }
+
+ quickOpenIn(/* event */) {
+ let isDesktop = global.matchMedia(DESKTOP_QUERY).matches;
+ let delay = $('#admin-sidebar').data('quickopen-delay') || 500;
+ if (this.body.hasClass('sidebar-mobile-open')) { return; }
+
+ let shouldQuickOpen = isDesktop ? this.body.hasClass('sidebar-closed') : !this.body.hasClass('sidebar-open');
+ if (!shouldQuickOpen && !this.body.hasClass('sidebar-quickopen')) { return this.quickOpenOut(); }
+
+ this.timeout = setTimeout(() => {
+ this.body.addClass('sidebar-open sidebar-quickopen');
+ $(global).trigger('sidebar_state._grav', isDesktop);
+ }, delay);
+ }
+
+ quickOpenOut(/* event */) {
+ clearTimeout(this.timeout);
+ if (this.body.hasClass('sidebar-quickopen')) {
+ this.body.removeClass('sidebar-open sidebar-quickopen');
+ }
+
+ return true;
+ }
+
+ open(event, quick = false) {
+ if (event) { event.preventDefault(); }
+ let overlay = $('#overlay');
+ let sidebar = $('#admin-sidebar');
+
+ this.body.addClass('sidebar-mobile-open');
+ overlay.css('display', 'block');
+
+ if (!quick) {
+ sidebar.css('display', 'block').animate({
+ opacity: 1
+ }, 200, () => {
+ this.isOpen = true;
+ });
+ } else {
+ sidebar.css({ display: 'block', opacity: 1 });
+ this.isOpen = true;
+ }
+ }
+
+ close(event, quick = false) {
+ if (event) { event.preventDefault(); }
+ let overlay = $('#overlay');
+ let sidebar = $('#admin-sidebar');
+
+ this.body.removeClass('sidebar-mobile-open');
+ overlay.css('display', 'none');
+
+ if (!quick) {
+ sidebar.animate({
+ opacity: 0
+ }, 200, () => {
+ sidebar.css('display', 'none');
+ this.isOpen = false;
+ });
+ } else {
+ sidebar.css({ opacity: 0, display: 'none' });
+ this.isOpen = false;
+ }
+ }
+
+ toggle(event) {
+ if (event) { event.preventDefault(); }
+ return this[this.isOpen ? 'close' : 'open'](event);
+ }
+
+ toggleSidebarState(event) {
+ if (event) { event.preventDefault(); }
+ clearTimeout(this.timeout);
+ let isDesktop = global.matchMedia(DESKTOP_QUERY).matches;
+ let cookie = null;
+
+ if (isDesktop) {
+ this.body.removeClass('sidebar-open');
+ }
+
+ if (!isDesktop) {
+ this.body.removeClass('sidebar-closed');
+ this.body.removeClass('sidebar-mobile-open');
+ }
+
+ this.body.toggleClass(`sidebar-${isDesktop ? 'closed' : 'open'}`);
+ $(global).trigger('sidebar_state._grav', isDesktop);
+
+ if (isDesktop) {
+ cookie = !this.body.hasClass('sidebar-closed');
+ } else {
+ cookie = this.body.hasClass('sidebar-open');
+ }
+
+ Cookies.set('grav-admin-sidebar', cookie, { expires: Infinity });
+ }
+
+ checkMatch(data) {
+ let sidebar = $('#admin-sidebar');
+ let overlay = $('#overlay');
+ this.isOpen = false;
+
+ overlay.css('display', 'none');
+ sidebar.css({
+ display: data.matches ? 'none' : 'inherit',
+ opacity: data.matches ? 0 : 1
+ });
+
+ if (data.matches) {
+ this.body.removeClass('sidebar-open sidebar-closed');
+ }
+
+ this[data.matches ? 'attach' : 'detach']();
+ }
+
+ _resetMap() {
+ return map.clear();
+ }
+
+ _getBound(fn) {
+ if (map.has(fn)) {
+ return map.get(fn);
+ }
+
+ return map.set(fn, this[fn].bind(this)).get(fn);
+ }
+}
+
+export let Instance = new Sidebar();
diff --git a/source/user/plugins/admin/themes/grav/app/utils/storage.js b/source/user/plugins/admin/themes/grav/app/utils/storage.js
new file mode 100644
index 0000000..03b95d3
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/app/utils/storage.js
@@ -0,0 +1,41 @@
+// localStorage
+(function() {
+ function isSupported() {
+ var item = 'localStoragePollyfill';
+ try {
+ localStorage.setItem(item, item);
+ localStorage.removeItem(item);
+ sessionStorage.setItem(item, item);
+ sessionStorage.removeItem(item);
+ return true;
+ } catch (e) {
+ return false;
+ }
+ }
+
+ if (!isSupported()) {
+ try {
+ Storage.prototype._data = {};
+
+ Storage.prototype.setItem = function(id, val) {
+ this._data[id] = String(val);
+ return this._data[id];
+ };
+
+ Storage.prototype.getItem = function(id) {
+ return this._data.hasOwnProperty(id) ? this._data[id] : undefined;
+ };
+
+ Storage.prototype.removeItem = function(id) {
+ return delete this._data[id];
+ };
+
+ Storage.prototype.clear = function() {
+ this._data = {};
+ return this._data;
+ };
+ } catch (e) {
+ console.error('localStorage pollyfill error: ', e);
+ }
+ }
+}());
diff --git a/source/user/plugins/admin/themes/grav/app/utils/tabs-memory.js b/source/user/plugins/admin/themes/grav/app/utils/tabs-memory.js
new file mode 100644
index 0000000..b7ca1e7
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/app/utils/tabs-memory.js
@@ -0,0 +1,29 @@
+import $ from 'jquery';
+import Cookies from '../utils/cookies';
+import { Instance as Editors } from '../forms/fields/editor';
+
+let Data = JSON.parse(Cookies.get('grav-tabs-state') || '{}');
+
+$('body').on('touchstart click', '[data-tabid]', (event) => {
+ event && event.stopPropagation();
+ let target = $(event.currentTarget);
+
+ Data[target.data('tabkey')] = target.data('scope');
+ Cookies.set('grav-tabs-state', JSON.stringify(Data), { expires: Infinity });
+
+ const panel = $(`[id="${target.data('tabid')}"]`);
+
+ target.siblings('[data-tabid]').removeClass('active');
+ target.addClass('active');
+
+ panel.siblings('[id]').removeClass('active');
+ panel.addClass('active');
+
+ Editors.editors.each((index, editor) => {
+ let codemirror = $(editor).data('codemirror');
+ if (!codemirror) { return; }
+ if (codemirror.display.lastWrapWidth === 0) {
+ codemirror.refresh();
+ }
+ });
+});
diff --git a/source/user/plugins/admin/themes/grav/app/utils/toastr.js b/source/user/plugins/admin/themes/grav/app/utils/toastr.js
new file mode 100644
index 0000000..8010965
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/app/utils/toastr.js
@@ -0,0 +1,6 @@
+import toastr from 'toastr';
+
+toastr.options.positionClass = 'toast-top-right';
+toastr.options.preventDuplicates = true;
+
+export default toastr;
diff --git a/source/user/plugins/admin/themes/grav/app/whitelabel/compile.js b/source/user/plugins/admin/themes/grav/app/whitelabel/compile.js
new file mode 100644
index 0000000..2c86175
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/app/whitelabel/compile.js
@@ -0,0 +1,25 @@
+import { config } from 'grav-config';
+import request from '../utils/request';
+
+export default ({ preview = false, exportScss = false, color_scheme = {}, fonts = {}, callback = () => {} } = {}) => {
+ let task = exportScss ? 'exportScss' : 'compileScss';
+ // console.log(config);
+ const URI = `${config.base_url_relative}.json/task:${task}`;
+ request(URI, {
+ method: 'post',
+ body: Object.assign({}, preview ? { preview } : null, color_scheme)
+ }, callback);
+};
+
+export const prepareElement = (element) => {
+ element.data('busy_right_now', true);
+ if (!element.data('current_icon')) {
+ element.data('current_icon', element.find('.fa').attr('class'));
+ }
+ element.find('.fa').attr('class', 'fa fa-fw fa-spin fa-refresh');
+};
+
+export const resetElement = (element) => {
+ element.data('busy_right_now', false);
+ element.find('.fa').attr('class', element.data('current_icon'));
+};
diff --git a/source/user/plugins/admin/themes/grav/app/whitelabel/index.js b/source/user/plugins/admin/themes/grav/app/whitelabel/index.js
new file mode 100644
index 0000000..601cabc
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/app/whitelabel/index.js
@@ -0,0 +1,93 @@
+import $ from 'jquery';
+import Compile, { prepareElement, resetElement } from './compile';
+import Forms from '../forms';
+import { hex2rgb } from '../utils/colors';
+import './presets';
+
+const body = $('body');
+const FormState = Forms.FormState.Instance;
+const compiler = (element, preview = false, exportScss = false, callback = () => {}) => {
+ prepareElement(element);
+
+ let fields = FormState.collect();
+ Compile({
+ preview,
+ exportScss,
+ color_scheme: !fields ? [] : fields.filter((value, key) => key.match(/^data\[whitelabel]\[color_scheme]/)).toJS(),
+ callback: (response) => {
+ callback.call(callback, response);
+ resetElement(element);
+ }
+ });
+};
+
+body.on('click', '[data-preview-scss]', (event) => {
+ event && event.preventDefault();
+ let element = $(event.currentTarget);
+ if (element.data('busy_right_now')) { return false; }
+
+ compiler(element, true, false, (response) => {
+ if (response.files) {
+ Object.keys(response.files).forEach((key) => {
+ let file = $(`#admin-pro-preview-${key}`);
+ let timestamp = Date.now();
+ if (!file.length) {
+ file = $(`
`);
+ $('head').append(file);
+
+ if (!$('[data-reset-scss]').length) {
+ let reset = $('
');
+ reset.insertAfter(element);
+ }
+ }
+
+ file.attr('href', `${response.files[key]}?${timestamp}`);
+ });
+ }
+ });
+});
+
+body.on('click', '[data-recompile-scss]', (event) => {
+ event && event.preventDefault();
+ let element = $(event.currentTarget);
+ if (element.data('busy_right_now')) { return false; }
+
+ compiler(element, true, false);
+});
+
+body.on('click', '[data-export-scss]', (event) => {
+ event && event.preventDefault();
+ let element = $(event.currentTarget);
+ if (element.data('busy_right_now')) { return false; }
+
+ compiler(element, true, true, (response) => {
+ if (response.files) {
+ Object.keys(response.files).forEach((key) => {
+ if (key === 'download') {
+ let element = document.createElement('a');
+ element.setAttribute('href', response.files[key]);
+ element.setAttribute('download', '');
+
+ element.style.display = 'none';
+ document.body.appendChild(element);
+
+ element.click();
+
+ document.body.removeChild(element);
+ }
+ });
+ }
+ });
+});
+
+body.on('change._grav_colorpicker', '[data-grav-colorpicker]', (event, input, hex, opacity) => {
+ let RGB = hex2rgb(hex);
+ let YIQ = ((RGB.r * 299) + (RGB.g * 587) + (RGB.b * 114)) / 1000;
+ let contrast = YIQ >= 128 || opacity <= 0.50 ? 'dark' : 'light';
+
+ input.parent().removeClass('dark-text light-text').addClass(`${contrast}-text`);
+});
+
+body.ready(() => {
+ $('[data-grav-colorpicker]').trigger('keyup');
+});
diff --git a/source/user/plugins/admin/themes/grav/app/whitelabel/presets.js b/source/user/plugins/admin/themes/grav/app/whitelabel/presets.js
new file mode 100644
index 0000000..463b636
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/app/whitelabel/presets.js
@@ -0,0 +1,169 @@
+import $ from 'jquery';
+import Forms from '../forms';
+
+let body = $('body');
+let fields = [];
+const FormState = Forms.FormState.Instance;
+const setField = (field, value) => {
+ let name = field.prop('name');
+ let tag = field.prop('tagName').toLowerCase();
+ let type = field.prop('type');
+
+ fields.push(name);
+ switch (tag) {
+ case 'select':
+ field.val(value);
+ field.data('selectize').setValue(value);
+ field.trigger('change');
+ break;
+ case 'input':
+ if (type === 'radio') {
+ let strValue = value ? '1' : '0';
+ field.filter((index, radio) => $(radio).val() === strValue).prop('checked', true);
+
+ break;
+ }
+
+ if (type === 'checkbox') {
+ field.prop('checked', value);
+ break;
+ }
+ field.val(value);
+ field.trigger('keyup');
+ }
+};
+
+body.on('click', '[data-preset-values]', (event) => {
+ let target = $(event.currentTarget);
+ let data = target.data('preset-values');
+
+ Object.keys(data).forEach((section) => {
+ if (typeof data[section] === 'string') {
+ return;
+ }
+
+ Object.keys(data[section]).forEach((key) => {
+ let field = $(`[name="data[whitelabel][color_scheme][${section}][${key}]"], [name="data[${section}][${key}]"]`);
+ let value = data[section][key];
+ setField(field, value);
+ });
+ });
+});
+
+body.on('click', '[data-reset-scss]', (event) => {
+ event && event.preventDefault();
+ let element = $(event.currentTarget);
+ let links = $('link[id^=admin-pro-preview-]');
+
+ element.remove();
+ links.remove();
+
+ fields.forEach((field) => {
+ let value = FormState.loadState.get(field);
+ setField($(`[name="${field}"]`), value);
+ });
+ fields = [];
+});
+
+// Horizontal Scroll Functionality
+$.fn.hscrollarrows = function() {
+ return this.each(function() {
+
+ let navNext = $('
');
+ let navPrev = $('
');
+ let scrollTime = null;
+ let resizeTime = null;
+ let scrolling = false;
+
+ let elm_w = 0;
+ let elem_data_w = 0;
+ let max_scroll = 0;
+ let inc_scroll = 0;
+
+ let calcData = function() {
+ elm_w = elem.width();
+ elem_data_w = elem_data.get(0).scrollWidth;
+ max_scroll = elem_data_w - elm_w;
+ inc_scroll = elm_w * 0.3; // 20%
+ };
+
+ let revalidate = function() {
+ calcData();
+ stateNavs();
+ };
+
+ let run = function() {
+ calcData();
+ setupNavs();
+ };
+
+ let setupNavs = function() {
+
+ elem.parent().prepend(navNext);
+ elem.parent().prepend(navPrev);
+ navNext.on('click', next);
+ navPrev.on('click', prev);
+ stateNavs();
+
+ $(elem).scroll(function() {
+ if (!scrolling) {
+ clearTimeout(scrollTime);
+ scrollTime = setTimeout(function() {
+ stateNavs();
+ }, 250);
+ }
+ });
+
+ $(window).resize(function() {
+ clearTimeout(resizeTime);
+ resizeTime = setTimeout(function() {
+ revalidate();
+ }, 250);
+ });
+ };
+
+ let stateNavs = function() {
+ let current_scroll = elem.scrollLeft();
+ if (current_scroll < max_scroll) {
+ navNext.removeClass('hide');
+ } else {
+ navNext.addClass('hide');
+ }
+ if (current_scroll > 0) {
+ navPrev.removeClass('hide');
+ } else {
+ navPrev.addClass('hide');
+ }
+ scrolling = false;
+ };
+
+ let next = function() {
+ let current_scroll = elem.scrollLeft();
+ if (current_scroll < max_scroll) {
+ scrolling = true;
+ elem.stop().animate({
+ scrollLeft: (current_scroll + inc_scroll)
+ }, stateNavs);
+ }
+ };
+
+ let prev = function() {
+ let current_scroll = elem.scrollLeft();
+ if (current_scroll > 0) {
+ scrolling = true;
+ elem.stop().animate({
+ scrollLeft: (current_scroll - inc_scroll)
+ }, stateNavs);
+ }
+ };
+
+ let elem = $(this);
+ let elem_data = $(':first-child', elem);
+ run();
+
+ });
+};
+
+$(document).ready(() => {
+ $('.jquery-horizontal-scroll').hscrollarrows();
+});
diff --git a/source/user/plugins/admin/themes/grav/css-compiled/fonts.css b/source/user/plugins/admin/themes/grav/css-compiled/fonts.css
new file mode 100644
index 0000000..b3cde4b
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css-compiled/fonts.css
@@ -0,0 +1,3 @@
+@import url("https://fonts.googleapis.com/css?family=Josefin+Slab:400|Roboto:300,400,500|Inconsolata:400,700&subset=latin-ext");body,h5,h6,.badge,.note,.grav-mdeditor-preview,input,select,textarea,button,.selectize-input{font-family:"Roboto","Helvetica","Tahoma","Geneva","Arial",sans-serif}h1,h2,h3,h4,.form-tabs>label,.label{font-family:"Josefin Slab","Helvetica","Tahoma","Geneva","Arial",sans-serif}code,kbd,pre,samp,body .CodeMirror{font-family:"Inconsolata","Monaco","Consolas","Lucida Console",monospace !important}
+
+/*# sourceMappingURL=../css-compiled/fonts.css.map */
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css-compiled/fonts.css.map b/source/user/plugins/admin/themes/grav/css-compiled/fonts.css.map
new file mode 100644
index 0000000..7833601
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css-compiled/fonts.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"fonts.css","sources":["fonts.scss","configuration/fonts/_support.scss"],"sourcesContent":["$fonts-header: 'Josefin Slab' !default;\n$fonts-default: 'Roboto' !default;\n$fonts-mono: 'Inconsolata' !default;\n\n$font-definitions: (\n 'Josefin Slab': '400',\n Roboto: '300,400,500',\n Inconsolata: '400,700'\n);\n\n@import \"configuration/fonts/support\";\n","@function str-replace($string, $search, $replace: '') {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n@function admin-font-faces($fonts) {\n $url: \"https://fonts.googleapis.com/css?family=\";\n $nb: 0;\n\n @each $fontname, $weights in $fonts {\n\n @if $fontname == $fonts-default or\n $fontname == $fonts-header or\n $fontname == $fonts-mono {\n\n $nb: $nb + 1;\n $nb-word: 0;\n\n $fontname: str-replace(\"#{$fontname}\", \" \", \"+\");\n\n $url: $url + $fontname;\n\n @if $weights != null {\n $url: $url + \":\" + $weights;\n }\n\n @if $nb < 3 {\n $url: $url + \"|\";\n }\n }\n }\n\n @return $url + \"&subset=latin-ext\";\n}\n\n@mixin body-fonts($font) {\n body, h5, h6,\n .badge, .note, .grav-mdeditor-preview,\n input, select, textarea, button, .selectize-input {\n font-family: \"#{$font}\", \"Helvetica\", \"Tahoma\", \"Geneva\", \"Arial\", sans-serif;\n }\n}\n\n@mixin header-fonts($font) {\n h1, h2, h3, h4,\n .form-tabs > label, .label {\n font-family: \"#{$font}\", \"Helvetica\", \"Tahoma\", \"Geneva\", \"Arial\", sans-serif;\n }\n}\n\n@mixin mono-fonts($font) {\n code, kbd, pre, samp,\n body .CodeMirror {\n font-family: \"#{$font}\", \"Monaco\", \"Consolas\", \"Lucida Console\", monospace !important;\n }\n}\n$font-url: admin-font-faces($font-definitions);\n\n@import url(\"#{$font-url}\");\n\n@include body-fonts($fonts-default);\n\n@include header-fonts($fonts-header);\n\n@include mono-fonts($fonts-mono);\n\n\n\n\n\n"],"names":[],"mappings":"AC+DA,OAAO,CAAC,uHAAI,CAtBR,AAAA,IAAI,CAAE,EAAE,CAAE,EAAE,CACZ,MAAM,CAAE,KAAK,CAAE,sBAAsB,CACrC,KAAK,CAAE,MAAM,CAAE,QAAQ,CAAE,MAAM,CAAE,gBAAgB,AAAC,CAC9C,WAAW,CAAE,QAAU,CAAE,WAAW,CAAE,QAAQ,CAAE,QAAQ,CAAE,OAAO,CAAE,UAAU,CAChF,AAID,AAAA,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CACd,UAAU,CAAG,KAAK,CAAE,MAAM,AAAC,CACvB,WAAW,CAAE,cAAU,CAAE,WAAW,CAAE,QAAQ,CAAE,QAAQ,CAAE,OAAO,CAAE,UAAU,CAChF,AAID,AAAA,IAAI,CAAE,GAAG,CAAE,GAAG,CAAE,IAAI,CACpB,IAAI,CAAC,WAAW,AAAC,CACb,WAAW,CAAE,aAAU,CAAE,QAAQ,CAAE,UAAU,CAAE,gBAAgB,CAAE,SAAS,CAAC,UAAU,CACxF"}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css-compiled/nucleus.css b/source/user/plugins/admin/themes/grav/css-compiled/nucleus.css
new file mode 100644
index 0000000..37177d5
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css-compiled/nucleus.css
@@ -0,0 +1,625 @@
+*, *::before, *::after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box; }
+
+@-webkit-viewport {
+ width: device-width; }
+
+@-moz-viewport {
+ width: device-width; }
+
+@-ms-viewport {
+ width: device-width; }
+
+@-o-viewport {
+ width: device-width; }
+
+@viewport {
+ width: device-width; }
+
+html {
+ font-size: 100%;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%; }
+
+body {
+ margin: 0; }
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+ display: block; }
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline; }
+
+audio:not([controls]) {
+ display: none;
+ height: 0; }
+
+[hidden],
+template {
+ display: none; }
+
+a {
+ background: transparent;
+ text-decoration: none; }
+
+a:active,
+a:hover {
+ outline: 0; }
+
+abbr[title] {
+ border-bottom: 1px dotted; }
+
+b,
+strong {
+ font-weight: bold; }
+
+dfn {
+ font-style: italic; }
+
+mark {
+ background: #ff0;
+ color: #000; }
+
+sub,
+sup {
+ font-size: 0.65rem;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline; }
+
+sup {
+ top: -0.5em; }
+
+sub {
+ bottom: -0.25em; }
+
+img {
+ border: 0;
+ max-width: 100%; }
+
+svg:not(:root) {
+ overflow: hidden; }
+
+figure {
+ margin: 1em 40px; }
+
+hr {
+ height: 0; }
+
+pre {
+ overflow: auto; }
+
+code,
+kbd,
+pre,
+samp {
+ font-size: 0.9rem; }
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0; }
+
+button {
+ overflow: visible; }
+
+button,
+select {
+ text-transform: none; }
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer; }
+
+button[disabled],
+html input[disabled] {
+ cursor: default; }
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0; }
+
+input {
+ line-height: normal; }
+
+input[type="checkbox"],
+input[type="radio"] {
+ padding: 0; }
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto; }
+
+input[type="search"] {
+ -webkit-appearance: textfield; }
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none; }
+
+legend {
+ border: 0;
+ padding: 0; }
+
+textarea {
+ overflow: auto; }
+
+optgroup {
+ font-weight: bold; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ table-layout: fixed;
+ width: 100%; }
+
+tr, td, th {
+ vertical-align: middle; }
+
+th, td {
+ padding: 0.375rem 0; }
+
+th {
+ text-align: left; }
+
+.container {
+ width: 75em;
+ margin: 0 auto;
+ padding: 0; }
+ @media only all and (min-width: 60em) and (max-width: 74.938em) {
+ .container {
+ width: 60em; } }
+ @media only all and (min-width: 48em) and (max-width: 59.938em) {
+ .container {
+ width: 48em; } }
+ @media only all and (min-width: 30.063em) and (max-width: 47.938em) {
+ .container {
+ width: 30em; } }
+ @media only all and (max-width: 30em) {
+ .container {
+ width: 100%; } }
+
+.grid {
+ display: -webkit-box;
+ display: -moz-box;
+ display: box;
+ display: -webkit-flex;
+ display: -moz-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-flow: row;
+ -moz-flex-flow: row;
+ flex-flow: row;
+ list-style: none;
+ margin: 0;
+ padding: 0; }
+ @media only all and (max-width: 47.938em) {
+ .grid {
+ -webkit-flex-flow: row wrap;
+ -moz-flex-flow: row wrap;
+ flex-flow: row wrap; } }
+
+.block {
+ -webkit-box-flex: 1;
+ -moz-box-flex: 1;
+ box-flex: 1;
+ -webkit-flex: 1;
+ -moz-flex: 1;
+ -ms-flex: 1;
+ flex: 1; }
+ @media only all and (max-width: 47.938em) {
+ .block {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 100%;
+ -moz-flex: 0 100%;
+ -ms-flex: 0 100%;
+ flex: 0 100%; } }
+
+.content {
+ margin: 0.625rem;
+ padding: 0.938rem; }
+
+@media only all and (max-width: 47.938em) {
+ body [class*="size-"] {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 100%;
+ -moz-flex: 0 100%;
+ -ms-flex: 0 100%;
+ flex: 0 100%; } }
+
+.size-1-2 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 50%;
+ -moz-flex: 0 50%;
+ -ms-flex: 0 50%;
+ flex: 0 50%; }
+
+.size-1-3 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 33.33333%;
+ -moz-flex: 0 33.33333%;
+ -ms-flex: 0 33.33333%;
+ flex: 0 33.33333%; }
+
+.size-1-4 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 25%;
+ -moz-flex: 0 25%;
+ -ms-flex: 0 25%;
+ flex: 0 25%; }
+
+.size-1-5 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 20%;
+ -moz-flex: 0 20%;
+ -ms-flex: 0 20%;
+ flex: 0 20%; }
+
+.size-1-6 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 16.66667%;
+ -moz-flex: 0 16.66667%;
+ -ms-flex: 0 16.66667%;
+ flex: 0 16.66667%; }
+
+.size-1-7 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 14.28571%;
+ -moz-flex: 0 14.28571%;
+ -ms-flex: 0 14.28571%;
+ flex: 0 14.28571%; }
+
+.size-1-8 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 12.5%;
+ -moz-flex: 0 12.5%;
+ -ms-flex: 0 12.5%;
+ flex: 0 12.5%; }
+
+.size-1-9 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 11.11111%;
+ -moz-flex: 0 11.11111%;
+ -ms-flex: 0 11.11111%;
+ flex: 0 11.11111%; }
+
+.size-1-10 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 10%;
+ -moz-flex: 0 10%;
+ -ms-flex: 0 10%;
+ flex: 0 10%; }
+
+.size-1-11 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 9.09091%;
+ -moz-flex: 0 9.09091%;
+ -ms-flex: 0 9.09091%;
+ flex: 0 9.09091%; }
+
+.size-1-12 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 8.33333%;
+ -moz-flex: 0 8.33333%;
+ -ms-flex: 0 8.33333%;
+ flex: 0 8.33333%; }
+
+@media only all and (min-width: 48em) and (max-width: 59.938em) {
+ .size-tablet-1-2 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 50%;
+ -moz-flex: 0 50%;
+ -ms-flex: 0 50%;
+ flex: 0 50%; }
+ .size-tablet-1-3 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 33.33333%;
+ -moz-flex: 0 33.33333%;
+ -ms-flex: 0 33.33333%;
+ flex: 0 33.33333%; }
+ .size-tablet-1-4 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 25%;
+ -moz-flex: 0 25%;
+ -ms-flex: 0 25%;
+ flex: 0 25%; }
+ .size-tablet-1-5 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 20%;
+ -moz-flex: 0 20%;
+ -ms-flex: 0 20%;
+ flex: 0 20%; }
+ .size-tablet-1-6 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 16.66667%;
+ -moz-flex: 0 16.66667%;
+ -ms-flex: 0 16.66667%;
+ flex: 0 16.66667%; }
+ .size-tablet-1-7 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 14.28571%;
+ -moz-flex: 0 14.28571%;
+ -ms-flex: 0 14.28571%;
+ flex: 0 14.28571%; }
+ .size-tablet-1-8 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 12.5%;
+ -moz-flex: 0 12.5%;
+ -ms-flex: 0 12.5%;
+ flex: 0 12.5%; }
+ .size-tablet-1-9 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 11.11111%;
+ -moz-flex: 0 11.11111%;
+ -ms-flex: 0 11.11111%;
+ flex: 0 11.11111%; }
+ .size-tablet-1-10 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 10%;
+ -moz-flex: 0 10%;
+ -ms-flex: 0 10%;
+ flex: 0 10%; }
+ .size-tablet-1-11 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 9.09091%;
+ -moz-flex: 0 9.09091%;
+ -ms-flex: 0 9.09091%;
+ flex: 0 9.09091%; }
+ .size-tablet-1-12 {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0 8.33333%;
+ -moz-flex: 0 8.33333%;
+ -ms-flex: 0 8.33333%;
+ flex: 0 8.33333%; } }
+
+@media only all and (max-width: 47.938em) {
+ @supports not (flex-wrap: wrap) {
+ .grid {
+ display: block;
+ -webkit-box-lines: inherit;
+ -moz-box-lines: inherit;
+ box-lines: inherit;
+ -webkit-flex-wrap: inherit;
+ -moz-flex-wrap: inherit;
+ -ms-flex-wrap: inherit;
+ flex-wrap: inherit; }
+ .block {
+ display: block;
+ -webkit-box-flex: inherit;
+ -moz-box-flex: inherit;
+ box-flex: inherit;
+ -webkit-flex: inherit;
+ -moz-flex: inherit;
+ -ms-flex: inherit;
+ flex: inherit; } } }
+
+.first-block {
+ -webkit-box-ordinal-group: 0;
+ -webkit-order: -1;
+ -ms-flex-order: -1;
+ order: -1; }
+
+.last-block {
+ -webkit-box-ordinal-group: 2;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1; }
+
+.fixed-blocks {
+ -webkit-flex-flow: row wrap;
+ -moz-flex-flow: row wrap;
+ flex-flow: row wrap; }
+ .fixed-blocks .block {
+ -webkit-box-flex: inherit;
+ -moz-box-flex: inherit;
+ box-flex: inherit;
+ -webkit-flex: inherit;
+ -moz-flex: inherit;
+ -ms-flex: inherit;
+ flex: inherit;
+ width: 25%; }
+ @media only all and (min-width: 60em) and (max-width: 74.938em) {
+ .fixed-blocks .block {
+ width: 33.33333%; } }
+ @media only all and (min-width: 48em) and (max-width: 59.938em) {
+ .fixed-blocks .block {
+ width: 50%; } }
+ @media only all and (max-width: 47.938em) {
+ .fixed-blocks .block {
+ width: 100%; } }
+
+@supports not (flex-wrap: wrap) {
+ .fixed-blocks {
+ display: block;
+ -webkit-flex-flow: inherit;
+ -moz-flex-flow: inherit;
+ flex-flow: inherit; } }
+
+body {
+ font-size: 0.9rem;
+ line-height: 1.5; }
+
+h1, h2, h3, h4, h5, h6 {
+ margin: 1.5rem 0 0.75rem 0;
+ text-rendering: optimizeLegibility; }
+
+h1 {
+ font-size: 3.1rem; }
+
+h2 {
+ font-size: 2.4rem; }
+
+h3 {
+ font-size: 2rem; }
+
+h4 {
+ font-size: 1.65rem; }
+
+h5 {
+ font-size: 1.25rem; }
+
+h6 {
+ font-size: 0.75rem; }
+
+p {
+ margin: 0.75rem 0 1.5rem; }
+
+ul, ol {
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem; }
+ ul ul, ul ol, ol ul, ol ol {
+ margin-top: 0;
+ margin-bottom: 0; }
+
+blockquote {
+ margin: 1.5rem 0;
+ padding: 0.5rem; }
+ blockquote p:last-child {
+ margin: 0; }
+
+cite {
+ display: block;
+ font-size: 0.775rem; }
+ cite:before {
+ content: "\2014 \0020"; }
+
+pre {
+ margin: 1.5rem 0;
+ padding: 0.938rem; }
+
+code {
+ vertical-align: bottom; }
+
+small {
+ font-size: 0.775rem; }
+
+hr {
+ border-left: none;
+ border-right: none;
+ border-top: none;
+ margin: 1.5rem 0; }
+
+fieldset {
+ border: 0;
+ padding: 0.938rem;
+ margin: 0 0 1.5rem 0; }
+
+input,
+label,
+select {
+ display: block; }
+
+label {
+ margin-bottom: 0.375rem; }
+ label.required:after {
+ content: "*"; }
+ label abbr {
+ display: none; }
+
+textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] {
+ -webkit-transition: border-color;
+ -moz-transition: border-color;
+ transition: border-color;
+ border-radius: 0.1875rem;
+ padding: 0.375rem 0.375rem;
+ width: 100%; }
+ textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus {
+ outline: none; }
+
+textarea {
+ resize: vertical; }
+
+input[type="checkbox"], input[type="radio"] {
+ display: inline;
+ margin-right: 0.375rem; }
+
+input[type="file"] {
+ width: 100%; }
+
+select {
+ width: auto;
+ max-width: 100%;
+ margin-bottom: 1.5rem; }
+
+button,
+input[type="submit"] {
+ cursor: pointer;
+ user-select: none;
+ vertical-align: middle;
+ white-space: nowrap;
+ border: inherit; }
+
+/*# sourceMappingURL=nucleus.css.map */
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css-compiled/nucleus.css.map b/source/user/plugins/admin/themes/grav/css-compiled/nucleus.css.map
new file mode 100644
index 0000000..300d896
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css-compiled/nucleus.css.map
@@ -0,0 +1,93 @@
+{
+ "version": 3,
+ "file": "nucleus.css",
+ "sources": [
+ "../scss/nucleus.scss",
+ "../hdr0",
+ "../scss/vendor/bourbon/_bourbon.scss",
+ "../scss/vendor/bourbon/settings/_prefixer.scss",
+ "../scss/vendor/bourbon/settings/_px-to-em.scss",
+ "../scss/vendor/bourbon/helpers/_convert-units.scss",
+ "../scss/vendor/bourbon/helpers/_gradient-positions-parser.scss",
+ "../scss/vendor/bourbon/helpers/_is-num.scss",
+ "../scss/vendor/bourbon/helpers/_linear-angle-parser.scss",
+ "../scss/vendor/bourbon/helpers/_linear-gradient-parser.scss",
+ "../scss/vendor/bourbon/helpers/_linear-positions-parser.scss",
+ "../scss/vendor/bourbon/helpers/_linear-side-corner-parser.scss",
+ "../scss/vendor/bourbon/helpers/_radial-arg-parser.scss",
+ "../scss/vendor/bourbon/helpers/_radial-positions-parser.scss",
+ "../scss/vendor/bourbon/helpers/_radial-gradient-parser.scss",
+ "../scss/vendor/bourbon/helpers/_render-gradients.scss",
+ "../scss/vendor/bourbon/helpers/_shape-size-stripper.scss",
+ "../scss/vendor/bourbon/helpers/_str-to-num.scss",
+ "../scss/vendor/bourbon/functions/_assign.scss",
+ "../scss/vendor/bourbon/functions/_color-lightness.scss",
+ "../scss/vendor/bourbon/functions/_flex-grid.scss",
+ "../scss/vendor/bourbon/functions/_golden-ratio.scss",
+ "../scss/vendor/bourbon/functions/_grid-width.scss",
+ "../scss/vendor/bourbon/functions/_modular-scale.scss",
+ "../scss/vendor/bourbon/functions/_px-to-em.scss",
+ "../scss/vendor/bourbon/functions/_px-to-rem.scss",
+ "../scss/vendor/bourbon/functions/_strip-units.scss",
+ "../scss/vendor/bourbon/functions/_tint-shade.scss",
+ "../scss/vendor/bourbon/functions/_transition-property-name.scss",
+ "../scss/vendor/bourbon/functions/_unpack.scss",
+ "../scss/vendor/bourbon/css3/_animation.scss",
+ "../scss/vendor/bourbon/css3/_appearance.scss",
+ "../scss/vendor/bourbon/css3/_backface-visibility.scss",
+ "../scss/vendor/bourbon/css3/_background.scss",
+ "../scss/vendor/bourbon/css3/_background-image.scss",
+ "../scss/vendor/bourbon/css3/_border-image.scss",
+ "../scss/vendor/bourbon/css3/_border-radius.scss",
+ "../scss/vendor/bourbon/css3/_box-sizing.scss",
+ "../scss/vendor/bourbon/css3/_calc.scss",
+ "../scss/vendor/bourbon/css3/_columns.scss",
+ "../scss/vendor/bourbon/css3/_filter.scss",
+ "../scss/vendor/bourbon/css3/_flex-box.scss",
+ "../scss/vendor/bourbon/css3/_font-face.scss",
+ "../scss/vendor/bourbon/css3/_hyphens.scss",
+ "../scss/vendor/bourbon/css3/_hidpi-media-query.scss",
+ "../scss/vendor/bourbon/css3/_image-rendering.scss",
+ "../scss/vendor/bourbon/css3/_keyframes.scss",
+ "../scss/vendor/bourbon/css3/_linear-gradient.scss",
+ "../scss/vendor/bourbon/css3/_perspective.scss",
+ "../scss/vendor/bourbon/css3/_radial-gradient.scss",
+ "../scss/vendor/bourbon/css3/_transform.scss",
+ "../scss/vendor/bourbon/css3/_transition.scss",
+ "../scss/vendor/bourbon/css3/_user-select.scss",
+ "../scss/vendor/bourbon/css3/_placeholder.scss",
+ "../scss/vendor/bourbon/addons/_button.scss",
+ "../scss/vendor/bourbon/addons/_clearfix.scss",
+ "../scss/vendor/bourbon/addons/_directional-values.scss",
+ "../scss/vendor/bourbon/addons/_ellipsis.scss",
+ "../scss/vendor/bourbon/addons/_font-family.scss",
+ "../scss/vendor/bourbon/addons/_hide-text.scss",
+ "../scss/vendor/bourbon/addons/_html5-input-types.scss",
+ "../scss/vendor/bourbon/addons/_position.scss",
+ "../scss/vendor/bourbon/addons/_prefixer.scss",
+ "../scss/vendor/bourbon/addons/_retina-image.scss",
+ "../scss/vendor/bourbon/addons/_size.scss",
+ "../scss/vendor/bourbon/addons/_timing-functions.scss",
+ "../scss/vendor/bourbon/addons/_triangle.scss",
+ "../scss/vendor/bourbon/addons/_word-wrap.scss",
+ "../scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss",
+ "../scss/configuration/nucleus/_base.scss",
+ "../scss/configuration/nucleus/_core.scss",
+ "../scss/configuration/nucleus/_breakpoints.scss",
+ "../scss/configuration/nucleus/_layout.scss",
+ "../scss/configuration/nucleus/_typography.scss",
+ "../scss/configuration/nucleus/_nav.scss",
+ "../scss/nucleus/functions/_base.scss",
+ "../scss/nucleus/functions/_direction.scss",
+ "../scss/nucleus/functions/_range.scss",
+ "../scss/nucleus/mixins/_base.scss",
+ "../scss/nucleus/mixins/_breakpoints.scss",
+ "../scss/nucleus/mixins/_utilities.scss",
+ "../scss/nucleus/_core.scss",
+ "../scss/nucleus/_flex.scss",
+ "../scss/nucleus/_typography.scss",
+ "../scss/nucleus/_forms.scss"
+ ],
+ "names": [],
+ "mappings": "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"
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css-compiled/paper.css.map b/source/user/plugins/admin/themes/grav/css-compiled/paper.css.map
new file mode 100644
index 0000000..079ffc1
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css-compiled/paper.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"paper.css","sources":["paper.scss"],"sourcesContent":["// CodeMirror Theme\n.cm-s-paper {\n $paper-fg: #666;\n $tag: darken($paper-fg, 10%);\n\n &.CodeMirror {\n color: $paper-fg;\n line-height: 1.4;\n font-size: 16px;\n }\n\n .cm-link {color: #0082ba;}\n .cm-comment {color: lighten($paper-fg,10%);}\n .cm-header {color: darken($paper-fg,5%);}\n .cm-strong {color: darken($paper-fg,10%);}\n .cm-em {color: darken($paper-fg, 10%);}\n .cm-string {color: #0082BA;}\n .cm-tag {color: $tag}\n .cm-bracket {color: lighten($tag, 10%);}\n .cm-hr {color: lighten($paper-fg,40%);font-weight: bold;}\n\n .cm-keyword {color: #0082ba;}\n .cm-atom {color: #9055af;}\n .cm-meta {color: $paper-fg;}\n\n .cm-number {color: #7f8c8d;}\n .cm-def {color: #00f;}\n .cm-variable {color: black;}\n //.cm-variable-2 {color: #555;}\n //.cm-variable-3 {color: #085;}\n .cm-property {color: black;}\n .cm-operator {color: black;}\n\n\n .cm-string-2 {color: #f50;}\n .cm-meta {color: #555;}\n .cm-error {color: #f00;}\n .cm-qualifier {color: #555;}\n .cm-builtin {color: #555;}\n\n\n .cm-attribute {color: #7f8c8d;}\n\n .cm-quote {color: #888;}\n\n\n .cm-header-1 {font-size: 140%;}\n .cm-header-2 {font-size: 120%;}\n .cm-header-3 {font-size: 110%;}\n\n .cm-negative {color: #d44;}\n .cm-positive {color: #292;}\n .cm-header, .cm-strong {font-weight: bold;}\n .cm-em {font-style: italic;}\n .cm-link {text-decoration: underline;}\n\n .cm-invalidchar {color: #f00;}\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css-compiled/preset.css b/source/user/plugins/admin/themes/grav/css-compiled/preset.css
new file mode 100644
index 0000000..fbc0eb8
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css-compiled/preset.css
@@ -0,0 +1,1517 @@
+body {
+ background: #F6F6F6;
+ color: #6f7b8a; }
+
+a {
+ color: #0090D9; }
+ a:hover {
+ color: #007fc0; }
+
+.text-gray, .text-grey {
+ color: #B7B9BD; }
+
+.text-update {
+ color: #77559D; }
+
+blockquote {
+ border-left: 10px solid #ededed;
+ background: #fafafa; }
+ blockquote p {
+ color: #646e7c; }
+ blockquote cite {
+ color: #6f7b8a; }
+
+code {
+ background: #f9f2f4;
+ color: #9c1d3d; }
+
+pre {
+ background: #f6f6f6;
+ border: 1px solid #dddddd; }
+ pre code {
+ color: #237794; }
+
+hr {
+ border-bottom: 2px solid #f7f7f7; }
+
+.label {
+ background: #0090D9;
+ color: #ffffff; }
+
+.badge {
+ background: #77559D;
+ color: #ffffff; }
+
+.light-border {
+ border-color: #f7f7f7 !important; }
+
+.subtle-text {
+ color: #8b95a1 !important; }
+
+td, thead th {
+ border-bottom: 1px solid #f7f7f7; }
+
+tr td.gpm-details {
+ background-color: #fafafa; }
+
+.tab-bar {
+ background: #e3e3e3;
+ color: #808080; }
+ .tab-bar li.active span, .tab-bar li.active a {
+ background: #ffffff;
+ color: #6f7b8a; }
+ .tab-bar span, .tab-bar a {
+ color: #808080; }
+ .tab-bar span:hover, .tab-bar a:hover {
+ color: #9a9a9a;
+ background: #fdfdfd; }
+
+.button {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #0090D9; }
+ .button:focus, .button:hover {
+ background: #26a1df;
+ color: #ffffff; }
+ .button.dropdown-toggle {
+ border-left: 1px solid #007fc0; }
+ .button.dropdown-toggle {
+ border-left: 1px solid #007fc0; }
+ .button.secondary {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #0073ae; }
+ .button.secondary:focus, .button.secondary:hover {
+ background: #2688ba;
+ color: #ffffff; }
+ .button.secondary.dropdown-toggle {
+ border-left: 1px solid #006295; }
+ .button.secondary.dropdown-toggle {
+ border-left: 1px solid #006295; }
+ .button.danger {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #F45857; }
+ .button.danger:focus, .button.danger:hover {
+ background: #cf4b4a;
+ color: #ffffff; }
+ .button.danger.dropdown-toggle {
+ border-left: 1px solid #f6706f; }
+
+.button-group .dropdown-menu {
+ background-color: #0090D9;
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); }
+ .button-group .dropdown-menu .divider {
+ background-color: #0090D9; }
+ .button-group .dropdown-menu li > a {
+ color: #ffffff; }
+ .button-group .dropdown-menu li > a:focus, .button-group .dropdown-menu li > a:hover {
+ color: #ffffff; }
+ .button-group .dropdown-menu li > a:focus:hover, .button-group .dropdown-menu li > a:hover:hover {
+ background: #26a1df; }
+ .button-group .dropdown-menu.language-switcher a.active {
+ background-color: #0daeff; }
+
+#admin-main .admin-block a.gumroad-button {
+ background: #F45857 !important;
+ color: #ffffff !important; }
+
+#admin-login-wrapper {
+ background: radial-gradient(circle at center, #535a6b 40%, #272a31 100%); }
+
+#admin-login {
+ background: #3D424E; }
+ #admin-login.wide form label {
+ color: #B7B9BD; }
+ #admin-login.wide form input::-webkit-input-placeholder {
+ color: rgba(183, 185, 189, 0.5); }
+ #admin-login.wide form input::-moz-placeholder {
+ color: rgba(183, 185, 189, 0.5); }
+ #admin-login.wide form input:-moz-placeholder {
+ color: rgba(183, 185, 189, 0.5); }
+ #admin-login.wide form input:-ms-input-placeholder {
+ color: rgba(183, 185, 189, 0.5); }
+ #admin-login .wrapper-spacer h3 {
+ color: rgba(255, 255, 255, 0.4);
+ border-bottom: 3px solid rgba(255, 255, 255, 0.1); }
+ #admin-login .instructions, #admin-login p {
+ color: rgba(183, 185, 189, 0.8); }
+ #admin-login h1 {
+ background-color: #323640; }
+ #admin-login h1.text-logo {
+ color: #FFFFFF; }
+ #admin-login h1 svg path:first-child {
+ fill: #2b2f37; }
+ #admin-login h1 svg path:last-child {
+ fill: rgba(255, 255, 255, 0.9) !important; }
+ #admin-login h5 {
+ color: #B7B9BD; }
+ #admin-login form input {
+ background: #444957;
+ color: #ffffff;
+ border: 1px solid #31353e; }
+ #admin-login form input::-webkit-input-placeholder {
+ color: rgba(183, 185, 189, 0.5); }
+ #admin-login form input::-moz-placeholder {
+ color: rgba(183, 185, 189, 0.5); }
+ #admin-login form input:-moz-placeholder {
+ color: rgba(183, 185, 189, 0.5); }
+ #admin-login form input:-ms-input-placeholder {
+ color: rgba(183, 185, 189, 0.5); }
+
+#admin-sidebar {
+ background: #3D424E; }
+ #admin-sidebar a {
+ color: rgba(255, 255, 255, 0.9); }
+ #admin-sidebar a:hover {
+ color: #ffffff; }
+
+#admin-logo {
+ background-color: #323640; }
+ #admin-logo .grav-logo path {
+ fill: rgba(255, 255, 255, 0.9) !important; }
+ #admin-logo .grav-logo:hover path {
+ fill: #FFFFFF !important; }
+ #admin-logo a, #admin-logo i {
+ color: #e6e6e6; }
+ #admin-logo a:hover, #admin-logo i:hover {
+ color: #FFFFFF; }
+
+#open-handle {
+ background-color: #272a32;
+ border-left: 1px solid #3d424e; }
+ #open-handle i {
+ color: rgba(255, 255, 255, 0.6); }
+ #open-handle i:hover {
+ color: rgba(255, 255, 255, 0.8); }
+
+#admin-nav-quick-tray {
+ background: #393d48;
+ border-bottom: 1px solid #363b45;
+ color: #ffffff; }
+ #admin-nav-quick-tray i:hover {
+ color: white; }
+
+.block-userinfo img {
+ border: 4px solid #e6e6e6; }
+
+#offline-status {
+ background-color: #77559D;
+ color: #ffffff; }
+
+#admin-user-details, .admin-user-details {
+ border-bottom: 1px solid #484e5c; }
+ #admin-user-details:hover img, .admin-user-details:hover img {
+ box-shadow: 0px 0px 0 50px #444957; }
+ #admin-user-details .admin-user-names h4, #admin-user-details .admin-user-names h5, .admin-user-details .admin-user-names h4, .admin-user-details .admin-user-names h5 {
+ color: #ffffff; }
+
+#admin-menu li .badges .count {
+ color: #ffffff;
+ background-color: #323640; }
+
+#admin-menu li .badges .updates {
+ color: #ffffff;
+ background-color: #06A599; }
+
+#admin-menu li a:hover {
+ background: #434753;
+ color: #ffffff; }
+ #admin-menu li a:hover .fa {
+ color: #ffffff; }
+
+#admin-menu li.selected a {
+ background: #323640;
+ color: #ffffff;
+ border-left: 9px solid #007ab8; }
+ #admin-menu li.selected a .fa {
+ color: #ffffff; }
+
+#admin-main .grav-update {
+ background: #77559D;
+ color: #ffffff; }
+ #admin-main .grav-update a.button, #admin-main .grav-update span.button, #admin-main .grav-update button.button {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #5f447e; }
+ #admin-main .grav-update a.button:focus, #admin-main .grav-update a.button:hover, #admin-main .grav-update span.button:focus, #admin-main .grav-update span.button:hover, #admin-main .grav-update button.button:focus, #admin-main .grav-update button.button:hover {
+ background: #513a6b;
+ color: #ffffff; }
+ #admin-main .grav-update a.button.dropdown-toggle, #admin-main .grav-update span.button.dropdown-toggle, #admin-main .grav-update button.button.dropdown-toggle {
+ border-left: 1px solid #6b4d8f; }
+
+#admin-main .titlebar {
+ background: #ffffff;
+ color: #3D424E; }
+ #admin-main .titlebar .button-bar .button {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #0090D9; }
+ #admin-main .titlebar .button-bar .button:focus, #admin-main .titlebar .button-bar .button:hover {
+ background: #26a1df;
+ color: #ffffff; }
+ #admin-main .titlebar .button-bar .button.dropdown-toggle {
+ border-left: 1px solid #007fc0; }
+ #admin-main .titlebar .button-bar .button.danger {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #F45857; }
+ #admin-main .titlebar .button-bar .button.danger:focus, #admin-main .titlebar .button-bar .button.danger:hover {
+ background: #cf4b4a;
+ color: #ffffff; }
+ #admin-main .titlebar .button-bar .button.danger.dropdown-toggle {
+ border-left: 1px solid #f6706f; }
+ #admin-main .titlebar .button-bar .button.success {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #77559D; }
+ #admin-main .titlebar .button-bar .button.success:focus, #admin-main .titlebar .button-bar .button.success:hover {
+ background: #8b6fac;
+ color: #ffffff; }
+ #admin-main .titlebar .button-bar .button.success.dropdown-toggle {
+ border-left: 1px solid #6a4c8c; }
+ #admin-main .titlebar .button-bar .button.success.dropdown-toggle {
+ border-left-color: #654886; }
+ #admin-main .titlebar .button-bar .button.success + .dropdown-menu {
+ background-color: #77559D; }
+ #admin-main .titlebar .button-bar span.button {
+ color: rgba(255, 255, 255, 0.45);
+ border-radius: 4px;
+ background: rgba(0, 144, 217, 0.5); }
+ #admin-main .titlebar .button-bar span.button:focus, #admin-main .titlebar .button-bar span.button:hover {
+ background: rgba(88, 182, 230, 0.575);
+ color: rgba(255, 255, 255, 0.6); }
+ #admin-main .titlebar .button-bar span.button.dropdown-toggle {
+ border-left: 1px solid rgba(0, 127, 192, 0.5); }
+
+#admin-main .lines-button {
+ background: rgba(0, 0, 0, 0.1); }
+ #admin-main .lines-button .lines, #admin-main .lines-button .lines:before, #admin-main .lines-button .lines:after {
+ background: #3D424E; }
+
+#admin-main .admin-block {
+ background: #ffffff;
+ color: #6f7b8a; }
+ #admin-main .admin-block h1 {
+ color: #414147;
+ border-bottom: 1px solid #f7f7f7; }
+
+#admin-main .danger.button-bar, #admin-main .success.button-bar {
+ background: #f7f7f7; }
+
+#admin-main .danger .button {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #F45857; }
+ #admin-main .danger .button:focus, #admin-main .danger .button:hover {
+ background: #cf4b4a;
+ color: #ffffff; }
+ #admin-main .danger .button.dropdown-toggle {
+ border-left: 1px solid #f6706f; }
+
+#admin-main .content-padding div[class*=notifications-container] .alert.note {
+ background: #ffffff;
+ color: #6f7b8a; }
+ #admin-main .content-padding div[class*=notifications-container] .alert.note.alert {
+ border-bottom: 2px solid #f2f2f2; }
+ #admin-main .content-padding div[class*=notifications-container] .alert.note a:not(.button) {
+ color: #0090D9; }
+ #admin-main .content-padding div[class*=notifications-container] .alert.note a:not(.button):hover {
+ color: #007fc0; }
+
+#admin-main .content-padding div[class*=notifications-container] .alert.warning {
+ background: #F45857;
+ color: #ffffff; }
+ #admin-main .content-padding div[class*=notifications-container] .alert.warning.alert {
+ border-bottom: 2px solid #f2403f; }
+ #admin-main .content-padding div[class*=notifications-container] .alert.warning a {
+ color: #ffffff; }
+ #admin-main .content-padding div[class*=notifications-container] .alert.warning a:hover {
+ color: white; }
+
+#admin-main #notifications .badge.alert.note {
+ background: #06A599;
+ color: #ffffff; }
+
+#admin-main #notifications .badge.alert.warning {
+ background: #F45857;
+ color: #ffffff; }
+
+.sidebar-mobile-open #admin-main .lines-button .lines, .sidebar-mobile-open #admin-main .lines-button .lines:before, .sidebar-mobile-open #admin-main .lines-button .lines:after {
+ background: #FFFFFF; }
+
+#dependency-missing {
+ margin-bottom: 1.75rem; }
+ #dependency-missing .alert {
+ padding: 1rem 1.5rem; }
+ #dependency-missing .alert h1 {
+ color: #ffffff;
+ border-bottom: 0;
+ display: inline; }
+
+#admin-dashboard .admin-block li {
+ border-bottom: 1px solid #f7f7f7; }
+
+#admin-dashboard .primary-accent {
+ background-color: #0078b5;
+ background-image: -webkit-linear-gradient(#0078b5, #0090D9);
+ background-image: linear-gradient(#0078b5, #0090D9); }
+ #admin-dashboard .primary-accent h1 {
+ color: #ffffff;
+ border-bottom: 0; }
+ #admin-dashboard .primary-accent p {
+ color: rgba(255, 255, 255, 0.95); }
+ #admin-dashboard .primary-accent .stat i {
+ color: rgba(255, 255, 255, 0.75); }
+ #admin-dashboard .primary-accent .numeric em {
+ color: rgba(255, 255, 255, 0.85); }
+ #admin-dashboard .primary-accent .chart-loader {
+ color: #0073ae; }
+
+#admin-dashboard .secondary-accent {
+ background-color: #058379;
+ background-image: -webkit-linear-gradient(#058379, #06A599);
+ background-image: linear-gradient(#058379, #06A599); }
+ #admin-dashboard .secondary-accent h1 {
+ color: #ffffff;
+ border-bottom: 0; }
+ #admin-dashboard .secondary-accent p {
+ color: rgba(255, 255, 255, 0.95); }
+ #admin-dashboard .secondary-accent .stat i {
+ color: rgba(255, 255, 255, 0.75); }
+ #admin-dashboard .secondary-accent .numeric em {
+ color: rgba(255, 255, 255, 0.85); }
+ #admin-dashboard .secondary-accent .chart-loader {
+ color: #05847a; }
+
+.sidebar-mobile-open #admin-main .lines-button .lines, .sidebar-mobile-open #admin-main .lines-button .lines:before, .sidebar-mobile-open #admin-main .lines-button .lines:after {
+ background: #FFFFFF; }
+
+form h1, form h3 {
+ border-bottom: 3px solid #f7f7f7; }
+
+form h1, form h2, form h3, form h4, form h5 {
+ color: #414147; }
+
+form .note {
+ color: #F45857; }
+
+form .required {
+ color: #da4b46; }
+
+form .overlay {
+ background: #fafafa; }
+ form .overlay pre {
+ background: #fefefe; }
+
+form .form-border {
+ border: 1px solid #e6e6e6; }
+
+form .form-field-colors {
+ background-color: #fcfcfc;
+ color: #646e7c; }
+
+form .form-select-wrapper:after, form .selectize-control.single .selectize-input:after {
+ color: #646e7c; }
+
+form .selectize-control.single .selectize-input, form .selectize-control.single .selectize-input.full, form .selectize-control.single .selectize-input.items, form .selectize-control.single .selectize-input.active, form .selectize-control.multi .selectize-input, form .selectize-control.multi .selectize-input.full, form .selectize-control.multi .selectize-input.items, form .selectize-control.multi .selectize-input.active {
+ color: #646e7c;
+ border-color: #e6e6e6;
+ background-color: #fcfcfc; }
+
+form .selectize-control.single .selectize-input input, form .selectize-control.multi .selectize-input input {
+ color: #646e7c; }
+
+form .selectize-control.single .selectize-input a.remove, form .selectize-control.multi .selectize-input a.remove {
+ color: #F6F6F6 !important; }
+
+form .form-input-wrapper .form-input-addon {
+ border: 1px solid #e6e6e6;
+ background: #ffffff; }
+ form .form-input-wrapper .form-input-addon.copy-to-clipboard {
+ background: #0090D9;
+ color: #ffffff; }
+ form .form-input-wrapper .form-input-addon.copy-to-clipboard:hover {
+ background: #007fc0; }
+
+form .form-input-wrapper input[name="data[folder]"].highlight {
+ background-color: #ffffd7; }
+
+form .selectize-control.single.plugin-remove_button .selectize-input .item, form .selectize-control.single.plugin-remove_button .selectize-input .remove-single,
+form .selectize-control.multi .selectize-input .item,
+form .selectize-control.multi .selectize-input .remove-single {
+ color: #ffffff !important;
+ background: #6f7b8a; }
+ form .selectize-control.single.plugin-remove_button .selectize-input .item.active, form .selectize-control.single.plugin-remove_button .selectize-input .remove-single.active,
+ form .selectize-control.multi .selectize-input .item.active,
+ form .selectize-control.multi .selectize-input .remove-single.active {
+ background: #06A599;
+ color: #ffffff; }
+
+form select {
+ border: 1px solid #e6e6e6;
+ background: #fcfcfc;
+ color: #646e7c; }
+
+form input[type=text],
+form input[type=password],
+form input[type=email],
+form input[type=date],
+form input[type=tel],
+form input[type=time],
+form input[type=week],
+form input[type=month],
+form input[type=number],
+form input[type=color],
+form input[type=url] {
+ border: 1px solid #e6e6e6;
+ background: #fcfcfc;
+ color: #646e7c; }
+
+form input[readonly=readonly] {
+ background: #ffffff; }
+
+form textarea {
+ color: #646e7c;
+ border: 1px solid #e6e6e6;
+ background: #fcfcfc; }
+
+form .form-frontmatter-wrapper {
+ border: 1px solid #e6e6e6; }
+
+form .button-bar {
+ background: #f7f7f7; }
+
+form .checkboxes label:before {
+ background: #fcfcfc;
+ border: 1px solid #e6e6e6; }
+
+form input::-webkit-input-placeholder, form textarea::-webkit-input-placeholder, form select::-webkit-input-placeholder {
+ color: rgba(100, 110, 124, 0.4); }
+
+form input::-moz-placeholder, form textarea::-moz-placeholder, form select::-moz-placeholder {
+ color: rgba(100, 110, 124, 0.4); }
+
+form input:-moz-placeholder, form textarea:-moz-placeholder, form select:-moz-placeholder {
+ color: rgba(100, 110, 124, 0.4); }
+
+form input:-ms-input-placeholder, form textarea:-ms-input-placeholder, form select:-ms-input-placeholder {
+ color: rgba(100, 110, 124, 0.4); }
+
+form .g-colorpicker {
+ width: 230px; }
+ form .g-colorpicker .g-colorpicker-preview-wrap {
+ border-color: #e6e6e6; }
+
+form .form-input-file {
+ border: 2px dashed #e6e6e6; }
+ form .form-input-file p {
+ color: #646e7c; }
+ form .form-input-file ul {
+ color: #ffffff;
+ background: #0090D9; }
+
+form .file-thumbnail-remove {
+ background: #0090D9; }
+ form .file-thumbnail-remove .fa {
+ color: #ffffff; }
+ form .file-thumbnail-remove:hover {
+ background: #ffffff; }
+ form .file-thumbnail-remove:hover .fa {
+ color: #0090D9; }
+
+form input[type=range]::-webkit-slider-runnable-track {
+ background: #fafafa;
+ border: 1px solid #e6e6e6; }
+
+form input[type=range]::-webkit-slider-thumb {
+ border: 1px solid #e6e6e6;
+ background: #0090D9; }
+
+form input[type=range]:focus::-webkit-slider-runnable-track {
+ background: #fafafa; }
+
+form input[type=range]::-moz-range-track {
+ background: #fafafa;
+ border: 1px solid #e6e6e6; }
+
+form input[type=range]::-moz-range-progress {
+ background: #fafafa; }
+
+form input[type=range]::-moz-range-thumb {
+ border: 1px solid #e6e6e6;
+ background: #0090D9; }
+
+form input[type=range]::-ms-fill-lower, form input[type=range]::-ms-fill-upper {
+ background: #fafafa;
+ border: 1px solid #e6e6e6; }
+
+form input[type=range]::-ms-thumb {
+ border: 1px solid #e6e6e6;
+ background: #0090D9; }
+
+form input[type=range]:focus::-ms-fill-lower, form input[type=range]:focus::-ms-fill-upper {
+ background: #fafafa; }
+
+form .form-display-wrapper table {
+ border: 1px solid #e6e6e6; }
+ form .form-display-wrapper table th {
+ background-color: whitesmoke;
+ border-bottom: 3px solid #e6e6e6;
+ border-right: 1px solid #e6e6e6; }
+ form .form-display-wrapper table td {
+ border-right: 1px solid #e6e6e6; }
+ form .form-display-wrapper table tr {
+ border-bottom: 1px solid #e6e6e6; }
+
+.grav-editor-resizer {
+ background-color: #e6e6e6; }
+
+.form-order-wrapper ul.orderable li {
+ border: 1px solid #e6e6e6;
+ background: white;
+ color: #6f7b8a; }
+ .form-order-wrapper ul.orderable li.drag-handle {
+ background: #fcfcfc;
+ color: #646e7c; }
+ .form-order-wrapper ul.orderable li[data-active-id] {
+ border-color: #0090D9; }
+
+.form-order-wrapper ul.orderable.disabled li {
+ opacity: 0.7; }
+
+.form-list-wrapper ul[data-collection-holder] > li {
+ border: 1px solid #e6e6e6;
+ background: white;
+ color: #8b95a1; }
+ .form-list-wrapper ul[data-collection-holder] > li .item-actions {
+ color: #58626e; }
+
+.form-list-wrapper .collection-sort {
+ background: #fafafa;
+ border-right: 1px solid #e6e6e6; }
+
+.form-fieldset {
+ background-color: #fcfcfc;
+ border: 1px solid #e6e6e6; }
+
+.form-fieldset--label {
+ background-color: whitesmoke; }
+ .form-fieldset--label:hover,
+ .form-fieldset input:checked + .form-fieldset--label {
+ background-color: #f0f0f0; }
+
+#admin-main #admin-topbar {
+ background: #e3e3e3; }
+
+#admin-main .form-tabs {
+ background: #e3e3e3; }
+ #admin-main .form-tabs.side-tabs > .tabs-nav {
+ background: #ffffff; }
+ #admin-main .form-tabs.side-tabs > .tabs-nav a {
+ color: #0090D9;
+ cursor: pointer; }
+ #admin-main .form-tabs.side-tabs > .tabs-nav a:hover {
+ background: #F6F6F6; }
+ #admin-main .form-tabs.side-tabs > .tabs-nav a.active {
+ background: #f0f0f0;
+ color: #808080; }
+ #admin-main .form-tabs.side-tabs > .tabs-content {
+ box-shadow: -20px 0 50px -40px rgba(0, 0, 0, 0.3); }
+ #admin-main .form-tabs .tabs-nav a {
+ color: #808080; }
+ #admin-main .form-tabs .tabs-nav a:hover {
+ color: #737373;
+ background: #d6d6d6; }
+ #admin-main .form-tabs .tabs-nav a.active {
+ background: #ffffff;
+ color: #6f7b8a; }
+ #admin-main .form-tabs.subtle {
+ background: #ffffff; }
+ #admin-main .form-tabs.subtle .tabs-nav {
+ background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #f7f7f7); }
+ #admin-main .form-tabs.subtle a {
+ color: #646f7c;
+ border: 0 solid transparent;
+ border-bottom: 1px solid #e6e6e6; }
+ #admin-main .form-tabs.subtle a:hover {
+ color: #59626e;
+ background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #ededed); }
+ #admin-main .form-tabs.subtle a.active {
+ border-top: 1px solid #e6e6e6;
+ border-left: 1px solid #e6e6e6;
+ border-right: 1px solid #e6e6e6;
+ border-bottom: 0; }
+ #admin-main .form-tabs.subtle a.active:hover {
+ background: #ffffff; }
+ #admin-main .form-tabs.subtle a.active:first-child {
+ border-left: 0; }
+ #admin-main .form-tabs.subtle a.active:last-child {
+ border-right: 0; }
+ #admin-main .form-tabs .tabs-content {
+ background: #ffffff; }
+
+.switch-grav {
+ background-color: #fcfcfc;
+ border: 1px solid #e6e6e6; }
+ .switch-grav label {
+ color: #6f7b8a;
+ transition: background-color 0.5s ease; }
+ .switch-grav.switch-toggle input.highlight:checked + label {
+ background: #0090D9;
+ color: #ffffff; }
+ .switch-grav.switch-toggle input:checked + label {
+ color: #ffffff;
+ background: #6f7b8a; }
+
+.toast {
+ background-color: #030303; }
+
+.toast-success {
+ background-color: #77559D; }
+ .toast-success .button {
+ background: #8462aa;
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #9172b3; }
+ .toast-success .button:focus, .toast-success .button:hover {
+ background: #7b6198;
+ color: #ffffff; }
+ .toast-success .button.dropdown-toggle {
+ border-left: 1px solid #9e83bc; }
+
+.toast-error {
+ background-color: #F45857; }
+ .toast-error .button {
+ background-color: #f12827;
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #d70f0e; }
+ .toast-error .button:focus, .toast-error .button:hover {
+ background: #dd3332;
+ color: #ffffff; }
+ .toast-error .button.dropdown-toggle {
+ border-left: 1px solid #bf0e0d; }
+
+.toast-info {
+ background-color: #06A599; }
+ .toast-info .button {
+ background-color: #04746b;
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #02433e; }
+ .toast-info .button:focus, .toast-info .button:hover {
+ background: #285f5b;
+ color: #ffffff; }
+ .toast-info .button.dropdown-toggle {
+ border-left: 1px solid #022a27; }
+
+.info {
+ background: #77559D;
+ color: #ffffff; }
+ .info a {
+ color: #f2f2f2; }
+ .info a:hover {
+ color: #ffffff; }
+ .info a.button, .info span.button, .info button.button {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #5f447e; }
+ .info a.button:focus, .info a.button:hover, .info span.button:focus, .info span.button:hover, .info button.button:focus, .info button.button:hover {
+ background: #513a6b;
+ color: #ffffff; }
+ .info a.button.dropdown-toggle, .info span.button.dropdown-toggle, .info button.button.dropdown-toggle {
+ border-left: 1px solid #6b4d8f; }
+
+.info-reverse {
+ color: #77559D; }
+
+.notice, .note {
+ background: #06A599;
+ color: #ffffff; }
+ .notice a, .note a {
+ color: #f2f2f2; }
+ .notice a:hover, .note a:hover {
+ color: #ffffff; }
+ .notice a.button, .notice span.button, .notice button.button, .note a.button, .note span.button, .note button.button {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #05847a; }
+ .notice a.button:focus, .notice a.button:hover, .notice span.button:focus, .notice span.button:hover, .notice button.button:focus, .notice button.button:hover, .note a.button:focus, .note a.button:hover, .note span.button:focus, .note span.button:hover, .note button.button:focus, .note button.button:hover {
+ background: #047068;
+ color: #ffffff; }
+ .notice a.button.dropdown-toggle, .notice span.button.dropdown-toggle, .notice button.button.dropdown-toggle, .note a.button.dropdown-toggle, .note span.button.dropdown-toggle, .note button.button.dropdown-toggle {
+ border-left: 1px solid #069d91; }
+
+.notice-reverse, .note-reverse {
+ color: #06A599; }
+
+.error, .warning {
+ background: #F45857;
+ color: #ffffff; }
+ .error a, .warning a {
+ color: #f2f2f2; }
+ .error a:hover, .warning a:hover {
+ color: #ffffff; }
+ .error a.button, .error span.button, .error button.button, .warning a.button, .warning span.button, .warning button.button {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #c34646; }
+ .error a.button:focus, .error a.button:hover, .error span.button:focus, .error span.button:hover, .error button.button:focus, .error button.button:hover, .warning a.button:focus, .warning a.button:hover, .warning span.button:focus, .warning span.button:hover, .warning button.button:focus, .warning button.button:hover {
+ background: #a63c3c;
+ color: #ffffff; }
+ .error a.button.dropdown-toggle, .error span.button.dropdown-toggle, .error button.button.dropdown-toggle, .warning a.button.dropdown-toggle, .warning span.button.dropdown-toggle, .warning button.button.dropdown-toggle {
+ border-left: 1px solid #c95959; }
+
+.error-reverse, .warning-reverse {
+ color: #F45857; }
+
+.primary-accent {
+ background: #007fc0;
+ color: #ffffff; }
+ .primary-accent .button-bar {
+ background: #0078b5; }
+ .primary-accent .button {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #0090D9; }
+ .primary-accent .button:focus, .primary-accent .button:hover {
+ background: #26a1df;
+ color: #ffffff; }
+ .primary-accent .button.dropdown-toggle {
+ border-left: 1px solid #007fc0; }
+
+.secondary-accent {
+ background: #058c82;
+ color: #ffffff; }
+ .secondary-accent .button-bar {
+ background: #058379; }
+ .secondary-accent .button {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #06A599; }
+ .secondary-accent .button:focus, .secondary-accent .button:hover {
+ background: #2bb3a8;
+ color: #ffffff; }
+ .secondary-accent .button.dropdown-toggle {
+ border-left: 1px solid #058c82; }
+ .secondary-accent .button-group .dropdown-menu {
+ background: #06A599; }
+ .secondary-accent .button-group .dropdown-menu li a:hover {
+ background: #2bb3a8; }
+
+.card-item {
+ border: 1px solid #e6e6e6;
+ background: white; }
+ .card-item .gpm-actions {
+ background: #fafafa; }
+ .card-item.active-theme {
+ border: 1px solid #06A599; }
+ .card-item.active-theme .gpm-actions {
+ background: #06A599;
+ color: #ffffff; }
+
+.user-details h2 {
+ color: #414147; }
+ .user-details h2 span {
+ color: #6f7b8a; }
+
+.user-details .gravatar {
+ color: #a7afb8; }
+ .user-details .gravatar a {
+ color: #6f7b8a !important; }
+
+#admin-main .grav-editor-toolbar .dropdown-menu {
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
+ border: 1px solid #e6e6e6;
+ background: white; }
+
+#admin-main .grav-editor-toolbar {
+ border: 1px solid #e6e6e6;
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ background: white; }
+ #admin-main .grav-editor-toolbar ul a {
+ color: #6f7b8a; }
+ #admin-main .grav-editor-toolbar ul a:hover, #admin-main .grav-editor-toolbar ul a:focus {
+ background: #f7f7f7;
+ color: #646e7c;
+ border-top: 1px solid #e6e6e6; }
+ #admin-main .grav-editor-toolbar ul .editor-active a {
+ cursor: auto;
+ background: white;
+ border-top: 1px solid #e6e6e6;
+ border-left: 1px solid #e6e6e6;
+ border-right: 1px solid #e6e6e6; }
+ #admin-main .grav-editor-toolbar ul .editor-active a:hover {
+ background: #f7f7f7;
+ color: #646e7c;
+ border-top: 0;
+ border-bottom: 1px solid #e6e6e6; }
+ #admin-main .grav-editor-toolbar ul .editor-active:last-child a, #admin-main .grav-editor-toolbar ul .editor-active:last-child a:hover {
+ border-right: 1px solid transparent; }
+ #admin-main .grav-editor-toolbar ul .button-disabled a {
+ color: rgba(111, 123, 138, 0.5); }
+ #admin-main .grav-editor-toolbar ul .button-disabled a:hover, #admin-main .grav-editor-toolbar ul .button-disabled a:focus {
+ background: white;
+ color: #6f7b8a;
+ border-left: 1px solid transparent;
+ border-right: 1px solid transparent; }
+
+#admin-main .grav-editor-hide-toolbar + div {
+ border: 1px solid #e6e6e6; }
+
+.grav-editor-content, .grav-editor-preview {
+ border: 1px solid #e6e6e6;
+ border-top: 0; }
+
+.grav-mdeditor-content {
+ border: 1px solid #e6e6e6; }
+
+[data-mode=split] .grav-mdeditor-code {
+ border-right: 1px solid #e6e6e6; }
+
+.primary-accent .ct-chart .ct-series.ct-series-a .ct-bar {
+ stroke: rgba(255, 255, 255, 0.85) !important; }
+
+.primary-accent .ct-chart .ct-series.ct-series-a .ct-slice-donut {
+ stroke: #ffffff !important; }
+
+.primary-accent .ct-chart .ct-series.ct-series-b .ct-slice-donut {
+ stroke: rgba(255, 255, 255, 0.2) !important; }
+
+.primary-accent .ct-chart .ct-label {
+ fill: rgba(255, 255, 255, 0.5);
+ color: rgba(255, 255, 255, 0.5); }
+
+.primary-accent .ct-chart .ct-grid {
+ stroke: rgba(255, 255, 255, 0.2); }
+
+.secondary-accent .ct-chart .ct-series.ct-series-a .ct-bar {
+ stroke: rgba(255, 255, 255, 0.85) !important; }
+
+.secondary-accent .ct-chart .ct-series.ct-series-a .ct-slice-donut {
+ stroke: #ffffff !important; }
+
+.secondary-accent .ct-chart .ct-series.ct-series-b .ct-slice-donut {
+ stroke: rgba(255, 255, 255, 0.2) !important; }
+
+.secondary-accent .ct-chart .ct-label {
+ fill: rgba(255, 255, 255, 0.5);
+ color: rgba(255, 255, 255, 0.5); }
+
+.secondary-accent .ct-chart .ct-grid {
+ stroke: rgba(255, 255, 255, 0.2); }
+
+.dropzone {
+ background: #fcfcfc;
+ border: 1px #e6e6e6 solid; }
+ .dropzone.dz-drag-hover {
+ border-color: #cccccc;
+ background: rgba(0, 0, 0, 0.04); }
+ .dropzone .dz-preview {
+ border: 1px solid #f2f2f2; }
+ .dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {
+ color: #ffffff; }
+ .dropzone .dz-preview .dz-success-mark {
+ background-color: #0daeff; }
+ .dropzone .dz-preview .dz-error-mark {
+ background-color: #F45857; }
+ .dropzone .dz-preview .dz-progress {
+ background: #d7d7d7; }
+ .dropzone .dz-preview .dz-progress .dz-upload {
+ background-color: #0daeff; }
+ .dropzone .dz-preview .dz-error-message {
+ background: white;
+ color: #F45857; }
+ .dropzone .dz-preview:hover .dz-details {
+ box-shadow: 0px 0px 20px -5px rgba(0, 0, 0, 0.4); }
+ .dropzone .dz-preview .dz-remove, .dropzone .dz-preview .dz-unset, .dropzone .dz-preview .dz-view, .dropzone .dz-preview .dz-insert, .dropzone .dz-preview .dz-metadata {
+ background: #ededed; }
+ .dropzone .dz-preview .dz-remove:hover:after, .dropzone .dz-preview .dz-unset:hover:after, .dropzone .dz-preview .dz-view:hover:after, .dropzone .dz-preview .dz-insert:hover:after, .dropzone .dz-preview .dz-metadata:hover:after {
+ color: #0090D9; }
+ .dropzone .dz-preview .dz-remove:after, .dropzone .dz-preview .dz-unset:after, .dropzone .dz-preview .dz-view:after, .dropzone .dz-preview .dz-insert:after, .dropzone .dz-preview .dz-metadata:after {
+ color: #6f7b8a; }
+ .dropzone .dz-preview .dz-remove:hover:after {
+ color: #F45857; }
+ .dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message span {
+ color: #a7afb8; }
+ .dropzone.dz-clickable .dz-message .dz-button, .dropzone.dz-clickable .dz-message span .dz-button {
+ background-color: #f2f2f2; }
+
+.gpm > table > tbody > tr {
+ border-bottom: 1px solid #f7f7f7; }
+ .gpm > table > tbody > tr:hover {
+ background: white; }
+
+.gpm .gpm-name {
+ color: #99a2ad; }
+
+.gpm .gpm-version {
+ color: #8b95a1; }
+
+.gpm .gpm-ribbon, .gpm .badge.update {
+ background: #77559D; }
+ .gpm .gpm-ribbon a, .gpm .gpm-ribbon, .gpm .badge.update a, .gpm .badge.update {
+ color: #ffffff !important; }
+ .gpm .gpm-ribbon a:hover, .gpm .gpm-ribbon:hover, .gpm .badge.update a:hover, .gpm .badge.update:hover {
+ background: #654885; }
+
+.gpm .gpm-update .gpm-name {
+ color: #0090D9; }
+
+.gpm .gpm-item-info {
+ border-bottom: 3px solid #f7f7f7; }
+ .gpm .gpm-item-info .gpm-item-icon {
+ color: #fafafa; }
+
+.gpm .gpm-actions .disabled {
+ color: #8b95a1; }
+
+.gpm .gpm-testing {
+ background-color: #06A599;
+ color: #ffffff; }
+
+.pages-list {
+ border-top: 1px solid #f7f7f7; }
+ .pages-list .row {
+ border-bottom: 1px solid #f7f7f7; }
+ .pages-list .row:hover {
+ background: white; }
+ .pages-list .row p.page-route {
+ color: #6f7b8a; }
+ .pages-list .row p.page-route .spacer {
+ color: #6f7b8a; }
+ .pages-list .row .badge.lang {
+ background-color: #e3e3e3;
+ color: #808080; }
+ .pages-list .row .badge.lang.info {
+ background-color: #77559D;
+ color: #ffffff; }
+ .pages-list .page-home {
+ color: #8b95a1; }
+ .pages-list .page-info {
+ color: #8b95a1; }
+
+#admin-topbar #admin-lang-toggle {
+ z-index: 3; }
+ #admin-topbar #admin-lang-toggle button {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #77559D; }
+ #admin-topbar #admin-lang-toggle button:focus, #admin-topbar #admin-lang-toggle button:hover {
+ background: #8b6fac;
+ color: #ffffff; }
+ #admin-topbar #admin-lang-toggle button.dropdown-toggle {
+ border-left: 1px solid #6a4c8c; }
+ #admin-topbar #admin-lang-toggle .dropdown-menu {
+ background: #77559D; }
+
+#admin-topbar .switch-grav {
+ background-color: #fdfdfd; }
+
+#admin-topbar .switch-toggle input:checked + label {
+ color: #ffffff; }
+
+#admin-topbar .switch-toggle input + label {
+ color: #808080;
+ background: #d6d6d6; }
+
+#admin-topbar .switch-toggle input.highlight:checked + label {
+ background: #0090D9; }
+
+body .selectize-dropdown .optgroup-header {
+ color: #000000;
+ border-bottom: 1px solid #eee;
+ background-color: #fafafa; }
+
+body .bootstrap-datetimepicker-widget.dropdown-menu.bottom {
+ background-color: #fcfcfc;
+ color: #646e7c;
+ border-color: #e6e6e6; }
+ body .bootstrap-datetimepicker-widget.dropdown-menu.bottom:before {
+ border-bottom-color: #e6e6e6; }
+ body .bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {
+ border-bottom-color: #fcfcfc; }
+
+body .bootstrap-datetimepicker-widget table td span:hover, body .bootstrap-datetimepicker-widget table th:hover, body .bootstrap-datetimepicker-widget table td.day:hover {
+ background: whitesmoke !important; }
+
+body .bootstrap-datetimepicker-widget table td.active, body .bootstrap-datetimepicker-widget table td.active:hover {
+ background-color: #77559D !important;
+ color: #ffffff !important; }
+
+.scheduler-content pre {
+ background: #fafafa;
+ border-color: #e6e6e6; }
+ .scheduler-content pre code {
+ color: #414147; }
+
+#phpinfo th {
+ background: #fcfcfc; }
+
+#phpinfo td {
+ word-wrap: break-word; }
+ #phpinfo td:first-child {
+ color: #414147; }
+
+.remodal {
+ background: #ffffff;
+ color: #6f7b8a; }
+
+.remodal-close {
+ color: #6f7b8a; }
+
+.remodal-close:hover,
+.remodal-close:focus {
+ color: #424951; }
+
+* {
+ /* Works on Chrome/Edge/Safari */ }
+ * {
+ scrollbar-width: thin;
+ scrollbar-color: rgba(111, 123, 138, 0.4) #ffffff; }
+ *::-webkit-scrollbar {
+ width: 6px;
+ height: 6px; }
+ *::-webkit-scrollbar-track {
+ background: #ffffff; }
+ *::-webkit-scrollbar-thumb {
+ background-color: rgba(111, 123, 138, 0.4); }
+
+.simplebar-scrollbar:before {
+ background-color: #6f7b8a; }
+
+#admin-sidebar .simplebar-scrollbar:before {
+ background-color: #B7B9BD; }
+
+#page-filtering .page-shortcuts .button {
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: rgba(100, 110, 124, 0.5); }
+ #page-filtering .page-shortcuts .button:focus, #page-filtering .page-shortcuts .button:hover {
+ background: rgba(153, 160, 169, 0.575);
+ color: #ffffff; }
+ #page-filtering .page-shortcuts .button.dropdown-toggle {
+ border-left: 1px solid rgba(88, 98, 110, 0.5); }
+
+.reports-content .report-output table thead tr th {
+ background-color: #fafafa;
+ color: #414147; }
+
+.preview-wrapper iframe {
+ border: 1px solid #eeeeee; }
+
+#backups-stats .backups-usage-wrapper > div {
+ background: linear-gradient(-90deg, #006ea6 0, #005d8d 100%); }
+ #backups-stats .backups-usage-wrapper > div.full {
+ background: linear-gradient(-90deg, #f2403f 0, #8f0a09 100%); }
+
+.logs-output table.noflex td.level .badge.error, .logs-output table.noflex td.level .badge.critical, .logs-output table.noflex td.level .badge.alert {
+ background-color: #DC3023;
+ color: #fff; }
+
+.logs-output table.noflex td.level .badge.notice, .logs-output table.noflex td.level .badge.warning {
+ background-color: #E08A1E;
+ color: #fff; }
+
+.logs-output table.noflex td.level .badge.debug {
+ background-color: #26A65B;
+ color: #fff; }
+
+.logs-output table.noflex td.level .badge.info {
+ background-color: #22A7F0;
+ color: #fff; }
+
+.logs-output table.noflex td.level .badge.emergency {
+ background-color: #8E44AD;
+ color: #fff; }
+
+.permission-container {
+ overflow: hidden; }
+
+[data-grav-field="parents"] .form-input-wrapper:hover {
+ color: #0090D9; }
+
+.grav-loader,
+.grav-loader:after {
+ border-radius: 50%;
+ width: 10em;
+ height: 10em; }
+
+.grav-loader {
+ margin: 60px auto;
+ font-size: 10px;
+ position: relative;
+ text-indent: -9999em;
+ border-top: 1.1em solid rgba(111, 123, 138, 0.2);
+ border-right: 1.1em solid rgba(111, 123, 138, 0.2);
+ border-bottom: 1.1em solid rgba(111, 123, 138, 0.2);
+ border-left: 1.1em solid #6f7b8a;
+ transform: translateZ(0);
+ animation: gravloader 1.1s infinite linear; }
+
+@-webkit-keyframes gravloader {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg); }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg); } }
+
+@keyframes gravloader {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg); }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg); } }
+
+input[type=range].rangefield {
+ display: inline-block;
+ vertical-align: middle;
+ -webkit-appearance: none;
+ margin: 10px 0;
+ width: 230px;
+ background: none; }
+ input[type=range].rangefield:focus {
+ outline: none; }
+ input[type=range].rangefield::-webkit-slider-runnable-track {
+ width: 230px;
+ height: 20px;
+ cursor: pointer;
+ animate: 0.2s;
+ border-radius: 25px; }
+ input[type=range].rangefield::-webkit-slider-thumb {
+ height: 24px;
+ width: 35px;
+ border-radius: 6px;
+ cursor: pointer;
+ -webkit-appearance: none;
+ margin-top: -3px; }
+ input[type=range].rangefield::-moz-focus-outer {
+ border: 0; }
+ input[type=range].rangefield::-moz-range-track {
+ width: 230px;
+ height: 20px;
+ cursor: pointer;
+ animate: 0.2s;
+ border-radius: 25px; }
+ input[type=range].rangefield::-moz-range-progress {
+ height: 20px;
+ border-radius: 25px; }
+ input[type=range].rangefield::-moz-range-thumb {
+ height: 24px;
+ width: 35px;
+ border-radius: 6px;
+ cursor: pointer; }
+ input[type=range].rangefield::-ms-track {
+ width: 230px;
+ height: 20px;
+ cursor: pointer;
+ animate: 0.2s;
+ background: transparent;
+ border-color: transparent;
+ color: transparent; }
+ input[type=range].rangefield::-ms-fill-lower, input[type=range].rangefield input[type=range]::-ms-fill-upper {
+ border-radius: 50px; }
+ input[type=range].rangefield::-ms-thumb {
+ height: 24px;
+ width: 35px;
+ border-radius: 6px;
+ cursor: pointer; }
+ input[type=range].rangefield ~ input[type=number].rangefield {
+ background: none;
+ display: inline-block;
+ width: 60px;
+ text-align: right;
+ border: 0;
+ line-height: 16px;
+ vertical-align: middle;
+ padding: 0 0 0 5px; }
+
+span.range-append {
+ display: inline-block;
+ line-height: 20px;
+ vertical-align: middle;
+ margin-left: -3px; }
+
+#pages-filters {
+ background: #3D424E;
+ color: rgba(183, 185, 189, 0.9); }
+ #pages-filters .button-border {
+ color: #B7B9BD;
+ border-radius: 4px;
+ border: 1px solid #535a6b;
+ color: #B7B9BD !important; }
+ #pages-filters .button-border:hover {
+ border-color: #6d7381;
+ color: #B7B9BD; }
+ #pages-filters .button-border.dropdown-toggle {
+ border-left: 1px solid #484e5c; }
+ #pages-filters .filters-bar input {
+ color: #ffffff;
+ border-color: #585f70;
+ background-color: #4a515f; }
+ #pages-filters .filters-bar input::-webkit-input-placeholder {
+ color: rgba(183, 185, 189, 0.5); }
+ #pages-filters .filters-bar input::-moz-placeholder {
+ color: rgba(183, 185, 189, 0.5); }
+ #pages-filters .filters-bar input:-moz-placeholder {
+ color: rgba(183, 185, 189, 0.5); }
+ #pages-filters .filters-bar input:-ms-input-placeholder {
+ color: rgba(183, 185, 189, 0.5); }
+ #pages-filters .filters-advanced fieldset {
+ border: 1px solid #484e5c; }
+ #pages-filters .filters-advanced fieldset legend {
+ background: #3D424E;
+ color: #B7B9BD;
+ font-weight: bold; }
+ #pages-filters form .checkboxes label:before {
+ background-color: #4f5565;
+ border-color: #585f70;
+ color: #ffffff; }
+
+#pages-columns {
+ background: #ffffff;
+ border-top: 1px solid rgba(230, 230, 230, 0.5); }
+ #pages-columns.fjs-container .fjs-col {
+ border-right: 1px solid rgba(230, 230, 230, 0.5);
+ border-bottom: 1px solid rgba(230, 230, 230, 0.5); }
+ #pages-columns .fjs-item:hover .fjs-info > b {
+ color: #0090D9; }
+ #pages-columns .fjs-item:hover .fjs-action-toggle, #pages-columns .fjs-item:hover .fjs-children {
+ color: #0090D9 !important; }
+ #pages-columns .fjs-item .fjs-icon {
+ background-color: #999;
+ box-shadow: 0px 0px 0px 1px white; }
+ #pages-columns .fjs-item .fjs-icon.home {
+ background-color: #2980B9; }
+ #pages-columns .fjs-item .fjs-icon.visible {
+ background-color: #3498DB; }
+ #pages-columns .fjs-item .fjs-icon.lock {
+ background-color: #E67E22; }
+ #pages-columns .fjs-item .fjs-icon.modular {
+ background-color: #9B59B6; }
+ #pages-columns .fjs-item .fjs-icon:after {
+ border: 1px solid #ffffff; }
+ #pages-columns .fjs-item .fjs-icon.badge-published:after {
+ background-color: #27AE60; }
+ #pages-columns .fjs-item .fjs-icon.badge-unpublished:after {
+ background-color: #E74C3C; }
+ #pages-columns .fjs-item .fjs-icon .badge-lang {
+ background-color: #dedede;
+ color: #737373;
+ border: 1px solid #ffffff; }
+ #pages-columns .fjs-item .fjs-icon .badge-lang.translated {
+ background-color: #77559D;
+ color: #ffffff; }
+ #pages-columns .fjs-item .fjs-icon .badge-lang.not-available {
+ background-color: #323640;
+ color: #ffffff; }
+ #pages-columns .fjs-item .fjs-info > b {
+ color: #6f7b8a; }
+ #pages-columns .fjs-item .fjs-info > em {
+ color: #8b95a1; }
+ #pages-columns .fjs-item .fjs-actions .child-count {
+ background-color: #e6e6e6;
+ color: #6f7b8a; }
+ #pages-columns .fjs-item .fjs-action-toggle {
+ color: #0090D9; }
+ #pages-columns .fjs-item .fjs-action-toggle, #pages-columns .fjs-item .fjs-children {
+ color: rgba(111, 123, 138, 0.5);
+ border-radius: 4px;
+ border: 1px solid #e6e6e6; }
+ #pages-columns .fjs-item .fjs-action-toggle:hover, #pages-columns .fjs-item .fjs-children:hover {
+ border-color: #c3c3c3;
+ color: rgba(111, 123, 138, 0.5); }
+ #pages-columns .fjs-item .fjs-action-toggle.dropdown-toggle, #pages-columns .fjs-item .fjs-children.dropdown-toggle {
+ border-left: 1px solid #f2f2f2; }
+ #pages-columns .fjs-item .fjs-action-toggle:hover, #pages-columns .fjs-item .fjs-children:hover {
+ border-color: #d9d9d9; }
+ #pages-columns .fjs-item > a {
+ position: relative; }
+ #pages-columns .fjs-item.fjs-active > .fjs-item-wrapper {
+ background-color: whitesmoke; }
+ #pages-columns .fjs-item.fjs-active > .fjs-item-wrapper a {
+ background: none; }
+ #pages-columns .fjs-item.filters-hit > .fjs-item-wrapper {
+ background-color: #ffffeb; }
+ #pages-columns .fjs-item.filters-hit.fjs-active > .fjs-item-wrapper {
+ background-color: #ffffd6; }
+ #pages-columns .tags .tag {
+ margin: 0 .15rem; }
+ #pages-columns .tags .tag-published {
+ background-color: #219e0d; }
+ #pages-columns .tags .tag-visible {
+ background-color: #018fd9; }
+ #pages-columns .tags .tag-non-routable {
+ background-color: #ff392a; }
+ #pages-columns .langs .badge {
+ align-items: center;
+ background-color: #dedede;
+ color: #737373; }
+ #pages-columns .langs .lang:hover .badge {
+ background-color: #0090D9;
+ color: #F6F6F6; }
+ #pages-columns .langs .lang-translated .fa {
+ color: #219e0d; }
+ #pages-columns .langs .lang-non-translated .fa {
+ color: #ff392a; }
+ #pages-columns .dropdown-menu {
+ background-color: #f2f2f2 !important; }
+ #pages-columns .dropdown-menu .divider {
+ border-top: 1px solid #e6e6e6; }
+ #pages-columns .dropdown-menu td, #pages-columns .dropdown-menu thead th {
+ border-bottom: 1px solid #e6e6e6; }
+ #pages-columns .dropdown-menu .dropdown-item {
+ color: #6f7b8a;
+ background-color: inherit; }
+ #pages-columns .dropdown-menu .dropdown-item:hover {
+ color: #0090D9;
+ background-color: #ebebeb !important; }
+ #pages-columns .dropdown-menu .dropdown-item.danger .fa {
+ color: #F45857; }
+ #pages-columns .dropdown-menu .dropdown-item.danger:hover {
+ background-color: #F45857 !important; }
+ #pages-columns .dropdown-menu .dropdown-item.danger:hover .fa {
+ color: #ffffff; }
+ #pages-columns .dropdown-menu .action-bar {
+ background: #ececec; }
+ #pages-columns .dropdown-menu .action-bar a {
+ color: #6f7b8a; }
+ #pages-columns .dropdown-menu .action-bar a:hover {
+ background: #F6F6F6 !important;
+ color: #0090D9 !important; }
+ #pages-columns .dropdown-menu .fa {
+ color: #999; }
+ #pages-columns .dropdown-menu a:not(.lang):hover .fa {
+ color: #0090D9; }
+ #pages-columns .dropdown-menu .infos tr td {
+ color: #6f7b8a; }
+ #pages-columns .dropdown-menu .infos tr td:first-child {
+ color: #8b95a1; }
+
+#pages-content-wrapper .fjs-path-bar {
+ background-color: #ffffff; }
+
+.breadcrumb-node:hover span {
+ text-decoration: none;
+ color: #0090D9; }
+
+.breadcrumb-node > i:not(.fa) {
+ background-color: #999;
+ box-shadow: 0px 0px 0px 1px #fff; }
+ .breadcrumb-node > i:not(.fa).home {
+ background-color: #2980B9; }
+ .breadcrumb-node > i:not(.fa).visible {
+ background-color: #3498DB; }
+ .breadcrumb-node > i:not(.fa).lock {
+ background-color: #E67E22; }
+ .breadcrumb-node > i:not(.fa).modular {
+ background-color: #9B59B6; }
+
+[data-remodal-id].parents-container form > h1 {
+ border-bottom: 1px solid #e6e6e6; }
+
+[data-remodal-id].parents-container .fjs-col {
+ border-right: 1px solid #e6e6e6; }
+
+[data-remodal-id].parents-container .fjs-item a {
+ color: #0090D9; }
+
+.parents-content.fjs-container .fjs-active a {
+ background-color: #0090D9;
+ color: #ffffff; }
+
+.permissions-container .switch-toggle input.label0:checked + label {
+ color: #ffffff;
+ background: #C0392B !important; }
+
+.permissions-container .switch-toggle input.label1:checked + label {
+ color: #ffffff;
+ background-color: #3D9970 !important; }
+
+.permissions-container .badge.badge-denied {
+ background: #C0392B !important; }
+
+.permissions-container .badge.badge-access {
+ background-color: #3D9970 !important; }
+
+.permissions-container .badge.badge-super {
+ background-color: #8E44AD !important; }
+
+.permissions-container fieldset {
+ border: 1px solid #e6e6e6; }
+ .permissions-container fieldset legend {
+ background-color: #ffffff;
+ color: #414147; }
+ .permissions-container fieldset fieldset legend {
+ border-bottom: 1px solid #e6e6e6; }
+
+.permissions-container .crudp-container .checkboxes.toggleable label {
+ border-color: #e6e6e6;
+ background-color: #fcfcfc; }
+
+.permissions-container .crudp-container .checkboxes input[type=checkbox] + label:before {
+ color: rgba(111, 123, 138, 0.3); }
+
+.permissions-container .crudp-container .checkboxes[data-_check-status="1"] input[type=checkbox] + label {
+ background-color: #3D9970;
+ color: #ffffff; }
+ .permissions-container .crudp-container .checkboxes[data-_check-status="1"] input[type=checkbox] + label:before {
+ color: #ffffff; }
+
+.permissions-container .crudp-container .checkboxes[data-_check-status="2"] input[type=checkbox] + label {
+ background-color: #C0392B;
+ color: #ffffff; }
+ .permissions-container .crudp-container .checkboxes[data-_check-status="2"] input[type=checkbox] + label:before {
+ color: #ffffff; }
+
+.permission-container .permission-name span:not(.badge) {
+ background-color: #ffffff; }
+
+.permission-container .permission-name span.badge {
+ border: 2px solid #ffffff; }
+
+.icon-set {
+ background: white; }
+
+.jqCron-cross,
+.jqCron-selector-title {
+ border: 1px solid #e6e6e6; }
+
+.jqCron-container.disable .jqCron-cross:hover,
+.jqCron-container.disable .jqCron-selector-title:hover,
+.jqCron-cross,
+.jqCron-selector-title {
+ background: #fcfcfc;
+ border-color: #e6e6e6; }
+
+.jqCron-cross:hover,
+.jqCron-selector-title:hover {
+ background-color: #e3e3e3; }
+
+.jqCron-selector-list {
+ background-color: #e3e3e3;
+ border: 1px solid #e6e6e6; }
+
+.jqCron-selector-list li.selected {
+ background: #0090D9;
+ color: #ffffff; }
+
+.jqCron-selector-list li:hover {
+ background: #fcfcfc; }
+
+.jqCron-error .jqCron-selector-title {
+ background: #F45857;
+ border: 1px solid #f12827;
+ color: #ffffff; }
+
+.jqCron-container.disable * {
+ color: #363c43; }
+
+.jqCron-container.disable .jqCron-selector-title {
+ background: #ffffff !important; }
+
+/*# sourceMappingURL=preset.css.map */
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css-compiled/preset.css.map b/source/user/plugins/admin/themes/grav/css-compiled/preset.css.map
new file mode 100644
index 0000000..11b7ae9
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css-compiled/preset.css.map
@@ -0,0 +1,18 @@
+{
+ "version": 3,
+ "file": "preset.css",
+ "sources": [
+ "../scss/preset.scss",
+ "../hdr0",
+ "../scss/configuration/template/_base.scss",
+ "../scss/configuration/template/_colors.scss",
+ "../scss/configuration/template/_variables.scss",
+ "../scss/template/modules/_scrollbars.scss",
+ "../scss/template/modules/_bourbon_essentials.scss",
+ "../scss/template/modules/_buttons.scss",
+ "../scss/template/_colors.scss",
+ "../scss/template/modules/_input-range.scss"
+ ],
+ "names": [],
+ "mappings": "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"
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css-compiled/simple-fonts.css b/source/user/plugins/admin/themes/grav/css-compiled/simple-fonts.css
new file mode 100644
index 0000000..5ac6363
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css-compiled/simple-fonts.css
@@ -0,0 +1,13 @@
+body, h5, h6,
+.badge, .note, .grav-mdeditor-preview,
+input, select, textarea, button, .selectize-input,
+h1, h2, h3, h4,
+.fontfamily-sans .CodeMirror pre,
+#admin-menu li, .form-tabs > label, .label {
+ font-family: "Helvetica Neue", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; }
+
+.CodeMirror pre,
+code, kbd, pre, samp, .mono {
+ font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; }
+
+/*# sourceMappingURL=simple-fonts.css.map */
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css-compiled/simple-fonts.css.map b/source/user/plugins/admin/themes/grav/css-compiled/simple-fonts.css.map
new file mode 100644
index 0000000..ea54a26
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css-compiled/simple-fonts.css.map
@@ -0,0 +1,10 @@
+{
+ "version": 3,
+ "file": "simple-fonts.css",
+ "sources": [
+ "../scss/simple-fonts.scss",
+ "../hdr0"
+ ],
+ "names": [],
+ "mappings": "AAAA,AAAA,IAAI,EAAE,EAAE,EAAE,EAAE;AACZ,MAAM,EAAE,KAAK,EAAE,sBAAsB;AACrC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB;AACjD,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACd,gBAAgB,CAAC,WAAW,CAAC,GAAG;AAChC,WAAW,CAAC,EAAE,EAAE,UAAU,GAAG,KAAK,EAAE,MAAM,CAAE;EACxC,WAAW,EAAE,sEAAsE,GACtF;;AAED,AAAA,WAAW,CAAC,GAAG;AACf,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAE;EACzB,WAAW,EAAE,wEAAwE,GACxF"
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css-compiled/template.css b/source/user/plugins/admin/themes/grav/css-compiled/template.css
new file mode 100644
index 0000000..b998360
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css-compiled/template.css
@@ -0,0 +1,5607 @@
+#admin-login, #admin-main .titlebar h1, #admin-main .titlebar .button-bar, #admin-main .danger.button-bar .button, #admin-main .success.button-bar .button, #admin-dashboard .chart-loader .fa, #admin-dashboard #updates .numeric, #admin-topbar #admin-mode-toggle, #admin-topbar #admin-lang-toggle {
+ position: relative;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -moz-transform: translateY(-50%);
+ -o-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%); }
+
+.button {
+ display: inline-block;
+ padding: 0.5rem 1rem;
+ font-weight: 400;
+ cursor: pointer;
+ vertical-align: middle;
+ outline: none; }
+ .button:active {
+ margin: 1px 0 -1px 0; }
+ .button-small.button {
+ padding: 4px 8px;
+ font-size: 95%; }
+ .button-x-small.button {
+ padding: 2px 5px;
+ font-size: 90%; }
+ .button:disabled {
+ opacity: .6;
+ cursor: no-drop; }
+
+.g-colorpicker {
+ position: relative;
+ border-radius: 0.1875rem;
+ max-width: 100%;
+ display: flex; }
+ .g-colorpicker input {
+ flex-basis: 75%; }
+ .g-colorpicker i {
+ position: absolute;
+ top: 15px;
+ right: 10px;
+ z-index: 2; }
+ .g-colorpicker .g-colorpicker-preview-wrap {
+ cursor: default;
+ position: relative;
+ border-radius: 3px;
+ border: 1px solid #fff;
+ margin-left: 5px;
+ width: 41px; }
+ .g-colorpicker .g-colorpicker-preview {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ bottom: 0px;
+ left: 0px;
+ border-radius: 3px; }
+
+.cp-sprite {
+ background-image: url(data:image/png;base64,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); }
+
+/* Panel */
+.cp-wrapper {
+ position: absolute;
+ width: 173px;
+ height: 211px;
+ background: white;
+ border: solid 1px #CCC;
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
+ z-index: 99999;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ display: none; }
+
+.cp-wrapper.cp-visible {
+ display: block; }
+
+/* Panel positioning */
+.cp-position-top .cp-wrapper {
+ top: -154px; }
+
+.cp-position-right .cp-wrapper {
+ right: 0; }
+
+.cp-position-bottom .cp-wrapper {
+ top: auto; }
+
+.cp-position-left .cp-wrapper {
+ left: 0; }
+
+.cp-with-opacity.cp-wrapper {
+ width: 194px; }
+
+.cp-wrapper .cp-grid {
+ position: absolute;
+ top: 1px;
+ left: 1px;
+ width: 150px;
+ height: 150px;
+ background-position: -120px 0;
+ cursor: crosshair; }
+
+.cp-wrapper .cp-grid-inner {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 150px;
+ height: 150px; }
+
+.cp-mode-saturation .cp-grid {
+ background-position: -420px 0; }
+
+.cp-mode-saturation .cp-grid-inner {
+ background-position: -270px 0;
+ background-image: inherit; }
+
+.cp-mode-brightness .cp-grid {
+ background-position: -570px 0; }
+
+.cp-mode-brightness .cp-grid-inner {
+ background-color: black; }
+
+.cp-mode-wheel .cp-grid {
+ background-position: -720px 0; }
+
+.cp-slider,
+.cp-opacity-slider {
+ position: absolute;
+ top: 1px;
+ left: 152px;
+ width: 20px;
+ height: 150px;
+ background-color: white;
+ background-position: 0 0;
+ cursor: row-resize; }
+
+.cp-mode-saturation .cp-slider {
+ background-position: -60px 0; }
+
+.cp-mode-brightness .cp-slider {
+ background-position: -20px 0; }
+
+.cp-mode-wheel .cp-slider {
+ background-position: -20px 0; }
+
+.cp-opacity-slider {
+ left: 173px;
+ background-position: -40px 0;
+ display: none; }
+
+.cp-with-opacity .cp-opacity-slider {
+ display: block; }
+
+/* Pickers */
+.cp-grid .cp-picker {
+ position: absolute;
+ top: 70px;
+ left: 70px;
+ width: 12px;
+ height: 12px;
+ border: solid 1px black;
+ border-radius: 10px;
+ margin-top: -6px;
+ margin-left: -6px;
+ background: none; }
+
+.cp-grid .cp-picker > div {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 8px;
+ height: 8px;
+ border-radius: 8px;
+ border: solid 2px white;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box; }
+
+.cp-picker {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 18px;
+ height: 2px;
+ background: white;
+ border: solid 1px black;
+ margin-top: -2px;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ z-index: 2; }
+
+/* Tabs */
+.cp-tabs {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ position: absolute;
+ bottom: 0;
+ color: #777;
+ left: 0;
+ right: 0;
+ background: #eee; }
+ .cp-tabs > div {
+ display: inline-block;
+ padding: 6px 0 4px;
+ font-family: Helvetica, sans-serif;
+ font-size: 11px;
+ border-left: 1px solid #ddd;
+ width: 48px;
+ border-right: 0;
+ text-align: center;
+ cursor: pointer; }
+ .cp-tabs > div:first-child {
+ border-left: 0; }
+ .cp-tabs > div.active {
+ background-color: #fff; }
+ .cp-tabs > div.cp-tab-transp {
+ width: 100%;
+ border-top: 1px solid #ddd; }
+
+/* Default theme */
+.cp-theme-default.cp-wrapper {
+ width: auto;
+ display: inline-block; }
+
+.cp-theme-default .cp-input {
+ height: 20px;
+ width: auto;
+ display: inline-block;
+ padding-left: 26px; }
+
+.cp-theme-default.cp-position-right .cp-input {
+ padding-right: 26px;
+ padding-left: inherit; }
+
+.input-group .cp-theme-bootstrap:not(:first-child) .cp-input {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0; }
+
+.g-colorpicker-preview-wrap {
+ background-image: url(data:image/jpeg;base64,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); }
+
+.datetime-picker-wrapper {
+ position: relative; }
+ .datetime-picker-wrapper input {
+ padding-right: 2.5rem; }
+ .datetime-picker-wrapper .field-icons {
+ position: absolute;
+ top: 0;
+ right: 10px;
+ bottom: 0;
+ line-height: 2.5rem; }
+
+.collapse {
+ display: none; }
+ .collapse.in {
+ display: block; }
+ tr .collapse.in {
+ display: table-row; }
+ tbody .collapse.in {
+ display: table-row-group; }
+
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition: height 0.35s ease, visibility 0.35s ease;
+ -moz-transition: height 0.35s ease, visibility 0.35s ease;
+ transition: height 0.35s ease, visibility 0.35s ease; }
+
+.sr-only, .bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after, .bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after, .bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after, .bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after, .bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after, .bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after, .bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after, .bootstrap-datetimepicker-widget .btn[data-action="clear"]::after, .bootstrap-datetimepicker-widget .btn[data-action="today"]::after, .bootstrap-datetimepicker-widget .picker-switch::after, .bootstrap-datetimepicker-widget table th.prev::after, .bootstrap-datetimepicker-widget table th.next::after {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0; }
+
+/* Bootstrap variables styling */
+.bootstrap-datetimepicker-widget.dropdown-menu {
+ position: absolute;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 4px;
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); }
+
+.bootstrap-datetimepicker-widget .list-unstyled {
+ padding-left: 0;
+ list-style: none; }
+
+.bootstrap-datetimepicker-widget .collapse {
+ display: none;
+ visibility: hidden; }
+ .bootstrap-datetimepicker-widget .collapse.in {
+ display: block;
+ visibility: visible; }
+
+.bootstrap-datetimepicker-widget .datepicker-years .picker-switch {
+ cursor: default !important;
+ background: inherit !important; }
+
+.bootstrap-datetimepicker-widget .table-condensed > thead > tr > th {
+ padding: 5px; }
+
+.bootstrap-datetimepicker-widget table {
+ display: table; }
+ .bootstrap-datetimepicker-widget table thead {
+ display: table-header-group; }
+ .bootstrap-datetimepicker-widget table tbody {
+ display: table-row-group; }
+ .bootstrap-datetimepicker-widget table tr {
+ display: table-row; }
+ .bootstrap-datetimepicker-widget table tr:hover {
+ background: inherit; }
+ .bootstrap-datetimepicker-widget table tr th, .bootstrap-datetimepicker-widget table tr td {
+ border: 0;
+ display: table-cell; }
+ .bootstrap-datetimepicker-widget table tr th:first-child, .bootstrap-datetimepicker-widget table tr td:first-child {
+ padding-left: inherit; }
+ .bootstrap-datetimepicker-widget table tr th:last-child, .bootstrap-datetimepicker-widget table tr td:last-child {
+ padding-right: inherit; }
+
+/*!
+ * Datetimepicker for Bootstrap 3
+ * ! version : 4.7.14
+ * https://github.com/Eonasdan/bootstrap-datetimepicker/
+ */
+.bootstrap-datetimepicker-widget {
+ list-style: none; }
+ .bootstrap-datetimepicker-widget.dropdown-menu {
+ margin: 2px 0;
+ padding: 4px;
+ width: 19em; }
+ @media (min-width: 768px) {
+ .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
+ width: 38em; } }
+ @media (min-width: 992px) {
+ .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
+ width: 38em; } }
+ @media (min-width: 1200px) {
+ .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
+ width: 38em; } }
+ .bootstrap-datetimepicker-widget.dropdown-menu:before, .bootstrap-datetimepicker-widget.dropdown-menu:after {
+ content: '';
+ display: inline-block;
+ position: absolute; }
+ .bootstrap-datetimepicker-widget.dropdown-menu.bottom:before {
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid #ccc;
+ border-bottom-color: rgba(0, 0, 0, 0.2);
+ top: -7px;
+ left: 7px; }
+ .bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid white;
+ top: -6px;
+ left: 8px; }
+ .bootstrap-datetimepicker-widget.dropdown-menu.top:before {
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-top: 7px solid #ccc;
+ border-top-color: rgba(0, 0, 0, 0.2);
+ bottom: -7px;
+ left: 6px; }
+ .bootstrap-datetimepicker-widget.dropdown-menu.top:after {
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-top: 6px solid white;
+ bottom: -6px;
+ left: 7px; }
+ .bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before {
+ left: auto;
+ right: 6px; }
+ .bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after {
+ left: auto;
+ right: 7px; }
+ .bootstrap-datetimepicker-widget .list-unstyled {
+ margin: 0; }
+ .bootstrap-datetimepicker-widget a[data-action] {
+ padding: 6px 0; }
+ .bootstrap-datetimepicker-widget a[data-action]:active {
+ box-shadow: none; }
+ .bootstrap-datetimepicker-widget .timepicker-hour, .bootstrap-datetimepicker-widget .timepicker-minute, .bootstrap-datetimepicker-widget .timepicker-second {
+ width: 54px;
+ font-weight: bold;
+ font-size: 1.2em;
+ margin: 0; }
+ .bootstrap-datetimepicker-widget button[data-action] {
+ padding: 6px; }
+ .bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after {
+ content: "Increment Hours"; }
+ .bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after {
+ content: "Increment Minutes"; }
+ .bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after {
+ content: "Decrement Hours"; }
+ .bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after {
+ content: "Decrement Minutes"; }
+ .bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after {
+ content: "Show Hours"; }
+ .bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after {
+ content: "Show Minutes"; }
+ .bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after {
+ content: "Toggle AM/PM"; }
+ .bootstrap-datetimepicker-widget .btn[data-action="clear"]::after {
+ content: "Clear the picker"; }
+ .bootstrap-datetimepicker-widget .btn[data-action="today"]::after {
+ content: "Set the date to today"; }
+ .bootstrap-datetimepicker-widget .picker-switch {
+ text-align: center; }
+ .bootstrap-datetimepicker-widget .picker-switch::after {
+ content: "Toggle Date and Time Screens"; }
+ .bootstrap-datetimepicker-widget .picker-switch td {
+ padding: 0;
+ margin: 0;
+ height: auto;
+ width: auto;
+ line-height: inherit; }
+ .bootstrap-datetimepicker-widget .picker-switch td span {
+ line-height: 2.5;
+ height: 2.5em;
+ width: 100%; }
+ .bootstrap-datetimepicker-widget table {
+ width: 100%;
+ margin: 0; }
+ .bootstrap-datetimepicker-widget table td,
+ .bootstrap-datetimepicker-widget table th {
+ text-align: center;
+ border-radius: 3px; }
+ .bootstrap-datetimepicker-widget table th {
+ height: 29px;
+ line-height: 29px;
+ width: 29px; }
+ .bootstrap-datetimepicker-widget table th.picker-switch {
+ width: 145px; }
+ .bootstrap-datetimepicker-widget table th.disabled, .bootstrap-datetimepicker-widget table th.disabled:hover {
+ background: none;
+ color: #ccc;
+ cursor: not-allowed; }
+ .bootstrap-datetimepicker-widget table th.prev::after {
+ content: "Previous Month"; }
+ .bootstrap-datetimepicker-widget table th.next::after {
+ content: "Next Month"; }
+ .bootstrap-datetimepicker-widget table thead tr:first-child th {
+ cursor: pointer; }
+ .bootstrap-datetimepicker-widget table thead tr:first-child th:hover {
+ background: #ddd; }
+ .bootstrap-datetimepicker-widget table td {
+ height: 54px;
+ line-height: 54px;
+ width: 54px; }
+ .bootstrap-datetimepicker-widget table td.cw {
+ font-size: .8em;
+ height: 20px;
+ line-height: 20px;
+ color: #ccc; }
+ .bootstrap-datetimepicker-widget table td.day {
+ height: 29px;
+ line-height: 29px;
+ width: 29px; }
+ .bootstrap-datetimepicker-widget table td.day:hover, .bootstrap-datetimepicker-widget table td.hour:hover, .bootstrap-datetimepicker-widget table td.minute:hover, .bootstrap-datetimepicker-widget table td.second:hover {
+ background: #ddd;
+ cursor: pointer; }
+ .bootstrap-datetimepicker-widget table td.old, .bootstrap-datetimepicker-widget table td.new {
+ color: #ccc; }
+ .bootstrap-datetimepicker-widget table td.today {
+ position: relative; }
+ .bootstrap-datetimepicker-widget table td.today:before {
+ content: '';
+ display: inline-block;
+ border: 0 0 7px 7px solid transparent;
+ border-bottom-color: white;
+ border-top-color: rgba(0, 0, 0, 0.2);
+ position: absolute;
+ bottom: 4px;
+ right: 4px; }
+ .bootstrap-datetimepicker-widget table td.active, .bootstrap-datetimepicker-widget table td.active:hover {
+ background-color: white;
+ color: blue;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); }
+ .bootstrap-datetimepicker-widget table td.active.today:before {
+ border-bottom-color: #fff; }
+ .bootstrap-datetimepicker-widget table td.disabled, .bootstrap-datetimepicker-widget table td.disabled:hover {
+ background: none;
+ color: #ccc;
+ cursor: not-allowed; }
+ .bootstrap-datetimepicker-widget table td span {
+ display: inline-block;
+ width: 54px;
+ height: 54px;
+ line-height: 54px;
+ margin: 2px 1.5px;
+ cursor: pointer;
+ border-radius: 3px; }
+ .bootstrap-datetimepicker-widget table td span:hover {
+ background: #ddd; }
+ .bootstrap-datetimepicker-widget table td span.active {
+ background-color: white;
+ color: blue;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); }
+ .bootstrap-datetimepicker-widget table td span.old {
+ color: #ccc; }
+ .bootstrap-datetimepicker-widget table td span.disabled, .bootstrap-datetimepicker-widget table td span.disabled:hover {
+ background: none;
+ color: #ccc;
+ cursor: not-allowed; }
+ .bootstrap-datetimepicker-widget.usetwentyfour td.hour {
+ height: 27px;
+ line-height: 27px; }
+
+.input-group.date .input-group-addon {
+ cursor: pointer; }
+
+.fjs-container {
+ display: flex;
+ font-size: .9em;
+ min-height: 400px;
+ overflow: auto;
+ overflow-x: scroll; }
+ .fjs-container:focus {
+ outline: none; }
+ .fjs-container .fjs-col {
+ border-right: solid 1px lightgray;
+ max-height: 600px;
+ min-height: inherit;
+ min-width: 200px;
+ overflow-y: auto; }
+ .fjs-container .fjs-item a {
+ color: black;
+ justify-content: space-between;
+ padding: 5px;
+ text-decoration: none;
+ display: flex;
+ align-items: center; }
+ .fjs-container .fjs-item a:focus {
+ outline: none; }
+ .fjs-container .fjs-item a span {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap; }
+ .fjs-container .fjs-item a span i {
+ padding-right: 5px; }
+ .fjs-container .info-container {
+ display: flex;
+ align-items: center; }
+ .fjs-container .fjs-list {
+ list-style: none;
+ margin: 0;
+ padding: 0; }
+ .fjs-container .fjs-item-content {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap; }
+ .fjs-container .fa-caret-right {
+ padding: 0 0 0 .5em; }
+ .fjs-container .leaf-col {
+ align-items: center;
+ border-right: 0;
+ display: flex;
+ flex: 2;
+ justify-content: center;
+ padding: 0 1.5em; }
+ .fjs-container .leaf-row {
+ display: flex;
+ flex-direction: column;
+ font-size: 1.3em;
+ text-align: center; }
+ .fjs-container .leaf-row .fa {
+ font-size: 4em;
+ margin: 20px 0; }
+ .fjs-container .leaf-row .fa-refresh {
+ font-size: 2em; }
+ .fjs-container .leaf-col .meta {
+ font-size: .7em; }
+ .fjs-container .leaf-col .meta strong {
+ font-weight: normal; }
+ .fjs-container .leaf-col .meta:first-of-type {
+ margin-top: 1.5em; }
+
+.fjs-path-bar {
+ font-size: 0.9em;
+ padding: .25rem .5rem;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap; }
+ .fjs-path-bar [data-breadcrumb-node] {
+ cursor: pointer; }
+ .fjs-path-bar [data-breadcrumb-node]:hover span {
+ text-decoration: underline; }
+ .fjs-path-bar .fa-chevron-right {
+ font-size: .8em; }
+
+[data-parents-field-name] {
+ font-weight: bold; }
+
+.fjs-container .fa-folder, .fjs-path-bar .fa-folder {
+ color: #90E4FF; }
+
+.fjs-container .fa-file-o, .fjs-path-bar .fa-file-o {
+ color: #A7A7A7; }
+
+.fjs-container .fa-external-link, .fjs-path-bar .fa-external-link {
+ color: #629EFF;
+ font-size: smaller; }
+
+.switch-toggle {
+ display: inline-block;
+ display: inline-flex;
+ overflow: hidden;
+ border-radius: 4px;
+ line-height: 35px; }
+ .switch-toggle input[type=radio] {
+ position: absolute;
+ visibility: hidden;
+ display: none; }
+ .switch-toggle label {
+ display: inline-block;
+ cursor: pointer;
+ padding: 0 15px;
+ white-space: nowrap; }
+
+html, body {
+ height: 100%; }
+
+body {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ overflow: hidden; }
+
+b, strong {
+ font-weight: 600; }
+
+.bigger {
+ font-size: 1.2rem; }
+
+.button-bar {
+ text-align: right;
+ float: right;
+ z-index: 0; }
+
+.alert {
+ font-size: 1rem;
+ padding: 0.5rem 1.5rem;
+ position: relative; }
+ @media only all and (max-width: 47.938em) {
+ .alert {
+ padding: 0.5rem 1rem; } }
+
+.badge, .sidebar-open #admin-sidebar #admin-menu li .badges .updates, .gpm .gpm-testing {
+ display: inline-block;
+ font-size: 0.8rem;
+ font-weight: 500;
+ border-radius: 10px;
+ padding: 0px 6px;
+ min-width: 20px;
+ line-height: 20px;
+ text-align: center; }
+
+.empty-state {
+ margin: 0 auto;
+ text-align: center;
+ padding-top: 100px; }
+
+.default-animation, .scheduler-content #cron-install {
+ -webkit-transition: all 0.5s ease;
+ -moz-transition: all 0.5s ease;
+ transition: all 0.5s ease; }
+
+.pulse {
+ animation-name: pulse_animation;
+ animation-duration: 2000ms;
+ transform-origin: 70% 70%;
+ animation-iteration-count: infinite;
+ animation-timing-function: linear; }
+
+@keyframes pulse_animation {
+ 0% {
+ transform: scale(1); }
+ 30% {
+ transform: scale(1); }
+ 40% {
+ transform: scale(1.08); }
+ 50% {
+ transform: scale(1); }
+ 60% {
+ transform: scale(1); }
+ 70% {
+ transform: scale(1.05); }
+ 80% {
+ transform: scale(1); }
+ 100% {
+ transform: scale(1); } }
+
+.default-border-radius {
+ border-radius: 4px; }
+
+.default-glow-shadow {
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); }
+
+.default-box-shadow {
+ box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.03); }
+
+.login-box-shadow {
+ box-shadow: 0 10px 100px 0px rgba(0, 0, 0, 0.4); }
+
+.padding-horiz {
+ padding-left: 7rem;
+ padding-right: 7rem; }
+ @media only all and (max-width: 59.938em) {
+ .padding-horiz {
+ padding-left: 4rem;
+ padding-right: 4rem; } }
+ @media only all and (max-width: 47.938em) {
+ .padding-horiz {
+ padding-left: 1rem;
+ padding-right: 1rem; } }
+
+.padding-vert {
+ padding-top: 3rem;
+ padding-bottom: 3rem; }
+
+.pointer-events-none {
+ pointer-events: none; }
+
+@media only all and (max-width: 47.938em) {
+ .hidden-mobile {
+ display: none !important; } }
+
+body {
+ font-weight: 400; }
+ @media only all and (max-width: 47.938em) {
+ body {
+ font-size: 0.8rem; } }
+
+h1, h2, h3, h4, h5, h6 {
+ font-weight: 400;
+ text-rendering: optimizeLegibility;
+ letter-spacing: -0px; }
+
+h1 {
+ font-size: 3.1rem; }
+ @media only all and (max-width: 47.938em) {
+ h1 {
+ font-size: 2.5rem;
+ line-height: 1.2;
+ margin-bottom: 2.5rem; } }
+
+@media only all and (min-width: 48em) and (max-width: 59.938em) {
+ h2 {
+ font-size: 2rem; } }
+
+@media only all and (max-width: 47.938em) {
+ h2 {
+ font-size: 1.9rem; } }
+
+@media only all and (min-width: 48em) and (max-width: 59.938em) {
+ h3 {
+ font-size: 1.6rem; } }
+
+@media only all and (max-width: 47.938em) {
+ h3 {
+ font-size: 1.5rem; } }
+
+@media only all and (min-width: 48em) and (max-width: 59.938em) {
+ h4 {
+ font-size: 1.25rem; } }
+
+@media only all and (max-width: 47.938em) {
+ h4 {
+ font-size: 1.15rem; } }
+
+h1 {
+ letter-spacing: -3px; }
+
+h2 {
+ letter-spacing: -2px; }
+
+h3 {
+ letter-spacing: -1px; }
+
+i.fa.fa-heart.pulse, i.fa.fa-heart-o.pulse {
+ color: #920; }
+
+code {
+ vertical-align: inherit; }
+
+pre {
+ padding: 2rem;
+ border-radius: 3px; }
+ pre code {
+ background: inherit; }
+
+.label {
+ vertical-align: middle;
+ border-radius: 100%;
+ height: 1rem;
+ min-width: 1rem;
+ line-height: 1rem;
+ display: inline-block;
+ text-align: center;
+ font-size: 0.6rem;
+ margin-right: 0.75rem; }
+
+form .form-display-wrapper h1 {
+ padding: 0 !important;
+ font-size: 1.7rem !important;
+ border-bottom-width: 2px !important; }
+
+form .form-display-wrapper h2 {
+ padding: 0 !important;
+ font-size: 1.5rem !important;
+ border-bottom-width: 1px !important; }
+
+form .form-display-wrapper h3 {
+ padding: 0 !important;
+ font-size: 1.3rem !important;
+ border-bottom-width: 1px !important; }
+
+form .form-display-wrapper h4 {
+ padding: 0 !important;
+ font-size: 1.1rem !important; }
+
+form .form-display-wrapper blockquote {
+ padding: 15px; }
+ form .form-display-wrapper blockquote p {
+ font-size: 0.9rem;
+ color: inherit; }
+ form .form-display-wrapper blockquote p:last-child {
+ margin-bottom: 0; }
+
+form .form-display-wrapper code, form .form-display-wrapper pre {
+ font-size: 0.8rem; }
+
+form .form-display-wrapper table {
+ border-collapse: collapse;
+ width: 100%; }
+ form .form-display-wrapper table th {
+ padding: 10px !important; }
+ form .form-display-wrapper table th:last-child {
+ border-right: none; }
+ form .form-display-wrapper table td {
+ padding: 10px !important; }
+ form .form-display-wrapper table td:last-child {
+ border-right: none; }
+ form .form-display-wrapper table tr:last-child {
+ border-bottom: none; }
+
+@font-face {
+ font-family: "rockettheme-apps";
+ font-weight: normal;
+ font-style: normal;
+ src: url("../fonts/rockettheme-apps/rockettheme-apps.eot");
+ src: url("../fonts/rockettheme-apps/rockettheme-apps.eot?#iefix") format("embedded-opentype"), url("../fonts/rockettheme-apps/rockettheme-apps.woff") format("woff"), url("../fonts/rockettheme-apps/rockettheme-apps.ttf") format("truetype"), url("../fonts/rockettheme-apps/rockettheme-apps.svg#rockettheme-apps") format("svg"); }
+
+i.fa-grav, i.fa-grav-spaceman, i.fa-grav-text, i.fa-grav-full,
+i.fa-grav-logo, i.fa-grav-symbol, i.fa-grav-logo-both, i.fa-grav-both,
+i.fa-gantry, i.fa-gantry-logo, i.fa-gantry-symbol, i.fa-gantry-logo-both, i.fa-gantry-both {
+ font-family: 'rockettheme-apps';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ /* Better Font Rendering =========== */
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale; }
+
+.fa-grav-logo:before, .fa-grav-text:before {
+ content: "\61"; }
+
+.fa-grav-symbol:before, .fa-grav:before, .fa-grav-spaceman:before {
+ content: "\62"; }
+
+.fa-grav-logo-both:before, .fa-grav-both:before, .fa-grav-full:before {
+ content: "\66"; }
+
+.fa-gantry-logo:before {
+ content: "\64"; }
+
+.fa-gantry:before, .fa-gantry-symbol:before {
+ content: "\63"; }
+
+.fa-gantry-logo-both:before, .fa-gantry-both:before {
+ content: "\65"; }
+
+form h1, form h3, form .form-spacer h3 {
+ padding: 0 1.5rem 0.5rem;
+ margin: 0 0 1rem;
+ font-size: 1.5rem;
+ text-align: left;
+ letter-spacing: -1px; }
+
+form h3 {
+ padding-left: 0; }
+
+form p {
+ padding: 0 1.5rem; }
+
+form pre {
+ padding: 1.5rem 3rem; }
+
+form .nowrap {
+ white-space: nowrap; }
+
+form .form-description p {
+ padding: 0; }
+
+@media only all and (max-width: 47.938em) {
+ form .button {
+ padding: 0.25rem 0.5rem; } }
+
+form .form-field {
+ margin-bottom: 1rem;
+ padding-left: 1.5rem; }
+ @media only all and (max-width: 47.938em) {
+ form .form-field {
+ padding-left: 1rem; } }
+ form .form-field .file-thumbnail-wrapper {
+ display: inline-block;
+ position: relative; }
+ form .form-field .file-thumbnail {
+ max-height: 150px;
+ vertical-align: top;
+ display: inline-block;
+ margin-bottom: 10px; }
+ form .form-field .file-thumbnail-remove {
+ position: absolute;
+ text-align: center;
+ display: block;
+ top: 3px;
+ right: 3px;
+ width: 25px;
+ height: 25px;
+ border-radius: 100%; }
+ form .form-field .file-thumbnail-remove .fa {
+ font-size: 20px;
+ line-height: 25px;
+ vertical-align: top; }
+
+form .form-data {
+ padding-right: 1.5rem; }
+ @media only all and (max-width: 47.938em) {
+ form .form-data {
+ padding-right: 1rem; } }
+
+form .form-input-addon-wrapper {
+ display: flex; }
+ form .form-input-addon-wrapper .form-input-addon {
+ display: flex;
+ padding: 0 5px;
+ justify-content: center;
+ align-items: center; }
+ form .form-input-addon-wrapper .form-input-addon.copy-to-clipboard {
+ cursor: pointer; }
+ form .form-input-addon-wrapper .form-input-addon[data-regenerate] {
+ cursor: pointer; }
+ form .form-input-addon-wrapper input {
+ height: 35px;
+ display: table-cell; }
+ form .form-input-addon-wrapper input[name="data[folder]"] {
+ transition: background-color .5s ease; }
+ form .form-input-addon-wrapper .form-input-prepend {
+ border-radius: 4px 0 0 4px;
+ border-right-width: 0 !important; }
+ form .form-input-addon-wrapper .form-input-append {
+ border-radius: 0 4px 4px 0;
+ border-left-width: 0 !important; }
+ form .form-input-addon-wrapper input:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0; }
+ form .form-input-addon-wrapper input:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0; }
+
+form .overlay {
+ padding-top: 1rem;
+ padding-bottom: 1px; }
+ form .overlay.bottom {
+ margin: 2rem auto -2rem auto; }
+
+form .required {
+ display: inline-block;
+ font-family: helvetica, arial, sans-serif;
+ vertical-align: middle;
+ line-height: 0;
+ font-size: 30px;
+ margin-left: 0px;
+ margin-bottom: -5px; }
+
+form label {
+ padding: 5px 0;
+ font-weight: 400;
+ margin: 0; }
+ form label p {
+ margin: 0; }
+ form label [data-hint] {
+ display: inline; }
+ form label.inline {
+ display: inline;
+ vertical-align: middle;
+ margin-right: 15px; }
+ form label.toggleable {
+ display: inline; }
+
+form .form-sublabel p {
+ opacity: 0.8;
+ font-size: 0.9rem;
+ margin: 10px 20px 0 0;
+ padding: 0; }
+
+form input, form select, form textarea, form button, form .selectize-input {
+ font-size: 0.9rem;
+ line-height: 1.5;
+ border-radius: 4px;
+ -webkit-font-smoothing: antialiased; }
+
+form .form-input-file {
+ position: relative;
+ min-height: 70px;
+ border-radius: 4px; }
+ form .form-input-file ul {
+ margin: 1rem 0;
+ text-align: left;
+ font-size: 1rem;
+ border-radius: 4px; }
+ form .form-input-file p {
+ display: block;
+ height: 100%;
+ text-align: center;
+ margin: 0;
+ padding: 0.8rem 1rem 0;
+ font-size: 1.2rem; }
+ form .form-input-file input {
+ display: none; }
+
+form .selectize-dropdown {
+ z-index: 100000; }
+
+form .grid.vertical {
+ -webkit-flex-flow: column;
+ -moz-flex-flow: column;
+ flex-flow: column; }
+
+form .compact .form-field {
+ margin-bottom: 0.2rem; }
+
+form .compact .form-list-wrapper li {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ form .compact .form-list-wrapper li .form-field {
+ width: 50%; }
+ @media only all and (max-width: 47.938em) {
+ form .compact .form-list-wrapper li .form-field {
+ width: 100%; } }
+
+form .form-select-wrapper, form .selectize-control.single .selectize-input {
+ position: relative; }
+ form .form-select-wrapper:after, form .selectize-control.single .selectize-input:after {
+ margin-top: 0;
+ border: 0;
+ position: absolute;
+ content: '\f078';
+ font-family: 'FontAwesome';
+ right: 12px;
+ top: 50%;
+ line-height: 0;
+ pointer-events: none; }
+
+form .selectize-input {
+ display: block !important;
+ box-shadow: none;
+ padding: 5px 30px 5px 10px;
+ margin: 0; }
+ form .selectize-input > input {
+ font-size: 0.9rem;
+ line-height: 1.5; }
+
+form .selectize-control.single.plugin-remove_button .selectize-input .item, form .selectize-control.single.plugin-remove_button .selectize-input .remove-single {
+ cursor: pointer;
+ margin: 0 3px 3px 0;
+ padding: 2px 6px;
+ display: inline-block;
+ border-radius: 2px 0 0 2px !important; }
+
+form .selectize-control.single.plugin-remove_button .selectize-input .remove-single {
+ border-radius: 0 2px 2px 0 !important;
+ margin-left: -2px; }
+
+form .selectize-control.single.plugin-remove_button .selectize-input,
+form .selectize-control.multi .selectize-input {
+ padding: 0.375rem 0.375rem; }
+ form .selectize-control.single.plugin-remove_button .selectize-input.has-items,
+ form .selectize-control.multi .selectize-input.has-items {
+ padding-top: 6px;
+ padding-bottom: 4px; }
+ form .selectize-control.single.plugin-remove_button .selectize-input .item, form .selectize-control.single.plugin-remove_button .selectize-input .remove-single,
+ form .selectize-control.multi .selectize-input .item,
+ form .selectize-control.multi .selectize-input .remove-single {
+ border-radius: 2px;
+ line-height: 1.5; }
+ form .selectize-control.single.plugin-remove_button .selectize-input .item > img,
+ form .selectize-control.multi .selectize-input .item > img {
+ max-height: 20px !important;
+ max-width: inherit !important; }
+
+form .selectize-control.single .selectize-input:after {
+ right: 27px; }
+
+form .selectize-control.single .selectize-input.dropdown-active:after {
+ content: '\f077'; }
+
+form .x-small {
+ max-width: 5rem !important; }
+ form .x-small.form-input-addon-wrapper {
+ max-width: inherit !important; }
+ form .x-small.form-input-addon-wrapper input {
+ max-width: 5rem !important; }
+
+form .small {
+ max-width: 10rem !important; }
+ form .small.form-input-addon-wrapper {
+ max-width: inherit !important; }
+ form .small.form-input-addon-wrapper input {
+ max-width: 10rem !important; }
+
+form .medium:not(.switch-toggle), form .medium.form-input-addon-wrapper input {
+ max-width: 20rem; }
+ form .medium:not(.switch-toggle) textarea, form .medium.form-input-addon-wrapper input textarea {
+ height: 7rem; }
+ form .medium:not(.switch-toggle)[data-grav-array-type="container"], form .medium.form-input-addon-wrapper input[data-grav-array-type="container"] {
+ max-width: 100% !important; }
+ form .medium:not(.switch-toggle)[data-grav-array-type="container"] input[type=text], form .medium.form-input-addon-wrapper input[data-grav-array-type="container"] input[type=text] {
+ width: calc(70% - 110px); }
+
+form .large, form .large.form-input-addon-wrapper input {
+ max-width: 30rem !important; }
+ form .large textarea, form .large.form-input-addon-wrapper input textarea {
+ height: 10rem; }
+ form .large[data-grav-array-type="container"], form .large.form-input-addon-wrapper input[data-grav-array-type="container"] {
+ max-width: 100% !important; }
+ form .large[data-grav-array-type="container"] input[type=text], form .large.form-input-addon-wrapper input[data-grav-array-type="container"] input[type=text] {
+ width: calc(100% - 110px); }
+
+form select {
+ width: 100%;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ padding: 5px 30px 5px 10px;
+ cursor: pointer;
+ margin: 0; }
+
+form input[type=text],
+form input[type=password],
+form input[type=email],
+form input[type=date],
+form input[type=tel],
+form input[type=time],
+form input[type=week],
+form input[type=month],
+form input[type=number],
+form input[type=color],
+form input[type=url] {
+ width: 100%; }
+
+form textarea {
+ width: 100%; }
+
+form .form-frontmatter-wrapper {
+ border-radius: 4px; }
+
+form .switch-toggle label {
+ cursor: pointer; }
+
+form .switch-toggle a, form .switch-toggle label {
+ outline: none !important; }
+
+form .dynfields input[type=text], form [data-grav-field="array"] input[type=text], form [data-grav-field="multilevel"] input[type=text] {
+ width: 40%;
+ float: left;
+ margin: 0 5px 5px 0; }
+
+form .dynfields .form-row, form [data-grav-field="array"] .form-row, form [data-grav-field="multilevel"] .form-row {
+ display: inline-block;
+ width: 100%;
+ margin-right: 0;
+ max-width: 100% !important; }
+ form .dynfields .form-row span, form [data-grav-field="array"] .form-row span, form [data-grav-field="multilevel"] .form-row span {
+ padding: 0.5rem;
+ display: inline-block;
+ line-height: 1.5;
+ cursor: pointer; }
+ form .dynfields .form-row span[data-grav-array-action="sort"], form [data-grav-field="array"] .form-row span[data-grav-array-action="sort"], form [data-grav-field="multilevel"] .form-row span[data-grav-array-action="sort"] {
+ float: left;
+ cursor: move; }
+ form .dynfields .form-row.array-field-value_only, form [data-grav-field="array"] .form-row.array-field-value_only, form [data-grav-field="multilevel"] .form-row.array-field-value_only {
+ width: 100%; }
+
+form [data-grav-field="multilevel"] input:disabled {
+ background-color: lightgray; }
+
+form [data-grav-array-type="container"].one-child [data-grav-array-action="sort"] {
+ display: none; }
+
+form .button-bar {
+ margin-top: 1rem;
+ padding: 1.2rem 3rem;
+ width: 100%;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px; }
+
+form .checkboxes {
+ display: inline-block;
+ padding: 5px 0;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+ form .checkboxes label {
+ display: inline;
+ cursor: pointer;
+ position: relative;
+ padding: 0 0 0 2rem;
+ margin-right: 15px; }
+ form .checkboxes label:before {
+ content: "";
+ display: inline-block;
+ width: 1.5rem;
+ height: 1.5rem;
+ top: 50%;
+ left: 0;
+ margin-top: -0.75rem;
+ margin-right: 10px;
+ position: absolute;
+ border-radius: 4px; }
+ form .checkboxes input[type=checkbox] {
+ display: none; }
+ form .checkboxes input[type=checkbox]:checked + label:before {
+ content: "\f00c";
+ font-family: "FontAwesome", sans-serif;
+ font-size: 1.2rem;
+ line-height: 1;
+ text-align: center; }
+ form .checkboxes.toggleable label {
+ margin-right: 0; }
+
+.form-display-wrapper p {
+ padding-left: 0;
+ padding-right: 0; }
+ .form-display-wrapper p:first-child {
+ margin-top: 0; }
+
+div.frontmatter {
+ margin-bottom: 3rem; }
+
+[data-grav-field="parents"] .form-input-wrapper {
+ cursor: pointer; }
+ [data-grav-field="parents"] .form-input-wrapper i {
+ margin-right: .25rem; }
+
+[data-remodal-id].parents-container form {
+ overflow: hidden; }
+
+[data-remodal-id].parents-container form > h1 {
+ margin-bottom: 0;
+ border-bottom: 1px solid #eee; }
+
+[data-remodal-id].parents-container form > .button-bar {
+ margin-top: 0; }
+
+[data-remodal-id].parents-container .fjs-list {
+ overflow: auto;
+ overflow-y: scroll;
+ max-height: 400px;
+ min-height: 100%; }
+
+[data-remodal-id].parents-container .fjs-item {
+ margin-left: 0;
+ list-style-type: none;
+ text-align: left; }
+
+[data-remodal-id].parents-container .parents-content:empty {
+ display: none; }
+
+textarea.frontmatter {
+ height: 130px !important; }
+ textarea.frontmatter + .CodeMirror {
+ height: 130px; }
+
+[data-grav-field="parents"] .form-input-wrapper {
+ cursor: pointer; }
+ [data-grav-field="parents"] .form-input-wrapper i {
+ margin-right: .25rem; }
+
+[data-remodal-id].parents-container form {
+ overflow: hidden; }
+
+[data-remodal-id].parents-container form > h1 {
+ margin-bottom: 0;
+ border-bottom: 1px solid #eee; }
+
+[data-remodal-id].parents-container form > .button-bar {
+ margin-top: 0; }
+
+[data-remodal-id].parents-container .fjs-list {
+ overflow: auto;
+ overflow-y: scroll;
+ max-height: 400px;
+ min-height: 100%; }
+
+[data-remodal-id].parents-container .fjs-item {
+ margin-left: 0;
+ list-style-type: none;
+ text-align: left; }
+
+[data-remodal-id].parents-container .parents-content:empty {
+ display: none; }
+
+.form-order-wrapper .notice {
+ padding: 5px; }
+
+.form-order-wrapper ul.orderable {
+ list-style: none;
+ margin: 0;
+ padding: 0; }
+ .form-order-wrapper ul.orderable li {
+ padding: 0.2rem 1rem;
+ border-radius: 4px;
+ margin: 3px 0;
+ position: relative; }
+ .form-order-wrapper ul.orderable li.drag-handle {
+ cursor: move; }
+ .form-order-wrapper ul.orderable li.drag-handle::after {
+ content: '\f0c9';
+ font-family: FontAwesome;
+ position: absolute;
+ right: 10px; }
+ .form-order-wrapper ul.orderable li i {
+ font-size: 0.8rem; }
+
+.form-list-wrapper ul[data-collection-holder] {
+ list-style: none;
+ margin: 0;
+ padding: 0; }
+ .form-list-wrapper ul[data-collection-holder] > li {
+ padding: 1rem;
+ border-radius: 4px;
+ margin: 3px 0;
+ position: relative; }
+ .form-list-wrapper ul[data-collection-holder] > li .item-actions {
+ position: absolute;
+ right: 10px;
+ top: 4px; }
+ .form-list-wrapper ul[data-collection-holder] > li .item-actions .fa {
+ cursor: pointer; }
+ .form-list-wrapper ul[data-collection-holder] > li.collection-collapsed {
+ height: 70px;
+ overflow: hidden;
+ -webkit-transform: translateZ(0);
+ -moz-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ -o-transform: translateZ(0);
+ transform: translateZ(0); }
+ @media only all and (max-width: 47.938em) {
+ .form-list-wrapper ul[data-collection-holder] > li.collection-collapsed {
+ height: 120px; } }
+ .form-list-wrapper ul[data-collection-holder] > li.collection-collapsed > .form-field ~ .form-field {
+ display: none; }
+ .form-list-wrapper ul[data-collection-holder][data-collection-nosort] > li {
+ cursor: default; }
+
+.form-list-wrapper .collection-actions {
+ text-align: right; }
+
+.form-list-wrapper .collection-sort {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 32px;
+ bottom: 0;
+ cursor: move; }
+ @media only all and (max-width: 47.938em) {
+ .form-list-wrapper .collection-sort {
+ width: 20px; }
+ .form-list-wrapper .collection-sort .fa {
+ font-size: 0.8rem; } }
+ .form-list-wrapper .collection-sort .fa {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%); }
+
+.form-list-wrapper [data-collection-nosort] .collection-sort {
+ display: none; }
+
+.form-label.block {
+ position: relative; }
+ .form-label.block:hover {
+ z-index: 2; }
+ .form-label.block label {
+ z-index: 2; }
+
+#admin-main .admin-block h2 {
+ font-size: 1.25rem;
+ margin: 0 0 .5rem;
+ letter-spacing: normal; }
+
+.form-fieldset {
+ margin: 1rem 1.5rem; }
+
+.form-fieldset--label label {
+ display: table;
+ font-size: 1.25rem;
+ padding: .5rem 1rem;
+ width: 100%; }
+
+.form-fieldset--label h2 {
+ margin: 0 !important; }
+
+.form-fieldset--label .actions {
+ font-size: initial;
+ display: table-cell;
+ text-align: right;
+ vertical-align: middle; }
+
+.form-fieldset--label + .form-data {
+ margin-top: 1rem;
+ padding: 0; }
+
+.form-fieldset--cursor {
+ cursor: pointer; }
+
+.form-fieldset--info {
+ font-size: small; }
+
+.form-fieldset > input:checked ~ .form-data,
+.form-fieldset--collapsible .open,
+.form-fieldset input:checked ~ .form-label .form-fieldset--collapsible .close {
+ display: block; }
+
+.form-fieldset > .form-data,
+.form-fieldset--collapsible .close,
+.form-fieldset input:checked ~ .form-label .form-fieldset--collapsible .open {
+ display: none; }
+
+.filepicker-field-image {
+ width: 30px;
+ vertical-align: middle;
+ margin-right: 5px; }
+
+.filepicker-field-name {
+ vertical-align: middle; }
+
+.permissions-container .permission-value {
+ width: 50%;
+ float: left;
+ margin: 0 5px 5px 0;
+ height: 39px; }
+
+.permissions-container .switch-toggle {
+ line-height: 37px;
+ margin: 0 5px 5px 0; }
+
+.permissions-container .crudp-container {
+ display: flex; }
+ .permissions-container .crudp-container .checkboxes.toggleable {
+ display: block; }
+ .permissions-container .crudp-container .checkboxes.toggleable label {
+ display: inline-flex;
+ padding: inherit;
+ padding-left: 1.5rem;
+ padding-right: 0.5rem;
+ font-weight: bold;
+ border-top-width: 1px;
+ border-bottom-width: 1px;
+ border-right-width: 1px;
+ border-left-width: 0;
+ border-style: solid; }
+ .permissions-container .crudp-container .checkboxes.toggleable label:before {
+ border: none;
+ background: none; }
+ .permissions-container .crudp-container .checkboxes.toggleable input[type=checkbox] + label:before {
+ content: "\f023";
+ font-family: "FontAwesome";
+ font-size: 0.8rem;
+ line-height: 1.8;
+ text-align: center; }
+ .permissions-container .crudp-container .checkboxes.toggleable[data-_check-status="1"] input[type=checkbox] + label:before {
+ content: "\f00c";
+ font-family: "FontAwesome"; }
+ .permissions-container .crudp-container .checkboxes.toggleable[data-_check-status="2"] input[type=checkbox] + label:before {
+ content: "\f05e"; }
+ .permissions-container .crudp-container > div:first-child .checkboxes.toggleable label {
+ border-left-width: 1px;
+ border-radius: 4px 0 0 4px; }
+ .permissions-container .crudp-container > div:last-of-type .checkboxes.toggleable label {
+ border-right-width: 1px;
+ border-radius: 0 4px 4px 0; }
+
+[data-grav-field="cron"] {
+ display: flex;
+ align-items: center; }
+
+.cron-selector input {
+ font-family: "Bitstream Vera Sans Mono", Consolas, Courier, monospace !important;
+ font-weight: bold !important; }
+
+.cron-install {
+ margin: 1rem;
+ padding: 0;
+ border-radius: 4px; }
+ form .cron-install pre {
+ padding: 1rem;
+ margin: 0 1.5rem;
+ line-height: 1; }
+ .cron-install .setup-status {
+ font-weight: bold; }
+
+.cron-status, .backups-history {
+ margin-bottom: 4rem; }
+ .cron-status .cron-at code, .backups-history .cron-at code {
+ font-size: 120%;
+ padding: 2px 10px;
+ border-radius: 2px; }
+ .cron-status .badge, .cron-status .sidebar-open #admin-sidebar #admin-menu li .badges .updates, .sidebar-open #admin-sidebar #admin-menu li .badges .cron-status .updates, .cron-status .gpm .gpm-testing, .gpm .cron-status .gpm-testing, .backups-history .badge, .backups-history .sidebar-open #admin-sidebar #admin-menu li .badges .updates, .sidebar-open #admin-sidebar #admin-menu li .badges .backups-history .updates, .backups-history .gpm .gpm-testing, .gpm .backups-history .gpm-testing {
+ white-space: nowrap; }
+ .cron-status tr.deleting, .backups-history tr.deleting {
+ background: #efefef;
+ color: #bbb;
+ text-shadow: 0 1px white; }
+ .cron-status tr.deleting button, .cron-status tr.deleting .button, .backups-history tr.deleting button, .backups-history tr.deleting .button {
+ background: #777;
+ pointer-events: none; }
+
+form .cron-job-list li, form .backups-list li {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap; }
+
+form .cron-job-list .form-field.grid, form .backups-list .form-field.grid {
+ width: calc(50% - 5px); }
+ @media only all and (max-width: 47.938em) {
+ form .cron-job-list .form-field.grid, form .backups-list .form-field.grid {
+ width: 100%; } }
+
+table,
+tbody,
+thead {
+ display: inline-block;
+ width: 100%; }
+
+.gpm-details {
+ width: 100%;
+ -webkit-box-flex: auto;
+ -moz-box-flex: auto;
+ box-flex: auto;
+ -webkit-flex: auto;
+ -moz-flex: auto;
+ -ms-flex: auto;
+ flex: auto; }
+
+td {
+ border: 0; }
+
+tr {
+ -webkit-transition: all 0.2s ease;
+ -moz-transition: all 0.2s ease;
+ transition: all 0.2s ease;
+ display: -webkit-box;
+ display: -moz-box;
+ display: box;
+ display: -webkit-flex;
+ display: -moz-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-lines: multiple;
+ -moz-box-lines: multiple;
+ box-lines: multiple;
+ -webkit-flex-wrap: wrap;
+ -moz-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-align: center;
+ -moz-box-align: center;
+ box-align: center;
+ -webkit-align-items: center;
+ -moz-align-items: center;
+ -ms-align-items: center;
+ -o-align-items: center;
+ align-items: center;
+ -ms-flex-align: center; }
+ tr th, tr td {
+ display: block;
+ -webkit-box-flex: 1;
+ -moz-box-flex: 1;
+ box-flex: 1;
+ -webkit-flex: 1;
+ -moz-flex: 1;
+ -ms-flex: 1;
+ flex: 1; }
+ tr th.shrink, tr td.shrink {
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ -webkit-flex: 0;
+ -moz-flex: 0;
+ -ms-flex: 0;
+ flex: 0; }
+ tr th.double, tr td.double {
+ -webkit-box-flex: 2;
+ -moz-box-flex: 2;
+ box-flex: 2;
+ -webkit-flex: 2;
+ -moz-flex: 2;
+ -ms-flex: 2;
+ flex: 2; }
+ tr th.triple, tr td.triple {
+ -webkit-box-flex: 3;
+ -moz-box-flex: 3;
+ box-flex: 3;
+ -webkit-flex: 3;
+ -moz-flex: 3;
+ -ms-flex: 3;
+ flex: 3; }
+ tr th.quadruple, tr td.quadruple {
+ -webkit-box-flex: 4;
+ -moz-box-flex: 4;
+ box-flex: 4;
+ -webkit-flex: 4;
+ -moz-flex: 4;
+ -ms-flex: 4;
+ flex: 4; }
+ tr th.quintuple, tr td.quintuple {
+ -webkit-box-flex: 5;
+ -moz-box-flex: 5;
+ box-flex: 5;
+ -webkit-flex: 5;
+ -moz-flex: 5;
+ -ms-flex: 5;
+ flex: 5; }
+ tr th.sextuple, tr td.sextuple {
+ -webkit-box-flex: 6;
+ -moz-box-flex: 6;
+ box-flex: 6;
+ -webkit-flex: 6;
+ -moz-flex: 6;
+ -ms-flex: 6;
+ flex: 6; }
+ tr th.septuple, tr td.septuple {
+ -webkit-box-flex: 7;
+ -moz-box-flex: 7;
+ box-flex: 7;
+ -webkit-flex: 7;
+ -moz-flex: 7;
+ -ms-flex: 7;
+ flex: 7; }
+ tr th.octuple, tr td.octuple {
+ -webkit-box-flex: 8;
+ -moz-box-flex: 8;
+ box-flex: 8;
+ -webkit-flex: 8;
+ -moz-flex: 8;
+ -ms-flex: 8;
+ flex: 8; }
+ tr th.nontuple, tr td.nontuple {
+ -webkit-box-flex: 9;
+ -moz-box-flex: 9;
+ box-flex: 9;
+ -webkit-flex: 9;
+ -moz-flex: 9;
+ -ms-flex: 9;
+ flex: 9; }
+ tr th.dectuple, tr td.dectuple {
+ -webkit-box-flex: 10;
+ -moz-box-flex: 10;
+ box-flex: 10;
+ -webkit-flex: 10;
+ -moz-flex: 10;
+ -ms-flex: 10;
+ flex: 10; }
+ tr th:first-child, tr td:first-child {
+ padding-left: 1.5rem; }
+ @media only all and (max-width: 47.938em) {
+ tr th:first-child, tr td:first-child {
+ padding-left: 1rem; } }
+ tr th:last-child, tr td:last-child {
+ padding-right: 1.5rem; }
+ @media only all and (max-width: 47.938em) {
+ tr th:last-child, tr td:last-child {
+ padding-right: 1rem; } }
+ tr th.left, tr td.left {
+ text-align: left; }
+ tr th.center, tr td.center {
+ text-align: center; }
+ tr th.right, tr td.right {
+ text-align: right; }
+ tr th.right.pad, tr td.right.pad {
+ padding-right: 1.5rem; }
+ tr th.right.pad .form-data, tr td.right.pad .form-data {
+ padding-right: 0; }
+ tr th.left.pad, tr td.left.pad {
+ padding-left: 1.5rem; }
+ tr th.ellipsis, tr td.ellipsis {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis; }
+ tr th.ellipsis.rtl, tr td.ellipsis.rtl {
+ text-align: left; }
+ tr th.rtl, tr td.rtl {
+ direction: rtl; }
+ tr th {
+ font-weight: bold; }
+ tr td.gpm-actions {
+ line-height: 1;
+ text-align: right;
+ position: relative;
+ padding-right: 2.5rem;
+ min-height: 38px; }
+ tr td.gpm-actions .gpm-details-expand {
+ position: absolute;
+ top: 12px;
+ right: 12px; }
+ tr td.gpm-details {
+ margin: 0;
+ padding: 0; }
+ @media only all and (max-width: 47.938em) {
+ tr td.gpm-details {
+ word-wrap: break-word; } }
+ tr td.gpm-details > .table-wrapper {
+ display: none; }
+ tr td.gpm-details > .table-wrapper td {
+ border-bottom: 0; }
+ tr td.gpm-details tbody {
+ width: 100%; }
+ tr:last-child td {
+ border-bottom: 0; }
+
+table.noflex {
+ display: table;
+ table-layout: auto; }
+ table.noflex thead {
+ display: table-header-group; }
+ table.noflex tbody {
+ display: table-row-group; }
+ table.noflex tr {
+ display: table-row; }
+ table.noflex tr td, table.noflex tr th {
+ flex: none;
+ display: table-cell; }
+
+.button-group {
+ position: relative;
+ display: inline-block;
+ vertical-align: top; }
+ .button-group > .button:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-top-right-radius: 0 !important;
+ border-bottom-right-radius: 0 !important; }
+ .button-group > .button:first-child {
+ margin-left: 0 !important; }
+ .button-group > .button + .dropdown-toggle {
+ text-align: center;
+ padding-right: 8px;
+ padding-left: 8px; }
+ .button-group > .button + .dropdown-toggle i {
+ margin: 0; }
+ .button-group > .button:last-child:not(:first-child), .button-group > .dropdown-toggle:not(:first-child) {
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important; }
+ .button-group .button + .button, .button-group .button + .button-group, .button-group .button-group + .button, .button-group .button-group + .button-group {
+ margin-left: -3px; }
+ .button-group:last-child .dropdown-menu {
+ left: inherit;
+ right: 0; }
+ .button-group .dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 150px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ font-size: 14px;
+ text-align: left;
+ list-style: none;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border-radius: 4px; }
+ .button-group .dropdown-menu .button {
+ margin-right: 0 !important; }
+ .button-group .dropdown-menu.language-switcher {
+ min-width: 50px; }
+ .button-group .dropdown-menu.lang-switcher {
+ min-width: 150px;
+ left: inherit;
+ right: 0; }
+ .button-group .dropdown-menu.lang-switcher button {
+ width: 100%; }
+ .button-group .dropdown-menu .divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden; }
+ .button-group .dropdown-menu li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: 400;
+ line-height: 1.42857143; }
+ .button-group .dropdown-menu li > a:focus, .button-group .dropdown-menu li > a:hover {
+ text-decoration: none; }
+
+.open > .dropdown-menu {
+ display: block; }
+
+.dropdown-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 990; }
+
+#admin-main .admin-block a.gumroad-button {
+ padding: 0.5rem 1rem !important;
+ font-size: inherit !important;
+ font-weight: 400 !important;
+ line-height: inherit !important;
+ font-family: inherit !important;
+ border-radius: 4px !important;
+ box-shadow: inherit !important; }
+ #admin-main .admin-block a.gumroad-button .gumroad-button-logo {
+ display: none !important;
+ background-image: none !important; }
+
+#error {
+ text-align: center;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 100%;
+ padding-bottom: 6rem; }
+ #error h1 {
+ font-size: 4.9rem; }
+ #error p {
+ margin: 1rem 0; }
+
+#admin-login {
+ max-width: 24rem;
+ margin: 0 auto; }
+ #admin-login.wide {
+ max-width: 50rem; }
+ #admin-login.wide h1 {
+ height: 100px; }
+ #admin-login.wide h1.custom-logo img {
+ height: 80px; }
+ #admin-login.wide form > .padding {
+ padding: 3rem 2rem 8rem 2rem; }
+ #admin-login.wide form > .padding > div {
+ width: 49%;
+ display: inline-block; }
+ @media only all and (max-width: 47.938em) {
+ #admin-login.wide form > .padding > div {
+ width: 100%;
+ margin-right: 0; } }
+ #admin-login.wide form > .padding .form-field {
+ padding: 0 1rem; }
+ #admin-login.wide form label {
+ padding: 0; }
+ #admin-login.wide form input {
+ margin-bottom: 1rem;
+ text-align: left; }
+ #admin-login.wide form input::-webkit-input-placeholder {
+ font-size: 1rem;
+ line-height: 2rem; }
+ #admin-login.wide form input::-moz-placeholder {
+ font-size: 1rem;
+ line-height: 2rem; }
+ #admin-login.wide form input:-moz-placeholder {
+ font-size: 1rem;
+ line-height: 2rem; }
+ #admin-login.wide form input:-ms-input-placeholder {
+ font-size: 1rem;
+ line-height: 2rem; }
+ #admin-login.wide .grid {
+ display: block; }
+ #admin-login.wide .form-label, #admin-login.wide .form-data {
+ display: block;
+ width: 100%;
+ -webkit-box-flex: 1;
+ -moz-box-flex: 1;
+ box-flex: 1;
+ -webkit-flex: 1;
+ -moz-flex: 1;
+ -ms-flex: 1;
+ flex: 1; }
+ #admin-login .form-field {
+ padding-left: 0;
+ margin-bottom: 0; }
+ #admin-login .form-label {
+ display: none; }
+ #admin-login .form-data {
+ padding-right: 0; }
+ #admin-login .wrapper-spacer {
+ width: 100% !important;
+ display: block !important;
+ padding: 0 1rem; }
+ #admin-login .wrapper-spacer h3 {
+ padding-left: 1rem; }
+ #admin-login .instructions {
+ display: block;
+ padding: 2rem 3rem 0;
+ margin: 0;
+ font-size: 1.3rem; }
+ #admin-login .instructions p {
+ margin: 0; }
+ #admin-login h1 {
+ font-size: 0;
+ color: transparent;
+ height: 216px;
+ margin: 0;
+ overflow: hidden;
+ display: flex;
+ align-items: center;
+ justify-content: center; }
+ #admin-login h1.text-logo {
+ text-align: center;
+ font-size: 4rem; }
+ #admin-login h1.custom-logo img {
+ max-height: 160px; }
+ #admin-login h1.default-logo svg {
+ height: 320px; }
+ #admin-login h5 {
+ margin-top: 0;
+ text-align: center; }
+ #admin-login form {
+ position: relative; }
+ #admin-login form .padding {
+ padding: 3rem 3rem 6rem 3rem; }
+ #admin-login form input {
+ margin-bottom: 2rem;
+ font-size: 1.4rem;
+ line-height: 1.5;
+ text-align: center;
+ font-weight: 300;
+ -webkit-font-smoothing: auto; }
+ #admin-login form .form-actions {
+ display: block !important;
+ width: 100% !important;
+ text-align: center;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ padding: 1.5rem 0; }
+ #admin-login form .form-actions .button {
+ margin-bottom: 2px; }
+ #admin-login form .form-actions button:first-child {
+ margin-right: 1rem; }
+ #admin-login .alert {
+ text-align: center;
+ padding: 1rem 3rem; }
+
+.twofa-secret-code {
+ font-weight: bold; }
+
+.twofa-wrapper {
+ margin-top: 5px; }
+
+.twofa-secret {
+ position: absolute;
+ opacity: 0;
+ visibility: hidden;
+ transition: opacity 600ms, visibility 600ms; }
+ .twofa-secret.show {
+ position: static;
+ visibility: visible;
+ opacity: 1; }
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-sidebar {
+ float: left;
+ visibility: visible;
+ opacity: 1;
+ width: 4.2rem; }
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-logo h3 {
+ font-size: 0; }
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-logo h3:first-letter {
+ font-size: 2.5rem; }
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar .custom-logo {
+ margin-right: 0;
+ padding-right: 15px; }
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar .custom-logo img {
+ padding: 0 5px; }
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #grav-logo-small {
+ display: inline-block; }
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #grav-logo-large {
+ display: none; }
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar .front-end {
+ display: none; }
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-user-details {
+ padding: 15px 0 15px 10px;
+ text-align: left; }
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar .admin-user-names {
+ display: none; }
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-menu em {
+ display: none; }
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-menu li .badges .updates {
+ border-radius: 100%;
+ position: absolute;
+ top: 4px;
+ right: 10px;
+ font-size: 9px;
+ line-height: 12px;
+ padding: 1px 3px;
+ min-width: 15px; }
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-menu li .badges .count {
+ display: none; }
+ @media only all and (min-width: 74.938em) {
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #open-handle .fa-angle-right:before {
+ content: "\f105"; } }
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-main {
+ margin-left: 4.2rem; }
+
+.sidebar-open #admin-sidebar {
+ z-index: 10001;
+ float: left;
+ visibility: visible;
+ opacity: 1;
+ width: 240px; }
+ .sidebar-open #admin-sidebar h3 {
+ font-size: 1.2rem; }
+ .sidebar-open #admin-sidebar h3:first-letter {
+ font-size: 1.2rem; }
+ .sidebar-open #admin-sidebar #grav-logo-small {
+ display: none; }
+ .sidebar-open #admin-sidebar #grav-logo-large {
+ display: inline-block; }
+ .sidebar-open #admin-sidebar #admin-user-details {
+ padding: 15px 10px;
+ text-align: left; }
+ .sidebar-open #admin-sidebar .admin-user-names {
+ display: block; }
+ .sidebar-open #admin-sidebar .front-end {
+ display: inline-block; }
+ .sidebar-open #admin-sidebar #admin-menu em {
+ display: inline; }
+ .sidebar-open #admin-sidebar #admin-menu li .badges .updates {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ position: relative;
+ top: auto;
+ right: auto; }
+ .sidebar-open #admin-sidebar #admin-menu li .badges .count {
+ display: inline-block; }
+ @media only all and (min-width: 47.938em) and (max-width: 74.938em) {
+ .sidebar-open #admin-sidebar #open-handle .fa-angle-right:before {
+ content: "\f104"; } }
+
+#admin-sidebar {
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ width: 100%;
+ max-height: 100vh;
+ opacity: 0; }
+ #admin-sidebar #open-handle {
+ display: block;
+ position: absolute;
+ cursor: pointer;
+ right: 0;
+ top: 0;
+ width: 15px;
+ height: 4.2rem;
+ text-align: center;
+ line-height: 4.2rem;
+ font-size: 12px;
+ border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px; }
+ @media only all and (min-width: 74.938em) {
+ #admin-sidebar #open-handle .fa-angle-right:before {
+ content: "\f104"; } }
+ #admin-sidebar.sidebar-is-visible {
+ opacity: 1;
+ visibility: visible; }
+ @media only all and (max-width: 47.938em) {
+ #admin-sidebar {
+ z-index: 5; } }
+ @media only all and (min-width: 47.938em) {
+ #admin-sidebar {
+ float: left;
+ visibility: visible;
+ opacity: 1;
+ width: 4.2rem; } }
+ @media only all and (min-width: 74.938em) {
+ #admin-sidebar {
+ float: left;
+ visibility: visible;
+ opacity: 1;
+ width: 240px; } }
+
+#admin-logo {
+ height: 4.2rem;
+ display: flex;
+ align-items: center;
+ justify-content: center; }
+ #admin-logo.nav-hover .admin-logo {
+ margin-right: 0; }
+ #admin-logo .admin-logo {
+ margin-right: -10px;
+ display: flex;
+ align-items: center; }
+ @media only all and (min-width: 47.938em) {
+ #admin-logo .admin-logo {
+ margin-right: 0; }
+ #admin-logo .admin-logo.custom-logo {
+ padding-right: 15px; }
+ #admin-logo .admin-logo.custom-logo img {
+ padding: 0 5px; } }
+ #admin-logo .admin-logo a:not(.front-end) {
+ display: inherit; }
+ #admin-logo .admin-logo.custom-logo img {
+ max-height: 30px; }
+ #admin-logo .front-end {
+ margin-left: 15px;
+ opacity: 0.6; }
+ @media only all and (max-width: 47.938em) {
+ #admin-logo .front-end {
+ display: none; } }
+ @media only all and (min-width: 47.938em) {
+ #admin-logo .front-end {
+ display: none; } }
+ @media only all and (min-width: 74.938em) {
+ #admin-logo .front-end {
+ display: inline-block; } }
+ #admin-logo #grav-logo-small {
+ height: 30px;
+ display: none; }
+ @media only all and (min-width: 47.938em) {
+ #admin-logo #grav-logo-small {
+ display: inline-block; } }
+ @media only all and (min-width: 74.938em) {
+ #admin-logo #grav-logo-small {
+ display: none; } }
+ #admin-logo #grav-logo-large {
+ height: 30px; }
+ @media only all and (min-width: 47.938em) {
+ #admin-logo #grav-logo-large {
+ display: none; } }
+ @media only all and (min-width: 74.938em) {
+ #admin-logo #grav-logo-large {
+ display: inline-block; } }
+ #admin-logo h3 {
+ font-size: 1.5rem;
+ margin: 0; }
+ @media only all and (min-width: 47.938em) {
+ #admin-logo h3 {
+ font-size: 0; }
+ #admin-logo h3:first-letter {
+ font-size: 2.5rem; } }
+ @media only all and (min-width: 74.938em) {
+ #admin-logo h3 {
+ font-size: 1.5rem; }
+ #admin-logo h3:first-letter {
+ font-size: 1.5rem; } }
+ #admin-logo h3 i {
+ font-size: 1rem;
+ vertical-align: middle;
+ margin-top: -1px; }
+
+.block-userinfo img {
+ width: 200px;
+ height: 200px;
+ object-fit: cover; }
+
+.block-userinfo ~ .block-file {
+ margin-top: -5rem !important; }
+
+#offline-status {
+ padding: .2rem 1rem;
+ text-align: center;
+ display: none; }
+ #offline-status .fa-plane {
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ -o-transform: rotate(45deg);
+ transform: rotate(45deg); }
+
+#admin-user-details img {
+ width: 47px;
+ height: 47px;
+ object-fit: cover; }
+
+#admin-user-details, .admin-user-details {
+ padding: 15px 10px;
+ min-height: 80px;
+ overflow: hidden;
+ text-align: left; }
+ @media only all and (min-width: 47.938em) and (max-width: 74.938em) {
+ #admin-user-details, .admin-user-details {
+ padding: 1rem 10px;
+ text-align: center; } }
+ #admin-user-details img, .admin-user-details img {
+ -webkit-transition: all 0.5s ease;
+ -moz-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+ border-radius: 100%;
+ float: left; }
+ #admin-user-details .admin-user-names, .admin-user-details .admin-user-names {
+ margin-left: 60px;
+ margin-top: 5px;
+ display: block; }
+ @media only all and (min-width: 47.938em) and (max-width: 74.938em) {
+ #admin-user-details .admin-user-names, .admin-user-details .admin-user-names {
+ display: none; } }
+ #admin-user-details .admin-user-names h4, #admin-user-details .admin-user-names h5, .admin-user-details .admin-user-names h4, .admin-user-details .admin-user-names h5 {
+ margin: 0;
+ font-size: 1rem;
+ line-height: 1.3; }
+ #admin-user-details .admin-user-names .badge, #admin-user-details .admin-user-names .sidebar-open #admin-sidebar #admin-menu li .badges .updates, .sidebar-open #admin-sidebar #admin-menu li .badges #admin-user-details .admin-user-names .updates, #admin-user-details .admin-user-names .gpm .gpm-testing, .gpm #admin-user-details .admin-user-names .gpm-testing, .admin-user-details .admin-user-names .badge, .admin-user-details .admin-user-names .sidebar-open #admin-sidebar #admin-menu li .badges .updates, .sidebar-open #admin-sidebar #admin-menu li .badges .admin-user-details .admin-user-names .updates, .admin-user-details .admin-user-names .gpm .gpm-testing, .gpm .admin-user-details .admin-user-names .gpm-testing {
+ font-size: 0.8rem; }
+ #admin-user-details .admin-user-names h5, .admin-user-details .admin-user-names h5 {
+ opacity: 0.7;
+ font-size: 0.9rem; }
+
+#admin-nav-quick-tray {
+ margin: 0;
+ list-style: none;
+ padding-left: 26px;
+ padding-right: 10px; }
+ #admin-nav-quick-tray li {
+ cursor: pointer;
+ width: 24px;
+ margin: 3px 0 5px; }
+ #admin-nav-quick-tray i {
+ transition: all .2s ease-in-out; }
+ #admin-nav-quick-tray i:hover {
+ transform: scale(1.2); }
+
+.content-padding #messages.default-box-shadow {
+ margin-bottom: 1.5rem; }
+ @media only all and (max-width: 47.938em) {
+ .content-padding #messages.default-box-shadow {
+ margin-bottom: 0.5rem; } }
+
+.admin-menu-wrapper {
+ height: calc(100vh - 180px); }
+ @media only all and (min-width: 47.938em) and (max-width: 74.938em) {
+ .admin-menu-wrapper {
+ height: calc(100vh - 136px); } }
+
+#admin-menu {
+ display: block;
+ margin: 0;
+ padding: 0;
+ list-style: none; }
+ #admin-menu em {
+ font-style: normal; }
+ @media only all and (min-width: 47.938em) and (max-width: 74.938em) {
+ #admin-menu em {
+ display: none; } }
+ #admin-menu li .badges {
+ float: right;
+ margin-right: 1rem; }
+ #admin-menu li .badges .badge, .sidebar-open #admin-sidebar #admin-menu li .badges .updates, #admin-menu li .badges .gpm .gpm-testing, .gpm #admin-menu li .badges .gpm-testing {
+ display: inline-block;
+ margin-right: -5px; }
+ #admin-menu li .badges .updates {
+ display: none; }
+ @media only all and (min-width: 47.938em) and (max-width: 74.938em) {
+ #admin-menu li .badges .count {
+ display: none; } }
+ #admin-menu li .badges.with-updates .count {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ #admin-menu li .badges.with-updates .updates {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ display: inline-block; }
+ @media only all and (min-width: 47.938em) and (max-width: 74.938em) {
+ #admin-menu li .badges.with-updates .updates {
+ border-radius: 100%;
+ position: absolute;
+ top: 4px;
+ right: 10px;
+ font-size: 9px;
+ line-height: 12px;
+ padding: 1px 3px;
+ min-width: 15px; } }
+ #admin-menu li a {
+ -webkit-transition: all 0.2s ease;
+ -moz-transition: all 0.2s ease;
+ transition: all 0.2s ease;
+ display: block;
+ padding-left: 25px;
+ padding-top: 0.7rem;
+ padding-bottom: 0.7rem;
+ position: relative; }
+ #admin-menu li a .fa {
+ -webkit-transition: all 0.2s ease;
+ -moz-transition: all 0.2s ease;
+ transition: all 0.2s ease;
+ margin-right: 8px; }
+ #admin-menu li.selected a {
+ padding-left: 16px; }
+
+@media only all and (min-width: 74.938em) {
+ body.sidebar-quickopen #admin-main {
+ margin-left: 4.2rem; } }
+
+@media only all and (min-width: 47.938em) {
+ #admin-main {
+ margin-left: 4.2rem; } }
+
+@media only all and (min-width: 74.938em) {
+ #admin-main {
+ margin-left: 240px; } }
+
+#admin-main .form-label label .hint:after, #admin-main .form-label label [data-hint]:after {
+ max-width: 300px;
+ min-width: 150px;
+ display: inline-table;
+ white-space: initial;
+ line-height: 1.2; }
+
+#admin-main h1 {
+ margin: 0;
+ font-size: 1.3rem;
+ text-align: left;
+ letter-spacing: -1px;
+ line-height: 1.5; }
+
+#admin-main .padding {
+ padding: 1.5rem; }
+
+#admin-main .lines-button {
+ display: none;
+ margin-left: 0.375rem; }
+ #admin-main .lines-button:focus {
+ outline: none; }
+ @media only all and (max-width: 47.938em) {
+ #admin-main .lines-button {
+ display: inline-block; } }
+
+#admin-main .button {
+ white-space: nowrap; }
+
+#admin-main .titlebar {
+ position: relative;
+ height: 4.2rem;
+ padding: 0 1.5rem;
+ z-index: 4;
+ box-shadow: 0px 3px 15px 0px rgba(0, 0, 0, 0.1); }
+ @media only all and (max-width: 47.938em) {
+ #admin-main .titlebar {
+ padding: 0 0.375rem 0 4rem; } }
+ #admin-main .titlebar h1 {
+ display: block;
+ white-space: nowrap;
+ overflow: hidden;
+ -ms-text-overflow: ellipsis;
+ text-overflow: ellipsis; }
+ @media only all and (max-width: 47.938em) {
+ #admin-main .titlebar h1 {
+ font-size: 18px; }
+ #admin-main .titlebar h1 i {
+ display: none; } }
+ #admin-main .titlebar .button-bar {
+ padding: 0;
+ white-space: nowrap;
+ z-index: 4; }
+ #admin-main .titlebar .preview {
+ font-size: 90%; }
+ #admin-main .titlebar .button {
+ padding: 0.5rem 0.4rem;
+ vertical-align: top;
+ margin-right: -2px; }
+ @media only all and (max-width: 47.938em) {
+ #admin-main .titlebar .button {
+ font-size: 0;
+ padding: 0.5rem 0.5rem;
+ min-height: 36px; }
+ #admin-main .titlebar .button i {
+ font-size: 20px;
+ margin-right: 0; } }
+ @media only all and (max-width: 20.875em) {
+ #admin-main .titlebar .button {
+ padding: 0.5rem 0.2rem; } }
+ #admin-main .titlebar span.button {
+ cursor: default;
+ pointer-events: none; }
+ @media only all and (max-width: 47.938em) {
+ #admin-main .titlebar .dropdown-menu .button {
+ font-size: 0.9rem; } }
+
+#admin-main .admin-block .alert {
+ margin-top: -2rem;
+ margin-bottom: 2rem; }
+
+#admin-main .alert:before {
+ font-family: FontAwesome;
+ margin-right: 5px; }
+
+#admin-main .alert.info:before {
+ content: "\f0a1"; }
+
+#admin-main .alert.warning:before {
+ content: "\f071"; }
+
+#admin-main .alert.note:before {
+ content: "\f24a"; }
+
+#admin-main .alert.grav:before {
+ font-family: FontAwesome, sans-serif;
+ content: "\f2d6";
+ vertical-align: bottom; }
+
+#admin-main .alert.grav #grav-update-button {
+ margin-top: -3px;
+ float: right; }
+
+#admin-main .grav-update {
+ padding: 0 1.5rem;
+ margin-top: -2rem;
+ margin-bottom: 1rem;
+ display: none; }
+ #admin-main .grav-update:after {
+ content: "";
+ display: table;
+ clear: both; }
+ @media only all and (max-width: 47.938em) {
+ #admin-main .grav-update {
+ padding: 0 1rem; } }
+ #admin-main .grav-update .button {
+ float: right;
+ margin-top: 0.6rem;
+ margin-left: 1rem;
+ line-height: 1.5; }
+ #admin-main .grav-update p {
+ line-height: 3rem;
+ margin: 0;
+ display: block;
+ white-space: nowrap;
+ overflow: hidden;
+ -ms-text-overflow: ellipsis;
+ text-overflow: ellipsis; }
+ #admin-main .grav-update span[class="hint--left"]::after {
+ line-height: 1.5; }
+ #admin-main .grav-update i {
+ padding-right: 0.5rem; }
+
+#admin-main .grav-update.grav + .content-wrapper {
+ height: calc(100vh - 4.2rem - 3rem); }
+
+#admin-main .content-wrapper {
+ position: relative;
+ height: calc(100vh - 4.2rem); }
+
+#admin-main .content-padding {
+ padding: 1.5rem; }
+ @media only all and (max-width: 47.938em) {
+ #admin-main .content-padding {
+ padding: 0; } }
+
+#admin-main .admin-block {
+ padding: 1rem 0; }
+ #admin-main .admin-block:empty {
+ padding: 0; }
+ #admin-main .admin-block h1 {
+ padding: 0 1.5rem 0.5rem;
+ margin: 0 0 1rem; }
+ @media only all and (max-width: 47.938em) {
+ #admin-main .admin-block h1 {
+ padding: 0 1rem 0.5rem; } }
+ #admin-main .admin-block h1.no_underline {
+ border-bottom: 0; }
+ #admin-main .admin-block .button-bar {
+ margin: 0 1.5rem; }
+ @media only all and (max-width: 47.938em) {
+ #admin-main .admin-block .button-bar {
+ margin: -1rem 0 1rem 0;
+ padding: 0 1rem;
+ text-align: center; }
+ #admin-main .admin-block .button-bar .button {
+ width: 100%; } }
+
+#admin-main .flush-bottom.button-bar {
+ margin: 1rem -1.5rem -1rem;
+ padding: 1rem;
+ float: none;
+ display: flex; }
+ @media only all and (max-width: 47.938em) {
+ #admin-main .flush-bottom.button-bar.stats-bar {
+ font-size: 90%; }
+ #admin-main .flush-bottom.button-bar.stats-bar b {
+ font-size: 1.5rem; } }
+ #admin-main .flush-bottom.button-bar .button {
+ margin: 0;
+ height: 37px; }
+ #admin-main .flush-bottom.button-bar .button.dropdown-toggle {
+ margin-left: -4px; }
+
+#admin-main .danger, #admin-main .success {
+ position: relative; }
+ #admin-main .danger.button-bar, #admin-main .success.button-bar {
+ margin: 2rem 0 -1rem;
+ height: 70px;
+ padding: 1rem;
+ float: none; }
+
+.content-padding #admin-dashboard .dashboard-item-flex:nth-of-type(2n) .dashboard-item {
+ margin-right: 0;
+ margin-left: 0.75rem; }
+
+.content-padding #admin-dashboard .dashboard-item-flex:nth-of-type(2n+1) .dashboard-item {
+ margin-left: 0;
+ margin-right: 0.75rem; }
+
+.content-padding #admin-dashboard .dashboard-item {
+ margin-bottom: 1.5rem; }
+
+#admin-dashboard {
+ display: -webkit-box;
+ display: -moz-box;
+ display: box;
+ display: -webkit-flex;
+ display: -moz-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-flow: row wrap;
+ -moz-flex-flow: row wrap;
+ flex-flow: row wrap; }
+ #admin-dashboard .dashboard-item-flex {
+ display: -webkit-box;
+ display: -moz-box;
+ display: box;
+ display: -webkit-flex;
+ display: -moz-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-flow: column nowrap;
+ -moz-flex-flow: column nowrap;
+ flex-flow: column nowrap;
+ width: 50%; }
+ @media only all and (max-width: 47.938em) {
+ #admin-dashboard .dashboard-item-flex {
+ width: 100%; }
+ #admin-dashboard .dashboard-item-flex .dashboard-item {
+ margin-right: 0px !important;
+ margin-left: 0px !important;
+ margin-bottom: 10px !important; } }
+ #admin-dashboard .dashboard-item > div:not(.widget-content) {
+ padding: 1rem 1.5rem; }
+ #admin-dashboard .dashboard-item h1 .right {
+ float: right; }
+ #admin-dashboard .dashboard-item.admin-block {
+ padding: 1rem 0; }
+ #admin-dashboard .dashboard-item.admin-block ul {
+ margin: 0 0 1rem 0;
+ padding: 0;
+ list-style: none; }
+ #admin-dashboard .dashboard-item.admin-block li {
+ margin: 0;
+ padding: 0.425rem 1.5rem 0.2rem 1.5rem; }
+ #admin-dashboard .dashboard-item.admin-block li:last-child {
+ border-bottom: 0; }
+ #admin-dashboard .chart-loader {
+ position: relative;
+ text-align: center; }
+ #admin-dashboard .chart-loader .fa {
+ display: block;
+ position: absolute;
+ width: 100%;
+ text-align: center;
+ font-size: 4rem;
+ margin-top: -2rem; }
+ #admin-dashboard .widget-content {
+ position: relative;
+ min-height: 335px;
+ padding: 0; }
+ #admin-dashboard .widget-loader {
+ position: absolute;
+ text-align: center;
+ top: 50%;
+ left: 50%;
+ width: 100%;
+ transform: translate(-50%, -50%); }
+ #admin-dashboard .widget-loader .fa {
+ font-size: 4rem; }
+ #admin-dashboard #updates p {
+ text-align: center;
+ margin: 0; }
+ #admin-dashboard #updates .updates-chart {
+ width: 50%;
+ float: left; }
+ #admin-dashboard #updates .flush-bottom.button-bar {
+ height: 70px;
+ flex-direction: row-reverse; }
+ #admin-dashboard #updates .chart-wrapper {
+ position: relative; }
+ #admin-dashboard #updates .backups-chart {
+ position: relative;
+ width: 50%;
+ float: left; }
+ #admin-dashboard #updates .ct-chart {
+ min-height: 157px; }
+ #admin-dashboard #updates .numeric {
+ display: block;
+ position: absolute;
+ width: 100%;
+ text-align: center;
+ font-size: 1.5rem;
+ line-height: 1; }
+ #admin-dashboard #updates .numeric em {
+ display: block;
+ font-style: normal;
+ font-size: 1rem; }
+ #admin-dashboard #updates .admin-update-charts {
+ min-height: 191px; }
+ #admin-dashboard #updates .admin-update-charts:after {
+ content: "";
+ display: table;
+ clear: both; }
+ #admin-dashboard #updates .button-bar > .button:not(.dropdown-toggle) {
+ margin-left: 4px;
+ height: 37px; }
+ #admin-dashboard #popularity .ct-chart {
+ min-height: 171px; }
+ #admin-dashboard #popularity .button-bar {
+ height: 100px;
+ padding: 0 1rem;
+ display: flex; }
+ #admin-dashboard .dashboard-item .admin-statistics-chart {
+ position: relative; }
+ #admin-dashboard .dashboard-item p {
+ text-align: center;
+ margin: 0; }
+ #admin-dashboard .dashboard-item .stat {
+ width: 33%;
+ text-align: center;
+ display: flex;
+ flex-direction: column;
+ justify-content: center; }
+ #admin-dashboard .dashboard-item .stat b {
+ display: block;
+ font-size: 2.5rem;
+ line-height: 1;
+ font-weight: 300; }
+ #admin-dashboard .dashboard-item .stat i {
+ display: block;
+ font-style: normal; }
+ #admin-dashboard #news-feed .date {
+ float: right;
+ z-index: 1; }
+ #admin-dashboard #news-feed li a {
+ display: block;
+ white-space: nowrap;
+ overflow: hidden;
+ -ms-text-overflow: ellipsis;
+ text-overflow: ellipsis;
+ z-index: 0; }
+ #admin-dashboard #news-feed li a:before {
+ font-family: FontAwesome;
+ margin-right: 10px;
+ content: "\f1ea"; }
+
+.no-flick, .card-item {
+ -webkit-transform: translate3d(0, 0, 0); }
+
+.card-row {
+ -webkit-box-pack: justify;
+ -moz-box-pack: justify;
+ box-pack: justify;
+ -webkit-justify-content: space-between;
+ -moz-justify-content: space-between;
+ -ms-justify-content: space-between;
+ -o-justify-content: space-between;
+ justify-content: space-between;
+ -ms-flex-pack: justify; }
+
+.card-item {
+ overflow: hidden;
+ padding: 1rem;
+ margin: 0;
+ position: relative;
+ width: 31%;
+ max-width: 21rem;
+ margin-bottom: 2rem; }
+ @media only all and (min-width: 48em) and (max-width: 59.938em) {
+ .card-item {
+ width: 48%; } }
+ @media only all and (max-width: 47.938em) {
+ .card-item {
+ width: 100%; } }
+ .card-item h4 {
+ font-size: 1.2rem;
+ line-height: 1.2; }
+
+.user-details {
+ text-align: left; }
+ .user-details img {
+ border-radius: 100%; }
+ .user-details h2 {
+ margin: 0;
+ font-size: 2.1rem !important;
+ margin: 1rem 0 0 !important;
+ line-height: 1.5; }
+ .user-details h2 span {
+ font-size: 1.2rem; }
+ .user-details h5 {
+ font-size: 1.1rem;
+ margin: 0;
+ linep-height: 1.2; }
+ .user-details .gravatar {
+ font-size: 0.9rem;
+ padding: 0; }
+ @media only all and (max-width: 47.938em) {
+ .user-details {
+ text-align: center; } }
+
+#footer {
+ text-align: center;
+ padding: 3rem 0 1rem; }
+ #footer p {
+ margin: 0; }
+
+.ct-chart .ct-series .ct-bar {
+ stroke-width: 20px; }
+
+#popularity .ct-chart {
+ margin: 0 -10px -10px; }
+ #popularity .ct-chart .ct-chart-bar {
+ padding: 4px 6px 1px 10px; }
+
+#latest .page-title, #latest .page-route {
+ overflow: auto; }
+
+#overlay {
+ position: fixed;
+ width: 25%;
+ height: 100%;
+ z-index: 999999;
+ left: 75%;
+ top: 0;
+ display: none; }
+ @media only all and (max-width: 47.938em) {
+ #overlay {
+ display: none !important; } }
+
+.gpm-item-info + #blueprints .block-tabs {
+ padding-top: 16px; }
+
+.plugins-notifications-container,
+.themes-notifications-container {
+ margin-bottom: 2rem; }
+
+.package-dependencies-container li {
+ height: 35px; }
+ .package-dependencies-container li .button {
+ height: 30px;
+ float: right;
+ margin-right: 10px;
+ line-height: 20px; }
+
+.pointer-events-disabled {
+ pointer-events: none; }
+
+.updates-checked .button-reinstall-package {
+ display: inline-block !important; }
+
+.updates-checked.has-updates .button-reinstall-package {
+ display: none !important; }
+
+.preview-wrapper .content-padding {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ left: 0; }
+
+@media only all and (max-width: 47.938em) {
+ #admin-main .config-wrapper-system .form-tabs.side-tabs > .tabs-nav {
+ display: none;
+ width: 0; }
+ #admin-main .config-wrapper-system .form-tabs.side-tabs > .tabs-content {
+ width: 100%; }
+ #admin-main .config-wrapper-system .form-tabs.side-tabs > .tabs-content .tab__content {
+ display: block; } }
+
+.logs-output form .form-data {
+ display: flex;
+ margin: 0 -0.5rem; }
+ @media only all and (max-width: 30em) {
+ .logs-output form .form-data {
+ display: block; } }
+
+.logs-output form .forms-select-wrapper {
+ display: block;
+ flex: 1;
+ margin: 0.5rem 0.5rem; }
+
+.logs-output h1 {
+ margin-top: 2rem !important; }
+
+.logs-output h3 {
+ padding: 0.5rem 1.5rem;
+ font-size: 1.1rem; }
+ @media only all and (max-width: 47.938em) {
+ .logs-output h3 {
+ padding: 0.5rem 1rem; } }
+
+.logs-output table.noflex td {
+ vertical-align: top; }
+
+.logs-output table.noflex td.date, .logs-output table.noflex td.level {
+ white-space: nowrap; }
+
+.logs-output table.noflex td.date {
+ opacity: 0.7; }
+
+.logs-output table.noflex th.level, .logs-output table.noflex td.level {
+ padding: 0.375rem 30px; }
+
+.logs-output table.noflex td.level {
+ font-weight: bold; }
+ .logs-output table.noflex td.level span.badge, .logs-output table.noflex td.level .sidebar-open #admin-sidebar #admin-menu li .badges span.updates, .sidebar-open #admin-sidebar #admin-menu li .badges .logs-output table.noflex td.level span.updates, .logs-output table.noflex td.level .gpm span.gpm-testing, .gpm .logs-output table.noflex td.level span.gpm-testing {
+ font-size: 0.7rem; }
+
+.logs-output table.noflex td.message {
+ width: 100%;
+ word-break: break-all; }
+
+.logs-output table.noflex .trace ol {
+ margin: 10px 0;
+ padding: 0;
+ font-size: 0.7rem; }
+ .logs-output table.noflex .trace ol code {
+ font-size: 0.7rem;
+ display: block;
+ white-space: pre-wrap; }
+
+.permissions-container {
+ max-width: 800px; }
+ .permissions-container .badge .icon-super, .permissions-container .sidebar-open #admin-sidebar #admin-menu li .badges .updates .icon-super, .sidebar-open #admin-sidebar #admin-menu li .badges .permissions-container .updates .icon-super, .permissions-container .gpm .gpm-testing .icon-super, .gpm .permissions-container .gpm-testing .icon-super {
+ display: block;
+ height: 20px;
+ width: 14px;
+ line-height: 1.5; }
+ .permissions-container .badge .icon-super:before, .permissions-container .sidebar-open #admin-sidebar #admin-menu li .badges .updates .icon-super:before, .sidebar-open #admin-sidebar #admin-menu li .badges .permissions-container .updates .icon-super:before, .permissions-container .gpm .gpm-testing .icon-super:before, .gpm .permissions-container .gpm-testing .icon-super:before {
+ content: url("../images/icons/crown.svg"); }
+ .permissions-container .switch-toggle input + label:before {
+ font-family: FontAwesome;
+ margin-right: 5px; }
+ .permissions-container .switch-toggle input.label0 + label:before {
+ content: "\f05e"; }
+ .permissions-container .switch-toggle input.label1 + label:before {
+ content: "\f00c"; }
+ .permissions-container fieldset {
+ margin: 0 0 1rem 0;
+ padding: 1rem;
+ border-radius: 4px; }
+ .permissions-container fieldset legend {
+ padding: 0 0.5rem;
+ margin-left: -0.5rem;
+ font-size: 120%; }
+ .permissions-container fieldset fieldset {
+ margin: 0;
+ border: 0;
+ padding: 0.5rem 0 0 2rem; }
+ .permissions-container fieldset fieldset legend {
+ padding: 0;
+ margin: 0; }
+
+.permission-container {
+ display: flex; }
+ .permission-container .permission-name {
+ flex-grow: 1;
+ position: relative;
+ overflow: hidden;
+ margin-right: 8px;
+ padding-top: 9px; }
+ .permission-container .permission-name span:not(.badge) {
+ position: relative;
+ padding-right: 5px; }
+ .permission-container .permission-name span.badge, .permission-container .permission-name .sidebar-open #admin-sidebar #admin-menu li .badges span.updates, .sidebar-open #admin-sidebar #admin-menu li .badges .permission-container .permission-name span.updates, .permission-container .permission-name .gpm span.gpm-testing, .gpm .permission-container .permission-name span.gpm-testing {
+ position: relative;
+ float: right;
+ font-size: 100%;
+ border-radius: 20px;
+ margin-right: -2px; }
+ .permission-container .permission-name:before {
+ content: "........................................................................................................................................";
+ height: 1px;
+ position: absolute;
+ right: 100%;
+ left: 0; }
+
+.reports-content .report-output table, .reports-content .report-output tbody, .reports-content .report-output thead {
+ display: table;
+ width: 100%; }
+
+.reports-content .report-output table thead tr th {
+ display: table-cell; }
+
+.reports-content .report-output table tbody tr td {
+ display: table-cell; }
+
+#pages-filters {
+ margin-bottom: 1rem;
+ margin-top: -1rem;
+ padding: 1rem; }
+ #pages-filters .button-border {
+ padding: .375rem .375rem;
+ white-space: nowrap; }
+ #pages-filters .button-border.adv-options:after {
+ content: "\f078";
+ font-family: "FontAwesome", sans-serif;
+ margin-left: 5px; }
+ #pages-filters .button-border.adv-options.open:after {
+ content: "\f077"; }
+ #pages-filters .filters-bar {
+ display: flex;
+ align-items: center; }
+ #pages-filters .filters-bar .button-border {
+ margin-left: 0.5rem; }
+ #pages-filters .filters-advanced {
+ overflow: hidden;
+ transition: max-height 0.3s ease-out;
+ height: auto;
+ max-height: 600px; }
+ #pages-filters .filters-advanced.hide {
+ max-height: 0; }
+ #pages-filters .filters-advanced .button-border {
+ display: inline-block;
+ margin-top: 0.5rem; }
+ #pages-filters .filters-advanced fieldset {
+ margin: 1rem 0 0;
+ border-radius: 4px; }
+ #pages-filters .filters-advanced fieldset legend {
+ margin-left: -0.5rem;
+ padding: 0 0.5rem; }
+ #pages-filters .filters-advanced fieldset .checkboxes {
+ margin-right: 1.5rem; }
+ #pages-filters .filters-advanced fieldset .checkboxes label {
+ padding-left: 1.7rem; }
+ #pages-filters .filters-advanced fieldset .checkboxes label:before {
+ margin-top: -0.6rem;
+ margin-right: 0;
+ width: 1.25rem;
+ height: 1.25rem; }
+
+#pages-content-wrapper {
+ display: flex;
+ flex-direction: column;
+ margin-bottom: -1rem;
+ height: calc(100vh - 190px); }
+ #pages-content-wrapper .grav-loading {
+ min-height: 600px; }
+ #pages-content-wrapper .grav-loading .grav-loader {
+ margin: 0 auto;
+ position: relative;
+ top: 230px; }
+ #pages-content-wrapper .fjs-container {
+ min-height: initial;
+ flex-grow: 1; }
+ #pages-content-wrapper .fjs-path-bar {
+ border-bottom: 0;
+ padding: 0.5rem;
+ overflow: inherit; }
+ #pages-content-wrapper .fjs-col {
+ width: 33.33333334%;
+ min-width: 300px;
+ min-height: 300px;
+ max-height: initial; }
+ #pages-content-wrapper .fjs-item {
+ max-width: 100%; }
+ #pages-content-wrapper .fjs-item > .fjs-item-wrapper {
+ display: flex;
+ justify-content: flex-start;
+ padding: 0;
+ margin: 1px 0;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ outline: 0; }
+ #pages-content-wrapper .fjs-item a {
+ padding: 7px 2px 7px 5px; }
+ #pages-content-wrapper .fjs-item a * {
+ -webkit-transition: all 0.5s ease;
+ -moz-transition: all 0.5s ease;
+ transition: all 0.5s ease; }
+ #pages-content-wrapper .fjs-item .fjs-title {
+ display: flex;
+ align-items: center;
+ flex-grow: 1;
+ max-width: 100%;
+ overflow: auto; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] {
+ /* FIXME: properly move colors to presets */ }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-toggle {
+ padding: 0;
+ background: transparent;
+ border: 0; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu {
+ top: inherit;
+ left: inherit;
+ right: inherit;
+ bottom: inherit;
+ position: fixed;
+ cursor: default;
+ padding: 0 0 0.5rem;
+ color: #212529;
+ text-align: left;
+ list-style: none;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: .25rem;
+ width: 350px; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .tags {
+ padding-top: 0; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu a {
+ cursor: pointer; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu table {
+ display: table; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu table tbody {
+ width: 100%;
+ display: inherit; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu table tr {
+ display: table-row; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu table td {
+ display: table-cell;
+ text-align: left;
+ flex: none;
+ word-break: break-all;
+ white-space: normal; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu table td:first-child {
+ padding-left: 0;
+ width: 80px; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu table td:last-child {
+ padding-right: 0;
+ width: calc(100% - 80px); }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .divider {
+ height: 0;
+ margin: .5rem 0;
+ overflow: hidden; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .action-bar {
+ border-radius: 4px 4px 0 0; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .action-bar + .divider {
+ margin-top: 0; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .action-bar a.dropdown-item:hover {
+ border-radius: 0; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .action-bar a.dropdown-item:hover:first-child {
+ border-top-left-radius: 4px; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .action-bar a.dropdown-item:hover:last-child {
+ border-top-right-radius: 4px; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .dropdown-item {
+ display: block;
+ width: 100%;
+ padding: 0.5rem;
+ clear: both;
+ font-weight: 400;
+ text-align: inherit;
+ white-space: nowrap;
+ border: 0;
+ border-radius: 4px; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .dropdown-item:hover {
+ text-decoration: none; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .fa {
+ display: inline-block;
+ width: 16px;
+ height: inherit;
+ text-align: left; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .action-bar {
+ display: flex; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .action-bar a, #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .action-bar i {
+ text-align: center; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .details, #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .tags, #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .langs {
+ padding: 0 .5rem 0; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .infos {
+ margin: 0 .15rem; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .infos ul {
+ margin: 0;
+ padding: 0; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .langs .lang {
+ display: inline-block; }
+ #pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .langs .lang .fa {
+ font-size: 0.6rem;
+ padding: 0 0.15rem; }
+ #pages-content-wrapper .fjs-item .fjs-title > a {
+ flex-grow: 1;
+ overflow: hidden; }
+ #pages-content-wrapper .fjs-item .button-group .fa {
+ font-size: 0.9rem;
+ width: 28px;
+ height: 28px;
+ display: flex;
+ justify-content: center;
+ align-items: center; }
+ #pages-content-wrapper .fjs-item .button-group .fa.disabled {
+ opacity: 0; }
+ #pages-content-wrapper .fjs-item .fjs-icon {
+ position: relative;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ overflow: visible !important;
+ width: 34px;
+ height: 34px;
+ min-width: 34px;
+ border-radius: 50%;
+ margin-right: 5px;
+ margin-left: 5px; }
+ #pages-content-wrapper .fjs-item .fjs-icon:before {
+ position: relative;
+ content: url("../images/icons/book-edit.svg");
+ flex: 1;
+ max-width: 20px;
+ margin-right: 0px;
+ margin-bottom: -2px; }
+ #pages-content-wrapper .fjs-item .fjs-icon.modular:before {
+ content: url("../images/icons/module-four.svg"); }
+ #pages-content-wrapper .fjs-item .fjs-icon.home:before {
+ content: url("../images/icons/house.svg"); }
+ #pages-content-wrapper .fjs-item .fjs-icon.lock:before {
+ content: url("../images/icons/touchid-lock.svg"); }
+ #pages-content-wrapper .fjs-item .fjs-icon.badge-published:after, #pages-content-wrapper .fjs-item .fjs-icon.badge-unpublished:after {
+ content: ''; }
+ #pages-content-wrapper .fjs-item .fjs-icon:after, #pages-content-wrapper .fjs-item .fjs-icon .badge-clock {
+ display: block;
+ position: absolute;
+ top: -2px;
+ right: -2px;
+ height: 12px;
+ width: 12px;
+ border-radius: 50%; }
+ #pages-content-wrapper .fjs-item .fjs-icon .badge-clock {
+ border-radius: 0;
+ content: url("../images/icons/clock-hands.svg");
+ z-index: 2; }
+ #pages-content-wrapper .fjs-item .fjs-icon .badge-lang {
+ position: absolute;
+ bottom: -4px;
+ bottom: -4px;
+ left: 50%;
+ transform: translateX(-50%);
+ line-height: 1.2;
+ font-weight: 600;
+ font-size: 0.6rem;
+ border-radius: 4px;
+ padding: 0 3px; }
+ #pages-content-wrapper .fjs-item .fjs-info {
+ flex-grow: 1;
+ flex-direction: column;
+ line-height: 1.2; }
+ #pages-content-wrapper .fjs-item .fjs-info > b, #pages-content-wrapper .fjs-item .fjs-info > em {
+ display: block;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ font-style: normal; }
+ #pages-content-wrapper .fjs-item .fjs-info > b {
+ font-size: 110%; }
+ #pages-content-wrapper .fjs-item .fjs-actions {
+ display: flex;
+ align-items: center;
+ padding-right: 3px;
+ position: relative; }
+ #pages-content-wrapper .fjs-item .fjs-actions > * {
+ margin-right: 3px; }
+ #pages-content-wrapper .fjs-item .fjs-actions > *:last-child {
+ margin-right: 0; }
+ #pages-content-wrapper .fjs-children {
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 28px;
+ min-width: 50px;
+ outline: 0;
+ background-color: transparent; }
+ #pages-content-wrapper .fjs-children .badge, #pages-content-wrapper .fjs-children .sidebar-open #admin-sidebar #admin-menu li .badges .updates, .sidebar-open #admin-sidebar #admin-menu li .badges #pages-content-wrapper .fjs-children .updates, #pages-content-wrapper .fjs-children .gpm .gpm-testing, .gpm #pages-content-wrapper .fjs-children .gpm-testing {
+ font-size: 0.7rem;
+ margin-right: 5px;
+ padding: 0px 3px;
+ line-height: 1.3; }
+ #pages-content-wrapper .fjs-children .fa {
+ display: inline-block !important;
+ width: auto !important;
+ font-size: 14px; }
+ #pages-content-wrapper .breadcrumb-node {
+ font-size: 0.9rem; }
+ #pages-content-wrapper .breadcrumb-node:hover span {
+ text-decoration: none; }
+ #pages-content-wrapper .breadcrumb-node > i.fa {
+ margin: 0 0.4rem -4px; }
+ #pages-content-wrapper .breadcrumb-node > i:not(.fa) {
+ position: relative;
+ display: inline-flex;
+ justify-content: center;
+ align-items: center;
+ overflow: inherit;
+ width: 16px;
+ height: 16px;
+ border-radius: 50%;
+ margin-right: 0.35rem; }
+ #pages-content-wrapper .breadcrumb-node > i:not(.fa):before {
+ position: relative;
+ content: url("../images/icons/book-edit.svg");
+ flex: 1;
+ max-width: 10px; }
+ #pages-content-wrapper .breadcrumb-node > i:not(.fa).modular:before {
+ content: url("../images/icons/module-four.svg"); }
+ #pages-content-wrapper .breadcrumb-node > i:not(.fa).home:before {
+ content: url("../images/icons/house.svg"); }
+ #pages-content-wrapper .breadcrumb-node > i:not(.fa).lock:before {
+ content: url("../images/icons/touchid-lock.svg"); }
+ #pages-content-wrapper .breadcrumb-node > i:not(.fa).badge-published:after, #pages-content-wrapper .breadcrumb-node > i:not(.fa).badge-unpublished:after {
+ content: ''; }
+
+.pages-list {
+ list-style: none;
+ margin: 0;
+ padding: 0; }
+ .pages-list ul {
+ list-style: none;
+ margin: 0;
+ padding: 0; }
+ .pages-list li {
+ margin: 0;
+ padding: 0; }
+ .pages-list .row {
+ -webkit-transition: all 0.2s ease;
+ -moz-transition: all 0.2s ease;
+ transition: all 0.2s ease;
+ line-height: 2.5rem;
+ padding-right: 3rem; }
+ @media only all and (max-width: 47.938em) {
+ .pages-list .row {
+ padding-right: 1rem; } }
+ .pages-list .row [data-hint]:after {
+ line-height: 1 !important;
+ width: auto !important;
+ white-space: nowrap !important; }
+ .pages-list .row p.page-route {
+ display: block;
+ margin: 0;
+ line-height: 1;
+ font-size: 0.9rem;
+ word-break: break-all; }
+ .pages-list .row p.page-route .spacer {
+ display: inline-block;
+ margin: 0 0.3rem; }
+ .pages-list .row .hint--bottom:before, .pages-list .row .hint--bottom:after {
+ left: 4px; }
+ .pages-list .row .hint:after, .pages-list .row [data-hint]:after {
+ border-radius: 2px; }
+ .pages-list .row .badge.lang, .pages-list .row .sidebar-open #admin-sidebar #admin-menu li .badges .lang.updates, .sidebar-open #admin-sidebar #admin-menu li .badges .pages-list .row .lang.updates, .pages-list .row .gpm .lang.gpm-testing, .gpm .pages-list .row .lang.gpm-testing {
+ margin-left: 8px; }
+ .pages-list .page-home {
+ font-size: 1.4rem;
+ margin-left: 10px;
+ vertical-align: middle; }
+ .pages-list .page-info {
+ font-size: 1.1rem;
+ margin-left: 10px;
+ vertical-align: middle; }
+ .pages-list .page-edit {
+ text-overflow: ellipsis;
+ display: inline-block;
+ max-width: 100%;
+ white-space: nowrap;
+ overflow-x: hidden; }
+ .pages-list .page-item__row {
+ display: flex; }
+ .pages-list .page-item__toggle {
+ width: 25px;
+ line-height: 1;
+ padding-top: 7px; }
+ .pages-list .page-item__content {
+ padding: 5px 0;
+ width: calc(100% - 50px); }
+ .pages-list .page-item__content-name {
+ line-height: 1; }
+ .pages-list .page-item__content-hint {
+ line-height: 1.3;
+ vertical-align: middle;
+ max-width: 100%; }
+ .pages-list .page-item__tools {
+ width: 90px;
+ text-align: right;
+ font-size: 1.4rem; }
+ .pages-list .page-item__tools .page-view {
+ margin-right: 4px; }
+ .pages-list .page-icon {
+ color: #0082BA;
+ font-weight: 700; }
+ .pages-list .page-icon.children-open:before {
+ content: '\f056'; }
+ .pages-list .page-icon.children-closed:before {
+ content: '\f055'; }
+ .pages-list .page-icon.not-routable {
+ color: #CE431D; }
+ .pages-list .page-icon.not-visible {
+ color: #999; }
+ .pages-list .page-icon.modular {
+ color: #9055AF; }
+ .pages-list #pages-legend {
+ margin-top: 1.5rem;
+ text-align: center; }
+ .pages-list #pages-legend h2, .pages-list #pages-legend ul, .pages-list #pages-legend li {
+ display: inline-block; }
+ .pages-list #pages-legend li {
+ margin-right: 0.75rem; }
+
+#page-filtering {
+ margin: 0 1.5rem 1rem; }
+ #page-filtering:after {
+ content: "";
+ display: table;
+ clear: both; }
+ @media only all and (max-width: 47.938em) {
+ #page-filtering {
+ margin: -1rem 1rem 1rem; } }
+ #page-filtering .page-filters {
+ width: 60%;
+ float: left; }
+ @media only all and (max-width: 47.938em) {
+ #page-filtering .page-filters {
+ width: 100%; } }
+ #page-filtering .page-search {
+ position: relative;
+ width: 40%;
+ float: left;
+ padding-left: 2rem;
+ text-indent: 2.5rem; }
+ #page-filtering .page-search:after {
+ position: absolute;
+ right: 15px;
+ top: 10px;
+ content: '\f002';
+ font-family: 'FontAwesome'; }
+ @media only all and (max-width: 47.938em) {
+ #page-filtering .page-search {
+ width: 100%;
+ padding-top: 1rem;
+ padding-left: 0rem; }
+ #page-filtering .page-search:after {
+ top: 1.5rem; } }
+ #page-filtering .page-shortcuts {
+ clear: both;
+ padding-top: 5px; }
+ #page-filtering .page-shortcuts:after {
+ content: "";
+ display: table;
+ clear: both; }
+ #page-filtering .selectize-control.single.plugin-remove_button .selectize-input,
+ #page-filtering .selectize-control.multi .selectize-input {
+ padding: 0.375rem 0.375rem; }
+ #page-filtering .selectize-control.single.plugin-remove_button .selectize-input.has-items,
+ #page-filtering .selectize-control.multi .selectize-input.has-items {
+ padding-top: 6px;
+ padding-bottom: 4px; }
+ #page-filtering .selectize-control.single.plugin-remove_button .selectize-input input,
+ #page-filtering .selectize-control.multi .selectize-input input {
+ font-size: 0.9rem;
+ line-height: 1.5; }
+ #page-filtering .selectize-control.single.plugin-remove_button .selectize-input .item,
+ #page-filtering .selectize-control.multi .selectize-input .item {
+ color: #777;
+ background: #eee;
+ padding: 2px 10px; }
+ #page-filtering .selectize-control.single.plugin-remove_button .selectize-input .item[data-value='Routable'],
+ #page-filtering .selectize-control.multi .selectize-input .item[data-value='Routable'] {
+ background: #CE431D;
+ color: #ffffff; }
+ #page-filtering .selectize-control.single.plugin-remove_button .selectize-input .item[data-value='NonRoutable'],
+ #page-filtering .selectize-control.multi .selectize-input .item[data-value='NonRoutable'] {
+ color: #CE431D; }
+ #page-filtering .selectize-control.single.plugin-remove_button .selectize-input .item[data-value='Visible'],
+ #page-filtering .selectize-control.multi .selectize-input .item[data-value='Visible'] {
+ background: #0082BA;
+ color: #ffffff; }
+ #page-filtering .selectize-control.single.plugin-remove_button .selectize-input .item[data-value='NonVisible'],
+ #page-filtering .selectize-control.multi .selectize-input .item[data-value='NonVisible'] {
+ color: #0082BA; }
+ #page-filtering .selectize-control.single.plugin-remove_button .selectize-input .item[data-value='Modular'],
+ #page-filtering .selectize-control.multi .selectize-input .item[data-value='Modular'] {
+ background: #9055AF;
+ color: #ffffff; }
+ #page-filtering .selectize-control.single.plugin-remove_button .selectize-input .item[data-value='NonModular'],
+ #page-filtering .selectize-control.multi .selectize-input .item[data-value='NonModular'] {
+ color: #9055AF; }
+ #page-filtering .selectize-control.single.plugin-remove_button .selectize-input .item[data-value='Published'],
+ #page-filtering .selectize-control.multi .selectize-input .item[data-value='Published'] {
+ background: #0093B8;
+ color: #ffffff; }
+ #page-filtering .selectize-control.single.plugin-remove_button .selectize-input .item[data-value='NonPublished'],
+ #page-filtering .selectize-control.multi .selectize-input .item[data-value='NonPublished'] {
+ color: #0093B8; }
+
+.admin-form-wrapper {
+ position: relative; }
+
+#admin-topbar {
+ position: absolute;
+ right: 5px;
+ height: 50px; }
+ @media only all and (max-width: 47.938em) {
+ #admin-topbar {
+ position: relative;
+ width: 100%;
+ right: 0;
+ padding: 0 .5rem;
+ margin: -2rem 0 2rem 0; } }
+ #admin-topbar #admin-mode-toggle, #admin-topbar #admin-lang-toggle {
+ height: 38px;
+ display: inline-flex;
+ vertical-align: inherit; }
+ @media only all and (max-width: 47.938em) {
+ #admin-topbar #admin-mode-toggle, #admin-topbar #admin-lang-toggle {
+ float: right; } }
+ #admin-topbar #admin-lang-toggle {
+ z-index: 3;
+ float: left;
+ margin-right: 5px; }
+ #admin-topbar #admin-lang-toggle button {
+ padding: 0.3rem 0.5rem;
+ height: 100%; }
+ #admin-topbar #admin-lang-toggle .dropdown-menu button {
+ width: 100%; }
+ #admin-topbar .switch-grav {
+ border: 0;
+ line-height: 38px; }
+ @media only all and (max-width: 47.938em) {
+ #admin-topbar .switch-toggle {
+ width: 100%; } }
+
+.depth-0 .row {
+ padding-left: 3rem; }
+
+@media only all and (max-width: 47.938em) {
+ .depth-0 .row {
+ padding-left: 1rem; } }
+
+.depth-1 .row {
+ padding-left: 6rem; }
+
+@media only all and (max-width: 47.938em) {
+ .depth-1 .row {
+ padding-left: 2rem; } }
+
+.depth-2 .row {
+ padding-left: 9rem; }
+
+@media only all and (max-width: 47.938em) {
+ .depth-2 .row {
+ padding-left: 3rem; } }
+
+.depth-3 .row {
+ padding-left: 12rem; }
+
+@media only all and (max-width: 47.938em) {
+ .depth-3 .row {
+ padding-left: 4rem; } }
+
+.depth-4 .row {
+ padding-left: 15rem; }
+
+@media only all and (max-width: 47.938em) {
+ .depth-4 .row {
+ padding-left: 5rem; } }
+
+.depth-5 .row {
+ padding-left: 18rem; }
+
+@media only all and (max-width: 47.938em) {
+ .depth-5 .row {
+ padding-left: 6rem; } }
+
+.depth-6 .row {
+ padding-left: 21rem; }
+
+@media only all and (max-width: 47.938em) {
+ .depth-6 .row {
+ padding-left: 7rem; } }
+
+.depth-7 .row {
+ padding-left: 24rem; }
+
+@media only all and (max-width: 47.938em) {
+ .depth-7 .row {
+ padding-left: 8rem; } }
+
+.depth-8 .row {
+ padding-left: 27rem; }
+
+@media only all and (max-width: 47.938em) {
+ .depth-8 .row {
+ padding-left: 9rem; } }
+
+.depth-9 .row {
+ padding-left: 30rem; }
+
+@media only all and (max-width: 47.938em) {
+ .depth-9 .row {
+ padding-left: 10rem; } }
+
+.selectize-route-option {
+ display: flex; }
+ .selectize-route-option > :first-child {
+ flex: 0 0 auto;
+ width: auto;
+ margin-right: 10px; }
+ .selectize-route-option > :last-child {
+ flex: 1 1 auto; }
+ .selectize-route-option > :last-child > * {
+ display: block; }
+
+.hidden {
+ display: none !important; }
+
+.switch-toggle input[type=radio] {
+ display: none !important; }
+
+[data-acl_picker] .permissions-item {
+ display: flex;
+ align-items: center;
+ vertical-align: center; }
+ [data-acl_picker] .permissions-item .selectize-control, [data-acl_picker] .permissions-item a, [data-acl_picker] .permissions-item input, [data-acl_picker] .permissions-item button {
+ display: inline-flex;
+ margin: 0 .5rem;
+ align-items: center;
+ vertical-align: center; }
+ [data-acl_picker] .permissions-item .selectize-control {
+ flex-grow: 1; }
+ [data-acl_picker] .permissions-item .selectize-control {
+ margin-left: 0; }
+ [data-acl_picker] .permissions-item .switch-toggle {
+ margin: 0; }
+ [data-acl_picker] .permissions-item:last-child {
+ margin-right: 0; }
+
+/*
+ * Remodal - v0.2.0
+ * Flat, responsive, lightweight, easy customizable modal window plugin with declarative state notation and hash tracking.
+ * http://vodkabears.github.io/remodal/
+ *
+ * Made by Ilya Makarov
+ * Under MIT License
+ */
+/* ==========================================================================
+ Remodal necessary styles
+ ========================================================================== */
+/* Hide scroll bar */
+html.remodal-is-locked {
+ overflow: hidden;
+ touch-action: none; }
+
+/* Anti FOUC */
+.remodal, [data-remodal-id] {
+ display: none; }
+
+/* Overlay necessary styles */
+.remodal-overlay {
+ position: fixed;
+ z-index: 99999;
+ top: -5000px;
+ right: -5000px;
+ bottom: -5000px;
+ left: -5000px;
+ display: none; }
+
+/* Necessary styles of the wrapper */
+.remodal-wrapper {
+ position: fixed;
+ z-index: 100000;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ display: none;
+ overflow: auto;
+ text-align: center;
+ -webkit-overflow-scrolling: touch; }
+ .remodal-wrapper:after {
+ display: inline-block;
+ height: 100%;
+ margin-left: -0.05em;
+ content: ''; }
+
+/* Fix iPad, iPhone glitches */
+.remodal-overlay,
+.remodal-wrapper {
+ backface-visibility: hidden; }
+
+/* Modal dialog necessary styles */
+.remodal {
+ position: relative;
+ outline: none;
+ text-size-adjust: 100%; }
+
+.remodal-is-initialized {
+ /* Disable Anti-FOUC */
+ display: inline-block; }
+
+/* ==========================================================================
+ Remodal's default mobile first theme
+ ========================================================================== */
+/* Default theme styles for the background */
+.remodal-bg.remodal-is-opening,
+.remodal-bg.remodal-is-opened {
+ -webkit-filter: blur(3px);
+ filter: blur(3px); }
+
+/* Default theme styles of the overlay */
+.remodal-overlay {
+ background: rgba(43, 46, 56, 0.9); }
+
+.remodal-overlay.remodal-is-opening,
+.remodal-overlay.remodal-is-closing {
+ animation-duration: 0.3s;
+ animation-fill-mode: forwards; }
+
+.remodal-overlay.remodal-is-opening {
+ animation-name: remodal-overlay-opening-keyframes; }
+
+.remodal-overlay.remodal-is-closing {
+ animation-name: remodal-overlay-closing-keyframes; }
+
+/* Default theme styles of the wrapper */
+.remodal-wrapper {
+ padding: 10px 10px 0; }
+
+/* Default theme styles of the modal dialog */
+.remodal {
+ box-sizing: border-box;
+ width: 100%;
+ margin-bottom: 10px;
+ padding: 35px;
+ transform: translate3d(0, 0, 0); }
+
+.remodal.remodal-is-opening,
+.remodal.remodal-is-closing {
+ animation-duration: 0.3s;
+ animation-fill-mode: forwards; }
+
+.remodal.remodal-is-opening {
+ animation-name: remodal-opening-keyframes; }
+
+.remodal.remodal-is-closing {
+ animation-name: remodal-closing-keyframes; }
+
+/* Vertical align of the modal dialog */
+.remodal,
+.remodal-wrapper:after {
+ vertical-align: middle; }
+
+/* Close button */
+.remodal-close {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: block;
+ overflow: visible;
+ width: 35px;
+ height: 35px;
+ margin: 0;
+ padding: 0;
+ cursor: pointer;
+ transition: color 0.2s;
+ text-decoration: none;
+ border: 0;
+ outline: 0;
+ background: transparent; }
+
+.remodal-close:before {
+ font-family: Arial, "Helvetica CY", "Nimbus Sans L", sans-serif !important;
+ font-size: 25px;
+ line-height: 35px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: block;
+ width: 35px;
+ content: "\00d7";
+ text-align: center; }
+
+/* Dialog buttons */
+/*.remodal-confirm,
+.remodal-cancel {
+ font: inherit;
+
+ display: inline-block;
+ overflow: visible;
+
+ min-width: 110px;
+ margin: 0;
+ padding: 12px 0;
+
+ cursor: pointer;
+ transition: background 0.2s;
+ text-align: center;
+ vertical-align: middle;
+ text-decoration: none;
+
+ border: 0;
+ outline: 0;
+}
+
+.remodal-confirm {
+ color: #fff;
+ background: #81c784;
+}
+
+.remodal-confirm:hover,
+.remodal-confirm:focus {
+ background: #66bb6a;
+}
+
+.remodal-cancel {
+ color: #fff;
+ background: #e57373;
+}
+
+.remodal-cancel:hover,
+.remodal-cancel:focus {
+ background: #ef5350;
+}
+
+!* Remove inner padding and border in Firefox 4+ for the button tag. *!
+
+.remodal-confirm::-moz-focus-inner,
+.remodal-cancel::-moz-focus-inner,
+.remodal-close::-moz-focus-inner {
+ padding: 0;
+
+ border: 0;
+}*/
+/* Keyframes
+ ========================================================================== */
+@keyframes remodal-opening-keyframes {
+ from {
+ transform: scale(1.05);
+ opacity: 0; }
+ to {
+ transform: none;
+ opacity: 1; } }
+
+@keyframes remodal-closing-keyframes {
+ from {
+ transform: scale(1);
+ opacity: 1; }
+ to {
+ transform: scale(0.95);
+ opacity: 0; } }
+
+@keyframes remodal-overlay-opening-keyframes {
+ from {
+ opacity: 0; }
+ to {
+ opacity: 1; } }
+
+@keyframes remodal-overlay-closing-keyframes {
+ from {
+ opacity: 1; }
+ to {
+ opacity: 0; } }
+
+/* Media queries
+ ========================================================================== */
+@media only screen and (min-width: 641px) {
+ .remodal {
+ max-width: 700px; } }
+
+/* IE8
+ ========================================================================== */
+.lt-ie9 .remodal-overlay {
+ background: #2b2e38; }
+
+.lt-ie9 .remodal {
+ width: 700px; }
+
+/********* GRAV CUSTOM ********/
+.remodal {
+ padding: 35px 0 0;
+ text-align: left;
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
+ border-radius: 3px; }
+
+.remodal ul li {
+ margin-left: 27px;
+ list-style-type: square; }
+
+.admin-pages .form-tabs:first-child {
+ margin-top: -1rem; }
+
+.admin-pages .form-tabs.side-tabs .tabs-nav {
+ margin-right: 0 !important; }
+
+.admin-pages .form-tabs .tabs-nav {
+ margin-right: 180px; }
+ @media only all and (max-width: 47.938em) {
+ .admin-pages .form-tabs .tabs-nav {
+ margin-right: 0 !important; } }
+
+.form-tabs .tabs-nav {
+ display: -webkit-box;
+ display: -moz-box;
+ display: box;
+ display: -webkit-flex;
+ display: -moz-flex;
+ display: -ms-flexbox;
+ display: flex;
+ padding-top: 1px; }
+ .form-tabs .tabs-nav a {
+ -webkit-box-flex: 1;
+ -moz-box-flex: 1;
+ box-flex: 1;
+ -webkit-flex: 1;
+ -moz-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ transition: color 0.5s ease, background 0.5s ease;
+ cursor: pointer;
+ min-height: 50px;
+ text-align: center;
+ padding: 4px;
+ display: flex;
+ align-items: center;
+ justify-content: center; }
+ .form-tabs .tabs-nav span {
+ display: inline-block;
+ line-height: 1.1; }
+
+.form-tabs.subtle .tabs-nav {
+ margin-right: 0 !important; }
+
+.form-tabs .tabs-content .tab__content {
+ display: none;
+ padding-top: 2rem; }
+ .form-tabs .tabs-content .tab__content.active {
+ display: block; }
+
+.form-tabs.side-tabs {
+ display: flex;
+ background: none; }
+ .form-tabs.side-tabs > .tabs-nav {
+ width: 20%;
+ display: block;
+ padding-top: 1.5rem; }
+ .form-tabs.side-tabs > .tabs-nav a {
+ text-align: left;
+ flex: none;
+ justify-content: left;
+ padding-left: 15px; }
+ .form-tabs.side-tabs > .tabs-content {
+ width: 80%; }
+
+.grav-editor-content {
+ position: relative; }
+
+.grav-editor [data-grav-editor] {
+ height: 300px; }
+ .grav-editor [data-grav-editor].code-mirrored {
+ padding: 0;
+ border: 0;
+ position: absolute;
+ z-index: -1;
+ display: block !important; }
+
+.grav-editor .CodeMirror .CodeMirror-vscrollbar, .grav-editor .CodeMirror .CodeMirror-hscrollbar {
+ z-index: 1; }
+ .grav-editor .CodeMirror .CodeMirror-vscrollbar:focus, .grav-editor .CodeMirror .CodeMirror-hscrollbar:focus {
+ outline: none; }
+
+.grav-editor .CodeMirror-scroll {
+ position: static;
+ padding-bottom: 15px; }
+
+.grav-editor .grav-editor-resizer {
+ height: 6px;
+ cursor: row-resize;
+ border-radius: 0 0 3px 3px;
+ position: relative;
+ z-index: 1; }
+
+.grav-editor .CodeMirror-selected {
+ background: #D6E8FF; }
+
+.grav-editor .CodeMirror-gutters {
+ height: 100% !important; }
+
+.grav-editor-fullscreen {
+ position: fixed;
+ top: 4.2rem;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ z-index: 3;
+ padding: 0 !important;
+ margin: 0 !important;
+ display: flex;
+ flex-direction: column; }
+ .grav-editor-fullscreen .grav-editor-content {
+ display: flex;
+ flex-direction: column;
+ flex: 1 0 0;
+ overflow-y: auto; }
+ .grav-editor-fullscreen .grav-editor-content, .grav-editor-fullscreen .CodeMirror-wrap, .grav-editor-fullscreen .grav-editor-preview {
+ height: 100% !important; }
+ .grav-editor-fullscreen .grav-editor-toolbar {
+ flex: 0 0 auto; }
+ .grav-editor-fullscreen .grav-editor-toolbar, .grav-editor-fullscreen .grav-editor-toolbar ul li:first-child a, .grav-editor-fullscreen .grav-editor-toolbar-flip ul li:last-child a {
+ border-radius: 0 !important; }
+ .grav-editor-fullscreen .grav-editor-resizer {
+ display: none; }
+ .grav-editor-fullscreen .grav-editor-content.is-active {
+ display: flex; }
+
+.grav-editor-toolbar {
+ -webkit-box-align: stretch;
+ -moz-box-align: stretch;
+ box-align: stretch;
+ -webkit-align-items: stretch;
+ -moz-align-items: stretch;
+ -ms-align-items: stretch;
+ -o-align-items: stretch;
+ align-items: stretch;
+ -ms-flex-align: stretch;
+ display: -webkit-box;
+ display: -moz-box;
+ display: box;
+ display: -webkit-flex;
+ display: -moz-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -moz-box-orient: horizontal;
+ box-orient: horizontal;
+ -webkit-flex-direction: row;
+ -moz-flex-direction: row;
+ flex-direction: row;
+ -ms-flex-direction: row; }
+ .grav-editor-toolbar .grav-editor-actions {
+ -webkit-box-flex: 1;
+ -moz-box-flex: 1;
+ box-flex: 1;
+ -webkit-flex: 1;
+ -moz-flex: 1;
+ -ms-flex: 1;
+ flex: 1; }
+ .grav-editor-toolbar .grav-editor-modes {
+ flex-shrink: 0;
+ margin-right: 2px; }
+ .grav-editor-toolbar .grav-editor-modes ul {
+ float: right; }
+
+.grav-editor-toolbar:after {
+ content: "";
+ display: table;
+ clear: both; }
+
+.grav-editor-toolbar ul {
+ list-style: none;
+ margin: 0;
+ padding: 0; }
+ .grav-editor-toolbar ul li {
+ display: inline-block; }
+ .grav-editor-toolbar ul li:first-child a {
+ border-top-left-radius: 4px; }
+ .grav-editor-toolbar ul a {
+ display: inline-block;
+ cursor: pointer;
+ background-color: transparent;
+ border-radius: 0;
+ padding: 0.4rem;
+ margin-top: -1px;
+ border: 1px solid transparent; }
+ .grav-editor-toolbar ul a, .grav-editor-toolbar ul a:hover, .grav-editor-toolbar ul a:active, .grav-editor-toolbar ul a:focus {
+ outline: 0; }
+
+.grav-editor-toolbar .dropdown-menu li {
+ width: 50%; }
+
+.grav-editor-hide-toolbar {
+ display: none; }
+
+.grav-editor-toolbar .grav-editor-modes li:first-child a {
+ border-top-left-radius: 0; }
+
+.grav-editor-toolbar .grav-editor-modes li:last-child a {
+ border-top-right-radius: 4px; }
+
+.grav-editor-toolbar .grav-editor-modes a:hover {
+ /*border: 1px solid transparent;
+ border-bottom: 1px solid darken($content-bg, 20%);*/ }
+
+.grav-editor-toolbar-flip {
+ float: right; }
+ .grav-editor-toolbar-flip ul li:last-child a {
+ border-top-right-radius: 4px; }
+
+.grav-editor-content, .grav-editor-preview {
+ cursor: text;
+ display: none; }
+ .grav-editor-content:after, .grav-editor-preview:after {
+ content: "";
+ display: table;
+ clear: both; }
+ .grav-editor-content.is-active, .grav-editor-preview.is-active {
+ display: block; }
+
+.grav-editor-content {
+ /* PADDING */ }
+ .grav-editor-content .CodeMirror-lines {
+ padding: 10px 0;
+ /* Vertical padding around content */ }
+ .grav-editor-content.fontsize-lg {
+ font-size: 16px; }
+ .grav-editor-content.fontsize-lg.fontfamily-sans {
+ font-size: 18px; }
+ .grav-editor-content.fontsize-md {
+ font-size: 14px; }
+ .grav-editor-content.fontsize-md.fontfamily-sans {
+ font-size: 16px; }
+ .grav-editor-content.font-size-sm {
+ font-size: 12px; }
+ .grav-editor-content.font-size-sm.fontfamily-sans {
+ font-size: 14px; }
+
+#admin-main .admin-block .grav-editor-preview {
+ padding: 20px;
+ overflow-y: scroll;
+ position: relative;
+ line-height: 1.5;
+ background: #fff !important;
+ color: #555 !important; }
+ #admin-main .admin-block .grav-editor-preview a {
+ color: #1c90fb !important; }
+ #admin-main .admin-block .grav-editor-preview h1 {
+ font-size: 36px; }
+ #admin-main .admin-block .grav-editor-preview h2 {
+ font-size: 28px; }
+ #admin-main .admin-block .grav-editor-preview h3 {
+ font-size: 22px; }
+ #admin-main .admin-block .grav-editor-preview h4 {
+ font-size: 18px; }
+ #admin-main .admin-block .grav-editor-preview h5 {
+ font-size: 16px; }
+ #admin-main .admin-block .grav-editor-preview h6 {
+ font-size: 14px; }
+ #admin-main .admin-block .grav-editor-preview h1, #admin-main .admin-block .grav-editor-preview h2, #admin-main .admin-block .grav-editor-preview h3, #admin-main .admin-block .grav-editor-preview h4, #admin-main .admin-block .grav-editor-preview h5, #admin-main .admin-block .grav-editor-preview h6 {
+ padding: 0;
+ margin: 0.5rem 0;
+ border-bottom: 0 !important;
+ color: #333 !important;
+ font-weight: bold; }
+ #admin-main .admin-block .grav-editor-preview p {
+ padding: 0;
+ margin: 0.5rem 0 1rem; }
+ #admin-main .admin-block .grav-editor-preview pre code {
+ color: #1c90fb;
+ font-size: 14px; }
+ #admin-main .admin-block .grav-editor-preview blockquote {
+ border-color: #ccc !important;
+ background-color: #f0f0f0 !important; }
+ #admin-main .admin-block .grav-editor-preview blockquote p {
+ color: #444 !important; }
+ #admin-main .admin-block .grav-editor-preview hr {
+ border-color: #eee !important; }
+ #admin-main .admin-block .grav-editor-preview table td, #admin-main .admin-block .grav-editor-preview table th, #admin-main .admin-block .grav-editor-preview table tr {
+ border-color: #eee !important; }
+
+.grav-editor-toolbar [data-hint]:after {
+ white-space: nowrap !important;
+ max-width: 300px;
+ width: auto !important; }
+
+.grav-editor-toolbar p {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ padding-left: 20px; }
+
+/* The MIT License */
+.dropzone {
+ position: relative;
+ border-radius: 4px;
+ min-height: 4rem; }
+ .dropzone.dz-clickable {
+ cursor: pointer; }
+ .dropzone.dz-drag-hover {
+ border-color: rgba(0, 0, 0, 0.15);
+ background: rgba(0, 0, 0, 0.04); }
+ .dropzone.dz-started .dz-message {
+ display: none; }
+ .dropzone .dz-message {
+ opacity: 1;
+ -ms-filter: none;
+ filter: none; }
+ .dropzone .dz-preview {
+ position: relative;
+ display: inline-block;
+ margin: 1rem 1rem 1.5rem 1rem;
+ vertical-align: top; }
+ .dropzone .dz-preview.dz-file-preview [data-dz-thumbnail] {
+ display: none; }
+ .dropzone .dz-preview.dz-error .dz-error-mark {
+ display: block; }
+ .dropzone .dz-preview.dz-success .dz-success-mark {
+ display: block; }
+ .dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {
+ font-family: FontAwesome;
+ display: none;
+ position: absolute;
+ width: 22px;
+ height: 22px;
+ font-size: 18px;
+ line-height: 25px;
+ border-radius: 100%;
+ text-align: center;
+ right: 2px;
+ top: 2px; }
+ .dropzone .dz-preview .dz-success-mark span, .dropzone .dz-preview .dz-error-mark span {
+ display: none; }
+ .dropzone .dz-preview:hover .dz-success-mark, .dropzone .dz-preview:hover .dz-error-mark {
+ display: none; }
+ .dropzone .dz-preview .dz-success-mark::after {
+ content: '\f00c'; }
+ .dropzone .dz-preview .dz-error-mark::after {
+ content: '\f12a'; }
+ .dropzone .dz-preview .dz-progress {
+ position: absolute;
+ top: 150px;
+ left: 0px;
+ right: 0px;
+ height: 4px;
+ display: none; }
+ .dropzone .dz-preview .dz-progress .dz-upload {
+ display: block;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 0%; }
+ .dropzone .dz-preview .dz-error-message {
+ display: none;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ font-size: 0.9rem;
+ line-height: 1.2;
+ padding: 8px 10px;
+ z-index: 500; }
+ .dropzone .dz-preview.dz-processing .dz-progress {
+ display: block; }
+ .dropzone .dz-preview:hover .dz-remove, .dropzone .dz-preview:hover .dz-unset, .dropzone .dz-preview:hover .dz-view, .dropzone .dz-preview:hover .dz-insert, .dropzone .dz-preview:hover .dz-metadata {
+ display: block; }
+ .dropzone .dz-preview.dz-processing:hover .dz-unset {
+ display: none; }
+ .dropzone .dz-preview:hover.dz-error .dz-error-message {
+ display: block; }
+ .dropzone .dz-preview .dz-filename {
+ position: absolute;
+ z-index: 1;
+ bottom: 0;
+ width: 100%;
+ padding: 0 5px;
+ background: rgba(0, 0, 0, 0.3);
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis; }
+ .dropzone .dz-preview .dz-remove, .dropzone .dz-preview .dz-unset, .dropzone .dz-preview .dz-view, .dropzone .dz-preview .dz-insert, .dropzone .dz-preview .dz-metadata {
+ display: none;
+ position: absolute;
+ width: 25px;
+ height: 25px;
+ right: -26px;
+ font-size: 0;
+ cursor: pointer; }
+ .dropzone .dz-preview .dz-remove:hover:after, .dropzone .dz-preview .dz-unset:hover:after, .dropzone .dz-preview .dz-view:hover:after, .dropzone .dz-preview .dz-insert:hover:after, .dropzone .dz-preview .dz-metadata:hover:after {
+ color: #fff; }
+ .dropzone .dz-preview .dz-remove:after, .dropzone .dz-preview .dz-unset:after, .dropzone .dz-preview .dz-view:after, .dropzone .dz-preview .dz-insert:after, .dropzone .dz-preview .dz-metadata:after {
+ text-align: center;
+ display: block;
+ color: #999;
+ font-family: FontAwesome;
+ font-size: 18px;
+ line-height: 25px; }
+ .dropzone .dz-preview .dz-insert {
+ top: -1px;
+ border-top-right-radius: 4px; }
+ .dropzone .dz-preview .dz-insert:after {
+ content: '\f055'; }
+ .dropzone .dz-preview .dz-view {
+ top: 24px; }
+ .dropzone .dz-preview .dz-view:after {
+ content: '\f06e'; }
+ .dropzone .dz-preview .dz-remove {
+ top: 72px; }
+ .dropzone .dz-preview .dz-remove:after {
+ content: '\f1f8'; }
+ .dropzone .dz-preview .dz-unset {
+ top: 96px;
+ border-bottom-right-radius: 4px; }
+ .dropzone .dz-preview .dz-unset:after {
+ content: '\f00d'; }
+ .dropzone .dz-preview .dz-metadata {
+ top: 49px; }
+ .dropzone .dz-preview .dz-metadata:after {
+ content: '\f05a'; }
+ .dropzone .dz-preview.dz-no-editor .dz-view {
+ top: -1px;
+ border-top-right-radius: 4px; }
+ .dropzone .dz-preview.dz-no-editor .dz-remove {
+ top: 24px; }
+ .dropzone .dz-preview.dz-no-editor .dz-unset {
+ top: 72px; }
+ .dropzone .dz-preview:hover .dz-remove.file-thumbnail-remove, .dropzone .dz-preview:hover .dz-unset.file-thumbnail-remove {
+ display: block; }
+ .dropzone .dz-preview:hover .dz-remove:not(.file-thumbnail-remove), .dropzone .dz-preview:hover .dz-unset:not(.file-thumbnail-remove) {
+ border-left: 0; }
+ .dropzone .dz-preview.dz-processing .dz-details {
+ overflow: hidden; }
+ .dropzone .dz-preview .dz-details {
+ width: 200px;
+ height: 150px;
+ position: relative;
+ font-size: 0.8rem;
+ background-image: url("../images/transparent.png"); }
+ .dropzone .dz-preview .dz-details img {
+ position: absolute;
+ object-fit: contain;
+ top: 0;
+ left: 0;
+ width: 200px;
+ height: 150px; }
+ .dropzone .dz-preview .dz-details .dz-size {
+ position: absolute;
+ bottom: -28px;
+ left: 0;
+ right: 0;
+ text-align: center;
+ font-size: 0.8rem;
+ height: 28px;
+ line-height: 28px; }
+ .dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message span {
+ cursor: pointer;
+ text-align: center;
+ font-size: 1.2rem;
+ line-height: 1.4;
+ margin: 1rem 0; }
+ .dropzone * {
+ cursor: default; }
+
+.toast-title {
+ font-weight: bold; }
+
+.toast-message {
+ -ms-word-wrap: break-word;
+ word-wrap: break-word; }
+
+.toast-message a,
+.toast-message label {
+ color: #ffffff; }
+
+.toast-message a:hover {
+ color: #cccccc;
+ text-decoration: none; }
+
+.toast-close-button {
+ position: relative;
+ right: -0.3em;
+ top: -0.3em;
+ float: right;
+ font-size: 20px;
+ font-weight: bold;
+ color: #ffffff;
+ -webkit-text-shadow: 0 1px 0 #ffffff;
+ text-shadow: 0 1px 0 #ffffff;
+ opacity: 0.8;
+ -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
+ filter: alpha(opacity=80); }
+
+.toast-close-button:hover,
+.toast-close-button:focus {
+ color: #000000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: 0.4;
+ -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
+ filter: alpha(opacity=40); }
+
+/*Additional properties for button version
+ iOS requires the button element instead of an anchor tag.
+ If you want the anchor version, it requires `href="#"`.*/
+button.toast-close-button {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none; }
+
+.toast-top-center {
+ top: 0;
+ right: 0;
+ width: 100%; }
+
+.toast-bottom-center {
+ bottom: 0;
+ right: 0;
+ width: 100%; }
+
+.toast-top-full-width {
+ top: 0;
+ right: 0;
+ width: 100%; }
+
+.toast-bottom-full-width {
+ bottom: 0;
+ right: 0;
+ width: 100%; }
+
+.toast-top-left {
+ top: 12px;
+ left: 12px; }
+
+.toast-top-right {
+ top: 5rem;
+ right: 1.5rem; }
+
+.toast-bottom-right {
+ right: 12px;
+ bottom: 12px; }
+
+.toast-bottom-left {
+ bottom: 12px;
+ left: 12px; }
+
+#toast-container {
+ position: fixed;
+ z-index: 999999;
+ /*overrides*/ }
+
+#toast-container * {
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box; }
+
+#toast-container > div {
+ position: relative;
+ overflow: hidden;
+ margin: 0 0 6px;
+ padding: 15px 15px 15px 50px;
+ width: 300px;
+ border-radius: 3px;
+ background-position: 15px center;
+ background-repeat: no-repeat;
+ color: #ffffff;
+ opacity: 0.9;
+ -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=90);
+ filter: alpha(opacity=90); }
+
+#toast-container > :hover {
+ opacity: 1;
+ -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
+ filter: alpha(opacity=100);
+ cursor: pointer; }
+
+#toast-container > .toast-info {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important; }
+
+#toast-container > .toast-error {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important; }
+
+#toast-container > .toast-success {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important; }
+
+#toast-container > .toast-warning {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important; }
+
+#toast-container.toast-top-center > div,
+#toast-container.toast-bottom-center > div {
+ width: 300px;
+ margin: auto; }
+
+#toast-container.toast-top-full-width > div,
+#toast-container.toast-bottom-full-width > div {
+ width: 96%;
+ margin: auto; }
+
+.toast-warning {
+ background-color: #f89406; }
+ .toast-warning .button {
+ background-color: #c67605;
+ color: rgba(255, 255, 255, 0.85);
+ border-radius: 4px;
+ background: #945904; }
+ .toast-warning .button:focus, .toast-warning .button:hover {
+ background: #a47229;
+ color: #ffffff; }
+ .toast-warning .button.dropdown-toggle {
+ border-left: 1px solid #7c4a03; }
+
+.toast-progress {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ height: 4px;
+ background-color: #000000;
+ opacity: 0.4;
+ -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
+ filter: alpha(opacity=40); }
+
+/*Responsive Design*/
+@media all and (max-width: 240px) {
+ #toast-container > div {
+ padding: 8px 8px 8px 50px;
+ width: 11em; }
+ #toast-container .toast-close-button {
+ right: -0.2em;
+ top: -0.2em; } }
+
+@media all and (min-width: 241px) and (max-width: 480px) {
+ #toast-container > div {
+ padding: 8px 8px 8px 50px;
+ width: 18em; }
+ #toast-container .toast-close-button {
+ right: -0.2em;
+ top: -0.2em; } }
+
+@media all and (min-width: 481px) and (max-width: 768px) {
+ #toast-container > div {
+ padding: 15px 15px 15px 50px;
+ width: 25em; } }
+
+.gpm td {
+ border: 0; }
+
+.gpm .gpm-search {
+ position: relative;
+ padding: 0 3rem 0.5rem 1.5rem;
+ text-indent: 2.5rem; }
+ .gpm .gpm-search:after {
+ position: absolute;
+ right: 60px;
+ top: 10px;
+ content: '\f002';
+ font-family: 'FontAwesome'; }
+ @media only all and (max-width: 47.938em) {
+ .gpm .gpm-search {
+ padding-left: 1rem; } }
+
+.gpm .sort-actions {
+ float: right;
+ margin: 0 24px; }
+ @media only all and (max-width: 47.938em) {
+ .gpm .sort-actions {
+ float: none; } }
+ .gpm .sort-actions > * {
+ font-size: 1rem;
+ display: inline-block;
+ vertical-align: middle; }
+ .gpm .sort-actions .sort-icon {
+ cursor: pointer; }
+ .gpm .sort-actions select {
+ margin: 0;
+ display: none; }
+ .gpm .sort-actions .selectize-input {
+ width: 9rem;
+ vertical-align: middle;
+ line-height: 21px; }
+ .gpm .sort-actions .selectize-input input {
+ line-height: 21px; }
+
+.gpm .gpm-name {
+ white-space: nowrap; }
+ @media only all and (max-width: 47.938em) {
+ .gpm .gpm-name {
+ white-space: normal; } }
+
+.gpm .gpm-version {
+ padding-left: 0.5rem;
+ font-size: 0.9rem; }
+
+.gpm .gpm-testing {
+ border-radius: 3px;
+ padding: 0 4px;
+ font-size: 0.75rem; }
+
+.gpm .theme .gpm-testing {
+ line-height: 1rem;
+ position: absolute;
+ top: 0;
+ right: 0;
+ border-radius: 0 0 0 3px;
+ line-height: 1.3; }
+
+.gpm .gpm-actions .enabled, .gpm .gpm-actions .disabled {
+ font-size: 1.6rem; }
+
+.gpm .gpm-item-info {
+ position: relative;
+ padding-bottom: 1rem;
+ margin-bottom: 3rem;
+ overflow: hidden; }
+ .gpm .gpm-item-info .gpm-item-icon {
+ position: absolute;
+ right: 1.5rem;
+ font-size: 20rem; }
+ .gpm .gpm-item-info table {
+ position: relative; }
+ .gpm .gpm-item-info td {
+ border: 0;
+ text-align: left !important; }
+ .gpm .gpm-item-info td.double {
+ padding-left: 2rem; }
+ .gpm .gpm-item-info td:first-child {
+ white-space: nowrap; }
+ @media only all and (max-width: 47.938em) {
+ .gpm .gpm-item-info td {
+ word-wrap: break-word;
+ word-break: break-word;
+ -webkit-hyphens: auto;
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto; } }
+ .gpm .gpm-item-info tr:hover {
+ background: inherit; }
+
+.gpm .badge.update, .gpm .sidebar-open #admin-sidebar #admin-menu li .badges .update.updates, .sidebar-open #admin-sidebar #admin-menu li .badges .gpm .update.updates, .gpm .update.gpm-testing {
+ display: inline-block;
+ border-radius: 4px;
+ padding: 2px 10px;
+ margin-left: 1rem; }
+
+.gpm .gpm-ribbon {
+ overflow: hidden;
+ white-space: nowrap;
+ position: absolute;
+ top: 1rem;
+ right: -2rem;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ -o-transform: rotate(45deg);
+ transform: rotate(45deg); }
+ .gpm .gpm-ribbon a {
+ display: block;
+ font-weight: bold;
+ font-size: 0.9rem;
+ padding: 5px 40px;
+ text-align: center; }
+
+.gpm .themes {
+ padding: 1.5rem; }
+ .gpm .themes .card-item {
+ padding: 1rem 1rem 4rem; }
+ .gpm .themes .gpm-screenshot {
+ text-align: center; }
+ .gpm .themes .gpm-screenshot img {
+ margin: 0 auto;
+ max-height: 300px; }
+ .gpm .themes .gpm-name {
+ margin-bottom: 0.5rem;
+ white-space: inherit; }
+ .gpm .themes .gpm-actions {
+ margin: 1rem -1rem -1rem -1rem;
+ height: 4rem;
+ text-align: center;
+ padding: 1rem;
+ font-size: 1rem;
+ font-weight: bold;
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 1rem; }
+ .gpm .themes .active-theme .gpm-actions, .gpm .themes.inactive-theme .gpm-actions {
+ line-height: 2rem; }
+ .gpm .themes .inactive-theme .gpm-actions {
+ display: block;
+ font-weight: normal; }
+
+.gpm #gpm-release-toggle {
+ float: right;
+ margin-right: 3rem; }
+
+#phpinfo img {
+ display: none; }
+
+#phpinfo table {
+ margin: 1rem 0 0; }
+
+#phpinfo tr:hover {
+ background: transparent; }
+
+#phpinfo td {
+ word-wrap: break-word;
+ overflow: hidden; }
+ #phpinfo td h1 {
+ margin: 0rem -1.5rem 0rem !important; }
+
+#phpinfo hr {
+ border-bottom: 0; }
+
+#phpinfo h1 {
+ font-size: 2.3rem; }
+
+#phpinfo h2 {
+ font-size: 1.7rem;
+ margin: 3rem 1.5rem 0rem !important; }
+
+.lines-button {
+ display: inline-block;
+ padding: 0.5rem 0.5rem 1rem;
+ transition: .3s;
+ cursor: pointer;
+ user-select: none;
+ border-radius: 0.4rem;
+ position: absolute;
+ z-index: 100002;
+ top: 10px;
+ background: transparent; }
+ .lines-button:hover {
+ opacity: 1; }
+ .lines-button:active {
+ transition: none;
+ background: rgba(0, 0, 0, 0.1); }
+
+.lines {
+ position: relative;
+ display: inline-block;
+ width: 2rem;
+ height: 0.28571rem;
+ border-radius: 0.14286rem;
+ transition: 0.3s;
+ /*create the upper and lower lines as pseudo-elements of the middle line*/ }
+ .lines:before, .lines:after {
+ display: inline-block;
+ width: 2rem;
+ height: 0.28571rem;
+ border-radius: 0.14286rem;
+ transition: 0.3s;
+ position: absolute;
+ left: 0;
+ content: '';
+ transform-origin: 0.14286rem center; }
+ .lines:before {
+ top: 0.5rem; }
+ .lines:after {
+ top: -0.5rem; }
+
+.sidebar-mobile-open .lines-button.x .lines {
+ /*hide the middle line*/
+ background: transparent !important;
+ /*overlay the lines by setting both their top values to 0*/ }
+ .sidebar-mobile-open .lines-button.x .lines:before, .sidebar-mobile-open .lines-button.x .lines:after {
+ transform-origin: 50% 50%;
+ top: 0;
+ width: 2rem; }
+ .sidebar-mobile-open .lines-button.x .lines:before {
+ transform: rotate3d(0, 0, 1, 45deg); }
+ .sidebar-mobile-open .lines-button.x .lines:after {
+ transform: rotate3d(0, 0, 1, -45deg); }
+
+.single-notification.alert {
+ position: relative; }
+
+.hide-notification {
+ right: 1rem;
+ position: absolute; }
+
+.alert.raw {
+ padding: 0 !important; }
+
+#admin-dashboard #notifications .admin-block {
+ padding: 1rem 0; }
+
+#admin-dashboard #notifications li {
+ white-space: nowrap;
+ overflow: hidden;
+ -ms-text-overflow: ellipsis;
+ text-overflow: ellipsis; }
+
+.dashboard-notifications-container, .plugins-notifications-container, .themes-notifications-container {
+ margin-bottom: 1rem; }
+ .dashboard-notifications-container .raw, .plugins-notifications-container .raw, .themes-notifications-container .raw {
+ position: relative; }
+ .dashboard-notifications-container .raw .hide-notification, .plugins-notifications-container .raw .hide-notification, .themes-notifications-container .raw .hide-notification {
+ position: absolute;
+ top: 5px;
+ right: 5px;
+ line-height: 1;
+ font-size: 1.2rem;
+ color: #333;
+ text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff; }
+ .dashboard-notifications-container:empty, .plugins-notifications-container:empty, .themes-notifications-container:empty {
+ margin: 0; }
+
+#admin-main .content-padding div[class*=notifications-container] .alert a:hover {
+ text-decoration: underline; }
+
+#admin-main .content-padding div[class*=notifications-container] .alert a.button, #admin-main .content-padding div[class*=notifications-container] .alert span.button, #admin-main .content-padding div[class*=notifications-container] .alert button.button {
+ float: right;
+ text-decoration: none; }
+
+#admin-main .content-padding .top-notifications-container {
+ margin-bottom: 1rem; }
+ #admin-main .content-padding .top-notifications-container .alert a {
+ cursor: pointer; }
+ @media only all and (max-width: 47.938em) {
+ #admin-main .content-padding .top-notifications-container {
+ padding-bottom: 20px; } }
+
+#admin-main #notifications td:last-child {
+ position: relative; }
+ #admin-main #notifications td:last-child span {
+ position: absolute;
+ display: block;
+ right: 2rem;
+ top: 6px; }
+
+#admin-main #notifications .badge.alert, #admin-main #notifications .sidebar-open #admin-sidebar #admin-menu li .badges .alert.updates, .sidebar-open #admin-sidebar #admin-menu li .badges #admin-main #notifications .alert.updates, #admin-main #notifications .gpm .alert.gpm-testing, .gpm #admin-main #notifications .alert.gpm-testing {
+ margin: 0;
+ font-size: 0.7rem;
+ text-transform: uppercase;
+ margin-right: 5px;
+ border-radius: 4px;
+ vertical-align: middle;
+ line-height: 1.7; }
+ #admin-main #notifications .badge.alert i, #admin-main #notifications .sidebar-open #admin-sidebar #admin-menu li .badges .alert.updates i, .sidebar-open #admin-sidebar #admin-menu li .badges #admin-main #notifications .alert.updates i, #admin-main #notifications .gpm .alert.gpm-testing i, .gpm #admin-main #notifications .alert.gpm-testing i {
+ margin-right: 3px; }
+
+body .changelog {
+ text-align: left;
+ margin-top: -2rem; }
+ body .changelog .remodal-close {
+ display: none; }
+ body .changelog code {
+ white-space: pre-wrap;
+ vertical-align: inherit;
+ font-size: 0.8rem; }
+ body .changelog h1 {
+ text-align: center;
+ font-size: 2rem;
+ margin: 1rem 0;
+ letter-spacing: -1px; }
+ body .changelog .remodal-confirm {
+ float: right; }
+ body .changelog .changelog-overflow {
+ max-height: 500px;
+ overflow: auto;
+ margin-bottom: 1em;
+ border: 1px solid #ddd;
+ border-radius: 3px;
+ background: white;
+ padding: 1em; }
+ body .changelog h3, body .changelog h4 {
+ text-align: center;
+ font-weight: bold; }
+ body .changelog h3 {
+ font-size: 1.3rem;
+ margin: 1.3rem 0 0 0;
+ line-height: 1; }
+ body .changelog h3 + h4 {
+ font-size: 1rem;
+ margin: 0 0 1rem 0;
+ color: #666; }
+ body .changelog ol {
+ list-style: none;
+ padding: 0;
+ margin: 0 0 3rem 0; }
+ body .changelog ol a[href='#new'] + ul > li:before {
+ background-color: #207DE5;
+ content: 'New'; }
+ body .changelog ol a[href='#improved'] + ul > li:before {
+ background-color: #FBCA04;
+ color: #333;
+ content: 'Improved'; }
+ body .changelog ol a[href='#bugfix'] + ul > li:before {
+ background-color: #FC2929;
+ content: 'Bugfix'; }
+ body .changelog ul {
+ list-style: none;
+ padding: 0; }
+ body .changelog ul li {
+ margin-bottom: 0.5rem;
+ padding-left: 6rem;
+ margin-left: 0;
+ list-style: none; }
+ body .changelog ul li:before {
+ margin-left: -6rem;
+ display: inline-block;
+ border-radius: 2px;
+ color: #fff;
+ font-weight: bold;
+ margin-right: 1rem;
+ text-align: center;
+ width: 5rem;
+ font-size: 0.8rem;
+ padding: 2px 0;
+ font-style: normal; }
+
+/* Media */
+.pages-list-container {
+ width: 30%;
+ flex: none !important;
+ padding: 0 !important; }
+ .pages-list-container .pages-list {
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis; }
+ .pages-list-container .pages-list.depth-0 .row {
+ padding-left: .5rem; }
+ .pages-list-container .pages-list .depth-1 .row {
+ padding-left: 1rem; }
+ .pages-list-container .pages-list .page-item .page-link {
+ cursor: pointer; }
+ .pages-list-container .pages-list .row.active {
+ background-color: rgba(0, 166, 207, 0.1); }
+
+.media-page-dropzone {
+ width: 100%;
+ margin-bottom: 20px; }
+
+.media-container.size-2-3 {
+ flex: none !important;
+ width: 70%; }
+
+.media-container .filters {
+ padding-bottom: 30px;
+ width: 100%; }
+ .media-container .filters .filter-wrapper {
+ margin-left: 10px;
+ margin-right: 10px; }
+ .media-container .filters .filter-wrapper:after {
+ margin-top: -25px;
+ border: 0px none;
+ content: "\f078";
+ font-family: "FontAwesome";
+ right: 12px;
+ top: 50%;
+ line-height: 0;
+ color: #9BA2A6;
+ pointer-events: none;
+ float: right;
+ padding-right: 10px; }
+ .media-container .filters .filter option {
+ padding: 8px; }
+
+.media-container .files {
+ padding-left: 30px;
+ padding-right: 30px; }
+
+.media-container .admin-media-title {
+ color: #333;
+ margin: 0px;
+ font-size: .8rem;
+ line-height: 1.3; }
+
+.media-container .card-item {
+ width: 49%; }
+ .media-container .card-item.empty-space {
+ background: rgba(255, 255, 255, 0.4);
+ border: 1px solid rgba(0, 0, 0, 0.1) !important;
+ color: rgba(0, 0, 0, 0.3);
+ max-width: none;
+ display: block;
+ text-align: center;
+ top: 20%;
+ height: 10rem !important;
+ width: 50% !important;
+ margin: 0 auto !important;
+ font-size: 2rem;
+ line-height: 8rem;
+ transform: translateY(-50%); }
+
+.media-container .media-details {
+ text-align: center; }
+ .media-container .media-details img {
+ width: 50%; }
+ .media-container .media-details h2 {
+ margin: 0;
+ font-size: 1.8rem; }
+ .media-container .media-details h5 {
+ color: #9BA2A6;
+ font-size: 1.1rem;
+ margin: 0; }
+
+.media-container h1 {
+ padding: 0 2rem 0.5rem !important; }
+
+.media-container .admin-form-wrapper {
+ width: 100%;
+ padding-bottom: 20px; }
+
+.spinning-wheel {
+ text-align: center; }
+
+/* Media in-page modal */
+.media-container.in-modal h1 {
+ font-size: 30px !important;
+ margin-top: 0px; }
+
+.media-container.in-modal a {
+ color: #333; }
+
+.media-container.in-modal .pages-list li {
+ list-style-type: none;
+ margin-left: 0; }
+
+.remodal.remodal-mediapicker {
+ max-width: 70vw;
+ padding: 0; }
+
+.media-container {
+ height: 70vh; }
+ .media-container .grid {
+ justify-content: flex-start; }
+ .media-container.in-modal .gm-scrollbar {
+ background: rgba(255, 255, 255, 0.2); }
+ .media-container.in-modal .gm-scrollbar .thumb {
+ background-color: rgba(0, 0, 0, 0.2) !important; }
+ .media-container.in-modal .gm-scrollbar .thumb:hover, .media-container.in-modal .gm-scrollbar .thumb.active {
+ background-color: rgba(0, 0, 0, 0.3) !important; }
+ .media-container h5 {
+ border-bottom: 1px solid #ddd;
+ padding: 0.5rem 15px;
+ margin: 0;
+ height: 55px; }
+ .media-container .filter-wrapper {
+ float: right;
+ margin-right: 5px;
+ margin-top: 10px; }
+ .media-container .filter-date {
+ width: 150px; }
+ .media-container .filter-type {
+ width: 100px;
+ margin-right: 15px; }
+ .media-container .pages-list-container {
+ position: relative; }
+ .media-container .pages-list-container .pages-list {
+ border-top: 0;
+ padding-right: 10px;
+ font-size: 90%; }
+ .media-container .pages-list-container .pages-list .row {
+ transition: none !important;
+ line-height: 2rem; }
+ .media-container .pages-list-container .pages-list .depth-1 .row {
+ padding-left: 2rem; }
+ .media-container .pages-list-container .pages-list .depth-2 .row {
+ padding-left: 3rem; }
+ .media-container .pages-list-container .pages-list .depth-3 .row {
+ padding-left: 4rem; }
+ .media-container .pages-list-container .pages-list .depth-4 .row {
+ padding-left: 5rem; }
+ .media-container .pages-list-container .pages-list .depth-5 .row {
+ padding-left: 6rem; }
+ .media-container .pages-list-container .pages-list .depth-6 .row {
+ padding-left: 7rem; }
+ .media-container .pages-list-container .pages-list .depth-7 .row {
+ padding-left: 8rem; }
+ .media-container .pages-list-container .pages-list .depth-8 .row {
+ padding-left: 9rem; }
+ .media-container .pages-list-container .pages-list .depth-9 .row {
+ padding-left: 10rem; }
+ .media-container .pages-list-container .mediapicker-scroll {
+ position: absolute;
+ top: 55px;
+ bottom: 3px;
+ height: inherit; }
+ .media-container .thumbs-list-container {
+ position: relative; }
+ .media-container .thumbs-list-container .media-range {
+ position: absolute;
+ right: 15px;
+ bottom: 5px; }
+ .media-container .thumbs-list-container .mediapicker-scroll {
+ position: absolute;
+ top: 55px;
+ bottom: 30px;
+ height: inherit; }
+ .media-container .thumbs-list-container .gm-scrollbar.-horizontal {
+ display: none; }
+ .media-container #admin-media {
+ padding: 15px;
+ height: 100%;
+ align-items: flex-start;
+ align-content: flex-start; }
+ .media-container #admin-media .card-item {
+ width: 100px;
+ padding: 2px;
+ margin: 0 5px 5px 0;
+ border: 0; }
+ .media-container #admin-media .card-item img {
+ display: block; }
+ .media-container #admin-media .admin-media-details {
+ position: relative; }
+ .media-container #admin-media .admin-media-details .admin-media-title {
+ position: absolute;
+ width: 100%;
+ bottom: 0;
+ background: rgba(0, 0, 0, 0.3);
+ color: #fff;
+ font-size: 10px;
+ overflow: hidden;
+ line-height: 2;
+ text-indent: 2px;
+ white-space: nowrap; }
+
+[data-remodal-id="metadata"] h1 > * {
+ vertical-align: middle; }
+
+[data-remodal-id="metadata"] h1 strong {
+ display: inline-block;
+ max-width: 75%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap; }
+
+[data-remodal-id="metadata"] .metadata-preview {
+ display: flex;
+ margin: 0 3rem; }
+ [data-remodal-id="metadata"] .metadata-preview .meta-preview {
+ max-width: 200px; }
+ [data-remodal-id="metadata"] .metadata-preview .meta-content ul {
+ margin: 0; }
+
+/*
+ * This file is part of the Arnapou jqCron package.
+ *
+ * (c) Arnaud Buathier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+.jqCron-selector {
+ position: relative; }
+
+.jqCron-cross,
+.jqCron-selector-title {
+ cursor: pointer;
+ border-radius: 3px;
+ margin: 0 0.2em;
+ padding: 0 0.5em; }
+
+.jqCron-cross {
+ border-radius: 1em;
+ font-size: 80%;
+ padding: 0 0.3em; }
+
+.jqCron-selector-list {
+ left: 0.2em;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+ top: 1.5em;
+ z-index: 5; }
+
+.jqCron-selector-list li {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ cursor: default;
+ display: inline-block !important;
+ margin: 0;
+ padding: 0.1em 0.4em;
+ width: 100%; }
+
+.jqCron-selector-list.cols2 {
+ width: 4em; }
+
+.jqCron-selector-list.cols2 li {
+ width: 50%; }
+
+.jqCron-selector-list.cols3 {
+ width: 6em; }
+
+.jqCron-selector-list.cols3 li {
+ width: 33%; }
+
+.jqCron-selector-list.cols4 {
+ width: 8em; }
+
+.jqCron-selector-list.cols4 li {
+ width: 25%; }
+
+.jqCron-selector-list.cols5 {
+ width: 10em; }
+
+.jqCron-selector-list.cols5 li {
+ width: 20%; }
+
+#backups-stats #backups-usage {
+ position: relative;
+ margin-bottom: 1.5rem; }
+ #backups-stats #backups-usage h1 {
+ position: absolute;
+ right: 1rem;
+ top: 5px; }
+
+#backups-stats .backups-usage-wrapper {
+ height: 40px;
+ background: linear-gradient(90deg, #2ECC40 0%, #01FF70 20%, #FFDC00 40%, #FF851B 60%, #FF4136 80%, #85144b 100%); }
+ #backups-stats .backups-usage-wrapper > div {
+ float: right;
+ height: 40px; }
+ #backups-stats .backups-usage-wrapper > div.full {
+ width: 100%; }
+
+.backups-content #admin-dashboard {
+ display: block; }
+ .backups-content #admin-dashboard #backups-stats {
+ margin-left: 1rem;
+ margin-right: 1rem; }
+ .backups-content #admin-dashboard #backups-stats h1 {
+ padding: 0rem; }
+ @media only all and (max-width: 47.938em) {
+ .backups-content #admin-dashboard #backups-stats h1 {
+ font-size: 1.1rem; } }
+
+#admin-main .admin-block .scheduler-content .alert {
+ margin-top: -1rem;
+ margin-bottom: 2rem; }
+
+.scheduler-content .secondary-accent .button {
+ float: right;
+ margin-top: -3px; }
+
+.scheduler-content #cron-install {
+ padding: 0 1.5rem; }
+ .scheduler-content #cron-install pre {
+ padding: 0.5rem; }
+ .scheduler-content #cron-install.hide {
+ display: none; }
+
+#admin-main .admin-block .report-output .alert {
+ margin-top: 0;
+ margin-bottom: 0; }
+
+.report-output td .key {
+ font-weight: bold; }
+
+.direct-install-content {
+ padding: 30px; }
+ .direct-install-content .button {
+ margin-top: 10px;
+ margin-bottom: 50px; }
+
+/* Admin settings */
+.colorbar [data-hint]:after {
+ width: 300px !important;
+ margin-left: -300px; }
+
+.colorbar.current-scheme, .colorbar.predefined-scheme {
+ padding-bottom: 10px; }
+ .colorbar.current-scheme span, .colorbar.predefined-scheme span {
+ color: transparent; }
+
+.colorbar.predefined-scheme:hover {
+ cursor: pointer; }
+ .colorbar.predefined-scheme:hover span {
+ color: white; }
+ .colorbar.predefined-scheme:hover .light span {
+ color: black; }
+
+.colorbar .colorbar-element-container {
+ width: 9rem;
+ float: left;
+ display: block;
+ text-align: center;
+ background: white;
+ margin-bottom: 1px;
+ margin-right: 1px; }
+
+.colorbar .colorbar-element {
+ width: 100%;
+ text-align: center;
+ height: 4rem;
+ border-top: 0;
+ color: #333; }
+ .colorbar .colorbar-element span {
+ font-size: .7rem; }
+ .colorbar .colorbar-element input {
+ color: #333;
+ width: 100% !important; }
+ .colorbar .colorbar-element.light-text {
+ color: #fff; }
+ .colorbar .colorbar-element.light-text input {
+ color: #fff; }
+
+.colorbar .colorbar-title {
+ font-size: 0.8rem;
+ font-weight: bold;
+ padding: 1px;
+ background-color: rgba(0, 0, 0, 0.05); }
+
+.colorbar input {
+ width: 100%;
+ border: none;
+ font-size: 0.8rem;
+ text-align: center;
+ border-radius: 0;
+ height: 35px;
+ position: absolute;
+ background: transparent; }
+ .colorbar input:focus {
+ outline: none; }
+
+.colorbar .choose-predefined-scheme {
+ cursor: pointer; }
+
+.admin-preview-wrapper {
+ display: inline-block;
+ width: 8rem;
+ position: relative;
+ margin-right: 2rem; }
+
+.admin-preview-title {
+ text-align: center; }
+
+.admin-preview {
+ height: 10rem;
+ position: relative;
+ border-radius: 4px;
+ border-width: 2px !important; }
+
+.ap-overlay {
+ cursor: pointer;
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ border-radius: 4px;
+ z-index: 2;
+ text-align: center;
+ transition: opacity .4s ease; }
+ .ap-overlay:hover {
+ opacity: 1;
+ background: rgba(0, 0, 0, 0.4); }
+ .ap-overlay b {
+ display: inline-block;
+ font-weight: normal;
+ margin-top: 4rem;
+ background: #111;
+ color: #bbb;
+ border-radius: 4px;
+ padding: 4px 10px; }
+ .ap-overlay b:hover {
+ color: #fff;
+ background: #000; }
+
+.ap-sidebar {
+ position: absolute;
+ width: 25%;
+ top: 0;
+ left: 0;
+ bottom: 0; }
+
+.ap-logo {
+ height: 10%;
+ text-align: center; }
+ .ap-logo::after {
+ display: block;
+ position: relative;
+ top: 50%;
+ margin: 0 auto;
+ transform: translateY(-50%);
+ content: '';
+ height: 8px;
+ width: 25%; }
+
+.ap-nav {
+ padding: 5px 10px; }
+
+.ap-text, .ap-text::before, .ap-text::after {
+ margin-top: 4px;
+ position: relative;
+ display: block;
+ margin-bottom: 3px;
+ height: 2px;
+ content: ''; }
+
+.ap-text::before {
+ margin-top: 0;
+ top: 7px; }
+
+.ap-text::after {
+ margin-top: 0;
+ top: 9px; }
+
+.ap-active {
+ display: block;
+ margin: 19px -10px 0;
+ margin-bottom: 5px;
+ padding: 5px 10px 5px 7px;
+ border-left-width: 3px;
+ border-left-style: solid; }
+ .ap-active::after {
+ display: block;
+ content: '';
+ height: 2px; }
+
+.ap-toolbar {
+ position: absolute;
+ left: 25%;
+ right: 0;
+ height: 10%;
+ padding: 0 10px; }
+ .ap-toolbar::after {
+ display: block;
+ position: relative;
+ top: 50%;
+ transform: translateY(-50%);
+ content: '';
+ width: 33%;
+ height: 4px; }
+
+.ap-button {
+ float: right;
+ position: relative;
+ top: 50%;
+ transform: translateY(-50%);
+ height: 8px;
+ width: 25px; }
+
+.ap-page {
+ position: absolute;
+ top: 10%;
+ left: 25%;
+ right: 0;
+ bottom: 0;
+ padding: 10px; }
+
+.ap-content {
+ height: 100%;
+ overflow: hidden; }
+
+.ap-title {
+ display: block;
+ height: 4px;
+ width: 25%;
+ margin: 8px 10px 5px; }
+
+.ap-content .ap-text {
+ margin-left: 10px;
+ margin-right: 10px; }
+
+.ap-update, .ap-notice, .ap-critical {
+ margin-top: 19px;
+ display: block;
+ content: '';
+ padding: 5px 10px; }
+ .ap-update::after, .ap-notice::after, .ap-critical::after {
+ display: block;
+ content: '';
+ height: 2px;
+ width: 50%; }
+
+.ap-update {
+ margin-top: 3px; }
+
+[data-simplebar] {
+ position: relative;
+ flex-direction: column;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+ align-content: flex-start;
+ align-items: flex-start; }
+
+.simplebar-wrapper {
+ overflow: hidden;
+ width: inherit;
+ height: inherit;
+ max-width: inherit;
+ max-height: inherit; }
+
+.simplebar-mask {
+ direction: inherit;
+ position: absolute;
+ overflow: hidden;
+ padding: 0;
+ margin: 0;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ width: auto !important;
+ height: auto !important;
+ z-index: 0; }
+
+.simplebar-offset {
+ direction: inherit !important;
+ box-sizing: inherit !important;
+ resize: none !important;
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ padding: 0;
+ margin: 0;
+ -webkit-overflow-scrolling: touch; }
+
+.simplebar-content-wrapper {
+ direction: inherit;
+ box-sizing: border-box !important;
+ position: relative;
+ display: block;
+ height: 100%;
+ /* Required for horizontal native scrollbar to not appear if parent is taller than natural height */
+ width: auto;
+ max-width: 100%;
+ /* Not required for horizontal scroll to trigger */
+ max-height: 100%;
+ /* Needed for vertical scroll to trigger */
+ scrollbar-width: none;
+ -ms-overflow-style: none; }
+
+.simplebar-content-wrapper::-webkit-scrollbar,
+.simplebar-hide-scrollbar::-webkit-scrollbar {
+ width: 0;
+ height: 0; }
+
+.simplebar-content:before,
+.simplebar-content:after {
+ content: ' ';
+ display: table; }
+
+.simplebar-placeholder {
+ max-height: 100%;
+ max-width: 100%;
+ width: 100%;
+ pointer-events: none; }
+
+.simplebar-height-auto-observer-wrapper {
+ box-sizing: inherit !important;
+ height: 100%;
+ width: 100%;
+ max-width: 1px;
+ position: relative;
+ float: left;
+ max-height: 1px;
+ overflow: hidden;
+ z-index: -1;
+ padding: 0;
+ margin: 0;
+ pointer-events: none;
+ flex-grow: inherit;
+ flex-shrink: 0;
+ flex-basis: 0; }
+
+.simplebar-height-auto-observer {
+ box-sizing: inherit;
+ display: block;
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 1000%;
+ width: 1000%;
+ min-height: 1px;
+ min-width: 1px;
+ overflow: hidden;
+ pointer-events: none;
+ z-index: -1; }
+
+.simplebar-track {
+ z-index: 1;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ pointer-events: none;
+ overflow: hidden; }
+
+[data-simplebar].simplebar-dragging .simplebar-content {
+ pointer-events: none;
+ user-select: none;
+ -webkit-user-select: none; }
+
+[data-simplebar].simplebar-dragging .simplebar-track {
+ pointer-events: all; }
+
+.simplebar-scrollbar {
+ position: absolute;
+ left: 0;
+ right: 0;
+ min-height: 10px; }
+
+.simplebar-scrollbar:before {
+ position: absolute;
+ content: '';
+ border-radius: 7px;
+ left: 2px;
+ right: 2px;
+ opacity: 0;
+ transition: opacity 0.2s linear; }
+
+.simplebar-scrollbar.simplebar-visible:before {
+ /* When hovered, remove all transitions from drag handle */
+ opacity: 0.3;
+ transition: opacity 0s linear; }
+
+.simplebar-track.simplebar-vertical {
+ top: 0;
+ width: 11px; }
+
+.simplebar-track.simplebar-vertical .simplebar-scrollbar:before {
+ top: 2px;
+ bottom: 2px; }
+
+.simplebar-track.simplebar-horizontal {
+ left: 0;
+ height: 11px; }
+
+.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before {
+ height: 100%;
+ left: 2px;
+ right: 2px; }
+
+.simplebar-track.simplebar-horizontal .simplebar-scrollbar {
+ right: auto;
+ left: 0;
+ top: 2px;
+ height: 7px;
+ min-height: 0;
+ min-width: 10px;
+ width: auto; }
+
+/* Rtl support */
+[data-simplebar-direction='rtl'] .simplebar-track.simplebar-vertical {
+ right: auto;
+ left: 0; }
+
+.hs-dummy-scrollbar-size {
+ direction: rtl;
+ position: fixed;
+ opacity: 0;
+ visibility: hidden;
+ height: 500px;
+ width: 500px;
+ overflow-y: hidden;
+ overflow-x: scroll; }
+
+.simplebar-hide-scrollbar {
+ position: fixed;
+ left: 0;
+ visibility: hidden;
+ overflow-y: scroll;
+ scrollbar-width: none;
+ -ms-overflow-style: none; }
+
+.jquery-horizontal-scroll-wrap {
+ position: relative; }
+ .jquery-horizontal-scroll-wrap .nav-next, .jquery-horizontal-scroll-wrap .nav-prev {
+ position: absolute;
+ z-index: 5;
+ top: 50%;
+ font-size: 20px;
+ line-height: 20px;
+ display: block;
+ padding: 30px 8px;
+ color: #fff !important;
+ background: #000;
+ background: rgba(0, 0, 0, 0.65);
+ cursor: pointer;
+ margin-top: -40px; }
+ .jquery-horizontal-scroll-wrap .nav-next.hide, .jquery-horizontal-scroll-wrap .nav-prev.hide {
+ display: none; }
+ .jquery-horizontal-scroll-wrap .nav-next:hover, .jquery-horizontal-scroll-wrap .nav-next:focus, .jquery-horizontal-scroll-wrap .nav-prev:hover, .jquery-horizontal-scroll-wrap .nav-prev:focus {
+ opacity: 1; }
+ .jquery-horizontal-scroll-wrap .nav-next:before, .jquery-horizontal-scroll-wrap .nav-prev:before {
+ display: inline;
+ font-family: "FontAwesome"; }
+ .jquery-horizontal-scroll-wrap .nav-next {
+ right: 0; }
+ .jquery-horizontal-scroll-wrap .nav-next:before {
+ content: "\f105"; }
+ .jquery-horizontal-scroll-wrap .nav-prev {
+ left: 0; }
+ .jquery-horizontal-scroll-wrap .nav-prev:before {
+ content: "\f104"; }
+ .jquery-horizontal-scroll-wrap .jquery-horizontal-scroll {
+ overflow: auto;
+ position: relative; }
+
+/*# sourceMappingURL=template.css.map */
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css-compiled/template.css.map b/source/user/plugins/admin/themes/grav/css-compiled/template.css.map
new file mode 100644
index 0000000..5c44d60
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css-compiled/template.css.map
@@ -0,0 +1,129 @@
+{
+ "version": 3,
+ "file": "template.css",
+ "sources": [
+ "../scss/template.scss",
+ "../hdr0",
+ "../scss/vendor/bourbon/_bourbon.scss",
+ "../scss/vendor/bourbon/settings/_prefixer.scss",
+ "../scss/vendor/bourbon/settings/_px-to-em.scss",
+ "../scss/vendor/bourbon/helpers/_convert-units.scss",
+ "../scss/vendor/bourbon/helpers/_gradient-positions-parser.scss",
+ "../scss/vendor/bourbon/helpers/_is-num.scss",
+ "../scss/vendor/bourbon/helpers/_linear-angle-parser.scss",
+ "../scss/vendor/bourbon/helpers/_linear-gradient-parser.scss",
+ "../scss/vendor/bourbon/helpers/_linear-positions-parser.scss",
+ "../scss/vendor/bourbon/helpers/_linear-side-corner-parser.scss",
+ "../scss/vendor/bourbon/helpers/_radial-arg-parser.scss",
+ "../scss/vendor/bourbon/helpers/_radial-positions-parser.scss",
+ "../scss/vendor/bourbon/helpers/_radial-gradient-parser.scss",
+ "../scss/vendor/bourbon/helpers/_render-gradients.scss",
+ "../scss/vendor/bourbon/helpers/_shape-size-stripper.scss",
+ "../scss/vendor/bourbon/helpers/_str-to-num.scss",
+ "../scss/vendor/bourbon/functions/_assign.scss",
+ "../scss/vendor/bourbon/functions/_color-lightness.scss",
+ "../scss/vendor/bourbon/functions/_flex-grid.scss",
+ "../scss/vendor/bourbon/functions/_golden-ratio.scss",
+ "../scss/vendor/bourbon/functions/_grid-width.scss",
+ "../scss/vendor/bourbon/functions/_modular-scale.scss",
+ "../scss/vendor/bourbon/functions/_px-to-em.scss",
+ "../scss/vendor/bourbon/functions/_px-to-rem.scss",
+ "../scss/vendor/bourbon/functions/_strip-units.scss",
+ "../scss/vendor/bourbon/functions/_tint-shade.scss",
+ "../scss/vendor/bourbon/functions/_transition-property-name.scss",
+ "../scss/vendor/bourbon/functions/_unpack.scss",
+ "../scss/vendor/bourbon/css3/_animation.scss",
+ "../scss/vendor/bourbon/css3/_appearance.scss",
+ "../scss/vendor/bourbon/css3/_backface-visibility.scss",
+ "../scss/vendor/bourbon/css3/_background.scss",
+ "../scss/vendor/bourbon/css3/_background-image.scss",
+ "../scss/vendor/bourbon/css3/_border-image.scss",
+ "../scss/vendor/bourbon/css3/_border-radius.scss",
+ "../scss/vendor/bourbon/css3/_box-sizing.scss",
+ "../scss/vendor/bourbon/css3/_calc.scss",
+ "../scss/vendor/bourbon/css3/_columns.scss",
+ "../scss/vendor/bourbon/css3/_filter.scss",
+ "../scss/vendor/bourbon/css3/_flex-box.scss",
+ "../scss/vendor/bourbon/css3/_font-face.scss",
+ "../scss/vendor/bourbon/css3/_hyphens.scss",
+ "../scss/vendor/bourbon/css3/_hidpi-media-query.scss",
+ "../scss/vendor/bourbon/css3/_image-rendering.scss",
+ "../scss/vendor/bourbon/css3/_keyframes.scss",
+ "../scss/vendor/bourbon/css3/_linear-gradient.scss",
+ "../scss/vendor/bourbon/css3/_perspective.scss",
+ "../scss/vendor/bourbon/css3/_radial-gradient.scss",
+ "../scss/vendor/bourbon/css3/_transform.scss",
+ "../scss/vendor/bourbon/css3/_transition.scss",
+ "../scss/vendor/bourbon/css3/_user-select.scss",
+ "../scss/vendor/bourbon/css3/_placeholder.scss",
+ "../scss/vendor/bourbon/addons/_button.scss",
+ "../scss/vendor/bourbon/addons/_clearfix.scss",
+ "../scss/vendor/bourbon/addons/_directional-values.scss",
+ "../scss/vendor/bourbon/addons/_ellipsis.scss",
+ "../scss/vendor/bourbon/addons/_font-family.scss",
+ "../scss/vendor/bourbon/addons/_hide-text.scss",
+ "../scss/vendor/bourbon/addons/_html5-input-types.scss",
+ "../scss/vendor/bourbon/addons/_position.scss",
+ "../scss/vendor/bourbon/addons/_prefixer.scss",
+ "../scss/vendor/bourbon/addons/_retina-image.scss",
+ "../scss/vendor/bourbon/addons/_size.scss",
+ "../scss/vendor/bourbon/addons/_timing-functions.scss",
+ "../scss/vendor/bourbon/addons/_triangle.scss",
+ "../scss/vendor/bourbon/addons/_word-wrap.scss",
+ "../scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss",
+ "../scss/configuration/nucleus/_base.scss",
+ "../scss/configuration/nucleus/_core.scss",
+ "../scss/configuration/nucleus/_breakpoints.scss",
+ "../scss/configuration/nucleus/_layout.scss",
+ "../scss/configuration/nucleus/_typography.scss",
+ "../scss/configuration/nucleus/_nav.scss",
+ "../scss/configuration/template/_base.scss",
+ "../scss/configuration/template/_colors.scss",
+ "../scss/configuration/template/_variables.scss",
+ "../scss/nucleus/functions/_base.scss",
+ "../scss/nucleus/functions/_direction.scss",
+ "../scss/nucleus/functions/_range.scss",
+ "../scss/nucleus/mixins/_base.scss",
+ "../scss/nucleus/mixins/_breakpoints.scss",
+ "../scss/nucleus/mixins/_utilities.scss",
+ "../scss/template/modules/_base.scss",
+ "../scss/template/modules/_buttons.scss",
+ "../scss/template/modules/_colorpicker.scss",
+ "../scss/template/modules/_datetimepicker.scss",
+ "../scss/template/modules/_finderjs.scss",
+ "../scss/template/modules/_toggle-switch.scss",
+ "../scss/template/_colors.scss",
+ "../scss/template/_core.scss",
+ "../scss/template/_extensions.scss",
+ "../scss/template/_utilities.scss",
+ "../scss/template/_header.scss",
+ "../scss/template/_typography.scss",
+ "../scss/template/_fonts.scss",
+ "../scss/template/_forms.scss",
+ "../scss/template/_tables.scss",
+ "../scss/template/_buttons.scss",
+ "../scss/template/_errors.scss",
+ "../scss/template/_login.scss",
+ "../scss/template/_admin.scss",
+ "../scss/template/_pages.scss",
+ "../scss/template/_remodal.scss",
+ "../scss/template/_tabs.scss",
+ "../scss/template/_editor.scss",
+ "../scss/template/_dropzone.scss",
+ "../scss/template/_toastr.scss",
+ "../scss/template/_gpm.scss",
+ "../scss/template/_phpinfo.scss",
+ "../scss/template/_nav-toggle.scss",
+ "../scss/template/_notifications.scss",
+ "../scss/template/_changelog.scss",
+ "../scss/template/_media.scss",
+ "../scss/template/_jqcron.scss",
+ "../scss/template/_tools.scss",
+ "../scss/template/_whitelabel.scss",
+ "../scss/template/_scrollbars.scss",
+ "../scss/template/_horizontal-scroll.scss",
+ "../scss/template/_custom.scss"
+ ],
+ "names": [],
+ "mappings": "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"
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css/chartist.min.css b/source/user/plugins/admin/themes/grav/css/chartist.min.css
new file mode 100755
index 0000000..f348f0a
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/chartist.min.css
@@ -0,0 +1 @@
+.ct-double-octave:after,.ct-major-eleventh:after,.ct-major-second:after,.ct-major-seventh:after,.ct-major-sixth:after,.ct-major-tenth:after,.ct-major-third:after,.ct-major-twelfth:after,.ct-minor-second:after,.ct-minor-seventh:after,.ct-minor-sixth:after,.ct-minor-third:after,.ct-octave:after,.ct-perfect-fifth:after,.ct-perfect-fourth:after,.ct-square:after{content:"";clear:both}.ct-double-octave:after,.ct-double-octave:before,.ct-golden-section:after,.ct-major-eleventh:after,.ct-major-eleventh:before,.ct-major-second:after,.ct-major-second:before,.ct-major-seventh:after,.ct-major-seventh:before,.ct-major-sixth:after,.ct-major-sixth:before,.ct-major-tenth:after,.ct-major-tenth:before,.ct-major-third:after,.ct-major-third:before,.ct-major-twelfth:after,.ct-major-twelfth:before,.ct-minor-second:after,.ct-minor-second:before,.ct-minor-seventh:after,.ct-minor-seventh:before,.ct-minor-sixth:after,.ct-minor-sixth:before,.ct-minor-third:after,.ct-minor-third:before,.ct-octave:after,.ct-octave:before,.ct-perfect-fifth:after,.ct-perfect-fifth:before,.ct-perfect-fourth:after,.ct-perfect-fourth:before,.ct-square:after,.ct-square:before{content:""}.ct-label{fill:rgba(0,0,0,.4);color:rgba(0,0,0,.4);font-size:.75rem;line-height:1}.ct-chart-bar .ct-label,.ct-chart-line .ct-label{display:block;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-label.ct-vertical.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-end;-webkit-justify-content:flex-end;-ms-flex-pack:flex-end;justify-content:flex-end;text-align:right;text-anchor:end}.ct-label.ct-vertical.ct-end{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar .ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;text-anchor:start}.ct-chart-bar .ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-end;-webkit-justify-content:flex-end;-ms-flex-pack:flex-end;justify-content:flex-end;text-align:right;text-anchor:end}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:end}.ct-grid{stroke:rgba(0,0,0,.2);stroke-width:1px;stroke-dasharray:2px}.ct-point{stroke-width:10px;stroke-linecap:round}.ct-line{fill:none;stroke-width:4px}.ct-area{stroke:none;fill-opacity:.1}.ct-bar{fill:none;stroke-width:10px}.ct-slice-donut{fill:none;stroke-width:60px}.ct-series-a .ct-bar,.ct-series-a .ct-line,.ct-series-a .ct-point,.ct-series-a .ct-slice-donut{stroke:#d70206}.ct-series-a .ct-area,.ct-series-a .ct-slice-pie{fill:#d70206}.ct-series-b .ct-bar,.ct-series-b .ct-line,.ct-series-b .ct-point,.ct-series-b .ct-slice-donut{stroke:#f05b4f}.ct-series-b .ct-area,.ct-series-b .ct-slice-pie{fill:#f05b4f}.ct-series-c .ct-bar,.ct-series-c .ct-line,.ct-series-c .ct-point,.ct-series-c .ct-slice-donut{stroke:#f4c63d}.ct-series-c .ct-area,.ct-series-c .ct-slice-pie{fill:#f4c63d}.ct-series-d .ct-bar,.ct-series-d .ct-line,.ct-series-d .ct-point,.ct-series-d .ct-slice-donut{stroke:#d17905}.ct-series-d .ct-area,.ct-series-d .ct-slice-pie{fill:#d17905}.ct-series-e .ct-bar,.ct-series-e .ct-line,.ct-series-e .ct-point,.ct-series-e .ct-slice-donut{stroke:#453d3f}.ct-series-e .ct-area,.ct-series-e .ct-slice-pie{fill:#453d3f}.ct-series-f .ct-bar,.ct-series-f .ct-line,.ct-series-f .ct-point,.ct-series-f .ct-slice-donut{stroke:#59922b}.ct-series-f .ct-area,.ct-series-f .ct-slice-pie{fill:#59922b}.ct-series-g .ct-bar,.ct-series-g .ct-line,.ct-series-g .ct-point,.ct-series-g .ct-slice-donut{stroke:#0544d3}.ct-series-g .ct-area,.ct-series-g .ct-slice-pie{fill:#0544d3}.ct-series-h .ct-bar,.ct-series-h .ct-line,.ct-series-h .ct-point,.ct-series-h .ct-slice-donut{stroke:#6b0392}.ct-series-h .ct-area,.ct-series-h .ct-slice-pie{fill:#6b0392}.ct-series-i .ct-bar,.ct-series-i .ct-line,.ct-series-i .ct-point,.ct-series-i .ct-slice-donut{stroke:#f05b4f}.ct-series-i .ct-area,.ct-series-i .ct-slice-pie{fill:#f05b4f}.ct-series-j .ct-bar,.ct-series-j .ct-line,.ct-series-j .ct-point,.ct-series-j .ct-slice-donut{stroke:#dda458}.ct-series-j .ct-area,.ct-series-j .ct-slice-pie{fill:#dda458}.ct-series-k .ct-bar,.ct-series-k .ct-line,.ct-series-k .ct-point,.ct-series-k .ct-slice-donut{stroke:#eacf7d}.ct-series-k .ct-area,.ct-series-k .ct-slice-pie{fill:#eacf7d}.ct-series-l .ct-bar,.ct-series-l .ct-line,.ct-series-l .ct-point,.ct-series-l .ct-slice-donut{stroke:#86797d}.ct-series-l .ct-area,.ct-series-l .ct-slice-pie{fill:#86797d}.ct-series-m .ct-bar,.ct-series-m .ct-line,.ct-series-m .ct-point,.ct-series-m .ct-slice-donut{stroke:#b2c326}.ct-series-m .ct-area,.ct-series-m .ct-slice-pie{fill:#b2c326}.ct-series-n .ct-bar,.ct-series-n .ct-line,.ct-series-n .ct-point,.ct-series-n .ct-slice-donut{stroke:#6188e2}.ct-series-n .ct-area,.ct-series-n .ct-slice-pie{fill:#6188e2}.ct-series-o .ct-bar,.ct-series-o .ct-line,.ct-series-o .ct-point,.ct-series-o .ct-slice-donut{stroke:#a748ca}.ct-series-o .ct-area,.ct-series-o .ct-slice-pie{fill:#a748ca}.ct-square{display:block;position:relative;width:100%}.ct-square:before{display:block;float:left;width:0;height:0;padding-bottom:100%}.ct-square:after{display:table}.ct-square>svg{display:block;position:absolute;top:0;left:0}.ct-minor-second{display:block;position:relative;width:100%}.ct-minor-second:before{display:block;float:left;width:0;height:0;padding-bottom:93.75%}.ct-minor-second:after{display:table}.ct-minor-second>svg{display:block;position:absolute;top:0;left:0}.ct-major-second{display:block;position:relative;width:100%}.ct-major-second:before{display:block;float:left;width:0;height:0;padding-bottom:88.8888888889%}.ct-major-second:after{display:table}.ct-major-second>svg{display:block;position:absolute;top:0;left:0}.ct-minor-third{display:block;position:relative;width:100%}.ct-minor-third:before{display:block;float:left;width:0;height:0;padding-bottom:83.3333333333%}.ct-minor-third:after{display:table}.ct-minor-third>svg{display:block;position:absolute;top:0;left:0}.ct-major-third{display:block;position:relative;width:100%}.ct-major-third:before{display:block;float:left;width:0;height:0;padding-bottom:80%}.ct-major-third:after{display:table}.ct-major-third>svg{display:block;position:absolute;top:0;left:0}.ct-perfect-fourth{display:block;position:relative;width:100%}.ct-perfect-fourth:before{display:block;float:left;width:0;height:0;padding-bottom:75%}.ct-perfect-fourth:after{display:table}.ct-perfect-fourth>svg{display:block;position:absolute;top:0;left:0}.ct-perfect-fifth{display:block;position:relative;width:100%}.ct-perfect-fifth:before{display:block;float:left;width:0;height:0;padding-bottom:66.6666666667%}.ct-perfect-fifth:after{display:table}.ct-perfect-fifth>svg{display:block;position:absolute;top:0;left:0}.ct-minor-sixth{display:block;position:relative;width:100%}.ct-minor-sixth:before{display:block;float:left;width:0;height:0;padding-bottom:62.5%}.ct-minor-sixth:after{display:table}.ct-minor-sixth>svg{display:block;position:absolute;top:0;left:0}.ct-golden-section{display:block;position:relative;width:100%}.ct-golden-section:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:61.804697157%}.ct-golden-section:after{display:table;clear:both}.ct-golden-section>svg{display:block;position:absolute;top:0;left:0}.ct-major-sixth{display:block;position:relative;width:100%}.ct-major-sixth:before{display:block;float:left;width:0;height:0;padding-bottom:60%}.ct-major-sixth:after{display:table}.ct-major-sixth>svg{display:block;position:absolute;top:0;left:0}.ct-minor-seventh{display:block;position:relative;width:100%}.ct-minor-seventh:before{display:block;float:left;width:0;height:0;padding-bottom:56.25%}.ct-minor-seventh:after{display:table}.ct-minor-seventh>svg{display:block;position:absolute;top:0;left:0}.ct-major-seventh{display:block;position:relative;width:100%}.ct-major-seventh:before{display:block;float:left;width:0;height:0;padding-bottom:53.3333333333%}.ct-major-seventh:after{display:table}.ct-major-seventh>svg{display:block;position:absolute;top:0;left:0}.ct-octave{display:block;position:relative;width:100%}.ct-octave:before{display:block;float:left;width:0;height:0;padding-bottom:50%}.ct-octave:after{display:table}.ct-octave>svg{display:block;position:absolute;top:0;left:0}.ct-major-tenth{display:block;position:relative;width:100%}.ct-major-tenth:before{display:block;float:left;width:0;height:0;padding-bottom:40%}.ct-major-tenth:after{display:table}.ct-major-tenth>svg{display:block;position:absolute;top:0;left:0}.ct-major-eleventh{display:block;position:relative;width:100%}.ct-major-eleventh:before{display:block;float:left;width:0;height:0;padding-bottom:37.5%}.ct-major-eleventh:after{display:table}.ct-major-eleventh>svg{display:block;position:absolute;top:0;left:0}.ct-major-twelfth{display:block;position:relative;width:100%}.ct-major-twelfth:before{display:block;float:left;width:0;height:0;padding-bottom:33.3333333333%}.ct-major-twelfth:after{display:table}.ct-major-twelfth>svg{display:block;position:absolute;top:0;left:0}.ct-double-octave{display:block;position:relative;width:100%}.ct-double-octave:before{display:block;float:left;width:0;height:0;padding-bottom:25%}.ct-double-octave:after{display:table}.ct-double-octave>svg{display:block;position:absolute;top:0;left:0}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/codemirror.css b/source/user/plugins/admin/themes/grav/css/codemirror/codemirror.css
new file mode 100644
index 0000000..e703d59
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/codemirror.css
@@ -0,0 +1,332 @@
+/* BASICS */
+
+.CodeMirror {
+ /* Set height, width, borders, and global font properties here */
+ font-family: monospace;
+ height: 300px;
+ color: black;
+}
+
+/* PADDING */
+
+.CodeMirror-lines {
+ padding: 4px 0; /* Vertical padding around content */
+}
+.CodeMirror pre {
+ padding: 0 4px; /* Horizontal padding of content */
+}
+
+.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
+ background-color: white; /* The little square between H and V scrollbars */
+}
+
+/* GUTTER */
+
+.CodeMirror-gutters {
+ border-right: 1px solid #ddd;
+ background-color: #f7f7f7;
+ white-space: nowrap;
+}
+.CodeMirror-linenumbers {}
+.CodeMirror-linenumber {
+ padding: 0 3px 0 5px;
+ min-width: 20px;
+ text-align: right;
+ color: #999;
+ white-space: nowrap;
+}
+
+.CodeMirror-guttermarker { color: black; }
+.CodeMirror-guttermarker-subtle { color: #999; }
+
+/* CURSOR */
+
+.CodeMirror .CodeMirror-cursor {
+ border-left: 1px solid black;
+}
+/* Shown when moving in bi-directional text */
+.CodeMirror .CodeMirror-secondarycursor {
+ border-left: 1px solid silver;
+}
+.CodeMirror.cm-fat-cursor div.CodeMirror-cursor {
+ width: auto;
+ border: 0;
+ background: #7e7;
+}
+.CodeMirror.cm-fat-cursor div.CodeMirror-cursors {
+ z-index: 1;
+}
+
+.cm-animate-fat-cursor {
+ width: auto;
+ border: 0;
+ -webkit-animation: blink 1.06s steps(1) infinite;
+ -moz-animation: blink 1.06s steps(1) infinite;
+ animation: blink 1.06s steps(1) infinite;
+ background-color: #7e7;
+}
+@-moz-keyframes blink {
+ 0% {}
+ 50% { background-color: transparent; }
+ 100% {}
+}
+@-webkit-keyframes blink {
+ 0% {}
+ 50% { background-color: transparent; }
+ 100% {}
+}
+@keyframes blink {
+ 0% {}
+ 50% { background-color: transparent; }
+ 100% {}
+}
+
+/* Can style cursor different in overwrite (non-insert) mode */
+div.CodeMirror-overwrite div.CodeMirror-cursor {}
+
+.cm-tab { display: inline-block; text-decoration: inherit; }
+
+.CodeMirror-ruler {
+ border-left: 1px solid #ccc;
+ position: absolute;
+}
+
+/* DEFAULT THEME */
+
+.cm-s-default .cm-header {color: blue;}
+.cm-s-default .cm-quote {color: #090;}
+.cm-negative {color: #d44;}
+.cm-positive {color: #292;}
+.cm-header, .cm-strong {font-weight: bold;}
+.cm-em {font-style: italic;}
+.cm-link {text-decoration: underline;}
+.cm-strikethrough {text-decoration: line-through;}
+
+.cm-s-default .cm-keyword {color: #708;}
+.cm-s-default .cm-atom {color: #219;}
+.cm-s-default .cm-number {color: #164;}
+.cm-s-default .cm-def {color: #00f;}
+.cm-s-default .cm-variable,
+.cm-s-default .cm-punctuation,
+.cm-s-default .cm-property,
+.cm-s-default .cm-operator {}
+.cm-s-default .cm-variable-2 {color: #05a;}
+.cm-s-default .cm-variable-3 {color: #085;}
+.cm-s-default .cm-comment {color: #a50;}
+.cm-s-default .cm-string {color: #a11;}
+.cm-s-default .cm-string-2 {color: #f50;}
+.cm-s-default .cm-meta {color: #555;}
+.cm-s-default .cm-qualifier {color: #555;}
+.cm-s-default .cm-builtin {color: #30a;}
+.cm-s-default .cm-bracket {color: #997;}
+.cm-s-default .cm-tag {color: #170;}
+.cm-s-default .cm-attribute {color: #00c;}
+.cm-s-default .cm-hr {color: #999;}
+.cm-s-default .cm-link {color: #00c;}
+
+.cm-s-default .cm-error {color: #f00;}
+.cm-invalidchar {color: #f00;}
+
+.CodeMirror-composing { border-bottom: 2px solid; }
+
+/* Default styles for common addons */
+
+div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
+div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
+.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
+.CodeMirror-activeline-background {background: #e8f2ff;}
+
+/* STOP */
+
+/* The rest of this file contains styles related to the mechanics of
+ the editor. You probably shouldn't touch them. */
+
+.CodeMirror {
+ position: relative;
+ overflow: hidden;
+ background: white;
+}
+
+.CodeMirror-scroll {
+ overflow: scroll !important; /* Things will break if this is overridden */
+ /* 30px is the magic margin used to hide the element's real scrollbars */
+ /* See overflow: hidden in .CodeMirror */
+ margin-bottom: -30px; margin-right: -30px;
+ padding-bottom: 30px;
+ height: 100%;
+ outline: none; /* Prevent dragging from highlighting the element */
+ position: relative;
+}
+.CodeMirror-sizer {
+ position: relative;
+ border-right: 30px solid transparent;
+}
+
+/* The fake, visible scrollbars. Used to force redraw during scrolling
+ before actuall scrolling happens, thus preventing shaking and
+ flickering artifacts. */
+.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
+ position: absolute;
+ z-index: 6;
+ display: none;
+}
+.CodeMirror-vscrollbar {
+ right: 0; top: 0;
+ overflow-x: hidden;
+ overflow-y: scroll;
+}
+.CodeMirror-hscrollbar {
+ bottom: 0; left: 0;
+ overflow-y: hidden;
+ overflow-x: scroll;
+}
+.CodeMirror-scrollbar-filler {
+ right: 0; bottom: 0;
+}
+.CodeMirror-gutter-filler {
+ left: 0; bottom: 0;
+}
+
+.CodeMirror-gutters {
+ position: absolute; left: 0; top: 0;
+ z-index: 3;
+}
+.CodeMirror-gutter {
+ white-space: normal;
+ height: 100%;
+ display: inline-block;
+ margin-bottom: -30px;
+ /* Hack to make IE7 behave */
+ *zoom:1;
+ *display:inline;
+}
+.CodeMirror-gutter-wrapper {
+ position: absolute;
+ z-index: 4;
+ background: none !important;
+ border: none !important;
+}
+.CodeMirror-gutter-background {
+ position: absolute;
+ top: 0; bottom: 0;
+ z-index: 4;
+}
+.CodeMirror-gutter-elt {
+ position: absolute;
+ cursor: default;
+ z-index: 4;
+}
+.CodeMirror-gutter-wrapper {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+}
+
+.CodeMirror-lines {
+ cursor: text;
+ min-height: 1px; /* prevents collapsing before first draw */
+}
+.CodeMirror pre {
+ /* Reset some styles that the rest of the page might have set */
+ -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
+ border-width: 0;
+ background: transparent;
+ font-family: inherit;
+ font-size: inherit;
+ margin: 0;
+ white-space: pre;
+ word-wrap: normal;
+ line-height: inherit;
+ color: inherit;
+ z-index: 2;
+ position: relative;
+ overflow: visible;
+ -webkit-tap-highlight-color: transparent;
+}
+.CodeMirror-wrap pre {
+ word-wrap: break-word;
+ white-space: pre-wrap;
+ word-break: normal;
+}
+
+.CodeMirror-linebackground {
+ position: absolute;
+ left: 0; right: 0; top: 0; bottom: 0;
+ z-index: 0;
+}
+
+.CodeMirror-linewidget {
+ position: relative;
+ z-index: 2;
+ overflow: auto;
+}
+
+.CodeMirror-widget {}
+
+.CodeMirror-code {
+ outline: none;
+}
+
+/* Force content-box sizing for the elements where we expect it */
+.CodeMirror-scroll,
+.CodeMirror-sizer,
+.CodeMirror-gutter,
+.CodeMirror-gutters,
+.CodeMirror-linenumber {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+
+.CodeMirror-measure {
+ position: absolute;
+ width: 100%;
+ height: 0;
+ overflow: hidden;
+ visibility: hidden;
+}
+.CodeMirror-measure pre { position: static; }
+
+.CodeMirror div.CodeMirror-cursor {
+ position: absolute;
+ border-right: none;
+ width: 0;
+}
+
+div.CodeMirror-cursors {
+ visibility: hidden;
+ position: relative;
+ z-index: 3;
+}
+.CodeMirror-focused div.CodeMirror-cursors {
+ visibility: visible;
+}
+
+.CodeMirror-selected { background: #d9d9d9; }
+.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
+.CodeMirror-crosshair { cursor: crosshair; }
+.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
+.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
+
+.cm-searching {
+ background: #ffa;
+ background: rgba(255, 255, 0, .4);
+}
+
+/* IE7 hack to prevent it from returning funny offsetTops on the spans */
+.CodeMirror span { *vertical-align: text-bottom; }
+
+/* Used to force a border model for a node */
+.cm-force-border { padding-right: .1px; }
+
+@media print {
+ /* Hide the cursor when printing */
+ .CodeMirror div.CodeMirror-cursors {
+ visibility: hidden;
+ }
+}
+
+/* See issue #2901 */
+.cm-tab-wrap-hack:after { content: ''; }
+
+/* Help users use markselection to safely style text background */
+span.CodeMirror-selectedtext { background: none; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/3024-day.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/3024-day.css
new file mode 100644
index 0000000..7132655
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/3024-day.css
@@ -0,0 +1,41 @@
+/*
+
+ Name: 3024 day
+ Author: Jan T. Sott (http://github.com/idleberg)
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-3024-day.CodeMirror { background: #f7f7f7; color: #3a3432; }
+.cm-s-3024-day div.CodeMirror-selected { background: #d6d5d4; }
+
+.cm-s-3024-day .CodeMirror-line::selection, .cm-s-3024-day .CodeMirror-line > span::selection, .cm-s-3024-day .CodeMirror-line > span > span::selection { background: #d6d5d4; }
+.cm-s-3024-day .CodeMirror-line::-moz-selection, .cm-s-3024-day .CodeMirror-line > span::-moz-selection, .cm-s-3024-day .CodeMirror-line > span > span::selection { background: #d9d9d9; }
+
+.cm-s-3024-day .CodeMirror-gutters { background: #f7f7f7; border-right: 0px; }
+.cm-s-3024-day .CodeMirror-guttermarker { color: #db2d20; }
+.cm-s-3024-day .CodeMirror-guttermarker-subtle { color: #807d7c; }
+.cm-s-3024-day .CodeMirror-linenumber { color: #807d7c; }
+
+.cm-s-3024-day .CodeMirror-cursor { border-left: 1px solid #5c5855; }
+
+.cm-s-3024-day span.cm-comment { color: #cdab53; }
+.cm-s-3024-day span.cm-atom { color: #a16a94; }
+.cm-s-3024-day span.cm-number { color: #a16a94; }
+
+.cm-s-3024-day span.cm-property, .cm-s-3024-day span.cm-attribute { color: #01a252; }
+.cm-s-3024-day span.cm-keyword { color: #db2d20; }
+.cm-s-3024-day span.cm-string { color: #fded02; }
+
+.cm-s-3024-day span.cm-variable { color: #01a252; }
+.cm-s-3024-day span.cm-variable-2 { color: #01a0e4; }
+.cm-s-3024-day span.cm-def { color: #e8bbd0; }
+.cm-s-3024-day span.cm-bracket { color: #3a3432; }
+.cm-s-3024-day span.cm-tag { color: #db2d20; }
+.cm-s-3024-day span.cm-link { color: #a16a94; }
+.cm-s-3024-day span.cm-error { background: #db2d20; color: #5c5855; }
+
+.cm-s-3024-day .CodeMirror-activeline-background { background: #e8f2ff; }
+.cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: #a16a94 !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/3024-night.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/3024-night.css
new file mode 100644
index 0000000..adc5900
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/3024-night.css
@@ -0,0 +1,39 @@
+/*
+
+ Name: 3024 night
+ Author: Jan T. Sott (http://github.com/idleberg)
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-3024-night.CodeMirror { background: #090300; color: #d6d5d4; }
+.cm-s-3024-night div.CodeMirror-selected { background: #3a3432; }
+.cm-s-3024-night .CodeMirror-line::selection, .cm-s-3024-night .CodeMirror-line > span::selection, .cm-s-3024-night .CodeMirror-line > span > span::selection { background: rgba(58, 52, 50, .99); }
+.cm-s-3024-night .CodeMirror-line::-moz-selection, .cm-s-3024-night .CodeMirror-line > span::-moz-selection, .cm-s-3024-night .CodeMirror-line > span > span::-moz-selection { background: rgba(58, 52, 50, .99); }
+.cm-s-3024-night .CodeMirror-gutters { background: #090300; border-right: 0px; }
+.cm-s-3024-night .CodeMirror-guttermarker { color: #db2d20; }
+.cm-s-3024-night .CodeMirror-guttermarker-subtle { color: #5c5855; }
+.cm-s-3024-night .CodeMirror-linenumber { color: #5c5855; }
+
+.cm-s-3024-night .CodeMirror-cursor { border-left: 1px solid #807d7c; }
+
+.cm-s-3024-night span.cm-comment { color: #cdab53; }
+.cm-s-3024-night span.cm-atom { color: #a16a94; }
+.cm-s-3024-night span.cm-number { color: #a16a94; }
+
+.cm-s-3024-night span.cm-property, .cm-s-3024-night span.cm-attribute { color: #01a252; }
+.cm-s-3024-night span.cm-keyword { color: #db2d20; }
+.cm-s-3024-night span.cm-string { color: #fded02; }
+
+.cm-s-3024-night span.cm-variable { color: #01a252; }
+.cm-s-3024-night span.cm-variable-2 { color: #01a0e4; }
+.cm-s-3024-night span.cm-def { color: #e8bbd0; }
+.cm-s-3024-night span.cm-bracket { color: #d6d5d4; }
+.cm-s-3024-night span.cm-tag { color: #db2d20; }
+.cm-s-3024-night span.cm-link { color: #a16a94; }
+.cm-s-3024-night span.cm-error { background: #db2d20; color: #807d7c; }
+
+.cm-s-3024-night .CodeMirror-activeline-background { background: #2F2F2F; }
+.cm-s-3024-night .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/abcdef.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/abcdef.css
new file mode 100644
index 0000000..cf93530
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/abcdef.css
@@ -0,0 +1,32 @@
+.cm-s-abcdef.CodeMirror { background: #0f0f0f; color: #defdef; }
+.cm-s-abcdef div.CodeMirror-selected { background: #515151; }
+.cm-s-abcdef .CodeMirror-line::selection, .cm-s-abcdef .CodeMirror-line > span::selection, .cm-s-abcdef .CodeMirror-line > span > span::selection { background: rgba(56, 56, 56, 0.99); }
+.cm-s-abcdef .CodeMirror-line::-moz-selection, .cm-s-abcdef .CodeMirror-line > span::-moz-selection, .cm-s-abcdef .CodeMirror-line > span > span::-moz-selection { background: rgba(56, 56, 56, 0.99); }
+.cm-s-abcdef .CodeMirror-gutters { background: #555; border-right: 2px solid #314151; }
+.cm-s-abcdef .CodeMirror-guttermarker { color: #222; }
+.cm-s-abcdef .CodeMirror-guttermarker-subtle { color: azure; }
+.cm-s-abcdef .CodeMirror-linenumber { color: #FFFFFF; }
+.cm-s-abcdef .CodeMirror-cursor { border-left: 1px solid #00FF00; }
+
+.cm-s-abcdef span.cm-keyword { color: darkgoldenrod; font-weight: bold; }
+.cm-s-abcdef span.cm-atom { color: #77F; }
+.cm-s-abcdef span.cm-number { color: violet; }
+.cm-s-abcdef span.cm-def { color: #fffabc; }
+.cm-s-abcdef span.cm-variable { color: #abcdef; }
+.cm-s-abcdef span.cm-variable-2 { color: #cacbcc; }
+.cm-s-abcdef span.cm-variable-3, .cm-s-abcdef span.cm-type { color: #def; }
+.cm-s-abcdef span.cm-property { color: #fedcba; }
+.cm-s-abcdef span.cm-operator { color: #ff0; }
+.cm-s-abcdef span.cm-comment { color: #7a7b7c; font-style: italic;}
+.cm-s-abcdef span.cm-string { color: #2b4; }
+.cm-s-abcdef span.cm-meta { color: #C9F; }
+.cm-s-abcdef span.cm-qualifier { color: #FFF700; }
+.cm-s-abcdef span.cm-builtin { color: #30aabc; }
+.cm-s-abcdef span.cm-bracket { color: #8a8a8a; }
+.cm-s-abcdef span.cm-tag { color: #FFDD44; }
+.cm-s-abcdef span.cm-attribute { color: #DDFF00; }
+.cm-s-abcdef span.cm-error { color: #FF0000; }
+.cm-s-abcdef span.cm-header { color: aquamarine; font-weight: bold; }
+.cm-s-abcdef span.cm-link { color: blueviolet; }
+
+.cm-s-abcdef .CodeMirror-activeline-background { background: #314151; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/ambiance-mobile.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/ambiance-mobile.css
new file mode 100644
index 0000000..88d332e
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/ambiance-mobile.css
@@ -0,0 +1,5 @@
+.cm-s-ambiance.CodeMirror {
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/ambiance.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/ambiance.css
new file mode 100644
index 0000000..782fca4
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/ambiance.css
@@ -0,0 +1,74 @@
+/* ambiance theme for codemirror */
+
+/* Color scheme */
+
+.cm-s-ambiance .cm-header { color: blue; }
+.cm-s-ambiance .cm-quote { color: #24C2C7; }
+
+.cm-s-ambiance .cm-keyword { color: #cda869; }
+.cm-s-ambiance .cm-atom { color: #CF7EA9; }
+.cm-s-ambiance .cm-number { color: #78CF8A; }
+.cm-s-ambiance .cm-def { color: #aac6e3; }
+.cm-s-ambiance .cm-variable { color: #ffb795; }
+.cm-s-ambiance .cm-variable-2 { color: #eed1b3; }
+.cm-s-ambiance .cm-variable-3, .cm-s-ambiance .cm-type { color: #faded3; }
+.cm-s-ambiance .cm-property { color: #eed1b3; }
+.cm-s-ambiance .cm-operator { color: #fa8d6a; }
+.cm-s-ambiance .cm-comment { color: #555; font-style:italic; }
+.cm-s-ambiance .cm-string { color: #8f9d6a; }
+.cm-s-ambiance .cm-string-2 { color: #9d937c; }
+.cm-s-ambiance .cm-meta { color: #D2A8A1; }
+.cm-s-ambiance .cm-qualifier { color: yellow; }
+.cm-s-ambiance .cm-builtin { color: #9999cc; }
+.cm-s-ambiance .cm-bracket { color: #24C2C7; }
+.cm-s-ambiance .cm-tag { color: #fee4ff; }
+.cm-s-ambiance .cm-attribute { color: #9B859D; }
+.cm-s-ambiance .cm-hr { color: pink; }
+.cm-s-ambiance .cm-link { color: #F4C20B; }
+.cm-s-ambiance .cm-special { color: #FF9D00; }
+.cm-s-ambiance .cm-error { color: #AF2018; }
+
+.cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; }
+.cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; }
+
+.cm-s-ambiance div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
+.cm-s-ambiance.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
+.cm-s-ambiance .CodeMirror-line::selection, .cm-s-ambiance .CodeMirror-line > span::selection, .cm-s-ambiance .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
+.cm-s-ambiance .CodeMirror-line::-moz-selection, .cm-s-ambiance .CodeMirror-line > span::-moz-selection, .cm-s-ambiance .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
+
+/* Editor styling */
+
+.cm-s-ambiance.CodeMirror {
+ line-height: 1.40em;
+ color: #E6E1DC;
+ background-color: #202020;
+ -webkit-box-shadow: inset 0 0 10px black;
+ -moz-box-shadow: inset 0 0 10px black;
+ box-shadow: inset 0 0 10px black;
+}
+
+.cm-s-ambiance .CodeMirror-gutters {
+ background: #3D3D3D;
+ border-right: 1px solid #4D4D4D;
+ box-shadow: 0 10px 20px black;
+}
+
+.cm-s-ambiance .CodeMirror-linenumber {
+ text-shadow: 0px 1px 1px #4d4d4d;
+ color: #111;
+ padding: 0 5px;
+}
+
+.cm-s-ambiance .CodeMirror-guttermarker { color: #aaa; }
+.cm-s-ambiance .CodeMirror-guttermarker-subtle { color: #111; }
+
+.cm-s-ambiance .CodeMirror-cursor { border-left: 1px solid #7991E8; }
+
+.cm-s-ambiance .CodeMirror-activeline-background {
+ background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031);
+}
+
+.cm-s-ambiance.CodeMirror,
+.cm-s-ambiance .CodeMirror-gutters {
+ background-image: url("data:image/png;base64,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");
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/ayu-dark.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/ayu-dark.css
new file mode 100644
index 0000000..fd41ba3
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/ayu-dark.css
@@ -0,0 +1,42 @@
+/* Based on https://github.com/dempfi/ayu */
+
+.cm-s-ayu-dark.CodeMirror { background: #0a0e14; color: #b3b1ad; }
+.cm-s-ayu-dark div.CodeMirror-selected { background: #273747; }
+.cm-s-ayu-dark .CodeMirror-line::selection, .cm-s-ayu-dark .CodeMirror-line > span::selection, .cm-s-ayu-dark .CodeMirror-line > span > span::selection { background: rgba(39, 55, 71, 99); }
+.cm-s-ayu-dark .CodeMirror-line::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 55, 71, 99); }
+.cm-s-ayu-dark .CodeMirror-gutters { background: #0a0e14; border-right: 0px; }
+.cm-s-ayu-dark .CodeMirror-guttermarker { color: white; }
+.cm-s-ayu-dark .CodeMirror-guttermarker-subtle { color: #3d424d; }
+.cm-s-ayu-dark .CodeMirror-linenumber { color: #3d424d; }
+.cm-s-ayu-dark .CodeMirror-cursor { border-left: 1px solid #e6b450; }
+
+.cm-s-ayu-dark span.cm-comment { color: #626a73; }
+.cm-s-ayu-dark span.cm-atom { color: #ae81ff; }
+.cm-s-ayu-dark span.cm-number { color: #e6b450; }
+
+.cm-s-ayu-dark span.cm-comment.cm-attribute { color: #ffb454; }
+.cm-s-ayu-dark span.cm-comment.cm-def { color: rgba(57, 186, 230, 80); }
+.cm-s-ayu-dark span.cm-comment.cm-tag { color: #39bae6; }
+.cm-s-ayu-dark span.cm-comment.cm-type { color: #5998a6; }
+
+.cm-s-ayu-dark span.cm-property, .cm-s-ayu-dark span.cm-attribute { color: #ffb454; }
+.cm-s-ayu-dark span.cm-keyword { color: #ff8f40; }
+.cm-s-ayu-dark span.cm-builtin { color: #e6b450; }
+.cm-s-ayu-dark span.cm-string { color: #c2d94c; }
+
+.cm-s-ayu-dark span.cm-variable { color: #b3b1ad; }
+.cm-s-ayu-dark span.cm-variable-2 { color: #f07178; }
+.cm-s-ayu-dark span.cm-variable-3 { color: #39bae6; }
+.cm-s-ayu-dark span.cm-type { color: #ff8f40; }
+.cm-s-ayu-dark span.cm-def { color: #ffee99; }
+.cm-s-ayu-dark span.cm-bracket { color: #f8f8f2; }
+.cm-s-ayu-dark span.cm-tag { color: rgba(57, 186, 230, 80); }
+.cm-s-ayu-dark span.cm-header { color: #c2d94c; }
+.cm-s-ayu-dark span.cm-link { color: #39bae6; }
+.cm-s-ayu-dark span.cm-error { color: #ff3333; }
+
+.cm-s-ayu-dark .CodeMirror-activeline-background { background: #01060e; }
+.cm-s-ayu-dark .CodeMirror-matchingbracket {
+ text-decoration: underline;
+ color: white !important;
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/ayu-mirage.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/ayu-mirage.css
new file mode 100644
index 0000000..7a5b50c
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/ayu-mirage.css
@@ -0,0 +1,43 @@
+/* Based on https://github.com/dempfi/ayu */
+
+.cm-s-ayu-mirage.CodeMirror { background: #1f2430; color: #cbccc6; }
+.cm-s-ayu-mirage div.CodeMirror-selected { background: #34455a; }
+.cm-s-ayu-mirage .CodeMirror-line::selection, .cm-s-ayu-mirage .CodeMirror-line > span::selection, .cm-s-ayu-mirage .CodeMirror-line > span > span::selection { background: #34455a; }
+.cm-s-ayu-mirage .CodeMirror-line::-moz-selection, .cm-s-ayu-mirage .CodeMirror-line > span::-moz-selection, .cm-s-ayu-mirage .CodeMirror-line > span > span::-moz-selection { background: rgba(25, 30, 42, 99); }
+.cm-s-ayu-mirage .CodeMirror-gutters { background: #1f2430; border-right: 0px; }
+.cm-s-ayu-mirage .CodeMirror-guttermarker { color: white; }
+.cm-s-ayu-mirage .CodeMirror-guttermarker-subtle { color: rgba(112, 122, 140, 66); }
+.cm-s-ayu-mirage .CodeMirror-linenumber { color: rgba(61, 66, 77, 99); }
+.cm-s-ayu-mirage .CodeMirror-cursor { border-left: 1px solid #ffcc66; }
+
+.cm-s-ayu-mirage span.cm-comment { color: #5c6773; font-style:italic; }
+.cm-s-ayu-mirage span.cm-atom { color: #ae81ff; }
+.cm-s-ayu-mirage span.cm-number { color: #ffcc66; }
+
+.cm-s-ayu-mirage span.cm-comment.cm-attribute { color: #ffd580; }
+.cm-s-ayu-mirage span.cm-comment.cm-def { color: #d4bfff; }
+.cm-s-ayu-mirage span.cm-comment.cm-tag { color: #5ccfe6; }
+.cm-s-ayu-mirage span.cm-comment.cm-type { color: #5998a6; }
+
+.cm-s-ayu-mirage span.cm-property { color: #f29e74; }
+.cm-s-ayu-mirage span.cm-attribute { color: #ffd580; }
+.cm-s-ayu-mirage span.cm-keyword { color: #ffa759; }
+.cm-s-ayu-mirage span.cm-builtin { color: #ffcc66; }
+.cm-s-ayu-mirage span.cm-string { color: #bae67e; }
+
+.cm-s-ayu-mirage span.cm-variable { color: #cbccc6; }
+.cm-s-ayu-mirage span.cm-variable-2 { color: #f28779; }
+.cm-s-ayu-mirage span.cm-variable-3 { color: #5ccfe6; }
+.cm-s-ayu-mirage span.cm-type { color: #ffa759; }
+.cm-s-ayu-mirage span.cm-def { color: #ffd580; }
+.cm-s-ayu-mirage span.cm-bracket { color: rgba(92, 207, 230, 80); }
+.cm-s-ayu-mirage span.cm-tag { color: #5ccfe6; }
+.cm-s-ayu-mirage span.cm-header { color: #bae67e; }
+.cm-s-ayu-mirage span.cm-link { color: #5ccfe6; }
+.cm-s-ayu-mirage span.cm-error { color: #ff3333; }
+
+.cm-s-ayu-mirage .CodeMirror-activeline-background { background: #191e2a; }
+.cm-s-ayu-mirage .CodeMirror-matchingbracket {
+ text-decoration: underline;
+ color: white !important;
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/base16-dark.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/base16-dark.css
new file mode 100644
index 0000000..026a816
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/base16-dark.css
@@ -0,0 +1,38 @@
+/*
+
+ Name: Base16 Default Dark
+ Author: Chris Kempson (http://chriskempson.com)
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-base16-dark.CodeMirror { background: #151515; color: #e0e0e0; }
+.cm-s-base16-dark div.CodeMirror-selected { background: #303030; }
+.cm-s-base16-dark .CodeMirror-line::selection, .cm-s-base16-dark .CodeMirror-line > span::selection, .cm-s-base16-dark .CodeMirror-line > span > span::selection { background: rgba(48, 48, 48, .99); }
+.cm-s-base16-dark .CodeMirror-line::-moz-selection, .cm-s-base16-dark .CodeMirror-line > span::-moz-selection, .cm-s-base16-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(48, 48, 48, .99); }
+.cm-s-base16-dark .CodeMirror-gutters { background: #151515; border-right: 0px; }
+.cm-s-base16-dark .CodeMirror-guttermarker { color: #ac4142; }
+.cm-s-base16-dark .CodeMirror-guttermarker-subtle { color: #505050; }
+.cm-s-base16-dark .CodeMirror-linenumber { color: #505050; }
+.cm-s-base16-dark .CodeMirror-cursor { border-left: 1px solid #b0b0b0; }
+
+.cm-s-base16-dark span.cm-comment { color: #8f5536; }
+.cm-s-base16-dark span.cm-atom { color: #aa759f; }
+.cm-s-base16-dark span.cm-number { color: #aa759f; }
+
+.cm-s-base16-dark span.cm-property, .cm-s-base16-dark span.cm-attribute { color: #90a959; }
+.cm-s-base16-dark span.cm-keyword { color: #ac4142; }
+.cm-s-base16-dark span.cm-string { color: #f4bf75; }
+
+.cm-s-base16-dark span.cm-variable { color: #90a959; }
+.cm-s-base16-dark span.cm-variable-2 { color: #6a9fb5; }
+.cm-s-base16-dark span.cm-def { color: #d28445; }
+.cm-s-base16-dark span.cm-bracket { color: #e0e0e0; }
+.cm-s-base16-dark span.cm-tag { color: #ac4142; }
+.cm-s-base16-dark span.cm-link { color: #aa759f; }
+.cm-s-base16-dark span.cm-error { background: #ac4142; color: #b0b0b0; }
+
+.cm-s-base16-dark .CodeMirror-activeline-background { background: #202020; }
+.cm-s-base16-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/base16-light.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/base16-light.css
new file mode 100644
index 0000000..1d5f582
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/base16-light.css
@@ -0,0 +1,38 @@
+/*
+
+ Name: Base16 Default Light
+ Author: Chris Kempson (http://chriskempson.com)
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-base16-light.CodeMirror { background: #f5f5f5; color: #202020; }
+.cm-s-base16-light div.CodeMirror-selected { background: #e0e0e0; }
+.cm-s-base16-light .CodeMirror-line::selection, .cm-s-base16-light .CodeMirror-line > span::selection, .cm-s-base16-light .CodeMirror-line > span > span::selection { background: #e0e0e0; }
+.cm-s-base16-light .CodeMirror-line::-moz-selection, .cm-s-base16-light .CodeMirror-line > span::-moz-selection, .cm-s-base16-light .CodeMirror-line > span > span::-moz-selection { background: #e0e0e0; }
+.cm-s-base16-light .CodeMirror-gutters { background: #f5f5f5; border-right: 0px; }
+.cm-s-base16-light .CodeMirror-guttermarker { color: #ac4142; }
+.cm-s-base16-light .CodeMirror-guttermarker-subtle { color: #b0b0b0; }
+.cm-s-base16-light .CodeMirror-linenumber { color: #b0b0b0; }
+.cm-s-base16-light .CodeMirror-cursor { border-left: 1px solid #505050; }
+
+.cm-s-base16-light span.cm-comment { color: #8f5536; }
+.cm-s-base16-light span.cm-atom { color: #aa759f; }
+.cm-s-base16-light span.cm-number { color: #aa759f; }
+
+.cm-s-base16-light span.cm-property, .cm-s-base16-light span.cm-attribute { color: #90a959; }
+.cm-s-base16-light span.cm-keyword { color: #ac4142; }
+.cm-s-base16-light span.cm-string { color: #f4bf75; }
+
+.cm-s-base16-light span.cm-variable { color: #90a959; }
+.cm-s-base16-light span.cm-variable-2 { color: #6a9fb5; }
+.cm-s-base16-light span.cm-def { color: #d28445; }
+.cm-s-base16-light span.cm-bracket { color: #202020; }
+.cm-s-base16-light span.cm-tag { color: #ac4142; }
+.cm-s-base16-light span.cm-link { color: #aa759f; }
+.cm-s-base16-light span.cm-error { background: #ac4142; color: #505050; }
+
+.cm-s-base16-light .CodeMirror-activeline-background { background: #DDDCDC; }
+.cm-s-base16-light .CodeMirror-matchingbracket { color: #f5f5f5 !important; background-color: #6A9FB5 !important}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/bespin.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/bespin.css
new file mode 100644
index 0000000..60913ba
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/bespin.css
@@ -0,0 +1,34 @@
+/*
+
+ Name: Bespin
+ Author: Mozilla / Jan T. Sott
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-bespin.CodeMirror {background: #28211c; color: #9d9b97;}
+.cm-s-bespin div.CodeMirror-selected {background: #36312e !important;}
+.cm-s-bespin .CodeMirror-gutters {background: #28211c; border-right: 0px;}
+.cm-s-bespin .CodeMirror-linenumber {color: #666666;}
+.cm-s-bespin .CodeMirror-cursor {border-left: 1px solid #797977 !important;}
+
+.cm-s-bespin span.cm-comment {color: #937121;}
+.cm-s-bespin span.cm-atom {color: #9b859d;}
+.cm-s-bespin span.cm-number {color: #9b859d;}
+
+.cm-s-bespin span.cm-property, .cm-s-bespin span.cm-attribute {color: #54be0d;}
+.cm-s-bespin span.cm-keyword {color: #cf6a4c;}
+.cm-s-bespin span.cm-string {color: #f9ee98;}
+
+.cm-s-bespin span.cm-variable {color: #54be0d;}
+.cm-s-bespin span.cm-variable-2 {color: #5ea6ea;}
+.cm-s-bespin span.cm-def {color: #cf7d34;}
+.cm-s-bespin span.cm-error {background: #cf6a4c; color: #797977;}
+.cm-s-bespin span.cm-bracket {color: #9d9b97;}
+.cm-s-bespin span.cm-tag {color: #cf6a4c;}
+.cm-s-bespin span.cm-link {color: #9b859d;}
+
+.cm-s-bespin .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
+.cm-s-bespin .CodeMirror-activeline-background { background: #404040; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/blackboard.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/blackboard.css
new file mode 100644
index 0000000..b6eaedb
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/blackboard.css
@@ -0,0 +1,32 @@
+/* Port of TextMate's Blackboard theme */
+
+.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }
+.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }
+.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }
+.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }
+.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }
+.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }
+.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }
+.cm-s-blackboard .CodeMirror-linenumber { color: #888; }
+.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }
+
+.cm-s-blackboard .cm-keyword { color: #FBDE2D; }
+.cm-s-blackboard .cm-atom { color: #D8FA3C; }
+.cm-s-blackboard .cm-number { color: #D8FA3C; }
+.cm-s-blackboard .cm-def { color: #8DA6CE; }
+.cm-s-blackboard .cm-variable { color: #FF6400; }
+.cm-s-blackboard .cm-operator { color: #FBDE2D; }
+.cm-s-blackboard .cm-comment { color: #AEAEAE; }
+.cm-s-blackboard .cm-string { color: #61CE3C; }
+.cm-s-blackboard .cm-string-2 { color: #61CE3C; }
+.cm-s-blackboard .cm-meta { color: #D8FA3C; }
+.cm-s-blackboard .cm-builtin { color: #8DA6CE; }
+.cm-s-blackboard .cm-tag { color: #8DA6CE; }
+.cm-s-blackboard .cm-attribute { color: #8DA6CE; }
+.cm-s-blackboard .cm-header { color: #FF6400; }
+.cm-s-blackboard .cm-hr { color: #AEAEAE; }
+.cm-s-blackboard .cm-link { color: #8DA6CE; }
+.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }
+
+.cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }
+.cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/cobalt.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/cobalt.css
new file mode 100644
index 0000000..bbbda3b
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/cobalt.css
@@ -0,0 +1,25 @@
+.cm-s-cobalt.CodeMirror { background: #002240; color: white; }
+.cm-s-cobalt div.CodeMirror-selected { background: #b36539; }
+.cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }
+.cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }
+.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
+.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }
+.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
+.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }
+.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }
+
+.cm-s-cobalt span.cm-comment { color: #08f; }
+.cm-s-cobalt span.cm-atom { color: #845dc4; }
+.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }
+.cm-s-cobalt span.cm-keyword { color: #ffee80; }
+.cm-s-cobalt span.cm-string { color: #3ad900; }
+.cm-s-cobalt span.cm-meta { color: #ff9d00; }
+.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }
+.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def, .cm-s-cobalt .cm-type { color: white; }
+.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }
+.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }
+.cm-s-cobalt span.cm-link { color: #845dc4; }
+.cm-s-cobalt span.cm-error { color: #9d1e15; }
+
+.cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }
+.cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/colorforth.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/colorforth.css
new file mode 100644
index 0000000..19095e4
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/colorforth.css
@@ -0,0 +1,33 @@
+.cm-s-colorforth.CodeMirror { background: #000000; color: #f8f8f8; }
+.cm-s-colorforth .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
+.cm-s-colorforth .CodeMirror-guttermarker { color: #FFBD40; }
+.cm-s-colorforth .CodeMirror-guttermarker-subtle { color: #78846f; }
+.cm-s-colorforth .CodeMirror-linenumber { color: #bababa; }
+.cm-s-colorforth .CodeMirror-cursor { border-left: 1px solid white; }
+
+.cm-s-colorforth span.cm-comment { color: #ededed; }
+.cm-s-colorforth span.cm-def { color: #ff1c1c; font-weight:bold; }
+.cm-s-colorforth span.cm-keyword { color: #ffd900; }
+.cm-s-colorforth span.cm-builtin { color: #00d95a; }
+.cm-s-colorforth span.cm-variable { color: #73ff00; }
+.cm-s-colorforth span.cm-string { color: #007bff; }
+.cm-s-colorforth span.cm-number { color: #00c4ff; }
+.cm-s-colorforth span.cm-atom { color: #606060; }
+
+.cm-s-colorforth span.cm-variable-2 { color: #EEE; }
+.cm-s-colorforth span.cm-variable-3, .cm-s-colorforth span.cm-type { color: #DDD; }
+.cm-s-colorforth span.cm-property {}
+.cm-s-colorforth span.cm-operator {}
+
+.cm-s-colorforth span.cm-meta { color: yellow; }
+.cm-s-colorforth span.cm-qualifier { color: #FFF700; }
+.cm-s-colorforth span.cm-bracket { color: #cc7; }
+.cm-s-colorforth span.cm-tag { color: #FFBD40; }
+.cm-s-colorforth span.cm-attribute { color: #FFF700; }
+.cm-s-colorforth span.cm-error { color: #f00; }
+
+.cm-s-colorforth div.CodeMirror-selected { background: #333d53; }
+
+.cm-s-colorforth span.cm-compilation { background: rgba(255, 255, 255, 0.12); }
+
+.cm-s-colorforth .CodeMirror-activeline-background { background: #253540; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/darcula.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/darcula.css
new file mode 100644
index 0000000..2ec81a3
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/darcula.css
@@ -0,0 +1,53 @@
+/**
+ Name: IntelliJ IDEA darcula theme
+ From IntelliJ IDEA by JetBrains
+ */
+
+.cm-s-darcula { font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif;}
+.cm-s-darcula.CodeMirror { background: #2B2B2B; color: #A9B7C6; }
+
+.cm-s-darcula span.cm-meta { color: #BBB529; }
+.cm-s-darcula span.cm-number { color: #6897BB; }
+.cm-s-darcula span.cm-keyword { color: #CC7832; line-height: 1em; font-weight: bold; }
+.cm-s-darcula span.cm-def { color: #A9B7C6; font-style: italic; }
+.cm-s-darcula span.cm-variable { color: #A9B7C6; }
+.cm-s-darcula span.cm-variable-2 { color: #A9B7C6; }
+.cm-s-darcula span.cm-variable-3 { color: #9876AA; }
+.cm-s-darcula span.cm-type { color: #AABBCC; font-weight: bold; }
+.cm-s-darcula span.cm-property { color: #FFC66D; }
+.cm-s-darcula span.cm-operator { color: #A9B7C6; }
+.cm-s-darcula span.cm-string { color: #6A8759; }
+.cm-s-darcula span.cm-string-2 { color: #6A8759; }
+.cm-s-darcula span.cm-comment { color: #61A151; font-style: italic; }
+.cm-s-darcula span.cm-link { color: #CC7832; }
+.cm-s-darcula span.cm-atom { color: #CC7832; }
+.cm-s-darcula span.cm-error { color: #BC3F3C; }
+.cm-s-darcula span.cm-tag { color: #629755; font-weight: bold; font-style: italic; text-decoration: underline; }
+.cm-s-darcula span.cm-attribute { color: #6897bb; }
+.cm-s-darcula span.cm-qualifier { color: #6A8759; }
+.cm-s-darcula span.cm-bracket { color: #A9B7C6; }
+.cm-s-darcula span.cm-builtin { color: #FF9E59; }
+.cm-s-darcula span.cm-special { color: #FF9E59; }
+.cm-s-darcula span.cm-matchhighlight { color: #FFFFFF; background-color: rgba(50, 89, 48, .7); font-weight: normal;}
+.cm-s-darcula span.cm-searching { color: #FFFFFF; background-color: rgba(61, 115, 59, .7); font-weight: normal;}
+
+.cm-s-darcula .CodeMirror-cursor { border-left: 1px solid #A9B7C6; }
+.cm-s-darcula .CodeMirror-activeline-background { background: #323232; }
+.cm-s-darcula .CodeMirror-gutters { background: #313335; border-right: 1px solid #313335; }
+.cm-s-darcula .CodeMirror-guttermarker { color: #FFEE80; }
+.cm-s-darcula .CodeMirror-guttermarker-subtle { color: #D0D0D0; }
+.cm-s-darcula .CodeMirrir-linenumber { color: #606366; }
+.cm-s-darcula .CodeMirror-matchingbracket { background-color: #3B514D; color: #FFEF28 !important; font-weight: bold; }
+
+.cm-s-darcula div.CodeMirror-selected { background: #214283; }
+
+.CodeMirror-hints.darcula {
+ font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
+ color: #9C9E9E;
+ background-color: #3B3E3F !important;
+}
+
+.CodeMirror-hints.darcula .CodeMirror-hint-active {
+ background-color: #494D4E !important;
+ color: #9C9E9E !important;
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/dracula.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/dracula.css
new file mode 100644
index 0000000..253133e
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/dracula.css
@@ -0,0 +1,40 @@
+/*
+
+ Name: dracula
+ Author: Michael Kaminsky (http://github.com/mkaminsky11)
+
+ Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)
+
+*/
+
+
+.cm-s-dracula.CodeMirror, .cm-s-dracula .CodeMirror-gutters {
+ background-color: #282a36 !important;
+ color: #f8f8f2 !important;
+ border: none;
+}
+.cm-s-dracula .CodeMirror-gutters { color: #282a36; }
+.cm-s-dracula .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
+.cm-s-dracula .CodeMirror-linenumber { color: #6D8A88; }
+.cm-s-dracula .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
+.cm-s-dracula .CodeMirror-line::selection, .cm-s-dracula .CodeMirror-line > span::selection, .cm-s-dracula .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
+.cm-s-dracula .CodeMirror-line::-moz-selection, .cm-s-dracula .CodeMirror-line > span::-moz-selection, .cm-s-dracula .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
+.cm-s-dracula span.cm-comment { color: #6272a4; }
+.cm-s-dracula span.cm-string, .cm-s-dracula span.cm-string-2 { color: #f1fa8c; }
+.cm-s-dracula span.cm-number { color: #bd93f9; }
+.cm-s-dracula span.cm-variable { color: #50fa7b; }
+.cm-s-dracula span.cm-variable-2 { color: white; }
+.cm-s-dracula span.cm-def { color: #50fa7b; }
+.cm-s-dracula span.cm-operator { color: #ff79c6; }
+.cm-s-dracula span.cm-keyword { color: #ff79c6; }
+.cm-s-dracula span.cm-atom { color: #bd93f9; }
+.cm-s-dracula span.cm-meta { color: #f8f8f2; }
+.cm-s-dracula span.cm-tag { color: #ff79c6; }
+.cm-s-dracula span.cm-attribute { color: #50fa7b; }
+.cm-s-dracula span.cm-qualifier { color: #50fa7b; }
+.cm-s-dracula span.cm-property { color: #66d9ef; }
+.cm-s-dracula span.cm-builtin { color: #50fa7b; }
+.cm-s-dracula span.cm-variable-3, .cm-s-dracula span.cm-type { color: #ffb86c; }
+
+.cm-s-dracula .CodeMirror-activeline-background { background: rgba(255,255,255,0.1); }
+.cm-s-dracula .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/duotone-dark.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/duotone-dark.css
new file mode 100644
index 0000000..88fdc76
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/duotone-dark.css
@@ -0,0 +1,35 @@
+/*
+Name: DuoTone-Dark
+Author: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)
+
+CodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)
+*/
+
+.cm-s-duotone-dark.CodeMirror { background: #2a2734; color: #6c6783; }
+.cm-s-duotone-dark div.CodeMirror-selected { background: #545167!important; }
+.cm-s-duotone-dark .CodeMirror-gutters { background: #2a2734; border-right: 0px; }
+.cm-s-duotone-dark .CodeMirror-linenumber { color: #545167; }
+
+/* begin cursor */
+.cm-s-duotone-dark .CodeMirror-cursor { border-left: 1px solid #ffad5c; /* border-left: 1px solid #ffad5c80; */ border-right: .5em solid #ffad5c; /* border-right: .5em solid #ffad5c80; */ opacity: .5; }
+.cm-s-duotone-dark .CodeMirror-activeline-background { background: #363342; /* background: #36334280; */ opacity: .5;}
+.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor { background: #ffad5c; /* background: #ffad5c80; */ opacity: .5;}
+/* end cursor */
+
+.cm-s-duotone-dark span.cm-atom, .cm-s-duotone-dark span.cm-number, .cm-s-duotone-dark span.cm-keyword, .cm-s-duotone-dark span.cm-variable, .cm-s-duotone-dark span.cm-attribute, .cm-s-duotone-dark span.cm-quote, .cm-s-duotone-dark span.cm-hr, .cm-s-duotone-dark span.cm-link { color: #ffcc99; }
+
+.cm-s-duotone-dark span.cm-property { color: #9a86fd; }
+.cm-s-duotone-dark span.cm-punctuation, .cm-s-duotone-dark span.cm-unit, .cm-s-duotone-dark span.cm-negative { color: #e09142; }
+.cm-s-duotone-dark span.cm-string { color: #ffb870; }
+.cm-s-duotone-dark span.cm-operator { color: #ffad5c; }
+.cm-s-duotone-dark span.cm-positive { color: #6a51e6; }
+
+.cm-s-duotone-dark span.cm-variable-2, .cm-s-duotone-dark span.cm-variable-3, .cm-s-duotone-dark span.cm-type, .cm-s-duotone-dark span.cm-string-2, .cm-s-duotone-dark span.cm-url { color: #7a63ee; }
+.cm-s-duotone-dark span.cm-def, .cm-s-duotone-dark span.cm-tag, .cm-s-duotone-dark span.cm-builtin, .cm-s-duotone-dark span.cm-qualifier, .cm-s-duotone-dark span.cm-header, .cm-s-duotone-dark span.cm-em { color: #eeebff; }
+.cm-s-duotone-dark span.cm-bracket, .cm-s-duotone-dark span.cm-comment { color: #6c6783; }
+
+/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... */
+.cm-s-duotone-dark span.cm-error, .cm-s-duotone-dark span.cm-invalidchar { color: #f00; }
+
+.cm-s-duotone-dark span.cm-header { font-weight: normal; }
+.cm-s-duotone-dark .CodeMirror-matchingbracket { text-decoration: underline; color: #eeebff !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/duotone-light.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/duotone-light.css
new file mode 100644
index 0000000..d99480f
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/duotone-light.css
@@ -0,0 +1,36 @@
+/*
+Name: DuoTone-Light
+Author: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)
+
+CodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)
+*/
+
+.cm-s-duotone-light.CodeMirror { background: #faf8f5; color: #b29762; }
+.cm-s-duotone-light div.CodeMirror-selected { background: #e3dcce !important; }
+.cm-s-duotone-light .CodeMirror-gutters { background: #faf8f5; border-right: 0px; }
+.cm-s-duotone-light .CodeMirror-linenumber { color: #cdc4b1; }
+
+/* begin cursor */
+.cm-s-duotone-light .CodeMirror-cursor { border-left: 1px solid #93abdc; /* border-left: 1px solid #93abdc80; */ border-right: .5em solid #93abdc; /* border-right: .5em solid #93abdc80; */ opacity: .5; }
+.cm-s-duotone-light .CodeMirror-activeline-background { background: #e3dcce; /* background: #e3dcce80; */ opacity: .5; }
+.cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor { background: #93abdc; /* #93abdc80; */ opacity: .5; }
+/* end cursor */
+
+.cm-s-duotone-light span.cm-atom, .cm-s-duotone-light span.cm-number, .cm-s-duotone-light span.cm-keyword, .cm-s-duotone-light span.cm-variable, .cm-s-duotone-light span.cm-attribute, .cm-s-duotone-light span.cm-quote, .cm-s-duotone-light-light span.cm-hr, .cm-s-duotone-light-light span.cm-link { color: #063289; }
+
+.cm-s-duotone-light span.cm-property { color: #b29762; }
+.cm-s-duotone-light span.cm-punctuation, .cm-s-duotone-light span.cm-unit, .cm-s-duotone-light span.cm-negative { color: #063289; }
+.cm-s-duotone-light span.cm-string, .cm-s-duotone-light span.cm-operator { color: #1659df; }
+.cm-s-duotone-light span.cm-positive { color: #896724; }
+
+.cm-s-duotone-light span.cm-variable-2, .cm-s-duotone-light span.cm-variable-3, .cm-s-duotone-light span.cm-type, .cm-s-duotone-light span.cm-string-2, .cm-s-duotone-light span.cm-url { color: #896724; }
+.cm-s-duotone-light span.cm-def, .cm-s-duotone-light span.cm-tag, .cm-s-duotone-light span.cm-builtin, .cm-s-duotone-light span.cm-qualifier, .cm-s-duotone-light span.cm-header, .cm-s-duotone-light span.cm-em { color: #2d2006; }
+.cm-s-duotone-light span.cm-bracket, .cm-s-duotone-light span.cm-comment { color: #b6ad9a; }
+
+/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... */
+/* .cm-s-duotone-light span.cm-error { background: #896724; color: #728fcb; } */
+.cm-s-duotone-light span.cm-error, .cm-s-duotone-light span.cm-invalidchar { color: #f00; }
+
+.cm-s-duotone-light span.cm-header { font-weight: normal; }
+.cm-s-duotone-light .CodeMirror-matchingbracket { text-decoration: underline; color: #faf8f5 !important; }
+
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/eclipse.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/eclipse.css
new file mode 100644
index 0000000..800d603
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/eclipse.css
@@ -0,0 +1,23 @@
+.cm-s-eclipse span.cm-meta { color: #FF1717; }
+.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }
+.cm-s-eclipse span.cm-atom { color: #219; }
+.cm-s-eclipse span.cm-number { color: #164; }
+.cm-s-eclipse span.cm-def { color: #00f; }
+.cm-s-eclipse span.cm-variable { color: black; }
+.cm-s-eclipse span.cm-variable-2 { color: #0000C0; }
+.cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; }
+.cm-s-eclipse span.cm-property { color: black; }
+.cm-s-eclipse span.cm-operator { color: black; }
+.cm-s-eclipse span.cm-comment { color: #3F7F5F; }
+.cm-s-eclipse span.cm-string { color: #2A00FF; }
+.cm-s-eclipse span.cm-string-2 { color: #f50; }
+.cm-s-eclipse span.cm-qualifier { color: #555; }
+.cm-s-eclipse span.cm-builtin { color: #30a; }
+.cm-s-eclipse span.cm-bracket { color: #cc7; }
+.cm-s-eclipse span.cm-tag { color: #170; }
+.cm-s-eclipse span.cm-attribute { color: #00c; }
+.cm-s-eclipse span.cm-link { color: #219; }
+.cm-s-eclipse span.cm-error { color: #f00; }
+
+.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }
+.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/elegant.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/elegant.css
new file mode 100644
index 0000000..45b3ea6
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/elegant.css
@@ -0,0 +1,13 @@
+.cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }
+.cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }
+.cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }
+.cm-s-elegant span.cm-variable { color: black; }
+.cm-s-elegant span.cm-variable-2 { color: #b11; }
+.cm-s-elegant span.cm-qualifier { color: #555; }
+.cm-s-elegant span.cm-keyword { color: #730; }
+.cm-s-elegant span.cm-builtin { color: #30a; }
+.cm-s-elegant span.cm-link { color: #762; }
+.cm-s-elegant span.cm-error { background-color: #fdd; }
+
+.cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }
+.cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/erlang-dark.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/erlang-dark.css
new file mode 100644
index 0000000..8c8a417
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/erlang-dark.css
@@ -0,0 +1,34 @@
+.cm-s-erlang-dark.CodeMirror { background: #002240; color: white; }
+.cm-s-erlang-dark div.CodeMirror-selected { background: #b36539; }
+.cm-s-erlang-dark .CodeMirror-line::selection, .cm-s-erlang-dark .CodeMirror-line > span::selection, .cm-s-erlang-dark .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }
+.cm-s-erlang-dark .CodeMirror-line::-moz-selection, .cm-s-erlang-dark .CodeMirror-line > span::-moz-selection, .cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }
+.cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
+.cm-s-erlang-dark .CodeMirror-guttermarker { color: white; }
+.cm-s-erlang-dark .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
+.cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; }
+.cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white; }
+
+.cm-s-erlang-dark span.cm-quote { color: #ccc; }
+.cm-s-erlang-dark span.cm-atom { color: #f133f1; }
+.cm-s-erlang-dark span.cm-attribute { color: #ff80e1; }
+.cm-s-erlang-dark span.cm-bracket { color: #ff9d00; }
+.cm-s-erlang-dark span.cm-builtin { color: #eaa; }
+.cm-s-erlang-dark span.cm-comment { color: #77f; }
+.cm-s-erlang-dark span.cm-def { color: #e7a; }
+.cm-s-erlang-dark span.cm-keyword { color: #ffee80; }
+.cm-s-erlang-dark span.cm-meta { color: #50fefe; }
+.cm-s-erlang-dark span.cm-number { color: #ffd0d0; }
+.cm-s-erlang-dark span.cm-operator { color: #d55; }
+.cm-s-erlang-dark span.cm-property { color: #ccc; }
+.cm-s-erlang-dark span.cm-qualifier { color: #ccc; }
+.cm-s-erlang-dark span.cm-special { color: #ffbbbb; }
+.cm-s-erlang-dark span.cm-string { color: #3ad900; }
+.cm-s-erlang-dark span.cm-string-2 { color: #ccc; }
+.cm-s-erlang-dark span.cm-tag { color: #9effff; }
+.cm-s-erlang-dark span.cm-variable { color: #50fe50; }
+.cm-s-erlang-dark span.cm-variable-2 { color: #e0e; }
+.cm-s-erlang-dark span.cm-variable-3, .cm-s-erlang-dark span.cm-type { color: #ccc; }
+.cm-s-erlang-dark span.cm-error { color: #9d1e15; }
+
+.cm-s-erlang-dark .CodeMirror-activeline-background { background: #013461; }
+.cm-s-erlang-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/gruvbox-dark.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/gruvbox-dark.css
new file mode 100644
index 0000000..ded215f
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/gruvbox-dark.css
@@ -0,0 +1,37 @@
+/*
+
+ Name: gruvbox-dark
+ Author: kRkk (https://github.com/krkk)
+
+ Original gruvbox color scheme by Pavel Pertsev (https://github.com/morhetz/gruvbox)
+
+*/
+
+.cm-s-gruvbox-dark.CodeMirror, .cm-s-gruvbox-dark .CodeMirror-gutters { background-color: #282828; color: #bdae93; }
+.cm-s-gruvbox-dark .CodeMirror-gutters {background: #282828; border-right: 0px;}
+.cm-s-gruvbox-dark .CodeMirror-linenumber {color: #7c6f64;}
+.cm-s-gruvbox-dark .CodeMirror-cursor { border-left: 1px solid #ebdbb2; }
+.cm-s-gruvbox-dark div.CodeMirror-selected { background: #928374; }
+.cm-s-gruvbox-dark span.cm-meta { color: #83a598; }
+
+.cm-s-gruvbox-dark span.cm-comment { color: #928374; }
+.cm-s-gruvbox-dark span.cm-number, span.cm-atom { color: #d3869b; }
+.cm-s-gruvbox-dark span.cm-keyword { color: #f84934; }
+
+.cm-s-gruvbox-dark span.cm-variable { color: #ebdbb2; }
+.cm-s-gruvbox-dark span.cm-variable-2 { color: #ebdbb2; }
+.cm-s-gruvbox-dark span.cm-variable-3, .cm-s-gruvbox-dark span.cm-type { color: #fabd2f; }
+.cm-s-gruvbox-dark span.cm-operator { color: #ebdbb2; }
+.cm-s-gruvbox-dark span.cm-callee { color: #ebdbb2; }
+.cm-s-gruvbox-dark span.cm-def { color: #ebdbb2; }
+.cm-s-gruvbox-dark span.cm-property { color: #ebdbb2; }
+.cm-s-gruvbox-dark span.cm-string { color: #b8bb26; }
+.cm-s-gruvbox-dark span.cm-string-2 { color: #8ec07c; }
+.cm-s-gruvbox-dark span.cm-qualifier { color: #8ec07c; }
+.cm-s-gruvbox-dark span.cm-attribute { color: #8ec07c; }
+
+.cm-s-gruvbox-dark .CodeMirror-activeline-background { background: #3c3836; }
+.cm-s-gruvbox-dark .CodeMirror-matchingbracket { background: #928374; color:#282828 !important; }
+
+.cm-s-gruvbox-dark span.cm-builtin { color: #fe8019; }
+.cm-s-gruvbox-dark span.cm-tag { color: #fe8019; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/hopscotch.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/hopscotch.css
new file mode 100644
index 0000000..7d05431
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/hopscotch.css
@@ -0,0 +1,34 @@
+/*
+
+ Name: Hopscotch
+ Author: Jan T. Sott
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-hopscotch.CodeMirror {background: #322931; color: #d5d3d5;}
+.cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}
+.cm-s-hopscotch .CodeMirror-gutters {background: #322931; border-right: 0px;}
+.cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}
+.cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}
+
+.cm-s-hopscotch span.cm-comment {color: #b33508;}
+.cm-s-hopscotch span.cm-atom {color: #c85e7c;}
+.cm-s-hopscotch span.cm-number {color: #c85e7c;}
+
+.cm-s-hopscotch span.cm-property, .cm-s-hopscotch span.cm-attribute {color: #8fc13e;}
+.cm-s-hopscotch span.cm-keyword {color: #dd464c;}
+.cm-s-hopscotch span.cm-string {color: #fdcc59;}
+
+.cm-s-hopscotch span.cm-variable {color: #8fc13e;}
+.cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}
+.cm-s-hopscotch span.cm-def {color: #fd8b19;}
+.cm-s-hopscotch span.cm-error {background: #dd464c; color: #989498;}
+.cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}
+.cm-s-hopscotch span.cm-tag {color: #dd464c;}
+.cm-s-hopscotch span.cm-link {color: #c85e7c;}
+
+.cm-s-hopscotch .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
+.cm-s-hopscotch .CodeMirror-activeline-background { background: #302020; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/icecoder.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/icecoder.css
new file mode 100644
index 0000000..5440fbe
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/icecoder.css
@@ -0,0 +1,43 @@
+/*
+ICEcoder default theme by Matt Pass, used in code editor available at https://icecoder.net
+*/
+
+.cm-s-icecoder { color: #666; background: #1d1d1b; }
+
+.cm-s-icecoder span.cm-keyword { color: #eee; font-weight:bold; } /* off-white 1 */
+.cm-s-icecoder span.cm-atom { color: #e1c76e; } /* yellow */
+.cm-s-icecoder span.cm-number { color: #6cb5d9; } /* blue */
+.cm-s-icecoder span.cm-def { color: #b9ca4a; } /* green */
+
+.cm-s-icecoder span.cm-variable { color: #6cb5d9; } /* blue */
+.cm-s-icecoder span.cm-variable-2 { color: #cc1e5c; } /* pink */
+.cm-s-icecoder span.cm-variable-3, .cm-s-icecoder span.cm-type { color: #f9602c; } /* orange */
+
+.cm-s-icecoder span.cm-property { color: #eee; } /* off-white 1 */
+.cm-s-icecoder span.cm-operator { color: #9179bb; } /* purple */
+.cm-s-icecoder span.cm-comment { color: #97a3aa; } /* grey-blue */
+
+.cm-s-icecoder span.cm-string { color: #b9ca4a; } /* green */
+.cm-s-icecoder span.cm-string-2 { color: #6cb5d9; } /* blue */
+
+.cm-s-icecoder span.cm-meta { color: #555; } /* grey */
+
+.cm-s-icecoder span.cm-qualifier { color: #555; } /* grey */
+.cm-s-icecoder span.cm-builtin { color: #214e7b; } /* bright blue */
+.cm-s-icecoder span.cm-bracket { color: #cc7; } /* grey-yellow */
+
+.cm-s-icecoder span.cm-tag { color: #e8e8e8; } /* off-white 2 */
+.cm-s-icecoder span.cm-attribute { color: #099; } /* teal */
+
+.cm-s-icecoder span.cm-header { color: #6a0d6a; } /* purple-pink */
+.cm-s-icecoder span.cm-quote { color: #186718; } /* dark green */
+.cm-s-icecoder span.cm-hr { color: #888; } /* mid-grey */
+.cm-s-icecoder span.cm-link { color: #e1c76e; } /* yellow */
+.cm-s-icecoder span.cm-error { color: #d00; } /* red */
+
+.cm-s-icecoder .CodeMirror-cursor { border-left: 1px solid white; }
+.cm-s-icecoder div.CodeMirror-selected { color: #fff; background: #037; }
+.cm-s-icecoder .CodeMirror-gutters { background: #1d1d1b; min-width: 41px; border-right: 0; }
+.cm-s-icecoder .CodeMirror-linenumber { color: #555; cursor: default; }
+.cm-s-icecoder .CodeMirror-matchingbracket { color: #fff !important; background: #555 !important; }
+.cm-s-icecoder .CodeMirror-activeline-background { background: #000; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/idea.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/idea.css
new file mode 100644
index 0000000..eab3671
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/idea.css
@@ -0,0 +1,42 @@
+/**
+ Name: IDEA default theme
+ From IntelliJ IDEA by JetBrains
+ */
+
+.cm-s-idea span.cm-meta { color: #808000; }
+.cm-s-idea span.cm-number { color: #0000FF; }
+.cm-s-idea span.cm-keyword { line-height: 1em; font-weight: bold; color: #000080; }
+.cm-s-idea span.cm-atom { font-weight: bold; color: #000080; }
+.cm-s-idea span.cm-def { color: #000000; }
+.cm-s-idea span.cm-variable { color: black; }
+.cm-s-idea span.cm-variable-2 { color: black; }
+.cm-s-idea span.cm-variable-3, .cm-s-idea span.cm-type { color: black; }
+.cm-s-idea span.cm-property { color: black; }
+.cm-s-idea span.cm-operator { color: black; }
+.cm-s-idea span.cm-comment { color: #808080; }
+.cm-s-idea span.cm-string { color: #008000; }
+.cm-s-idea span.cm-string-2 { color: #008000; }
+.cm-s-idea span.cm-qualifier { color: #555; }
+.cm-s-idea span.cm-error { color: #FF0000; }
+.cm-s-idea span.cm-attribute { color: #0000FF; }
+.cm-s-idea span.cm-tag { color: #000080; }
+.cm-s-idea span.cm-link { color: #0000FF; }
+.cm-s-idea .CodeMirror-activeline-background { background: #FFFAE3; }
+
+.cm-s-idea span.cm-builtin { color: #30a; }
+.cm-s-idea span.cm-bracket { color: #cc7; }
+.cm-s-idea { font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;}
+
+
+.cm-s-idea .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
+
+.CodeMirror-hints.idea {
+ font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
+ color: #616569;
+ background-color: #ebf3fd !important;
+}
+
+.CodeMirror-hints.idea .CodeMirror-hint-active {
+ background-color: #a2b8c9 !important;
+ color: #5c6065 !important;
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/isotope.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/isotope.css
new file mode 100644
index 0000000..d0d6263
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/isotope.css
@@ -0,0 +1,34 @@
+/*
+
+ Name: Isotope
+ Author: David Desandro / Jan T. Sott
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-isotope.CodeMirror {background: #000000; color: #e0e0e0;}
+.cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}
+.cm-s-isotope .CodeMirror-gutters {background: #000000; border-right: 0px;}
+.cm-s-isotope .CodeMirror-linenumber {color: #808080;}
+.cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}
+
+.cm-s-isotope span.cm-comment {color: #3300ff;}
+.cm-s-isotope span.cm-atom {color: #cc00ff;}
+.cm-s-isotope span.cm-number {color: #cc00ff;}
+
+.cm-s-isotope span.cm-property, .cm-s-isotope span.cm-attribute {color: #33ff00;}
+.cm-s-isotope span.cm-keyword {color: #ff0000;}
+.cm-s-isotope span.cm-string {color: #ff0099;}
+
+.cm-s-isotope span.cm-variable {color: #33ff00;}
+.cm-s-isotope span.cm-variable-2 {color: #0066ff;}
+.cm-s-isotope span.cm-def {color: #ff9900;}
+.cm-s-isotope span.cm-error {background: #ff0000; color: #c0c0c0;}
+.cm-s-isotope span.cm-bracket {color: #e0e0e0;}
+.cm-s-isotope span.cm-tag {color: #ff0000;}
+.cm-s-isotope span.cm-link {color: #cc00ff;}
+
+.cm-s-isotope .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
+.cm-s-isotope .CodeMirror-activeline-background { background: #202020; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/lesser-dark.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/lesser-dark.css
new file mode 100644
index 0000000..f96bf43
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/lesser-dark.css
@@ -0,0 +1,47 @@
+/*
+http://lesscss.org/ dark theme
+Ported to CodeMirror by Peter Kroon
+*/
+.cm-s-lesser-dark {
+ line-height: 1.3em;
+}
+.cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; }
+.cm-s-lesser-dark div.CodeMirror-selected { background: #45443B; } /* 33322B*/
+.cm-s-lesser-dark .CodeMirror-line::selection, .cm-s-lesser-dark .CodeMirror-line > span::selection, .cm-s-lesser-dark .CodeMirror-line > span > span::selection { background: rgba(69, 68, 59, .99); }
+.cm-s-lesser-dark .CodeMirror-line::-moz-selection, .cm-s-lesser-dark .CodeMirror-line > span::-moz-selection, .cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(69, 68, 59, .99); }
+.cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white; }
+.cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/
+
+.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/
+
+.cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; }
+.cm-s-lesser-dark .CodeMirror-guttermarker { color: #599eff; }
+.cm-s-lesser-dark .CodeMirror-guttermarker-subtle { color: #777; }
+.cm-s-lesser-dark .CodeMirror-linenumber { color: #777; }
+
+.cm-s-lesser-dark span.cm-header { color: #a0a; }
+.cm-s-lesser-dark span.cm-quote { color: #090; }
+.cm-s-lesser-dark span.cm-keyword { color: #599eff; }
+.cm-s-lesser-dark span.cm-atom { color: #C2B470; }
+.cm-s-lesser-dark span.cm-number { color: #B35E4D; }
+.cm-s-lesser-dark span.cm-def { color: white; }
+.cm-s-lesser-dark span.cm-variable { color:#D9BF8C; }
+.cm-s-lesser-dark span.cm-variable-2 { color: #669199; }
+.cm-s-lesser-dark span.cm-variable-3, .cm-s-lesser-dark span.cm-type { color: white; }
+.cm-s-lesser-dark span.cm-property { color: #92A75C; }
+.cm-s-lesser-dark span.cm-operator { color: #92A75C; }
+.cm-s-lesser-dark span.cm-comment { color: #666; }
+.cm-s-lesser-dark span.cm-string { color: #BCD279; }
+.cm-s-lesser-dark span.cm-string-2 { color: #f50; }
+.cm-s-lesser-dark span.cm-meta { color: #738C73; }
+.cm-s-lesser-dark span.cm-qualifier { color: #555; }
+.cm-s-lesser-dark span.cm-builtin { color: #ff9e59; }
+.cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; }
+.cm-s-lesser-dark span.cm-tag { color: #669199; }
+.cm-s-lesser-dark span.cm-attribute { color: #81a4d5; }
+.cm-s-lesser-dark span.cm-hr { color: #999; }
+.cm-s-lesser-dark span.cm-link { color: #7070E6; }
+.cm-s-lesser-dark span.cm-error { color: #9d1e15; }
+
+.cm-s-lesser-dark .CodeMirror-activeline-background { background: #3C3A3A; }
+.cm-s-lesser-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/liquibyte.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/liquibyte.css
new file mode 100644
index 0000000..393825e
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/liquibyte.css
@@ -0,0 +1,95 @@
+.cm-s-liquibyte.CodeMirror {
+ background-color: #000;
+ color: #fff;
+ line-height: 1.2em;
+ font-size: 1em;
+}
+.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {
+ text-decoration: underline;
+ text-decoration-color: #0f0;
+ text-decoration-style: wavy;
+}
+.cm-s-liquibyte .cm-trailingspace {
+ text-decoration: line-through;
+ text-decoration-color: #f00;
+ text-decoration-style: dotted;
+}
+.cm-s-liquibyte .cm-tab {
+ text-decoration: line-through;
+ text-decoration-color: #404040;
+ text-decoration-style: dotted;
+}
+.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }
+.cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }
+.cm-s-liquibyte .CodeMirror-guttermarker { }
+.cm-s-liquibyte .CodeMirror-guttermarker-subtle { }
+.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }
+.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }
+
+.cm-s-liquibyte span.cm-comment { color: #008000; }
+.cm-s-liquibyte span.cm-def { color: #ffaf40; font-weight: bold; }
+.cm-s-liquibyte span.cm-keyword { color: #c080ff; font-weight: bold; }
+.cm-s-liquibyte span.cm-builtin { color: #ffaf40; font-weight: bold; }
+.cm-s-liquibyte span.cm-variable { color: #5967ff; font-weight: bold; }
+.cm-s-liquibyte span.cm-string { color: #ff8000; }
+.cm-s-liquibyte span.cm-number { color: #0f0; font-weight: bold; }
+.cm-s-liquibyte span.cm-atom { color: #bf3030; font-weight: bold; }
+
+.cm-s-liquibyte span.cm-variable-2 { color: #007f7f; font-weight: bold; }
+.cm-s-liquibyte span.cm-variable-3, .cm-s-liquibyte span.cm-type { color: #c080ff; font-weight: bold; }
+.cm-s-liquibyte span.cm-property { color: #999; font-weight: bold; }
+.cm-s-liquibyte span.cm-operator { color: #fff; }
+
+.cm-s-liquibyte span.cm-meta { color: #0f0; }
+.cm-s-liquibyte span.cm-qualifier { color: #fff700; font-weight: bold; }
+.cm-s-liquibyte span.cm-bracket { color: #cc7; }
+.cm-s-liquibyte span.cm-tag { color: #ff0; font-weight: bold; }
+.cm-s-liquibyte span.cm-attribute { color: #c080ff; font-weight: bold; }
+.cm-s-liquibyte span.cm-error { color: #f00; }
+
+.cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }
+
+.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }
+
+.cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }
+
+/* Default styles for common addons */
+.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }
+.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }
+.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }
+/* Scrollbars */
+/* Simple */
+.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {
+ background-color: rgba(80, 80, 80, .7);
+}
+.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {
+ background-color: rgba(80, 80, 80, .3);
+ border: 1px solid #404040;
+ border-radius: 5px;
+}
+.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {
+ border-top: 1px solid #404040;
+ border-bottom: 1px solid #404040;
+}
+.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {
+ border-left: 1px solid #404040;
+ border-right: 1px solid #404040;
+}
+.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {
+ background-color: #262626;
+}
+.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {
+ background-color: #262626;
+ border-top: 1px solid #404040;
+}
+/* Overlay */
+.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {
+ background-color: #404040;
+ border-radius: 5px;
+}
+.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {
+ border: 1px solid #404040;
+}
+.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {
+ border: 1px solid #404040;
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/lucario.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/lucario.css
new file mode 100644
index 0000000..17a1551
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/lucario.css
@@ -0,0 +1,37 @@
+/*
+ Name: lucario
+ Author: Raphael Amorim
+
+ Original Lucario color scheme (https://github.com/raphamorim/lucario)
+*/
+
+.cm-s-lucario.CodeMirror, .cm-s-lucario .CodeMirror-gutters {
+ background-color: #2b3e50 !important;
+ color: #f8f8f2 !important;
+ border: none;
+}
+.cm-s-lucario .CodeMirror-gutters { color: #2b3e50; }
+.cm-s-lucario .CodeMirror-cursor { border-left: solid thin #E6C845; }
+.cm-s-lucario .CodeMirror-linenumber { color: #f8f8f2; }
+.cm-s-lucario .CodeMirror-selected { background: #243443; }
+.cm-s-lucario .CodeMirror-line::selection, .cm-s-lucario .CodeMirror-line > span::selection, .cm-s-lucario .CodeMirror-line > span > span::selection { background: #243443; }
+.cm-s-lucario .CodeMirror-line::-moz-selection, .cm-s-lucario .CodeMirror-line > span::-moz-selection, .cm-s-lucario .CodeMirror-line > span > span::-moz-selection { background: #243443; }
+.cm-s-lucario span.cm-comment { color: #5c98cd; }
+.cm-s-lucario span.cm-string, .cm-s-lucario span.cm-string-2 { color: #E6DB74; }
+.cm-s-lucario span.cm-number { color: #ca94ff; }
+.cm-s-lucario span.cm-variable { color: #f8f8f2; }
+.cm-s-lucario span.cm-variable-2 { color: #f8f8f2; }
+.cm-s-lucario span.cm-def { color: #72C05D; }
+.cm-s-lucario span.cm-operator { color: #66D9EF; }
+.cm-s-lucario span.cm-keyword { color: #ff6541; }
+.cm-s-lucario span.cm-atom { color: #bd93f9; }
+.cm-s-lucario span.cm-meta { color: #f8f8f2; }
+.cm-s-lucario span.cm-tag { color: #ff6541; }
+.cm-s-lucario span.cm-attribute { color: #66D9EF; }
+.cm-s-lucario span.cm-qualifier { color: #72C05D; }
+.cm-s-lucario span.cm-property { color: #f8f8f2; }
+.cm-s-lucario span.cm-builtin { color: #72C05D; }
+.cm-s-lucario span.cm-variable-3, .cm-s-lucario span.cm-type { color: #ffb86c; }
+
+.cm-s-lucario .CodeMirror-activeline-background { background: #243443; }
+.cm-s-lucario .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/material-darker.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/material-darker.css
new file mode 100644
index 0000000..45b64ef
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/material-darker.css
@@ -0,0 +1,135 @@
+/*
+ Name: material
+ Author: Mattia Astorino (http://github.com/equinusocio)
+ Website: https://material-theme.site/
+*/
+
+.cm-s-material-darker.CodeMirror {
+ background-color: #212121;
+ color: #EEFFFF;
+}
+
+.cm-s-material-darker .CodeMirror-gutters {
+ background: #212121;
+ color: #545454;
+ border: none;
+}
+
+.cm-s-material-darker .CodeMirror-guttermarker,
+.cm-s-material-darker .CodeMirror-guttermarker-subtle,
+.cm-s-material-darker .CodeMirror-linenumber {
+ color: #545454;
+}
+
+.cm-s-material-darker .CodeMirror-cursor {
+ border-left: 1px solid #FFCC00;
+}
+
+.cm-s-material-darker div.CodeMirror-selected {
+ background: rgba(97, 97, 97, 0.2);
+}
+
+.cm-s-material-darker.CodeMirror-focused div.CodeMirror-selected {
+ background: rgba(97, 97, 97, 0.2);
+}
+
+.cm-s-material-darker .CodeMirror-line::selection,
+.cm-s-material-darker .CodeMirror-line>span::selection,
+.cm-s-material-darker .CodeMirror-line>span>span::selection {
+ background: rgba(128, 203, 196, 0.2);
+}
+
+.cm-s-material-darker .CodeMirror-line::-moz-selection,
+.cm-s-material-darker .CodeMirror-line>span::-moz-selection,
+.cm-s-material-darker .CodeMirror-line>span>span::-moz-selection {
+ background: rgba(128, 203, 196, 0.2);
+}
+
+.cm-s-material-darker .CodeMirror-activeline-background {
+ background: rgba(0, 0, 0, 0.5);
+}
+
+.cm-s-material-darker .cm-keyword {
+ color: #C792EA;
+}
+
+.cm-s-material-darker .cm-operator {
+ color: #89DDFF;
+}
+
+.cm-s-material-darker .cm-variable-2 {
+ color: #EEFFFF;
+}
+
+.cm-s-material-darker .cm-variable-3,
+.cm-s-material-darker .cm-type {
+ color: #f07178;
+}
+
+.cm-s-material-darker .cm-builtin {
+ color: #FFCB6B;
+}
+
+.cm-s-material-darker .cm-atom {
+ color: #F78C6C;
+}
+
+.cm-s-material-darker .cm-number {
+ color: #FF5370;
+}
+
+.cm-s-material-darker .cm-def {
+ color: #82AAFF;
+}
+
+.cm-s-material-darker .cm-string {
+ color: #C3E88D;
+}
+
+.cm-s-material-darker .cm-string-2 {
+ color: #f07178;
+}
+
+.cm-s-material-darker .cm-comment {
+ color: #545454;
+}
+
+.cm-s-material-darker .cm-variable {
+ color: #f07178;
+}
+
+.cm-s-material-darker .cm-tag {
+ color: #FF5370;
+}
+
+.cm-s-material-darker .cm-meta {
+ color: #FFCB6B;
+}
+
+.cm-s-material-darker .cm-attribute {
+ color: #C792EA;
+}
+
+.cm-s-material-darker .cm-property {
+ color: #C792EA;
+}
+
+.cm-s-material-darker .cm-qualifier {
+ color: #DECB6B;
+}
+
+.cm-s-material-darker .cm-variable-3,
+.cm-s-material-darker .cm-type {
+ color: #DECB6B;
+}
+
+
+.cm-s-material-darker .cm-error {
+ color: rgba(255, 255, 255, 1.0);
+ background-color: #FF5370;
+}
+
+.cm-s-material-darker .CodeMirror-matchingbracket {
+ text-decoration: underline;
+ color: white !important;
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/material-ocean.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/material-ocean.css
new file mode 100644
index 0000000..86a6f3c
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/material-ocean.css
@@ -0,0 +1,135 @@
+/*
+ Name: material
+ Author: Mattia Astorino (http://github.com/equinusocio)
+ Website: https://material-theme.site/
+*/
+
+.cm-s-material-ocean.CodeMirror {
+ background-color: #0F111A;
+ color: #8F93A2;
+}
+
+.cm-s-material-ocean .CodeMirror-gutters {
+ background: #0F111A;
+ color: #464B5D;
+ border: none;
+}
+
+.cm-s-material-ocean .CodeMirror-guttermarker,
+.cm-s-material-ocean .CodeMirror-guttermarker-subtle,
+.cm-s-material-ocean .CodeMirror-linenumber {
+ color: #464B5D;
+}
+
+.cm-s-material-ocean .CodeMirror-cursor {
+ border-left: 1px solid #FFCC00;
+}
+
+.cm-s-material-ocean div.CodeMirror-selected {
+ background: rgba(113, 124, 180, 0.2);
+}
+
+.cm-s-material-ocean.CodeMirror-focused div.CodeMirror-selected {
+ background: rgba(113, 124, 180, 0.2);
+}
+
+.cm-s-material-ocean .CodeMirror-line::selection,
+.cm-s-material-ocean .CodeMirror-line>span::selection,
+.cm-s-material-ocean .CodeMirror-line>span>span::selection {
+ background: rgba(128, 203, 196, 0.2);
+}
+
+.cm-s-material-ocean .CodeMirror-line::-moz-selection,
+.cm-s-material-ocean .CodeMirror-line>span::-moz-selection,
+.cm-s-material-ocean .CodeMirror-line>span>span::-moz-selection {
+ background: rgba(128, 203, 196, 0.2);
+}
+
+.cm-s-material-ocean .CodeMirror-activeline-background {
+ background: rgba(0, 0, 0, 0.5);
+}
+
+.cm-s-material-ocean .cm-keyword {
+ color: #C792EA;
+}
+
+.cm-s-material-ocean .cm-operator {
+ color: #89DDFF;
+}
+
+.cm-s-material-ocean .cm-variable-2 {
+ color: #EEFFFF;
+}
+
+.cm-s-material-ocean .cm-variable-3,
+.cm-s-material-ocean .cm-type {
+ color: #f07178;
+}
+
+.cm-s-material-ocean .cm-builtin {
+ color: #FFCB6B;
+}
+
+.cm-s-material-ocean .cm-atom {
+ color: #F78C6C;
+}
+
+.cm-s-material-ocean .cm-number {
+ color: #FF5370;
+}
+
+.cm-s-material-ocean .cm-def {
+ color: #82AAFF;
+}
+
+.cm-s-material-ocean .cm-string {
+ color: #C3E88D;
+}
+
+.cm-s-material-ocean .cm-string-2 {
+ color: #f07178;
+}
+
+.cm-s-material-ocean .cm-comment {
+ color: #464B5D;
+}
+
+.cm-s-material-ocean .cm-variable {
+ color: #f07178;
+}
+
+.cm-s-material-ocean .cm-tag {
+ color: #FF5370;
+}
+
+.cm-s-material-ocean .cm-meta {
+ color: #FFCB6B;
+}
+
+.cm-s-material-ocean .cm-attribute {
+ color: #C792EA;
+}
+
+.cm-s-material-ocean .cm-property {
+ color: #C792EA;
+}
+
+.cm-s-material-ocean .cm-qualifier {
+ color: #DECB6B;
+}
+
+.cm-s-material-ocean .cm-variable-3,
+.cm-s-material-ocean .cm-type {
+ color: #DECB6B;
+}
+
+
+.cm-s-material-ocean .cm-error {
+ color: rgba(255, 255, 255, 1.0);
+ background-color: #FF5370;
+}
+
+.cm-s-material-ocean .CodeMirror-matchingbracket {
+ text-decoration: underline;
+ color: white !important;
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/material-palenight.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/material-palenight.css
new file mode 100644
index 0000000..66d53dd
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/material-palenight.css
@@ -0,0 +1,135 @@
+/*
+ Name: material
+ Author: Mattia Astorino (http://github.com/equinusocio)
+ Website: https://material-theme.site/
+*/
+
+.cm-s-material-palenight.CodeMirror {
+ background-color: #292D3E;
+ color: #A6ACCD;
+}
+
+.cm-s-material-palenight .CodeMirror-gutters {
+ background: #292D3E;
+ color: #676E95;
+ border: none;
+}
+
+.cm-s-material-palenight .CodeMirror-guttermarker,
+.cm-s-material-palenight .CodeMirror-guttermarker-subtle,
+.cm-s-material-palenight .CodeMirror-linenumber {
+ color: #676E95;
+}
+
+.cm-s-material-palenight .CodeMirror-cursor {
+ border-left: 1px solid #FFCC00;
+}
+
+.cm-s-material-palenight div.CodeMirror-selected {
+ background: rgba(113, 124, 180, 0.2);
+}
+
+.cm-s-material-palenight.CodeMirror-focused div.CodeMirror-selected {
+ background: rgba(113, 124, 180, 0.2);
+}
+
+.cm-s-material-palenight .CodeMirror-line::selection,
+.cm-s-material-palenight .CodeMirror-line>span::selection,
+.cm-s-material-palenight .CodeMirror-line>span>span::selection {
+ background: rgba(128, 203, 196, 0.2);
+}
+
+.cm-s-material-palenight .CodeMirror-line::-moz-selection,
+.cm-s-material-palenight .CodeMirror-line>span::-moz-selection,
+.cm-s-material-palenight .CodeMirror-line>span>span::-moz-selection {
+ background: rgba(128, 203, 196, 0.2);
+}
+
+.cm-s-material-palenight .CodeMirror-activeline-background {
+ background: rgba(0, 0, 0, 0.5);
+}
+
+.cm-s-material-palenight .cm-keyword {
+ color: #C792EA;
+}
+
+.cm-s-material-palenight .cm-operator {
+ color: #89DDFF;
+}
+
+.cm-s-material-palenight .cm-variable-2 {
+ color: #EEFFFF;
+}
+
+.cm-s-material-palenight .cm-variable-3,
+.cm-s-material-palenight .cm-type {
+ color: #f07178;
+}
+
+.cm-s-material-palenight .cm-builtin {
+ color: #FFCB6B;
+}
+
+.cm-s-material-palenight .cm-atom {
+ color: #F78C6C;
+}
+
+.cm-s-material-palenight .cm-number {
+ color: #FF5370;
+}
+
+.cm-s-material-palenight .cm-def {
+ color: #82AAFF;
+}
+
+.cm-s-material-palenight .cm-string {
+ color: #C3E88D;
+}
+
+.cm-s-material-palenight .cm-string-2 {
+ color: #f07178;
+}
+
+.cm-s-material-palenight .cm-comment {
+ color: #676E95;
+}
+
+.cm-s-material-palenight .cm-variable {
+ color: #f07178;
+}
+
+.cm-s-material-palenight .cm-tag {
+ color: #FF5370;
+}
+
+.cm-s-material-palenight .cm-meta {
+ color: #FFCB6B;
+}
+
+.cm-s-material-palenight .cm-attribute {
+ color: #C792EA;
+}
+
+.cm-s-material-palenight .cm-property {
+ color: #C792EA;
+}
+
+.cm-s-material-palenight .cm-qualifier {
+ color: #DECB6B;
+}
+
+.cm-s-material-palenight .cm-variable-3,
+.cm-s-material-palenight .cm-type {
+ color: #DECB6B;
+}
+
+
+.cm-s-material-palenight .cm-error {
+ color: rgba(255, 255, 255, 1.0);
+ background-color: #FF5370;
+}
+
+.cm-s-material-palenight .CodeMirror-matchingbracket {
+ text-decoration: underline;
+ color: white !important;
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/material.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/material.css
new file mode 100644
index 0000000..9ac17a3
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/material.css
@@ -0,0 +1,135 @@
+/*
+ Name: material
+ Author: Mattia Astorino (http://github.com/equinusocio)
+ Website: https://material-theme.site/
+*/
+
+.cm-s-material.CodeMirror {
+ background-color: #263238;
+ color: #EEFFFF;
+}
+
+.cm-s-material .CodeMirror-gutters {
+ background: #263238;
+ color: #546E7A;
+ border: none;
+}
+
+.cm-s-material .CodeMirror-guttermarker,
+.cm-s-material .CodeMirror-guttermarker-subtle,
+.cm-s-material .CodeMirror-linenumber {
+ color: #546E7A;
+}
+
+.cm-s-material .CodeMirror-cursor {
+ border-left: 1px solid #FFCC00;
+}
+
+.cm-s-material div.CodeMirror-selected {
+ background: rgba(128, 203, 196, 0.2);
+}
+
+.cm-s-material.CodeMirror-focused div.CodeMirror-selected {
+ background: rgba(128, 203, 196, 0.2);
+}
+
+.cm-s-material .CodeMirror-line::selection,
+.cm-s-material .CodeMirror-line>span::selection,
+.cm-s-material .CodeMirror-line>span>span::selection {
+ background: rgba(128, 203, 196, 0.2);
+}
+
+.cm-s-material .CodeMirror-line::-moz-selection,
+.cm-s-material .CodeMirror-line>span::-moz-selection,
+.cm-s-material .CodeMirror-line>span>span::-moz-selection {
+ background: rgba(128, 203, 196, 0.2);
+}
+
+.cm-s-material .CodeMirror-activeline-background {
+ background: rgba(0, 0, 0, 0.5);
+}
+
+.cm-s-material .cm-keyword {
+ color: #C792EA;
+}
+
+.cm-s-material .cm-operator {
+ color: #89DDFF;
+}
+
+.cm-s-material .cm-variable-2 {
+ color: #EEFFFF;
+}
+
+.cm-s-material .cm-variable-3,
+.cm-s-material .cm-type {
+ color: #f07178;
+}
+
+.cm-s-material .cm-builtin {
+ color: #FFCB6B;
+}
+
+.cm-s-material .cm-atom {
+ color: #F78C6C;
+}
+
+.cm-s-material .cm-number {
+ color: #FF5370;
+}
+
+.cm-s-material .cm-def {
+ color: #82AAFF;
+}
+
+.cm-s-material .cm-string {
+ color: #C3E88D;
+}
+
+.cm-s-material .cm-string-2 {
+ color: #f07178;
+}
+
+.cm-s-material .cm-comment {
+ color: #546E7A;
+}
+
+.cm-s-material .cm-variable {
+ color: #f07178;
+}
+
+.cm-s-material .cm-tag {
+ color: #FF5370;
+}
+
+.cm-s-material .cm-meta {
+ color: #FFCB6B;
+}
+
+.cm-s-material .cm-attribute {
+ color: #C792EA;
+}
+
+.cm-s-material .cm-property {
+ color: #C792EA;
+}
+
+.cm-s-material .cm-qualifier {
+ color: #DECB6B;
+}
+
+.cm-s-material .cm-variable-3,
+.cm-s-material .cm-type {
+ color: #DECB6B;
+}
+
+
+.cm-s-material .cm-error {
+ color: rgba(255, 255, 255, 1.0);
+ background-color: #FF5370;
+}
+
+.cm-s-material .CodeMirror-matchingbracket {
+ text-decoration: underline;
+ color: white !important;
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/mbo.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/mbo.css
new file mode 100644
index 0000000..e164fcf
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/mbo.css
@@ -0,0 +1,37 @@
+/****************************************************************/
+/* Based on mbonaci's Brackets mbo theme */
+/* https://github.com/mbonaci/global/blob/master/Mbo.tmTheme */
+/* Create your own: http://tmtheme-editor.herokuapp.com */
+/****************************************************************/
+
+.cm-s-mbo.CodeMirror { background: #2c2c2c; color: #ffffec; }
+.cm-s-mbo div.CodeMirror-selected { background: #716C62; }
+.cm-s-mbo .CodeMirror-line::selection, .cm-s-mbo .CodeMirror-line > span::selection, .cm-s-mbo .CodeMirror-line > span > span::selection { background: rgba(113, 108, 98, .99); }
+.cm-s-mbo .CodeMirror-line::-moz-selection, .cm-s-mbo .CodeMirror-line > span::-moz-selection, .cm-s-mbo .CodeMirror-line > span > span::-moz-selection { background: rgba(113, 108, 98, .99); }
+.cm-s-mbo .CodeMirror-gutters { background: #4e4e4e; border-right: 0px; }
+.cm-s-mbo .CodeMirror-guttermarker { color: white; }
+.cm-s-mbo .CodeMirror-guttermarker-subtle { color: grey; }
+.cm-s-mbo .CodeMirror-linenumber { color: #dadada; }
+.cm-s-mbo .CodeMirror-cursor { border-left: 1px solid #ffffec; }
+
+.cm-s-mbo span.cm-comment { color: #95958a; }
+.cm-s-mbo span.cm-atom { color: #00a8c6; }
+.cm-s-mbo span.cm-number { color: #00a8c6; }
+
+.cm-s-mbo span.cm-property, .cm-s-mbo span.cm-attribute { color: #9ddfe9; }
+.cm-s-mbo span.cm-keyword { color: #ffb928; }
+.cm-s-mbo span.cm-string { color: #ffcf6c; }
+.cm-s-mbo span.cm-string.cm-property { color: #ffffec; }
+
+.cm-s-mbo span.cm-variable { color: #ffffec; }
+.cm-s-mbo span.cm-variable-2 { color: #00a8c6; }
+.cm-s-mbo span.cm-def { color: #ffffec; }
+.cm-s-mbo span.cm-bracket { color: #fffffc; font-weight: bold; }
+.cm-s-mbo span.cm-tag { color: #9ddfe9; }
+.cm-s-mbo span.cm-link { color: #f54b07; }
+.cm-s-mbo span.cm-error { border-bottom: #636363; color: #ffffec; }
+.cm-s-mbo span.cm-qualifier { color: #ffffec; }
+
+.cm-s-mbo .CodeMirror-activeline-background { background: #494b41; }
+.cm-s-mbo .CodeMirror-matchingbracket { color: #ffb928 !important; }
+.cm-s-mbo .CodeMirror-matchingtag { background: rgba(255, 255, 255, .37); }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/mdn-like.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/mdn-like.css
new file mode 100644
index 0000000..622ed3e
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/mdn-like.css
@@ -0,0 +1,46 @@
+/*
+ MDN-LIKE Theme - Mozilla
+ Ported to CodeMirror by Peter Kroon
+ Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues
+ GitHub: @peterkroon
+
+ The mdn-like theme is inspired on the displayed code examples at: https://developer.mozilla.org/en-US/docs/Web/CSS/animation
+
+*/
+.cm-s-mdn-like.CodeMirror { color: #999; background-color: #fff; }
+.cm-s-mdn-like div.CodeMirror-selected { background: #cfc; }
+.cm-s-mdn-like .CodeMirror-line::selection, .cm-s-mdn-like .CodeMirror-line > span::selection, .cm-s-mdn-like .CodeMirror-line > span > span::selection { background: #cfc; }
+.cm-s-mdn-like .CodeMirror-line::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span > span::-moz-selection { background: #cfc; }
+
+.cm-s-mdn-like .CodeMirror-gutters { background: #f8f8f8; border-left: 6px solid rgba(0,83,159,0.65); color: #333; }
+.cm-s-mdn-like .CodeMirror-linenumber { color: #aaa; padding-left: 8px; }
+.cm-s-mdn-like .CodeMirror-cursor { border-left: 2px solid #222; }
+
+.cm-s-mdn-like .cm-keyword { color: #6262FF; }
+.cm-s-mdn-like .cm-atom { color: #F90; }
+.cm-s-mdn-like .cm-number { color: #ca7841; }
+.cm-s-mdn-like .cm-def { color: #8DA6CE; }
+.cm-s-mdn-like span.cm-variable-2, .cm-s-mdn-like span.cm-tag { color: #690; }
+.cm-s-mdn-like span.cm-variable-3, .cm-s-mdn-like span.cm-def, .cm-s-mdn-like span.cm-type { color: #07a; }
+
+.cm-s-mdn-like .cm-variable { color: #07a; }
+.cm-s-mdn-like .cm-property { color: #905; }
+.cm-s-mdn-like .cm-qualifier { color: #690; }
+
+.cm-s-mdn-like .cm-operator { color: #cda869; }
+.cm-s-mdn-like .cm-comment { color:#777; font-weight:normal; }
+.cm-s-mdn-like .cm-string { color:#07a; font-style:italic; }
+.cm-s-mdn-like .cm-string-2 { color:#bd6b18; } /*?*/
+.cm-s-mdn-like .cm-meta { color: #000; } /*?*/
+.cm-s-mdn-like .cm-builtin { color: #9B7536; } /*?*/
+.cm-s-mdn-like .cm-tag { color: #997643; }
+.cm-s-mdn-like .cm-attribute { color: #d6bb6d; } /*?*/
+.cm-s-mdn-like .cm-header { color: #FF6400; }
+.cm-s-mdn-like .cm-hr { color: #AEAEAE; }
+.cm-s-mdn-like .cm-link { color:#ad9361; font-style:italic; text-decoration:none; }
+.cm-s-mdn-like .cm-error { border-bottom: 1px solid red; }
+
+div.cm-s-mdn-like .CodeMirror-activeline-background { background: #efefff; }
+div.cm-s-mdn-like span.CodeMirror-matchingbracket { outline:1px solid grey; color: inherit; }
+
+.cm-s-mdn-like.CodeMirror { background-image: url(data:image/png;base64,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); }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/midnight.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/midnight.css
new file mode 100644
index 0000000..fc26474
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/midnight.css
@@ -0,0 +1,39 @@
+/* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */
+
+/**/
+.cm-s-midnight .CodeMirror-activeline-background { background: #253540; }
+
+.cm-s-midnight.CodeMirror {
+ background: #0F192A;
+ color: #D1EDFF;
+}
+
+.cm-s-midnight div.CodeMirror-selected { background: #314D67; }
+.cm-s-midnight .CodeMirror-line::selection, .cm-s-midnight .CodeMirror-line > span::selection, .cm-s-midnight .CodeMirror-line > span > span::selection { background: rgba(49, 77, 103, .99); }
+.cm-s-midnight .CodeMirror-line::-moz-selection, .cm-s-midnight .CodeMirror-line > span::-moz-selection, .cm-s-midnight .CodeMirror-line > span > span::-moz-selection { background: rgba(49, 77, 103, .99); }
+.cm-s-midnight .CodeMirror-gutters { background: #0F192A; border-right: 1px solid; }
+.cm-s-midnight .CodeMirror-guttermarker { color: white; }
+.cm-s-midnight .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
+.cm-s-midnight .CodeMirror-linenumber { color: #D0D0D0; }
+.cm-s-midnight .CodeMirror-cursor { border-left: 1px solid #F8F8F0; }
+
+.cm-s-midnight span.cm-comment { color: #428BDD; }
+.cm-s-midnight span.cm-atom { color: #AE81FF; }
+.cm-s-midnight span.cm-number { color: #D1EDFF; }
+
+.cm-s-midnight span.cm-property, .cm-s-midnight span.cm-attribute { color: #A6E22E; }
+.cm-s-midnight span.cm-keyword { color: #E83737; }
+.cm-s-midnight span.cm-string { color: #1DC116; }
+
+.cm-s-midnight span.cm-variable { color: #FFAA3E; }
+.cm-s-midnight span.cm-variable-2 { color: #FFAA3E; }
+.cm-s-midnight span.cm-def { color: #4DD; }
+.cm-s-midnight span.cm-bracket { color: #D1EDFF; }
+.cm-s-midnight span.cm-tag { color: #449; }
+.cm-s-midnight span.cm-link { color: #AE81FF; }
+.cm-s-midnight span.cm-error { background: #F92672; color: #F8F8F0; }
+
+.cm-s-midnight .CodeMirror-matchingbracket {
+ text-decoration: underline;
+ color: white !important;
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/monokai.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/monokai.css
new file mode 100644
index 0000000..cd4cd55
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/monokai.css
@@ -0,0 +1,41 @@
+/* Based on Sublime Text's Monokai theme */
+
+.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }
+.cm-s-monokai div.CodeMirror-selected { background: #49483E; }
+.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }
+.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }
+.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }
+.cm-s-monokai .CodeMirror-guttermarker { color: white; }
+.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
+.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }
+.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
+
+.cm-s-monokai span.cm-comment { color: #75715e; }
+.cm-s-monokai span.cm-atom { color: #ae81ff; }
+.cm-s-monokai span.cm-number { color: #ae81ff; }
+
+.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }
+.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }
+.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }
+.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }
+
+.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }
+.cm-s-monokai span.cm-keyword { color: #f92672; }
+.cm-s-monokai span.cm-builtin { color: #66d9ef; }
+.cm-s-monokai span.cm-string { color: #e6db74; }
+
+.cm-s-monokai span.cm-variable { color: #f8f8f2; }
+.cm-s-monokai span.cm-variable-2 { color: #9effff; }
+.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type { color: #66d9ef; }
+.cm-s-monokai span.cm-def { color: #fd971f; }
+.cm-s-monokai span.cm-bracket { color: #f8f8f2; }
+.cm-s-monokai span.cm-tag { color: #f92672; }
+.cm-s-monokai span.cm-header { color: #ae81ff; }
+.cm-s-monokai span.cm-link { color: #ae81ff; }
+.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }
+
+.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }
+.cm-s-monokai .CodeMirror-matchingbracket {
+ text-decoration: underline;
+ color: white !important;
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/moxer.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/moxer.css
new file mode 100644
index 0000000..b3ca35e
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/moxer.css
@@ -0,0 +1,143 @@
+/*
+ Name: Moxer Theme
+ Author: Mattia Astorino (http://github.com/equinusocio)
+ Website: https://github.com/moxer-theme/moxer-code
+*/
+
+.cm-s-moxer.CodeMirror {
+ background-color: #090A0F;
+ color: #8E95B4;
+ line-height: 1.8;
+}
+
+.cm-s-moxer .CodeMirror-gutters {
+ background: #090A0F;
+ color: #35394B;
+ border: none;
+}
+
+.cm-s-moxer .CodeMirror-guttermarker,
+.cm-s-moxer .CodeMirror-guttermarker-subtle,
+.cm-s-moxer .CodeMirror-linenumber {
+ color: #35394B;
+}
+
+
+.cm-s-moxer .CodeMirror-cursor {
+ border-left: 1px solid #FFCC00;
+}
+
+.cm-s-moxer div.CodeMirror-selected {
+ background: rgba(128, 203, 196, 0.2);
+}
+
+.cm-s-moxer.CodeMirror-focused div.CodeMirror-selected {
+ background: #212431;
+}
+
+.cm-s-moxer .CodeMirror-line::selection,
+.cm-s-moxer .CodeMirror-line>span::selection,
+.cm-s-moxer .CodeMirror-line>span>span::selection {
+ background: #212431;
+}
+
+.cm-s-moxer .CodeMirror-line::-moz-selection,
+.cm-s-moxer .CodeMirror-line>span::-moz-selection,
+.cm-s-moxer .CodeMirror-line>span>span::-moz-selection {
+ background: #212431;
+}
+
+.cm-s-moxer .CodeMirror-activeline-background,
+.cm-s-moxer .CodeMirror-activeline-gutter .CodeMirror-linenumber {
+ background: rgba(33, 36, 49, 0.5);
+}
+
+.cm-s-moxer .cm-keyword {
+ color: #D46C6C;
+}
+
+.cm-s-moxer .cm-operator {
+ color: #D46C6C;
+}
+
+.cm-s-moxer .cm-variable-2 {
+ color: #81C5DA;
+}
+
+
+.cm-s-moxer .cm-variable-3,
+.cm-s-moxer .cm-type {
+ color: #f07178;
+}
+
+.cm-s-moxer .cm-builtin {
+ color: #FFCB6B;
+}
+
+.cm-s-moxer .cm-atom {
+ color: #A99BE2;
+}
+
+.cm-s-moxer .cm-number {
+ color: #7CA4C0;
+}
+
+.cm-s-moxer .cm-def {
+ color: #F5DFA5;
+}
+
+.cm-s-moxer .CodeMirror-line .cm-def ~ .cm-def {
+ color: #81C5DA;
+}
+
+.cm-s-moxer .cm-string {
+ color: #B2E4AE;
+}
+
+.cm-s-moxer .cm-string-2 {
+ color: #f07178;
+}
+
+.cm-s-moxer .cm-comment {
+ color: #3F445A;
+}
+
+.cm-s-moxer .cm-variable {
+ color: #8E95B4;
+}
+
+.cm-s-moxer .cm-tag {
+ color: #FF5370;
+}
+
+.cm-s-moxer .cm-meta {
+ color: #FFCB6B;
+}
+
+.cm-s-moxer .cm-attribute {
+ color: #C792EA;
+}
+
+.cm-s-moxer .cm-property {
+ color: #81C5DA;
+}
+
+.cm-s-moxer .cm-qualifier {
+ color: #DECB6B;
+}
+
+.cm-s-moxer .cm-variable-3,
+.cm-s-moxer .cm-type {
+ color: #DECB6B;
+}
+
+
+.cm-s-moxer .cm-error {
+ color: rgba(255, 255, 255, 1.0);
+ background-color: #FF5370;
+}
+
+.cm-s-moxer .CodeMirror-matchingbracket {
+ text-decoration: underline;
+ color: white !important;
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/neat.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/neat.css
new file mode 100644
index 0000000..4267b1a
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/neat.css
@@ -0,0 +1,12 @@
+.cm-s-neat span.cm-comment { color: #a86; }
+.cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; }
+.cm-s-neat span.cm-string { color: #a22; }
+.cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; }
+.cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; }
+.cm-s-neat span.cm-variable { color: black; }
+.cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; }
+.cm-s-neat span.cm-meta { color: #555; }
+.cm-s-neat span.cm-link { color: #3a3; }
+
+.cm-s-neat .CodeMirror-activeline-background { background: #e8f2ff; }
+.cm-s-neat .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/neo.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/neo.css
new file mode 100644
index 0000000..b28d5c6
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/neo.css
@@ -0,0 +1,43 @@
+/* neo theme for codemirror */
+
+/* Color scheme */
+
+.cm-s-neo.CodeMirror {
+ background-color:#ffffff;
+ color:#2e383c;
+ line-height:1.4375;
+}
+.cm-s-neo .cm-comment { color:#75787b; }
+.cm-s-neo .cm-keyword, .cm-s-neo .cm-property { color:#1d75b3; }
+.cm-s-neo .cm-atom,.cm-s-neo .cm-number { color:#75438a; }
+.cm-s-neo .cm-node,.cm-s-neo .cm-tag { color:#9c3328; }
+.cm-s-neo .cm-string { color:#b35e14; }
+.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier { color:#047d65; }
+
+
+/* Editor styling */
+
+.cm-s-neo pre {
+ padding:0;
+}
+
+.cm-s-neo .CodeMirror-gutters {
+ border:none;
+ border-right:10px solid transparent;
+ background-color:transparent;
+}
+
+.cm-s-neo .CodeMirror-linenumber {
+ padding:0;
+ color:#e0e2e5;
+}
+
+.cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; }
+.cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; }
+
+.cm-s-neo .CodeMirror-cursor {
+ width: auto;
+ border: 0;
+ background: rgba(155,157,162,0.37);
+ z-index: 1;
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/night.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/night.css
new file mode 100644
index 0000000..f631bf4
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/night.css
@@ -0,0 +1,27 @@
+/* Loosely based on the Midnight Textmate theme */
+
+.cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; }
+.cm-s-night div.CodeMirror-selected { background: #447; }
+.cm-s-night .CodeMirror-line::selection, .cm-s-night .CodeMirror-line > span::selection, .cm-s-night .CodeMirror-line > span > span::selection { background: rgba(68, 68, 119, .99); }
+.cm-s-night .CodeMirror-line::-moz-selection, .cm-s-night .CodeMirror-line > span::-moz-selection, .cm-s-night .CodeMirror-line > span > span::-moz-selection { background: rgba(68, 68, 119, .99); }
+.cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
+.cm-s-night .CodeMirror-guttermarker { color: white; }
+.cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; }
+.cm-s-night .CodeMirror-linenumber { color: #f8f8f8; }
+.cm-s-night .CodeMirror-cursor { border-left: 1px solid white; }
+
+.cm-s-night span.cm-comment { color: #8900d1; }
+.cm-s-night span.cm-atom { color: #845dc4; }
+.cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; }
+.cm-s-night span.cm-keyword { color: #599eff; }
+.cm-s-night span.cm-string { color: #37f14a; }
+.cm-s-night span.cm-meta { color: #7678e2; }
+.cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; }
+.cm-s-night span.cm-variable-3, .cm-s-night span.cm-def, .cm-s-night span.cm-type { color: white; }
+.cm-s-night span.cm-bracket { color: #8da6ce; }
+.cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; }
+.cm-s-night span.cm-link { color: #845dc4; }
+.cm-s-night span.cm-error { color: #9d1e15; }
+
+.cm-s-night .CodeMirror-activeline-background { background: #1C005A; }
+.cm-s-night .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/nord.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/nord.css
new file mode 100644
index 0000000..41a8ad7
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/nord.css
@@ -0,0 +1,42 @@
+/* Based on arcticicestudio's Nord theme */
+/* https://github.com/arcticicestudio/nord */
+
+.cm-s-nord.CodeMirror { background: #2e3440; color: #d8dee9; }
+.cm-s-nord div.CodeMirror-selected { background: #434c5e; }
+.cm-s-nord .CodeMirror-line::selection, .cm-s-nord .CodeMirror-line > span::selection, .cm-s-nord .CodeMirror-line > span > span::selection { background: #3b4252; }
+.cm-s-nord .CodeMirror-line::-moz-selection, .cm-s-nord .CodeMirror-line > span::-moz-selection, .cm-s-nord .CodeMirror-line > span > span::-moz-selection { background: #3b4252; }
+.cm-s-nord .CodeMirror-gutters { background: #2e3440; border-right: 0px; }
+.cm-s-nord .CodeMirror-guttermarker { color: #4c566a; }
+.cm-s-nord .CodeMirror-guttermarker-subtle { color: #4c566a; }
+.cm-s-nord .CodeMirror-linenumber { color: #4c566a; }
+.cm-s-nord .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
+
+.cm-s-nord span.cm-comment { color: #4c566a; }
+.cm-s-nord span.cm-atom { color: #b48ead; }
+.cm-s-nord span.cm-number { color: #b48ead; }
+
+.cm-s-nord span.cm-comment.cm-attribute { color: #97b757; }
+.cm-s-nord span.cm-comment.cm-def { color: #bc9262; }
+.cm-s-nord span.cm-comment.cm-tag { color: #bc6283; }
+.cm-s-nord span.cm-comment.cm-type { color: #5998a6; }
+
+.cm-s-nord span.cm-property, .cm-s-nord span.cm-attribute { color: #8FBCBB; }
+.cm-s-nord span.cm-keyword { color: #81A1C1; }
+.cm-s-nord span.cm-builtin { color: #81A1C1; }
+.cm-s-nord span.cm-string { color: #A3BE8C; }
+
+.cm-s-nord span.cm-variable { color: #d8dee9; }
+.cm-s-nord span.cm-variable-2 { color: #d8dee9; }
+.cm-s-nord span.cm-variable-3, .cm-s-nord span.cm-type { color: #d8dee9; }
+.cm-s-nord span.cm-def { color: #8FBCBB; }
+.cm-s-nord span.cm-bracket { color: #81A1C1; }
+.cm-s-nord span.cm-tag { color: #bf616a; }
+.cm-s-nord span.cm-header { color: #b48ead; }
+.cm-s-nord span.cm-link { color: #b48ead; }
+.cm-s-nord span.cm-error { background: #bf616a; color: #f8f8f0; }
+
+.cm-s-nord .CodeMirror-activeline-background { background: #3b4252; }
+.cm-s-nord .CodeMirror-matchingbracket {
+ text-decoration: underline;
+ color: white !important;
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/oceanic-next.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/oceanic-next.css
new file mode 100644
index 0000000..296277b
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/oceanic-next.css
@@ -0,0 +1,44 @@
+/*
+
+ Name: oceanic-next
+ Author: Filype Pereira (https://github.com/fpereira1)
+
+ Original oceanic-next color scheme by Dmitri Voronianski (https://github.com/voronianski/oceanic-next-color-scheme)
+
+*/
+
+.cm-s-oceanic-next.CodeMirror { background: #304148; color: #f8f8f2; }
+.cm-s-oceanic-next div.CodeMirror-selected { background: rgba(101, 115, 126, 0.33); }
+.cm-s-oceanic-next .CodeMirror-line::selection, .cm-s-oceanic-next .CodeMirror-line > span::selection, .cm-s-oceanic-next .CodeMirror-line > span > span::selection { background: rgba(101, 115, 126, 0.33); }
+.cm-s-oceanic-next .CodeMirror-line::-moz-selection, .cm-s-oceanic-next .CodeMirror-line > span::-moz-selection, .cm-s-oceanic-next .CodeMirror-line > span > span::-moz-selection { background: rgba(101, 115, 126, 0.33); }
+.cm-s-oceanic-next .CodeMirror-gutters { background: #304148; border-right: 10px; }
+.cm-s-oceanic-next .CodeMirror-guttermarker { color: white; }
+.cm-s-oceanic-next .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
+.cm-s-oceanic-next .CodeMirror-linenumber { color: #d0d0d0; }
+.cm-s-oceanic-next .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
+
+.cm-s-oceanic-next span.cm-comment { color: #65737E; }
+.cm-s-oceanic-next span.cm-atom { color: #C594C5; }
+.cm-s-oceanic-next span.cm-number { color: #F99157; }
+
+.cm-s-oceanic-next span.cm-property { color: #99C794; }
+.cm-s-oceanic-next span.cm-attribute,
+.cm-s-oceanic-next span.cm-keyword { color: #C594C5; }
+.cm-s-oceanic-next span.cm-builtin { color: #66d9ef; }
+.cm-s-oceanic-next span.cm-string { color: #99C794; }
+
+.cm-s-oceanic-next span.cm-variable,
+.cm-s-oceanic-next span.cm-variable-2,
+.cm-s-oceanic-next span.cm-variable-3 { color: #f8f8f2; }
+.cm-s-oceanic-next span.cm-def { color: #6699CC; }
+.cm-s-oceanic-next span.cm-bracket { color: #5FB3B3; }
+.cm-s-oceanic-next span.cm-tag { color: #C594C5; }
+.cm-s-oceanic-next span.cm-header { color: #C594C5; }
+.cm-s-oceanic-next span.cm-link { color: #C594C5; }
+.cm-s-oceanic-next span.cm-error { background: #C594C5; color: #f8f8f0; }
+
+.cm-s-oceanic-next .CodeMirror-activeline-background { background: rgba(101, 115, 126, 0.33); }
+.cm-s-oceanic-next .CodeMirror-matchingbracket {
+ text-decoration: underline;
+ color: white !important;
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/panda-syntax.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/panda-syntax.css
new file mode 100644
index 0000000..de14e91
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/panda-syntax.css
@@ -0,0 +1,85 @@
+/*
+ Name: Panda Syntax
+ Author: Siamak Mokhtari (http://github.com/siamak/)
+ CodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax)
+*/
+.cm-s-panda-syntax {
+ background: #292A2B;
+ color: #E6E6E6;
+ line-height: 1.5;
+ font-family: 'Operator Mono', 'Source Code Pro', Menlo, Monaco, Consolas, Courier New, monospace;
+}
+.cm-s-panda-syntax .CodeMirror-cursor { border-color: #ff2c6d; }
+.cm-s-panda-syntax .CodeMirror-activeline-background {
+ background: rgba(99, 123, 156, 0.1);
+}
+.cm-s-panda-syntax .CodeMirror-selected {
+ background: #FFF;
+}
+.cm-s-panda-syntax .cm-comment {
+ font-style: italic;
+ color: #676B79;
+}
+.cm-s-panda-syntax .cm-operator {
+ color: #f3f3f3;
+}
+.cm-s-panda-syntax .cm-string {
+ color: #19F9D8;
+}
+.cm-s-panda-syntax .cm-string-2 {
+ color: #FFB86C;
+}
+
+.cm-s-panda-syntax .cm-tag {
+ color: #ff2c6d;
+}
+.cm-s-panda-syntax .cm-meta {
+ color: #b084eb;
+}
+
+.cm-s-panda-syntax .cm-number {
+ color: #FFB86C;
+}
+.cm-s-panda-syntax .cm-atom {
+ color: #ff2c6d;
+}
+.cm-s-panda-syntax .cm-keyword {
+ color: #FF75B5;
+}
+.cm-s-panda-syntax .cm-variable {
+ color: #ffb86c;
+}
+.cm-s-panda-syntax .cm-variable-2 {
+ color: #ff9ac1;
+}
+.cm-s-panda-syntax .cm-variable-3, .cm-s-panda-syntax .cm-type {
+ color: #ff9ac1;
+}
+
+.cm-s-panda-syntax .cm-def {
+ color: #e6e6e6;
+}
+.cm-s-panda-syntax .cm-property {
+ color: #f3f3f3;
+}
+.cm-s-panda-syntax .cm-unit {
+ color: #ffb86c;
+}
+
+.cm-s-panda-syntax .cm-attribute {
+ color: #ffb86c;
+}
+
+.cm-s-panda-syntax .CodeMirror-matchingbracket {
+ border-bottom: 1px dotted #19F9D8;
+ padding-bottom: 2px;
+ color: #e6e6e6;
+}
+.cm-s-panda-syntax .CodeMirror-gutters {
+ background: #292a2b;
+ border-right-color: rgba(255, 255, 255, 0.1);
+}
+.cm-s-panda-syntax .CodeMirror-linenumber {
+ color: #e6e6e6;
+ opacity: 0.6;
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/paper.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/paper.css
new file mode 100644
index 0000000..fef4ddf
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/paper.css
@@ -0,0 +1,143 @@
+/* Grav Default Theme */
+.cm-s-paper.CodeMirror {
+ color: #666;
+ line-height: 1.4;
+}
+
+.cm-s-paper .cm-link {
+ color: #0082ba
+}
+
+.cm-s-paper .cm-comment {
+ color: gray
+}
+
+.cm-s-paper .cm-header {
+ color: #595959
+}
+
+.cm-s-paper .cm-strong {
+ color: #4d4d4d
+}
+
+.cm-s-paper .cm-em {
+ color: #4d4d4d
+}
+
+.cm-s-paper .cm-string {
+ color: #0082BA
+}
+
+.cm-s-paper .cm-tag {
+ color: #4d4d4d
+}
+
+.cm-s-paper .cm-bracket {
+ color: #666
+}
+
+.cm-s-paper .cm-hr {
+ color: #ccc;
+ font-weight: bold
+}
+
+.cm-s-paper .cm-keyword {
+ color: #0082ba
+}
+
+.cm-s-paper .cm-atom {
+ color: #9055af
+}
+
+.cm-s-paper .cm-meta {
+ color: #666
+}
+
+.cm-s-paper .cm-number {
+ color: #7f8c8d
+}
+
+.cm-s-paper .cm-def {
+ color: #00f
+}
+
+.cm-s-paper .cm-variable {
+ color: black
+}
+
+.cm-s-paper .cm-property {
+ color: black
+}
+
+.cm-s-paper .cm-operator {
+ color: black
+}
+
+.cm-s-paper .cm-string-2 {
+ color: #f50
+}
+
+.cm-s-paper .cm-meta {
+ color: #555
+}
+
+.cm-s-paper .cm-error {
+ color: #f00
+}
+
+.cm-s-paper .cm-qualifier {
+ color: #555
+}
+
+.cm-s-paper .cm-builtin {
+ color: #555
+}
+
+.cm-s-paper .cm-attribute {
+ color: #7f8c8d
+}
+
+.cm-s-paper .cm-quote {
+ color: #888
+}
+
+.cm-s-paper .cm-header-1 {
+ font-size: 180%
+}
+
+.cm-s-paper .cm-header-2 {
+ font-size: 150%
+}
+
+.cm-s-paper .cm-header-3 {
+ font-size: 130%
+}
+
+.cm-s-paper .cm-header-4 {
+ font-size: 110%
+}
+
+.cm-s-paper .cm-negative {
+ color: #d44
+}
+
+.cm-s-paper .cm-positive {
+ color: #292
+}
+
+.cm-s-paper .cm-header, .cm-s-paper .cm-strong {
+ font-weight: bold
+}
+
+.cm-s-paper .cm-em {
+ font-style: italic
+}
+
+.cm-s-paper .cm-link {
+ text-decoration: underline
+}
+
+.cm-s-paper .cm-invalidchar {
+ color: #f00
+}
+
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/paraiso-dark.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/paraiso-dark.css
new file mode 100644
index 0000000..aa9d207
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/paraiso-dark.css
@@ -0,0 +1,38 @@
+/*
+
+ Name: Paraíso (Dark)
+ Author: Jan T. Sott
+
+ Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)
+ Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
+
+*/
+
+.cm-s-paraiso-dark.CodeMirror { background: #2f1e2e; color: #b9b6b0; }
+.cm-s-paraiso-dark div.CodeMirror-selected { background: #41323f; }
+.cm-s-paraiso-dark .CodeMirror-line::selection, .cm-s-paraiso-dark .CodeMirror-line > span::selection, .cm-s-paraiso-dark .CodeMirror-line > span > span::selection { background: rgba(65, 50, 63, .99); }
+.cm-s-paraiso-dark .CodeMirror-line::-moz-selection, .cm-s-paraiso-dark .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(65, 50, 63, .99); }
+.cm-s-paraiso-dark .CodeMirror-gutters { background: #2f1e2e; border-right: 0px; }
+.cm-s-paraiso-dark .CodeMirror-guttermarker { color: #ef6155; }
+.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle { color: #776e71; }
+.cm-s-paraiso-dark .CodeMirror-linenumber { color: #776e71; }
+.cm-s-paraiso-dark .CodeMirror-cursor { border-left: 1px solid #8d8687; }
+
+.cm-s-paraiso-dark span.cm-comment { color: #e96ba8; }
+.cm-s-paraiso-dark span.cm-atom { color: #815ba4; }
+.cm-s-paraiso-dark span.cm-number { color: #815ba4; }
+
+.cm-s-paraiso-dark span.cm-property, .cm-s-paraiso-dark span.cm-attribute { color: #48b685; }
+.cm-s-paraiso-dark span.cm-keyword { color: #ef6155; }
+.cm-s-paraiso-dark span.cm-string { color: #fec418; }
+
+.cm-s-paraiso-dark span.cm-variable { color: #48b685; }
+.cm-s-paraiso-dark span.cm-variable-2 { color: #06b6ef; }
+.cm-s-paraiso-dark span.cm-def { color: #f99b15; }
+.cm-s-paraiso-dark span.cm-bracket { color: #b9b6b0; }
+.cm-s-paraiso-dark span.cm-tag { color: #ef6155; }
+.cm-s-paraiso-dark span.cm-link { color: #815ba4; }
+.cm-s-paraiso-dark span.cm-error { background: #ef6155; color: #8d8687; }
+
+.cm-s-paraiso-dark .CodeMirror-activeline-background { background: #4D344A; }
+.cm-s-paraiso-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/paraiso-light.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/paraiso-light.css
new file mode 100644
index 0000000..ae0c755
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/paraiso-light.css
@@ -0,0 +1,38 @@
+/*
+
+ Name: Paraíso (Light)
+ Author: Jan T. Sott
+
+ Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)
+ Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
+
+*/
+
+.cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }
+.cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }
+.cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }
+.cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }
+.cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }
+.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }
+.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }
+.cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }
+.cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }
+
+.cm-s-paraiso-light span.cm-comment { color: #e96ba8; }
+.cm-s-paraiso-light span.cm-atom { color: #815ba4; }
+.cm-s-paraiso-light span.cm-number { color: #815ba4; }
+
+.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }
+.cm-s-paraiso-light span.cm-keyword { color: #ef6155; }
+.cm-s-paraiso-light span.cm-string { color: #fec418; }
+
+.cm-s-paraiso-light span.cm-variable { color: #48b685; }
+.cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }
+.cm-s-paraiso-light span.cm-def { color: #f99b15; }
+.cm-s-paraiso-light span.cm-bracket { color: #41323f; }
+.cm-s-paraiso-light span.cm-tag { color: #ef6155; }
+.cm-s-paraiso-light span.cm-link { color: #815ba4; }
+.cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }
+
+.cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }
+.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/pastel-on-dark.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/pastel-on-dark.css
new file mode 100644
index 0000000..60435dd
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/pastel-on-dark.css
@@ -0,0 +1,52 @@
+/**
+ * Pastel On Dark theme ported from ACE editor
+ * @license MIT
+ * @copyright AtomicPages LLC 2014
+ * @author Dennis Thompson, AtomicPages LLC
+ * @version 1.1
+ * @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme
+ */
+
+.cm-s-pastel-on-dark.CodeMirror {
+ background: #2c2827;
+ color: #8F938F;
+ line-height: 1.5;
+}
+.cm-s-pastel-on-dark div.CodeMirror-selected { background: rgba(221,240,255,0.2); }
+.cm-s-pastel-on-dark .CodeMirror-line::selection, .cm-s-pastel-on-dark .CodeMirror-line > span::selection, .cm-s-pastel-on-dark .CodeMirror-line > span > span::selection { background: rgba(221,240,255,0.2); }
+.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection, .cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection, .cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(221,240,255,0.2); }
+
+.cm-s-pastel-on-dark .CodeMirror-gutters {
+ background: #34302f;
+ border-right: 0px;
+ padding: 0 3px;
+}
+.cm-s-pastel-on-dark .CodeMirror-guttermarker { color: white; }
+.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle { color: #8F938F; }
+.cm-s-pastel-on-dark .CodeMirror-linenumber { color: #8F938F; }
+.cm-s-pastel-on-dark .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }
+.cm-s-pastel-on-dark span.cm-comment { color: #A6C6FF; }
+.cm-s-pastel-on-dark span.cm-atom { color: #DE8E30; }
+.cm-s-pastel-on-dark span.cm-number { color: #CCCCCC; }
+.cm-s-pastel-on-dark span.cm-property { color: #8F938F; }
+.cm-s-pastel-on-dark span.cm-attribute { color: #a6e22e; }
+.cm-s-pastel-on-dark span.cm-keyword { color: #AEB2F8; }
+.cm-s-pastel-on-dark span.cm-string { color: #66A968; }
+.cm-s-pastel-on-dark span.cm-variable { color: #AEB2F8; }
+.cm-s-pastel-on-dark span.cm-variable-2 { color: #BEBF55; }
+.cm-s-pastel-on-dark span.cm-variable-3, .cm-s-pastel-on-dark span.cm-type { color: #DE8E30; }
+.cm-s-pastel-on-dark span.cm-def { color: #757aD8; }
+.cm-s-pastel-on-dark span.cm-bracket { color: #f8f8f2; }
+.cm-s-pastel-on-dark span.cm-tag { color: #C1C144; }
+.cm-s-pastel-on-dark span.cm-link { color: #ae81ff; }
+.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin { color: #C1C144; }
+.cm-s-pastel-on-dark span.cm-error {
+ background: #757aD8;
+ color: #f8f8f0;
+}
+.cm-s-pastel-on-dark .CodeMirror-activeline-background { background: rgba(255, 255, 255, 0.031); }
+.cm-s-pastel-on-dark .CodeMirror-matchingbracket {
+ border: 1px solid rgba(255,255,255,0.25);
+ color: #8F938F !important;
+ margin: -1px -1px 0 -1px;
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/railscasts.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/railscasts.css
new file mode 100644
index 0000000..aeff044
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/railscasts.css
@@ -0,0 +1,34 @@
+/*
+
+ Name: Railscasts
+ Author: Ryan Bates (http://railscasts.com)
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-railscasts.CodeMirror {background: #2b2b2b; color: #f4f1ed;}
+.cm-s-railscasts div.CodeMirror-selected {background: #272935 !important;}
+.cm-s-railscasts .CodeMirror-gutters {background: #2b2b2b; border-right: 0px;}
+.cm-s-railscasts .CodeMirror-linenumber {color: #5a647e;}
+.cm-s-railscasts .CodeMirror-cursor {border-left: 1px solid #d4cfc9 !important;}
+
+.cm-s-railscasts span.cm-comment {color: #bc9458;}
+.cm-s-railscasts span.cm-atom {color: #b6b3eb;}
+.cm-s-railscasts span.cm-number {color: #b6b3eb;}
+
+.cm-s-railscasts span.cm-property, .cm-s-railscasts span.cm-attribute {color: #a5c261;}
+.cm-s-railscasts span.cm-keyword {color: #da4939;}
+.cm-s-railscasts span.cm-string {color: #ffc66d;}
+
+.cm-s-railscasts span.cm-variable {color: #a5c261;}
+.cm-s-railscasts span.cm-variable-2 {color: #6d9cbe;}
+.cm-s-railscasts span.cm-def {color: #cc7833;}
+.cm-s-railscasts span.cm-error {background: #da4939; color: #d4cfc9;}
+.cm-s-railscasts span.cm-bracket {color: #f4f1ed;}
+.cm-s-railscasts span.cm-tag {color: #da4939;}
+.cm-s-railscasts span.cm-link {color: #b6b3eb;}
+
+.cm-s-railscasts .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
+.cm-s-railscasts .CodeMirror-activeline-background { background: #303040; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/rubyblue.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/rubyblue.css
new file mode 100644
index 0000000..1f181b0
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/rubyblue.css
@@ -0,0 +1,25 @@
+.cm-s-rubyblue.CodeMirror { background: #112435; color: white; }
+.cm-s-rubyblue div.CodeMirror-selected { background: #38566F; }
+.cm-s-rubyblue .CodeMirror-line::selection, .cm-s-rubyblue .CodeMirror-line > span::selection, .cm-s-rubyblue .CodeMirror-line > span > span::selection { background: rgba(56, 86, 111, 0.99); }
+.cm-s-rubyblue .CodeMirror-line::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection { background: rgba(56, 86, 111, 0.99); }
+.cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; }
+.cm-s-rubyblue .CodeMirror-guttermarker { color: white; }
+.cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; }
+.cm-s-rubyblue .CodeMirror-linenumber { color: white; }
+.cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white; }
+
+.cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; }
+.cm-s-rubyblue span.cm-atom { color: #F4C20B; }
+.cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; }
+.cm-s-rubyblue span.cm-keyword { color: #F0F; }
+.cm-s-rubyblue span.cm-string { color: #F08047; }
+.cm-s-rubyblue span.cm-meta { color: #F0F; }
+.cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; }
+.cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def, .cm-s-rubyblue span.cm-type { color: white; }
+.cm-s-rubyblue span.cm-bracket { color: #F0F; }
+.cm-s-rubyblue span.cm-link { color: #F4C20B; }
+.cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; }
+.cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; }
+.cm-s-rubyblue span.cm-error { color: #AF2018; }
+
+.cm-s-rubyblue .CodeMirror-activeline-background { background: #173047; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/seti.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/seti.css
new file mode 100644
index 0000000..814f76f
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/seti.css
@@ -0,0 +1,44 @@
+/*
+
+ Name: seti
+ Author: Michael Kaminsky (http://github.com/mkaminsky11)
+
+ Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)
+
+*/
+
+
+.cm-s-seti.CodeMirror {
+ background-color: #151718 !important;
+ color: #CFD2D1 !important;
+ border: none;
+}
+.cm-s-seti .CodeMirror-gutters {
+ color: #404b53;
+ background-color: #0E1112;
+ border: none;
+}
+.cm-s-seti .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
+.cm-s-seti .CodeMirror-linenumber { color: #6D8A88; }
+.cm-s-seti.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
+.cm-s-seti .CodeMirror-line::selection, .cm-s-seti .CodeMirror-line > span::selection, .cm-s-seti .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
+.cm-s-seti .CodeMirror-line::-moz-selection, .cm-s-seti .CodeMirror-line > span::-moz-selection, .cm-s-seti .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
+.cm-s-seti span.cm-comment { color: #41535b; }
+.cm-s-seti span.cm-string, .cm-s-seti span.cm-string-2 { color: #55b5db; }
+.cm-s-seti span.cm-number { color: #cd3f45; }
+.cm-s-seti span.cm-variable { color: #55b5db; }
+.cm-s-seti span.cm-variable-2 { color: #a074c4; }
+.cm-s-seti span.cm-def { color: #55b5db; }
+.cm-s-seti span.cm-keyword { color: #ff79c6; }
+.cm-s-seti span.cm-operator { color: #9fca56; }
+.cm-s-seti span.cm-keyword { color: #e6cd69; }
+.cm-s-seti span.cm-atom { color: #cd3f45; }
+.cm-s-seti span.cm-meta { color: #55b5db; }
+.cm-s-seti span.cm-tag { color: #55b5db; }
+.cm-s-seti span.cm-attribute { color: #9fca56; }
+.cm-s-seti span.cm-qualifier { color: #9fca56; }
+.cm-s-seti span.cm-property { color: #a074c4; }
+.cm-s-seti span.cm-variable-3, .cm-s-seti span.cm-type { color: #9fca56; }
+.cm-s-seti span.cm-builtin { color: #9fca56; }
+.cm-s-seti .CodeMirror-activeline-background { background: #101213; }
+.cm-s-seti .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/shadowfox.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/shadowfox.css
new file mode 100644
index 0000000..32d59b1
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/shadowfox.css
@@ -0,0 +1,52 @@
+/*
+
+ Name: shadowfox
+ Author: overdodactyl (http://github.com/overdodactyl)
+
+ Original shadowfox color scheme by Firefox
+
+*/
+
+.cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; }
+.cm-s-shadowfox div.CodeMirror-selected { background: #353B48; }
+.cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; }
+.cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; }
+.cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; }
+.cm-s-shadowfox .CodeMirror-guttermarker { color: #555; }
+.cm-s-shadowfox .CodeMirror-linenumber { color: #939393; }
+.cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; }
+
+.cm-s-shadowfox span.cm-comment { color: #939393; }
+.cm-s-shadowfox span.cm-atom { color: #FF7DE9; }
+.cm-s-shadowfox span.cm-quote { color: #FF7DE9; }
+.cm-s-shadowfox span.cm-builtin { color: #FF7DE9; }
+.cm-s-shadowfox span.cm-attribute { color: #FF7DE9; }
+.cm-s-shadowfox span.cm-keyword { color: #FF7DE9; }
+.cm-s-shadowfox span.cm-error { color: #FF7DE9; }
+
+.cm-s-shadowfox span.cm-number { color: #6B89FF; }
+.cm-s-shadowfox span.cm-string { color: #6B89FF; }
+.cm-s-shadowfox span.cm-string-2 { color: #6B89FF; }
+
+.cm-s-shadowfox span.cm-meta { color: #939393; }
+.cm-s-shadowfox span.cm-hr { color: #939393; }
+
+.cm-s-shadowfox span.cm-header { color: #75BFFF; }
+.cm-s-shadowfox span.cm-qualifier { color: #75BFFF; }
+.cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; }
+
+.cm-s-shadowfox span.cm-property { color: #86DE74; }
+
+.cm-s-shadowfox span.cm-def { color: #75BFFF; }
+.cm-s-shadowfox span.cm-bracket { color: #75BFFF; }
+.cm-s-shadowfox span.cm-tag { color: #75BFFF; }
+.cm-s-shadowfox span.cm-link:visited { color: #75BFFF; }
+
+.cm-s-shadowfox span.cm-variable { color: #B98EFF; }
+.cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; }
+.cm-s-shadowfox span.cm-link { color: #737373; }
+.cm-s-shadowfox span.cm-operator { color: #b1b1b3; }
+.cm-s-shadowfox span.cm-special { color: #d7d7db; }
+
+.cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) }
+.cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/solarized.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/solarized.css
new file mode 100644
index 0000000..fcd1d70
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/solarized.css
@@ -0,0 +1,168 @@
+/*
+Solarized theme for code-mirror
+http://ethanschoonover.com/solarized
+*/
+
+/*
+Solarized color palette
+http://ethanschoonover.com/solarized/img/solarized-palette.png
+*/
+
+.solarized.base03 { color: #002b36; }
+.solarized.base02 { color: #073642; }
+.solarized.base01 { color: #586e75; }
+.solarized.base00 { color: #657b83; }
+.solarized.base0 { color: #839496; }
+.solarized.base1 { color: #93a1a1; }
+.solarized.base2 { color: #eee8d5; }
+.solarized.base3 { color: #fdf6e3; }
+.solarized.solar-yellow { color: #b58900; }
+.solarized.solar-orange { color: #cb4b16; }
+.solarized.solar-red { color: #dc322f; }
+.solarized.solar-magenta { color: #d33682; }
+.solarized.solar-violet { color: #6c71c4; }
+.solarized.solar-blue { color: #268bd2; }
+.solarized.solar-cyan { color: #2aa198; }
+.solarized.solar-green { color: #859900; }
+
+/* Color scheme for code-mirror */
+
+.cm-s-solarized {
+ line-height: 1.45em;
+ color-profile: sRGB;
+ rendering-intent: auto;
+}
+.cm-s-solarized.cm-s-dark {
+ color: #839496;
+ background-color: #002b36;
+ text-shadow: #002b36 0 1px;
+}
+.cm-s-solarized.cm-s-light {
+ background-color: #fdf6e3;
+ color: #657b83;
+ text-shadow: #eee8d5 0 1px;
+}
+
+.cm-s-solarized .CodeMirror-widget {
+ text-shadow: none;
+}
+
+.cm-s-solarized .cm-header { color: #586e75; }
+.cm-s-solarized .cm-quote { color: #93a1a1; }
+
+.cm-s-solarized .cm-keyword { color: #cb4b16; }
+.cm-s-solarized .cm-atom { color: #d33682; }
+.cm-s-solarized .cm-number { color: #d33682; }
+.cm-s-solarized .cm-def { color: #2aa198; }
+
+.cm-s-solarized .cm-variable { color: #839496; }
+.cm-s-solarized .cm-variable-2 { color: #b58900; }
+.cm-s-solarized .cm-variable-3, .cm-s-solarized .cm-type { color: #6c71c4; }
+
+.cm-s-solarized .cm-property { color: #2aa198; }
+.cm-s-solarized .cm-operator { color: #6c71c4; }
+
+.cm-s-solarized .cm-comment { color: #586e75; font-style:italic; }
+
+.cm-s-solarized .cm-string { color: #859900; }
+.cm-s-solarized .cm-string-2 { color: #b58900; }
+
+.cm-s-solarized .cm-meta { color: #859900; }
+.cm-s-solarized .cm-qualifier { color: #b58900; }
+.cm-s-solarized .cm-builtin { color: #d33682; }
+.cm-s-solarized .cm-bracket { color: #cb4b16; }
+.cm-s-solarized .CodeMirror-matchingbracket { color: #859900; }
+.cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; }
+.cm-s-solarized .cm-tag { color: #93a1a1; }
+.cm-s-solarized .cm-attribute { color: #2aa198; }
+.cm-s-solarized .cm-hr {
+ color: transparent;
+ border-top: 1px solid #586e75;
+ display: block;
+}
+.cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; }
+.cm-s-solarized .cm-special { color: #6c71c4; }
+.cm-s-solarized .cm-em {
+ color: #999;
+ text-decoration: underline;
+ text-decoration-style: dotted;
+}
+.cm-s-solarized .cm-error,
+.cm-s-solarized .cm-invalidchar {
+ color: #586e75;
+ border-bottom: 1px dotted #dc322f;
+}
+
+.cm-s-solarized.cm-s-dark div.CodeMirror-selected { background: #073642; }
+.cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); }
+.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection, .cm-s-dark .CodeMirror-line > span::-moz-selection, .cm-s-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(7, 54, 66, 0.99); }
+
+.cm-s-solarized.cm-s-light div.CodeMirror-selected { background: #eee8d5; }
+.cm-s-solarized.cm-s-light .CodeMirror-line::selection, .cm-s-light .CodeMirror-line > span::selection, .cm-s-light .CodeMirror-line > span > span::selection { background: #eee8d5; }
+.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection, .cm-s-ligh .CodeMirror-line > span::-moz-selection, .cm-s-ligh .CodeMirror-line > span > span::-moz-selection { background: #eee8d5; }
+
+/* Editor styling */
+
+
+
+/* Little shadow on the view-port of the buffer view */
+.cm-s-solarized.CodeMirror {
+ -moz-box-shadow: inset 7px 0 12px -6px #000;
+ -webkit-box-shadow: inset 7px 0 12px -6px #000;
+ box-shadow: inset 7px 0 12px -6px #000;
+}
+
+/* Remove gutter border */
+.cm-s-solarized .CodeMirror-gutters {
+ border-right: 0;
+}
+
+/* Gutter colors and line number styling based of color scheme (dark / light) */
+
+/* Dark */
+.cm-s-solarized.cm-s-dark .CodeMirror-gutters {
+ background-color: #073642;
+}
+
+.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {
+ color: #586e75;
+ text-shadow: #021014 0 -1px;
+}
+
+/* Light */
+.cm-s-solarized.cm-s-light .CodeMirror-gutters {
+ background-color: #eee8d5;
+}
+
+.cm-s-solarized.cm-s-light .CodeMirror-linenumber {
+ color: #839496;
+}
+
+/* Common */
+.cm-s-solarized .CodeMirror-linenumber {
+ padding: 0 5px;
+}
+.cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; }
+.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; }
+.cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; }
+
+.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {
+ color: #586e75;
+}
+
+/* Cursor */
+.cm-s-solarized .CodeMirror-cursor { border-left: 1px solid #819090; }
+
+/* Fat cursor */
+.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor { background: #77ee77; }
+.cm-s-solarized.cm-s-light .cm-animate-fat-cursor { background-color: #77ee77; }
+.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor { background: #586e75; }
+.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor { background-color: #586e75; }
+
+/* Active line */
+.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {
+ background: rgba(255, 255, 255, 0.06);
+}
+.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {
+ background: rgba(0, 0, 0, 0.06);
+}
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/ssms.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/ssms.css
new file mode 100644
index 0000000..9494c14
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/ssms.css
@@ -0,0 +1,16 @@
+.cm-s-ssms span.cm-keyword { color: blue; }
+.cm-s-ssms span.cm-comment { color: darkgreen; }
+.cm-s-ssms span.cm-string { color: red; }
+.cm-s-ssms span.cm-def { color: black; }
+.cm-s-ssms span.cm-variable { color: black; }
+.cm-s-ssms span.cm-variable-2 { color: black; }
+.cm-s-ssms span.cm-atom { color: darkgray; }
+.cm-s-ssms .CodeMirror-linenumber { color: teal; }
+.cm-s-ssms .CodeMirror-activeline-background { background: #ffffff; }
+.cm-s-ssms span.cm-string-2 { color: #FF00FF; }
+.cm-s-ssms span.cm-operator,
+.cm-s-ssms span.cm-bracket,
+.cm-s-ssms span.cm-punctuation { color: darkgray; }
+.cm-s-ssms .CodeMirror-gutters { border-right: 3px solid #ffee62; background-color: #ffffff; }
+.cm-s-ssms div.CodeMirror-selected { background: #ADD6FF; }
+
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/the-matrix.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/the-matrix.css
new file mode 100644
index 0000000..c4c93c1
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/the-matrix.css
@@ -0,0 +1,30 @@
+.cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; }
+.cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D; }
+.cm-s-the-matrix .CodeMirror-line::selection, .cm-s-the-matrix .CodeMirror-line > span::selection, .cm-s-the-matrix .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }
+.cm-s-the-matrix .CodeMirror-line::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }
+.cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; }
+.cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; }
+.cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; }
+.cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; }
+.cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00; }
+
+.cm-s-the-matrix span.cm-keyword { color: #008803; font-weight: bold; }
+.cm-s-the-matrix span.cm-atom { color: #3FF; }
+.cm-s-the-matrix span.cm-number { color: #FFB94F; }
+.cm-s-the-matrix span.cm-def { color: #99C; }
+.cm-s-the-matrix span.cm-variable { color: #F6C; }
+.cm-s-the-matrix span.cm-variable-2 { color: #C6F; }
+.cm-s-the-matrix span.cm-variable-3, .cm-s-the-matrix span.cm-type { color: #96F; }
+.cm-s-the-matrix span.cm-property { color: #62FFA0; }
+.cm-s-the-matrix span.cm-operator { color: #999; }
+.cm-s-the-matrix span.cm-comment { color: #CCCCCC; }
+.cm-s-the-matrix span.cm-string { color: #39C; }
+.cm-s-the-matrix span.cm-meta { color: #C9F; }
+.cm-s-the-matrix span.cm-qualifier { color: #FFF700; }
+.cm-s-the-matrix span.cm-builtin { color: #30a; }
+.cm-s-the-matrix span.cm-bracket { color: #cc7; }
+.cm-s-the-matrix span.cm-tag { color: #FFBD40; }
+.cm-s-the-matrix span.cm-attribute { color: #FFF700; }
+.cm-s-the-matrix span.cm-error { color: #FF0000; }
+
+.cm-s-the-matrix .CodeMirror-activeline-background { background: #040; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/tomorrow-night-bright.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/tomorrow-night-bright.css
new file mode 100644
index 0000000..b6dd4a9
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/tomorrow-night-bright.css
@@ -0,0 +1,35 @@
+/*
+
+ Name: Tomorrow Night - Bright
+ Author: Chris Kempson
+
+ Port done by Gerard Braad
+
+*/
+
+.cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }
+.cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }
+.cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }
+.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }
+.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }
+.cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }
+.cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }
+
+.cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }
+.cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }
+.cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }
+
+.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }
+.cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }
+.cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }
+
+.cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }
+.cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }
+.cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }
+.cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }
+.cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }
+.cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }
+.cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }
+
+.cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }
+.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/tomorrow-night-eighties.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/tomorrow-night-eighties.css
new file mode 100644
index 0000000..2a9debc
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/tomorrow-night-eighties.css
@@ -0,0 +1,38 @@
+/*
+
+ Name: Tomorrow Night - Eighties
+ Author: Chris Kempson
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-tomorrow-night-eighties.CodeMirror { background: #000000; color: #CCCCCC; }
+.cm-s-tomorrow-night-eighties div.CodeMirror-selected { background: #2D2D2D; }
+.cm-s-tomorrow-night-eighties .CodeMirror-line::selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span::selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }
+.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }
+.cm-s-tomorrow-night-eighties .CodeMirror-gutters { background: #000000; border-right: 0px; }
+.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker { color: #f2777a; }
+.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle { color: #777; }
+.cm-s-tomorrow-night-eighties .CodeMirror-linenumber { color: #515151; }
+.cm-s-tomorrow-night-eighties .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }
+
+.cm-s-tomorrow-night-eighties span.cm-comment { color: #d27b53; }
+.cm-s-tomorrow-night-eighties span.cm-atom { color: #a16a94; }
+.cm-s-tomorrow-night-eighties span.cm-number { color: #a16a94; }
+
+.cm-s-tomorrow-night-eighties span.cm-property, .cm-s-tomorrow-night-eighties span.cm-attribute { color: #99cc99; }
+.cm-s-tomorrow-night-eighties span.cm-keyword { color: #f2777a; }
+.cm-s-tomorrow-night-eighties span.cm-string { color: #ffcc66; }
+
+.cm-s-tomorrow-night-eighties span.cm-variable { color: #99cc99; }
+.cm-s-tomorrow-night-eighties span.cm-variable-2 { color: #6699cc; }
+.cm-s-tomorrow-night-eighties span.cm-def { color: #f99157; }
+.cm-s-tomorrow-night-eighties span.cm-bracket { color: #CCCCCC; }
+.cm-s-tomorrow-night-eighties span.cm-tag { color: #f2777a; }
+.cm-s-tomorrow-night-eighties span.cm-link { color: #a16a94; }
+.cm-s-tomorrow-night-eighties span.cm-error { background: #f2777a; color: #6A6A6A; }
+
+.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background { background: #343600; }
+.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/ttcn.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/ttcn.css
new file mode 100644
index 0000000..0b14ac3
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/ttcn.css
@@ -0,0 +1,64 @@
+.cm-s-ttcn .cm-quote { color: #090; }
+.cm-s-ttcn .cm-negative { color: #d44; }
+.cm-s-ttcn .cm-positive { color: #292; }
+.cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }
+.cm-s-ttcn .cm-em { font-style: italic; }
+.cm-s-ttcn .cm-link { text-decoration: underline; }
+.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }
+.cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }
+
+.cm-s-ttcn .cm-atom { color: #219; }
+.cm-s-ttcn .cm-attribute { color: #00c; }
+.cm-s-ttcn .cm-bracket { color: #997; }
+.cm-s-ttcn .cm-comment { color: #333333; }
+.cm-s-ttcn .cm-def { color: #00f; }
+.cm-s-ttcn .cm-em { font-style: italic; }
+.cm-s-ttcn .cm-error { color: #f00; }
+.cm-s-ttcn .cm-hr { color: #999; }
+.cm-s-ttcn .cm-invalidchar { color: #f00; }
+.cm-s-ttcn .cm-keyword { font-weight:bold; }
+.cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }
+.cm-s-ttcn .cm-meta { color: #555; }
+.cm-s-ttcn .cm-negative { color: #d44; }
+.cm-s-ttcn .cm-positive { color: #292; }
+.cm-s-ttcn .cm-qualifier { color: #555; }
+.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }
+.cm-s-ttcn .cm-string { color: #006400; }
+.cm-s-ttcn .cm-string-2 { color: #f50; }
+.cm-s-ttcn .cm-strong { font-weight: bold; }
+.cm-s-ttcn .cm-tag { color: #170; }
+.cm-s-ttcn .cm-variable { color: #8B2252; }
+.cm-s-ttcn .cm-variable-2 { color: #05a; }
+.cm-s-ttcn .cm-variable-3, .cm-s-ttcn .cm-type { color: #085; }
+
+.cm-s-ttcn .cm-invalidchar { color: #f00; }
+
+/* ASN */
+.cm-s-ttcn .cm-accessTypes,
+.cm-s-ttcn .cm-compareTypes { color: #27408B; }
+.cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }
+.cm-s-ttcn .cm-modifier { color:#D2691E; }
+.cm-s-ttcn .cm-status { color:#8B4545; }
+.cm-s-ttcn .cm-storage { color:#A020F0; }
+.cm-s-ttcn .cm-tags { color:#006400; }
+
+/* CFG */
+.cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }
+.cm-s-ttcn .cm-fileNCtrlMaskOptions,
+.cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }
+
+/* TTCN */
+.cm-s-ttcn .cm-booleanConsts,
+.cm-s-ttcn .cm-otherConsts,
+.cm-s-ttcn .cm-verdictConsts { color: #006400; }
+.cm-s-ttcn .cm-configOps,
+.cm-s-ttcn .cm-functionOps,
+.cm-s-ttcn .cm-portOps,
+.cm-s-ttcn .cm-sutOps,
+.cm-s-ttcn .cm-timerOps,
+.cm-s-ttcn .cm-verdictOps { color: #0000FF; }
+.cm-s-ttcn .cm-preprocessor,
+.cm-s-ttcn .cm-templateMatch,
+.cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }
+.cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }
+.cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/twilight.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/twilight.css
new file mode 100644
index 0000000..b2b1b2a
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/twilight.css
@@ -0,0 +1,32 @@
+.cm-s-twilight.CodeMirror { background: #141414; color: #f7f7f7; } /**/
+.cm-s-twilight div.CodeMirror-selected { background: #323232; } /**/
+.cm-s-twilight .CodeMirror-line::selection, .cm-s-twilight .CodeMirror-line > span::selection, .cm-s-twilight .CodeMirror-line > span > span::selection { background: rgba(50, 50, 50, 0.99); }
+.cm-s-twilight .CodeMirror-line::-moz-selection, .cm-s-twilight .CodeMirror-line > span::-moz-selection, .cm-s-twilight .CodeMirror-line > span > span::-moz-selection { background: rgba(50, 50, 50, 0.99); }
+
+.cm-s-twilight .CodeMirror-gutters { background: #222; border-right: 1px solid #aaa; }
+.cm-s-twilight .CodeMirror-guttermarker { color: white; }
+.cm-s-twilight .CodeMirror-guttermarker-subtle { color: #aaa; }
+.cm-s-twilight .CodeMirror-linenumber { color: #aaa; }
+.cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white; }
+
+.cm-s-twilight .cm-keyword { color: #f9ee98; } /**/
+.cm-s-twilight .cm-atom { color: #FC0; }
+.cm-s-twilight .cm-number { color: #ca7841; } /**/
+.cm-s-twilight .cm-def { color: #8DA6CE; }
+.cm-s-twilight span.cm-variable-2, .cm-s-twilight span.cm-tag { color: #607392; } /**/
+.cm-s-twilight span.cm-variable-3, .cm-s-twilight span.cm-def, .cm-s-twilight span.cm-type { color: #607392; } /**/
+.cm-s-twilight .cm-operator { color: #cda869; } /**/
+.cm-s-twilight .cm-comment { color:#777; font-style:italic; font-weight:normal; } /**/
+.cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/
+.cm-s-twilight .cm-string-2 { color:#bd6b18; } /*?*/
+.cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/
+.cm-s-twilight .cm-builtin { color: #cda869; } /*?*/
+.cm-s-twilight .cm-tag { color: #997643; } /**/
+.cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/
+.cm-s-twilight .cm-header { color: #FF6400; }
+.cm-s-twilight .cm-hr { color: #AEAEAE; }
+.cm-s-twilight .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } /**/
+.cm-s-twilight .cm-error { border-bottom: 1px solid red; }
+
+.cm-s-twilight .CodeMirror-activeline-background { background: #27282E; }
+.cm-s-twilight .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/vibrant-ink.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/vibrant-ink.css
new file mode 100644
index 0000000..6358ad3
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/vibrant-ink.css
@@ -0,0 +1,34 @@
+/* Taken from the popular Visual Studio Vibrant Ink Schema */
+
+.cm-s-vibrant-ink.CodeMirror { background: black; color: white; }
+.cm-s-vibrant-ink div.CodeMirror-selected { background: #35493c; }
+.cm-s-vibrant-ink .CodeMirror-line::selection, .cm-s-vibrant-ink .CodeMirror-line > span::selection, .cm-s-vibrant-ink .CodeMirror-line > span > span::selection { background: rgba(53, 73, 60, 0.99); }
+.cm-s-vibrant-ink .CodeMirror-line::-moz-selection, .cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection, .cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection { background: rgba(53, 73, 60, 0.99); }
+
+.cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
+.cm-s-vibrant-ink .CodeMirror-guttermarker { color: white; }
+.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
+.cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; }
+.cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white; }
+
+.cm-s-vibrant-ink .cm-keyword { color: #CC7832; }
+.cm-s-vibrant-ink .cm-atom { color: #FC0; }
+.cm-s-vibrant-ink .cm-number { color: #FFEE98; }
+.cm-s-vibrant-ink .cm-def { color: #8DA6CE; }
+.cm-s-vibrant-ink span.cm-variable-2, .cm-s-vibrant span.cm-tag { color: #FFC66D; }
+.cm-s-vibrant-ink span.cm-variable-3, .cm-s-vibrant span.cm-def, .cm-s-vibrant span.cm-type { color: #FFC66D; }
+.cm-s-vibrant-ink .cm-operator { color: #888; }
+.cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; }
+.cm-s-vibrant-ink .cm-string { color: #A5C25C; }
+.cm-s-vibrant-ink .cm-string-2 { color: red; }
+.cm-s-vibrant-ink .cm-meta { color: #D8FA3C; }
+.cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; }
+.cm-s-vibrant-ink .cm-tag { color: #8DA6CE; }
+.cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; }
+.cm-s-vibrant-ink .cm-header { color: #FF6400; }
+.cm-s-vibrant-ink .cm-hr { color: #AEAEAE; }
+.cm-s-vibrant-ink .cm-link { color: #5656F3; }
+.cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }
+
+.cm-s-vibrant-ink .CodeMirror-activeline-background { background: #27282E; }
+.cm-s-vibrant-ink .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/xq-dark.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/xq-dark.css
new file mode 100644
index 0000000..7da1a0f
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/xq-dark.css
@@ -0,0 +1,53 @@
+/*
+Copyright (C) 2011 by MarkLogic Corporation
+Author: Mike Brevoort
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+.cm-s-xq-dark.CodeMirror { background: #0a001f; color: #f8f8f8; }
+.cm-s-xq-dark div.CodeMirror-selected { background: #27007A; }
+.cm-s-xq-dark .CodeMirror-line::selection, .cm-s-xq-dark .CodeMirror-line > span::selection, .cm-s-xq-dark .CodeMirror-line > span > span::selection { background: rgba(39, 0, 122, 0.99); }
+.cm-s-xq-dark .CodeMirror-line::-moz-selection, .cm-s-xq-dark .CodeMirror-line > span::-moz-selection, .cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 0, 122, 0.99); }
+.cm-s-xq-dark .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
+.cm-s-xq-dark .CodeMirror-guttermarker { color: #FFBD40; }
+.cm-s-xq-dark .CodeMirror-guttermarker-subtle { color: #f8f8f8; }
+.cm-s-xq-dark .CodeMirror-linenumber { color: #f8f8f8; }
+.cm-s-xq-dark .CodeMirror-cursor { border-left: 1px solid white; }
+
+.cm-s-xq-dark span.cm-keyword { color: #FFBD40; }
+.cm-s-xq-dark span.cm-atom { color: #6C8CD5; }
+.cm-s-xq-dark span.cm-number { color: #164; }
+.cm-s-xq-dark span.cm-def { color: #FFF; text-decoration:underline; }
+.cm-s-xq-dark span.cm-variable { color: #FFF; }
+.cm-s-xq-dark span.cm-variable-2 { color: #EEE; }
+.cm-s-xq-dark span.cm-variable-3, .cm-s-xq-dark span.cm-type { color: #DDD; }
+.cm-s-xq-dark span.cm-property {}
+.cm-s-xq-dark span.cm-operator {}
+.cm-s-xq-dark span.cm-comment { color: gray; }
+.cm-s-xq-dark span.cm-string { color: #9FEE00; }
+.cm-s-xq-dark span.cm-meta { color: yellow; }
+.cm-s-xq-dark span.cm-qualifier { color: #FFF700; }
+.cm-s-xq-dark span.cm-builtin { color: #30a; }
+.cm-s-xq-dark span.cm-bracket { color: #cc7; }
+.cm-s-xq-dark span.cm-tag { color: #FFBD40; }
+.cm-s-xq-dark span.cm-attribute { color: #FFF700; }
+.cm-s-xq-dark span.cm-error { color: #f00; }
+
+.cm-s-xq-dark .CodeMirror-activeline-background { background: #27282E; }
+.cm-s-xq-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/xq-light.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/xq-light.css
new file mode 100644
index 0000000..7b182ea
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/xq-light.css
@@ -0,0 +1,43 @@
+/*
+Copyright (C) 2011 by MarkLogic Corporation
+Author: Mike Brevoort
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+.cm-s-xq-light span.cm-keyword { line-height: 1em; font-weight: bold; color: #5A5CAD; }
+.cm-s-xq-light span.cm-atom { color: #6C8CD5; }
+.cm-s-xq-light span.cm-number { color: #164; }
+.cm-s-xq-light span.cm-def { text-decoration:underline; }
+.cm-s-xq-light span.cm-variable { color: black; }
+.cm-s-xq-light span.cm-variable-2 { color:black; }
+.cm-s-xq-light span.cm-variable-3, .cm-s-xq-light span.cm-type { color: black; }
+.cm-s-xq-light span.cm-property {}
+.cm-s-xq-light span.cm-operator {}
+.cm-s-xq-light span.cm-comment { color: #0080FF; font-style: italic; }
+.cm-s-xq-light span.cm-string { color: red; }
+.cm-s-xq-light span.cm-meta { color: yellow; }
+.cm-s-xq-light span.cm-qualifier { color: grey; }
+.cm-s-xq-light span.cm-builtin { color: #7EA656; }
+.cm-s-xq-light span.cm-bracket { color: #cc7; }
+.cm-s-xq-light span.cm-tag { color: #3F7F7F; }
+.cm-s-xq-light span.cm-attribute { color: #7F007F; }
+.cm-s-xq-light span.cm-error { color: #f00; }
+
+.cm-s-xq-light .CodeMirror-activeline-background { background: #e8f2ff; }
+.cm-s-xq-light .CodeMirror-matchingbracket { outline:1px solid grey;color:black !important;background:yellow; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/yeti.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/yeti.css
new file mode 100644
index 0000000..d085f72
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/yeti.css
@@ -0,0 +1,44 @@
+/*
+
+ Name: yeti
+ Author: Michael Kaminsky (http://github.com/mkaminsky11)
+
+ Original yeti color scheme by Jesse Weed (https://github.com/jesseweed/yeti-syntax)
+
+*/
+
+
+.cm-s-yeti.CodeMirror {
+ background-color: #ECEAE8 !important;
+ color: #d1c9c0 !important;
+ border: none;
+}
+
+.cm-s-yeti .CodeMirror-gutters {
+ color: #adaba6;
+ background-color: #E5E1DB;
+ border: none;
+}
+.cm-s-yeti .CodeMirror-cursor { border-left: solid thin #d1c9c0; }
+.cm-s-yeti .CodeMirror-linenumber { color: #adaba6; }
+.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected { background: #DCD8D2; }
+.cm-s-yeti .CodeMirror-line::selection, .cm-s-yeti .CodeMirror-line > span::selection, .cm-s-yeti .CodeMirror-line > span > span::selection { background: #DCD8D2; }
+.cm-s-yeti .CodeMirror-line::-moz-selection, .cm-s-yeti .CodeMirror-line > span::-moz-selection, .cm-s-yeti .CodeMirror-line > span > span::-moz-selection { background: #DCD8D2; }
+.cm-s-yeti span.cm-comment { color: #d4c8be; }
+.cm-s-yeti span.cm-string, .cm-s-yeti span.cm-string-2 { color: #96c0d8; }
+.cm-s-yeti span.cm-number { color: #a074c4; }
+.cm-s-yeti span.cm-variable { color: #55b5db; }
+.cm-s-yeti span.cm-variable-2 { color: #a074c4; }
+.cm-s-yeti span.cm-def { color: #55b5db; }
+.cm-s-yeti span.cm-operator { color: #9fb96e; }
+.cm-s-yeti span.cm-keyword { color: #9fb96e; }
+.cm-s-yeti span.cm-atom { color: #a074c4; }
+.cm-s-yeti span.cm-meta { color: #96c0d8; }
+.cm-s-yeti span.cm-tag { color: #96c0d8; }
+.cm-s-yeti span.cm-attribute { color: #9fb96e; }
+.cm-s-yeti span.cm-qualifier { color: #96c0d8; }
+.cm-s-yeti span.cm-property { color: #a074c4; }
+.cm-s-yeti span.cm-builtin { color: #a074c4; }
+.cm-s-yeti span.cm-variable-3, .cm-s-yeti span.cm-type { color: #96c0d8; }
+.cm-s-yeti .CodeMirror-activeline-background { background: #E7E4E0; }
+.cm-s-yeti .CodeMirror-matchingbracket { text-decoration: underline; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/yonce.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/yonce.css
new file mode 100644
index 0000000..975f078
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/yonce.css
@@ -0,0 +1,59 @@
+/*
+
+ Name: yoncé
+ Author: Thomas MacLean (http://github.com/thomasmaclean)
+
+ Original yoncé color scheme by Mina Markham (https://github.com/minamarkham)
+
+*/
+
+.cm-s-yonce.CodeMirror { background: #1C1C1C; color: #d4d4d4; } /**/
+.cm-s-yonce div.CodeMirror-selected { background: rgba(252, 69, 133, 0.478); } /**/
+.cm-s-yonce .CodeMirror-selectedtext,
+.cm-s-yonce .CodeMirror-selected,
+.cm-s-yonce .CodeMirror-line::selection,
+.cm-s-yonce .CodeMirror-line > span::selection,
+.cm-s-yonce .CodeMirror-line > span > span::selection,
+.cm-s-yonce .CodeMirror-line::-moz-selection,
+.cm-s-yonce .CodeMirror-line > span::-moz-selection,
+.cm-s-yonce .CodeMirror-line > span > span::-moz-selection { background: rgba(252, 67, 132, 0.47); }
+
+.cm-s-yonce.CodeMirror pre { padding-left: 0px; }
+.cm-s-yonce .CodeMirror-gutters {background: #1C1C1C; border-right: 0px;}
+.cm-s-yonce .CodeMirror-linenumber {color: #777777; padding-right: 10px; }
+.cm-s-yonce .CodeMirror-activeline .CodeMirror-linenumber.CodeMirror-gutter-elt { background: #1C1C1C; color: #fc4384; }
+.cm-s-yonce .CodeMirror-linenumber { color: #777; }
+.cm-s-yonce .CodeMirror-cursor { border-left: 2px solid #FC4384; }
+.cm-s-yonce .cm-searching { background: rgba(243, 155, 53, .3) !important; outline: 1px solid #F39B35; }
+.cm-s-yonce .cm-searching.CodeMirror-selectedtext { background: rgba(243, 155, 53, .7) !important; color: white; }
+
+.cm-s-yonce .cm-keyword { color: #00A7AA; } /**/
+.cm-s-yonce .cm-atom { color: #F39B35; }
+.cm-s-yonce .cm-number, .cm-s-yonce span.cm-type { color: #A06FCA; } /**/
+.cm-s-yonce .cm-def { color: #98E342; }
+.cm-s-yonce .cm-property,
+.cm-s-yonce span.cm-variable { color: #D4D4D4; font-style: italic; }
+.cm-s-yonce span.cm-variable-2 { color: #da7dae; font-style: italic; }
+.cm-s-yonce span.cm-variable-3 { color: #A06FCA; }
+.cm-s-yonce .cm-type.cm-def { color: #FC4384; font-style: normal; text-decoration: underline; }
+.cm-s-yonce .cm-property.cm-def { color: #FC4384; font-style: normal; }
+.cm-s-yonce .cm-callee { color: #FC4384; font-style: normal; }
+.cm-s-yonce .cm-operator { color: #FC4384; } /**/
+.cm-s-yonce .cm-qualifier,
+.cm-s-yonce .cm-tag { color: #FC4384; }
+.cm-s-yonce .cm-tag.cm-bracket { color: #D4D4D4; }
+.cm-s-yonce .cm-attribute { color: #A06FCA; }
+.cm-s-yonce .cm-comment { color:#696d70; font-style:italic; font-weight:normal; } /**/
+.cm-s-yonce .cm-comment.cm-tag { color: #FC4384 }
+.cm-s-yonce .cm-comment.cm-attribute { color: #D4D4D4; }
+.cm-s-yonce .cm-string { color:#E6DB74; } /**/
+.cm-s-yonce .cm-string-2 { color:#F39B35; } /*?*/
+.cm-s-yonce .cm-meta { color: #D4D4D4; background: inherit; }
+.cm-s-yonce .cm-builtin { color: #FC4384; } /*?*/
+.cm-s-yonce .cm-header { color: #da7dae; }
+.cm-s-yonce .cm-hr { color: #98E342; }
+.cm-s-yonce .cm-link { color:#696d70; font-style:italic; text-decoration:none; } /**/
+.cm-s-yonce .cm-error { border-bottom: 1px solid #C42412; }
+
+.cm-s-yonce .CodeMirror-activeline-background { background: #272727; }
+.cm-s-yonce .CodeMirror-matchingbracket { outline:1px solid grey; color:#D4D4D4 !important; }
diff --git a/source/user/plugins/admin/themes/grav/css/codemirror/themes/zenburn.css b/source/user/plugins/admin/themes/grav/css/codemirror/themes/zenburn.css
new file mode 100644
index 0000000..4eb4247
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/codemirror/themes/zenburn.css
@@ -0,0 +1,37 @@
+/**
+ * "
+ * Using Zenburn color palette from the Emacs Zenburn Theme
+ * https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el
+ *
+ * Also using parts of https://github.com/xavi/coderay-lighttable-theme
+ * "
+ * From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css
+ */
+
+.cm-s-zenburn .CodeMirror-gutters { background: #3f3f3f !important; }
+.cm-s-zenburn .CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded { color: #999; }
+.cm-s-zenburn .CodeMirror-cursor { border-left: 1px solid white; }
+.cm-s-zenburn.CodeMirror { background-color: #3f3f3f; color: #dcdccc; }
+.cm-s-zenburn span.cm-builtin { color: #dcdccc; font-weight: bold; }
+.cm-s-zenburn span.cm-comment { color: #7f9f7f; }
+.cm-s-zenburn span.cm-keyword { color: #f0dfaf; font-weight: bold; }
+.cm-s-zenburn span.cm-atom { color: #bfebbf; }
+.cm-s-zenburn span.cm-def { color: #dcdccc; }
+.cm-s-zenburn span.cm-variable { color: #dfaf8f; }
+.cm-s-zenburn span.cm-variable-2 { color: #dcdccc; }
+.cm-s-zenburn span.cm-string { color: #cc9393; }
+.cm-s-zenburn span.cm-string-2 { color: #cc9393; }
+.cm-s-zenburn span.cm-number { color: #dcdccc; }
+.cm-s-zenburn span.cm-tag { color: #93e0e3; }
+.cm-s-zenburn span.cm-property { color: #dfaf8f; }
+.cm-s-zenburn span.cm-attribute { color: #dfaf8f; }
+.cm-s-zenburn span.cm-qualifier { color: #7cb8bb; }
+.cm-s-zenburn span.cm-meta { color: #f0dfaf; }
+.cm-s-zenburn span.cm-header { color: #f0efd0; }
+.cm-s-zenburn span.cm-operator { color: #f0efd0; }
+.cm-s-zenburn span.CodeMirror-matchingbracket { box-sizing: border-box; background: transparent; border-bottom: 1px solid; }
+.cm-s-zenburn span.CodeMirror-nonmatchingbracket { border-bottom: 1px solid; background: none; }
+.cm-s-zenburn .CodeMirror-activeline { background: #000000; }
+.cm-s-zenburn .CodeMirror-activeline-background { background: #000000; }
+.cm-s-zenburn div.CodeMirror-selected { background: #545454; }
+.cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected { background: #4f4f4f; }
diff --git a/source/user/plugins/admin/themes/grav/css/featherlight.min.css b/source/user/plugins/admin/themes/grav/css/featherlight.min.css
new file mode 100644
index 0000000..bf553f6
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/featherlight.min.css
@@ -0,0 +1,8 @@
+/**
+ * Featherlight - ultra slim jQuery lightbox
+ * Version 0.4.9 - http://noelboss.github.io/featherlight/
+ *
+ * Copyright 2014, Noël Raoul Bossart (http://www.noelboss.com)
+ * MIT Licensed.
+**/
+@media all{.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-.25em}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;min-width:30%;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0}.featherlight iframe{border:0}}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:10px;margin-right:10px;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css/fork-awesome.min.css b/source/user/plugins/admin/themes/grav/css/fork-awesome.min.css
new file mode 100755
index 0000000..82222e0
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/fork-awesome.min.css
@@ -0,0 +1,12 @@
+/*!
+Fork Awesome 1.1.5
+License - http://forkawesome.github.io/Fork-Awesome/license
+
+Copyright 2018 Dave Gandy & Fork Awesome
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */@font-face{font-family:FontAwesome;src:url(../fonts/forkawesome-webfont.eot?v=1.1.5);src:url(../fonts/forkawesome-webfont.eot?#iefix&v=1.1.5) format('embedded-opentype'),url(../fonts/forkawesome-webfont.woff2?v=1.1.5) format('woff2'),url(../fonts/forkawesome-webfont.woff?v=1.1.5) format('woff'),url(../fonts/forkawesome-webfont.ttf?v=1.1.5) format('truetype'),url(../fonts/forkawesome-webfont.svg?v=1.1.5#forkawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell-o:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-globe-e:before{content:"\f304"}.fa-globe-w:before{content:"\f305"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-community:before,.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus-g:before,.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before,.fa-utensils:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before,.fa-pound:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-desc:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-desc:before,.fa-sort-amount-up:before{content:"\f161"}.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-desc:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before,.fa-closed-captioning:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before,.fa-gem:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-medium-square:before{content:"\f2f8"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo-v:before,.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-address-card:before,.fa-vcard:before{content:"\f2bb"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.fa-mastodon:before{content:"\f2e1"}.fa-mastodon-alt:before{content:"\f2e2"}.fa-fork-awesome:before,.fa-fork-circle:before{content:"\f2e3"}.fa-peertube:before{content:"\f2e4"}.fa-diaspora:before{content:"\f2e5"}.fa-friendica:before{content:"\f2e6"}.fa-gnu-social:before{content:"\f2e7"}.fa-liberapay-square:before{content:"\f2e8"}.fa-liberapay:before{content:"\f2e9"}.fa-scuttlebutt:before,.fa-ssb:before{content:"\f2ea"}.fa-hubzilla:before{content:"\f2eb"}.fa-social-home:before{content:"\f2ec"}.fa-artstation:before{content:"\f2ed"}.fa-discord:before{content:"\f2ee"}.fa-discord-alt:before{content:"\f2ef"}.fa-patreon:before{content:"\f2f0"}.fa-snowdrift:before{content:"\f2f1"}.fa-activitypub:before{content:"\f2f2"}.fa-ethereum:before{content:"\f2f3"}.fa-keybase:before{content:"\f2f4"}.fa-shaarli:before{content:"\f2f5"}.fa-shaarli-o:before{content:"\f2f6"}.fa-cut-key:before,.fa-key-modern:before{content:"\f2f7"}.fa-xmpp:before{content:"\f2f9"}.fa-archive-org:before{content:"\f2fc"}.fa-freedombox:before{content:"\f2fd"}.fa-facebook-messenger:before{content:"\f2fe"}.fa-debian:before{content:"\f2ff"}.fa-mastodon-square:before{content:"\f300"}.fa-tipeee:before{content:"\f301"}.fa-react:before{content:"\f302"}.fa-dogmazic:before{content:"\f303"}.fa-zotero:before{content:"\f309"}.fa-nodejs:before{content:"\f308"}.fa-nextcloud:before{content:"\f306"}.fa-nextcloud-square:before{content:"\f307"}.fa-hackaday:before{content:"\f30a"}.fa-laravel:before{content:"\f30b"}.fa-signalapp:before{content:"\f30c"}.fa-gnupg:before{content:"\f30d"}.fa-php:before{content:"\f30e"}.fa-ffmpeg:before{content:"\f30f"}.fa-joplin:before{content:"\f310"}.fa-syncthing:before{content:"\f311"}.fa-inkscape:before{content:"\f312"}.fa-matrix-org:before{content:"\f313"}.fa-pixelfed:before{content:"\f314"}.fa-bootstrap:before{content:"\f315"}.fa-dev-to:before{content:"\f316"}.fa-hashnode:before{content:"\f317"}.fa-jirafeau:before{content:"\f318"}.fa-emby:before{content:"\f319"}.fa-wikidata:before{content:"\f31a"}.fa-gimp:before{content:"\f31b"}.fa-c:before{content:"\f31c"}.fa-digitalocean:before{content:"\f31d"}.fa-att:before{content:"\f31e"}.fa-gitea:before{content:"\f31f"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
diff --git a/source/user/plugins/admin/themes/grav/css/hint.base.min.css b/source/user/plugins/admin/themes/grav/css/hint.base.min.css
new file mode 100644
index 0000000..c39c097
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/hint.base.min.css
@@ -0,0 +1,5 @@
+/*! Hint.css (base version) - v1.3.5 - 2015-06-16
+* http://kushagragour.in/lab/hint/
+* Copyright (c) 2015 Kushagra Gour; Licensed MIT */
+
+.hint--bottom:after,.hint--top:after{margin-left:-18px}.hint,[data-hint]{position:relative;display:inline-block}.hint:after,.hint:before,[data-hint]:after,[data-hint]:before{position:absolute;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;-webkit-transition:.3s ease;-moz-transition:.3s ease;transition:.3s ease;-webkit-transition-delay:0ms;-moz-transition-delay:0ms;transition-delay:0ms}.hint--always:after,.hint--always:before,.hint:focus:after,.hint:focus:before,.hint:hover:after,.hint:hover:before,[data-hint]:focus:after,[data-hint]:focus:before,[data-hint]:hover:after,[data-hint]:hover:before{opacity:1;visibility:visible}.hint:hover:after,.hint:hover:before,[data-hint]:hover:after,[data-hint]:hover:before{-webkit-transition-delay:100ms;-moz-transition-delay:100ms;transition-delay:100ms}.hint:before,[data-hint]:before{content:'';position:absolute;background:0 0;border:6px solid transparent;z-index:1000001}.hint:after,[data-hint]:after{content:attr(data-hint);background:#383838;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap}.hint--top:before{border-top-color:#383838;margin-bottom:-12px}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#383838;margin-top:-12px}.hint--top:after,.hint--top:before{bottom:100%;left:50%}.hint--top:focus:after,.hint--top:focus:before,.hint--top:hover:after,.hint--top:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--bottom:after,.hint--bottom:before{top:100%;left:50%}.hint--bottom:focus:after,.hint--bottom:focus:before,.hint--bottom:hover:after,.hint--bottom:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--right:before{border-right-color:#383838;margin-left:-12px;margin-bottom:-6px}.hint--right:after{margin-bottom:-14px}.hint--right:after,.hint--right:before{left:100%;bottom:50%}.hint--right:focus:after,.hint--right:focus:before,.hint--right:hover:after,.hint--right:hover:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translateX(8px)}.hint--left:before{border-left-color:#383838;margin-right:-12px;margin-bottom:-6px}.hint--left:after{margin-bottom:-14px}.hint--left:after,.hint--left:before{right:100%;bottom:50%}.hint--left:focus:after,.hint--left:focus:before,.hint--left:hover:after,.hint--left:hover:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translateX(-8px)}.hint--bottom-left:after,.hint--bottom-left:before{top:100%;left:50%}.hint--bottom-left:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom-left:after{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%);margin-left:12px}.hint--bottom-left:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--bottom-left:hover:after{-webkit-transform:translateX(-100%) translateY(8px);-moz-transform:translateX(-100%) translateY(8px);transform:translateX(-100%) translateY(8px)}.hint--bottom-right:after,.hint--bottom-right:before{top:100%;left:50%}.hint--bottom-right:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom-right:after{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);margin-left:-12px}.hint--bottom-right:hover:after,.hint--bottom-right:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--top:after,.hint--always.hint--top:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--bottom:after,.hint--always.hint--bottom:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--left:after,.hint--always.hint--left:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translateX(-8px)}.hint--always.hint--right:after,.hint--always.hint--right:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translateX(8px)}
diff --git a/source/user/plugins/admin/themes/grav/css/iconpicker.css b/source/user/plugins/admin/themes/grav/css/iconpicker.css
new file mode 100755
index 0000000..7da8199
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/iconpicker.css
@@ -0,0 +1,222 @@
+/* Icon Picker by QueryLoop
+ * Author: @eliorivero
+ * URL: http://queryloop.com/
+ * License: GPLv2
+ */
+
+.icon-set {
+ display: none;
+ overflow-y: auto;
+ -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);
+}
+.icon-set ul {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+.icon-set li {
+ display: inline-block;
+ cursor: pointer;
+ padding: 8px;
+ margin: 0 0 5px;
+ width: 48px;
+ height: 48px;
+ font-size: 24px;
+ text-align: center;
+}
+.icon-set li:hover:before, .icon-set .icon-selected:before {
+ font-size: 32px;
+ position: relative;
+ top: 5px;
+ line-height: 1px;
+ width: 32px;
+ display: inline-block;
+}
+.icon-set.large li {
+ width: 32px;
+ height: 32px;
+ font-size: 32px;
+}
+.icon-set.large li:hover:before, .icon-set.large .icon-selected:before {
+ font-size: 48px;
+ width: 48px;
+ line-height: 24px;
+}
+.icon-highlight {
+ background: #00a6cf;
+ color: #fff;
+}
+.dialog {
+ display: block;
+ margin: 20px 0 0;
+ position: fixed;
+ right: 30%;
+ bottom: 30%;
+ width: 40%;
+ height: 40%;
+ max-height: 315px;
+ z-index: 19998;
+ visibility:hidden;
+ opacity: 0;
+ -webkit-box-shadow: 0 2px 4px rgba(0,0,0,0.25);
+ box-shadow: 0 2px 4px rgba(0,0,0,0.25);
+ -webkit-transform: scale(0.7) translateZ(0);
+ -ms-transform: scale(0.7) translateZ(0);
+ transform: scale(0.7) translateZ(0);
+ -webkit-transition: all 0.2s;
+ transition: all 0.2s;
+}
+.dialog-open {
+ padding: 10px;
+ visibility:visible;
+ -webkit-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+}
+.icon-set-wrap {
+ position: relative;
+}
+.ip-inline {
+ display: block;
+ width: 276px;
+ height: 0;
+ opacity: 0;
+ visibility:hidden;
+ -webkit-transform: scaleX(0.5) rotateX(90deg);
+ -ms-transform: scaleX(0.5) rotateX(90deg);
+ transform: scaleX(0.5) rotateX(90deg);
+ -webkit-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ -webkit-transform-origin: 50% 0;
+ transform-origin: 50% 0;
+ -webkit-transition: transform 0.3s ease-out;
+ transition: transform 0.3s ease-out;
+}
+.ip-inline-open {
+ padding: 10px;
+ border: 1px solid #eee;
+ height: auto;
+ visibility:visible;
+ -webkit-transform: scaleX(1) rotateY(0deg);
+ -ms-transform: scaleX(1) rotateY(0deg);
+ transform: scaleX(1) rotateY(0deg);
+ opacity: 1;
+}
+.dialog, .icon-picker-close {
+ top: 30%;
+ left: 30%;
+}
+.icon-picker-close {
+ opacity: 0;
+ visibility: hidden;
+ display: block;
+ width: 20px;
+ height: 20px;
+ color: #fff;
+ background: #333;
+ font-size: 19px;
+ margin: 30px 0 0 20px;
+ position: fixed;
+ z-index: 19999;
+ -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.25);
+ box-shadow: 0 1px 3px rgba(0,0,0,0.25);
+ -webkit-transition: all 0.2s;
+ transition: all 0.2s;
+}
+.icon-picker-close:after {
+ content: "\00D7";
+ width: 20px;
+ display: block;
+ position: absolute;
+ text-align: center;
+}
+.icon-picker-overlay {
+ opacity: 0;
+ visibility: hidden;
+ background: #222;
+ background: rgba(0, 0, 0, 0.5);
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 19997;
+ -webkit-transition: all 0.2s;
+ transition: all 0.2s;
+}
+.icon-picker-close.make-visible {
+ margin: 10px 0 0 -10px;
+}
+.ip-inline .icon-picker-close {
+ position: absolute;
+ z-index: 8;
+ top: 0;
+ right: 0;
+ left: auto;
+ opacity: 1;
+ visibility: visible;
+ margin: 0;
+}
+.make-visible {
+ visibility: visible;
+ opacity: 1;
+}
+.icon-selected {
+ background: #349886;
+ color: #fff;
+}
+.icon-preview {
+ display: none;
+ margin: 10px 0;
+ position: relative;
+}
+.icon-preview-on {
+ display: inline-block;
+}
+.icon-preview i {
+ width: 48px;
+ height: 48px;
+ text-align: center;
+ border: 1px solid #d5d5d5;
+ border-radius: 3px;
+ background: #fff;
+}
+.icon-preview i:before {
+ font-size: 32px;
+ line-height: 48px;
+}
+.remove-icon {
+ background-color: #00a6cf;
+ color: #fff !important;
+ border-radius: 3px;
+ transition: background .2s ease-out;
+ position: absolute;
+ top: -10px;
+ right: -10px;
+}
+.remove-icon:hover {
+ color: #fff !important;
+ background-color: #00a6cf;
+ cursor: pointer;
+}
+.remove-times {
+ width: 20px;
+ height: 20px;
+ font-size: 21px;
+ text-align: center;
+ line-height: 99%;
+}
+.remove-times:after {
+ content: "\00D7";
+ display: block;
+ line-height: 15px;
+}
+.launch-icons {
+ margin: 5px 3px 0 0;
+}
+.launch-icons:active {
+ margin: 5px 3px 0 0;
+}
+
diff --git a/source/user/plugins/admin/themes/grav/css/nucleus-ie10.css b/source/user/plugins/admin/themes/grav/css/nucleus-ie10.css
new file mode 100644
index 0000000..c1d2f2a
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/nucleus-ie10.css
@@ -0,0 +1,24 @@
+button {
+ overflow: visible;
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0;
+}
+
+.fixed-blocks {
+ display: block;
+}
+
+.feature-items {
+ overflow: hidden;
+}
+
+.modular .features .feature {
+ margin: 1%;
+ display: inline-block;
+ vertical-align: top;
+ float: none;
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css/nucleus-ie9.css b/source/user/plugins/admin/themes/grav/css/nucleus-ie9.css
new file mode 100644
index 0000000..46df376
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/nucleus-ie9.css
@@ -0,0 +1,62 @@
+/* IE9 Resets and Normalization */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+ display: block;
+}
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+}
+
+[hidden],
+template {
+ display: none;
+}
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+img {
+ border: 0;
+}
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+figure {
+ margin: 1em 40px;
+}
+
+button {
+ overflow: visible;
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0;
+}
+
+legend {
+ border: 0;
+ padding: 0;
+}
+
+textarea {
+ overflow: auto;
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css/prism.css b/source/user/plugins/admin/themes/grav/css/prism.css
new file mode 100644
index 0000000..00005b3
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/prism.css
@@ -0,0 +1,121 @@
+/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript */
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+
+code[class*="language-"],
+pre[class*="language-"] {
+ color: black;
+ text-shadow: 0 1px white;
+ direction: ltr;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+
+
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
+code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
+ text-shadow: none;
+ background: #b3d4fc;
+}
+
+pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
+code[class*="language-"]::selection, code[class*="language-"] ::selection {
+ text-shadow: none;
+ background: #b3d4fc;
+}
+
+@media print {
+ code[class*="language-"],
+ pre[class*="language-"] {
+ text-shadow: none;
+ }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+ padding: 1em;
+ margin: .5em 0;
+ overflow: auto;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+ padding: .1em;
+ border-radius: .3em;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+ color: slategray;
+}
+
+.token.punctuation {
+ color: #999;
+}
+
+.namespace {
+ opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol {
+ color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.builtin {
+ color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string,
+.token.variable {
+ color: #a67f59;
+ background: hsla(0,0%,100%,.5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+ color: #07a;
+}
+
+
+.token.regex,
+.token.important {
+ color: #e90;
+}
+
+.token.important {
+ font-weight: bold;
+}
+
+.token.entity {
+ cursor: help;
+}
+
diff --git a/source/user/plugins/admin/themes/grav/css/pure-0.5.0/grids-min.css b/source/user/plugins/admin/themes/grav/css/pure-0.5.0/grids-min.css
new file mode 100644
index 0000000..4b66e7e
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/pure-0.5.0/grids-min.css
@@ -0,0 +1,15 @@
+/*!
+Pure v0.5.0
+Copyright 2014 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+https://github.com/yui/pure/blob/master/LICENSE.md
+*/
+.pure-g{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;display:-webkit-flex;-webkit-flex-flow:row wrap;display:-ms-flexbox;-ms-flex-flow:row wrap}.opera-only :-o-prefocus,.pure-g{word-spacing:-.43em}.pure-u{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-g [class *="pure-u"]{font-family:sans-serif}.pure-u-1,.pure-u-1-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-5-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-2-24,.pure-u-3-24,.pure-u-4-24,.pure-u-5-24,.pure-u-6-24,.pure-u-7-24,.pure-u-8-24,.pure-u-9-24,.pure-u-10-24,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1-24{width:4.1667%;*width:4.1357%}.pure-u-1-12,.pure-u-2-24{width:8.3333%;*width:8.3023%}.pure-u-1-8,.pure-u-3-24{width:12.5%;*width:12.469%}.pure-u-1-6,.pure-u-4-24{width:16.6667%;*width:16.6357%}.pure-u-1-5{width:20%;*width:19.969%}.pure-u-5-24{width:20.8333%;*width:20.8023%}.pure-u-1-4,.pure-u-6-24{width:25%;*width:24.969%}.pure-u-7-24{width:29.1667%;*width:29.1357%}.pure-u-1-3,.pure-u-8-24{width:33.3333%;*width:33.3023%}.pure-u-3-8,.pure-u-9-24{width:37.5%;*width:37.469%}.pure-u-2-5{width:40%;*width:39.969%}.pure-u-5-12,.pure-u-10-24{width:41.6667%;*width:41.6357%}.pure-u-11-24{width:45.8333%;*width:45.8023%}.pure-u-1-2,.pure-u-12-24{width:50%;*width:49.969%}.pure-u-13-24{width:54.1667%;*width:54.1357%}.pure-u-7-12,.pure-u-14-24{width:58.3333%;*width:58.3023%}.pure-u-3-5{width:60%;*width:59.969%}.pure-u-5-8,.pure-u-15-24{width:62.5%;*width:62.469%}.pure-u-2-3,.pure-u-16-24{width:66.6667%;*width:66.6357%}.pure-u-17-24{width:70.8333%;*width:70.8023%}.pure-u-3-4,.pure-u-18-24{width:75%;*width:74.969%}.pure-u-19-24{width:79.1667%;*width:79.1357%}.pure-u-4-5{width:80%;*width:79.969%}.pure-u-5-6,.pure-u-20-24{width:83.3333%;*width:83.3023%}.pure-u-7-8,.pure-u-21-24{width:87.5%;*width:87.469%}.pure-u-11-12,.pure-u-22-24{width:91.6667%;*width:91.6357%}.pure-u-23-24{width:95.8333%;*width:95.8023%}.pure-u-1,.pure-u-1-1,.pure-u-5-5,.pure-u-24-24{width:100%}
+
+/* Custom */
+[class *="pure-u"] {display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto;}
+.pure-u-1-7 {width: 14.285%;}.pure-u-2-7 {width: 28.571%;}.pure-u-3-7 {width: 42.857%;}.pure-u-4-7 {width: 57.142%;}.pure-u-5-7 {width: 71.428%;}.pure-u-6-7 {width: 85.714%;}
+.pure-u-1-9 {width: 11.111%;}.pure-u-2-9 {width: 22.222%;}.pure-u-3-9 {width: 33.333%;}.pure-u-4-9 {width: 44.444%;}.pure-u-5-9 {width: 55.555%;}.pure-u-6-9 {width: 66.666%;}.pure-u-7-9 {width: 77.777%;}.pure-u-8-9 {width: 88.888%;}
+.pure-u-1-10 {width: 10%;}.pure-u-2-10 {width: 20%;}.pure-u-3-10 {width: 30%;}.pure-u-4-10 {width: 40%;}.pure-u-5-10 {width: 50%;}.pure-u-6-10 {width: 60%;}.pure-u-7-10 {width: 70%;}.pure-u-8-10 {width: 80%;}.pure-u-9-10 {width: 90%;}
+
+.pure-u-1-11 {width: 9.090%;}.pure-u-2-11 {width: 18.181%;}.pure-u-3-11 {width: 27.272%;}.pure-u-4-11 {width: 36.363%;}.pure-u-5-11 {width: 45.454%;}.pure-u-6-11 {width: 54.545%;}.pure-u-7-11 {width: 63.636%;}.pure-u-8-11 {width: 72.727%;}.pure-u-9-11 {width: 81.818%;}.pure-u-10-11 {width: 90.909%;}
diff --git a/source/user/plugins/admin/themes/grav/css/rtl.css b/source/user/plugins/admin/themes/grav/css/rtl.css
new file mode 100644
index 0000000..df9904e
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/rtl.css
@@ -0,0 +1,1226 @@
+.depth-0 .row {
+ padding-right: 1.5rem;
+ padding-left: inherit;
+}
+
+@media only all and (max-width: 47.938em) {
+ .depth-0 .row {
+ padding-right: 1rem;
+ padding-left: inherit;
+ }
+}
+
+.depth-1 .row {
+ padding-right: 6rem;
+ padding-left: inherit;
+}
+
+@media only all and (max-width: 47.938em) {
+ .depth-1 .row {
+ padding-right: 2rem;
+ padding-left: inherit;
+ }
+}
+
+.depth-2 .row {
+ padding-right: 9rem;
+ padding-left: inherit;
+}
+
+@media only all and (max-width: 47.938em) {
+ .depth-2 .row {
+ padding-right: 1.5rem;
+ padding-left: inherit;
+ }
+}
+
+.depth-3 .row {
+ padding-right: 12rem;
+ padding-left: inherit;
+}
+
+@media only all and (max-width: 47.938em) {
+ .depth-3 .row {
+ padding-right: 4rem;
+ padding-left: inherit;
+ }
+}
+
+.depth-4 .row {
+ padding-right: 15rem;
+ padding-left: inherit;
+}
+
+@media only all and (max-width: 47.938em) {
+ .depth-4 .row {
+ padding-right: 5rem;
+ padding-left: inherit;
+ }
+}
+
+.depth-5 .row {
+ padding-right: 18rem;
+ padding-left: inherit;
+}
+
+@media only all and (max-width: 47.938em) {
+ .depth-5 .row {
+ padding-right: 6rem;
+ padding-left: inherit;
+ }
+}
+
+.depth-6 .row {
+ padding-right: 21rem;
+ padding-left: inherit;
+}
+
+@media only all and (max-width: 47.938em) {
+ .depth-6 .row {
+ padding-right: 7rem;
+ padding-left: inherit;
+ }
+}
+
+.depth-7 .row {
+ padding-right: 24rem;
+ padding-left: inherit;
+}
+
+@media only all and (max-width: 47.938em) {
+ .depth-7 .row {
+ padding-right: 8rem;
+ padding-left: inherit;
+ }
+}
+
+.depth-8 .row {
+ padding-right: 27rem;
+ padding-left: inherit;
+}
+
+@media only all and (max-width: 47.938em) {
+ .depth-8 .row {
+ padding-right: 9rem;
+ padding-left: inherit;
+ }
+}
+
+.depth-9 .row {
+ padding-right: 30rem;
+ padding-left: inherit;
+}
+
+@media only all and (max-width: 47.938em) {
+ .depth-9 .row {
+ padding-right: 10rem;
+ padding-left: inherit;
+ }
+}
+
+body {
+ direction: rtl;
+}
+
+body,
+h5,
+h6,
+.badge,
+.sidebar-open #admin-sidebar #admin-menu li .badges .updates,
+.note,
+.grav-mdeditor-preview,
+input,
+select,
+textarea,
+button,
+.selectize-input,
+h1,
+h2,
+h3,
+h4,
+#admin-menu li,
+.form-tabs>label,
+.label,
+code,
+kbd,
+pre,
+samp,
+body .CodeMirror {
+ font-family: "Open Sans", Tahoma, Arial, sans-serif, Helvetica, Roboto !important;
+}
+
+#admin-sidebar {
+ float: right;
+ right: 0;
+ left: inherit;
+}
+
+@media only all and (min-width: 47.938em) {
+ #admin-main {
+ margin-right: 4.2rem;
+ margin-left: inherit;
+ }
+}
+
+@media only all and (min-width: 74.938em) {
+ #admin-main {
+ margin-right: 240px;
+ margin-left: inherit;
+ }
+}
+
+.button-bar {
+ text-align: left;
+ float: left;
+}
+
+.titlebar .button-bar .button.dropdown-toggle {
+ border-right: 1px solid #3bab97;
+ border-left: inherit;
+}
+
+#admin-main .titlebar .button {
+ margin-left: 0px;
+ margin-right: 2px;
+}
+
+.button.dropdown-toggle {
+ margin-right: -4px !important;
+}
+
+.fjs-item-wrapper .button.dropdown-toggle {
+ margin-right: 0 !important;
+}
+
+#pages-content-wrapper .fjs-item a {
+ padding: 7px 5px 7px 2px;
+}
+
+.button-group>.button:last-child:not(:first-child),
+.button-group>.dropdown-toggle:not(:first-child) {
+ border-top-right-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+ border-top-left-radius: 4px !important;
+ border-bottom-left-radius: 4px !important;
+}
+
+.button-group .dropdown-menu {
+ right: 0;
+ float: right;
+ text-align: right;
+}
+
+.button-group>.button:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+ border-top-right-radius: 4px !important;
+ border-bottom-right-radius: 4px !important;
+}
+
+#admin-dashboard #updates .button-bar > .button:not(.dropdown-toggle) {
+ margin-right: 4px;
+ margin-left: 0;
+}
+
+#admin-main .flush-bottom.button-bar .button.dropdown-toggle {
+ margin-right: -4px;
+ margin-left: 0;
+}
+
+#admin-main h1 {
+ text-align: right;
+}
+
+.fa-arrow-circle-right::before {
+ content: "\f0a8" !important;
+}
+
+#admin-user-details,
+.admin-user-details {
+ text-align: right;
+}
+
+#admin-user-details .admin-user-names,
+.admin-user-details .admin-user-names {
+ margin-right: 60px;
+ margin-left: inherit;
+}
+
+#admin-user-details img,
+.admin-user-details img {
+ float: right;
+}
+
+#admin-menu li.selected a {
+ border-right: 9px solid #007ab8;
+ border-left: inherit !important;
+}
+
+#admin-menu li.selected a {
+ padding-right: 16px;
+ padding-left: inherit !important;
+}
+
+#admin-menu li a {
+ padding-right: 25px;
+ padding-left: inherit;
+}
+
+#admin-menu li a .fa {
+ margin-left: 8px;
+ margin-right: inherit;
+}
+
+#admin-menu li .badges {
+ float: left;
+ margin-left: 1rem;
+ margin-right: inherit;
+}
+
+#overlay {
+ right: 75%;
+ left: inherit;
+}
+
+.content-padding #admin-dashboard .dashboard-item-flex:nth-of-type(2n) .dashboard-item {
+ margin-left: 0;
+ margin-right: 0.75rem;
+}
+
+#admin-dashboard .dashboard-item h1 .right {
+ float: left;
+}
+
+.fa.fa-refresh {
+ margin: 0;
+}
+
+#admin-dashboard .widget-content {
+ /* news feed and noti are always in english */
+ direction: ltr;
+}
+
+#phpinfo {
+ /* PHP info is always in enlish */
+ direction: ltr;
+}
+
+.p {
+ text-align: left !important;
+}
+
+#admin-main .alert::before {
+ font-family: FontAwesome;
+ margin-left: 5px;
+}
+
+.content-padding #admin-dashboard .dashboard-item-flex:nth-of-type(2n+1) .dashboard-item {
+ margin-right: 0;
+ margin-left: 0.75rem;
+}
+
+form .form-field {
+ padding-right: 1.5rem;
+ padding-left: 0;
+}
+
+.hint--bottom::after,
+.hint--bottom::before {
+ right: 50%;
+ left: inherit;
+}
+
+form .form-data {
+ padding-left: 1.5rem;
+ padding-right: 0 !important;
+}
+
+form .selectize-input {
+ padding: 5px 10px 5px 30px;
+}
+
+.switch-toggle input:last-of-type:checked~a {
+ right: 50%;
+ left: inherit;
+}
+
+.switch-toggle a {
+ right: 0;
+ left: inherit;
+}
+
+.switch-toggle input+label {
+ float: right;
+}
+
+form .form-input-addon-wrapper input:not(:last-child) {
+ border-top-left-radius: 0;
+ border-top-right-radius: .1875rem;
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: .1875rem;
+}
+
+form .form-input-addon-wrapper .form-input-append {
+ border-radius: 4px 0px 0px 4px;
+ border-right-width: 0 !important;
+ border-left-width: 1px !important;
+}
+
+form .checkboxes label::before {
+ margin-left: 10px;
+ margin-right: inherit;
+}
+
+form .checkboxes label {
+ padding: 0 2rem 0 0;
+ margin-left: 15px;
+ margin-right: inherit;
+}
+
+.switch-toggle.switch-3 input:checked:last-of-type~a {
+ right: 66.66667%;
+ left: inherit;
+}
+
+.switch-toggle.switch-3 input:checked:nth-of-type(2)~a {
+ right: 33.33333%;
+ left: inherit;
+}
+
+form .dynfields input[type="text"],
+form [data-grav-field="array"] input[type="text"] {
+ float: right;
+ margin: 0 0px 5px 5px;
+}
+
+#page-filtering .page-search::after {
+ left: 15px;
+ right: inherit;
+}
+
+.remodal {
+ text-align: right;
+}
+
+form h1,
+form h3 {
+ text-align: right;
+}
+
+#toast-container>div {
+ padding: 15px 50px 15px 15px;
+}
+
+@media all and (max-width: 240px) {
+ #toast-container>div {
+ padding: 8px 50px 8px 8px;
+ }
+ #toast-container .toast-close-button {
+ left: -0.2em;
+ right: inherit;
+ }
+}
+
+@media all and (min-width: 241px) and (max-width: 480px) {
+ #toast-container>div {
+ padding: 8px 50px 8px 8px;
+ width: 18em;
+ }
+ #toast-container .toast-close-button {
+ left: -0.2em;
+ right: inherit;
+ }
+}
+
+@media all and (min-width: 481px) and (max-width: 768px) {
+ #toast-container>div {
+ padding: 15px 50px 15px 15px;
+ }
+}
+
+.form-list-wrapper .collection-sort {
+ right: 0;
+ left: inherit;
+ border-right: 0 !important;
+ border-left: 1px solid #e6e6e6;
+}
+
+.form-list-wrapper ul[data-collection-holder]>li .item-actions {
+ left: 10px;
+ right: inherit;
+}
+
+.pages-list .row .badge.lang,
+.pages-list .row .sidebar-open #admin-sidebar #admin-menu li .badges .lang.updates,
+.sidebar-open #admin-sidebar #admin-menu li .badges .pages-list .row .lang.updates,
+.pages-list .row .sidebar-open #admin-sidebar #admin-menu li .badges .lang.updates,
+.sidebar-open #admin-sidebar #admin-menu li .badges .pages-list .row .lang.updates,
+.pages-list .row .gpm .lang.gpm-testing,
+.gpm .pages-list .row .lang.gpm-testing {
+ margin-right: 8px;
+ margin-left: inherit;
+}
+
+.pages-list .page-home {
+ margin-left: 10px;
+ margin-right: inherit;
+}
+
+.pages-list .page-tools i {
+ margin-right: 10px;
+ margin-left: inherit;
+}
+
+.gpm .sort-actions {
+ float: left;
+}
+
+.fa-long-arrow-right::before {
+ content: "\f177";
+}
+
+.gpm .gpm-search::after {
+ left: 60px;
+ right: inherit;
+}
+
+
+/* admin menu */
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-sidebar {
+ float: right;
+ visibility: visible;
+ opacity: 1;
+ width: 4.2rem;
+}
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-logo h3 {
+ font-size: 0;
+}
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-logo h3:first-letter {
+ font-size: 2.5rem;
+}
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-logo .admin-logo .front-end {
+ display: none;
+}
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #grav-logo-small {
+ display: inline-block;
+}
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #grav-logo-large {
+ display: none;
+}
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-user-details {
+ padding: 15px 10px 15px 0px;
+ text-align: right;
+}
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-sidebar .admin-user-names {
+ display: none;
+}
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-menu em {
+ display: none;
+}
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-menu li .badges .updates {
+ border-radius: 100%;
+ position: absolute;
+ top: 4px;
+ left: 10px;
+ right: inherit;
+ font-size: 9px;
+ line-height: 12px;
+ padding: 1px 3px;
+ min-width: 15px;
+}
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #admin-menu li .badges .count {
+ display: none;
+}
+
+@media only all and (min-width: 74.938em) {
+ .sidebar-closed:not(.sidebar-quickopen) #admin-sidebar #open-handle .fa-angle-double-right:before {
+ content: "\f100";
+ }
+}
+
+.sidebar-closed:not(.sidebar-quickopen) #admin-main {
+ margin-right: 4.2rem;
+ margin-left: inherit;
+}
+
+.sidebar-open #admin-sidebar {
+ z-index: 10001;
+ float: right;
+ visibility: visible;
+ opacity: 1;
+ width: 240px;
+}
+
+.sidebar-open #admin-sidebar h3 {
+ font-size: 1.2rem;
+}
+
+.sidebar-open #admin-sidebar h3:first-letter {
+ font-size: 1.2rem;
+}
+
+.sidebar-open #admin-sidebar #grav-logo-small {
+ display: none;
+}
+
+.sidebar-open #admin-sidebar #grav-logo-large {
+ display: inline-block;
+}
+
+.sidebar-open #admin-sidebar #admin-user-details {
+ padding: 15px 10px;
+ text-align: right;
+}
+
+.sidebar-open #admin-sidebar .admin-user-names {
+ display: block;
+}
+
+.sidebar-open #admin-sidebar .admin-logo .front-end {
+ display: inline-block;
+}
+
+.sidebar-open #admin-sidebar #admin-menu em {
+ display: inline;
+}
+
+.sidebar-open #admin-sidebar #admin-menu li .badges .updates {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ border-bottom-right-radius: inherit;
+ border-top-right-radius: inherit;
+ position: relative;
+ top: auto;
+ left: auto;
+ right: inherit;
+}
+
+.sidebar-open #admin-sidebar #admin-menu li .badges .count {
+ display: inline-block;
+}
+
+@media only all and (min-width: 47.938em) and (max-width: 74.938em) {
+ .sidebar-open #admin-sidebar #open-handle .fa-angle-double-right:before {
+ content: "\f100";
+ }
+}
+
+#admin-sidebar {
+ position: absolute;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ width: 100%;
+ max-height: 100vh;
+ opacity: 0;
+ z-index: 3;
+}
+
+@media only all and (min-width: 74.938em) {
+ #admin-sidebar #open-handle .fa-angle-double-right:before {
+ content: "\f101";
+ }
+}
+
+@media only all and (max-width: 47.938em) {
+ #admin-sidebar #open-handle {
+ right: 4.2rem;
+ }
+}
+
+#admin-sidebar.sidebar-is-visible {
+ opacity: 1;
+ visibility: visible;
+}
+
+@media only all and (max-width: 47.938em) {
+ #admin-sidebar {
+ z-index: 3;
+ }
+}
+
+@media only all and (min-width: 47.938em) {
+ #admin-sidebar {
+ float: right;
+ visibility: visible;
+ opacity: 1;
+ width: 4.2rem;
+ }
+}
+
+@media only all and (min-width: 74.938em) {
+ #admin-sidebar {
+ float: right;
+ visibility: visible;
+ opacity: 1;
+ width: 240px;
+ }
+}
+
+.sidebar-closed #open-handle {
+ right: 4.2rem !important;
+}
+
+tr td.gpm-actions {
+ text-align: left;
+}
+
+tr td.gpm-actions .gpm-details-expand {
+ right: inherit;
+ left: 12px;
+}
+
+.hint--right:after,
+.hint--right:before {
+ right: 100%;
+ left: inherit !important;
+}
+
+.hint--right:before {
+ margin-right: -12px;
+ margin-left: inherit !important;
+}
+
+.remodal ul li {
+ margin-right: 27px;
+ margin-left: inherit;
+}
+
+.gpm .gpm-item-info td {
+ border: 0;
+ text-align: right !important;
+}
+
+.grav-editor-content {
+ direction: ltr;
+}
+
+#admin-logo .front-end {
+ margin-right: 15px;
+ margin-left: 0 !important;
+}
+
+.hint--left::after,
+.hint--left::before {
+ left: 100%;
+ right: inherit !important
+}
+
+.hint--left:focus::after,
+.hint--left:focus::before,
+.hint--left:hover::after,
+.hint--left:hover::before {
+ -webkit-transform: translateX(8px) !important;
+ -moz-transform: translateX(8px) !important;
+ transform: translateX(8px) !important;
+}
+
+.hint--left::before {
+ border-right-color: #383838;
+ border-left-color: transparent !important;
+ margin-right: 12px !important;
+}
+
+#admin-sidebar #open-handle {
+ right: inherit !important;
+ left: 0;
+}
+
+/* CSS Hacks: I couldn't edit twig and js files to work properly with RTL so I had to use these hacks */
+.fa.fa-angle-right {
+ transform: rotate(180deg);
+}
+
+.fa.fa-chevron-circle-right {
+ transform: rotate(180deg);
+}
+
+.fa.fa-reply {
+ transform: scaleX(-1);
+}
+
+input[name="data[assets][collections][jquery]"] {
+ margin-left: inherit !important;
+ margin-right: 50px !important;
+}
+
+input[name="data[assets][collections][jquery][0]"] {
+ margin-left: inherit !important;
+ margin-right: 50px !important;
+}
+
+.dropdown-menu[style^=display] {
+ left: inherit !important;
+ right: 308px !important;
+}
+
+@media only all and (min-width: 47.938em) and (max-width: 74.875em) {
+ .dropdown-menu[style^=display] {
+ right: 135px !important;
+ }
+}
+
+@media only all and (max-width: 47.937em) {
+ .dropdown-menu[style^=display] {
+ right: 45px !important;
+ }
+}
+
+#pages-columns.fjs-container .fjs-col {
+ border-left: 1px solid rgba(230, 230, 230, 0.5);
+ border-right: 0;
+}
+
+.button-bar .button .fa.fa-chevron-left {
+ transform: rotate(180deg);
+}
+
+.button-bar .button .fa.fa-chevron-right {
+ transform: rotate(180deg);
+}
+
+.prev .fa.fa-chevron-left {
+ transform: rotate(180deg);
+}
+
+.next .fa.fa-chevron-right {
+ transform: rotate(180deg);
+}
+/* end */
+
+.form-tabs.side-tabs>.tabs-nav a {
+ text-align: right;
+ justify-content: right;
+ padding-right: 15px;
+ padding-left: inherit;
+}
+
+#admin-main .form-tabs.side-tabs>.tabs-content {
+ box-shadow: 40px 0 20px -40px rgba(0, 0, 0, 0.3) !important;
+}
+
+.form-list-wrapper .collection-actions {
+ text-align: left;
+}
+
+form .dynfields input[type="text"],
+form [data-grav-field="array"] input[type="text"],
+form [data-grav-field="multilevel"] input[type="text"] {
+ float: right;
+ margin: 0 0 5px 5px;
+}
+
+#admin-menu li .badges.with-updates .count {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ border-bottom-left-radius: 10px;
+ border-top-left-radius: 10px;
+}
+
+#admin-menu li .badges.with-updates .updates {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ border-bottom-right-radius: 10px;
+ border-top-right-radius: 10px;
+}
+
+.selectize-control.rtl.single .selectize-input::after {
+ left: 23px;
+}
+
+form .dynfields .form-row span[data-grav-array-action="sort"], form [data-grav-field="array"] .form-row span[data-grav-array-action="sort"], form [data-grav-field="multilevel"] .form-row span[data-grav-array-action="sort"] {
+ float: right;
+}
+
+.user-details {
+ text-align: right;
+}
+
+.permission-container .permission-name span.badge, .permission-container .permission-name .sidebar-open #admin-sidebar #admin-menu li .badges span.updates, .sidebar-open #admin-sidebar #admin-menu li .badges .permission-container .permission-name span.updates, .permission-container .permission-name .gpm span.gpm-testing, .gpm .permission-container .permission-name span.gpm-testing {
+ float: left;
+ margin-left: -2px;
+ margin-right: inherit;
+}
+
+.permissions-container fieldset fieldset {
+ padding: 0.5rem 2rem 0 0;
+}
+
+#pages-filters .filters-bar .button-border {
+ margin-right: 0.5rem;
+ margin-left: 0;
+}
+
+tr th:last-child, tr td:last-child {
+ padding-left: 1.5rem;
+ padding-right: 0;
+}
+
+tr th:first-child, tr td:first-child {
+ padding-right: 1.5rem;
+ padding-left: 0;
+}
+
+.triple.page-title {
+ padding-left: 0;
+ padding-right: 1.5rem;
+}
+
+.tags {
+ text-align: right;
+}
+
+#admin-main .alert.grav #grav-update-button {
+ float: left;
+}
+
+#admin-main .grav-update .button {
+ float: left;
+ margin-right: 1rem;
+ margin-left: 0;
+}
+
+.gp-learn-more, .gp-learn-more:active {
+ margin: 0 0 0 2rem !important;
+}
+
+.hide-notification {
+ left: 1rem;
+ right: inherit;
+}
+
+.gpm .gpm-search {
+ position: relative;
+ padding: 0 1.5rem 0.5rem 3rem;
+ text-indent: 2.5rem;
+}
+
+tr td.gpm-actions {
+ padding-right: 0;
+ padding-left: 2.5rem;
+}
+
+.gpm .gpm-version {
+ padding-left: 0;
+ padding-right: 0.5rem;
+}
+
+.gpm-version {
+ display: inline-table;
+}
+
+.gpm .badge.update, .gpm .sidebar-open #admin-sidebar #admin-menu li .badges .update.updates, .sidebar-open #admin-sidebar #admin-menu li .badges .gpm .update.updates, .gpm .update.gpm-testing {
+ margin-left: 0;
+ margin-right: 1rem;
+}
+
+.gpm .gpm-item-info .gpm-item-icon {
+ left: 1.5rem;
+ right: inherit;
+}
+
+#backups-stats #backups-usage h1 {
+ left: 1rem;
+ right: inherit;
+}
+
+#backups-stats .backups-usage-wrapper {
+ height: 40px;
+ background: linear-gradient(90deg, #85144b 0%, #FF4136 20%, #FF851B 40%, #FFDC00 60%, #01FF70 80%, #2ECC40 100%);
+}
+
+#backups-stats .backups-usage-wrapper > div {
+ background: linear-gradient(90deg, #006ea6 0, #005d8d 100%);
+}
+
+#backups-stats .backups-usage-wrapper > div {
+ float: left;
+}
+
+.jqCron-time {
+ display: inline-flex !important;
+}
+
+th {
+ text-align: right;
+}
+
+#admin-main .admin-block .report-output .toast .btn {
+ float: left !important;
+ margin-left: 0.5rem;
+}
+
+.report-output ul.problems .toast .btn {
+ margin-right: 1rem;
+}
+
+.report-output ul.problems ul.details .menu-badge {
+ float: left !important;
+}
+
+.label {
+ margin-left: 0.75rem;
+ margin-right: 0;
+}
+
+.report-output ul.problems ul.details {
+ padding-right: 0;
+}
+
+.toast-close-button {
+ right: inherit;
+ left: -0.3em;
+ float: left;
+}
+
+.toast-top-right {
+ right: inherit;
+ left: 1.5rem;
+}
+
+#toast-container > div {
+ background-position: 260px center;
+}
+
+@media (max-width : 48em) {
+ #toast-container > div {
+ background-position: 280px center;
+ }
+}
+
+#pages-content-wrapper .fjs-item .fjs-icon::after, #pages-content-wrapper .fjs-item .fjs-icon .badge-clock {
+ right: inherit;
+ left: -2px;
+}
+
+#pages-content-wrapper .fjs-item .fjs-icon {
+ margin-left: 5px;
+}
+
+#pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu {
+ text-align: right;
+}
+
+#pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu table td {
+ text-align: right;
+}
+
+.datetime-picker-wrapper .field-icons {
+ left: 10px;
+ right: inherit;
+}
+
+.datetime-picker-wrapper input {
+ padding-left: 2.5rem;
+ padding-right: 0;
+}
+
+.list-unstyled {
+ padding-right: 0;
+}
+
+.bootstrap-datetimepicker-widget.dropdown-menu.usetwentyfour.bottom {
+ inset: auto 0 auto auto !important;
+}
+
+.bootstrap-datetimepicker-widget.dropdown-menu.usetwentyfour.top {
+ inset: auto 0 35px auto !important;
+}
+
+.bootstrap-datetimepicker-widget.dropdown-menu.bottom::after {
+ left: inherit;
+ right: 8px;
+}
+
+.bootstrap-datetimepicker-widget.dropdown-menu.bottom::before {
+ left: inherit;
+ right: 7px;
+}
+
+.bootstrap-datetimepicker-widget.dropdown-menu.top::after {
+ left: inherit;
+ right: 7px;
+
+}
+
+.bootstrap-datetimepicker-widget.dropdown-menu.top::before {
+ left: inherit;
+ right: 6px;
+}
+
+
+.form-order-wrapper ul.orderable li.drag-handle::after {
+ right: inherit;
+ left: 10px;
+}
+
+form .form-select-wrapper::after, form .selectize-control.single .selectize-input::after {
+ right: inherit;
+ left: 12px;
+}
+
+#admin-topbar {
+ left: 5px;
+ right: inherit;
+}
+
+#blueprints .block .form-tabs .tabs-nav {
+ margin-right: 0 !important;
+ margin-left: 263px;
+}
+
+#admin-main .form-tabs.side-tabs > .tabs-nav {
+ margin: 0;
+}
+
+@media only all and (max-width: 47.938em) {
+ #blueprints .block .form-tabs .tabs-nav {
+ margin-left: 0 !important;
+ }
+}
+
+#admin-topbar #admin-lang-toggle {
+ float: right;
+ margin-left: 5px;
+ margin-right: 0;
+}
+
+.admin-form-wrapper .tabs-nav {
+ margin: 0 !important;
+}
+
+form h1, form h3, form .form-spacer h3 {
+ text-align: right;
+}
+
+.fjs-container .fjs-item a span i {
+ padding-left: 5px;
+ padding-right: 0;
+}
+
+[data-remodal-id].parents-container .fjs-item {
+ margin-right: 0;
+ margin-left: 0;
+}
+[data-remodal-id].parents-container .fjs-item {
+ margin-right: 0;
+ margin-left: 0;
+}
+
+[data-remodal-id].parents-container .fjs-col {
+ border-left: 1px solid #e6e6e6;
+ border-right: 0;
+}
+
+#pages-content-wrapper .fjs-item .fjs-title [data-flexpages-dotx3] .dropdown-menu .action-bar a.dropdown-item:hover:last-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 0;
+}
+
+.gpm-details {
+ padding-left: 0 !important;
+}
+
+.gpm-name.quadruple {
+ padding-right: 1.5rem;
+ padding-left: 0;
+}
+
+.table-wrapper td {
+ padding-right: 1.5rem;
+ padding-left: 0 !important;
+}
+
+.vuetable #_username {
+ padding-right: 1.5rem;
+ padding-left: 0;
+}
+
+.vuetable-body td:first-child {
+ padding-right: 1.5rem;
+ padding-left: 0;
+}
+
+.search-wrapper .filter-perPage {
+ margin-left: 0 !important;
+ margin-right: 1rem;
+}
+
+#directory td:last-child {
+ text-align: left !important;
+}
+
+#directory td:last-child a {
+ padding-left: 0 !important;
+ padding-right: 5px;
+}
+
+tr th.right, tr td.right {
+ text-align: left;
+}
+
+.directory .checkboxes label {
+ margin: 0;
+}
+
+.backups-history th:first-child {
+ padding-right: 1.5rem;
+ padding-left: 0;
+}
+
+.backups-history tbody tr td:first-child {
+ padding-right: 1.5rem;
+ padding-left: 0;
+}
+
+.details .infos td:last-child {
+ padding-left: 0 !important;
+}
+
+.details .infos td:first-child {
+ padding-right: 0 !important;
+}
+
+@media only all and (max-width: 47.938em) {
+
+ #admin-main .titlebar {
+ padding: 0 4rem 0 0.375rem;
+ }
+
+ #admin-main .lines-button {
+ margin-right: 0.375rem;
+ margin-left: 0;
+ }
+
+ .button-group .dropdown-menu {
+ right: -81px;
+ }
+
+}
+
+.content-wrapper.updates-checked > div {
+ transform: scaleX(-1);
+}
+
+.content-wrapper.updates-checked {
+ transform: scaleX(-1);
+}
+
+.admin-menu-wrapper > div {
+ transform: scaleX(-1);
+}
+
+.admin-menu-wrapper {
+ transform: scaleX(-1);
+}
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/css/selectize.min.css b/source/user/plugins/admin/themes/grav/css/selectize.min.css
new file mode 100644
index 0000000..fbf7424
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/css/selectize.min.css
@@ -0,0 +1 @@
+.selectize-control.plugin-drag_drop.multi > .selectize-input > div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,0.06)!important;border:0 none!important;-webkit-box-shadow:inset 0 0 12px 4px #fff;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:'!';visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.2);box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown-header{position:relative;padding:5px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.selectize-dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px!important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:700;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 0 0;border-left:1px solid #d0d0d0;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:#cacaca}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:none}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:#fff}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#303030;font-family:inherit;font-size:13px;line-height:18px;-webkit-font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #d0d0d0;padding:8px;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.1);box-shadow:inset 0 1px 1px rgba(0,0,0,0.1);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.selectize-control.multi .selectize-input.has-items{padding:6px 8px 3px}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default!important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.selectize-input > *{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input > div{cursor:pointer;margin:0 3px 3px 0;padding:2px 6px;background:#f2f2f2;color:#303030;border:0 solid #d0d0d0}.selectize-control.multi .selectize-input > div.active{background:#e8e8e8;color:#303030;border:0 solid #cacaca}.selectize-control.multi .selectize-input.disabled > div,.selectize-control.multi .selectize-input.disabled > div.active{color:#7d7d7d;background:#fff;border:0 solid #fff}.selectize-input > input{padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0 2px 0 0 !important;text-indent:0!important;border:0 none!important;background:none!important;line-height:inherit!important;-webkit-user-select:auto!important;-webkit-box-shadow:none!important;box-shadow:none!important}.selectize-input > input::-ms-clear{display:none}.selectize-input > input:focus{outline:none!important}.selectize-input::after{content:' ';display:block;clear:left}.selectize-input.dropdown-active::before{content:' ';display:block;position:absolute;background:#f0f0f0;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0;border-top:0 none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1);-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(125,168,208,0.2);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown [data-selectable],.selectize-dropdown .optgroup-header{padding:5px 8px}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#303030;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#f5fafd;color:#495c68}.selectize-dropdown .active.create{color:#495c68}.selectize-dropdown .create{color:rgba(48,48,48,0.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:350px}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:' ';display:block;position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0;border-color:gray transparent transparent}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px;border-color:transparent transparent gray}.selectize-control.rtl.single .selectize-input:after{left:15px;right:auto}.selectize-control.rtl .selectize-input > input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fafafa}
diff --git a/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.eot b/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.eot
new file mode 100755
index 0000000..23b4f41
Binary files /dev/null and b/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.eot differ
diff --git a/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.svg b/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.svg
new file mode 100755
index 0000000..874a3a1
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.svg
@@ -0,0 +1,2810 @@
+
+
+
+
diff --git a/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.ttf b/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.ttf
new file mode 100755
index 0000000..c8a6626
Binary files /dev/null and b/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.ttf differ
diff --git a/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.woff b/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.woff
new file mode 100755
index 0000000..8f8204e
Binary files /dev/null and b/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.woff differ
diff --git a/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.woff2 b/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.woff2
new file mode 100755
index 0000000..50e0522
Binary files /dev/null and b/source/user/plugins/admin/themes/grav/fonts/forkawesome-webfont.woff2 differ
diff --git a/source/user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.eot b/source/user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.eot
new file mode 100644
index 0000000..c52df41
Binary files /dev/null and b/source/user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.eot differ
diff --git a/source/user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.svg b/source/user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.svg
new file mode 100644
index 0000000..f338187
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.svg
@@ -0,0 +1,16 @@
+
+
+
diff --git a/source/user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.ttf b/source/user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.ttf
new file mode 100644
index 0000000..53a6e37
Binary files /dev/null and b/source/user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.ttf differ
diff --git a/source/user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.woff b/source/user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.woff
new file mode 100644
index 0000000..0fd4941
Binary files /dev/null and b/source/user/plugins/admin/themes/grav/fonts/rockettheme-apps/rockettheme-apps.woff differ
diff --git a/source/user/plugins/admin/themes/grav/images/favicon.png b/source/user/plugins/admin/themes/grav/images/favicon.png
new file mode 100644
index 0000000..85526cf
Binary files /dev/null and b/source/user/plugins/admin/themes/grav/images/favicon.png differ
diff --git a/source/user/plugins/admin/themes/grav/images/grav-regular.svg b/source/user/plugins/admin/themes/grav/images/grav-regular.svg
new file mode 100644
index 0000000..3533910
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/images/grav-regular.svg
@@ -0,0 +1 @@
+
diff --git a/source/user/plugins/admin/themes/grav/images/grav-small.svg b/source/user/plugins/admin/themes/grav/images/grav-small.svg
new file mode 100644
index 0000000..6d31cd7
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/images/grav-small.svg
@@ -0,0 +1 @@
+
diff --git a/source/user/plugins/admin/themes/grav/images/icons/book-edit.svg b/source/user/plugins/admin/themes/grav/images/icons/book-edit.svg
new file mode 100644
index 0000000..26de532
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/images/icons/book-edit.svg
@@ -0,0 +1,10 @@
+
+
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/images/icons/clock-hands.svg b/source/user/plugins/admin/themes/grav/images/icons/clock-hands.svg
new file mode 100644
index 0000000..ab2b074
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/images/icons/clock-hands.svg
@@ -0,0 +1,8 @@
+
+
+
diff --git a/source/user/plugins/admin/themes/grav/images/icons/crown.svg b/source/user/plugins/admin/themes/grav/images/icons/crown.svg
new file mode 100644
index 0000000..17f81d0
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/images/icons/crown.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/images/icons/house.svg b/source/user/plugins/admin/themes/grav/images/icons/house.svg
new file mode 100644
index 0000000..2f86926
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/images/icons/house.svg
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/images/icons/module-four.svg b/source/user/plugins/admin/themes/grav/images/icons/module-four.svg
new file mode 100644
index 0000000..ccd450d
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/images/icons/module-four.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/images/icons/superman.svg b/source/user/plugins/admin/themes/grav/images/icons/superman.svg
new file mode 100644
index 0000000..3fefe88
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/images/icons/superman.svg
@@ -0,0 +1,7 @@
+
+
+
diff --git a/source/user/plugins/admin/themes/grav/images/icons/touchid-lock.svg b/source/user/plugins/admin/themes/grav/images/icons/touchid-lock.svg
new file mode 100644
index 0000000..7d02f86
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/images/icons/touchid-lock.svg
@@ -0,0 +1,15 @@
+
+
\ No newline at end of file
diff --git a/source/user/plugins/admin/themes/grav/images/logo.svg b/source/user/plugins/admin/themes/grav/images/logo.svg
new file mode 100644
index 0000000..6edd841
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/images/logo.svg
@@ -0,0 +1 @@
+
diff --git a/source/user/plugins/admin/themes/grav/images/transparent.png b/source/user/plugins/admin/themes/grav/images/transparent.png
new file mode 100644
index 0000000..5fcd5d4
Binary files /dev/null and b/source/user/plugins/admin/themes/grav/images/transparent.png differ
diff --git a/source/user/plugins/admin/themes/grav/js/admin.min.js b/source/user/plugins/admin/themes/grav/js/admin.min.js
new file mode 100644
index 0000000..c372f78
--- /dev/null
+++ b/source/user/plugins/admin/themes/grav/js/admin.min.js
@@ -0,0 +1,15055 @@
+var Grav;
+/******/ (() => { // webpackBootstrap
+/******/ var __webpack_modules__ = ({
+
+/***/ 40535:
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, {
+ "default": () => (/* binding */ main)
+});
+
+// EXTERNAL MODULE: ./node_modules/@babel/polyfill/lib/index.js
+var lib = __webpack_require__(26981);
+// EXTERNAL MODULE: external "jQuery"
+var external_jQuery_ = __webpack_require__(73609);
+var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery_);
+;// CONCATENATED MODULE: ./app/utils/remodal.js
+/* Remodal from https://github.com/vodkabears/Remodal
+ * With Stackable option from https://github.com/antstorm/Remodal patch
+ */
+
+!function (root, factory) {
+ return factory(root, (external_jQuery_default()));
+}(undefined, function (global, $) {
+ 'use strict';
+ /**
+ * Name of the plugin
+ * @private
+ * @const
+ * @type {String}
+ */
+
+ var PLUGIN_NAME = 'remodal';
+ /**
+ * Namespace for CSS and events
+ * @private
+ * @const
+ * @type {String}
+ */
+
+ var NAMESPACE = window.REMODAL_GLOBALS && window.REMODAL_GLOBALS.NAMESPACE || PLUGIN_NAME;
+ /**
+ * Animationstart event with vendor prefixes
+ * @private
+ * @const
+ * @type {String}
+ */
+
+ var ANIMATIONSTART_EVENTS = $.map(['animationstart', 'webkitAnimationStart', 'MSAnimationStart', 'oAnimationStart'], function (eventName) {
+ return eventName + '.' + NAMESPACE;
+ }).join(' ');
+ /**
+ * Animationend event with vendor prefixes
+ * @private
+ * @const
+ * @type {String}
+ */
+
+ var ANIMATIONEND_EVENTS = $.map(['animationend', 'webkitAnimationEnd', 'MSAnimationEnd', 'oAnimationEnd'], function (eventName) {
+ return eventName + '.' + NAMESPACE;
+ }).join(' ');
+ /**
+ * Default settings
+ * @private
+ * @const
+ * @type {Object}
+ */
+
+ var DEFAULTS = $.extend({
+ hashTracking: true,
+ closeOnConfirm: true,
+ closeOnCancel: true,
+ closeOnEscape: true,
+ closeOnOutsideClick: true,
+ modifier: '',
+ stack: false,
+ appendTo: null
+ }, window.REMODAL_GLOBALS && window.REMODAL_GLOBALS.DEFAULTS);
+ /**
+ * States of the Remodal
+ * @private
+ * @const
+ * @enum {String}
+ */
+
+ var STATES = {
+ CLOSING: 'closing',
+ CLOSED: 'closed',
+ OPENING: 'opening',
+ OPENED: 'opened'
+ };
+ /**
+ * Reasons of the state change.
+ * @private
+ * @const
+ * @enum {String}
+ */
+
+ var STATE_CHANGE_REASONS = {
+ CONFIRMATION: 'confirmation',
+ CANCELLATION: 'cancellation'
+ };
+ /**
+ * Is animation supported?
+ * @private
+ * @const
+ * @type {Boolean}
+ */
+
+ var IS_ANIMATION = function () {
+ var style = document.createElement('div').style;
+ return style.animationName !== undefined || style.WebkitAnimationName !== undefined || style.MozAnimationName !== undefined || style.msAnimationName !== undefined || style.OAnimationName !== undefined;
+ }();
+ /**
+ * Is iOS?
+ * @private
+ * @const
+ * @type {Boolean}
+ */
+
+
+ var IS_IOS = /iPad|iPhone|iPod/.test(navigator.platform);
+ /**
+ * Current modal
+ * @private
+ * @type {Remodal}
+ */
+
+ var openModals = [];
+ /**
+ * Scrollbar position
+ * @private
+ * @type {Number}
+ */
+
+ var scrollTop;
+ /**
+ * Returns an animation duration
+ * @private
+ * @param {jQuery} $elem
+ * @returns {Number}
+ */
+
+ function getAnimationDuration($elem) {
+ if (IS_ANIMATION && $elem.css('animation-name') === 'none' && $elem.css('-webkit-animation-name') === 'none' && $elem.css('-moz-animation-name') === 'none' && $elem.css('-o-animation-name') === 'none' && $elem.css('-ms-animation-name') === 'none') {
+ return 0;
+ }
+
+ var duration = $elem.css('animation-duration') || $elem.css('-webkit-animation-duration') || $elem.css('-moz-animation-duration') || $elem.css('-o-animation-duration') || $elem.css('-ms-animation-duration') || '0s';
+ var delay = $elem.css('animation-delay') || $elem.css('-webkit-animation-delay') || $elem.css('-moz-animation-delay') || $elem.css('-o-animation-delay') || $elem.css('-ms-animation-delay') || '0s';
+ var iterationCount = $elem.css('animation-iteration-count') || $elem.css('-webkit-animation-iteration-count') || $elem.css('-moz-animation-iteration-count') || $elem.css('-o-animation-iteration-count') || $elem.css('-ms-animation-iteration-count') || '1';
+ var max;
+ var len;
+ var num;
+ var i;
+ duration = duration.split(', ');
+ delay = delay.split(', ');
+ iterationCount = iterationCount.split(', '); // The 'duration' size is the same as the 'delay' size
+
+ for (i = 0, len = duration.length, max = Number.NEGATIVE_INFINITY; i < len; i++) {
+ num = parseFloat(duration[i]) * parseInt(iterationCount[i], 10) + parseFloat(delay[i]);
+
+ if (num > max) {
+ max = num;
+ }
+ }
+
+ return max;
+ }
+ /**
+ * Returns a scrollbar width
+ * @private
+ * @returns {Number}
+ */
+
+
+ function getScrollbarWidth() {
+ if ($(document).height() <= $(window).height()) {
+ return 0;
+ }
+
+ var outer = document.createElement('div');
+ var inner = document.createElement('div');
+ var widthNoScroll;
+ var widthWithScroll;
+ outer.style.visibility = 'hidden';
+ outer.style.width = '100px';
+ document.body.appendChild(outer);
+ widthNoScroll = outer.offsetWidth; // Force scrollbars
+
+ outer.style.overflow = 'scroll'; // Add inner div
+
+ inner.style.width = '100%';
+ outer.appendChild(inner);
+ widthWithScroll = inner.offsetWidth; // Remove divs
+
+ outer.parentNode.removeChild(outer);
+ return widthNoScroll - widthWithScroll;
+ }
+ /**
+ * Locks the screen
+ * @private
+ */
+
+
+ function lockScreen() {
+ if (IS_IOS) {
+ return;
+ }
+
+ var $html = $('html');
+ var lockedClass = namespacify('is-locked');
+ var paddingRight;
+ var $body;
+
+ if (!$html.hasClass(lockedClass)) {
+ $body = $(document.body); // Zepto does not support '-=', '+=' in the `css` method
+
+ paddingRight = parseInt($body.css('padding-right'), 10) + getScrollbarWidth();
+ $body.css('padding-right', paddingRight + 'px');
+ $html.addClass(lockedClass);
+ }
+ }
+ /**
+ * Unlocks the screen
+ * @private
+ */
+
+
+ function unlockScreen() {
+ if (IS_IOS) {
+ return;
+ }
+
+ var $html = $('html');
+ var lockedClass = namespacify('is-locked');
+ var paddingRight;
+ var $body;
+
+ if ($html.hasClass(lockedClass)) {
+ $body = $(document.body); // Zepto does not support '-=', '+=' in the `css` method
+
+ paddingRight = parseInt($body.css('padding-right'), 10) - getScrollbarWidth();
+ $body.css('padding-right', paddingRight + 'px');
+ $html.removeClass(lockedClass);
+ }
+ }
+ /**
+ * Sets a state for an instance
+ * @private
+ * @param {Remodal} instance
+ * @param {STATES} state
+ * @param {Boolean} isSilent If true, Remodal does not trigger events
+ * @param {String} Reason of a state change.
+ */
+
+
+ function setState(instance, state, isSilent, reason) {
+ var newState = namespacify('is', state);
+ var allStates = [namespacify('is', STATES.CLOSING), namespacify('is', STATES.OPENING), namespacify('is', STATES.CLOSED), namespacify('is', STATES.OPENED)].join(' ');
+ instance.$bg.removeClass(allStates).addClass(newState);
+ instance.$overlay.removeClass(allStates).addClass(newState);
+ instance.$wrapper.removeClass(allStates).addClass(newState);
+ instance.$modal.removeClass(allStates).addClass(newState);
+ instance.state = state;
+ !isSilent && instance.$modal.trigger({
+ type: state,
+ reason: reason
+ }, [{
+ reason: reason
+ }]);
+ }
+ /**
+ * Synchronizes with the animation
+ * @param {Function} doBeforeAnimation
+ * @param {Function} doAfterAnimation
+ * @param {Remodal} instance
+ */
+
+
+ function syncWithAnimation(doBeforeAnimation, doAfterAnimation, instance) {
+ var runningAnimationsCount = 0;
+
+ var handleAnimationStart = function handleAnimationStart(e) {
+ if (e.target !== this) {
+ return;
+ }
+
+ runningAnimationsCount++;
+ };
+
+ var handleAnimationEnd = function handleAnimationEnd(e) {
+ if (e.target !== this) {
+ return;
+ }
+
+ if (--runningAnimationsCount === 0) {
+ // Remove event listeners
+ $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {
+ instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);
+ });
+ doAfterAnimation();
+ }
+ };
+
+ $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {
+ instance[elemName].on(ANIMATIONSTART_EVENTS, handleAnimationStart).on(ANIMATIONEND_EVENTS, handleAnimationEnd);
+ });
+ doBeforeAnimation(); // If the animation is not supported by a browser or its duration is 0
+
+ if (getAnimationDuration(instance.$bg) === 0 && getAnimationDuration(instance.$overlay) === 0 && getAnimationDuration(instance.$wrapper) === 0 && getAnimationDuration(instance.$modal) === 0) {
+ // Remove event listeners
+ $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {
+ instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);
+ });
+ doAfterAnimation();
+ }
+ }
+ /**
+ * Closes immediately
+ * @private
+ * @param {Remodal} instance
+ */
+
+
+ function halt(instance) {
+ if (instance.state === STATES.CLOSED) {
+ return;
+ }
+
+ $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {
+ instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);
+ });
+ removeModal(instance);
+ instance.$bg.removeClass(instance.settings.modifier);
+ instance.$overlay.removeClass(instance.settings.modifier).hide();
+ instance.$wrapper.hide();
+
+ if (openModals.length === 0) {
+ unlockScreen();
+ }
+
+ setState(instance, STATES.CLOSED, true);
+ }
+ /**
+ * Parses a string with options
+ * @private
+ * @param str
+ * @returns {Object}
+ */
+
+
+ function parseOptions(str) {
+ var obj = {};
+ var arr;
+ var len;
+ var val;
+ var i; // Remove spaces before and after delimiters
+
+ str = str.replace(/\s*:\s*/g, ':').replace(/\s*,\s*/g, ','); // Parse a string
+
+ arr = str.split(',');
+
+ for (i = 0, len = arr.length; i < len; i++) {
+ arr[i] = arr[i].split(':');
+ val = arr[i][1]; // Convert a string value if it is like a boolean
+
+ if (typeof val === 'string' || val instanceof String) {
+ val = val === 'true' || (val === 'false' ? false : val);
+ } // Convert a string value if it is like a number
+
+
+ if (typeof val === 'string' || val instanceof String) {
+ val = !isNaN(val) ? +val : val;
+ }
+
+ obj[arr[i][0]] = val;
+ }
+
+ return obj;
+ }
+ /**
+ * Generates a string separated by dashes and prefixed with NAMESPACE
+ * @private
+ * @param {...String}
+ * @returns {String}
+ */
+
+
+ function namespacify() {
+ var result = NAMESPACE;
+
+ for (var i = 0; i < arguments.length; ++i) {
+ result += '-' + arguments[i];
+ }
+
+ return result;
+ }
+ /**
+ * Handles the hashchange event
+ * @private
+ * @listens hashchange
+ */
+
+
+ function handleHashChangeEvent() {
+ var id = location.hash.replace('#', '');
+ var instance;
+ var $elem;
+ var current = currentModal();
+
+ if (!id) {
+ // Check if we have currently opened modal and animation was completed
+ if (current && current.state === STATES.OPENED && current.settings.hashTracking) {
+ current.close();
+ }
+ } else {
+ if (!current || current.id !== id) {
+ // Catch syntax error if your hash is bad
+ try {
+ $elem = $('[data-' + PLUGIN_NAME + '-id="' + id + '"]');
+ } catch (err) {}
+
+ if ($elem && $elem.length) {
+ instance = $[PLUGIN_NAME].lookup[$elem.data(PLUGIN_NAME)];
+
+ if (instance && instance.settings.hashTracking) {
+ instance.open();
+ }
+ }
+ }
+ }
+ }
+
+ function currentModal() {
+ return openModals[openModals.length - 1];
+ }
+
+ function removeModal(remodal) {
+ var index = openModals.indexOf(remodal);
+
+ if (index >= 0) {
+ openModals.slice(index, 1);
+ }
+ }
+ /**
+ * Remodal constructor
+ * @constructor
+ * @param {jQuery} $modal
+ * @param {Object} options
+ */
+
+
+ function Remodal($modal, options) {
+ var $body = $(document.body);
+ var $appendTo = $body;
+ var remodal = this;
+ remodal.id = $modal.attr('data-' + PLUGIN_NAME + '-id');
+ remodal.settings = $.extend({}, DEFAULTS, options);
+ remodal.index = $[PLUGIN_NAME].lookup.push(remodal) - 1;
+ remodal.state = STATES.CLOSED; // remodal.$overlay = $('.' + namespacify('overlay'));
+
+ if (remodal.settings.appendTo !== null && remodal.settings.appendTo.length) {
+ $appendTo = $(remodal.settings.appendTo);
+ }
+
+ if (!remodal.$overlay) {
+ remodal.$overlay = $('').addClass(namespacify('overlay') + ' ' + namespacify('is', STATES.CLOSED)).hide();
+ $appendTo.append(remodal.$overlay);
+ }
+
+ remodal.$bg = $('.' + namespacify('bg')).addClass(namespacify('is', STATES.CLOSED));
+ remodal.$modal = $modal.addClass(NAMESPACE + ' ' + namespacify('is-initialized') + ' ' + remodal.settings.modifier + ' ' + namespacify('is', STATES.CLOSED)).attr('tabindex', '-1');
+ remodal.$wrapper = $('
').addClass(namespacify('wrapper') + ' ' + remodal.settings.modifier + ' ' + namespacify('is', STATES.CLOSED)).hide().append(remodal.$modal);
+ $appendTo.append(remodal.$wrapper); // Add the event listener for the close button
+
+ remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action="close"]', function (e) {
+ e.preventDefault();
+ remodal.close();
+ }); // Add the event listener for the cancel button
+
+ remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action="cancel"]', function (e) {
+ e.preventDefault();
+ remodal.$modal.trigger(STATE_CHANGE_REASONS.CANCELLATION);
+
+ if (remodal.settings.closeOnCancel) {
+ remodal.close(STATE_CHANGE_REASONS.CANCELLATION);
+ }
+ }); // Add the event listener for the confirm button
+
+ remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action="confirm"]', function (e) {
+ e.preventDefault();
+ remodal.$modal.trigger(STATE_CHANGE_REASONS.CONFIRMATION);
+
+ if (remodal.settings.closeOnConfirm) {
+ remodal.close(STATE_CHANGE_REASONS.CONFIRMATION);
+ }
+ }); // Add the event listener for the overlay
+
+ remodal.$wrapper.on('click.' + NAMESPACE, function (e) {
+ var $target = $(e.target);
+ var isWrapper = $target.hasClass(namespacify('wrapper'));
+ var isWithin = $target.closest('.' + namespacify('is', STATES.OPENED)).length;
+
+ if (!isWrapper && isWithin) {
+ return;
+ }
+
+ if (remodal.settings.closeOnOutsideClick) {
+ remodal.close();
+ }
+ });
+ }
+ /**
+ * Opens a modal window
+ * @public
+ */
+
+
+ Remodal.prototype.open = function () {
+ var remodal = this;
+ var current;
+ var modalCount; // Check if the animation was completed
+
+ if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING) {
+ return;
+ } // id = remodal.$modal.attr('data-' + PLUGIN_NAME + '-id');
+
+
+ if (remodal.id && remodal.settings.hashTracking) {
+ scrollTop = $(window).scrollTop();
+ location.hash = remodal.id;
+ }
+
+ if (!remodal.settings.stack) {
+ current = currentModal();
+
+ if (current && current !== remodal) {
+ halt(current);
+ }
+ }
+
+ modalCount = openModals.push(remodal);
+ remodal.$overlay.css('z-index', function (_, value) {
+ return parseInt(value, 10) + modalCount;
+ });
+ remodal.$wrapper.css('z-index', function (_, value) {
+ return parseInt(value, 10) + modalCount;
+ });
+ lockScreen();
+ remodal.$bg.addClass(remodal.settings.modifier);
+ remodal.$overlay.addClass(remodal.settings.modifier).show();
+ remodal.$wrapper.show().scrollTop(0);
+ remodal.$modal.focus();
+ syncWithAnimation(function () {
+ setState(remodal, STATES.OPENING);
+ }, function () {
+ setState(remodal, STATES.OPENED);
+ }, remodal);
+ };
+ /**
+ * Closes a modal window
+ * @public
+ * @param {String} reason
+ */
+
+
+ Remodal.prototype.close = function (reason) {
+ var remodal = this;
+ var current; // Check if the animation was completed
+
+ if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING || remodal.state === STATES.CLOSED) {
+ return;
+ }
+
+ removeModal(remodal);
+
+ if (remodal.settings.hashTracking && remodal.id === location.hash.substr(1)) {
+ current = currentModal();
+
+ if (current) {
+ location.hash = current.id;
+ } else {
+ location.hash = '';
+ $(window).scrollTop(scrollTop);
+ }
+ }
+
+ syncWithAnimation(function () {
+ setState(remodal, STATES.CLOSING, false, reason);
+ }, function () {
+ remodal.$bg.removeClass(remodal.settings.modifier);
+ remodal.$overlay.removeClass(remodal.settings.modifier).hide();
+ remodal.$wrapper.hide();
+
+ if (openModals.length === 0) {
+ unlockScreen();
+ }
+
+ setState(remodal, STATES.CLOSED, false, reason);
+ }, remodal);
+ };
+ /**
+ * Returns a current state of a modal
+ * @public
+ * @returns {STATES}
+ */
+
+
+ Remodal.prototype.getState = function () {
+ return this.state;
+ };
+ /**
+ * Destroys a modal
+ * @public
+ */
+
+
+ Remodal.prototype.destroy = function () {
+ var lookup = $[PLUGIN_NAME].lookup;
+ var instanceCount;
+ halt(this);
+ this.$wrapper.remove();
+ delete lookup[this.index];
+ instanceCount = $.grep(lookup, function (instance) {
+ return !!instance;
+ }).length;
+
+ if (instanceCount === 0) {
+ this.$overlay.remove();
+ this.$bg.removeClass(namespacify('is', STATES.CLOSING) + ' ' + namespacify('is', STATES.OPENING) + ' ' + namespacify('is', STATES.CLOSED) + ' ' + namespacify('is', STATES.OPENED));
+ }
+ };
+ /**
+ * Special plugin object for instances
+ * @public
+ * @type {Object}
+ */
+
+
+ $[PLUGIN_NAME] = {
+ lookup: []
+ };
+ /**
+ * Plugin constructor
+ * @constructor
+ * @param {Object} options
+ * @returns {JQuery}
+ */
+
+ $.fn[PLUGIN_NAME] = function (opts) {
+ var instance;
+ var $elem;
+ this.each(function (index, elem) {
+ $elem = $(elem);
+
+ if ($elem.data(PLUGIN_NAME) == null) {
+ instance = new Remodal($elem, opts);
+ $elem.data(PLUGIN_NAME, instance.index);
+
+ if (instance.settings.hashTracking && instance.id === location.hash.substr(1)) {
+ instance.open();
+ }
+ } else {
+ instance = $[PLUGIN_NAME].lookup[$elem.data(PLUGIN_NAME)];
+ }
+ });
+ return instance;
+ };
+
+ $(document).ready(function () {
+ // data-remodal-target opens a modal window with the special Id
+ $(document).on('click', '[data-' + PLUGIN_NAME + '-target]', function (e) {
+ e.preventDefault();
+ var elem = e.currentTarget;
+ var id = elem.getAttribute('data-' + PLUGIN_NAME + '-target');
+ var $target = $('[data-' + PLUGIN_NAME + '-id="' + id + '"]');
+ $[PLUGIN_NAME].lookup[$target.data(PLUGIN_NAME)].open();
+ }); // Auto initialization of modal windows
+ // They should have the 'remodal' class attribute
+ // Also you can write the `data-remodal-options` attribute to pass params into the modal
+
+ $(document).find('.' + NAMESPACE).each(function (i, container) {
+ var $container = $(container);
+ var options = $container.data(PLUGIN_NAME + '-options');
+
+ if (!options) {
+ options = {};
+ } else if (typeof options === 'string' || options instanceof String) {
+ options = parseOptions(options);
+ }
+
+ $container[PLUGIN_NAME](options);
+ }); // Handles the keydown event
+
+ $(document).on('keydown.' + NAMESPACE, function (e) {
+ var current = currentModal();
+
+ if (current && current.settings.closeOnEscape && current.state === STATES.OPENED && e.keyCode === 27) {
+ current.close();
+ }
+ }); // Handles the hashchange event
+
+ $(window).on('hashchange.' + NAMESPACE, handleHashChangeEvent);
+ });
+});
+// EXTERNAL MODULE: ./node_modules/simplebar/dist/simplebar.esm.js + 1 modules
+var simplebar_esm = __webpack_require__(56884);
+// EXTERNAL MODULE: ./node_modules/toastr/toastr.js
+var toastr = __webpack_require__(8901);
+var toastr_default = /*#__PURE__*/__webpack_require__.n(toastr);
+;// CONCATENATED MODULE: ./app/utils/toastr.js
+
+(toastr_default()).options.positionClass = 'toast-top-right';
+(toastr_default()).options.preventDuplicates = true;
+/* harmony default export */ const utils_toastr = ((toastr_default()));
+;// CONCATENATED MODULE: ./app/utils/offline.js
+
+
+var offlineElement = external_jQuery_default()('#offline-status');
+external_jQuery_default()(window).on('offline', function () {
+ offlineElement.slideDown();
+});
+external_jQuery_default()(window).on('online', function () {
+ offlineElement.slideUp();
+});
+external_jQuery_default()(document).ready(function () {
+ if (!offline) {
+ offlineElement.slideDown();
+ }
+}); // assume online if can't check
+
+/* harmony default export */ const offline = (typeof __webpack_require__.g.navigator.onLine !== 'undefined' ? __webpack_require__.g.navigator.onLine : true);
+;// CONCATENATED MODULE: external "GravAdmin"
+const external_GravAdmin_namespaceObject = GravAdmin;
+// EXTERNAL MODULE: ./node_modules/mout/string/trim.js
+var trim = __webpack_require__(78579);
+var trim_default = /*#__PURE__*/__webpack_require__.n(trim);
+;// CONCATENATED MODULE: ./app/utils/response.js
+
+
+
+
+
+var UNLOADING = false;
+
+var error = function error(response) {
+ var error = new Error(response.statusText || response || '');
+ error.response = response;
+ return error;
+};
+
+function parseStatus(response) {
+ return response;
+ /* Whoops can handle JSON responses so we don't need this for now.
+ if (response.status >= 200 && response.status < 300) {
+ return response;
+ } else {
+ throw error(response);
+ }
+ */
+}
+function parseJSON(response) {
+ return response.text().then(function (text) {
+ var parsed = text;
+
+ try {
+ parsed = JSON.parse(text);
+ } catch (error) {
+ var content = document.createElement('div');
+ content.innerHTML = text;
+ var the_error = new Error();
+ the_error.stack = trim_default()(content.innerText);
+ throw the_error;
+ }
+
+ return parsed;
+ });
+}
+function userFeedback(response) {
+ if (UNLOADING) {
+ return true;
+ }
+
+ var status = response.status || (response.error ? 'error' : '');
+ var message = response.message || (response.error ? response.error.message : null);
+ var settings = response.toastr || null;
+ var backup;
+
+ switch (status) {
+ case 'unauthenticated':
+ document.location.href = external_GravAdmin_namespaceObject.config.base_url_relative;
+ throw error('Logged out');
+
+ case 'unauthorized':
+ status = 'error';
+ message = message || 'Unauthorized.';
+ break;
+
+ case 'error':
+ status = 'error';
+ message = message || 'Unknown error.';
+ break;
+
+ case 'success':
+ status = 'success';
+ message = message || '';
+ break;
+
+ default:
+ status = 'error';
+ message = message || 'Invalid AJAX response.';
+ break;
+ }
+
+ if (settings) {
+ backup = Object.assign({}, utils_toastr.options);
+ Object.keys(settings).forEach(function (key) {
+ utils_toastr.options[key] = settings[key];
+ });
+ }
+
+ if (message && (offline || !offline && status !== 'error')) {
+ utils_toastr[status === 'success' ? 'success' : 'error'](message);
+ }
+
+ if (settings) {
+ utils_toastr.options = backup;
+ }
+
+ return response;
+}
+function userFeedbackError(error) {
+ if (UNLOADING) {
+ return true;
+ }
+
+ var stack = error.stack ? "
".concat(error.stack, "
") : '';
+ utils_toastr.error("Fetch Failed:
".concat(error.message, " ").concat(stack));
+ console.error("".concat(error.message, " at ").concat(error.stack));
+}
+external_jQuery_default()(__webpack_require__.g).on('beforeunload._ajax', function () {
+ UNLOADING = true;
+});
+// EXTERNAL MODULE: ./node_modules/events/events.js
+var events = __webpack_require__(17187);
+var events_default = /*#__PURE__*/__webpack_require__.n(events);
+;// CONCATENATED MODULE: ./app/utils/gpm.js
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
+
+function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
+
+function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
+
+function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
+
+function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
+
+function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
+
+
+
+
+
+var GPM = /*#__PURE__*/function (_EventEmitter) {
+ _inherits(GPM, _EventEmitter);
+
+ var _super = _createSuper(GPM);
+
+ function GPM() {
+ var _this;
+
+ var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'getUpdates';
+
+ _classCallCheck(this, GPM);
+
+ _this = _super.call(this);
+ _this.payload = {};
+ _this.raw = {};
+ _this.action = action;
+ return _this;
+ }
+
+ _createClass(GPM, [{
+ key: "setPayload",
+ value: function setPayload() {
+ var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+ this.payload = payload;
+ this.emit('payload', payload);
+ return this;
+ }
+ }, {
+ key: "setAction",
+ value: function setAction() {
+ var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'getUpdates';
+ this.action = action;
+ this.emit('action', action);
+ return this;
+ }
+ }, {
+ key: "fetch",
+ value: function (_fetch) {
+ function fetch() {
+ return _fetch.apply(this, arguments);
+ }
+
+ fetch.toString = function () {
+ return _fetch.toString();
+ };
+
+ return fetch;
+ }(function () {
+ var _this2 = this;
+
+ var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {
+ return true;
+ };
+ var flush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+ var data = new FormData();
+ data.append('admin-nonce', external_GravAdmin_namespaceObject.config.admin_nonce);
+
+ if (flush) {
+ data.append('flush', true);
+ }
+
+ this.emit('fetching', this);
+ fetch("".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/update.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "getUpdates"), {
+ credentials: 'same-origin',
+ method: 'post',
+ body: data
+ }).then(function (response) {
+ _this2.raw = response;
+ return response;
+ }).then(parseStatus).then(parseJSON).then(function (response) {
+ return _this2.response(response);
+ }).then(function (response) {
+ return callback(response, _this2.raw);
+ }).then(function (response) {
+ return _this2.emit('fetched', _this2.payload, _this2.raw, _this2);
+ })["catch"](userFeedbackError);
+ })
+ }, {
+ key: "response",
+ value: function response(_response) {
+ this.payload = _response;
+ return _response;
+ }
+ }]);
+
+ return GPM;
+}((events_default()));
+
+
+var Instance = new GPM();
+;// CONCATENATED MODULE: ./app/utils/keepalive.js
+function keepalive_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function keepalive_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function keepalive_createClass(Constructor, protoProps, staticProps) { if (protoProps) keepalive_defineProperties(Constructor.prototype, protoProps); if (staticProps) keepalive_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+var MAX_SAFE_DELAY = 2147483647;
+
+var KeepAlive = /*#__PURE__*/function () {
+ function KeepAlive() {
+ keepalive_classCallCheck(this, KeepAlive);
+
+ this.active = false;
+ }
+
+ keepalive_createClass(KeepAlive, [{
+ key: "start",
+ value: function start() {
+ var _this = this;
+
+ var timeout = external_GravAdmin_namespaceObject.config.admin_timeout / 1.5 * 1000;
+ this.timer = setInterval(function () {
+ return _this.fetch();
+ }, Math.min(timeout, MAX_SAFE_DELAY));
+ this.active = true;
+ }
+ }, {
+ key: "stop",
+ value: function stop() {
+ clearInterval(this.timer);
+ this.active = false;
+ }
+ }, {
+ key: "fetch",
+ value: function (_fetch) {
+ function fetch() {
+ return _fetch.apply(this, arguments);
+ }
+
+ fetch.toString = function () {
+ return _fetch.toString();
+ };
+
+ return fetch;
+ }(function () {
+ var data = new FormData();
+ data.append('admin-nonce', external_GravAdmin_namespaceObject.config.admin_nonce);
+ fetch("".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "keepAlive"), {
+ credentials: 'same-origin',
+ method: 'post',
+ body: data
+ })["catch"](userFeedbackError);
+ })
+ }]);
+
+ return KeepAlive;
+}();
+
+/* harmony default export */ const keepalive = (new KeepAlive());
+// EXTERNAL MODULE: ./node_modules/mout/array/unique.js
+var unique = __webpack_require__(79863);
+var unique_default = /*#__PURE__*/__webpack_require__.n(unique);
+;// CONCATENATED MODULE: ./app/utils/request.js
+
+
+var raw;
+
+var request = function request(url) {
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {
+ return true;
+ };
+
+ if (typeof options === 'function') {
+ callback = options;
+ options = {};
+ }
+
+ if (options.method && options.method === 'post') {
+ var data = new FormData();
+ options.body = Object.assign({
+ 'admin-nonce': external_GravAdmin_namespaceObject.config.admin_nonce
+ }, options.body || {});
+ Object.keys(options.body).map(function (key) {
+ return data.append(key, options.body[key]);
+ });
+ options.body = data;
+ }
+
+ options = Object.assign({
+ credentials: 'same-origin',
+ headers: {
+ 'Accept': 'application/json'
+ }
+ }, options);
+ return fetch(url, options).then(function (response) {
+ raw = response;
+ return response;
+ }).then(parseStatus).then(parseJSON).then(userFeedback).then(function (response) {
+ return callback(response, raw);
+ })["catch"](userFeedbackError);
+};
+
+/* harmony default export */ const utils_request = (request);
+;// CONCATENATED MODULE: ./app/updates/notifications.js
+function notifications_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function notifications_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function notifications_createClass(Constructor, protoProps, staticProps) { if (protoProps) notifications_defineProperties(Constructor.prototype, protoProps); if (staticProps) notifications_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+var canFetchNotifications = function canFetchNotifications() {
+ return external_GravAdmin_namespaceObject.config.notifications.enabled;
+};
+
+var notificationsFilters = function notificationsFilters() {
+ return external_GravAdmin_namespaceObject.config.notifications.filters;
+};
+
+var Notifications = /*#__PURE__*/function () {
+ function Notifications() {
+ notifications_classCallCheck(this, Notifications);
+ }
+
+ notifications_createClass(Notifications, [{
+ key: "fetch",
+ value: // Grav.default.Notifications.fetch()
+ function fetch() {
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+ _ref$filter = _ref.filter,
+ filter = _ref$filter === void 0 ? notificationsFilters() : _ref$filter,
+ _ref$refresh = _ref.refresh,
+ refresh = _ref$refresh === void 0 ? false : _ref$refresh;
+
+ if (!canFetchNotifications()) {
+ return false;
+ }
+
+ var feed = external_jQuery_default()('#notifications');
+ var loader = feed.find('.widget-loader');
+ var content = feed.find('.widget-content > ul');
+ loader.find('div').remove();
+ loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin');
+ loader.show();
+ content.hide();
+
+ var processNotifications = function processNotifications(response) {
+ var notifications = response.notifications;
+ external_jQuery_default()('#notifications').find('.widget-content > ul').empty();
+
+ if (notifications) {
+ Object.keys(notifications).forEach(function (location) {
+ return Notifications.processLocation(location, notifications[location]);
+ });
+ }
+ };
+
+ utils_request("".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "getNotifications"), {
+ method: 'post',
+ body: {
+ refresh: refresh,
+ filter: filter
+ }
+ }, function (response) {
+ processNotifications(response);
+ })["catch"](function () {
+ var widget = external_jQuery_default()('#notifications .widget-content');
+ widget.find('.widget-loader').find('div').remove();
+ widget.find('.widget-loader').append('
Failed to retrieve notifications
').find('.fa-spin').removeClass('fa-spin fa-refresh').addClass('fa-warning');
+ });
+ }
+ }], [{
+ key: "addShowAllInFeed",
+ value: function addShowAllInFeed() {
+ external_jQuery_default()('#notifications ul').append('
Show all');
+ }
+ }, {
+ key: "showNotificationInFeed",
+ value: function showNotificationInFeed(notification) {
+ var notifications = external_jQuery_default()('#notifications').removeClass('hidden');
+ var loader = notifications.find('.widget-loader').hide();
+ var content = notifications.find('.widget-content > ul').show();
+ loader.find('div').remove();
+ loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin');
+ content.append(notification).find('li:nth-child(n+11)').addClass('hidden'); // hide all items > 10
+
+ if (content.find('li.hidden').length) {
+ Notifications.addShowAllInFeed();
+ }
+ }
+ }, {
+ key: "showNotificationInTop",
+ value: function showNotificationInTop(notification) {
+ var container = external_jQuery_default()('.top-notifications-container');
+ var dummy = external_jQuery_default()('
').html(notification);
+ container.removeClass('hidden').append(dummy.children());
+ dummy.children().slideDown(150);
+ }
+ }, {
+ key: "showNotificationInDashboard",
+ value: function showNotificationInDashboard(notification) {
+ var container = external_jQuery_default()('.dashboard-notifications-container');
+ var dummy = external_jQuery_default()('
').html(notification);
+ container.removeClass('hidden').append(dummy.children());
+ dummy.children().slideDown(150);
+ }
+ }, {
+ key: "showNotificationInPlugins",
+ value: function showNotificationInPlugins(notification) {
+ var container = external_jQuery_default()('.plugins-notifications-container');
+ var dummy = external_jQuery_default()('
').html(notification);
+ container.removeClass('hidden').append(dummy.children());
+ dummy.children().slideDown(150);
+ }
+ }, {
+ key: "showNotificationInThemes",
+ value: function showNotificationInThemes(notification) {
+ var container = external_jQuery_default()('.themes-notifications-container');
+ var dummy = external_jQuery_default()('
').html(notification);
+ container.removeClass('hidden').append(dummy.children());
+ dummy.children().slideDown(150);
+ }
+ }, {
+ key: "processLocation",
+ value: function processLocation(location, notification) {
+ switch (location) {
+ case 'feed':
+ Notifications.showNotificationInFeed(notification);
+ break;
+
+ case 'top':
+ if (!notification.read) {
+ Notifications.showNotificationInTop(notification);
+ }
+
+ break;
+
+ case 'dashboard':
+ if (!notification.read) {
+ Notifications.showNotificationInDashboard(notification);
+ }
+
+ break;
+
+ case 'plugins':
+ if (!notification.read) {
+ Notifications.showNotificationInPlugins(notification);
+ }
+
+ break;
+
+ case 'themes':
+ if (!notification.read) {
+ Notifications.showNotificationInThemes(notification);
+ }
+
+ break;
+ }
+ }
+ }]);
+
+ return Notifications;
+}();
+
+var notifications = new Notifications();
+/* harmony default export */ const updates_notifications = (notifications);
+
+if (canFetchNotifications()) {
+ notifications.fetch();
+ /* Hide a notification and store it hidden */
+ //
+
+ external_jQuery_default()(document).on('click', '[data-notification-action="hide-notification"]', function (event) {
+ var notification_id = external_jQuery_default()(event.target).parents('.hide-notification').data('notification-id');
+ var url = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/notifications.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "hideNotification/notification_id").concat(external_GravAdmin_namespaceObject.config.param_sep).concat(notification_id);
+ utils_request(url, {
+ method: 'post'
+ }, function () {});
+ external_jQuery_default()(event.target).parents('.single-notification').hide();
+ });
+ external_jQuery_default()(document).on('click', '[data-notification-action="hide-notification"]', function (event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var notification = target.parent();
+ notification.slideUp(function () {
+ return notification.remove();
+ });
+ });
+ external_jQuery_default()(document).on('click', '[data-notification-action="show-all-notifications"]', function (event) {
+ external_jQuery_default()('#notifications .show-all').hide();
+ external_jQuery_default()('#notifications .hidden').removeClass('hidden');
+ });
+ external_jQuery_default()(document).on('click', '[data-refresh="notifications"]', function (event) {
+ event.preventDefault();
+ notifications.fetch({
+ filter: ['feed'],
+ refresh: true
+ });
+ });
+}
+;// CONCATENATED MODULE: ./app/updates/feed.js
+function feed_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function feed_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function feed_createClass(Constructor, protoProps, staticProps) { if (protoProps) feed_defineProperties(Constructor.prototype, protoProps); if (staticProps) feed_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+var URI = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/ajax.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "getNewsFeed");
+
+var Feed = /*#__PURE__*/function () {
+ function Feed() {
+ feed_classCallCheck(this, Feed);
+
+ this.data = null;
+ }
+
+ feed_createClass(Feed, [{
+ key: "fetch",
+ value: function fetch() {
+ var _this = this;
+
+ var refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+ var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
+ utils_request(URI, {
+ method: 'post',
+ body: {
+ refresh: refresh
+ }
+ }, function (response) {
+ _this.data = response;
+ callback(response);
+ });
+ }
+ }, {
+ key: "refresh",
+ value: function refresh() {
+ var _refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+
+ var feed = external_jQuery_default()('#news-feed .widget-content');
+
+ if (!feed.length) {
+ return;
+ }
+
+ var loader = feed.find('.widget-loader');
+ loader.find('div').remove();
+ loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin');
+ loader.show();
+ feed.find('> ul').hide();
+
+ if (!this.data || this.data.error || _refresh) {
+ this.fetch(_refresh, this.updateContent.bind(this));
+ } else {
+ this.updateContent();
+ }
+ }
+ }, {
+ key: "updateContent",
+ value: function updateContent() {
+ var feed = external_jQuery_default()('#news-feed .widget-content');
+
+ if (!feed.length) {
+ return;
+ }
+
+ var loader = feed.find('.widget-loader').hide();
+ var content = feed.find('> ul').empty().show();
+
+ if (this.data.error || this.data.status === 'error') {
+ loader.show().find('div').remove();
+ loader.find('.fa-refresh').removeClass('fa-refresh fa-spin').addClass('fa-warning');
+ loader.append("
".concat(this.data.error ? this.data.error.message : this.data.message || 'Unable to download news feed', "
"));
+ return;
+ }
+
+ if (this.data && this.data.feed_data) {
+ content.append(this.data.feed_data);
+ }
+ }
+ }]);
+
+ return Feed;
+}();
+
+var feed = new Feed();
+external_jQuery_default()(document).ready(function () {
+ return feed.refresh();
+});
+external_jQuery_default()(document).on('click', '[data-refresh="feed"]', function (event) {
+ event.preventDefault();
+ feed.refresh(true);
+});
+/* harmony default export */ const updates_feed = (feed);
+;// CONCATENATED MODULE: ./app/updates/check.js
+
+
+
+ // Check for updates trigger
+
+external_jQuery_default()('[data-gpm-checkupdates]').on('click', function () {
+ var element = external_jQuery_default()(this);
+ element.find('i').addClass('fa-spin');
+ Instance.fetch(function (response) {
+ element.find('i').removeClass('fa-spin');
+ var payload = response.payload;
+
+ if (!payload) {
+ return;
+ }
+
+ if (!payload.grav.isUpdatable && !payload.resources.total) {
+ utils_toastr.success(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.EVERYTHING_UP_TO_DATE);
+ } else {
+ var grav = payload.grav.isUpdatable ? 'Grav v' + payload.grav.available : '';
+ var resources = payload.resources.total ? payload.resources.total + ' ' + external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UPDATES_ARE_AVAILABLE : '';
+
+ if (!resources) {
+ grav += ' ' + external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.IS_AVAILABLE_FOR_UPDATE;
+ }
+
+ utils_toastr.info(grav + (grav && resources ? ' ' + external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.AND + ' ' : '') + resources);
+ }
+ }, true);
+});
+;// CONCATENATED MODULE: ./app/utils/formatbytes.js
+var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
+function formatBytes(bytes, decimals) {
+ if (bytes === 0) return '0 Byte';
+ var k = 1000;
+ var value = Math.floor(Math.log(bytes) / Math.log(k));
+ var decimal = decimals + 1 || 3;
+ return (bytes / Math.pow(k, value)).toPrecision(decimal) + ' ' + sizes[value];
+}
+;// CONCATENATED MODULE: ./app/updates/update.js
+
+
+
+
+ // Dashboard update and Grav update
+
+external_jQuery_default()(document).on('click.remodal', '[data-remodal-id="update-grav"] [data-remodal-action="confirm"]', function () {
+ var element = external_jQuery_default()('#grav-update-button');
+ element.html("".concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UPDATING_PLEASE_WAIT, " ").concat(formatBytes(updates_Instance.payload.grav.assets["grav-update"].size), ".."));
+ element.attr('disabled', 'disabled').find('> .fa').removeClass('fa-cloud-download').addClass('fa-refresh fa-spin');
+ utils_request(updates_Instance.updateURL, function (response) {
+ if (response.type === 'updategrav') {
+ external_jQuery_default()('[data-gpm-grav]').remove();
+ external_jQuery_default()('#footer .grav-version').html(response.version);
+ }
+
+ element.removeAttr('disabled').find('> .fa').removeClass('fa-refresh fa-spin').addClass('fa-cloud-download');
+ });
+});
+;// CONCATENATED MODULE: ./app/updates/channel-switcher.js
+
+
+var switcher = external_jQuery_default()('input[type="radio"][name="channel-switch"]');
+
+if (switcher) {
+ switcher.on('change', function (event) {
+ var radio = external_jQuery_default()(event.target);
+ var url = "".concat(radio.parent('[data-url]').data('url'));
+ utils_request(url, {
+ method: 'post',
+ body: {
+ task: 'gpmRelease',
+ release: radio.val()
+ }
+ }, function (response) {
+ if (response.reload) {
+ __webpack_require__.g.location.reload();
+ }
+ });
+ });
+}
+;// CONCATENATED MODULE: ./app/updates/index.js
+function updates_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function updates_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function updates_createClass(Constructor, protoProps, staticProps) { if (protoProps) updates_defineProperties(Constructor.prototype, protoProps); if (staticProps) updates_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+
+
+
+
+
+
+var Updates = /*#__PURE__*/function () {
+ function Updates() {
+ var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+ updates_classCallCheck(this, Updates);
+
+ this.setPayload(payload);
+ this.task = "task".concat(external_GravAdmin_namespaceObject.config.param_sep);
+ this.updateURL = '';
+ }
+
+ updates_createClass(Updates, [{
+ key: "setPayload",
+ value: function setPayload() {
+ var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+ this.payload = payload;
+ return this;
+ }
+ }, {
+ key: "fetch",
+ value: function fetch() {
+ var _this = this;
+
+ var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+ Instance.fetch(function (response) {
+ return _this.setPayload(response);
+ }, force);
+ return this;
+ }
+ }, {
+ key: "maintenance",
+ value: function maintenance() {
+ var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'hide';
+ var element = external_jQuery_default()('#updates [data-update-packages]');
+ element[mode === 'show' ? 'fadeIn' : 'fadeOut']();
+
+ if (mode === 'hide') {
+ external_jQuery_default()('.badges.with-updates').removeClass('with-updates').find('.badge.updates').remove();
+ }
+
+ return this;
+ }
+ }, {
+ key: "grav",
+ value: function grav() {
+ var payload = this.payload.grav;
+
+ if (payload && payload.isUpdatable) {
+ var task = this.task;
+ var bar = '';
+
+ if (!payload.isSymlink) {
+ this.updateURL = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/update.json/").concat(task, "updategrav/admin-nonce").concat(external_GravAdmin_namespaceObject.config.param_sep).concat(external_GravAdmin_namespaceObject.config.admin_nonce);
+ bar += "
");
+ } else {
+ bar += "
");
+ }
+
+ bar += "\n Grav
v".concat(payload.available, " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.IS_NOW_AVAILABLE, "!
(").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.CURRENT, " v").concat(payload.version, ")\n ");
+ var element = external_jQuery_default()('[data-gpm-grav]').removeClass('hidden');
+
+ if (element.is(':empty')) {
+ element.hide();
+ }
+
+ element.addClass('grav').html("".concat(bar)).slideDown(150, function () {
+ var c = 5;
+ var x = setInterval(function () {
+ c -= 1;
+ element.find('.pointer-events-none .cnt-down').text('(' + c + 's)');
+ }, 1000);
+ setTimeout(function () {
+ clearInterval(x);
+ element.find('.pointer-events-none .cnt-down').remove();
+ element.find('.pointer-events-none').removeClass('pointer-events-none');
+ }, 5000);
+ }).parent('#messages').addClass('default-box-shadow');
+ }
+
+ return this;
+ }
+ }, {
+ key: "resources",
+ value: function resources() {
+ if (!this.payload || !this.payload.resources || !this.payload.resources.total) {
+ return this.maintenance('hide');
+ }
+
+ var is_current_package_latest = true;
+ var map = ['plugins', 'themes'];
+ var singles = ['plugin', 'theme'];
+ var _this$payload$resourc = this.payload.resources,
+ plugins = _this$payload$resourc.plugins,
+ themes = _this$payload$resourc.themes;
+
+ if (!this.payload.resources.total) {
+ return this;
+ }
+
+ [plugins, themes].forEach(function (resources, index) {
+ if (!resources || Array.isArray(resources)) {
+ return;
+ }
+
+ var length = Object.keys(resources).length;
+ var type = map[index]; // sidebar
+
+ external_jQuery_default()("#admin-menu a[href$=\"/".concat(map[index], "\"]")).find('.badges').addClass('with-updates').find('.badge.updates').text(length);
+ var type_translation = ''; // update all
+
+ if (type === 'plugins') {
+ type_translation = external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.PLUGINS;
+ } else {
+ type_translation = external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.THEMES;
+ }
+
+ var updateAll = external_jQuery_default()(".grav-update.".concat(type));
+ updateAll.css('display', 'block').html("\n
\n ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UPDATE, " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.ALL, " ").concat(type_translation, "\n \n ").concat(length, " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.OF_YOUR, " ").concat(type_translation.toLowerCase(), " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.HAVE_AN_UPDATE_AVAILABLE, "\n
\n "));
+ var existing_slugs = external_jQuery_default()('[data-update-packages]').attr('data-packages-slugs') || '';
+
+ if (existing_slugs) {
+ existing_slugs = existing_slugs.split(',');
+ } else {
+ existing_slugs = [];
+ }
+
+ var slugs = unique_default()(existing_slugs.concat(Object.keys(resources))).join();
+ external_jQuery_default()('[data-update-packages]').attr('data-packages-slugs', "".concat(slugs));
+ Object.keys(resources).forEach(function (item) {
+ // listing page
+ var container = external_jQuery_default()("[data-gpm-".concat(singles[index], "=\"").concat(item, "\"]"));
+ var element = container.find('.gpm-name');
+ var url = element.find('a');
+ var content_wrapper = container.parents('.content-wrapper');
+
+ if (type === 'plugins' && !element.find('.badge.update').length) {
+ element.append("
").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UPDATE_AVAILABLE, "!"));
+ content_wrapper.addClass('has-updates');
+ } else if (type === 'themes') {
+ element.append("
"));
+ content_wrapper.addClass('has-updates');
+ } // details page
+
+
+ if (container.length) {
+ var details = external_jQuery_default()(".grav-update.".concat(singles[index]));
+
+ if (details.length) {
+ var releaseType = resources[item].type === 'testing' ? '
test release' : '';
+ details.html("\n
\n ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UPDATE, " ").concat(singles[index].charAt(0).toUpperCase() + singles[index].substr(1).toLowerCase(), "\n \n v").concat(resources[item].available, " ").concat(releaseType, " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.OF_THIS, " ").concat(singles[index], " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.IS_NOW_AVAILABLE, "!\n
\n ")).css('display', 'block');
+ is_current_package_latest = false;
+ }
+ }
+ });
+ external_jQuery_default()('[data-update-packages]').removeClass('hidden');
+ });
+ external_jQuery_default()('.content-wrapper').addClass('updates-checked');
+
+ if (!is_current_package_latest) {
+ external_jQuery_default()('.warning-reinstall-not-latest-release').removeClass('hidden');
+ }
+ }
+ }]);
+
+ return Updates;
+}();
+
+
+var updates_Instance = new Updates();
+ // automatically refresh UI for updates (graph, sidebar, plugin/themes pages) after every fetch
+
+Instance.on('fetched', function (response, raw) {
+ updates_Instance.setPayload(response.payload || {});
+ updates_Instance.grav().resources();
+});
+
+if (external_GravAdmin_namespaceObject.config.enable_auto_updates_check === '1') {
+ Instance.fetch();
+}
+// EXTERNAL MODULE: ./node_modules/chartist/dist/chartist.js
+var chartist = __webpack_require__(69259);
+var chartist_default = /*#__PURE__*/__webpack_require__.n(chartist);
+;// CONCATENATED MODULE: ./app/dashboard/chart.js
+function chart_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { chart_typeof = function _typeof(obj) { return typeof obj; }; } else { chart_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return chart_typeof(obj); }
+
+function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
+
+function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = chart_getPrototypeOf(object); if (object === null) break; } return object; }
+
+function chart_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) chart_setPrototypeOf(subClass, superClass); }
+
+function chart_setPrototypeOf(o, p) { chart_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return chart_setPrototypeOf(o, p); }
+
+function chart_createSuper(Derived) { var hasNativeReflectConstruct = chart_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = chart_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = chart_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return chart_possibleConstructorReturn(this, result); }; }
+
+function chart_possibleConstructorReturn(self, call) { if (call && (chart_typeof(call) === "object" || typeof call === "function")) { return call; } return chart_assertThisInitialized(self); }
+
+function chart_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
+
+function chart_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
+
+function chart_getPrototypeOf(o) { chart_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return chart_getPrototypeOf(o); }
+
+function chart_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function chart_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function chart_createClass(Constructor, protoProps, staticProps) { if (protoProps) chart_defineProperties(Constructor.prototype, protoProps); if (staticProps) chart_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+ // let isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
+
+var defaults = {
+ data: {
+ series: [100, 0]
+ },
+ options: {
+ Pie: {
+ donut: true,
+ donutWidth: 10,
+ startAngle: 0,
+ total: 100,
+ showLabel: false,
+ height: 150,
+ // chartPadding: !isFirefox ? 10 : 25 // workaround for older versions of firefox
+ chartPadding: 5
+ },
+ Bar: {
+ height: 164,
+ chartPadding: 20,
+ // workaround for older versions of firefox
+ axisX: {
+ showGrid: false,
+ labelOffset: {
+ x: 0,
+ y: 0
+ }
+ },
+ axisY: {
+ offset: 15,
+ showLabel: true,
+ showGrid: true,
+ labelOffset: {
+ x: 5,
+ y: 5
+ },
+ scaleMinSpace: 25
+ }
+ }
+ }
+};
+
+var Chart = /*#__PURE__*/function () {
+ function Chart(element) {
+ var _this = this;
+
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+
+ chart_classCallCheck(this, Chart);
+
+ this.element = external_jQuery_default()(element) || [];
+
+ if (!this.element[0]) {
+ return;
+ }
+
+ var type = (this.element.data('chart-type') || 'pie').toLowerCase();
+ this.type = type.charAt(0).toUpperCase() + type.substr(1).toLowerCase();
+ options = Object.assign({}, defaults.options[this.type], options);
+ data = Object.assign({}, defaults.data, data);
+ Object.assign(this, {
+ options: options,
+ data: data
+ });
+ this.chart = (chartist_default())[this.type](this.element.find('.ct-chart').empty()[0], this.data, this.options);
+ this.chart.on('created', function () {
+ _this.element.find('.hidden').removeClass('hidden'); // FIX: workaround for chartist issue not allowing HTML in labels anymore
+ // https://github.com/gionkunz/chartist-js/issues/937
+
+
+ _this.element.find('.ct-label').each(function (index, label) {
+ label = external_jQuery_default()(label);
+ var text = label.html().replace('<', '<').replace('>', '>');
+ label.html(text);
+ });
+ });
+ }
+
+ chart_createClass(Chart, [{
+ key: "updateData",
+ value: function updateData(data) {
+ Object.assign(this.data, data);
+ this.chart.update(this.data);
+ }
+ }]);
+
+ return Chart;
+}();
+
+
+;
+var UpdatesChart = /*#__PURE__*/function (_Chart) {
+ chart_inherits(UpdatesChart, _Chart);
+
+ var _super = chart_createSuper(UpdatesChart);
+
+ function UpdatesChart(element) {
+ var _this2;
+
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+
+ chart_classCallCheck(this, UpdatesChart);
+
+ _this2 = _super.call(this, element, options, data);
+
+ _this2.chart.on('draw', function (data) {
+ return _this2.draw(data);
+ });
+
+ Instance.on('fetched', function (response) {
+ if (!response.payload) {
+ return;
+ }
+
+ var payload = response.payload.grav;
+ var missing = (response.payload.resources.total + (payload.isUpdatable ? 1 : 0)) * 100 / (response.payload.installed + (payload.isUpdatable ? 1 : 0));
+ var updated = 100 - missing;
+
+ _this2.updateData({
+ series: [updated, missing]
+ });
+
+ if (response.payload.resources.total) {
+ updates_Instance.maintenance('show');
+ }
+ });
+ return _this2;
+ }
+
+ chart_createClass(UpdatesChart, [{
+ key: "draw",
+ value: function draw(data) {
+ if (data.index) {
+ return;
+ }
+
+ var notice = external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN[data.value === 100 ? 'FULLY_UPDATED' : 'UPDATES_AVAILABLE'];
+ this.element.find('.numeric span').text("".concat(Math.round(data.value), "%"));
+ this.element.find('.js__updates-available-description').html(notice);
+ this.element.find('.hidden').removeClass('hidden');
+ }
+ }, {
+ key: "updateData",
+ value: function updateData(data) {
+ _get(chart_getPrototypeOf(UpdatesChart.prototype), "updateData", this).call(this, data); // missing updates
+
+
+ if (this.data.series[0] < 100) {
+ this.element.closest('#updates').find('[data-update-packages]').fadeIn();
+ }
+ }
+ }]);
+
+ return UpdatesChart;
+}(Chart);
+var charts = {};
+external_jQuery_default()('[data-chart-name]').each(function () {
+ var element = external_jQuery_default()(this);
+ var name = element.data('chart-name') || '';
+ var options = element.data('chart-options') || {};
+ var data = element.data('chart-data') || {};
+
+ if (name === 'updates') {
+ charts[name] = new UpdatesChart(element, options, data);
+ } else {
+ charts[name] = new Chart(element, options, data);
+ }
+});
+var Instances = charts;
+;// CONCATENATED MODULE: ./app/dashboard/cache.js
+function cache_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function cache_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function cache_createClass(Constructor, protoProps, staticProps) { if (protoProps) cache_defineProperties(Constructor.prototype, protoProps); if (staticProps) cache_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+var getUrl = function getUrl() {
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
+
+ if (type) {
+ type = "cleartype:".concat(type, "/");
+ }
+
+ return "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/cache.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "clearCache/").concat(type, "admin-nonce").concat(external_GravAdmin_namespaceObject.config.param_sep).concat(external_GravAdmin_namespaceObject.config.admin_nonce);
+};
+
+var Cache = /*#__PURE__*/function () {
+ function Cache() {
+ var _this = this;
+
+ cache_classCallCheck(this, Cache);
+
+ this.element = external_jQuery_default()('[data-clear-cache]');
+ external_jQuery_default()('body').on('click', '[data-clear-cache]', function (event) {
+ return _this.clear(event, event.target);
+ });
+ }
+
+ cache_createClass(Cache, [{
+ key: "clear",
+ value: function clear(event, element) {
+ var _this2 = this;
+
+ var type = '';
+
+ if (event && event.preventDefault) {
+ event.preventDefault();
+ }
+
+ if (typeof event === 'string') {
+ type = event;
+ }
+
+ element = element ? external_jQuery_default()(element) : external_jQuery_default()("[data-clear-cache-type=\"".concat(type, "\"]"));
+ type = type || external_jQuery_default()(element).data('clear-cache-type') || '';
+ var url = element.data('clearCache') || getUrl(type);
+ this.disable();
+ utils_request(url, function () {
+ return _this2.enable();
+ });
+ }
+ }, {
+ key: "enable",
+ value: function enable() {
+ this.element.removeAttr('disabled').find('> .fa').removeClass('fa-refresh fa-spin fa-retweet').addClass('fa-retweet');
+ }
+ }, {
+ key: "disable",
+ value: function disable() {
+ this.element.attr('disabled', 'disabled').find('> .fa').removeClass('fa-retweet').addClass('fa-refresh fa-spin');
+ }
+ }]);
+
+ return Cache;
+}();
+
+
+var cache_Instance = new Cache();
+
+;// CONCATENATED MODULE: ./app/dashboard/backup.js
+
+
+
+
+external_jQuery_default()('[data-backup][data-ajax*="backup/"]').on('click', function () {
+ var element = external_jQuery_default()(this);
+ var url = element.data('ajax');
+ var inDropdown = element.closest('.dropdown-menu');
+ (inDropdown.length ? inDropdown : element).closest('.button-group').find('> button:first').attr('disabled', 'disabled').find('> .fa').removeClass('fa-life-ring').addClass('fa-spin fa-refresh');
+ utils_request(url, function ()
+ /* response */
+ {
+ if (Instances && Instances.backups) {
+ Instances.backups.updateData({
+ series: [0, 100]
+ });
+ Instances.backups.element.find('.numeric').html("0
".concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DAYS.toLowerCase(), ""));
+ }
+
+ (inDropdown.length ? inDropdown : element).closest('.button-group').find('> button:first').removeAttr('disabled').find('> .fa').removeClass('fa-spin fa-refresh').addClass('fa-life-ring');
+ });
+});
+external_jQuery_default()('[data-backup][data-ajax*="backupDelete"]').on('click', function () {
+ var element = external_jQuery_default()(this);
+ var url = element.data('ajax');
+ var tr = element.closest('tr');
+ tr.addClass('deleting');
+ utils_request(url, function (response) {
+ if (response.status === 'success') {
+ tr.remove();
+ } else {
+ tr.removeClass('deleting');
+ }
+ });
+});
+;// CONCATENATED MODULE: ./app/dashboard/index.js
+
+
+
+/* harmony default export */ const dashboard = ({
+ Chart: {
+ Chart: Chart,
+ UpdatesChart: UpdatesChart,
+ Instances: Instances
+ },
+ Cache: cache_Instance
+});
+// EXTERNAL MODULE: ./node_modules/sortablejs/modular/sortable.esm.js
+var sortable_esm = __webpack_require__(51474);
+// EXTERNAL MODULE: ./node_modules/debounce/index.js
+var debounce = __webpack_require__(20296);
+var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce);
+// EXTERNAL MODULE: ./app/utils/storage.js
+var storage = __webpack_require__(92511);
+;// CONCATENATED MODULE: ./app/pages/tree.js
+function tree_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function tree_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function tree_createClass(Constructor, protoProps, staticProps) { if (protoProps) tree_defineProperties(Constructor.prototype, protoProps); if (staticProps) tree_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+var sessionKey = 'grav:admin:pages';
+
+if (!sessionStorage.getItem(sessionKey)) {
+ sessionStorage.setItem(sessionKey, '{}');
+}
+
+var PagesTree = /*#__PURE__*/function () {
+ function PagesTree(query) {
+ var _this = this;
+
+ var elements = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
+
+ tree_classCallCheck(this, PagesTree);
+
+ this.query = query;
+ this.elements = external_jQuery_default()(elements !== undefined ? elements : this.query);
+ this.session = JSON.parse(sessionStorage.getItem(sessionKey) || '{}');
+
+ if (!this.elements.length) {
+ return;
+ }
+
+ this.restore();
+ this.elements.find('.page-icon').on('click', function (event) {
+ return _this.toggle(event.target);
+ });
+ this.elements.data('tree_init', 1);
+ external_jQuery_default()('[data-page-toggleall]').on('click', function (event) {
+ var element = external_jQuery_default()(event.target).closest('[data-page-toggleall]');
+ var action = element.data('page-toggleall');
+
+ _this[action]();
+ });
+ }
+
+ tree_createClass(PagesTree, [{
+ key: "reload",
+ value: function reload() {
+ var elements = external_jQuery_default()(this.query).filter(function (index, element) {
+ return !external_jQuery_default()(element).data('tree_init');
+ });
+
+ if (!elements.length) {
+ return;
+ }
+
+ this.constructor(this.query, elements);
+ }
+ }, {
+ key: "toggle",
+ value: function toggle(elements) {
+ var _this2 = this;
+
+ var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+ if (typeof elements === 'string') {
+ elements = external_jQuery_default()("[data-nav-id=\"".concat(elements, "\"]")).find('[data-toggle="children"]');
+ }
+
+ elements = external_jQuery_default()(elements || this.elements);
+ elements.each(function (index, element) {
+ element = external_jQuery_default()(element);
+
+ var state = _this2.getState(element.closest('[data-toggle="children"]'));
+
+ _this2[state.isOpen ? 'collapse' : 'expand'](state.id, dontStore);
+ });
+ }
+ }, {
+ key: "collapse",
+ value: function collapse(elements) {
+ var _this3 = this;
+
+ var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+ if (typeof elements === 'string') {
+ elements = external_jQuery_default()("[data-nav-id=\"".concat(elements, "\"]")).find('[data-toggle="children"]');
+ }
+
+ elements = external_jQuery_default()(elements || this.elements);
+ elements.each(function (index, element) {
+ element = external_jQuery_default()(element);
+
+ var state = _this3.getState(element);
+
+ if (state.isOpen) {
+ state.children.hide();
+ state.icon.removeClass('children-open').addClass('children-closed');
+
+ if (!dontStore) {
+ delete _this3.session[state.id];
+ }
+ }
+ });
+
+ if (!dontStore) {
+ this.save();
+ }
+ }
+ }, {
+ key: "expand",
+ value: function expand(elements) {
+ var _this4 = this;
+
+ var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+ if (typeof elements === 'string') {
+ var element = external_jQuery_default()("[data-nav-id=\"".concat(elements, "\"]"));
+ var parents = element.parents('[data-nav-id]'); // loop back through parents, we don't want to expand an hidden child
+
+ if (parents.length) {
+ parents = parents.find('[data-toggle="children"]:first');
+ parents = parents.add(element.find('[data-toggle="children"]:first'));
+ return this.expand(parents, dontStore);
+ }
+
+ elements = element.find('[data-toggle="children"]:first');
+ }
+
+ elements = external_jQuery_default()(elements || this.elements);
+ elements.each(function (index, element) {
+ element = external_jQuery_default()(element);
+
+ var state = _this4.getState(element);
+
+ if (!state.isOpen) {
+ state.children.show();
+ state.icon.removeClass('children-closed').addClass('children-open');
+
+ if (!dontStore) {
+ _this4.session[state.id] = 1;
+ }
+ }
+ });
+
+ if (!dontStore) {
+ this.save();
+ }
+ }
+ }, {
+ key: "restore",
+ value: function restore() {
+ var _this5 = this;
+
+ this.collapse(null, true);
+ Object.keys(this.session).forEach(function (key) {
+ _this5.expand(key, 'no-store');
+ });
+ }
+ }, {
+ key: "save",
+ value: function save() {
+ return sessionStorage.setItem(sessionKey, JSON.stringify(this.session));
+ }
+ }, {
+ key: "getState",
+ value: function getState(element) {
+ element = external_jQuery_default()(element);
+ return {
+ id: element.closest('[data-nav-id]').data('nav-id'),
+ children: element.closest('li.page-item').find('ul:first'),
+ icon: element.find('.page-icon'),
+
+ get isOpen() {
+ return this.icon.hasClass('children-open');
+ }
+
+ };
+ }
+ }]);
+
+ return PagesTree;
+}();
+
+
+var tree_Instance = new PagesTree('[data-toggle="children"]');
+
+// EXTERNAL MODULE: ./node_modules/selectize/dist/js/selectize.js
+var selectize = __webpack_require__(25703);
+var selectize_default = /*#__PURE__*/__webpack_require__.n(selectize);
+;// CONCATENATED MODULE: ./app/utils/selectize-required-fix.js
+/**
+ * This is a plugin to override the `.refreshValidityState` method of
+ * the Selectize library (https://selectize.github.io/selectize.js/).
+ * The library is not maintained anymore (as of 2017-09-13) and contains
+ * a bug which causes Microsoft Edge to not work with selectized [required]
+ * form fields. This plugin should be removed if
+ * https://github.com/selectize/selectize.js/pull/1320 is ever merged
+ * and a new version of Selectize gets released.
+ */
+
+selectize_default().define('required-fix', function (options) {
+ var _this = this;
+
+ this.refreshValidityState = function () {
+ if (!_this.isRequired) return false;
+ var invalid = !_this.items.length;
+ _this.isInvalid = invalid;
+
+ if (invalid) {
+ _this.$control_input.attr('required', '');
+
+ _this.$input.removeAttr('required');
+ } else {
+ _this.$control_input.removeAttr('required');
+
+ _this.$input.attr('required');
+ }
+ };
+});
+;// CONCATENATED MODULE: ./app/pages/filter.js
+function filter_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { filter_typeof = function _typeof(obj) { return typeof obj; }; } else { filter_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return filter_typeof(obj); }
+
+function filter_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function filter_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function filter_createClass(Constructor, protoProps, staticProps) { if (protoProps) filter_defineProperties(Constructor.prototype, protoProps); if (staticProps) filter_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+
+
+
+
+/* @formatter:off */
+
+/* eslint-disable */
+
+var options = [{
+ flag: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.MODULE,
+ key: 'Module',
+ cat: 'mode'
+}, {
+ flag: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.VISIBLE,
+ key: 'Visible',
+ cat: 'mode'
+}, {
+ flag: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.ROUTABLE,
+ key: 'Routable',
+ cat: 'mode'
+}, {
+ flag: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.PUBLISHED,
+ key: 'Published',
+ cat: 'mode'
+}, {
+ flag: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.NON_MODULE,
+ key: 'NonModule',
+ cat: 'mode'
+}, {
+ flag: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.NON_VISIBLE,
+ key: 'NonVisible',
+ cat: 'mode'
+}, {
+ flag: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.NON_ROUTABLE,
+ key: 'NonRoutable',
+ cat: 'mode'
+}, {
+ flag: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.NON_PUBLISHED,
+ key: 'NonPublished',
+ cat: 'mode'
+}];
+/* @formatter:on */
+
+/* eslint-enable */
+
+var PagesFilter = /*#__PURE__*/function () {
+ function PagesFilter(filters, search) {
+ var _this = this;
+
+ filter_classCallCheck(this, PagesFilter);
+
+ this.filters = external_jQuery_default()(filters);
+ this.search = external_jQuery_default()(search);
+ this.options = options;
+ this.tree = tree_Instance;
+ var storage = JSON.parse(localStorage.getItem('grav:admin:pages:filter') || '{}');
+
+ if (!this.filters.length || !this.search.length) {
+ return;
+ }
+
+ this.labels = this.filters.data('filter-labels');
+ this.search.on('input', debounce_default()(function () {
+ return _this.filter();
+ }, 250));
+ this.filters.on('change', function () {
+ return _this.filter();
+ }); // restore state
+
+ if (storage.flags || storage.query) {
+ this.setValues(storage);
+ this.filter();
+ }
+
+ this._initSelectize();
+ }
+
+ filter_createClass(PagesFilter, [{
+ key: "filter",
+ value: function filter(value) {
+ var _this2 = this;
+
+ var data = {
+ flags: '',
+ query: ''
+ };
+
+ if (filter_typeof(value) === 'object') {
+ Object.assign(data, value);
+ }
+
+ if (typeof value === 'string') {
+ data.query = value;
+ }
+
+ if (typeof value === 'undefined') {
+ data.flags = this.filters.val();
+ data.query = this.search.val();
+ }
+
+ if (!Object.keys(data).filter(function (key) {
+ return data[key] !== '';
+ }).length) {
+ this.resetValues();
+ return;
+ }
+
+ data.flags = data.flags.replace(/(\s{1,})?,(\s{1,})?/g, ',');
+ this.setValues({
+ flags: data.flags,
+ query: data.query
+ }, 'silent');
+ utils_request("".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/pages-filter.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "filterPages"), {
+ method: 'post',
+ body: data
+ }, function (response) {
+ _this2.refreshDOM(response);
+ });
+ }
+ }, {
+ key: "refreshDOM",
+ value: function refreshDOM(response) {
+ var _this3 = this;
+
+ var items = external_jQuery_default()('[data-nav-id]');
+
+ if (!response) {
+ items.removeClass('search-match').show();
+ this.tree.restore();
+ return;
+ }
+
+ items.removeClass('search-match').hide();
+ response.results.forEach(function (page) {
+ var match = items.filter("[data-nav-id=\"".concat(page, "\"]")).addClass('search-match').show();
+ match.parents('[data-nav-id]').addClass('search-match').show();
+
+ _this3.tree.expand(page, 'no-store');
+ });
+ }
+ }, {
+ key: "setValues",
+ value: function setValues(_ref, silent) {
+ var _ref$flags = _ref.flags,
+ flags = _ref$flags === void 0 ? '' : _ref$flags,
+ _ref$query = _ref.query,
+ query = _ref$query === void 0 ? '' : _ref$query;
+ var flagsArray = flags.replace(/(\s{1,})?,(\s{1,})?/g, ',').split(',');
+
+ if (this.filters.val() !== flags) {
+ var selectize = this.filters.data('selectize');
+ this.filters[selectize ? 'setValue' : 'val'](flagsArray, silent);
+ }
+
+ if (this.search.val() !== query) {
+ this.search.val(query);
+ }
+
+ localStorage.setItem('grav:admin:pages:filter', JSON.stringify({
+ flags: flags,
+ query: query
+ }));
+ }
+ }, {
+ key: "resetValues",
+ value: function resetValues() {
+ this.setValues('', 'silent');
+ this.refreshDOM();
+ }
+ }, {
+ key: "_initSelectize",
+ value: function _initSelectize() {
+ var _this4 = this;
+
+ var extras = {
+ type: this.filters.data('filter-types') || {},
+ access: this.filters.data('filter-access-levels') || {}
+ };
+ Object.keys(extras).forEach(function (cat) {
+ Object.keys(extras[cat]).forEach(function (key) {
+ _this4.options.push({
+ cat: cat,
+ key: key,
+ flag: extras[cat][key]
+ });
+ });
+ });
+ this.filters.selectize({
+ maxItems: null,
+ valueField: 'key',
+ labelField: 'flag',
+ searchField: ['flag', 'key'],
+ options: this.options,
+ optgroups: this.labels,
+ optgroupField: 'cat',
+ optgroupLabelField: 'name',
+ optgroupValueField: 'id',
+ optgroupOrder: this.labels.map(function (item) {
+ return item.id;
+ }),
+ plugins: ['optgroup_columns', 'required-fix']
+ });
+ }
+ }]);
+
+ return PagesFilter;
+}();
+
+
+var filter_Instance = new PagesFilter('input[name="page-filter"]', 'input[name="page-search"]');
+
+// EXTERNAL MODULE: ./node_modules/speakingurl/index.js
+var speakingurl = __webpack_require__(989);
+var speakingurl_default = /*#__PURE__*/__webpack_require__.n(speakingurl);
+;// CONCATENATED MODULE: ./app/utils/jquery-utils.js
+var _this = undefined;
+
+
+ // jQuery no parents filter
+
+(external_jQuery_default()).expr[":"].noparents = external_jQuery_default().expr.createPseudo(function (text) {
+ return function (element) {
+ return external_jQuery_default()(element).parents(text).length < 1;
+ };
+}); // Slugify
+// CommonJS and ES6 version of https://github.com/madflow/jquery-slugify
+
+(external_jQuery_default()).fn.slugify = function (source, options) {
+ return _this.each(function (element) {
+ var target = external_jQuery_default()(element);
+ var source = external_jQuery_default()(source);
+ target.on('keyup change', function () {
+ target.data('locked', target.val() !== '' && target.val() !== undefined);
+ });
+ source.on('keyup change', function () {
+ if (target.data('locked') === true) {
+ return true;
+ }
+
+ var isInput = target.is('input') || target.is('textarea');
+ target[isInput ? 'val' : 'text'](external_jQuery_default().slugify(source.val(), options));
+ });
+ });
+}; // Static method.
+
+
+(external_jQuery_default()).slugify = function (sourceString, options) {
+ options = external_jQuery_default().extend({}, (external_jQuery_default()).slugify.options, options);
+ options.lang = options.lang || external_jQuery_default()('html').prop('lang');
+
+ if (typeof options.preSlug === 'function') {
+ sourceString = options.preSlug(sourceString);
+ }
+
+ sourceString = options.slugFunc(sourceString, options);
+
+ if (typeof options.postSlug === 'function') {
+ sourceString = options.postSlug(sourceString);
+ }
+
+ return sourceString;
+}; // Default plugin options
+
+
+(external_jQuery_default()).slugify.options = {
+ preSlug: null,
+ postSlug: null,
+ slugFunc: function slugFunc(input, opts) {
+ return speakingurl_default()(input, opts);
+ }
+};
+;// CONCATENATED MODULE: ./app/pages/page/add.js
+
+
+
+
+var custom = false;
+var folder = external_jQuery_default()('[data-remodal-id="modal"] input[name="data[folder]"], [data-remodal-id="module"] input[name="data[folder]"], [data-remodal-id="modal-page-copy"] input[name="data[folder]"]');
+var title = external_jQuery_default()('[data-remodal-id="modal"] input[name="data[title]"], [data-remodal-id="module"] input[name="data[title]"], [data-remodal-id="modal-page-copy"] input[name="data[title]"]');
+
+var getFields = function getFields(type, target) {
+ target = external_jQuery_default()(target);
+ var query = "[data-remodal-id=\"".concat(target.closest('[data-remodal-id]').data('remodal-id'), "\"]");
+ return {
+ title: type === 'title' ? external_jQuery_default()(target) : external_jQuery_default()("".concat(query, " input[name=\"data[title]\"]")),
+ folder: type === 'folder' ? external_jQuery_default()(target) : external_jQuery_default()("".concat(query, " input[name=\"data[folder]\"]"))
+ };
+};
+
+title.on('input focus blur', function (event) {
+ if (custom) {
+ return true;
+ }
+
+ var elements = getFields('title', event.currentTarget);
+ var slug = external_jQuery_default().slugify(elements.title.val(), {
+ custom: {
+ "'": '',
+ '‘': '',
+ '’': ''
+ }
+ });
+ elements.folder.val(slug);
+});
+folder.on('input', function (event) {
+ var elements = getFields('folder', event.currentTarget);
+ var input = elements.folder.get(0);
+ var value = elements.folder.val();
+ var selection = {
+ start: input.selectionStart,
+ end: input.selectionEnd
+ };
+ value = value.toLowerCase().replace(/\s/g, '-').replace(/[^a-z0-9_\-]/g, '');
+ elements.folder.val(value);
+ custom = !!value; // restore cursor position
+
+ input.setSelectionRange(selection.start, selection.end);
+});
+folder.on('focus blur', function (event) {
+ return getFields('title', event.currentTarget).title.trigger('input');
+});
+external_jQuery_default()(document).on('change', '[name="data[route]"]', function (event) {
+ var rawroute = external_jQuery_default()(event.currentTarget).val();
+ var pageTemplate = external_jQuery_default()('[name="data[name]"]');
+ var URI = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/ajax.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "getChildTypes");
+
+ if (pageTemplate.length === 0) {
+ return;
+ }
+
+ utils_request(URI, {
+ method: 'post',
+ body: {
+ rawroute: rawroute
+ }
+ }, function (response) {
+ var type = response.child_type;
+
+ if (type !== '' && type !== 'default') {
+ pageTemplate.val(type);
+ pageTemplate.data('selectize').setValue(type);
+ }
+ });
+});
+;// CONCATENATED MODULE: ./app/pages/page/move.js
+
+external_jQuery_default()(document).on('click', '[data-page-move] button[name="task"][value="save"]', function (event) {
+ /* let route = $('form#blueprints:first select[name="data[route]"]');
+ let moveTo = $('[data-page-move] select').val();
+ if (route.length && route.val() !== moveTo) {
+ let selectize = route.data('selectize');
+ route.val(moveTo);
+ if (selectize) selectize.setValue(moveTo);
+ }*/
+ var modal = external_jQuery_default()(event.currentTarget).closest('[data-remodal-id]');
+ var parents = modal.data('parents') || {};
+ var finder = parents.finder;
+
+ if (!parents || !finder) {
+ return true;
+ }
+
+ var field = parents.field;
+ var parentLabel = parents.parentLabel;
+ var parentName = parents.parentName;
+ var selection = finder.findLastActive().item[0];
+ var value = selection._item[finder.config.valueKey];
+ var name = selection._item[finder.config.labelKey];
+ field.val(value);
+ parentLabel.text(value);
+ parentName.text(name);
+ finder.config.defaultPath = value;
+ external_jQuery_default()('
').css({
+ backgroundColor: 'rgba(255, 255, 255, 0.1)',
+ position: 'fixed',
+ top: 0,
+ left: 0,
+ width: '100vw',
+ height: '100vh',
+ zIndex: 15000
+ }).appendTo(external_jQuery_default()('body'));
+});
+/*
+$(document).on('click', '[data-remodal-id="parents"] [data-parents-select]', (event) => {
+ const modal = $(event.currentTarget).closest('[data-remodal-id]');
+ const parents = modal.data('parents');
+ const finder = parents.finder;
+ const field = parents.field;
+ const parentLabel = parents.parentLabel;
+ const parentName = parents.parentName;
+ const selection = finder.findLastActive().item[0];
+ const value = selection._item[finder.config.valueKey];
+ const name = selection._item[finder.config.labelKey];
+
+ field.val(value);
+ parentLabel.text(value);
+ parentName.text(name);
+ finder.config.defaultPath = value;
+
+ const remodal = $.remodal.lookup[$(`[data-remodal-id="${modal.data('remodalId')}"]`).data('remodal')];
+ remodal.close();
+});
+*/
+;// CONCATENATED MODULE: ./app/pages/page/delete.js
+
+external_jQuery_default()(document).on('click', '[data-remodal-target="delete"]', function () {
+ var confirm = external_jQuery_default()('[data-remodal-id="delete"] [data-delete-action]');
+ var link = external_jQuery_default()(this).data('delete-url');
+ confirm.data('delete-action', link);
+});
+external_jQuery_default()(document).on('click', '[data-delete-action]', function () {
+ var remodal = (external_jQuery_default()).remodal.lookup[external_jQuery_default()('[data-remodal-id="delete"]').data('remodal')];
+ __webpack_require__.g.location.href = external_jQuery_default()(this).data('delete-action');
+ remodal.close();
+});
+;// CONCATENATED MODULE: ./app/pages/page/unset.js
+
+external_jQuery_default()(document).on('click', '.dz-unset', function () {
+ var file_upload = external_jQuery_default()(this).closest('.files-upload');
+ external_jQuery_default()(this).closest('.dz-image-preview').remove();
+ var unset_image = external_jQuery_default()(this).closest('.dz-image-preview').find('[data-dz-name]').text().trim();
+ var images = JSON.parse(file_upload.find('input[data-grav-field="hidden"]').val()) || {};
+ var image_array = {};
+ external_jQuery_default().each(images, function (ind, obj) {
+ if (!ind.endsWith(unset_image)) {
+ image_array[ind] = obj;
+ }
+ });
+ file_upload.find('input[data-grav-field="hidden"]').val(JSON.stringify(image_array));
+});
+;// CONCATENATED MODULE: ./app/pages/page/disable-buttons.js
+
+external_jQuery_default()('.disable-after-click').on('click', function () {
+ external_jQuery_default()(this).addClass('pointer-events-disabled');
+});
+// EXTERNAL MODULE: ./node_modules/dropzone/dist/dropzone.js
+var dist_dropzone = __webpack_require__(32025);
+var dropzone_default = /*#__PURE__*/__webpack_require__.n(dist_dropzone);
+;// CONCATENATED MODULE: ./app/forms/fields/files.js
+function files_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function files_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function files_createClass(Constructor, protoProps, staticProps) { if (protoProps) files_defineProperties(Constructor.prototype, protoProps); if (staticProps) files_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+ // import EXIF from 'exif-js';
+
+
+ // translations
+
+var Dictionary = {
+ dictCancelUpload: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROPZONE_CANCEL_UPLOAD,
+ dictCancelUploadConfirmation: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROPZONE_CANCEL_UPLOAD_CONFIRMATION,
+ dictDefaultMessage: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROPZONE_DEFAULT_MESSAGE,
+ dictFallbackMessage: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROPZONE_FALLBACK_MESSAGE,
+ dictFallbackText: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROPZONE_FALLBACK_TEXT,
+ dictFileTooBig: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROPZONE_FILE_TOO_BIG,
+ dictInvalidFileType: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROPZONE_INVALID_FILE_TYPE,
+ dictMaxFilesExceeded: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROPZONE_MAX_FILES_EXCEEDED,
+ dictRemoveFile: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROPZONE_REMOVE_FILE,
+ dictResponseError: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROPZONE_RESPONSE_ERROR
+};
+(dropzone_default()).autoDiscover = false;
+(dropzone_default()).options.gravPageDropzone = {};
+
+(dropzone_default()).confirm = function (question, accepted, rejected) {
+ var doc = external_jQuery_default()(document);
+ var modalSelector = '[data-remodal-id="delete-media"]';
+
+ var removeEvents = function removeEvents() {
+ doc.off('confirmation', modalSelector, accept);
+ doc.off('cancellation', modalSelector, reject);
+ external_jQuery_default()(modalSelector).find('.remodal-confirm').removeClass('pointer-events-disabled');
+ };
+
+ var accept = function accept() {
+ accepted && accepted();
+ removeEvents();
+ };
+
+ var reject = function reject() {
+ rejected && rejected();
+ removeEvents();
+ };
+
+ (external_jQuery_default()).remodal.lookup[external_jQuery_default()(modalSelector).data('remodal')].open();
+ doc.on('confirmation', modalSelector, accept);
+ doc.on('cancellation', modalSelector, reject);
+};
+
+var DropzoneMediaConfig = {
+ timeout: 0,
+ thumbnailWidth: 200,
+ thumbnailHeight: 150,
+ addRemoveLinks: false,
+ dictDefaultMessage: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROP_FILES_HERE_TO_UPLOAD.replace(/</g, '<').replace(/>/g, '>'),
+ dictRemoveFileConfirmation: '[placeholder]',
+ previewTemplate: "\n
").trim()
+}; // global.EXIF = EXIF;
+
+var ACCEPT_FUNC = function ACCEPT_FUNC(file, done, settings) {
+ var resolution = settings.resolution;
+ if (!resolution) return done();
+ var reader = new FileReader();
+ var error = '';
+ var hasMin = resolution.min && (resolution.min.width || resolution.min.height);
+ var hasMax = resolution.max && (resolution.max.width || resolution.max.height);
+
+ if (hasMin || !(settings.resizeWidth || settings.resizeHeight) && hasMax) {
+ reader.onload = function (event) {
+ var image = new Image();
+ image.src = event.target.result;
+
+ image.onerror = function () {
+ done(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.FILE_ERROR_UPLOAD);
+ };
+
+ image.onload = function () {
+ var _this = this;
+
+ if (resolution.min) {
+ Object.keys(resolution.min).forEach(function (attr) {
+ if (resolution.min[attr] && _this[attr] < resolution.min[attr]) {
+ error += external_GravAdmin_namespaceObject.translations.PLUGIN_FORM.RESOLUTION_MIN.replace(/{{attr}}/g, attr).replace(/{{min}}/g, resolution.min[attr]);
+ }
+ });
+ }
+
+ if (!(settings.resizeWidth || settings.resizeHeight)) {
+ if (resolution.max) {
+ Object.keys(resolution.max).forEach(function (attr) {
+ if (resolution.max[attr] && _this[attr] > resolution.max[attr]) {
+ error += external_GravAdmin_namespaceObject.translations.PLUGIN_FORM.RESOLUTION_MAX.replace(/{{attr}}/g, attr).replace(/{{max}}/g, resolution.max[attr]);
+ }
+ });
+ }
+ }
+
+ URL.revokeObjectURL(image.src); // release memory
+
+ return error ? done(error) : done();
+ };
+ };
+
+ reader.readAsDataURL(file);
+ } else {
+ return error ? done(error) : done();
+ }
+};
+
+var FilesField = /*#__PURE__*/function () {
+ function FilesField() {
+ var _this2 = this;
+
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+ _ref$container = _ref.container,
+ container = _ref$container === void 0 ? '.dropzone.files-upload' : _ref$container,
+ _ref$options = _ref.options,
+ options = _ref$options === void 0 ? {} : _ref$options;
+
+ files_classCallCheck(this, FilesField);
+
+ this.container = external_jQuery_default()(container);
+
+ if (!this.container.length) {
+ return;
+ }
+
+ this.urls = {};
+ this.customPost = this.container.data('filePostAdd') || {};
+ this.options = Object.assign({}, Dictionary, DropzoneMediaConfig, {
+ klass: this,
+ url: this.container.data('file-url-add') || external_GravAdmin_namespaceObject.config.current_url,
+ acceptedFiles: this.container.data('media-types'),
+ init: this.initDropzone
+ }, this.container.data('dropzone-options'), options);
+ this.options = Object.assign({}, this.options, {
+ accept: function accept(file, done) {
+ ACCEPT_FUNC(file, done, this.options);
+ }
+ });
+ this.dropzone = new (dropzone_default())(container, this.options);
+ this.dropzone.on('complete', this.onDropzoneComplete.bind(this));
+ this.dropzone.on('success', this.onDropzoneSuccess.bind(this));
+ this.dropzone.on('removedfile', this.onDropzoneRemovedFile.bind(this));
+ this.dropzone.on('sending', this.onDropzoneSending.bind(this));
+ this.dropzone.on('error', this.onDropzoneError.bind(this));
+ this.container.on('mouseenter', '[data-dz-view]', function (e) {
+ var value = JSON.parse(_this2.container.find('[name][type="hidden"]').val() || '{}');
+ var target = external_jQuery_default()(e.currentTarget);
+ var file = target.parent('.dz-preview').find('.dz-filename');
+ var filename = encodeURI(file.text());
+ var URL = Object.keys(value).filter(function (key) {
+ return value[key].name === filename;
+ }).shift();
+ target.attr('href', "".concat(external_GravAdmin_namespaceObject.config.base_url_simple, "/").concat(URL));
+ });
+ }
+
+ files_createClass(FilesField, [{
+ key: "initDropzone",
+ value: function initDropzone() {
+ var _this3 = this;
+
+ var files = this.options.klass.container.find('[data-file]');
+ var dropzone = this;
+
+ if (!files.length) {
+ return;
+ }
+
+ files.each(function (index, file) {
+ file = external_jQuery_default()(file);
+ var data = file.data('file');
+ var mock = {
+ name: data.name,
+ size: data.size,
+ type: data.type,
+ status: (dropzone_default()).ADDED,
+ accepted: true,
+ url: _this3.options.url,
+ removeUrl: data.remove
+ };
+ dropzone.files.push(mock);
+ dropzone.options.addedfile.call(dropzone, mock);
+
+ if (mock.type.match(/^image\//)) {
+ dropzone.options.thumbnail.call(dropzone, mock, data.path);
+ dropzone.createThumbnailFromUrl(mock, data.path);
+ }
+
+ file.remove();
+ });
+ }
+ }, {
+ key: "getURI",
+ value: function getURI() {
+ return this.container.data('mediaUri') || '';
+ }
+ }, {
+ key: "onDropzoneSending",
+ value: function onDropzoneSending(file, xhr, formData) {
+ var _this4 = this;
+
+ if (Object.keys(this.customPost).length) {
+ Object.keys(this.customPost).forEach(function (key) {
+ formData.append(key, _this4.customPost[key]);
+ });
+ } else {
+ formData.append('name', this.options.dotNotation);
+ formData.append('task', 'filesupload');
+ formData.append('uri', this.getURI());
+ }
+
+ formData.append('admin-nonce', external_GravAdmin_namespaceObject.config.admin_nonce);
+ }
+ }, {
+ key: "onDropzoneSuccess",
+ value: function onDropzoneSuccess(file, response, xhr) {
+ response = typeof response === 'string' ? JSON.parse(response) : response;
+
+ if (this.options.reloadPage) {
+ __webpack_require__.g.location.reload();
+ } // store params for removing file from session before it gets saved
+
+
+ if (response.session) {
+ file.sessionParams = response.session;
+ file.removeUrl = this.options.url; // Touch field value to force a mutation detection
+
+ var input = this.container.find('[name][type="hidden"]');
+ var value = input.val();
+ input.val(value + ' ');
+ }
+
+ return this.handleError({
+ file: file,
+ data: response,
+ mode: 'removeFile',
+ msg: "
".concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.FILE_ERROR_UPLOAD, " ").concat(file.name, "
\n
").concat(response.message, "
")
+ });
+ }
+ }, {
+ key: "onDropzoneComplete",
+ value: function onDropzoneComplete(file) {
+ if (!file.accepted && !file.rejected) {
+ var data = {
+ status: 'error',
+ message: "".concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.FILE_UNSUPPORTED, ": ").concat(file.name.match(/\..+/).join(''))
+ };
+ return this.handleError({
+ file: file,
+ data: data,
+ mode: 'removeFile',
+ msg: "
".concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.FILE_ERROR_ADD, " ").concat(file.name, "
\n
").concat(data.message, "
")
+ });
+ }
+
+ if (this.options.reloadPage) {
+ __webpack_require__.g.location.reload();
+ }
+ }
+ }, {
+ key: "b64_to_utf8",
+ value: function b64_to_utf8(str) {
+ str = str.replace(/\s/g, '');
+ return decodeURIComponent(escape(window.atob(str)));
+ }
+ }, {
+ key: "onDropzoneRemovedFile",
+ value: function onDropzoneRemovedFile(file) {
+ var _this5 = this;
+
+ if (!file.accepted || file.rejected) {
+ return;
+ }
+
+ var url = file.removeUrl || this.urls["delete"] || this.options.url;
+ var path = (url || '').match(/path:(.*)\//);
+ var body = {
+ filename: file.name,
+ uri: this.getURI()
+ };
+
+ if (file.sessionParams) {
+ body.task = 'filessessionremove';
+ body.session = file.sessionParams;
+ }
+
+ var customPost = this.container.data('filePostRemove') || {};
+
+ if (Object.keys(customPost).length) {
+ body = {};
+ Object.keys(customPost).forEach(function (key) {
+ body[key] = customPost[key];
+ });
+ }
+
+ body['filename'] = file.name;
+ body['admin-nonce'] = external_GravAdmin_namespaceObject.config.admin_nonce;
+ utils_request(url, {
+ method: 'post',
+ body: body
+ }, function () {
+ if (!path) {
+ return;
+ }
+
+ path = _this5.b64_to_utf8(path[1]);
+
+ var input = _this5.container.find('[name][type="hidden"]');
+
+ var data = JSON.parse(input.val() || '{}');
+ delete data[path];
+ input.val(JSON.stringify(data));
+ });
+ }
+ }, {
+ key: "onDropzoneError",
+ value: function onDropzoneError(file, response, xhr) {
+ var message = xhr ? response.error.message : response;
+ external_jQuery_default()(file.previewElement).find('[data-dz-errormessage]').html(message);
+ return this.handleError({
+ file: file,
+ data: {
+ status: 'error'
+ },
+ msg: "
".concat(message, "
")
+ });
+ }
+ }, {
+ key: "handleError",
+ value: function handleError(options) {
+ var file = options.file,
+ data = options.data,
+ mode = options.mode,
+ msg = options.msg;
+
+ if (data.status !== 'error' && data.status !== 'unauthorized') {
+ return;
+ }
+
+ switch (mode) {
+ case 'addBack':
+ if (file instanceof File) {
+ this.dropzone.addFile.call(this.dropzone, file);
+ } else {
+ this.dropzone.files.push(file);
+ this.dropzone.options.addedfile.call(this.dropzone, file);
+ this.dropzone.options.thumbnail.call(this.dropzone, file, file.extras.url);
+ }
+
+ break;
+
+ case 'removeFile':
+ default:
+ if (~this.dropzone.files.indexOf(file)) {
+ file.rejected = true;
+ this.dropzone.removeFile.call(this.dropzone, file, {
+ silent: true
+ });
+ }
+
+ break;
+ }
+
+ var modal = external_jQuery_default()('[data-remodal-id="generic"]');
+ modal.find('.error-content').html(msg);
+ (external_jQuery_default()).remodal.lookup[modal.data('remodal')].open();
+ }
+ }]);
+
+ return FilesField;
+}();
+
+
+function UriToMarkdown(uri) {
+ uri = uri.replace(/@3x|@2x|@1x/, '');
+ uri = uri.replace(/\(/g, '%28');
+ uri = uri.replace(/\)/g, '%29');
+ var title = uri.split('.').slice(0, -1).join('.');
+ return uri.match(/\.(jpe?g|png|gif|svg|webp|mp4|webm|ogv|mov)$/i) ? "![".concat(title, "](").concat(uri, " \"").concat(title, "\")") : "[".concat(decodeURI(uri), "](").concat(uri, ")");
+}
+var instances = [];
+var cache = external_jQuery_default()();
+
+var onAddedNodes = function onAddedNodes(event, target
+/* , record, instance */
+) {
+ var files = external_jQuery_default()(target).find('.dropzone.files-upload');
+
+ if (!files.length) {
+ return;
+ }
+
+ files.each(function (index, file) {
+ file = external_jQuery_default()(file);
+
+ if (!~cache.index(file)) {
+ addNode(file);
+ }
+ });
+};
+
+var addNode = function addNode(container) {
+ container = external_jQuery_default()(container);
+ var input = container.find('input[type="file"]');
+ var settings = container.data('grav-file-settings') || {};
+
+ if (settings.accept && ~settings.accept.indexOf('*')) {
+ settings.accept = [''];
+ }
+
+ var options = {
+ url: container.data('file-url-add') || (container.closest('form').attr('action') || external_GravAdmin_namespaceObject.config.current_url) + '.json',
+ paramName: settings.paramName || 'file',
+ dotNotation: settings.name || 'file',
+ acceptedFiles: settings.accept ? settings.accept.join(',') : input.attr('accept') || container.data('media-types'),
+ maxFilesize: typeof settings.filesize !== 'undefined' ? settings.filesize : 256,
+ maxFiles: settings.limit || null,
+ resizeWidth: settings.resizeWidth || null,
+ resizeHeight: settings.resizeHeight || null,
+ resizeQuality: settings.resizeQuality || null,
+ resolution: settings.resolution || null,
+ accept: function accept(file, done) {
+ ACCEPT_FUNC(file, done, settings);
+ }
+ };
+ cache = cache.add(container);
+ container = container[0];
+ instances.push(new FilesField({
+ container: container,
+ options: options
+ }));
+};
+
+var files_Instance = function () {
+ external_jQuery_default()('.dropzone.files-upload').each(function (i, container) {
+ return addNode(container);
+ });
+ external_jQuery_default()('body').on('mutation._grav', onAddedNodes);
+ return instances;
+}();
+;// CONCATENATED MODULE: ./app/forms/fields/editor/buttons.js
+
+
+
+
+var replacer = function replacer(_ref) {
+ var name = _ref.name,
+ replace = _ref.replace,
+ codemirror = _ref.codemirror,
+ button = _ref.button,
+ _ref$mode = _ref.mode,
+ mode = _ref$mode === void 0 ? 'replaceSelections' : _ref$mode,
+ runner = _ref.runner;
+ button.on("click.editor.".concat(name), function () {
+ strategies[mode]({
+ token: '$1',
+ template: replace,
+ codemirror: codemirror,
+ runner: runner
+ });
+ });
+};
+
+var strategies = {
+ replaceSelections: function replaceSelections(_ref2) {
+ var template = _ref2.template,
+ token = _ref2.token,
+ codemirror = _ref2.codemirror,
+ runner = _ref2.runner;
+ var replacements = [];
+ var ranges = [];
+ var selections = codemirror.getSelections();
+ var list = codemirror.listSelections();
+ var accumulator = {};
+ selections.forEach(function (selection, index) {
+ var markup = template.replace(token, selection);
+ var cursor = markup.indexOf('$cur');
+ var _list$index$anchor = list[index].anchor,
+ line = _list$index$anchor.line,
+ ch = _list$index$anchor.ch;
+ markup = markup.replace('$cur', '');
+ markup = runner ? runner(selection, markup, list) : markup;
+ replacements.push(markup);
+
+ if (!accumulator[line]) {
+ accumulator[line] = 0;
+ }
+
+ ch += accumulator[line] + (cursor === -1 ? markup.length : cursor);
+ var range = {
+ ch: ch,
+ line: line
+ };
+ ranges.push({
+ anchor: range,
+ head: range
+ });
+ accumulator[line] += markup.length - selection.length;
+ });
+ codemirror.replaceSelections(replacements);
+ codemirror.setSelections(ranges);
+ codemirror.focus();
+ },
+ replaceLine: function replaceLine(_ref3) {
+ var template = _ref3.template,
+ token = _ref3.token,
+ codemirror = _ref3.codemirror,
+ runner = _ref3.runner;
+ var list = codemirror.listSelections();
+ var range;
+ list.forEach(function (selection) {
+ var lines = {
+ min: Math.min(selection.anchor.line, selection.head.line),
+ max: Math.max(selection.anchor.line, selection.head.line)
+ };
+ codemirror.eachLine(lines.min, lines.max + 1, function (handler) {
+ var markup = template.replace(token, handler.text);
+ var line = codemirror.getLineNumber(handler);
+ markup = runner ? runner(handler, markup) : markup;
+ codemirror.replaceRange(markup, {
+ line: line,
+ ch: 0
+ }, {
+ line: line,
+ ch: markup.length
+ });
+ range = {
+ line: line,
+ ch: markup.length
+ };
+ });
+ });
+ codemirror.setSelection(range, range, 'end');
+ codemirror.focus();
+ },
+ replaceRange: function replaceRange() {}
+};
+
+var flipDisabled = function flipDisabled(codemirror, button, type) {
+ var hasHistory = codemirror.historySize()[type];
+ var element = button.find('a');
+ button[hasHistory ? 'removeClass' : 'addClass']('button-disabled');
+
+ if (!hasHistory) {
+ element.attr('title-disabled', element.attr('title'));
+ element.attr('data-hint-disabled', element.attr('data-hint'));
+ element.removeAttr('title').removeAttr('data-hint');
+ } else {
+ element.attr('title', element.attr('title-disabled'));
+ element.attr('data-hint', element.attr('data-hint-disabled'));
+ element.removeAttr('title-disabled').removeAttr('data-hint-disabled');
+ }
+};
+
+/* harmony default export */ const buttons = ({
+ navigation: [{
+ undo: {
+ identifier: 'undo',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UNDO,
+ label: '
',
+ modes: [],
+ action: function action(_ref4) {
+ var codemirror = _ref4.codemirror,
+ button = _ref4.button,
+ textarea = _ref4.textarea;
+ button.addClass('button-disabled');
+ codemirror.on('change', function () {
+ return flipDisabled(codemirror, button, 'undo');
+ });
+ button.on('click.editor.undo', function () {
+ codemirror.undo();
+ });
+ }
+ }
+ }, {
+ redo: {
+ identifier: 'redo',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.REDO,
+ label: '
',
+ modes: [],
+ action: function action(_ref5) {
+ var codemirror = _ref5.codemirror,
+ button = _ref5.button,
+ textarea = _ref5.textarea;
+ button.addClass('button-disabled');
+ codemirror.on('change', function () {
+ return flipDisabled(codemirror, button, 'redo');
+ });
+ button.on('click.editor.redo', function () {
+ codemirror.redo();
+ });
+ }
+ }
+ }, {
+ headers: {
+ identifier: 'headers',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.HEADERS,
+ label: '',
+ modes: ['gfm', 'markdown'],
+ children: [{
+ h1: {
+ identifier: 'h1',
+ label: '1',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref6) {
+ var codemirror = _ref6.codemirror,
+ button = _ref6.button,
+ textarea = _ref6.textarea;
+ replacer({
+ name: 'h1',
+ replace: '# $1',
+ codemirror: codemirror,
+ button: button,
+ mode: 'replaceLine'
+ });
+ }
+ }
+ }, {
+ h2: {
+ identifier: 'h2',
+ label: '2',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref7) {
+ var codemirror = _ref7.codemirror,
+ button = _ref7.button,
+ textarea = _ref7.textarea;
+ replacer({
+ name: 'h2',
+ replace: '## $1',
+ codemirror: codemirror,
+ button: button,
+ mode: 'replaceLine'
+ });
+ }
+ }
+ }, {
+ h3: {
+ identifier: 'h3',
+ label: '3',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref8) {
+ var codemirror = _ref8.codemirror,
+ button = _ref8.button,
+ textarea = _ref8.textarea;
+ replacer({
+ name: 'h3',
+ replace: '### $1',
+ codemirror: codemirror,
+ button: button,
+ mode: 'replaceLine'
+ });
+ }
+ }
+ }, {
+ h4: {
+ identifier: 'h4',
+ label: '4',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref9) {
+ var codemirror = _ref9.codemirror,
+ button = _ref9.button,
+ textarea = _ref9.textarea;
+ replacer({
+ name: 'h4',
+ replace: '#### $1',
+ codemirror: codemirror,
+ button: button,
+ mode: 'replaceLine'
+ });
+ }
+ }
+ }, {
+ h5: {
+ identifier: 'h5',
+ label: '5',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref10) {
+ var codemirror = _ref10.codemirror,
+ button = _ref10.button,
+ textarea = _ref10.textarea;
+ replacer({
+ name: 'h5',
+ replace: '##### $1',
+ codemirror: codemirror,
+ button: button,
+ mode: 'replaceLine'
+ });
+ }
+ }
+ }, {
+ h6: {
+ identifier: 'h6',
+ label: '6',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref11) {
+ var codemirror = _ref11.codemirror,
+ button = _ref11.button,
+ textarea = _ref11.textarea;
+ replacer({
+ name: 'h6',
+ replace: '###### $1',
+ codemirror: codemirror,
+ button: button,
+ mode: 'replaceLine'
+ });
+ }
+ }
+ }]
+ }
+ }, {
+ bold: {
+ identifier: 'bold',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.BOLD,
+ label: '
',
+ modes: ['gfm', 'markdown'],
+ shortcut: ['Ctrl-B', 'Cmd-B'],
+ action: function action(_ref12) {
+ var codemirror = _ref12.codemirror,
+ button = _ref12.button,
+ textarea = _ref12.textarea;
+ replacer({
+ name: 'bold',
+ replace: '**$1$cur**',
+ codemirror: codemirror,
+ button: button
+ });
+ }
+ }
+ }, {
+ italic: {
+ identifier: 'italic',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.ITALIC,
+ label: '
',
+ modes: ['gfm', 'markdown'],
+ shortcut: ['Ctrl-I', 'Cmd-I'],
+ action: function action(_ref13) {
+ var codemirror = _ref13.codemirror,
+ button = _ref13.button,
+ textarea = _ref13.textarea;
+ replacer({
+ name: 'italic',
+ replace: '_$1$cur_',
+ codemirror: codemirror,
+ button: button
+ });
+ }
+ }
+ }, {
+ strike: {
+ identifier: 'strike',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.STRIKETHROUGH,
+ label: '
',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref14) {
+ var codemirror = _ref14.codemirror,
+ button = _ref14.button,
+ textarea = _ref14.textarea;
+ replacer({
+ name: 'strike',
+ replace: '~~$1$cur~~',
+ codemirror: codemirror,
+ button: button
+ });
+ }
+ }
+ }, {
+ delimiter: {
+ identifier: 'delimiter',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.SUMMARY_DELIMITER,
+ label: '
',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref15) {
+ var codemirror = _ref15.codemirror,
+ button = _ref15.button,
+ textarea = _ref15.textarea;
+ replacer({
+ name: 'delimiter',
+ replace: "".concat(external_GravAdmin_namespaceObject.config.site.delimiter, "$1"),
+ codemirror: codemirror,
+ button: button,
+ mode: 'replaceLine'
+ });
+ }
+ }
+ }, {
+ link: {
+ identifier: 'link',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.LINK,
+ label: '
',
+ modes: ['gfm', 'markdown'],
+ shortcut: ['Ctrl-K', 'Cmd-K'],
+ action: function action(_ref16) {
+ var codemirror = _ref16.codemirror,
+ button = _ref16.button,
+ textarea = _ref16.textarea;
+ replacer({
+ name: 'link',
+ replace: '[$1]($cur)',
+ codemirror: codemirror,
+ button: button
+ });
+ }
+ }
+ }, {
+ image: {
+ identifier: 'image',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.IMAGE,
+ label: '
',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref17) {
+ var codemirror = _ref17.codemirror,
+ button = _ref17.button,
+ textarea = _ref17.textarea;
+ replacer({
+ name: 'image',
+ replace: '![$1]($cur)',
+ codemirror: codemirror,
+ button: button
+ });
+ }
+ }
+ }, {
+ blockquote: {
+ identifier: 'blockquote',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.BLOCKQUOTE,
+ label: '
',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref18) {
+ var codemirror = _ref18.codemirror,
+ button = _ref18.button,
+ textarea = _ref18.textarea;
+ replacer({
+ name: 'blockquote',
+ replace: '> $1',
+ codemirror: codemirror,
+ button: button,
+ mode: 'replaceLine'
+ });
+ }
+ }
+ }, {
+ listUl: {
+ identifier: 'listUl',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UNORDERED_LIST,
+ label: '
',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref19) {
+ var codemirror = _ref19.codemirror,
+ button = _ref19.button,
+ textarea = _ref19.textarea;
+ replacer({
+ name: 'listUl',
+ replace: '* $1',
+ codemirror: codemirror,
+ button: button,
+ mode: 'replaceLine'
+ });
+ }
+ }
+ }, {
+ listOl: {
+ identifier: 'listOl',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.ORDERED_LIST,
+ label: '
',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref20) {
+ var codemirror = _ref20.codemirror,
+ button = _ref20.button,
+ textarea = _ref20.textarea;
+ replacer({
+ name: 'listOl',
+ replace: '. $1',
+ codemirror: codemirror,
+ button: button,
+ mode: 'replaceLine',
+ runner: function runner(line, markup) {
+ var lineNo = codemirror.getLineNumber(line);
+ var previousLine = codemirror.getLine(lineNo - 1) || '';
+ var match = previousLine.match(/^(\d+)\./);
+ var prefix = 1 + (match ? Number(match[1]) : 0);
+ return "".concat(prefix).concat(markup);
+ }
+ });
+ }
+ }
+ }],
+ states: [{
+ code: {
+ identifier: 'editor',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.EDITOR,
+ label: '
',
+ action: function action(_ref21) {
+ var codemirror = _ref21.codemirror,
+ button = _ref21.button,
+ textarea = _ref21.textarea,
+ ui = _ref21.ui;
+
+ if (textarea.data('grav-editor-mode') === 'editor') {
+ button.addClass('editor-active');
+ }
+
+ button.on('click.states.editor', function () {
+ button.siblings().removeClass('editor-active');
+ button.addClass('editor-active');
+ textarea.data('grav-editor-mode', 'editor');
+ var previewContainer = textarea.data('grav-editor-preview-container');
+ var content = textarea.parent('.grav-editor-content');
+ content.addClass('is-active');
+ ui.navigation.find('.grav-editor-actions').css('visibility', 'visible');
+
+ if (previewContainer) {
+ previewContainer.removeClass('is-active');
+ }
+ });
+ }
+ }
+ }, {
+ preview: {
+ identifier: 'preview',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.PREVIEW,
+ label: '
',
+ modes: ['gfm', 'markdown'],
+ action: function action(_ref22) {
+ var codemirror = _ref22.codemirror,
+ button = _ref22.button,
+ textarea = _ref22.textarea,
+ ui = _ref22.ui;
+
+ if (textarea.data('grav-editor-mode') === 'preview') {
+ button.addClass('editor-active');
+ }
+
+ button.on('click.states.preview', function () {
+ var previewContainer = textarea.data('grav-editor-preview-container');
+ var content = textarea.parent('.grav-editor-content');
+ button.siblings().removeClass('editor-active');
+ button.addClass('editor-active');
+ textarea.data('grav-editor-mode', 'preview');
+
+ if (!previewContainer) {
+ previewContainer = external_jQuery_default()('
');
+ content.after(previewContainer);
+ textarea.data('grav-editor-preview-container', previewContainer);
+ }
+
+ previewContainer.css({
+ height: content.height()
+ });
+ previewContainer.addClass('is-active');
+ content.removeClass('is-active');
+ ui.navigation.find('.grav-editor-actions').css('visibility', 'hidden');
+ var url = "".concat(textarea.data('grav-urlpreview'), "/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "processmarkdown");
+ var params = textarea.closest('form').serializeArray();
+ var body = {};
+ params.map(function (obj) {
+ body[obj.name] = obj.value;
+ });
+ utils_request(url, {
+ method: 'post',
+ body: body
+ }, function (response) {
+ return previewContainer.html(response.preview);
+ });
+ });
+ }
+ }
+ }, {
+ fullscreen: {
+ identifier: 'fullscreen',
+ title: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.FULLSCREEN,
+ label: '
',
+ action: function action(_ref23) {
+ var codemirror = _ref23.codemirror,
+ button = _ref23.button,
+ textarea = _ref23.textarea;
+ button.on('click.editor.fullscreen', function () {
+ var container = textarea.closest('.grav-editor');
+ var wrapper = codemirror.getWrapperElement();
+ var contentWrapper = external_jQuery_default()('.content-wrapper');
+
+ if (!container.hasClass('grav-editor-fullscreen')) {
+ textarea.data('fullScreenRestore', {
+ scrollTop: __webpack_require__.g.pageYOffset,
+ scrollLeft: __webpack_require__.g.pageXOffset,
+ width: wrapper.style.width,
+ height: wrapper.style.height
+ });
+ wrapper.style.width = '';
+ wrapper.style.height = textarea.parent('.grav-editor-content').height() + 'px';
+ __webpack_require__.g.document.documentElement.style.overflow = 'hidden';
+ var hints = container.find('.grav-editor-toolbar .hint--top');
+
+ if (hints) {
+ hints.removeClass('hint--top').addClass('hint--bottom');
+ external_jQuery_default()(hints[hints.length - 1]).addClass('hint--bottom-left');
+ }
+
+ if (contentWrapper) {
+ contentWrapper.css('overflow', 'visible');
+ }
+ } else {
+ __webpack_require__.g.document.documentElement.style.overflow = '';
+ var state = textarea.data('fullScreenRestore');
+ wrapper.style.width = state.width;
+ wrapper.style.height = state.height;
+ __webpack_require__.g.scrollTo(state.scrollLeft, state.scrollTop);
+
+ var _hints = container.find('.grav-editor-toolbar .hint--bottom');
+
+ if (_hints) {
+ _hints.removeClass('hint--bottom').addClass('hint--top');
+
+ external_jQuery_default()(_hints[_hints.length - 1]).removeClass('hint--bottom-left');
+ }
+
+ if (contentWrapper) {
+ contentWrapper.css('overflow', 'auto');
+ }
+ }
+
+ container.toggleClass('grav-editor-fullscreen');
+ setTimeout(function () {
+ codemirror.refresh(); // this.preview.parent().css('height', this.code.height());
+
+ external_jQuery_default()(__webpack_require__.g).trigger('resize');
+ }, 5);
+ });
+ }
+ }
+ }]
+});
+// EXTERNAL MODULE: ./node_modules/codemirror/lib/codemirror.js
+var codemirror = __webpack_require__(4631);
+var codemirror_default = /*#__PURE__*/__webpack_require__.n(codemirror);
+// EXTERNAL MODULE: ./node_modules/watchjs/src/watch.js
+var watch = __webpack_require__(29950);
+// EXTERNAL MODULE: ./node_modules/js-yaml/dist/js-yaml.mjs
+var js_yaml = __webpack_require__(47180);
+// EXTERNAL MODULE: ./node_modules/codemirror/mode/css/css.js
+var css = __webpack_require__(36629);
+// EXTERNAL MODULE: ./node_modules/codemirror/mode/gfm/gfm.js
+var gfm = __webpack_require__(42425);
+// EXTERNAL MODULE: ./node_modules/codemirror/mode/htmlmixed/htmlmixed.js
+var htmlmixed = __webpack_require__(16531);
+// EXTERNAL MODULE: ./node_modules/codemirror/mode/javascript/javascript.js
+var javascript = __webpack_require__(96876);
+// EXTERNAL MODULE: ./node_modules/codemirror/mode/markdown/markdown.js
+var markdown = __webpack_require__(49047);
+// EXTERNAL MODULE: ./node_modules/codemirror/mode/php/php.js
+var php = __webpack_require__(36702);
+// EXTERNAL MODULE: ./node_modules/codemirror/mode/sass/sass.js
+var sass = __webpack_require__(81201);
+// EXTERNAL MODULE: ./node_modules/codemirror/mode/twig/twig.js
+var twig = __webpack_require__(54702);
+// EXTERNAL MODULE: ./node_modules/codemirror/mode/xml/xml.js
+var xml = __webpack_require__(29589);
+// EXTERNAL MODULE: ./node_modules/codemirror/mode/yaml/yaml.js
+var yaml = __webpack_require__(53631);
+// EXTERNAL MODULE: ./node_modules/codemirror/addon/edit/continuelist.js
+var continuelist = __webpack_require__(23350);
+// EXTERNAL MODULE: ./node_modules/codemirror/addon/mode/overlay.js
+var overlay = __webpack_require__(14146);
+// EXTERNAL MODULE: ./node_modules/codemirror/addon/selection/active-line.js
+var active_line = __webpack_require__(20017);
+// EXTERNAL MODULE: ./node_modules/codemirror/addon/lint/lint.js
+var lint = __webpack_require__(3256);
+// EXTERNAL MODULE: ./node_modules/codemirror/addon/lint/lint.css
+var lint_lint = __webpack_require__(46226);
+// EXTERNAL MODULE: ./node_modules/codemirror/addon/lint/css-lint.js
+var css_lint = __webpack_require__(41423);
+// EXTERNAL MODULE: ./node_modules/codemirror/addon/lint/javascript-lint.js
+var javascript_lint = __webpack_require__(96477);
+// EXTERNAL MODULE: ./node_modules/codemirror/addon/lint/json-lint.js
+var json_lint = __webpack_require__(62193);
+// EXTERNAL MODULE: ./node_modules/codemirror/addon/lint/yaml-lint.js
+var yaml_lint = __webpack_require__(82783);
+;// CONCATENATED MODULE: ./app/forms/fields/editor.js
+function editor_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function editor_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function editor_createClass(Constructor, protoProps, staticProps) { if (protoProps) editor_defineProperties(Constructor.prototype, protoProps); if (staticProps) editor_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+
+__webpack_require__.g.jsyaml = js_yaml/* default */.ZP; // Modes
+
+
+
+
+
+
+
+
+
+
+ // Add-ons
+
+
+
+
+
+
+
+
+
+
+var IS_MOUSEDOWN = false;
+var ThemesMap = ['paper'];
+var Defaults = {
+ codemirror: {
+ mode: 'htmlmixed',
+ theme: 'paper',
+ lineWrapping: true,
+ dragDrop: true,
+ autoCloseTags: true,
+ matchTags: true,
+ autoCloseBrackets: true,
+ matchBrackets: true,
+ indentUnit: 4,
+ indentWithTabs: false,
+ tabSize: 4,
+ hintOptions: {
+ completionSingle: false
+ },
+ extraKeys: {
+ 'Enter': 'newlineAndIndentContinueMarkdownList'
+ }
+ }
+};
+
+var EditorField = /*#__PURE__*/function () {
+ function EditorField(options) {
+ var _this = this;
+
+ editor_classCallCheck(this, EditorField);
+
+ var body = external_jQuery_default()('body');
+ this.editors = external_jQuery_default()();
+ this.options = Object.assign({}, Defaults, options);
+ this.buttons = buttons;
+ this.buttonStrategies = strategies;
+ (0,watch.watch)(buttons, function ()
+ /* key, modifier, prev, next */
+ {
+ _this.editors.each(function (index, editor) {
+ return external_jQuery_default()(editor).data('toolbar').renderButtons();
+ });
+ });
+ external_jQuery_default()('[data-grav-editor]').each(function (index, editor) {
+ return _this.addEditor(editor);
+ });
+ external_jQuery_default()(function () {
+ body.trigger('grav-editor-ready');
+ });
+ body.on('mutation._grav', this._onAddedNodes.bind(this));
+ body.on('mouseup._grav', function () {
+ if (!IS_MOUSEDOWN) {
+ return true;
+ }
+
+ body.unbind('mousemove._grav');
+ IS_MOUSEDOWN = false;
+ });
+ body.on('mousedown._grav', '.grav-editor-resizer', function (event) {
+ event && event.preventDefault();
+ IS_MOUSEDOWN = true;
+ var target = external_jQuery_default()(event.currentTarget);
+ var container = target.siblings('.grav-editor-content');
+ var editor = container.find('.CodeMirror');
+ var codemirror = container.find('textarea').data('codemirror');
+ body.on('mousemove._grav', function (event) {
+ editor.css('height', Math.max(100, event.pageY - container.offset().top));
+ codemirror.refresh();
+ });
+ });
+ }
+
+ editor_createClass(EditorField, [{
+ key: "addButton",
+ value: function addButton(button, options) {
+ if (options && (options.before || options.after)) {
+ var index = this.buttons.navigation.findIndex(function (obj) {
+ var key = Object.keys(obj).shift();
+ return obj[key].identifier === (options.before || options.after);
+ });
+
+ if (!~index) {
+ options = 'end';
+ } else {
+ this.buttons.navigation.splice(options.before ? index : index + 1, 0, button);
+ }
+ }
+
+ if (options === 'start') {
+ this.buttons.navigation.splice(0, 0, button);
+ }
+
+ if (!options || options === 'end') {
+ this.buttons.navigation.push(button);
+ }
+ }
+ }, {
+ key: "addEditor",
+ value: function addEditor(textarea) {
+ textarea = external_jQuery_default()(textarea);
+ var options = Object.assign({}, this.options.codemirror, textarea.data('grav-editor').codemirror);
+ var theme = options.theme || 'paper';
+ this.editors = this.editors.add(textarea);
+
+ if (theme && !~ThemesMap.indexOf(theme)) {
+ ThemesMap.push(theme); // let themeCSS = `https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.12.0/theme/${theme}.min.css`;
+ // $('head').append($('
').attr('href', themeCSS));
+ }
+
+ if (options.mode === 'yaml') {
+ Object.assign(options.extraKeys, {
+ Tab: function Tab(cm) {
+ cm.replaceSelection(' ', 'end');
+ }
+ });
+ }
+
+ var editor = codemirror_default().fromTextArea(textarea.get(0), options);
+ textarea.data('codemirror', editor);
+ textarea.data('toolbar', new Toolbar(textarea));
+ textarea.addClass('code-mirrored');
+
+ if (options.toolbar === false) {
+ textarea.data('toolbar').ui.navigation.addClass('grav-editor-hide-toolbar');
+ }
+
+ editor.on('change', function () {
+ return editor.save();
+ });
+ }
+ }, {
+ key: "_onAddedNodes",
+ value: function _onAddedNodes(event, target
+ /* , record, instance */
+ ) {
+ var _this2 = this;
+
+ var editors = external_jQuery_default()(target).find('[data-grav-editor]');
+
+ if (!editors.length) {
+ return;
+ }
+
+ editors.each(function (index, editor) {
+ editor = external_jQuery_default()(editor);
+
+ if (!~_this2.editors.index(editor)) {
+ _this2.addEditor(editor);
+ }
+ });
+ }
+ }]);
+
+ return EditorField;
+}();
+
+
+var Toolbar = /*#__PURE__*/function () {
+ function Toolbar(editor) {
+ editor_classCallCheck(this, Toolbar);
+
+ this.editor = external_jQuery_default()(editor);
+ this.codemirror = this.editor.data('codemirror');
+ this.buttons = buttons.navigation;
+ this.ui = {
+ navigation: external_jQuery_default()(Toolbar.templates().navigation)
+ };
+ this.editor.parent('.grav-editor-content').before(this.ui.navigation).after(this.ui.states);
+ this.renderButtons();
+ }
+
+ editor_createClass(Toolbar, [{
+ key: "renderButtons",
+ value: function renderButtons() {
+ var _this3 = this;
+
+ var map = {
+ 'actions': 'navigation',
+ 'modes': 'states'
+ };
+ ['actions', 'modes'].forEach(function (type) {
+ _this3.ui.navigation.find(".grav-editor-".concat(type)).empty().append('
');
+
+ buttons[map[type]].forEach(function (button) {
+ return _this3.renderButton(button, type);
+ });
+ });
+ }
+ }, {
+ key: "renderButton",
+ value: function renderButton(button, type) {
+ var _this4 = this;
+
+ var location = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
+ Object.keys(button).forEach(function (key) {
+ var obj = button[key];
+
+ if (!obj.modes) {
+ obj.modes = [];
+ }
+
+ if (!~_this4.codemirror.options.ignore.indexOf(key) && (!obj.modes.length || obj.modes.indexOf(_this4.codemirror.options.mode) > -1)) {
+ var hint = obj.title ? "data-hint=\"".concat(obj.title, "\"") : '';
+ var element = external_jQuery_default()("
").concat(obj.label, ""));
+
+ (location || _this4.ui.navigation.find(".grav-editor-".concat(type, " ul:not(.dropdown-menu)"))).append(element);
+
+ if (obj.shortcut) {
+ _this4.addShortcut(obj.identifier, obj.shortcut, element);
+ }
+
+ obj.action && obj.action.call(obj.action, {
+ codemirror: _this4.codemirror,
+ button: element,
+ textarea: _this4.editor,
+ ui: _this4.ui
+ });
+
+ if (obj.children) {
+ var childrenContainer = external_jQuery_default()('');
+ element.addClass('button-group').find('a').wrap('
');
+ element.find('a').append('
');
+ element.append(childrenContainer);
+ obj.children.forEach(function (child) {
+ return _this4.renderButton(child, type, childrenContainer);
+ });
+ }
+ }
+ });
+ }
+ }, {
+ key: "addShortcut",
+ value: function addShortcut(identifier, shortcut, element) {
+ var _this5 = this;
+
+ var map = {};
+
+ if (!Array.isArray(shortcut)) {
+ shortcut = [shortcut];
+ }
+
+ shortcut.forEach(function (key) {
+ map[key] = function () {
+ element.trigger("click.editor.".concat(identifier), [_this5.codemirror]);
+ };
+ });
+ this.codemirror.addKeyMap(map);
+ }
+ }], [{
+ key: "templates",
+ value: function templates() {
+ return {
+ navigation: "\n
\n "
+ };
+ }
+ }]);
+
+ return Toolbar;
+}();
+var editor_Instance = new EditorField();
+;// CONCATENATED MODULE: ./app/pages/page/media.js
+function media_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { media_typeof = function _typeof(obj) { return typeof obj; }; } else { media_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return media_typeof(obj); }
+
+function media_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function media_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function media_createClass(Constructor, protoProps, staticProps) { if (protoProps) media_defineProperties(Constructor.prototype, protoProps); if (staticProps) media_defineProperties(Constructor, staticProps); return Constructor; }
+
+function media_get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { media_get = Reflect.get; } else { media_get = function _get(target, property, receiver) { var base = media_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return media_get(target, property, receiver || target); }
+
+function media_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = media_getPrototypeOf(object); if (object === null) break; } return object; }
+
+function media_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) media_setPrototypeOf(subClass, superClass); }
+
+function media_setPrototypeOf(o, p) { media_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return media_setPrototypeOf(o, p); }
+
+function media_createSuper(Derived) { var hasNativeReflectConstruct = media_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = media_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = media_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return media_possibleConstructorReturn(this, result); }; }
+
+function media_possibleConstructorReturn(self, call) { if (call && (media_typeof(call) === "object" || typeof call === "function")) { return call; } return media_assertThisInitialized(self); }
+
+function media_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
+
+function media_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
+
+function media_getPrototypeOf(o) { media_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return media_getPrototypeOf(o); }
+
+
+
+
+
+
+
+var previewTemplate = "\n
").trim();
+
+var PageMedia = /*#__PURE__*/function (_FilesField) {
+ media_inherits(PageMedia, _FilesField);
+
+ var _super = media_createSuper(PageMedia);
+
+ function PageMedia() {
+ var _this;
+
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+ _ref$container = _ref.container,
+ container = _ref$container === void 0 ? '#grav-dropzone' : _ref$container,
+ _ref$options = _ref.options,
+ options = _ref$options === void 0 ? {} : _ref$options;
+
+ media_classCallCheck(this, PageMedia);
+
+ options = Object.assign(options, {
+ previewTemplate: previewTemplate
+ });
+ _this = _super.call(this, {
+ container: container,
+ options: options
+ });
+
+ if (!_this.container.length) {
+ return media_possibleConstructorReturn(_this);
+ }
+
+ _this.urls = {
+ fetch: "".concat(_this.container.data('media-url'), "/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "listmedia"),
+ add: "".concat(_this.container.data('media-url'), "/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "addmedia"),
+ "delete": "".concat(_this.container.data('media-url'), "/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "delmedia")
+ };
+ _this.dropzone.options.url = _this.urls.add;
+
+ if (typeof _this.options.fetchMedia === 'undefined' || _this.options.fetchMedia) {
+ _this.fetchMedia();
+ }
+
+ if (typeof _this.options.attachDragDrop === 'undefined' || _this.options.attachDragDrop) {
+ _this.attachDragDrop();
+ }
+
+ var field = external_jQuery_default()("[name=\"".concat(_this.container.data('dropzone-field'), "\"]"));
+
+ if (field.length) {
+ _this.sortable = new sortable_esm/* default */.ZP(_this.container.get(0), {
+ animation: 150,
+ // forceFallback: true,
+ setData: function setData(dataTransfer, target) {
+ target = external_jQuery_default()(target);
+ var uri = encodeURI(target.find('.dz-filename').text());
+ var shortcode = UriToMarkdown(uri);
+
+ _this.dropzone.disable();
+
+ target.addClass('hide-backface');
+ dataTransfer.effectAllowed = 'copy';
+ dataTransfer.setData('text', shortcode);
+ },
+ onSort: function onSort() {
+ var names = [];
+
+ _this.container.find('[data-dz-name]').each(function (index, file) {
+ file = external_jQuery_default()(file);
+ var name = file.text().trim();
+ names.push(name);
+ });
+
+ field.val(names.join(','));
+ }
+ });
+ }
+
+ return _this;
+ }
+
+ media_createClass(PageMedia, [{
+ key: "fetchMedia",
+ value: function fetchMedia() {
+ var _this2 = this;
+
+ var order = this.container.closest('.form-field').find('[name="data[header][media_order]"]').val();
+ var body = {
+ uri: this.getURI(),
+ order: order
+ };
+ var url = this.urls.fetch;
+ utils_request(url, {
+ method: 'post',
+ body: body
+ }, function (response) {
+ var results = response.results;
+ Object.keys(results).forEach(function (name) {
+ var data = results[name];
+ var mock = {
+ name: name,
+ size: data.size,
+ accepted: true,
+ extras: data
+ };
+
+ _this2.dropzone.files.push(mock);
+
+ _this2.dropzone.options.addedfile.call(_this2.dropzone, mock);
+
+ _this2.dropzone.options.thumbnail.call(_this2.dropzone, mock, data.url);
+ });
+
+ _this2.container.find('.dz-preview').prop('draggable', 'true');
+ });
+ }
+ }, {
+ key: "onDropzoneSending",
+ value: function onDropzoneSending(file, xhr, formData) {
+ /*
+ // Cannot call super because Safari and IE API don't implement `delete`
+ super.onDropzoneSending(file, xhr, formData);
+ formData.delete('task');
+ */
+ formData.append('name', this.options.dotNotation || file.name);
+ formData.append('admin-nonce', external_GravAdmin_namespaceObject.config.admin_nonce);
+ formData.append('uri', this.getURI());
+ }
+ }, {
+ key: "onDropzoneComplete",
+ value: function onDropzoneComplete(file) {
+ media_get(media_getPrototypeOf(PageMedia.prototype), "onDropzoneComplete", this).call(this, file);
+
+ if (this.sortable) {
+ this.sortable.options.onSort();
+ } // accepted
+
+
+ external_jQuery_default()('.dz-preview').prop('draggable', 'true');
+ }
+ }, {
+ key: "onDropzoneRemovedFile",
+ value: function onDropzoneRemovedFile(file) {
+ var _get2;
+
+ for (var _len = arguments.length, extra = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ extra[_key - 1] = arguments[_key];
+ }
+
+ (_get2 = media_get(media_getPrototypeOf(PageMedia.prototype), "onDropzoneRemovedFile", this)).call.apply(_get2, [this, file].concat(extra));
+
+ if (this.sortable) {
+ this.sortable.options.onSort();
+ }
+ }
+ }, {
+ key: "attachDragDrop",
+ value: function attachDragDrop() {
+ var _this3 = this;
+
+ this.container.delegate('[data-dz-insert]', 'click', function (e) {
+ var target = external_jQuery_default()(e.currentTarget).parent('.dz-preview').find('.dz-filename');
+ var editor = editor_Instance.editors.filter(function (index, editor) {
+ return external_jQuery_default()(editor).attr('name') === 'data[content]';
+ });
+
+ if (editor.length) {
+ editor = editor.data('codemirror');
+ editor.focus();
+ var filename = encodeURI(target.text());
+ var shortcode = UriToMarkdown(filename);
+ editor.doc.replaceSelection(shortcode);
+ }
+ });
+ this.container.delegate('[data-dz-view]', 'mouseenter', function (e) {
+ var target = external_jQuery_default()(e.currentTarget);
+ var file = target.parent('.dz-preview').find('.dz-filename');
+ var filename = encodeURI(file.text());
+ var URL = target.closest('[data-media-path]').data('media-path');
+
+ var original = _this3.dropzone.files.filter(function (file) {
+ return encodeURI(file.name) === filename;
+ }).shift();
+
+ original = original && (original.extras && original.extras.original || encodeURI(original.name));
+ target.attr('href', "".concat(URL, "/").concat(original));
+ });
+ this.container.delegate('[data-dz-metadata]', 'click', function (e) {
+ e.preventDefault();
+ var target = external_jQuery_default()(e.currentTarget);
+ var file = target.parent('.dz-preview').find('.dz-filename');
+ var filename = encodeURI(file.text());
+ var fileObj = _this3.dropzone.files.filter(function (file) {
+ return file.name === __webpack_require__.g.decodeURI(filename);
+ }).shift() || {};
+
+ if (!fileObj.extras) {
+ fileObj.extras = {
+ metadata: []
+ };
+ }
+
+ if (Array.isArray(fileObj.extras.metadata) && !fileObj.extras.metadata.length) {
+ fileObj.extras.metadata = {
+ '': "".concat(__webpack_require__.g.decodeURI(filename), ".meta.yaml doesn't exist")
+ };
+ }
+
+ fileObj = fileObj.extras;
+ var modal_element = external_jQuery_default()('body').find('[data-remodal-id="metadata"]');
+ var modal = (external_jQuery_default()).remodal.lookup[modal_element.data('remodal')];
+ modal_element.find('h1 strong').html(filename);
+
+ if (fileObj.url) {
+ modal_element.find('.meta-preview').html("
"));
+ }
+
+ var container = modal_element.find('.meta-content').html('
').find('ul');
+ Object.keys(fileObj.metadata).forEach(function (meta) {
+ container.append("
".concat(meta ? meta + ':' : '', " ").concat(fileObj.metadata[meta], ""));
+ });
+ modal.open();
+ });
+ this.container.delegate('.dz-preview', 'dragstart', function (e) {
+ var target = external_jQuery_default()(e.currentTarget);
+ var uri = encodeURI(target.find('.dz-filename').text());
+ var shortcode = UriToMarkdown(uri);
+
+ _this3.dropzone.disable();
+
+ target.addClass('hide-backface');
+ e.originalEvent.dataTransfer.effectAllowed = 'copy';
+ e.originalEvent.dataTransfer.setData('text', shortcode);
+ });
+ this.container.delegate('.dz-preview', 'dragend', function (e) {
+ var target = external_jQuery_default()(e.currentTarget);
+
+ _this3.dropzone.enable();
+
+ target.removeClass('hide-backface');
+ });
+ }
+ }]);
+
+ return PageMedia;
+}(FilesField);
+
+
+var media_Instance = new PageMedia();
+;// CONCATENATED MODULE: ./app/pages/page/multilang.js
+
+external_jQuery_default()('[name="task"][value="saveas"], [name="task"][value="switchlanguage"]').on('mousedown touchstart', function (event) {
+ var fields = ['lang', 'redirect'];
+ var element = external_jQuery_default()(event.currentTarget);
+ var form = external_jQuery_default()("#".concat(element.attr('form')));
+
+ if (!form.length) {
+ return;
+ }
+
+ fields.forEach(function (field) {
+ var value = element.attr(field);
+
+ if (!value) {
+ return;
+ }
+
+ var input = form.find("[name=\"data[".concat(field, "]\"]"));
+
+ if (!input.length) {
+ input = external_jQuery_default()("
"));
+ form.append(input);
+ }
+
+ input.val(value);
+ });
+ return true;
+});
+;// CONCATENATED MODULE: ./app/pages/page/index.js
+
+
+
+
+
+
+
+
+var page_switcher = external_jQuery_default()('input[type="radio"][name="mode-switch"]');
+
+if (page_switcher) {
+ var page_link = page_switcher.closest(':checked').data('leave-url');
+ var fakeLink = external_jQuery_default()("
"));
+ page_switcher.parent().append(fakeLink);
+ page_switcher.siblings('label').on('mousedown touchdown', function (event) {
+ event.preventDefault(); // let remodal = $.remodal.lookup[$('[data-remodal-id="changes"]').data('remodal')];
+
+ var confirm = external_jQuery_default()('[data-remodal-id="changes"] [data-leave-action="continue"]');
+ confirm.one('click', function () {
+ external_jQuery_default()(__webpack_require__.g).on('beforeunload._grav');
+ fakeLink.off('click._grav');
+ external_jQuery_default()(event.target).trigger('click');
+ });
+ fakeLink.trigger('click._grav');
+ });
+ page_switcher.on('change', function (event) {
+ var radio = external_jQuery_default()(event.target);
+ page_link = radio.data('leave-url');
+ setTimeout(function () {
+ return fakeLink.attr('href', page_link).get(0).click();
+ }, 5);
+ });
+}
+
+/* harmony default export */ const page = ({
+ Media: {
+ PageMedia: PageMedia,
+ PageMediaInstances: media_Instance
+ }
+});
+;// CONCATENATED MODULE: ./app/pages/index.js
+
+
+
+
+
+var pad = function pad(n, s) {
+ return "000".concat(n).substr(-s);
+}; // Pages Ordering
+
+
+var Ordering = null;
+var orderingElement = external_jQuery_default()('#ordering');
+
+if (orderingElement.length) {
+ Ordering = new sortable_esm/* default */.ZP(orderingElement.get(0), {
+ filter: '.ignore',
+ onUpdate: function onUpdate() {
+ /* Old single page index behavior
+ let item = $(event.item);
+ let index = orderingElement.children().index(item) + 1;
+ $('[data-order]').val(index);
+ */
+ var indexes = [];
+ var children = orderingElement.children();
+ var padZero = (children.length + '').split('').length;
+ children.each(function (index, item) {
+ item = external_jQuery_default()(item);
+ indexes.push(item.data('id'));
+ item.find('.page-order').text("".concat(pad(index + 1, padZero), "."));
+ });
+ external_jQuery_default()('[data-order]').val(indexes.join(','));
+ }
+ });
+ external_jQuery_default()(document).on('input', '[name="data[folder]"]', function (event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var activeOrder = external_jQuery_default()('[data-id][data-active-id]');
+ activeOrder.data('id', target.val());
+ Ordering.options.onUpdate();
+ });
+}
+
+/* harmony default export */ const pages = ({
+ Ordering: Ordering,
+ Page: page,
+ PageFilters: {
+ PageFilters: PagesFilter,
+ Instance: filter_Instance
+ }
+});
+// EXTERNAL MODULE: ./node_modules/immutable/dist/immutable.js
+var immutable = __webpack_require__(43393);
+var immutable_default = /*#__PURE__*/__webpack_require__.n(immutable);
+// EXTERNAL MODULE: ./node_modules/immutablediff/src/diff.js
+var src_diff = __webpack_require__(64847);
+var diff_default = /*#__PURE__*/__webpack_require__.n(src_diff);
+;// CONCATENATED MODULE: ./app/forms/state.js
+function state_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function state_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function state_createClass(Constructor, protoProps, staticProps) { if (protoProps) state_defineProperties(Constructor.prototype, protoProps); if (staticProps) state_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+var FormLoadState = {};
+var DOMBehaviors = {
+ attach: function attach() {
+ this.preventUnload();
+ this.preventClickAway();
+ },
+ preventUnload: function preventUnload() {
+ var selector = '[name="task"][value^="save"], [data-delete-action], [data-flex-safe-action]';
+
+ if (external_jQuery_default()._data(window, 'events') && (external_jQuery_default()._data(window, 'events').beforeunload || []).filter(function (event) {
+ return event.namespace === '_grav';
+ }).length) {
+ return;
+ } // Allow some elements to leave the page without native confirmation
+
+
+ external_jQuery_default()(selector).on('click._grav', function (event) {
+ external_jQuery_default()(__webpack_require__.g).off('beforeunload');
+ }); // Catch browser uri change / refresh attempt and stop it if the form state is dirty
+
+ external_jQuery_default()(__webpack_require__.g).on('beforeunload._grav', function () {
+ if (state_Instance.equals() === false) {
+ return 'You have made changes on this page that you have not yet confirmed. If you navigate away from this page you will lose your unsaved changes.';
+ }
+ });
+ },
+ preventClickAway: function preventClickAway() {
+ var selector = 'a[href]:not([href^="#"]):not([target="_blank"]):not([href^="javascript:"])';
+
+ if (external_jQuery_default()._data(external_jQuery_default()(selector).get(0), 'events') && (external_jQuery_default()._data(external_jQuery_default()(selector).get(0), 'events').click || []).filter(function (event) {
+ return event.namespace === '_grav';
+ })) {
+ return;
+ } // Prevent clicking away if the form state is dirty
+ // instead, display a confirmation before continuing
+
+
+ external_jQuery_default()(selector).on('click._grav', function (event) {
+ var isClean = state_Instance.equals();
+
+ if (isClean === null || isClean) {
+ return true;
+ }
+
+ event.preventDefault();
+ var destination = external_jQuery_default()(this).attr('href');
+ var modal = external_jQuery_default()('[data-remodal-id="changes"]');
+ var lookup = (external_jQuery_default()).remodal.lookup[modal.data('remodal')];
+ var buttons = external_jQuery_default()('a.button', modal);
+
+ var handler = function handler(event) {
+ event.preventDefault();
+ var action = external_jQuery_default()(this).data('leave-action');
+ buttons.off('click', handler);
+ lookup.close();
+
+ if (action === 'continue') {
+ external_jQuery_default()(__webpack_require__.g).off('beforeunload');
+ __webpack_require__.g.location.href = destination;
+ }
+ };
+
+ buttons.on('click', handler);
+ lookup.open();
+ });
+ }
+};
+
+var FormState = /*#__PURE__*/function () {
+ function FormState() {
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
+ ignore: [],
+ form_id: 'blueprints'
+ };
+
+ state_classCallCheck(this, FormState);
+
+ this.options = options;
+ this.refresh();
+
+ if (!this.form || !this.fields.length) {
+ return;
+ }
+
+ FormLoadState = this.collect();
+ this.loadState = FormLoadState;
+ DOMBehaviors.attach();
+ }
+
+ state_createClass(FormState, [{
+ key: "refresh",
+ value: function refresh() {
+ this.form = external_jQuery_default()("form#".concat(this.options.form_id)).filter(':noparents(.remodal)');
+ this.fields = external_jQuery_default()("form#".concat(this.options.form_id, " *, [form=\"").concat(this.options.form_id, "\"]")).filter(':input:not(.no-form)').filter(':noparents(.remodal)');
+ return this;
+ }
+ }, {
+ key: "collect",
+ value: function collect() {
+ var _this = this;
+
+ if (!this.form || !this.fields.length) {
+ return;
+ }
+
+ var values = {};
+ this.refresh().fields.each(function (index, field) {
+ field = external_jQuery_default()(field);
+ var name = field.prop('name');
+ var type = field.prop('type');
+ var tag = field.prop('tagName').toLowerCase();
+ var value;
+
+ if (name.startsWith('toggleable_') || name === 'data[lang]' || name === 'data[redirect]') {
+ return;
+ }
+
+ switch (type) {
+ case 'checkbox':
+ value = field.is(':checked');
+ break;
+
+ case 'radio':
+ if (!field.is(':checked')) {
+ return;
+ }
+
+ value = field.val();
+ break;
+
+ default:
+ value = field.val();
+ }
+
+ if (tag === 'select' && value === null) {
+ value = '';
+ }
+
+ if (Array.isArray(value)) {
+ value = value.join('|');
+ }
+
+ if (name && !~_this.options.ignore.indexOf(name)) {
+ values[name] = value;
+ }
+ });
+ return immutable_default().OrderedMap(values);
+ }
+ }, {
+ key: "diff",
+ value: function diff() {
+ return diff_default()(FormLoadState, this.collect());
+ } // When the form doesn't exist or there are no fields, `equals` returns `null`
+ // for this reason, _NEVER_ check with !Instance.equals(), use Instance.equals() === false
+
+ }, {
+ key: "equals",
+ value: function equals() {
+ if (!this.form || !this.fields.length) {
+ return null;
+ }
+
+ return immutable_default().is(FormLoadState, this.collect());
+ }
+ }]);
+
+ return FormState;
+}();
+
+
+;
+var state_Instance = new FormState();
+
+;// CONCATENATED MODULE: ./app/forms/form.js
+function form_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function form_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function form_createClass(Constructor, protoProps, staticProps) { if (protoProps) form_defineProperties(Constructor.prototype, protoProps); if (staticProps) form_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+/* Dependencies for checking if changes happened since load on a form
+import toastr from '../utils/toastr';
+import { translations } from 'grav-config';
+import { Instance as FormState } from './state';
+*/
+
+var Form = /*#__PURE__*/function () {
+ function Form(form) {
+ var _this = this;
+
+ form_classCallCheck(this, Form);
+
+ this.form = external_jQuery_default()(form);
+
+ if (!this.form.length || this.form.prop('tagName').toLowerCase() !== 'form') {
+ return;
+ }
+ /* Option for not saving while nothing in a form has changed
+ this.form.on('submit', (event) => {
+ if (FormState.equals()) {
+ event.preventDefault();
+ toastr.info(translations.PLUGIN_ADMIN.NOTHING_TO_SAVE);
+ }
+ }); */
+
+
+ this._attachShortcuts();
+
+ this._attachToggleables();
+
+ this._attachDisabledFields();
+
+ this._submitUncheckedFields();
+
+ this.observer = new MutationObserver(this.addedNodes);
+ this.form.each(function (index, form) {
+ return _this.observer.observe(form, {
+ subtree: true,
+ childList: true
+ });
+ });
+ }
+
+ form_createClass(Form, [{
+ key: "_attachShortcuts",
+ value: function _attachShortcuts() {
+ // CTRL + S / CMD + S - shortcut for [Save] when available
+ var saveTask = external_jQuery_default()('#titlebar [name="task"][value="save"][form="blueprints"]');
+
+ if (saveTask.length) {
+ external_jQuery_default()(__webpack_require__.g).on('keydown', function (event) {
+ var key = String.fromCharCode(event.which).toLowerCase();
+
+ if (!event.shiftKey && (event.ctrlKey && !event.altKey || event.metaKey) && key === 's') {
+ event.preventDefault();
+ saveTask.click();
+ }
+ });
+ }
+ }
+ }, {
+ key: "_attachToggleables",
+ value: function _attachToggleables() {
+ var query = '[data-grav-field="toggleable"] input[type="checkbox"]';
+ this.form.on('change', query, function (event) {
+ var toggle = external_jQuery_default()(event.target);
+ var enabled = toggle.is(':checked');
+ var parent = toggle.closest('.form-field');
+ var label = parent.find('label.toggleable');
+ var fields = parent.find('.form-data');
+ var inputs = fields.find('input, select, textarea, button');
+ label.add(fields).css('opacity', enabled ? '' : 0.7);
+ inputs.map(function (index, input) {
+ var isSelectize = input.selectize;
+ input = external_jQuery_default()(input);
+
+ if (isSelectize) {
+ isSelectize[enabled ? 'enable' : 'disable']();
+ } else {
+ input.prop('disabled', !enabled);
+ }
+ });
+ });
+ this.form.find(query).trigger('change');
+ }
+ }, {
+ key: "_attachDisabledFields",
+ value: function _attachDisabledFields() {
+ var prefix = '.form-field-toggleable .form-data';
+ var query = [];
+ ['input', 'select', 'label[for]', 'textarea', '.selectize-control'].forEach(function (item) {
+ query.push("".concat(prefix, " ").concat(item));
+ });
+ this.form.on('mousedown', query.join(', '), function (event) {
+ var input = external_jQuery_default()(event.target);
+ var isFor = input.prop('for');
+ var isSelectize = (input.hasClass('selectize-control') || input.parents('.selectize-control')).length;
+
+ if (isFor) {
+ input = external_jQuery_default()("[id=\"".concat(isFor, "\"]"));
+ }
+
+ if (isSelectize) {
+ input = input.closest('.selectize-control').siblings('select[name]');
+ }
+
+ if (!input.prop('disabled')) {
+ return true;
+ }
+
+ var toggle = input.closest('.form-field').find('[data-grav-field="toggleable"] input[type="checkbox"]');
+ toggle.trigger('click');
+ });
+ }
+ }, {
+ key: "_submitUncheckedFields",
+ value: function _submitUncheckedFields() {
+ var submitted = false;
+ this.form.each(function (index, form) {
+ form = external_jQuery_default()(form);
+ form.on('submit', function () {
+ // workaround for MS Edge, submitting multiple forms at the same time
+ if (submitted) {
+ return false;
+ }
+
+ var formId = form.attr('id');
+ var unchecked = form.find('input[type="checkbox"]:not(:checked):not(:disabled)');
+ var submit = form.find('[type="submit"]').add("[form=\"".concat(formId, "\"][type=\"submit\"]"));
+
+ if (!unchecked.length) {
+ return true;
+ }
+
+ submit.addClass('pointer-events-disabled');
+ unchecked.each(function (index, element) {
+ element = external_jQuery_default()(element);
+ var name = element.prop('name');
+ var fake = external_jQuery_default()("
"));
+ form.append(fake);
+ });
+ submitted = true;
+ return true;
+ });
+ });
+ }
+ }, {
+ key: "addedNodes",
+ value: function addedNodes(mutations) {
+ var _this2 = this;
+
+ mutations.forEach(function (mutation) {
+ if (mutation.type !== 'childList') {
+ return;
+ }
+
+ if (mutation.addedNodes) {
+ external_jQuery_default()('body').trigger('mutation._grav', mutation.target, mutation, _this2);
+ }
+
+ if (mutation.removedNodes) {
+ external_jQuery_default()('body').trigger('mutation_removed._grav', {
+ target: mutation.target,
+ mutation: mutation
+ }, _this2);
+ }
+ });
+ }
+ }]);
+
+ return Form;
+}();
+
+
+var form_Instance = new Form('form#blueprints');
+;// CONCATENATED MODULE: ./app/forms/fields/filepicker.js
+function filepicker_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function filepicker_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function filepicker_createClass(Constructor, protoProps, staticProps) { if (protoProps) filepicker_defineProperties(Constructor.prototype, protoProps); if (staticProps) filepicker_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+ // const insertTextAt = (string, index, text) => [string.slice(0, index), text, string.slice(index)].join('');
+
+var FilePickerField = /*#__PURE__*/function () {
+ function FilePickerField(options) {
+ var _this = this;
+
+ filepicker_classCallCheck(this, FilePickerField);
+
+ this.items = external_jQuery_default()();
+ this.options = Object.assign({}, this.defaults, options);
+ external_jQuery_default()('[data-grav-filepicker]').each(function (index, element) {
+ return _this.addItem(element);
+ });
+ external_jQuery_default()('body').on('mutation._grav', this._onAddedNodes.bind(this));
+ }
+
+ filepicker_createClass(FilePickerField, [{
+ key: "_onAddedNodes",
+ value: function _onAddedNodes(event, target
+ /* , record, instance */
+ ) {
+ var _this2 = this;
+
+ var fields = external_jQuery_default()(target).find('[data-grav-filepicker]');
+
+ if (!fields.length) {
+ return;
+ }
+
+ fields.each(function (index, field) {
+ field = external_jQuery_default()(field);
+
+ if (!~_this2.items.index(field)) {
+ _this2.addItem(field);
+ }
+ });
+ }
+ }, {
+ key: "addItem",
+ value: function addItem(element) {
+ element = external_jQuery_default()(element);
+ this.items = this.items.add(element);
+ var tag = element.prop('tagName').toLowerCase();
+ var isInput = tag === 'input' || tag === 'select';
+ var field = isInput ? element : element.find('input, select');
+ var folder = '';
+ var thumbs = {};
+ var onDemand = field.closest('[data-ondemand]').length > 0;
+
+ if (!field.length || field.get(0).selectize) {
+ return;
+ }
+
+ var getData = function getData(field, callback) {
+ var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';
+ var url = external_GravAdmin_namespaceObject.config.current_url + ".json/task".concat(external_GravAdmin_namespaceObject.config.param_sep, "getFilesInFolder");
+ var parent = field.closest('[data-grav-filepicker]');
+ var name = parent.data('name');
+ var value = parent.data('value');
+ var params = JSON.stringify(external_GravAdmin_namespaceObject.uri_params || '{}');
+ utils_request(url, {
+ method: 'post',
+ body: {
+ name: name,
+ params: params
+ }
+ }, function (response) {
+ if (typeof response.files === 'undefined') {
+ return;
+ }
+
+ var data = [];
+ thumbs = response.thumbs || {};
+
+ for (var i = 0; i < response.files.length; i++) {
+ if (mode === 'selected' && response.files[i] !== value) {
+ continue;
+ }
+
+ data.push({
+ 'name': response.files[i],
+ 'status': 'available',
+ thumb: thumbs[response.files[i]] || ''
+ });
+ }
+
+ for (var _i = 0; _i < response.pending.length; _i++) {
+ if (mode === 'selected' && response.pending[_i] !== value) {
+ continue;
+ }
+
+ data.push({
+ 'name': response.pending[_i],
+ 'status': 'pending',
+ thumb: thumbs[response.pending[_i]] || ''
+ });
+ }
+
+ folder = response.folder;
+ callback(data, value);
+ });
+ };
+
+ var imagesPreview = field.closest('[data-preview-images]').length > 0;
+ var selectedIsRendered = false;
+
+ var renderOption = function renderOption(item, escape) {
+ var image = '';
+
+ if (imagesPreview && folder && (!item.status || item.status === 'available') && item.name.match(/\.(jpg|jpeg|png|gif|webp)$/i)) {
+ // const fallback2x = insertTextAt(`${config.base_url_relative}/../${folder}/${item.name}`, -4, '@2x');
+ // const fallback3x = insertTextAt(`${config.base_url_relative}/../${folder}/${item.name}`, -4, '@3x');
+ var source = thumbs[item.name] || "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/../").concat(folder, "/").concat(item.name); // onerror="if(this.src==='${fallback2x}'){this.src='${fallback3x}';}else{this.src='${fallback2x}'}"
+
+ image = "
");
+ }
+
+ return "
\n \n ".concat(image, " ").concat(escape(item.name), "\n \n
");
+ };
+
+ field.selectize({
+ plugins: ['required-fix'],
+ valueField: 'name',
+ labelField: 'name',
+ searchField: 'name',
+ optgroups: [{
+ $order: 1,
+ value: 'pending',
+ label: 'Pending'
+ }, {
+ $order: 2,
+ value: 'available',
+ label: 'Available'
+ }],
+ optgroupField: 'status',
+ // lockOptgroupOrder: true,
+ create: false,
+ preload: false,
+ // 'focus',
+ render: {
+ option: function option(item, escape) {
+ return renderOption(item, escape);
+ },
+ item: function item(_item, escape) {
+ return renderOption(_item, escape);
+ }
+ },
+ onInitialize: function onInitialize() {
+ if (!onDemand) {
+ this.load(function (callback) {
+ return getData(field, function (data) {
+ return callback(data);
+ }, 'selected');
+ });
+ }
+ },
+ onLoad: function onLoad()
+ /* data */
+ {
+ if (!selectedIsRendered) {
+ var name = this.getValue();
+ this.updateOption(name, {
+ name: name
+ });
+ selectedIsRendered = true;
+ }
+ },
+ onFocus: function onFocus() {
+ this.load(function (callback) {
+ return getData(field, function (data) {
+ return callback(data);
+ });
+ });
+ }
+ });
+ }
+ }]);
+
+ return FilePickerField;
+}();
+
+
+var filepicker_Instance = new FilePickerField();
+;// CONCATENATED MODULE: ./app/utils/selectize-option-click.js
+
+
+selectize_default().define('option_click', function (options) {
+ var self = this;
+ var setup = self.setup;
+
+ this.setup = function () {
+ setup.apply(self, arguments);
+ var clicking = false; // Detect click on a .clickable
+
+ self.$dropdown_content.on('mousedown click', function (e) {
+ var target = external_jQuery_default()(e.target);
+
+ if (target.hasClass('clickable') || target.closest('.clickable').length) {
+ if (e.type === 'mousedown') {
+ clicking = true;
+ self.isFocused = false; // awful hack to defuse the document mousedown listener
+ } else {
+ self.isFocused = true;
+ setTimeout(function () {
+ clicking = false; // wait until blur has been preempted
+ });
+ }
+ } else {
+ // cleanup in case user right-clicked or dragged off the element
+ clicking = false;
+ self.isFocused = true;
+ }
+ }); // Intercept default handlers
+
+ self.$dropdown.off('mousedown click', '[data-selectable]').on('mousedown click', '[data-selectable]', function () {
+ if (!clicking) {
+ return self.onOptionSelect.apply(self, arguments);
+ }
+ });
+ self.$control_input.off('blur').on('blur', function () {
+ if (!clicking) {
+ return self.onBlur.apply(self, arguments);
+ }
+ });
+ };
+});
+;// CONCATENATED MODULE: ./app/forms/fields/selectize.js
+function selectize_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function selectize_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function selectize_createClass(Constructor, protoProps, staticProps) { if (protoProps) selectize_defineProperties(Constructor.prototype, protoProps); if (staticProps) selectize_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+var PagesRoute = {
+ option: function option(item, escape) {
+ var label = escape(item.text).split(' ');
+ var arrows = label.shift();
+ var slug = label.shift();
+ return "
\n ".concat(arrows, "\n \n ").concat(slug.replace('(', '/').replace(')', ''), "\n ").concat(label.join(' '), "\n \n
");
+ }
+};
+
+var SelectizeField = /*#__PURE__*/function () {
+ function SelectizeField() {
+ var _this = this;
+
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+ selectize_classCallCheck(this, SelectizeField);
+
+ this.options = Object.assign({}, options);
+ this.elements = [];
+ external_jQuery_default()('[data-grav-selectize]').each(function (index, element) {
+ return _this.add(element);
+ });
+ external_jQuery_default()('body').on('mutation._grav', this._onAddedNodes.bind(this));
+ }
+
+ selectize_createClass(SelectizeField, [{
+ key: "add",
+ value: function add(element) {
+ element = external_jQuery_default()(element);
+
+ if (element.closest('template').length) {
+ return false;
+ }
+
+ var tag = element.prop('tagName').toLowerCase();
+ var isInput = tag === 'input' || tag === 'select';
+ var data = (isInput ? element.closest('[data-grav-selectize]') : element).data('grav-selectize') || {};
+ var field = isInput ? element : element.find('input, select');
+
+ if (field.attr('name') === 'data[route]') {
+ data = external_jQuery_default().extend({}, data, {
+ render: PagesRoute
+ });
+ }
+
+ if (!field.length || field.get(0).selectize) {
+ return;
+ }
+
+ var plugins = external_jQuery_default().merge(data.plugins ? data.plugins : [], ['required-fix']);
+ field.selectize(external_jQuery_default().extend({}, data, {
+ plugins: plugins
+ }));
+ this.elements.push(field.data('selectize'));
+ }
+ }, {
+ key: "_onAddedNodes",
+ value: function _onAddedNodes(event, target
+ /* , record, instance */
+ ) {
+ var _this2 = this;
+
+ var fields = external_jQuery_default()(target).find('select.fancy, input.fancy, [data-grav-selectize]').filter(function (index, element) {
+ return !external_jQuery_default()(element).closest('template').length;
+ });
+
+ if (!fields.length) {
+ return;
+ }
+
+ fields.each(function (index, field) {
+ return _this2.add(field);
+ });
+ }
+ }]);
+
+ return SelectizeField;
+}();
+
+
+var selectize_Instance = new SelectizeField();
+;// CONCATENATED MODULE: ./app/forms/fields/array.js
+function array_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function array_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function array_createClass(Constructor, protoProps, staticProps) { if (protoProps) array_defineProperties(Constructor.prototype, protoProps); if (staticProps) array_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+var body = external_jQuery_default()('body');
+
+var Template = /*#__PURE__*/function () {
+ function Template(container) {
+ array_classCallCheck(this, Template);
+
+ this.container = external_jQuery_default()(container);
+
+ if (this.getName() === undefined) {
+ this.container = this.container.closest('[data-grav-array-name]');
+ }
+ }
+
+ array_createClass(Template, [{
+ key: "getName",
+ value: function getName() {
+ return this.container.data('grav-array-name') || '';
+ }
+ }, {
+ key: "getKeyPlaceholder",
+ value: function getKeyPlaceholder() {
+ return this.container.data('grav-array-keyname') || 'Key';
+ }
+ }, {
+ key: "getValuePlaceholder",
+ value: function getValuePlaceholder() {
+ return this.container.data('grav-array-valuename') || 'Value';
+ }
+ }, {
+ key: "isValueOnly",
+ value: function isValueOnly() {
+ return this.container.find('[data-grav-array-mode="value_only"]:first').length || false;
+ }
+ }, {
+ key: "isTextArea",
+ value: function isTextArea() {
+ return this.container.data('grav-array-textarea') || false;
+ }
+ }, {
+ key: "shouldBeDisabled",
+ value: function shouldBeDisabled() {
+ // check for toggleables, if field is toggleable and it's not enabled, render disabled
+ var toggle = this.container.closest('.form-field').find('[data-grav-field="toggleable"] input[type="checkbox"]');
+ return toggle.length && toggle.is(':not(:checked)');
+ }
+ }, {
+ key: "getNewRow",
+ value: function getNewRow() {
+ var tpl = '';
+ var value = this.isTextArea() ? "
") : "
");
+
+ if (this.isValueOnly()) {
+ tpl += "\n
\n
\n ".concat(value, "\n ");
+ } else {
+ tpl += "\n
\n \n \n ").concat(value, "\n ");
+ }
+
+ tpl += "\n \n \n
";
+ return tpl;
+ }
+ }]);
+
+ return Template;
+}();
+
+var ArrayField = /*#__PURE__*/function () {
+ function ArrayField() {
+ var _this = this;
+
+ array_classCallCheck(this, ArrayField);
+
+ body.on('input', '[data-grav-array-type="key"], [data-grav-array-type="value"]', function (event) {
+ return _this.actionInput(event);
+ });
+ body.on('click touch', '[data-grav-array-action]:not([data-grav-array-action="sort"])', function (event) {
+ return _this.actionEvent(event);
+ });
+ this.arrays = external_jQuery_default()();
+ external_jQuery_default()('[data-grav-field="array"]').each(function (index, list) {
+ return _this.addArray(list);
+ });
+ external_jQuery_default()('body').on('mutation._grav', this._onAddedNodes.bind(this));
+ }
+
+ array_createClass(ArrayField, [{
+ key: "addArray",
+ value: function addArray(list) {
+ var _this2 = this;
+
+ list = external_jQuery_default()(list);
+ list.find('[data-grav-array-type="container"]').each(function (index, container) {
+ container = external_jQuery_default()(container);
+
+ if (container.data('array-sort') || container[0].hasAttribute('data-array-nosort')) {
+ return;
+ }
+
+ container.data('array-sort', new sortable_esm/* default */.ZP(container.get(0), {
+ handle: '.fa-bars',
+ animation: 150,
+ onUpdate: function onUpdate() {
+ var item = container.find('[data-grav-array-type="row"]:first');
+
+ _this2._setTemplate(item);
+
+ var template = item.data('array-template');
+
+ _this2.refreshNames(template);
+ }
+ }));
+ });
+ }
+ }, {
+ key: "actionInput",
+ value: function actionInput(event) {
+ var element = external_jQuery_default()(event.target);
+ var type = element.data('grav-array-type');
+
+ this._setTemplate(element);
+
+ var template = element.data('array-template');
+ var keyElement = type === 'key' ? element : element.siblings('[data-grav-array-type="key"]:first');
+ var valueElement = type === 'value' ? element : element.siblings('[data-grav-array-type="value"]:first');
+ var escaped_name = !template.isValueOnly() ? keyElement.val() : this.getIndexFor(element);
+ escaped_name = escaped_name.toString().replace(/\[/g, '%5B').replace(/]/g, '%5D');
+ var name = "".concat(template.getName(), "[").concat(escaped_name, "]");
+
+ if (!template.isValueOnly() && !keyElement.val() && !valueElement.val()) {
+ valueElement.attr('name', '');
+ } else {
+ // valueElement.attr('name', !valueElement.val() ? template.getName() : name);
+ valueElement.attr('name', name);
+ }
+
+ this.refreshNames(template);
+ }
+ }, {
+ key: "actionEvent",
+ value: function actionEvent(event) {
+ event && event.preventDefault();
+ var element = external_jQuery_default()(event.target);
+ var action = element.data('grav-array-action');
+ var container = element.parents('[data-grav-array-type="container"]');
+
+ this._setTemplate(element);
+
+ this["".concat(action, "Action")](element);
+ var siblings = container.find('> div');
+ container[siblings.length > 1 ? 'removeClass' : 'addClass']('one-child');
+ }
+ }, {
+ key: "addAction",
+ value: function addAction(element) {
+ var template = element.data('array-template');
+ var row = element.closest('[data-grav-array-type="row"]');
+ row.after(template.getNewRow());
+ }
+ }, {
+ key: "remAction",
+ value: function remAction(element) {
+ var template = element.data('array-template');
+ var row = element.closest('[data-grav-array-type="row"]');
+ var isLast = !row.siblings().length;
+
+ if (isLast) {
+ var newRow = external_jQuery_default()(template.getNewRow());
+ row.after(newRow);
+ newRow.find('[data-grav-array-type="value"]:last').attr('name', template.getName());
+ }
+
+ row.remove();
+ this.refreshNames(template);
+ }
+ }, {
+ key: "refreshNames",
+ value: function refreshNames(template) {
+ if (!template.isValueOnly()) {
+ return;
+ }
+
+ var row = template.container.find('> div > [data-grav-array-type="row"]');
+ var inputs = row.find('[name]:not([name=""])');
+ inputs.each(function (index, input) {
+ input = external_jQuery_default()(input);
+ var preserved_name = input.closest('[data-grav-array-name]');
+ var name = "".concat(preserved_name.attr('data-grav-array-name'), "[").concat(index, "]");
+ input.attr('name', name);
+ });
+
+ if (!inputs.length) {
+ row.find('[data-grav-array-type="value"]').attr('name', template.getName());
+ }
+ }
+ }, {
+ key: "getIndexFor",
+ value: function getIndexFor(element) {
+ var template = element.data('array-template');
+ var row = element.closest('[data-grav-array-type="row"]');
+ return template.container.find("".concat(template.isValueOnly() ? '> div ' : '', " > [data-grav-array-type=\"row\"]")).index(row);
+ }
+ }, {
+ key: "_setTemplate",
+ value: function _setTemplate(element) {
+ if (!element.data('array-template')) {
+ element.data('array-template', new Template(element.closest('[data-grav-array-name]')));
+ }
+ }
+ }, {
+ key: "_onAddedNodes",
+ value: function _onAddedNodes(event, target
+ /* , record, instance */
+ ) {
+ var _this3 = this;
+
+ var arrays = external_jQuery_default()(target).find('[data-grav-field="array"]');
+
+ if (!arrays.length) {
+ return;
+ }
+
+ arrays.each(function (index, list) {
+ list = external_jQuery_default()(list);
+
+ if (!~_this3.arrays.index(list)) {
+ _this3.addArray(list);
+ }
+ });
+ }
+ }]);
+
+ return ArrayField;
+}();
+
+
+var array_Instance = new ArrayField();
+;// CONCATENATED MODULE: ./app/forms/fields/collections.js
+function collections_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function collections_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function collections_createClass(Constructor, protoProps, staticProps) { if (protoProps) collections_defineProperties(Constructor.prototype, protoProps); if (staticProps) collections_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+var CollectionsField = /*#__PURE__*/function () {
+ function CollectionsField() {
+ var _this = this;
+
+ collections_classCallCheck(this, CollectionsField);
+
+ this.lists = external_jQuery_default()();
+ external_jQuery_default()('[data-type="collection"]').each(function (index, list) {
+ return _this.addList(list);
+ });
+ external_jQuery_default()('body').on('mutation._grav', this._onAddedNodes.bind(this));
+ }
+
+ collections_createClass(CollectionsField, [{
+ key: "addList",
+ value: function addList(list) {
+ var _this2 = this;
+
+ list = external_jQuery_default()(list);
+ this.lists = this.lists.add(list);
+ list.on('click', '> .collection-actions [data-action="add"]', function (event) {
+ return _this2.addItem(event);
+ });
+ list.on('click', '> ul > li > .item-actions [data-action="delete"]', function (event) {
+ return _this2.removeItem(event);
+ });
+ list.on('click', '> ul > li > .item-actions [data-action="collapse"]', function (event) {
+ return _this2.collapseItem(event);
+ });
+ list.on('click', '> ul > li > .item-actions [data-action="expand"]', function (event) {
+ return _this2.expandItem(event);
+ });
+ list.on('click', '> .collection-actions [data-action-sort="date"]', function (event) {
+ return _this2.sortItems(event);
+ });
+ list.on('click', '> .collection-actions [data-action="collapse_all"]', function (event) {
+ return _this2.collapseItems(event);
+ });
+ list.on('click', '> .collection-actions [data-action="expand_all"]', function (event) {
+ return _this2.expandItems(event);
+ });
+ list.on('input change', '[data-key-observe]', function (event) {
+ return _this2.observeKey(event);
+ });
+ list.find('[data-collection-holder]').each(function (index, container) {
+ container = external_jQuery_default()(container);
+
+ if (container.data('collection-sort') || container[0].hasAttribute('data-collection-nosort')) {
+ return;
+ }
+
+ container.data('collection-sort', new sortable_esm/* default */.ZP(container.get(0), {
+ forceFallback: false,
+ handle: '.collection-sort',
+ animation: 150,
+ onUpdate: function onUpdate() {
+ return _this2.reindex(container);
+ }
+ }));
+ });
+
+ this._updateActionsStateBasedOnMinMax(list);
+ }
+ }, {
+ key: "addItem",
+ value: function addItem(event) {
+ var button = external_jQuery_default()(event.currentTarget);
+ var position = button.data('action-add') || 'bottom';
+ var list = external_jQuery_default()(button.closest('[data-type="collection"]'));
+ var template = external_jQuery_default()(list.find('> [data-collection-template="new"]').data('collection-template-html'));
+
+ this._updateActionsStateBasedOnMinMax(list);
+
+ var items = list.closest('[data-type="collection"]').find('> ul > [data-collection-item]');
+ var maxItems = list.data('max');
+
+ if (typeof maxItems !== 'undefined' && items.length >= maxItems) {
+ return;
+ }
+
+ list.find('> [data-collection-holder]')[position === 'top' ? 'prepend' : 'append'](template);
+ this.reindex(list);
+ items = list.closest('[data-type="collection"]').find('> ul > [data-collection-item]');
+ var topAction = list.closest('[data-type="collection"]').find('[data-action-add="top"]');
+ var sortAction = list.closest('[data-type="collection"]').find('[data-action="sort"]');
+
+ if (items.length) {
+ if (topAction.length) {
+ topAction.parent().removeClass('hidden');
+ }
+
+ if (sortAction.length && items.length > 1) {
+ sortAction.removeClass('hidden');
+ }
+ } // refresh toggleables in a list
+
+
+ external_jQuery_default()('[data-grav-field="toggleable"] input[type="checkbox"]').trigger('change');
+ }
+ }, {
+ key: "removeItem",
+ value: function removeItem(event) {
+ var button = external_jQuery_default()(event.currentTarget);
+ var item = button.closest('[data-collection-item]');
+ var list = external_jQuery_default()(button.closest('[data-type="collection"]'));
+ var items = list.closest('[data-type="collection"]').find('> ul > [data-collection-item]');
+ var minItems = list.data('min');
+
+ if (typeof minItems !== 'undefined' && items.length <= minItems) {
+ return;
+ }
+
+ item.remove();
+ this.reindex(list);
+ items = list.closest('[data-type="collection"]').find('> ul > [data-collection-item]');
+ var topAction = list.closest('[data-type="collection"]').find('[data-action-add="top"]');
+ var sortAction = list.closest('[data-type="collection"]').find('[data-action="sort"]');
+
+ if (!items.length) {
+ if (topAction.length) {
+ topAction.parent().addClass('hidden');
+ }
+ }
+
+ if (sortAction.length && items.length <= 1) {
+ sortAction.addClass('hidden');
+ }
+
+ this._updateActionsStateBasedOnMinMax(list);
+ }
+ }, {
+ key: "collapseItems",
+ value: function collapseItems(event) {
+ var button = external_jQuery_default()(event.currentTarget);
+ var items = external_jQuery_default()(button.closest('[data-type="collection"]')).find('> ul > [data-collection-item] > .item-actions [data-action="collapse"]');
+ items.click();
+ }
+ }, {
+ key: "collapseItem",
+ value: function collapseItem(event) {
+ var button = external_jQuery_default()(event.currentTarget);
+ var item = button.closest('[data-collection-item]');
+ button.attr('data-action', 'expand').removeClass('fa-chevron-circle-down').addClass('fa-chevron-circle-right');
+ item.addClass('collection-collapsed');
+ }
+ }, {
+ key: "expandItems",
+ value: function expandItems(event) {
+ var button = external_jQuery_default()(event.currentTarget);
+ var items = external_jQuery_default()(button.closest('[data-type="collection"]')).find('> ul > [data-collection-item] > .item-actions [data-action="expand"]');
+ items.click();
+ }
+ }, {
+ key: "expandItem",
+ value: function expandItem(event) {
+ var button = external_jQuery_default()(event.currentTarget);
+ var item = button.closest('[data-collection-item]');
+ button.attr('data-action', 'collapse').removeClass('fa-chevron-circle-right').addClass('fa-chevron-circle-down');
+ item.removeClass('collection-collapsed');
+ }
+ }, {
+ key: "sortItems",
+ value: function sortItems(event) {
+ var button = external_jQuery_default()(event.currentTarget);
+ var sortby = button.data('action-sort');
+ var sortby_dir = button.data('action-sort-dir') || 'asc';
+ var list = external_jQuery_default()(button.closest('[data-type="collection"]'));
+ var items = list.closest('[data-type="collection"]').find('> ul > [data-collection-item]');
+ items.sort(function (a, b) {
+ var A = external_jQuery_default()(a).find('[name$="[' + sortby + ']"]');
+ var B = external_jQuery_default()(b).find('[name$="[' + sortby + ']"]');
+ var sort;
+
+ if (sortby_dir === 'asc') {
+ sort = A.val() < B.val() ? -1 : A.val() > B.val() ? 1 : 0;
+ } else {
+ sort = A.val() > B.val() ? -1 : A.val() < B.val() ? 1 : 0;
+ }
+
+ return sort;
+ }).each(function (_, container) {
+ external_jQuery_default()(container).parent().append(container);
+ });
+ this.reindex(list);
+ }
+ }, {
+ key: "observeKey",
+ value: function observeKey(event) {
+ var input = external_jQuery_default()(event.target);
+ var value = input.val();
+ var item = input.closest('[data-collection-key]');
+ item.data('collection-key-backup', item.data('collection-key')).data('collection-key', value);
+ this.reindex(null, item);
+ }
+ }, {
+ key: "reindex",
+ value: function reindex(list, items) {
+ items = items || external_jQuery_default()(list).closest('[data-type="collection"]').find('> ul > [data-collection-item]');
+ items.each(function (index, item) {
+ item = external_jQuery_default()(item);
+ var observed = item.find('[data-key-observe]');
+ var observedValue = observed.val();
+ var hasCustomKey = observed.length;
+ var currentKey = item.data('collection-key-backup');
+ item.attr('data-collection-key', hasCustomKey ? observedValue : index);
+ ['name', 'data-grav-field-name', 'for', 'id', 'data-grav-file-settings', 'data-file-post-add', 'data-file-post-remove', 'data-grav-array-name'].forEach(function (prop) {
+ item.find('[' + prop + '], [_' + prop + ']').each(function () {
+ var element = external_jQuery_default()(this);
+ var indexes = [];
+ var array_index = null;
+ var regexps = [new RegExp('\\[(\\d+|\\*|' + currentKey + ')\\]', 'g'), new RegExp('\\.(\\d+|\\*|' + currentKey + ')\\.', 'g')]; // special case to preserve array field index keys
+
+ if (prop === 'name' && element.data('gravArrayType')) {
+ var match_index = element.attr(prop).match(/\[[0-9]{1,}\]$/);
+ var pattern = element[0].closest('[data-grav-array-name]').dataset.gravArrayName;
+
+ if (match_index && pattern) {
+ array_index = match_index[0];
+ element.attr(prop, "".concat(pattern).concat(match_index[0]));
+ return;
+ }
+ }
+
+ if (hasCustomKey && !observedValue) {
+ element.attr("_".concat(prop), element.attr(prop));
+ element.attr(prop, null);
+ return;
+ }
+
+ if (element.attr("_".concat(prop))) {
+ element.attr(prop, element.attr("_".concat(prop)));
+ element.attr("_".concat(prop), null);
+ }
+
+ element.parents('[data-collection-key]').map(function (idx, parent) {
+ return indexes.push(external_jQuery_default()(parent).attr('data-collection-key'));
+ });
+ indexes.reverse();
+ var matchedKey = currentKey;
+ var replaced = element.attr(prop).replace(regexps[0], function ()
+ /* str, p1, offset */
+ {
+ var extras = '';
+
+ if (array_index) {
+ extras = array_index;
+ console.log(indexes, extras);
+ }
+
+ matchedKey = indexes.shift() || matchedKey;
+ return "[".concat(matchedKey, "]").concat(extras);
+ });
+ replaced = replaced.replace(regexps[1], function ()
+ /* str, p1, offset */
+ {
+ matchedKey = indexes.shift() || matchedKey;
+ return ".".concat(matchedKey, ".");
+ });
+ element.attr(prop, replaced);
+ });
+ });
+ });
+ }
+ }, {
+ key: "_onAddedNodes",
+ value: function _onAddedNodes(event, target
+ /* , record, instance */
+ ) {
+ var _this3 = this;
+
+ var collections = external_jQuery_default()(target).find('[data-type="collection"]');
+
+ if (!collections.length) {
+ return;
+ }
+
+ collections.each(function (index, collection) {
+ collection = external_jQuery_default()(collection);
+
+ if (!~_this3.lists.index(collection)) {
+ _this3.addList(collection);
+ }
+ });
+ }
+ }, {
+ key: "_updateActionsStateBasedOnMinMax",
+ value: function _updateActionsStateBasedOnMinMax(list) {
+ var items = list.closest('[data-type="collection"]').find('> ul > [data-collection-item]');
+ var minItems = list.data('min');
+ var maxItems = list.data('max');
+ list.find('> .collection-actions [data-action="add"]').attr('disabled', false);
+ list.find('> ul > li > .item-actions [data-action="delete"]').attr('disabled', false);
+
+ if (typeof minItems !== 'undefined' && items.length <= minItems) {
+ list.find('> ul > li > .item-actions [data-action="delete"]').attr('disabled', true);
+ }
+
+ if (typeof maxItems !== 'undefined' && items.length >= maxItems) {
+ list.find('> .collection-actions [data-action="add"]').attr('disabled', true);
+ }
+ }
+ }]);
+
+ return CollectionsField;
+}();
+
+
+var collections_Instance = new CollectionsField();
+// EXTERNAL MODULE: ./app/utils/bootstrap-datetimepicker.js
+var bootstrap_datetimepicker = __webpack_require__(36531);
+;// CONCATENATED MODULE: ./app/forms/fields/datetime.js
+function datetime_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function datetime_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function datetime_createClass(Constructor, protoProps, staticProps) { if (protoProps) datetime_defineProperties(Constructor.prototype, protoProps); if (staticProps) datetime_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+var DateTimeField = /*#__PURE__*/function () {
+ function DateTimeField(options) {
+ var _this = this;
+
+ datetime_classCallCheck(this, DateTimeField);
+
+ this.items = external_jQuery_default()();
+ this.options = Object.assign({}, this.defaults, options);
+ external_jQuery_default()('[data-grav-datetime]').each(function (index, field) {
+ return _this.addItem(field);
+ });
+ external_jQuery_default()('body').on('mutation._grav', this._onAddedNodes.bind(this));
+ }
+
+ datetime_createClass(DateTimeField, [{
+ key: "defaults",
+ get: function get() {
+ return {
+ showTodayButton: true,
+ showClear: true,
+ locale: external_GravAdmin_namespaceObject.config.language || 'en',
+ icons: {
+ time: 'fa fa-clock-o',
+ date: 'fa fa-calendar-o',
+ up: 'fa fa-chevron-up',
+ down: 'fa fa-chevron-down',
+ previous: 'fa fa-chevron-left',
+ next: 'fa fa-chevron-right',
+ today: 'fa fa-bullseye',
+ clear: 'fa fa-trash-o',
+ close: 'fa fa-remove'
+ }
+ };
+ }
+ }, {
+ key: "addItem",
+ value: function addItem(list) {
+ list = external_jQuery_default()(list);
+ this.items = this.items.add(list);
+
+ if (list.data('DateTimePicker')) {
+ return;
+ }
+
+ var options = Object.assign({}, this.options, list.data('grav-datetime') || {});
+ list.datetimepicker(options).on('dp.show dp.update', this._disableDecades);
+ list.siblings('.field-icons').on('click', function () {
+ return list.mousedown().focus();
+ });
+ }
+ }, {
+ key: "_onAddedNodes",
+ value: function _onAddedNodes(event, target
+ /* , record, instance */
+ ) {
+ var _this2 = this;
+
+ var fields = external_jQuery_default()(target).find('[data-grav-datetime]');
+
+ if (!fields.length) {
+ return;
+ }
+
+ fields.each(function (index, field) {
+ field = external_jQuery_default()(field);
+
+ if (!~_this2.items.index(field)) {
+ _this2.addItem(field);
+ }
+ });
+ }
+ }, {
+ key: "_disableDecades",
+ value: function _disableDecades() {
+ external_jQuery_default()('.datepicker-years .picker-switch').removeAttr('title').on('click', function (e) {
+ return e.stopPropagation();
+ });
+ }
+ }]);
+
+ return DateTimeField;
+}();
+
+
+var datetime_Instance = new DateTimeField();
+// EXTERNAL MODULE: ./node_modules/mout/math/clamp.js
+var clamp = __webpack_require__(19188);
+var clamp_default = /*#__PURE__*/__webpack_require__.n(clamp);
+// EXTERNAL MODULE: ./node_modules/mout/function/bind.js
+var bind = __webpack_require__(84596);
+var bind_default = /*#__PURE__*/__webpack_require__.n(bind);
+;// CONCATENATED MODULE: ./app/utils/colors.js
+// Parses a string and returns a valid hex string when possible
+// parseHex('#fff') => '#ffffff'
+var parseHex = function parseHex(string) {
+ string = string.replace(/[^A-F0-9]/ig, '');
+ if (string.length !== 3 && string.length !== 6) return '';
+
+ if (string.length === 3) {
+ string = string[0] + string[0] + string[1] + string[1] + string[2] + string[2];
+ }
+
+ return '#' + string.toLowerCase();
+}; // Converts an HSB object to an RGB object
+// hsb2rgb({h: 0, s: 0, b: 100}) => {r: 255, g: 255, b: 255}
+
+var hsb2rgb = function hsb2rgb(hsb) {
+ var rgb = {};
+ var h = Math.round(hsb.h);
+ var s = Math.round(hsb.s * 255 / 100);
+ var v = Math.round(hsb.b * 255 / 100);
+
+ if (s === 0) {
+ rgb.r = rgb.g = rgb.b = v;
+ } else {
+ var t1 = v;
+ var t2 = (255 - s) * v / 255;
+ var t3 = (t1 - t2) * (h % 60) / 60;
+ if (h === 360) h = 0;
+
+ if (h < 60) {
+ rgb.r = t1;
+ rgb.b = t2;
+ rgb.g = t2 + t3;
+ } else if (h < 120) {
+ rgb.g = t1;
+ rgb.b = t2;
+ rgb.r = t1 - t3;
+ } else if (h < 180) {
+ rgb.g = t1;
+ rgb.r = t2;
+ rgb.b = t2 + t3;
+ } else if (h < 240) {
+ rgb.b = t1;
+ rgb.r = t2;
+ rgb.g = t1 - t3;
+ } else if (h < 300) {
+ rgb.b = t1;
+ rgb.g = t2;
+ rgb.r = t2 + t3;
+ } else if (h < 360) {
+ rgb.r = t1;
+ rgb.g = t2;
+ rgb.b = t1 - t3;
+ } else {
+ rgb.r = 0;
+ rgb.g = 0;
+ rgb.b = 0;
+ }
+ }
+
+ return {
+ r: Math.round(rgb.r),
+ g: Math.round(rgb.g),
+ b: Math.round(rgb.b)
+ };
+}; // Converts an RGB object to a HEX string
+// rgb2hex({r: 255, g: 255, b: 255}) => #ffffff
+
+var rgb2hex = function rgb2hex(rgb) {
+ var hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];
+ hex.forEach(function (val, nr) {
+ if (val.length === 1) hex[nr] = '0' + val;
+ });
+ return '#' + hex.join('');
+}; // Converts and RGB(a) string to a HEX string
+// rgbstr2hex('rgba(255, 255, 255, 0.5)') => #ffffff
+
+var rgbstr2hex = function rgbstr2hex(rgb) {
+ rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
+ return rgb && rgb.length === 4 ? '#' + ('0' + parseInt(rgb[1], 10).toString(16)).slice(-2) + ('0' + parseInt(rgb[2], 10).toString(16)).slice(-2) + ('0' + parseInt(rgb[3], 10).toString(16)).slice(-2) : '';
+}; // Converts an HSB object to a HEX string
+// hsb2hex({h: 0, s: 0, b: 100}) => #ffffff
+
+var hsb2hex = function hsb2hex(hsb) {
+ return rgb2hex(hsb2rgb(hsb));
+}; // Converts a HEX string to an HSB object
+// hex2hsb('#ffffff') => {h: 0, s: 0, b: 100}
+
+var hex2hsb = function hex2hsb(hex) {
+ var hsb = rgb2hsb(hex2rgb(hex));
+ if (hsb.s === 0) hsb.h = 360;
+ return hsb;
+}; // Converts an RGB object to an HSB object
+// rgb2hsb({r: 255, g: 255, b: 255}) => {h: 0, s: 0, b: 100}
+
+var rgb2hsb = function rgb2hsb(rgb) {
+ var hsb = {
+ h: 0,
+ s: 0,
+ b: 0
+ };
+ var min = Math.min(rgb.r, rgb.g, rgb.b);
+ var max = Math.max(rgb.r, rgb.g, rgb.b);
+ var delta = max - min;
+ hsb.b = max;
+ hsb.s = max !== 0 ? 255 * delta / max : 0;
+
+ if (hsb.s !== 0) {
+ if (rgb.r === max) {
+ hsb.h = (rgb.g - rgb.b) / delta;
+ } else if (rgb.g === max) {
+ hsb.h = 2 + (rgb.b - rgb.r) / delta;
+ } else {
+ hsb.h = 4 + (rgb.r - rgb.g) / delta;
+ }
+ } else {
+ hsb.h = -1;
+ }
+
+ hsb.h *= 60;
+
+ if (hsb.h < 0) {
+ hsb.h += 360;
+ }
+
+ hsb.s *= 100 / 255;
+ hsb.b *= 100 / 255;
+ return hsb;
+}; // Converts a HEX string to an RGB object
+// hex2rgb('#ffffff') => {r: 255, g: 255, b: 255}
+
+var hex2rgb = function hex2rgb(hex) {
+ hex = parseInt(hex.indexOf('#') > -1 ? hex.substring(1) : hex, 16);
+ return {
+ /* jshint ignore:start */
+ r: hex >> 16,
+ g: (hex & 0x00FF00) >> 8,
+ b: hex & 0x0000FF
+ /* jshint ignore:end */
+
+ };
+};
+;// CONCATENATED MODULE: ./app/forms/fields/colorpicker.js
+function colorpicker_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function colorpicker_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function colorpicker_createClass(Constructor, protoProps, staticProps) { if (protoProps) colorpicker_defineProperties(Constructor.prototype, protoProps); if (staticProps) colorpicker_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
+var colorpicker_body = external_jQuery_default()('body');
+var MOUSEDOWN = 'mousedown touchstart MSPointerDown pointerdown';
+var MOUSEMOVE = 'mousemove touchmove MSPointerMove pointermove';
+var MOUSEUP = 'mouseup touchend MSPointerUp pointerup';
+var FOCUSIN = isFirefox ? 'focus' : 'focusin';
+
+var ColorpickerField = /*#__PURE__*/function () {
+ function ColorpickerField(selector) {
+ var _this = this;
+
+ colorpicker_classCallCheck(this, ColorpickerField);
+
+ this.selector = selector;
+ this.field = external_jQuery_default()(this.selector);
+ this.options = Object.assign({}, this.field.data('grav-colorpicker'));
+ this.built = false;
+ this.attach();
+
+ if (this.options.update) {
+ this.field.on('change._grav_colorpicker', function (event, field, hex, opacity) {
+ var backgroundColor = hex;
+ var rgb = hex2rgb(hex);
+
+ if (opacity < 1) {
+ backgroundColor = 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + opacity + ')';
+ }
+
+ var target = field.closest(_this.options.update);
+
+ if (!target.length) {
+ target = field.siblings(_this.options.update);
+ }
+
+ if (!target.length) {
+ target = field.parent('.g-colorpicker').find(_this.options.update);
+ }
+
+ target.css({
+ backgroundColor: backgroundColor
+ });
+ });
+ }
+ }
+
+ colorpicker_createClass(ColorpickerField, [{
+ key: "attach",
+ value: function attach() {
+ var _this2 = this;
+
+ colorpicker_body.on(FOCUSIN, this.selector, function (event) {
+ return _this2.show(event, event.currentTarget);
+ });
+ colorpicker_body.on(MOUSEDOWN, this.selector + ' .g-colorpicker, ' + this.selector + ' .g-colorpicker i', this.bound('iconClick'));
+ colorpicker_body.on('keydown', this.selector, function (event) {
+ switch (event.keyCode) {
+ case 9:
+ // tab
+ _this2.hide();
+
+ break;
+
+ case 13: // enter
+
+ case 27:
+ // esc
+ _this2.hide();
+
+ event.currentTarget.blur();
+ break;
+ }
+
+ return true;
+ }); // Update on keyup
+
+ colorpicker_body.on('keyup', this.selector, function (event) {
+ _this2.updateFromInput(true, event.currentTarget);
+
+ return true;
+ }); // Update on paste
+
+ colorpicker_body.on('paste', this.selector, function (event) {
+ setTimeout(function () {
+ return _this2.updateFromInput(true, event.currentTarget);
+ }, 1);
+ });
+ }
+ }, {
+ key: "show",
+ value: function show(event, target) {
+ target = external_jQuery_default()(target);
+
+ if (!this.built) {
+ this.build();
+ }
+
+ this.element = target;
+ this.reposition();
+ this.wrapper.addClass('cp-visible');
+ this.updateFromInput();
+ this.wrapper.on(MOUSEDOWN, '.cp-grid, .cp-slider, .cp-opacity-slider', this.bound('bodyDown'));
+ colorpicker_body.on(MOUSEMOVE, this.bound('bodyMove'));
+ colorpicker_body.on(MOUSEDOWN, this.bound('bodyClick'));
+ colorpicker_body.on(MOUSEUP, this.bound('targetReset'));
+ external_jQuery_default()('#admin-main > .content-wrapper').on('scroll', this.bound('reposition'));
+ }
+ }, {
+ key: "hide",
+ value: function hide() {
+ if (!this.built) {
+ return;
+ }
+
+ this.wrapper.removeClass('cp-visible');
+ this.wrapper.undelegate(MOUSEDOWN, '.cp-grid, .cp-slider, .cp-opacity-slider', this.bound('bodyDown'));
+ colorpicker_body.off(MOUSEMOVE, this.bound('bodyMove'));
+ colorpicker_body.off(MOUSEDOWN, this.bound('bodyClick'));
+ colorpicker_body.off(MOUSEUP, this.bound('targetReset'));
+ external_jQuery_default()('#admin-main > .content-wrapper').on('scroll', this.bound('reposition'));
+ }
+ }, {
+ key: "build",
+ value: function build() {
+ var _this3 = this;
+
+ this.wrapper = external_jQuery_default()('
');
+ this.slider = external_jQuery_default()('
').appendTo(this.wrapper).append(external_jQuery_default()('
'));
+ this.opacitySlider = external_jQuery_default()('
').appendTo(this.wrapper).append(external_jQuery_default()('
'));
+ this.grid = external_jQuery_default()('
').appendTo(this.wrapper).append(external_jQuery_default()('
')).append(external_jQuery_default()('
'));
+ external_jQuery_default()('
').appendTo(this.grid.find('.cp-picker'));
+ var tabs = external_jQuery_default()('
').appendTo(this.wrapper);
+ this.tabs = {
+ hue: external_jQuery_default()('
').text('HUE').appendTo(tabs),
+ brightness: external_jQuery_default()('
').text('BRI').appendTo(tabs),
+ saturation: external_jQuery_default()('
').text('SAT').appendTo(tabs),
+ wheel: external_jQuery_default()('
').text('WHEEL').appendTo(tabs),
+ transparent: external_jQuery_default()('
').text('TRANSPARENT').appendTo(tabs)
+ };
+ tabs.on(MOUSEDOWN, '> div', function (event) {
+ var element = external_jQuery_default()(event.currentTarget);
+
+ if (element.is(_this3.tabs.transparent)) {
+ var sliderHeight = _this3.opacitySlider.height();
+
+ _this3.opacity = 0;
+
+ _this3.opacitySlider.find('.cp-picker').css({
+ 'top': clamp_default()(sliderHeight - sliderHeight * _this3.opacity, 0, sliderHeight)
+ });
+
+ _this3.move(_this3.opacitySlider, {
+ manualOpacity: true
+ });
+
+ return;
+ }
+
+ var active = tabs.find('.active');
+ var mode = active.attr('class').replace(/\s|active|cp-tab-/g, '');
+ var newMode = element.attr('class').replace(/\s|active|cp-tab-/g, '');
+
+ _this3.wrapper.removeClass('cp-mode-' + mode).addClass('cp-mode-' + newMode);
+
+ active.removeClass('active');
+ element.addClass('active');
+ _this3.mode = newMode;
+
+ _this3.updateFromInput();
+ });
+ this.wrapper.appendTo('.content-wrapper');
+ this.built = true;
+ this.mode = 'hue';
+ }
+ }, {
+ key: "reposition",
+ value: function reposition() {
+ var ct = external_jQuery_default()('.content-wrapper')[0];
+ var offset = this.element[0].getBoundingClientRect();
+ var ctOffset = ct.getBoundingClientRect();
+ var delta = {
+ x: 0,
+ y: 0
+ };
+
+ if (this.options.offset) {
+ delta.x = this.options.offset.x || 0;
+ delta.y = this.options.offset.y || 0;
+ }
+
+ this.wrapper.css({
+ top: offset.top + offset.height + ct.scrollTop - ctOffset.top + delta.y,
+ left: offset.left + ct.scrollLeft - ctOffset.left + delta.x
+ });
+ }
+ }, {
+ key: "iconClick",
+ value: function iconClick(event) {
+ if (this.wrapper && this.wrapper.hasClass('cp-visible')) {
+ return true;
+ }
+
+ event && event.preventDefault();
+ var input = external_jQuery_default()(event.currentTarget).find('input');
+ setTimeout(function () {
+ return input.focus();
+ }, 50);
+ }
+ }, {
+ key: "bodyMove",
+ value: function bodyMove(event) {
+ event && event.preventDefault();
+
+ if (this.target) {
+ this.move(this.target, event);
+ }
+ }
+ }, {
+ key: "bodyClick",
+ value: function bodyClick(event) {
+ var target = external_jQuery_default()(event.target);
+
+ if (!target.closest('.cp-wrapper').length && !target.is(this.selector)) {
+ this.hide();
+ }
+ }
+ }, {
+ key: "bodyDown",
+ value: function bodyDown(event) {
+ event && event.preventDefault();
+ this.target = external_jQuery_default()(event.currentTarget);
+ this.move(this.target, event, true);
+ }
+ }, {
+ key: "targetReset",
+ value: function targetReset(event) {
+ event && event.preventDefault();
+ this.target = null;
+ }
+ }, {
+ key: "move",
+ value: function move(target, event) {
+ var input = this.element;
+ var picker = target.find('.cp-picker');
+ var clientRect = target[0].getBoundingClientRect();
+ var offsetX = clientRect.left + window.scrollX;
+ var offsetY = clientRect.top + window.scrollY;
+ var x = Math.round((event ? event.pageX : 0) - offsetX);
+ var y = Math.round((event ? event.pageY : 0) - offsetY);
+ var wx;
+ var wy;
+ var r;
+ var phi; // Touch support
+
+ var touchEvents = event.changedTouches || event.originalEvent && event.originalEvent.changedTouches;
+
+ if (event && touchEvents) {
+ x = (touchEvents ? touchEvents[0].pageX : 0) - offsetX;
+ y = (touchEvents ? touchEvents[0].pageY : 0) - offsetY;
+ }
+
+ if (event && event.manualOpacity) {
+ y = clientRect.height;
+ } // Constrain picker to its container
+
+
+ if (x < 0) x = 0;
+ if (y < 0) y = 0;
+ if (x > clientRect.width) x = clientRect.width;
+ if (y > clientRect.height) y = clientRect.height; // Constrain color wheel values to the wheel
+
+ if (target.parent('.cp-mode-wheel').length && picker.parent('.cp-grid').length) {
+ wx = 75 - x;
+ wy = 75 - y;
+ r = Math.sqrt(wx * wx + wy * wy);
+ phi = Math.atan2(wy, wx);
+ if (phi < 0) phi += Math.PI * 2;
+
+ if (r > 75) {
+ x = 75 - 75 * Math.cos(phi);
+ y = 75 - 75 * Math.sin(phi);
+ }
+
+ x = Math.round(x);
+ y = Math.round(y);
+ } // Move the picker
+
+
+ if (target.hasClass('cp-grid')) {
+ picker.css({
+ top: y,
+ left: x
+ });
+ this.updateFromPicker(input, target);
+ } else {
+ picker.css({
+ top: y
+ });
+ this.updateFromPicker(input, target);
+ }
+ }
+ }, {
+ key: "updateFromInput",
+ value: function updateFromInput(dontFireEvent, element) {
+ element = element ? external_jQuery_default()(element) : this.element;
+ var value = element.val();
+ var opacity = value.replace(/\s/g, '').match(/^rgba?\([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},(.+)\)/);
+ var hex;
+ var hsb;
+ value = rgbstr2hex(value) || value;
+ opacity = opacity ? clamp_default()(opacity[1], 0, 1) : 1;
+
+ if (!(hex = parseHex(value))) {
+ hex = '#ffffff';
+ }
+
+ hsb = hex2hsb(hex);
+
+ if (this.built) {
+ // opacity
+ this.opacity = opacity;
+ var sliderHeight = this.opacitySlider.height();
+ this.opacitySlider.find('.cp-picker').css({
+ 'top': clamp_default()(sliderHeight - sliderHeight * this.opacity, 0, sliderHeight)
+ }); // bg color
+
+ var gridHeight = this.grid.height();
+ var gridWidth = this.grid.width();
+ var r;
+ var phi;
+ var x;
+ var y;
+ sliderHeight = this.slider.height();
+
+ switch (this.mode) {
+ case 'wheel':
+ // Set grid position
+ r = clamp_default()(Math.ceil(hsb.s * 0.75), 0, gridHeight / 2);
+ phi = hsb.h * Math.PI / 180;
+ x = clamp_default()(75 - Math.cos(phi) * r, 0, gridWidth);
+ y = clamp_default()(75 - Math.sin(phi) * r, 0, gridHeight);
+ this.grid.css({
+ backgroundColor: 'transparent'
+ }).find('.cp-picker').css({
+ top: y,
+ left: x
+ }); // Set slider position
+
+ y = 150 - hsb.b / (100 / gridHeight);
+ if (hex === '') y = 0;
+ this.slider.find('.cp-picker').css({
+ top: y
+ }); // Update panel color
+
+ this.slider.css({
+ backgroundColor: hsb2hex({
+ h: hsb.h,
+ s: hsb.s,
+ b: 100
+ })
+ });
+ break;
+
+ case 'saturation':
+ // Set grid position
+ x = clamp_default()(5 * hsb.h / 12, 0, 150);
+ y = clamp_default()(gridHeight - Math.ceil(hsb.b / (100 / gridHeight)), 0, gridHeight);
+ this.grid.find('.cp-picker').css({
+ top: y,
+ left: x
+ }); // Set slider position
+
+ y = clamp_default()(sliderHeight - hsb.s * (sliderHeight / 100), 0, sliderHeight);
+ this.slider.find('.cp-picker').css({
+ top: y
+ }); // Update UI
+
+ this.slider.css({
+ backgroundColor: hsb2hex({
+ h: hsb.h,
+ s: 100,
+ b: hsb.b
+ })
+ });
+ this.grid.find('.cp-grid-inner').css({
+ opacity: hsb.s / 100
+ });
+ break;
+
+ case 'brightness':
+ // Set grid position
+ x = clamp_default()(5 * hsb.h / 12, 0, 150);
+ y = clamp_default()(gridHeight - Math.ceil(hsb.s / (100 / gridHeight)), 0, gridHeight);
+ this.grid.find('.cp-picker').css({
+ top: y,
+ left: x
+ }); // Set slider position
+
+ y = clamp_default()(sliderHeight - hsb.b * (sliderHeight / 100), 0, sliderHeight);
+ this.slider.find('.cp-picker').css({
+ top: y
+ }); // Update UI
+
+ this.slider.css({
+ backgroundColor: hsb2hex({
+ h: hsb.h,
+ s: hsb.s,
+ b: 100
+ })
+ });
+ this.grid.find('.cp-grid-inner').css({
+ opacity: 1 - hsb.b / 100
+ });
+ break;
+
+ case 'hue':
+ default:
+ // Set grid position
+ x = clamp_default()(Math.ceil(hsb.s / (100 / gridWidth)), 0, gridWidth);
+ y = clamp_default()(gridHeight - Math.ceil(hsb.b / (100 / gridHeight)), 0, gridHeight);
+ this.grid.find('.cp-picker').css({
+ top: y,
+ left: x
+ }); // Set slider position
+
+ y = clamp_default()(sliderHeight - hsb.h / (360 / sliderHeight), 0, sliderHeight);
+ this.slider.find('.cp-picker').css({
+ top: y
+ }); // Update panel color
+
+ this.grid.css({
+ backgroundColor: hsb2hex({
+ h: hsb.h,
+ s: 100,
+ b: 100
+ })
+ });
+ break;
+ }
+ }
+
+ if (!dontFireEvent) {
+ element.val(this.getValue(hex));
+ }
+
+ (this.element || element).trigger('change._grav_colorpicker', [element, hex, opacity]);
+ }
+ }, {
+ key: "updateFromPicker",
+ value: function updateFromPicker(input, target) {
+ var getCoords = function getCoords(picker, container) {
+ var left, top;
+ if (!picker.length || !container) return null;
+ left = picker[0].getBoundingClientRect().left;
+ top = picker[0].getBoundingClientRect().top;
+ return {
+ x: left - container[0].getBoundingClientRect().left + picker[0].offsetWidth / 2,
+ y: top - container[0].getBoundingClientRect().top + picker[0].offsetHeight / 2
+ };
+ };
+
+ var hex;
+ var hue;
+ var saturation;
+ var brightness;
+ var x;
+ var y;
+ var r;
+ var phi; // Panel objects
+
+ var grid = this.wrapper.find('.cp-grid');
+ var slider = this.wrapper.find('.cp-slider');
+ var opacitySlider = this.wrapper.find('.cp-opacity-slider'); // Picker objects
+
+ var gridPicker = grid.find('.cp-picker');
+ var sliderPicker = slider.find('.cp-picker');
+ var opacityPicker = opacitySlider.find('.cp-picker'); // Picker positions
+
+ var gridPos = getCoords(gridPicker, grid);
+ var sliderPos = getCoords(sliderPicker, slider);
+ var opacityPos = getCoords(opacityPicker, opacitySlider); // Sizes
+
+ var gridWidth = grid[0].getBoundingClientRect().width;
+ var gridHeight = grid[0].getBoundingClientRect().height;
+ var sliderHeight = slider[0].getBoundingClientRect().height;
+ var opacitySliderHeight = opacitySlider[0].getBoundingClientRect().height;
+ var value = this.element.val();
+ value = rgbstr2hex(value) || value;
+
+ if (!(hex = parseHex(value))) {
+ hex = '#ffffff';
+ } // Handle colors
+
+
+ if (target.hasClass('cp-grid') || target.hasClass('cp-slider')) {
+ // Determine HSB values
+ switch (this.mode) {
+ case 'wheel':
+ // Calculate hue, saturation, and brightness
+ x = gridWidth / 2 - gridPos.x;
+ y = gridHeight / 2 - gridPos.y;
+ r = Math.sqrt(x * x + y * y);
+ phi = Math.atan2(y, x);
+ if (phi < 0) phi += Math.PI * 2;
+
+ if (r > 75) {
+ r = 75;
+ gridPos.x = 69 - 75 * Math.cos(phi);
+ gridPos.y = 69 - 75 * Math.sin(phi);
+ }
+
+ saturation = clamp_default()(r / 0.75, 0, 100);
+ hue = clamp_default()(phi * 180 / Math.PI, 0, 360);
+ brightness = clamp_default()(100 - Math.floor(sliderPos.y * (100 / sliderHeight)), 0, 100);
+ hex = hsb2hex({
+ h: hue,
+ s: saturation,
+ b: brightness
+ }); // Update UI
+
+ slider.css({
+ backgroundColor: hsb2hex({
+ h: hue,
+ s: saturation,
+ b: 100
+ })
+ });
+ break;
+
+ case 'saturation':
+ // Calculate hue, saturation, and brightness
+ hue = clamp_default()(parseInt(gridPos.x * (360 / gridWidth), 10), 0, 360);
+ saturation = clamp_default()(100 - Math.floor(sliderPos.y * (100 / sliderHeight)), 0, 100);
+ brightness = clamp_default()(100 - Math.floor(gridPos.y * (100 / gridHeight)), 0, 100);
+ hex = hsb2hex({
+ h: hue,
+ s: saturation,
+ b: brightness
+ }); // Update UI
+
+ slider.css({
+ backgroundColor: hsb2hex({
+ h: hue,
+ s: 100,
+ b: brightness
+ })
+ });
+ grid.find('.cp-grid-inner').css({
+ opacity: saturation / 100
+ });
+ break;
+
+ case 'brightness':
+ // Calculate hue, saturation, and brightness
+ hue = clamp_default()(parseInt(gridPos.x * (360 / gridWidth), 10), 0, 360);
+ saturation = clamp_default()(100 - Math.floor(gridPos.y * (100 / gridHeight)), 0, 100);
+ brightness = clamp_default()(100 - Math.floor(sliderPos.y * (100 / sliderHeight)), 0, 100);
+ hex = hsb2hex({
+ h: hue,
+ s: saturation,
+ b: brightness
+ }); // Update UI
+
+ slider.css({
+ backgroundColor: hsb2hex({
+ h: hue,
+ s: saturation,
+ b: 100
+ })
+ });
+ grid.find('.cp-grid-inner').css({
+ opacity: 1 - brightness / 100
+ });
+ break;
+
+ default:
+ // Calculate hue, saturation, and brightness
+ hue = clamp_default()(360 - parseInt(sliderPos.y * (360 / sliderHeight), 10), 0, 360);
+ saturation = clamp_default()(Math.floor(gridPos.x * (100 / gridWidth)), 0, 100);
+ brightness = clamp_default()(100 - Math.floor(gridPos.y * (100 / gridHeight)), 0, 100);
+ hex = hsb2hex({
+ h: hue,
+ s: saturation,
+ b: brightness
+ }); // Update UI
+
+ grid.css({
+ backgroundColor: hsb2hex({
+ h: hue,
+ s: 100,
+ b: 100
+ })
+ });
+ break;
+ }
+ } // Handle opacity
+
+
+ if (target.hasClass('cp-opacity-slider')) {
+ this.opacity = parseFloat(1 - opacityPos.y / opacitySliderHeight).toFixed(2);
+ } // Adjust case
+
+
+ input.val(this.getValue(hex)); // Handle change event
+
+ this.element.trigger('change._grav_colorpicker', [this.element, hex, this.opacity]);
+ }
+ }, {
+ key: "getValue",
+ value: function getValue(hex) {
+ if (this.opacity === 1) {
+ return hex;
+ }
+
+ var rgb = hex2rgb(hex);
+ return 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + this.opacity + ')';
+ }
+ }, {
+ key: "bound",
+ value: function bound(name) {
+ var bound = this._bound || (this._bound = {});
+ return bound[name] || (bound[name] = bind_default()(this[name], this));
+ }
+ }]);
+
+ return ColorpickerField;
+}();
+
+
+var colorpicker_Instance = new ColorpickerField('[data-grav-colorpicker]');
+;// CONCATENATED MODULE: ./app/forms/fields/folder.js
+
+
+var Regenerate = function Regenerate() {
+ var field = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '[name="data[folder]"]';
+ var element = external_jQuery_default()(field);
+ var title = external_jQuery_default()('[name="data[header][title]"]');
+ var slug = external_jQuery_default().slugify(title.val(), {
+ custom: {
+ "'": ''
+ }
+ });
+ element.addClass('highlight').val(slug);
+ setTimeout(function () {
+ return element.removeClass('highlight');
+ }, 500);
+};
+
+external_jQuery_default()(document).on('click', '[data-regenerate]', function (event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var field = external_jQuery_default()(target.data('regenerate'));
+ Regenerate(field);
+});
+/* harmony default export */ const fields_folder = (Regenerate);
+// EXTERNAL MODULE: ./node_modules/mout/object/forIn.js
+var forIn = __webpack_require__(15473);
+var forIn_default = /*#__PURE__*/__webpack_require__.n(forIn);
+;// CONCATENATED MODULE: ./app/forms/fields/selectunique.js
+function selectunique_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function selectunique_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function selectunique_createClass(Constructor, protoProps, staticProps) { if (protoProps) selectunique_defineProperties(Constructor.prototype, protoProps); if (staticProps) selectunique_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+ // import { config } from 'grav-config';
+
+var Data = {};
+
+var SelectUniqueField = /*#__PURE__*/function () {
+ function SelectUniqueField(options) {
+ var _this = this;
+
+ selectunique_classCallCheck(this, SelectUniqueField);
+
+ var body = external_jQuery_default()('body');
+ this.items = external_jQuery_default()();
+ this.options = Object.assign({}, this.defaults, options);
+ external_jQuery_default()('[data-select-observe]').each(function (index, element) {
+ return _this.addSelect(element);
+ }).last().trigger('change', {
+ load: true
+ });
+ body.on('mutation._grav', this._onAddedNodes.bind(this));
+ body.on('mutation_removed._grav', this._onRemovedNodes.bind(this));
+ }
+
+ selectunique_createClass(SelectUniqueField, [{
+ key: "_onAddedNodes",
+ value: function _onAddedNodes(event, target, record, instance) {
+ var _this2 = this;
+
+ var fields = external_jQuery_default()(target).find('[data-select-observe]');
+
+ if (!fields.length) {
+ return;
+ }
+
+ fields.each(function (index, field) {
+ field = external_jQuery_default()(field);
+
+ if (!~_this2.items.index(field)) {
+ _this2.addSelect(field);
+ }
+ });
+ }
+ }, {
+ key: "_onRemovedNodes",
+ value: function _onRemovedNodes(event, data
+ /* , instance */
+ ) {
+ var _this3 = this;
+
+ var target = external_jQuery_default()(data.target);
+ var holder = target.data('collectionHolder');
+
+ if (!holder) {
+ return false;
+ }
+
+ var node = external_jQuery_default()(data.mutation.removedNodes);
+ var value = node.find('[data-select-observe]').val();
+
+ if (value) {
+ Data[holder].state[value] = value;
+ }
+
+ target.find('[data-select-observe]').each(function (index, field) {
+ field = external_jQuery_default()(field);
+
+ if (field.val() !== value) {
+ _this3.updateOptions(field);
+ }
+ });
+ }
+ }, {
+ key: "addSelect",
+ value: function addSelect(element) {
+ var _this4 = this;
+
+ this.items = this.items.add(element);
+ element = external_jQuery_default()(element);
+ var value = element.attr('value');
+ var holder = element.closest('[data-collection-holder]').data('collectionHolder');
+ var options = element.closest('[data-select-unique]').data('selectUnique');
+
+ if (!Data[holder]) {
+ var data = {};
+
+ if (Array.isArray(options)) {
+ options.slice(0).map(function (item) {
+ data[item] = item;
+ });
+ } else {
+ data = Object.assign({}, options);
+ }
+
+ Data[holder] = {
+ original: null,
+ state: null
+ };
+ Data[holder].original = Object.assign({}, data);
+ Data[holder].state = Object.assign({}, data);
+ }
+
+ this.updateOptions(element);
+ element.data('originalValue', value);
+ element.on('change', function (event, extras) {
+ var target = external_jQuery_default()(event.currentTarget);
+
+ if (target.data('dummyChange')) {
+ target.data('dummyChange', false);
+ return false;
+ }
+
+ _this4.refreshOptions(target, extras && extras.load ? null : element.data('originalValue'));
+
+ element.data('originalValue', target.val());
+ });
+ }
+ }, {
+ key: "updateOptions",
+ value: function updateOptions(element) {
+ element = external_jQuery_default()(element);
+ var value = element.attr('value');
+ var holder = element.closest('[data-collection-holder]').data('collectionHolder');
+ forIn_default()(Data[holder].state, function (v, k) {
+ var selected = k === value ? 'selected="selected"' : '';
+
+ if (element.get(0).selectize) {
+ var selectize = element.data('selectize');
+ selectize.removeOption(k);
+ selectize.addOption({
+ value: k,
+ text: v
+ });
+ } else {
+ element.append("
"));
+ }
+
+ if (selected) {
+ if (element.get(0).selectize) {
+ var _selectize = element.data('selectize');
+
+ _selectize.setValue(k);
+ }
+
+ delete Data[holder].state[value];
+ }
+ });
+ }
+ }, {
+ key: "refreshOptions",
+ value: function refreshOptions(element, originalValue) {
+ var value = element.val();
+ var holder = element.closest('[data-collection-holder]').data('collectionHolder');
+ delete Data[holder].state[value];
+
+ if (originalValue && Data[holder].original[originalValue]) {
+ Data[holder].state[originalValue] = Data[holder].original[originalValue];
+ }
+
+ this.items.each(function (index, select) {
+ select = external_jQuery_default()(select);
+
+ if (select[0] === element[0]) {
+ return;
+ }
+
+ var selectedValue = select.val();
+ select.data('dummyChange', true);
+
+ if (select.get(0).selectize) {
+ var selectize = select.data('selectize');
+
+ if (selectize) {
+ selectize.clearOptions();
+
+ if (selectedValue) {
+ selectize.addOption({
+ value: selectedValue,
+ text: Data[holder].original[selectedValue] || selectedValue
+ });
+ }
+
+ forIn_default()(Data[holder].state, function (v, k) {
+ selectize.addOption({
+ value: k,
+ text: v
+ });
+ });
+ selectize.setValue(selectedValue, true);
+ }
+ } else {
+ select.empty();
+ forIn_default()(Data[holder].state, function (v, k) {
+ var selected = k === selectedValue ? 'selected="selected"' : '';
+ select.append("
"));
+ });
+ }
+
+ select.data('dummyChange', false);
+ });
+ }
+ }]);
+
+ return SelectUniqueField;
+}();
+
+
+var selectunique_Instance = new SelectUniqueField();
+;// CONCATENATED MODULE: ./app/forms/fields/iconpicker.js
+function iconpicker_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function iconpicker_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function iconpicker_createClass(Constructor, protoProps, staticProps) { if (protoProps) iconpicker_defineProperties(Constructor.prototype, protoProps); if (staticProps) iconpicker_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+/* Icon Picker by QueryLoop
+ * Author: @eliorivero
+ * URL: http://queryloop.com/
+ * License: GPLv2
+ */
+
+var iconpicker_defaults = {
+ 'mode': 'dialog',
+ // show overlay 'dialog' panel or slide down 'inline' panel
+ 'closeOnPick': true,
+ // whether to close panel after picking or 'no'
+ 'save': 'class',
+ // save icon 'class' or 'code'
+ 'size': '',
+ 'classes': {
+ 'launcher': '',
+ // extra classes for launcher buttons
+ 'clear': 'remove-times',
+ // extra classes for button that removes preview and clears field
+ 'highlight': '',
+ // extra classes when highlighting an icon
+ 'close': '' // extra classes for close button
+
+ },
+ 'iconSets': {
+ // example data structure. Used to specify which launchers will be created
+ 'genericon': 'Genericon',
+ // create a launcher to pick genericon icons
+ 'fa': 'FontAwesome' // create a launcher to pick fontawesome icons
+
+ }
+};
+
+var QL_Icon_Picker = /*#__PURE__*/function () {
+ function QL_Icon_Picker(element, options) {
+ iconpicker_classCallCheck(this, QL_Icon_Picker);
+
+ this.iconSet = '';
+ this.iconSetName = '';
+ this.$field = '';
+ this.element = element;
+ this.settings = external_jQuery_default().extend({}, iconpicker_defaults, options);
+ this._defaults = iconpicker_defaults;
+ this.init();
+ }
+
+ iconpicker_createClass(QL_Icon_Picker, [{
+ key: "init",
+ value: function init() {
+ var $brick = external_jQuery_default()(this.element);
+ var pickerId = $brick.data('pickerid');
+ var $preview = external_jQuery_default()('
');
+ this.$field = $brick.find('input'); // Add preview area
+
+ this.makePreview($brick, pickerId, $preview); // Make button to clear field and remove preview
+
+ this.makeClear(pickerId, $preview); // Make buttons that open the panel of icons
+
+ this.makeLaunchers($brick, pickerId); // Prepare display styles, inline and dialog
+
+ this.makeDisplay($brick);
+ }
+ }, {
+ key: "makePreview",
+ value: function makePreview($brick, pickerId, $preview) {
+ var $icon = external_jQuery_default()('
');
+ var iconValue = this.$field.val();
+ $preview.prependTo($brick);
+ $icon.prependTo($preview);
+
+ if (iconValue !== '') {
+ $preview.addClass('icon-preview-on');
+ $icon.addClass(iconValue);
+ }
+ }
+ }, {
+ key: "makeClear",
+ value: function makeClear(pickerId, $preview) {
+ var base = this;
+ var $clear = external_jQuery_default()('
'); // Hide button to remove icon and preview and append it to preview area
+
+ $clear.hide().prependTo($preview); // If there's a icon saved in the field, show remove icon button
+
+ if (base.$field.val() !== '') {
+ $clear.show();
+ }
+
+ $preview.on('click', '.remove-icon', function (e) {
+ e.preventDefault();
+ base.$field.val('');
+ $preview.removeClass('icon-preview-on').find('i').removeClass();
+ external_jQuery_default()(this).hide();
+ });
+ }
+ }, {
+ key: "makeDisplay",
+ value: function makeDisplay($brick) {
+ var base = this;
+ var close = base.settings.classes.close;
+ var $body = external_jQuery_default()('body');
+ var $close = external_jQuery_default()('
');
+
+ if (base.settings.mode === 'inline') {
+ $brick.find('.icon-set').append($close).removeClass('dialog').addClass('ip-inline ' + base.settings.size).parent().addClass('icon-set-wrap');
+ } else if (base.settings.mode === 'dialog') {
+ external_jQuery_default()('.icon-set').addClass('dialog ' + base.settings.size);
+
+ if (external_jQuery_default()('.icon-picker-overlay').length <= 0) {
+ $body.append('
').append($close);
+ }
+ }
+
+ $body.on('click', '.icon-picker-close, .icon-picker-overlay', function (e) {
+ e.preventDefault();
+ base.closePicker($brick, external_jQuery_default()(base.iconSet), base.settings.mode);
+ }).on('mouseenter mouseleave', '.icon-picker-close', function (e) {
+ if (e.type === 'mouseenter') {
+ external_jQuery_default()(this).addClass(close);
+ } else {
+ external_jQuery_default()(this).removeClass(close);
+ }
+ });
+ }
+ }, {
+ key: "makeLaunchers",
+ value: function makeLaunchers($brick) {
+ var base = this;
+ var dataIconSets = $brick.data('iconsets');
+ var iconSet;
+
+ if (typeof dataIconSets === 'undefined') {
+ dataIconSets = base.settings.iconSets;
+ }
+
+ for (iconSet in dataIconSets) {
+ if (dataIconSets.hasOwnProperty(iconSet)) {
+ $brick.append('
' + dataIconSets[iconSet] + '');
+ }
+ }
+
+ $brick.find('.launch-icons').on('click', function (e) {
+ e.preventDefault();
+ var $self = external_jQuery_default()(this);
+ var theseIcons = $self.data('icons');
+ base.iconSetName = theseIcons;
+ base.iconSet = '.' + theseIcons + '-set'; // Initialize picker
+
+ base.iconPick($brick); // Show icon picker
+
+ base.showPicker($brick, external_jQuery_default()(base.iconSet), base.settings.mode);
+ });
+ }
+ }, {
+ key: "iconPick",
+ value: function iconPick($brick) {
+ var base = this;
+ var highlight = 'icon-highlight ' + base.settings.classes.highlight;
+ external_jQuery_default()(base.iconSet).on('click', 'li', function (e) {
+ e.preventDefault();
+ var $icon = external_jQuery_default()(this);
+ var icon = $icon.data(base.settings.save); // Mark as selected
+
+ external_jQuery_default()('.icon-selected').removeClass('icon-selected');
+ $icon.addClass('icon-selected');
+
+ if (base.$field.data('format') === 'short') {
+ icon = icon.slice(6);
+ } // Save icon value to field
+
+
+ base.$field.val(icon); // Close icon picker
+
+ if (base.settings.closeOnPick) {
+ base.closePicker($brick, $icon.closest(base.iconSet), base.settings.mode);
+ } // Set preview
+
+
+ base.setPreview($icon.data('class')); // Broadcast event passing the selected icon.
+
+ external_jQuery_default()('body').trigger('iconselected.queryloop', icon);
+ });
+ external_jQuery_default()(base.iconSet).on('mouseenter mouseleave', 'li', function (e) {
+ if (e.type === 'mouseenter') {
+ external_jQuery_default()(this).addClass(highlight);
+ } else {
+ external_jQuery_default()(this).removeClass(highlight);
+ }
+ });
+ }
+ }, {
+ key: "showPicker",
+ value: function showPicker($brick, $icons, mode) {
+ if (mode === 'inline') {
+ external_jQuery_default()('.icon-set').removeClass('ip-inline-open');
+ $brick.find($icons).toggleClass('ip-inline-open');
+ } else if (mode === 'dialog') {
+ $brick.find('.icon-picker-close').addClass('make-visible');
+ $brick.find('.icon-picker-overlay').addClass('make-visible');
+ $icons.addClass('dialog-open');
+ }
+
+ $icons.find('.icon-selected').removeClass('icon-selected');
+ var selectedIcon = this.$field.val().replace(' ', '.');
+
+ if (selectedIcon !== '') {
+ if (this.settings.save === 'class') {
+ $icons.find('.' + selectedIcon).addClass('icon-selected');
+ } else {
+ $icons.find('[data-code="' + selectedIcon + '"]').addClass('icon-selected');
+ }
+ } // Broadcast event when the picker is shown passing the picker mode.
+
+
+ external_jQuery_default()('body').trigger('iconpickershow.queryloop', mode);
+ }
+ }, {
+ key: "closePicker",
+ value: function closePicker($brick, $icons, mode) {
+ // Remove event so they don't fire from a different picker
+ external_jQuery_default()(this.iconSet).off('click', 'li');
+
+ if (mode === 'inline') {
+ $brick.find($icons).removeClass('ip-inline-open');
+ } else if (mode === 'dialog') {
+ external_jQuery_default()('.icon-picker-close, .icon-picker-overlay').removeClass('make-visible');
+ } // Broadcast event when the picker is closed passing the picker mode.
+
+
+ external_jQuery_default()('body').trigger('iconpickerclose.queryloop', mode);
+ external_jQuery_default()('.icon-set').removeClass('dialog-open');
+ }
+ }, {
+ key: "setPreview",
+ value: function setPreview(preview) {
+ var $preview = external_jQuery_default()(this.element).find('.icon-preview');
+ $preview.addClass('icon-preview-on').find('i').removeClass().addClass(this.iconSetName).addClass(preview);
+ $preview.find('a').show();
+ }
+ }]);
+
+ return QL_Icon_Picker;
+}();
+/* Grav */
+// extend $ with 3rd party QL Icon Picker
+
+
+(external_jQuery_default()).fn.qlIconPicker = function (options) {
+ this.each(function () {
+ if (!external_jQuery_default().data(this, 'plugin_qlIconPicker')) {
+ external_jQuery_default().data(this, 'plugin_qlIconPicker', new QL_Icon_Picker(this, options));
+ }
+ });
+ return this;
+};
+
+var IconpickerField = /*#__PURE__*/function () {
+ function IconpickerField(options) {
+ var _this = this;
+
+ iconpicker_classCallCheck(this, IconpickerField);
+
+ this.items = external_jQuery_default()();
+ this.options = Object.assign({}, this.defaults, options);
+ external_jQuery_default()('[data-grav-iconpicker]').each(function (index, element) {
+ return _this.addItem(element);
+ });
+ external_jQuery_default()('body').on('mutation._grav', this._onAddedNodes.bind(this));
+ }
+
+ iconpicker_createClass(IconpickerField, [{
+ key: "_onAddedNodes",
+ value: function _onAddedNodes(event, target
+ /* , record, instance */
+ ) {
+ var _this2 = this;
+
+ var fields = external_jQuery_default()(target).find('[data-grav-iconpicker]');
+
+ if (!fields.length) {
+ return;
+ }
+
+ fields.each(function (index, field) {
+ field = external_jQuery_default()(field);
+
+ if (!~_this2.items.index(field)) {
+ _this2.addItem(field);
+ }
+ });
+ }
+ }, {
+ key: "addItem",
+ value: function addItem(element) {
+ element = external_jQuery_default()(element);
+ this.items = this.items.add(element);
+ element.find('.icon-picker').qlIconPicker({
+ 'save': 'class'
+ }); // hack to remove extra icon sets that are just copies
+
+ external_jQuery_default()('.icon-set:not(:first)').remove();
+ }
+ }]);
+
+ return IconpickerField;
+}();
+
+
+var iconpicker_Instance = new IconpickerField(); // Fix to close the dialog when clicking outside
+
+external_jQuery_default()(document).on('click', function (event) {
+ var target = external_jQuery_default()(event.target);
+ var match = '.icon-set.dialog-open, .launch-icons[data-icons]';
+
+ if (!target.is(match) && !target.closest(match).length) {
+ var dialogs = external_jQuery_default()('.icon-set.dialog-open'); // skip if there's no dialog open
+
+ if (dialogs.length) {
+ dialogs.each(function (index, dialog) {
+ var picker = external_jQuery_default()(dialog).siblings('.icon-picker');
+ var data = picker.data('plugin_qlIconPicker');
+ data.closePicker(picker, external_jQuery_default()(data.iconSet), data.settings.mode);
+ });
+ }
+ }
+});
+;// CONCATENATED MODULE: ./app/utils/cron-ui.js
+function cron_ui_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { cron_ui_typeof = function _typeof(obj) { return typeof obj; }; } else { cron_ui_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return cron_ui_typeof(obj); }
+
+/* eslint-disable */
+
+/*
+ * This file is part of the Arnapou jqCron package.
+ *
+ * (c) Arnaud Buathier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Default settings
+ */
+
+var jqCronDefaultSettings = {
+ texts: {},
+ monthdays: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
+ hours: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
+ hour_labels: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"],
+ minutes: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
+ lang: 'en',
+ enabled_minute: false,
+ enabled_hour: true,
+ enabled_day: true,
+ enabled_week: true,
+ enabled_month: true,
+ enabled_year: true,
+ multiple_dom: false,
+ multiple_month: false,
+ multiple_mins: false,
+ multiple_dow: false,
+ multiple_time_hours: false,
+ multiple_time_minutes: false,
+ numeric_zero_pad: false,
+ default_period: 'day',
+ default_value: '',
+ no_reset_button: true,
+ disabled: false,
+ bind_to: null,
+ bind_method: {
+ set: function set($element, value) {
+ $element.is(':input') ? $element.val(value) : $element.data('jqCronValue', value);
+ },
+ get: function get($element) {
+ return $element.is(':input') ? $element.val() : $element.data('jqCronValue');
+ }
+ }
+};
+/**
+ * Custom extend of json for jqCron settings.
+ * We don't use jQuery.extend because simple extend does not fit our needs, and deep extend has a bad
+ * feature for us : it replaces keys of "Arrays" instead of replacing the full array.
+ */
+
+(function ($) {
+ var extend = function extend(dst, src) {
+ for (var i in src) {
+ if ($.isPlainObject(src[i])) {
+ dst[i] = extend(dst[i] && $.isPlainObject(dst[i]) ? dst[i] : {}, src[i]);
+ } else if ($.isArray(src[i])) {
+ dst[i] = src[i].slice(0);
+ } else if (src[i] !== undefined) {
+ dst[i] = src[i];
+ }
+ }
+
+ return dst;
+ };
+
+ this.jqCronMergeSettings = function (obj) {
+ return extend(extend({}, jqCronDefaultSettings), obj || {});
+ };
+}).call(window, (external_jQuery_default()));
+/**
+ * Shortcut to get the instance of jqCron instance from one jquery object
+ */
+
+(function ($) {
+ $.fn.jqCronGetInstance = function () {
+ return this.data('jqCron');
+ };
+}).call(window, (external_jQuery_default()));
+/**
+ * Main plugin
+ */
+
+(function ($) {
+ $.fn.jqCron = function (settings) {
+ var saved_settings = settings;
+ return this.each(function () {
+ var cron, saved;
+ var $this = $(this);
+ var settings = jqCronMergeSettings(saved_settings); // clone settings
+
+ var translations = settings.texts[settings.lang];
+
+ if (cron_ui_typeof(translations) !== 'object' || $.isEmptyObject(translations)) {
+ console && console.error('Missing translations for language "' + settings.lang + '". ' + 'Please include jqCron.' + settings.lang + '.js or manually provide ' + 'the necessary translations when calling $.fn.jqCron().');
+ return;
+ }
+
+ if (!settings.jquery_container) {
+ if ($this.is(':container')) {
+ settings.jquery_element = $this.uniqueId('jqCron');
+ } else if ($this.is(':autoclose')) {
+ // delete already generated dom if exists
+ if ($this.next('.jqCron').length == 1) {
+ $this.next('.jqCron').remove();
+ } // generate new
+
+
+ settings.jquery_element = $('').uniqueId('jqCron').insertAfter($this);
+ } else {
+ console && console.error(settings.texts[settings.lang].error1.replace('%s', this.tagName));
+ return;
+ }
+ } // autoset bind_to if it is an input
+
+
+ if ($this.is(':input')) {
+ settings.bind_to = settings.bind_to || $this;
+ } // init cron object
+
+
+ if (settings.bind_to) {
+ if (settings.bind_to.is(':input')) {
+ // auto bind from input to object if an input, textarea ...
+ settings.bind_to.blur(function () {
+ var value = settings.bind_method.get(settings.bind_to);
+ $this.jqCronGetInstance().setCron(value);
+ });
+ }
+
+ saved = settings.bind_method.get(settings.bind_to);
+ cron = new jqCron(settings);
+ cron.setCron(saved);
+ } else {
+ cron = new jqCron(settings);
+ }
+
+ $(this).data('jqCron', cron);
+ });
+ };
+}).call(window, (external_jQuery_default()));
+/**
+ * jqCron class
+ */
+
+(function ($) {
+ var jqCronInstances = [];
+
+ function jqCron(settings) {
+ var _initialized = false;
+
+ var _self = this;
+
+ var _$elt = this;
+
+ var _$obj = $('');
+
+ var _$blocks = $('');
+
+ var _$blockPERIOD = $('');
+
+ var _$blockDOM = $('');
+
+ var _$blockMONTH = $('');
+
+ var _$blockMINS = $('');
+
+ var _$blockDOW = $('');
+
+ var _$blockTIME = $('');
+
+ var _$cross = $('✘');
+
+ var _selectors = [];
+
+ var _selectorPeriod, _selectorMins, _selectorTimeH, _selectorTimeM, _selectorDow, _selectorDom, _selectorMonth; // instanciate a new selector
+
+
+ function newSelector($block, multiple, type) {
+ var selector = new jqCronSelector(_self, $block, multiple, type);
+ selector.$.bind('selector:open', function () {
+ // we close all opened selectors of all other jqCron
+ for (var n = jqCronInstances.length; n--;) {
+ if (jqCronInstances[n] != _self) {
+ jqCronInstances[n].closeSelectors();
+ } else {
+ // we close all other opened selectors of this jqCron
+ for (var o = _selectors.length; o--;) {
+ if (_selectors[o] != selector) {
+ _selectors[o].close();
+ }
+ }
+ }
+ }
+ });
+ selector.$.bind('selector:change', function () {
+ var boundChanged = false; // don't propagate if not initialized
+
+ if (!_initialized) return; // bind data between two minute selectors (only if they have the same multiple settings)
+
+ if (settings.multiple_mins == settings.multiple_time_minutes) {
+ if (selector == _selectorMins) {
+ boundChanged = _selectorTimeM.setValue(_selectorMins.getValue());
+ } else if (selector == _selectorTimeM) {
+ boundChanged = _selectorMins.setValue(_selectorTimeM.getValue());
+ }
+ } // we propagate the change event to the main object
+
+
+ boundChanged || _$obj.trigger('cron:change', _self.getCron());
+ });
+
+ _selectors.push(selector);
+
+ return selector;
+ } // disable the selector
+
+
+ this.disable = function () {
+ _$obj.addClass('disable');
+
+ settings.disable = true;
+
+ _self.closeSelectors();
+ }; // return if the selector is disabled
+
+
+ this.isDisabled = function () {
+ return settings.disable == true;
+ }; // enable the selector
+
+
+ this.enable = function () {
+ _$obj.removeClass('disable');
+
+ settings.disable = false;
+ }; // get cron value
+
+
+ this.getCron = function () {
+ var period = _selectorPeriod.getValue();
+
+ var items = ['*', '*', '*', '*', '*'];
+
+ if (period == 'hour') {
+ items[0] = _selectorMins.getCronValue();
+ }
+
+ if (period == 'day' || period == 'week' || period == 'month' || period == 'year') {
+ items[0] = _selectorTimeM.getCronValue();
+ items[1] = _selectorTimeH.getCronValue();
+ }
+
+ if (period == 'month' || period == 'year') {
+ items[2] = _selectorDom.getCronValue();
+ }
+
+ if (period == 'year') {
+ items[3] = _selectorMonth.getCronValue();
+ }
+
+ if (period == 'week') {
+ items[4] = _selectorDow.getCronValue();
+ }
+
+ return items.join(' ');
+ }; // set cron (string like * * * * *)
+
+
+ this.setCron = function (str) {
+ if (!str) return;
+
+ try {
+ str = str.replace(/\s+/g, ' ').replace(/^ +/, '').replace(/ +$/, ''); // sanitize
+
+ var mask = str.replace(/[^\* ]/g, '-').replace(/-+/g, '-').replace(/ +/g, '');
+ var items = str.split(' ');
+ if (items.length != 5) _self.error(_self.getText('error2'));
+
+ if (mask == '*****') {
+ // 1 possibility
+ _selectorPeriod.setValue('minute');
+ } else if (mask == '-****') {
+ // 1 possibility
+ _selectorPeriod.setValue('hour');
+
+ _selectorMins.setCronValue(items[0]);
+
+ _selectorTimeM.setCronValue(items[0]);
+ } else if (mask.substring(2, mask.length) == '***') {
+ // 4 possibilities
+ _selectorPeriod.setValue('day');
+
+ _selectorMins.setCronValue(items[0]);
+
+ _selectorTimeM.setCronValue(items[0]);
+
+ _selectorTimeH.setCronValue(items[1]);
+ } else if (mask.substring(2, mask.length) == '-**') {
+ // 4 possibilities
+ _selectorPeriod.setValue('month');
+
+ _selectorMins.setCronValue(items[0]);
+
+ _selectorTimeM.setCronValue(items[0]);
+
+ _selectorTimeH.setCronValue(items[1]);
+
+ _selectorDom.setCronValue(items[2]);
+ } else if (mask.substring(2, mask.length) == '**-') {
+ // 4 possibilities
+ _selectorPeriod.setValue('week');
+
+ _selectorMins.setCronValue(items[0]);
+
+ _selectorTimeM.setCronValue(items[0]);
+
+ _selectorTimeH.setCronValue(items[1]);
+
+ _selectorDow.setCronValue(items[4]);
+ } else if (mask.substring(3, mask.length) == '-*') {
+ // 8 possibilities
+ _selectorPeriod.setValue('year');
+
+ _selectorMins.setCronValue(items[0]);
+
+ _selectorTimeM.setCronValue(items[0]);
+
+ _selectorTimeH.setCronValue(items[1]);
+
+ _selectorDom.setCronValue(items[2]);
+
+ _selectorMonth.setCronValue(items[3]);
+ } else {
+ _self.error(_self.getText('error4'));
+ }
+
+ _self.clearError();
+ } catch (e) {}
+ }; // close all child selectors
+
+
+ this.closeSelectors = function () {
+ for (var n = _selectors.length; n--;) {
+ _selectors[n].close();
+ }
+ }; // get the main element id
+
+
+ this.getId = function () {
+ return _$elt.attr('id');
+ }; // get the translated text
+
+
+ this.getText = function (key) {
+ var text = settings.texts[settings.lang][key] || null;
+
+ if (typeof text == "string" && text.match(')/gi, '');
+ text = '' + text + '';
+ }
+
+ return text;
+ }; // get the human readable text
+
+
+ this.getHumanText = function () {
+ var texts = [];
+
+ _$obj.find('> span > span:visible').find('.jqCron-text, .jqCron-selector > span').each(function () {
+ var text = $(this).text().replace(/\s+$/g, '').replace(/^\s+/g, '');
+ text && texts.push(text);
+ });
+
+ return texts.join(' ').replace(/\s:\s/g, ':');
+ }; // get settings
+
+
+ this.getSettings = function () {
+ return settings;
+ }; // display an error
+
+
+ this.error = function (msg) {
+ console && console.error('[jqCron Error] ' + msg);
+
+ _$obj.addClass('jqCron-error').attr('title', msg);
+
+ throw msg;
+ }; // clear error
+
+
+ this.clearError = function () {
+ _$obj.attr('title', '').removeClass('jqCron-error');
+ }; // clear
+
+
+ this.clear = function () {
+ _selectorDom.setValue([]);
+
+ _selectorDow.setValue([]);
+
+ _selectorMins.setValue([]);
+
+ _selectorMonth.setValue([]);
+
+ _selectorTimeH.setValue([]);
+
+ _selectorTimeM.setValue([]);
+
+ _self.triggerChange();
+ }; // init (called in constructor)
+
+
+ this.init = function () {
+ var n, i, labelsList, list;
+ if (_initialized) return;
+ settings = jqCronMergeSettings(settings);
+ settings.jquery_element || _self.error(_self.getText('error3'));
+ _$elt = settings.jquery_element;
+
+ _$elt.append(_$obj);
+
+ _$obj.data('id', settings.id);
+
+ _$obj.data('jqCron', _self);
+
+ _$obj.append(_$blocks);
+
+ settings.no_reset_button || _$obj.append(_$cross);
+ !settings.disable || _$obj.addClass('disable');
+
+ _$blocks.append(_$blockPERIOD);
+
+ if (/^(ko)$/i.test(settings.lang)) {
+ _$blocks.append(_$blockMONTH, _$blockDOM);
+ } else {
+ _$blocks.append(_$blockDOM, _$blockMONTH);
+ }
+
+ _$blocks.append(_$blockMINS);
+
+ _$blocks.append(_$blockDOW);
+
+ _$blocks.append(_$blockTIME); // various binding
+
+
+ _$cross.click(function () {
+ _self.isDisabled() || _self.clear();
+ }); // binding from cron to target
+
+
+ _$obj.bind('cron:change', function (evt, value) {
+ if (!settings.bind_to) return;
+ settings.bind_method.set && settings.bind_method.set(settings.bind_to, value);
+
+ _self.clearError();
+ }); // PERIOD
+
+
+ _$blockPERIOD.append(_self.getText('text_period'));
+
+ _selectorPeriod = newSelector(_$blockPERIOD, false, 'period');
+ settings.enabled_minute && _selectorPeriod.add('minute', _self.getText('name_minute'));
+ settings.enabled_hour && _selectorPeriod.add('hour', _self.getText('name_hour'));
+ settings.enabled_day && _selectorPeriod.add('day', _self.getText('name_day'));
+ settings.enabled_week && _selectorPeriod.add('week', _self.getText('name_week'));
+ settings.enabled_month && _selectorPeriod.add('month', _self.getText('name_month'));
+ settings.enabled_year && _selectorPeriod.add('year', _self.getText('name_year'));
+
+ _selectorPeriod.$.bind('selector:change', function (e, value) {
+ _$blockDOM.hide();
+
+ _$blockMONTH.hide();
+
+ _$blockMINS.hide();
+
+ _$blockDOW.hide();
+
+ _$blockTIME.hide();
+
+ if (value == 'hour') {
+ _$blockMINS.show();
+ } else if (value == 'day') {
+ _$blockTIME.show();
+ } else if (value == 'week') {
+ _$blockDOW.show();
+
+ _$blockTIME.show();
+ } else if (value == 'month') {
+ _$blockDOM.show();
+
+ _$blockTIME.show();
+ } else if (value == 'year') {
+ _$blockDOM.show();
+
+ _$blockMONTH.show();
+
+ _$blockTIME.show();
+ }
+ });
+
+ _selectorPeriod.setValue(settings.default_period); // MINS (minutes)
+
+
+ _$blockMINS.append(_self.getText('text_mins'));
+
+ _selectorMins = newSelector(_$blockMINS, settings.multiple_mins, 'minutes');
+
+ for (i = 0, list = settings.minutes; i < list.length; i++) {
+ _selectorMins.add(list[i], list[i]);
+ } // TIME (hour:min)
+
+
+ _$blockTIME.append(_self.getText('text_time'));
+
+ _selectorTimeH = newSelector(_$blockTIME, settings.multiple_time_hours, 'time_hours');
+
+ for (i = 0, list = settings.hours, labelsList = settings.hour_labels; i < list.length; i++) {
+ _selectorTimeH.add(list[i], labelsList[i]);
+ }
+
+ _selectorTimeM = newSelector(_$blockTIME, settings.multiple_time_minutes, 'time_minutes');
+
+ for (i = 0, list = settings.minutes; i < list.length; i++) {
+ _selectorTimeM.add(list[i], list[i]);
+ } // DOW (day of week)
+
+
+ _$blockDOW.append(_self.getText('text_dow'));
+
+ _selectorDow = newSelector(_$blockDOW, settings.multiple_dow, 'day_of_week');
+
+ for (i = 0, list = _self.getText('weekdays'); i < list.length; i++) {
+ _selectorDow.add(i + 1, list[i]);
+ } // DOM (day of month)
+
+
+ _$blockDOM.append(_self.getText('text_dom'));
+
+ _selectorDom = newSelector(_$blockDOM, settings.multiple_dom, 'day_of_month');
+
+ for (i = 0, list = settings.monthdays; i < list.length; i++) {
+ _selectorDom.add(list[i], list[i]);
+ } // MONTH (day of week)
+
+
+ _$blockMONTH.append(_self.getText('text_month'));
+
+ _selectorMonth = newSelector(_$blockMONTH, settings.multiple_month, 'month');
+
+ for (i = 0, list = _self.getText('months'); i < list.length; i++) {
+ _selectorMonth.add(i + 1, list[i]);
+ } // close all selectors when we click in body
+
+
+ $('body').click(function () {
+ var i,
+ n = _selectors.length;
+
+ for (i = 0; i < n; i++) {
+ _selectors[i].close();
+ }
+ });
+ _initialized = true; // default value
+
+ if (settings.default_value) {
+ _self.setCron(settings.default_value);
+ }
+ }; // trigger a change event
+
+
+ this.triggerChange = function () {
+ _$obj.trigger('cron:change', _self.getCron());
+ }; // store instance in array
+
+
+ jqCronInstances.push(this); // expose main jquery object
+
+ this.$ = _$obj; // init
+
+ try {
+ this.init();
+
+ _self.triggerChange();
+ } catch (e) {}
+ }
+
+ this.jqCron = jqCron;
+}).call(window, (external_jQuery_default()));
+/**
+ * jqCronSelector class
+ */
+
+(function ($) {
+ function jqCronSelector(_cron, _$block, _multiple, _type) {
+ var _self = this;
+
+ var _$list = $('');
+
+ var _$title = $('');
+
+ var _$selector = $('');
+
+ var _values = {};
+ var _value = [];
+ var _hasNumericTexts = true;
+
+ var _numeric_zero_pad = _cron.getSettings().numeric_zero_pad; // return an array without doublon
+
+
+ function array_unique(l) {
+ var i = 0,
+ n = l.length,
+ k = {},
+ a = [];
+
+ while (i < n) {
+ k[l[i]] || (k[l[i]] = true && a.push(l[i]));
+ i++;
+ }
+
+ return a;
+ } // get the value (an array if multiple, else a single value)
+
+
+ this.getValue = function () {
+ return _multiple ? _value : _value[0];
+ }; // get a correct string for cron
+
+
+ this.getCronValue = function () {
+ if (_value.length == 0) return '*';
+ var cron = [_value[0]],
+ i,
+ s = _value[0],
+ c = _value[0],
+ n = _value.length;
+
+ for (i = 1; i < n; i++) {
+ if (_value[i] == c + 1) {
+ c = _value[i];
+ cron[cron.length - 1] = s + '-' + c;
+ } else {
+ s = c = _value[i];
+ cron.push(c);
+ }
+ }
+
+ return cron.join(',');
+ }; // set the cron value
+
+
+ this.setCronValue = function (str) {
+ var values = [],
+ m,
+ i,
+ n;
+
+ if (str !== '*') {
+ while (str != '') {
+ // test "*/n" expression
+ m = str.match(/^\*\/([0-9]+),?/);
+
+ if (m && m.length == 2) {
+ for (i = 0; i <= 59; i += m[1] | 0) {
+ values.push(i);
+ }
+
+ str = str.replace(m[0], '');
+ continue;
+ } // test "a-b/n" expression
+
+
+ m = str.match(/^([0-9]+)-([0-9]+)\/([0-9]+),?/);
+
+ if (m && m.length == 4) {
+ for (i = m[1] | 0; i <= (m[2] | 0); i += m[3] | 0) {
+ values.push(i);
+ }
+
+ str = str.replace(m[0], '');
+ continue;
+ } // test "a-b" expression
+
+
+ m = str.match(/^([0-9]+)-([0-9]+),?/);
+
+ if (m && m.length == 3) {
+ for (i = m[1] | 0; i <= (m[2] | 0); i++) {
+ values.push(i);
+ }
+
+ str = str.replace(m[0], '');
+ continue;
+ } // test "c" expression
+
+
+ m = str.match(/^([0-9]+),?/);
+
+ if (m && m.length == 2) {
+ values.push(m[1] | 0);
+ str = str.replace(m[0], '');
+ continue;
+ } // something goes wrong in the expression
+
+
+ return;
+ }
+ }
+
+ _self.setValue(values);
+ }; // close the selector
+
+
+ this.close = function () {
+ _$selector.trigger('selector:close');
+ }; // open the selector
+
+
+ this.open = function () {
+ _$selector.trigger('selector:open');
+ }; // whether the selector is open
+
+
+ this.isOpened = function () {
+ return _$list.is(':visible');
+ }; // add a selected value to the list
+
+
+ this.addValue = function (key) {
+ var values = _multiple ? _value.slice(0) : []; // clone array
+
+ values.push(key);
+
+ _self.setValue(values);
+ }; // remove a selected value from the list
+
+
+ this.removeValue = function (key) {
+ if (_multiple) {
+ var i,
+ newValue = [];
+
+ for (i = 0; i < _value.length; i++) {
+ if (key != [_value[i]]) {
+ newValue.push(_value[i]);
+ }
+ }
+
+ _self.setValue(newValue);
+ } else {
+ _self.clear();
+ }
+ }; // set the selected value(s) of the list
+
+
+ this.setValue = function (keys) {
+ var i,
+ newKeys = [],
+ saved = _value.join(' ');
+
+ if (!$.isArray(keys)) keys = [keys];
+
+ _$list.find('li').removeClass('selected');
+
+ keys = array_unique(keys);
+ keys.sort(function (a, b) {
+ var ta = cron_ui_typeof(a);
+
+ var tb = cron_ui_typeof(b);
+
+ if (ta == tb && ta == "number") return a - b;else return String(a) == String(b) ? 0 : String(a) < String(b) ? -1 : 1;
+ });
+
+ if (_multiple) {
+ for (i = 0; i < keys.length; i++) {
+ if (keys[i] in _values) {
+ _values[keys[i]].addClass('selected');
+
+ newKeys.push(keys[i]);
+ }
+ }
+ } else {
+ if (keys[0] in _values) {
+ _values[keys[0]].addClass('selected');
+
+ newKeys.push(keys[0]);
+ }
+ } // remove unallowed values
+
+
+ _value = newKeys;
+
+ if (saved != _value.join(' ')) {
+ _$selector.trigger('selector:change', _multiple ? keys : keys[0]);
+
+ return true;
+ }
+
+ return false;
+ }; // get the title text
+
+
+ this.getTitleText = function () {
+ var getValueText = function getValueText(key) {
+ return key in _values ? _values[key].text() : key;
+ };
+
+ if (_value.length == 0) {
+ return _cron.getText('empty_' + _type) || _cron.getText('empty');
+ }
+
+ var cron = [getValueText(_value[0])],
+ i,
+ s = _value[0],
+ c = _value[0],
+ n = _value.length;
+
+ for (i = 1; i < n; i++) {
+ if (_value[i] == c + 1) {
+ c = _value[i];
+ cron[cron.length - 1] = getValueText(s) + '-' + getValueText(c);
+ } else {
+ s = c = _value[i];
+ cron.push(getValueText(c));
+ }
+ }
+
+ return cron.join(',');
+ }; // clear list
+
+
+ this.clear = function () {
+ _values = {};
+
+ _self.setValue([]);
+
+ _$list.empty();
+ }; // add a (key, value) pair
+
+
+ this.add = function (key, value) {
+ if (!(value + '').match(/^[0-9]+$/)) _hasNumericTexts = false;
+
+ if (_numeric_zero_pad && _hasNumericTexts && value < 10) {
+ value = '0' + value;
+ }
+
+ var $item = $('' + value + '');
+
+ _$list.append($item);
+
+ _values[key] = $item;
+ $item.click(function () {
+ if (_multiple && $(this).hasClass('selected')) {
+ _self.removeValue(key);
+ } else {
+ _self.addValue(key);
+
+ if (!_multiple) _self.close();
+ }
+ });
+ }; // expose main jquery object
+
+
+ this.$ = _$selector; // constructor
+
+ _$block.find('b:eq(0)').after(_$selector).remove();
+
+ _$selector.addClass('jqCron-selector-' + _$block.find('.jqCron-selector').length).append(_$title).append(_$list).bind('selector:open', function () {
+ if (_hasNumericTexts) {
+ var nbcols = 1,
+ n = _$list.find('li').length;
+
+ if (n > 5 && n <= 16) nbcols = 2;else if (n > 16 && n <= 23) nbcols = 3;else if (n > 23 && n <= 40) nbcols = 4;else if (n > 40) nbcols = 5;
+
+ _$list.addClass('cols' + nbcols);
+ }
+
+ _$list.show();
+ }).bind('selector:close', function () {
+ _$list.hide();
+ }).bind('selector:change', function () {
+ _$title.html(_self.getTitleText());
+ }).click(function (e) {
+ e.stopPropagation();
+ }).trigger('selector:change');
+
+ $.fn.disableSelection && _$selector.disableSelection(); // only work with jQuery UI
+
+ _$title.click(function (e) {
+ _self.isOpened() || _cron.isDisabled() ? _self.close() : _self.open();
+ });
+
+ _self.close();
+
+ _self.clear();
+ }
+
+ this.jqCronSelector = jqCronSelector;
+}).call(window, (external_jQuery_default()));
+/**
+ * Generate unique id for each element.
+ * Skip elements which have already an id.
+ */
+
+(function ($) {
+ var jqUID = 0;
+
+ var jqGetUID = function jqGetUID(prefix) {
+ var id;
+
+ while (1) {
+ jqUID++;
+ id = (prefix || 'JQUID') + '' + jqUID;
+ if (!document.getElementById(id)) return id;
+ }
+ };
+
+ $.fn.uniqueId = function (prefix) {
+ return this.each(function () {
+ if ($(this).attr('id')) return;
+ var id = jqGetUID(prefix);
+ $(this).attr('id', id);
+ });
+ };
+}).call(window, (external_jQuery_default()));
+/**
+ * Extends jQuery selectors with new block selector
+ */
+
+(function ($) {
+ $.extend($.expr[':'], {
+ container: function container(a) {
+ return (a.tagName + '').toLowerCase() in {
+ a: 1,
+ abbr: 1,
+ acronym: 1,
+ address: 1,
+ b: 1,
+ big: 1,
+ blockquote: 1,
+ button: 1,
+ cite: 1,
+ code: 1,
+ dd: 1,
+ del: 1,
+ dfn: 1,
+ div: 1,
+ dt: 1,
+ em: 1,
+ fieldset: 1,
+ form: 1,
+ h1: 1,
+ h2: 1,
+ h3: 1,
+ h4: 1,
+ h5: 1,
+ h6: 1,
+ i: 1,
+ ins: 1,
+ kbd: 1,
+ label: 1,
+ li: 1,
+ p: 1,
+ pre: 1,
+ q: 1,
+ samp: 1,
+ small: 1,
+ span: 1,
+ strong: 1,
+ sub: 1,
+ sup: 1,
+ td: 1,
+ tt: 1
+ };
+ },
+ autoclose: function autoclose(a) {
+ return (a.tagName + '').toLowerCase() in {
+ area: 1,
+ base: 1,
+ basefont: 1,
+ br: 1,
+ col: 1,
+ frame: 1,
+ hr: 1,
+ img: 1,
+ input: 1,
+ link: 1,
+ meta: 1,
+ param: 1
+ };
+ }
+ });
+}).call(window, (external_jQuery_default()));
+;// CONCATENATED MODULE: ./app/forms/fields/cron.js
+function cron_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function cron_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function cron_createClass(Constructor, protoProps, staticProps) { if (protoProps) cron_defineProperties(Constructor.prototype, protoProps); if (staticProps) cron_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+var CronField = /*#__PURE__*/function () {
+ function CronField() {
+ var _this = this;
+
+ cron_classCallCheck(this, CronField);
+
+ this.items = external_jQuery_default()();
+ external_jQuery_default()('[data-grav-field="cron"]').each(function (index, cron) {
+ return _this.addCron(cron);
+ });
+ external_jQuery_default()('body').on('mutation._grav', this._onAddedNodes.bind(this));
+ }
+
+ cron_createClass(CronField, [{
+ key: "addCron",
+ value: function addCron(cron) {
+ cron = external_jQuery_default()(cron);
+ this.items = this.items.add(cron);
+ cron.find('.cron-selector').each(function (index, container) {
+ container = external_jQuery_default()(container);
+ var input = container.closest('[data-grav-field]').find('input');
+ container.jqCron({
+ numeric_zero_pad: true,
+ enabled_minute: true,
+ multiple_dom: true,
+ multiple_month: true,
+ multiple_mins: true,
+ multiple_dow: true,
+ multiple_time_hours: true,
+ multiple_time_minutes: true,
+ default_period: 'hour',
+ default_value: input.val() || '* * * * *',
+ no_reset_button: false,
+ bind_to: input,
+ bind_method: {
+ set: function set($element, value) {
+ $element.val(value);
+ }
+ },
+ texts: {
+ en: {
+ empty: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.EVERY"],
+ empty_minutes: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.EVERY"],
+ empty_time_hours: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.EVERY_HOUR"],
+ empty_time_minutes: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.EVERY_MINUTE"],
+ empty_day_of_week: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.EVERY_DAY_OF_WEEK"],
+ empty_day_of_month: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.EVERY_DAY_OF_MONTH"],
+ empty_month: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.EVERY_MONTH"],
+ name_minute: external_GravAdmin_namespaceObject.translations.GRAV_CORE["NICETIME.MINUTE"],
+ name_hour: external_GravAdmin_namespaceObject.translations.GRAV_CORE["NICETIME.HOUR"],
+ name_day: external_GravAdmin_namespaceObject.translations.GRAV_CORE["NICETIME.DAY"],
+ name_week: external_GravAdmin_namespaceObject.translations.GRAV_CORE["NICETIME.WEEK"],
+ name_month: external_GravAdmin_namespaceObject.translations.GRAV_CORE["NICETIME.MONTH"],
+ name_year: external_GravAdmin_namespaceObject.translations.GRAV_CORE["NICETIME.YEAR"],
+ text_period: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.TEXT_PERIOD"],
+ text_mins: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.TEXT_MINS"],
+ text_time: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.TEXT_TIME"],
+ text_dow: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.TEXT_DOW"],
+ text_month: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.TEXT_MONTH"],
+ text_dom: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.TEXT_DOM"],
+ error1: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.ERROR1"],
+ error2: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.ERROR2"],
+ error3: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.ERROR3"],
+ error4: external_GravAdmin_namespaceObject.translations.GRAV_CORE["CRON.ERROR4"],
+ weekdays: external_GravAdmin_namespaceObject.translations.GRAV_CORE.DAYS_OF_THE_WEEK,
+ months: external_GravAdmin_namespaceObject.translations.GRAV_CORE.MONTHS_OF_THE_YEAR
+ }
+ }
+ });
+ });
+ }
+ }, {
+ key: "_onAddedNodes",
+ value: function _onAddedNodes(event, target
+ /* , record, instance */
+ ) {
+ var _this2 = this;
+
+ var crons = external_jQuery_default()(target).find('[data-grav-field="cron"]');
+
+ if (!crons.length) {
+ return;
+ }
+
+ crons.each(function (index, list) {
+ list = external_jQuery_default()(list);
+
+ if (!~_this2.items.index(list)) {
+ _this2.addCron(list);
+ }
+ });
+ }
+ }]);
+
+ return CronField;
+}();
+
+
+var cron_Instance = new CronField();
+// EXTERNAL MODULE: ./node_modules/eventemitter3/index.js
+var eventemitter3 = __webpack_require__(26729);
+var eventemitter3_default = /*#__PURE__*/__webpack_require__.n(eventemitter3);
+;// CONCATENATED MODULE: ./app/utils/finderjs.js
+function finderjs_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { finderjs_typeof = function _typeof(obj) { return typeof obj; }; } else { finderjs_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return finderjs_typeof(obj); }
+
+function finderjs_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function finderjs_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function finderjs_createClass(Constructor, protoProps, staticProps) { if (protoProps) finderjs_defineProperties(Constructor.prototype, protoProps); if (staticProps) finderjs_defineProperties(Constructor, staticProps); return Constructor; }
+
+/**
+ * (c) Trilby Media, LLC
+ * Author Djamil Legato
+ *
+ * Based on Mark Matyas's Finderjs
+ * MIT License
+ */
+
+
+var DEFAULTS = {
+ labelKey: 'name',
+ valueKey: 'value',
+ // new
+ childKey: 'children',
+ iconKey: 'icon',
+ // new
+ itemKey: 'item-key',
+ // new
+ pathBar: true,
+ className: {
+ container: 'fjs-container',
+ pathBar: 'fjs-path-bar',
+ col: 'fjs-col',
+ list: 'fjs-list',
+ item: 'fjs-item',
+ active: 'fjs-active',
+ children: 'fjs-has-children',
+ url: 'fjs-url',
+ itemPrepend: 'fjs-item-prepend',
+ itemContent: 'fjs-item-content',
+ itemAppend: 'fjs-item-append'
+ }
+};
+
+var Finder = /*#__PURE__*/function () {
+ function Finder(container, data, options) {
+ var _this = this;
+
+ finderjs_classCallCheck(this, Finder);
+
+ this.$emitter = new (eventemitter3_default())();
+ this.container = external_jQuery_default()(container);
+ this.data = data;
+ this.config = external_jQuery_default().extend({}, DEFAULTS, options); // dom events
+
+ this.container.on('click', this.clickEvent.bind(this));
+ this.container.on('keydown', this.keydownEvent.bind(this)); // internal events
+
+ this.$emitter.on('item-selected', this.itemSelected.bind(this));
+ this.$emitter.on('create-column', this.addColumn.bind(this));
+ this.$emitter.on('navigate', this.navigate.bind(this));
+ this.$emitter.on('go-to', this.goTo.bind(this, this.data));
+ this.container.addClass(this.config.className.container).attr('tabindex', 0);
+ this.createColumn(this.data);
+
+ if (this.config.pathBar) {
+ this.pathBar = this.createPathBar();
+ this.pathBar.on('click', '[data-breadcrumb-node]', function (event) {
+ event.preventDefault();
+ var location = external_jQuery_default()(event.currentTarget).data('breadcrumbNode');
+
+ _this.goTo(_this.data, location);
+ });
+ } // '' is
+
+
+ if (this.config.defaultPath || this.config.defaultPath === '') {
+ this.goTo(this.data, this.config.defaultPath);
+ }
+ }
+
+ finderjs_createClass(Finder, [{
+ key: "reload",
+ value: function reload() {
+ var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.data;
+ this.createColumn(data); // '' is
+
+ if (this.config.defaultPath || this.config.defaultPath === '') {
+ this.goTo(data, this.config.defaultPath);
+ }
+ }
+ }, {
+ key: "createColumn",
+ value: function createColumn(data, parent) {
+ var _this2 = this;
+
+ var callback = function callback(data) {
+ return _this2.createColumn(data, parent);
+ };
+
+ if (typeof data === 'function') {
+ data.call(this, parent, callback);
+ } else if (Array.isArray(data) || finderjs_typeof(data) === 'object') {
+ if (finderjs_typeof(data) === 'object') {
+ data = Array.from(data);
+ }
+
+ var list = this.createList(data);
+ var div = external_jQuery_default()('');
+ div.append(list).addClass(this.config.className.col);
+ this.$emitter.emit('create-column', div);
+ return div;
+ } else {
+ throw new Error('Unknown data type');
+ }
+ }
+ }, {
+ key: "createPathBar",
+ value: function createPathBar() {
+ this.container.siblings(".".concat(this.config.className.pathBar)).remove();
+ var pathBar = external_jQuery_default()(""));
+ pathBar.insertAfter(this.container);
+ return pathBar;
+ }
+ }, {
+ key: "clickEvent",
+ value: function clickEvent(event) {
+ event.stopPropagation();
+ event.preventDefault();
+ var target = external_jQuery_default()(event.target);
+ var column = target.closest(".".concat(this.config.className.col));
+ var item = target.closest(".".concat(this.config.className.item));
+
+ if (item.length) {
+ this.$emitter.emit('item-selected', {
+ column: column,
+ item: item
+ });
+ }
+ }
+ }, {
+ key: "keydownEvent",
+ value: function keydownEvent(event) {
+ var codes = {
+ 37: 'left',
+ 38: 'up',
+ 39: 'right',
+ 40: 'down'
+ };
+
+ if (event.keyCode in codes) {
+ event.stopPropagation();
+ event.preventDefault();
+ this.$emitter.emit('navigate', {
+ direction: codes[event.keyCode]
+ });
+ }
+ }
+ }, {
+ key: "itemSelected",
+ value: function itemSelected(value) {
+ var element = value.item;
+
+ if (!element.length) {
+ return false;
+ }
+
+ var item = element[0]._item;
+ var column = value.column;
+ var data = item[this.config.childKey] || this.data;
+ var active = external_jQuery_default()(column).find(".".concat(this.config.className.active));
+
+ if (active.length) {
+ active.removeClass(this.config.className.active);
+ }
+
+ element.addClass(this.config.className.active);
+ column.nextAll().remove(); // ?!?!?
+
+ this.container[0].focus();
+ window.scrollTo(window.pageXOffset, window.pageYOffset);
+ this.updatePathBar();
+ var newColumn;
+
+ if (data) {
+ newColumn = this.createColumn(data, item);
+ this.$emitter.emit('interior-selected', item);
+ } else {
+ this.$emitter.emit('leaf-selected', item);
+ }
+
+ return newColumn;
+ }
+ }, {
+ key: "addColumn",
+ value: function addColumn(column) {
+ this.container.append(column);
+ this.$emitter.emit('column-created', column);
+ }
+ }, {
+ key: "navigate",
+ value: function navigate(value) {
+ var active = this.findLastActive();
+ var direction = value.direction;
+ var column;
+ var item;
+ var target;
+
+ if (active) {
+ item = active.item;
+ column = active.column;
+
+ if (direction === 'up' && item.prev().length) {
+ target = item.prev();
+ } else if (direction === 'down' && item.next().length) {
+ target = item.next();
+ } else if (direction === 'right' && column.next().length) {
+ column = column.next();
+ target = column.find(".".concat(this.config.className.item)).first();
+ } else if (direction === 'left' && column.prev().length) {
+ column = column.prev();
+ target = column.find(".".concat(this.config.className.active)).first() || column.find(".".concat(this.config.className.item));
+ }
+ } else {
+ column = this.container.find(".".concat(this.config.className.col)).first();
+ target = column.find(".".concat(this.config.className.item)).first();
+ }
+
+ if (target) {
+ this.$emitter.emit('item-selected', {
+ column: column,
+ item: target
+ });
+ }
+ }
+ }, {
+ key: "goTo",
+ value: function goTo(data, path) {
+ var _this3 = this;
+
+ path = Array.isArray(path) ? path : path.split('/').map(function (bit) {
+ return bit.trim();
+ }).filter(Boolean);
+
+ if (path.length) {
+ this.container.children().remove();
+ }
+
+ if (typeof data === 'function') {
+ data.call(this, null, function (data) {
+ return _this3.selectPath(path, data);
+ });
+ } else {
+ this.selectPath(path, data);
+ }
+ }
+ }, {
+ key: "selectPath",
+ value: function selectPath(path, data, column) {
+ var _this4 = this;
+
+ column = column || (path.length ? this.createColumn(data) : this.container.find("> .".concat(this.config.className.col)));
+ var current = path[0] || '';
+ var children = data.find(function (item) {
+ return item[_this4.config.itemKey] === current;
+ });
+ var newColumn = this.itemSelected({
+ column: column,
+ item: column.find("[data-fjs-item=\"".concat(current, "\"]")).first()
+ });
+ path.shift();
+
+ if (path.length && children) {
+ this.selectPath(path, children[this.config.childKey], newColumn);
+ }
+ }
+ }, {
+ key: "findLastActive",
+ value: function findLastActive() {
+ var active = this.container.find(".".concat(this.config.className.active));
+
+ if (!active.length) {
+ return null;
+ }
+
+ var item = active.last();
+ var column = item.closest(".".concat(this.config.className.col));
+ return {
+ item: item,
+ column: column
+ };
+ }
+ }, {
+ key: "createList",
+ value: function createList(data) {
+ var _this5 = this;
+
+ var list = external_jQuery_default()('');
+ var items = data.map(function (item) {
+ return _this5.createItem(item);
+ });
+ var fragments = items.reduce(function (fragment, current) {
+ fragment.appendChild(current[0] || current);
+ return fragment;
+ }, document.createDocumentFragment());
+ list.append(fragments).addClass(this.config.className.list);
+ return list;
+ }
+ }, {
+ key: "createItem",
+ value: function createItem(item) {
+ var listItem = external_jQuery_default()('');
+ var listItemClasses = [this.config.className.item];
+ var link = external_jQuery_default()('');
+ var createItemContent = this.config.createItemContent || this.createItemContent;
+ var fragment = createItemContent.call(this, item);
+ link.append(fragment).attr('href', '').attr('tabindex', -1);
+
+ if (item.url) {
+ link.attr('href', item.url);
+ listItemClasses.push(item.className);
+ }
+
+ if (item[this.config.childKey]) {
+ listItemClasses.push(this.config.className[this.config.childKey]);
+ }
+
+ listItemClasses.push("fjs-item-".concat(item.type));
+ listItem.addClass(listItemClasses.join(' '));
+ listItem.append(link).attr('data-fjs-item', item[this.config.itemKey]);
+ listItem[0]._item = item;
+ return listItem;
+ }
+ }, {
+ key: "updatePathBar",
+ value: function updatePathBar() {
+ var _this6 = this;
+
+ if (!this.config.pathBar) {
+ return false;
+ }
+
+ var activeItems = this.container.find(".".concat(this.config.className.active));
+ var itemKeys = '';
+ this.pathBar.children().empty();
+ activeItems.each(function (index, activeItem) {
+ var item = activeItem._item;
+ var isLast = index + 1 === activeItems.length;
+ itemKeys += "/".concat(item[_this6.config.itemKey]);
+
+ _this6.pathBar.append("\n \n \n ").concat(external_jQuery_default()('').html(item[_this6.config.labelKey]).html(), "\n ").concat(!isLast ? '' : '', "\n \n "));
+ });
+ }
+ }, {
+ key: "getIcon",
+ value: function getIcon(type) {
+ switch (type) {
+ case 'root':
+ return 'fa-sitemap';
+
+ case 'file':
+ return 'fa-file-o';
+
+ case 'dir':
+ default:
+ return 'fa-folder';
+ }
+ }
+ }]);
+
+ return Finder;
+}();
+
+/* harmony default export */ const finderjs = (Finder);
+;// CONCATENATED MODULE: ./app/forms/fields/parents.js
+function parents_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function parents_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function parents_createClass(Constructor, protoProps, staticProps) { if (protoProps) parents_defineProperties(Constructor.prototype, protoProps); if (staticProps) parents_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+var XHRUUID = 0;
+var parents_Instances = {};
+
+var Parents = /*#__PURE__*/function () {
+ function Parents(container, field, data) {
+ var _this = this;
+
+ parents_classCallCheck(this, Parents);
+
+ this.container = external_jQuery_default()(container);
+ this.fieldName = field.attr('name');
+ this.field = external_jQuery_default()("[name=\"".concat(this.fieldName, "\"]"));
+ this.data = data;
+ this.parentLabel = external_jQuery_default()("[data-parents-field-label=\"".concat(this.fieldName, "\"]"));
+ this.parentName = external_jQuery_default()("[data-parents-field-name=\"".concat(this.fieldName, "\"]"));
+ var dataLoad = this.dataLoad;
+ this.finder = new finderjs(this.container, function (parent, callback) {
+ return dataLoad.call(_this, parent, callback);
+ }, {
+ labelKey: 'name',
+ defaultPath: this.field.val(),
+ createItemContent: function createItemContent(item) {
+ return Parents.createItemContent(this.config, item);
+ }
+ });
+ /*
+ this.finder.$emitter.on('leaf-selected', (item) => {
+ console.log('selected', item);
+ this.finder.emit('create-column', () => this.createSimpleColumn(item));
+ });
+ this.finder.$emitter.on('item-selected', (selected) => {
+ console.log('selected', selected);
+ // for future use only - create column-card creation for file with details like in macOS finder
+ // this.finder.$emitter('create-column', () => this.createSimpleColumn(selected));
+ }); */
+
+ this.finder.$emitter.on('column-created', function () {
+ _this.container[0].scrollLeft = _this.container[0].scrollWidth - _this.container[0].clientWidth;
+ });
+ }
+
+ parents_createClass(Parents, [{
+ key: "createSimpleColumn",
+ value: function createSimpleColumn(item) {}
+ }, {
+ key: "dataLoad",
+ value: function dataLoad(parent, callback) {
+ var _this2 = this;
+
+ if (!parent) {
+ return callback(this.data);
+ }
+
+ if (parent.type !== 'dir' || !parent['has-children']) {
+ return false;
+ }
+
+ var UUID = ++XHRUUID;
+ this.startLoader();
+ external_jQuery_default().ajax({
+ url: "".concat(external_GravAdmin_namespaceObject.config.current_url),
+ method: 'post',
+ data: Object.assign({}, getExtraFormData(this.container), {
+ route: b64_encode_unicode(parent.value),
+ field: this.field.data('fieldName'),
+ action: 'getLevelListing',
+ 'admin-nonce': external_GravAdmin_namespaceObject.config.admin_nonce
+ }),
+ success: function success(response) {
+ _this2.stopLoader();
+
+ if (response.status === 'error') {
+ _this2.finder.$emitter.emit('create-column', Parents.createErrorColumn(response.message)[0]);
+
+ return false;
+ } // stale request
+
+
+ if (UUID !== XHRUUID) {
+ return false;
+ }
+
+ return callback(response.data);
+ }
+ });
+ }
+ }, {
+ key: "startLoader",
+ value: function startLoader() {
+ this.loadingIndicator = Parents.createLoadingColumn();
+ this.finder.$emitter.emit('create-column', this.loadingIndicator[0]);
+ return this.loadingIndicator;
+ }
+ }, {
+ key: "stopLoader",
+ value: function stopLoader() {
+ return this.loadingIndicator && this.loadingIndicator.remove();
+ }
+ }], [{
+ key: "createItemContent",
+ value: function createItemContent(config, item) {
+ var frag = document.createDocumentFragment();
+ var label = external_jQuery_default()(""));
+ var infoContainer = external_jQuery_default()('');
+ var iconPrepend = external_jQuery_default()('');
+ var iconAppend = external_jQuery_default()('');
+ var badge = external_jQuery_default()('');
+ var prependClasses = ['fa'];
+ var appendClasses = ['fa']; // prepend icon
+
+ if (item.children || item.type === 'dir') {
+ prependClasses.push('fa-folder');
+ } else if (item.type === 'root') {
+ prependClasses.push('fa-sitemap');
+ } else if (item.type === 'file') {
+ prependClasses.push('fa-file-o');
+ }
+
+ iconPrepend.addClass(prependClasses.join(' ')); // text label
+
+ label.text(item[config.labelKey]).prepend(iconPrepend);
+ label.appendTo(frag); // append icon
+
+ if (item.children || item['has-children']) {
+ appendClasses.push('fa-caret-right');
+ badge.text(item.size || item.count || 0);
+ badge.appendTo(infoContainer);
+ }
+
+ iconAppend.addClass(appendClasses.join(' '));
+ iconAppend.appendTo(infoContainer);
+ infoContainer.appendTo(frag);
+ return frag;
+ }
+ }, {
+ key: "createLoadingColumn",
+ value: function createLoadingColumn() {
+ return external_jQuery_default()("\n \n ");
+ }
+ }, {
+ key: "createErrorColumn",
+ value: function createErrorColumn(error) {
+ return external_jQuery_default()("\n \n
\n \n ".concat(error, "\n
\n
\n "));
+ }
+ }]);
+
+ return Parents;
+}();
+
+
+var b64_encode_unicode = function b64_encode_unicode(str) {
+ return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) {
+ return String.fromCharCode('0x' + p1);
+ }));
+};
+var b64_decode_unicode = function b64_decode_unicode(str) {
+ return decodeURIComponent(atob(str).split('').map(function (c) {
+ return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
+ }).join(''));
+};
+
+var getExtraFormData = function getExtraFormData(container) {
+ var form = container.closest('form');
+
+ if (container.closest('[data-remodal-id]').length) {
+ form = external_jQuery_default()('form#blueprints');
+ }
+
+ var data = {};
+ var unique_id = form.find('[name="__unique_form_id__"]');
+ data['__form-name__'] = form.find('[name="__form-name__"]').val();
+ data['form-nonce'] = form.find('[name="form-nonce"]').val();
+
+ if (unique_id.length) {
+ data['__unique_form_id__'] = unique_id.val();
+ }
+
+ return data;
+};
+
+external_jQuery_default()(document).on('click', '[data-parents]', function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+ var target = external_jQuery_default()(event.currentTarget);
+ var field = target.closest('.parents-wrapper').find('input[name]');
+ var fieldName = field.attr('name');
+
+ if (!field.length) {
+ fieldName = target.data('parents');
+ field = external_jQuery_default()("[name=\"".concat(target.data('parents'), "\"]")).first();
+ }
+
+ var modal = external_jQuery_default()("[data-remodal-id=\"".concat(target.data('remodalTarget') || 'parents', "\"]"));
+ var loader = modal.find('.grav-loading');
+ var content = modal.find('.parents-content');
+ loader.css('display', 'block');
+ content.html('');
+ external_jQuery_default().ajax({
+ url: "".concat(external_GravAdmin_namespaceObject.config.current_url),
+ method: 'post',
+ data: Object.assign({}, getExtraFormData(target), {
+ route: b64_encode_unicode(field.val()),
+ field: field.data('fieldName'),
+ action: 'getLevelListing',
+ 'admin-nonce': external_GravAdmin_namespaceObject.config.admin_nonce,
+ initial: true
+ }),
+ success: function success(response) {
+ loader.css('display', 'none');
+
+ if (response.status === 'error') {
+ content.html(response.message);
+ return true;
+ }
+
+ if (!parents_Instances["".concat(fieldName, "-").concat(modal.data('remodalId'))]) {
+ parents_Instances["".concat(fieldName, "-").concat(modal.data('remodalId'))] = new Parents(content, field, response.data);
+ } else {
+ parents_Instances["".concat(fieldName, "-").concat(modal.data('remodalId'))].finder.reload(response.data);
+ }
+
+ modal.data('parents', parents_Instances["".concat(fieldName, "-").concat(modal.data('remodalId'))]);
+ modal.data('parents-selectedField', field);
+ }
+ });
+}); // apply finder selection to field
+
+external_jQuery_default()(document).on('click', '[data-remodal-id].parents-container [data-parents-select]', function (event) {
+ var modal = external_jQuery_default()(event.currentTarget).closest('[data-remodal-id]');
+ var parents = modal.data('parents');
+ var selectedField = modal.data('parentsSelectedField');
+ var finder = parents.finder;
+ var field = parents.field;
+ var parentLabel = parents.parentLabel;
+ var parentName = parents.parentName;
+ var selection = finder.findLastActive().item[0];
+ var value = selection._item[finder.config.valueKey];
+ var name = selection._item[finder.config.labelKey];
+
+ if (selectedField.closest('.remodal').length) {
+ var index = field.index(selectedField);
+ selectedField.val(value);
+ external_jQuery_default()(parentLabel[index]).text(value);
+ external_jQuery_default()(parentName[index]).text(name);
+ } else {
+ field.val(value);
+ parentLabel.text(value);
+ parentName.text(name);
+ finder.config.defaultPath = value;
+ }
+
+ var remodal = (external_jQuery_default()).remodal.lookup[external_jQuery_default()("[data-remodal-id=\"".concat(modal.data('remodalId'), "\"]")).data('remodal')];
+ remodal.close();
+});
+;// CONCATENATED MODULE: ./app/forms/fields/acl-picker.js
+
+var acl_picker_body = external_jQuery_default()('body');
+acl_picker_body.on('change', '[data-acl_picker] select', function (event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var value = target.val();
+ var item = target.closest('.permissions-item');
+ var inputs = item.find('input[type="checkbox"], input[type="radio"]');
+ var hidden = item.find('input[type="hidden"][name]');
+ var wrapper = target.closest('[data-acl_picker_id]');
+ var type = item.data('fieldType');
+
+ if (type === 'access') {
+ inputs.each(function (index, input) {
+ input = external_jQuery_default()(input);
+ var name = input.prop('name');
+ input.prop('name', name.replace(/(.*)(\[[^\]]*\])/, "$1[".concat(value, "]")));
+ });
+ } else if (type === 'permissions') {
+ var crudpContainer = item.find('[data-field-name]');
+ inputs.each(function (index, input) {
+ input = external_jQuery_default()(input);
+ var rand = Math.round(Math.random() * 500);
+ var name = crudpContainer.data('fieldName');
+ var id = input.prop('id').split('_').slice(0, -1).join('_') + "_".concat(value, "+").concat(rand); // const key = input.data('crudpKey');
+
+ hidden.prop('name', name.replace(/(.*)(\[[^\]]*\])/, "$1[".concat(value, "]")));
+ input.prop('id', id);
+ input.next('label').prop('for', id);
+ });
+ }
+
+ wrapper.find('.permissions-item .button.add-item')[!value ? 'addClass' : 'removeClass']('disabled').prop('disabled', !value ? 'disabled' : null);
+});
+acl_picker_body.on('input', 'input[data-crudp-key]', function (event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var container = target.closest('.crudp-container');
+ var hidden = container.find('input[type="hidden"][name]');
+ var key = target.data('crudpKey');
+ var json = JSON.parse(hidden.val() || '{}');
+ json[key] = target.val();
+ hidden.val(JSON.stringify(json));
+});
+acl_picker_body.on('click', '[data-acl_picker] .remove-item', function (event) {
+ event.preventDefault();
+ var target = external_jQuery_default()(event.currentTarget);
+ var container = target.closest('.permissions-item');
+ var wrapper = target.closest('[data-acl_picker_id]');
+ container.remove();
+ var empty = wrapper.find('.permissions-item').length === 1; // show the initial + button
+
+ if (empty) {
+ wrapper.find('.permissions-item.empty-list').removeClass('hidden');
+ }
+});
+acl_picker_body.on('click', '[data-acl_picker] .add-item', function (event) {
+ event.preventDefault();
+ var target = external_jQuery_default()(event.currentTarget);
+ var item = target.closest('.permissions-item');
+ var wrapper = target.closest('[data-acl_picker_id]');
+ var ID = wrapper.data('acl_picker_id');
+ var template = document.querySelector("template[data-id=\"acl_picker-".concat(ID, "\"]"));
+ var clone = external_jQuery_default()(template.content.firstElementChild).clone();
+ clone.insertAfter(item); // randomize ids
+
+ clone.find('.switch-toggle input[type="radio"]').each(function (index, input) {
+ input = external_jQuery_default()(input);
+ var id = input.prop('id');
+ var label = input.next('label');
+ var rand = (Date.now().toString(36) + Math.random().toString(36).substr(2, 5)).toLowerCase();
+ input.prop('id', "".concat(id).concat(rand));
+ label.prop('for', "".concat(id).concat(rand));
+ }); // hide the initial + button
+
+ wrapper.find('.permissions-item.empty-list').addClass('hidden'); // disable all + buttons until one is selected
+
+ wrapper.find('.permissions-item .button.add-item').addClass('disabled').prop('disabled', 'disabled');
+});
+;// CONCATENATED MODULE: ./app/forms/fields/permissions.js
+
+var permissions_body = external_jQuery_default()('body');
+var radioSelector = '.permission-container.parent-section input[type="radio"]';
+
+var handleParent = function handleParent(event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var value = target.val();
+ var container = target.closest('.parent-section');
+ var fieldset = container.next('fieldset');
+ var radios = fieldset.find("input[type=\"radio\"][value=\"".concat(value, "\"]"));
+
+ if (container.data('isLocked') !== false) {
+ container.data('isUpdating', true);
+ radios.each(function (index, radio) {
+ var ID = radio.id;
+ external_jQuery_default()(radio).siblings("[for=\"".concat(ID, "\"]")).trigger('click');
+ });
+ container.data('isUpdating', false);
+ }
+};
+
+var boundHandleParent = handleParent.bind(handleParent);
+permissions_body.on('click', '.permission-container.parent-section label', function (event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var container = target.closest('.parent-section');
+ container.data('isLocked', true);
+});
+permissions_body.on('input', radioSelector, boundHandleParent);
+permissions_body.on('input', '.permissions-container input[type="radio"][data-parent-id]', function (event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var parent = external_jQuery_default()("[for=\"".concat(target.data('parentId'), "\"]"));
+ var container = target.closest('fieldset').prev('.permission-container.parent-section');
+
+ if (container.data('isUpdating') === true) {
+ return true;
+ }
+
+ permissions_body.off('input', radioSelector, boundHandleParent);
+ container.data('isLocked', false);
+ parent.trigger('click');
+ permissions_body.on('input', radioSelector, boundHandleParent);
+});
+;// CONCATENATED MODULE: ./app/forms/fields/indeterminate.js
+
+document.addEventListener('click', function (event) {
+ if (document.querySelector('#pages-filters')) {
+ return true;
+ }
+
+ var wrapper = event.target.closest('.checkboxes.indeterminate');
+
+ if (wrapper) {
+ event.preventDefault();
+ var checkbox = wrapper.querySelector('input[type="checkbox"]:not([disabled])');
+ var checkStatus = wrapper.dataset._checkStatus;
+ wrapper.classList.remove('status-checked', 'status-unchecked', 'status-indeterminate');
+
+ switch (checkStatus) {
+ // checked, going indeterminate
+ case '1':
+ wrapper.dataset._checkStatus = '2';
+ checkbox.indeterminate = true;
+ checkbox.checked = false;
+ checkbox.value = 0;
+ wrapper.classList.add('status-indeterminate');
+ break;
+ // indeterminate, going unchecked
+
+ case '2':
+ wrapper.dataset._checkStatus = '0';
+ checkbox.indeterminate = false;
+ checkbox.checked = false;
+ checkbox.value = '';
+ wrapper.classList.add('status-unchecked');
+ break;
+ // unchecked, going checked
+
+ case '0':
+ default:
+ wrapper.dataset._checkStatus = '1';
+ checkbox.indeterminate = false;
+ checkbox.checked = true;
+ checkbox.value = 1;
+ wrapper.classList.add('status-checked');
+ break;
+ } // const input = new CustomEvent('input', { detail: { target: checkbox }});
+ // document.dispatchEvent(input);
+
+
+ external_jQuery_default()(checkbox).trigger('input');
+ }
+});
+(document.querySelectorAll('input[type="checkbox"][indeterminate="true"]') || []).forEach(function (input) {
+ input.indeterminate = true;
+});
+;// CONCATENATED MODULE: ./app/forms/fields/mediapicker.js
+
+
+external_jQuery_default()(function () {
+ var modal = '';
+ var body = external_jQuery_default()('body'); // Thumb Resizer
+
+ external_jQuery_default()(document).on('input change', '.media-container .media-range', function (event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var container = target.closest('.remodal');
+ var cards = container.find('.media-container div.card-item');
+ var width = target.val() + 'px';
+ cards.each(function () {
+ external_jQuery_default()(this).css('width', width);
+ });
+ });
+ body.on('click', '[data-mediapicker-modal-trigger]', function (event) {
+ var element = external_jQuery_default()(event.currentTarget);
+ var modal_identifier = external_jQuery_default()(this).data('grav-mediapicker-unique-identifier');
+ var modal_element = body.find("[data-remodal-unique-identifier=\"".concat(modal_identifier, "\"]"));
+ modal = (external_jQuery_default()).remodal.lookup[modal_element.data('remodal')];
+
+ if (!modal) {
+ modal_element.remodal();
+ modal = (external_jQuery_default()).remodal.lookup[modal_element.data('remodal')];
+ }
+
+ modal.open();
+ modal.dataField = element.find('input'); // load all media
+
+ modal_element.find('.js__files').trigger('fillView');
+ setTimeout(function () {
+ return tree_Instance.reload();
+ }, 100);
+ });
+ /* handle media modal click actions */
+
+ body.on('click', '[data-remodal-mediapicker] .media-container.in-modal .admin-media-details a', function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+ var val = external_jQuery_default()(event.target).parents('.js__media-element').data('file-url');
+ var string = val.replace(/ /g, '%20');
+ modal.dataField.val(string);
+ modal.close();
+ });
+});
+;// CONCATENATED MODULE: ./app/forms/fields/multilevel.js
+
+external_jQuery_default()(function () {
+ var getField = function getField(level, name) {
+ var levelMargin = level * 50;
+ var top = level === 0 ? 'top' : '';
+ var the_name = 'name="' + name + '"';
+
+ if (level === 0) {
+ // top
+ the_name = 'data-attr-name="' + name + '"';
+ }
+
+ var marginDir = window.getComputedStyle(document.body).direction === 'ltr' ? 'margin-left' : 'margin-right';
+ var field = "\n \n ");
+ return field;
+ };
+
+ var hasChildInputs = function hasChildInputs($element) {
+ if ($element.attr('name')) {
+ return false;
+ }
+
+ return true;
+ };
+
+ var getTopItems = function getTopItems(element) {
+ return external_jQuery_default()(element + ' .js__multilevel-field.top');
+ };
+
+ var refreshControls = function refreshControls(unique_identifier) {
+ var element = '[data-grav-multilevel-field]';
+
+ if (unique_identifier) {
+ element = '[data-grav-multilevel-field][data-id="' + unique_identifier + '"]';
+ }
+
+ var hideButtons = function hideButtons() {
+ external_jQuery_default()(element + ' .js__add-sibling').addClass('hidden');
+ external_jQuery_default()(element + ' .js__add-children').addClass('hidden');
+ };
+
+ var restoreAddSiblingButtons = function restoreAddSiblingButtons() {
+ external_jQuery_default()(element + ' .children-wrapper').each(function () {
+ var elements = external_jQuery_default()(this).children();
+ elements.last().each(function () {
+ var field = external_jQuery_default()(this);
+
+ if (!external_jQuery_default()(this).hasClass('js__multilevel-field')) {
+ field = external_jQuery_default()(this).find('.js__multilevel-field').first();
+ }
+
+ field.find('.js__add-sibling').removeClass('hidden');
+ });
+ }); // add sibling to the last top element
+
+ external_jQuery_default()(element + ' .js__multilevel-field.top').last().find('.js__add-sibling').removeClass('hidden');
+ };
+
+ var restoreAddChildrenButtons = function restoreAddChildrenButtons() {
+ external_jQuery_default()(element + ' .js__multilevel-field').each(function () {
+ if (external_jQuery_default()(this).siblings('.children-wrapper').length === 0 || external_jQuery_default()(this).siblings('.children-wrapper').find('.js__multilevel-field').length === 0) {
+ external_jQuery_default()(this).find('.js__add-children').removeClass('hidden');
+ }
+ });
+ };
+
+ var preventRemovingLastTopItem = function preventRemovingLastTopItem() {
+ var top_items = getTopItems(element);
+
+ if (top_items.length === 1) {
+ top_items.first().find('.js__remove-item').addClass('hidden');
+ }
+ };
+
+ hideButtons();
+ restoreAddSiblingButtons();
+ restoreAddChildrenButtons();
+ preventRemovingLastTopItem();
+ };
+
+ var changeAllOccurrencesInTree = function changeAllOccurrencesInTree($el, current_name, new_name) {
+ $el.parents('[data-grav-multilevel-field]').find('input').each(function () {
+ var $input = external_jQuery_default()(this);
+
+ if ($input.attr('name')) {
+ $input.attr('name', $input.attr('name').replace(current_name, new_name));
+ }
+
+ if ($input.attr('data-attr-name')) {
+ $input.attr('data-attr-name', $input.attr('data-attr-name').replace(current_name, new_name));
+ }
+ });
+ };
+
+ external_jQuery_default()(document).ready(function () {
+ refreshControls();
+ });
+ external_jQuery_default()(document).on('mouseleave', '[data-grav-multilevel-field]', function (event) {
+ var top_items = getTopItems('[data-id="' + external_jQuery_default()(this).data('id') + '"]');
+ var has_top_items_without_children = false;
+ var element_content = '';
+ top_items.each(function () {
+ var item = external_jQuery_default()(this);
+
+ if (external_jQuery_default()(item).siblings('.children-wrapper').find('input').length === 0) {
+ has_top_items_without_children = true;
+ element_content = item.find('input').val();
+ }
+ });
+
+ if (has_top_items_without_children) {
+ if (element_content) {
+ alert('Warning: if you save now, the element ' + element_content + ', without children, will be removed, because it\'s invalid YAML');
+ } else {
+ alert('Warning: if you save now, the top elements without children will be removed, because it\'s invalid YAML');
+ }
+ }
+ });
+ external_jQuery_default()(document).on('click', '[data-grav-multilevel-field] .js__add-children', function (event) {
+ var element = external_jQuery_default()(this);
+ var unique_container_id = element.closest('.js__multilevel-field').data('id');
+ var level = element.data('level') + 1;
+
+ var getParentOfElement = function getParentOfElement(element) {
+ var parent = element.closest('.js__multilevel-field').parent().first();
+
+ if (parent.find('.children-wrapper').length === 0) {
+ external_jQuery_default()(parent).append('');
+ }
+
+ parent = parent.find('.children-wrapper').first();
+ return parent;
+ };
+
+ var getNameFromParentInput = function getNameFromParentInput(parentInput, attr) {
+ if (parentInput.hasClass('children-wrapper')) {
+ parentInput = parentInput.siblings('.js__multilevel-field').first().find('input');
+ }
+
+ return parentInput.attr(attr) + '[' + parentInput.val() + ']';
+ };
+
+ var getInputFromChildrenWrapper = function getInputFromChildrenWrapper(parentChildrenWrapper) {
+ return parentChildrenWrapper.siblings('.js__multilevel-field').first().find('input');
+ };
+
+ var parentChildrenWrapper = getParentOfElement(element);
+ var parentInput = getInputFromChildrenWrapper(parentChildrenWrapper);
+ var attr = 'name';
+
+ if (parentInput.closest('.js__multilevel-field').hasClass('top')) {
+ attr = 'data-attr-name';
+ }
+
+ parentInput.attr(attr, parentInput.attr(attr).replace('[]', ''));
+ var name = getNameFromParentInput(parentInput, attr);
+ var field = getField(level, name);
+ external_jQuery_default()(parentChildrenWrapper).append(field);
+ refreshControls(unique_container_id);
+ });
+ external_jQuery_default()(document).on('click', '[data-grav-multilevel-field] .js__add-sibling', function (event) {
+ var element = external_jQuery_default()(this);
+ var unique_container_id = element.closest('.js__multilevel-field').data('id');
+ var level = element.data('level');
+ element.closest('.children-wrapper').find('.js__add-sibling').addClass('hidden');
+ var sibling = null;
+ var is_top = false;
+
+ if (element.closest('.js__multilevel-field').hasClass('top')) {
+ is_top = true;
+ }
+
+ if (is_top) {
+ sibling = element.closest('.js__multilevel-field').first().find('input').last();
+ } else {
+ sibling = element.siblings('input').first();
+
+ if (!sibling) {
+ sibling = element.closest('.children-wrapper').first().find('input').last();
+ }
+ }
+
+ var getParentOfElement = function getParentOfElement(element) {
+ var parent = element.closest('.js__multilevel-field').parent().first();
+
+ if (!parent.hasClass('element-wrapper')) {
+ if (parent.find('.element-wrapper').length === 0) {
+ external_jQuery_default()(parent).append('');
+ }
+
+ parent = parent.find('.element-wrapper').first();
+ }
+
+ return parent;
+ };
+
+ var getNameFromSibling = function getNameFromSibling(parent, sibling) {
+ var is_top = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+ var name = sibling.attr('name');
+
+ if (hasChildInputs(sibling)) {
+ var val = sibling.data('attr-name') + '[]';
+ sibling.removeAttr('name');
+ return val;
+ }
+
+ var last_index = name.lastIndexOf('[');
+ var almost_there = name.substr(last_index + 1);
+ var last_tag = almost_there.substr(0, almost_there.length - 1);
+
+ if (external_jQuery_default().isNumeric(last_tag)) {
+ name = name.replace('[' + last_tag + ']', '[' + (parseInt(last_tag, 10) + 1) + ']');
+ } else {
+ if (is_top) {
+ name = name.replace('[' + last_tag + ']', '');
+ } else {
+ name = name + '[1]'; // change sibling name attr if necessary
+
+ if (sibling.attr('name').slice('-2') !== '[0]') {
+ changeAllOccurrencesInTree(sibling, sibling.attr('name'), sibling.attr('name') + '[0]');
+ }
+ }
+ }
+
+ return name;
+ };
+
+ var parent = getParentOfElement(element);
+ var name = getNameFromSibling(parent, sibling, is_top);
+ var field = getField(level, name);
+ external_jQuery_default()(field).insertAfter(parent);
+ refreshControls(unique_container_id);
+ });
+ external_jQuery_default()(document).on('click', '[data-grav-multilevel-field] .js__remove-item', function (event) {
+ external_jQuery_default()(this).parents('.element-wrapper').first().remove();
+ var unique_container_id = external_jQuery_default()(this).closest('.js__multilevel-field').data('id');
+ refreshControls(unique_container_id);
+ }); // Store old value before editing a field
+
+ external_jQuery_default()(document).on('focusin', '[data-grav-multilevel-field] input', function (event) {
+ external_jQuery_default()(this).data('current-value', external_jQuery_default()(this).val());
+ }); // Handle field edited event
+
+ external_jQuery_default()(document).on('change', '[data-grav-multilevel-field] input', function (event) {
+ var $el = external_jQuery_default()(this);
+ var old_value = $el.data('current-value');
+ var new_value = $el.val();
+ var full_name = $el.attr('name') || $el.attr('data-attr-name'); // first-level items have `data-attr-name` instead of `name`
+
+ var old_name_attr = full_name + '[' + old_value + ']';
+ var new_name_attr = full_name + '[' + new_value + ']';
+ changeAllOccurrencesInTree($el, old_name_attr, new_name_attr);
+ });
+});
+;// CONCATENATED MODULE: ./app/forms/fields/text.js
+
+external_jQuery_default()(document).ready(function () {
+ external_jQuery_default()('.copy-to-clipboard').click(function (event) {
+ var $tempElement = external_jQuery_default()('');
+ external_jQuery_default()('body').append($tempElement);
+ $tempElement.val(external_jQuery_default()(this).prev('input').val()).select();
+ document.execCommand('Copy');
+ $tempElement.remove();
+ external_jQuery_default()(this).attr('data-hint', 'Copied to clipboard!').addClass('hint--left');
+ });
+});
+;// CONCATENATED MODULE: ./app/forms/fields/range.js
+
+external_jQuery_default()(document).on('input', '[type="range"].rangefield, [type="number"].rangefield', function (event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var type = target.attr('type').toLowerCase();
+ var sibling = type === 'range' ? 'number' : 'range';
+ var feedback = target.siblings("[type=\"".concat(sibling, "\"].rangefield"));
+ feedback.val(target.val());
+});
+;// CONCATENATED MODULE: ./app/forms/fields/index.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* harmony default export */ const fields = ({
+ FilepickerField: {
+ FilepickerField: FilePickerField,
+ Instance: filepicker_Instance
+ },
+ SelectizeField: {
+ SelectizeField: SelectizeField,
+ Instance: selectize_Instance
+ },
+ ArrayField: {
+ ArrayField: ArrayField,
+ Instance: array_Instance
+ },
+ CollectionsField: {
+ CollectionsField: CollectionsField,
+ Instance: collections_Instance
+ },
+ DateTimeField: {
+ DateTimeField: DateTimeField,
+ Instance: datetime_Instance
+ },
+ EditorField: {
+ EditorField: EditorField,
+ Instance: editor_Instance
+ },
+ ColorpickerField: {
+ ColorpickerField: ColorpickerField,
+ Instance: colorpicker_Instance
+ },
+ FilesField: {
+ FilesField: FilesField,
+ Instance: files_Instance
+ },
+ FolderField: {
+ Regenerate: fields_folder
+ },
+ SelectUniqueField: {
+ SelectUniqueField: SelectUniqueField,
+ Instance: selectunique_Instance
+ },
+ IconpickerField: {
+ IconpickerField: IconpickerField,
+ Instance: iconpicker_Instance
+ },
+ CronField: {
+ CronField: CronField,
+ Instance: cron_Instance
+ },
+ ParentsField: {
+ ParentsField: Parents,
+ Instance: parents_Instances
+ }
+});
+;// CONCATENATED MODULE: ./app/forms/index.js
+
+
+
+/* harmony default export */ const app_forms = ({
+ Form: {
+ Form: Form,
+ Instance: form_Instance
+ },
+ Fields: fields,
+ FormState: {
+ FormState: FormState,
+ Instance: state_Instance
+ }
+});
+;// CONCATENATED MODULE: ./app/utils/cookies.js
+function cookies_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { cookies_typeof = function _typeof(obj) { return typeof obj; }; } else { cookies_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return cookies_typeof(obj); }
+
+/*
+ * Cookies.js - 1.2.3-grav
+ * https://github.com/ScottHamper/Cookies
+ *
+ * With SameSite support by Grav
+ *
+ * This is free and unencumbered software released into the public domain.
+ */
+var factory = function factory(window) {
+ var _arguments = arguments;
+
+ if (cookies_typeof(window.document) !== 'object') {
+ throw new Error('Cookies.js requires a `window` with a `document` object');
+ }
+
+ var Cookies = function Cookies(key, value, options) {
+ alert('a');
+ return _arguments.length === 1 ? Cookies.get(key) : Cookies.set(key, value, options);
+ }; // Allows for setter injection in unit tests
+
+
+ Cookies._document = window.document; // Used to ensure cookie keys do not collide with
+ // built-in `Object` properties
+
+ Cookies._cacheKeyPrefix = 'cookey.'; // Hurr hurr, :)
+
+ Cookies._maxExpireDate = new Date('Fri, 31 Dec 9999 23:59:59 UTC');
+ Cookies.defaults = {
+ path: '/',
+ secure: false,
+ sameSite: 'Lax'
+ };
+
+ Cookies.get = function (key) {
+ if (Cookies._cachedDocumentCookie !== Cookies._document.cookie) {
+ Cookies._renewCache();
+ }
+
+ var value = Cookies._cache[Cookies._cacheKeyPrefix + key];
+ return value === undefined ? undefined : decodeURIComponent(value);
+ };
+
+ Cookies.set = function (key, value, options) {
+ options = Cookies._getExtendedOptions(options);
+ options.expires = Cookies._getExpiresDate(value === undefined ? -1 : options.expires);
+ Cookies._document.cookie = Cookies._generateCookieString(key, value, options);
+ return Cookies;
+ };
+
+ Cookies.expire = function (key, options) {
+ return Cookies.set(key, undefined, options);
+ };
+
+ Cookies._getExtendedOptions = function (options) {
+ return {
+ path: options && options.path || Cookies.defaults.path,
+ domain: options && options.domain || Cookies.defaults.domain,
+ expires: options && options.expires || Cookies.defaults.expires,
+ secure: options && options.secure !== undefined ? options.secure : Cookies.defaults.secure,
+ sameSite: options && options.sameSite || Cookies.defaults.sameSite
+ };
+ };
+
+ Cookies._isValidDate = function (date) {
+ return Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime());
+ };
+
+ Cookies._getExpiresDate = function (expires, now) {
+ now = now || new Date();
+
+ if (typeof expires === 'number') {
+ expires = expires === Infinity ? Cookies._maxExpireDate : new Date(now.getTime() + expires * 1000);
+ } else if (typeof expires === 'string') {
+ expires = new Date(expires);
+ }
+
+ if (expires && !Cookies._isValidDate(expires)) {
+ throw new Error('`expires` parameter cannot be converted to a valid Date instance');
+ }
+
+ return expires;
+ };
+
+ Cookies._generateCookieString = function (key, value, options) {
+ key = key.replace(/[^#$&+\^`|]/g, encodeURIComponent);
+ key = key.replace(/\(/g, '%28').replace(/\)/g, '%29');
+ value = (value + '').replace(/[^!#$&-+\--:<-\[\]-~]/g, encodeURIComponent);
+ options = options || {};
+ var cookieString = key + '=' + value;
+ cookieString += options.path ? ';path=' + options.path : '';
+ cookieString += options.domain ? ';domain=' + options.domain : '';
+ cookieString += options.expires ? ';expires=' + options.expires.toUTCString() : '';
+ cookieString += options.secure ? ';secure' : '';
+ cookieString += options.sameSite ? ';SameSite=' + options.sameSite : '';
+ return cookieString;
+ };
+
+ Cookies._getCacheFromString = function (documentCookie) {
+ var cookieCache = {};
+ var cookiesArray = documentCookie ? documentCookie.split('; ') : [];
+
+ for (var i = 0; i < cookiesArray.length; i++) {
+ var cookieKvp = Cookies._getKeyValuePairFromCookieString(cookiesArray[i]);
+
+ if (cookieCache[Cookies._cacheKeyPrefix + cookieKvp.key] === undefined) {
+ cookieCache[Cookies._cacheKeyPrefix + cookieKvp.key] = cookieKvp.value;
+ }
+ }
+
+ return cookieCache;
+ };
+
+ Cookies._getKeyValuePairFromCookieString = function (cookieString) {
+ // "=" is a valid character in a cookie value according to RFC6265, so cannot `split('=')`
+ var separatorIndex = cookieString.indexOf('='); // IE omits the "=" when the cookie value is an empty string
+
+ separatorIndex = separatorIndex < 0 ? cookieString.length : separatorIndex;
+ var key = cookieString.substr(0, separatorIndex);
+ var decodedKey;
+
+ try {
+ decodedKey = decodeURIComponent(key);
+ } catch (e) {
+ if (console && typeof console.error === 'function') {
+ console.error('Could not decode cookie with key "' + key + '"', e);
+ }
+ }
+
+ return {
+ key: decodedKey,
+ value: cookieString.substr(separatorIndex + 1) // Defer decoding value until accessed
+
+ };
+ };
+
+ Cookies._renewCache = function () {
+ Cookies._cache = Cookies._getCacheFromString(Cookies._document.cookie);
+ Cookies._cachedDocumentCookie = Cookies._document.cookie;
+ };
+
+ Cookies._areEnabled = function () {
+ var testKey = 'cookies.js';
+ var areEnabled = Cookies.set(testKey, 1).get(testKey) === '1';
+ Cookies.expire(testKey);
+ return areEnabled;
+ };
+
+ Cookies.enabled = Cookies._areEnabled();
+ return Cookies;
+};
+
+__webpack_require__.g.Cookies = __webpack_require__.g && cookies_typeof(__webpack_require__.g.document) === 'object' ? factory(__webpack_require__.g) : factory;
+/* harmony default export */ const cookies = (__webpack_require__.g.Cookies);
+// EXTERNAL MODULE: ./node_modules/es6-promise/dist/es6-promise.js
+var es6_promise = __webpack_require__(82702);
+;// CONCATENATED MODULE: ./app/utils/packages.js
+function packages_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function packages_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function packages_createClass(Constructor, protoProps, staticProps) { if (protoProps) packages_defineProperties(Constructor.prototype, protoProps); if (staticProps) packages_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+
+
+var Sorter = /*#__PURE__*/function () {
+ function Sorter() {
+ packages_classCallCheck(this, Sorter);
+ }
+
+ packages_createClass(Sorter, [{
+ key: "getElements",
+ value: function getElements(elements, container) {
+ this.elements = elements || external_jQuery_default()('[data-gpm-plugin], [data-gpm-theme]');
+ this.container = container || external_jQuery_default()('.gpm-plugins > table > tbody, .gpm-themes > .themes.card-row');
+ return this.elements;
+ }
+ }, {
+ key: "byCommon",
+ value: function byCommon() {
+ var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
+ var elements = this.getElements().sort(function (a, b) {
+ var A = external_jQuery_default()(a).data(data).toString().toLowerCase();
+ var B = external_jQuery_default()(b).data(data).toString().toLowerCase();
+ return Sorter.sort(A, B, direction);
+ });
+ return elements.appendTo(this.container);
+ }
+ }, {
+ key: "byName",
+ value: function byName() {
+ var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-name';
+ return this.byCommon(direction, data);
+ }
+ }, {
+ key: "byAuthor",
+ value: function byAuthor() {
+ var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-author';
+ return this.byCommon(direction, data);
+ }
+ }, {
+ key: "byOfficial",
+ value: function byOfficial() {
+ var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-official';
+ return this.byCommon(direction, data);
+ }
+ }, {
+ key: "byReleaseDate",
+ value: function byReleaseDate() {
+ var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-release-date';
+ var elements = this.getElements().sort(function (a, b) {
+ var A = new Date(external_jQuery_default()(a).data(data)).getTime();
+ var B = new Date(external_jQuery_default()(b).data(data)).getTime();
+ return Sorter.sort(A, B, direction === 'asc' ? 'desc' : 'asc');
+ });
+ elements.appendTo(this.container);
+ }
+ }, {
+ key: "byUpdatable",
+ value: function byUpdatable() {
+ var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-updatable';
+ return this.byCommon(direction, data);
+ }
+ }, {
+ key: "byEnabled",
+ value: function byEnabled() {
+ var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-enabled';
+ return this.byCommon(direction, data);
+ }
+ }, {
+ key: "byTesting",
+ value: function byTesting() {
+ var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-testing';
+ return this.byCommon(direction, data);
+ }
+ }], [{
+ key: "sort",
+ value: function sort(A, B) {
+ var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'asc';
+
+ if (A > B) {
+ return direction === 'asc' ? 1 : -1;
+ }
+
+ if (A < B) {
+ return direction === 'asc' ? -1 : 1;
+ }
+
+ return 0;
+ }
+ }]);
+
+ return Sorter;
+}();
+
+var Packages = /*#__PURE__*/function () {
+ function Packages() {
+ packages_classCallCheck(this, Packages);
+
+ this.Sort = new Sorter();
+ }
+
+ packages_createClass(Packages, [{
+ key: "addDependenciesToList",
+ value: function addDependenciesToList(dependencies) {
+ var slug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
+ dependencies.forEach(function (dependency) {
+ Packages.addDependencyToList('plugin', dependency.name || dependency, slug);
+ });
+ }
+ }, {
+ key: "removePackage",
+ value: function removePackage(type, slug) {
+ var _this = this;
+
+ var url = Packages.getRemovePackageUrl(type);
+ utils_request(url, {
+ method: 'post',
+ body: {
+ "package": slug
+ }
+ }, function (response) {
+ if (response.status === 'success') {
+ external_jQuery_default()('.remove-package-confirm').addClass('hidden');
+
+ if (response.dependencies && response.dependencies.length > 0) {
+ _this.addDependenciesToList(response.dependencies);
+
+ external_jQuery_default()('.remove-package-dependencies').removeClass('hidden');
+ } else {
+ external_jQuery_default()('.remove-package-done').removeClass('hidden');
+ } // The package was removed. When the modal closes, move to the packages list
+
+
+ external_jQuery_default()(document).on('closing', '[data-remodal-id="remove-package"]', function () {
+ Packages.getBackToList(type);
+ });
+ } else {
+ external_jQuery_default()('.remove-package-confirm').addClass('hidden');
+ external_jQuery_default()('.remove-package-error').removeClass('hidden');
+ }
+ });
+ }
+ }, {
+ key: "reinstallPackage",
+ value: function reinstallPackage(type, slug, package_name, current_version) {
+ external_jQuery_default()('.button-bar button').addClass('hidden');
+ external_jQuery_default()('.button-bar .spinning-wheel').removeClass('hidden');
+ var url = Packages.getReinstallPackageUrl(type);
+ utils_request(url, {
+ method: 'post',
+ body: {
+ slug: slug,
+ type: type,
+ package_name: package_name,
+ current_version: current_version
+ }
+ }, function (response) {
+ if (response.status === 'success') {
+ external_jQuery_default()('.reinstall-package-confirm').addClass('hidden');
+ external_jQuery_default()('.reinstall-package-done').removeClass('hidden');
+ } else {
+ external_jQuery_default()('.reinstall-package-confirm').addClass('hidden');
+ external_jQuery_default()('.reinstall-package-error').removeClass('hidden');
+ }
+
+ window.location.reload();
+ });
+ }
+ }, {
+ key: "removeDependency",
+ value: function removeDependency(type, slug, button) {
+ var _this2 = this;
+
+ var url = Packages.getRemovePackageUrl(type);
+ utils_request(url, {
+ method: 'post',
+ body: {
+ "package": slug
+ }
+ }, function (response) {
+ if (response.status === 'success') {
+ button.removeClass('button');
+ button.replaceWith(external_jQuery_default()('Removed successfully'));
+
+ if (response.dependencies && response.dependencies.length > 0) {
+ _this2.addDependenciesToList(response.dependencies, slug);
+ }
+ }
+ });
+ }
+ }, {
+ key: "getPackagesDependencies",
+ value: function getPackagesDependencies(type, slugs, finishedLoadingCallback) {
+ var url = Packages.getGetPackagesDependenciesUrl(type);
+ utils_request(url, {
+ method: 'post',
+ body: {
+ packages: slugs
+ }
+ }, function (response) {
+ finishedLoadingCallback();
+
+ if (response.status === 'success') {
+ if (response.dependencies) {
+ var hasDependencies = false;
+
+ for (var dependency in response.dependencies) {
+ if (response.dependencies.hasOwnProperty(dependency)) {
+ if (dependency === 'grav') {
+ continue;
+ }
+
+ hasDependencies = true;
+ var dependencyName = dependency;
+ var action = response.dependencies[dependency];
+ Packages.addNeededDependencyToList(action, dependencyName);
+ }
+ }
+
+ if (hasDependencies) {
+ external_jQuery_default()('[data-packages-modal] .install-dependencies-package-container').removeClass('hidden');
+ } else {
+ external_jQuery_default()('[data-packages-modal] .install-package-container').removeClass('hidden');
+ }
+ } else {
+ external_jQuery_default()('[data-packages-modal] .install-package-container').removeClass('hidden');
+ }
+ } else {
+ external_jQuery_default()('[data-packages-modal] .install-package-error').removeClass('hidden');
+ }
+ });
+ }
+ }, {
+ key: "installDependenciesOfPackages",
+ value: function installDependenciesOfPackages(type, slugs, callbackSuccess, callbackError) {
+ var url = Packages.getInstallDependenciesOfPackagesUrl(type);
+ utils_request(url, {
+ method: 'post',
+ body: {
+ packages: slugs
+ }
+ }, callbackSuccess);
+ }
+ }, {
+ key: "installPackages",
+ value: function installPackages(type, slugs, callbackSuccess) {
+ var url = Packages.getInstallPackageUrl(type);
+ es6_promise.Promise.all(slugs.map(function (slug) {
+ return new es6_promise.Promise(function (resolve, reject) {
+ utils_request(url, {
+ method: 'post',
+ body: {
+ "package": slug,
+ type: type
+ }
+ }, function (response) {
+ resolve(response);
+ });
+ });
+ })).then(callbackSuccess);
+ }
+ }, {
+ key: "handleGettingPackageDependencies",
+ value: function handleGettingPackageDependencies(type, event) {
+ var action = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'update';
+ var slugs = Packages.getSlugsFromEvent(event);
+
+ if (!slugs) {
+ alert('No slug set');
+ return;
+ } // Cleanup
+
+
+ external_jQuery_default()('.packages-names-list').html('');
+ external_jQuery_default()('.install-dependencies-package-container li').remove();
+ slugs.forEach(function (slug) {
+ if (action === 'update') {
+ var current_version = '';
+ var available_version = '';
+ var _name = '';
+ var resources = Instance.payload.payload.resources;
+
+ if (resources.plugins[slug]) {
+ available_version = resources.plugins[slug].available;
+ current_version = resources.plugins[slug].version;
+ _name = resources.plugins[slug].name;
+ } else if (resources.themes[slug]) {
+ available_version = resources.themes[slug].available;
+ current_version = resources.themes[slug].version;
+ _name = resources.themes[slug].name;
+ }
+
+ external_jQuery_default()('.packages-names-list').append("".concat(_name ? _name : slug, ", ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.FROM, " v").concat(current_version, " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.TO, " v").concat(available_version, ""));
+ } else {
+ external_jQuery_default()('.packages-names-list').append("".concat(name ? name : slug, ""));
+ }
+ });
+ event.preventDefault();
+ event.stopPropagation(); // fix mismatching types when sharing install modal between plugins/themes
+
+ var query = '[data-packages-modal] [data-theme-action], [data-packages-modal] [data-plugin-action]';
+ var data = external_jQuery_default()(query).data('themeAction') || external_jQuery_default()(query).data('pluginAction');
+ external_jQuery_default()(query).removeAttr('data-theme-action').removeAttr('data-plugin-action').attr("data-".concat(type, "-action"), data); // Restore original state
+
+ external_jQuery_default()('[data-packages-modal] .loading').removeClass('hidden');
+ external_jQuery_default()('[data-packages-modal] .install-dependencies-package-container').addClass('hidden');
+ external_jQuery_default()('[data-packages-modal] .install-package-container').addClass('hidden');
+ external_jQuery_default()('[data-packages-modal] .installing-dependencies').addClass('hidden');
+ external_jQuery_default()('[data-packages-modal] .installing-package').addClass('hidden');
+ external_jQuery_default()('[data-packages-modal] .installation-complete').addClass('hidden');
+ external_jQuery_default()('[data-packages-modal] .install-package-error').addClass('hidden');
+ this.getPackagesDependencies(type, slugs, function () {
+ var slugs_string = slugs.join();
+ external_jQuery_default()("[data-packages-modal] [data-".concat(type, "-action=\"install-dependencies-and-package\"]")).attr('data-packages-slugs', slugs_string);
+ external_jQuery_default()("[data-packages-modal] [data-".concat(type, "-action=\"install-package\"]")).attr('data-packages-slugs', slugs_string);
+ external_jQuery_default()('[data-packages-modal] .loading').addClass('hidden');
+ });
+ }
+ }, {
+ key: "handleInstallingDependenciesAndPackage",
+ value: function handleInstallingDependenciesAndPackage(type, event) {
+ var _this3 = this;
+
+ var slugs = Packages.getSlugsFromEvent(event);
+ event.preventDefault();
+ event.stopPropagation();
+ external_jQuery_default()('[data-packages-modal] .install-dependencies-package-container').addClass('hidden');
+ external_jQuery_default()('[data-packages-modal] .install-package-container').addClass('hidden');
+ external_jQuery_default()('[data-packages-modal] .installing-dependencies').removeClass('hidden');
+ this.installDependenciesOfPackages(type, slugs, function (response) {
+ external_jQuery_default()('[data-packages-modal] .installing-dependencies').addClass('hidden');
+ external_jQuery_default()('[data-packages-modal] .installing-package').removeClass('hidden');
+
+ _this3.installPackages(type, slugs, function () {
+ external_jQuery_default()('[data-packages-modal] .installing-package').addClass('hidden');
+ external_jQuery_default()('[data-packages-modal] .installation-complete').removeClass('hidden');
+
+ if (response.status === 'error') {
+ var remodal = (external_jQuery_default()).remodal.lookup[external_jQuery_default()('[data-packages-modal]').data('remodal')];
+ remodal.close();
+ return;
+ }
+
+ setTimeout(function () {
+ if (slugs.length === 1) {
+ __webpack_require__.g.location.href = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/").concat(type, "s/").concat(slugs[0]);
+ } else {
+ __webpack_require__.g.location.href = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/").concat(type, "s");
+ }
+ }, 1000);
+ });
+ });
+ }
+ }, {
+ key: "handleInstallingPackage",
+ value: function handleInstallingPackage(type, event) {
+ var slugs = Packages.getSlugsFromEvent(event);
+ event.preventDefault();
+ event.stopPropagation();
+ external_jQuery_default()('[data-packages-modal] .install-package-container').addClass('hidden');
+ external_jQuery_default()('[data-packages-modal] .installing-package').removeClass('hidden');
+ this.installPackages(type, slugs, function (response) {
+ external_jQuery_default()('[data-packages-modal] .installing-package').addClass('hidden');
+ external_jQuery_default()('[data-packages-modal] .installation-complete').removeClass('hidden');
+ var errors = Array.from(response).filter(function (r) {
+ return r.status === 'error';
+ });
+
+ if (errors && errors.length) {
+ var remodal = (external_jQuery_default()).remodal.lookup[external_jQuery_default()('[data-packages-modal].remodal-is-opened').data('remodal')];
+ remodal.close();
+ return;
+ }
+
+ if (slugs.length === 1) {
+ __webpack_require__.g.location.href = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/").concat(type, "s/").concat(slugs[0]);
+ } else {
+ __webpack_require__.g.location.href = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/").concat(type, "s");
+ }
+ });
+ }
+ }, {
+ key: "handleRemovingPackage",
+ value: function handleRemovingPackage(type, event) {
+ var slug = external_jQuery_default()(event.target).attr('data-packages-slugs');
+ event.preventDefault();
+ event.stopPropagation();
+ this.removePackage(type, slug);
+ }
+ }, {
+ key: "handleReinstallPackage",
+ value: function handleReinstallPackage(type, event) {
+ var target = external_jQuery_default()(event.target);
+ var slug = target.attr('data-package-slug');
+ var package_name = target.attr('data-package-name');
+ var current_version = target.attr('data-package-current-version');
+ event.preventDefault();
+ event.stopPropagation();
+ this.reinstallPackage(type, slug, package_name, current_version);
+ }
+ }, {
+ key: "handleRemovingDependency",
+ value: function handleRemovingDependency(type, event) {
+ var slug = external_jQuery_default()(event.target).attr('data-dependency-slug');
+ var button = external_jQuery_default()(event.target);
+ event.preventDefault();
+ event.stopPropagation();
+ this.removeDependency(type, slug, button);
+ }
+ }], [{
+ key: "getBackToList",
+ value: function getBackToList(type) {
+ __webpack_require__.g.location.href = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/").concat(type, "s");
+ }
+ }, {
+ key: "addDependencyToList",
+ value: function addDependencyToList(type, dependency) {
+ var slug = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
+
+ if (['admin', 'form', 'login', 'email', 'grav'].indexOf(dependency) !== -1) {
+ return;
+ }
+
+ var container = external_jQuery_default()('.package-dependencies-container');
+ var text = "".concat(dependency, " Remove");
+
+ if (slug) {
+ text += " (was needed by ".concat(slug, ")");
+ }
+
+ container.append("".concat(text, ""));
+ }
+ }, {
+ key: "getTaskUrl",
+ value: function getTaskUrl(type, task) {
+ var url = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative);
+ url += "/".concat(type, "s.json");
+ url += "/task".concat(external_GravAdmin_namespaceObject.config.param_sep).concat(task);
+ return url;
+ }
+ }, {
+ key: "getRemovePackageUrl",
+ value: function getRemovePackageUrl(type) {
+ return "".concat(Packages.getTaskUrl(type, 'removePackage'));
+ }
+ }, {
+ key: "getReinstallPackageUrl",
+ value: function getReinstallPackageUrl(type) {
+ return "".concat(Packages.getTaskUrl(type, 'reinstallPackage'));
+ }
+ }, {
+ key: "getGetPackagesDependenciesUrl",
+ value: function getGetPackagesDependenciesUrl(type) {
+ return "".concat(Packages.getTaskUrl(type, 'getPackagesDependencies'));
+ }
+ }, {
+ key: "getInstallDependenciesOfPackagesUrl",
+ value: function getInstallDependenciesOfPackagesUrl(type) {
+ return "".concat(Packages.getTaskUrl(type, 'installDependenciesOfPackages'));
+ }
+ }, {
+ key: "getInstallPackageUrl",
+ value: function getInstallPackageUrl(type) {
+ return "".concat(Packages.getTaskUrl(type, 'installPackage'));
+ }
+ }, {
+ key: "addNeededDependencyToList",
+ value: function addNeededDependencyToList(action, slug) {
+ external_jQuery_default()('.install-dependencies-package-container .type-' + action).removeClass('hidden');
+ var list = external_jQuery_default()('.install-dependencies-package-container .type-' + action + ' ul');
+
+ if (action !== 'install') {
+ var current_version = '';
+ var available_version = '';
+ var _name2 = '';
+ var resources = Instance.payload.payload.resources;
+
+ if (resources.plugins[slug]) {
+ available_version = resources.plugins[slug].available;
+ current_version = resources.plugins[slug].version;
+ _name2 = resources.plugins[slug].name;
+ } else if (resources.themes[slug]) {
+ available_version = resources.themes[slug].available;
+ current_version = resources.themes[slug].version;
+ _name2 = resources.themes[slug].name;
+ }
+
+ list.append("".concat(_name2 ? _name2 : slug, ", ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.FROM, " v").concat(current_version, " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.TO, " v").concat(available_version, ""));
+ } else {
+ list.append("".concat(name ? name : slug, ""));
+ }
+ }
+ }, {
+ key: "getSlugsFromEvent",
+ value: function getSlugsFromEvent(event) {
+ var slugs = '';
+
+ if (external_jQuery_default()(event.target).is('[data-packages-slugs]')) {
+ slugs = external_jQuery_default()(event.target).attr('data-packages-slugs');
+ } else {
+ slugs = external_jQuery_default()(event.target).parent('[data-packages-slugs]').attr('data-packages-slugs');
+ }
+
+ if (typeof slugs === 'undefined') {
+ return null;
+ }
+
+ slugs = slugs.split(',');
+ return typeof slugs === 'string' ? [slugs] : slugs;
+ }
+ }]);
+
+ return Packages;
+}();
+
+/* harmony default export */ const utils_packages = (new Packages());
+// EXTERNAL MODULE: ./node_modules/mout/string/camelCase.js
+var camelCase = __webpack_require__(71047);
+var camelCase_default = /*#__PURE__*/__webpack_require__.n(camelCase);
+// EXTERNAL MODULE: ./node_modules/mout/string/contains.js
+var contains = __webpack_require__(85286);
+var contains_default = /*#__PURE__*/__webpack_require__.n(contains);
+;// CONCATENATED MODULE: ./app/plugins/index.js
+
+
+
+
+ // Plugins sliders details
+
+external_jQuery_default()('.gpm-name, .gpm-actions').on('click', function (e) {
+ var element = external_jQuery_default()(this);
+ var target = external_jQuery_default()(e.target);
+ var tag = target.prop('tagName').toLowerCase();
+
+ if (tag === 'a' || element.parent('a').length || target.parent('a').length) {
+ return true;
+ }
+
+ var wrapper = element.siblings('.gpm-details').find('.table-wrapper');
+ wrapper.slideToggle({
+ duration: 350,
+ complete: function complete() {
+ var visible = wrapper.is(':visible');
+ wrapper.closest('tr').find('.gpm-details-expand i').removeClass('fa-chevron-' + (visible ? 'down' : 'up')).addClass('fa-chevron-' + (visible ? 'up' : 'down'));
+ }
+ });
+}); // Removing plugin
+
+external_jQuery_default()(document).on('click', '[data-plugin-action="remove-package"]', function (event) {
+ utils_packages.handleRemovingPackage('plugin', event);
+}); // Reinstall plugin
+
+external_jQuery_default()(document).on('click', '[data-plugin-action="reinstall-package"]', function (event) {
+ utils_packages.handleReinstallPackage('plugin', event);
+});
+external_jQuery_default()(document).on('click', '[data-plugin-action="remove-dependency-package"]', function (event) {
+ utils_packages.handleRemovingDependency('plugin', event);
+}); // Trigger the add new plugin / update plugin modal
+
+external_jQuery_default()(document).on('click', '[data-plugin-action="start-package-installation"]', function (event) {
+ utils_packages.handleGettingPackageDependencies('plugin', event, 'install');
+}); // Trigger the update all plugins modal
+
+external_jQuery_default()(document).on('click', '[data-plugin-action="start-packages-update"]', function (event) {
+ utils_packages.handleGettingPackageDependencies('plugin', event);
+}); // Install a plugin dependencies and the plugin
+
+external_jQuery_default()(document).on('click', '[data-plugin-action="install-dependencies-and-package"]', function (event) {
+ utils_packages.handleInstallingDependenciesAndPackage('plugin', event);
+}); // Install a plugin
+
+external_jQuery_default()(document).on('click', '[data-plugin-action="install-package"]', function (event) {
+ utils_packages.handleInstallingPackage('plugin', event);
+}); // Sort plugins/themes dropdown
+
+external_jQuery_default()(document).on('change', '.sort-actions select', function (event) {
+ var direction = external_jQuery_default()('.sort-actions .sort-icon .fa').hasClass('fa-sort-amount-desc') ? 'desc' : 'asc';
+ var sorting = external_jQuery_default()(event.currentTarget).val();
+ utils_packages.Sort[camelCase_default()("by-".concat(sorting))](direction);
+}); // Sort plugins/themes icon
+
+external_jQuery_default()(document).on('click', '.sort-icon', function (event) {
+ var icon = external_jQuery_default()(event.currentTarget).find('.fa');
+ var current = icon.hasClass('fa-sort-amount-asc') ? 'asc' : 'desc';
+ var opposite = current === 'asc' ? 'desc' : 'asc';
+ icon.removeClass("fa-sort-amount-".concat(current)).addClass("fa-sort-amount-".concat(opposite));
+ external_jQuery_default()('.sort-actions select').trigger('change');
+}); // Filter plugin/theme
+
+external_jQuery_default()(document).on('input', '[data-gpm-filter]', debounce_default()(function (event) {
+ var value = external_jQuery_default()(external_jQuery_default()(event.currentTarget)).val();
+ var items = external_jQuery_default()('[data-gpm-plugin], [data-gpm-theme]');
+ items.hide().filter(function (index, item) {
+ item = external_jQuery_default()(item);
+ return contains_default()(item.data('gpm-plugin'), value) || contains_default()(item.data('gpm-theme'), value) || contains_default()(item.data('gpm-name').toLowerCase(), value.toLowerCase());
+ }).show();
+}, 250));
+;// CONCATENATED MODULE: ./app/themes/index.js
+
+ // Themes Switcher Warning
+
+external_jQuery_default()(document).on('mousedown', '[data-remodal-target="theme-switch-warn"]', function (event) {
+ var name = external_jQuery_default()(event.target).closest('[data-gpm-theme]').find('.gpm-name a:first').text();
+ var remodal = external_jQuery_default()('.remodal.theme-switcher');
+ remodal.find('strong').text(name);
+ remodal.find('.button.continue').attr('href', external_jQuery_default()(event.target).attr('href'));
+}); // Removing theme
+
+external_jQuery_default()(document).on('click', '[data-theme-action="remove-package"]', function (event) {
+ utils_packages.handleRemovingPackage('theme', event);
+}); // Reinstall theme
+
+external_jQuery_default()(document).on('click', '[data-theme-action="reinstall-package"]', function (event) {
+ utils_packages.handleReinstallPackage('theme', event);
+});
+external_jQuery_default()(document).on('click', '[data-theme-action="remove-dependency-package"]', function (event) {
+ utils_packages.handleRemovingDependency('theme', event);
+}); // Opened the add new theme / update theme modal
+
+external_jQuery_default()(document).on('click', '[data-theme-action="start-package-installation"]', function (event) {
+ utils_packages.handleGettingPackageDependencies('theme', event, 'install');
+}); // Trigger the update all themes modal
+
+external_jQuery_default()(document).on('click', '[data-theme-action="start-packages-update"]', function (event) {
+ utils_packages.handleGettingPackageDependencies('theme', event);
+}); // Install a theme dependencies and the theme
+
+external_jQuery_default()(document).on('click', '[data-theme-action="install-dependencies-and-package"]', function (event) {
+ utils_packages.handleInstallingDependenciesAndPackage('theme', event);
+}); // Install a theme
+
+external_jQuery_default()(document).on('click', '[data-theme-action="install-package"]', function (event) {
+ utils_packages.handleInstallingPackage('theme', event);
+});
+;// CONCATENATED MODULE: ./app/media/index.js
+function app_media_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function app_media_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function app_media_createClass(Constructor, protoProps, staticProps) { if (protoProps) app_media_defineProperties(Constructor.prototype, protoProps); if (staticProps) app_media_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+
+var Filter = /*#__PURE__*/function () {
+ function Filter() {
+ app_media_classCallCheck(this, Filter);
+
+ this.URI = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/media-manager/");
+ }
+
+ app_media_createClass(Filter, [{
+ key: "filter",
+ value: function filter(name, value) {
+ var filtered = [];
+ var keys = Object.keys(external_GravAdmin_namespaceObject.uri_params);
+
+ if (!~keys.indexOf(name)) {
+ keys.push(name);
+ }
+
+ keys.forEach(function (key) {
+ var filter = Filter.cleanValue(key === name ? value : external_GravAdmin_namespaceObject.uri_params[key]);
+
+ if (filter !== '*') {
+ filtered.push("".concat(key).concat(external_GravAdmin_namespaceObject.config.param_sep).concat(filter));
+ }
+ });
+ __webpack_require__.g.location = this.URI + filtered.join('/');
+ }
+ }], [{
+ key: "cleanValue",
+ value: function cleanValue(value) {
+ return encodeURIComponent(value.replace('/', '\\'));
+ }
+ }]);
+
+ return Filter;
+}();
+
+
+var app_media_Instance = new Filter();
+var isLoading = false;
+var filters = {};
+var global_index = 1;
+var files_ended = false;
+var MEDIA_PAGINATION_INTERVAL = 20;
+/* handle changing file type / date filter */
+
+external_jQuery_default()('body').on('change', '.thumbs-list-container select.filter', function (event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var filterName = target.data('name');
+ var filterValue = target.val();
+
+ if (filterValue) {
+ filters[filterName] = filterValue;
+ } else {
+ delete filters[filterName];
+ }
+
+ filterFiles();
+});
+/* initialize media uploader */
+
+if (external_jQuery_default()('.thumbs-list-container .dropzone')[0]) {
+ external_jQuery_default()('.thumbs-list-container .dropzone')[0].dropzone.on('queuecomplete', function () {
+ var body = {};
+
+ if (filters.page) {
+ body.page = filters.page;
+ }
+
+ if (filters.date) {
+ body.date = filters.date;
+ }
+
+ if (filters.type) {
+ body.type = filters.type;
+ }
+
+ external_jQuery_default()('.dropzone')[0].dropzone.files.forEach(function (file) {
+ file.previewElement.remove();
+ });
+ external_jQuery_default()('.dropzone').first().removeClass('dz-started');
+ utils_request("".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/media-manager.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "clearMediaCache"), {
+ method: 'post',
+ body: body
+ }, function () {
+ filterFiles();
+ });
+ });
+}
+/* handle loading media */
+
+
+var loadMedia = function loadMedia(filters, callback) {
+ var url = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/media.json/tmpl").concat(external_GravAdmin_namespaceObject.config.param_sep, "media-list-content/index").concat(external_GravAdmin_namespaceObject.config.param_sep).concat(global_index);
+
+ if (filters.page) {
+ url += "/page".concat(external_GravAdmin_namespaceObject.config.param_sep).concat(filters.page.split('/').join('%5C'));
+ }
+
+ if (filters.type && filters.type !== '*') {
+ url += "/type".concat(external_GravAdmin_namespaceObject.config.param_sep).concat(filters.type);
+ }
+
+ if (filters.date && filters.date !== '*') {
+ url += "/date".concat(external_GravAdmin_namespaceObject.config.param_sep).concat(filters.date);
+ }
+
+ if (!isLoading) {
+ isLoading = true;
+ external_jQuery_default()('.spinning-wheel').show();
+ external_jQuery_default().get(url, function (content) {
+ external_jQuery_default()('.js__files').append(content);
+ external_jQuery_default()('.spinning-wheel').hide();
+ external_jQuery_default()('.media-container .media-range').trigger('change');
+ isLoading = false;
+ global_index++;
+ callback(content);
+ });
+ }
+};
+
+var cleanFilesList = function cleanFilesList() {
+ external_jQuery_default()('.js__files .card-item').remove();
+};
+
+var resetActiveStateInSidebar = function resetActiveStateInSidebar() {
+ external_jQuery_default()('.pages-list-container .row').removeClass('active'); // clear active state in sidebar
+};
+
+var showEmptyState = function showEmptyState() {
+ external_jQuery_default()('.thumbs-list-container').append('No media found
');
+};
+
+var filterFiles = function filterFiles() {
+ cleanFilesList();
+ global_index = 0;
+ files_ended = false;
+ external_jQuery_default()('.empty-space').remove();
+ loadMedia(filters, function (content) {
+ if (!content.trim().length) {
+ showEmptyState();
+ } else {
+ if (!filters.page && (!filters.date || filters.date === '*') && (!filters.type || filters.type === '*')) {
+ external_jQuery_default()('.js__files').trigger('fillView');
+ }
+ }
+ });
+};
+/* handle changing page */
+
+
+external_jQuery_default()('body').on('click', '.pages-list-container .js__page-link', function (event) {
+ var page = external_jQuery_default()(event.target).data('page');
+ filters['page'] = page;
+ external_jQuery_default()('.media-list-title .page-indicator').html(page); // set indication
+
+ external_jQuery_default()('.js__reset-pages-filter').removeClass('hidden'); // activate reset pages icon
+
+ resetActiveStateInSidebar();
+ external_jQuery_default()(event.target).parents('.row').addClass('active'); // set active state in sidebar
+
+ external_jQuery_default()('.js__file-uploader').removeClass('hidden'); // customize processing URL, as the page changes dynamically
+
+ if (external_jQuery_default()('.dropzone')[0]) {
+ external_jQuery_default()('.dropzone')[0].dropzone.on('processing', function (file) {
+ this.options.url = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/media-manager").concat(page, ".json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "addmedia");
+ });
+ }
+
+ external_jQuery_default()('.js__button-clear-media-cache').addClass('hidden');
+ filterFiles();
+ disableInfiniteScrolling(); // only infinite scroll on main list, not inside single pages
+});
+/* handle clearing page filter */
+
+external_jQuery_default()('body').on('click', '.js__reset-pages-filter', function (event) {
+ external_jQuery_default()('.media-list-title .page-indicator').html('All Pages'); // set indication
+
+ cleanFilesList();
+ resetActiveStateInSidebar();
+ external_jQuery_default()('.js__reset-pages-filter').addClass('hidden'); // remove reset pages icon
+
+ external_jQuery_default()('.js__file-uploader').addClass('hidden');
+ external_jQuery_default()('.js__button-clear-media-cache').removeClass('hidden');
+ delete filters['page'];
+ filterFiles();
+});
+/* handle infinite loading */
+
+var enableInfiniteScrolling = function enableInfiniteScrolling() {
+ external_jQuery_default()('.spinning-wheel').hide();
+ var view = external_jQuery_default()('.mediapicker-scroll').last();
+
+ if (!view.length) {
+ return;
+ }
+
+ external_jQuery_default()(view).on('scroll', function () {
+ if (external_jQuery_default()(this).scrollTop() + external_jQuery_default()(this).innerHeight() + 100 >= external_jQuery_default()(this)[0].scrollHeight) {
+ fillView();
+ }
+ });
+};
+
+var loadNextBatch = function loadNextBatch(callback) {
+ if (files_ended) {
+ return;
+ }
+
+ loadMedia({}, function (content) {
+ if (!external_jQuery_default()(content).length || content.split('card-item').length - 1 < MEDIA_PAGINATION_INTERVAL) {
+ files_ended = true;
+ } else {
+ if (callback) {
+ callback();
+ }
+ }
+
+ external_jQuery_default()('.media-container .media-range').trigger('input');
+ });
+};
+
+var fillView = function fillView() {
+ if (!external_jQuery_default()('.js__files').find('.card-item').last().offset()) {
+ setTimeout(function () {
+ // retry later
+ fillView();
+ }, 300);
+ return;
+ }
+
+ if (external_jQuery_default()('.js__files').find('.card-item').last().offset().top - 1 <= external_jQuery_default()('.media-container').height()) {
+ loadNextBatch(function () {
+ fillView();
+ });
+ }
+};
+/* disable infinite loading */
+
+
+var disableInfiniteScrolling = function disableInfiniteScrolling() {
+ external_jQuery_default()('.spinning-wheel').hide();
+ external_jQuery_default()('.content-wrapper').unbind('scroll');
+};
+
+external_jQuery_default()('.js__files').on('fillView', function (event) {
+ // the first batch got the max number of media files, try loading more
+ if (external_jQuery_default()('.js__files')[0].innerHTML.split('card-item').length - 1 === MEDIA_PAGINATION_INTERVAL) {
+ fillView();
+ enableInfiniteScrolling();
+ }
+});
+;// CONCATENATED MODULE: ./app/utils/2fa.js
+
+
+
+var _2fa_body = external_jQuery_default()('body'); // Dashboard update and Grav update
+
+_2fa_body.on('click', '[data-2fa-regenerate]', function (event) {
+ event.preventDefault();
+ var element = external_jQuery_default()(this);
+ var url = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/ajax.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "regenerate2FASecret");
+ element.attr('disabled', 'disabled').find('> .fa').addClass('fa-spin');
+ utils_request(url, {
+ method: 'post'
+ }, function (response) {
+ external_jQuery_default()('[data-2fa-image]').attr('src', response.image);
+ external_jQuery_default()('[data-2fa-secret]').text(response.secret);
+ external_jQuery_default()('[data-2fa-value]').val(response.secret.replace(' ', ''));
+ element.removeAttr('disabled').find('> .fa').removeClass('fa-spin');
+ });
+});
+
+var toggleSecret = function toggleSecret() {
+ var toggle = external_jQuery_default()('#toggle_twofa_enabled1');
+ var secret = external_jQuery_default()('.twofa-secret');
+ secret[toggle.is(':checked') ? 'addClass' : 'removeClass']('show');
+};
+
+_2fa_body.on('click', '.twofa-toggle input', toggleSecret);
+toggleSecret();
+// EXTERNAL MODULE: ./node_modules/mout/queryString.js
+var queryString = __webpack_require__(85407);
+;// CONCATENATED MODULE: ./app/tools/logs.js
+
+
+
+var prepareQuery = function prepareQuery(key, value) {
+ return (0,queryString.setParam)(__webpack_require__.g.location.href, key, value);
+};
+
+external_jQuery_default()(document).on('change', '.logs-content .block-select select[name]', function (event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var name = target.attr('name');
+ var value = target.val();
+ __webpack_require__.g.location.href = prepareQuery(name, value);
+});
+;// CONCATENATED MODULE: ./app/tools/index.js
+
+;// CONCATENATED MODULE: ./app/whitelabel/compile.js
+
+
+/* harmony default export */ const compile = (function () {
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+ _ref$preview = _ref.preview,
+ preview = _ref$preview === void 0 ? false : _ref$preview,
+ _ref$exportScss = _ref.exportScss,
+ exportScss = _ref$exportScss === void 0 ? false : _ref$exportScss,
+ _ref$color_scheme = _ref.color_scheme,
+ color_scheme = _ref$color_scheme === void 0 ? {} : _ref$color_scheme,
+ _ref$fonts = _ref.fonts,
+ fonts = _ref$fonts === void 0 ? {} : _ref$fonts,
+ _ref$callback = _ref.callback,
+ callback = _ref$callback === void 0 ? function () {} : _ref$callback;
+
+ var task = exportScss ? 'exportScss' : 'compileScss'; // console.log(config);
+
+ var URI = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, ".json/task:").concat(task);
+ utils_request(URI, {
+ method: 'post',
+ body: Object.assign({}, preview ? {
+ preview: preview
+ } : null, color_scheme)
+ }, callback);
+});
+var prepareElement = function prepareElement(element) {
+ element.data('busy_right_now', true);
+
+ if (!element.data('current_icon')) {
+ element.data('current_icon', element.find('.fa').attr('class'));
+ }
+
+ element.find('.fa').attr('class', 'fa fa-fw fa-spin fa-refresh');
+};
+var resetElement = function resetElement(element) {
+ element.data('busy_right_now', false);
+ element.find('.fa').attr('class', element.data('current_icon'));
+};
+;// CONCATENATED MODULE: ./app/whitelabel/presets.js
+
+
+var presets_body = external_jQuery_default()('body');
+var presets_fields = [];
+var presets_FormState = app_forms.FormState.Instance;
+
+var setField = function setField(field, value) {
+ var name = field.prop('name');
+ var tag = field.prop('tagName').toLowerCase();
+ var type = field.prop('type');
+ presets_fields.push(name);
+
+ switch (tag) {
+ case 'select':
+ field.val(value);
+ field.data('selectize').setValue(value);
+ field.trigger('change');
+ break;
+
+ case 'input':
+ if (type === 'radio') {
+ var strValue = value ? '1' : '0';
+ field.filter(function (index, radio) {
+ return external_jQuery_default()(radio).val() === strValue;
+ }).prop('checked', true);
+ break;
+ }
+
+ if (type === 'checkbox') {
+ field.prop('checked', value);
+ break;
+ }
+
+ field.val(value);
+ field.trigger('keyup');
+ }
+};
+
+presets_body.on('click', '[data-preset-values]', function (event) {
+ var target = external_jQuery_default()(event.currentTarget);
+ var data = target.data('preset-values');
+ Object.keys(data).forEach(function (section) {
+ if (typeof data[section] === 'string') {
+ return;
+ }
+
+ Object.keys(data[section]).forEach(function (key) {
+ var field = external_jQuery_default()("[name=\"data[whitelabel][color_scheme][".concat(section, "][").concat(key, "]\"], [name=\"data[").concat(section, "][").concat(key, "]\"]"));
+ var value = data[section][key];
+ setField(field, value);
+ });
+ });
+});
+presets_body.on('click', '[data-reset-scss]', function (event) {
+ event && event.preventDefault();
+ var element = external_jQuery_default()(event.currentTarget);
+ var links = external_jQuery_default()('link[id^=admin-pro-preview-]');
+ element.remove();
+ links.remove();
+ presets_fields.forEach(function (field) {
+ var value = presets_FormState.loadState.get(field);
+ setField(external_jQuery_default()("[name=\"".concat(field, "\"]")), value);
+ });
+ presets_fields = [];
+}); // Horizontal Scroll Functionality
+
+(external_jQuery_default()).fn.hscrollarrows = function () {
+ return this.each(function () {
+ var navNext = external_jQuery_default()('');
+ var navPrev = external_jQuery_default()('');
+ var scrollTime = null;
+ var resizeTime = null;
+ var scrolling = false;
+ var elm_w = 0;
+ var elem_data_w = 0;
+ var max_scroll = 0;
+ var inc_scroll = 0;
+
+ var calcData = function calcData() {
+ elm_w = elem.width();
+ elem_data_w = elem_data.get(0).scrollWidth;
+ max_scroll = elem_data_w - elm_w;
+ inc_scroll = elm_w * 0.3; // 20%
+ };
+
+ var revalidate = function revalidate() {
+ calcData();
+ stateNavs();
+ };
+
+ var run = function run() {
+ calcData();
+ setupNavs();
+ };
+
+ var setupNavs = function setupNavs() {
+ elem.parent().prepend(navNext);
+ elem.parent().prepend(navPrev);
+ navNext.on('click', next);
+ navPrev.on('click', prev);
+ stateNavs();
+ external_jQuery_default()(elem).scroll(function () {
+ if (!scrolling) {
+ clearTimeout(scrollTime);
+ scrollTime = setTimeout(function () {
+ stateNavs();
+ }, 250);
+ }
+ });
+ external_jQuery_default()(window).resize(function () {
+ clearTimeout(resizeTime);
+ resizeTime = setTimeout(function () {
+ revalidate();
+ }, 250);
+ });
+ };
+
+ var stateNavs = function stateNavs() {
+ var current_scroll = elem.scrollLeft();
+
+ if (current_scroll < max_scroll) {
+ navNext.removeClass('hide');
+ } else {
+ navNext.addClass('hide');
+ }
+
+ if (current_scroll > 0) {
+ navPrev.removeClass('hide');
+ } else {
+ navPrev.addClass('hide');
+ }
+
+ scrolling = false;
+ };
+
+ var next = function next() {
+ var current_scroll = elem.scrollLeft();
+
+ if (current_scroll < max_scroll) {
+ scrolling = true;
+ elem.stop().animate({
+ scrollLeft: current_scroll + inc_scroll
+ }, stateNavs);
+ }
+ };
+
+ var prev = function prev() {
+ var current_scroll = elem.scrollLeft();
+
+ if (current_scroll > 0) {
+ scrolling = true;
+ elem.stop().animate({
+ scrollLeft: current_scroll - inc_scroll
+ }, stateNavs);
+ }
+ };
+
+ var elem = external_jQuery_default()(this);
+ var elem_data = external_jQuery_default()(':first-child', elem);
+ run();
+ });
+};
+
+external_jQuery_default()(document).ready(function () {
+ external_jQuery_default()('.jquery-horizontal-scroll').hscrollarrows();
+});
+;// CONCATENATED MODULE: ./app/whitelabel/index.js
+
+
+
+
+
+var whitelabel_body = external_jQuery_default()('body');
+var whitelabel_FormState = app_forms.FormState.Instance;
+
+var compiler = function compiler(element) {
+ var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+ var exportScss = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+
+ var _callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};
+
+ prepareElement(element);
+ var fields = whitelabel_FormState.collect();
+ compile({
+ preview: preview,
+ exportScss: exportScss,
+ color_scheme: !fields ? [] : fields.filter(function (value, key) {
+ return key.match(/^data\[whitelabel]\[color_scheme]/);
+ }).toJS(),
+ callback: function callback(response) {
+ _callback.call(_callback, response);
+
+ resetElement(element);
+ }
+ });
+};
+
+whitelabel_body.on('click', '[data-preview-scss]', function (event) {
+ event && event.preventDefault();
+ var element = external_jQuery_default()(event.currentTarget);
+
+ if (element.data('busy_right_now')) {
+ return false;
+ }
+
+ compiler(element, true, false, function (response) {
+ if (response.files) {
+ Object.keys(response.files).forEach(function (key) {
+ var file = external_jQuery_default()("#admin-pro-preview-".concat(key));
+ var timestamp = Date.now();
+
+ if (!file.length) {
+ file = external_jQuery_default()(""));
+ external_jQuery_default()('head').append(file);
+
+ if (!external_jQuery_default()('[data-reset-scss]').length) {
+ var reset = external_jQuery_default()('');
+ reset.insertAfter(element);
+ }
+ }
+
+ file.attr('href', "".concat(response.files[key], "?").concat(timestamp));
+ });
+ }
+ });
+});
+whitelabel_body.on('click', '[data-recompile-scss]', function (event) {
+ event && event.preventDefault();
+ var element = external_jQuery_default()(event.currentTarget);
+
+ if (element.data('busy_right_now')) {
+ return false;
+ }
+
+ compiler(element, true, false);
+});
+whitelabel_body.on('click', '[data-export-scss]', function (event) {
+ event && event.preventDefault();
+ var element = external_jQuery_default()(event.currentTarget);
+
+ if (element.data('busy_right_now')) {
+ return false;
+ }
+
+ compiler(element, true, true, function (response) {
+ if (response.files) {
+ Object.keys(response.files).forEach(function (key) {
+ if (key === 'download') {
+ var _element = document.createElement('a');
+
+ _element.setAttribute('href', response.files[key]);
+
+ _element.setAttribute('download', '');
+
+ _element.style.display = 'none';
+ document.body.appendChild(_element);
+
+ _element.click();
+
+ document.body.removeChild(_element);
+ }
+ });
+ }
+ });
+});
+whitelabel_body.on('change._grav_colorpicker', '[data-grav-colorpicker]', function (event, input, hex, opacity) {
+ var RGB = hex2rgb(hex);
+ var YIQ = (RGB.r * 299 + RGB.g * 587 + RGB.b * 114) / 1000;
+ var contrast = YIQ >= 128 || opacity <= 0.50 ? 'dark' : 'light';
+ input.parent().removeClass('dark-text light-text').addClass("".concat(contrast, "-text"));
+});
+whitelabel_body.ready(function () {
+ external_jQuery_default()('[data-grav-colorpicker]').trigger('keyup');
+});
+;// CONCATENATED MODULE: ./app/utils/bootstrap-transition.js
+
++function ($) {
+ 'use strict'; // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
+ // ============================================================
+
+ function transitionEnd() {
+ var el = document.createElement('bootstrap');
+ var transEndEventNames = {
+ WebkitTransition: 'webkitTransitionEnd',
+ MozTransition: 'transitionend',
+ OTransition: 'oTransitionEnd otransitionend',
+ transition: 'transitionend'
+ };
+
+ for (var name in transEndEventNames) {
+ if (el.style[name] !== undefined) {
+ return {
+ end: transEndEventNames[name]
+ };
+ }
+ }
+
+ return false; // explicit for ie8 ( ._.)
+ } // http://blog.alexmaccaw.com/css-transitions
+
+
+ $.fn.emulateTransitionEnd = function (duration) {
+ var called = false;
+ var $el = this;
+ $(this).one('bsTransitionEnd', function () {
+ called = true;
+ });
+
+ var callback = function callback() {
+ if (!called) $($el).trigger($.support.transition.end);
+ };
+
+ setTimeout(callback, duration);
+ return this;
+ };
+
+ $(function () {
+ $.support.transition = transitionEnd();
+ if (!$.support.transition) return;
+ $.event.special.bsTransitionEnd = {
+ bindType: $.support.transition.end,
+ delegateType: $.support.transition.end,
+ handle: function handle(e) {
+ if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments);
+ }
+ };
+ });
+}((external_jQuery_default()));
+;// CONCATENATED MODULE: ./app/utils/bootstrap-collapse.js
+function bootstrap_collapse_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { bootstrap_collapse_typeof = function _typeof(obj) { return typeof obj; }; } else { bootstrap_collapse_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return bootstrap_collapse_typeof(obj); }
+
+
+/* ========================================================================
+ * Bootstrap: collapse.js v3.4.0
+ * http://getbootstrap.com/javascript/#collapse
+ * ========================================================================
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+/* jshint latedef: false */
+
++function ($) {
+ 'use strict'; // COLLAPSE PUBLIC CLASS DEFINITION
+ // ================================
+
+ var Collapse = function Collapse(element, options) {
+ this.$element = $(element);
+ this.options = $.extend({}, Collapse.DEFAULTS, options);
+ this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + '[data-toggle="collapse"][data-target="#' + element.id + '"]');
+ this.transitioning = null;
+
+ if (this.options.parent) {
+ this.$parent = this.getParent();
+ } else {
+ this.addAriaAndCollapsedClass(this.$element, this.$trigger);
+ }
+
+ if (this.options.toggle) this.toggle();
+ };
+
+ Collapse.VERSION = '3.4.0';
+ Collapse.TRANSITION_DURATION = 350;
+ Collapse.DEFAULTS = {
+ toggle: true
+ };
+
+ Collapse.prototype.dimension = function () {
+ var hasWidth = this.$element.hasClass('width');
+ return hasWidth ? 'width' : 'height';
+ };
+
+ Collapse.prototype.show = function () {
+ if (this.transitioning || this.$element.hasClass('in')) return;
+ var activesData;
+ var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing');
+
+ if (actives && actives.length) {
+ activesData = actives.data('bs.collapse');
+ if (activesData && activesData.transitioning) return;
+ }
+
+ var startEvent = $.Event('show.bs.collapse');
+ this.$element.trigger(startEvent);
+ if (startEvent.isDefaultPrevented()) return;
+
+ if (actives && actives.length) {
+ Plugin.call(actives, 'hide');
+ activesData || actives.data('bs.collapse', null);
+ }
+
+ var dimension = this.dimension();
+ this.$element.removeClass('collapse').addClass('collapsing')[dimension](0).attr('aria-expanded', true);
+ this.$trigger.removeClass('collapsed').attr('aria-expanded', true);
+ this.transitioning = 1;
+
+ var complete = function complete() {
+ this.$element.removeClass('collapsing').addClass('collapse in')[dimension]('');
+ this.transitioning = 0;
+ this.$element.trigger('shown.bs.collapse');
+ };
+
+ if (!$.support.transition) return complete.call(this);
+ var scrollSize = $.camelCase(['scroll', dimension].join('-'));
+ this.$element.one('bsTransitionEnd', $.proxy(complete, this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]);
+ };
+
+ Collapse.prototype.hide = function () {
+ if (this.transitioning || !this.$element.hasClass('in')) return;
+ var startEvent = $.Event('hide.bs.collapse');
+ this.$element.trigger(startEvent);
+ if (startEvent.isDefaultPrevented()) return;
+ var dimension = this.dimension();
+ this.$element[dimension](this.$element[dimension]())[0].offsetHeight;
+ this.$element.addClass('collapsing').removeClass('collapse in').attr('aria-expanded', false);
+ this.$trigger.addClass('collapsed').attr('aria-expanded', false);
+ this.transitioning = 1;
+
+ var complete = function complete() {
+ this.transitioning = 0;
+ this.$element.removeClass('collapsing').addClass('collapse').trigger('hidden.bs.collapse');
+ };
+
+ if (!$.support.transition) return complete.call(this);
+ this.$element[dimension](0).one('bsTransitionEnd', $.proxy(complete, this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION);
+ };
+
+ Collapse.prototype.toggle = function () {
+ this[this.$element.hasClass('in') ? 'hide' : 'show']();
+ };
+
+ Collapse.prototype.getParent = function () {
+ return $(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each($.proxy(function (i, element) {
+ var $element = $(element);
+ this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element);
+ }, this)).end();
+ };
+
+ Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
+ var isOpen = $element.hasClass('in');
+ $element.attr('aria-expanded', isOpen);
+ $trigger.toggleClass('collapsed', !isOpen).attr('aria-expanded', isOpen);
+ };
+
+ function getTargetFromTrigger($trigger) {
+ var href;
+ var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, ''); // strip for ie7
+
+ return $(target);
+ } // COLLAPSE PLUGIN DEFINITION
+ // ==========================
+
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this);
+ var data = $this.data('bs.collapse');
+ var options = $.extend({}, Collapse.DEFAULTS, $this.data(), bootstrap_collapse_typeof(option) === 'object' && option);
+ if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false;
+ if (!data) $this.data('bs.collapse', data = new Collapse(this, options));
+ if (typeof option === 'string') data[option]();
+ });
+ }
+
+ var old = $.fn.collapse;
+ $.fn.collapse = Plugin;
+ $.fn.collapse.Constructor = Collapse; // COLLAPSE NO CONFLICT
+ // ====================
+
+ $.fn.collapse.noConflict = function () {
+ $.fn.collapse = old;
+ return this;
+ }; // COLLAPSE DATA-API
+ // =================
+
+
+ $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
+ var $this = $(this);
+ if (!$this.attr('data-target')) e.preventDefault();
+ var $target = getTargetFromTrigger($this);
+ var data = $target.data('bs.collapse');
+ var option = data ? 'toggle' : $this.data();
+ Plugin.call($target, option);
+ });
+}((external_jQuery_default()));
+;// CONCATENATED MODULE: ./app/utils/bootstrap-dropdown.js
+
+/* ========================================================================
+ * Bootstrap: dropdown.js v3.4.1
+ * https://getbootstrap.com/docs/3.4/javascript/#dropdowns
+ * ========================================================================
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/v3-dev/LICENSE)
+ * ======================================================================== */
+
++function ($) {
+ 'use strict'; // DROPDOWN CLASS DEFINITION
+ // =========================
+
+ var backdrop = '.dropdown-backdrop';
+ var toggle = '[data-toggle="dropdown"]';
+
+ var Dropdown = function Dropdown(element) {
+ $(element).on('click.bs.dropdown', this.toggle);
+ };
+
+ Dropdown.VERSION = '3.4.1';
+
+ function getParent($this) {
+ var selector = $this.attr('data-target');
+
+ if (!selector) {
+ selector = $this.attr('href');
+ selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, ''); // strip for ie7
+ }
+
+ var $parent = selector !== '#' ? $(document).find(selector) : null;
+ return $parent && $parent.length ? $parent : $this.parent();
+ }
+
+ function clearMenus(e) {
+ if (e && e.which === 3) {
+ return;
+ }
+
+ $(backdrop).remove();
+ $(toggle).each(function () {
+ var $this = $(this);
+ var $parent = getParent($this);
+ var relatedTarget = {
+ relatedTarget: this
+ };
+
+ if (!$parent.hasClass('open')) {
+ return;
+ }
+
+ if (e && e.type === 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) {
+ return;
+ }
+
+ $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget));
+
+ if (e.isDefaultPrevented()) {
+ return;
+ }
+
+ $this.attr('aria-expanded', 'false');
+ $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget));
+ });
+ }
+
+ Dropdown.prototype.toggle = function (e) {
+ var $this = $(this);
+
+ if ($this.is('.disabled, :disabled')) {
+ return;
+ }
+
+ var $parent = getParent($this);
+ var isActive = $parent.hasClass('open');
+ clearMenus();
+
+ if (!isActive) {
+ if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
+ // if mobile we use a backdrop because click events don't delegate
+ $(document.createElement('div')).addClass('dropdown-backdrop').insertAfter($(this)).on('click', clearMenus);
+ }
+
+ var relatedTarget = {
+ relatedTarget: this
+ };
+ $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget));
+
+ if (e.isDefaultPrevented()) {
+ return;
+ }
+
+ $this.trigger('focus').attr('aria-expanded', 'true');
+ $parent.toggleClass('open').trigger($.Event('shown.bs.dropdown', relatedTarget));
+ }
+
+ return false;
+ };
+
+ Dropdown.prototype.keydown = function (e) {
+ if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return;
+ var $this = $(this);
+ e.preventDefault();
+ e.stopPropagation();
+
+ if ($this.is('.disabled, :disabled')) {
+ return;
+ }
+
+ var $parent = getParent($this);
+ var isActive = $parent.hasClass('open');
+
+ if (!isActive && e.which !== 27 || isActive && e.which === 27) {
+ if (e.which === 27) {
+ $parent.find(toggle).trigger('focus');
+ }
+
+ return $this.trigger('click');
+ }
+
+ var desc = ' li:not(.disabled):visible a';
+ var $items = $parent.find('.dropdown-menu' + desc);
+
+ if (!$items.length) {
+ return;
+ }
+
+ var index = $items.index(e.target);
+
+ if (e.which === 38 && index > 0) {
+ index--;
+ } // up
+
+
+ if (e.which === 40 && index < $items.length - 1) {
+ index++;
+ } // down
+
+
+ if (!~index) {
+ index = 0;
+ }
+
+ $items.eq(index).trigger('focus');
+ }; // DROPDOWN PLUGIN DEFINITION
+ // ==========================
+
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this);
+ var data = $this.data('bs.dropdown');
+ if (!data) $this.data('bs.dropdown', data = new Dropdown(this));
+ if (typeof option === 'string') data[option].call($this);
+ });
+ }
+
+ var old = $.fn.dropdown;
+ $.fn.dropdown = Plugin;
+ $.fn.dropdown.Constructor = Dropdown; // DROPDOWN NO CONFLICT
+ // ====================
+
+ $.fn.dropdown.noConflict = function () {
+ $.fn.dropdown = old;
+ return this;
+ }; // APPLY TO STANDARD DROPDOWN ELEMENTS
+ // ===================================
+
+
+ $(document).on('click.bs.dropdown.data-api', clearMenus).on('click.bs.dropdown.data-api', '.dropdown form', function (e) {
+ e.stopPropagation();
+ }).on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle).on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown).on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown);
+}((external_jQuery_default()));
+;// CONCATENATED MODULE: ./app/utils/tabs-memory.js
+
+
+
+var tabs_memory_Data = JSON.parse(cookies.get('grav-tabs-state') || '{}');
+external_jQuery_default()('body').on('touchstart click', '[data-tabid]', function (event) {
+ event && event.stopPropagation();
+ var target = external_jQuery_default()(event.currentTarget);
+ tabs_memory_Data[target.data('tabkey')] = target.data('scope');
+ cookies.set('grav-tabs-state', JSON.stringify(tabs_memory_Data), {
+ expires: Infinity
+ });
+ var panel = external_jQuery_default()("[id=\"".concat(target.data('tabid'), "\"]"));
+ target.siblings('[data-tabid]').removeClass('active');
+ target.addClass('active');
+ panel.siblings('[id]').removeClass('active');
+ panel.addClass('active');
+ editor_Instance.editors.each(function (index, editor) {
+ var codemirror = external_jQuery_default()(editor).data('codemirror');
+
+ if (!codemirror) {
+ return;
+ }
+
+ if (codemirror.display.lastWrapWidth === 0) {
+ codemirror.refresh();
+ }
+ });
+});
+;// CONCATENATED MODULE: ./app/utils/changelog.js
+/* eslint-disable */
+
+var TRIGGER = null;
+external_jQuery_default()(document).on('click', '[data-remodal-changelog]', function (event) {
+ TRIGGER = event.currentTarget;
+});
+external_jQuery_default()(document).on('opened', '[data-remodal-id="changelog"]', function () {
+ var instance = (external_jQuery_default()).remodal.lookup[external_jQuery_default()('[data-remodal-id=changelog]').data('remodal')];
+ instance.$modal.html('
');
+
+ if (!TRIGGER) {
+ return true;
+ }
+
+ var url = external_jQuery_default()(TRIGGER).data('remodalChangelog');
+ external_jQuery_default().ajax({
+ url: url
+ }).done(function (data) {
+ instance.$modal.html(data);
+ });
+});
+external_jQuery_default()(document).on('closed', '[data-remodal-id="changelog"]', function () {
+ var instance = (external_jQuery_default()).remodal.lookup[external_jQuery_default()('[data-remodal-id=changelog]').data('remodal')];
+ instance.$modal.html('');
+});
+// EXTERNAL MODULE: ./node_modules/es6-map/index.js
+var es6_map = __webpack_require__(1520);
+var es6_map_default = /*#__PURE__*/__webpack_require__.n(es6_map);
+;// CONCATENATED MODULE: ./app/utils/sidebar.js
+function sidebar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function sidebar_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function sidebar_createClass(Constructor, protoProps, staticProps) { if (protoProps) sidebar_defineProperties(Constructor.prototype, protoProps); if (staticProps) sidebar_defineProperties(Constructor, staticProps); return Constructor; }
+
+
+
+
+var MOBILE_BREAKPOINT = 48 - 0.062;
+var DESKTOP_BREAKPOINT = 75 + 0.063;
+var EVENTS = 'touchstart._grav click._grav';
+var TARGETS = '[data-sidebar-mobile-toggle], #overlay';
+var MOBILE_QUERY = "(max-width: ".concat(MOBILE_BREAKPOINT, "em)");
+var DESKTOP_QUERY = "(min-width: ".concat(DESKTOP_BREAKPOINT, "em)");
+var map = new (es6_map_default())();
+
+var Sidebar = /*#__PURE__*/function () {
+ function Sidebar() {
+ sidebar_classCallCheck(this, Sidebar);
+
+ this.timeout = null;
+ this.isOpen = false;
+ this.body = external_jQuery_default()('body');
+ this.matchMedia = __webpack_require__.g.matchMedia(MOBILE_QUERY);
+ this.enable();
+ }
+
+ sidebar_createClass(Sidebar, [{
+ key: "enable",
+ value: function enable() {
+ var sidebar = external_jQuery_default()('#admin-sidebar');
+ this.matchMedia.addListener(this._getBound('checkMatch'));
+ this.checkMatch(this.matchMedia);
+ this.body.on(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));
+
+ if (sidebar.data('quickopen')) {
+ sidebar.hover(this._getBound('quickOpenIn'), this._getBound('quickOpenOut'));
+ }
+ }
+ }, {
+ key: "disable",
+ value: function disable() {
+ var sidebar = external_jQuery_default()('#admin-sidebar');
+ this.close();
+ this.matchMedia.removeListener(this._getBound('checkMatch'));
+ this.body.off(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));
+
+ if (sidebar.data('quickopen')) {
+ sidebar.off('mouseenter mouseleave');
+ }
+ }
+ }, {
+ key: "attach",
+ value: function attach() {
+ this.body.on(EVENTS, TARGETS, this._getBound('toggle'));
+ }
+ }, {
+ key: "detach",
+ value: function detach() {
+ this.body.off(EVENTS, TARGETS, this._getBound('toggle'));
+ }
+ }, {
+ key: "quickOpenIn",
+ value: function quickOpenIn()
+ /* event */
+ {
+ var _this = this;
+
+ var isDesktop = __webpack_require__.g.matchMedia(DESKTOP_QUERY).matches;
+ var delay = external_jQuery_default()('#admin-sidebar').data('quickopen-delay') || 500;
+
+ if (this.body.hasClass('sidebar-mobile-open')) {
+ return;
+ }
+
+ var shouldQuickOpen = isDesktop ? this.body.hasClass('sidebar-closed') : !this.body.hasClass('sidebar-open');
+
+ if (!shouldQuickOpen && !this.body.hasClass('sidebar-quickopen')) {
+ return this.quickOpenOut();
+ }
+
+ this.timeout = setTimeout(function () {
+ _this.body.addClass('sidebar-open sidebar-quickopen');
+
+ external_jQuery_default()(__webpack_require__.g).trigger('sidebar_state._grav', isDesktop);
+ }, delay);
+ }
+ }, {
+ key: "quickOpenOut",
+ value: function quickOpenOut()
+ /* event */
+ {
+ clearTimeout(this.timeout);
+
+ if (this.body.hasClass('sidebar-quickopen')) {
+ this.body.removeClass('sidebar-open sidebar-quickopen');
+ }
+
+ return true;
+ }
+ }, {
+ key: "open",
+ value: function open(event) {
+ var _this2 = this;
+
+ var quick = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+ if (event) {
+ event.preventDefault();
+ }
+
+ var overlay = external_jQuery_default()('#overlay');
+ var sidebar = external_jQuery_default()('#admin-sidebar');
+ this.body.addClass('sidebar-mobile-open');
+ overlay.css('display', 'block');
+
+ if (!quick) {
+ sidebar.css('display', 'block').animate({
+ opacity: 1
+ }, 200, function () {
+ _this2.isOpen = true;
+ });
+ } else {
+ sidebar.css({
+ display: 'block',
+ opacity: 1
+ });
+ this.isOpen = true;
+ }
+ }
+ }, {
+ key: "close",
+ value: function close(event) {
+ var _this3 = this;
+
+ var quick = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+ if (event) {
+ event.preventDefault();
+ }
+
+ var overlay = external_jQuery_default()('#overlay');
+ var sidebar = external_jQuery_default()('#admin-sidebar');
+ this.body.removeClass('sidebar-mobile-open');
+ overlay.css('display', 'none');
+
+ if (!quick) {
+ sidebar.animate({
+ opacity: 0
+ }, 200, function () {
+ sidebar.css('display', 'none');
+ _this3.isOpen = false;
+ });
+ } else {
+ sidebar.css({
+ opacity: 0,
+ display: 'none'
+ });
+ this.isOpen = false;
+ }
+ }
+ }, {
+ key: "toggle",
+ value: function toggle(event) {
+ if (event) {
+ event.preventDefault();
+ }
+
+ return this[this.isOpen ? 'close' : 'open'](event);
+ }
+ }, {
+ key: "toggleSidebarState",
+ value: function toggleSidebarState(event) {
+ if (event) {
+ event.preventDefault();
+ }
+
+ clearTimeout(this.timeout);
+ var isDesktop = __webpack_require__.g.matchMedia(DESKTOP_QUERY).matches;
+ var cookie = null;
+
+ if (isDesktop) {
+ this.body.removeClass('sidebar-open');
+ }
+
+ if (!isDesktop) {
+ this.body.removeClass('sidebar-closed');
+ this.body.removeClass('sidebar-mobile-open');
+ }
+
+ this.body.toggleClass("sidebar-".concat(isDesktop ? 'closed' : 'open'));
+ external_jQuery_default()(__webpack_require__.g).trigger('sidebar_state._grav', isDesktop);
+
+ if (isDesktop) {
+ cookie = !this.body.hasClass('sidebar-closed');
+ } else {
+ cookie = this.body.hasClass('sidebar-open');
+ }
+
+ cookies.set('grav-admin-sidebar', cookie, {
+ expires: Infinity
+ });
+ }
+ }, {
+ key: "checkMatch",
+ value: function checkMatch(data) {
+ var sidebar = external_jQuery_default()('#admin-sidebar');
+ var overlay = external_jQuery_default()('#overlay');
+ this.isOpen = false;
+ overlay.css('display', 'none');
+ sidebar.css({
+ display: data.matches ? 'none' : 'inherit',
+ opacity: data.matches ? 0 : 1
+ });
+
+ if (data.matches) {
+ this.body.removeClass('sidebar-open sidebar-closed');
+ }
+
+ this[data.matches ? 'attach' : 'detach']();
+ }
+ }, {
+ key: "_resetMap",
+ value: function _resetMap() {
+ return map.clear();
+ }
+ }, {
+ key: "_getBound",
+ value: function _getBound(fn) {
+ if (map.has(fn)) {
+ return map.get(fn);
+ }
+
+ return map.set(fn, this[fn].bind(this)).get(fn);
+ }
+ }]);
+
+ return Sidebar;
+}();
+
+
+var sidebar_Instance = new Sidebar();
+;// CONCATENATED MODULE: ./app/main.js
+// polyfills
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // bootstrap jQuery extensions
+
+
+
+ // tabs memory
+
+ // changelog
+
+ // Main Sidebar
+
+ // starts the keep alive, auto runs every X seconds
+
+keepalive.start(); // global event to catch sidebar_state changes
+
+external_jQuery_default()(__webpack_require__.g).on('sidebar_state._grav', function () {
+ Object.keys(dashboard.Chart.Instances).forEach(function (chart) {
+ setTimeout(function () {
+ return dashboard.Chart.Instances[chart].chart.update();
+ }, 10);
+ });
+});
+/* harmony default export */ const main = ({
+ GPM: {
+ GPM: GPM,
+ Instance: Instance
+ },
+ KeepAlive: keepalive,
+ Dashboard: dashboard,
+ Pages: pages,
+ Forms: app_forms,
+ Updates: {
+ Updates: Updates,
+ Notifications: updates_notifications,
+ Feed: updates_feed,
+ Instance: updates_Instance
+ },
+ Sidebar: {
+ Sidebar: Sidebar,
+ Instance: sidebar_Instance
+ },
+ MediaFilter: {
+ MediaFilter: Filter,
+ Instance: app_media_Instance
+ },
+ Scrollbar: {
+ Scrollbar: {
+ deprecated: true
+ },
+ Instance: {
+ deprecated: true
+ }
+ },
+ Utils: {
+ request: utils_request,
+ toastr: utils_toastr,
+ Cookies: cookies
+ }
+});
+
+/***/ }),
+
+/***/ 36531:
+/***/ ((module, exports, __webpack_require__) => {
+
+var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+/*! version : 4.17.47
+ =========================================================
+ bootstrap-datetimejs
+ https://github.com/Eonasdan/bootstrap-datetimepicker
+ Copyright (c) 2015 Jonathan Peterson
+ =========================================================
+ */
+
+/*
+ The MIT License (MIT)
+
+ Copyright (c) 2015 Jonathan Peterson
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+ */
+
+/* global define:false */
+
+/* global jQuery:false */
+
+/* global moment:false */
+(function (factory) {
+ 'use strict';
+
+ if (true) {
+ // AMD is used - Register as an anonymous module.
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(73609), __webpack_require__(30381)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
+ (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+ } else {}
+})(function ($, moment) {
+ 'use strict';
+
+ if (!moment) {
+ throw new Error('bootstrap-datetimepicker requires Moment.js to be loaded first');
+ }
+
+ var dateTimePicker = function dateTimePicker(element, options) {
+ var picker = {};
+ var date;
+ var viewDate;
+ var unset = true;
+ var input;
+ var component = false;
+ var widget = false;
+ var use24Hours;
+ var minViewModeNumber = 0;
+ var actualFormat;
+ var parseFormats;
+ var currentViewMode;
+ var datePickerModes = [{
+ clsName: 'days',
+ navFnc: 'M',
+ navStep: 1
+ }, {
+ clsName: 'months',
+ navFnc: 'y',
+ navStep: 1
+ }, {
+ clsName: 'years',
+ navFnc: 'y',
+ navStep: 10
+ }, {
+ clsName: 'decades',
+ navFnc: 'y',
+ navStep: 100
+ }];
+ var viewModes = ['days', 'months', 'years', 'decades'];
+ var verticalModes = ['top', 'bottom', 'auto'];
+ var horizontalModes = ['left', 'right', 'auto'];
+ var toolbarPlacements = ['default', 'top', 'bottom'];
+ var keyMap = {
+ 'up': 38,
+ 38: 'up',
+ 'down': 40,
+ 40: 'down',
+ 'left': 37,
+ 37: 'left',
+ 'right': 39,
+ 39: 'right',
+ 'tab': 9,
+ 9: 'tab',
+ 'escape': 27,
+ 27: 'escape',
+ 'enter': 13,
+ 13: 'enter',
+ 'pageUp': 33,
+ 33: 'pageUp',
+ 'pageDown': 34,
+ 34: 'pageDown',
+ 'shift': 16,
+ 16: 'shift',
+ 'control': 17,
+ 17: 'control',
+ 'space': 32,
+ 32: 'space',
+ 't': 84,
+ 84: 't',
+ 'delete': 46,
+ 46: 'delete'
+ };
+ var keyState = {};
+ /** ******************************************************************************
+ *
+ * Private functions
+ *
+ ********************************************************************************/
+
+ var hasTimeZone = function hasTimeZone() {
+ return moment.tz !== undefined && options.timeZone !== undefined && options.timeZone !== null && options.timeZone !== '';
+ };
+
+ var getMoment = function getMoment(d) {
+ var returnMoment;
+
+ if (d === undefined || d === null) {
+ returnMoment = moment(); // TODO should this use format? and locale?
+ } else if (moment.isDate(d) || moment.isMoment(d)) {
+ // If the date that is passed in is already a Date() or moment() object,
+ // pass it directly to moment.
+ returnMoment = moment(d);
+ } else if (hasTimeZone()) {
+ // There is a string to parse and a default time zone
+ // parse with the tz function which takes a default time zone if it is not in the format string
+ returnMoment = moment.tz(d, parseFormats, options.useStrict, options.timeZone);
+ } else {
+ returnMoment = moment(d, parseFormats, options.useStrict);
+ }
+
+ if (hasTimeZone()) {
+ returnMoment.tz(options.timeZone);
+ }
+
+ return returnMoment;
+ };
+
+ var isEnabled = function isEnabled(granularity) {
+ if (typeof granularity !== 'string' || granularity.length > 1) {
+ throw new TypeError('isEnabled expects a single character string parameter');
+ }
+
+ switch (granularity) {
+ case 'y':
+ return actualFormat.indexOf('Y') !== -1;
+
+ case 'M':
+ return actualFormat.indexOf('M') !== -1;
+
+ case 'd':
+ return actualFormat.toLowerCase().indexOf('d') !== -1;
+
+ case 'h':
+ case 'H':
+ return actualFormat.toLowerCase().indexOf('h') !== -1;
+
+ case 'm':
+ return actualFormat.indexOf('m') !== -1;
+
+ case 's':
+ return actualFormat.indexOf('s') !== -1;
+
+ default:
+ return false;
+ }
+ };
+
+ var hasTime = function hasTime() {
+ return isEnabled('h') || isEnabled('m') || isEnabled('s');
+ };
+
+ var hasDate = function hasDate() {
+ return isEnabled('y') || isEnabled('M') || isEnabled('d');
+ };
+
+ var getDatePickerTemplate = function getDatePickerTemplate() {
+ var headTemplate = $('').append($('').append($('').addClass('prev').attr('data-action', 'previous').append($('').addClass(options.icons.previous))).append($(' | ').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', options.calendarWeeks ? '6' : '5')).append($(' | ').addClass('next').attr('data-action', 'next').append($('').addClass(options.icons.next))));
+ var contTemplate = $('').append($('').append($('').attr('colspan', options.calendarWeeks ? '8' : '7')));
+ return [$('').addClass('datepicker-days').append($(' ').addClass('table-condensed').append(headTemplate).append($(''))), $('').addClass('datepicker-months').append($(' ').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('').addClass('datepicker-years').append($(' ').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('').addClass('datepicker-decades').append($(' ').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone()))];
+ };
+
+ var getTimePickerMainTemplate = function getTimePickerMainTemplate() {
+ var topRow = $('');
+ var middleRow = $(' ');
+ var bottomRow = $(' ');
+
+ if (isEnabled('h')) {
+ topRow.append($('').append($('').attr({
+ href: '#',
+ tabindex: '-1',
+ 'title': options.tooltips.incrementHour
+ }).addClass('btn').attr('data-action', 'incrementHours').append($('').addClass(options.icons.up))));
+ middleRow.append($(' | ').append($('').addClass('timepicker-hour').attr({
+ 'data-time-component': 'hours',
+ 'title': options.tooltips.pickHour
+ }).attr('data-action', 'showHours')));
+ bottomRow.append($(' | ').append($('').attr({
+ href: '#',
+ tabindex: '-1',
+ 'title': options.tooltips.decrementHour
+ }).addClass('btn').attr('data-action', 'decrementHours').append($('').addClass(options.icons.down))));
+ }
+
+ if (isEnabled('m')) {
+ if (isEnabled('h')) {
+ topRow.append($(' | ').addClass('separator'));
+ middleRow.append($(' | ').addClass('separator').html(':'));
+ bottomRow.append($(' | ').addClass('separator'));
+ }
+
+ topRow.append($(' | ').append($('').attr({
+ href: '#',
+ tabindex: '-1',
+ 'title': options.tooltips.incrementMinute
+ }).addClass('btn').attr('data-action', 'incrementMinutes').append($('').addClass(options.icons.up))));
+ middleRow.append($(' | ').append($('').addClass('timepicker-minute').attr({
+ 'data-time-component': 'minutes',
+ 'title': options.tooltips.pickMinute
+ }).attr('data-action', 'showMinutes')));
+ bottomRow.append($(' | ').append($('').attr({
+ href: '#',
+ tabindex: '-1',
+ 'title': options.tooltips.decrementMinute
+ }).addClass('btn').attr('data-action', 'decrementMinutes').append($('').addClass(options.icons.down))));
+ }
+
+ if (isEnabled('s')) {
+ if (isEnabled('m')) {
+ topRow.append($(' | ').addClass('separator'));
+ middleRow.append($(' | ').addClass('separator').html(':'));
+ bottomRow.append($(' | ').addClass('separator'));
+ }
+
+ topRow.append($(' | ').append($('').attr({
+ href: '#',
+ tabindex: '-1',
+ 'title': options.tooltips.incrementSecond
+ }).addClass('btn').attr('data-action', 'incrementSeconds').append($('').addClass(options.icons.up))));
+ middleRow.append($(' | ').append($('').addClass('timepicker-second').attr({
+ 'data-time-component': 'seconds',
+ 'title': options.tooltips.pickSecond
+ }).attr('data-action', 'showSeconds')));
+ bottomRow.append($(' | ').append($('').attr({
+ href: '#',
+ tabindex: '-1',
+ 'title': options.tooltips.decrementSecond
+ }).addClass('btn').attr('data-action', 'decrementSeconds').append($('').addClass(options.icons.down))));
+ }
+
+ if (!use24Hours) {
+ topRow.append($(' | ').addClass('separator'));
+ middleRow.append($(' | ').append($(' | | |