definicao de layout

This commit is contained in:
2026-02-06 14:37:54 +00:00
parent 872a5bb3ea
commit a4f80c85c2
2686 changed files with 640668 additions and 294 deletions

1307
public/assets/js/page-builder/ckeditor.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,38 @@
/**
* @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here.
// For complete reference see:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
// The toolbar groups arrangement, optimized for two toolbar rows.
config.toolbarGroups = [
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'forms' },
{ name: 'tools' },
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'others' },
'/',
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'about' }
];
// Remove some buttons provided by the standard plugins, which are
// not needed in the Standard(s) toolbar.
config.removeButtons = 'Underline,Subscript,Superscript';
// Set the most common block elements.
config.format_tags = 'p;h1;h2;h3;pre';
// Simplify the dialog windows.
config.removeDialogTabs = 'image:advanced;link:advanced';
};

View File

@@ -0,0 +1,420 @@
! function(a) {
a.fn.gridEditor = function(b) {
var c = this,
d = c.data("grideditor");
if ("getHtml" == arguments[0]) {
if (d) {
d.deinit();
var e = c.html();
return d.init(), e
}
return c.html()
}
return c.each(function(c, d) {
function e() {
A = d.addClass("ge-canvas"), "undefined" != typeof D && D.length || (D = a('<textarea class="ge-html-output"/>').insertBefore(A)), B = a('<div class="ge-mainControls" />').insertBefore(D);
var b = a('<div class="ge-wrapper ge-top" />').appendTo(B);
C = a('<div class="ge-addRowGroup btn-group" />').appendTo(b), a.each(E.new_row_layouts, function(b, c) {
var d = a('<a class="btn-sm btn-grid btn-square btn-grid p-10" />').attr("title", "Add row " + c.join("-")).on("click", function() {
var a = r().appendTo(A);
c.forEach(function(b) {
s(b).appendTo(a)
}), f()
}).appendTo(C);
d.append('<span class="fa fa-plus-circle"/> ' +c.join("-")+' &nbsp;&nbsp;');
var e = (c.join(" - "), '<div class="row ge-row-icon">');
c.forEach(function(a) {
e += '<div class="column col-' + a + '"/>'
}), e += "</div>", d.append(e)
});
var c = a('<div class="dropdown float-start float-xl-end ge-layout-mode"><button type="button" class="btn-screen dropdown-toggle" data-toggle="dropdown"><span>Desktop</span></button><ul class="dropdown-menu" role="menu"><li><a data-width="auto" title="Desktop" class="dropdown-item"><span>Desktop</span></a></li><li><a title="Tablet" class="dropdown-item"><span>Tablet</span></li><li><a title="Phone" class="dropdown-item"><span>Phone</span></a></li></ul></div>').on("click", "a", function() {
var b = a(this);
x(b.closest("li").index());
var d = c.find("button");
d.find("span").remove(), d.append(b.find("span").clone())
}).appendTo(b),
e = a('<div class="btn-group float-start float-xl-end"/>').appendTo(b),
h = a('<button title="Edit Source Code" type="button" class="btn-code gm-edit-mode"><span class="fa fa-chevron-left"></span><span class="fa fa-chevron-right"></span></button>').on("click", function() {
h.hasClass("active") ? (A.empty().html(D.val()).show(), f(), D.hide()) : (g(), D.height(.8 * a(window).height()).val(A.html()).show(), A.hide()), h.toggleClass("active btn-danger")
}).appendTo(e),
i = a('<button title="Preview" type="button" class="btn-code gm-preview m-r-5"><span class="fa fa-eye"></span></button>').on("mouseenter", function() {
A.removeClass("ge-editing")
}).on("click", function() {
i.toggleClass("active btn-danger").trigger("mouseleave")
}).on("mouseleave", function() {
i.hasClass("active") || A.addClass("ge-editing")
}).appendTo(e),
j = a(window);
// j.on("scroll", function(a) {
// j.scrollTop() > B.offset().top && j.scrollTop() < A.offset().top + A.height() ? b.hasClass("ge-top") && b.css({
// left: b.offset().left,
// width: b.outerWidth()
// }).removeClass("ge-top").addClass("ge-fixed") : b.hasClass("ge-fixed") && b.css({
// left: "",
// width: ""
// }).removeClass("ge-fixed").addClass("ge-top")
// }),
A.on("click", ".ge-content", function(b) {
var c = y(a(this).data("ge-content-type"));
c && c.init(E, a(this))
})
}
function f() {
t(!0), A.addClass("ge-editing"), l(), u(), h(), i(), p(), x(G)
}
function g() {
A.removeClass("ge-editing");
A.find(".ge-content").each(function() {
var b = a(this);
y(b.data("ge-content-type")).deinit(E, b)
});
A.find(".ge-tools-drawer").remove(), q(), t()
}
function h() {
A.find(".row").each(function() {
var b = a(this);
if (!b.find("> .ge-tools-drawer").length) {
var c = a('<div class="ge-tools-drawer" />').prependTo(b);
j(c, "Move", "ge-move", "fa-arrows"), j(c, "Settings", "", "fa-cog", function() {
d.toggle()
}), E.row_tools.forEach(function(a) {
j(c, a.title || "", a.className || "", a.iconClass || "fa-wrench", a.on)
}), j(c, "Remove row", "", "fa-trash", function() {
window.confirm("Delete row?") && b.slideUp(function() {
b.remove()
})
}), j(c, "Add column", "ge-add-column", "fa-plus-circle", function() {
b.append(s(3)), f()
});
var d = k(b, E.row_classes).appendTo(c)
}
})
}
function i() {
A.find(".column").each(function() {
var b = a(this);
if (!b.find("> .ge-tools-drawer").length) {
var c = a('<div class="ge-tools-drawer" />').prependTo(b);
j(c, "Move", "ge-move", "fa-arrows"), j(c, "Make column narrower\n(hold shift for min)", "ge-decrease-col-width", "fa-minus", function(a) {
var c = E.valid_col_sizes,
d = F[G],
e = c.indexOf(m(b, d)),
f = c[z(e - 1, 0, c.length - 1)];
a.shiftKey && (f = c[0]), o(b, d, Math.max(f, 1))
}), j(c, "Make column wider\n(hold shift for max)", "ge-increase-col-width", "fa-plus", function(a) {
var c = E.valid_col_sizes,
d = F[G],
e = c.indexOf(m(b, d)),
f = z(e + 1, 0, c.length - 1),
g = c[f];
a.shiftKey && (g = c[c.length - 1]), o(b, d, Math.min(g, H))
}), j(c, "Settings", "", "fa-cog", function() {
d.toggle()
}), E.col_tools.forEach(function(a) {
j(c, a.title || "", a.className || "", a.iconClass || "fa-wrench", a.on)
}), j(c, "Remove col", "", "fa-trash", function() {
window.confirm("Delete column?") && b.animate({
opacity: "hide",
width: "hide",
height: "hide"
}, 400, function() {
b.remove()
})
}), j(c, "Add row", "ge-add-row", "fa-plus-circle", function() {
var a = r();
b.append(a), a.append(s(6)).append(s(6)), f()
});
var d = k(b, E.col_classes).appendTo(c)
}
})
}
function j(b, c, d, e, f) {
var g = a('<a title="' + c + '" class="' + d + '"><span class="fa ' + e + '"></span></a>').appendTo(b);
"function" == typeof f && g.on("click", f), "object" == typeof f && a.each(f, function(a, b) {
g.on(a, b)
})
}
function k(b, c) {
var d = a('<div class="ge-details" />');
a('<input class="ge-id" />').attr("placeholder", "id").val(b.attr("id")).attr("title", "Set a unique identifier").appendTo(d).change(function() {
b.attr("id", this.value)
});
var e = a('<div class="btn-group" />').appendTo(d);
return c.forEach(function(c) {
var d = a('<a class="btn btn-sm btn-default" />').html(c.label).attr("title", c.title ? c.title : 'Toggle "' + c.label + '" styling').toggleClass("active btn-primary", b.hasClass(c.cssClass)).on("click", function() {
d.toggleClass("active btn-primary"), b.toggleClass(c.cssClass, d.hasClass("active"))
}).appendTo(e)
}), d
}
function l() {
A.find('.column, div[class*="col-"]').each(function() {
var b = a(this),
c = 2,
d = n(b);
d.length && (c = d[0].size);
var e = b.attr("class");
F.forEach(function(a) {
-1 == e.indexOf(a) && b.addClass(a + c)
}), b.addClass("column")
})
}
function m(a, b) {
for (var c = n(a), d = 0; d < c.length; d++)
if (c[d].colClass == b) return c[d].size;
return c.length ? c[0].size : null
}
function n(a) {
var b = [];
return F.forEach(function(c) {
var d = new RegExp(c + "(\\d+)", "i");
d.test(a.attr("class")) && b.push({
colClass: c,
size: parseInt(d.exec(a.attr("class"))[1])
})
}), b
}
function o(a, b, c) {
var d = new RegExp("(" + b + "(\\d+))", "i"),
e = d.exec(a.attr("class"));
e && parseInt(e[2]) !== c ? a.switchClass(e[1], b + c, 50) : a.addClass(b + c)
}
function p() {
function a(a, b) {
b.placeholder.css({
height: b.item.outerHeight()
})
}
A.find(".row").sortable({
items: "> .column",
connectWith: ".ge-canvas .row",
handle: "> .ge-tools-drawer .ge-move",
start: a,
helper: "clone"
}), A.add(A.find(".column")).sortable({
items: "> .row, > .ge-content",
connectsWith: ".ge-canvas, .ge-canvas .column",
handle: "> .ge-tools-drawer .ge-move",
start: a,
helper: "clone"
})
}
function q() {
A.add(A.find(".column")).add(A.find(".row")).sortable("destroy")
}
function r() {
return a('<div class="row" />')
}
function s(b) {
return a("<div/>").addClass(F.map(function(a) {
return a + b
}).join(" ")).append(w().html(y(E.content_types[0]).initialContent))
}
function t(b) {
E.custom_filter.length && a.each(E.custom_filter, function(a, c) {
"string" == typeof c && (c = window[c]), c(A, b)
})
}
function u() {
A.find(".column").each(function() {
var b = a(this),
c = a();
b.children().each(function() {
var b = a(this);
b.is(".row, .ge-tools-drawer, .ge-content") ? v(c) : c = c.add(b)
}), v(c)
})
}
function v(b) {
if (b.length) {
var c = w().insertAfter(b.last());
b.appendTo(c), b = a()
}
}
function w() {
return a("<div/>").addClass("ge-content ge-content-type-" + E.content_types[0]).attr("data-ge-content-type", E.content_types[0])
}
function x(a) {
G = a;
var b = ["ge-layout-desktop", "ge-layout-tablet", "ge-layout-phone"];
b.forEach(function(b, c) {
A.toggleClass(b, c == a)
})
}
function y(b) {
return a.fn.gridEditor.RTEs[b]
}
function z(a, b, c) {
return Math.min(c, Math.max(b, a))
}
d = a(d);
var A, B, C, D, E = a.extend({
new_row_layouts: [
[12],
[6, 6],
[4, 4, 4],
[3, 3, 3, 3],
[2, 2, 2, 2, 2, 2],
[2, 8, 2],
[4, 8],
[8, 4]
],
row_classes: [{
label: "Example class",
cssClass: "example-class"
}],
col_classes: [{
label: "Example class",
cssClass: "example-class"
}],
col_tools: [],
row_tools: [],
custom_filter: "",
content_types: ["tinymce"],
valid_col_sizes: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
source_textarea: ""
}, b),
F = ["col-md-", "col-sm-", "col-"],
G = 0,
H = 12;
if (E.source_textarea) {
var I = a(E.source_textarea);
I.addClass("ge-html-output"), D = I, I.val() && d.html(I.val())
}
if (d.children().length && !d.find("div.row").length) {
var J = d.children(),
K = a('<div class="row"><div class="col-md-12"/></div>').appendTo(d);
K.find(".col-md-12").append(J)
}
e(), f(), d.data("grideditor", {
init: f,
deinit: g
})
}), c
}, a.fn.gridEditor.RTEs = {}
}(jQuery),
function() {
$.fn.gridEditor.RTEs.ckeditor = {
init: function(a, b) {
window.CKEDITOR || console.error("CKEditor not available! Make sure you loaded the ckeditor and jquery adapter js files.");
var c = this;
b.each(function() {
var b = $(this);
if (!b.hasClass("active")) {
b.html() == c.initialContent && b.html("&nbsp;"), b.addClass("active").attr("contenteditable", "true");
var d = $.extend({}, a.ckeditor && a.ckeditor.config ? a.ckeditor.config : {}, {
on: {
instanceReady: function(b) {
var c;
try {
c = a.ckeditor.config.on.instanceReady
} catch (d) {}
c && c.call(this, b), e.focus()
}
}
}),
e = CKEDITOR.inline(b.get(0), d)
}
})
},
deinit: function(a, b) {
b.filter(".active").each(function() {
var a = $(this);
$.each(CKEDITOR.instances, function(a, b) {
b.destroy()
}), a.removeClass("active cke_focus").removeAttr("id").removeAttr("style").removeAttr("spellcheck").removeAttr("contenteditable")
})
},
initialContent: "<p>Lorem initius... </p>"
}
}(),
function() {
$.fn.gridEditor.RTEs.summernote = {
init: function(a, b) {
jQuery().summernote || console.error("Summernote not available! Make sure you loaded the Summernote js file.");
var c = this;
b.each(function() {
var b = $(this);
if (!b.hasClass("active")) {
b.html() == c.initialContent && b.html(""), b.addClass("active");
var d = $.extend(!0, {}, a.summernote && a.summernote.config ? a.summernote.config : {}, {
tabsize: 2,
airMode: !0,
callbacks: {
onInit: function() {
var c;
try {
c = a.summernote.config.callbacks.onInit
} catch (d) {}
c && c.call(this), b.summernote("focus")
}
}
});
b.summernote(d)
}
})
},
deinit: function(a, b) {
b.filter(".active").each(function() {
var a = $(this);
a.summernote("destroy"), a.removeClass("active").removeAttr("id").removeAttr("style").removeAttr("spellcheck")
})
},
initialContent: "<p>Lorem ipsum dolores</p>"
}
}(),
function() {
$.fn.gridEditor.RTEs.tinymce = {
init: function(a, b) {
window.tinymce || console.error("tinyMCE not available! Make sure you loaded the tinyMCE js file."), b.tinymce || console.error("tinyMCE jquery integration not available! Make sure you loaded the jquery integration plugin.");
var c = this;
b.each(function() {
var b = $(this);
if (!b.hasClass("active")) {
b.html() == c.initialContent && b.html(""), b.addClass("active");
var d = $.extend({}, a.tinymce && a.tinymce.config ? a.tinymce.config : {}, {
inline: !0,
oninit: function(b) {
$("#" + b.settings.id).focus();
var c;
try {
c = a.tinymce.config.oninit
} catch (d) {}
c && c.call(this)
}
});
b.tinymce(d)
}
})
},
deinit: function(a, b) {
b.filter(".active").each(function() {
var a = $(this),
b = a.tinymce();
b && b.remove(), a.removeClass("active").removeAttr("id").removeAttr("style").removeAttr("spellcheck")
})
},
initialContent: "<p>Lorem ipsum dolores</p>"
}
}();
//# sourceMappingURL=jquery.grideditor.min.js.map

10
public/assets/js/page-builder/jquery.js vendored Normal file
View File

@@ -0,0 +1,10 @@
/*
Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
(function(a){if("undefined"==typeof a)throw Error("jQuery should be loaded before CKEditor jQuery adapter.");if("undefined"==typeof CKEDITOR)throw Error("CKEditor should be loaded before CKEditor jQuery adapter.");CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a},
ckeditor:function(g,d){if(!CKEDITOR.env.isCompatible)throw Error("The environment is incompatible.");if(!a.isFunction(g)){var m=d;d=g;g=m}var k=[];d=d||{};this.each(function(){var b=a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,l=new a.Deferred;k.push(l.promise());if(c&&!f)g&&g.apply(c,[this]),l.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),l.resolve()):setTimeout(arguments.callee,100)},0)},
null,null,9999);else{if(d.autoUpdateElement||"undefined"==typeof d.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)d.autoUpdateElementJquery=!0;d.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",!0);c=a(this).is("textarea")?CKEDITOR.replace(h,d):CKEDITOR.inline(h,d);b.data("ckeditorInstance",c);c.on("instanceReady",function(d){var e=d.editor;setTimeout(function(){if(e.element){d.removeListener();e.on("dataReady",function(){b.trigger("dataReady.ckeditor",[e])});e.on("setData",function(a){b.trigger("setData.ckeditor",
[e,a.data])});e.on("getData",function(a){b.trigger("getData.ckeditor",[e,a.data])},999);e.on("destroy",function(){b.trigger("destroy.ckeditor",[e])});e.on("save",function(){a(h.form).submit();return!1},null,null,20);if(e.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var c=function(){b.ckeditor(function(){e.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize",
c)})}e.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[e]);g&&g.apply(e,[h]);l.resolve()}else setTimeout(arguments.callee,100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,k).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return this}});CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return function(d){if(arguments.length){var m=
this,k=[],f=this.each(function(){var b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new a.Deferred;c.setData(d,function(){f.resolve()});k.push(f.promise());return!0}return g.call(b,d)});if(k.length){var b=new a.Deferred;a.when.apply(this,k).done(function(){b.resolveWith(m)});return b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return f.is("textarea")&&c?c.getData():g.call(f)}}))})(window.jQuery);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,17 @@
'use strict';
$(function() {
$('#myGrid').gridEditor({
new_row_layouts: [[12], [4,4,4], [3,3,3,3], [2,2,2,2,2,2], [6, 6], [4,8], [8,4], [9, 3], [6, 3, 3]],
content_types: ['ckeditor'],
ckeditor: {
config: {
on: {
instanceReady: function(evt) {
var instance = this;
}
}
}
}
});
var html = $('#myGrid').gridEditor('getHtml');
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -0,0 +1,49 @@
"Moono" Skin
====================
This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor
[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by
the CKEditor team. "Moono" is maintained by the core developers.
For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK)
documentation.
Features
-------------------
"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency.
It comes with the following features:
- Chameleon feature with brightness,
- high-contrast compatibility,
- graphics source provided in SVG.
Directory Structure
-------------------
CSS parts:
- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance,
- **mainui.css**: the file contains styles of entire editor outline structures,
- **toolbar.css**: the file contains styles of the editor toolbar space (top),
- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar,
- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded
until the first panel open up,
- **elementspath.css**: the file contains styles of the editor elements path bar (bottom),
- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down,
it's not loaded until the first menu open up,
- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open,
- **reset.css**: the file defines the basis of style resets among all editor UI spaces,
- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference,
- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks.
Other parts:
- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature,
- **icons/**: contains all skin defined icons,
- **images/**: contains a fill general used images,
- **dev/**: contains SVG source of the skin icons.
License
-------
Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or [http://ckeditor.com/license](http://ckeditor.com/license)

View File

@@ -0,0 +1,111 @@
/**
* Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
// This file contains style definitions that can be used by CKEditor plugins.
//
// The most common use for it is the "stylescombo" plugin, which shows a combo
// in the editor toolbar, containing all styles. Other plugins instead, like
// the div plugin, use a subset of the styles on their feature.
//
// If you don't have plugins that depend on this file, you can simply ignore it.
// Otherwise it is strongly recommended to customize this file to match your
// website requirements and design properly.
CKEDITOR.stylesSet.add( 'default', [
/* Block Styles */
// These styles are already available in the "Format" combo ("format" plugin),
// so they are not needed here by default. You may enable them to avoid
// placing the "Format" combo in the toolbar, maintaining the same features.
/*
{ name: 'Paragraph', element: 'p' },
{ name: 'Heading 1', element: 'h1' },
{ name: 'Heading 2', element: 'h2' },
{ name: 'Heading 3', element: 'h3' },
{ name: 'Heading 4', element: 'h4' },
{ name: 'Heading 5', element: 'h5' },
{ name: 'Heading 6', element: 'h6' },
{ name: 'Preformatted Text',element: 'pre' },
{ name: 'Address', element: 'address' },
*/
{ name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } },
{ name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } },
{
name: 'Special Container',
element: 'div',
styles: {
padding: '5px 10px',
background: '#eee',
border: '1px solid #ccc'
}
},
/* Inline Styles */
// These are core styles available as toolbar buttons. You may opt enabling
// some of them in the Styles combo, removing them from the toolbar.
// (This requires the "stylescombo" plugin)
/*
{ name: 'Strong', element: 'strong', overrides: 'b' },
{ name: 'Emphasis', element: 'em' , overrides: 'i' },
{ name: 'Underline', element: 'u' },
{ name: 'Strikethrough', element: 'strike' },
{ name: 'Subscript', element: 'sub' },
{ name: 'Superscript', element: 'sup' },
*/
{ name: 'Marker', element: 'span', attributes: { 'class': 'marker' } },
{ name: 'Big', element: 'big' },
{ name: 'Small', element: 'small' },
{ name: 'Typewriter', element: 'tt' },
{ name: 'Computer Code', element: 'code' },
{ name: 'Keyboard Phrase', element: 'kbd' },
{ name: 'Sample Text', element: 'samp' },
{ name: 'Variable', element: 'var' },
{ name: 'Deleted Text', element: 'del' },
{ name: 'Inserted Text', element: 'ins' },
{ name: 'Cited Work', element: 'cite' },
{ name: 'Inline Quotation', element: 'q' },
{ name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } },
{ name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } },
/* Object Styles */
{
name: 'Styled image (left)',
element: 'img',
attributes: { 'class': 'left' }
},
{
name: 'Styled image (right)',
element: 'img',
attributes: { 'class': 'right' }
},
{
name: 'Compact table',
element: 'table',
attributes: {
cellpadding: '5',
cellspacing: '0',
border: '1',
bordercolor: '#ccc'
},
styles: {
'border-collapse': 'collapse'
}
},
{ name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },
{ name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } }
] );