alchemy_cms 7.0.8 → 7.1.0.pre.b2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (394) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +162 -0
  3. data/Gemfile +9 -11
  4. data/README.md +11 -9
  5. data/alchemy_cms.gemspec +4 -3
  6. data/app/assets/config/alchemy_manifest.js +3 -5
  7. data/app/assets/images/alchemy/missing-image.svg +1 -1
  8. data/app/assets/javascripts/alchemy/admin.js +1 -23
  9. data/app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee +2 -3
  10. data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +19 -34
  11. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +38 -13
  12. data/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee +1 -1
  13. data/app/assets/javascripts/alchemy/alchemy.fixed_elements.js +32 -25
  14. data/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +1 -1
  15. data/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +3 -5
  16. data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +0 -57
  17. data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +24 -65
  18. data/app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee +2 -2
  19. data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +5 -4
  20. data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +5 -5
  21. data/app/assets/javascripts/alchemy/templates/index.js +0 -2
  22. data/app/assets/javascripts/alchemy/templates/node_folder.hbs +1 -1
  23. data/app/assets/javascripts/alchemy/templates/page.hbs +1 -1
  24. data/app/assets/javascripts/alchemy/templates/page_folder.hbs +2 -2
  25. data/app/assets/javascripts/tinymce/icons/remixicons/icons.js +93 -0
  26. data/app/assets/javascripts/tinymce/plugins/alchemy_link/plugin.min.js +37 -18
  27. data/app/assets/stylesheets/alchemy/_custom-properties.scss +82 -0
  28. data/app/assets/stylesheets/alchemy/_mixins.scss +38 -30
  29. data/app/assets/stylesheets/alchemy/_variables.scss +23 -8
  30. data/app/assets/stylesheets/alchemy/admin.scss +3 -4
  31. data/app/assets/stylesheets/alchemy/archive.scss +110 -50
  32. data/app/assets/stylesheets/alchemy/attachments.scss +5 -4
  33. data/app/assets/stylesheets/alchemy/buttons.scss +41 -166
  34. data/app/assets/stylesheets/alchemy/dashboard.scss +31 -6
  35. data/app/assets/stylesheets/alchemy/dialogs.scss +12 -28
  36. data/app/assets/stylesheets/alchemy/elements.scss +272 -282
  37. data/app/assets/stylesheets/alchemy/flash.scss +20 -12
  38. data/app/assets/stylesheets/alchemy/forms.scss +21 -34
  39. data/app/assets/stylesheets/alchemy/frame.scss +11 -32
  40. data/app/assets/stylesheets/alchemy/hints.scss +4 -62
  41. data/app/assets/stylesheets/alchemy/image_library.scss +36 -33
  42. data/app/assets/stylesheets/alchemy/menubar.scss +7 -6
  43. data/app/assets/stylesheets/alchemy/navigation.scss +27 -15
  44. data/app/assets/stylesheets/alchemy/nodes.scss +11 -7
  45. data/app/assets/stylesheets/alchemy/notices.scss +16 -4
  46. data/app/assets/stylesheets/alchemy/page-select.scss +10 -2
  47. data/app/assets/stylesheets/alchemy/pagination.scss +22 -13
  48. data/app/assets/stylesheets/alchemy/resource_info.scss +7 -5
  49. data/app/assets/stylesheets/alchemy/selects.scss +49 -42
  50. data/app/assets/stylesheets/alchemy/shoelace.scss +345 -0
  51. data/app/assets/stylesheets/alchemy/sitemap.scss +24 -14
  52. data/app/assets/stylesheets/alchemy/spinner.scss +9 -19
  53. data/app/assets/stylesheets/alchemy/tables.scss +16 -24
  54. data/app/assets/stylesheets/alchemy/tags.scss +4 -0
  55. data/app/assets/stylesheets/alchemy/toolbar.scss +29 -25
  56. data/app/assets/stylesheets/alchemy/upload.scss +140 -89
  57. data/app/assets/stylesheets/tinymce/skins/content/alchemy/content.min.scss +69 -0
  58. data/app/assets/stylesheets/tinymce/skins/skintool.json +38 -0
  59. data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.css +711 -0
  60. data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.inline.css +705 -0
  61. data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.inline.min.css +7 -0
  62. data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.min.css +7 -0
  63. data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.mobile.css +29 -0
  64. data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.mobile.min.css +7 -0
  65. data/app/assets/stylesheets/tinymce/skins/ui/alchemy/fonts/tinymce-mobile.woff +0 -0
  66. data/app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.min.scss +3798 -0
  67. data/app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.mobile.css +677 -0
  68. data/app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.mobile.min.css +7 -0
  69. data/app/components/alchemy/admin/node_select.rb +39 -0
  70. data/app/components/alchemy/admin/page_select.rb +42 -0
  71. data/app/controllers/alchemy/admin/base_controller.rb +5 -6
  72. data/app/controllers/alchemy/admin/elements_controller.rb +63 -35
  73. data/app/controllers/alchemy/admin/pages_controller.rb +9 -4
  74. data/app/controllers/alchemy/base_controller.rb +4 -2
  75. data/app/controllers/concerns/alchemy/admin/uploader_responses.rb +1 -1
  76. data/app/controllers/concerns/alchemy/site_redirects.rb +1 -1
  77. data/app/decorators/alchemy/element_editor.rb +0 -2
  78. data/app/helpers/alchemy/admin/attachments_helper.rb +6 -5
  79. data/app/helpers/alchemy/admin/base_helper.rb +17 -12
  80. data/app/helpers/alchemy/admin/ingredients_helper.rb +4 -1
  81. data/app/helpers/alchemy/admin/pages_helper.rb +5 -11
  82. data/app/helpers/alchemy/base_helper.rb +47 -13
  83. data/app/javascript/alchemy_admin/clipboard.js +16 -0
  84. data/app/javascript/alchemy_admin/components/alchemy_html_element.js +129 -0
  85. data/app/javascript/alchemy_admin/components/button.js +59 -0
  86. data/app/javascript/alchemy_admin/components/char_counter.js +40 -0
  87. data/app/javascript/alchemy_admin/components/datepicker.js +39 -0
  88. data/app/javascript/alchemy_admin/components/dialog_link.js +45 -0
  89. data/app/javascript/alchemy_admin/components/element_editor/publish_element_button.js +36 -0
  90. data/app/javascript/alchemy_admin/components/element_editor.js +553 -0
  91. data/app/javascript/alchemy_admin/components/ingredient_group.js +54 -0
  92. data/app/javascript/alchemy_admin/components/link_buttons/link_button.js +48 -0
  93. data/app/javascript/alchemy_admin/components/link_buttons/unlink_button.js +38 -0
  94. data/app/javascript/alchemy_admin/components/link_buttons.js +79 -0
  95. data/app/javascript/alchemy_admin/components/node_select.js +45 -0
  96. data/app/javascript/alchemy_admin/components/overlay.js +18 -0
  97. data/app/javascript/alchemy_admin/components/page_select.js +63 -0
  98. data/app/javascript/alchemy_admin/components/remote_select.js +134 -0
  99. data/app/javascript/alchemy_admin/components/select.js +12 -0
  100. data/app/javascript/alchemy_admin/components/spinner.js +31 -0
  101. data/app/javascript/alchemy_admin/components/tinymce.js +134 -0
  102. data/app/javascript/alchemy_admin/components/uploader/file_upload.js +266 -0
  103. data/app/javascript/alchemy_admin/components/uploader/progress.js +258 -0
  104. data/app/javascript/alchemy_admin/components/uploader.js +132 -0
  105. data/app/javascript/alchemy_admin/dirty.js +49 -0
  106. data/app/javascript/alchemy_admin/file_editors.js +1 -1
  107. data/app/javascript/alchemy_admin/gui.js +14 -0
  108. data/app/javascript/alchemy_admin/i18n.js +12 -8
  109. data/app/javascript/alchemy_admin/image_cropper.js +6 -3
  110. data/app/javascript/alchemy_admin/image_loader.js +7 -15
  111. data/app/javascript/alchemy_admin/ingredient_anchor_link.js +2 -5
  112. data/app/javascript/alchemy_admin/initializer.js +65 -0
  113. data/app/javascript/alchemy_admin/locales/en.js +31 -0
  114. data/app/javascript/alchemy_admin/picture_editors.js +6 -4
  115. data/app/javascript/alchemy_admin/picture_selector.js +38 -0
  116. data/app/javascript/alchemy_admin/please_wait_overlay.js +8 -0
  117. data/app/javascript/alchemy_admin/sortable_elements.js +78 -0
  118. data/app/javascript/alchemy_admin/spinner.js +36 -0
  119. data/app/javascript/alchemy_admin/tags_autocomplete.js +46 -0
  120. data/app/javascript/alchemy_admin/utils/ajax.js +6 -5
  121. data/app/javascript/alchemy_admin/utils/debounce.js +10 -0
  122. data/app/javascript/alchemy_admin/utils/dom_helpers.js +20 -0
  123. data/app/javascript/alchemy_admin/utils/format.js +11 -0
  124. data/app/javascript/alchemy_admin/utils/max.js +3 -0
  125. data/app/javascript/alchemy_admin/utils/string_conversions.js +10 -0
  126. data/app/javascript/alchemy_admin.js +64 -13
  127. data/app/javascript/menubar.js +10 -0
  128. data/app/models/alchemy/attachment.rb +9 -11
  129. data/app/models/alchemy/element.rb +11 -0
  130. data/app/models/alchemy/ingredients/richtext.rb +1 -10
  131. data/app/models/alchemy/node.rb +4 -0
  132. data/app/models/alchemy/page/page_naming.rb +7 -0
  133. data/app/models/alchemy/page/page_natures.rb +10 -2
  134. data/app/models/alchemy/page.rb +11 -51
  135. data/app/models/alchemy/picture/url.rb +1 -9
  136. data/app/models/alchemy/picture_variant.rb +11 -2
  137. data/app/models/concerns/alchemy/picture_thumbnails.rb +1 -1
  138. data/app/serializers/alchemy/page_tree_serializer.rb +2 -1
  139. data/app/services/alchemy/copy_page.rb +98 -0
  140. data/app/views/alchemy/_menubar.html.erb +17 -13
  141. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +14 -10
  142. data/app/views/alchemy/admin/attachments/_attachment.html.erb +44 -36
  143. data/app/views/alchemy/admin/attachments/_replace_button.html.erb +15 -21
  144. data/app/views/alchemy/admin/attachments/archive_overlay.js.erb +0 -1
  145. data/app/views/alchemy/admin/attachments/assign.js.erb +1 -1
  146. data/app/views/alchemy/admin/attachments/index.html.erb +6 -4
  147. data/app/views/alchemy/admin/attachments/show.html.erb +10 -23
  148. data/app/views/alchemy/admin/clipboard/clear.js.erb +1 -1
  149. data/app/views/alchemy/admin/clipboard/index.html.erb +3 -7
  150. data/app/views/alchemy/admin/clipboard/insert.js.erb +1 -1
  151. data/app/views/alchemy/admin/crop.html.erb +1 -1
  152. data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +1 -1
  153. data/app/views/alchemy/admin/dashboard/index.html.erb +13 -11
  154. data/app/views/alchemy/admin/dashboard/info.html.erb +7 -7
  155. data/app/views/alchemy/admin/elements/_add_nested_element_form.html.erb +21 -23
  156. data/app/views/alchemy/admin/elements/_element.html.erb +52 -44
  157. data/app/views/alchemy/admin/elements/_footer.html.erb +1 -1
  158. data/app/views/alchemy/admin/elements/_form.html.erb +1 -1
  159. data/app/views/alchemy/admin/elements/_header.html.erb +11 -12
  160. data/app/views/alchemy/admin/elements/_toolbar.html.erb +33 -45
  161. data/app/views/alchemy/admin/elements/create.js.erb +7 -15
  162. data/app/views/alchemy/admin/elements/destroy.js.erb +0 -2
  163. data/app/views/alchemy/admin/elements/index.html.erb +27 -24
  164. data/app/views/alchemy/admin/elements/new.html.erb +9 -11
  165. data/app/views/alchemy/admin/ingredients/_file_fields.html.erb +2 -2
  166. data/app/views/alchemy/admin/ingredients/_picture_fields.html.erb +3 -3
  167. data/app/views/alchemy/admin/ingredients/_video_fields.html.erb +1 -2
  168. data/app/views/alchemy/admin/languages/_form.html.erb +2 -3
  169. data/app/views/alchemy/admin/languages/_language.html.erb +15 -8
  170. data/app/views/alchemy/admin/languages/_table.html.erb +1 -0
  171. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +28 -16
  172. data/app/views/alchemy/admin/layoutpages/index.html.erb +2 -2
  173. data/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb +12 -8
  174. data/app/views/alchemy/admin/legacy_page_urls/_new.html.erb +1 -1
  175. data/app/views/alchemy/admin/nodes/_form.html.erb +20 -21
  176. data/app/views/alchemy/admin/nodes/_node.html.erb +39 -34
  177. data/app/views/alchemy/admin/nodes/index.html.erb +1 -1
  178. data/app/views/alchemy/admin/pages/_anchor_link.html.erb +4 -4
  179. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +2 -2
  180. data/app/views/alchemy/admin/pages/_current_page.html.erb +1 -1
  181. data/app/views/alchemy/admin/pages/_external_link.html.erb +4 -4
  182. data/app/views/alchemy/admin/pages/_file_link.html.erb +5 -5
  183. data/app/views/alchemy/admin/pages/_form.html.erb +10 -21
  184. data/app/views/alchemy/admin/pages/_internal_link.html.erb +4 -4
  185. data/app/views/alchemy/admin/pages/_locked_page.html.erb +2 -2
  186. data/app/views/alchemy/admin/pages/_new_page_form.html.erb +4 -17
  187. data/app/views/alchemy/admin/pages/_page.html.erb +76 -72
  188. data/app/views/alchemy/admin/pages/_page_infos.html.erb +23 -7
  189. data/app/views/alchemy/admin/pages/_page_layout_filter.html.erb +2 -1
  190. data/app/views/alchemy/admin/pages/_page_status.html.erb +11 -21
  191. data/app/views/alchemy/admin/pages/_publication_fields.html.erb +2 -5
  192. data/app/views/alchemy/admin/pages/_table.html.erb +1 -1
  193. data/app/views/alchemy/admin/pages/_table_row.html.erb +43 -39
  194. data/app/views/alchemy/admin/pages/_toolbar.html.erb +43 -38
  195. data/app/views/alchemy/admin/pages/configure.html.erb +12 -14
  196. data/app/views/alchemy/admin/pages/edit.html.erb +80 -103
  197. data/app/views/alchemy/admin/pages/info.html.erb +20 -11
  198. data/app/views/alchemy/admin/pages/link.html.erb +22 -16
  199. data/app/views/alchemy/admin/pages/new.html.erb +9 -11
  200. data/app/views/alchemy/admin/pages/unlock.js.erb +10 -3
  201. data/app/views/alchemy/admin/partials/_language_tree_select.html.erb +15 -13
  202. data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +3 -5
  203. data/app/views/alchemy/admin/partials/_routes.html.erb +10 -2
  204. data/app/views/alchemy/admin/partials/_site_select.html.erb +6 -5
  205. data/app/views/alchemy/admin/partials/_toolbar_button.html.erb +28 -23
  206. data/app/views/alchemy/admin/pictures/_archive.html.erb +5 -5
  207. data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
  208. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +21 -23
  209. data/app/views/alchemy/admin/pictures/_infos.html.erb +2 -6
  210. data/app/views/alchemy/admin/pictures/_picture.html.erb +17 -21
  211. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +17 -16
  212. data/app/views/alchemy/admin/pictures/_tag_list.html.erb +1 -1
  213. data/app/views/alchemy/admin/pictures/archive_overlay.js.erb +1 -1
  214. data/app/views/alchemy/admin/pictures/assign.js.erb +1 -1
  215. data/app/views/alchemy/admin/pictures/index.html.erb +34 -30
  216. data/app/views/alchemy/admin/pictures/show.html.erb +3 -3
  217. data/app/views/alchemy/admin/resources/_filter.html.erb +2 -2
  218. data/app/views/alchemy/admin/resources/_form.html.erb +2 -2
  219. data/app/views/alchemy/admin/resources/_per_page_select.html.erb +1 -1
  220. data/app/views/alchemy/admin/resources/_resource.html.erb +16 -9
  221. data/app/views/alchemy/admin/resources/_table.html.erb +4 -1
  222. data/app/views/alchemy/admin/resources/index.html.erb +22 -19
  223. data/app/views/alchemy/admin/sites/index.html.erb +2 -1
  224. data/app/views/alchemy/admin/styleguide/index.html.erb +54 -28
  225. data/app/views/alchemy/admin/tags/_tag.html.erb +16 -14
  226. data/app/views/alchemy/admin/tags/index.html.erb +15 -12
  227. data/app/views/alchemy/admin/tinymce/_setup.html.erb +28 -0
  228. data/app/views/alchemy/admin/uploader/_button.html.erb +23 -29
  229. data/app/views/alchemy/admin/uploader/_setup.html.erb +3 -8
  230. data/app/views/alchemy/base/500.html.erb +1 -1
  231. data/app/views/alchemy/base/error_notice.js.erb +0 -1
  232. data/app/views/alchemy/ingredients/_boolean_editor.html.erb +1 -1
  233. data/app/views/alchemy/ingredients/_datetime_editor.html.erb +1 -1
  234. data/app/views/alchemy/ingredients/_file_editor.html.erb +5 -5
  235. data/app/views/alchemy/ingredients/_link_editor.html.erb +1 -1
  236. data/app/views/alchemy/ingredients/_node_editor.html.erb +6 -19
  237. data/app/views/alchemy/ingredients/_page_editor.html.erb +7 -19
  238. data/app/views/alchemy/ingredients/_picture_editor.html.erb +2 -2
  239. data/app/views/alchemy/ingredients/_richtext_editor.html.erb +6 -15
  240. data/app/views/alchemy/ingredients/_select_editor.html.erb +2 -1
  241. data/app/views/alchemy/ingredients/_text_editor.html.erb +1 -1
  242. data/app/views/alchemy/ingredients/shared/_anchor.html.erb +1 -1
  243. data/app/views/alchemy/ingredients/shared/_link_tools.html.erb +10 -20
  244. data/app/views/alchemy/ingredients/shared/_picture_tools.html.erb +42 -49
  245. data/app/views/kaminari/alchemy/_first_page.html.erb +4 -2
  246. data/app/views/kaminari/alchemy/_gap.html.erb +1 -1
  247. data/app/views/kaminari/alchemy/_last_page.html.erb +4 -2
  248. data/app/views/kaminari/alchemy/_next_page.html.erb +4 -2
  249. data/app/views/kaminari/alchemy/_prev_page.html.erb +4 -2
  250. data/app/views/layouts/alchemy/admin.html.erb +10 -29
  251. data/bundles/shoelace.js +10 -0
  252. data/bundles/tinymce.js +20 -0
  253. data/config/alchemy/config.yml +11 -10
  254. data/config/alchemy/modules.yml +30 -30
  255. data/config/brakeman.ignore +0 -34
  256. data/config/importmap.rb +9 -5
  257. data/config/initializers/dragonfly.rb +1 -0
  258. data/config/initializers/rails_live_reload.rb +13 -0
  259. data/config/locales/alchemy.en.yml +25 -9
  260. data/config/routes.rb +2 -1
  261. data/lib/alchemy/auth_accessors.rb +6 -1
  262. data/lib/alchemy/config.rb +24 -2
  263. data/lib/alchemy/dev_support/live_reload_watcher.rb +5 -0
  264. data/lib/alchemy/engine.rb +10 -3
  265. data/lib/alchemy/forms/builder.rb +18 -12
  266. data/lib/alchemy/resources_helper.rb +3 -3
  267. data/lib/alchemy/test_support/capybara_helpers.rb +8 -5
  268. data/lib/alchemy/test_support/having_picture_thumbnails_examples.rb +6 -6
  269. data/lib/alchemy/test_support/rspec_matchers.rb +14 -0
  270. data/lib/alchemy/test_support/shared_uploader_examples.rb +1 -1
  271. data/lib/alchemy/tinymce.rb +19 -3
  272. data/lib/alchemy/version.rb +1 -1
  273. data/package.json +30 -9
  274. data/rollup.config.mjs +65 -0
  275. data/vendor/assets/fonts/remixicon.eot +0 -0
  276. data/vendor/assets/fonts/remixicon.svg +7816 -0
  277. data/vendor/assets/fonts/remixicon.ttf +0 -0
  278. data/vendor/assets/fonts/remixicon.woff +0 -0
  279. data/vendor/assets/fonts/remixicon.woff2 +0 -0
  280. data/vendor/assets/stylesheets/remixicon.scss +10480 -0
  281. data/vendor/assets/stylesheets/tinymce/skins/content/default/content.min.css +1 -0
  282. data/vendor/javascript/clipboard.min.js +7 -0
  283. data/vendor/javascript/flatpickr.min.js +1 -0
  284. data/vendor/javascript/keymaster.min.js +1 -0
  285. data/vendor/javascript/rails-ujs.min.js +1 -0
  286. data/vendor/javascript/shoelace.min.js +995 -0
  287. data/vendor/javascript/sortable.min.js +7 -0
  288. data/vendor/javascript/tinymce.min.js +1 -0
  289. data/vendor/javascript/ungap-custom-elements.min.js +3 -0
  290. metadata +111 -124
  291. data/.codeclimate.yml +0 -35
  292. data/.editorconfig +0 -23
  293. data/.github/FUNDING.yml +0 -4
  294. data/.github/ISSUE_TEMPLATE/Bug_report.md +0 -22
  295. data/.github/ISSUE_TEMPLATE/Feature_request.md +0 -17
  296. data/.github/PULL_REQUEST_TEMPLATE.md +0 -18
  297. data/.github/workflows/brakeman-analysis.yml +0 -46
  298. data/.github/workflows/lint.yml +0 -37
  299. data/.github/workflows/stale.yml +0 -33
  300. data/.github/workflows/test.yml +0 -124
  301. data/.gitignore +0 -31
  302. data/.hound.yml +0 -9
  303. data/.localeapp/config.rb +0 -8
  304. data/.prettierrc +0 -6
  305. data/.rspec +0 -1
  306. data/.rubocop.yml +0 -7
  307. data/.standard.yml +0 -4
  308. data/.yardopts +0 -5
  309. data/app/assets/javascripts/alchemy/alchemy.autocomplete.js.coffee +0 -30
  310. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +0 -53
  311. data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +0 -45
  312. data/app/assets/javascripts/alchemy/alchemy.char_counter.js.coffee +0 -19
  313. data/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +0 -59
  314. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +0 -79
  315. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +0 -267
  316. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +0 -27
  317. data/app/assets/javascripts/alchemy/alchemy.spinner.js +0 -32
  318. data/app/assets/javascripts/alchemy/alchemy.tooltips.coffee +0 -10
  319. data/app/assets/javascripts/alchemy/alchemy.uploader.js.coffee +0 -131
  320. data/app/assets/javascripts/alchemy/menubar.js.coffee +0 -8
  321. data/app/assets/javascripts/alchemy/node_select.js +0 -39
  322. data/app/assets/javascripts/alchemy/page_select.js +0 -46
  323. data/app/assets/javascripts/alchemy/templates/node.hbs +0 -16
  324. data/app/assets/javascripts/alchemy/templates/spinner.hbs +0 -7
  325. data/app/assets/stylesheets/alchemy/jquery-ui.scss +0 -435
  326. data/app/assets/stylesheets/tinymce/skins/alchemy/content.min.css.scss +0 -94
  327. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.svg +0 -63
  328. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.ttf +0 -0
  329. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.woff +0 -0
  330. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.svg +0 -129
  331. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.ttf +0 -0
  332. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.woff +0 -0
  333. data/app/assets/stylesheets/tinymce/skins/alchemy/img/anchor.gif +0 -0
  334. data/app/assets/stylesheets/tinymce/skins/alchemy/img/loader.gif +0 -0
  335. data/app/assets/stylesheets/tinymce/skins/alchemy/img/object.gif +0 -0
  336. data/app/assets/stylesheets/tinymce/skins/alchemy/img/trans.gif +0 -0
  337. data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +0 -2105
  338. data/app/javascript/alchemy_admin/datepicker.js +0 -33
  339. data/app/javascript/alchemy_admin/tinymce.js +0 -146
  340. data/app/javascript/alchemy_admin/translations.js +0 -32
  341. data/app/views/alchemy/admin/elements/fold.js.erb +0 -33
  342. data/app/views/alchemy/admin/elements/order.js.erb +0 -11
  343. data/app/views/alchemy/admin/elements/publish.js.erb +0 -21
  344. data/app/views/alchemy/admin/elements/update.js.erb +0 -27
  345. data/vendor/assets/fonts/fa-regular-400.eot +0 -0
  346. data/vendor/assets/fonts/fa-regular-400.svg +0 -803
  347. data/vendor/assets/fonts/fa-regular-400.ttf +0 -0
  348. data/vendor/assets/fonts/fa-regular-400.woff +0 -0
  349. data/vendor/assets/fonts/fa-regular-400.woff2 +0 -0
  350. data/vendor/assets/fonts/fa-solid-900.eot +0 -0
  351. data/vendor/assets/fonts/fa-solid-900.svg +0 -4938
  352. data/vendor/assets/fonts/fa-solid-900.ttf +0 -0
  353. data/vendor/assets/fonts/fa-solid-900.woff +0 -0
  354. data/vendor/assets/fonts/fa-solid-900.woff2 +0 -0
  355. data/vendor/assets/javascripts/clipboard.min.js +0 -7
  356. data/vendor/assets/javascripts/fileupload/jquery.fileupload-process.js +0 -178
  357. data/vendor/assets/javascripts/fileupload/jquery.fileupload-validate.js +0 -125
  358. data/vendor/assets/javascripts/fileupload/jquery.fileupload.js +0 -1502
  359. data/vendor/assets/javascripts/fileupload/jquery.iframe-transport.js +0 -224
  360. data/vendor/assets/javascripts/jquery-ui/data.js +0 -45
  361. data/vendor/assets/javascripts/jquery-ui/ie.js +0 -20
  362. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -51
  363. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -49
  364. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -46
  365. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -27
  366. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -50
  367. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -54
  368. data/vendor/assets/javascripts/jquery-ui/version.js +0 -20
  369. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -754
  370. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1268
  371. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -241
  372. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1623
  373. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
  374. data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo.min.js +0 -7
  375. data/vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js +0 -296
  376. data/vendor/assets/javascripts/keymaster.js +0 -296
  377. data/vendor/assets/javascripts/requestAnimationFrame.js +0 -31
  378. data/vendor/assets/javascripts/tinymce/license.txt +0 -504
  379. data/vendor/assets/javascripts/tinymce/tinymce.min.js +0 -2
  380. data/vendor/assets/stylesheets/fontawesome/_animated.scss +0 -20
  381. data/vendor/assets/stylesheets/fontawesome/_bordered-pulled.scss +0 -20
  382. data/vendor/assets/stylesheets/fontawesome/_core.scss +0 -21
  383. data/vendor/assets/stylesheets/fontawesome/_fixed-width.scss +0 -6
  384. data/vendor/assets/stylesheets/fontawesome/_icons.scss +0 -1441
  385. data/vendor/assets/stylesheets/fontawesome/_larger.scss +0 -23
  386. data/vendor/assets/stylesheets/fontawesome/_list.scss +0 -18
  387. data/vendor/assets/stylesheets/fontawesome/_mixins.scss +0 -56
  388. data/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss +0 -24
  389. data/vendor/assets/stylesheets/fontawesome/_screen-reader.scss +0 -5
  390. data/vendor/assets/stylesheets/fontawesome/_stacked.scss +0 -31
  391. data/vendor/assets/stylesheets/fontawesome/_variables.scss +0 -1458
  392. data/vendor/assets/stylesheets/fontawesome/fontawesome.scss +0 -16
  393. data/vendor/assets/stylesheets/fontawesome/regular.scss +0 -23
  394. data/vendor/assets/stylesheets/fontawesome/solid.scss +0 -24
@@ -0,0 +1,93 @@
1
+ tinymce.IconManager.add("remixicons", {
2
+ icons: {
3
+ "action-next":
4
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m12 13.2 5-5 1.4 1.4L12 16 5.6 9.6l1.5-1.4 4.9 5Z"/></svg>',
5
+ "action-prev":
6
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m12 10.8-5 5-1.4-1.4L12 8l6.4 6.4-1.5 1.4-4.9-5Z"/></svg>',
7
+ "align-center":
8
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M3 4h18v2H3V4Zm2 15h14v2H5v-2Zm-2-5h18v2H3v-2Zm2-5h14v2H5V9Z"/></svg>',
9
+ "align-justify":
10
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M3 4h18v2H3V4Zm0 15h18v2H3v-2Zm0-5h18v2H3v-2Zm0-5h18v2H3V9Z"/></svg>',
11
+ "align-left":
12
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M3 4h18v2H3V4Zm0 15h14v2H3v-2Zm0-5h18v2H3v-2Zm0-5h14v2H3V9Z"/></svg>',
13
+ "align-right":
14
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M3 4h18v2H3V4Zm4 15h14v2H7v-2Zm-4-5h18v2H3v-2Zm4-5h14v2H7V9Z"/></svg>',
15
+ "arrow-left":
16
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M7.8 11H20v2H7.8l5.4 5.4-1.4 1.4L4 12l7.8-7.8 1.4 1.4L7.8 11Z"/></svg>',
17
+ "arrow-right":
18
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m16.2 11-5.4-5.4 1.4-1.4L20 12l-7.8 7.8-1.4-1.4 5.4-5.4H4v-2h12.2Z"/></svg>',
19
+ bold: '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M8 11h4.5a2.5 2.5 0 0 0 0-5H8v5Zm10 4.5c0 2.5-2 4.5-4.5 4.5H6V4h6.5a4.5 4.5 0 0 1 3.3 7.6c1.3.8 2.2 2.2 2.2 3.9ZM8 13v5h5.5a2.5 2.5 0 0 0 0-5H8Z"/></svg>',
20
+ bookmark:
21
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M5 2h14c.6 0 1 .4 1 1v19.1a.5.5 0 0 1-.8.5L12 18l-7.2 4.6A.5.5 0 0 1 4 22V3c0-.6.4-1 1-1Zm13 2H6v15.4l6-3.7 6 3.7V4Z"/></svg>',
22
+ cancel:
23
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M12 22a10 10 0 1 1 0-20 10 10 0 0 1 0 20Zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm0-9.4 2.8-2.8 1.4 1.4-2.8 2.8 2.8 2.8-1.4 1.4-2.8-2.8-2.8 2.8-1.4-1.4 2.8-2.8-2.8-2.8 1.4-1.4 2.8 2.8Z"/></svg>',
24
+ checkmark:
25
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M10 15.2 19.2 6l1.4 1.4L10 18l-6.4-6.4L5 10.2l5 5Z"/></svg>',
26
+ "chevron-down":
27
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m12 13.2 5-5 1.4 1.4L12 16 5.6 9.6l1.5-1.4 4.9 5Z"/></svg>',
28
+ "chevron-left":
29
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m10.8 12 5 5-1.4 1.4L8 12l6.4-6.4 1.4 1.5-5 4.9Z"/></svg>',
30
+ "chevron-right":
31
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m13.2 12-5-5 1.4-1.4L16 12l-6.4 6.4L8.2 17l5-5Z"/></svg>',
32
+ "chevron-up":
33
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m12 10.8-5 5-1.4-1.4L12 8l6.4 6.4-1.5 1.4-4.9-5Z"/></svg>',
34
+ close:
35
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m12 10.6 5-5 1.4 1.5-5 4.9 5 5-1.5 1.4-4.9-5-5 5L5.6 17l5-5-5-5L7 5.7l5 5Z"/></svg>',
36
+ "color-picker":
37
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M12 2c5.5 0 10 4 10 8.9 0 3-2.5 5.5-5.6 5.5h-2a1.7 1.7 0 0 0-1.2 2.8c.3.3.5.7.5 1.1 0 1-.8 1.7-1.7 1.7a10 10 0 0 1 0-20Zm-1.2 16.1c0-2 1.7-3.7 3.7-3.7h2c2 0 3.5-1.5 3.5-3.5C20 7 16.5 4 12 4a8 8 0 0 0-.7 16c-.3-.6-.5-1.2-.5-1.9ZM7.5 12a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3Zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3ZM12 9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3Z"/></svg>',
38
+ "color-swatch-remove-color":
39
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m8.6 8.9-5 4.9L8.8 19h2.4l3.7-3.8L8.6 9ZM10 7.4l6.4 6.4 2.8-2.8-6.4-6.4L10 7.4ZM14 19h7v2H8l-6.5-6.5a1 1 0 0 1 0-1.4L12.1 2.5a1 1 0 0 1 1.4 0l7.8 7.8c.4.4.4 1 0 1.4L14 19Z"/></svg>',
40
+ fill: '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M19.2 18.7 21 17l1.8 1.7a2.5 2.5 0 1 1-3.6 0ZM9 1.1l11.3 11.3c.4.4.4 1 0 1.4l-8.5 8.5a1 1 0 0 1-1.4 0l-8.5-8.5a1 1 0 0 1 0-1.4l7.8-7.8-2.1-2.1L8.9 1ZM11 6l-7 7h14l-7-7Z"/></svg>',
41
+ fullscreen:
42
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M8 3v2H4v4H2V3h6ZM2 21v-6h2v4h4v2H2Zm20 0h-6v-2h4v-4h2v6Zm0-12h-2V5h-4V3h6v6Z"/></svg>',
43
+ "highlight-bg-color":
44
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M19.2 18.7 21 17l1.8 1.7a2.5 2.5 0 1 1-3.6 0ZM9 1.1l11.3 11.3c.4.4.4 1 0 1.4l-8.5 8.5a1 1 0 0 1-1.4 0l-8.5-8.5a1 1 0 0 1 0-1.4l7.8-7.8-2.1-2.1L8.9 1ZM11 6l-7 7h14l-7-7Z"/></svg>',
45
+ "horizontal-rule":
46
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M2 11h2v2H2v-2Zm4 0h12v2H6v-2Zm14 0h2v2h-2v-2Z"/></svg>',
47
+ indent:
48
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M3 4h18v2H3V4Zm0 15h18v2H3v-2Zm8-5h10v2H11v-2Zm0-5h10v2H11V9Zm-4 3.5L3 16V9l4 3.5Z"/></svg>',
49
+ "insert-character":
50
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M14 20v-2.2a8.5 8.5 0 0 0 3.5-7c0-3-2-6-5.5-6s-5.5 3-5.5 6c0 3.2 1.6 5.9 3.5 7V20H3v-2h4.8C5.7 16.5 4 14 4 10.9 4 6.2 7.5 3 12 3s8 3.2 8 7.9c0 3-1.7 5.6-3.8 7.1H21v2h-7Z"/></svg>',
51
+ italic:
52
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M15 20H7v-2h3l2-12H9V4h8v2h-3l-2 12h3v2Z"/></svg>',
53
+ link: '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m17.7 14.8-1.5-1.4 1.5-1.4A4 4 0 1 0 12 6.3l-1.4 1.5-1.4-1.5L10.6 5a6 6 0 0 1 8.5 8.5l-1.4 1.4Zm-2.9 2.9L13.4 19A6 6 0 0 1 5 10.6l1.4-1.4 1.5 1.4L6.3 12a4 4 0 0 0 5.7 5.7l1.4-1.5 1.4 1.5Zm0-10 1.4 1.5-7 7-1.4-1.4 7-7Z"/></svg>',
54
+ "more-drawer":
55
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M4.5 10.5c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S6 12.8 6 12s-.7-1.5-1.5-1.5Zm15 0c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S21 12.8 21 12s-.7-1.5-1.5-1.5Zm-7.5 0c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5 1.5-.7 1.5-1.5-.7-1.5-1.5-1.5Z"/></svg>',
56
+ "new-tab":
57
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M10 6v2H5v11h11v-5h2v6c0 .6-.4 1-1 1H4a1 1 0 0 1-1-1V7c0-.6.4-1 1-1h6Zm11-3v8h-2V6.4l-7.8 7.8-1.4-1.4L17.6 5H13V3h8Z"/></svg>',
58
+ "ordered-list":
59
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M5.8 3.5h-1l-1.5.4v1.5l1-.2v3.3H3V10h4V8.5H5.8v-5ZM10 4h11v2H10V4Zm0 7h11v2H10v-2Zm0 7h11v2H10v-2Zm-7.1-2.4A2.1 2.1 0 1 1 6.7 17l-1.4 1.6H7V20H3v-1.1L5.5 16l.1-.4a.6.6 0 0 0-1.2 0v.3H2.9v-.3Z"/></svg>',
60
+ outdent:
61
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M3 4h18v2H3V4Zm0 15h18v2H3v-2Zm8-5h10v2H11v-2Zm0-5h10v2H11V9Zm-8 3.5L7 9v7l-4-3.5Z"/></svg>',
62
+ paragraph:
63
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M12 6v15h-2v-5a6 6 0 0 1 0-12h10v2h-3v15h-2V6h-3Zm-2 0a4 4 0 1 0 0 8V6Z"/></svg>',
64
+ "paste-text":
65
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M13 6v15h-2V6H5V4h14v2h-6Z"/></svg>',
66
+ redo: '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M18.2 7H11a6 6 0 0 0 0 12h9v2h-9a8 8 0 0 1 0-16h7.2l-2.6-2.5L17.1 1 22 6l-5 5-1.4-1.5L18.2 7Z"/></svg>',
67
+ "remove-formatting":
68
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m12.7 14-1.1 6h-2l1.3-7.7L3.5 5 5 3.5l15.6 15.6-1.4 1.4-6.4-6.4Zm-1-6.5L12 6h-1.8l-2-2H20v2h-6l-.5 3.3-1.7-1.8Z"/></svg>',
69
+ sourcecode:
70
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M17 8.5 18.3 7l5 4.9-5 5-1.4-1.5 3.5-3.5-3.6-3.5Zm-10 0L3.6 12l3.6 3.5L5.6 17 .6 12l5-5 1.5 1.5Z"/></svg>',
71
+ "strike-through":
72
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M17.2 14c.2.5.3 1 .3 1.7 0 1.4-.5 2.4-1.6 3.2-1 .7-2.5 1.1-4.3 1.1-1.7 0-3.3-.4-4.9-1.1v-2.3c1.5.9 3 1.3 4.7 1.3 2.5 0 3.8-.7 3.8-2.2a2.2 2.2 0 0 0-.7-1.7H3v-2h18v2h-3.8ZM13 11H7.6a3.2 3.2 0 0 1-1.1-2.5c0-1.3.5-2.3 1.4-3.2 1-.9 2.4-1.3 4.3-1.3 1.5 0 2.9.3 4.2 1V7c-1.2-.7-2.5-1-3.9-1-2.5 0-3.7.8-3.7 2.4 0 .4.2.7.6 1 .5.4 1 .6 1.6.8l2 .7Z"/></svg>',
73
+ subscript:
74
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m5.6 4 4.9 6 4.9-6H18l-6.2 7.5L18 19h-2.6l-4.9-6-5 6H3l6.2-7.5L3 4h2.6Zm16.2 12a.8.8 0 1 0-1.6.2l-1.1.3a2 2 0 1 1 3.3 1L20.7 19H23v1h-4v-1l2.6-2.4.2-.6Z"/></svg>',
75
+ superscript:
76
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m5.6 5 4.9 6 4.9-6H18l-6.2 7.5L18 20h-2.6l-4.9-6-5 6H3l6.2-7.5L3 5h2.6Zm16 1.6a.8.8 0 0 0-.6-1.4.8.8 0 0 0-.8 1l-1.1.3a2 2 0 1 1 3.3 1L20.7 9H23v1h-4V9l2.6-2.4Z"/></svg>',
77
+ "text-color":
78
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M15.2 14H8.8l-1.6 4H5l6-15h2l6 15h-2.2l-1.6-4Zm-.8-2L12 5.9 9.6 12h4.8ZM3 20h18v2H3v-2Z"/></svg>',
79
+ underline:
80
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M8 3v9a4 4 0 0 0 8 0V3h2v9a6 6 0 0 1-12 0V3h2ZM4 20h16v2H4v-2Z"/></svg>',
81
+ undo: '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m5.8 7 2.6 2.5L6.9 11 2 6l5-5 1.4 1.5L5.8 5H13a8 8 0 1 1 0 16H4v-2h9a6 6 0 0 0 0-12H5.8Z"/></svg>',
82
+ unlink:
83
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m17.7 14.8-1.5-1.4 1.5-1.4A4 4 0 1 0 12 6.3l-1.4 1.5-1.4-1.5L10.6 5a6 6 0 0 1 8.5 8.5l-1.4 1.4Zm-2.9 2.9L13.4 19A6 6 0 0 1 5 10.6l1.4-1.4 1.5 1.4L6.3 12a4 4 0 0 0 5.7 5.7l1.4-1.5 1.4 1.5Zm0-10 1.4 1.5-7 7-1.4-1.4 7-7Zm-9-5.4 2-.5 1 3.8-2 .6-1-4Zm9.5 16 1.9-.5 1 4-2 .4-1-3.8ZM2.3 5.9l3.9 1-.6 2-3.8-1 .5-2Zm16 9.5 4 1-.6 2-3.9-1.1.6-2Z"/></svg>',
84
+ "unordered-list":
85
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M8 4h13v2H8V4ZM4.5 6.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3Zm0 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3Zm0 6.9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3ZM8 11h13v2H8v-2Zm0 7h13v2H8v-2Z"/></svg>',
86
+ visualblocks:
87
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M1 2v3h2V4h2v5H3.5v2h5V9H7V4h2v1h2V2H1Zm20 1h-7v2h6v14H4v-5H2v6c0 .6.4 1 1 1h18c.6 0 1-.4 1-1V4c0-.6-.4-1-1-1Z"/></svg>',
88
+ visualchars:
89
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="M12 6v15h-2v-5a6 6 0 0 1 0-12h10v2h-3v15h-2V6h-3Zm-2 0a4 4 0 1 0 0 8V6Z"/></svg>',
90
+ warning:
91
+ '<svg viewBox="0 0 24 24" width="16" height="16"><path d="m12.9 3 9.5 16.5a1 1 0 0 1-.9 1.5h-19a1 1 0 0 1-.9-1.5L11.1 3A1 1 0 0 1 13 3ZM4.2 19h15.6L12 5.5 4.2 19Zm6.8-3h2v2h-2v-2Zm0-7h2v5h-2V9Z"/></svg>'
92
+ }
93
+ })
@@ -1,19 +1,38 @@
1
- tinymce.PluginManager.add('alchemy_link', function(editor, url) {
2
- editor.addButton('alchemy_link', {
3
- icon: 'link',
4
- tooltip: 'Insert/edit link',
5
- shortcut: 'Ctrl+K',
6
- stateSelector: 'a[href]',
7
- onclick: function () {
8
- var linkObject = {
9
- node: editor.selection.getNode(),
10
- bookmark: editor.selection.getBookmark(),
11
- selection: editor.selection,
12
- editor: editor
13
- };
14
- var linkDialog = new Alchemy.LinkDialog(linkObject);
15
- editor.focus();
16
- linkDialog.open();
1
+ tinymce.PluginManager.add("alchemy_link", function (editor) {
2
+ const getAnchor = (selectedElm) => {
3
+ return editor.dom.getParent(selectedElm, "a[href]")
4
+ }
5
+
6
+ const openLinkDialog = () => {
7
+ if (Alchemy.currentDialog()) return
8
+ const linkObject = {
9
+ node: getAnchor(editor.selection.getNode()),
10
+ bookmark: editor.selection.getBookmark(),
11
+ selection: editor.selection,
12
+ editor: editor
17
13
  }
18
- });
19
- });
14
+ const linkDialog = new Alchemy.LinkDialog(linkObject)
15
+ editor.focus()
16
+ linkDialog.open()
17
+ }
18
+
19
+ editor.ui.registry.addToggleButton("alchemy_link", {
20
+ icon: "link",
21
+ tooltip: "Insert/edit link",
22
+ onSetup(buttonApi) {
23
+ const onNodeChange = () => {
24
+ buttonApi.setActive(getAnchor(editor.selection.getNode()) !== null)
25
+ }
26
+ onNodeChange()
27
+ editor.on("NodeChange", onNodeChange)
28
+ return () => {
29
+ editor.off("NodeChange", onNodeChange)
30
+ }
31
+ },
32
+ onAction: openLinkDialog
33
+ })
34
+
35
+ // Replace the default link command with our own
36
+ editor.addCommand("mceLink", openLinkDialog)
37
+ editor.addShortcut("Meta+K", "", openLinkDialog)
38
+ })
@@ -0,0 +1,82 @@
1
+ :root {
2
+ // Sizes
3
+ --spacing-1: 4px;
4
+ --spacing-2: 8px;
5
+ --spacing-3: 12px;
6
+ --spacing-4: 16px;
7
+
8
+ // Font Families
9
+ --font-mono: Menlo, Monaco, "Bitstream Vera Sans Mono", "Lucida Console",
10
+ Terminal, monospace;
11
+ --font-sans: "Open Sans", "Lucida Grande", "Lucida Sans Unicode",
12
+ "Lucida Sans", Verdana, Tahoma, sans-serif;
13
+
14
+ // Font Size - at the moment only in Pixel, because the base font size is 12px
15
+ --font-size_small: 12px; // 0.875rem
16
+ --font-size_medium: 14px; // 1rem
17
+ --font-size_large: 16px; // 1.25 rem
18
+
19
+ --font-weigth_normal: 500;
20
+ --font-weigth_bold: 700;
21
+
22
+ // border-radius
23
+ --border-radius_medium: 3px;
24
+
25
+ // Colors
26
+ --color-blue_very_light: hsl(203deg, 32%, 85%);
27
+ --color-blue_light: hsl(212deg, 51%, 50%);
28
+ --color-blue_medium: hsl(212deg, 52%, 36%);
29
+ --color-blue_dark: hsl(212deg, 51%, 26%);
30
+
31
+ --color-green_very_light: hsl(88deg, 47%, 88%);
32
+ --color-green_light: hsl(127deg, 25%, 69%);
33
+ --color-green_medium: hsl(127deg, 25%, 48%);
34
+ --color-green_dark: hsl(128deg, 32%, 26%);
35
+
36
+ --color-yellow_light: hsl(60, 81%, 92%);
37
+ --color-yellow_medium: hsl(56, 68%, 85%);
38
+ --color-yellow_dark: hsl(56, 53%, 29%);
39
+
40
+ --color-orange_medium: hsl(42deg, 100%, 74%);
41
+ --color-orange_dark: hsl(28deg, 77%, 68%);
42
+ --color-orange_very_dark: hsl(28deg, 77%, 48%);
43
+
44
+ --color-red_very_light: hsl(360deg, 47%, 88%);
45
+ --color-red_light: hsl(360deg, 25%, 69%);
46
+ --color-red_medium: hsl(360deg, 51%, 42%);
47
+ --color-red_dark: hsl(360deg, 51%, 25%);
48
+
49
+ --color-grey-blue_light: hsl(224deg, 23%, 60%);
50
+ --color-grey-blue_medium: hsl(224deg, 23%, 40%);
51
+ --color-grey-blue_dark: hsl(224deg, 23%, 26%);
52
+
53
+ --color-grey_light: hsl(0deg, 0%, 94%);
54
+ --color-grey_medium: hsl(0deg, 0%, 78%);
55
+ --color-grey_dark: hsl(0deg, 0%, 40%);
56
+ --color-grey_very_dark: hsl(0deg, 0%, 20%);
57
+ --color-text: hsla(224, 22.7%, 25.9%, 0.8);
58
+ }
59
+
60
+ .alchemy-light {
61
+ --outline-color: var(--color-orange_dark);
62
+
63
+ --font-color_failed: var(--color-red_medium);
64
+ --font-color_default: var(--color-text);
65
+
66
+ --tabs_indicator-color: var(--color-orange_dark);
67
+ --tabs_track-color: var(--color-grey_light);
68
+ --sl-input-label-color: var(--color-text);
69
+
70
+ --file-upload_background-color: hsla(0deg, 0%, 80%, 0.8);
71
+ --file-upload_single-upload-background-color: var(--color-grey_light);
72
+ --file-upload_progress-track-color: var(--color-blue_very_light);
73
+ --file-upload_progress-indicator-color: var(--color-blue_dark);
74
+
75
+ --file-upload_progress-indicator-color-canceled: hsla(0deg, 0%, 60%, 0.8);
76
+ --file-upload_progress-indicator-color-failed: var(--color-red_medium);
77
+ --file-upload_progress-indicator-color-invalid: var(--color-red_medium);
78
+ --file-upload_progress-indicator-color-successful: var(--color-green_medium);
79
+ --file-upload_progress-indicator-color-upload-finished: var(
80
+ --color-blue_dark
81
+ );
82
+ }
@@ -1,7 +1,8 @@
1
1
  @mixin default-focus-style(
2
2
  $border-color: $focus-color,
3
3
  $box-shadow: 0 0 0 2px $focus-color,
4
- $border-radius: $default-border-radius) {
4
+ $border-radius: $default-border-radius
5
+ ) {
5
6
  border-color: $border-color;
6
7
  border-radius: $border-radius;
7
8
  box-shadow: $box-shadow;
@@ -25,12 +26,15 @@
25
26
  $color: $button-text-color,
26
27
  $line-height: $form-field-line-height,
27
28
  $focus-border-color: $button-focus-border-color,
28
- $focus-box-shadow: $button-focus-box-shadow) {
29
- display: inline-block;
29
+ $focus-box-shadow: $button-focus-box-shadow
30
+ ) {
31
+ display: inline-flex;
32
+ align-items: center;
33
+ justify-content: center;
30
34
  font-family: $default-font-family;
31
35
  font-size: $default-font-size;
32
36
  font-weight: $button-font-weight;
33
- line-height: $line-height;
37
+ height: 30px;
34
38
  padding: $padding;
35
39
  cursor: pointer;
36
40
  border-radius: $border-radius;
@@ -49,7 +53,8 @@
49
53
  border-color: $hover-border-color;
50
54
  }
51
55
 
52
- &:active, &.active {
56
+ &:active,
57
+ &.active {
53
58
  box-shadow: inset $button-box-shadow;
54
59
  }
55
60
 
@@ -60,9 +65,12 @@
60
65
  );
61
66
  }
62
67
 
63
- &.disabled, &[disabled],
64
- &.disabled:active, &[disabled]:active,
65
- &.disabled:hover, &[disabled]:hover {
68
+ &.disabled,
69
+ &[disabled],
70
+ &.disabled:active,
71
+ &[disabled]:active,
72
+ &.disabled:hover,
73
+ &[disabled]:hover {
66
74
  background-color: transparentize($button-bg-color, 0.5);
67
75
  cursor: not-allowed;
68
76
  box-shadow: none;
@@ -90,14 +98,17 @@
90
98
  float: right;
91
99
  width: $form-right-width;
92
100
  margin: $form-field-margin;
93
- padding: $default-padding 2*$default-padding;
101
+ padding: $default-padding 2 * $default-padding;
94
102
  line-height: 21px;
95
103
  min-height: $form-field-height;
96
104
  background: white;
97
105
  border-radius: $default-border-radius;
98
106
  }
99
107
 
100
- @mixin form-hint($background-color: $light_yellow, $border-color: $medium-gray) {
108
+ @mixin form-hint(
109
+ $background-color: $light_yellow,
110
+ $border-color: $medium-gray
111
+ ) {
101
112
  font-size: $small-font-size;
102
113
  line-height: 1.5em;
103
114
  padding: $default-padding;
@@ -135,7 +146,10 @@
135
146
  box-shadow: $shadow;
136
147
  }
137
148
 
138
- @mixin label-base($margin: 2*$default-margin 0, $padding: $default-padding 3*$default-padding) {
149
+ @mixin label-base(
150
+ $margin: 2 * $default-margin 0,
151
+ $padding: $default-padding 3 * $default-padding
152
+ ) {
139
153
  display: inline-block;
140
154
  vertical-align: middle;
141
155
  padding: $padding;
@@ -147,18 +161,18 @@
147
161
  color: $text-color;
148
162
  }
149
163
 
150
- @mixin tag-base($margin: 2*$default-margin 0, $padding: $default-padding 3*$default-padding) {
151
- @include label-base(
152
- $margin: $margin,
153
- $padding: $padding
154
- );
164
+ @mixin tag-base(
165
+ $margin: 2 * $default-margin 0,
166
+ $padding: $default-padding 3 * $default-padding
167
+ ) {
168
+ @include label-base($margin: $margin, $padding: $padding);
155
169
 
156
170
  &:before {
157
- content: fa-content($fa-var-tag);
158
- font-family: 'Font Awesome 5 Free';
159
- font-weight: 900;
160
- font-size: 0.8em;
161
- padding-right: 2*$default-padding;
171
+ content: $ri-price-tag-3-line;
172
+ font-family: "remixicon";
173
+ font-weight: 400;
174
+ font-size: 1em;
175
+ padding-right: $default-padding;
162
176
  }
163
177
 
164
178
  &:focus {
@@ -169,7 +183,8 @@
169
183
  @mixin linked-button(
170
184
  $border-radius: $default-border-radius,
171
185
  $line-height: $form-field-line-height,
172
- $padding: 3px) {
186
+ $padding: 3px
187
+ ) {
173
188
  @include button-defaults(
174
189
  $line-height: $line-height,
175
190
  $background-color: $linked-button-color,
@@ -185,7 +200,7 @@
185
200
 
186
201
  @mixin zoom-in {
187
202
  cursor: pointer;
188
- cursor: image-url('alchemy/lupe.cur');
203
+ cursor: image-url("alchemy/lupe.cur");
189
204
  cursor: -webkit-zoom-in;
190
205
  cursor: -moz-zoom-in;
191
206
  cursor: zoom-in;
@@ -199,13 +214,6 @@
199
214
  white-space: $wrap;
200
215
  }
201
216
 
202
- @mixin hint-hover-style {
203
- visibility: visible;
204
- top: 26px;
205
- opacity: 1;
206
- transition-delay: .2s;
207
- }
208
-
209
217
  @mixin clearfix {
210
218
  &::after {
211
219
  clear: both;
@@ -30,7 +30,11 @@ $default-font-size: 1em !default;
30
30
  $small-font-size: 0.9em !default;
31
31
  $default-font-style: $default-font-size $default-font-family !default;
32
32
 
33
+ $default-padding: 4px !default;
34
+ $default-margin: $default-padding !default;
35
+
33
36
  $dialog-header-height: 36px !default;
37
+ $dialog-header-padding: 0 2 * $default-padding !default;
34
38
  $dialog-header-color: $dark-blue !default;
35
39
  $dialog-header-text-color: $white !default;
36
40
  $dialog-header-font-size: $default-font-size !default;
@@ -39,9 +43,6 @@ $dialog-overlay-color: rgb(100, 100, 100) !default;
39
43
  $dialog-overlay-opacity: 0.4 !default;
40
44
  $dialog-background-color: $light-gray !default;
41
45
 
42
- $default-padding: 4px !default;
43
- $default-margin: $default-padding !default;
44
-
45
46
  $default-border-color: rgba(#afafaf, 0.5) !default;
46
47
  $border-inset-color: lighten($default-border-color, 10%) !default;
47
48
  $default-border-width: 1px !default;
@@ -59,7 +60,7 @@ $form-field-border-style: $default-border-style !default;
59
60
  $form-field-border-color: $default-border-color $default-border-color
60
61
  $border-inset-color $border-inset-color !default;
61
62
  $form-field-box-shadow: inset 0px 0 1px $medium-gray !default;
62
- $form-field-padding: 0.6em 0.75em !default;
63
+ $form-field-padding: $default-padding 2 * $default-padding !default;
63
64
  $form-field-font-size: $default-font-size !default;
64
65
  $form-field-line-height: 1.25 !default;
65
66
  $form-field-text-color: $text-color !default;
@@ -80,10 +81,17 @@ $button-font-weight: 700 !default;
80
81
  $button-text-shadow: none !default;
81
82
  $button-box-shadow: 0px 1px 1px -1px #333 !default;
82
83
  $button-focus-box-shadow: 0px 1px 1px 0px $button-focus-border-color !default;
83
- $button-padding: 0.55em 2em !default;
84
+ $button-padding: $default-padding 5 * $default-padding !default;
84
85
  $small-button-padding: 0.4em 0.8em !default;
85
86
  $button-margin: $form-field-margin !default;
86
87
 
88
+ $icon-button-width: 30px !default;
89
+ $icon-button-height: 30px !default;
90
+ $icon-button-medium-width: 26px !default;
91
+ $icon-button-medium-height: 26px !default;
92
+ $icon-button-small-width: 15px !default;
93
+ $icon-button-small-height: 15px !default;
94
+
87
95
  $secondary-button-bg-color: transparent !default;
88
96
  $secondary-button-text-color: $text-color !default;
89
97
  $secondary-button-border-color: $default-border-color !default;
@@ -108,7 +116,7 @@ $error_text_color: #a23434 !default;
108
116
  $error_background_color: #efd3d3 !default;
109
117
 
110
118
  $hint-background-color: $light_yellow !default;
111
- $hint-text-color: $very-dark-gray !default;
119
+ $hint-text-color: #59543e !default;
112
120
 
113
121
  $form-left-width: 35% !default;
114
122
  $form-right-width: 65% !default;
@@ -130,6 +138,7 @@ $main-menu-icon-color: $white !default;
130
138
  $main-menu-entry-max-width: 110px !default;
131
139
  $toolbar-bg-color: $medium-gray !default;
132
140
  $toolbar-height: 46px !default;
141
+ $tab-bar-height: 51px !default;
133
142
  $element-toolbar-height: 37px !default;
134
143
  $header-height: 29px !default;
135
144
  $header-background: #d8d8d8 !default;
@@ -147,7 +156,7 @@ $table-row-hover-color: rgba($light_yellow, 0.5) !default;
147
156
 
148
157
  $elements-window-width: 22.5vw !default;
149
158
  $elements-window-min-width: 400px !default;
150
- $element-header-bg-color: $medium-gray !default;
159
+ $element-header-bg-color: transparent !default;
151
160
  $element-header-active-bg-color: $dark-blue !default;
152
161
  $element-header-active-color: $white !default;
153
162
  $element-header-deprecated-bg-color: rgba(253, 213, 175, 0.25) !default;
@@ -174,6 +183,12 @@ $select-hover-text-color: $white !default;
174
183
  $medium-select-box-width: 90px;
175
184
  $large-select-box-width: 120px;
176
185
 
177
- $thumbnail-background-color: opacify($default-border-color, 1) !default;
186
+ $thumbnail-background:
187
+ linear-gradient(45deg, $medium-gray 25%, transparent 25%) 0.5em 0.5em/1em 1em,
188
+ linear-gradient(-45deg, $medium-gray 25%, transparent 25%) -0.5em 0/1em 1em,
189
+ linear-gradient(45deg, transparent 75%, $medium-gray 75%) 0 0/1em 1em,
190
+ linear-gradient(-45deg, transparent 75%, $medium-gray 75%) 0 0.5em/1em 1em
191
+ $white !default;
192
+
178
193
  $medium-screen-break-point: 700px;
179
194
  $large-screen-break-point: 1000px;
@@ -3,9 +3,8 @@
3
3
  *= require_self
4
4
  */
5
5
 
6
- @import "fontawesome/fontawesome";
7
- @import "fontawesome/regular";
8
- @import "fontawesome/solid";
6
+ @import "remixicon";
7
+ @import "alchemy/custom-properties";
9
8
  @import "alchemy/defaults";
10
9
  @import "alchemy/archive";
11
10
  @import "alchemy/navigation";
@@ -39,6 +38,7 @@
39
38
  @import "alchemy/resource_info";
40
39
  @import "alchemy/search";
41
40
  @import "alchemy/selects";
41
+ @import "alchemy/shoelace";
42
42
  @import "alchemy/sitemap";
43
43
  @import "alchemy/spinner";
44
44
  @import "alchemy/tables";
@@ -46,5 +46,4 @@
46
46
  @import "alchemy/typography";
47
47
  @import "alchemy/lists";
48
48
  @import "alchemy/upload";
49
- @import "alchemy/jquery-ui";
50
49
  @import "jquery.Jcrop.min";