---
regenerate:                             true
exclude_from_search:                    true
---

{% capture cache %}

{% comment %}
 # -----------------------------------------------------------------------------
 # ~/assets/data/gemini-ui.html
 # Liquid PROCEDURE to generate the HTML (data) portion of the gemini-ui
 # by the J1 Gemini module
 #
 # Product/Info:
 # https://jekyll.one
 #
 # Copyright (C) 2023, 2024 Juergen Adams
 #
 # J1 Template is licensed under the MIT License.
 # See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
 # -----------------------------------------------------------------------------
 # Test data:
 #   liquid_var: {{ liquid_var | debug }}
 #   config: {{ config | debug }}
 # -----------------------------------------------------------------------------
{% endcomment %}

{% comment %} Liquid procedures
-------------------------------------------------------------------------------- {% endcomment %}

{% comment %} Set global settings
-------------------------------------------------------------------------------- {% endcomment %}
{% assign environment     = site.environment %}

{% comment %} Set config files
-------------------------------------------------------------------------------- {% endcomment %}
{% assign modules         = site.data.modules %}

{% comment %} Process YML config data
================================================================================ {% endcomment %}

{% comment %} Set config files
-------------------------------------------------------------------------------- {% endcomment %}
{% assign gemini_defaults = modules.defaults.gemini.defaults %}
{% assign gemini_settings = modules.gemini.settings %}

{% comment %} Set config options
-------------------------------------------------------------------------------- {% endcomment %}
{% assign gemini_options  = gemini_defaults | merge: gemini_settings %}

{% comment %} Detect prod mode
-------------------------------------------------------------------------------- {% endcomment %}
{% assign production = false %}
{% if environment == 'prod' or environment == 'production' %}
  {% assign production = true %}
{% endif %}


{% comment %} Main
================================================================================ {% endcomment %}
<!-- [INFO   ] [~/assets/data/translator.html                ] [ set meta data (robots) to exclude HTML datafiles from index ] -->
<head>
  <meta name="robots" content="noindex, nofollow">
</head>


{% comment %} Gemini UI
-------------------------------------------------------------------------------- {% endcomment %}

<!-- START UI container -->
<div id="gemini_ui_container" style="display: none">

    <div class="gallery-title mt-3">{{gemini_options.prompt.title}}</div>
    <div class="form-group">
      <textarea
        id="prompt"
        class="form-control mb-3"
        placeholder="{{gemini_options.prompt.placeholder}}"
        rows="{{gemini_options.prompt.size}}">
      </textarea>

      <button id="send" class="btn btn-primary" type="button">
        <span id="spinner" class="spinner-grow spinner-grow-sm" aria-hidden="true"></span>
        <span role="status">{{gemini_options.buttons.generate}}</span>
      </button>

      <button id="reset" type="button" class="btn btn-warning mt-1">{{gemini_options.buttons.reset}}</button>
    </div>

    <div id="response" class="mt-4 mb-7">
      <h3 id="result" class="mb-3 notoc speak2me-ignore">{{gemini_options.titles.result}}</h3>
      <div id="md_result"></div>
    </div>

    <!-- Modal Top Right -->
    <div id="errorModal"
      class="modal fade right"
      tabindex="-1"
      role="dialog"
      aria-labelledby="errorModalLabel" aria-hidden="true"
      data-keyboard="false"
      data-backdrop="static">
      <div class="modal-dialog modal-side modal-top-right modal-notify modal-danger" role="document">
        <!-- Content -->
        <div class="modal-content">
          <!-- Header -->
          <div class="modal-header">
            <p class="lead">{{gemini_options.titles.errorInfo}}</p>
            <!-- button type="button" class="btn close float-end" data-bs-dismiss="modal" aria-label="Close">
              <i class="mdi mdi-close mdi-dark mdi-48px"></i>
            </button -->
          </div>
          <!-- Body -->
          <div class="modal-body">
            <div class="text-center">
              <i class="mdi mdi-4x mdi-bug md-red mb-1"></i>
              <p id="modal_error">Error text placeholder</p>
            </div>
          </div>
          <!-- Footer -->
          <!-- div class="modal-footer justify-content-center">
            <a type="button" class="btn btn-primary mr-2">Yes, please</a>
            <a type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">No, thanks</a>
          </div -->
        </div>
        <!-- END Content -->
      </div>
    </div>
    <!-- END Side Modal Top Right Success -->

</div>
<!-- END UI container -->

{% comment %} END Gemini UI
-------------------------------------------------------------------------------- {% endcomment %}

{% endcapture %}

{% if production %}
  {% capture _LINE_FEED %}{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ cache | strip_html_comments }}{% else %}{% capture _content %}{{ cache | strip_html_comments }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ cache | strip_html_comments | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
{% else %}
  {{ cache | remove:'<html><body>' | remove:'</body></html>' | strip_empty_lines }}
{% endif %}
{% assign cache = nil %}