katalyst-content 2.8.0 → 3.0.0.alpha.2

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.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -3
  3. data/app/assets/builds/katalyst/content.esm.js +61 -2
  4. data/app/assets/builds/katalyst/content.js +61 -2
  5. data/app/assets/builds/katalyst/content.min.js +1 -1
  6. data/app/assets/builds/katalyst/content.min.js.map +1 -1
  7. data/app/assets/images/katalyst/content/icons/aside.svg +1 -0
  8. data/app/assets/images/katalyst/content/icons/collapse.svg +3 -0
  9. data/app/assets/images/katalyst/content/icons/column.svg +1 -0
  10. data/app/assets/images/katalyst/content/icons/content.svg +1 -0
  11. data/app/assets/images/katalyst/content/icons/edit.svg +1 -0
  12. data/app/assets/images/katalyst/content/icons/expand.svg +3 -0
  13. data/app/assets/images/katalyst/content/icons/figure.svg +1 -0
  14. data/app/assets/images/katalyst/content/icons/group.svg +1 -0
  15. data/app/assets/images/katalyst/content/icons/hidden.svg +1 -0
  16. data/app/assets/images/katalyst/content/icons/indent.svg +3 -0
  17. data/app/assets/images/katalyst/content/icons/outdent.svg +4 -0
  18. data/app/assets/images/katalyst/content/icons/remove.svg +1 -0
  19. data/app/assets/images/katalyst/content/icons/section.svg +1 -0
  20. data/app/assets/images/katalyst/content/icons/table.svg +1 -0
  21. data/app/assets/images/katalyst/content/icons/theme.svg +1 -0
  22. data/app/assets/stylesheets/katalyst/content/_editor.scss +4 -0
  23. data/app/assets/stylesheets/katalyst/content/_frontend.scss +1 -0
  24. data/app/assets/stylesheets/katalyst/content/editor/editor.css +200 -0
  25. data/app/assets/stylesheets/katalyst/content/editor/icons.css +79 -0
  26. data/app/assets/stylesheets/katalyst/content/editor/{_status-bar.scss → status-bar.css} +31 -37
  27. data/app/assets/stylesheets/katalyst/content/editor/{_table.scss → table.css} +3 -5
  28. data/app/assets/stylesheets/katalyst/content/editor.css +4 -0
  29. data/app/assets/stylesheets/katalyst/content/frontend/frontend.css +46 -0
  30. data/app/assets/stylesheets/katalyst/content/frontend.css +1 -0
  31. data/app/components/katalyst/content/editor/base_component.rb +0 -6
  32. data/app/components/katalyst/content/editor/item_component.html.erb +33 -15
  33. data/app/components/katalyst/content/editor/item_component.rb +1 -3
  34. data/app/components/katalyst/content/editor/item_editor_component.rb +8 -22
  35. data/app/components/katalyst/content/editor/new_item_component.html.erb +13 -10
  36. data/app/components/katalyst/content/editor/new_item_component.rb +7 -8
  37. data/app/components/katalyst/content/editor/new_items_component.html.erb +40 -18
  38. data/app/components/katalyst/content/editor/new_items_component.rb +0 -2
  39. data/app/components/katalyst/content/editor/row_component.html.erb +2 -1
  40. data/app/components/katalyst/content/editor/status_bar_component.rb +9 -11
  41. data/app/components/katalyst/content/editor/table_component.html.erb +0 -6
  42. data/app/components/katalyst/content/editor/table_component.rb +12 -12
  43. data/app/components/katalyst/content/editor_component.html.erb +5 -0
  44. data/app/components/katalyst/content/editor_component.rb +12 -11
  45. data/app/controllers/katalyst/content/items_controller.rb +0 -1
  46. data/app/helpers/katalyst/content/frontend_helper.rb +40 -24
  47. data/app/javascript/content/application.js +5 -0
  48. data/app/javascript/content/editor/item.js +1 -1
  49. data/app/javascript/content/editor/item_editor_controller.js +57 -0
  50. data/app/javascript/content/editor/new_items_controller.js +1 -1
  51. data/app/models/concerns/katalyst/content/has_tree.rb +16 -3
  52. data/app/models/katalyst/content/item.rb +15 -7
  53. data/app/views/katalyst/content/asides/_aside.html+form.erb +22 -26
  54. data/app/views/katalyst/content/asides/_aside.html.erb +5 -7
  55. data/app/views/katalyst/content/columns/_column.html+form.erb +18 -22
  56. data/app/views/katalyst/content/columns/_column.html.erb +3 -3
  57. data/app/views/katalyst/content/contents/_content.html+form.erb +22 -26
  58. data/app/views/katalyst/content/contents/_content.html.erb +2 -2
  59. data/app/views/katalyst/content/figures/_figure.html+form.erb +27 -31
  60. data/app/views/katalyst/content/figures/_figure.html.erb +1 -1
  61. data/app/views/katalyst/content/groups/_group.html+form.erb +18 -22
  62. data/app/views/katalyst/content/groups/_group.html.erb +1 -3
  63. data/app/views/katalyst/content/items/_form.html.erb +6 -0
  64. data/app/views/katalyst/content/items/_item.html+form.erb +18 -22
  65. data/app/views/katalyst/content/items/edit.html.erb +40 -2
  66. data/app/views/katalyst/content/items/edit.turbo_stream.erb +2 -0
  67. data/app/views/katalyst/content/items/update.turbo_stream.erb +0 -1
  68. data/app/views/katalyst/content/sections/_section.html+form.erb +18 -22
  69. data/app/views/katalyst/content/sections/_section.html.erb +3 -5
  70. data/app/views/katalyst/content/tables/_table.html+form.erb +9 -11
  71. data/db/migrate/20250321045027_rename_background_to_theme.rb +7 -0
  72. data/lib/katalyst/content/config.rb +4 -1
  73. data/lib/katalyst/content/engine.rb +0 -1
  74. data/spec/factories/katalyst/content/items.rb +1 -1
  75. metadata +29 -27
  76. data/app/assets/stylesheets/katalyst/content/_index.scss +0 -1
  77. data/app/assets/stylesheets/katalyst/content/editor/_figure.scss +0 -12
  78. data/app/assets/stylesheets/katalyst/content/editor/_icon.scss +0 -17
  79. data/app/assets/stylesheets/katalyst/content/editor/_index.scss +0 -157
  80. data/app/assets/stylesheets/katalyst/content/editor/_item-actions.scss +0 -110
  81. data/app/assets/stylesheets/katalyst/content/editor/_item-rules.scss +0 -19
  82. data/app/assets/stylesheets/katalyst/content/editor/_new-items.scss +0 -160
  83. data/app/assets/stylesheets/katalyst/content/editor/_trix-rails.scss +0 -30
  84. data/app/assets/stylesheets/katalyst/content/editor/_variables.scss +0 -26
@@ -1,27 +1,23 @@
1
- <%= form_with model: column, scope: :item, url: path do |form| %>
2
- <%= render "hidden_fields", form: %>
3
- <%= render "form_errors", form: %>
1
+ <%# locals: (form:, column:) %>
4
2
 
5
- <div class="field">
6
- <%= form.label :heading %>
7
- <%= form.text_field :heading %>
8
- </div>
3
+ <%= render "form_errors", form: %>
9
4
 
10
- <div class="field">
11
- <%= form.label :heading_style %>
12
- <%= form.collection_radio_buttons :heading_style, Katalyst::Content.config.heading_styles, :itself, :itself %>
13
- </div>
5
+ <div class="field">
6
+ <%= form.label :heading %>
7
+ <%= form.text_field :heading %>
8
+ </div>
14
9
 
15
- <div class="field">
16
- <%= form.label :background %>
17
- <%= form.select :background, Katalyst::Content.config.backgrounds %>
18
- </div>
10
+ <div class="field">
11
+ <%= form.label :heading_style %>
12
+ <%= form.collection_radio_buttons :heading_style, Katalyst::Content.config.heading_styles, :itself, :itself %>
13
+ </div>
19
14
 
20
- <div class="field">
21
- <%= form.label :visible %>
22
- <%= form.check_box :visible %>
23
- </div>
15
+ <div class="field">
16
+ <%= form.label :theme %>
17
+ <%= form.select :theme, Katalyst::Content.config.themes %>
18
+ </div>
24
19
 
25
- <%= form.submit "Done" %>
26
- <%= link_to "Discard", :back %>
27
- <% end %>
20
+ <div class="field">
21
+ <%= form.label :visible %>
22
+ <%= form.check_box :visible %>
23
+ </div>
@@ -6,13 +6,13 @@
6
6
  <div class="columns-container">
7
7
  <div class="column">
8
8
  <% if items.any? %>
9
- <%= render_content_items items %>
9
+ <%= render_content_items(*items, theme: column.theme, class: "flow") %>
10
10
  <% elsif last %>
11
- <%= render_content_items [last] %>
11
+ <%= render_content_items(last, theme: column.theme) %>
12
12
  <% end %>
13
13
  </div>
14
14
  <div class="column">
15
- <%= render_content_items [last] if last && items.any? %>
15
+ <%= render_content_items(last, theme: column.theme) if last && items.any? %>
16
16
  </div>
17
17
  </div>
18
18
  <% end %>
@@ -1,32 +1,28 @@
1
- <%= form_with model: content, scope: :item, url: path do |form| %>
2
- <%= render "hidden_fields", form: %>
3
- <%= render "form_errors", form: %>
1
+ <%# locals: (form:, content:) %>
4
2
 
5
- <div class="field">
6
- <%= form.label :heading %>
7
- <%= form.text_field :heading %>
8
- </div>
3
+ <%= render "form_errors", form: %>
9
4
 
10
- <div class="field">
11
- <%= form.label :heading_style %>
12
- <%= form.collection_radio_buttons :heading_style, Katalyst::Content.config.heading_styles, :itself, :itself %>
13
- </div>
5
+ <div class="field">
6
+ <%= form.label :heading %>
7
+ <%= form.text_field :heading %>
8
+ </div>
14
9
 
15
- <div class="field">
16
- <%= form.label :background %>
17
- <%= form.select :background, Katalyst::Content.config.backgrounds %>
18
- </div>
10
+ <div class="field">
11
+ <%= form.label :heading_style %>
12
+ <%= form.collection_radio_buttons :heading_style, Katalyst::Content.config.heading_styles, :itself, :itself %>
13
+ </div>
19
14
 
20
- <div class="field">
21
- <%= form.label :visible %>
22
- <%= form.check_box :visible %>
23
- </div>
15
+ <div class="field">
16
+ <%= form.label :theme %>
17
+ <%= form.select :theme, Katalyst::Content.config.themes %>
18
+ </div>
24
19
 
25
- <div class="field">
26
- <%= form.label :content %>
27
- <%= form.rich_text_area :content, content_editor_rich_text_attributes %>
28
- </div>
20
+ <div class="field">
21
+ <%= form.label :visible %>
22
+ <%= form.check_box :visible %>
23
+ </div>
29
24
 
30
- <%= form.submit "Done" %>
31
- <%= link_to "Discard", :back %>
32
- <% end %>
25
+ <div class="field">
26
+ <%= form.label :content %>
27
+ <%= form.rich_text_area :content, content_editor_rich_text_attributes %>
28
+ </div>
@@ -1,5 +1,5 @@
1
- <%= content_item_tag content do %>
2
- <%= tag.h3 content.heading, class: content.heading_style_class if content.show_heading? %>
1
+ <%= content_item_tag(content, class: "flow") do %>
2
+ <%= tag.h3(content.heading, class: content.heading_style_class) if content.show_heading? %>
3
3
 
4
4
  <%= content.content %>
5
5
  <% end %>
@@ -1,37 +1,33 @@
1
- <%= form_with model: figure, scope: :item, url: path do |form| %>
2
- <%= render "hidden_fields", form: %>
3
- <%= render "form_errors", form: %>
1
+ <%# locals: (form:, figure:) %>
4
2
 
5
- <div class="field">
6
- <%= form.label :image %>
7
- <% if (image = form.object.image).attached? %>
8
- <%= image.filename %>
9
- <br>
10
- <%= form.hidden_field :image, value: form.object.image.signed_id %>
11
- <% end %>
12
- <%= form.file_field :image %>
13
- </div>
3
+ <%= render "form_errors", form: %>
14
4
 
15
- <div class="field">
16
- <%= form.label :heading %>
17
- <%= form.text_field :heading %>
18
- </div>
5
+ <div class="field">
6
+ <%= form.label :image %>
7
+ <% if (image = form.object.image).attached? %>
8
+ <%= image.filename %>
9
+ <br>
10
+ <%= form.hidden_field :image, value: form.object.image.signed_id %>
11
+ <% end %>
12
+ <%= form.file_field :image %>
13
+ </div>
19
14
 
20
- <div class="field">
21
- <%= form.label :background %>
22
- <%= form.select :background, Katalyst::Content.config.backgrounds %>
23
- </div>
15
+ <div class="field">
16
+ <%= form.label :heading %>
17
+ <%= form.text_field :heading %>
18
+ </div>
24
19
 
25
- <div class="field">
26
- <%= form.label :visible %>
27
- <%= form.check_box :visible %>
28
- </div>
20
+ <div class="field">
21
+ <%= form.label :theme %>
22
+ <%= form.select :theme, Katalyst::Content.config.themes %>
23
+ </div>
29
24
 
30
- <div class="field">
31
- <%= form.label :caption %>
32
- <%= form.text_field :caption %>
33
- </div>
25
+ <div class="field">
26
+ <%= form.label :visible %>
27
+ <%= form.check_box :visible %>
28
+ </div>
34
29
 
35
- <%= form.submit "Done" %>
36
- <%= link_to "Discard", :back %>
37
- <% end %>
30
+ <div class="field">
31
+ <%= form.label :caption %>
32
+ <%= form.text_field :caption %>
33
+ </div>
@@ -1,4 +1,4 @@
1
- <%= content_item_tag figure do %>
1
+ <%= content_item_tag(figure, tag: :figure) do %>
2
2
  <%= image_tag figure.image, alt: figure.alt %>
3
3
  <%= tag.figcaption figure.caption if figure.caption.present? %>
4
4
  <% end %>
@@ -1,27 +1,23 @@
1
- <%= form_with model: group, scope: :item, url: path do |form| %>
2
- <%= render "hidden_fields", form: %>
3
- <%= render "form_errors", form: %>
1
+ <%# locals: (form:, group:) %>
4
2
 
5
- <div class="field">
6
- <%= form.label :heading %>
7
- <%= form.text_field :heading %>
8
- </div>
3
+ <%= render "form_errors", form: %>
9
4
 
10
- <div class="field">
11
- <%= form.label :heading_style %>
12
- <%= form.collection_radio_buttons :heading_style, Katalyst::Content.config.heading_styles, :itself, :itself %>
13
- </div>
5
+ <div class="field">
6
+ <%= form.label :heading %>
7
+ <%= form.text_field :heading %>
8
+ </div>
14
9
 
15
- <div class="field">
16
- <%= form.label :background %>
17
- <%= form.select :background, Katalyst::Content.config.backgrounds %>
18
- </div>
10
+ <div class="field">
11
+ <%= form.label :heading_style %>
12
+ <%= form.collection_radio_buttons :heading_style, Katalyst::Content.config.heading_styles, :itself, :itself %>
13
+ </div>
19
14
 
20
- <div class="field">
21
- <%= form.label :visible %>
22
- <%= form.check_box :visible %>
23
- </div>
15
+ <div class="field">
16
+ <%= form.label :theme %>
17
+ <%= form.select :theme, Katalyst::Content.config.themes %>
18
+ </div>
24
19
 
25
- <%= form.submit "Done" %>
26
- <%= link_to "Discard", :back %>
27
- <% end %>
20
+ <div class="field">
21
+ <%= form.label :visible %>
22
+ <%= form.check_box :visible %>
23
+ </div>
@@ -1,7 +1,5 @@
1
1
  <%= content_item_tag group do %>
2
2
  <%= tag.h3 group.heading, class: group.heading_style_class if group.show_heading? %>
3
3
 
4
- <div>
5
- <%= render_content_items group.children %>
6
- </div>
4
+ <%= render_content_items(*group.children, theme: group.theme, class: "flow") %>
7
5
  <% end %>
@@ -0,0 +1,6 @@
1
+ <%# locals: (model:, scope:, url:, id:) %>
2
+
3
+ <%= form_with(model:, scope:, url:, id:) do |form| %>
4
+ <%= render "hidden_fields", form: %>
5
+ <%= render(model, form:) %>
6
+ <% end %>
@@ -1,27 +1,23 @@
1
- <%= form_with model: item, scope: :item, url: path do |form| %>
2
- <%= render "hidden_fields", form: %>
3
- <%= render "form_errors", form: %>
1
+ <%# locals: (form:, item:) %>
4
2
 
5
- <div class="field">
6
- <%= form.label :heading %>
7
- <%= form.text_field :heading %>
8
- </div>
3
+ <%= render "form_errors", form: %>
9
4
 
10
- <div class="field">
11
- <%= form.label :heading_style %>
12
- <%= form.collection_radio_buttons :heading_style, Katalyst::Content.config.heading_styles, :itself, :itself %>
13
- </div>
5
+ <div class="field">
6
+ <%= form.label :heading %>
7
+ <%= form.text_field :heading %>
8
+ </div>
14
9
 
15
- <div class="field">
16
- <%= form.label :background %>
17
- <%= form.select :background, Katalyst::Content.config.backgrounds %>
18
- </div>
10
+ <div class="field">
11
+ <%= form.label :heading_style %>
12
+ <%= form.collection_radio_buttons :heading_style, Katalyst::Content.config.heading_styles, :itself, :itself %>
13
+ </div>
19
14
 
20
- <div class="field">
21
- <%= form.label :visible %>
22
- <%= form.check_box :visible %>
23
- </div>
15
+ <div class="field">
16
+ <%= form.label :theme %>
17
+ <%= form.select :theme, Katalyst::Content.config.themes %>
18
+ </div>
24
19
 
25
- <%= form.submit "Done" %>
26
- <%= link_to "Discard", :back %>
27
- <% end %>
20
+ <div class="field">
21
+ <%= form.label :visible %>
22
+ <%= form.check_box :visible %>
23
+ </div>
@@ -3,6 +3,44 @@
3
3
  <%= csrf_meta_tags %>
4
4
  <% end %>
5
5
 
6
- <%= render Kpop::ModalComponent.new(title: item_editor.title, layout: "side-panel") do %>
7
- <%= render item_editor %>
6
+ <%= turbo_frame_tag(
7
+ "content--editor--item-editor",
8
+ data: { controller: "content--editor--item-editor" },
9
+ ) do %>
10
+ <dialog class="modal"
11
+ data-content--editor--item-editor-target="dialog"
12
+ data-action="
13
+ click->content--editor--item-editor#dismiss
14
+ close->content--editor--item-editor#dismiss
15
+ "
16
+ data-item-id="<%= dom_id(item_editor.item) %>"
17
+ <%= "data-item-persisted" if item_editor.item.persisted? %>>
18
+ <article class="flow" data-action="click->content--editor--item-editor#noop:stop">
19
+ <header class="repel" data-nowrap>
20
+ <h2><%= item_editor.title %></h2>
21
+ <button form="<%= item_editor.id %>"
22
+ formmethod="dialog"
23
+ class="button"
24
+ data-button-padding="tight"
25
+ data-text-button>
26
+ <icon aria-hidden="true" class="icon" data-icon="close">&nbsp;</icon>
27
+ <span class="visually-hidden">Close</span>
28
+ </button>
29
+ </header>
30
+ <main>
31
+ <%= render item_editor %>
32
+ </main>
33
+ <footer class="actions" data-reverse>
34
+ <button form="<%= item_editor.id %>" class="button" data-close-dialog>
35
+ Done
36
+ </button>
37
+ <button form="<%= item_editor.id %>"
38
+ formmethod="dialog"
39
+ class="button"
40
+ data-ghost-button>
41
+ Discard
42
+ </button>
43
+ </footer>
44
+ </article>
45
+ </dialog>
8
46
  <% end %>
@@ -1,3 +1,5 @@
1
+ <%# locals: (item_editor:) %>
2
+
1
3
  <%= turbo_stream.replace item_editor.id do %>
2
4
  <%= render item_editor %>
3
5
  <% end %>
@@ -1,4 +1,3 @@
1
- <%= turbo_stream.kpop.dismiss %>
2
1
  <%= turbo_stream.replace dom_id(previous) do %>
3
2
  <%= render editor.item(item:) %>
4
3
  <% end %>
@@ -1,27 +1,23 @@
1
- <%= form_with model: section, scope: :item, url: path do |form| %>
2
- <%= render "hidden_fields", form: %>
3
- <%= render "form_errors", form: %>
1
+ <%# locals: (form:, section:) %>
4
2
 
5
- <div class="field">
6
- <%= form.label :heading %>
7
- <%= form.text_field :heading %>
8
- </div>
3
+ <%= render "form_errors", form: %>
9
4
 
10
- <div class="field">
11
- <%= form.label :heading_style %>
12
- <%= form.collection_radio_buttons :heading_style, Katalyst::Content.config.heading_styles, :itself, :itself %>
13
- </div>
5
+ <div class="field">
6
+ <%= form.label :heading %>
7
+ <%= form.text_field :heading %>
8
+ </div>
14
9
 
15
- <div class="field">
16
- <%= form.label :background %>
17
- <%= form.select :background, Katalyst::Content.config.backgrounds %>
18
- </div>
10
+ <div class="field">
11
+ <%= form.label :heading_style %>
12
+ <%= form.collection_radio_buttons :heading_style, Katalyst::Content.config.heading_styles, :itself, :itself %>
13
+ </div>
19
14
 
20
- <div class="field">
21
- <%= form.label :visible %>
22
- <%= form.check_box :visible %>
23
- </div>
15
+ <div class="field">
16
+ <%= form.label :theme %>
17
+ <%= form.select :theme, Katalyst::Content.config.themes %>
18
+ </div>
24
19
 
25
- <%= form.submit "Done" %>
26
- <%= link_to "Discard", :back %>
27
- <% end %>
20
+ <div class="field">
21
+ <%= form.label :visible %>
22
+ <%= form.check_box :visible %>
23
+ </div>
@@ -1,7 +1,5 @@
1
- <%= content_item_tag section do %>
2
- <%= tag.h2 section.heading, class: section.heading_style_class if section.show_heading? %>
1
+ <%= content_item_tag(section, tag: :section, class: "flow") do %>
2
+ <%= tag.h2(section.heading, class: section.heading_style_class) if section.show_heading? %>
3
3
 
4
- <div>
5
- <%= render_content_items section.children %>
6
- </div>
4
+ <%= render_content_items(*section.children, theme: section.theme, class: "flow") %>
7
5
  <% end %>
@@ -1,7 +1,6 @@
1
- <%= form_with model: table, scope: :item, url: path, data: {
2
- controller: "content--editor--table",
3
- } do |form| %>
4
- <%= render "hidden_fields", form: %>
1
+ <%# locals: (form:, table:) %>
2
+
3
+ <div class="flow" data-controller="content--editor--table">
5
4
  <%= render "form_errors", form: %>
6
5
 
7
6
  <div class="field">
@@ -15,8 +14,8 @@
15
14
  </div>
16
15
 
17
16
  <div class="field">
18
- <%= form.label :background %>
19
- <%= form.select :background, Katalyst::Content.config.backgrounds %>
17
+ <%= form.label :theme %>
18
+ <%= form.select :theme, Katalyst::Content.config.themes %>
20
19
  </div>
21
20
 
22
21
  <div class="field">
@@ -40,9 +39,8 @@
40
39
  <%= form.text_field :heading_columns, type: :number, data: { action: "input->content--editor--table#update" } %>
41
40
  </div>
42
41
 
43
- <%= form.submit "Done" %>
44
- <%= link_to "Discard", :back %>
45
42
  <%= form.button "Update",
46
- formaction: table.persisted? ? content_routes.table_path : content_routes.tables_path,
47
- data: { content__editor__table_target: "update" } %>
48
- <% end %>
43
+ class: "button",
44
+ formaction: table.persisted? ? katalyst_content.table_path : katalyst_content.tables_path,
45
+ data: { ghost_button: "", content__editor__table_target: "update" } %>
46
+ </div>
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RenameBackgroundToTheme < ActiveRecord::Migration[8.0]
4
+ def change
5
+ rename_column :katalyst_content_items, :background, :theme
6
+ end
7
+ end
@@ -7,7 +7,10 @@ module Katalyst
7
7
  class Config
8
8
  include ActiveSupport::Configurable
9
9
 
10
- config_accessor(:backgrounds) { %w[light dark] }
10
+ config_accessor(:themes) { %w[light dark] }
11
+ alias_method :backgrounds, :themes
12
+ alias_method :backgrounds=, :themes=
13
+
11
14
  config_accessor(:heading_styles) { %w[none default] }
12
15
  config_accessor(:items) do
13
16
  %w[
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "katalyst/html_attributes"
4
- require "katalyst/kpop"
5
4
  require "rails/engine"
6
5
 
7
6
  module Katalyst
@@ -4,7 +4,7 @@ FactoryBot.define do
4
4
  trait :content_item_defaults do
5
5
  heading { Faker::Lorem.word }
6
6
  heading_style { "default" }
7
- background { Katalyst::Content.config.backgrounds.sample }
7
+ theme { Katalyst::Content.config.themes.sample }
8
8
  depth { 0 }
9
9
  end
10
10
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: katalyst-content
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.0
4
+ version: 3.0.0.alpha.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katalyst Interactive
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-03-03 00:00:00.000000000 Z
10
+ date: 2025-03-21 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activerecord
@@ -51,20 +51,6 @@ dependencies:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
- - !ruby/object:Gem::Dependency
55
- name: katalyst-kpop
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0'
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: '0'
68
54
  - !ruby/object:Gem::Dependency
69
55
  name: view_component
70
56
  requirement: !ruby/object:Gem::Requirement
@@ -92,17 +78,30 @@ files:
92
78
  - app/assets/builds/katalyst/content.min.js
93
79
  - app/assets/builds/katalyst/content.min.js.map
94
80
  - app/assets/config/katalyst-content.js
95
- - app/assets/stylesheets/katalyst/content/_index.scss
96
- - app/assets/stylesheets/katalyst/content/editor/_figure.scss
97
- - app/assets/stylesheets/katalyst/content/editor/_icon.scss
98
- - app/assets/stylesheets/katalyst/content/editor/_index.scss
99
- - app/assets/stylesheets/katalyst/content/editor/_item-actions.scss
100
- - app/assets/stylesheets/katalyst/content/editor/_item-rules.scss
101
- - app/assets/stylesheets/katalyst/content/editor/_new-items.scss
102
- - app/assets/stylesheets/katalyst/content/editor/_status-bar.scss
103
- - app/assets/stylesheets/katalyst/content/editor/_table.scss
104
- - app/assets/stylesheets/katalyst/content/editor/_trix-rails.scss
105
- - app/assets/stylesheets/katalyst/content/editor/_variables.scss
81
+ - app/assets/images/katalyst/content/icons/aside.svg
82
+ - app/assets/images/katalyst/content/icons/collapse.svg
83
+ - app/assets/images/katalyst/content/icons/column.svg
84
+ - app/assets/images/katalyst/content/icons/content.svg
85
+ - app/assets/images/katalyst/content/icons/edit.svg
86
+ - app/assets/images/katalyst/content/icons/expand.svg
87
+ - app/assets/images/katalyst/content/icons/figure.svg
88
+ - app/assets/images/katalyst/content/icons/group.svg
89
+ - app/assets/images/katalyst/content/icons/hidden.svg
90
+ - app/assets/images/katalyst/content/icons/indent.svg
91
+ - app/assets/images/katalyst/content/icons/outdent.svg
92
+ - app/assets/images/katalyst/content/icons/remove.svg
93
+ - app/assets/images/katalyst/content/icons/section.svg
94
+ - app/assets/images/katalyst/content/icons/table.svg
95
+ - app/assets/images/katalyst/content/icons/theme.svg
96
+ - app/assets/stylesheets/katalyst/content/_editor.scss
97
+ - app/assets/stylesheets/katalyst/content/_frontend.scss
98
+ - app/assets/stylesheets/katalyst/content/editor.css
99
+ - app/assets/stylesheets/katalyst/content/editor/editor.css
100
+ - app/assets/stylesheets/katalyst/content/editor/icons.css
101
+ - app/assets/stylesheets/katalyst/content/editor/status-bar.css
102
+ - app/assets/stylesheets/katalyst/content/editor/table.css
103
+ - app/assets/stylesheets/katalyst/content/frontend.css
104
+ - app/assets/stylesheets/katalyst/content/frontend/frontend.css
106
105
  - app/components/katalyst/content/editor/base_component.rb
107
106
  - app/components/katalyst/content/editor/errors_component.html.erb
108
107
  - app/components/katalyst/content/editor/errors_component.rb
@@ -132,6 +131,7 @@ files:
132
131
  - app/javascript/content/editor/container_controller.js
133
132
  - app/javascript/content/editor/item.js
134
133
  - app/javascript/content/editor/item_controller.js
134
+ - app/javascript/content/editor/item_editor_controller.js
135
135
  - app/javascript/content/editor/list_controller.js
136
136
  - app/javascript/content/editor/new_items_controller.js
137
137
  - app/javascript/content/editor/rules_engine.js
@@ -167,6 +167,7 @@ files:
167
167
  - app/views/katalyst/content/figures/_figure.html.erb
168
168
  - app/views/katalyst/content/groups/_group.html+form.erb
169
169
  - app/views/katalyst/content/groups/_group.html.erb
170
+ - app/views/katalyst/content/items/_form.html.erb
170
171
  - app/views/katalyst/content/items/_form_errors.html.erb
171
172
  - app/views/katalyst/content/items/_hidden_fields.html.erb
172
173
  - app/views/katalyst/content/items/_item.html+form.erb
@@ -187,6 +188,7 @@ files:
187
188
  - db/migrate/20220926061535_add_fields_for_figure_to_katalyst_content_items.rb
188
189
  - db/migrate/20230515151440_change_katalyst_content_items_show_heading_column.rb
189
190
  - db/migrate/20240826042004_add_style_to_content_items.rb
191
+ - db/migrate/20250321045027_rename_background_to_theme.rb
190
192
  - lib/katalyst/content.rb
191
193
  - lib/katalyst/content/config.rb
192
194
  - lib/katalyst/content/engine.rb
@@ -1 +0,0 @@
1
- @use "editor";
@@ -1,12 +0,0 @@
1
- [data-controller="content--editor--image-field"] {
2
- &.droppable {
3
- box-shadow: inset 0 0 0 2px var(--icon-passive-color);
4
- background-image: url("data:image/svg+xml,%3Csvg width='64' height='64' viewBox='0 0 33 31' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.973145' width='32' height='30' rx='4' fill='grey'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M22.9506 10.5053C24.135 10.5053 25.0951 9.45219 25.0951 8.15306C25.0951 6.85393 24.135 5.80078 22.9506 5.80078C21.7661 5.80078 20.806 6.85393 20.806 8.15306C20.806 9.45219 21.7661 10.5053 22.9506 10.5053ZM17.0148 24.7495H4.74196C3.97371 24.7495 3.49239 23.9192 3.87419 23.2526L12.0384 8.99711C12.4167 8.33644 13.3632 8.32137 13.7579 8.9724C15.0754 11.1453 17.647 15.3946 19.8661 19.1086L22.2245 14.9665C22.5814 14.3397 23.4295 14.3294 23.8331 14.9468L29.1963 23.1506C29.6434 23.8345 29.2201 24.7563 28.4534 24.7645L23.2119 24.8206L17.0148 24.7495Z' fill='%23F3F5F8'/%3E%3C/svg%3E");
5
- background-position: center center;
6
- background-repeat: no-repeat;
7
-
8
- > * {
9
- visibility: hidden;
10
- }
11
- }
12
- }