%= render_component_tag id: id,
class: "border-b border-lookbook-divider rounded-md overflow-hidden",
cloak: true do %>
<%= lookbook_render :toolbar,
class: "border border-b-0 border-lookbook-divider",
style: "border-top-left-radius: 6px; border-top-right-radius: 6px;" do |toolbar| %>
<% toolbar.with_section padded: true do %>
<%= target.preview.label %>
<% if scenarios.many? %>
<%= select_tag("target", options_for_select(scenario_select_options, helpers.lookbook_embed_path(target.lookup_path)), "x-model": "targetPath", class: "!ml-2 compact") %>
<% else %>
(<%= target.label %>)
<% end %>
<% end %>
<% toolbar.with_section align: :right, class: "flex-none" do %>
<% if display_option_controls? && dynamic_display_options.any? %>
<%= lookbook_render "display_options/editor" do |editor| %>
<% dynamic_display_options.each do |key, opts| %>
<% editor.with_field name: key, opts: opts, value: static_display_options[key] %>
<% end %>
<% end %>
<% end %>
<% end %>
<% if actions.any? %>
<% toolbar.with_section divide: :left do %>
<%= lookbook_render :button_group do |group| %>
<% if display_action?(:inspect) %>
<% group.with_button icon: :eye,
href: helpers.lookbook_inspect_url(target.lookup_path, params),
tooltip: "View in Inspector",
target: "_top" %>
<% end %>
<% if display_action?(:open) %>
<% group.with_button icon: :external_link,
href: helpers.lookbook_preview_url(target.lookup_path, params),
tooltip: "Open in new window",
target: "_blank" %>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>
style="border-bottom-left-radius: 6px; border-bottom-right-radius: 6px; overflow: hidden;"
<% end %>>
<%= lookbook_render :viewport,
iframe_id: "#{id}-viewport",
src: helpers.lookbook_preview_path(target.lookup_path, request.query_parameters.merge(lookbook_timestamp: Time.now, lookbook_embed: true)),
alpine_data: "store",
resize_height: false,
class: "mb-[-2px] transition-[height] duration-150",
":style": "`height: ${viewportCssHeight}`"
%>
<% if drawer? %>
<%= lookbook_render :toolbar, id: "#{id}-drawer-toolbar" do |toolbar| %>
<% toolbar.with_section do %>
<%= lookbook_render :tabs, alpine_data: "store", id: "#{id}-drawer-tabs" do |tabs| %>
<%= panels.each do |panel| %>
<% tabs.with_tab name: panel.name,
label: panel.label,
hotkey: panel.hotkey,
disabled: panel.disabled %>
<% end %>
<% end %>
<% end %>
<% toolbar.with_section align: :right, class: "flex-none relative z-10" do %>
<%= lookbook_render :button_group do |group| %>
<%= panels.select { |p| !p.disabled && p.copy }.each do |panel| %>
<% group.with_button id: "copy-panel-contents-button-#{panel.name}",
icon: :copy,
tooltip: "Copy panel contents",
copy: !!panel.copy,
"x-show": "store.activeTab === '#{panel.name}'",
cloak: true do %>
<%= panel.copy ? panel.copy : "" %>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>
<%= lookbook_render :tab_panels, alpine_data: "store", id: "{id}-drawer-panels" do |tabs| %>
<% panels.each do |panel| %>
<% tabs.with_panel name: panel.name do %>
<%= lookbook_render :inspector_panel, name: panel.name do %>
<%= render panel.partial, **data, panel: panel, **panel.locals %>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>