<div class="flex grow flex-col w-full h-full"> <style> :root { --app-900-hover: #933100; --app-800-primary: #b53c00; --app-400: #e9c5b3; --app-300: #f8ece6; --app-200: #fbf5f2; --app-100: #fdfbfa; --app-opacity5: #b53c000d; /* Current app variables, for semantic colors */ --current-surface-app: var(--color-surface-apps-core); } </style> <div class="w-full lui-header-slot"> <div class="w-full w-full lui-dummy_slot text-[#78818a] text-primary-xs-bold leading-none"> Header </div> </div> <div class="flex grow flex-row overflow-hidden relative"> <turbo-frame id="lui-sidebar" target="lui-main-layout" data-controller="sidebar"> <aside class="lui-sidebar"> <div class="lui-sidebar__item-list"> <div id="home_looposui-sidebar-v1-singleitem" class="w-full" data-action="mouseleave->sidebar#hide mouseenter->sidebar#show"> <a data-action="mouseover->drawer#hide" data-turbo-action="advance" href="http://localhost:3100/lookbook/inspect/app_layout/with_title"> <div class="lui-sidebar__item " style=""> <icon class="lui-sidebar-item__icon fa-regular fa-house"></icon> <div class="lui-sidebar__item__short-title"> <p class="lui-sidebar__item__label">Home</p> </div> </div> </a></div> <div id="items_looposui-sidebar-v1-singleitem" class="w-full" data-action="mouseleave->sidebar#hide mouseenter->sidebar#show"> <a data-action="mouseover->drawer#hide" data-turbo-action="advance" href="/test"> <div class="lui-sidebar__item " style=""> <icon class="lui-sidebar-item__icon fa-regular fa-box"></icon> <div class="lui-sidebar__item__short-title"> <p class="lui-sidebar__item__label">Items</p> </div> </div> </a></div> <div class="w-full" data-action="mouseleave->sidebar#hide mouseenter->sidebar#show" data-id="services_looposui-sidebar-v1-draweritem-data-target-modal" > <a data-turbo-action="advance" href="#"> <div id=services_looposui-sidebar-v1-draweritem class="lui-sidebar__item lui-sidebar__item--active " style=""> <icon class="lui-sidebar-item__icon fa-regular fa-cubes"></icon> <div class="lui-sidebar__item__short-title"> <p class="lui-sidebar__item__label">Services</p> </div> </div> </a> <div class="hidden lui-sidebar__drawer"> <div class="lui-sidebar__drawer__header"> <div class="lui-sidebar__drawer__header-title"> <div> <icon class="lui-sidebar__drawer__icon lui-sidebar-item__icon fa-regular fa-cubes"></icon> </div> <div> Services </div> </div> <div class="lui-sidebar__drawer__header-description"> </div> </div> <div class="lui-sidebar__drawer__items"> <a class="lui-sidebar__drawer__entry lui-sidebar__drawer__entry--active " data-turbo-action="advance" href="/lookbook/inspect/layouts/app_layout/default"> This is Active </a><a class="lui-sidebar__drawer__entry " data-turbo-action="advance" href="/test"> Hover me </a><a class="lui-sidebar__drawer__entry lui-sidebar__drawer__entry--active lui-sidebar__drawer__entry--disabled" data-turbo-action="advance" href="#"> Disabled </a> </div> </div> </div> <div class="w-[64px] h-px bg-gray-500"> </div> <div class="w-full" data-action="mouseleave->sidebar#hide mouseenter->sidebar#show" data-id="catalog_looposui-sidebar-v1-draweritem-data-target-modal" > <a data-turbo-action="advance" href="#"> <div id=catalog_looposui-sidebar-v1-draweritem class="lui-sidebar__item " style=""> <icon class="lui-sidebar-item__icon fa-regular fa-folder-tree"></icon> <div class="lui-sidebar__item__short-title"> <p class="lui-sidebar__item__label">Catalog</p> </div> </div> </a> <div class="hidden lui-sidebar__drawer"> <div class="lui-sidebar__drawer__header"> <div class="lui-sidebar__drawer__header-title"> <div> <icon class="lui-sidebar__drawer__icon lui-sidebar-item__icon fa-regular fa-folder-tree"></icon> </div> <div> Catalog </div> </div> <div class="lui-sidebar__drawer__header-description"> </div> </div> <div class="lui-sidebar__drawer__items"> <a class="lui-sidebar__drawer__entry " data-turbo-action="advance" href="/test"> Catalog Overview </a><a class="lui-sidebar__drawer__entry " data-turbo-action="advance" href="/test"> Hover me </a><a class="lui-sidebar__drawer__entry lui-sidebar__drawer__entry--active lui-sidebar__drawer__entry--disabled" data-turbo-action="advance" href="#"> Disabled </a> </div> </div> </div> <div id="protocols_looposui-sidebar-v1-singleitem" class="w-full" data-action="mouseleave->sidebar#hide mouseenter->sidebar#show"> <a data-action="mouseover->drawer#hide" data-turbo-action="advance" href="/test"> <div class="lui-sidebar__item " style=""> <icon class="lui-sidebar-item__icon fa-regular fa-bars-staggered"></icon> <div class="lui-sidebar__item__short-title"> <p class="lui-sidebar__item__label">Protocols</p> </div> </div> </a></div> <div id="flows_looposui-sidebar-v1-singleitem" class="w-full" data-action="mouseleave->sidebar#hide mouseenter->sidebar#show"> <a data-action="mouseover->drawer#hide" data-turbo-action="advance" href="/test"> <div class="lui-sidebar__item " style=""> <icon class="lui-sidebar-item__icon fa-regular fa-timeline-arrow"></icon> <div class="lui-sidebar__item__short-title"> <p class="lui-sidebar__item__label">Flows</p> </div> </div> </a></div> <div id="scripts_looposui-sidebar-v1-singleitem" class="w-full" data-action="mouseleave->sidebar#hide mouseenter->sidebar#show"> <a data-action="mouseover->drawer#hide" data-turbo-action="advance" href="/test"> <div class="lui-sidebar__item " style=""> <icon class="lui-sidebar-item__icon fa-regular fa-rectangle-code"></icon> <div class="lui-sidebar__item__short-title"> <p class="lui-sidebar__item__label">Scripts</p> </div> </div> </a></div> <div class="w-[64px] h-px bg-gray-500"> </div> <div id="marketing_looposui-sidebar-v1-singleitem" class="w-full" data-action="mouseleave->sidebar#hide mouseenter->sidebar#show"> <a data-action="mouseover->drawer#hide" data-turbo-action="advance" href="/test"> <div class="lui-sidebar__item " style=""> <icon class="lui-sidebar-item__icon fa-regular fa-bullhorn"></icon> <div class="lui-sidebar__item__short-title"> <p class="lui-sidebar__item__label">Marketing</p> </div> </div> </a></div> <div id="impact_looposui-sidebar-v1-singleitem" class="w-full" data-action="mouseleave->sidebar#hide mouseenter->sidebar#show"> <a data-action="mouseover->drawer#hide" data-turbo-action="advance" href="/test"> <div class="lui-sidebar__item " style="color: #40A77F; border-color: #40A77F;"> <img class="h-4" src="/assets/loopos-icon-7668bd7d.png" /> <div class="lui-sidebar__item__short-title"> <p class="lui-sidebar__item__label">Impact</p> </div> </div> </a></div> </div> </aside> </turbo-frame> <div class="h-full flex flex-col absolute right-0" style="width: calc(100% - var(--sidebar-width)); transition: width 25ms ease-in;"> <nav class="flex w-full min-h-8 box-content py-1.5 pr-4 pl-6 items-center space-between bg-general-gray-100 border-b border-gray-200"> <form data-turbo-frame="lui-main-layout" action="#" accept-charset="UTF-8" method="get"> <div class="lui-select-bar__selector"> <div class="lui-form_entry lui-form_entry--horizontal"> <div class="lui-form_entry__input"> <div id="looposui-inputs-select_connected_cores_5793709857" data-controller="input-select" data-input-select-input-outlet="#looposui-inputs-select_connected_cores_5793709857 .lui-inner-input" data-input-select-mode-value="autosubmit"> <div class="lui-input-select lui-input-select--autosubmit relative"> <div data-controller="input" data-input-open-actions-value="false" class="lui-inner-input relative flex gap-2" data-input-original-input-value="Option 1" data-input-mode-value="autosubmit" data-input-form-value=""> <div class="w-full flex flex-col"> <span class="lui-input "> <input name="connected_cores" type="text" value="Option 1" placeholder="Select.." class="lui-input__input" mode="autosubmit" contentEditable="true" data-input-target="input" data-action="input->input#onChange change->input#onChange" data-input-select-target="textInput" readonly="readonly"> <span class="lui-input__addon-right"> <span class="flex flex-row items-center gap-2"> <i class=" fa-solid fa-xmark cursor-pointer text-gray-400 lui-input-select__clear" data-input-select-target="clearButton" data-action="click->input-select#clear"> </i> <div data-input-select-target="icon"> <div class="lui-icon h-[12px] w-[12px]"> <i class="fa-regular fa-chevron-down lui-icon__icon" style="font-size: 12px; color: #212529;"></i> </div> </div> </span> </span> <span class="lui-input__spinner"> <i class="fa-regular fa-spinner"></i> </span> </span> </div> <span class="lui-inner-input__actions opacity-0 flex items-center gap-1 h-fit" data-input-target="actions"> <button class="lui-button lui-button--neutral--secondary lui-button--size-tiny w-fit w-fit" data-controller="lui--button" data-input-target="cancel" data-action="click->input#handleClose" type="button" disabled="disabled"> <i class="lui-button__icon lui-button__icon--tiny fa-regular fa-xmark" data-lui--button-target="leadingIcon"></i> </button> <button class="lui-button lui-button--success--secondary lui-button--size-tiny w-fit w-fit" data-controller="lui--button" data-input-target="submit" data-action="click->input#setLoading" type="submit" disabled="disabled"> <i class="lui-button__icon lui-button__icon--tiny fa-regular fa-check" data-lui--button-target="leadingIcon"></i> </button> </span> </div> <div data-input-select-target="menu" class="lui-input-select__wrapper"> <div class="lui-input-select__options" role="listbox"> <div class="lui-input-select__option" role="option" data-input-select-target="option" data-text="Option 1" data-value="option_1"> <div class="lui-input-select__option-wrapper"> <div class="lui-input-select__option-text"> <span role="text">Option 1</span> </div> <i class="fa-regular fa-check " data-input-select-target="check"></i> </div> </div> <div class="lui-input-select__option" role="option" data-input-select-target="option" data-text="Option 2" data-value="option_2"> <div class="lui-input-select__option-wrapper"> <div class="lui-input-select__option-text"> <span role="text">Option 2</span> </div> <i class="fa-regular fa-check hidden!" data-input-select-target="check"></i> </div> </div> <div class="lui-input-select__option" role="option" data-input-select-target="option" data-text="Option 3" data-value="option_3"> <div class="lui-input-select__option-wrapper"> <div class="lui-input-select__option-text"> <span role="text">Option 3</span> </div> <i class="fa-regular fa-check hidden!" data-input-select-target="check"></i> </div> </div> </div> </div> </div> <input type="hidden" name="connected_cores" id="connected_cores" value="Option 1" data-input-select-target="hiddenInput" autocomplete="off" /> </div> </div> <div class="lui-form_entry__label-wrapper pt-2" style=""> <span class="lui-form_entry__label"><span class="text-app-800-primary"><icon class="fa-regular fa-map-pin mr-1"></icon>Core:</span></span> <span class="lui-form_entry__required"></span> <div class="lui-form_entry__icon"> </div> </div> </div> </div> </form> </nav> <turbo-frame data-turbo-action="advance" id="lui-main-layout" data-turbo-frame="lui-main-layout" class="min-h-0 " style=""> <div class="lui-layout-loading" style="display: none;"> <div class="lui-action_bar"> <div class="lui-action_bar__left w-1/4"> <div class="lui-skeleton__bar"></div> </div> <div class="lui-action_bar__right w-1/4"> <div class="lui-skeleton__bar"></div> </div> </div> <div class="lui-show-layout"> <div class="lui-skeleton "> <div class="lui-skeleton__item"> <div class="lui-skeleton__bar" style="width: 100%"></div> </div> <div class="lui-skeleton__item"> <div class="lui-skeleton__bar" style="width: 100%"></div> </div> <div class="lui-skeleton__item"> <div class="lui-skeleton__bar" style="width: 100%"></div> </div> <div class="lui-skeleton__item"> <div class="lui-skeleton__bar" style="width: 100%"></div> </div> <div class="lui-skeleton__footer"> <div class="lui-skeleton__bar--footer"></div> <div class="lui-skeleton__bar--footer lui-skeleton__bar--footer--invisible"></div> </div> </div> <div class="lui-skeleton lui-skeleton--full"> <div class="lui-skeleton__item"> <div class="lui-skeleton__bar" style="width: 100%"></div> </div> <div class="lui-skeleton__item"> <div class="lui-skeleton__bar" style="width: 100%"></div> </div> <div class="lui-skeleton__item"> <div class="lui-skeleton__bar" style="width: 100%"></div> </div> <div class="lui-skeleton__item"> <div class="lui-skeleton__bar" style="width: 100%"></div> </div> <div class="lui-skeleton__footer"> <div class="lui-skeleton__bar--footer"></div> <div class="lui-skeleton__bar--footer lui-skeleton__bar--footer--invisible"></div> </div> </div> <div class="lui-skeleton lui-skeleton--full"> <div class="lui-skeleton__item"> <div class="lui-skeleton__bar" style="width: 100%"></div> </div> <div class="lui-skeleton__item"> <div class="lui-skeleton__bar" style="width: 100%"></div> </div> <div class="lui-skeleton__item"> <div class="lui-skeleton__bar" style="width: 100%"></div> </div> <div class="lui-skeleton__item"> <div class="lui-skeleton__bar" style="width: 100%"></div> </div> <div class="lui-skeleton__footer"> <div class="lui-skeleton__bar--footer"></div> <div class="lui-skeleton__bar--footer lui-skeleton__bar--footer--invisible"></div> </div> </div> </div> </div> <div class="lui-main_layout__content" data-skeleton-loading="true"> <div class="flex flex-col w-full h-full"> <div class="lui-action_bar"> <div class="lui-breadcrumb_list"> <a class="lui-breadcrumb_list__breadcrumb" data-turbo-action="advance" href="#">link</a> <a class="lui-breadcrumb_list__breadcrumb" data-turbo-action="advance" href="#">link</a> <a class="lui-breadcrumb_list__breadcrumb" data-turbo-action="advance" href="#">link</a> </div> <div class="lui-action_buttons"> <div class="lui-action_buttons__button-group"> <button class="lui-button lui-button--neutral--primary lui-button--size-small w-fit w-fit" data-controller="lui--button"> <div class="lui-tooltip hidden" data-controller="tooltips" data-tooltips-tippy-target-id-value="" data-tooltips-position-value="top" data-tooltips-interactive-value="false" > <div class="lui-tooltip__title"> Example tooltip </div> </div> <i class="lui-button__icon lui-button__icon--small fa-regular fa-plus-large" data-lui--button-target="leadingIcon"></i> <span class="lui-button__text" data-lui--button-target="text"> Text </span> </button> <button class="lui-button lui-button--neutral--primary lui-button--size-small w-fit w-fit" data-controller="lui--button"> <div class="lui-tooltip hidden" data-controller="tooltips" data-tooltips-tippy-target-id-value="" data-tooltips-position-value="top" data-tooltips-interactive-value="false" > <div class="lui-tooltip__title"> Example tooltip </div> </div> <i class="lui-button__icon lui-button__icon--small fa-regular fa-plus-large" data-lui--button-target="leadingIcon"></i> <span class="lui-button__text" data-lui--button-target="text"> Text </span> </button> <button class="lui-button lui-button--neutral--tertiary lui-button--size-small w-fit w-fit" data-controller="lui--button"> <div class="lui-tooltip hidden" data-controller="tooltips" data-tooltips-tippy-target-id-value="" data-tooltips-position-value="top" data-tooltips-interactive-value="false" > <div class="lui-tooltip__title"> Example tooltip </div> </div> <i class="lui-button__icon lui-button__icon--small fa-regular fa-plus-large" data-lui--button-target="leadingIcon"></i> <span class="lui-button__text" data-lui--button-target="text"> Text </span> </button> <button class="lui-button lui-button--neutral--tertiary lui-button--size-small w-fit w-fit" data-controller="lui--button"> <div class="lui-tooltip hidden" data-controller="tooltips" data-tooltips-tippy-target-id-value="" data-tooltips-position-value="top" data-tooltips-interactive-value="false" > <div class="lui-tooltip__title"> Example tooltip </div> </div> <i class="lui-button__icon lui-button__icon--small fa-regular fa-plus-large" data-lui--button-target="leadingIcon"></i> <span class="lui-button__text" data-lui--button-target="text"> Text </span> </button> </div> <div class="lui-action_buttons__button-group"> <button class="lui-button lui-button--neutral--tertiary lui-button--size-small w-fit w-fit" data-controller="lui--button"> <div class="lui-tooltip hidden" data-controller="tooltips" data-tooltips-tippy-target-id-value="" data-tooltips-position-value="top" data-tooltips-interactive-value="false" > <div class="lui-tooltip__title"> Example tooltip </div> </div> <i class="lui-button__icon lui-button__icon--small fa-regular fa-play-pause" data-lui--button-target="leadingIcon"></i> </button> <button class="lui-button lui-button--neutral--tertiary lui-button--size-small w-fit w-fit" data-controller="lui--button"> <div class="lui-tooltip hidden" data-controller="tooltips" data-tooltips-tippy-target-id-value="" data-tooltips-position-value="top" data-tooltips-interactive-value="false" > <div class="lui-tooltip__title"> Example tooltip </div> </div> <i class="lui-button__icon lui-button__icon--small fa-regular fa-heart" data-lui--button-target="leadingIcon"></i> </button> <button class="lui-button lui-button--neutral--tertiary lui-button--size-small w-fit w-fit" data-controller="lui--button"> <div class="lui-tooltip hidden" data-controller="tooltips" data-tooltips-tippy-target-id-value="" data-tooltips-position-value="top" data-tooltips-interactive-value="false" > <div class="lui-tooltip__title"> Example tooltip </div> </div> <i class="lui-button__icon lui-button__icon--small fa-regular fa-copy" data-lui--button-target="leadingIcon"></i> </button> <button class="lui-button lui-button--neutral--tertiary lui-button--size-small w-fit w-fit" data-controller="lui--button"> <div class="lui-tooltip hidden" data-controller="tooltips" data-tooltips-tippy-target-id-value="" data-tooltips-position-value="top" data-tooltips-interactive-value="false" > <div class="lui-tooltip__title"> Example tooltip </div> </div> <i class="lui-button__icon lui-button__icon--small fa-regular fa-gear" data-lui--button-target="leadingIcon"></i> </button> <button class="lui-button lui-button--neutral--tertiary lui-button--size-small w-fit w-fit" data-controller="lui--button"> <div class="lui-tooltip hidden" data-controller="tooltips" data-tooltips-tippy-target-id-value="" data-tooltips-position-value="top" data-tooltips-interactive-value="false" > <div class="lui-tooltip__title"> Example tooltip </div> </div> <i class="lui-button__icon lui-button__icon--small fa-regular fa-trash" data-lui--button-target="leadingIcon"></i> </button> </div> </div> </div> <div class="lui-show-layout relative"> <turbo-frame id="lui-show-header" class="lui-show-header"> <div class="loopui-form-layout__main-info"> <div class="loopui-form-layout__details"> <div class="loopui-form-layout__details-section"> <div class="loopui-form-layout__info-section"> <div class="loopui-form-layout__line-wrapper"> <span class="lui-label" style="color: #b53c00; background-color: #fbf5f2;"> <i class="fa-regular fa-tag lui-label__icon"></i> <span class="lui-label__text">text</span> </span> <span class="lui-label" style="color: #006053; background-color: #f2f7f6;"> <i class="fa-regular fa-tag lui-label__icon"></i> <span class="lui-label__text">text</span> </span> </div> <div class="loopui-form-layout__middle-wrapper--small"> <div class="flex"> <h1 class="lui-show-header__title">Header Title</h1> <div class="flex gap-2 ml-2"> <span class="lui-label" style="color: #0b6ef9; background-color: #f2f7ff;"> <span class="lui-label__text">test</span> </span> <span class="lui-label" style="color: #df8620; background-color: #fdf9f4;"> <span class="lui-label__text">state</span> </span> <div class="lui-double-state-label"> <span class="lui-label" style="color: #212529; background-color: #ECEFF2;"> <span class="lui-label__text">test</span> </span> <span class="lui-label" style="color: #1a883f; background-color: #f3f9f5;"> <i class="fa-regular fa-tag lui-label__icon"></i> <span class="lui-label__text">test</span> </span> </div> </div> </div> <div class="loopui-form-layout__line-wrapper"> <div class="pl-1"> <div class="w-full w-full lui-dummy_slot text-[#78818a] text-primary-xs-bold leading-none"> Details slot </div> </div> </div> </div> <div class="loopui-form-layout__middle-wrapper"> <div class="loopui-form-layout__line-wrapper"> <div class="pl-1"> <div class="w-full w-full lui-dummy_slot text-[#78818a] text-primary-xs-bold leading-none"> Bottom side slot </div> </div> </div> </div> </div> <div class="loopui-form-layout__right"> <div class="w-full w-full lui-dummy_slot text-[#78818a] text-primary-xs-bold leading-none"> Right side slot </div> </div> </div> </div> </div> </turbo-frame> <div class="lui-show-layout__highlight"> <div class="w-full h-[150px] lui-dummy_slot text-[#78818a] text-primary-xs-bold leading-none"> Highlight Content </div> </div> <main class="lui-show-layout__content"> <div class="w-full h-[300px] lui-dummy_slot text-[#78818a] text-primary-xs-bold leading-none"> Content slot </div> </main> <turbo-frame class="lui-show-layout__drawer_wrapper" id="lui-main-layout-drawer_bar" class="fixed top-[106px] right-0" data-controller="drawer-bar"> </turbo-frame> </div> </div> </div> </turbo-frame> <turbo-frame id="lui-main-layout-actions"> </turbo-frame> <turbo-cable-stream-source channel="Turbo::StreamsChannel" signed-stream-name="InRvYXN0ZXJzIg==--7c1405336eb46a24b1b64d0d30019fb9fce53bc08bd9a1c5f30369d28862a109"></turbo-cable-stream-source> <div id="lui-toasters" popover="manual" data-controller="toasters" data-toasters-new-toaster-url-value=""> </div> </div> </div> <turbo-cable-stream-source channel="Turbo::StreamsChannel" signed-stream-name="Imx1aS1hcHAtbGF5b3V0Ig==--68c278ca6b5bb21c56de61bcb0396c382404ae20f6ce64a43d737572f6ed266f"></turbo-cable-stream-source></div>No Usage documentation to display.
<% options = (params[:number_of_options] || 3).to_i.times.map do |i| { value: "option_#{i + 1}", text: "Option #{i + 1}" } end name = "connected_cores" value = params.dig(name) || options.first&.fetch(:value) show_select_bar = params.key?(:show_select_bar) ? params[:show_select_bar] : true%><%= render LooposUi::AppLayout.new do |app_layout| %> <% app_layout.with_select_bar do %> <%= form_tag("#", method: :get, data: { turbo_frame: LooposUi::MainLayout::TURBO_FRAME_ID }) do %> <%= render LooposUi::SelectBar::Selector.new(name: name, options: options, value: value) %> <% end %> <% end if show_select_bar %> <% app_layout.with_header do %> <%= render LooposUi::DummySlot.new(text: "Header") %> <% end %> <%= render LooposUi::MainLayout.new do |main_layout| %> <%= render LooposUi::ShowLayout.new do |layout| %> <% layout.with_action_bar do |ab| %> <% ab.with_breadcrumbs_list do |breadcrumbs| %> <%= breadcrumbs.with_breadcrumb(href: "#") { "link"} %> <%= breadcrumbs.with_breadcrumb(href: "#") { "link"} %> <%= breadcrumbs.with_breadcrumb(href: "#") { "link"} %> <% end %> <% attrs = {size: :small, type: :tertiary, kind: :neutral, tooltip_text: "Example tooltip"} %> <% ab.with_action_buttons do |buttons| %> <% buttons.with_button_group do |g| %> <% g.with_button(icon: :plus_large, text: "Text", **attrs, type: :primary) %> <% g.with_button(icon: :plus_large, text: "Text", **attrs, type: :primary) %> <% g.with_button(icon: :plus_large, text: "Text", **attrs) %> <% g.with_button(icon: :plus_large, text: "Text", **attrs) %> <% end %> <% buttons.with_button_group do |g| %> <% g.with_button(icon: :play_pause, **attrs) %> <% g.with_button(icon: :heart, **attrs) %> <% g.with_button(icon: :copy, **attrs) %> <% g.with_button(icon: :gear, **attrs) %> <% g.with_button(icon: :trash, **attrs) %> <% end %> <% end %> <% end %> <% layout.with_header(title: params["connected_cores"] || "Header Title") do |header| %> <% header.with_token do %> <%= render LooposUi::CounterLabel.new(text: "text", icon: "fa-regular fa-tag") %> <% end %> <% header.with_token do %> <%= render LooposUi::CounterLabel.new(text: "text", icon: "fa-regular fa-tag", color: :manager) %> <% end %> <% header.with_title_label_counter(text: "test", color: :hubs) %> <% header.with_title_label_state(text: "state", color: :warning) %> <% header.with_title_label_double_state( leading_text: "test", leading_color: :submission, trailing_text: "test", trailing_color: :success, light: true, icon: "fa-regular fa-tag" )%> <%= header.with_details do %> <%= render LooposUi::DummySlot.new(text: "Details slot") %> <% end %> <%= header.with_bottom_side do %> <%= render LooposUi::DummySlot.new(text: "Bottom side slot") %> <% end %> <% header.with_right_side do %> <%= render LooposUi::DummySlot.new(text: "Right side slot") %> <% end %> <% end %> <% layout.with_highlight do %> <%= render LooposUi::DummySlot.new(text: "Highlight Content", classes: "h-[150px]") %> <% end %> <%= render LooposUi::DummySlot.new(text: "Content slot", classes: "h-[300px]") %> <% end %> <% end %><% end %>No notes provided.
| Param | Description | Input |
|---|---|---|
|
— |
|
|
|
Number of options to show in the select bar |
|
AppLayout
You can use AppLayoutComponent (deprecated) or AppLayout as the name of the component. It's the top-level component that wraps the entire application layout. By default, will render the sidebar using the config from the initializer.
Slots
header- Open slot for the header. Each app must render the header provided by the Manager in this slot.sidebar- Typed slot (LooposUi::Sidebar). If omitted, the app will render the sidebar using the config (preferred way).select_bar- Typed slot (LooposUi::AppLayout::SelectBar). Any content may be passed in.
The most common usage for the sidebar will be something like this:
<%= render LooposUi::AppLayout.new do |app_layout| %> <% app_layout.with_select_bar do %> <%= form_tag("#", method: :get, data: { turbo_frame: LooposUi::MainLayout::TURBO_FRAME_ID }) do %> <%= render LooposUi::SelectBar::Selector.new(name: name, options: options, value: value) %> <% end %> <% end if show_select_bar %> <%# ... >Note: The select bar will only render if it's contents have a Selector (see above) and the selector has at least two options to choose from.
In this scenario, we use the LooposUi::SelectBar::Selector component wrapped in a form tag.
The form is mandatory, and the Selector component will always submit the form when the value changes.
The options argument is a list of hashes with value and text Eg. [{ value: "core1", text: "Core 1" }]
The value is the value of the current option, and must be one of the options.
The name is the name of the input field, and will be used to submit the form.
Updating turbo-frames
The index layout has a turbo-frame for the header and another for the body. The content of these components can be updated individually from the app's side. To do this, the user will need to refer the turbo-frame id to update. Example:
- In this example the turbo-frame being updated is the indexheader with the turboframe id "lui-index-header";
- The controller being used is the turboframelayoutcontroller.rb and the method being called is named "change_header";
<%= link_to("Click here to change IndexHeader", change_header_turboframe_layout_index_path, data: {turbo_frame: 'lui-index-header'}) %>