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
@@ -7,15 +7,19 @@ div#flash_notices {
7
7
 
8
8
  .flash.error {
9
9
  cursor: pointer;
10
- padding-right: 24px;
10
+ padding-right: 32px;
11
11
 
12
12
  &:before {
13
- content: fa-content($fa-var-times);
13
+ display: flex;
14
14
  position: absolute;
15
- right: 2*$default-padding;
16
- top: 11px;
17
- font-size: $small-font-size;
18
- font-family: 'Font Awesome 5 Free';
15
+ right: 2 * $default-padding;
16
+ top: 7px;
17
+ width: 20px;
18
+ height: 20px;
19
+ font-family: "remixicon";
20
+ content: $ri-close-line;
21
+ align-items: center;
22
+ justify-content: center;
19
23
  }
20
24
  }
21
25
  }
@@ -23,22 +27,24 @@ div#flash_notices {
23
27
  div.flash {
24
28
  border-radius: $default-border-radius;
25
29
  opacity: 0.95;
26
- padding: 8px 8px 8px 30px;
30
+ padding: 8px 16px 8px 32px;
27
31
  font-weight: bold;
28
32
  border-width: 1px;
29
33
  border-style: solid;
30
34
  z-index: 1000;
31
- margin: $default-margin $default-margin 2*$default-margin;
35
+ margin: $default-margin $default-margin 2 * $default-margin;
32
36
  position: relative;
33
37
  min-height: 2.6em;
34
- word-break: break-all;
38
+ word-break: break-word;
35
39
  transition-property: opacity, transform;
36
40
  transition-duration: 0.4s;
41
+ line-height: 1.5;
37
42
 
38
43
  .icon {
39
44
  position: absolute;
40
- top: 10px;
41
- left: 8px;
45
+ top: 5px;
46
+ left: 2 * $default-padding;
47
+ vertical-align: bottom;
42
48
  color: inherit;
43
49
  }
44
50
 
@@ -66,7 +72,9 @@ div.flash {
66
72
  background-color: $info_background_color;
67
73
  }
68
74
 
69
- &.warn, &.warning, &.alert {
75
+ &.warn,
76
+ &.warning,
77
+ &.alert {
70
78
  border-color: $warning_border_color;
71
79
  color: $warning_text_color;
72
80
  background-color: $warning_background_color;
@@ -23,20 +23,21 @@ form {
23
23
  padding: $default-padding 0;
24
24
  @include clearfix;
25
25
 
26
- > input[type="url"],
27
- > input[type="number"],
28
- > input[type="text"],
29
- > input[type="email"],
30
- > input[type="password"],
31
- > textarea,
32
- > .select2-container,
33
- > .autocomplete_tag_list,
34
- > .mce-tinymce,
35
- > .with-hint {
26
+ input[type="url"],
27
+ input[type="number"],
28
+ input[type="text"],
29
+ input[type="email"],
30
+ input[type="password"],
31
+ textarea,
32
+ select,
33
+ .select2-container,
34
+ .autocomplete_tag_list,
35
+ .tinymce_container {
36
36
  width: $form-right-width;
37
37
  float: right;
38
38
  }
39
39
 
40
+ .input > select,
40
41
  .input > .select2-container {
41
42
  width: 100%;
42
43
  }
@@ -52,6 +53,7 @@ form {
52
53
  line-height: 16px;
53
54
  }
54
55
 
56
+ select,
55
57
  .select2-container {
56
58
  margin: 4px 0;
57
59
  }
@@ -127,10 +129,11 @@ form {
127
129
  width: $form-field-addon-width;
128
130
  position: absolute;
129
131
  bottom: 2 * $default-padding;
132
+ --select-background-image: none;
130
133
 
131
134
  select {
132
135
  width: 100%;
133
- padding: 0 2px;
136
+ padding: 0;
134
137
  text-align: center;
135
138
  }
136
139
 
@@ -165,16 +168,6 @@ form {
165
168
  }
166
169
  }
167
170
 
168
- .input > .with-hint,
169
- .checkbox > .with-hint {
170
- cursor: default;
171
-
172
- input,
173
- textarea {
174
- cursor: not-allowed;
175
- }
176
- }
177
-
178
171
  .inline-input {
179
172
  @include clearfix;
180
173
  margin: 0 -1 * $default-margin;
@@ -231,12 +224,17 @@ form {
231
224
  }
232
225
 
233
226
  .input-column {
234
- float: left;
235
227
  padding: 0 $default-padding;
236
- width: 50%;
228
+
229
+ input[type] {
230
+ float: none;
231
+ width: 100%;
232
+ }
237
233
  }
238
234
 
239
235
  .input-row {
236
+ display: flex;
237
+
240
238
  .input-column {
241
239
  &:first-of-type {
242
240
  padding-left: 0;
@@ -249,17 +247,6 @@ form {
249
247
  }
250
248
  }
251
249
 
252
- // styles for link overlay selects
253
- .window_form {
254
- td.checkbox {
255
- text-align: left;
256
- }
257
-
258
- .select2-container {
259
- width: 100%;
260
- }
261
- }
262
-
263
250
  .input-column > label {
264
251
  display: block;
265
252
  margin-top: $default-margin + 1;
@@ -1,13 +1,12 @@
1
- div#overlay {
1
+ alchemy-overlay {
2
2
  display: none;
3
3
  position: fixed;
4
- left: 0px;
5
- top: 0px;
4
+ left: 0;
5
+ top: 0;
6
6
  width: 100%;
7
7
  height: 100%;
8
8
  z-index: 400000;
9
9
  background-color: rgba(229, 229, 229, 0.4);
10
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #40E5E5E5, endColorstr = #40E5E5E5);
11
10
  }
12
11
 
13
12
  div#overlay_text_box {
@@ -44,7 +43,6 @@ div#overlay_text_box {
44
43
  #header {
45
44
  display: flex;
46
45
  height: $header-height;
47
- line-height: $header-height;
48
46
  background: $header-background;
49
47
  border-bottom: $default-border;
50
48
  position: relative;
@@ -54,28 +52,18 @@ div#overlay_text_box {
54
52
  }
55
53
 
56
54
  .page_status_and_name {
57
- padding: 0 8px;
55
+ align-items: end;
56
+ padding: $default-padding 2 * $default-padding;
58
57
  background-color: $medium-gray;
59
58
  text-shadow: $text-shadow-light;
60
59
  @extend .disable-user-select;
61
60
  @extend .locked_page;
62
61
  cursor: default;
63
62
  border-bottom-color: $toolbar-bg-color;
64
-
65
- .hint-bubble {
66
- left: -40px;
67
- transform: none;
68
-
69
- &:before {
70
- left: 47px;
71
- }
72
- }
73
63
  }
74
64
 
75
65
  .page_name {
76
- display: inline-block;
77
66
  margin-right: $default-margin;
78
- line-height: $header-height;
79
67
  white-space: nowrap;
80
68
  overflow: hidden;
81
69
  text-overflow: ellipsis;
@@ -97,31 +85,22 @@ div#overlay_text_box {
97
85
  }
98
86
 
99
87
  #user_info {
88
+ display: flex;
89
+ align-items: center;
100
90
  height: $header-height;
101
- font-size: $small-font-size;
102
- padding-left: 2*$default-padding;
91
+ padding-left: 2 * $default-padding;
103
92
  margin-left: auto;
104
93
  border-bottom: $default-border;
105
94
  background-color: $header-background;
106
95
 
107
- .select2-container, select {
108
- height: $form-field-height;
109
- margin-top: -3px;
110
- }
111
-
112
- .select2-choice, select {
113
- background: transparent;
96
+ select {
97
+ background-color: transparent;
114
98
  border: none;
115
99
  border-radius: 0;
116
100
  border-left: $default-border;
117
- height: $header-height;
118
- }
119
-
120
- .select2-choice {
121
- line-height: 2;
122
101
  }
123
102
 
124
103
  .current-user-name {
125
- padding-right: 2*$default-padding;
104
+ padding-right: 2 * $default-padding;
126
105
  }
127
106
  }
@@ -1,63 +1,5 @@
1
- .hint-with-icon {
2
- @extend .with-hint;
3
- display: inline-block;
4
- width: 16px;
5
- height: 16px;
6
- margin: 0 $default-margin;
7
-
8
- .toolbar_buttons & {
9
- margin: 0 2*$default-margin;
10
- }
11
-
12
- > .icon {
13
- text-indent: 0;
14
- }
15
- }
16
-
17
- .with-hint {
18
- position: relative;
19
-
20
- &:hover {
21
- cursor: help;
22
-
23
- > .hint-bubble {
24
- @include hint-hover-style;
25
- }
26
- }
27
-
28
- > .hint-bubble {
29
- visibility: hidden;
30
- background-color: $hint-background-color;
31
- color: $hint-text-color;
32
- border-radius: $default-border-radius;
33
- box-shadow: 0px 4px 8px rgba(0, 0, 0, .3);
34
- position: absolute;
35
- left: 50%;
36
- transform: translateX(-50%);
37
- top: 20px;
38
- z-index: 100;
39
- padding: 8px;
40
- line-height: 1.5em;
41
- min-width: 180px;
42
- max-width: 300px;
43
- white-space: normal;
44
- text-align: left;
45
- font-size: $default-font-size;
46
- opacity: 0;
47
- transition: .3s;
48
- pointer-events: none;
49
-
50
- &:before {
51
- content: '';
52
- position: absolute;
53
- top: -8px;
54
- left: 50%;
55
- transform: translateX(-50%);
56
- width: 0px;
57
- height: 0px;
58
- border-style: solid;
59
- border-width: 0 8px 8px 8px;
60
- border-color: transparent transparent $light_yellow transparent;
61
- }
62
- }
1
+ .like-hint-tooltip {
2
+ cursor: help;
3
+ --sl-tooltip-background-color: #{$hint-background-color};
4
+ --sl-tooltip-color: #{$hint-text-color};
63
5
  }
@@ -4,7 +4,6 @@ $image-overlay-transition-duration: $transition-duration;
4
4
  $image-overlay-transition-easing: ease-in;
5
5
 
6
6
  .alchemy-image-overlay {
7
-
8
7
  &.open {
9
8
  background-color: rgba(0, 0, 0, 0.6);
10
9
  }
@@ -19,19 +18,17 @@ $image-overlay-transition-easing: ease-in;
19
18
  }
20
19
 
21
20
  .alchemy-image-overlay-dialog {
22
-
23
21
  &.hide-form {
24
-
25
22
  .picture-details-overlay {
26
23
  right: -$image-overlay-form-width;
27
24
  }
28
25
 
29
26
  .zoomed-picture-background {
30
- padding-right: 2*$default-padding;
27
+ padding-right: 2 * $default-padding;
31
28
  }
32
29
 
33
30
  .alchemy-image-overlay-close {
34
- right: $picture-overlay-handle-width + 2*$default-padding;
31
+ right: $picture-overlay-handle-width + 2 * $default-padding;
35
32
  }
36
33
 
37
34
  .next-picture {
@@ -53,18 +50,21 @@ $image-overlay-transition-easing: ease-in;
53
50
  height: 100%;
54
51
 
55
52
  > .message {
56
- margin: 2*$default-margin;
53
+ margin: 2 * $default-margin;
57
54
  max-width: 400px;
58
55
  }
59
56
  }
60
57
 
61
58
  .alchemy-image-overlay-close {
59
+ position: absolute;
62
60
  width: 32px;
63
61
  height: 32px;
64
- top: 2*$default-padding;
65
- right: 2*$default-padding + $picture-overlay-handle-width + $image-overlay-form-width;
62
+ top: 2 * $default-padding;
63
+ right: 2 * $default-padding + $picture-overlay-handle-width +
64
+ $image-overlay-form-width;
66
65
  cursor: pointer;
67
- transition: right $image-overlay-transition-duration $image-overlay-transition-easing;
66
+ transition: right $image-overlay-transition-duration
67
+ $image-overlay-transition-easing;
68
68
 
69
69
  .icon {
70
70
  font-size: 2em;
@@ -84,14 +84,16 @@ $image-overlay-transition-easing: ease-in;
84
84
  top: 0;
85
85
  background-color: $medium-gray;
86
86
  box-shadow: -2px 0 $default-padding -2px $text-color;
87
- transition: right $image-overlay-transition-duration $image-overlay-transition-easing;
87
+ transition: right $image-overlay-transition-duration
88
+ $image-overlay-transition-easing;
88
89
  }
89
90
 
90
91
  .picture-details-overlay {
91
92
  right: 0;
92
93
  width: $image-overlay-form-width;
93
94
  height: 100%;
94
- padding: 2*$default-padding 4*$default-padding 2*$default-padding $default-padding;
95
+ padding: 2 * $default-padding 4 * $default-padding 2 * $default-padding
96
+ $default-padding;
95
97
  overflow: auto;
96
98
 
97
99
  form .control-label,
@@ -123,7 +125,8 @@ $image-overlay-transition-easing: ease-in;
123
125
  transform: translate(-50%, -50%);
124
126
  font-size: 1.2em;
125
127
  color: $text-color;
126
- transition: transform $image-overlay-transition-duration $image-overlay-transition-easing;
128
+ transition: transform $image-overlay-transition-duration
129
+ $image-overlay-transition-easing;
127
130
  }
128
131
 
129
132
  &:hover {
@@ -134,17 +137,19 @@ $image-overlay-transition-easing: ease-in;
134
137
  .zoomed-picture-background {
135
138
  width: 100%;
136
139
  height: 100%;
137
- padding-top: 2*$default-padding;
138
- padding-right: $image-overlay-form-width + 2*$default-padding + $picture-overlay-handle-width;
139
- padding-bottom: 2*$default-padding;
140
- padding-left: 2*$default-padding;
140
+ padding-top: 2 * $default-padding;
141
+ padding-right: $image-overlay-form-width + 2 * $default-padding +
142
+ $picture-overlay-handle-width;
143
+ padding-bottom: 2 * $default-padding;
144
+ padding-left: 2 * $default-padding;
141
145
  margin: 0 auto;
142
146
  text-align: center;
143
147
  cursor: pointer;
144
- transition: padding-right $image-overlay-transition-duration $image-overlay-transition-easing;
148
+ transition: padding-right $image-overlay-transition-duration
149
+ $image-overlay-transition-easing;
145
150
 
146
151
  &:before {
147
- content: '';
152
+ content: "";
148
153
  vertical-align: middle;
149
154
  display: inline-block;
150
155
  height: 100%;
@@ -156,8 +161,8 @@ $image-overlay-transition-easing: ease-in;
156
161
  height: auto;
157
162
  max-width: 100%;
158
163
  max-height: 100%;
159
- box-shadow: 0 0 2*$default-margin $text-color;
160
- background-color: $dark-gray;
164
+ box-shadow: 0 0 2 * $default-margin $text-color;
165
+ background: $thumbnail-background;
161
166
  vertical-align: middle;
162
167
  cursor: default;
163
168
  }
@@ -165,16 +170,18 @@ $image-overlay-transition-easing: ease-in;
165
170
 
166
171
  .picture-file-infos,
167
172
  .picture-usage-info {
168
- padding: 2*$default-padding 0;
173
+ padding: 2 * $default-padding 0;
169
174
 
170
175
  .message {
171
- margin: 2*$default-padding 0;
176
+ margin: 2 * $default-padding 0;
172
177
  }
173
178
  }
174
179
 
175
180
  #pictures_page_list {
176
181
  h3 {
177
182
  display: flex;
183
+ align-items: center;
184
+ gap: $default-padding;
178
185
  padding: 4px 8px 0;
179
186
  margin: 0;
180
187
  }
@@ -185,25 +192,20 @@ $image-overlay-transition-easing: ease-in;
185
192
  }
186
193
 
187
194
  .list {
188
- margin: 2*$default-margin 0;
195
+ margin: 2 * $default-margin 0;
189
196
 
190
197
  li {
191
198
  display: flex;
192
- padding: 2*$default-padding;
199
+ align-items: center;
200
+ gap: $default-padding;
201
+ padding: 2 * $default-padding;
193
202
  border-radius: $default-border-radius;
194
203
  white-space: normal;
195
204
  margin-bottom: 1em;
196
205
  }
197
206
  }
198
207
 
199
- .icon {
200
- padding-top: 3px;
201
- text-align: left;
202
- width: 7%;
203
- }
204
-
205
208
  p {
206
- width: 93%;
207
209
  margin: 0;
208
210
  }
209
211
  }
@@ -228,7 +230,7 @@ $image-overlay-transition-easing: ease-in;
228
230
  transition: background-color $image-overlay-transition-duration linear;
229
231
 
230
232
  &:hover {
231
- background-color: rgba(0,0,0, 0.3);
233
+ background-color: rgba(0, 0, 0, 0.3);
232
234
 
233
235
  .icon {
234
236
  color: $white;
@@ -253,6 +255,7 @@ $image-overlay-transition-easing: ease-in;
253
255
  .next-picture {
254
256
  right: $image-overlay-form-width + $picture-overlay-handle-width;
255
257
  @include border-left-radius($default-border-radius);
256
- transition: right $image-overlay-transition-duration $image-overlay-transition-easing;
258
+ transition: right $image-overlay-transition-duration
259
+ $image-overlay-transition-easing;
257
260
  }
258
261
  }
@@ -1,3 +1,6 @@
1
1
  .label {
2
- @include label-base($margin: 0, $padding: 0 2 * $default-padding);
2
+ @include label-base(
3
+ $margin: $default-margin/2 0,
4
+ $padding: $default-padding 2*$default-padding $default-padding
5
+ );
3
6
  }
@@ -32,13 +32,13 @@
32
32
  }
33
33
 
34
34
  &:after {
35
- content: '';
35
+ content: "";
36
36
  width: 24px;
37
37
  height: 24px;
38
38
  position: absolute;
39
39
  right: 10px;
40
40
  top: 50%;
41
- background: image-url('alchemy/icon-white.svg') 1px 1px no-repeat;
41
+ background: image-url("alchemy/icon-white.svg") 1px 1px no-repeat;
42
42
  background-size: 24px 24px;
43
43
  transform: translateY(-50%);
44
44
  }
@@ -57,7 +57,8 @@
57
57
  list-style-type: none;
58
58
  text-align: center;
59
59
 
60
- a, button {
60
+ a,
61
+ button {
61
62
  @include button-defaults(
62
63
  $background-color: $main-menu-bg-color,
63
64
  $hover-color: $blue,
@@ -70,10 +71,10 @@
70
71
  );
71
72
  width: 100%;
72
73
  text-decoration: none !important;
73
- text-transform: none;
74
- font-family: $default-font-family;
75
74
 
76
- &:after { display: none }
75
+ &:after {
76
+ display: none;
77
+ }
77
78
  }
78
79
  }
79
80
  }
@@ -48,7 +48,7 @@
48
48
  position: relative;
49
49
  display: block;
50
50
  line-height: 46px;
51
- margin-bottom: 3*$default-padding;
51
+ margin-bottom: 3 * $default-padding;
52
52
  background-color: transparent;
53
53
  transition: background-color $transition-duration $transition-easing;
54
54
 
@@ -62,11 +62,13 @@
62
62
  }
63
63
  }
64
64
 
65
- &.active, &:hover {
65
+ &.active,
66
+ &:hover {
66
67
  background-color: $main-menu-active-bg-color;
67
68
  cursor: default;
68
69
 
69
- a, .icon {
70
+ a,
71
+ .icon {
70
72
  color: $main-menu-active-text-color;
71
73
  text-decoration: none;
72
74
  text-shadow: none;
@@ -85,8 +87,8 @@
85
87
  top: 0;
86
88
  left: $collapsed-main-menu-width - 1;
87
89
  width: auto;
88
- padding-left: 4*$default-padding;
89
- padding-right: 4*$default-padding;
90
+ padding-left: 4 * $default-padding;
91
+ padding-right: 4 * $default-padding;
90
92
  visibility: hidden;
91
93
  opacity: 0;
92
94
  background-color: $main-menu-active-bg-color;
@@ -101,7 +103,7 @@
101
103
  visibility: visible;
102
104
  max-width: $main-menu-entry-max-width;
103
105
  opacity: 1;
104
- padding-left: $default-padding;
106
+ padding-left: 2 * $default-padding;
105
107
  background-color: transparent;
106
108
  }
107
109
  }
@@ -122,9 +124,14 @@
122
124
  opacity: 1;
123
125
  }
124
126
 
125
- img, .icon {
126
- display: inline-block;
127
+ img,
128
+ svg,
129
+ .icon {
130
+ display: inline-flex;
127
131
  width: 24px;
132
+ height: 24px;
133
+ align-items: center;
134
+ justify-content: center;
128
135
  }
129
136
 
130
137
  img {
@@ -135,11 +142,15 @@
135
142
 
136
143
  .icon {
137
144
  vertical-align: -0.15em;
145
+ font-size: 20px;
146
+ font-weight: 400;
138
147
  color: inherit;
139
148
  }
140
149
 
141
150
  a {
142
- display: block;
151
+ display: flex;
152
+ align-items: center;
153
+ height: 46px;
143
154
  padding-left: 3 * $default-padding;
144
155
  font-weight: bold;
145
156
  color: $main-menu-text-color;
@@ -172,14 +183,15 @@
172
183
  }
173
184
 
174
185
  a {
175
- padding-left: 4*$default-padding;
176
- padding-right: 4*$default-padding;
186
+ padding-left: 4 * $default-padding;
187
+ padding-right: 4 * $default-padding;
177
188
  background-color: transparent;
178
189
  transition: background-color $transition-duration $transition-easing;
179
190
  @include truncate($main-menu-width, $display: block, $wrap: nowrap);
180
191
  }
181
192
 
182
- &.active a, a:hover {
193
+ &.active a,
194
+ a:hover {
183
195
  background-color: darken($dark-orange, 5%);
184
196
  }
185
197
  }
@@ -235,8 +247,8 @@
235
247
 
236
248
  .locked_page {
237
249
  display: flex;
250
+ align-items: center;
238
251
  flex-wrap: nowrap;
239
- line-height: $header-height - 1;
240
252
  color: #444;
241
253
  border-right: $default-border;
242
254
  border-bottom: $default-border;
@@ -255,8 +267,9 @@
255
267
 
256
268
  > a {
257
269
  display: flex;
270
+ align-items: end;
258
271
  cursor: pointer;
259
- padding-left: 2 * $default-padding;
272
+ padding: $default-padding 2 * $default-padding;
260
273
 
261
274
  &:focus {
262
275
  @include default-focus-style($box-shadow: inset 0 0 0 2px $focus-color);
@@ -279,7 +292,6 @@
279
292
  color: $muted-text-color;
280
293
  font-size: $small-font-size;
281
294
  margin-right: $default-margin;
282
- line-height: 31px;
283
295
  }
284
296
 
285
297
  .page_language {