class Lookbook::PreviewsController

def inspector_data

def inspector_data
  return @inspector_data if @inspector_data.present?
  context_data = {
    preview_params: preview_params,
    path: params[:path],
  }
  example = @example
  preview = @preview
  preview.define_singleton_method(:params, proc {
    example.params
  })
  examples = target_examples.map do |example|
    render_args = @preview.render_args(example.name, params: preview_controller.params)
    has_template = render_args[:template] != "view_components/preview"
    output = preview_controller.process(:render_example_to_string, @preview, example.name)
    source = has_template ? example.template_source(render_args[:template]) : example.method_source
    source_lang = has_template ? example.template_lang(render_args[:template]) : example.lang
    
    example.define_singleton_method(:output, proc { output })
    example.define_singleton_method(:source, proc { source })
    example.define_singleton_method(:source_lang, proc { source_lang })
    example
  end
  @inspector_data ||= Lookbook::Store.new({
    context: context_data,
    preview: preview,
    examples: examples,
    components: preview.components,
    app: Lookbook
  })
end