module Pagy::ItemsExtra::FrontendAddOn

def pagy_items_selector_js(pagy, id: nil, item_name: nil)

Return the items selector HTML. For example "Show [20] items per page"
def pagy_items_selector_js(pagy, id: nil, item_name: nil)
  return '' unless pagy.vars[:items_extra]
  id           = %( id="#{id}") if id
  vars         = pagy.vars
  items        = vars[:items]
  vars[:items] = ITEMS_TOKEN
  url_token    = pagy_url_for(pagy, PAGE_TOKEN)
  vars[:items] = items # restore the items
  items_input = %(<input name="items" type="number" min="1" max="#{vars[:max_items]}" value="#{
                    items}" style="padding: 0; text-align: center; width: #{items.to_s.length + 1}rem;">#{JSTools::A_TAG})
  %(<span#{id} class="pagy items-selector-js" #{
      pagy_data(pagy, :selector, pagy.from, url_token)
    }><label>#{
      pagy_t('pagy.items_selector_js',
             item_name: item_name || pagy_t('pagy.item_name', count: items),
             items_input:,
             count: items)
    }</label></span>)
end