maglevcms 1.7.3 → 2.0.0.beta1
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/.yarn/install-state.gz +0 -0
- data/README.md +4 -4
- data/Rakefile +3 -1
- data/app/components/maglev/base_component.rb +6 -0
- data/app/components/maglev/block_component.rb +11 -1
- data/app/components/maglev/content/base.rb +9 -1
- data/app/components/maglev/content/link.rb +4 -0
- data/app/components/maglev/inspector.rb +18 -0
- data/app/components/maglev/page_component.rb +4 -0
- data/app/components/maglev/section_component.rb +6 -2
- data/app/controllers/concerns/maglev/fetchers_concern.rb +3 -1
- data/app/controllers/concerns/maglev/resource_id_concern.rb +10 -0
- data/app/controllers/concerns/maglev/standalone_sections_concern.rb +6 -0
- data/app/controllers/concerns/maglev/{ui_locale_concern.rb → user_interface_locale_concern.rb} +1 -1
- data/app/controllers/maglev/api/collection_items_controller.rb +7 -0
- data/app/controllers/maglev/api/page_clones_controller.rb +1 -2
- data/app/controllers/maglev/api_controller.rb +1 -1
- data/app/controllers/maglev/application_controller.rb +1 -5
- data/app/controllers/maglev/assets/active_storage_proxy_controller.rb +17 -0
- data/app/controllers/maglev/assets/proxy_controller.rb +21 -0
- data/app/controllers/maglev/editor_controller.rb +1 -1
- data/app/controllers/maglev/page_preview_controller.rb +3 -3
- data/app/frontend/admin/controllers/screenshot_controller.js +29 -1
- data/app/frontend/editor/assets/remixicons/clipboard-line.svg +1 -0
- data/app/frontend/editor/assets/remixicons/format-superscript.svg +1 -0
- data/app/frontend/editor/assets/remixicons/ri-draggable.svg +1 -0
- data/app/frontend/editor/assets/remixicons/ri-folders-line.svg +1 -0
- data/app/frontend/editor/assets/remixicons/ri-more-fill.svg +1 -0
- data/app/frontend/editor/assets/remixicons/ri-shadow-line.svg +1 -0
- data/app/frontend/editor/components/dynamic-form/dynamic-input.vue +1 -1
- data/app/frontend/editor/components/errors/forbidden.vue +24 -0
- data/app/frontend/editor/components/errors/stale-record.vue +2 -2
- data/app/frontend/editor/components/header-nav/device-toggler.vue +6 -3
- data/app/frontend/editor/components/header-nav/index.vue +13 -42
- data/app/frontend/editor/components/header-nav/locale-toggler/index.vue +1 -1
- data/app/frontend/editor/components/header-nav/page-info.vue +41 -0
- data/app/frontend/editor/components/header-nav/preview-button.vue +6 -1
- data/app/frontend/editor/components/header-nav/separator.vue +1 -1
- data/app/frontend/editor/components/image-library/index.vue +26 -29
- data/app/frontend/editor/components/kit/collection-item-input.vue +9 -0
- data/app/frontend/editor/components/kit/copy-paste-button.vue +26 -0
- data/app/frontend/editor/components/kit/dropdown.vue +5 -0
- data/app/frontend/editor/components/kit/icon-button.vue +24 -0
- data/app/frontend/editor/components/kit/icon.vue +2 -3
- data/app/frontend/editor/components/kit/index.js +4 -2
- data/app/frontend/editor/components/kit/link-input.vue +1 -1
- data/app/frontend/editor/components/kit/modal.vue +1 -1
- data/app/frontend/editor/components/kit/page-icon.vue +1 -1
- data/app/frontend/editor/components/kit/rich-text-input/extensions/marks/Superscript.js +43 -0
- data/app/frontend/editor/components/kit/rich-text-input/format-buttons.vue +9 -1
- data/app/frontend/editor/components/kit/rich-text-input/link-buttons.vue +1 -1
- data/app/frontend/editor/components/kit/rich-text-input.vue +11 -5
- data/app/frontend/editor/components/kit/select-input.vue +4 -2
- data/app/frontend/editor/components/link-picker/actions.vue +1 -1
- data/app/frontend/editor/components/link-picker/index.vue +1 -1
- data/app/frontend/editor/components/link-picker/page.vue +2 -0
- data/app/frontend/editor/components/page/form/main.vue +1 -1
- data/app/frontend/editor/components/page/list/actions-button.vue +159 -0
- data/app/frontend/editor/components/page/list/index.vue +15 -24
- data/app/frontend/editor/components/page/list/list-item.vue +10 -61
- data/app/frontend/editor/components/section-highlighter/index.vue +47 -46
- data/app/frontend/editor/components/section-list/add-button.vue +39 -0
- data/app/frontend/editor/components/section-list/index.vue +30 -15
- data/app/frontend/editor/components/section-list/list-item.vue +23 -8
- data/app/frontend/editor/components/section-pane/block-list/index.vue +1 -0
- data/app/frontend/editor/components/section-pane/block-list/list-item.vue +9 -6
- data/app/frontend/editor/components/section-pane/block-tree/new-nested-block-button.vue +2 -2
- data/app/frontend/editor/components/section-pane/block-tree/tree-node.vue +2 -2
- data/app/frontend/editor/components/sidebar-nav/index.vue +102 -0
- data/app/frontend/editor/components/sidebar-nav/link.vue +60 -0
- data/app/frontend/editor/components/theme-section-list/category.vue +47 -0
- data/app/frontend/editor/components/theme-section-list/index.vue +7 -31
- data/app/frontend/editor/components/theme-section-list/list-item.vue +10 -3
- data/app/frontend/editor/design/components/modal.scss +1 -1
- data/app/frontend/editor/design/components/tooltip.scss +6 -0
- data/app/frontend/editor/design/transitions.scss +1 -1
- data/app/frontend/editor/layouts/app.vue +1 -1
- data/app/frontend/editor/layouts/default.vue +2 -2
- data/app/frontend/editor/layouts/slide-pane.vue +1 -1
- data/app/frontend/editor/locales/editor.ar.json +265 -0
- data/app/frontend/editor/locales/editor.en.json +23 -15
- data/app/frontend/editor/locales/editor.es.json +18 -10
- data/app/frontend/editor/locales/editor.fr.json +28 -13
- data/app/frontend/editor/locales/editor.pt-BR.json +18 -10
- data/app/frontend/editor/locales/index.js +3 -0
- data/app/frontend/editor/mixins/error-modal.js +7 -2
- data/app/frontend/editor/mixins/preview-transformation.js +0 -1
- data/app/frontend/editor/plugins/i18n.js +2 -17
- data/app/frontend/editor/services/__tests__/section.spec.js +6 -0
- data/app/frontend/editor/services/collection-item.js +8 -0
- data/app/frontend/editor/services/page.js +1 -1
- data/app/frontend/editor/services/section.js +30 -0
- data/app/frontend/editor/services/site.js +4 -4
- data/app/frontend/editor/services/theme.js +1 -0
- data/app/frontend/editor/spec/__mocks__/page.js +3 -1
- data/app/frontend/editor/spec/__mocks__/services.js +1 -0
- data/app/frontend/editor/store/__tests__/getters.spec.js +56 -1
- data/app/frontend/editor/store/actions/index.js +1 -0
- data/app/frontend/editor/store/actions/site.js +8 -4
- data/app/frontend/editor/store/getters.js +11 -0
- data/app/frontend/editor/views/page-preview.vue +2 -1
- data/app/frontend/images/favicon.svg +11 -0
- data/app/frontend/images/logo.svg +14 -0
- data/app/frontend/live-preview-client/iframe-decorator.js +17 -15
- data/app/frontend/live-preview-client/rails.js +1 -1
- data/app/helpers/maglev/application_helper.rb +7 -2
- data/app/helpers/maglev/editor_helper.rb +12 -5
- data/app/models/concerns/maglev/sections_concern.rb +4 -0
- data/app/models/maglev/asset.rb +13 -14
- data/app/models/maglev/page/path_concern.rb +23 -8
- data/app/models/maglev/page.rb +17 -18
- data/app/models/maglev/page_path.rb +18 -18
- data/app/models/maglev/section/setting.rb +1 -1
- data/app/models/maglev/section.rb +18 -9
- data/app/models/maglev/setting_types/link.rb +1 -1
- data/app/models/maglev/site/locales_concern.rb +1 -1
- data/app/models/maglev/site.rb +13 -24
- data/app/services/maglev/app_container.rb +2 -2
- data/app/services/maglev/extract_locale.rb +3 -2
- data/app/services/maglev/fetch_page.rb +2 -0
- data/app/services/maglev/fetch_theme_layout.rb +2 -0
- data/app/services/maglev/get_page_fullpath.rb +1 -2
- data/app/services/maglev/remove_section_type.rb +50 -0
- data/app/services/maglev/rename_section_type.rb +57 -0
- data/app/services/maglev/search_pages.rb +2 -1
- data/app/views/layouts/maglev/admin/application.html.erb +1 -1
- data/app/views/maglev/admin/sections/previews/show.html.erb +16 -1
- data/app/views/maglev/api/collection_items/show.json.jbuilder +7 -0
- data/app/views/maglev/api/page_clones/create.json.jbuilder +3 -0
- data/app/views/maglev/editor/show.html.erb +6 -5
- data/config/locales/activerecord.ar.yml +13 -0
- data/config/locales/activerecord.en.yml +8 -2
- data/config/locales/activerecord.es.yml +4 -0
- data/config/locales/activerecord.fr.yml +6 -2
- data/config/locales/activerecord.pt-BR.yml +13 -0
- data/config/routes.rb +4 -5
- data/db/migrate/20200831101942_create_maglev_section_content.rb +10 -2
- data/db/migrate/20210819092740_switch_to_localized_page_fields.rb +13 -3
- data/db/migrate/20211008064437_add_locales_to_sites.rb +7 -1
- data/db/migrate/20211013210954_translate_section_content.rb +16 -2
- data/db/migrate/20211203224112_add_open_graph_tags_to_pages.rb +9 -3
- data/db/migrate/20220612092235_add_style_to_sites.rb +5 -1
- data/lib/commands/maglev/change_site_locales_command.rb +61 -0
- data/lib/commands/maglev/create_site_command.rb +28 -0
- data/lib/commands/maglev/sections/remove_command.rb +48 -0
- data/lib/commands/maglev/sections/rename_command.rb +49 -0
- data/lib/generators/maglev/templates/install/config/initializers/maglev.rb +4 -1
- data/lib/generators/maglev/templates/theme/app/views/theme/layout.html.erb.tt +8 -2
- data/lib/maglev/errors.rb +1 -0
- data/lib/maglev/preview_constraint.rb +6 -2
- data/lib/maglev/theme_filesystem_loader.rb +7 -0
- data/lib/maglev/version.rb +1 -1
- data/lib/maglev.rb +13 -3
- data/lib/tasks/maglev/icons.rake +123 -0
- data/lib/tasks/maglev/vite.rake +62 -0
- data/lib/tasks/maglev_tasks.rake +9 -112
- data/tailwind.config.js +2 -1
- metadata +54 -35
- data/app/controllers/maglev/assets_controller.rb +0 -10
- data/app/frontend/editor/components/kit/list-item-button.vue +0 -16
- data/app/frontend/editor/components/sidebar-nav.vue +0 -125
- data/app/frontend/images/favicon.png +0 -0
- data/app/frontend/images/logo.png +0 -0
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
namespace :maglev do
|
4
|
+
namespace :vite do
|
5
|
+
desc 'Bundle frontend entrypoints using ViteRuby'
|
6
|
+
task build: :'vite:verify_install' do
|
7
|
+
within_engine_folder do
|
8
|
+
Maglev::Engine.vite_ruby.commands.build_from_task
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'Bundle entrypoints using Vite Ruby (SSR only if enabled)'
|
13
|
+
task build_all: :'vite:verify_install' do
|
14
|
+
within_engine_folder do
|
15
|
+
Maglev::Engine.vite_ruby.commands.build_from_task
|
16
|
+
Maglev::Engine.vite_ruby.commands.build_from_task('--ssr') if ViteRuby.config.ssr_build_enabled
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
desc 'Ensure build dependencies like Vite are installed before bundling'
|
21
|
+
task install_dependencies: :environment do
|
22
|
+
within_engine_folder do
|
23
|
+
install_dev_dependencies = ENV['VITE_RUBY_SKIP_INSTALL_DEV_DEPENDENCIES'] == 'true'
|
24
|
+
# rubocop:disable Style/StringHashKeys
|
25
|
+
install_env_args = install_dev_dependencies ? {} : { 'NODE_ENV' => 'development' }
|
26
|
+
# rubocop:enable Style/StringHashKeys
|
27
|
+
cmd = Maglev::Engine.vite_ruby.commands.legacy_npm_version? ? 'npx ci --yes' : 'npx --yes ci'
|
28
|
+
result = system(install_env_args, cmd)
|
29
|
+
# Fallback to `yarn` if `npx` is not available.
|
30
|
+
system(install_env_args, 'yarn install --frozen-lockfile') if result.nil?
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
desc 'Verify if ViteRuby is properly installed in the app'
|
35
|
+
task verify_install: :environment do
|
36
|
+
within_engine_folder do
|
37
|
+
Maglev::Engine.vite_ruby.commands.verify_install
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
desc 'Remove old bundles created by ViteRuby'
|
42
|
+
task :clean, %i[keep age] => :'vite:verify_install' do |_, args|
|
43
|
+
within_engine_folder do
|
44
|
+
Maglev::Engine.vite_ruby.commands.clean_from_task(args)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
desc 'Remove the build output directory for ViteRuby'
|
49
|
+
task clobber: :'vite:verify_install' do
|
50
|
+
within_engine_folder do
|
51
|
+
Maglev::Engine.vite_ruby.commands.clobber
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
desc "Provide information on ViteRuby's environment"
|
56
|
+
task info: :environment do
|
57
|
+
within_engine_folder do
|
58
|
+
Maglev::Engine.vite_ruby.commands.print_info
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/lib/tasks/maglev_tasks.rake
CHANGED
@@ -6,113 +6,15 @@ def within_engine_folder(&block)
|
|
6
6
|
Dir.chdir(File.join(__dir__, '..', '..'), &block)
|
7
7
|
end
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
task
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
desc 'Change site locales'
|
19
|
-
task change_site_locales: :environment do
|
20
|
-
site = Maglev::Site.first
|
21
|
-
|
22
|
-
unless site
|
23
|
-
puts "[Error] You don't seem to have an existing site. 🤔"
|
24
|
-
return
|
25
|
-
end
|
26
|
-
|
27
|
-
# without this, rake will run the ARGV arguments as if they were rake tasks
|
28
|
-
# rubocop:disable Style/BlockDelimiters
|
29
|
-
ARGV.each { |a| task a.to_sym => :environment do; end }
|
30
|
-
# rubocop:enable Style/BlockDelimiters
|
31
|
-
|
32
|
-
locales = (ARGV[1..] || []).map do |arg|
|
33
|
-
label, prefix = arg.split(':')
|
34
|
-
Maglev::Site::Locale.new(label: label, prefix: prefix)
|
35
|
-
end
|
36
|
-
|
37
|
-
if !locales.empty? && locales.any? { |locale| !locale.valid? }
|
38
|
-
puts "[Error] make sure your locales follows the 'label:prefix' pattern. 🤓"
|
39
|
-
return
|
40
|
-
end
|
41
|
-
|
42
|
-
if locales.empty?
|
43
|
-
locales = Maglev.config.default_site_locales.map do |attributes|
|
44
|
-
Maglev::Site::Locale.new(attributes)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
service = Maglev::ChangeSiteLocales.new
|
49
|
-
|
50
|
-
begin
|
51
|
-
service.call(site: site, locales: locales)
|
52
|
-
puts 'Success! 🎉🎉🎉'
|
53
|
-
rescue StandardError => e
|
54
|
-
puts "[Error] #{e.message}"
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
namespace :vite do
|
59
|
-
desc 'Bundle frontend entrypoints using ViteRuby'
|
60
|
-
task build: :'vite:verify_install' do
|
61
|
-
within_engine_folder do
|
62
|
-
Maglev::Engine.vite_ruby.commands.build_from_task
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
desc 'Bundle entrypoints using Vite Ruby (SSR only if enabled)'
|
67
|
-
task build_all: :'vite:verify_install' do
|
68
|
-
within_engine_folder do
|
69
|
-
Maglev::Engine.vite_ruby.commands.build_from_task
|
70
|
-
Maglev::Engine.vite_ruby.commands.build_from_task('--ssr') if ViteRuby.config.ssr_build_enabled
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
desc 'Ensure build dependencies like Vite are installed before bundling'
|
75
|
-
task install_dependencies: :environment do
|
76
|
-
within_engine_folder do
|
77
|
-
install_dev_dependencies = ENV['VITE_RUBY_SKIP_INSTALL_DEV_DEPENDENCIES'] == 'true'
|
78
|
-
# rubocop:disable Style/StringHashKeys
|
79
|
-
install_env_args = install_dev_dependencies ? {} : { 'NODE_ENV' => 'development' }
|
80
|
-
# rubocop:enable Style/StringHashKeys
|
81
|
-
cmd = Maglev::Engine.vite_ruby.commands.legacy_npm_version? ? 'npx ci --yes' : 'npx --yes ci'
|
82
|
-
result = system(install_env_args, cmd)
|
83
|
-
# Fallback to `yarn` if `npx` is not available.
|
84
|
-
system(install_env_args, 'yarn install --frozen-lockfile') if result.nil?
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
desc 'Verify if ViteRuby is properly installed in the app'
|
89
|
-
task verify_install: :environment do
|
90
|
-
within_engine_folder do
|
91
|
-
Maglev::Engine.vite_ruby.commands.verify_install
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
desc 'Remove old bundles created by ViteRuby'
|
96
|
-
task :clean, %i[keep age] => :'vite:verify_install' do |_, args|
|
97
|
-
within_engine_folder do
|
98
|
-
Maglev::Engine.vite_ruby.commands.clean_from_task(args)
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
desc 'Remove the build output directory for ViteRuby'
|
103
|
-
task clobber: :'vite:verify_install' do
|
104
|
-
within_engine_folder do
|
105
|
-
Maglev::Engine.vite_ruby.commands.clobber
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
desc "Provide information on ViteRuby's environment"
|
110
|
-
task info: :environment do
|
111
|
-
within_engine_folder do
|
112
|
-
Maglev::Engine.vite_ruby.commands.print_info
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
9
|
+
# Load all task files only if they haven't been loaded before
|
10
|
+
Dir[File.join(__dir__, 'maglev', '*.rake')].each do |file|
|
11
|
+
# Create a unique task loaded flag
|
12
|
+
task_name = File.basename(file, '.rake')
|
13
|
+
next if Rake::Task.task_defined?("maglev:#{task_name}:loaded")
|
14
|
+
|
15
|
+
load file
|
16
|
+
# Create a dummy task to mark this file as loaded
|
17
|
+
Rake::Task.define_task("maglev:#{task_name}:loaded")
|
116
18
|
end
|
117
19
|
|
118
20
|
unless ENV['VITE_RUBY_SKIP_ASSETS_PRECOMPILE_EXTENSION'] == 'true'
|
@@ -125,11 +27,6 @@ unless ENV['VITE_RUBY_SKIP_ASSETS_PRECOMPILE_EXTENSION'] == 'true'
|
|
125
27
|
Rake::Task.define_task("assets:precompile": ['maglev:vite:install_dependencies', 'maglev:vite:build_all'])
|
126
28
|
end
|
127
29
|
|
128
|
-
Rake::Task.define_task('assets:clean', %i[keep age]) unless Rake::Task.task_defined?('assets:clean')
|
129
|
-
Rake::Task['assets:clean'].enhance do |_, args|
|
130
|
-
Rake::Task['maglev:vite:clean'].invoke(*args.to_h.values)
|
131
|
-
end
|
132
|
-
|
133
30
|
if Rake::Task.task_defined?('assets:clobber')
|
134
31
|
Rake::Task['assets:clobber'].enhance do
|
135
32
|
Rake::Task['maglev:vite:clobber'].invoke
|
data/tailwind.config.js
CHANGED
@@ -6,7 +6,7 @@ try {
|
|
6
6
|
console.log('No extra Maglev Pro Tailwindcss config');
|
7
7
|
}
|
8
8
|
|
9
|
-
|
9
|
+
export default {
|
10
10
|
content: [
|
11
11
|
'./**/*.html.erb',
|
12
12
|
'./app/helpers/**/*.rb',
|
@@ -40,6 +40,7 @@ module.exports = {
|
|
40
40
|
'120': '30rem',
|
41
41
|
'128': '32rem',
|
42
42
|
'144': '36rem',
|
43
|
+
'156': '39rem',
|
43
44
|
'168': '42rem',
|
44
45
|
'216': '54rem',
|
45
46
|
},
|
metadata
CHANGED
@@ -1,29 +1,34 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: maglevcms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Didier Lafforgue
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: jbuilder
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
16
15
|
requirements:
|
17
|
-
- - "
|
16
|
+
- - "<"
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '3'
|
19
|
+
- - ">="
|
18
20
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2
|
21
|
+
version: '2'
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
23
25
|
requirements:
|
24
|
-
- - "
|
26
|
+
- - "<"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '3'
|
29
|
+
- - ">="
|
25
30
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2
|
31
|
+
version: '2'
|
27
32
|
- !ruby/object:Gem::Dependency
|
28
33
|
name: kaminari
|
29
34
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,20 +63,20 @@ dependencies:
|
|
58
63
|
requirements:
|
59
64
|
- - "<"
|
60
65
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
66
|
+
version: '9'
|
62
67
|
- - ">="
|
63
68
|
- !ruby/object:Gem::Version
|
64
|
-
version: '
|
69
|
+
version: '7'
|
65
70
|
type: :runtime
|
66
71
|
prerelease: false
|
67
72
|
version_requirements: !ruby/object:Gem::Requirement
|
68
73
|
requirements:
|
69
74
|
- - "<"
|
70
75
|
- !ruby/object:Gem::Version
|
71
|
-
version: '
|
76
|
+
version: '9'
|
72
77
|
- - ">="
|
73
78
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
79
|
+
version: '7'
|
75
80
|
- !ruby/object:Gem::Dependency
|
76
81
|
name: vite_rails
|
77
82
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,20 +111,6 @@ dependencies:
|
|
106
111
|
- - ">="
|
107
112
|
- !ruby/object:Gem::Version
|
108
113
|
version: '3.5'
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
|
-
name: pg
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
112
|
-
requirements:
|
113
|
-
- - "~>"
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
version: 1.5.6
|
116
|
-
type: :development
|
117
|
-
prerelease: false
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
119
|
-
requirements:
|
120
|
-
- - "~>"
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: 1.5.6
|
123
114
|
description: " MaglevCMS integrates a powerful website/page builder with a polished
|
124
115
|
UX/UI into your Ruby on Rails application, backed by a flexible and robust CMS engine.\n"
|
125
116
|
email:
|
@@ -150,6 +141,7 @@ files:
|
|
150
141
|
- app/components/maglev/content/select.rb
|
151
142
|
- app/components/maglev/content/text.rb
|
152
143
|
- app/components/maglev/content/void.rb
|
144
|
+
- app/components/maglev/inspector.rb
|
153
145
|
- app/components/maglev/page_component.rb
|
154
146
|
- app/components/maglev/section_component.rb
|
155
147
|
- app/components/maglev/tag_helper.rb
|
@@ -159,9 +151,10 @@ files:
|
|
159
151
|
- app/controllers/concerns/maglev/fetchers_concern.rb
|
160
152
|
- app/controllers/concerns/maglev/json_concern.rb
|
161
153
|
- app/controllers/concerns/maglev/rendering_concern.rb
|
154
|
+
- app/controllers/concerns/maglev/resource_id_concern.rb
|
162
155
|
- app/controllers/concerns/maglev/services_concern.rb
|
163
156
|
- app/controllers/concerns/maglev/standalone_sections_concern.rb
|
164
|
-
- app/controllers/concerns/maglev/
|
157
|
+
- app/controllers/concerns/maglev/user_interface_locale_concern.rb
|
165
158
|
- app/controllers/maglev/admin/base_controller.rb
|
166
159
|
- app/controllers/maglev/admin/dashboard_controller.rb
|
167
160
|
- app/controllers/maglev/admin/sections/previews_controller.rb
|
@@ -175,7 +168,8 @@ files:
|
|
175
168
|
- app/controllers/maglev/api/sites_controller.rb
|
176
169
|
- app/controllers/maglev/api_controller.rb
|
177
170
|
- app/controllers/maglev/application_controller.rb
|
178
|
-
- app/controllers/maglev/
|
171
|
+
- app/controllers/maglev/assets/active_storage_proxy_controller.rb
|
172
|
+
- app/controllers/maglev/assets/proxy_controller.rb
|
179
173
|
- app/controllers/maglev/editor_controller.rb
|
180
174
|
- app/controllers/maglev/page_preview_controller.rb
|
181
175
|
- app/controllers/maglev/sitemap_controller.rb
|
@@ -191,6 +185,7 @@ files:
|
|
191
185
|
- app/frontend/editor/assets/remixicons/arrow-drop-right.svg
|
192
186
|
- app/frontend/editor/assets/remixicons/arrow-up-s-line.svg
|
193
187
|
- app/frontend/editor/assets/remixicons/camera-line.svg
|
188
|
+
- app/frontend/editor/assets/remixicons/clipboard-line.svg
|
194
189
|
- app/frontend/editor/assets/remixicons/close-line.svg
|
195
190
|
- app/frontend/editor/assets/remixicons/computer-line.svg
|
196
191
|
- app/frontend/editor/assets/remixicons/delete-bin-line.svg
|
@@ -208,6 +203,7 @@ files:
|
|
208
203
|
- app/frontend/editor/assets/remixicons/format-list-unordered.svg
|
209
204
|
- app/frontend/editor/assets/remixicons/format-paragraph.svg
|
210
205
|
- app/frontend/editor/assets/remixicons/format-strikethrough.svg
|
206
|
+
- app/frontend/editor/assets/remixicons/format-superscript.svg
|
211
207
|
- app/frontend/editor/assets/remixicons/format-underline.svg
|
212
208
|
- app/frontend/editor/assets/remixicons/home-4-line.svg
|
213
209
|
- app/frontend/editor/assets/remixicons/image-line.svg
|
@@ -221,12 +217,14 @@ files:
|
|
221
217
|
- app/frontend/editor/assets/remixicons/ri-close-line.svg
|
222
218
|
- app/frontend/editor/assets/remixicons/ri-delete-column.svg
|
223
219
|
- app/frontend/editor/assets/remixicons/ri-delete-row.svg
|
220
|
+
- app/frontend/editor/assets/remixicons/ri-draggable.svg
|
224
221
|
- app/frontend/editor/assets/remixicons/ri-drop-line.svg
|
225
222
|
- app/frontend/editor/assets/remixicons/ri-external-link-line.svg
|
226
223
|
- app/frontend/editor/assets/remixicons/ri-eye-line.svg
|
227
224
|
- app/frontend/editor/assets/remixicons/ri-eye-off-line.svg
|
228
225
|
- app/frontend/editor/assets/remixicons/ri-file-copy-line.svg
|
229
226
|
- app/frontend/editor/assets/remixicons/ri-file-line.svg
|
227
|
+
- app/frontend/editor/assets/remixicons/ri-folders-line.svg
|
230
228
|
- app/frontend/editor/assets/remixicons/ri-global-line.svg
|
231
229
|
- app/frontend/editor/assets/remixicons/ri-insert-column-left.svg
|
232
230
|
- app/frontend/editor/assets/remixicons/ri-insert-column-right.svg
|
@@ -235,10 +233,12 @@ files:
|
|
235
233
|
- app/frontend/editor/assets/remixicons/ri-loader-4-line.svg
|
236
234
|
- app/frontend/editor/assets/remixicons/ri-mail-line.svg
|
237
235
|
- app/frontend/editor/assets/remixicons/ri-more-2-fill.svg
|
236
|
+
- app/frontend/editor/assets/remixicons/ri-more-fill.svg
|
238
237
|
- app/frontend/editor/assets/remixicons/ri-palette-line.svg
|
239
238
|
- app/frontend/editor/assets/remixicons/ri-pencil-line.svg
|
240
239
|
- app/frontend/editor/assets/remixicons/ri-play-list-add-line.svg
|
241
240
|
- app/frontend/editor/assets/remixicons/ri-settings-5-line.svg
|
241
|
+
- app/frontend/editor/assets/remixicons/ri-shadow-line.svg
|
242
242
|
- app/frontend/editor/assets/remixicons/ri-stack-line.svg
|
243
243
|
- app/frontend/editor/assets/remixicons/ri-table-2.svg
|
244
244
|
- app/frontend/editor/assets/remixicons/ri-table-line.svg
|
@@ -248,11 +248,13 @@ files:
|
|
248
248
|
- app/frontend/editor/assets/remixicons/tablet-line.svg
|
249
249
|
- app/frontend/editor/components/dynamic-form/dynamic-input.vue
|
250
250
|
- app/frontend/editor/components/dynamic-form/index.vue
|
251
|
+
- app/frontend/editor/components/errors/forbidden.vue
|
251
252
|
- app/frontend/editor/components/errors/stale-record.vue
|
252
253
|
- app/frontend/editor/components/header-nav/device-toggler.vue
|
253
254
|
- app/frontend/editor/components/header-nav/index.vue
|
254
255
|
- app/frontend/editor/components/header-nav/locale-toggler/index.vue
|
255
256
|
- app/frontend/editor/components/header-nav/locale-toggler/locale-link.vue
|
257
|
+
- app/frontend/editor/components/header-nav/page-info.vue
|
256
258
|
- app/frontend/editor/components/header-nav/preview-button.vue
|
257
259
|
- app/frontend/editor/components/header-nav/preview-toggler.vue
|
258
260
|
- app/frontend/editor/components/header-nav/publish-button.vue
|
@@ -271,15 +273,16 @@ files:
|
|
271
273
|
- app/frontend/editor/components/kit/color-input/preset-button.vue
|
272
274
|
- app/frontend/editor/components/kit/color-input/preset-dropdown.vue
|
273
275
|
- app/frontend/editor/components/kit/confirmation-button.vue
|
276
|
+
- app/frontend/editor/components/kit/copy-paste-button.vue
|
274
277
|
- app/frontend/editor/components/kit/divider.vue
|
275
278
|
- app/frontend/editor/components/kit/dropdown.vue
|
276
279
|
- app/frontend/editor/components/kit/hint.vue
|
280
|
+
- app/frontend/editor/components/kit/icon-button.vue
|
277
281
|
- app/frontend/editor/components/kit/icon-input.vue
|
278
282
|
- app/frontend/editor/components/kit/icon.vue
|
279
283
|
- app/frontend/editor/components/kit/image-input.vue
|
280
284
|
- app/frontend/editor/components/kit/index.js
|
281
285
|
- app/frontend/editor/components/kit/link-input.vue
|
282
|
-
- app/frontend/editor/components/kit/list-item-button.vue
|
283
286
|
- app/frontend/editor/components/kit/modal-root.vue
|
284
287
|
- app/frontend/editor/components/kit/modal.vue
|
285
288
|
- app/frontend/editor/components/kit/page-icon.vue
|
@@ -290,6 +293,7 @@ files:
|
|
290
293
|
- app/frontend/editor/components/kit/rich-text-input/extensions/Doc.js
|
291
294
|
- app/frontend/editor/components/kit/rich-text-input/extensions/LineBreak.js
|
292
295
|
- app/frontend/editor/components/kit/rich-text-input/extensions/marks/Link.js
|
296
|
+
- app/frontend/editor/components/kit/rich-text-input/extensions/marks/Superscript.js
|
293
297
|
- app/frontend/editor/components/kit/rich-text-input/format-buttons.vue
|
294
298
|
- app/frontend/editor/components/kit/rich-text-input/link-buttons.vue
|
295
299
|
- app/frontend/editor/components/kit/rich-text-input/list-buttons.vue
|
@@ -310,6 +314,7 @@ files:
|
|
310
314
|
- app/frontend/editor/components/page/edit.vue
|
311
315
|
- app/frontend/editor/components/page/form/main.vue
|
312
316
|
- app/frontend/editor/components/page/form/seo.vue
|
317
|
+
- app/frontend/editor/components/page/list/actions-button.vue
|
313
318
|
- app/frontend/editor/components/page/list/index.vue
|
314
319
|
- app/frontend/editor/components/page/list/list-item.vue
|
315
320
|
- app/frontend/editor/components/page/new.vue
|
@@ -319,6 +324,7 @@ files:
|
|
319
324
|
- app/frontend/editor/components/section-highlighter/index.vue
|
320
325
|
- app/frontend/editor/components/section-highlighter/top-left-actions.vue
|
321
326
|
- app/frontend/editor/components/section-highlighter/top-right-actions.vue
|
327
|
+
- app/frontend/editor/components/section-list/add-button.vue
|
322
328
|
- app/frontend/editor/components/section-list/index.vue
|
323
329
|
- app/frontend/editor/components/section-list/list-item.vue
|
324
330
|
- app/frontend/editor/components/section-pane/block-list/index.vue
|
@@ -329,8 +335,10 @@ files:
|
|
329
335
|
- app/frontend/editor/components/section-pane/block-tree/tree-node.vue
|
330
336
|
- app/frontend/editor/components/section-pane/index.vue
|
331
337
|
- app/frontend/editor/components/section-pane/setting-list.vue
|
332
|
-
- app/frontend/editor/components/sidebar-nav.vue
|
338
|
+
- app/frontend/editor/components/sidebar-nav/index.vue
|
339
|
+
- app/frontend/editor/components/sidebar-nav/link.vue
|
333
340
|
- app/frontend/editor/components/style-pane/index.vue
|
341
|
+
- app/frontend/editor/components/theme-section-list/category.vue
|
334
342
|
- app/frontend/editor/components/theme-section-list/index.vue
|
335
343
|
- app/frontend/editor/components/theme-section-list/list-item.vue
|
336
344
|
- app/frontend/editor/design/application.scss
|
@@ -344,6 +352,7 @@ files:
|
|
344
352
|
- app/frontend/editor/layouts/app.vue
|
345
353
|
- app/frontend/editor/layouts/default.vue
|
346
354
|
- app/frontend/editor/layouts/slide-pane.vue
|
355
|
+
- app/frontend/editor/locales/editor.ar.json
|
347
356
|
- app/frontend/editor/locales/editor.en.json
|
348
357
|
- app/frontend/editor/locales/editor.es.json
|
349
358
|
- app/frontend/editor/locales/editor.fr.json
|
@@ -414,8 +423,8 @@ files:
|
|
414
423
|
- app/frontend/entrypoints/editor.js
|
415
424
|
- app/frontend/entrypoints/live-preview-client.js
|
416
425
|
- app/frontend/entrypoints/live-preview-rails-client.js
|
417
|
-
- app/frontend/images/favicon.
|
418
|
-
- app/frontend/images/logo.
|
426
|
+
- app/frontend/images/favicon.svg
|
427
|
+
- app/frontend/images/logo.svg
|
419
428
|
- app/frontend/live-preview-client/iframe-decorator.js
|
420
429
|
- app/frontend/live-preview-client/index.js
|
421
430
|
- app/frontend/live-preview-client/message.js
|
@@ -486,6 +495,8 @@ files:
|
|
486
495
|
- app/services/maglev/get_page_sections.rb
|
487
496
|
- app/services/maglev/persist_page.rb
|
488
497
|
- app/services/maglev/persist_section_screenshot.rb
|
498
|
+
- app/services/maglev/remove_section_type.rb
|
499
|
+
- app/services/maglev/rename_section_type.rb
|
489
500
|
- app/services/maglev/search_pages.rb
|
490
501
|
- app/services/maglev/setup_pages.rb
|
491
502
|
- app/validators/maglev/collection_validator.rb
|
@@ -503,6 +514,8 @@ files:
|
|
503
514
|
- app/views/maglev/api/assets/show.json.jbuilder
|
504
515
|
- app/views/maglev/api/collection_items/_show.json.jbuilder
|
505
516
|
- app/views/maglev/api/collection_items/index.json.jbuilder
|
517
|
+
- app/views/maglev/api/collection_items/show.json.jbuilder
|
518
|
+
- app/views/maglev/api/page_clones/create.json.jbuilder
|
506
519
|
- app/views/maglev/api/pages/_show.json.jbuilder
|
507
520
|
- app/views/maglev/api/pages/index.json.jbuilder
|
508
521
|
- app/views/maglev/api/pages/show.json.jbuilder
|
@@ -517,9 +530,11 @@ files:
|
|
517
530
|
- config/initializers/filter_parameters_logging.rb
|
518
531
|
- config/initializers/kaminari.rb
|
519
532
|
- config/initializers/zeitwerk.rb
|
533
|
+
- config/locales/activerecord.ar.yml
|
520
534
|
- config/locales/activerecord.en.yml
|
521
535
|
- config/locales/activerecord.es.yml
|
522
536
|
- config/locales/activerecord.fr.yml
|
537
|
+
- config/locales/activerecord.pt-BR.yml
|
523
538
|
- config/routes.rb
|
524
539
|
- config/vite.json
|
525
540
|
- db/migrate/20200824085207_create_maglev_sites.rb
|
@@ -536,6 +551,10 @@ files:
|
|
536
551
|
- db/migrate/20211124101005_fix_page_path_indices.rb
|
537
552
|
- db/migrate/20211203224112_add_open_graph_tags_to_pages.rb
|
538
553
|
- db/migrate/20220612092235_add_style_to_sites.rb
|
554
|
+
- lib/commands/maglev/change_site_locales_command.rb
|
555
|
+
- lib/commands/maglev/create_site_command.rb
|
556
|
+
- lib/commands/maglev/sections/remove_command.rb
|
557
|
+
- lib/commands/maglev/sections/rename_command.rb
|
539
558
|
- lib/generators/maglev/install_generator.rb
|
540
559
|
- lib/generators/maglev/section_generator.rb
|
541
560
|
- lib/generators/maglev/templates/install/config/initializers/maglev.rb
|
@@ -558,6 +577,8 @@ files:
|
|
558
577
|
- lib/maglev/theme_filesystem_loader.rb
|
559
578
|
- lib/maglev/version.rb
|
560
579
|
- lib/maglevcms.rb
|
580
|
+
- lib/tasks/maglev/icons.rake
|
581
|
+
- lib/tasks/maglev/vite.rake
|
561
582
|
- lib/tasks/maglev_tasks.rake
|
562
583
|
- package.json
|
563
584
|
- postcss.config.cjs
|
@@ -568,7 +589,6 @@ homepage: https://www.maglev.dev/
|
|
568
589
|
licenses:
|
569
590
|
- MIT
|
570
591
|
metadata: {}
|
571
|
-
post_install_message:
|
572
592
|
rdoc_options: []
|
573
593
|
require_paths:
|
574
594
|
- lib
|
@@ -576,15 +596,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
576
596
|
requirements:
|
577
597
|
- - ">="
|
578
598
|
- !ruby/object:Gem::Version
|
579
|
-
version: '
|
599
|
+
version: '3.0'
|
580
600
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
581
601
|
requirements:
|
582
602
|
- - ">="
|
583
603
|
- !ruby/object:Gem::Version
|
584
604
|
version: '0'
|
585
605
|
requirements: []
|
586
|
-
rubygems_version: 3.
|
587
|
-
signing_key:
|
606
|
+
rubygems_version: 3.6.7
|
588
607
|
specification_version: 4
|
589
608
|
summary: Website/page builder Ruby on Rails engine
|
590
609
|
test_files: []
|
@@ -1,16 +0,0 @@
|
|
1
|
-
<template>
|
2
|
-
<button
|
3
|
-
class="px-1 py-1 rounded-full bg-gray-600 bg-opacity-0 hover:text-gray-900 text-gray-600 focus:outline-none hover:bg-opacity-10 transition-colors duration-200"
|
4
|
-
>
|
5
|
-
<uikit-icon :name="iconName" size="1.25rem" />
|
6
|
-
</button>
|
7
|
-
</template>
|
8
|
-
|
9
|
-
<script>
|
10
|
-
export default {
|
11
|
-
name: 'UIKitListItemButton',
|
12
|
-
props: {
|
13
|
-
iconName: { type: String, required: true },
|
14
|
-
},
|
15
|
-
}
|
16
|
-
</script>
|