<% frame_id = local_assigns.fetch(:frame_id, nil)
  page_key = local_assigns.fetch(:page_key, pagy.options[:page_key] || "page")
  limit_key = local_assigns.fetch(:limit_key, pagy.options[:limit_key] || "limit")
  preserve_params = local_assigns.fetch(:preserve_params, {}).stringify_keys.except(page_key.to_s, limit_key.to_s)
  form_class = local_assigns.fetch(:form_class, "flex items-center")
  request_path = local_assigns.fetch(:request_path, request.path)
%>

<%= form_with url: request_path, method: :get, data: { turbo_frame: frame_id }, class: form_class, local: true do %>
  <% preserve_params.each do |k, v| %>
    <%= hidden_field_tag k, v %>
  <% end %>
  <%= hidden_field_tag limit_key, pagy.limit %>
  <label class="text-xs text-neutral-500 dark:text-neutral-300 mr-2">Jump to Page</label>
  <%= number_field_tag page_key, pagy.page, min: 1, max: pagy.pages, class: "w-fit rounded-l-md border border-black/10 bg-white pl-2 leading-7 text-sm dark:border-white/10 dark:bg-white/10 dark:text-white focus-visible:outline-neutral-600 dark:focus-visible:outline-neutral-200" %>
  <%= submit_tag "Go", class: "cursor-pointer rounded-r-md border border-l-0 border-black/10 bg-white px-2.5 py-1 text-sm font-medium text-neutral-800 hover:bg-neutral-50 dark:border-white/10 dark:bg-white/10 dark:text-white dark:hover:bg-white/20" %>
<% end %>
