├── README.md
├── assets
├── css
│ ├── grapes.min.css
│ ├── grapesjs-preset-webpage.min.css
│ ├── style-light.css
│ └── style.css
├── js
│ ├── grapes.js
│ ├── grapes.min.js
│ └── grapes.min.js.map
└── uikit-3.3.3
│ ├── css
│ ├── uikit-rtl.css
│ ├── uikit-rtl.min.css
│ ├── uikit.css
│ └── uikit.min.css
│ └── js
│ ├── uikit-icons.js
│ ├── uikit-icons.min.js
│ ├── uikit.js
│ └── uikit.min.js
├── editor
├── blocks
│ ├── elements.js
│ ├── linkpreview-elements.js
│ ├── pages.js
│ └── uikit-elements.js
└── plugins
│ ├── custom-code-editor.js
│ ├── custom-page-manager.js
│ ├── customize-devices.js
│ ├── customize-options.js
│ └── customize-views.js
├── index.html
├── storage
├── page_1.txt
└── save.php
└── uploads
├── images
├── 0.jpg
├── 1.jpg
├── 2.jpg
├── 3.jpg
├── 4.jpg
├── 5.jpg
└── 6.jpg
└── preview
├── components.gif
├── preview.gif
├── sidebar.PNG
├── sidebar.gif
└── trash_and_component_code.gif
/README.md:
--------------------------------------------------------------------------------
1 | ## Installation and Usage
2 |
3 | Clone and place this repo inside a server directory since there is an auto saving process. Otherwise feel free to use this as an add-on to GrapesJS & UIKit
4 |
5 | ```bash
6 | # Simply Clone this repository
7 | git clone https://github.com/ziaahsan/template-builder
8 | ```
9 | ---
10 |
11 | ## Purpose of Template-Builder was:
12 | 0. I needed a way to make responsive HTML/CSS designs
13 | 1. In order to achieve 0, I used an open source tool called, GrapesJS . Which made things a lot easier to get started
14 | 2. With 1. built, I integrated UIKit for neat HTML/CSS responsive designs
15 | 3. Now that everything was setup simply add an automatic saving system with GrapesJS
16 |
17 |
18 | ## Interface
19 | 1. Components - Blocks of HTML code
20 | 
21 | 2. Sidebar
22 | 
23 | 
24 | 3. Preview
25 | 
26 | 4. Trash & Component Code
27 | 
28 |
--------------------------------------------------------------------------------
/assets/css/grapesjs-preset-webpage.min.css:
--------------------------------------------------------------------------------
1 | .gjs-one-bg{background-color:#463a3c}.gjs-one-color{color:#463a3c}.gjs-one-color-h:hover{color:#463a3c}.gjs-two-bg{background-color:#b9a5a6}.gjs-two-color{color:#b9a5a6}.gjs-two-color-h:hover{color:#b9a5a6}.gjs-three-bg{background-color:#804f7b}.gjs-three-color{color:#804f7b}.gjs-three-color-h:hover{color:#804f7b}.gjs-four-bg{background-color:#d97aa6}.gjs-four-color{color:#d97aa6}.gjs-four-color-h:hover{color:#d97aa6}
2 |
--------------------------------------------------------------------------------
/assets/css/style-light.css:
--------------------------------------------------------------------------------
1 | html {
2 | height: 100%!important;
3 | }
4 |
5 | body {
6 | /*background-color: #f8f8f8!important;*/
7 | min-height: 100%!important;
8 | -webkit-font-smoothing: antialiased!important;
9 | }
10 |
11 | /* We can remove the border we've set at the beginnig */
12 | #gjs {
13 | border: none;
14 | height: 100vh!important;
15 | }
16 | /* Theming */
17 |
18 | /* Primary color for the background */
19 | .gjs-one-bg {
20 | background-color: #f8f8f8;
21 | }
22 |
23 | /* Secondary color for the text color */
24 | .gjs-two-color {
25 | color: #433e43;
26 | }
27 |
28 | /* Tertiary color for the background */
29 | .gjs-three-bg {
30 | background-color: #494849;
31 | color: white;
32 | }
33 |
34 | /* Quaternary color for the text color */
35 | .gjs-four-color,
36 | .gjs-four-color-h:hover {
37 | color: #494849;
38 | }
39 |
40 | /*Template Canvas*/
41 | .gjs-cv-canvas {
42 | width: 87%;
43 | left: 13%;
44 | z-index: 0;
45 | }
46 | /*Commands Bar*/
47 | .gjs-pn-commands {
48 | width: 87%;
49 | left: 13%;
50 | }
51 | /*View for left panel*/
52 | .gjs-pn-views {
53 | width: 13%;
54 | left: 0;
55 | border-bottom: 1px solid #ddd;
56 | border-right: 1px solid #ddd;
57 | }
58 | .gjs-pn-views-container {
59 | left: 0;
60 | width: 13%;
61 | z-index: 0;
62 | border-right: 1px solid #ddd;
63 | border-bottom: 1px solid #ddd;
64 | box-shadow: 0 10px 15px rgba(0,0,0,.08);
65 | }
66 | /*Options*/
67 | .gjs-pn-options {
68 | right: 0;
69 | padding: 3px;
70 | }
71 | /*Devices*/
72 | .gjs-pn-devices-c {
73 | right: 42.5%;
74 | padding: 3px;
75 | }
76 | /*Active pannel button*/
77 | .gjs-pn-btn.gjs-pn-active {
78 | background-color: #ddd;
79 | border: 1px solid #aaa;
80 | border-radius: 4px;
81 | box-shadow: none;
82 | }
83 | /*Block Width*/
84 | .gjs-block {
85 | width: 100%;
86 | height: auto;
87 | min-height: auto;
88 | border: none;
89 | box-shadow: none;
90 | text-align: left;
91 | padding: 0;
92 | background: transparent;
93 | }
94 | .gjs-block:hover {
95 | box-shadow: none;
96 | text-decoration: underline;
97 | }
98 | .gjs-category-title, .gjs-sm-sector .gjs-sm-title, .gjs-clm-tags .gjs-sm-title, .gjs-block-category .gjs-title, .gjs-layer-title {
99 | background-color: #efefef;
100 | }
101 | .gjs-category-open, .gjs-sm-sector.gjs-sm-open, .gjs-sm-open.gjs-clm-tags, .gjs-block-category.gjs-open,
102 | .gjs-category-title, .gjs-sm-sector .gjs-sm-title, .gjs-clm-tags .gjs-sm-title, .gjs-block-category .gjs-title, .gjs-layer-title {
103 | border-bottom: 1px solid #ddd;
104 | }
105 | .gjs-sm-sector .gjs-sm-field input, .gjs-clm-tags .gjs-sm-field input, .gjs-sm-sector .gjs-clm-field input,
106 | .gjs-clm-tags .gjs-clm-field input, .gjs-sm-sector .gjs-clm-select input, .gjs-clm-tags .gjs-clm-select input,
107 | .gjs-sm-sector .gjs-sm-field select, .gjs-clm-tags .gjs-sm-field select, .gjs-sm-sector .gjs-clm-field select,
108 | .gjs-clm-tags .gjs-clm-field select, .gjs-sm-sector .gjs-clm-select select, .gjs-clm-tags .gjs-clm-select select {
109 | color: #222222;
110 | }
111 | .gjs-color-warn {
112 | color: #f79c00;
113 | font-weight: 500;
114 | }
115 | /*Tags input*/
116 | .gjs-field {
117 | background-color: #eaeaea;
118 | border: 1px solid #dddddd;
119 | box-shadow: 0 2px 6px #dddddd;
120 | border-radius: 3px;
121 | }
122 | .gjs-field-colorp {
123 | border-left: none;
124 | border: 1px solid #ddd;
125 | width: 25px;
126 | }
127 | .gjs-field-color-picker {
128 | background-color: transparent;
129 | box-shadow: 0 5px 10px #bbb;
130 | }
131 | #gjs-clm-new {
132 | color: #222222!important;
133 | }
134 | .gjs-radio-item:hover {
135 | background: #dadada;
136 | box-shadow: 0 6px 10px #cccccc inset;
137 | }
138 | .gjs-color-main, .gjs-off-prv, .gjs-sm-sector .gjs-sm-stack #gjs-sm-add, .gjs-clm-tags .gjs-sm-stack #gjs-sm-add {
139 | color: #222222;
140 | fill: #222222;
141 | }
142 | .gjs-sm-sector .gjs-sm-field.gjs-sm-composite, .gjs-clm-tags .gjs-sm-field.gjs-sm-composite, .gjs-sm-sector .gjs-sm-composite.gjs-clm-field,
143 | .gjs-clm-tags .gjs-sm-composite.gjs-clm-field, .gjs-sm-sector .gjs-sm-composite.gjs-clm-select, .gjs-clm-tags .gjs-sm-composite.gjs-clm-select,
144 | .gjs-sm-sector .gjs-sm-property .gjs-sm-layer.gjs-sm-active, .gjs-clm-tags .gjs-sm-property .gjs-sm-layer.gjs-sm-active {
145 | background-color: #fff;
146 | border: 1px solid #dddddd;
147 | border-radius: 5px;
148 | /*box-shadow: 0 2px 6px #dddddd;*/
149 | }
150 | .gjs-clm-tags {
151 | border-bottom: 1px solid #dddddd;
152 | padding-bottom: 0px;
153 | }
154 | .gjs-clm-tag {
155 | background-color: #3b97e3!important;
156 | }
157 | /*Arrow & Field*/
158 | .gjs-field .gjs-d-s-arrow,
159 | .gjs-field-arrow-u, .gjs-field-arrow-d,
160 | .gjs-field-arrow-u {
161 | border-top-color: #222222;
162 | border-bottom-color: #222222;
163 | }
164 |
165 | .gjs-traits-label {
166 | border-bottom-color: #dddddd;
167 | }
168 | .gjs-field-color input {
169 | font-weight: 500;
170 | text-transform: capitalize;
171 | }
--------------------------------------------------------------------------------
/assets/css/style.css:
--------------------------------------------------------------------------------
1 | /* Chrome, Firefox, Opera, Safari 10.1+ */
2 | ::placeholder {
3 | color: #88a7c1;
4 | opacity: 1; /* Firefox */
5 | text-transform: lowercase;
6 | }
7 |
8 | html {
9 | height: 100%!important;
10 | }
11 |
12 | body {
13 | /*background-color: #f8f8f8!important;*/
14 | min-height: 100%!important;
15 | -webkit-font-smoothing: antialiased!important;
16 | }
17 | /*UIKit*/
18 | .uk-tooltip {
19 | background-color: #f8fafb;
20 | box-shadow: 0 4px 12px #080c10;
21 | color: #000;
22 | font-weight: 500;
23 | }
24 | /* We can remove the border we've set at the beginnig */
25 | #gjs {
26 | border: none;
27 | }
28 | /* Theming */
29 |
30 | /* Primary color for the background */
31 | .gjs-one-bg {
32 | background-color: #141D26;
33 | }
34 |
35 | /* Secondary color for the text color */
36 | .gjs-two-color {
37 | color: #b6c6d8;
38 | }
39 |
40 | /* Tertiary color for the background */
41 | .gjs-three-bg {
42 | background-color: #494849;
43 | color: white;
44 | }
45 |
46 | /* Quaternary color for the text color */
47 | .gjs-four-color,
48 | .gjs-four-color-h:hover {
49 | color: #494849;
50 | }
51 |
52 | /*Template Canvas*/
53 | .gjs-cv-canvas {
54 | width: 84%;
55 | left: 16%;
56 | z-index: 0;
57 | }
58 | /*Commands Bar*/
59 | .gjs-pn-commands {
60 | width: 84%;
61 | height: 42px;
62 | left: 16%;
63 | border-bottom: 1px solid #080c10;
64 | background-color: #0e151b;
65 | box-shadow: 0px 0px 12px #0d131a;
66 | }
67 | /*View for left panel*/
68 | .gjs-pn-views {
69 | width: 2%;
70 | height: 100%;
71 | left: 0;
72 | border-right: 6px solid #192330;
73 | background-color: #0e151b;
74 | padding: 41px 0;
75 | }
76 | .gjs-pn-buttons {
77 | display: block;
78 | }
79 | .gjs-pn-views > .gjs-pn-buttons > .gjs-pn-btn {
80 | padding: 6px;
81 | min-width: 100%;
82 | height: 41px;
83 | line-height: 38px;
84 | }
85 | .gjs-pn-options > .gjs-pn-buttons > .gjs-pn-btn {
86 | padding: 6px 12px;
87 | border-right: 1px solid #202e3c;
88 | }
89 | .gjs-pn-options > .gjs-pn-buttons > .gjs-pn-btn:last-child {
90 | border-right: none;
91 | }
92 | .gjs-pn-views-container {
93 | left: 2%;
94 | width: 14%;
95 | z-index: 0;
96 | border-right: 1px solid #263647;
97 | border-left: 2px solid #0e151b;
98 | box-shadow: none;
99 | height: calc(100% - 42px);
100 | }
101 | /*Options*/
102 | .gjs-pn-options {
103 | left: 2%;
104 | padding: 3px;
105 | max-width: 14%;
106 | border-left: 2px solid #0e151b;
107 | border-bottom: 1px solid #080c10;
108 | height: 42px;
109 | line-height: 42px;
110 | background-color: #0e151b;
111 | box-shadow: 0px 0px 12px #0d131a;
112 | }
113 | /*Devices*/
114 | .gjs-pn-devices-c {
115 | left: 2%;
116 | padding: 7px;
117 | height: 42px;
118 | line-height: 33px;
119 | bottom: 0;
120 | width: 14%;
121 | border-top: 1px solid #0e151b;
122 | border-left: 2px solid #0e151b;
123 | box-shadow: -8px -4px 22px #0d131a
124 | }
125 | /*Active pannel button*/
126 | .gjs-pn-btn.gjs-pn-active {
127 | background-color: #192330;
128 | border: none;
129 | border-radius: 0px;
130 | box-shadow: 0 5px 30px rgba(0,0,0,.3);
131 | }
132 | .gjs-pn-options > .gjs-pn-buttons > .gjs-pn-btn.gjs-pn-active {
133 | background-color: #192330;
134 | border-radius: 4px;
135 | color: #33dbba;
136 | }
137 | /*Block Width*/
138 | .gjs-block {
139 | background-color: rgba(26, 37, 49, 0.9);
140 | box-shadow: none;
141 | border-radius: 0;
142 | border: 1px solid #131b25;
143 | width: 33%;
144 | margin: 0;
145 | }
146 | .gjs-block:hover {
147 | background-color: #263647;
148 | box-shadow: 0 4px 12px #0e151b;
149 | text-decoration: none;
150 | }
151 | .gjs-category-title, .gjs-sm-sector .gjs-sm-title, .gjs-clm-tags .gjs-sm-title, .gjs-block-category .gjs-title, .gjs-layer-title {
152 | background-color: #141e26;
153 | }
154 | .gjs-category-open, .gjs-sm-sector.gjs-sm-open, .gjs-sm-open.gjs-clm-tags, .gjs-block-category.gjs-open,
155 | .gjs-category-title, .gjs-sm-sector .gjs-sm-title, .gjs-clm-tags .gjs-sm-title, .gjs-block-category .gjs-title, .gjs-layer-title {
156 | border-bottom: 1px solid #1a2531;
157 | }
158 | .gjs-sm-sector .gjs-sm-field input, .gjs-clm-tags .gjs-sm-field input, .gjs-sm-sector .gjs-clm-field input,
159 | .gjs-clm-tags .gjs-clm-field input, .gjs-sm-sector .gjs-clm-select input, .gjs-clm-tags .gjs-clm-select input,
160 | .gjs-sm-sector .gjs-sm-field select, .gjs-clm-tags .gjs-sm-field select, .gjs-sm-sector .gjs-clm-field select,
161 | .gjs-clm-tags .gjs-clm-field select, .gjs-sm-sector .gjs-clm-select select, .gjs-clm-tags .gjs-clm-select select,
162 | .gjs-four-color, .gjs-four-color-h:hover {
163 | color: #ffffff;
164 | }
165 | .gjs-color-warn {
166 | color: #f79c00;
167 | font-weight: 500;
168 | }
169 | /*Tags input*/
170 | .gjs-field {
171 | background-color: #243447;
172 | border: 1px solid #0e151b;
173 | box-shadow: none;
174 | border-radius: 5px;
175 | }
176 | .gjs-field-colorp {
177 | border-left: none;
178 | border: 1px solid #1a2531;
179 | width: 25px;
180 | }
181 | .gjs-field-color-picker {
182 | background-color: black;
183 | box-shadow: 0 5px 10px #131b25;
184 | }
185 | #gjs-clm-new {
186 | color: #ffffff!important;
187 | }
188 | .gjs-radio-item:hover {
189 | background: #243447;
190 | box-shadow: 0 6px 10px #243447 inset;
191 | }
192 | .gjs-color-main, .gjs-off-prv, .gjs-sm-sector .gjs-sm-stack #gjs-sm-add, .gjs-clm-tags .gjs-sm-stack #gjs-sm-add {
193 | color: #ffffff;
194 | fill: #ffffff;
195 | }
196 | .gjs-sm-sector .gjs-sm-field.gjs-sm-composite, .gjs-clm-tags .gjs-sm-field.gjs-sm-composite, .gjs-sm-sector .gjs-sm-composite.gjs-clm-field,
197 | .gjs-clm-tags .gjs-sm-composite.gjs-clm-field, .gjs-sm-sector .gjs-sm-composite.gjs-clm-select, .gjs-clm-tags .gjs-sm-composite.gjs-clm-select,
198 | .gjs-sm-sector .gjs-sm-property .gjs-sm-layer.gjs-sm-active, .gjs-clm-tags .gjs-sm-property .gjs-sm-layer.gjs-sm-active {
199 | background-color: #243447;
200 | border: 1px solid #1a2531;
201 | border-radius: 5px;
202 | /*box-shadow: 0 2px 6px #dddddd;*/
203 | }
204 | .gjs-radio-item input:checked+.gjs-radio-item-label {
205 | background-color: #141e26;
206 | box-shadow: 0 4px 12px #0e151b inset;
207 | }
208 | .gjs-clm-tags {
209 | border-bottom: 1px solid #1a2531;
210 | padding-bottom: 0px;
211 | }
212 | .gjs-clm-tag {
213 | background-color: #1a2531!important;
214 | }
215 | #gjs-clm-add-tag, .gjs-clm-tags-btn {
216 | background-color: #3b97e3;
217 | border: 1px solid #3b97e3;
218 | color: #efefef;
219 | }
220 | /*Arrow & Field*/
221 | .gjs-field .gjs-d-s-arrow,
222 | .gjs-field-arrow-u, .gjs-field-arrow-d,
223 | .gjs-field-arrow-u {
224 | border-top-color: #ffffff;
225 | border-bottom-color: #ffffff;
226 | }
227 |
228 | .gjs-traits-label {
229 | border-bottom-color: #1a2531;
230 | }
231 | .gjs-field-color input {
232 | font-weight: 500;
233 | text-transform: capitalize;
234 | }
235 | /*Code theeme*/
236 | .cm-s-hopscotch.CodeMirror,
237 | .cm-s-hopscotch .CodeMirror-gutters {
238 | background-color: #141D26;
239 | }
240 | .gjs-title-tags {
241 | font-size:10px;
242 | color:#7f9bba;
243 | }
244 | .gjs-mdl-container {
245 | background-color: rgba(8,12,16, 0.9);
246 | }
247 | .gjs-mdl-dialog {
248 | max-width: 1200px;
249 | height: 800px;
250 | border-radius: 6px;
251 | box-shadow: 0px 0px 4px #0d131a;
252 | }
253 | .gjs-cm-editor-c .CodeMirror {
254 | height: 650px;
255 | margin-bottom: 5px;
256 | }
257 | .gjs-cm-editor #gjs-cm-title {
258 | margin-bottom: 10px;
259 | }
260 | .gjs-cm-editor#gjs-cm-htmlmixed #gjs-cm-title,
261 | .gjs-cm-editor#gjs-cm-css #gjs-cm-title {
262 | font-weight: bold;
263 | }
264 | .gjs-cm-editor-c:nth-child(1) {
265 | width: 70%;
266 | }
267 | .gjs-cm-editor-c:nth-child(2) {
268 | width: 30%;
269 | }
270 | .gjs-sm-header,
271 | .gjs-trt-header {
272 | font-weight: lighter;
273 | padding: 10px;
274 | font-size: 12px;
275 | top: 45%;
276 | position: absolute;
277 | padding: 50px;
278 | color: #9fb8cd;
279 | }
280 | /*Toolbar*/
281 | .gjs-rte-toolbar {
282 | box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.5);
283 | }
284 | .gjs-sm-sector > .gjs-sm-properties,
285 | .gjs-block-category {
286 | box-shadow: 0 0 12px #0d131a inset;
287 | }
288 | /*Button*/
289 | .gjs-btn-prim {
290 | background-color: #198f78;
291 | border-radius: 4px;
292 | color: #ffffff;
293 | font-weight: 500;
294 | text-transform: none;
295 | }
296 | .gjs-btn-prim:active {
297 | background-color: #1c9d84;
298 | }
299 |
300 |
301 | .dotted-white-bottom-border {
302 | border-bottom: 1px dotted #e2eaf0;
303 | }
304 |
305 | /*UIKit*/
306 | /*Notifications*/
307 | .uk-notification-message-primary {
308 | color: #9fb8cd;
309 | }
310 | .uk-notification-message {
311 | background-color: #141D26;
312 | border-radius: 4px;
313 | padding: 8px;
314 | font-size: 14px;
315 | color: #c1d1de;
316 | box-shadow: 0px 2px 4px #0d131a;
317 | border-left: 2px solid #33dbba;
318 | }
319 | .uk-notification-close {
320 | top: 13px;
321 | }
322 |
--------------------------------------------------------------------------------
/editor/blocks/elements.js:
--------------------------------------------------------------------------------
1 | blockManager.add('layout-section', {
2 | category: categories.layout,
3 | attributes: {
4 | title: 'Insert section'
5 | },
6 | label:
7 | `
8 |
9 |
10 |
11 |
Section
12 |
13 | `,
14 | content:
15 | `
16 |
17 |
18 |
[Remove and insert your components ]
19 |
20 |
21 | `,
22 | render: ({ model, className }) => ` ${model.get('label')}
`,
23 | });
24 | blockManager.add('layout-container', {
25 | category: categories.layout,
26 | attributes: {
27 | title: 'Insert container'
28 | },
29 | label:
30 | `
31 |
35 | `,
36 | content: `
`,
37 | render: ({ model, className }) => ` ${model.get('label')}
`,
38 | });
39 | blockManager.add('layout-grid', {
40 | category: categories.layout,
41 | attributes: {
42 | title: 'Insert grid'
43 | },
44 | label:
45 | `
46 |
50 | `,
51 | content:
52 | `
53 |
64 | `,
65 | render: ({ model, className }) => ` ${model.get('label')}
`,
66 | });
67 | blockManager.add('layout-column', {
68 | category: categories.layout,
69 | attributes: {
70 | title: 'Insert column'
71 | },
72 | label:
73 | `
74 |
78 | `,
79 | content:
80 | `
81 |
82 |
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.
83 |
84 |
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
85 |
86 |
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore.
87 |
88 | `,
89 | render: ({ model, className }) => ` ${model.get('label')}
`,
90 | });
91 | blockManager.add('basic-div', {
92 | category: categories.basic,
93 | attributes: {
94 | title: 'Insert div'
95 | },
96 | label:
97 | `
98 |
99 |
103 |
Div Block
104 |
105 | `,
106 | content: `
`,
107 | render: ({ model, className }) => ` ${model.get('label')}
`,
108 | });
109 | blockManager.add('basic-list-block', {
110 | category: categories.basic,
111 | attributes: {
112 | title: 'Insert list'
113 | },
114 | label:
115 | `
116 |
117 |
121 |
List Block
122 |
123 | `,
124 | content: `
125 |
126 | List item 1
127 | List item 2
128 | List item 3
129 |
130 | `,
131 | render: ({ model, className }) => ` ${model.get('label')}
`,
132 | });
133 | blockManager.add('basic-button', {
134 | category: categories.basic,
135 | attributes: {
136 | title: 'Insert button'
137 | },
138 | label:
139 | `
140 |
147 | `,
148 | content: `Default `,
149 | render: ({ model, className }) => ` ${model.get('label')}
`,
150 | });
151 | blockManager.add('basic-left-navbar', {
152 | category: categories.basic,
153 | attributes: {
154 | title: 'Insert left navbar'
155 | },
156 | label:
157 | `
158 |
159 |
163 |
Left Bar
164 |
165 | `,
166 | content: `
167 |
172 | `,
173 | render: ({ model, className }) => ` ${model.get('label')}
`,
174 | });
175 | blockManager.add('basic-navbar', {
176 | category: categories.basic,
177 | attributes: {
178 | title: 'Insert navbar'
179 | },
180 | label:
181 | `
182 |
189 | `,
190 | content:
191 | `
192 |
193 |
194 |
195 |
196 |
217 |
224 |
225 |
226 |
227 |
228 | `,
229 | render: ({ model, className }) => ` ${model.get('label')}
`,
230 | });
231 | blockManager.add('basic-search', {
232 | category: categories.basic,
233 | attributes: {
234 | title: 'Insert navbar'
235 | },
236 | label:
237 | `
238 |
239 |
243 |
Search Bar
244 |
245 | `,
246 | content: `
247 |
250 | `,
251 | render: ({ model, className }) => ` ${model.get('label')}
`,
252 | });
253 | blockManager.add('basic-hr', {
254 | category: categories.basic,
255 | attributes: {
256 | title: 'Insert hr'
257 | },
258 | label:
259 | `
260 |
261 |
265 |
Hr Block
266 |
267 | `,
268 | content: ` `,
269 | render: ({ model, className }) => ` ${model.get('label')}
`,
270 | });
271 | blockManager.add('typography-heading', {
272 | category: categories.typography,
273 | attributes: {
274 | title: 'Insert heading'
275 | },
276 | label:
277 | `
278 |
279 |
283 |
Heading
284 |
285 | `,
286 | content: `Small `,
287 | render: ({ model, className }) => ` ${model.get('label')}
`,
288 | });
289 | blockManager.add('typography-paragraph', {
290 | category: categories.typography,
291 | attributes: {
292 | title: 'Insert paragraph'
293 | },
294 | label:
295 | `
296 |
297 |
301 |
Paragraph
302 |
303 | `,
304 | content: `
305 |
306 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.
307 |
308 | `,
309 | render: ({ model, className }) => ` ${model.get('label')}
`,
310 | });
311 | blockManager.add('typography-text-link', {
312 | category: categories.typography,
313 | attributes: {
314 | title: 'Insert text link'
315 | },
316 | label:
317 | `
318 |
319 |
323 |
Text Link
324 |
325 | `,
326 | content: `Link `,
327 | render: ({ model, className }) => ` ${model.get('label')}
`,
328 | });
329 | blockManager.add('media-image', {
330 | category: categories.media,
331 | attributes: {
332 | title: 'Insert image'
333 | },
334 | label:
335 | `
336 |
343 | `,
344 | content: ` `,
345 | render: ({ model, className }) => ` ${model.get('label')}
`,
346 | });
347 | blockManager.add('components-banner-0', {
348 | category: categories.components,
349 | attributes: {
350 | title: 'Insert banner'
351 | },
352 | label:
353 | `
354 |
355 |
360 |
Banner 0
361 |
362 | `,
363 | content:
364 | `
365 |
366 |
367 |
368 |
369 |
Music Application
370 |
371 |
Alone, it's music.
372 | Togather its magic.
373 |
374 |
375 |
376 |
Our elite team builds web responsive app for leading companies
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 | `,
385 | render: ({ model, className }) => ` ${model.get('label')}
`,
386 | });
387 | blockManager.add('components-banner-1', {
388 | category: categories.components,
389 | attributes: {
390 | title: 'Insert banner'
391 | },
392 | label:
393 | `
394 |
395 |
400 |
Banner 1
401 |
402 | `,
403 | content:
404 | `
405 |
406 |
407 |
408 |
409 |
410 |
Recipe Contest
411 |
412 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in
413 |
414 |
418 |
419 |
420 |
421 |
[Remove and insert an image]
422 |
423 |
424 |
425 |
426 | `,
427 | render: ({ model, className }) => ` ${model.get('label')}
`,
428 | });
429 | blockManager.add('components-banner-2', {
430 | category: categories.components,
431 | attributes: {
432 | title: 'Insert banner'
433 | },
434 | label:
435 | `
436 |
437 |
442 |
Banner 2
443 |
444 | `,
445 | content:
446 | `
447 |
448 |
449 |
450 |
451 |
Recipe Contest
452 |
453 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in
454 |
455 |
460 |
461 |
462 |
463 |
464 | `,
465 | render: ({ model, className }) => ` ${model.get('label')}
`,
466 | });
467 | blockManager.add('components-grid-0', {
468 | category: categories.components,
469 | attributes: {
470 | title: 'Insert grid'
471 | },
472 | label:
473 | `
474 |
482 | `,
483 | content:
484 | `
485 |
486 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
Kerala Chicken Curry
507 |
508 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in
509 |
510 |
511 |
514 |
515 |
516 |
517 |
518 |
519 |
Kerala Chicken Curry
520 |
521 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius
522 |
523 |
524 |
527 |
528 |
529 |
530 |
531 |
532 |
Kerala Chicken Curry
533 |
534 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros
535 |
536 |
537 |
540 |
541 |
542 |
543 |
544 | `,
545 | render: ({ model, className }) => ` ${model.get('label')}
`,
546 | });
--------------------------------------------------------------------------------
/editor/blocks/linkpreview-elements.js:
--------------------------------------------------------------------------------
1 | blockManager.add('linkpreview-navbar', {
2 | category: categories.mylinkpreview,
3 | attributes: {
4 | title: 'Insert navbar'
5 | },
6 | label:
7 | `
8 |
11 | `,
12 | content:
13 | `
14 |
50 | `,
51 | render: ({ model, className }) => ` ${model.get('label')}
`,
52 | });
53 |
54 | blockManager.add('linkpreview-middle-banner', {
55 | category: categories.mylinkpreview,
56 | attributes: {
57 | title: 'Insert middle banner'
58 | },
59 | label:
60 | `
61 |
64 | `,
65 | content:
66 | `
67 |
68 |
69 |
70 |
71 |
API for link previews
72 |
Preview links with our REST API. We provide both raw JSON data, along with full embedding link preview capability.
73 |
77 |
78 |
79 |
80 |
81 | `,
82 | render: ({ model, className }) => ` ${model.get('label')}
`,
83 | });
84 |
85 | blockManager.add('linkpreview-col-1-2', {
86 | category: categories.mylinkpreview,
87 | attributes: {
88 | title: 'Insert columns 1-2'
89 | },
90 | label:
91 | `
92 |
95 | `,
96 | content:
97 | `
98 |
99 |
100 |
101 |
Request an API key
102 |
103 | Simply click "Get API Key" to make requests to our api. To read more, see our Documentation for use of the api key.
104 |
105 |
106 |
136 |
137 |
138 | `,
139 | render: ({ model, className }) => ` ${model.get('label')}
`,
140 | });
141 |
142 | blockManager.add('linkpreview-features', {
143 | category: categories.mylinkpreview,
144 | attributes: {
145 | title: 'Insert features'
146 | },
147 | label:
148 | `
149 |
152 | `,
153 | content:
154 | `
155 |
156 |
157 |
Major features we provide with our service.
158 |
159 |
160 |
161 |
Image
162 | Thumbnail image from the url
163 |
164 |
165 |
Favicon
166 | Website's favicon
167 |
168 |
169 |
Embedding
170 | Responsive link preview on your wesbsite
171 |
172 |
173 |
174 |
175 |
176 |
Title
177 | Obtain page title
178 |
179 |
180 |
Description
181 | Obtain page description
182 |
183 |
184 |
Is Safe Beta
185 | URL risk checker
186 |
187 |
188 |
189 | `,
190 | render: ({ model, className }) => ` ${model.get('label')}
`,
191 | });
--------------------------------------------------------------------------------
/editor/blocks/pages.js:
--------------------------------------------------------------------------------
1 | blockManager.add('layout-page-0', {
2 | category: categories.pages,
3 | attributes: {
4 | title: 'Insert page'
5 | },
6 | label:
7 | `
8 |
15 | `,
16 | content:
17 | `
18 |
19 |
20 |
21 |
22 |
23 |
24 |
Recipe
25 | Contest
26 |
27 |
28 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in
29 |
30 |
35 |
36 |
37 |
38 |
[Remove and insert an image]
39 |
40 |
41 |
42 |
43 |
44 |
45 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
Kerala Chicken Curry
66 |
67 |
68 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in
69 |
70 |
71 |
74 |
75 |
76 |
77 |
78 |
79 |
Kerala Chicken Curry
80 |
81 |
82 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius
83 |
84 |
85 |
88 |
89 |
90 |
91 |
92 |
93 |
Kerala Chicken Curry
94 |
95 |
96 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros
97 |
98 |
99 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
Featured
111 |
112 |
Some of our qualified listings.
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
Kerala Chicken Curry
123 |
124 |
125 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim inLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim inLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in
126 |
127 |
128 |
131 |
132 |
133 |
134 |
135 |
136 |
Kerala Chicken Curry
137 |
138 |
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim inLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim inLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros
139 |
140 |
141 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
Recipes
154 |
155 |
156 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in
157 |
158 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
Books
170 |
171 |
172 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in
173 |
174 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
Restaurants Near You
187 |
188 |
Very delicios places around your neighbourhood.
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
Kerala Chicken Curry
199 |
200 |
201 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in
202 |
203 |
204 |
207 |
208 |
209 |
210 |
211 |
212 |
Kerala Chicken Curry
213 |
214 |
215 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius
216 |
217 |
218 |
221 |
222 |
223 |
224 |
225 |
226 |
Kerala Chicken Curry
227 |
228 |
229 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros
230 |
231 |
232 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
Recipe Contest
245 |
246 |
247 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in
248 |
249 |
254 |
255 |
256 |
257 |
258 |
259 |
260 | `,
261 | render: ({ model, className }) => ` ${model.get('label')}
`,
262 | });
--------------------------------------------------------------------------------
/editor/blocks/uikit-elements.js:
--------------------------------------------------------------------------------
1 | blockManager.add('uikit-accordion', {
2 | category: categories.uikit,
3 | attributes: {
4 | title: 'Insert accordion'
5 | },
6 | label:
7 | `
8 |
15 | `,
16 | content:
17 | `
18 |
19 |
20 | Item 1
21 |
22 |
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
23 |
24 |
25 |
26 | Item 2
27 |
28 |
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor reprehenderit.
29 |
30 |
31 |
32 | Item 3
33 |
34 |
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat proident.
35 |
36 |
37 |
38 | `,
39 | render: ({ model, className }) => ` ${model.get('label')}
`,
40 | });
41 |
42 | blockManager.add('uikit-button', {
43 | category: categories.uikit,
44 | attributes: {
45 | title: 'Insert button'
46 | },
47 | label:
48 | `
49 |
56 | `,
57 | content: `Default `,
58 | render: ({ model, className }) => ` ${model.get('label')}
`,
59 | });
60 |
61 | blockManager.add('uikit-card', {
62 | category: categories.uikit,
63 | attributes: {
64 | title: 'Insert card'
65 | },
66 | label:
67 | `
68 |
75 | `,
76 | content:
77 | `
78 |
79 |
Default
80 |
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
81 |
82 | `,
83 | render: ({ model, className }) => ` ${model.get('label')}
`,
84 | });
85 |
86 | blockManager.add('uikit-column', {
87 | category: categories.uikit,
88 | attributes: {
89 | title: 'Insert column'
90 | },
91 | label:
92 | `
93 |
94 |
98 |
Column 1-2
99 |
100 | `,
101 | content:
102 | `
103 |
104 |
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.
105 |
106 |
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
107 |
108 |
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore.
109 |
110 | `,
111 | render: ({ model, className }) => ` ${model.get('label')}
`,
112 | });
113 |
114 | blockManager.add('uikit-container', {
115 | category: categories.uikit,
116 | attributes: {
117 | title: 'Insert container'
118 | },
119 | label:
120 | `
121 |
122 |
126 |
Container
127 |
128 | `,
129 | content:
130 | `
131 |
132 |
A simple container
133 |
134 | `,
135 | render: ({ model, className }) => ` ${model.get('label')}
`,
136 | });
137 |
138 | blockManager.add('uikit-grid', {
139 | category: categories.uikit,
140 | attributes: {
141 | title: 'Insert grid'
142 | },
143 | label:
144 | `
145 |
152 | `,
153 | content:
154 | `
155 |
166 | `,
167 | render: ({ model, className }) => ` ${model.get('label')}
`,
168 | });
169 |
170 | blockManager.add('uikit-heading', {
171 | category: categories.uikit,
172 | attributes: {
173 | title: 'Insert heading'
174 | },
175 | label:
176 | `
177 |
178 |
182 |
Heading
183 |
184 | `,
185 | content:
186 | `
187 | Small
188 | `,
189 | render: ({ model, className }) => ` ${model.get('label')}
`,
190 | });
191 |
192 | blockManager.add('uikit-link', {
193 | category: categories.uikit,
194 | attributes: {
195 | title: 'Insert link'
196 | },
197 | label:
198 | `
199 |
206 | `,
207 | content:
208 | `
209 | Heading
210 | `,
211 | render: ({ model, className }) => ` ${model.get('label')}
`,
212 | });
213 |
214 | blockManager.add('uikit-nav', {
215 | category: categories.uikit,
216 | attributes: {
217 | title: 'Insert nav'
218 | },
219 | label:
220 | `
221 |
228 | `,
229 | content:
230 | `
231 |
232 |
254 |
255 |
256 |
257 |
258 | Parent
259 |
270 |
271 |
272 |
273 |
274 | `,
275 | render: ({ model, className }) => ` ${model.get('label')}
`,
276 | });
277 |
278 | blockManager.add('uikit-section', {
279 | category: categories.uikit,
280 | attributes: {
281 | title: 'Insert section'
282 | },
283 | label:
284 | `
285 |
286 |
290 |
Section
291 |
292 | `,
293 | content:
294 | `
295 |
296 |
297 |
298 |
Section Default
299 |
300 |
301 |
302 |
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.
303 |
304 |
305 |
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.
306 |
307 |
308 |
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.
309 |
310 |
311 |
312 |
313 |
314 | `,
315 | render: ({ model, className }) => ` ${model.get('label')}
`,
316 | });
317 |
318 | blockManager.add('uikit-tile', {
319 | category: categories.uikit,
320 | attributes: {
321 | title: 'Insert tile'
322 | },
323 | label:
324 | `
325 |
332 | `,
333 | content:
334 | `
335 |
336 |
341 |
346 |
351 |
356 |
357 | `,
358 | render: ({ model, className }) => ` ${model.get('label')}
`,
359 | });
360 |
361 | blockManager.add('uikit-width', {
362 | category: categories.uikit,
363 | attributes: {
364 | title: 'Insert width'
365 | },
366 | label:
367 | `
368 |
375 | `,
376 | content:
377 | `
378 |
379 |
382 |
385 |
388 |
391 |
392 | `,
393 | render: ({ model, className }) => ` ${model.get('label')}
`,
394 | });
--------------------------------------------------------------------------------
/editor/plugins/custom-code-editor.js:
--------------------------------------------------------------------------------
1 | function customCodeEditor(editor) {
2 | const stylePrefix = editor.getConfig().stylePrefix;
3 |
4 | // let code placeholder
5 | let selectedComponent = '';
6 |
7 | // Div set up
8 | let codeDivEditor = document.createElement('div');
9 | codeDivEditor.setAttribute("class", "gjs-cm-editor-c");
10 |
11 | let codeDiv = document.createElement('div');
12 | codeDiv.setAttribute("class", "gjs-cm-editor");
13 | codeDiv.setAttribute("id", "gjs-cm-htmlmixed");
14 |
15 | let codeDivTitle = document.createElement('div');
16 | codeDivTitle.setAttribute("id", "gjs-cm-title");
17 | codeDivTitle.innerHTML = "HTML";
18 |
19 | let codeDivHTML = document.createElement('div');
20 | codeDivHTML.setAttribute("id", "gjs-cm-code");
21 |
22 | let btnSave = document.createElement('button');
23 | btnSave.innerHTML = 'Apply HTML Changes';
24 | btnSave.className = stylePrefix + 'btn-prim ' + stylePrefix + 'btn-import ' + stylePrefix + 'btn--full';
25 |
26 | codeDiv.appendChild(codeDivTitle);
27 | codeDiv.appendChild(codeDivHTML);
28 | codeDiv.appendChild(btnSave);
29 |
30 | codeDivEditor.appendChild(codeDiv);
31 |
32 | const command = editor.Commands
33 | const modal = editor.Modal;
34 |
35 | // CodeMirror setup
36 | var htmlCodeViewer = editor.CodeManager.getViewer('CodeMirror').clone();
37 | htmlCodeViewer.set({
38 | codeName: 'htmlmixed',
39 | readOnly: 0,
40 | theme: 'hopscotch',
41 | autoBeautify: true,
42 | autoCloseTags: true,
43 | autoCloseBrackets: true,
44 | lineWrapping: true,
45 | styleActiveLine: true,
46 | smartIndent: true,
47 | indentWithTabs: true,
48 | tabSize: 3,
49 | indentUnit: 3
50 | });
51 |
52 | // Save code changes
53 | btnSave.onclick = function() {
54 | // Get the new component code
55 | let htmlComponentCode = htmlCodeViewer.editor.getValue();
56 |
57 | // On the sleced component update the new htmlComponentCode
58 | let replacedComponent = selectedComponent.replaceWith(htmlComponentCode.trim());
59 | // Now select the replacedComponent
60 | editor.select(replacedComponent);
61 |
62 | // Make message
63 | let msg = `
64 |
65 |
66 |
67 |
68 | You've updated ${replacedComponent.getName()} component.
69 |
70 |
71 |
72 | `;
73 |
74 | // Send notification
75 | UIkit.notification({
76 | message: msg,
77 | status: 'primary',
78 | pos: 'bottom-right',
79 | group: 'message',
80 | timeout: 3000
81 | });
82 |
83 | // close popup
84 | modal.close();
85 | };
86 |
87 | // Command for opening the edit
88 | command.add('edit-component-code', {
89 | run: function(editor, sender) {
90 | let component = editor.getSelected();
91 |
92 | // Make sure component is selected
93 | if (component == undefined) {
94 | console.log("Warnning: No component was selected when executing 'edit-component-code' command");
95 | return;
96 | }
97 |
98 | if (modal.isOpen())
99 | modal.close();
100 |
101 | let htmlViewer = htmlCodeViewer.editor;
102 | if (!htmlViewer) {
103 | let txtarea = document.createElement('textarea');
104 | codeDivHTML.appendChild(txtarea);
105 | htmlCodeViewer.init(txtarea);
106 | htmlViewer = htmlCodeViewer.editor;
107 | }
108 |
109 | let htmlCode = component.toHTML();
110 |
111 | // Set the current component of the component to selectedComponent
112 | // so we can compare old and replace with new
113 | selectedComponent = component;
114 |
115 | // Now the set the component code
116 | htmlCodeViewer.setContent(htmlCode);
117 |
118 | modal.setTitle('Component Code');
119 | modal.setContent(codeDivEditor);
120 | modal.open();
121 |
122 | htmlViewer.refresh();
123 | }
124 | });
125 |
126 | // Open component settings on selection
127 | editor.on('component:selected', () => {
128 | const component = editor.getSelected();
129 |
130 | // Switch view to open-tm (open trait manager)
131 | editor.Panels.getButton('views', 'open-tm').set('active', true);
132 |
133 | // Get the trait manger code button existance
134 | const tmCodeBtn = component.get('traits').where({
135 | name: 'tm-code-btn'
136 | });
137 |
138 | // Is the array empty?
139 | if (tmCodeBtn.length == 0) {
140 |
141 | // Adding button to trait manager
142 | component.addTrait({
143 | name: 'tm-code-btn', // Name is how we ref the trait
144 | type: 'button',
145 | text: 'Edit ' + component.getName() + ' Code',
146 | full: true, // Full width button
147 | label: false,
148 | command: 'edit-component-code'
149 | }, {
150 | at: 0
151 | });
152 | }
153 | });
154 | };
--------------------------------------------------------------------------------
/editor/plugins/custom-page-manager.js:
--------------------------------------------------------------------------------
1 | function customPageManager(editor) {
2 | const panelManager = editor.Panels;
3 |
4 | var pages = {
5 | current: 1,
6 | pages: [
7 | { components: [], style: [] },
8 | ]
9 | }
10 |
11 | // Adding new button
12 | panelManager.addButton('views', [{
13 | id: 'manage-pages',
14 | className: 'gjs-pn-btn',
15 | command: '',
16 | active: false,
17 | label: ` `
18 | }]);
19 |
20 | }
--------------------------------------------------------------------------------
/editor/plugins/customize-devices.js:
--------------------------------------------------------------------------------
1 | function customizeDevices(editor) {
2 | const panelManager = editor.Panels;
3 |
4 | // Hide default devices
5 | editor.getConfig().showDevices = 0;
6 |
7 | // Device icons manager
8 | panelManager.addPanel({ id: "devices-c" }).get("buttons").add([
9 | {
10 | id: "set-device-desktop",
11 | command: function(e) { return e.setDevice("Desktop") },
12 | className: "gjs-dekstop-device",
13 | active: true,
14 | label: ` `
15 | },
16 | {
17 | id: "set-device-tablet",
18 | command: function(e) { return e.setDevice("Tablet") },
19 | className: "gjs-tablet-device",
20 | label: ` `
21 | },
22 | {
23 | id: "set-device-mobile",
24 | command: function(e) { return e.setDevice("Mobile portrait") },
25 | className: "gjs-mobile-portrait-device",
26 | label: ` `
27 | },
28 | ]);
29 |
30 | }
--------------------------------------------------------------------------------
/editor/plugins/customize-options.js:
--------------------------------------------------------------------------------
1 | function customizeOptions(editor) {
2 | const panelManager = editor.Panels;
3 | const command = editor.Commands
4 |
5 | // Command for opening the edit
6 | command.add('custom-clear-canvas', {
7 | run: function(editor, sender) {
8 | // Clear components
9 | editor.DomComponents.clear();
10 | // Clear styles
11 | editor.CssComposer.clear();
12 | // Clear undo history
13 | editor.UndoManager.clear();
14 |
15 | // Make message
16 | let msg = `
17 |
18 |
19 |
20 |
21 | You've cleared your canvas.
22 |
23 |
24 |
25 | `;
26 |
27 | // Send notification
28 | UIkit.notification({
29 | message: msg,
30 | status: 'primary',
31 | pos: 'bottom-right',
32 | group: 'message',
33 | timeout: 3000
34 | });
35 | }
36 | });
37 |
38 | // Options button manager
39 | panelManager.getButton('options', 'sw-visibility').set({
40 | id: "sw-visibility",
41 | className: 'gjs-pn-btn',
42 | command: "sw-visibility",
43 | active: true,
44 | label: ` `
45 | });
46 | panelManager.getButton('options', 'preview').set({
47 | id: "preview",
48 | className: 'gjs-pn-btn',
49 | command: "preview",
50 | active: false,
51 | label: ` `
52 | });
53 | panelManager.getButton('options', 'fullscreen').set({
54 | id: "fullscreen",
55 | className: 'gjs-pn-btn',
56 | command: "fullscreen",
57 | active: false,
58 | label: ` `
59 | });
60 | panelManager.getButton('options', 'export-template').set({
61 | id: "export-template",
62 | className: 'gjs-pn-btn',
63 | command: "export-template",
64 | active: false,
65 | label: ` `
66 | });
67 |
68 | // Adding new button
69 | panelManager.addButton('options', [{
70 | id: 'clear-canvas',
71 | className: 'gjs-pn-btn',
72 | command: 'custom-clear-canvas',
73 | active: false,
74 | label: ` `
75 | }, ]);
76 |
77 | }
--------------------------------------------------------------------------------
/editor/plugins/customize-views.js:
--------------------------------------------------------------------------------
1 | function customizeViews(editor) {
2 | const panelManager = editor.Panels;
3 |
4 | // Views button manager
5 | panelManager.getButton('views', 'open-sm').set({
6 | id: "open-sm",
7 | className: 'gjs-pn-btn',
8 | command: "open-sm",
9 | active: true,
10 | attributes: {
11 | title: "Open Style Manager"
12 | },
13 | label: ` `
14 | });
15 | panelManager.getButton('views', 'open-tm').set({
16 | id: "open-tm",
17 | className: 'gjs-pn-btn',
18 | command: "open-tm",
19 | active: false,
20 | attributes: {
21 | title: "Open Settings"
22 | },
23 | label: ` `
24 | });
25 | panelManager.getButton('views', 'open-layers').set({
26 | id: "open-layers",
27 | className: 'gjs-pn-btn',
28 | command: "open-layers",
29 | active: false,
30 | attributes: {
31 | title: "Open Layers"
32 | },
33 | label: ` `
34 | });
35 | panelManager.getButton('views', 'open-blocks').set({
36 | id: "open-blocks",
37 | className: 'gjs-pn-btn',
38 | command: "open-blocks",
39 | active: false,
40 | attributes: {
41 | title: "Open Blocks"
42 | },
43 | label: ` `
44 | });
45 | }
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
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 |
90 |
91 |
92 |
93 |
94 |
95 |
--------------------------------------------------------------------------------
/storage/page_1.txt:
--------------------------------------------------------------------------------
1 | {"gjs-html":"Recipe\n\t\t Contest\n\t\t \n\t\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\n\t\t
[Remove and insert an image]\n\t\t
\n\t\t
Kerala Chicken Curry\n\t\t \n\t\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\n\t\t
\n\t\t
Kerala Chicken Curry\n\t\t \n\t\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius\n\t\t
\n\t\t
Kerala Chicken Curry\n\t\t \n\t\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros\n\t\t
Featured\n\t\t Some of our qualified listings.\n\t\t
\n\t\t
Kerala Chicken Curry\n\t\t \n\t\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim inLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim inLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\n\t\t
\n\t\t
Kerala Chicken Curry\n\t\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim inLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim inLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros\n\t\t
Recipes\n\t\t \n\t\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\n\t\t
Books\n\t\t \n\t\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\n\t\t
Restaurants Near You\n\t\t Very delicios places around your neighbourhood.\n\t\t
\n\t\t
Kerala Chicken Curry\n\t\t \n\t\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\n\t\t
\n\t\t
Kerala Chicken Curry\n\t\t \n\t\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius\n\t\t
\n\t\t
Kerala Chicken Curry\n\t\t \n\t\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros\n\t\t
Recipe Contest\n\t\t \n\t\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\n\t\t
","gjs-components":"[{\"content\":\"\",\"classes\":[{\"name\":\"uk-section\",\"label\":\"uk-section\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-section-default\",\"label\":\"uk-section-default\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-position-relative\",\"label\":\"uk-position-relative\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-container\",\"label\":\"uk-container\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small\",\"label\":\"uk-margin-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-medium\",\"label\":\"uk-padding-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-container-large\",\"label\":\"uk-container-large\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-box-shadow-small\",\"label\":\"uk-box-shadow-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-border-rounded\",\"label\":\"uk-border-rounded\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"ilqj\"},\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-grid\",\"label\":\"uk-grid\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-3\",\"label\":\"uk-width-1-3\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-flex\",\"label\":\"uk-flex\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-flex-middle\",\"label\":\"uk-flex-middle\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-medium\",\"label\":\"uk-padding-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"im06m\"},\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-medium\",\"label\":\"uk-width-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"\",\"classes\":[{\"name\":\"uk-heading-small\",\"label\":\"uk-heading-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"tagName\":\"\",\"type\":\"textnode\",\"content\":\"Recipe\\n\\t\\t \"},{\"tagName\":\"br\",\"void\":true,\"content\":\"\"},{\"tagName\":\"\",\"type\":\"textnode\",\"content\":\"Contest\\n\\t\\t \"}]},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"\\n\\t\\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"i101\"},\"components\":[{\"type\":\"link\",\"content\":\"How they work\",\"classes\":[{\"name\":\"uk-display-inline\",\"label\":\"uk-display-inline\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\",\"id\":\"ihbt\"}},{\"type\":\"text\",\"content\":\"\\n\\t\\t \",\"classes\":[{\"name\":\"uk-display-inline\",\"label\":\"uk-display-inline\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"ik43h\"}}]}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-expand\",\"label\":\"uk-width-expand\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-height-large\",\"label\":\"uk-height-large\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"text\",\"content\":\"[Remove and insert an image]\\n\\t\\t \",\"classes\":[{\"name\":\"uk-height-1-1\",\"label\":\"uk-height-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-placeholder\",\"label\":\"uk-placeholder\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-flex\",\"label\":\"uk-flex\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-flex-middle\",\"label\":\"uk-flex-middle\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-flex-center\",\"label\":\"uk-flex-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]}]}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-margin-medium-top\",\"label\":\"uk-margin-medium-top\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"iwwqm\"},\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-grid\",\"label\":\"uk-grid\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"tagName\":\"ul\",\"content\":\"\",\"classes\":[{\"name\":\"uk-nav\",\"label\":\"uk-nav\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-nav-default\",\"label\":\"uk-nav-default\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-5\",\"label\":\"uk-width-1-5\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"tagName\":\"li\",\"content\":\"\",\"classes\":[{\"name\":\"uk-active\",\"label\":\"uk-active\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"link\",\"content\":\"Filter By\",\"classes\":[{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-large\",\"label\":\"uk-text-large\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\",\"id\":\"imyez\"}}]},{\"tagName\":\"li\",\"content\":\"\",\"components\":[{\"type\":\"link\",\"content\":\"Contest Winners\",\"attributes\":{\"href\":\"#\",\"id\":\"ir8xk\"}}]},{\"tagName\":\"li\",\"content\":\"\",\"attributes\":{\"id\":\"ihacp\"},\"components\":[{\"type\":\"link\",\"content\":\"Featured\",\"attributes\":{\"href\":\"#\",\"id\":\"i59ca\"}}]},{\"tagName\":\"li\",\"content\":\"\",\"attributes\":{\"id\":\"imz84\"},\"components\":[{\"type\":\"link\",\"content\":\"Test Kitchen-Approved\",\"attributes\":{\"href\":\"#\",\"id\":\"ik4bt\"}}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-expand\",\"label\":\"uk-width-expand\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-text-center\",\"label\":\"uk-text-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-grid\",\"label\":\"uk-grid\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-3\",\"label\":\"uk-width-1-3\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"itdh\"},\"components\":[{\"type\":\"text\",\"content\":\"\\n\\t\\t \",\"classes\":[{\"name\":\"uk-height-small\",\"label\":\"uk-height-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-border-rounded\",\"label\":\"uk-border-rounded\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-box-shadow-medium\",\"label\":\"uk-box-shadow-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small\",\"label\":\"uk-margin-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"idp1f\"}},{\"content\":\"\",\"attributes\":{\"id\":\"i8wvs\"},\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Kerala Chicken Curry\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"ilthm\"}},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"\\n\\t\\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-clearfix\",\"label\":\"uk-clearfix\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small-remove\",\"label\":\"uk-margin-small-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"ihon8\"},\"components\":[{\"type\":\"link\",\"content\":\"By Sarah Elvis\",\"classes\":[{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-align-left\",\"label\":\"uk-align-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\"}}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-3\",\"label\":\"uk-width-1-3\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"text\",\"content\":\"\\n\\t\\t \",\"classes\":[{\"name\":\"uk-height-small\",\"label\":\"uk-height-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-border-rounded\",\"label\":\"uk-border-rounded\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-box-shadow-medium\",\"label\":\"uk-box-shadow-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small\",\"label\":\"uk-margin-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"ibqq7\"}},{\"content\":\"\",\"attributes\":{\"id\":\"iqy5m\"},\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Kerala Chicken Curry\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"\\n\\t\\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-clearfix\",\"label\":\"uk-clearfix\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small-remove\",\"label\":\"uk-margin-small-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"link\",\"content\":\"By Sarah Elvis\",\"classes\":[{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-align-left\",\"label\":\"uk-align-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\"}}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-3\",\"label\":\"uk-width-1-3\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"ipjr\"},\"components\":[{\"type\":\"text\",\"content\":\"\\n\\t\\t \",\"classes\":[{\"name\":\"uk-height-small\",\"label\":\"uk-height-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-border-rounded\",\"label\":\"uk-border-rounded\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-box-shadow-medium\",\"label\":\"uk-box-shadow-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small\",\"label\":\"uk-margin-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"i59ih\"}},{\"content\":\"\",\"attributes\":{\"id\":\"i7bxa\"},\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Kerala Chicken Curry\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"\\n\\t\\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-clearfix\",\"label\":\"uk-clearfix\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small-remove\",\"label\":\"uk-margin-small-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"link\",\"content\":\"By Sarah Elvis\",\"classes\":[{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-align-left\",\"label\":\"uk-align-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\"}}]}]}]}]}]}]},{\"tagName\":\"hr\",\"void\":true,\"content\":\"\"},{\"content\":\"\",\"classes\":[{\"name\":\"uk-margin-small-remove\",\"label\":\"uk-margin-small-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"isuyk\"},\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Featured\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-large\",\"label\":\"uk-text-large\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"Some of our qualified listings.\\n\\t\\t \",\"classes\":[{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-grid\",\"label\":\"uk-grid\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-expand\",\"label\":\"uk-width-expand\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-text-center\",\"label\":\"uk-text-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-grid\",\"label\":\"uk-grid\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-2\",\"label\":\"uk-width-1-2\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"text\",\"content\":\"\\n\\t\\t \",\"classes\":[{\"name\":\"uk-height-small\",\"label\":\"uk-height-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-border-rounded\",\"label\":\"uk-border-rounded\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-box-shadow-medium\",\"label\":\"uk-box-shadow-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small\",\"label\":\"uk-margin-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"content\":\"\",\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Kerala Chicken Curry\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"\\n\\t\\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim inLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim inLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-clearfix\",\"label\":\"uk-clearfix\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small-remove\",\"label\":\"uk-margin-small-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"link\",\"content\":\"By Sarah Elvis\",\"classes\":[{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-align-left\",\"label\":\"uk-align-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\"}}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-2\",\"label\":\"uk-width-1-2\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"text\",\"content\":\"\\n\\t\\t \",\"classes\":[{\"name\":\"uk-height-small\",\"label\":\"uk-height-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-border-rounded\",\"label\":\"uk-border-rounded\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-box-shadow-medium\",\"label\":\"uk-box-shadow-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small\",\"label\":\"uk-margin-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"content\":\"\",\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Kerala Chicken Curry\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim inLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim inLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-clearfix\",\"label\":\"uk-clearfix\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small-remove\",\"label\":\"uk-margin-small-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"link\",\"content\":\"By Sarah Elvis\",\"classes\":[{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-align-left\",\"label\":\"uk-align-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\"}}]}]}]}]}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-grid\",\"label\":\"uk-grid\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"i49l79\"},\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-padding-large\",\"label\":\"uk-padding-large\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-2\",\"label\":\"uk-width-1-2\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-flex\",\"label\":\"uk-flex\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-flex-middle\",\"label\":\"uk-flex-middle\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-medium\",\"label\":\"uk-padding-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-flex-center\",\"label\":\"uk-flex-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-center\",\"label\":\"uk-text-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Recipes\\n\\t\\t \",\"classes\":[{\"name\":\"uk-heading-small\",\"label\":\"uk-heading-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"\\n\\t\\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-medium\",\"label\":\"uk-width-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-align-center\",\"label\":\"uk-align-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-clearfix\",\"label\":\"uk-clearfix\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"link\",\"content\":\"Show More Recipes\",\"classes\":[{\"name\":\"uk-display-inline\",\"label\":\"uk-display-inline\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\"}},{\"type\":\"text\",\"content\":\"\\n\\t\\t \",\"classes\":[{\"name\":\"uk-display-inline\",\"label\":\"uk-display-inline\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]}]}]}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-padding-large\",\"label\":\"uk-padding-large\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-2\",\"label\":\"uk-width-1-2\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-flex\",\"label\":\"uk-flex\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-flex-middle\",\"label\":\"uk-flex-middle\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-medium\",\"label\":\"uk-padding-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-flex-center\",\"label\":\"uk-flex-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-center\",\"label\":\"uk-text-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Books\\n\\t\\t \",\"classes\":[{\"name\":\"uk-heading-small\",\"label\":\"uk-heading-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"\\n\\t\\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-medium\",\"label\":\"uk-width-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-align-center\",\"label\":\"uk-align-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-clearfix\",\"label\":\"uk-clearfix\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"link\",\"content\":\"Show More Books\",\"classes\":[{\"name\":\"uk-display-inline\",\"label\":\"uk-display-inline\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\"}},{\"type\":\"text\",\"content\":\"\\n\\t\\t \",\"classes\":[{\"name\":\"uk-display-inline\",\"label\":\"uk-display-inline\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]}]}]}]}]}]},{\"tagName\":\"hr\",\"void\":true,\"content\":\"\"},{\"content\":\"\",\"classes\":[{\"name\":\"uk-margin-small-remove\",\"label\":\"uk-margin-small-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"iqljz\"},\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Restaurants Near You\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-large\",\"label\":\"uk-text-large\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"i53ze\"}},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"Very delicios places around your neighbourhood.\\n\\t\\t \",\"classes\":[{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"iyp9dj\"}}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-grid\",\"label\":\"uk-grid\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-expand\",\"label\":\"uk-width-expand\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-text-center\",\"label\":\"uk-text-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-grid\",\"label\":\"uk-grid\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-3\",\"label\":\"uk-width-1-3\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"text\",\"content\":\"\\n\\t\\t \",\"classes\":[{\"name\":\"uk-height-small\",\"label\":\"uk-height-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-border-rounded\",\"label\":\"uk-border-rounded\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-box-shadow-medium\",\"label\":\"uk-box-shadow-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small\",\"label\":\"uk-margin-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"content\":\"\",\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Kerala Chicken Curry\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"\\n\\t\\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-clearfix\",\"label\":\"uk-clearfix\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small-remove\",\"label\":\"uk-margin-small-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"link\",\"content\":\"By Sarah Elvis\",\"classes\":[{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-align-left\",\"label\":\"uk-align-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\"}}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-3\",\"label\":\"uk-width-1-3\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"text\",\"content\":\"\\n\\t\\t \",\"classes\":[{\"name\":\"uk-height-small\",\"label\":\"uk-height-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-border-rounded\",\"label\":\"uk-border-rounded\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-box-shadow-medium\",\"label\":\"uk-box-shadow-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small\",\"label\":\"uk-margin-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"content\":\"\",\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Kerala Chicken Curry\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"\\n\\t\\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-clearfix\",\"label\":\"uk-clearfix\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small-remove\",\"label\":\"uk-margin-small-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"link\",\"content\":\"By Sarah Elvis\",\"classes\":[{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-align-left\",\"label\":\"uk-align-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\"}}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-3\",\"label\":\"uk-width-1-3\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"text\",\"content\":\"\\n\\t\\t \",\"classes\":[{\"name\":\"uk-height-small\",\"label\":\"uk-height-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-border-rounded\",\"label\":\"uk-border-rounded\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-box-shadow-medium\",\"label\":\"uk-box-shadow-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small\",\"label\":\"uk-margin-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"content\":\"\",\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Kerala Chicken Curry\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"\\n\\t\\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-clearfix\",\"label\":\"uk-clearfix\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small-remove\",\"label\":\"uk-margin-small-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"type\":\"link\",\"content\":\"By Sarah Elvis\",\"classes\":[{\"name\":\"uk-margin-remove\",\"label\":\"uk-margin-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-align-left\",\"label\":\"uk-align-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\"}}]}]}]}]}]}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-container\",\"label\":\"uk-container\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small\",\"label\":\"uk-margin-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-medium\",\"label\":\"uk-padding-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-container-large\",\"label\":\"uk-container-large\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-margin-small-remove\",\"label\":\"uk-margin-small-remove\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-box-shadow-small\",\"label\":\"uk-box-shadow-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-border-rounded\",\"label\":\"uk-border-rounded\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-large\",\"label\":\"uk-padding-large\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"ilqj-2\"},\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-flex\",\"label\":\"uk-flex\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-flex-middle\",\"label\":\"uk-flex-middle\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-padding-medium\",\"label\":\"uk-padding-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-flex-center\",\"label\":\"uk-flex-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"im06m-2\"},\"components\":[{\"content\":\"\",\"classes\":[{\"name\":\"uk-padding-small\",\"label\":\"uk-padding-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-left\",\"label\":\"uk-text-left\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-center\",\"label\":\"uk-text-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"components\":[{\"tagName\":\"h1\",\"type\":\"text\",\"content\":\"Recipe Contest\\n\\t\\t \",\"classes\":[{\"name\":\"uk-heading-small\",\"label\":\"uk-heading-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-text-bold\",\"label\":\"uk-text-bold\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"tagName\":\"p\",\"type\":\"text\",\"content\":\"\\n\\t\\t Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in\\n\\t\\t \",\"classes\":[{\"name\":\"uk-text-small\",\"label\":\"uk-text-small\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-width-medium\",\"label\":\"uk-width-medium\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-align-center\",\"label\":\"uk-align-center\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false},{\"name\":\"uk-clearfix\",\"label\":\"uk-clearfix\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}]},{\"content\":\"\",\"classes\":[{\"name\":\"uk-width-1-1\",\"label\":\"uk-width-1-1\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"i101-2\"},\"components\":[{\"type\":\"link\",\"content\":\"How they work\",\"classes\":[{\"name\":\"uk-display-inline\",\"label\":\"uk-display-inline\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"href\":\"#\",\"id\":\"ihbt-2\"}},{\"type\":\"text\",\"content\":\"\\n\\t\\t \",\"classes\":[{\"name\":\"uk-display-inline\",\"label\":\"uk-display-inline\",\"type\":1,\"active\":true,\"private\":false,\"protected\":false}],\"attributes\":{\"id\":\"ik43h-2\"}}]}]}]}]}]}]}]}]","gjs-assets":"[]","gjs-css":"* { box-sizing: border-box; } body {margin: 0;}","gjs-styles":"[]"}
--------------------------------------------------------------------------------
/storage/save.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/uploads/images/0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ziaahsan/template-builder/5d7606d5d4f5a3f67abc0aa299cc3f0961503152/uploads/images/0.jpg
--------------------------------------------------------------------------------
/uploads/images/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ziaahsan/template-builder/5d7606d5d4f5a3f67abc0aa299cc3f0961503152/uploads/images/1.jpg
--------------------------------------------------------------------------------
/uploads/images/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ziaahsan/template-builder/5d7606d5d4f5a3f67abc0aa299cc3f0961503152/uploads/images/2.jpg
--------------------------------------------------------------------------------
/uploads/images/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ziaahsan/template-builder/5d7606d5d4f5a3f67abc0aa299cc3f0961503152/uploads/images/3.jpg
--------------------------------------------------------------------------------
/uploads/images/4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ziaahsan/template-builder/5d7606d5d4f5a3f67abc0aa299cc3f0961503152/uploads/images/4.jpg
--------------------------------------------------------------------------------
/uploads/images/5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ziaahsan/template-builder/5d7606d5d4f5a3f67abc0aa299cc3f0961503152/uploads/images/5.jpg
--------------------------------------------------------------------------------
/uploads/images/6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ziaahsan/template-builder/5d7606d5d4f5a3f67abc0aa299cc3f0961503152/uploads/images/6.jpg
--------------------------------------------------------------------------------
/uploads/preview/components.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ziaahsan/template-builder/5d7606d5d4f5a3f67abc0aa299cc3f0961503152/uploads/preview/components.gif
--------------------------------------------------------------------------------
/uploads/preview/preview.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ziaahsan/template-builder/5d7606d5d4f5a3f67abc0aa299cc3f0961503152/uploads/preview/preview.gif
--------------------------------------------------------------------------------
/uploads/preview/sidebar.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ziaahsan/template-builder/5d7606d5d4f5a3f67abc0aa299cc3f0961503152/uploads/preview/sidebar.PNG
--------------------------------------------------------------------------------
/uploads/preview/sidebar.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ziaahsan/template-builder/5d7606d5d4f5a3f67abc0aa299cc3f0961503152/uploads/preview/sidebar.gif
--------------------------------------------------------------------------------
/uploads/preview/trash_and_component_code.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ziaahsan/template-builder/5d7606d5d4f5a3f67abc0aa299cc3f0961503152/uploads/preview/trash_and_component_code.gif
--------------------------------------------------------------------------------