katalyst-navigation 1.4.1 → 1.5.0

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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +29 -5
  3. data/app/assets/builds/katalyst/navigation.esm.js +911 -0
  4. data/app/assets/builds/katalyst/navigation.js +911 -0
  5. data/app/assets/builds/katalyst/navigation.min.js +2 -0
  6. data/app/assets/builds/katalyst/navigation.min.js.map +1 -0
  7. data/app/assets/config/katalyst-navigation.js +1 -1
  8. data/app/components/katalyst/navigation/editor/base_component.rb +48 -0
  9. data/app/components/katalyst/navigation/editor/errors_component.html.erb +12 -0
  10. data/app/components/katalyst/navigation/editor/errors_component.rb +15 -0
  11. data/app/components/katalyst/navigation/editor/item_component.html.erb +27 -0
  12. data/app/components/katalyst/navigation/editor/item_component.rb +30 -0
  13. data/app/components/katalyst/navigation/editor/item_editor_component.rb +51 -0
  14. data/app/components/katalyst/navigation/editor/new_item_component.html.erb +14 -0
  15. data/app/components/katalyst/navigation/editor/new_item_component.rb +49 -0
  16. data/app/components/katalyst/navigation/editor/new_items_component.html.erb +3 -0
  17. data/app/components/katalyst/navigation/editor/new_items_component.rb +20 -0
  18. data/app/{views/katalyst/navigation/menus/_list_item.html.erb → components/katalyst/navigation/editor/row_component.html.erb} +1 -1
  19. data/{lib/katalyst/navigation/version.rb → app/components/katalyst/navigation/editor/row_component.rb} +4 -1
  20. data/app/{helpers/katalyst/navigation/editor/status_bar.rb → components/katalyst/navigation/editor/status_bar_component.rb} +17 -13
  21. data/app/components/katalyst/navigation/editor/table_component.html.erb +11 -0
  22. data/app/components/katalyst/navigation/editor/table_component.rb +36 -0
  23. data/app/components/katalyst/navigation/editor_component.html.erb +9 -0
  24. data/app/components/katalyst/navigation/editor_component.rb +47 -0
  25. data/app/controllers/concerns/katalyst/navigation/has_navigation.rb +5 -14
  26. data/app/controllers/katalyst/navigation/items_controller.rb +24 -12
  27. data/app/controllers/katalyst/navigation/menus_controller.rb +25 -13
  28. data/app/helpers/katalyst/navigation/frontend_helper.rb +7 -7
  29. data/app/javascript/navigation/application.js +30 -0
  30. data/app/{assets/javascripts/controllers → javascript}/navigation/editor/item_controller.js +1 -1
  31. data/app/{assets/javascripts/utils → javascript}/navigation/editor/menu.js +1 -1
  32. data/app/{assets/javascripts/controllers → javascript}/navigation/editor/menu_controller.js +3 -3
  33. data/app/models/katalyst/navigation/menu.rb +2 -0
  34. data/app/models/katalyst/navigation/types/nodes_type.rb +2 -2
  35. data/app/views/katalyst/navigation/items/_button.html.erb +6 -0
  36. data/app/views/katalyst/navigation/items/_form_errors.html.erb +5 -0
  37. data/app/views/katalyst/navigation/items/_heading.html.erb +1 -0
  38. data/app/views/katalyst/navigation/items/_link.html.erb +11 -0
  39. data/app/views/katalyst/navigation/items/edit.html.erb +4 -3
  40. data/app/views/katalyst/navigation/items/edit.turbo_stream.erb +3 -0
  41. data/app/views/katalyst/navigation/items/new.html.erb +1 -1
  42. data/app/views/katalyst/navigation/items/update.turbo_stream.erb +2 -5
  43. data/app/views/katalyst/navigation/menus/edit.html.erb +1 -1
  44. data/app/views/katalyst/navigation/menus/index.html.erb +1 -1
  45. data/app/views/katalyst/navigation/menus/show.html.erb +3 -13
  46. data/config/importmap.rb +1 -4
  47. data/lib/katalyst/navigation/config.rb +4 -0
  48. data/lib/katalyst/navigation/engine.rb +1 -1
  49. data/lib/katalyst/navigation.rb +6 -1
  50. data/spec/factories/katalyst/navigation/menus.rb +1 -1
  51. metadata +93 -27
  52. data/app/controllers/katalyst/navigation/base_controller.rb +0 -12
  53. data/app/helpers/katalyst/navigation/editor/base.rb +0 -41
  54. data/app/helpers/katalyst/navigation/editor/errors.rb +0 -24
  55. data/app/helpers/katalyst/navigation/editor/item.rb +0 -62
  56. data/app/helpers/katalyst/navigation/editor/list.rb +0 -41
  57. data/app/helpers/katalyst/navigation/editor/menu.rb +0 -47
  58. data/app/helpers/katalyst/navigation/editor/new_item.rb +0 -53
  59. data/app/helpers/katalyst/navigation/editor_helper.rb +0 -52
  60. data/app/views/katalyst/navigation/menus/_item.html.erb +0 -15
  61. data/app/views/katalyst/navigation/menus/_new_item.html.erb +0 -3
  62. data/app/views/katalyst/navigation/menus/_new_items.html.erb +0 -5
  63. /data/app/{assets/javascripts/utils → javascript}/navigation/editor/item.js +0 -0
  64. /data/app/{assets/javascripts/controllers → javascript}/navigation/editor/list_controller.js +0 -0
  65. /data/app/{assets/javascripts/controllers → javascript}/navigation/editor/new_item_controller.js +0 -0
  66. /data/app/{assets/javascripts/utils → javascript}/navigation/editor/rules-engine.js +0 -0
  67. /data/app/{assets/javascripts/controllers → javascript}/navigation/editor/status_bar_controller.js +0 -0
@@ -2,24 +2,27 @@
2
2
 
3
3
  module Katalyst
4
4
  module Navigation
5
- class ItemsController < BaseController
6
- before_action :set_menu
5
+ class ItemsController < ApplicationController
6
+ before_action :set_menu, only: %i[new create]
7
7
  before_action :set_item, except: %i[new create]
8
8
 
9
+ attr_reader :menu, :item, :editor
10
+
11
+ layout nil
12
+
9
13
  def new
10
- render locals: { item: @menu.items.build(type: new_item_params) }
14
+ render_editor
11
15
  end
12
16
 
13
17
  def edit
14
- render locals: { item: @item }
18
+ render_editor
15
19
  end
16
20
 
17
21
  def create
18
- item = @menu.items.build(item_params)
19
22
  if item.save
20
- render :update, locals: { item: item, previous: @menu.items.build(type: item.type) }
23
+ render :update, locals: { editor:, item:, previous: @menu.items.build(type: item.type) }
21
24
  else
22
- render :new, status: :unprocessable_entity, locals: { item: item }
25
+ render_editor status: :unprocessable_entity
23
26
  end
24
27
  end
25
28
 
@@ -29,16 +32,17 @@ module Katalyst
29
32
  if @item.valid?
30
33
  previous = @item
31
34
  @item = @item.dup.tap(&:save!)
32
- render locals: { item: @item, previous: previous }
35
+
36
+ render locals: { editor:, item:, previous: }
33
37
  else
34
- render :edit, status: :unprocessable_entity, locals: { item: @item }
38
+ render_editor status: :unprocessable_entity
35
39
  end
36
40
  end
37
41
 
38
42
  private
39
43
 
40
44
  def new_item_params
41
- params[:type] || Link.name
45
+ { type: params[:type] || Link.name }
42
46
  end
43
47
 
44
48
  def item_params_type
@@ -55,11 +59,19 @@ module Katalyst
55
59
  end
56
60
 
57
61
  def set_menu
58
- @menu = Menu.find(params[:menu_id])
62
+ @menu = Menu.find(params[:menu_id])
63
+ @item = @menu.items.build(item_params)
64
+ @editor = Katalyst::Navigation::EditorComponent.new(menu:, item:)
59
65
  end
60
66
 
61
67
  def set_item
62
- @item = @menu.items.find(params[:id])
68
+ @item = Item.find(params[:id])
69
+ @menu = @item.menu
70
+ @editor = Katalyst::Navigation::EditorComponent.new(menu:, item:)
71
+ end
72
+
73
+ def render_editor(**)
74
+ render(:edit, locals: { item_editor: editor.item_editor(item:) }, **)
63
75
  end
64
76
  end
65
77
  end
@@ -2,55 +2,67 @@
2
2
 
3
3
  module Katalyst
4
4
  module Navigation
5
- class MenusController < BaseController
5
+ class MenusController < Katalyst::Navigation.config.base_controller.constantize
6
+ include Katalyst::Tables::Backend
7
+
6
8
  def index
7
9
  collection = Katalyst::Tables::Collection::Base.new(sorting: :title).with_params(params).apply(Menu.all)
8
- table = Katalyst::Turbo::TableComponent.new(collection: collection,
10
+ table = Katalyst::Turbo::TableComponent.new(collection:,
9
11
  id: "index-table",
10
12
  class: "index-table",
11
13
  caption: true)
12
14
 
13
15
  respond_to do |format|
14
16
  format.turbo_stream { render(table) } if self_referred?
15
- format.html { render :index, locals: { table: table } }
17
+ format.html { render :index, locals: { table: } }
16
18
  end
17
19
  end
18
20
 
19
21
  def show
20
- menu = Menu.find(params[:id])
22
+ menu = Menu.find(params[:id])
23
+ editor = Katalyst::Navigation::EditorComponent.new(menu:)
21
24
 
22
- render locals: { menu: menu }
25
+ render locals: { menu:, editor: }
23
26
  end
24
27
 
25
28
  def new
26
- render locals: { menu: Menu.new }
29
+ menu = Menu.new
30
+ editor = Katalyst::Navigation::EditorComponent.new(menu:)
31
+
32
+ render locals: { menu:, editor: }
27
33
  end
28
34
 
29
35
  def edit
30
- menu = Menu.find(params[:id])
36
+ menu = Menu.find(params[:id])
37
+ editor = Katalyst::Navigation::EditorComponent.new(menu:)
31
38
 
32
- render locals: { menu: menu }
39
+ render locals: { menu:, editor: }
33
40
  end
34
41
 
35
42
  def create
36
43
  @menu = Menu.new(menu_params)
44
+ editor = Katalyst::Navigation::EditorComponent.new(menu: @menu)
37
45
 
38
46
  if @menu.save
39
- redirect_to @menu
47
+ @menu.build_draft_version
48
+ @menu.save!
49
+ redirect_to @menu, status: :see_other
40
50
  else
41
- render :new, locals: { menu: @menu }, status: :unprocessable_entity
51
+ render :new, locals: { menu: @menu, editor: }, status: :unprocessable_entity
42
52
  end
43
53
  end
44
54
 
45
55
  # PATCH /admins/navigation_menus/:slug
46
56
  def update
47
57
  menu = Menu.find(params[:id])
58
+ editor = Katalyst::Navigation::EditorComponent.new(menu:)
48
59
 
49
60
  menu.attributes = menu_params
50
61
 
51
62
  unless menu.valid?
52
- return render turbo_stream: helpers.navigation_editor_errors(menu: menu),
53
- status: :unprocessable_entity
63
+ return respond_to do |format|
64
+ format.turbo_stream { render editor.errors, status: :unprocessable_entity }
65
+ end
54
66
  end
55
67
 
56
68
  case params[:commit]
@@ -62,7 +74,7 @@ module Katalyst
62
74
  when "revert"
63
75
  menu.revert!
64
76
  end
65
- redirect_to menu
77
+ redirect_to menu, status: :see_other
66
78
  end
67
79
 
68
80
  def destroy
@@ -11,14 +11,14 @@ module Katalyst
11
11
  #
12
12
  # @param(menu: Katalyst::Navigation::Menu)
13
13
  # @return Structured HTML containing top level + nested navigation links
14
- def navigation_menu_with(menu:, **options)
15
- builder = navigation_builder(**options)
14
+ def navigation_menu_with(menu:, **)
15
+ builder = navigation_builder(**)
16
16
  menu = navigation_menu_for(menu) if menu.is_a?(Symbol)
17
17
 
18
- return if menu&.published_version.blank?
18
+ return if menu.blank?
19
19
 
20
- cache menu.published_version do
21
- concat builder.render(menu.published_tree)
20
+ cache menu do
21
+ concat builder.render(menu.published_tree) if menu.published_version.present?
22
22
  end
23
23
  end
24
24
 
@@ -26,8 +26,8 @@ module Katalyst
26
26
  #
27
27
  # @param(items: [Katalyst::Navigation::Item])
28
28
  # @return Structured HTML containing top level + nested navigation links
29
- def navigation_items_with(items:, **options)
30
- builder = navigation_builder(**options)
29
+ def navigation_items_with(items:, **)
30
+ builder = navigation_builder(**)
31
31
 
32
32
  capture do
33
33
  items.each do |item|
@@ -0,0 +1,30 @@
1
+ import MenuController from "./editor/menu_controller";
2
+ import ItemController from "./editor/item_controller";
3
+ import ListController from "./editor/list_controller";
4
+ import NewItemController from "./editor/new_item_controller";
5
+ import StatusBarController from "./editor/status_bar_controller";
6
+
7
+ const Definitions = [
8
+ {
9
+ identifier: "navigation--editor--menu",
10
+ controllerConstructor: MenuController,
11
+ },
12
+ {
13
+ identifier: "navigation--editor--item",
14
+ controllerConstructor: ItemController,
15
+ },
16
+ {
17
+ identifier: "navigation--editor--list",
18
+ controllerConstructor: ListController,
19
+ },
20
+ {
21
+ identifier: "navigation--editor--new-item",
22
+ controllerConstructor: NewItemController,
23
+ },
24
+ {
25
+ identifier: "navigation--editor--status-bar",
26
+ controllerConstructor: StatusBarController,
27
+ },
28
+ ];
29
+
30
+ export { Definitions as default };
@@ -1,5 +1,5 @@
1
1
  import { Controller } from "@hotwired/stimulus";
2
- import Item from "utils/navigation/editor/item";
2
+ import Item from "./item";
3
3
 
4
4
  export default class ItemController extends Controller {
5
5
  get item() {
@@ -1,4 +1,4 @@
1
- import Item from "utils/navigation/editor/item";
1
+ import Item from "./item";
2
2
 
3
3
  /**
4
4
  * @param nodes {NodeList}
@@ -1,8 +1,8 @@
1
1
  import { Controller } from "@hotwired/stimulus";
2
2
 
3
- import Item from "utils/navigation/editor/item";
4
- import Menu from "utils/navigation/editor/menu";
5
- import RulesEngine from "utils/navigation/editor/rules-engine";
3
+ import Item from "./item";
4
+ import Menu from "./menu";
5
+ import RulesEngine from "./rules-engine";
6
6
 
7
7
  export default class MenuController extends Controller {
8
8
  static targets = ["menu"];
@@ -43,6 +43,8 @@ module Katalyst
43
43
  inverse_of: :menu,
44
44
  validate: true
45
45
 
46
+ scope :published, -> { where.not(published_version_id: nil) }
47
+
46
48
  validates :title, :slug, presence: true
47
49
  validates :slug, uniqueness: true
48
50
  validates :depth, numericality: { greater_than: 0, only_integer: true, allow_nil: true }
@@ -27,13 +27,13 @@ module Katalyst
27
27
  # Deserialize a params-style array, e.g. "0" => { ... }
28
28
  def deserialize_params(value)
29
29
  value.map do |index, attributes|
30
- Node.new(index: index, **attributes)
30
+ Node.new(index:, **attributes)
31
31
  end.select(&:id).sort_by(&:index)
32
32
  end
33
33
 
34
34
  def deserialize_array(value)
35
35
  value.map.with_index do |attributes, index|
36
- Node.new(index: index, **attributes)
36
+ Node.new(index:, **attributes)
37
37
  end.select(&:id).sort_by(&:index)
38
38
  end
39
39
  end
@@ -1,5 +1,6 @@
1
1
  <%= form_with model: item, scope: :item, url: path do |form| %>
2
2
  <%= form.hidden_field :type %>
3
+ <%= render "form_errors", form: %>
3
4
 
4
5
  <div class="input">
5
6
  <%= form.label :title %>
@@ -16,6 +17,11 @@
16
17
  <%= form.select :http_method, Katalyst::Navigation::Button::HTTP_METHODS %>
17
18
  </div>
18
19
 
20
+ <div class="field">
21
+ <%= form.label :target %>
22
+ <%= form.select :target, Katalyst::Navigation::Button::TARGETS %>
23
+ </div>
24
+
19
25
  <div class="input">
20
26
  <%= form.check_box :visible %>
21
27
  <%= form.label :visible %>
@@ -0,0 +1,5 @@
1
+ <%= tag.ul class: "errors" do %>
2
+ <% form.object.errors.full_messages.each do |error| %>
3
+ <li class="error"><%= error %></li>
4
+ <% end %>
5
+ <% end if form.object.errors.any? %>
@@ -1,5 +1,6 @@
1
1
  <%= form_with model: item, scope: :item, url: path do |form| %>
2
2
  <%= form.hidden_field :type %>
3
+ <%= render "form_errors", form: %>
3
4
 
4
5
  <div class="field">
5
6
  <%= form.label :title %>
@@ -1,5 +1,6 @@
1
1
  <%= form_with model: item, scope: :item, url: path do |form| %>
2
2
  <%= form.hidden_field :type %>
3
+ <%= render "form_errors", form: %>
3
4
 
4
5
  <div class="field">
5
6
  <%= form.label :title %>
@@ -11,6 +12,16 @@
11
12
  <%= form.text_field :url %>
12
13
  </div>
13
14
 
15
+ <div class="input">
16
+ <%= form.label :http_method %>
17
+ <%= form.select :http_method, Katalyst::Navigation::Link::HTTP_METHODS %>
18
+ </div>
19
+
20
+ <div class="field">
21
+ <%= form.label :target %>
22
+ <%= form.select :target, Katalyst::Navigation::Link::TARGETS %>
23
+ </div>
24
+
14
25
  <div class="field">
15
26
  <%= form.label :visible %>
16
27
  <%= form.check_box :visible %>
@@ -1,4 +1,5 @@
1
- <%= turbo_frame_tag "navigation--editor--item-frame" do %>
2
- <h3 class="heading-three">Edit <%= item.model_name.human.downcase %></h3>
3
- <%= render item.model_name.param_key, item: item, path: menu_item_path(item.menu, item) %>
1
+ <%= render Kpop::FrameComponent.new do %>
2
+ <%= render Kpop::ModalComponent.new(title: item_editor.title, layout: "side-panel") do %>
3
+ <%= render item_editor %>
4
+ <% end %>
4
5
  <% end %>
@@ -0,0 +1,3 @@
1
+ <%= turbo_stream.replace item_editor.id do %>
2
+ <%= render item_editor %>
3
+ <% end %>
@@ -1,4 +1,4 @@
1
1
  <%= turbo_frame_tag "navigation--editor--item-frame" do %>
2
2
  <h3 class="heading-three">New <%= item.model_name.human.downcase %></h3>
3
- <%= render item.model_name.param_key, item: item, path: menu_items_path(item.menu) %>
3
+ <%= render item.model_name.param_key, item:, path: menu_items_path(item.menu) %>
4
4
  <% end %>
@@ -1,7 +1,4 @@
1
- <%= turbo_stream.replace "navigation--editor--item-frame" do %>
2
- <%= render "katalyst/navigation/menus/new_items", menu: item.menu %>
3
- <% end %>
4
-
1
+ <%= turbo_stream.kpop.dismiss %>
5
2
  <%= turbo_stream.replace dom_id(previous) do %>
6
- <%= render "katalyst/navigation/menus/item", item: item %>
3
+ <%= render editor.item(item:) %>
7
4
  <% end %>
@@ -20,6 +20,6 @@
20
20
  <%= form.submit :save %>
21
21
  <%= link_to "Delete", url_for(action: :show),
22
22
  class: "button button-secondary",
23
- data: { turbo_method: :delete, turbo_confirm: "Are you sure?" } %>
23
+ data: { turbo_method: :delete, turbo_confirm: "Are you sure?" } %>
24
24
  </div>
25
25
  <% end %>
@@ -2,7 +2,7 @@
2
2
 
3
3
  <nav class="index-table-actions">
4
4
  <div class="item-actions">
5
- <%= link_to "Add", [:new, :menu], class: "button button--primary" %>
5
+ <%= link_to "Add", %i[new menu], class: "button button--primary" %>
6
6
  </div>
7
7
  </nav>
8
8
 
@@ -1,15 +1,5 @@
1
1
  <% content_for :title, menu.title %>
2
2
 
3
- <%= navigation_editor_status_bar menu: menu %>
4
-
5
- <%= navigation_editor_menu menu: menu do |form| %>
6
- <div role="rowheader">
7
- <h4>Title</h4>
8
- <h4>Url</h4>
9
- <h4>Actions</h4>
10
- </div>
11
-
12
- <%= navigation_editor_list menu: menu %>
13
- <% end %>
14
-
15
- <%= render "katalyst/navigation/menus/new_items", menu: menu %>
3
+ <%= render editor.status_bar %>
4
+ <%= render editor %>
5
+ <%= render editor.new_items %>
data/config/importmap.rb CHANGED
@@ -1,5 +1,2 @@
1
1
  # frozen_string_literal: true
2
-
3
- pin_all_from Katalyst::Navigation::Engine.root.join("app/assets/javascripts"),
4
- # preload in tests so that we don't start clicking before controllers load
5
- preload: Rails.env.test?
2
+ pin "@katalyst/navigation", to: "katalyst/navigation.js"
@@ -14,6 +14,10 @@ module Katalyst
14
14
  Katalyst::Navigation::Button
15
15
  ]
16
16
  end
17
+
18
+ config_accessor(:errors_component) { "Katalyst::Navigation::Editor::ErrorsComponent" }
19
+
20
+ config_accessor(:base_controller) { "ApplicationController" }
17
21
  end
18
22
  end
19
23
  end
@@ -18,7 +18,7 @@ module Katalyst
18
18
  initializer "katalyst-navigation.importmap", before: "importmap" do |app|
19
19
  if app.config.respond_to?(:importmap)
20
20
  app.config.importmap.paths << root.join("config/importmap.rb")
21
- app.config.importmap.cache_sweepers << root.join("app/assets/javascripts")
21
+ app.config.importmap.cache_sweepers << root.join("app/assets/builds")
22
22
  end
23
23
  end
24
24
 
@@ -1,8 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_support"
4
+ require "katalyst/html_attributes"
5
+ require "katalyst/kpop"
6
+ require "katalyst/tables"
7
+ require "view_component"
8
+
3
9
  require "katalyst/navigation/config"
4
10
  require "katalyst/navigation/engine"
5
- require "katalyst/navigation/version"
6
11
 
7
12
  module Katalyst
8
13
  module Navigation # :nodoc:
@@ -10,7 +10,7 @@ FactoryBot.define do
10
10
  end
11
11
 
12
12
  after(:create) do |menu, _context|
13
- menu.items_attributes = menu.items.map.with_index { |item, index| { id: item.id, index: index, depth: 0 } }
13
+ menu.items_attributes = menu.items.map.with_index { |item, index| { id: item.id, index:, depth: 0 } }
14
14
  menu.publish!
15
15
  end
16
16
  end
metadata CHANGED
@@ -1,15 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: katalyst-navigation
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katalyst Interactive
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-28 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2023-12-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: katalyst-html-attributes
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: katalyst-kpop
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: katalyst-tables
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: view_component
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
13
69
  description:
14
70
  email:
15
71
  - developers@katalyst.com.au
@@ -19,35 +75,48 @@ extra_rdoc_files: []
19
75
  files:
20
76
  - LICENSE.txt
21
77
  - README.md
78
+ - app/assets/builds/katalyst/navigation.esm.js
79
+ - app/assets/builds/katalyst/navigation.js
80
+ - app/assets/builds/katalyst/navigation.min.js
81
+ - app/assets/builds/katalyst/navigation.min.js.map
22
82
  - app/assets/config/katalyst-navigation.js
23
- - app/assets/javascripts/controllers/navigation/editor/item_controller.js
24
- - app/assets/javascripts/controllers/navigation/editor/list_controller.js
25
- - app/assets/javascripts/controllers/navigation/editor/menu_controller.js
26
- - app/assets/javascripts/controllers/navigation/editor/new_item_controller.js
27
- - app/assets/javascripts/controllers/navigation/editor/status_bar_controller.js
28
- - app/assets/javascripts/utils/navigation/editor/item.js
29
- - app/assets/javascripts/utils/navigation/editor/menu.js
30
- - app/assets/javascripts/utils/navigation/editor/rules-engine.js
31
83
  - app/assets/stylesheets/katalyst/navigation/editor/_icon.scss
32
84
  - app/assets/stylesheets/katalyst/navigation/editor/_index.scss
33
85
  - app/assets/stylesheets/katalyst/navigation/editor/_item-actions.scss
34
86
  - app/assets/stylesheets/katalyst/navigation/editor/_item-rules.scss
35
87
  - app/assets/stylesheets/katalyst/navigation/editor/_new-items.scss
36
88
  - app/assets/stylesheets/katalyst/navigation/editor/_status-bar.scss
89
+ - app/components/katalyst/navigation/editor/base_component.rb
90
+ - app/components/katalyst/navigation/editor/errors_component.html.erb
91
+ - app/components/katalyst/navigation/editor/errors_component.rb
92
+ - app/components/katalyst/navigation/editor/item_component.html.erb
93
+ - app/components/katalyst/navigation/editor/item_component.rb
94
+ - app/components/katalyst/navigation/editor/item_editor_component.rb
95
+ - app/components/katalyst/navigation/editor/new_item_component.html.erb
96
+ - app/components/katalyst/navigation/editor/new_item_component.rb
97
+ - app/components/katalyst/navigation/editor/new_items_component.html.erb
98
+ - app/components/katalyst/navigation/editor/new_items_component.rb
99
+ - app/components/katalyst/navigation/editor/row_component.html.erb
100
+ - app/components/katalyst/navigation/editor/row_component.rb
101
+ - app/components/katalyst/navigation/editor/status_bar_component.rb
102
+ - app/components/katalyst/navigation/editor/table_component.html.erb
103
+ - app/components/katalyst/navigation/editor/table_component.rb
104
+ - app/components/katalyst/navigation/editor_component.html.erb
105
+ - app/components/katalyst/navigation/editor_component.rb
37
106
  - app/controllers/concerns/katalyst/navigation/has_navigation.rb
38
- - app/controllers/katalyst/navigation/base_controller.rb
39
107
  - app/controllers/katalyst/navigation/items_controller.rb
40
108
  - app/controllers/katalyst/navigation/menus_controller.rb
41
- - app/helpers/katalyst/navigation/editor/base.rb
42
- - app/helpers/katalyst/navigation/editor/errors.rb
43
- - app/helpers/katalyst/navigation/editor/item.rb
44
- - app/helpers/katalyst/navigation/editor/list.rb
45
- - app/helpers/katalyst/navigation/editor/menu.rb
46
- - app/helpers/katalyst/navigation/editor/new_item.rb
47
- - app/helpers/katalyst/navigation/editor/status_bar.rb
48
- - app/helpers/katalyst/navigation/editor_helper.rb
49
109
  - app/helpers/katalyst/navigation/frontend/builder.rb
50
110
  - app/helpers/katalyst/navigation/frontend_helper.rb
111
+ - app/javascript/navigation/application.js
112
+ - app/javascript/navigation/editor/item.js
113
+ - app/javascript/navigation/editor/item_controller.js
114
+ - app/javascript/navigation/editor/list_controller.js
115
+ - app/javascript/navigation/editor/menu.js
116
+ - app/javascript/navigation/editor/menu_controller.js
117
+ - app/javascript/navigation/editor/new_item_controller.js
118
+ - app/javascript/navigation/editor/rules-engine.js
119
+ - app/javascript/navigation/editor/status_bar_controller.js
51
120
  - app/models/concerns/katalyst/navigation/garbage_collection.rb
52
121
  - app/models/concerns/katalyst/navigation/has_link.rb
53
122
  - app/models/concerns/katalyst/navigation/has_tree.rb
@@ -60,16 +129,14 @@ files:
60
129
  - app/models/katalyst/navigation/node.rb
61
130
  - app/models/katalyst/navigation/types/nodes_type.rb
62
131
  - app/views/katalyst/navigation/items/_button.html.erb
132
+ - app/views/katalyst/navigation/items/_form_errors.html.erb
63
133
  - app/views/katalyst/navigation/items/_heading.html.erb
64
134
  - app/views/katalyst/navigation/items/_link.html.erb
65
135
  - app/views/katalyst/navigation/items/edit.html.erb
136
+ - app/views/katalyst/navigation/items/edit.turbo_stream.erb
66
137
  - app/views/katalyst/navigation/items/new.html.erb
67
138
  - app/views/katalyst/navigation/items/update.turbo_stream.erb
68
- - app/views/katalyst/navigation/menus/_item.html.erb
69
- - app/views/katalyst/navigation/menus/_list_item.html.erb
70
139
  - app/views/katalyst/navigation/menus/_menu.html+row.erb
71
- - app/views/katalyst/navigation/menus/_new_item.html.erb
72
- - app/views/katalyst/navigation/menus/_new_items.html.erb
73
140
  - app/views/katalyst/navigation/menus/edit.html.erb
74
141
  - app/views/katalyst/navigation/menus/index.html.erb
75
142
  - app/views/katalyst/navigation/menus/new.html.erb
@@ -84,7 +151,6 @@ files:
84
151
  - lib/katalyst/navigation.rb
85
152
  - lib/katalyst/navigation/config.rb
86
153
  - lib/katalyst/navigation/engine.rb
87
- - lib/katalyst/navigation/version.rb
88
154
  - spec/factories/katalyst/navigation/items.rb
89
155
  - spec/factories/katalyst/navigation/menus.rb
90
156
  homepage: https://github.com/katalyst/navigation
@@ -100,14 +166,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
100
166
  requirements:
101
167
  - - ">="
102
168
  - !ruby/object:Gem::Version
103
- version: 2.7.0
169
+ version: 3.2.0
104
170
  required_rubygems_version: !ruby/object:Gem::Requirement
105
171
  requirements:
106
172
  - - ">="
107
173
  - !ruby/object:Gem::Version
108
174
  version: '0'
109
175
  requirements: []
110
- rubygems_version: 3.4.12
176
+ rubygems_version: 3.4.10
111
177
  signing_key:
112
178
  specification_version: 4
113
179
  summary: Navigation generator and editor