alchemy_cms 8.3.11 → 8.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +58 -10
- data/app/assets/builds/alchemy/admin/page-select.css +1 -1
- data/app/assets/builds/alchemy/admin/print.css +1 -1
- data/app/assets/builds/alchemy/admin/remote-select.css +1 -0
- data/app/assets/builds/alchemy/admin/tags-autocomplete.css +1 -0
- data/app/assets/builds/alchemy/admin.css +4 -4
- data/app/assets/builds/alchemy/alchemy_admin.min.js +1 -1
- data/app/assets/builds/alchemy/alchemy_admin.min.js.map +1 -1
- data/app/assets/builds/alchemy/dark-theme.css +1 -1
- data/app/assets/builds/alchemy/light-theme.css +1 -1
- data/app/assets/builds/alchemy/preview.min.js +1 -1
- data/app/assets/builds/alchemy/theme.css +1 -1
- data/app/assets/builds/alchemy/welcome.css +1 -1
- data/app/assets/builds/tinymce/skins/content/alchemy/content.min.css +1 -1
- data/app/assets/builds/tinymce/skins/content/alchemy-dark/content.min.css +1 -1
- data/app/assets/builds/tinymce/skins/ui/alchemy/skin.min.css +1 -1
- data/app/assets/builds/tinymce/skins/ui/alchemy-dark/skin.min.css +1 -1
- data/app/assets/images/alchemy/icons-sprite.svg +1 -1
- data/app/components/alchemy/admin/dashboard/widgets/greeting.html.erb +1 -1
- data/app/components/alchemy/admin/dashboard/widgets/news_reader.html.erb +38 -0
- data/app/components/alchemy/admin/dashboard/widgets/news_reader.rb +54 -0
- data/app/components/alchemy/admin/dashboard/widgets/online_users.html.erb +1 -1
- data/app/components/alchemy/admin/dashboard/widgets/recent_pages.html.erb +1 -1
- data/app/components/alchemy/admin/dashboard/widgets/system_info.html.erb +11 -3
- data/app/components/alchemy/admin/dashboard/widgets/system_info.rb +6 -1
- data/app/components/alchemy/admin/element_editor.html.erb +1 -1
- data/app/components/alchemy/admin/element_select.rb +30 -20
- data/app/components/alchemy/admin/element_status_indicators.html.erb +16 -0
- data/app/components/alchemy/admin/element_status_indicators.rb +31 -0
- data/app/components/alchemy/admin/link_dialog/external_tab.rb +2 -1
- data/app/components/alchemy/admin/main_navigation/entry.rb +61 -0
- data/app/components/alchemy/admin/main_navigation/menu.rb +21 -0
- data/app/components/alchemy/admin/main_navigation/sub_navigation.rb +31 -0
- data/app/components/alchemy/admin/page_node.html.erb +1 -1
- data/app/components/alchemy/admin/page_permitted_roles_select.html.erb +11 -0
- data/app/components/alchemy/admin/page_permitted_roles_select.rb +35 -0
- data/app/components/alchemy/admin/page_select.rb +18 -8
- data/app/components/alchemy/admin/preview_time_select.rb +1 -1
- data/app/components/alchemy/admin/toolbar_button.rb +43 -20
- data/app/components/alchemy/admin/uploader_button.rb +66 -0
- data/app/components/alchemy/ingredients/base_editor.rb +10 -1
- data/app/components/alchemy/ingredients/boolean_editor.rb +1 -0
- data/app/components/alchemy/ingredients/color_editor.rb +6 -3
- data/app/components/alchemy/ingredients/datetime_view.rb +1 -1
- data/app/components/alchemy/ingredients/picture_view.rb +2 -4
- data/app/components/alchemy/menubar.html.erb +157 -0
- data/app/components/alchemy/menubar.rb +15 -0
- data/app/controllers/alchemy/admin/attachments_controller.rb +12 -9
- data/app/controllers/alchemy/admin/base_controller.rb +34 -21
- data/app/controllers/alchemy/admin/dashboard_controller.rb +4 -0
- data/app/controllers/alchemy/admin/elements_controller.rb +4 -23
- data/app/controllers/alchemy/admin/languages_controller.rb +1 -1
- data/app/controllers/alchemy/admin/nodes_controller.rb +1 -1
- data/app/controllers/alchemy/admin/pages_controller.rb +1 -1
- data/app/controllers/alchemy/admin/pictures_controller.rb +6 -3
- data/app/controllers/alchemy/admin/resources_controller.rb +5 -5
- data/app/controllers/alchemy/admin/sites_controller.rb +1 -1
- data/app/controllers/alchemy/base_controller.rb +24 -16
- data/app/controllers/alchemy/pages_controller.rb +29 -8
- data/app/controllers/alchemy/sitemap_controller.rb +58 -0
- data/app/controllers/concerns/alchemy/admin/csp_protection.rb +43 -0
- data/app/controllers/concerns/alchemy/admin/current_language.rb +1 -1
- data/app/controllers/concerns/alchemy/admin/resource_filter.rb +3 -1
- data/{lib → app/controllers/concerns}/alchemy/controller_actions.rb +13 -0
- data/app/controllers/concerns/alchemy/legacy_page_redirects.rb +4 -4
- data/app/helpers/alchemy/admin/base_helper.rb +4 -1
- data/app/helpers/alchemy/admin/form_helper.rb +0 -2
- data/app/helpers/alchemy/admin/navigation_helper.rb +10 -181
- data/app/helpers/alchemy/elements_block_helper.rb +14 -0
- data/app/helpers/alchemy/resources_helper.rb +15 -1
- data/app/javascript/alchemy_admin/components/attachment_select.js +11 -20
- data/app/javascript/alchemy_admin/components/auto_submit.js +2 -4
- data/app/javascript/alchemy_admin/components/button.js +0 -6
- data/app/javascript/alchemy_admin/components/clear_schedule_button.js +21 -0
- data/app/javascript/alchemy_admin/components/color_select.js +50 -45
- data/app/javascript/alchemy_admin/components/conditional_field.js +50 -0
- data/app/javascript/alchemy_admin/components/dirty_guard.js +77 -0
- data/app/javascript/alchemy_admin/components/dom_id_select.js +17 -10
- data/app/javascript/alchemy_admin/components/element_editor/delete_element_button.js +7 -2
- data/app/javascript/alchemy_admin/components/element_editor.js +29 -56
- data/app/javascript/alchemy_admin/components/element_select.js +26 -66
- data/app/javascript/alchemy_admin/components/icon.js +9 -4
- data/app/javascript/alchemy_admin/{image_cropper.js → components/image_cropper.js} +39 -53
- data/app/javascript/alchemy_admin/components/image_overlay_link.js +14 -0
- data/app/javascript/alchemy_admin/components/index.js +12 -1
- data/app/javascript/alchemy_admin/components/main_navi_entry.js +75 -0
- data/app/javascript/alchemy_admin/components/menu_node.js +73 -0
- data/app/javascript/alchemy_admin/components/news_reader.js +109 -0
- data/app/javascript/alchemy_admin/components/node_folder.js +36 -0
- data/app/javascript/alchemy_admin/components/node_form.js +34 -0
- data/app/javascript/alchemy_admin/components/node_select.js +25 -30
- data/app/javascript/alchemy_admin/components/node_tree.js +56 -0
- data/app/javascript/alchemy_admin/components/page_node.js +2 -1
- data/app/javascript/alchemy_admin/components/page_select.js +16 -34
- data/app/javascript/alchemy_admin/components/picture_archive.js +92 -0
- data/app/javascript/alchemy_admin/components/picture_editor.js +2 -1
- data/app/javascript/alchemy_admin/components/preview_window.js +11 -3
- data/app/javascript/alchemy_admin/components/remote_select.js +461 -81
- data/app/javascript/alchemy_admin/components/select.js +26 -88
- data/app/javascript/alchemy_admin/components/sitemap.js +2 -1
- data/app/javascript/alchemy_admin/components/sortable_elements.js +2 -1
- data/app/javascript/alchemy_admin/components/tags_autocomplete.js +63 -48
- data/app/javascript/alchemy_admin/components/tinymce.js +2 -1
- data/app/javascript/alchemy_admin/components/uploader/file_upload.js +3 -2
- data/app/javascript/alchemy_admin/components/uploader.js +19 -3
- data/app/javascript/alchemy_admin/confirm_dialog.js +7 -1
- data/app/javascript/alchemy_admin/dialog.js +182 -110
- data/app/javascript/alchemy_admin/hotkeys.js +0 -5
- data/app/javascript/alchemy_admin/i18n.js +3 -9
- data/app/javascript/alchemy_admin/image_overlay.js +58 -42
- data/app/javascript/alchemy_admin/initializer.js +2 -2
- data/app/javascript/alchemy_admin/link_dialog.js +15 -2
- data/app/javascript/alchemy_admin/routes.js +18 -0
- data/app/javascript/alchemy_admin/turbo_stream_actions.js +88 -0
- data/app/javascript/alchemy_admin/utils/ajax.js +14 -3
- data/app/javascript/alchemy_admin/utils/events.js +5 -0
- data/app/javascript/alchemy_admin/utils/json_script.js +12 -0
- data/app/javascript/alchemy_admin/utils/tom_select.js +171 -0
- data/app/javascript/alchemy_admin.js +2 -19
- data/app/javascript/preview.js +131 -113
- data/app/jobs/alchemy/invalidate_elements_cache_job.rb +1 -1
- data/app/models/alchemy/admin/content_security_policy.rb +143 -0
- data/app/models/alchemy/admin/filters/base.rb +7 -0
- data/app/models/alchemy/admin/filters/datepicker.rb +1 -1
- data/app/models/alchemy/admin/filters/select.rb +20 -7
- data/app/models/alchemy/attachment.rb +14 -7
- data/app/models/alchemy/cache_control.rb +104 -0
- data/app/models/alchemy/current.rb +1 -1
- data/app/models/alchemy/eager_loading.rb +0 -2
- data/app/models/alchemy/element.rb +23 -8
- data/app/models/alchemy/element_definition.rb +1 -0
- data/app/models/alchemy/elements_repository.rb +11 -0
- data/app/models/alchemy/folded_page.rb +5 -1
- data/app/models/alchemy/ingredient.rb +26 -0
- data/app/models/alchemy/ingredients/datetime.rb +1 -1
- data/app/models/alchemy/ingredients/link.rb +2 -0
- data/app/models/alchemy/ingredients/picture.rb +3 -0
- data/app/models/alchemy/ingredients/text.rb +2 -0
- data/app/models/alchemy/language.rb +19 -7
- data/app/models/alchemy/legacy_page_url.rb +6 -1
- data/app/models/alchemy/node.rb +51 -0
- data/app/models/alchemy/page/page_natures.rb +41 -8
- data/app/models/alchemy/page/page_scopes.rb +23 -0
- data/app/models/alchemy/page/sitemap_cache_key.rb +56 -0
- data/app/models/alchemy/page.rb +88 -32
- data/app/models/alchemy/page_definition.rb +1 -1
- data/app/models/alchemy/page_mutex.rb +16 -0
- data/app/models/alchemy/page_version.rb +24 -1
- data/app/models/alchemy/permissions.rb +6 -5
- data/app/models/alchemy/picture.rb +15 -7
- data/app/models/alchemy/picture_description.rb +22 -0
- data/app/models/alchemy/picture_thumb.rb +18 -0
- data/app/models/alchemy/publishable/timestamp_resolver.rb +70 -0
- data/app/models/alchemy/resource.rb +1 -1
- data/app/models/alchemy/safe_url_validator.rb +34 -0
- data/app/models/alchemy/site.rb +8 -3
- data/app/models/alchemy/storage_adapter/active_storage/preprocessor.rb +7 -3
- data/app/models/alchemy/storage_adapter/active_storage.rb +4 -1
- data/app/models/alchemy/tag.rb +10 -4
- data/{lib → app/models/concerns}/alchemy/filetypes.rb +5 -0
- data/app/models/concerns/alchemy/picture_thumbnails.rb +61 -6
- data/app/models/concerns/alchemy/publishable.rb +14 -27
- data/app/models/concerns/alchemy/taggable.rb +92 -0
- data/app/models/concerns/alchemy/user_methods.rb +95 -0
- data/app/services/alchemy/duplicate_element.rb +5 -2
- data/app/services/alchemy/element_preloader.rb +1 -2
- data/app/stylesheets/alchemy/_custom-properties.scss +1 -0
- data/app/stylesheets/alchemy/_extends.scss +0 -8
- data/app/stylesheets/alchemy/_themes.scss +10 -9
- data/app/stylesheets/alchemy/admin/_empty-state.scss +29 -0
- data/app/stylesheets/alchemy/admin/_help.scss +10 -0
- data/app/stylesheets/alchemy/admin/_tom-select.scss +104 -15
- data/app/stylesheets/alchemy/admin/archive.scss +56 -11
- data/app/stylesheets/alchemy/admin/base.scss +4 -5
- data/app/stylesheets/alchemy/admin/buttons.scss +12 -1
- data/app/stylesheets/alchemy/admin/dashboard.scss +150 -20
- data/app/stylesheets/alchemy/admin/dialogs.scss +27 -36
- data/app/stylesheets/alchemy/admin/element-select.scss +1 -1
- data/app/stylesheets/alchemy/admin/elements.scss +8 -24
- data/app/stylesheets/alchemy/admin/flash.scss +2 -1
- data/app/stylesheets/alchemy/admin/forms.scss +60 -24
- data/app/stylesheets/alchemy/admin/frame.scss +40 -4
- data/app/stylesheets/alchemy/admin/image_library.scss +9 -12
- data/app/stylesheets/alchemy/admin/navigation.scss +17 -14
- data/app/stylesheets/alchemy/admin/node-select.scss +13 -37
- data/app/stylesheets/alchemy/admin/nodes.scss +1 -1
- data/app/stylesheets/alchemy/admin/page-select.scss +6 -97
- data/app/stylesheets/alchemy/admin/print.scss +0 -4
- data/app/stylesheets/alchemy/admin/remote-select.scss +170 -0
- data/app/stylesheets/alchemy/admin/search.scss +2 -3
- data/app/stylesheets/alchemy/admin/selects.scss +1 -294
- data/app/stylesheets/alchemy/admin/sitemap.scss +2 -1
- data/app/stylesheets/alchemy/admin/tables.scss +7 -1
- data/app/stylesheets/alchemy/admin/tags-autocomplete.scss +17 -0
- data/app/stylesheets/alchemy/admin/tags.scss +0 -13
- data/app/stylesheets/alchemy/admin/toolbar.scss +9 -6
- data/app/stylesheets/alchemy/admin/upload.scss +61 -1
- data/app/stylesheets/alchemy/admin.scss +4 -1
- data/app/types/alchemy/cache_control_type.rb +84 -0
- data/app/views/alchemy/_edit_mode.html.erb +1 -1
- data/app/views/alchemy/_menubar.html.erb +2 -154
- data/app/views/alchemy/_preview_mode_code.html.erb +0 -3
- data/app/views/alchemy/admin/_left_menu.html.erb +18 -5
- data/app/views/alchemy/admin/_top_menu.html.erb +1 -1
- data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +5 -4
- data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +3 -3
- data/app/views/alchemy/admin/attachments/_files_list.html.erb +71 -83
- data/app/views/alchemy/admin/attachments/assign.turbo_stream.erb +8 -0
- data/app/views/alchemy/admin/attachments/index.html.erb +32 -7
- data/app/views/alchemy/admin/clipboard/insert.turbo_stream.erb +1 -1
- data/app/views/alchemy/admin/crop.html.erb +20 -20
- data/app/views/alchemy/admin/dashboard/_footer.html.erb +0 -3
- data/app/views/alchemy/admin/dashboard/_top.html.erb +1 -0
- data/app/views/alchemy/admin/dashboard/help.html.erb +84 -57
- data/app/views/alchemy/admin/dashboard/license.html.erb +6 -0
- data/app/views/alchemy/admin/elements/_footer.html.erb +0 -1
- data/app/views/alchemy/admin/elements/_form.html.erb +1 -1
- data/app/views/alchemy/admin/elements/_header.html.erb +2 -19
- data/app/views/alchemy/admin/elements/_preview_text_quote.html.erb +3 -0
- data/app/views/alchemy/admin/elements/_schedule.html.erb +7 -7
- data/app/views/alchemy/admin/elements/_toolbar.html.erb +1 -1
- data/app/views/alchemy/admin/elements/create.turbo_stream.erb +1 -1
- data/app/views/alchemy/admin/elements/index.html.erb +1 -1
- data/app/views/alchemy/admin/elements/publish.turbo_stream.erb +2 -2
- data/app/views/alchemy/admin/elements/update.turbo_stream.erb +31 -0
- data/app/views/alchemy/admin/ingredients/update.turbo_stream.erb +6 -3
- data/app/views/alchemy/admin/languages/_table.html.erb +0 -2
- data/app/views/alchemy/admin/languages/index.html.erb +25 -29
- data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +1 -3
- data/app/views/alchemy/admin/layoutpages/edit.html.erb +1 -1
- data/app/views/alchemy/admin/layoutpages/index.html.erb +26 -7
- data/app/views/alchemy/admin/nodes/_form.html.erb +3 -21
- data/app/views/alchemy/admin/nodes/_node.html.erb +93 -88
- data/app/views/alchemy/admin/nodes/index.html.erb +15 -23
- data/app/views/alchemy/admin/pages/_create_language_form.html.erb +2 -6
- data/app/views/alchemy/admin/pages/_form.html.erb +2 -1
- data/app/views/alchemy/admin/pages/_publication_fields.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_table.html.erb +2 -4
- data/app/views/alchemy/admin/pages/_toolbar.html.erb +2 -1
- data/app/views/alchemy/admin/pages/edit.html.erb +10 -21
- data/app/views/alchemy/admin/pages/flush.turbo_stream.erb +1 -1
- data/app/views/alchemy/admin/pages/index.html.erb +26 -31
- data/app/views/alchemy/admin/pages/info.html.erb +2 -2
- data/app/views/alchemy/admin/pages/update.turbo_stream.erb +2 -2
- data/app/views/alchemy/admin/partials/_language_tree_select.html.erb +1 -1
- data/app/views/alchemy/admin/partials/_routes.html.erb +24 -48
- data/app/views/alchemy/admin/pictures/_archive.html.erb +3 -17
- data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +5 -3
- data/app/views/alchemy/admin/pictures/_form.html.erb +0 -1
- data/app/views/alchemy/admin/pictures/_infos.html.erb +5 -1
- data/app/views/alchemy/admin/pictures/_picture.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +3 -4
- data/app/views/alchemy/admin/pictures/assign.turbo_stream.erb +7 -0
- data/app/views/alchemy/admin/pictures/index.html.erb +38 -30
- data/app/views/alchemy/admin/pictures/show.html.erb +41 -41
- data/app/views/alchemy/admin/resources/_empty_state.html.erb +27 -0
- data/app/views/alchemy/admin/resources/_pagination.html.erb +1 -1
- data/app/views/alchemy/admin/resources/_per_page_select.html.erb +1 -1
- data/app/views/alchemy/admin/resources/_resource_table.html.erb +0 -2
- data/app/views/alchemy/admin/resources/_resource_usage_info.html.erb +3 -2
- data/app/views/alchemy/admin/resources/index.html.erb +32 -13
- data/app/views/alchemy/admin/sites/index.html.erb +24 -22
- data/app/views/alchemy/admin/styleguide/index.html.erb +35 -12
- data/app/views/alchemy/admin/tags/index.html.erb +27 -25
- data/app/views/alchemy/admin/tinymce/_setup.html.erb +6 -8
- data/app/views/alchemy/admin/translations/_en.js +3 -0
- data/app/views/alchemy/admin/uploader/_button.html.erb +11 -17
- data/app/views/alchemy/admin/uploader/_setup.html.erb +3 -3
- data/app/views/alchemy/pages/sitemap.xml.erb +2 -0
- data/app/views/kaminari/alchemy/_first_page.html.erb +1 -2
- data/app/views/kaminari/alchemy/_gap.html.erb +0 -1
- data/app/views/kaminari/alchemy/_last_page.html.erb +1 -2
- data/app/views/kaminari/alchemy/_next_page.html.erb +1 -2
- data/app/views/kaminari/alchemy/_page.html.erb +1 -2
- data/app/views/kaminari/alchemy/_paginator.html.erb +0 -1
- data/app/views/kaminari/alchemy/_prev_page.html.erb +1 -2
- data/app/views/layouts/alchemy/admin/dialog.html.erb +3 -0
- data/app/views/layouts/alchemy/admin.html.erb +5 -6
- data/config/brakeman.ignore +23 -1
- data/config/importmap.rb +10 -8
- data/config/initializers/dragonfly.rb +21 -17
- data/config/locales/alchemy.en.yml +52 -11
- data/config/routes.rb +3 -3
- data/db/migrate/20260727120000_add_permitted_roles_to_alchemy_pages.rb +23 -0
- data/db/migrate/20260820120000_add_cached_tag_list_to_taggables.rb +57 -0
- data/lib/alchemy/configuration/number_option.rb +13 -0
- data/lib/alchemy/configuration/proc_option.rb +13 -0
- data/lib/alchemy/configuration.rb +2 -0
- data/lib/alchemy/configurations/admin_components.rb +30 -0
- data/lib/alchemy/configurations/format_matchers.rb +7 -1
- data/lib/alchemy/configurations/main.rb +103 -4
- data/lib/alchemy/configurations/menu.rb +91 -0
- data/lib/alchemy/configurations/menu_item.rb +123 -0
- data/lib/alchemy/configurations/sitemap.rb +1 -0
- data/lib/alchemy/configurations/uploader.rb +15 -1
- data/lib/alchemy/engine.rb +0 -6
- data/lib/alchemy/i18n.rb +26 -0
- data/lib/alchemy/modules.rb +52 -50
- data/lib/alchemy/tasks/generate_thumbnails.rb +99 -0
- data/lib/alchemy/tasks/tidy.rb +1 -1
- data/lib/alchemy/test_support/capybara_helpers.rb +48 -37
- data/lib/alchemy/test_support/current_language_shared_examples.rb +1 -1
- data/lib/alchemy/test_support/factories/dummy_user_factory.rb +4 -1
- data/lib/alchemy/test_support/having_picture_thumbnails_examples.rb +132 -0
- data/lib/alchemy/test_support/shared_ingredient_examples.rb +52 -0
- data/lib/alchemy/test_support/shared_publishable_examples.rb +29 -4
- data/lib/alchemy/upgrader/eight_four.rb +237 -0
- data/lib/alchemy/upgrader/register_module_rewriter.rb +177 -0
- data/lib/alchemy/upgrader.rb +2 -1
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy.rb +0 -1
- data/lib/alchemy_cms.rb +0 -13
- data/lib/generators/alchemy/elements/templates/view.html.erb +1 -1
- data/lib/generators/alchemy/elements/templates/view.html.haml +1 -1
- data/lib/generators/alchemy/elements/templates/view.html.slim +1 -1
- data/lib/generators/alchemy/install/install_generator.rb +2 -13
- data/lib/generators/alchemy/install/templates/alchemy.rb.tt +24 -9
- data/lib/generators/alchemy/module/module_generator.rb +1 -0
- data/lib/generators/alchemy/module/templates/ability.rb.tt +1 -1
- data/lib/generators/alchemy/module/templates/module_config.rb.tt +16 -18
- data/lib/generators/alchemy/user_columns_migration/templates/migration.rb.tt +19 -0
- data/lib/generators/alchemy/user_columns_migration/user_columns_migration_generator.rb +30 -0
- data/lib/tasks/alchemy/thumbnails.rake +16 -29
- data/lib/tasks/alchemy/upgrade.rake +45 -3
- data/vendor/javascript/cropperjs.min.js +3 -3
- data/vendor/javascript/floating-ui.min.js +1 -1
- data/vendor/javascript/tinymce.min.js +5 -5
- data/vendor/javascript/tom-select.min.js +1 -1
- metadata +85 -65
- data/app/javascript/alchemy_admin/components/action.js +0 -50
- data/app/javascript/alchemy_admin/dirty.js +0 -55
- data/app/javascript/alchemy_admin/node_tree.js +0 -82
- data/app/javascript/alchemy_admin/picture_selector.js +0 -67
- data/app/javascript/alchemy_admin/templates/compiled.js +0 -1
- data/app/javascript/alchemy_admin/templates/node_folder.hbs +0 -3
- data/app/stylesheets/alchemy/admin/attachment-select.scss +0 -19
- data/app/views/alchemy/admin/_main_navi.html.erb +0 -6
- data/app/views/alchemy/admin/attachments/assign.js.erb +0 -15
- data/app/views/alchemy/admin/pages/_page_layout_filter.html.erb +0 -30
- data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +0 -20
- data/app/views/alchemy/admin/partials/_sub_navigation.html.erb +0 -11
- data/app/views/alchemy/admin/pictures/assign.js.erb +0 -13
- data/app/views/alchemy/base/error_notice.js.erb +0 -1
- data/app/views/alchemy/base/permission_denied.js.erb +0 -3
- data/app/views/alchemy/base/redirect.js.erb +0 -11
- data/config/alchemy/config.yml +0 -217
- data/config/alchemy/modules.yml +0 -82
- data/config/initializers/rails_live_reload.rb +0 -13
- data/lib/alchemy/dev_support/live_reload_watcher.rb +0 -5
- data/lib/alchemy/taggable.rb +0 -49
- data/lib/generators/alchemy/install/templates/dragonfly.rb.tt +0 -34
- data/vendor/assets/stylesheets/alchemy_admin/select2.css +0 -1
- data/vendor/javascript/handlebars.min.js +0 -29
- data/vendor/javascript/jquery.min.js +0 -2
- data/vendor/javascript/rails-ujs.min.js +0 -1
- data/vendor/javascript/select2.min.js +0 -23
- /data/{lib → app/controllers/concerns}/alchemy/ability_helper.rb +0 -0
- /data/{lib → app/controllers/concerns}/alchemy/admin/locale.rb +0 -0
- /data/{lib → app/controllers/concerns}/alchemy/admin/preview_time.rb +0 -0
- /data/{lib → app/controllers/concerns}/alchemy/admin/timezone.rb +0 -0
- /data/{lib → app/controllers/concerns}/alchemy/configuration_methods.rb +0 -0
- /data/{lib → app/models}/alchemy/admin/preview_url.rb +0 -0
- /data/{lib → app/models/concerns}/alchemy/hints.rb +0 -0
- /data/{lib → app/models/concerns}/alchemy/name_conversions.rb +0 -0
- /data/{lib → app/services}/alchemy/elements_finder.rb +0 -0
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: alchemy_cms
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 8.
|
|
4
|
+
version: 8.4.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thomas von Deyen
|
|
@@ -282,20 +282,6 @@ dependencies:
|
|
|
282
282
|
- - "~>"
|
|
283
283
|
- !ruby/object:Gem::Version
|
|
284
284
|
version: '3.3'
|
|
285
|
-
- !ruby/object:Gem::Dependency
|
|
286
|
-
name: dragonfly
|
|
287
|
-
requirement: !ruby/object:Gem::Requirement
|
|
288
|
-
requirements:
|
|
289
|
-
- - "~>"
|
|
290
|
-
- !ruby/object:Gem::Version
|
|
291
|
-
version: '1.4'
|
|
292
|
-
type: :runtime
|
|
293
|
-
prerelease: false
|
|
294
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
295
|
-
requirements:
|
|
296
|
-
- - "~>"
|
|
297
|
-
- !ruby/object:Gem::Version
|
|
298
|
-
version: '1.4'
|
|
299
285
|
- !ruby/object:Gem::Dependency
|
|
300
286
|
name: gutentag
|
|
301
287
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -384,20 +370,20 @@ dependencies:
|
|
|
384
370
|
requirements:
|
|
385
371
|
- - ">="
|
|
386
372
|
- !ruby/object:Gem::Version
|
|
387
|
-
version: '
|
|
373
|
+
version: '4.0'
|
|
388
374
|
- - "<"
|
|
389
375
|
- !ruby/object:Gem::Version
|
|
390
|
-
version: '
|
|
376
|
+
version: '7.0'
|
|
391
377
|
type: :runtime
|
|
392
378
|
prerelease: false
|
|
393
379
|
version_requirements: !ruby/object:Gem::Requirement
|
|
394
380
|
requirements:
|
|
395
381
|
- - ">="
|
|
396
382
|
- !ruby/object:Gem::Version
|
|
397
|
-
version: '
|
|
383
|
+
version: '4.0'
|
|
398
384
|
- - "<"
|
|
399
385
|
- !ruby/object:Gem::Version
|
|
400
|
-
version: '
|
|
386
|
+
version: '7.0'
|
|
401
387
|
- !ruby/object:Gem::Dependency
|
|
402
388
|
name: simple_form
|
|
403
389
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -654,7 +640,7 @@ dependencies:
|
|
|
654
640
|
- - "~>"
|
|
655
641
|
- !ruby/object:Gem::Version
|
|
656
642
|
version: '0.9'
|
|
657
|
-
description: Alchemy is a
|
|
643
|
+
description: Alchemy is a semantically structured and full-featured Rails CMS Engine.
|
|
658
644
|
email:
|
|
659
645
|
- alchemy@blish.cloud
|
|
660
646
|
executables: []
|
|
@@ -666,6 +652,8 @@ files:
|
|
|
666
652
|
- app/assets/builds/alchemy/admin.css
|
|
667
653
|
- app/assets/builds/alchemy/admin/page-select.css
|
|
668
654
|
- app/assets/builds/alchemy/admin/print.css
|
|
655
|
+
- app/assets/builds/alchemy/admin/remote-select.css
|
|
656
|
+
- app/assets/builds/alchemy/admin/tags-autocomplete.css
|
|
669
657
|
- app/assets/builds/alchemy/alchemy_admin.min.js
|
|
670
658
|
- app/assets/builds/alchemy/alchemy_admin.min.js.map
|
|
671
659
|
- app/assets/builds/alchemy/dark-theme.css
|
|
@@ -698,6 +686,8 @@ files:
|
|
|
698
686
|
- app/components/alchemy/admin/dashboard/widgets/greeting.rb
|
|
699
687
|
- app/components/alchemy/admin/dashboard/widgets/locked_pages.html.erb
|
|
700
688
|
- app/components/alchemy/admin/dashboard/widgets/locked_pages.rb
|
|
689
|
+
- app/components/alchemy/admin/dashboard/widgets/news_reader.html.erb
|
|
690
|
+
- app/components/alchemy/admin/dashboard/widgets/news_reader.rb
|
|
701
691
|
- app/components/alchemy/admin/dashboard/widgets/online_users.html.erb
|
|
702
692
|
- app/components/alchemy/admin/dashboard/widgets/online_users.rb
|
|
703
693
|
- app/components/alchemy/admin/dashboard/widgets/page_counts.rb
|
|
@@ -718,6 +708,8 @@ files:
|
|
|
718
708
|
- app/components/alchemy/admin/element_editor.rb
|
|
719
709
|
- app/components/alchemy/admin/element_schedule_timestamps.rb
|
|
720
710
|
- app/components/alchemy/admin/element_select.rb
|
|
711
|
+
- app/components/alchemy/admin/element_status_indicators.html.erb
|
|
712
|
+
- app/components/alchemy/admin/element_status_indicators.rb
|
|
721
713
|
- app/components/alchemy/admin/icon.rb
|
|
722
714
|
- app/components/alchemy/admin/ingredient_editor.rb
|
|
723
715
|
- app/components/alchemy/admin/link_dialog/anchor_tab.rb
|
|
@@ -728,10 +720,15 @@ files:
|
|
|
728
720
|
- app/components/alchemy/admin/link_dialog/tabs.rb
|
|
729
721
|
- app/components/alchemy/admin/list_filter.rb
|
|
730
722
|
- app/components/alchemy/admin/locale_select.rb
|
|
723
|
+
- app/components/alchemy/admin/main_navigation/entry.rb
|
|
724
|
+
- app/components/alchemy/admin/main_navigation/menu.rb
|
|
725
|
+
- app/components/alchemy/admin/main_navigation/sub_navigation.rb
|
|
731
726
|
- app/components/alchemy/admin/message.rb
|
|
732
727
|
- app/components/alchemy/admin/node_select.rb
|
|
733
728
|
- app/components/alchemy/admin/page_node.html.erb
|
|
734
729
|
- app/components/alchemy/admin/page_node.rb
|
|
730
|
+
- app/components/alchemy/admin/page_permitted_roles_select.html.erb
|
|
731
|
+
- app/components/alchemy/admin/page_permitted_roles_select.rb
|
|
735
732
|
- app/components/alchemy/admin/page_publication_fields.html.erb
|
|
736
733
|
- app/components/alchemy/admin/page_publication_fields.rb
|
|
737
734
|
- app/components/alchemy/admin/page_select.rb
|
|
@@ -757,6 +754,7 @@ files:
|
|
|
757
754
|
- app/components/alchemy/admin/timezone_select.rb
|
|
758
755
|
- app/components/alchemy/admin/toolbar_button.rb
|
|
759
756
|
- app/components/alchemy/admin/update_check.rb
|
|
757
|
+
- app/components/alchemy/admin/uploader_button.rb
|
|
760
758
|
- app/components/alchemy/ingredients/audio_editor.rb
|
|
761
759
|
- app/components/alchemy/ingredients/audio_view.rb
|
|
762
760
|
- app/components/alchemy/ingredients/base_editor.rb
|
|
@@ -791,6 +789,8 @@ files:
|
|
|
791
789
|
- app/components/alchemy/ingredients/text_view.rb
|
|
792
790
|
- app/components/alchemy/ingredients/video_editor.rb
|
|
793
791
|
- app/components/alchemy/ingredients/video_view.rb
|
|
792
|
+
- app/components/alchemy/menubar.html.erb
|
|
793
|
+
- app/components/alchemy/menubar.rb
|
|
794
794
|
- app/components/concerns/alchemy/ingredients/link_target.rb
|
|
795
795
|
- app/controllers/alchemy/admin/attachments_controller.rb
|
|
796
796
|
- app/controllers/alchemy/admin/base_controller.rb
|
|
@@ -821,13 +821,21 @@ files:
|
|
|
821
821
|
- app/controllers/alchemy/base_controller.rb
|
|
822
822
|
- app/controllers/alchemy/messages_controller.rb
|
|
823
823
|
- app/controllers/alchemy/pages_controller.rb
|
|
824
|
+
- app/controllers/alchemy/sitemap_controller.rb
|
|
825
|
+
- app/controllers/concerns/alchemy/ability_helper.rb
|
|
824
826
|
- app/controllers/concerns/alchemy/admin/archive_overlay.rb
|
|
825
827
|
- app/controllers/concerns/alchemy/admin/clipboard.rb
|
|
826
828
|
- app/controllers/concerns/alchemy/admin/crop_action.rb
|
|
829
|
+
- app/controllers/concerns/alchemy/admin/csp_protection.rb
|
|
827
830
|
- app/controllers/concerns/alchemy/admin/current_language.rb
|
|
831
|
+
- app/controllers/concerns/alchemy/admin/locale.rb
|
|
828
832
|
- app/controllers/concerns/alchemy/admin/picture_descriptions_form_helper.rb
|
|
833
|
+
- app/controllers/concerns/alchemy/admin/preview_time.rb
|
|
829
834
|
- app/controllers/concerns/alchemy/admin/resource_filter.rb
|
|
835
|
+
- app/controllers/concerns/alchemy/admin/timezone.rb
|
|
830
836
|
- app/controllers/concerns/alchemy/admin/uploader_responses.rb
|
|
837
|
+
- app/controllers/concerns/alchemy/configuration_methods.rb
|
|
838
|
+
- app/controllers/concerns/alchemy/controller_actions.rb
|
|
831
839
|
- app/controllers/concerns/alchemy/legacy_page_redirects.rb
|
|
832
840
|
- app/controllers/concerns/alchemy/site_redirects.rb
|
|
833
841
|
- app/decorators/alchemy/ingredient_editor.rb
|
|
@@ -844,15 +852,17 @@ files:
|
|
|
844
852
|
- app/helpers/alchemy/resources_helper.rb
|
|
845
853
|
- app/helpers/alchemy/url_helper.rb
|
|
846
854
|
- app/javascript/alchemy_admin.js
|
|
847
|
-
- app/javascript/alchemy_admin/components/action.js
|
|
848
855
|
- app/javascript/alchemy_admin/components/attachment_select.js
|
|
849
856
|
- app/javascript/alchemy_admin/components/auto_submit.js
|
|
850
857
|
- app/javascript/alchemy_admin/components/button.js
|
|
851
858
|
- app/javascript/alchemy_admin/components/char_counter.js
|
|
859
|
+
- app/javascript/alchemy_admin/components/clear_schedule_button.js
|
|
852
860
|
- app/javascript/alchemy_admin/components/clipboard_button.js
|
|
853
861
|
- app/javascript/alchemy_admin/components/color_select.js
|
|
862
|
+
- app/javascript/alchemy_admin/components/conditional_field.js
|
|
854
863
|
- app/javascript/alchemy_admin/components/datepicker.js
|
|
855
864
|
- app/javascript/alchemy_admin/components/dialog_link.js
|
|
865
|
+
- app/javascript/alchemy_admin/components/dirty_guard.js
|
|
856
866
|
- app/javascript/alchemy_admin/components/dom_id_select.js
|
|
857
867
|
- app/javascript/alchemy_admin/components/element_editor.js
|
|
858
868
|
- app/javascript/alchemy_admin/components/element_editor/delete_element_button.js
|
|
@@ -863,18 +873,27 @@ files:
|
|
|
863
873
|
- app/javascript/alchemy_admin/components/file_editor.js
|
|
864
874
|
- app/javascript/alchemy_admin/components/growl.js
|
|
865
875
|
- app/javascript/alchemy_admin/components/icon.js
|
|
876
|
+
- app/javascript/alchemy_admin/components/image_cropper.js
|
|
877
|
+
- app/javascript/alchemy_admin/components/image_overlay_link.js
|
|
866
878
|
- app/javascript/alchemy_admin/components/index.js
|
|
867
879
|
- app/javascript/alchemy_admin/components/ingredient_group.js
|
|
868
880
|
- app/javascript/alchemy_admin/components/link_buttons.js
|
|
869
881
|
- app/javascript/alchemy_admin/components/link_buttons/link_button.js
|
|
870
882
|
- app/javascript/alchemy_admin/components/link_buttons/unlink_button.js
|
|
871
883
|
- app/javascript/alchemy_admin/components/list_filter.js
|
|
884
|
+
- app/javascript/alchemy_admin/components/main_navi_entry.js
|
|
885
|
+
- app/javascript/alchemy_admin/components/menu_node.js
|
|
872
886
|
- app/javascript/alchemy_admin/components/message.js
|
|
887
|
+
- app/javascript/alchemy_admin/components/news_reader.js
|
|
888
|
+
- app/javascript/alchemy_admin/components/node_folder.js
|
|
889
|
+
- app/javascript/alchemy_admin/components/node_form.js
|
|
873
890
|
- app/javascript/alchemy_admin/components/node_select.js
|
|
891
|
+
- app/javascript/alchemy_admin/components/node_tree.js
|
|
874
892
|
- app/javascript/alchemy_admin/components/overlay.js
|
|
875
893
|
- app/javascript/alchemy_admin/components/page_node.js
|
|
876
894
|
- app/javascript/alchemy_admin/components/page_publication_fields.js
|
|
877
895
|
- app/javascript/alchemy_admin/components/page_select.js
|
|
896
|
+
- app/javascript/alchemy_admin/components/picture_archive.js
|
|
878
897
|
- app/javascript/alchemy_admin/components/picture_description_select.js
|
|
879
898
|
- app/javascript/alchemy_admin/components/picture_editor.js
|
|
880
899
|
- app/javascript/alchemy_admin/components/picture_thumbnail.js
|
|
@@ -893,31 +912,29 @@ files:
|
|
|
893
912
|
- app/javascript/alchemy_admin/components/uploader/progress.js
|
|
894
913
|
- app/javascript/alchemy_admin/confirm_dialog.js
|
|
895
914
|
- app/javascript/alchemy_admin/dialog.js
|
|
896
|
-
- app/javascript/alchemy_admin/dirty.js
|
|
897
915
|
- app/javascript/alchemy_admin/fixed_elements.js
|
|
898
916
|
- app/javascript/alchemy_admin/growler.js
|
|
899
917
|
- app/javascript/alchemy_admin/hotkeys.js
|
|
900
918
|
- app/javascript/alchemy_admin/i18n.js
|
|
901
|
-
- app/javascript/alchemy_admin/image_cropper.js
|
|
902
919
|
- app/javascript/alchemy_admin/image_overlay.js
|
|
903
920
|
- app/javascript/alchemy_admin/ingredient_anchor_link.js
|
|
904
921
|
- app/javascript/alchemy_admin/initializer.js
|
|
905
922
|
- app/javascript/alchemy_admin/link_dialog.js
|
|
906
|
-
- app/javascript/alchemy_admin/node_tree.js
|
|
907
|
-
- app/javascript/alchemy_admin/picture_selector.js
|
|
908
923
|
- app/javascript/alchemy_admin/please_wait_overlay.js
|
|
924
|
+
- app/javascript/alchemy_admin/routes.js
|
|
909
925
|
- app/javascript/alchemy_admin/shoelace_theme.js
|
|
910
926
|
- app/javascript/alchemy_admin/spinner.js
|
|
911
|
-
- app/javascript/alchemy_admin/
|
|
912
|
-
- app/javascript/alchemy_admin/templates/node_folder.hbs
|
|
927
|
+
- app/javascript/alchemy_admin/turbo_stream_actions.js
|
|
913
928
|
- app/javascript/alchemy_admin/utils/ajax.js
|
|
914
929
|
- app/javascript/alchemy_admin/utils/debounce.js
|
|
915
930
|
- app/javascript/alchemy_admin/utils/dispatch_page_dirty_event.js
|
|
916
931
|
- app/javascript/alchemy_admin/utils/dom_helpers.js
|
|
917
932
|
- app/javascript/alchemy_admin/utils/events.js
|
|
918
933
|
- app/javascript/alchemy_admin/utils/format.js
|
|
934
|
+
- app/javascript/alchemy_admin/utils/json_script.js
|
|
919
935
|
- app/javascript/alchemy_admin/utils/max.js
|
|
920
936
|
- app/javascript/alchemy_admin/utils/string_conversions.js
|
|
937
|
+
- app/javascript/alchemy_admin/utils/tom_select.js
|
|
921
938
|
- app/javascript/preview.js
|
|
922
939
|
- app/javascript/tinymce/icons/remixicons/index.js
|
|
923
940
|
- app/javascript/tinymce/plugins/alchemy_link/index.js
|
|
@@ -928,13 +945,16 @@ files:
|
|
|
928
945
|
- app/jobs/alchemy/storage_adapter/active_storage/sanitize_svg_job.rb
|
|
929
946
|
- app/mailers/alchemy/base_mailer.rb
|
|
930
947
|
- app/mailers/alchemy/messages_mailer.rb
|
|
948
|
+
- app/models/alchemy/admin/content_security_policy.rb
|
|
931
949
|
- app/models/alchemy/admin/filters/base.rb
|
|
932
950
|
- app/models/alchemy/admin/filters/checkbox.rb
|
|
933
951
|
- app/models/alchemy/admin/filters/datepicker.rb
|
|
934
952
|
- app/models/alchemy/admin/filters/select.rb
|
|
953
|
+
- app/models/alchemy/admin/preview_url.rb
|
|
935
954
|
- app/models/alchemy/admin/resource_name.rb
|
|
936
955
|
- app/models/alchemy/attachment.rb
|
|
937
956
|
- app/models/alchemy/base_record.rb
|
|
957
|
+
- app/models/alchemy/cache_control.rb
|
|
938
958
|
- app/models/alchemy/current.rb
|
|
939
959
|
- app/models/alchemy/eager_loading.rb
|
|
940
960
|
- app/models/alchemy/element.rb
|
|
@@ -979,6 +999,7 @@ files:
|
|
|
979
999
|
- app/models/alchemy/page/page_natures.rb
|
|
980
1000
|
- app/models/alchemy/page/page_scopes.rb
|
|
981
1001
|
- app/models/alchemy/page/publisher.rb
|
|
1002
|
+
- app/models/alchemy/page/sitemap_cache_key.rb
|
|
982
1003
|
- app/models/alchemy/page/url_path.rb
|
|
983
1004
|
- app/models/alchemy/page_definition.rb
|
|
984
1005
|
- app/models/alchemy/page_mutex.rb
|
|
@@ -992,7 +1013,9 @@ files:
|
|
|
992
1013
|
- app/models/alchemy/picture_thumb/signature.rb
|
|
993
1014
|
- app/models/alchemy/picture_thumb/uid.rb
|
|
994
1015
|
- app/models/alchemy/picture_variant.rb
|
|
1016
|
+
- app/models/alchemy/publishable/timestamp_resolver.rb
|
|
995
1017
|
- app/models/alchemy/resource.rb
|
|
1018
|
+
- app/models/alchemy/safe_url_validator.rb
|
|
996
1019
|
- app/models/alchemy/searchable_resource.rb
|
|
997
1020
|
- app/models/alchemy/site.rb
|
|
998
1021
|
- app/models/alchemy/site/layout.rb
|
|
@@ -1007,10 +1030,15 @@ files:
|
|
|
1007
1030
|
- app/models/alchemy/storage_adapter/dragonfly/preprocessor.rb
|
|
1008
1031
|
- app/models/alchemy/tag.rb
|
|
1009
1032
|
- app/models/concerns/alchemy/dom_ids.rb
|
|
1033
|
+
- app/models/concerns/alchemy/filetypes.rb
|
|
1034
|
+
- app/models/concerns/alchemy/hints.rb
|
|
1035
|
+
- app/models/concerns/alchemy/name_conversions.rb
|
|
1010
1036
|
- app/models/concerns/alchemy/picture_thumbnails.rb
|
|
1011
1037
|
- app/models/concerns/alchemy/publishable.rb
|
|
1012
1038
|
- app/models/concerns/alchemy/relatable_resource.rb
|
|
1039
|
+
- app/models/concerns/alchemy/taggable.rb
|
|
1013
1040
|
- app/models/concerns/alchemy/touch_elements.rb
|
|
1041
|
+
- app/models/concerns/alchemy/user_methods.rb
|
|
1014
1042
|
- app/serializers/alchemy/attachment_serializer.rb
|
|
1015
1043
|
- app/serializers/alchemy/base_serializer.rb
|
|
1016
1044
|
- app/serializers/alchemy/element_serializer.rb
|
|
@@ -1027,6 +1055,7 @@ files:
|
|
|
1027
1055
|
- app/services/alchemy/dragonfly_to_image_processing.rb
|
|
1028
1056
|
- app/services/alchemy/duplicate_element.rb
|
|
1029
1057
|
- app/services/alchemy/element_preloader.rb
|
|
1058
|
+
- app/services/alchemy/elements_finder.rb
|
|
1030
1059
|
- app/services/alchemy/page_finder.rb
|
|
1031
1060
|
- app/services/alchemy/page_tree_preloader.rb
|
|
1032
1061
|
- app/services/alchemy/tag_validations.rb
|
|
@@ -1041,9 +1070,10 @@ files:
|
|
|
1041
1070
|
- app/stylesheets/alchemy/_themes.scss
|
|
1042
1071
|
- app/stylesheets/alchemy/_variables.scss
|
|
1043
1072
|
- app/stylesheets/alchemy/admin.scss
|
|
1073
|
+
- app/stylesheets/alchemy/admin/_empty-state.scss
|
|
1074
|
+
- app/stylesheets/alchemy/admin/_help.scss
|
|
1044
1075
|
- app/stylesheets/alchemy/admin/_tom-select.scss
|
|
1045
1076
|
- app/stylesheets/alchemy/admin/archive.scss
|
|
1046
|
-
- app/stylesheets/alchemy/admin/attachment-select.scss
|
|
1047
1077
|
- app/stylesheets/alchemy/admin/attachments.scss
|
|
1048
1078
|
- app/stylesheets/alchemy/admin/base.scss
|
|
1049
1079
|
- app/stylesheets/alchemy/admin/buttons.scss
|
|
@@ -1075,6 +1105,7 @@ files:
|
|
|
1075
1105
|
- app/stylesheets/alchemy/admin/popover.scss
|
|
1076
1106
|
- app/stylesheets/alchemy/admin/preview_window.scss
|
|
1077
1107
|
- app/stylesheets/alchemy/admin/print.scss
|
|
1108
|
+
- app/stylesheets/alchemy/admin/remote-select.scss
|
|
1078
1109
|
- app/stylesheets/alchemy/admin/resource_info.scss
|
|
1079
1110
|
- app/stylesheets/alchemy/admin/search.scss
|
|
1080
1111
|
- app/stylesheets/alchemy/admin/selects.scss
|
|
@@ -1082,6 +1113,7 @@ files:
|
|
|
1082
1113
|
- app/stylesheets/alchemy/admin/sitemap.scss
|
|
1083
1114
|
- app/stylesheets/alchemy/admin/spinner.scss
|
|
1084
1115
|
- app/stylesheets/alchemy/admin/tables.scss
|
|
1116
|
+
- app/stylesheets/alchemy/admin/tags-autocomplete.scss
|
|
1085
1117
|
- app/stylesheets/alchemy/admin/tags.scss
|
|
1086
1118
|
- app/stylesheets/alchemy/admin/toolbar.scss
|
|
1087
1119
|
- app/stylesheets/alchemy/admin/typography.scss
|
|
@@ -1098,13 +1130,13 @@ files:
|
|
|
1098
1130
|
- app/stylesheets/tinymce/skins/ui/alchemy/content.scss
|
|
1099
1131
|
- app/stylesheets/tinymce/skins/ui/alchemy/fonts/tinymce-mobile.woff
|
|
1100
1132
|
- app/stylesheets/tinymce/skins/ui/alchemy/skin.scss
|
|
1133
|
+
- app/types/alchemy/cache_control_type.rb
|
|
1101
1134
|
- app/types/alchemy/wildcard_url_type.rb
|
|
1102
1135
|
- app/views/alchemy/_edit_mode.html.erb
|
|
1103
1136
|
- app/views/alchemy/_menubar.html.erb
|
|
1104
1137
|
- app/views/alchemy/_preview_mode_code.html.erb
|
|
1105
1138
|
- app/views/alchemy/admin/_header.html.erb
|
|
1106
1139
|
- app/views/alchemy/admin/_left_menu.html.erb
|
|
1107
|
-
- app/views/alchemy/admin/_main_navi.html.erb
|
|
1108
1140
|
- app/views/alchemy/admin/_top_menu.html.erb
|
|
1109
1141
|
- app/views/alchemy/admin/_user_info.html.erb
|
|
1110
1142
|
- app/views/alchemy/admin/attachments/_archive_overlay.html.erb
|
|
@@ -1115,7 +1147,7 @@ files:
|
|
|
1115
1147
|
- app/views/alchemy/admin/attachments/_replace_button.html.erb
|
|
1116
1148
|
- app/views/alchemy/admin/attachments/_sorting_select.html.erb
|
|
1117
1149
|
- app/views/alchemy/admin/attachments/_tag_list.html.erb
|
|
1118
|
-
- app/views/alchemy/admin/attachments/assign.
|
|
1150
|
+
- app/views/alchemy/admin/attachments/assign.turbo_stream.erb
|
|
1119
1151
|
- app/views/alchemy/admin/attachments/edit.html.erb
|
|
1120
1152
|
- app/views/alchemy/admin/attachments/index.html.erb
|
|
1121
1153
|
- app/views/alchemy/admin/attachments/show.html.erb
|
|
@@ -1134,12 +1166,14 @@ files:
|
|
|
1134
1166
|
- app/views/alchemy/admin/dashboard/help.html.erb
|
|
1135
1167
|
- app/views/alchemy/admin/dashboard/index.html.erb
|
|
1136
1168
|
- app/views/alchemy/admin/dashboard/info.html.erb
|
|
1169
|
+
- app/views/alchemy/admin/dashboard/license.html.erb
|
|
1137
1170
|
- app/views/alchemy/admin/dashboard/widgets/show.html.erb
|
|
1138
1171
|
- app/views/alchemy/admin/elements/_add_nested_element_form.html.erb
|
|
1139
1172
|
- app/views/alchemy/admin/elements/_fixed_element.html.erb
|
|
1140
1173
|
- app/views/alchemy/admin/elements/_footer.html.erb
|
|
1141
1174
|
- app/views/alchemy/admin/elements/_form.html.erb
|
|
1142
1175
|
- app/views/alchemy/admin/elements/_header.html.erb
|
|
1176
|
+
- app/views/alchemy/admin/elements/_preview_text_quote.html.erb
|
|
1143
1177
|
- app/views/alchemy/admin/elements/_schedule.html.erb
|
|
1144
1178
|
- app/views/alchemy/admin/elements/_schedule_fields.html.erb
|
|
1145
1179
|
- app/views/alchemy/admin/elements/_toolbar.html.erb
|
|
@@ -1147,6 +1181,7 @@ files:
|
|
|
1147
1181
|
- app/views/alchemy/admin/elements/index.html.erb
|
|
1148
1182
|
- app/views/alchemy/admin/elements/new.html.erb
|
|
1149
1183
|
- app/views/alchemy/admin/elements/publish.turbo_stream.erb
|
|
1184
|
+
- app/views/alchemy/admin/elements/update.turbo_stream.erb
|
|
1150
1185
|
- app/views/alchemy/admin/ingredients/_audio_fields.html.erb
|
|
1151
1186
|
- app/views/alchemy/admin/ingredients/_dom_id_fields.html.erb
|
|
1152
1187
|
- app/views/alchemy/admin/ingredients/_file_fields.html.erb
|
|
@@ -1191,7 +1226,6 @@ files:
|
|
|
1191
1226
|
- app/views/alchemy/admin/pages/_locked_pages.html.erb
|
|
1192
1227
|
- app/views/alchemy/admin/pages/_new_page_form.html.erb
|
|
1193
1228
|
- app/views/alchemy/admin/pages/_page_infos.html.erb
|
|
1194
|
-
- app/views/alchemy/admin/pages/_page_layout_filter.html.erb
|
|
1195
1229
|
- app/views/alchemy/admin/pages/_page_status.html.erb
|
|
1196
1230
|
- app/views/alchemy/admin/pages/_publication_fields.html.erb
|
|
1197
1231
|
- app/views/alchemy/admin/pages/_table.html.erb
|
|
@@ -1212,13 +1246,11 @@ files:
|
|
|
1212
1246
|
- app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb
|
|
1213
1247
|
- app/views/alchemy/admin/partials/_flash_notices.html.erb
|
|
1214
1248
|
- app/views/alchemy/admin/partials/_language_tree_select.html.erb
|
|
1215
|
-
- app/views/alchemy/admin/partials/_main_navigation_entry.html.erb
|
|
1216
1249
|
- app/views/alchemy/admin/partials/_overlay_search_form.html.erb
|
|
1217
1250
|
- app/views/alchemy/admin/partials/_paste_from_clipboard_form.html.erb
|
|
1218
1251
|
- app/views/alchemy/admin/partials/_routes.html.erb
|
|
1219
1252
|
- app/views/alchemy/admin/partials/_search_form.html.erb
|
|
1220
1253
|
- app/views/alchemy/admin/partials/_site_select.html.erb
|
|
1221
|
-
- app/views/alchemy/admin/partials/_sub_navigation.html.erb
|
|
1222
1254
|
- app/views/alchemy/admin/picture_descriptions/_form.html.erb
|
|
1223
1255
|
- app/views/alchemy/admin/picture_descriptions/edit.html.erb
|
|
1224
1256
|
- app/views/alchemy/admin/pictures/_archive.html.erb
|
|
@@ -1232,12 +1264,13 @@ files:
|
|
|
1232
1264
|
- app/views/alchemy/admin/pictures/_picture_to_assign.html.erb
|
|
1233
1265
|
- app/views/alchemy/admin/pictures/_sorting_select.html.erb
|
|
1234
1266
|
- app/views/alchemy/admin/pictures/_tag_list.html.erb
|
|
1235
|
-
- app/views/alchemy/admin/pictures/assign.
|
|
1267
|
+
- app/views/alchemy/admin/pictures/assign.turbo_stream.erb
|
|
1236
1268
|
- app/views/alchemy/admin/pictures/edit_multiple.html.erb
|
|
1237
1269
|
- app/views/alchemy/admin/pictures/index.html.erb
|
|
1238
1270
|
- app/views/alchemy/admin/pictures/show.html.erb
|
|
1239
1271
|
- app/views/alchemy/admin/pictures/update.turbo_stream.erb
|
|
1240
1272
|
- app/views/alchemy/admin/resources/_applied_filters.html.erb
|
|
1273
|
+
- app/views/alchemy/admin/resources/_empty_state.html.erb
|
|
1241
1274
|
- app/views/alchemy/admin/resources/_filter_bar.html.erb
|
|
1242
1275
|
- app/views/alchemy/admin/resources/_form.html.erb
|
|
1243
1276
|
- app/views/alchemy/admin/resources/_pagination.html.erb
|
|
@@ -1266,9 +1299,6 @@ files:
|
|
|
1266
1299
|
- app/views/alchemy/base/500.html.erb
|
|
1267
1300
|
- app/views/alchemy/base/500.turbo_stream.erb
|
|
1268
1301
|
- app/views/alchemy/base/error_notice.html.erb
|
|
1269
|
-
- app/views/alchemy/base/error_notice.js.erb
|
|
1270
|
-
- app/views/alchemy/base/permission_denied.js.erb
|
|
1271
|
-
- app/views/alchemy/base/redirect.js.erb
|
|
1272
1302
|
- app/views/alchemy/breadcrumb/_page.html.erb
|
|
1273
1303
|
- app/views/alchemy/breadcrumb/_separator.html.erb
|
|
1274
1304
|
- app/views/alchemy/breadcrumb/_wrapper.html.erb
|
|
@@ -1296,15 +1326,13 @@ files:
|
|
|
1296
1326
|
- app/views/kaminari/alchemy/_paginator.html.erb
|
|
1297
1327
|
- app/views/kaminari/alchemy/_prev_page.html.erb
|
|
1298
1328
|
- app/views/layouts/alchemy/admin.html.erb
|
|
1329
|
+
- app/views/layouts/alchemy/admin/dialog.html.erb
|
|
1299
1330
|
- app/views/layouts/alchemy/sitemap.xml.erb
|
|
1300
|
-
- config/alchemy/config.yml
|
|
1301
|
-
- config/alchemy/modules.yml
|
|
1302
1331
|
- config/brakeman.ignore
|
|
1303
1332
|
- config/importmap.rb
|
|
1304
1333
|
- config/initializers/dragonfly.rb
|
|
1305
1334
|
- config/initializers/mime_types.rb
|
|
1306
1335
|
- config/initializers/mini_profiler.rb
|
|
1307
|
-
- config/initializers/rails_live_reload.rb
|
|
1308
1336
|
- config/initializers/simple_form.rb
|
|
1309
1337
|
- config/locales/alchemy.en.yml
|
|
1310
1338
|
- config/routes.rb
|
|
@@ -1321,12 +1349,9 @@ files:
|
|
|
1321
1349
|
- db/migrate/20260115164704_add_publication_timestamps_to_alchemy_elements.rb
|
|
1322
1350
|
- db/migrate/20260115164705_add_index_to_element_publication_timestamps.rb
|
|
1323
1351
|
- db/migrate/20260702090038_add_index_to_elements_pages_join_table.rb
|
|
1352
|
+
- db/migrate/20260727120000_add_permitted_roles_to_alchemy_pages.rb
|
|
1353
|
+
- db/migrate/20260820120000_add_cached_tag_list_to_taggables.rb
|
|
1324
1354
|
- lib/alchemy.rb
|
|
1325
|
-
- lib/alchemy/ability_helper.rb
|
|
1326
|
-
- lib/alchemy/admin/locale.rb
|
|
1327
|
-
- lib/alchemy/admin/preview_time.rb
|
|
1328
|
-
- lib/alchemy/admin/preview_url.rb
|
|
1329
|
-
- lib/alchemy/admin/timezone.rb
|
|
1330
1355
|
- lib/alchemy/auth_accessors.rb
|
|
1331
1356
|
- lib/alchemy/cache_digests/template_tracker.rb
|
|
1332
1357
|
- lib/alchemy/config_missing.rb
|
|
@@ -1337,11 +1362,13 @@ files:
|
|
|
1337
1362
|
- lib/alchemy/configuration/collection_option.rb
|
|
1338
1363
|
- lib/alchemy/configuration/configuration_option.rb
|
|
1339
1364
|
- lib/alchemy/configuration/integer_option.rb
|
|
1365
|
+
- lib/alchemy/configuration/number_option.rb
|
|
1340
1366
|
- lib/alchemy/configuration/pathname_option.rb
|
|
1367
|
+
- lib/alchemy/configuration/proc_option.rb
|
|
1341
1368
|
- lib/alchemy/configuration/regexp_option.rb
|
|
1342
1369
|
- lib/alchemy/configuration/string_option.rb
|
|
1343
1370
|
- lib/alchemy/configuration/symbol_option.rb
|
|
1344
|
-
- lib/alchemy/
|
|
1371
|
+
- lib/alchemy/configurations/admin_components.rb
|
|
1345
1372
|
- lib/alchemy/configurations/dashboard.rb
|
|
1346
1373
|
- lib/alchemy/configurations/default_language.rb
|
|
1347
1374
|
- lib/alchemy/configurations/default_site.rb
|
|
@@ -1349,29 +1376,25 @@ files:
|
|
|
1349
1376
|
- lib/alchemy/configurations/importmap.rb
|
|
1350
1377
|
- lib/alchemy/configurations/mailer.rb
|
|
1351
1378
|
- lib/alchemy/configurations/main.rb
|
|
1379
|
+
- lib/alchemy/configurations/menu.rb
|
|
1380
|
+
- lib/alchemy/configurations/menu_item.rb
|
|
1352
1381
|
- lib/alchemy/configurations/page_cache.rb
|
|
1353
1382
|
- lib/alchemy/configurations/preview.rb
|
|
1354
1383
|
- lib/alchemy/configurations/sitemap.rb
|
|
1355
1384
|
- lib/alchemy/configurations/uploader.rb
|
|
1356
|
-
- lib/alchemy/controller_actions.rb
|
|
1357
1385
|
- lib/alchemy/deprecation.rb
|
|
1358
|
-
- lib/alchemy/dev_support/live_reload_watcher.rb
|
|
1359
1386
|
- lib/alchemy/dragonfly/processors/auto_orient.rb
|
|
1360
1387
|
- lib/alchemy/dragonfly/processors/crop_resize.rb
|
|
1361
1388
|
- lib/alchemy/dragonfly/processors/thumbnail.rb
|
|
1362
|
-
- lib/alchemy/elements_finder.rb
|
|
1363
1389
|
- lib/alchemy/engine.rb
|
|
1364
1390
|
- lib/alchemy/error_tracking.rb
|
|
1365
1391
|
- lib/alchemy/error_tracking/error_logger.rb
|
|
1366
1392
|
- lib/alchemy/errors.rb
|
|
1367
|
-
- lib/alchemy/filetypes.rb
|
|
1368
1393
|
- lib/alchemy/forms/builder.rb
|
|
1369
|
-
- lib/alchemy/hints.rb
|
|
1370
1394
|
- lib/alchemy/i18n.rb
|
|
1371
1395
|
- lib/alchemy/install/tasks.rb
|
|
1372
1396
|
- lib/alchemy/logger.rb
|
|
1373
1397
|
- lib/alchemy/modules.rb
|
|
1374
|
-
- lib/alchemy/name_conversions.rb
|
|
1375
1398
|
- lib/alchemy/on_page_layout.rb
|
|
1376
1399
|
- lib/alchemy/on_page_layout/callbacks_runner.rb
|
|
1377
1400
|
- lib/alchemy/paths.rb
|
|
@@ -1381,7 +1404,7 @@ files:
|
|
|
1381
1404
|
- lib/alchemy/shell.rb
|
|
1382
1405
|
- lib/alchemy/sprockets/skip_builds_compression.rb
|
|
1383
1406
|
- lib/alchemy/svg_scrubber.rb
|
|
1384
|
-
- lib/alchemy/
|
|
1407
|
+
- lib/alchemy/tasks/generate_thumbnails.rb
|
|
1385
1408
|
- lib/alchemy/tasks/reorient_pictures.rb
|
|
1386
1409
|
- lib/alchemy/tasks/tidy.rb
|
|
1387
1410
|
- lib/alchemy/tasks/usage.rb
|
|
@@ -1415,8 +1438,10 @@ files:
|
|
|
1415
1438
|
- lib/alchemy/test_support/shared_uploader_examples.rb
|
|
1416
1439
|
- lib/alchemy/tinymce.rb
|
|
1417
1440
|
- lib/alchemy/upgrader.rb
|
|
1441
|
+
- lib/alchemy/upgrader/eight_four.rb
|
|
1418
1442
|
- lib/alchemy/upgrader/eight_one.rb
|
|
1419
1443
|
- lib/alchemy/upgrader/eight_zero.rb
|
|
1444
|
+
- lib/alchemy/upgrader/register_module_rewriter.rb
|
|
1420
1445
|
- lib/alchemy/version.rb
|
|
1421
1446
|
- lib/alchemy_cms.rb
|
|
1422
1447
|
- lib/generators/alchemy/base.rb
|
|
@@ -1435,7 +1460,6 @@ files:
|
|
|
1435
1460
|
- lib/generators/alchemy/install/files/custom.css
|
|
1436
1461
|
- lib/generators/alchemy/install/install_generator.rb
|
|
1437
1462
|
- lib/generators/alchemy/install/templates/alchemy.rb.tt
|
|
1438
|
-
- lib/generators/alchemy/install/templates/dragonfly.rb.tt
|
|
1439
1463
|
- lib/generators/alchemy/install/templates/elements.yml.tt
|
|
1440
1464
|
- lib/generators/alchemy/install/templates/menus.yml.tt
|
|
1441
1465
|
- lib/generators/alchemy/install/templates/page_layouts.yml.tt
|
|
@@ -1458,6 +1482,8 @@ files:
|
|
|
1458
1482
|
- lib/generators/alchemy/site_layouts/templates/layout.html.erb
|
|
1459
1483
|
- lib/generators/alchemy/site_layouts/templates/layout.html.haml
|
|
1460
1484
|
- lib/generators/alchemy/site_layouts/templates/layout.html.slim
|
|
1485
|
+
- lib/generators/alchemy/user_columns_migration/templates/migration.rb.tt
|
|
1486
|
+
- lib/generators/alchemy/user_columns_migration/user_columns_migration_generator.rb
|
|
1461
1487
|
- lib/generators/alchemy/views/views_generator.rb
|
|
1462
1488
|
- lib/non_stupid_digest_assets.rb
|
|
1463
1489
|
- lib/tasks/alchemy/assets.rake
|
|
@@ -1469,7 +1495,6 @@ files:
|
|
|
1469
1495
|
- lib/tasks/alchemy/tidy.rake
|
|
1470
1496
|
- lib/tasks/alchemy/upgrade.rake
|
|
1471
1497
|
- lib/tasks/alchemy/usage.rake
|
|
1472
|
-
- vendor/assets/stylesheets/alchemy_admin/select2.css
|
|
1473
1498
|
- vendor/assets/stylesheets/tinymce/skins/content/dark/content.min.css
|
|
1474
1499
|
- vendor/assets/stylesheets/tinymce/skins/content/default/content.min.css
|
|
1475
1500
|
- vendor/assets/stylesheets/tinymce/skins/ui/oxide-dark/content.min.css
|
|
@@ -1479,11 +1504,7 @@ files:
|
|
|
1479
1504
|
- vendor/javascript/cropperjs.min.js
|
|
1480
1505
|
- vendor/javascript/flatpickr.min.js
|
|
1481
1506
|
- vendor/javascript/floating-ui.min.js
|
|
1482
|
-
- vendor/javascript/handlebars.min.js
|
|
1483
|
-
- vendor/javascript/jquery.min.js
|
|
1484
1507
|
- vendor/javascript/keymaster.min.js
|
|
1485
|
-
- vendor/javascript/rails-ujs.min.js
|
|
1486
|
-
- vendor/javascript/select2.min.js
|
|
1487
1508
|
- vendor/javascript/shoelace.min.js
|
|
1488
1509
|
- vendor/javascript/sortable.min.js
|
|
1489
1510
|
- vendor/javascript/tinymce.min.js
|
|
@@ -1503,18 +1524,18 @@ post_install_message: |+
|
|
|
1503
1524
|
|
|
1504
1525
|
- Complete the installation in an existing Rails application:
|
|
1505
1526
|
|
|
1506
|
-
$ bin/
|
|
1527
|
+
$ bin/rails alchemy:install
|
|
1507
1528
|
|
|
1508
1529
|
- Complete the upgrade of an existing Alchemy installation:
|
|
1509
1530
|
|
|
1510
|
-
$ bin/
|
|
1531
|
+
$ bin/rails alchemy:upgrade
|
|
1511
1532
|
|
|
1512
1533
|
and follow the onscreen instructions.
|
|
1513
1534
|
|
|
1514
1535
|
Need help? Try:
|
|
1515
1536
|
|
|
1516
1537
|
* https://stackoverflow.com/questions/tagged/alchemy-cms
|
|
1517
|
-
* https://
|
|
1538
|
+
* https://alchemy-cms.slack.com
|
|
1518
1539
|
-------------------------------------------------------------
|
|
1519
1540
|
|
|
1520
1541
|
rdoc_options: []
|
|
@@ -1530,10 +1551,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1530
1551
|
- - ">="
|
|
1531
1552
|
- !ruby/object:Gem::Version
|
|
1532
1553
|
version: '0'
|
|
1533
|
-
requirements:
|
|
1534
|
-
- ImageMagick (libmagick), v6.6 or greater.
|
|
1554
|
+
requirements: []
|
|
1535
1555
|
rubygems_version: 4.0.20
|
|
1536
1556
|
specification_version: 4
|
|
1537
|
-
summary: A
|
|
1557
|
+
summary: A semantically structured and full-featured CMS Engine for Rails
|
|
1538
1558
|
test_files: []
|
|
1539
1559
|
...
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { reloadPreview } from "alchemy_admin/components/preview_window"
|
|
2
|
-
import { removeTab } from "alchemy_admin/fixed_elements"
|
|
3
|
-
import { closeCurrentDialog } from "alchemy_admin/dialog"
|
|
4
|
-
import IngredientAnchorLink from "alchemy_admin/ingredient_anchor_link"
|
|
5
|
-
import pleaseWaitOverlay from "alchemy_admin/please_wait_overlay"
|
|
6
|
-
|
|
7
|
-
class Action extends HTMLElement {
|
|
8
|
-
constructor() {
|
|
9
|
-
super()
|
|
10
|
-
|
|
11
|
-
// map action names with Javascript functions
|
|
12
|
-
this.actions = {
|
|
13
|
-
// add a intermediate closeCurrentDialog - action
|
|
14
|
-
// this will be gone, if all dialogs are working with a promise and
|
|
15
|
-
// we don't have to implicitly close the dialog
|
|
16
|
-
closeCurrentDialog,
|
|
17
|
-
reloadPreview,
|
|
18
|
-
removeFixedElement: removeTab,
|
|
19
|
-
updateAnchorIcon: IngredientAnchorLink.updateIcon,
|
|
20
|
-
hidePleaseWaitOverlay() {
|
|
21
|
-
pleaseWaitOverlay(false)
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
connectedCallback() {
|
|
27
|
-
const func = this.actions[this.name]
|
|
28
|
-
|
|
29
|
-
if (func) {
|
|
30
|
-
func(...this.params)
|
|
31
|
-
} else {
|
|
32
|
-
console.error(`Unknown Alchemy action: ${this.name}`)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
this.remove()
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
get name() {
|
|
39
|
-
return this.getAttribute("name")
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
get params() {
|
|
43
|
-
if (this.hasAttribute("params")) {
|
|
44
|
-
return JSON.parse(this.getAttribute("params"))
|
|
45
|
-
}
|
|
46
|
-
return []
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
customElements.define("alchemy-action", Action)
|