alchemy_cms 7.0.11 → 7.1.0.pre.b1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (330) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/backport.yml +36 -0
  3. data/.github/workflows/test.yml +3 -2
  4. data/.gitignore +1 -0
  5. data/.standard.yml +1 -1
  6. data/CHANGELOG.md +144 -15
  7. data/Gemfile +8 -10
  8. data/README.md +10 -8
  9. data/alchemy_cms.gemspec +4 -3
  10. data/app/assets/config/alchemy_manifest.js +0 -1
  11. data/app/assets/javascripts/alchemy/admin.js +1 -19
  12. data/app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee +2 -3
  13. data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +19 -34
  14. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +38 -13
  15. data/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee +1 -1
  16. data/app/assets/javascripts/alchemy/alchemy.fixed_elements.js +32 -25
  17. data/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +1 -1
  18. data/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +3 -5
  19. data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +0 -57
  20. data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +22 -63
  21. data/app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee +2 -2
  22. data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +5 -4
  23. data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +5 -5
  24. data/app/assets/javascripts/alchemy/templates/index.js +0 -2
  25. data/app/assets/javascripts/alchemy/templates/node_folder.hbs +1 -1
  26. data/app/assets/javascripts/alchemy/templates/page.hbs +1 -1
  27. data/app/assets/javascripts/alchemy/templates/page_folder.hbs +2 -2
  28. data/app/assets/stylesheets/alchemy/_custom-properties.scss +82 -0
  29. data/app/assets/stylesheets/alchemy/_mixins.scss +38 -30
  30. data/app/assets/stylesheets/alchemy/_variables.scss +12 -5
  31. data/app/assets/stylesheets/alchemy/admin.scss +3 -4
  32. data/app/assets/stylesheets/alchemy/archive.scss +107 -50
  33. data/app/assets/stylesheets/alchemy/attachments.scss +5 -4
  34. data/app/assets/stylesheets/alchemy/buttons.scss +38 -164
  35. data/app/assets/stylesheets/alchemy/dashboard.scss +31 -6
  36. data/app/assets/stylesheets/alchemy/dialogs.scss +12 -28
  37. data/app/assets/stylesheets/alchemy/elements.scss +273 -282
  38. data/app/assets/stylesheets/alchemy/flash.scss +20 -12
  39. data/app/assets/stylesheets/alchemy/forms.scss +21 -34
  40. data/app/assets/stylesheets/alchemy/frame.scss +11 -32
  41. data/app/assets/stylesheets/alchemy/hints.scss +4 -62
  42. data/app/assets/stylesheets/alchemy/image_library.scss +36 -33
  43. data/app/assets/stylesheets/alchemy/labels.scss +4 -1
  44. data/app/assets/stylesheets/alchemy/menubar.scss +7 -6
  45. data/app/assets/stylesheets/alchemy/navigation.scss +27 -15
  46. data/app/assets/stylesheets/alchemy/nodes.scss +11 -7
  47. data/app/assets/stylesheets/alchemy/notices.scss +16 -4
  48. data/app/assets/stylesheets/alchemy/page-select.scss +10 -2
  49. data/app/assets/stylesheets/alchemy/pagination.scss +22 -13
  50. data/app/assets/stylesheets/alchemy/resource_info.scss +7 -5
  51. data/app/assets/stylesheets/alchemy/selects.scss +49 -42
  52. data/app/assets/stylesheets/alchemy/shoelace.scss +345 -0
  53. data/app/assets/stylesheets/alchemy/sitemap.scss +24 -14
  54. data/app/assets/stylesheets/alchemy/spinner.scss +9 -19
  55. data/app/assets/stylesheets/alchemy/tables.scss +16 -24
  56. data/app/assets/stylesheets/alchemy/tags.scss +4 -0
  57. data/app/assets/stylesheets/alchemy/toolbar.scss +29 -25
  58. data/app/assets/stylesheets/alchemy/upload.scss +140 -89
  59. data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +80 -108
  60. data/app/components/alchemy/admin/node_select.rb +39 -0
  61. data/app/components/alchemy/admin/page_select.rb +42 -0
  62. data/app/controllers/alchemy/admin/base_controller.rb +5 -6
  63. data/app/controllers/alchemy/admin/elements_controller.rb +63 -35
  64. data/app/controllers/alchemy/admin/languages_controller.rb +1 -2
  65. data/app/controllers/alchemy/base_controller.rb +4 -2
  66. data/app/controllers/concerns/alchemy/admin/current_language.rb +1 -5
  67. data/app/controllers/concerns/alchemy/admin/uploader_responses.rb +1 -1
  68. data/app/controllers/concerns/alchemy/site_redirects.rb +1 -1
  69. data/app/decorators/alchemy/element_editor.rb +0 -2
  70. data/app/helpers/alchemy/admin/attachments_helper.rb +6 -5
  71. data/app/helpers/alchemy/admin/base_helper.rb +17 -12
  72. data/app/helpers/alchemy/admin/ingredients_helper.rb +4 -1
  73. data/app/helpers/alchemy/admin/pages_helper.rb +5 -11
  74. data/app/helpers/alchemy/base_helper.rb +47 -13
  75. data/app/javascript/alchemy_admin/components/alchemy_html_element.js +129 -0
  76. data/app/javascript/alchemy_admin/components/button.js +59 -0
  77. data/app/javascript/alchemy_admin/components/char_counter.js +40 -0
  78. data/app/javascript/alchemy_admin/components/datepicker.js +39 -0
  79. data/app/javascript/alchemy_admin/components/dialog_link.js +45 -0
  80. data/app/javascript/alchemy_admin/components/element_editor/publish_element_button.js +36 -0
  81. data/app/javascript/alchemy_admin/components/element_editor.js +553 -0
  82. data/app/javascript/alchemy_admin/components/ingredient_group.js +54 -0
  83. data/app/javascript/alchemy_admin/components/link_buttons/link_button.js +48 -0
  84. data/app/javascript/alchemy_admin/components/link_buttons/unlink_button.js +38 -0
  85. data/app/javascript/alchemy_admin/components/link_buttons.js +79 -0
  86. data/app/javascript/alchemy_admin/components/node_select.js +45 -0
  87. data/app/javascript/alchemy_admin/components/overlay.js +18 -0
  88. data/app/javascript/alchemy_admin/components/page_select.js +63 -0
  89. data/app/javascript/alchemy_admin/components/remote_select.js +134 -0
  90. data/app/javascript/alchemy_admin/components/select.js +12 -0
  91. data/app/javascript/alchemy_admin/components/spinner.js +31 -0
  92. data/app/javascript/alchemy_admin/components/tinymce.js +146 -0
  93. data/app/javascript/alchemy_admin/components/uploader/file_upload.js +266 -0
  94. data/app/javascript/alchemy_admin/components/uploader/progress.js +258 -0
  95. data/app/javascript/alchemy_admin/components/uploader.js +132 -0
  96. data/app/javascript/alchemy_admin/dirty.js +49 -0
  97. data/app/javascript/alchemy_admin/file_editors.js +1 -1
  98. data/app/javascript/alchemy_admin/gui.js +14 -0
  99. data/app/javascript/alchemy_admin/i18n.js +12 -8
  100. data/app/javascript/alchemy_admin/image_cropper.js +6 -3
  101. data/app/javascript/alchemy_admin/image_loader.js +7 -15
  102. data/app/javascript/alchemy_admin/ingredient_anchor_link.js +2 -5
  103. data/app/javascript/alchemy_admin/initializer.js +65 -0
  104. data/app/javascript/alchemy_admin/locales/en.js +31 -0
  105. data/app/javascript/alchemy_admin/picture_editors.js +2 -2
  106. data/app/javascript/alchemy_admin/picture_selector.js +38 -0
  107. data/app/javascript/alchemy_admin/please_wait_overlay.js +8 -0
  108. data/app/javascript/alchemy_admin/sortable_elements.js +78 -0
  109. data/app/javascript/alchemy_admin/spinner.js +36 -0
  110. data/app/javascript/alchemy_admin/tags_autocomplete.js +46 -0
  111. data/app/javascript/alchemy_admin/utils/ajax.js +6 -5
  112. data/app/javascript/alchemy_admin/utils/dom_helpers.js +20 -0
  113. data/app/javascript/alchemy_admin/utils/format.js +11 -0
  114. data/app/javascript/alchemy_admin/utils/string_conversions.js +10 -0
  115. data/app/javascript/alchemy_admin.js +70 -13
  116. data/app/javascript/menubar.js +10 -0
  117. data/app/models/alchemy/attachment.rb +9 -11
  118. data/app/models/alchemy/element.rb +11 -0
  119. data/app/models/alchemy/ingredients/richtext.rb +1 -10
  120. data/app/models/alchemy/node.rb +4 -0
  121. data/app/models/alchemy/page/page_elements.rb +2 -11
  122. data/app/models/alchemy/page/page_natures.rb +10 -2
  123. data/app/models/alchemy/page.rb +9 -49
  124. data/app/models/alchemy/picture/url.rb +1 -9
  125. data/app/serializers/alchemy/page_tree_serializer.rb +2 -1
  126. data/app/services/alchemy/copy_page.rb +98 -0
  127. data/app/views/alchemy/_menubar.html.erb +17 -13
  128. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +14 -10
  129. data/app/views/alchemy/admin/attachments/_attachment.html.erb +44 -36
  130. data/app/views/alchemy/admin/attachments/_replace_button.html.erb +15 -21
  131. data/app/views/alchemy/admin/attachments/archive_overlay.js.erb +0 -1
  132. data/app/views/alchemy/admin/attachments/assign.js.erb +1 -1
  133. data/app/views/alchemy/admin/attachments/index.html.erb +6 -4
  134. data/app/views/alchemy/admin/attachments/show.html.erb +8 -8
  135. data/app/views/alchemy/admin/clipboard/clear.js.erb +1 -1
  136. data/app/views/alchemy/admin/clipboard/index.html.erb +3 -7
  137. data/app/views/alchemy/admin/clipboard/insert.js.erb +1 -1
  138. data/app/views/alchemy/admin/crop.html.erb +1 -1
  139. data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +1 -1
  140. data/app/views/alchemy/admin/dashboard/index.html.erb +13 -11
  141. data/app/views/alchemy/admin/dashboard/info.html.erb +7 -7
  142. data/app/views/alchemy/admin/elements/_add_nested_element_form.html.erb +21 -23
  143. data/app/views/alchemy/admin/elements/_element.html.erb +52 -44
  144. data/app/views/alchemy/admin/elements/_footer.html.erb +1 -1
  145. data/app/views/alchemy/admin/elements/_form.html.erb +1 -1
  146. data/app/views/alchemy/admin/elements/_header.html.erb +11 -12
  147. data/app/views/alchemy/admin/elements/_toolbar.html.erb +33 -45
  148. data/app/views/alchemy/admin/elements/create.js.erb +7 -15
  149. data/app/views/alchemy/admin/elements/destroy.js.erb +0 -2
  150. data/app/views/alchemy/admin/elements/index.html.erb +27 -24
  151. data/app/views/alchemy/admin/elements/new.html.erb +9 -11
  152. data/app/views/alchemy/admin/ingredients/_file_fields.html.erb +2 -2
  153. data/app/views/alchemy/admin/ingredients/_picture_fields.html.erb +3 -3
  154. data/app/views/alchemy/admin/ingredients/_video_fields.html.erb +1 -2
  155. data/app/views/alchemy/admin/languages/_form.html.erb +2 -3
  156. data/app/views/alchemy/admin/languages/_language.html.erb +15 -8
  157. data/app/views/alchemy/admin/languages/_table.html.erb +1 -0
  158. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +28 -16
  159. data/app/views/alchemy/admin/layoutpages/index.html.erb +2 -2
  160. data/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb +12 -8
  161. data/app/views/alchemy/admin/legacy_page_urls/_new.html.erb +1 -1
  162. data/app/views/alchemy/admin/nodes/_form.html.erb +20 -21
  163. data/app/views/alchemy/admin/nodes/_node.html.erb +39 -34
  164. data/app/views/alchemy/admin/nodes/index.html.erb +1 -1
  165. data/app/views/alchemy/admin/pages/_anchor_link.html.erb +4 -4
  166. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +2 -2
  167. data/app/views/alchemy/admin/pages/_current_page.html.erb +1 -1
  168. data/app/views/alchemy/admin/pages/_external_link.html.erb +4 -4
  169. data/app/views/alchemy/admin/pages/_file_link.html.erb +5 -5
  170. data/app/views/alchemy/admin/pages/_form.html.erb +10 -21
  171. data/app/views/alchemy/admin/pages/_internal_link.html.erb +4 -4
  172. data/app/views/alchemy/admin/pages/_locked_page.html.erb +2 -2
  173. data/app/views/alchemy/admin/pages/_new_page_form.html.erb +4 -17
  174. data/app/views/alchemy/admin/pages/_page.html.erb +76 -72
  175. data/app/views/alchemy/admin/pages/_page_infos.html.erb +23 -7
  176. data/app/views/alchemy/admin/pages/_page_layout_filter.html.erb +2 -1
  177. data/app/views/alchemy/admin/pages/_page_status.html.erb +11 -21
  178. data/app/views/alchemy/admin/pages/_publication_fields.html.erb +2 -5
  179. data/app/views/alchemy/admin/pages/_table.html.erb +1 -1
  180. data/app/views/alchemy/admin/pages/_table_row.html.erb +43 -39
  181. data/app/views/alchemy/admin/pages/_toolbar.html.erb +43 -38
  182. data/app/views/alchemy/admin/pages/configure.html.erb +12 -14
  183. data/app/views/alchemy/admin/pages/edit.html.erb +80 -103
  184. data/app/views/alchemy/admin/pages/info.html.erb +20 -11
  185. data/app/views/alchemy/admin/pages/link.html.erb +22 -16
  186. data/app/views/alchemy/admin/pages/new.html.erb +9 -11
  187. data/app/views/alchemy/admin/pages/unlock.js.erb +10 -3
  188. data/app/views/alchemy/admin/partials/_language_tree_select.html.erb +15 -13
  189. data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +3 -5
  190. data/app/views/alchemy/admin/partials/_routes.html.erb +10 -2
  191. data/app/views/alchemy/admin/partials/_site_select.html.erb +6 -5
  192. data/app/views/alchemy/admin/partials/_toolbar_button.html.erb +28 -23
  193. data/app/views/alchemy/admin/pictures/_archive.html.erb +5 -5
  194. data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
  195. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +21 -23
  196. data/app/views/alchemy/admin/pictures/_infos.html.erb +2 -6
  197. data/app/views/alchemy/admin/pictures/_picture.html.erb +15 -17
  198. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +17 -16
  199. data/app/views/alchemy/admin/pictures/_tag_list.html.erb +1 -1
  200. data/app/views/alchemy/admin/pictures/archive_overlay.js.erb +1 -1
  201. data/app/views/alchemy/admin/pictures/assign.js.erb +1 -1
  202. data/app/views/alchemy/admin/pictures/index.html.erb +34 -30
  203. data/app/views/alchemy/admin/pictures/show.html.erb +3 -3
  204. data/app/views/alchemy/admin/resources/_filter.html.erb +2 -2
  205. data/app/views/alchemy/admin/resources/_form.html.erb +2 -2
  206. data/app/views/alchemy/admin/resources/_per_page_select.html.erb +1 -1
  207. data/app/views/alchemy/admin/resources/_resource.html.erb +16 -9
  208. data/app/views/alchemy/admin/resources/_table.html.erb +4 -1
  209. data/app/views/alchemy/admin/resources/index.html.erb +22 -19
  210. data/app/views/alchemy/admin/sites/index.html.erb +2 -1
  211. data/app/views/alchemy/admin/styleguide/index.html.erb +54 -28
  212. data/app/views/alchemy/admin/tags/_tag.html.erb +16 -18
  213. data/app/views/alchemy/admin/tags/index.html.erb +15 -12
  214. data/app/views/alchemy/admin/tinymce/_setup.html.erb +29 -0
  215. data/app/views/alchemy/admin/uploader/_button.html.erb +23 -29
  216. data/app/views/alchemy/admin/uploader/_setup.html.erb +3 -8
  217. data/app/views/alchemy/base/500.html.erb +1 -1
  218. data/app/views/alchemy/base/error_notice.js.erb +0 -1
  219. data/app/views/alchemy/ingredients/_boolean_editor.html.erb +1 -1
  220. data/app/views/alchemy/ingredients/_datetime_editor.html.erb +1 -1
  221. data/app/views/alchemy/ingredients/_file_editor.html.erb +5 -5
  222. data/app/views/alchemy/ingredients/_link_editor.html.erb +1 -1
  223. data/app/views/alchemy/ingredients/_node_editor.html.erb +6 -19
  224. data/app/views/alchemy/ingredients/_page_editor.html.erb +7 -19
  225. data/app/views/alchemy/ingredients/_picture_editor.html.erb +2 -2
  226. data/app/views/alchemy/ingredients/_richtext_editor.html.erb +6 -15
  227. data/app/views/alchemy/ingredients/_select_editor.html.erb +2 -1
  228. data/app/views/alchemy/ingredients/_text_editor.html.erb +1 -1
  229. data/app/views/alchemy/ingredients/shared/_anchor.html.erb +1 -1
  230. data/app/views/alchemy/ingredients/shared/_link_tools.html.erb +10 -20
  231. data/app/views/alchemy/ingredients/shared/_picture_tools.html.erb +42 -49
  232. data/app/views/kaminari/alchemy/_first_page.html.erb +4 -2
  233. data/app/views/kaminari/alchemy/_gap.html.erb +1 -1
  234. data/app/views/kaminari/alchemy/_last_page.html.erb +4 -2
  235. data/app/views/kaminari/alchemy/_next_page.html.erb +4 -2
  236. data/app/views/kaminari/alchemy/_prev_page.html.erb +4 -2
  237. data/app/views/layouts/alchemy/admin.html.erb +10 -29
  238. data/config/alchemy/modules.yml +30 -30
  239. data/config/importmap.rb +10 -1
  240. data/config/initializers/rails_live_reload.rb +13 -0
  241. data/config/locales/alchemy.en.yml +23 -9
  242. data/config/routes.rb +2 -1
  243. data/lib/alchemy/auth_accessors.rb +6 -1
  244. data/lib/alchemy/controller_actions.rb +17 -4
  245. data/lib/alchemy/dev_support/live_reload_watcher.rb +5 -0
  246. data/lib/alchemy/engine.rb +8 -2
  247. data/lib/alchemy/forms/builder.rb +18 -12
  248. data/lib/alchemy/resources_helper.rb +3 -3
  249. data/lib/alchemy/test_support/capybara_helpers.rb +8 -5
  250. data/lib/alchemy/test_support/rspec_matchers.rb +14 -0
  251. data/lib/alchemy/test_support/shared_uploader_examples.rb +1 -1
  252. data/lib/alchemy/tinymce.rb +8 -3
  253. data/lib/alchemy/version.rb +1 -1
  254. data/package.json +14 -5
  255. data/vendor/assets/fonts/remixicon.eot +0 -0
  256. data/vendor/assets/fonts/remixicon.svg +7816 -0
  257. data/vendor/assets/fonts/remixicon.ttf +0 -0
  258. data/vendor/assets/fonts/remixicon.woff +0 -0
  259. data/vendor/assets/fonts/remixicon.woff2 +0 -0
  260. data/vendor/assets/stylesheets/remixicon.scss +10480 -0
  261. metadata +85 -96
  262. data/app/assets/javascripts/alchemy/alchemy.autocomplete.js.coffee +0 -30
  263. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +0 -53
  264. data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +0 -45
  265. data/app/assets/javascripts/alchemy/alchemy.char_counter.js.coffee +0 -19
  266. data/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +0 -59
  267. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +0 -79
  268. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +0 -267
  269. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +0 -27
  270. data/app/assets/javascripts/alchemy/alchemy.spinner.js +0 -32
  271. data/app/assets/javascripts/alchemy/alchemy.tooltips.coffee +0 -10
  272. data/app/assets/javascripts/alchemy/alchemy.uploader.js.coffee +0 -131
  273. data/app/assets/javascripts/alchemy/menubar.js.coffee +0 -8
  274. data/app/assets/javascripts/alchemy/node_select.js +0 -39
  275. data/app/assets/javascripts/alchemy/page_select.js +0 -46
  276. data/app/assets/javascripts/alchemy/templates/node.hbs +0 -16
  277. data/app/assets/javascripts/alchemy/templates/spinner.hbs +0 -7
  278. data/app/assets/stylesheets/alchemy/jquery-ui.scss +0 -435
  279. data/app/javascript/alchemy_admin/datepicker.js +0 -40
  280. data/app/javascript/alchemy_admin/tinymce.js +0 -146
  281. data/app/javascript/alchemy_admin/translations.js +0 -32
  282. data/app/views/alchemy/admin/elements/fold.js.erb +0 -33
  283. data/app/views/alchemy/admin/elements/order.js.erb +0 -11
  284. data/app/views/alchemy/admin/elements/publish.js.erb +0 -21
  285. data/app/views/alchemy/admin/elements/update.js.erb +0 -27
  286. data/vendor/assets/fonts/fa-regular-400.eot +0 -0
  287. data/vendor/assets/fonts/fa-regular-400.svg +0 -803
  288. data/vendor/assets/fonts/fa-regular-400.ttf +0 -0
  289. data/vendor/assets/fonts/fa-regular-400.woff +0 -0
  290. data/vendor/assets/fonts/fa-regular-400.woff2 +0 -0
  291. data/vendor/assets/fonts/fa-solid-900.eot +0 -0
  292. data/vendor/assets/fonts/fa-solid-900.svg +0 -4938
  293. data/vendor/assets/fonts/fa-solid-900.ttf +0 -0
  294. data/vendor/assets/fonts/fa-solid-900.woff +0 -0
  295. data/vendor/assets/fonts/fa-solid-900.woff2 +0 -0
  296. data/vendor/assets/javascripts/fileupload/jquery.fileupload-process.js +0 -178
  297. data/vendor/assets/javascripts/fileupload/jquery.fileupload-validate.js +0 -125
  298. data/vendor/assets/javascripts/fileupload/jquery.fileupload.js +0 -1502
  299. data/vendor/assets/javascripts/fileupload/jquery.iframe-transport.js +0 -224
  300. data/vendor/assets/javascripts/jquery-ui/data.js +0 -45
  301. data/vendor/assets/javascripts/jquery-ui/ie.js +0 -20
  302. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -51
  303. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -49
  304. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -46
  305. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -27
  306. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -50
  307. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -54
  308. data/vendor/assets/javascripts/jquery-ui/version.js +0 -20
  309. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -754
  310. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1268
  311. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -241
  312. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1623
  313. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
  314. data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo.min.js +0 -7
  315. data/vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js +0 -296
  316. data/vendor/assets/stylesheets/fontawesome/_animated.scss +0 -20
  317. data/vendor/assets/stylesheets/fontawesome/_bordered-pulled.scss +0 -20
  318. data/vendor/assets/stylesheets/fontawesome/_core.scss +0 -21
  319. data/vendor/assets/stylesheets/fontawesome/_fixed-width.scss +0 -6
  320. data/vendor/assets/stylesheets/fontawesome/_icons.scss +0 -1441
  321. data/vendor/assets/stylesheets/fontawesome/_larger.scss +0 -23
  322. data/vendor/assets/stylesheets/fontawesome/_list.scss +0 -18
  323. data/vendor/assets/stylesheets/fontawesome/_mixins.scss +0 -56
  324. data/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss +0 -24
  325. data/vendor/assets/stylesheets/fontawesome/_screen-reader.scss +0 -5
  326. data/vendor/assets/stylesheets/fontawesome/_stacked.scss +0 -31
  327. data/vendor/assets/stylesheets/fontawesome/_variables.scss +0 -1458
  328. data/vendor/assets/stylesheets/fontawesome/fontawesome.scss +0 -16
  329. data/vendor/assets/stylesheets/fontawesome/regular.scss +0 -23
  330. data/vendor/assets/stylesheets/fontawesome/solid.scss +0 -24
@@ -25,23 +25,25 @@
25
25
  }
26
26
  }
27
27
 
28
- #element_area {
29
- height: calc(100vh - #{$top-menu-height + $toolbar-height});
30
- overflow-x: hidden;
31
- overflow-y: auto;
32
- -webkit-overflow-scrolling: touch;
28
+ .elements-window-toolbar {
29
+ @extend %gradiated-toolbar;
30
+ display: flex;
31
+ padding: 2 * $default-padding;
32
+ border-bottom: $default-border;
33
33
 
34
+ .right {
35
+ display: inline-block;
36
+ margin-left: auto;
37
+ }
38
+ }
39
+
40
+ #element_area {
34
41
  .sortable-elements {
35
- min-height: 100px;
42
+ min-height: 100%;
36
43
  }
37
44
 
38
45
  textarea {
39
46
  width: 100%;
40
-
41
- &.has_tinymce {
42
- // We need to do this, because globally all texareas have height: auto !important
43
- height: 140px !important;
44
- }
45
47
  }
46
48
 
47
49
  > .message {
@@ -49,23 +51,34 @@
49
51
  }
50
52
  }
51
53
 
52
- #main-content-elements,
53
- .element-editor.is-fixed .nestable-elements {
54
+ alchemy-tinymce {
55
+ display: block;
56
+ }
57
+
58
+ #main-content-elements {
59
+ --scrollable-elements-offset: #{$top-menu-height + $toolbar-height};
54
60
  padding: 2 * $default-padding $default-padding 2px;
55
61
  }
56
62
 
63
+ #fixed-elements sl-tab-panel {
64
+ --scrollable-elements-offset: #{$top-menu-height + $toolbar-height +
65
+ $tab-bar-height};
66
+ }
67
+
68
+ .scrollable-elements {
69
+ overflow-x: hidden;
70
+ overflow-y: auto;
71
+ -webkit-overflow-scrolling: touch;
72
+ height: calc(100vh - var(--scrollable-elements-offset, 0));
73
+ }
74
+
57
75
  .element-title {
76
+ flex-grow: 1;
58
77
  overflow: hidden;
59
78
  white-space: nowrap;
60
- max-width: 85%;
61
- margin-left: $default-margin;
62
79
  text-overflow: ellipsis;
63
80
  transition: color $transition-duration;
64
81
 
65
- .has-hint & {
66
- max-width: 80%;
67
- }
68
-
69
82
  .preview_text_quote {
70
83
  font-size: $small-font-size;
71
84
  line-height: 15px;
@@ -78,44 +91,40 @@
78
91
  line-height: 15px;
79
92
  }
80
93
 
81
- .element-handle,
82
- .element-title {
83
- display: inline-block;
84
- vertical-align: middle;
94
+ .element-handle {
95
+ display: inline-flex;
96
+ cursor: move;
97
+ padding-right: $default-padding;
85
98
  }
86
99
 
87
- .element-handle {
100
+ .element-toggle {
101
+ width: 20px;
102
+ height: 20px;
103
+ display: flex;
104
+ align-items: center;
88
105
  position: relative;
89
- width: 18px;
90
- height: 18px;
106
+ transition: none;
107
+ background: none;
108
+ border-color: transparent;
109
+ color: inherit;
110
+ box-shadow: none;
111
+ padding: 0;
112
+ margin: 0;
91
113
 
92
- .element.icon {
93
- position: absolute;
94
- top: 3px;
95
- left: 1px;
114
+ &:hover {
115
+ &:not(:focus):not(:active) {
116
+ background-color: $default-border-color;
117
+ border-color: transparent;
118
+ cursor: pointer;
119
+ }
96
120
  }
97
- }
98
-
99
- .draggable .element-handle {
100
- cursor: move;
101
- }
102
121
 
103
- .ajax-folder {
104
- position: absolute;
105
- width: 16px;
106
- height: 16px;
107
- right: 8px;
108
- top: 10px;
109
- transition: none;
122
+ .icon {
123
+ pointer-events: none;
110
124
 
111
- .error_icon {
112
- float: left;
113
- width: 14px;
114
- height: 15px;
115
- text-align: center;
116
- background-color: white;
117
- border: 1px solid #935b5b;
118
- color: #935b5b;
125
+ &.hidden {
126
+ display: none;
127
+ }
119
128
  }
120
129
  }
121
130
 
@@ -124,38 +133,40 @@
124
133
  border: 1px solid $default-border-color;
125
134
  border-radius: $default-border-radius;
126
135
  background-color: $light-gray;
127
- margin-bottom: 2 * $default-margin;
136
+ margin: 2 * $default-margin 0;
128
137
  transition: box-shadow $transition-duration;
138
+ scroll-margin: 2 * $default-margin;
139
+
140
+ &:first-child {
141
+ margin-top: 0;
142
+ }
129
143
 
130
144
  &.hidden {
131
145
  display: block;
132
146
  border-style: dashed;
133
- opacity: 0.5;
147
+ opacity: 0.7;
134
148
  transition: opacity $transition-duration;
135
149
 
150
+ &:hover {
151
+ opacity: 1;
152
+ }
153
+
136
154
  > .element-header {
137
155
  background-color: transparent;
138
- background-image: linear-gradient(
139
- 45deg,
140
- $light-gray 25%,
141
- $medium-gray 25%,
142
- $medium-gray 50%,
143
- $light-gray 50%,
144
- $light-gray 75%,
145
- $medium-gray 75%,
146
- $medium-gray 100%
147
- );
148
- background-size: 28.28px 28.28px;
149
- }
150
156
 
151
- &:hover {
152
- opacity: 1;
157
+ .element-hidden-icon {
158
+ display: inline;
159
+ }
153
160
  }
154
161
  }
155
162
 
156
163
  &.is-fixed {
157
164
  border-width: 0;
158
165
  border-radius: 0;
166
+
167
+ .nestable-elements {
168
+ padding: 2 * $default-padding $default-padding / 2;
169
+ }
159
170
  }
160
171
 
161
172
  &.not-draggable {
@@ -190,13 +201,15 @@
190
201
  }
191
202
 
192
203
  &.selected:not(.is-fixed),
193
- &:hover {
204
+ &:hover:not(.is-fixed) {
194
205
  &:not(.hidden) {
195
206
  box-shadow: 0 2px 8px rgba(#9b9b9b, 0.75);
196
207
  }
197
208
  }
198
209
 
199
- &.selected:not(.is-fixed):not(.folded):not(.dirty):not(.hidden):not(.deprecated) {
210
+ &.selected:not(.is-fixed):not(.folded):not(.dirty):not(.hidden):not(
211
+ .deprecated
212
+ ) {
200
213
  > .element-header {
201
214
  background-color: $element-header-active-bg-color;
202
215
  color: $element-header-active-color;
@@ -204,6 +217,11 @@
204
217
  }
205
218
 
206
219
  &.folded {
220
+ .element-toolbar,
221
+ .element-body,
222
+ .element-footer,
223
+ .nestable-elements,
224
+ .message,
207
225
  .nested-elements {
208
226
  display: none;
209
227
  }
@@ -214,38 +232,45 @@
214
232
  .nestable-elements {
215
233
  box-shadow: inset 0 4px 8px -2px darken($medium-gray, 15%);
216
234
  background-color: $medium-gray;
217
- padding: 8px 4px 4px;
218
-
219
- .add-nestable-element-button {
220
- width: calc(50% - 8px);
221
- margin: 4px;
222
- text-align: center;
223
- }
235
+ padding: $default-padding;
224
236
  }
225
237
  }
226
238
  }
227
239
 
228
240
  &.dragged {
229
- border-style: dotted;
230
- overflow: hidden;
241
+ border: 1px solid var(--color-grey_dark);
242
+ background-color: var(--color-grey_medium);
243
+ opacity: 0.5;
244
+ box-shadow: none !important;
231
245
 
232
246
  &:not(.compact) {
233
- height: 36px !important;
234
- transition: height 0.2s;
247
+ height: 36px;
248
+ overflow: hidden;
249
+ }
250
+
251
+ * {
252
+ visibility: hidden;
235
253
  }
236
254
  }
237
255
 
238
256
  &.compact {
257
+ .element-hidden-label {
258
+ display: none;
259
+ }
260
+
239
261
  .element-toolbar {
240
262
  visibility: hidden;
241
263
  position: absolute;
242
264
  height: 35px;
243
- padding: 2px 0;
244
265
  opacity: 0;
245
266
  z-index: 1;
246
- border-bottom: $default-border;
267
+ box-shadow: 0 1px 1px $default-border-color;
247
268
  background-color: $light-gray;
248
269
  transition: all $transition-duration;
270
+
271
+ sl-switch::part(label) {
272
+ display: none;
273
+ }
249
274
  }
250
275
 
251
276
  .element-header:hover + .element-toolbar,
@@ -263,15 +288,11 @@
263
288
  }
264
289
  }
265
290
 
266
- .element-title {
267
- max-width: 75%;
268
- }
269
-
270
- &:not(.folded) .ajax-folder {
291
+ &:not(.folded) .element-toggle {
271
292
  pointer-events: none;
272
293
 
273
294
  i:before {
274
- content: fa-content($fa-var-ellipsis-v);
295
+ content: $ri-more-2-line;
275
296
  }
276
297
  }
277
298
 
@@ -280,16 +301,25 @@
280
301
  }
281
302
 
282
303
  .ingredient-editor,
283
- .picture_thumbnail {
304
+ .ingredient-editor.picture .picture_thumbnail {
284
305
  width: 100%;
285
306
  }
286
307
 
287
- .picture_thumbnail {
288
- margin: 0;
308
+ .ingredient-editor.picture {
309
+ padding-right: 1px;
310
+
311
+ alchemy-link-buttons {
312
+ width: 33.333%;
313
+ flex-wrap: nowrap;
314
+ display: inline-flex;
315
+ justify-content: space-between;
316
+ }
289
317
  }
290
318
 
291
- .thumbnail_background {
292
- height: 115px;
319
+ .picture_thumbnail {
320
+ img {
321
+ width: auto;
322
+ }
293
323
  }
294
324
 
295
325
  textarea,
@@ -351,7 +381,9 @@
351
381
  }
352
382
 
353
383
  .element-header {
354
- position: relative;
384
+ display: flex;
385
+ gap: $default-padding;
386
+ align-items: center;
355
387
  padding: 2 * $default-padding;
356
388
  background-color: $element-header-bg-color;
357
389
  @extend .disable-user-select;
@@ -368,38 +400,37 @@
368
400
  color: inherit;
369
401
  transition: color $transition-duration;
370
402
  }
403
+ }
371
404
 
372
- > .hint-with-icon {
373
- position: absolute;
374
- right: 32px;
375
- top: 10px;
376
-
377
- .hint-bubble {
378
- left: auto;
379
- right: -24px;
380
- transform: none;
381
-
382
- &:before {
383
- left: auto;
384
- right: 24px;
385
- transform: none;
386
- }
387
- }
388
- }
405
+ .element-hidden-icon {
406
+ display: none;
407
+ white-space: nowrap;
389
408
  }
390
409
 
391
410
  .element-toolbar {
392
- padding: $default-padding 0;
411
+ display: flex;
412
+ width: 100%;
413
+ padding: $default-padding;
414
+ gap: $default-padding;
393
415
  height: $element-toolbar-height;
416
+ border-top: 1px solid $medium-gray;
417
+
418
+ .is-fixed & {
419
+ border-top-width: 0;
420
+ }
421
+
394
422
  border-bottom: 1px solid $medium-gray;
395
423
  }
396
424
 
397
- .element_tools {
398
- display: flex;
399
- width: 100%;
425
+ alchemy-publish-element-button {
426
+ display: inline-flex;
427
+ align-items: center;
428
+ margin-left: auto;
429
+ margin-right: $default-margin;
400
430
 
401
- .button_with_label {
402
- margin: 0 2px;
431
+ sl-switch {
432
+ --thumb-size: 10px;
433
+ --height: 12px;
403
434
  }
404
435
  }
405
436
 
@@ -424,7 +455,7 @@
424
455
  padding-bottom: 0;
425
456
  }
426
457
 
427
- .ingredient-group-header {
458
+ summary {
428
459
  display: flex;
429
460
  align-items: center;
430
461
  justify-content: space-between;
@@ -433,17 +464,13 @@
433
464
  padding: $default-padding 1px;
434
465
  }
435
466
 
436
- .ingredient-group-ingredients {
437
- display: none;
438
- }
439
-
440
- &.expanded {
441
- .ingredient-group-ingredients {
442
- display: block;
467
+ &[open] {
468
+ .ingredient-group-expand::before {
469
+ content: $ri-arrow-down-s-line;
443
470
  }
444
471
 
445
- .ingredient-group-expand {
446
- @extend .fa-angle-up;
472
+ > :not(summary) {
473
+ box-sizing: border-box;
447
474
  }
448
475
  }
449
476
  }
@@ -453,14 +480,6 @@
453
480
  flex-wrap: wrap;
454
481
  }
455
482
 
456
- .picture_thumbnail .picture_image {
457
- overflow: hidden;
458
-
459
- img.img_paddingtop {
460
- @extend .disable-user-select;
461
- }
462
- }
463
-
464
483
  #fixed-elements {
465
484
  min-height: 100px;
466
485
  }
@@ -472,66 +491,56 @@
472
491
  right: 0;
473
492
 
474
493
  .icon_button {
475
- @include button-defaults(
476
- $background-color: $medium-gray,
477
- $hover-color: darken($medium-gray, 5%),
478
- $border: 1px solid #c0c0c0,
479
- $box-shadow: none,
480
- $hover-border-color: #c0c0c0,
481
- $line-height: 30px,
482
- $padding: 0,
483
- $margin: 0,
484
- $border-radius: 0,
485
- $focus-border-color: $focus-color,
486
- $focus-box-shadow: 0 0 0 2px $focus-color
487
- );
488
- width: $form-field-addon-width;
489
- height: $form-field-height;
490
-
491
- &.disabled,
492
- &.disabled:hover {
493
- background-color: $form-field-disabled-bg-color;
494
- }
494
+ &:not(.linked) {
495
+ background-color: $medium-gray;
496
+ border-color: $default-border-color;
497
+ border-width: $form-field-border-width;
498
+ border-style: $form-field-border-style;
499
+ box-shadow: none;
500
+ padding: 0;
501
+ margin: 0;
502
+ border-radius: 0;
503
+ width: $form-field-addon-width;
504
+ height: $form-field-height;
495
505
 
496
- &.linked.link-ingredient {
497
- @include linked-button(
498
- $border-radius: 0,
499
- $line-height: 30px,
500
- $padding: 0
501
- );
506
+ &:hover {
507
+ border-color: #c0c0c0;
508
+ }
502
509
 
503
510
  &:focus {
504
- border-radius: 0;
511
+ box-shadow: 0 0 0 2px $focus-color;
512
+ border-color: $focus-color;
505
513
  }
506
- }
507
514
 
508
- &.linked.unlink-ingredient {
509
- @include linked-button(
510
- $border-radius: 0 $default-border-radius $default-border-radius 0,
511
- $line-height: 30px,
512
- $padding: 0
513
- );
515
+ &[is="alchemy-unlink-button"] {
516
+ border-left-width: 0;
517
+ @extend .right-rounded-border;
518
+ }
514
519
 
515
- &:focus {
516
- border-radius: 0 $default-border-radius $default-border-radius 0;
520
+ &.disabled,
521
+ &.disabled:hover {
522
+ background-color: $form-field-disabled-bg-color;
517
523
  }
518
524
  }
519
525
 
520
- &.unlink-ingredient {
521
- border-left-width: 0;
522
- @extend .right-rounded-border;
526
+ &.linked {
527
+ height: 31px;
528
+ padding: 0;
529
+ border-radius: 0;
530
+ border-color: rgba(187, 162, 102, 0.5);
531
+
532
+ &[is="alchemy-unlink-button"] {
533
+ border-radius: 0 $default-border-radius $default-border-radius 0;
534
+ border-left-width: 0;
535
+
536
+ &:focus {
537
+ border-radius: 0 $default-border-radius $default-border-radius 0;
538
+ }
539
+ }
523
540
  }
524
541
  }
525
542
  }
526
543
 
527
- .droppable_element_placeholder {
528
- height: 36px;
529
- border: 1px dotted $button-border-color;
530
- background-color: $medium-gray;
531
- margin-bottom: 2 * $default-margin;
532
- border-radius: $default-border-radius;
533
- }
534
-
535
544
  .edit_images_bottom {
536
545
  position: absolute;
537
546
  display: flex;
@@ -540,46 +549,68 @@
540
549
  bottom: 0;
541
550
  z-index: 0;
542
551
  width: 100%;
543
- padding: $default-padding $default-padding/2;
544
-
545
- a {
546
- margin: 0 $default-padding/2;
547
- padding: $default-padding/2;
548
- cursor: pointer;
549
-
550
- &.linked {
551
- border-radius: $default-border-radius;
552
- background-color: $linked-color;
553
- }
552
+ padding: $default-padding;
553
+ background-color: #fff;
554
+ border-bottom-left-radius: $default-border-radius;
555
+ border-bottom-right-radius: $default-border-radius;
554
556
 
555
- &.disabled {
556
- opacity: 0.3;
557
- cursor: default;
558
- }
557
+ .icon_button {
558
+ width: 26px;
559
+ height: 26px;
559
560
  }
560
561
  }
561
562
 
562
563
  .ingredient-editor.picture {
563
564
  position: relative;
565
+ width: 50%;
566
+ padding-left: 1px; // Compensate the box shadow
567
+
568
+ + .picture {
569
+ padding-left: $default-padding;
570
+ padding-right: 1px; // Compensate the box shadow
571
+ }
564
572
 
565
573
  .picture_thumbnail {
574
+ --picture-width: 160px;
575
+ --picture-height: 120px;
566
576
  display: inline-block;
567
577
  width: 160px;
568
578
  margin: $default-margin 0;
569
- padding-bottom: 28px;
579
+ padding: 0;
580
+ padding-bottom: 34px;
581
+ box-shadow: 0 0 1px 1px $default-border-color;
582
+
583
+ .picture_image {
584
+ overflow: hidden;
585
+ border-top-right-radius: var(--picture-thumbnail-border-radius);
586
+ border-top-left-radius: var(--picture-thumbnail-border-radius);
587
+
588
+ img.img_paddingtop {
589
+ @extend .disable-user-select;
590
+ }
591
+ }
592
+
593
+ img {
594
+ --picture-thumbnail-border-radius: 0;
595
+ }
570
596
  }
571
597
 
572
598
  &.validation_failed .picture_thumbnail {
573
599
  border-color: $error_border_color;
574
600
  }
575
601
 
576
- .thumbnail_background .icon {
577
- font-size: 4em;
578
- color: $medium-gray;
579
- vertical-align: top;
602
+ .thumbnail_background {
603
+ --picture-thumbnail-border-radius: 0;
604
+ height: 120px;
605
+
606
+ .icon {
607
+ font-size: 4em;
608
+ color: $medium-gray;
609
+ vertical-align: top;
580
610
 
581
- &.error {
582
- font-size: 1.2em;
611
+ &.error {
612
+ font-size: 1.2em;
613
+ }
583
614
  }
584
615
  }
585
616
 
@@ -642,7 +673,9 @@
642
673
  .file {
643
674
  display: flex;
644
675
  align-items: center;
676
+ gap: $default-padding;
645
677
  margin: 6px 0 $default-margin;
678
+ padding: 0 $default-padding 0 2 * $default-padding;
646
679
  border: $default-border;
647
680
  background-color: $white;
648
681
  border-radius: $default-border-radius;
@@ -654,16 +687,13 @@
654
687
  }
655
688
  }
656
689
 
657
- .file_icon {
658
- text-align: center;
659
- width: 24px;
660
- padding: $default-padding;
661
- }
662
-
663
690
  .file_name {
691
+ display: inline-flex;
692
+ flex-grow: 1;
693
+ height: 100%;
694
+ align-items: center;
664
695
  white-space: nowrap;
665
696
  overflow: hidden;
666
- max-width: 80%;
667
697
  font-size: $small-font-size;
668
698
  text-overflow: ellipsis;
669
699
  padding: $default-padding;
@@ -677,16 +707,15 @@
677
707
 
678
708
  .file_tools {
679
709
  display: flex;
710
+ gap: $default-padding;
680
711
  align-items: center;
681
- margin-left: auto;
682
712
  background-color: white;
683
- width: 48px;
684
713
  border-radius: 0 $default-border-radius $default-border-radius 0;
685
714
 
686
715
  a {
687
716
  text-align: center;
688
717
  text-decoration: none;
689
- padding: $default-padding;
718
+ width: 24px;
690
719
  }
691
720
  }
692
721
 
@@ -825,51 +854,17 @@ select.long {
825
854
  margin-bottom: 2 * $default-margin;
826
855
  }
827
856
 
857
+ select,
828
858
  .select2-container {
829
859
  width: 100%;
830
860
  }
831
861
 
832
- &.display_inline .select2-container {
833
- width: 170px;
834
- }
835
- }
836
-
837
- select.ingredient-editor-select {
838
- border-radius: $default-border-radius;
839
- background: white;
840
- border: 1px solid $button-border-color;
841
- font-size: $default-font-size;
842
- height: 21px;
843
- line-height: 21px;
844
- padding: 2px;
845
-
846
- optgroup {
847
- color: gray;
848
- font-style: normal;
849
- font-weight: bold;
850
- text-indent: 8px;
851
-
852
- option {
853
- text-indent: 24px;
862
+ &.display_inline {
863
+ select,
864
+ .select2-container {
865
+ width: 170px;
854
866
  }
855
867
  }
856
-
857
- option {
858
- padding-top: 2px;
859
- padding-bottom: 2px;
860
- color: black;
861
- }
862
- }
863
-
864
- &.picture {
865
- width: 50%;
866
- padding-left: 1px; // Compensate the box shadow
867
- padding-right: $default-padding;
868
-
869
- + .picture {
870
- padding-left: $default-padding;
871
- padding-right: 1px; // Compensate the box shadow
872
- }
873
868
  }
874
869
  }
875
870
 
@@ -896,7 +891,6 @@ textarea.has_tinymce {
896
891
  }
897
892
 
898
893
  .element_errors {
899
- display: none;
900
894
  margin-top: 8px;
901
895
  margin-bottom: 8px;
902
896
  background-color: $error_background_color;
@@ -906,27 +900,16 @@ textarea.has_tinymce {
906
900
  color: $error_text_color;
907
901
  border: 1px solid $error_border_color;
908
902
 
903
+ &.hidden {
904
+ display: none;
905
+ }
906
+
909
907
  p {
910
908
  margin: 0;
911
909
  line-height: 24px;
912
910
  }
913
911
  }
914
912
 
915
- .ingredient-editor .hint-with-icon,
916
- .ingredient-editor .with-hint,
917
- .element-handle .hint-with-icon {
918
- margin: 0;
919
-
920
- > .hint-bubble {
921
- left: -7px;
922
- transform: none;
923
-
924
- &:before {
925
- left: 16px;
926
- }
927
- }
928
- }
929
-
930
913
  .is-fixed {
931
914
  &.with-ingredients {
932
915
  > .element-footer {
@@ -934,15 +917,10 @@ textarea.has_tinymce {
934
917
  border-bottom: 1px solid $medium-gray;
935
918
  }
936
919
  }
937
-
938
- > .nestable-elements .add-nestable-element-button {
939
- width: 100%;
940
- text-align: center;
941
- }
942
920
  }
943
921
 
944
- .element-editor,
945
- .droppable_element_placeholder {
922
+ .element-editor {
923
+ display: block;
946
924
  width: 100%;
947
925
 
948
926
  .not-fixed & {
@@ -955,22 +933,35 @@ textarea.has_tinymce {
955
933
  }
956
934
  }
957
935
 
936
+ .nestable-elements {
937
+ .add-nestable-element-button {
938
+ width: 100%;
939
+ text-align: center;
940
+ margin: 0;
941
+ }
942
+ }
943
+
958
944
  .nested-elements {
959
945
  display: flex;
960
946
  flex-wrap: wrap;
961
947
 
948
+ &.droppable-elements {
949
+ border-radius: var(--border-radius_medium);
950
+ }
951
+
962
952
  .element-editor {
963
953
  position: relative;
954
+ margin: $default-margin;
964
955
  }
956
+ }
965
957
 
966
- .element-header {
967
- background-color: transparent;
968
- }
958
+ .add-nested-element {
959
+ padding: $default-padding;
960
+ }
969
961
 
970
- .element-toolbar {
971
- width: 100%;
972
- border-top: 1px solid $medium-gray;
973
- }
962
+ .droppable-elements {
963
+ min-height: 36px;
964
+ background-color: var(--color-yellow_light);
974
965
  }
975
966
 
976
967
  .ingredient-date--label,