alchemy-chimera 0.5.4 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/CHANGELOG.md +39 -4
  2. package/assets/scripts/chimera/chimera.js +13 -288
  3. package/assets/stylesheets/chimera/chimera.scss +451 -0
  4. package/bootstrap.js +6 -302
  5. package/config/routes.js +53 -5
  6. package/controller/00-chimera_controller.js +16 -0
  7. package/controller/chimera_editor_controller.js +159 -614
  8. package/controller/chimera_static_controller.js +102 -9
  9. package/lib/chimera_config.js +138 -163
  10. package/model/model.js +1 -1
  11. package/package.json +8 -12
  12. package/view/chimera/dashboard.hwk +8 -0
  13. package/view/chimera/editor/index.hwk +20 -0
  14. package/view/chimera/sidebar.hwk +4 -0
  15. package/view/chimera/widgets.hwk +8 -0
  16. package/view/layouts/chimera_base.hwk +15 -0
  17. package/view/layouts/chimera_basics.hwk +15 -0
  18. package/view/layouts/chimera_body.hwk +24 -0
  19. package/assets/scripts/chimera/assoc_field.js +0 -311
  20. package/assets/scripts/chimera/boolean_field.js +0 -53
  21. package/assets/scripts/chimera/chimera_field.js +0 -622
  22. package/assets/scripts/chimera/chimera_field_wrapper.js +0 -558
  23. package/assets/scripts/chimera/date_field.js +0 -170
  24. package/assets/scripts/chimera/geopoint_field.js +0 -147
  25. package/assets/scripts/chimera/medium-button.js +0 -6
  26. package/assets/scripts/chimera/object_field.js +0 -51
  27. package/assets/scripts/chimera/page-editor.js +0 -3
  28. package/assets/scripts/chimera/password_field.js +0 -73
  29. package/assets/scripts/chimera/schema_field.js +0 -300
  30. package/assets/scripts/chimera/text_field.js +0 -119
  31. package/assets/scripts/rome/rome.js +0 -4978
  32. package/assets/scripts/vex/vex.dialog.js +0 -151
  33. package/assets/scripts/vex/vex.js +0 -193
  34. package/assets/stylesheets/chimera/chimera.less +0 -1075
  35. package/assets/stylesheets/chimera_old/chimera.less +0 -351
  36. package/assets/stylesheets/chimera_old/core.less +0 -315
  37. package/assets/stylesheets/chimera_old/font.less +0 -38
  38. package/assets/stylesheets/chimera_old/mixins.less +0 -35
  39. package/assets/stylesheets/chimera_old/page-editor.less +0 -23
  40. package/assets/stylesheets/rome/rome.less +0 -130
  41. package/assets/stylesheets/vex/vex-theme-bottom-right-corner.less +0 -613
  42. package/assets/stylesheets/vex/vex.default.less +0 -501
  43. package/assets/stylesheets/vex/vex.flat.less +0 -443
  44. package/assets/stylesheets/vex/vex.less +0 -320
  45. package/controller/chimera_page_controller.js +0 -14
  46. package/controller/chimera_settings_controller.js +0 -129
  47. package/controller/tasks_chimera_controller.js +0 -106
  48. package/helper/chimera_helper.js +0 -202
  49. package/lib/chimera_action_fields.js +0 -292
  50. package/lib/chimera_field/belongsto_chimera_field.js +0 -160
  51. package/lib/chimera_field/boolean_chimera_field.js +0 -19
  52. package/lib/chimera_field/date_chimera_field.js +0 -20
  53. package/lib/chimera_field/datetime_chimera_field.js +0 -20
  54. package/lib/chimera_field/enum_chimera_field.js +0 -131
  55. package/lib/chimera_field/geopoint_chimera_field.js +0 -20
  56. package/lib/chimera_field/habtm_chimera_field.js +0 -55
  57. package/lib/chimera_field/hasoneparent_chimera_field.js +0 -18
  58. package/lib/chimera_field/html_chimera_field.js +0 -20
  59. package/lib/chimera_field/object_chimera_field.js +0 -18
  60. package/lib/chimera_field/password_chimera_field.js +0 -18
  61. package/lib/chimera_field/schema_chimera_field.js +0 -149
  62. package/lib/chimera_field/text_chimera_field.js +0 -20
  63. package/lib/chimera_field/time_chimera_field.js +0 -18
  64. package/lib/chimera_field.js +0 -208
  65. package/model/setting_model.js +0 -51
  66. package/public/chimera/codedor.svg +0 -28
  67. package/view/chimera/dashboard.ejs +0 -5
  68. package/view/chimera/editor/add.ejs +0 -32
  69. package/view/chimera/editor/edit.ejs +0 -33
  70. package/view/chimera/editor/index.ejs +0 -87
  71. package/view/chimera/editor/remove.ejs +0 -23
  72. package/view/chimera/editor/view.ejs +0 -54
  73. package/view/chimera/elements/editor_actions.ejs +0 -4
  74. package/view/chimera/elements/empty +0 -0
  75. package/view/chimera/field_wrappers/_entries.ejs +0 -91
  76. package/view/chimera/field_wrappers/_wrapper.ejs +0 -82
  77. package/view/chimera/field_wrappers/date_edit.ejs +0 -23
  78. package/view/chimera/field_wrappers/date_list.ejs +0 -3
  79. package/view/chimera/field_wrappers/date_view.ejs +0 -16
  80. package/view/chimera/field_wrappers/default_edit.ejs +0 -22
  81. package/view/chimera/field_wrappers/default_list.ejs +0 -3
  82. package/view/chimera/field_wrappers/default_peek.ejs +0 -3
  83. package/view/chimera/field_wrappers/default_view.ejs +0 -14
  84. package/view/chimera/field_wrappers/geopoint_edit.ejs +0 -25
  85. package/view/chimera/field_wrappers/geopoint_list.ejs +0 -5
  86. package/view/chimera/field_wrappers/geopoint_view.ejs +0 -18
  87. package/view/chimera/field_wrappers/schema_edit.ejs +0 -19
  88. package/view/chimera/field_wrappers/text_edit.ejs +0 -22
  89. package/view/chimera/field_wrappers/text_list.ejs +0 -1
  90. package/view/chimera/fields/belongsto_edit.ejs +0 -4
  91. package/view/chimera/fields/belongsto_list.ejs +0 -1
  92. package/view/chimera/fields/belongsto_peek.ejs +0 -1
  93. package/view/chimera/fields/boolean_edit.ejs +0 -17
  94. package/view/chimera/fields/boolean_list.ejs +0 -3
  95. package/view/chimera/fields/boolean_view.ejs +0 -3
  96. package/view/chimera/fields/date_edit.ejs +0 -14
  97. package/view/chimera/fields/date_list.ejs +0 -9
  98. package/view/chimera/fields/date_peek.ejs +0 -9
  99. package/view/chimera/fields/date_view.ejs +0 -9
  100. package/view/chimera/fields/datetime_edit.ejs +0 -24
  101. package/view/chimera/fields/datetime_list.ejs +0 -9
  102. package/view/chimera/fields/datetime_view.ejs +0 -10
  103. package/view/chimera/fields/default_edit.ejs +0 -10
  104. package/view/chimera/fields/default_list.ejs +0 -15
  105. package/view/chimera/fields/default_view.ejs +0 -1
  106. package/view/chimera/fields/enum_edit.ejs +0 -10
  107. package/view/chimera/fields/geopoint_edit.ejs +0 -10
  108. package/view/chimera/fields/geopoint_list.ejs +0 -9
  109. package/view/chimera/fields/geopoint_view.ejs +0 -9
  110. package/view/chimera/fields/habtm_edit.ejs +0 -5
  111. package/view/chimera/fields/hasoneparent_edit.ejs +0 -6
  112. package/view/chimera/fields/hasoneparent_list.ejs +0 -1
  113. package/view/chimera/fields/object_edit.ejs +0 -8
  114. package/view/chimera/fields/password_edit.ejs +0 -12
  115. package/view/chimera/fields/schema_edit.ejs +0 -14
  116. package/view/chimera/fields/text_edit.ejs +0 -5
  117. package/view/chimera/fields/text_list.ejs +0 -9
  118. package/view/chimera/fields/text_view.ejs +0 -3
  119. package/view/chimera/fields/time_edit.ejs +0 -15
  120. package/view/chimera/fields/time_list.ejs +0 -9
  121. package/view/chimera/fields/time_view.ejs +0 -9
  122. package/view/chimera/page/edit.ejs +0 -18
  123. package/view/chimera/page_editor.ejs +0 -5
  124. package/view/chimera/sidebar.ejs +0 -40
  125. package/view/chimera/tasks/index.ejs +0 -114
  126. package/view/layouts/chimera.ejs +0 -12
  127. package/view/layouts/chimera_base.ejs +0 -11
  128. package/view/layouts/chimera_body.ejs +0 -43
@@ -0,0 +1,451 @@
1
+ @import "reset.scss";
2
+ @import "fonts/roboto.scss";
3
+
4
+ body {
5
+ font-family: 'Roboto', sans-serif;
6
+ }
7
+
8
+ .chimera-wrapper {
9
+ --sidebar-bg-color: #4a4e58;
10
+ --text-color: #475466;
11
+ --main-bg-color: #ebedf0;
12
+ --main-border-color: #dadee0;
13
+
14
+ --button-bg-color: #F4F5F9;
15
+ --button-bg-hover-color: #e7e9f2;
16
+ --button-text-color: #3699FF;
17
+
18
+ --notification-bg-color: #4a4e58;
19
+ --notification-text-color: #f4f5f9;
20
+ --notification-border-color: #dadee0;
21
+
22
+ --color-title: #475466;
23
+ --color-box-border: #DADEE0;
24
+ --color-active: #3699FF;
25
+ --color-text: #475466;
26
+ --color-input-border: #CCD7E6;
27
+
28
+ display: flex;
29
+ min-height: 100vh;
30
+ width: 100%;
31
+ color: var(--text-color);
32
+ }
33
+
34
+ .btn {
35
+ //--button-bg-color: var(--context-background-color, --button-bg-color);
36
+ --local-text-color: var(--context-color, var(--button-text-color));
37
+ --local-border-color: var(--context-border-color, var(--button-border-color));
38
+
39
+ background-color: var(--button-bg-color);
40
+ color: var(--local-text-color);
41
+ border: 1px solid;
42
+ border-color: var(--local-border-color);
43
+
44
+ text-decoration: none;
45
+ line-height: 2rem;
46
+ min-width: 10rem;
47
+ text-align: center;
48
+ border-radius: 2px;
49
+ font-weight: 500;
50
+ cursor: pointer;
51
+
52
+ &:hover {
53
+ background-color: var(--button-bg-hover-color);
54
+ //filter: brightness(1.05);
55
+ }
56
+ }
57
+
58
+ .primary {
59
+ --context-color: #084298;
60
+ --context-background-color: #cfe2ff;
61
+ --context-border-color: #b6d4fe;
62
+ }
63
+
64
+ .secondary {
65
+ --context-color: #41464b;
66
+ --context-background-color: #e2e3e5;
67
+ --context-border-color: #d3d6d8;
68
+ }
69
+
70
+ .success {
71
+ --context-color: #0f5132;
72
+ --context-background-color: #d1e7dd;
73
+ --context-border-color: #badbcc;
74
+ }
75
+
76
+ .danger,
77
+ .error {
78
+ --context-color: #842029;
79
+ --context-background-color: #f8d7da;
80
+ --context-border-color: #f5c2c7;
81
+ }
82
+
83
+ .warning {
84
+ --context-color: #664d03;
85
+ --context-background-color: #fff3cd;
86
+ --context-border-color: #ffecb5;
87
+ }
88
+
89
+ .info {
90
+ --context-color: #055160;
91
+ --context-background-color: #cff4fc;
92
+ --context-border-color: #b6effb;
93
+ }
94
+
95
+ .light {
96
+ --context-color: #636464;
97
+ --context-background-color: #fefefe;
98
+ --context-border-color: #fdfdfe;
99
+ }
100
+
101
+ .dark {
102
+ --context-color: #141619;
103
+ --context-background-color: #d3d3d4;
104
+ --context-border-color: #bcbebf;
105
+ }
106
+
107
+ .alert-box {
108
+ color: var(--context-color);
109
+ background-color: var(--context-background-color);
110
+ border: 1px solid;
111
+ border-color: var(--context-border-color);
112
+ padding: 1rem;
113
+ margin: 1rem 0 1rem;
114
+ }
115
+
116
+ .chimera-sidebar {
117
+ background-color: var(--sidebar-bg-color);
118
+ flex: 0 0 14rem;
119
+ display: flex;
120
+ flex-flow: column;
121
+
122
+ .sidebar-widgets {
123
+ position: sticky;
124
+ top: 1rem;
125
+ }
126
+ }
127
+
128
+ .chimera-content {
129
+ background-color: var(--main-bg-color);
130
+ flex: 1 0;
131
+ display: flex;
132
+ flex-flow: column;
133
+
134
+ .chimera-page-header {
135
+ border-color: var(--main-border-color);
136
+ border-style: solid;
137
+ border-width: 0 0 1px;
138
+ background-color: white;
139
+ }
140
+ }
141
+
142
+ .chimera-page-header {
143
+ height: 4rem;
144
+ display: flex;
145
+ padding: 0.8rem;
146
+ justify-content: space-between;
147
+
148
+ > * {
149
+ display: flex;
150
+ align-self: center;
151
+ }
152
+
153
+ .page-title {
154
+ font-size: 1.1rem;
155
+ font-weight: bold;
156
+ }
157
+
158
+ .page-actions {
159
+
160
+ }
161
+ }
162
+
163
+ .chimera-main {
164
+ flex: 1;
165
+ padding: 0.5rem;
166
+
167
+ &[data-he-template="chimera/widgets"] {
168
+ h1 {
169
+ padding-top: 0;
170
+ }
171
+ }
172
+ }
173
+
174
+ .main-widgets {
175
+ height: 100%;
176
+ }
177
+
178
+ .chimera-editor-widgets {
179
+ padding: 1rem;
180
+
181
+ alchemy-widget[type="alchemy_field"] {
182
+ margin-bottom: 1rem;
183
+ }
184
+
185
+ .form-field-info label,
186
+ .form-field-info alchemy-label {
187
+ display: block;
188
+ font-size: 1.2rem;
189
+ }
190
+ }
191
+
192
+ alchemy-widgets-navigation {
193
+ --border-color: #333333;
194
+
195
+ ul {
196
+ padding-left: 0;
197
+
198
+ li {
199
+ list-style: none;
200
+ border-bottom: 1px solid var(--border-color);
201
+ }
202
+
203
+ li:first-of-type {
204
+ border-top: 1px solid var(--border-color);
205
+ }
206
+ }
207
+
208
+ alchemy-widget[type="link"] {
209
+ width: 100%;
210
+ height: 3rem;
211
+ display: flex;
212
+
213
+ a {
214
+ width: 100%;
215
+ align-self: stretch;
216
+ display: flex;
217
+ align-items: center;
218
+ padding-left: 1rem;
219
+ text-decoration: none;
220
+ color: white;
221
+
222
+ &:hover,
223
+ &.active-link {
224
+ background-color: rgba(190, 190, 190, 0.5);
225
+ }
226
+ }
227
+ }
228
+ }
229
+
230
+ .chimera-main[data-he-template="chimera/widgets"] {
231
+ padding: 1rem;
232
+ }
233
+
234
+ .chimera-input-field {
235
+ padding: 0px 12px;
236
+ border: 1px solid var(--color-input-border);
237
+ color: var(--text-color);
238
+ -webkit-appearance: none;
239
+ height: 2rem;
240
+ }
241
+
242
+ .page-notification {
243
+ .notification {
244
+ border: 1px solid var(--notification-border-color);
245
+ background: var(--notification-bg-color);
246
+ color: var(--notification-text-color);
247
+ border-radius: 5px;
248
+ padding: 0.5rem 0.8rem;
249
+ }
250
+ }
251
+
252
+ .removing {
253
+ transition: opacity 2s;
254
+ opacity: 0;
255
+ }
256
+
257
+ alchemy-table .aft-column-filters input {
258
+ @extend .chimera-input-field;
259
+ width: 100%;
260
+ }
261
+
262
+ alchemy-form {
263
+ .error-area:not(:empty) {
264
+ @extend .error, .alert-box;
265
+ margin-top: 0;
266
+ }
267
+ }
268
+
269
+ alchemy-field {
270
+ border: 1px solid var(--color-box-border);
271
+ background-color: white;
272
+ border-radius: 4px;
273
+
274
+ // In case something goes wrong:
275
+ min-height: 1rem;
276
+
277
+ alchemy-label {
278
+ padding-left: 1rem;
279
+ line-height: 3rem;
280
+ font-size: 16px;
281
+ font-weight: 500;
282
+ color: var(--color-title);
283
+ border-bottom: 1px solid var(--color-box-border);
284
+ }
285
+
286
+ alchemy-field-translatable {
287
+ .prefix-buttons {
288
+ width: 100%;
289
+ border-bottom: 1px solid var(--color-box-border);
290
+ display: flex;
291
+
292
+ button {
293
+ flex: 1;
294
+ font-size: 16px;
295
+ font-weight: 500;
296
+ color: var(--button-text-color);
297
+ letter-spacing: 0px;
298
+ background: transparent;
299
+ border: none;
300
+ cursor: pointer;
301
+
302
+ height: 3rem;
303
+ display: flex;
304
+ flex-flow: column;
305
+ justify-content: center;
306
+ align-items: center;
307
+
308
+ &.active {
309
+ box-shadow: inset 0 -2px var(--color-active);
310
+ }
311
+
312
+ &:hover {
313
+ background-color: var(--button-bg-hover-color);
314
+ }
315
+ }
316
+ }
317
+ }
318
+
319
+ .field {
320
+ display: flex;
321
+ padding: 1rem;
322
+ flex: 1;
323
+
324
+ > * {
325
+ flex: 1;
326
+ }
327
+
328
+ > alchemy-widget {
329
+ border: 1px solid var(--color-input-border);
330
+ padding: 0 12px;
331
+ }
332
+ }
333
+
334
+ .field {
335
+ input[type="text"],
336
+ input[type="number"],
337
+ input[type="color"],
338
+ input[type="datetime-local"],
339
+ input[type="password"] {
340
+ @extend .chimera-input-field;
341
+ height: 3rem;
342
+ }
343
+
344
+ textarea {
345
+ @extend .chimera-input-field;
346
+ min-height: 5rem;
347
+ padding: 1rem;
348
+ }
349
+
350
+ input[type="color"] {
351
+ background-color: transparent;
352
+ border: none;
353
+ padding: 0;
354
+ }
355
+ }
356
+ }
357
+
358
+ alchemy-field-array {
359
+ .add-entry {
360
+ @extend .btn;
361
+ margin: 1rem 0 0 1rem;
362
+ }
363
+
364
+ button.remove {
365
+ @extend .btn;
366
+ @extend .danger;
367
+ min-width: 6rem;
368
+ margin: 0 1rem 1rem 0;
369
+ }
370
+
371
+ .entries {
372
+ margin-top: 0.5rem;
373
+ }
374
+
375
+ alchemy-field-array-entry:not(:last-of-type) {
376
+ //border-bottom: 1px solid gray;
377
+ position: relative;
378
+
379
+ &::after {
380
+ display: block;
381
+ content: " ";
382
+ background-color: lightgray;
383
+ position: absolute;
384
+ bottom: 0;
385
+ height: 1px;
386
+ left: 50%;
387
+ transform: translateX(-50%);
388
+ width: 80%;
389
+ }
390
+ }
391
+
392
+ alchemy-field-array-entry:not(:first-of-type) {
393
+ margin-top: 1rem;
394
+ }
395
+ }
396
+
397
+ .chimera-editor-widgets {
398
+
399
+ alchemy-widgets-column.toc-col {
400
+ flex: 1 1;
401
+ }
402
+
403
+ table-of-contents[elements-selector="alchemy-field"] {
404
+ align-self: start;
405
+ top: 2rem;
406
+ position: sticky;
407
+
408
+ ol {
409
+ list-style: none;
410
+ margin: 0 0 0 2rem;
411
+ padding: 0;
412
+
413
+ li {
414
+ a {
415
+ display: block;
416
+ line-height: 2rem;
417
+ border-bottom: 1px solid #aaa;
418
+ text-decoration: none;
419
+ opacity: 0.5;
420
+ color: #0070e4;
421
+ }
422
+ }
423
+
424
+ li a.visible {
425
+ opacity: 1;
426
+ }
427
+ }
428
+ }
429
+ }
430
+
431
+ alchemy-field-schema {
432
+ alchemy-field {
433
+ border: none;
434
+ margin-bottom: 1rem;
435
+ }
436
+ }
437
+
438
+ .aft-actions {
439
+ a {
440
+ color: var(--button-text-color);
441
+ background-color: var(--button-bg-color);
442
+ padding: 0.5rem;
443
+ border-radius: 6px;
444
+ margin: 0.2rem;
445
+ display: inline-block;
446
+
447
+ &:hover {
448
+ background-color: var(--button-bg-hover-color);
449
+ }
450
+ }
451
+ }