class Lookbook::Nav::Item::Component

def alpine_component

def alpine_component
  "navItemComponent"
end

def alpine_data

def alpine_data
  alpine_encode({id: node.id, matchers: []})
end

def children

def children
  @children ||= node.sort.map { |node| render_item(node) }
end

def children?

def children?
  children.any?
end

def id

def id
  "#{nav_id}-#{node.id}"
end

def initialize(node, nav_id:, **html_attrs)

def initialize(node, nav_id:, **html_attrs)
  @node = node
  @nav_id = nav_id
  super(**html_attrs)
end

def left_pad

def left_pad
  depth * 12
end

def nav_icon

def nav_icon
  :folder
end

def render_item(node)

def render_item(node)
  item_class = (node.type == :directory) ? Nav::Directory::Component : Nav::Entity::Component
  lookbook_render item_class.new node, nav_id: nav_id
end