alchemy_cms 4.1.2 → 4.2.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/Bug_report.md +0 -5
  3. data/.rubocop.yml +4 -1
  4. data/.travis.yml +3 -3
  5. data/CHANGELOG.md +29 -10
  6. data/Gemfile +5 -7
  7. data/README.md +114 -62
  8. data/Rakefile +2 -2
  9. data/alchemy_cms.gemspec +5 -5
  10. data/app/assets/images/alchemy/icon.svg +1 -1
  11. data/app/assets/javascripts/alchemy/admin.js +2 -0
  12. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +0 -24
  13. data/app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee +11 -9
  14. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +7 -24
  15. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +9 -8
  16. data/app/assets/javascripts/alchemy/alchemy.fixed_elements.js +38 -0
  17. data/app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee +2 -4
  18. data/app/assets/javascripts/alchemy/alchemy.translations.js.coffee +1 -1
  19. data/app/assets/stylesheets/alchemy/_mixins.scss +2 -1
  20. data/app/assets/stylesheets/alchemy/_variables.scss +7 -2
  21. data/app/assets/stylesheets/alchemy/admin.scss +2 -1
  22. data/app/assets/stylesheets/alchemy/archive.scss +18 -4
  23. data/app/assets/stylesheets/alchemy/buttons.scss +1 -1
  24. data/app/assets/stylesheets/alchemy/dialogs.scss +1 -1
  25. data/app/assets/stylesheets/alchemy/elements.scss +154 -90
  26. data/app/assets/stylesheets/alchemy/filter_field.scss +30 -0
  27. data/app/assets/stylesheets/alchemy/flatpickr.scss +839 -0
  28. data/app/assets/stylesheets/alchemy/forms.scss +5 -1
  29. data/app/assets/stylesheets/alchemy/frame.scss +6 -14
  30. data/app/assets/stylesheets/alchemy/navigation.scss +109 -98
  31. data/app/assets/stylesheets/alchemy/search.scss +11 -29
  32. data/app/assets/stylesheets/alchemy/tables.scss +0 -23
  33. data/app/assets/stylesheets/alchemy/tags.scss +4 -27
  34. data/app/assets/stylesheets/alchemy/toolbar.scss +12 -2
  35. data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +4 -33
  36. data/app/controllers/alchemy/admin/attachments_controller.rb +1 -12
  37. data/app/controllers/alchemy/admin/contents_controller.rb +2 -24
  38. data/app/controllers/alchemy/admin/elements_controller.rb +11 -49
  39. data/app/controllers/alchemy/admin/pages_controller.rb +1 -1
  40. data/app/controllers/alchemy/admin/pictures_controller.rb +1 -14
  41. data/app/controllers/alchemy/api/contents_controller.rb +1 -1
  42. data/app/controllers/alchemy/api/elements_controller.rb +1 -1
  43. data/app/controllers/alchemy/api/pages_controller.rb +1 -1
  44. data/app/controllers/concerns/alchemy/admin/archive_overlay.rb +20 -0
  45. data/app/helpers/alchemy/admin/base_helper.rb +8 -18
  46. data/app/helpers/alchemy/admin/elements_helper.rb +55 -85
  47. data/app/helpers/alchemy/admin/pictures_helper.rb +0 -23
  48. data/app/helpers/alchemy/elements_helper.rb +80 -120
  49. data/app/helpers/alchemy/pages_helper.rb +5 -24
  50. data/app/models/alchemy/content.rb +0 -1
  51. data/app/models/alchemy/content/factory.rb +33 -57
  52. data/app/models/alchemy/element.rb +46 -66
  53. data/app/models/alchemy/element/element_contents.rb +2 -2
  54. data/app/models/alchemy/page.rb +34 -4
  55. data/app/models/alchemy/page/page_elements.rb +30 -122
  56. data/app/serializers/alchemy/attachment_serializer.rb +0 -2
  57. data/app/serializers/alchemy/content_serializer.rb +0 -2
  58. data/app/serializers/alchemy/element_serializer.rb +0 -3
  59. data/app/serializers/alchemy/essence_boolean_serializer.rb +0 -2
  60. data/app/serializers/alchemy/essence_date_serializer.rb +0 -2
  61. data/app/serializers/alchemy/essence_file_serializer.rb +0 -2
  62. data/app/serializers/alchemy/essence_html_serializer.rb +0 -2
  63. data/app/serializers/alchemy/essence_link_serializer.rb +0 -2
  64. data/app/serializers/alchemy/essence_picture_serializer.rb +0 -2
  65. data/app/serializers/alchemy/essence_richtext_serializer.rb +0 -2
  66. data/app/serializers/alchemy/essence_select_serializer.rb +0 -2
  67. data/app/serializers/alchemy/essence_text_serializer.rb +0 -2
  68. data/app/serializers/alchemy/legacy_element_serializer.rb +0 -3
  69. data/app/serializers/alchemy/page_serializer.rb +2 -8
  70. data/app/serializers/alchemy/page_tree_serializer.rb +1 -1
  71. data/app/serializers/alchemy/picture_serializer.rb +0 -2
  72. data/app/views/alchemy/admin/clipboard/index.html.erb +2 -2
  73. data/app/views/alchemy/admin/clipboard/insert.js.erb +9 -12
  74. data/app/views/alchemy/admin/contents/create.js.erb +4 -30
  75. data/app/views/alchemy/admin/elements/_element.html.erb +27 -12
  76. data/app/views/alchemy/admin/elements/_element_toolbar.html.erb +1 -1
  77. data/app/views/alchemy/admin/elements/_new_element_form.html.erb +0 -10
  78. data/app/views/alchemy/admin/elements/create.js.erb +12 -12
  79. data/app/views/alchemy/admin/elements/fold.js.erb +1 -1
  80. data/app/views/alchemy/admin/elements/index.html.erb +20 -19
  81. data/app/views/alchemy/admin/elements/publish.js.erb +5 -0
  82. data/app/views/alchemy/admin/elements/trash.js.erb +4 -1
  83. data/app/views/alchemy/admin/essence_pictures/assign.js.erb +0 -7
  84. data/app/views/alchemy/admin/essence_pictures/destroy.js.erb +0 -22
  85. data/app/views/alchemy/admin/pages/_publication_fields.html.erb +2 -4
  86. data/app/views/alchemy/admin/pages/edit.html.erb +1 -1
  87. data/app/views/alchemy/admin/pages/index.html.erb +14 -10
  88. data/app/views/alchemy/admin/partials/_language_tree_select.html.erb +1 -1
  89. data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +1 -1
  90. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +7 -5
  91. data/app/views/alchemy/admin/partials/_routes.html.erb +0 -1
  92. data/app/views/alchemy/admin/partials/_search_form.html.erb +6 -4
  93. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +6 -3
  94. data/app/views/alchemy/admin/pictures/index.html.erb +1 -1
  95. data/app/views/alchemy/admin/trash/index.html.erb +8 -7
  96. data/app/views/alchemy/elements/_editor_not_found.html.erb +1 -1
  97. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +4 -19
  98. data/app/views/layouts/alchemy/admin.html.erb +1 -0
  99. data/bin/rspec +0 -5
  100. data/config/alchemy/config.yml +3 -0
  101. data/config/brakeman.ignore +1 -1
  102. data/config/locales/alchemy.en.yml +6 -12
  103. data/config/routes.rb +1 -5
  104. data/db/migrate/20180226123013_alchemy_four_point_zero.rb +0 -29
  105. data/db/migrate/20180519204655_add_fixed_to_alchemy_elements.rb +6 -0
  106. data/lib/alchemy/admin/locale.rb +1 -1
  107. data/lib/alchemy/cache_digests/template_tracker.rb +4 -27
  108. data/lib/alchemy/elements_finder.rb +111 -0
  109. data/lib/alchemy/errors.rb +0 -4
  110. data/lib/alchemy/modules.rb +49 -18
  111. data/lib/alchemy/tasks/tidy.rb +3 -40
  112. data/lib/alchemy/test_support/controller_requests.rb +1 -1
  113. data/lib/alchemy/test_support/essence_shared_examples.rb +1 -1
  114. data/lib/alchemy/test_support/factories/attachment_factory.rb +5 -3
  115. data/lib/alchemy/test_support/factories/content_factory.rb +4 -4
  116. data/lib/alchemy/test_support/factories/dummy_user_factory.rb +5 -5
  117. data/lib/alchemy/test_support/factories/element_factory.rb +12 -7
  118. data/lib/alchemy/test_support/factories/essence_text_factory.rb +1 -1
  119. data/lib/alchemy/test_support/factories/language_factory.rb +13 -13
  120. data/lib/alchemy/test_support/factories/page_factory.rb +18 -17
  121. data/lib/alchemy/test_support/factories/picture_factory.rb +6 -4
  122. data/lib/alchemy/test_support/factories/site_factory.rb +6 -6
  123. data/lib/alchemy/tinymce.rb +1 -1
  124. data/lib/alchemy/upgrader/four_point_two.rb +68 -0
  125. data/lib/alchemy/upgrader/tasks/cells_migration.rb +41 -0
  126. data/lib/alchemy/upgrader/tasks/cells_upgrader.rb +146 -0
  127. data/lib/alchemy/upgrader/tasks/picture_gallery_migration.rb +65 -0
  128. data/lib/alchemy/upgrader/tasks/picture_gallery_upgrader.rb +195 -0
  129. data/lib/alchemy/version.rb +1 -1
  130. data/lib/alchemy_cms.rb +1 -0
  131. data/lib/rails/generators/alchemy/elements/elements_generator.rb +1 -0
  132. data/lib/rails/generators/alchemy/elements/templates/editor.html.erb +0 -3
  133. data/lib/rails/generators/alchemy/elements/templates/editor.html.haml +0 -3
  134. data/lib/rails/generators/alchemy/elements/templates/editor.html.slim +0 -3
  135. data/lib/rails/generators/alchemy/elements/templates/view.html.erb +3 -14
  136. data/lib/rails/generators/alchemy/elements/templates/view.html.haml +3 -10
  137. data/lib/rails/generators/alchemy/elements/templates/view.html.slim +3 -10
  138. data/lib/tasks/alchemy/tidy.rake +1 -23
  139. data/lib/tasks/alchemy/upgrade.rake +44 -1
  140. data/vendor/assets/javascripts/flatpickr/flatpickr.min.js +2 -0
  141. data/vendor/assets/javascripts/tinymce/license.txt +0 -0
  142. data/vendor/assets/javascripts/tinymce/tinymce.min.js +2 -2
  143. metadata +25 -31
  144. data/app/assets/stylesheets/alchemy/jquery.datetimepicker.scss +0 -478
  145. data/app/models/alchemy/cell.rb +0 -95
  146. data/app/models/alchemy/page/page_cells.rb +0 -69
  147. data/app/serializers/alchemy/cell_serializer.rb +0 -19
  148. data/app/views/alchemy/admin/contents/new.html.erb +0 -11
  149. data/app/views/alchemy/admin/contents/order.js.erb +0 -3
  150. data/app/views/alchemy/admin/elements/_add_picture.html.erb +0 -14
  151. data/app/views/alchemy/admin/elements/_picture_gallery_editor.html.erb +0 -24
  152. data/bin/spring +0 -16
  153. data/lib/alchemy/test_support/factories/cell_factory.rb +0 -9
  154. data/vendor/assets/javascripts/date-formatter.js +0 -161
  155. data/vendor/assets/javascripts/jquery_plugins/jquery.datetimepicker.full.min.js +0 -2
@@ -0,0 +1,30 @@
1
+ .js_filter_field_box {
2
+ position: relative;
3
+ margin: $form-field-margin;
4
+
5
+ > .icon {
6
+ position: absolute;
7
+ left: 8px;
8
+ top: 50%;
9
+ transform: translateY(-50%);
10
+ }
11
+
12
+ .js_filter_field {
13
+ width: 100%;
14
+ padding-left: 28px;
15
+ padding-right: 24px;
16
+ margin: 0;
17
+ }
18
+
19
+ .js_filter_field_clear {
20
+ display: none;
21
+ position: absolute;
22
+ right: 4px;
23
+ top: 50%;
24
+ transform: translateY(-50%);
25
+ width: 16px;
26
+ height: 16px;
27
+ line-height: 14px;
28
+ text-align: center;
29
+ }
30
+ }
@@ -0,0 +1,839 @@
1
+ .flatpickr-calendar {
2
+ background: transparent;
3
+ opacity: 0;
4
+ display: none;
5
+ text-align: center;
6
+ visibility: hidden;
7
+ padding: 0;
8
+ -webkit-animation: none;
9
+ animation: none;
10
+ direction: ltr;
11
+ border: 0;
12
+ font-size: $default-font-size;
13
+ line-height: 24px;
14
+ border-radius: 5px;
15
+ position: absolute;
16
+ width: 307.875px;
17
+ -webkit-box-sizing: border-box;
18
+ box-sizing: border-box;
19
+ -ms-touch-action: manipulation;
20
+ touch-action: manipulation;
21
+ background: $white;
22
+ -webkit-box-shadow: 1px 0 0 $medium-gray, -1px 0 0 $medium-gray, 0 1px 0 $medium-gray, 0 -1px 0 $medium-gray, 0 3px 13px rgba(0, 0, 0, 0.08);
23
+ box-shadow: 1px 0 0 $medium-gray, -1px 0 0 $medium-gray, 0 1px 0 $medium-gray, 0 -1px 0 $medium-gray, 0 3px 13px rgba(0, 0, 0, 0.08);
24
+ }
25
+
26
+ .flatpickr-calendar.open,
27
+ .flatpickr-calendar.inline {
28
+ opacity: 1;
29
+ max-height: 640px;
30
+ visibility: visible
31
+ }
32
+
33
+ .flatpickr-calendar.open {
34
+ display: inline-block;
35
+ z-index: 99999
36
+ }
37
+
38
+ .flatpickr-calendar.animate.open {
39
+ -webkit-animation: fpFadeInDown 300ms cubic-bezier(.23, 1, .32, 1);
40
+ animation: fpFadeInDown 300ms cubic-bezier(.23, 1, .32, 1)
41
+ }
42
+
43
+ .flatpickr-calendar.inline {
44
+ display: block;
45
+ position: relative;
46
+ top: 2px
47
+ }
48
+
49
+ .flatpickr-calendar.static {
50
+ position: absolute;
51
+ top: calc(100% + 2px);
52
+ }
53
+
54
+ .flatpickr-calendar.static.open {
55
+ z-index: 999;
56
+ display: block
57
+ }
58
+
59
+ .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
60
+ -webkit-box-shadow: none !important;
61
+ box-shadow: none !important
62
+ }
63
+
64
+ .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
65
+ -webkit-box-shadow: -2px 0 0 $medium-gray, 5px 0 0 $medium-gray;
66
+ box-shadow: -2px 0 0 $medium-gray, 5px 0 0 $medium-gray
67
+ }
68
+
69
+ .flatpickr-calendar .hasWeeks .dayContainer,
70
+ .flatpickr-calendar .hasTime .dayContainer {
71
+ border-bottom: 0;
72
+ border-bottom-right-radius: 0;
73
+ border-bottom-left-radius: 0
74
+ }
75
+
76
+ .flatpickr-calendar .hasWeeks .dayContainer {
77
+ border-left: 0
78
+ }
79
+
80
+ .flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
81
+ height: 40px;
82
+ border-top: 1px solid $medium-gray
83
+ }
84
+
85
+ .flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
86
+ height: auto
87
+ }
88
+
89
+ .flatpickr-calendar:before,
90
+ .flatpickr-calendar:after {
91
+ position: absolute;
92
+ display: block;
93
+ pointer-events: none;
94
+ border: solid transparent;
95
+ content: '';
96
+ height: 0;
97
+ width: 0;
98
+ left: 22px
99
+ }
100
+
101
+ .flatpickr-calendar.rightMost:before,
102
+ .flatpickr-calendar.rightMost:after {
103
+ left: auto;
104
+ right: 22px
105
+ }
106
+
107
+ .flatpickr-calendar:before {
108
+ border-width: 5px;
109
+ margin: 0 -5px
110
+ }
111
+
112
+ .flatpickr-calendar:after {
113
+ border-width: 4px;
114
+ margin: 0 -4px
115
+ }
116
+
117
+ .flatpickr-calendar.arrowTop:before,
118
+ .flatpickr-calendar.arrowTop:after {
119
+ bottom: 100%
120
+ }
121
+
122
+ .flatpickr-calendar.arrowTop:before {
123
+ border-bottom-color: $medium-gray
124
+ }
125
+
126
+ .flatpickr-calendar.arrowTop:after {
127
+ border-bottom-color: $white
128
+ }
129
+
130
+ .flatpickr-calendar.arrowBottom:before,
131
+ .flatpickr-calendar.arrowBottom:after {
132
+ top: 100%
133
+ }
134
+
135
+ .flatpickr-calendar.arrowBottom:before {
136
+ border-top-color: $medium-gray
137
+ }
138
+
139
+ .flatpickr-calendar.arrowBottom:after {
140
+ border-top-color: $white
141
+ }
142
+
143
+ .flatpickr-calendar:focus {
144
+ outline: 0
145
+ }
146
+
147
+ .flatpickr-wrapper {
148
+ position: relative;
149
+ display: inline-block
150
+ }
151
+
152
+ .flatpickr-months {
153
+ display: -webkit-box;
154
+ display: -webkit-flex;
155
+ display: -ms-flexbox;
156
+ display: flex;
157
+ }
158
+
159
+ .flatpickr-months .flatpickr-month {
160
+ background: transparent;
161
+ color: rgba(0, 0, 0, 0.9);
162
+ fill: rgba(0, 0, 0, 0.9);
163
+ height: $form-field-height;
164
+ line-height: 1;
165
+ text-align: center;
166
+ position: relative;
167
+ -webkit-user-select: none;
168
+ -moz-user-select: none;
169
+ -ms-user-select: none;
170
+ user-select: none;
171
+ overflow: hidden;
172
+ -webkit-box-flex: 1;
173
+ -webkit-flex: 1;
174
+ -ms-flex: 1;
175
+ flex: 1
176
+ }
177
+
178
+ .flatpickr-months .flatpickr-prev-month,
179
+ .flatpickr-months .flatpickr-next-month {
180
+ text-decoration: none;
181
+ cursor: pointer;
182
+ position: absolute;
183
+ top: 0;
184
+ line-height: 16px;
185
+ height: 28px;
186
+ padding: 10px;
187
+ z-index: 3;
188
+ color: rgba(0, 0, 0, 0.9);
189
+ fill: rgba(0, 0, 0, 0.9);
190
+ }
191
+
192
+ .flatpickr-months .flatpickr-prev-month.disabled,
193
+ .flatpickr-months .flatpickr-next-month.disabled {
194
+ display: none
195
+ }
196
+
197
+ .flatpickr-months .flatpickr-prev-month i,
198
+ .flatpickr-months .flatpickr-next-month i {
199
+ position: relative
200
+ }
201
+
202
+ .flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
203
+ .flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
204
+ /*
205
+ /*rtl:begin:ignore*/
206
+ left: 0;
207
+ /*
208
+ /*rtl:end:ignore*/
209
+ }
210
+
211
+ /*
212
+ /*rtl:begin:ignore*/
213
+ /*
214
+ /*rtl:end:ignore*/
215
+ .flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
216
+ .flatpickr-months .flatpickr-next-month.flatpickr-next-month {
217
+ /*
218
+ /*rtl:begin:ignore*/
219
+ right: 0;
220
+ /*
221
+ /*rtl:end:ignore*/
222
+ }
223
+
224
+ /*
225
+ /*rtl:begin:ignore*/
226
+ /*
227
+ /*rtl:end:ignore*/
228
+ .flatpickr-months .flatpickr-prev-month:hover,
229
+ .flatpickr-months .flatpickr-next-month:hover {
230
+ color: $dark-gray;
231
+ }
232
+
233
+ .flatpickr-months .flatpickr-prev-month:hover svg,
234
+ .flatpickr-months .flatpickr-next-month:hover svg {
235
+ fill: $dark-orange;
236
+ }
237
+
238
+ .flatpickr-months .flatpickr-prev-month svg,
239
+ .flatpickr-months .flatpickr-next-month svg {
240
+ width: 14px;
241
+ height: 14px;
242
+ }
243
+
244
+ .flatpickr-months .flatpickr-prev-month svg path,
245
+ .flatpickr-months .flatpickr-next-month svg path {
246
+ -webkit-transition: fill .1s;
247
+ transition: fill .1s;
248
+ fill: inherit
249
+ }
250
+
251
+ .numInputWrapper {
252
+ position: relative;
253
+ height: auto;
254
+ }
255
+
256
+ .numInputWrapper input,
257
+ .numInputWrapper span {
258
+ display: inline-block
259
+ }
260
+
261
+ .numInputWrapper input {
262
+ width: 100%;
263
+ }
264
+
265
+ .numInputWrapper input::-ms-clear {
266
+ display: none
267
+ }
268
+
269
+ .numInputWrapper span {
270
+ position: absolute;
271
+ right: 0;
272
+ width: 14px;
273
+ padding: 0 4px 0 2px;
274
+ height: 50%;
275
+ line-height: 50%;
276
+ opacity: 0;
277
+ cursor: pointer;
278
+ border: 1px solid rgba(57, 57, 57, 0.15);
279
+ -webkit-box-sizing: border-box;
280
+ box-sizing: border-box;
281
+ }
282
+
283
+ .numInputWrapper span:hover {
284
+ background: rgba(0, 0, 0, 0.1)
285
+ }
286
+
287
+ .numInputWrapper span:active {
288
+ background: rgba(0, 0, 0, 0.2)
289
+ }
290
+
291
+ .numInputWrapper span:after {
292
+ display: block;
293
+ content: "";
294
+ position: absolute
295
+ }
296
+
297
+ .numInputWrapper span.arrowUp {
298
+ top: 0;
299
+ border-bottom: 0;
300
+ }
301
+
302
+ .numInputWrapper span.arrowUp:after {
303
+ border-left: 4px solid transparent;
304
+ border-right: 4px solid transparent;
305
+ border-bottom: 4px solid rgba(57, 57, 57, 0.6);
306
+ top: 26%
307
+ }
308
+
309
+ .numInputWrapper span.arrowDown {
310
+ top: 50%;
311
+ }
312
+
313
+ .numInputWrapper span.arrowDown:after {
314
+ border-left: 4px solid transparent;
315
+ border-right: 4px solid transparent;
316
+ border-top: 4px solid rgba(57, 57, 57, 0.6);
317
+ top: 40%
318
+ }
319
+
320
+ .numInputWrapper span svg {
321
+ width: inherit;
322
+ height: auto;
323
+ }
324
+
325
+ .numInputWrapper span svg path {
326
+ fill: rgba(0, 0, 0, 0.5)
327
+ }
328
+
329
+ .numInputWrapper:hover {
330
+ background: rgba(0, 0, 0, 0.05);
331
+ }
332
+
333
+ .numInputWrapper:hover span {
334
+ opacity: 1
335
+ }
336
+
337
+ .flatpickr-current-month {
338
+ font-size: 1.25rem;
339
+ line-height: inherit;
340
+ font-weight: 300;
341
+ color: inherit;
342
+ position: absolute;
343
+ width: 75%;
344
+ left: 12.5%;
345
+ padding: 6.16px 0 0 0;
346
+ line-height: 1;
347
+ height: 28px;
348
+ display: inline-block;
349
+ text-align: center;
350
+ -webkit-transform: translate3d(0, 0, 0);
351
+ transform: translate3d(0, 0, 0);
352
+ }
353
+
354
+ .flatpickr-current-month span.cur-month {
355
+ font-family: inherit;
356
+ font-weight: 700;
357
+ color: inherit;
358
+ display: inline-block;
359
+ margin-left: .5ch;
360
+ padding: 0;
361
+ }
362
+
363
+ .flatpickr-current-month span.cur-month:hover {
364
+ background: rgba(0, 0, 0, 0.05)
365
+ }
366
+
367
+ .flatpickr-current-month .numInputWrapper {
368
+ width: 6ch;
369
+ width: 7ch\0;
370
+ display: inline-block;
371
+ }
372
+
373
+ .flatpickr-current-month .numInputWrapper span.arrowUp:after {
374
+ border-bottom-color: rgba(0, 0, 0, 0.9)
375
+ }
376
+
377
+ .flatpickr-current-month .numInputWrapper span.arrowDown:after {
378
+ border-top-color: rgba(0, 0, 0, 0.9)
379
+ }
380
+
381
+ .flatpickr-current-month input.cur-year {
382
+ background: transparent;
383
+ -webkit-box-sizing: border-box;
384
+ box-sizing: border-box;
385
+ color: inherit;
386
+ cursor: text;
387
+ padding: 0 0 0 .5ch;
388
+ margin: 0;
389
+ display: inline-block;
390
+ font-size: $form-field-font-size;
391
+ font-family: inherit;
392
+ font-weight: 300;
393
+ line-height: inherit;
394
+ height: auto;
395
+ border: 0;
396
+ border-radius: 0;
397
+ vertical-align: initial;
398
+ }
399
+
400
+ .flatpickr-current-month input.cur-year:focus {
401
+ outline: 0
402
+ }
403
+
404
+ .flatpickr-current-month input.cur-year[disabled],
405
+ .flatpickr-current-month input.cur-year[disabled]:hover {
406
+ color: rgba(0, 0, 0, 0.5);
407
+ background: transparent;
408
+ pointer-events: none
409
+ }
410
+
411
+ .flatpickr-weekdays {
412
+ background: transparent;
413
+ text-align: center;
414
+ overflow: hidden;
415
+ width: 100%;
416
+ display: -webkit-box;
417
+ display: -webkit-flex;
418
+ display: -ms-flexbox;
419
+ display: flex;
420
+ -webkit-box-align: center;
421
+ -webkit-align-items: center;
422
+ -ms-flex-align: center;
423
+ align-items: center;
424
+ height: 28px;
425
+ }
426
+
427
+ .flatpickr-weekdays .flatpickr-weekdaycontainer {
428
+ display: -webkit-box;
429
+ display: -webkit-flex;
430
+ display: -ms-flexbox;
431
+ display: flex;
432
+ -webkit-box-flex: 1;
433
+ -webkit-flex: 1;
434
+ -ms-flex: 1;
435
+ flex: 1
436
+ }
437
+
438
+ span.flatpickr-weekday {
439
+ cursor: default;
440
+ background: transparent;
441
+ color: rgba(0, 0, 0, 0.54);
442
+ line-height: 1;
443
+ margin: 0;
444
+ text-align: center;
445
+ display: block;
446
+ -webkit-box-flex: 1;
447
+ -webkit-flex: 1;
448
+ -ms-flex: 1;
449
+ flex: 1;
450
+ font-weight: bolder
451
+ }
452
+
453
+ .dayContainer,
454
+ .flatpickr-weeks {
455
+ padding: 1px 0 0 0
456
+ }
457
+
458
+ .flatpickr-days {
459
+ position: relative;
460
+ overflow: hidden;
461
+ display: -webkit-box;
462
+ display: -webkit-flex;
463
+ display: -ms-flexbox;
464
+ display: flex;
465
+ -webkit-box-align: start;
466
+ -webkit-align-items: flex-start;
467
+ -ms-flex-align: start;
468
+ align-items: flex-start;
469
+ width: 307.875px;
470
+ }
471
+
472
+ .flatpickr-days:focus {
473
+ outline: 0
474
+ }
475
+
476
+ .dayContainer {
477
+ padding: 0;
478
+ outline: 0;
479
+ text-align: left;
480
+ width: 307.875px;
481
+ min-width: 307.875px;
482
+ max-width: 307.875px;
483
+ -webkit-box-sizing: border-box;
484
+ box-sizing: border-box;
485
+ display: inline-block;
486
+ display: -ms-flexbox;
487
+ display: -webkit-box;
488
+ display: -webkit-flex;
489
+ display: flex;
490
+ -webkit-flex-wrap: wrap;
491
+ flex-wrap: wrap;
492
+ -ms-flex-wrap: wrap;
493
+ -ms-flex-pack: justify;
494
+ -webkit-justify-content: space-around;
495
+ justify-content: space-around;
496
+ -webkit-transform: translate3d(0, 0, 0);
497
+ transform: translate3d(0, 0, 0);
498
+ opacity: 1;
499
+ }
500
+
501
+ .dayContainer+.dayContainer {
502
+ -webkit-box-shadow: -1px 0 0 $medium-gray;
503
+ box-shadow: -1px 0 0 $medium-gray
504
+ }
505
+
506
+ .flatpickr-day {
507
+ background: none;
508
+ border: 1px solid transparent;
509
+ border-radius: $default-border-radius;
510
+ -webkit-box-sizing: border-box;
511
+ box-sizing: border-box;
512
+ color: #393939;
513
+ cursor: pointer;
514
+ font-weight: 400;
515
+ width: 14.2857143%;
516
+ -webkit-flex-basis: 14.2857143%;
517
+ -ms-flex-preferred-size: 14.2857143%;
518
+ flex-basis: 14.2857143%;
519
+ max-width: 39px;
520
+ height: 39px;
521
+ line-height: 39px;
522
+ margin: 0;
523
+ display: inline-block;
524
+ position: relative;
525
+ -webkit-box-pack: center;
526
+ -webkit-justify-content: center;
527
+ -ms-flex-pack: center;
528
+ justify-content: center;
529
+ text-align: center;
530
+ }
531
+
532
+ .flatpickr-day.inRange,
533
+ .flatpickr-day.prevMonthDay.inRange,
534
+ .flatpickr-day.nextMonthDay.inRange,
535
+ .flatpickr-day.today.inRange,
536
+ .flatpickr-day.prevMonthDay.today.inRange,
537
+ .flatpickr-day.nextMonthDay.today.inRange,
538
+ .flatpickr-day:hover,
539
+ .flatpickr-day.prevMonthDay:hover,
540
+ .flatpickr-day.nextMonthDay:hover,
541
+ .flatpickr-day:focus,
542
+ .flatpickr-day.prevMonthDay:focus,
543
+ .flatpickr-day.nextMonthDay:focus {
544
+ cursor: pointer;
545
+ outline: 0;
546
+ background: $medium-gray;
547
+ border-color: $medium-gray
548
+ }
549
+
550
+ .flatpickr-day.today {
551
+ border-color: $dark-gray;
552
+ }
553
+
554
+ .flatpickr-day.today:hover,
555
+ .flatpickr-day.today:focus {
556
+ border-color: $dark-gray;
557
+ background: $dark-gray;
558
+ color: $white
559
+ }
560
+
561
+ .flatpickr-day.selected,
562
+ .flatpickr-day.startRange,
563
+ .flatpickr-day.endRange,
564
+ .flatpickr-day.selected.inRange,
565
+ .flatpickr-day.startRange.inRange,
566
+ .flatpickr-day.endRange.inRange,
567
+ .flatpickr-day.selected:focus,
568
+ .flatpickr-day.startRange:focus,
569
+ .flatpickr-day.endRange:focus,
570
+ .flatpickr-day.selected:hover,
571
+ .flatpickr-day.startRange:hover,
572
+ .flatpickr-day.endRange:hover,
573
+ .flatpickr-day.selected.prevMonthDay,
574
+ .flatpickr-day.startRange.prevMonthDay,
575
+ .flatpickr-day.endRange.prevMonthDay,
576
+ .flatpickr-day.selected.nextMonthDay,
577
+ .flatpickr-day.startRange.nextMonthDay,
578
+ .flatpickr-day.endRange.nextMonthDay {
579
+ background: $blue;
580
+ -webkit-box-shadow: none;
581
+ box-shadow: none;
582
+ color: $white;
583
+ border-color: $blue
584
+ }
585
+
586
+ .flatpickr-day.selected.startRange,
587
+ .flatpickr-day.startRange.startRange,
588
+ .flatpickr-day.endRange.startRange {
589
+ border-radius: 50px 0 0 50px
590
+ }
591
+
592
+ .flatpickr-day.selected.endRange,
593
+ .flatpickr-day.startRange.endRange,
594
+ .flatpickr-day.endRange.endRange {
595
+ border-radius: 0 50px 50px 0
596
+ }
597
+
598
+ .flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),
599
+ .flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),
600
+ .flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)) {
601
+ -webkit-box-shadow: -10px 0 0 $blue;
602
+ box-shadow: -10px 0 0 $blue
603
+ }
604
+
605
+ .flatpickr-day.selected.startRange.endRange,
606
+ .flatpickr-day.startRange.startRange.endRange,
607
+ .flatpickr-day.endRange.startRange.endRange {
608
+ border-radius: 50px
609
+ }
610
+
611
+ .flatpickr-day.inRange {
612
+ border-radius: 0;
613
+ -webkit-box-shadow: -5px 0 0 $medium-gray, 5px 0 0 $medium-gray;
614
+ box-shadow: -5px 0 0 $medium-gray, 5px 0 0 $medium-gray
615
+ }
616
+
617
+ .flatpickr-day.disabled,
618
+ .flatpickr-day.disabled:hover,
619
+ .flatpickr-day.prevMonthDay,
620
+ .flatpickr-day.nextMonthDay,
621
+ .flatpickr-day.notAllowed,
622
+ .flatpickr-day.notAllowed.prevMonthDay,
623
+ .flatpickr-day.notAllowed.nextMonthDay {
624
+ color: rgba(57, 57, 57, 0.3);
625
+ background: transparent;
626
+ border-color: transparent;
627
+ cursor: default
628
+ }
629
+
630
+ .flatpickr-day.disabled,
631
+ .flatpickr-day.disabled:hover {
632
+ cursor: not-allowed;
633
+ color: rgba(57, 57, 57, 0.1)
634
+ }
635
+
636
+ .flatpickr-day.week.selected {
637
+ border-radius: 0;
638
+ -webkit-box-shadow: -5px 0 0 $blue, 5px 0 0 $blue;
639
+ box-shadow: -5px 0 0 $blue, 5px 0 0 $blue
640
+ }
641
+
642
+ .flatpickr-day.hidden {
643
+ visibility: hidden
644
+ }
645
+
646
+ .rangeMode .flatpickr-day {
647
+ margin-top: 1px
648
+ }
649
+
650
+ .flatpickr-weekwrapper {
651
+ display: inline-block;
652
+ float: left;
653
+ }
654
+
655
+ .flatpickr-weekwrapper .flatpickr-weeks {
656
+ padding: 0 12px;
657
+ -webkit-box-shadow: 1px 0 0 $medium-gray;
658
+ box-shadow: 1px 0 0 $medium-gray
659
+ }
660
+
661
+ .flatpickr-weekwrapper .flatpickr-weekday {
662
+ float: none;
663
+ width: 100%;
664
+ line-height: 28px
665
+ }
666
+
667
+ .flatpickr-weekwrapper span.flatpickr-day,
668
+ .flatpickr-weekwrapper span.flatpickr-day:hover {
669
+ display: block;
670
+ width: 100%;
671
+ max-width: none;
672
+ color: rgba(57, 57, 57, 0.3);
673
+ background: transparent;
674
+ cursor: default;
675
+ border: none
676
+ }
677
+
678
+ .flatpickr-innerContainer {
679
+ display: block;
680
+ display: -webkit-box;
681
+ display: -webkit-flex;
682
+ display: -ms-flexbox;
683
+ display: flex;
684
+ -webkit-box-sizing: border-box;
685
+ box-sizing: border-box;
686
+ overflow: hidden;
687
+ }
688
+
689
+ .flatpickr-rContainer {
690
+ display: inline-block;
691
+ padding: 0;
692
+ -webkit-box-sizing: border-box;
693
+ box-sizing: border-box
694
+ }
695
+
696
+ .flatpickr-time {
697
+ text-align: center;
698
+ outline: 0;
699
+ display: block;
700
+ height: 0;
701
+ line-height: 40px;
702
+ max-height: 40px;
703
+ -webkit-box-sizing: border-box;
704
+ box-sizing: border-box;
705
+ overflow: hidden;
706
+ display: -webkit-box;
707
+ display: -webkit-flex;
708
+ display: -ms-flexbox;
709
+ display: flex;
710
+ }
711
+
712
+ .flatpickr-time:after {
713
+ content: "";
714
+ display: table;
715
+ clear: both
716
+ }
717
+
718
+ .flatpickr-time .numInputWrapper {
719
+ -webkit-box-flex: 1;
720
+ -webkit-flex: 1;
721
+ -ms-flex: 1;
722
+ flex: 1;
723
+ width: 40%;
724
+ height: 40px;
725
+ float: left;
726
+ }
727
+
728
+ .flatpickr-time .numInputWrapper span.arrowUp:after {
729
+ border-bottom-color: #393939
730
+ }
731
+
732
+ .flatpickr-time .numInputWrapper span.arrowDown:after {
733
+ border-top-color: #393939
734
+ }
735
+
736
+ .flatpickr-time.hasSeconds .numInputWrapper {
737
+ width: 26%
738
+ }
739
+
740
+ .flatpickr-time.time24hr .numInputWrapper {
741
+ width: 49%
742
+ }
743
+
744
+ .flatpickr-time input {
745
+ background: transparent;
746
+ -webkit-box-shadow: none;
747
+ box-shadow: none;
748
+ border: 0;
749
+ border-radius: 0;
750
+ text-align: center;
751
+ margin: 0;
752
+ padding: 0;
753
+ height: inherit;
754
+ line-height: inherit;
755
+ color: #393939;
756
+ font-size: $form-field-font-size;
757
+ position: relative;
758
+ -webkit-box-sizing: border-box;
759
+ box-sizing: border-box;
760
+ }
761
+
762
+ .flatpickr-time input.flatpickr-hour {
763
+ font-weight: bold
764
+ }
765
+
766
+ .flatpickr-time input.flatpickr-minute,
767
+ .flatpickr-time input.flatpickr-second {
768
+ font-weight: 400
769
+ }
770
+
771
+ .flatpickr-time input:focus {
772
+ outline: 0;
773
+ border: 0
774
+ }
775
+
776
+ .flatpickr-time .flatpickr-time-separator,
777
+ .flatpickr-time .flatpickr-am-pm {
778
+ height: inherit;
779
+ display: inline-block;
780
+ float: left;
781
+ line-height: inherit;
782
+ color: #393939;
783
+ font-weight: bold;
784
+ width: 2%;
785
+ -webkit-user-select: none;
786
+ -moz-user-select: none;
787
+ -ms-user-select: none;
788
+ user-select: none;
789
+ -webkit-align-self: center;
790
+ -ms-flex-item-align: center;
791
+ align-self: center
792
+ }
793
+
794
+ .flatpickr-time .flatpickr-am-pm {
795
+ outline: 0;
796
+ width: 18%;
797
+ cursor: pointer;
798
+ text-align: center;
799
+ font-weight: 400
800
+ }
801
+
802
+ .flatpickr-time input:hover,
803
+ .flatpickr-time .flatpickr-am-pm:hover,
804
+ .flatpickr-time input:focus,
805
+ .flatpickr-time .flatpickr-am-pm:focus {
806
+ background: $light-gray
807
+ }
808
+
809
+ .flatpickr-input[readonly] {
810
+ cursor: pointer
811
+ }
812
+
813
+ @-webkit-keyframes fpFadeInDown {
814
+ from {
815
+ opacity: 0;
816
+ -webkit-transform: translate3d(0, -20px, 0);
817
+ transform: translate3d(0, -20px, 0)
818
+ }
819
+
820
+ to {
821
+ opacity: 1;
822
+ -webkit-transform: translate3d(0, 0, 0);
823
+ transform: translate3d(0, 0, 0)
824
+ }
825
+ }
826
+
827
+ @keyframes fpFadeInDown {
828
+ from {
829
+ opacity: 0;
830
+ -webkit-transform: translate3d(0, -20px, 0);
831
+ transform: translate3d(0, -20px, 0)
832
+ }
833
+
834
+ to {
835
+ opacity: 1;
836
+ -webkit-transform: translate3d(0, 0, 0);
837
+ transform: translate3d(0, 0, 0)
838
+ }
839
+ }