@concretecms/bedrock 1.3.7 → 1.4.1

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 (105) hide show
  1. package/.eslintrc.yml +2 -0
  2. package/assets/account/js/frontend/components/AvatarCropper.vue +159 -0
  3. package/assets/account/js/frontend.js +1 -1
  4. package/assets/account/scss/frontend/_frontend.scss +2 -0
  5. package/assets/account/scss/frontend/avatar/_avatar-cropper.scss +82 -0
  6. package/assets/account/scss/frontend/avatar/_avatar.scss +6 -0
  7. package/assets/bedrock/scss/_frontend.scss +0 -1
  8. package/assets/calendar/js/backend/duration.js +13 -13
  9. package/assets/calendar/js/vendor/fullcalendar.js +1 -0
  10. package/assets/cms/components/Announcement/Action/ExternalLinkAction.vue +25 -0
  11. package/assets/cms/components/Announcement/Action/GuideAction.vue +36 -0
  12. package/assets/cms/components/Announcement/Action/VideoAction.vue +31 -0
  13. package/assets/cms/components/Announcement/Broadcast.vue +63 -0
  14. package/assets/cms/components/Announcement/Button/ExternalLinkButton.vue +26 -0
  15. package/assets/cms/components/Announcement/Header/Header.vue +33 -0
  16. package/assets/cms/components/Announcement/Item/Item.vue +50 -0
  17. package/assets/cms/components/Announcement/Modal/Modal.vue +77 -0
  18. package/assets/cms/components/Announcement/Slide/CollectSiteInformationSlide.vue +61 -0
  19. package/assets/cms/components/Announcement/Slide/FeatureSlide.vue +81 -0
  20. package/assets/cms/components/Announcement/Slide/WelcomeSlide.vue +87 -0
  21. package/assets/cms/components/Help/Modal.vue +48 -0
  22. package/assets/cms/components/Image/ThumbnailEditor.vue +117 -0
  23. package/assets/cms/components/RunningProcessList.vue +6 -1
  24. package/assets/cms/components/customizer/FontFamilyPageCustomizerWidget.vue +27 -7
  25. package/assets/cms/components/file-manager/Chooser/FileManager.vue +0 -1
  26. package/assets/cms/components/file-manager/Chooser/FolderBookmark.vue +0 -1
  27. package/assets/cms/components/file-manager/Chooser.vue +1 -1
  28. package/assets/cms/components/form/ConcreteAjaxSelect.vue +173 -0
  29. package/assets/cms/components/form/ConcreteExpressEntrySelect.vue +74 -0
  30. package/assets/cms/components/form/ConcreteFileDirectoryInput.vue +28 -26
  31. package/assets/cms/components/form/ConcreteFileInput.vue +17 -5
  32. package/assets/cms/components/form/ConcreteGroupInput.vue +134 -0
  33. package/assets/cms/components/form/ConcreteLocaleSelect.vue +58 -0
  34. package/assets/cms/components/form/ConcreteOptionSelect.vue +92 -0
  35. package/assets/cms/components/form/ConcretePageSelect.vue +67 -0
  36. package/assets/cms/components/form/ConcreteSelect.vue +75 -0
  37. package/assets/cms/components/form/ConcreteThemeColorInput.vue +19 -14
  38. package/assets/cms/components/form/ConcreteUserInput.vue +24 -4
  39. package/assets/cms/components/form/ConcreteUserSelect.vue +126 -0
  40. package/assets/cms/components/form/IconSelector.vue +14 -5
  41. package/assets/cms/components/form/PasswordInput.vue +141 -24
  42. package/assets/cms/components/groups/Chooser.vue +6 -5
  43. package/assets/cms/components/index.js +24 -0
  44. package/assets/cms/components/toolbar/ConcreteToolbarSiteList.vue +62 -0
  45. package/assets/cms/components/user/Chooser/Search.vue +5 -0
  46. package/assets/cms/components/user/Chooser/Users.vue +6 -2
  47. package/assets/cms/components/user/Chooser.vue +9 -3
  48. package/assets/cms/js/ajax-request/base.js +13 -4
  49. package/assets/cms/js/alert.js +2 -1
  50. package/assets/cms/js/base.js +3 -10
  51. package/assets/cms/js/edit-mode/area.js +0 -35
  52. package/assets/cms/js/edit-mode/block.js +27 -0
  53. package/assets/cms/js/edit-mode/containerblock.js +33 -3
  54. package/assets/cms/js/edit-mode/editmode.js +12 -0
  55. package/assets/cms/js/edit-mode/layout.js +56 -0
  56. package/assets/cms/js/edit-mode/style-customizer/style-customizer.js +0 -1
  57. package/assets/cms/js/file-manager/uploader.js +30 -206
  58. package/assets/cms/js/help/help.js +11 -8
  59. package/assets/cms/js/in-context-menu.js +5 -0
  60. package/assets/cms/js/jquery-vue.js +22 -0
  61. package/assets/cms/js/legacy-dialog.js +74 -65
  62. package/assets/cms/js/modal.js +73 -0
  63. package/assets/cms/js/panels.js +8 -0
  64. package/assets/cms/js/search/base.js +0 -18
  65. package/assets/cms/js/search/field-selector.js +6 -14
  66. package/assets/cms/js/select-combo-box.js +2 -0
  67. package/assets/cms/js/sitemap/sitemap-selector.js +2 -2
  68. package/assets/cms/js/sitemap/sitemap.js +15 -20
  69. package/assets/cms/js/toolbar.js +25 -2
  70. package/assets/cms/js/tree.js +7 -7
  71. package/assets/cms/js/users/group-manager.js +55 -0
  72. package/assets/cms/js/users/user-manager.js +2 -1
  73. package/assets/cms/js/users.js +1 -0
  74. package/assets/cms/js/vue/Manager.js +6 -3
  75. package/assets/cms/scss/_base.scss +2 -8
  76. package/assets/cms/scss/_cards.scss +7 -0
  77. package/assets/cms/scss/_file-manager.scss +1 -0
  78. package/assets/cms/scss/_file-uploader.scss +13 -3
  79. package/assets/cms/scss/_help.scss +11 -2
  80. package/assets/cms/scss/_item-selector.scss +10 -0
  81. package/assets/cms/scss/_layouts.scss +16 -0
  82. package/assets/cms/scss/_page-areas.scss +524 -245
  83. package/assets/cms/scss/_popover.scss +5 -0
  84. package/assets/cms/scss/_select-combo-box.scss +18 -0
  85. package/assets/cms/scss/_toolbar.scss +5 -14
  86. package/assets/cms/scss/_transitions.scss +13 -0
  87. package/assets/cms/scss/_variables.scss +18 -7
  88. package/assets/cms/scss/bootstrap/_reboot-tags.scss +17 -32
  89. package/assets/cms/scss/bootstrap/_reboot.scss +17 -7
  90. package/assets/cms/scss/bootstrap/_root-modified.scss +41 -20
  91. package/assets/cms/scss/file-manager/_thumbnail-image-editor.scss +45 -0
  92. package/assets/cms/scss/panels/_help.scss +0 -10
  93. package/assets/staging/scss/frontend/_frontend.scss +12 -0
  94. package/assets/staging/scss/frontend.scss +4 -0
  95. package/package.json +9 -9
  96. package/assets/account/js/frontend/components/Avatar/Avatar.js +0 -270
  97. package/assets/account/js/frontend/components/Avatar/Avatar.scss +0 -17
  98. package/assets/account/js/frontend/components/Avatar/Avatar.vue +0 -18
  99. package/assets/account/js/frontend/components/Avatar/Cropper.js +0 -202
  100. package/assets/account/js/frontend/components/Avatar/Cropper.scss +0 -136
  101. package/assets/account/js/frontend/components/Avatar/Cropper.vue +0 -40
  102. package/assets/bedrock/scss/_theme-grid.scss +0 -7
  103. package/assets/cms/js/edit-mode/style-customizer/inline-toolbar.js +0 -279
  104. package/assets/cms/js/modifiable-ajax-bootstrap-select.js +0 -78
  105. package/assets/cms/js/modifiable-bootstrap-select.js +0 -112
@@ -1,94 +1,64 @@
1
- /* stylelint-disable value-no-vendor-prefix, function-url-quotes */
2
- /**
3
- * Highlighter
4
- */
5
-
6
- div#ccm-menu-click-proxy {
7
- background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
8
- cursor: pointer;
9
- height: 0;
10
- opacity: 0;
11
- position: absolute;
12
- width: 0;
13
- z-index: $index-level-in-context-click-proxy;
14
- }
15
-
16
- div#ccm-menu-highlighter {
17
- background-color: transparent;
18
- height: 0;
19
- position: absolute;
20
- transition: background-color 0.5s cubic-bezier(0.19, 1, 0.22, 1);
21
- width: 0;
22
- z-index: $index-level-in-context-menu-highlighter;
23
- }
1
+ $concrete-element-spacing-y: 50px;
2
+
3
+ $concrete-area-border: #e6e6e6;
4
+ $concrete-area-border-active: $green;
5
+ $concrete-area-handle-bg: #fff;
6
+ $concrete-area-handle-active-bg: $green;
7
+ $concrete-area-handle-hover-bg: $dropdown-link-hover-bg;
8
+ $concrete-area-handle: #888;
9
+ $concrete-area-handle-hover: $green;
10
+
11
+
12
+ $concrete-global-area-border: rgba(168, 193, 205, 0.5);
13
+ $concrete-global-area-border-active: $blue;
14
+ $concrete-global-area-handle-bg: #e3f2f8;
15
+ $concrete-global-area-handle-active-bg: $blue;
16
+ $concrete-global-area-handle-hover: $blue;
17
+ $concrete-global-area-handle-hover-bg: $concrete-area-handle-hover-bg;
18
+ $concrete-global-area-handle-border-active: $blue;
19
+
20
+ $concrete-layout-area-border-outer: #eee1d4;
21
+ $concrete-layout-area-border: #eee1d4;
22
+ $concrete-layout-area-border-active: #f8ae67;
23
+ $concrete-layout-area-handle-bg: #faf2ec;
24
+ $concrete-layout-area-handle-hover: #7f5023;
25
+ $concrete-layout-area-handle-hover-bg: #fae8db;
26
+ $concrete-layout-area-handle-active-bg: #f39b43;
27
+
28
+ $concrete-container-area-border-outer: #e6ceef;
29
+ $concrete-container-area-border: #e6ceef;
30
+ $concrete-container-area-border-active: #b45fc6;
31
+ $concrete-container-area-handle-bg: #fcf3ff;
32
+ $concrete-container-area-handle-hover: #725278;
33
+ $concrete-container-area-handle-hover-bg: #f6defc;
34
+ $concrete-container-area-handle-active-bg: #b45fc6;
35
+
36
+ $concrete-block-hover-bg: rgb(128, 128, 128);
37
+ $concrete-block-active-border: #59ec59;
38
+ $concrete-global-area-block-active-border: #80d0ec;
39
+ $concrete-block-active-bg: #59ec59;
40
+ $concrete-global-area-block-active-bg: rgb(128, 208, 236);
41
+
42
+ $concrete-inline-icon-link: #666;
43
+ $concrete-notch-box-shadow: 0 -1px 1px 0 rgba(65, 69, 73, 0.3), 0 -1px 3px 1px rgba(65, 69, 73, 0.15);
44
+ $concrete-empty-area-highlight: #ffff76;
45
+ $concrete-drag-area-bg: rgba(255, 255, 118, 0.3);
46
+ $concrete-drag-area-active-bg: rgba(89, 236, 89, 0.4);
47
+ $concrete-drag-area-active-border: $blue;
48
+ $concrete-drag-area-active-shadow: rgba(74, 144, 226, 0.7);
24
49
 
25
50
  /**
26
- * Blocks AND areas
27
- */
28
- div.ccm-block-edit,
29
- div.ccm-area,
30
- div.ccm-area-disabled {
31
- @include clearfix();
32
- opacity: 1;
33
- position: relative;
34
- }
35
-
36
- /**
37
- * sorting blocks in page
38
- */
39
- div.ccm-block-type-sorting {
40
- background-color: rgba(128, 128, 128, 0.1);
41
- border: 1px solid $gray-700;
42
- box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.5);
43
- overflow: hidden;
44
- padding: 10px;
45
- transform: rotate(5 deg);
46
- }
47
-
48
- /**
49
- * Blocks
50
- */
51
-
52
- div.ccm-block-edit {
53
- @include clearfix();
54
- min-height: 16px;
55
- opacity: 1;
56
- outline: 1px solid transparent;
57
- outline-offset: -1px;
58
- position: relative;
59
-
60
- transition: outline-color 0.5 s cubic-bezier(0.19, 1, 0.22, 1);
61
- }
62
-
63
- div.ccm-block-edit.ccm-menu-item-hover,
64
- div.ccm-block-edit.ccm-block-highlight {
65
- outline: 1px solid #59ec59;
66
-
67
- > div.ccm-custom-style-container > ul.ccm-edit-mode-inline-commands,
68
- > ul.ccm-edit-mode-inline-commands {
69
- float: none;
70
- list-style-type: none;
71
- margin: 0 !important;
72
- opacity: 1;
73
- }
74
- }
75
-
76
- div.ccm-global-area {
77
- div.ccm-block-edit.ccm-menu-item-hover,
78
- div.ccm-block-edit.ccm-block-highlight {
79
- outline: 1px solid #80d0ec;
80
- }
81
- }
82
-
83
- /**
84
- * Areas
51
+ * Areas Basics
85
52
  */
86
-
87
53
  div.ccm-area {
88
- outline: 1px solid transparent;
89
- outline-offset: -1px;
90
- /* margin-bottom: 50px; */
91
- transition: outline-color 0.5 s cubic-bezier(0.19, 1, 0.22, 1);
54
+ border: 2px solid $concrete-area-border;
55
+ border-radius: 2px;
56
+ margin-bottom: $concrete-element-spacing-y;
57
+ transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1);
58
+
59
+ .ccm-area-block-list {
60
+ transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1);
61
+ }
92
62
 
93
63
  /**
94
64
  * draggable blocks into area
@@ -114,94 +84,121 @@ div.ccm-area {
114
84
 
115
85
  }
116
86
 
117
- div.ccm-area:hover,
118
- div.ccm-area.ccm-parent-menu-item-hover,
119
- div.ccm-area.ccm-parent-menu-item-active,
120
- div.ccm-area.ccm-area-accepts-blocks,
121
- div.ccm-area.ccm-area-highlight,
122
- div.ccm-area.ccm-menu-item-hover {
123
- outline: 1px solid #e6e6e6;
124
-
125
- > div.ccm-area-footer {
126
- display: block;
127
- opacity: 1;
128
- }
129
- }
130
-
131
87
  div.ccm-area-footer {
132
- bottom: 0;
88
+ bottom: -2px;
133
89
  left: 0;
134
90
  max-width: 100%;
135
- opacity: 0;
136
- padding-left: 20px;
137
91
  position: absolute;
92
+ text-align: center;
138
93
  transform: translateY(100%);
139
- transition: opacity 0.5 s cubic-bezier(0.19, 1, 0.22, 1);
140
- white-space: nowrap;
141
- //padding-top: 15px;
94
+ transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1);
95
+ width: 100%;
142
96
  z-index: $index-level-in-context-area-handle;
143
97
 
144
98
  div.ccm-area-footer-handle {
145
- background-color: #f5f5f5;
146
- border-bottom: 1px solid #ccc;
147
- border-left: 1px solid #ccc;
148
- border-right: 1px solid #ccc;
149
- color: #666;
150
- display: inline-block;
151
- font-size: $font-size-base !important;
99
+ background-color: #fff;
100
+ border-bottom-left-radius: 3px;
101
+ border-bottom-right-radius: 3px;
102
+ box-shadow: $popover-box-shadow;
103
+ color: $concrete-area-handle;
104
+ display: inline-flex;
105
+ font-size: 12px;
106
+ font-weight: bold;
107
+ line-height: 12px;
108
+ margin-left: auto;
109
+ margin-right: auto;
152
110
  max-width: 100%;
153
- padding: 8px 15px;
111
+ padding: 8px 12px;
112
+ text-transform: uppercase;
113
+ transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1);
154
114
 
155
- > span {
156
- display: block;
157
- overflow: hidden;
158
- text-overflow: ellipsis;
115
+ i {
116
+ margin-right: 6px;
159
117
  }
160
118
 
161
- i {
162
- vertical-align: middle;
119
+ &.ccm-menu-item-hover {
120
+ background-color: $concrete-area-handle-hover-bg;
121
+ color: $concrete-area-handle-hover;
122
+ }
123
+ }
124
+ }
125
+
126
+ div.ccm-global-area {
127
+ border-color: $concrete-global-area-border;
128
+
129
+ div.ccm-area-footer {
130
+ div.ccm-area-footer-handle {
131
+ background-color: $concrete-global-area-handle-bg;
132
+
133
+ &.ccm-menu-item-hover {
134
+ background-color: $concrete-global-area-handle-hover-bg;
135
+ color: $concrete-global-area-handle-hover;
136
+ }
163
137
  }
164
138
  }
165
139
  }
166
140
 
167
141
  /**
168
- * Hovering over areas
142
+ * Layout Basics
169
143
  */
170
- div.ccm-menu-item-hover {
171
- > div.ccm-area-footer {
172
- > div.ccm-area-footer-handle {
173
- span {
174
- opacity: 1 !important;
144
+ div.ccm-block-edit.ccm-block-edit-layout {
145
+ margin-bottom: $concrete-element-spacing-y / 2;
146
+ outline-color: $concrete-layout-area-border-outer;
147
+ padding: ($concrete-element-spacing-y / 2) 0;
148
+ }
149
+
150
+ div.ccm-layout-area {
151
+ border-color: $concrete-layout-area-border;
152
+ margin-bottom: ($concrete-element-spacing-y / 2);
153
+
154
+ div.ccm-area-footer {
155
+ div.ccm-area-footer-handle {
156
+ background-color: $concrete-layout-area-handle-bg;
157
+
158
+ &.ccm-menu-item-hover {
159
+ background-color: $concrete-layout-area-handle-hover-bg;
160
+ color: $concrete-layout-area-handle-hover;
175
161
  }
176
162
  }
177
163
  }
178
164
  }
179
165
 
180
166
  /**
181
- * Empty areas
167
+ * Container Basics
182
168
  */
183
- div.ccm-area[data-total-blocks='0'] {
184
- min-height: 50px;
169
+ div.ccm-block-edit.ccm-block-edit-container {
170
+ margin-bottom: $concrete-element-spacing-y / 2;
171
+ outline-color: $concrete-container-area-border-outer;
172
+ padding: ($concrete-element-spacing-y / 2) 0;
173
+ }
185
174
 
186
- outline: 1px solid #e6e6e6;
187
- outline-offset: -1px;
175
+ div.ccm-container-area {
176
+ border-color: $concrete-container-area-border;
177
+ margin-bottom: ($concrete-element-spacing-y / 2);
178
+
179
+ div.ccm-area-footer {
180
+ div.ccm-area-footer-handle {
181
+ background-color: $concrete-container-area-handle-bg;
188
182
 
183
+ &.ccm-menu-item-hover {
184
+ background-color: $concrete-container-area-handle-hover-bg;
185
+ color: $concrete-container-area-handle-hover;
186
+ }
187
+ }
188
+ }
189
189
  }
190
190
 
191
191
  /**
192
- * Empty areas - firefox stupidity
192
+ * Empty areas
193
193
  */
194
- @-moz-document url-prefix() {
195
- div.ccm-area[data-total-blocks='0'] {
196
- border: 1px solid #e6e6e6;
197
- outline: none !important;
198
- }
194
+ div.ccm-area[data-total-blocks='0'] {
195
+ min-height: $concrete-element-spacing-y;
199
196
  }
200
197
 
201
198
  div.ccm-area[data-total-blocks='0'].ccm-area-drag-block-type-over,
202
199
  div.ccm-area[data-total-blocks='0'].ccm-menu-item-hover {
203
200
 
204
- outline: 1px solid #0c6;
201
+ border-color: $concrete-area-border-active;
205
202
 
206
203
  div.ccm-area-footer-handle {
207
204
  border-color: #0c6;
@@ -212,13 +209,17 @@ div.ccm-area[data-total-blocks='0'].ccm-menu-item-hover {
212
209
  }
213
210
 
214
211
  &.ccm-global-area {
215
- outline-color: #80d0ec;
212
+ border-color: $concrete-global-area-border-active;
213
+ }
216
214
 
217
- div.ccm-area-footer-handle {
218
- border-color: #80d0ec;
215
+ &.ccm-layout-area {
216
+ border-color: $concrete-layout-area-border-active;
217
+ }
219
218
 
220
- }
219
+ &.ccm-container-area {
220
+ border-color: $concrete-container-area-border-active;
221
221
  }
222
+
222
223
  }
223
224
 
224
225
  /**
@@ -226,108 +227,232 @@ div.ccm-area[data-total-blocks='0'].ccm-menu-item-hover {
226
227
  */
227
228
  div.ccm-area.ccm-area-highlight {
228
229
 
229
- outline: 1px solid #59ec59;
230
- outline-offset: -1px;
230
+ border-color: $concrete-area-border-active;
231
+
232
+ .ccm-area-block-list {
233
+ opacity: 0.5;
234
+ }
231
235
 
232
236
  > div.ccm-area-footer {
233
237
  div.ccm-area-footer-handle {
234
- border-bottom: 1px solid #59ec59;
235
- border-left: 1px solid #59ec59;
236
- border-right: 1px solid #59ec59;
237
- color: #000;
238
+ background-color: $concrete-area-handle-active-bg;
239
+ color: white;
238
240
  }
239
241
  }
242
+ }
240
243
 
241
- &.ccm-global-area-highlight {
242
- outline: 1px solid #80d0ec;
244
+ div.ccm-area.ccm-global-area.ccm-area-highlight {
243
245
 
244
- > div.ccm-area-footer {
245
- div.ccm-area-footer-handle {
246
- border-bottom: 1px solid #80d0ec;
247
- border-left: 1px solid #80d0ec;
248
- border-right: 1px solid #80d0ec;
249
- color: #000;
250
- }
246
+ border-color: $concrete-global-area-border-active !important;
247
+
248
+ > div.ccm-area-footer {
249
+ div.ccm-area-footer-handle {
250
+ background-color: $concrete-global-area-handle-active-bg !important;
251
+ color: white;
251
252
  }
252
253
  }
253
254
  }
254
255
 
255
- div.ccm-area[data-total-blocks='0'].ccm-area-highlight {
256
- outline: 1px solid #59ec59;
256
+ div.ccm-area.ccm-layout-area.ccm-area-highlight {
257
+
258
+ border-color: $concrete-layout-area-border-active !important;
257
259
 
258
- &.ccm-global-area-highlight {
259
- outline-color: #80d0ec;
260
+ > div.ccm-area-footer {
261
+ div.ccm-area-footer-handle {
262
+ background-color: $concrete-layout-area-handle-active-bg !important;
263
+ color: white;
264
+ }
260
265
  }
261
266
  }
262
267
 
263
- div#ccm-menu-highlighter.ccm-area-highlight {
264
- background-color: #ffff76;
265
- opacity: 0.1;
268
+ div.ccm-area.ccm-container-area.ccm-area-highlight {
269
+
270
+ border-color: $concrete-container-area-border-active !important;
266
271
 
267
- &.ccm-global-area-highlight {
268
- background-color: #93ffdb;
272
+ > div.ccm-area-footer {
273
+ div.ccm-area-footer-handle {
274
+ background-color: $concrete-container-area-handle-active-bg !important;
275
+ color: white;
276
+ }
269
277
  }
270
278
  }
271
279
 
280
+ div.ccm-area[data-total-blocks='0'].ccm-area-highlight {
281
+ border-color: $concrete-area-border-active;
282
+ }
283
+
284
+ div#ccm-menu-highlighter.ccm-area-highlight {
285
+ background-color: $concrete-empty-area-highlight;
286
+ opacity: 0.1;
287
+ }
288
+
289
+
272
290
  /**
273
- * Inline edit mode tweaks
291
+ * Blocks with title notches (Layout, Container)
274
292
  */
275
- div.ccm-area.ccm-area-inline-edit-disabled {
276
- outline-color: transparent;
277
293
 
278
- div.ccm-area-footer {
279
- display: none;
294
+ div.ccm-edit-mode-title-notch-wrapper {
295
+ position: relative;
296
+ text-align: center;
297
+ top: -1px;
298
+ }
299
+
300
+ ul.ccm-edit-mode-title-notch {
301
+ background-color: #fff;
302
+ border-top-left-radius: $dropdown-border-radius;
303
+ border-top-right-radius: $dropdown-border-radius;
304
+ box-shadow: $concrete-notch-box-shadow;
305
+ color: $concrete-area-handle;
306
+ cursor: pointer;
307
+ display: inline-flex;
308
+ font-size: 12px;
309
+ font-weight: bold;
310
+ line-height: 12px;
311
+ list-style-type: none;
312
+ margin: $concrete-element-spacing-y 0 0 0;
313
+ padding: 8px 12px !important;
314
+ transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1);
315
+ user-select: none;
316
+ z-index: $index-level-in-context-area-handle;
317
+
318
+ &.ccm-edit-mode-title-notch-container {
319
+ background-color: $concrete-container-area-handle-bg;
320
+
321
+ &.ccm-menu-item-hover {
322
+ background-color: $concrete-container-area-handle-hover-bg;
323
+ color: $concrete-container-area-handle-hover;
324
+ }
325
+
326
+ &.ccm-edit-mode-title-notch-highlight {
327
+ background-color: $concrete-container-area-handle-active-bg !important;
328
+ color: white;
329
+
330
+ img {
331
+ filter: brightness(0) invert(1);
332
+ }
333
+
334
+ i {
335
+ color: white;
336
+ }
337
+ }
280
338
  }
281
339
 
282
- div.ccm-block-edit {
283
- opacity: 0.4;
340
+ &.ccm-edit-mode-title-notch-layout {
341
+ background-color: $concrete-layout-area-handle-bg;
342
+
343
+ &.ccm-menu-item-hover {
344
+ background-color: $concrete-layout-area-handle-hover-bg;
345
+ color: $concrete-layout-area-handle-hover;
346
+ }
347
+
348
+ &.ccm-edit-mode-title-notch-highlight {
349
+ background-color: $concrete-layout-area-handle-active-bg !important;
350
+ color: white;
351
+ }
284
352
  }
285
353
 
286
- div.ccm-block-edit-layout {
287
- opacity: 1;
354
+
355
+ i {
356
+ font-size: 14px;
288
357
  }
289
358
 
290
- div.ccm-block-edit-inline-active {
291
- opacity: 1;
292
- outline: 1px solid #5eed5e;
293
- outline-offset: -1px;
359
+ li {
360
+ display: flex;
361
+ line-height: 12px;
362
+ margin-right: 6px;
363
+
364
+ &:last-child {
365
+ margin-right: 0;
366
+ }
367
+
368
+ img { // container images
369
+ margin-bottom: 0 !important; // Just in case some theme styles are greedy
370
+ margin-top: 0 !important; // Just in case some theme styles are greedy
371
+ max-height: 12px;
372
+ }
373
+
374
+ span {
375
+ margin-left: 6px;
376
+ margin-right: 6px;
377
+ text-transform: uppercase;
378
+ }
379
+
380
+ a {
381
+ color: $concrete-inline-icon-link !important;
382
+ position: relative;
383
+ z-index: $index-level-inline-commands; // this ensures that the move icon in our notches comes above the click proxy for clicking on the notch
384
+
385
+ &.ccm-edit-mode-inline-command-move {
386
+ cursor: move;
387
+ }
388
+
389
+ &:hover {
390
+ color: $primary !important;
391
+ }
392
+ }
294
393
  }
394
+ }
295
395
 
396
+ // Clicking on a notch for layout or container
397
+ div.ccm-block-edit-container,
398
+ div.ccm-block-edit-layout {
399
+ transition: outline-color 0.5s cubic-bezier(0.19, 1, 0.22, 1);
400
+
401
+ > * {
402
+ transition: opacity 0.5s cubic-bezier(0.19, 1, 0.22, 1);
403
+ }
296
404
  }
297
405
 
298
- /**
299
- * Clicking on blocks
300
- */
301
- div#ccm-menu-highlighter.ccm-block-highlight {
302
- background-color: #59ec59;
303
- opacity: 0.4;
406
+ div.ccm-block-edit.ccm-block-edit-container.ccm-block-edit-container-highlight {
407
+ outline-color: $concrete-container-area-border-active !important;
304
408
 
305
- &.ccm-global-area-block-highlight {
306
- background-color: rgb(128, 208, 236);
307
- outline: 1px solid #80d0ec;
409
+ > * {
410
+ opacity: 0.4;
411
+ }
412
+ }
413
+
414
+ div.ccm-block-edit.ccm-block-edit-layout.ccm-block-edit-layout-highlight {
415
+ outline-color: $concrete-layout-area-border-active !important;
416
+
417
+ > * {
418
+ opacity: 0.4;
419
+ }
420
+ }
421
+
422
+
423
+ // Hide the notch when doing inline design editing, because it loads a double notch into the page
424
+ div.ccm-form-block-design {
425
+ div.ccm-edit-mode-title-notch-wrapper {
426
+ display: none;
308
427
  }
309
428
  }
310
429
 
430
+ // If the popover is inline in the page it adds unintentional height after the title notches and area tabs
431
+ // Let's fix this by making them absolutely positioned.
432
+ div.ccm-edit-mode-title-notch-wrapper > .popover,
433
+ div.ccm-area-footer > .popover {
434
+ position: absolute;
435
+ }
436
+
311
437
  /**
312
- * Inline commands
438
+ * Edit mode in-page controls for dragging, moving blocks around
313
439
  */
314
440
  ul.ccm-edit-mode-inline-commands {
315
441
  background-color: #fff;
316
- border-bottom-left-radius: 3px;
442
+ border-radius: $dropdown-border-radius;
317
443
  box-shadow: $popover-box-shadow;
318
- display: flex;
319
- height: 25px;
444
+ font-size: 14px;
445
+ left: 50%;
320
446
  list-style-type: none;
321
- margin: 0 !important;
447
+ margin: auto;
322
448
  opacity: 0;
323
449
  padding: 0 !important;
324
450
  position: absolute;
325
- right: 0;
326
- top: 0;
451
+ top: 50%;
452
+ transform: translate(-50%, -50%);
327
453
  z-index: $index-level-inline-commands; // has to be over the click proxy
328
454
  li {
329
455
  align-items: center;
330
- display: flex;
331
456
  margin: 0 !important;
332
457
  padding: 0 !important;
333
458
 
@@ -343,16 +468,22 @@ ul.ccm-edit-mode-inline-commands {
343
468
  }
344
469
 
345
470
  a {
346
- color: #444 !important;
347
471
  display: inline-block;
348
472
  font-weight: lighter;
349
- padding: 0;
473
+ padding: 3px 6px;
350
474
  position: relative;
351
475
  text-align: center;
352
- width: 25px !important;
476
+
477
+ i.fas { // https://github.com/concretecms/concretecms/issues/10184
478
+ background-color: transparent;
479
+ color: $concrete-inline-icon-link !important;
480
+ font-size: 14px; // https://github.com/concretecms/concretecms/issues/10184
481
+ }
353
482
 
354
483
  &:hover {
355
- color: $blue !important;
484
+ i.fas { // https://github.com/concretecms/concretecms/issues/10184
485
+ color: $primary !important;
486
+ }
356
487
  }
357
488
 
358
489
  &.ccm-edit-mode-inline-command-move {
@@ -363,15 +494,171 @@ ul.ccm-edit-mode-inline-commands {
363
494
  a:hover {
364
495
  text-decoration: none !important;
365
496
  }
366
-
367
497
  }
498
+ }
368
499
 
500
+ // Hovering over the move arrows icon itself
501
+ ul.ccm-edit-mode-inline-commands:hover {
502
+ opacity: 1;
369
503
  }
370
504
 
505
+ // Hovering over the move icon, in order to give the block/item itself a different shade of hover opacity in
506
+ // preparation to move.
507
+ div.ccm-block-edit.ccm-block-move-hover {
508
+ > div.ccm-block-cover {
509
+ background-color: $concrete-block-hover-bg;
510
+ opacity: 0.4;
511
+ }
512
+ }
513
+
514
+ /**
515
+ * Hovering over blocks in page to show controls
516
+ */
517
+ div.ccm-block-edit.ccm-menu-item-hover,
371
518
  ul.ccm-edit-mode-inline-commands:hover {
519
+ .ccm-block-cover {
520
+ background-color: $concrete-block-hover-bg;
521
+ opacity: 0.2;
522
+ }
523
+
524
+ &.ccm-block-highlight {
525
+ .ccm-block-cover {
526
+ opacity: 0;
527
+ }
528
+ }
529
+ }
530
+
531
+ div.ccm-block-edit.ccm-menu-item-hover {
532
+ > div.ccm-custom-style-container > ul.ccm-edit-mode-inline-commands,
533
+ > ul.ccm-edit-mode-inline-commands {
534
+ opacity: 1;
535
+ }
536
+ }
537
+
538
+ // Hide the in-page block commands when the menu is visible
539
+ div.ccm-block-edit.ccm-block-highlight {
540
+ > div.ccm-custom-style-container > ul.ccm-edit-mode-inline-commands,
541
+ > ul.ccm-edit-mode-inline-commands {
542
+ opacity: 0;
543
+ }
544
+ }
545
+
546
+
547
+
548
+ /* stylelint-disable value-no-vendor-prefix, function-url-quotes */
549
+ /**
550
+ * Highlighter
551
+ */
552
+ div#ccm-menu-click-proxy {
553
+ background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
554
+ cursor: pointer;
555
+ height: 0;
556
+ opacity: 0;
557
+ position: absolute;
558
+ width: 0;
559
+ z-index: $index-level-in-context-click-proxy;
560
+ }
561
+
562
+ div#ccm-menu-highlighter {
563
+ background-color: transparent;
564
+ height: 0;
565
+ position: absolute;
566
+ transition: background-color 0.5s cubic-bezier(0.19, 1, 0.22, 1);
567
+ width: 0;
568
+ z-index: $index-level-in-context-menu-highlighter;
569
+ }
570
+
571
+ /**
572
+ * Blocks AND areas
573
+ */
574
+ div.ccm-block-edit,
575
+ div.ccm-area,
576
+ div.ccm-area-disabled {
577
+ @include clearfix();
578
+ opacity: 1;
579
+ position: relative;
580
+ }
581
+
582
+ /**
583
+ * sorting blocks in page
584
+ */
585
+ div.ccm-block-type-sorting {
586
+ background-color: rgba(128, 128, 128, 0.1);
587
+ border: 1px solid $gray-700;
588
+ box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.5);
589
+ overflow: hidden;
590
+ padding: 10px;
591
+ transform: rotate(5 deg);
592
+ }
593
+
594
+ /**
595
+ * Blocks
596
+ */
597
+
598
+ div.ccm-block-edit {
599
+ @include clearfix();
600
+ min-height: 16px;
372
601
  opacity: 1;
602
+ outline: 2px solid transparent;
603
+ outline-offset: -1px;
604
+ position: relative;
605
+ transition: outline-color 0.5s cubic-bezier(0.19, 1, 0.22, 1);
373
606
  }
374
607
 
608
+ div.ccm-block-edit.ccm-menu-item-hover,
609
+ div.ccm-block-edit.ccm-block-highlight {
610
+ outline-color: $concrete-block-active-border;
611
+ }
612
+
613
+ div.ccm-global-area {
614
+ div.ccm-block-edit.ccm-menu-item-hover,
615
+ div.ccm-block-edit.ccm-block-highlight {
616
+ outline-color: $concrete-global-area-block-active-border;
617
+ }
618
+ }
619
+
620
+
621
+ /**
622
+ * Inline edit mode tweaks
623
+ */
624
+ div.ccm-area.ccm-area-inline-edit-disabled {
625
+ outline-color: transparent;
626
+
627
+ div.ccm-area-footer {
628
+ display: none;
629
+ }
630
+
631
+ div.ccm-block-edit {
632
+ opacity: 0.4;
633
+ }
634
+
635
+ div.ccm-block-edit-container,
636
+ div.ccm-block-edit-layout {
637
+ opacity: 1;
638
+ }
639
+
640
+ div.ccm-block-edit-inline-active {
641
+ opacity: 1;
642
+ outline: 2px solid $concrete-block-active-border;
643
+ outline-offset: -1px;
644
+ }
645
+
646
+ }
647
+
648
+ /**
649
+ * Clicking on blocks
650
+ */
651
+ div#ccm-menu-highlighter.ccm-block-highlight {
652
+ background-color: $concrete-block-active-bg;
653
+ opacity: 0.4;
654
+
655
+ &.ccm-global-area-block-highlight {
656
+ background-color: $concrete-global-area-block-active-bg;
657
+ outline: 2px solid $concrete-global-area-border-active;
658
+ }
659
+ }
660
+
661
+
375
662
  /**
376
663
  * In page menus
377
664
  */
@@ -394,52 +681,29 @@ ul.ccm-edit-mode-inline-commands:hover {
394
681
  border-bottom-left-radius: $dropdown-border-radius;
395
682
  border-bottom-right-radius: $dropdown-border-radius;
396
683
  }
397
-
398
-
399
-
400
684
  }
401
-
402
685
  }
403
686
 
404
- /*
405
- * Edit mode drag areas - The green hover state things
687
+ /**
688
+ * Draggable blocks in edit mode
406
689
  */
407
690
  div.ccm-area-drag-area {
408
- line-height: 0px;
409
- outline-color: rgb(170, 255, 170);
410
- outline-style: solid;
411
- outline-width: 0;
412
- transition: outline-width 0.5s cubic-bezier(0.19, 1, 0.22, 1), outline-color 0.5s cubic-bezier(0.19, 1, 0.22, 1);
691
+ height: 0;
692
+ line-height: 0;
693
+ transition: none;
413
694
 
414
695
  span {
415
- display: none;
696
+ display: none; // We have to hide "Empty Area" text by default.
416
697
  }
417
698
 
699
+ /*
700
+ // I'm not sure this is needed, so I'm commenting it out.
418
701
  &.ccm-area-drag-area-contender {
419
702
  background-color: rgba(221, 255, 221, 0.5);
420
703
  outline: solid 5px rgba(221, 255, 221, 0.7) !important;
421
704
  }
705
+ */
422
706
 
423
- &.ccm-area-drag-area-selectable {
424
- outline-width: 10px !important;
425
- }
426
- }
427
-
428
- /* Global area color */
429
- div.ccm-global-area {
430
- > .ccm-area-block-list {
431
- > div.ccm-area-drag-area {
432
- border-color: rgb(128, 208, 236);
433
- outline-color: rgb(203, 234, 255);
434
- }
435
- }
436
- }
437
-
438
- html.ccm-panel-add-block,
439
- html.ccm-block-dragging {
440
- div.ccm-area-drag-area {
441
- outline-width: 2px;
442
- }
443
707
  }
444
708
 
445
709
  /**
@@ -457,6 +721,28 @@ div.ccm-area[data-total-blocks='0'] {
457
721
  }
458
722
  }
459
723
 
724
+
725
+
726
+ html.ccm-block-dragging {
727
+ div.ccm-area.ccm-area-accepts-block-drag-payload {
728
+ > div.ccm-area-block-list > div.ccm-area-drag-area {
729
+ background-color: $concrete-drag-area-bg;
730
+ height: 24px;
731
+ transition: height 1s cubic-bezier(0.19, 1, 0.22, 1),
732
+ background-color 0.2s cubic-bezier(0.19, 1, 0.22, 1),
733
+ border-color 0.2s cubic-bezier(0.19, 1, 0.22, 1),
734
+ box-shadow 0.4s cubic-bezier(0.19, 1, 0.22, 1);
735
+
736
+ &.ccm-area-drag-area-selectable {
737
+ background-color: $concrete-drag-area-active-bg;
738
+ box-shadow: 0 0 30px 0 $concrete-drag-area-active-shadow;
739
+ color: #333;
740
+ }
741
+ }
742
+ }
743
+ }
744
+
745
+ // Handling the drag state of the icons in the add panel
460
746
  a.ccm-block-edit-drag,
461
747
  a.ccm-panel-add-block-draggable-block-type-dragger {
462
748
  bottom: 0;
@@ -485,6 +771,8 @@ body {
485
771
  }
486
772
  }
487
773
 
774
+
775
+
488
776
  /**
489
777
  * Disabled edit mode blocks
490
778
  */
@@ -503,22 +791,13 @@ div.ccm-block-edit {
503
791
  > div.ccm-block-cover {
504
792
  height: 100%;
505
793
  left: 0;
794
+ opacity: 0;
506
795
  position: absolute;
507
796
  top: 0;
797
+ transition: all 0.2s cubic-bezier(0.19, 1, 0.22, 1);
508
798
  width: 100%;
509
799
  }
510
- }
511
800
 
512
- /**
513
- * Containers. Hovering is a bit of a hack but there's no way to easily move or delete these things
514
- * without showing them on hover.
515
- */
516
- div.ccm-block-edit[data-block-type-handle=core_container] {
517
- &:hover {
518
- > ul.ccm-edit-mode-inline-commands {
519
- opacity: 1;
520
- }
521
- }
522
801
  }
523
802
 
524
803
  /**