imdhemy-jekyll-theme 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 845bdb2101f37d892526822d4f1c02095273edc124f76233250c59e41cd27076
4
- data.tar.gz: 978d04a00788d5689721b15c12ed14ee31e3459cf74394fdb4529a271196300c
3
+ metadata.gz: 3cb7114b109be9daf9d9e72e0d0305088f175e3a10028a8ac0c46a4141158341
4
+ data.tar.gz: 8dccf5c62b3b3e216542c12548170f3441ef730829395a88bcdbde6d55397290
5
5
  SHA512:
6
- metadata.gz: 71a11c8d9f14ab2557e7493c4da6526221f5ad88188bebbaa6f670d705880c4986cfb5372ac63ec80877fba35747851475e2c1946b23fc2a369c411b05fc6f9b
7
- data.tar.gz: a27341ad92998af3c41012b145555228614449b374a1603b8f3d5eeca2e7078c22bf1d38527ef53ccae703e4e7c982046ed7e99398ce596357937e53d99b5d45
6
+ metadata.gz: 2950f521c2af9398134e24c5726055c922a30e6a9f15bce09618fa2afa45597ee90c1389d0400ae16ecf7f56228bc914eb6eefe8a0e4ae5b825eceae1508d84a
7
+ data.tar.gz: 2f176cdba50a9d7dda2843025ae99d3cae93ac8f1a23b8352e0abf5406b37fe9e5216ab78deb2df83aaee1849bec3b13450e833a0179dc453b00bceedcbc95c2
@@ -1,6 +1,10 @@
1
1
  <header class="site-header" id="main-header">
2
2
  <div class="site-header__container">
3
3
  <div class="site-header__inner">
4
+ {% assign search_enabled = true %}
5
+ {% if site.theme_search.enabled == false %}
6
+ {% assign search_enabled = false %}
7
+ {% endif %}
4
8
  <!-- begin logo -->
5
9
  <div class="site-header__brand">
6
10
  <a href="{{ site.baseurl }}/" class="site-logo">
@@ -10,13 +14,6 @@
10
14
  <!-- end logo -->
11
15
  <!-- begin right part -->
12
16
  <div class="site-header__actions">
13
- <div class="site-header__mobile-toggle-wrap">
14
- <button type="button" class="site-header__toggle" data-target="#mobile-nav" aria-controls="mobile-nav"
15
- aria-expanded="false" aria-label="Toggle navigation menu">
16
- <ion-icon name="menu-outline"></ion-icon>
17
- </button>
18
- </div>
19
-
20
17
  <nav class="site-header__desktop-nav" aria-label="Primary navigation">
21
18
  <ul class="site-nav-list">
22
19
  {% assign current_path = page.url | default: "/" | split: "?" | first | replace: "index.html", "" | replace: ".html", "" %}
@@ -40,6 +37,17 @@
40
37
  {% endfor %}
41
38
  </ul>
42
39
  </nav>
40
+
41
+ {% if search_enabled %}
42
+ {% include site-search.html variant="desktop" %}
43
+ {% endif %}
44
+
45
+ <div class="site-header__mobile-toggle-wrap">
46
+ <button type="button" class="site-header__toggle" data-target="#mobile-nav" aria-controls="mobile-nav"
47
+ aria-expanded="false" aria-label="Toggle navigation menu">
48
+ <ion-icon name="menu-outline"></ion-icon>
49
+ </button>
50
+ </div>
43
51
  <!-- end right part -->
44
52
  </div>
45
53
  <!-- begin mobile nav -->
@@ -47,6 +55,9 @@
47
55
  class="site-mobile-nav is-hidden"
48
56
  aria-label="Mobile navigation">
49
57
  <div class="site-mobile-nav__inner">
58
+ {% if search_enabled %}
59
+ {% include site-search.html variant="mobile" %}
60
+ {% endif %}
50
61
  <ul class="site-mobile-nav__list">
51
62
  {% assign current_path = page.url | default: "/" | split: "?" | first | replace: "index.html", "" | replace: ".html", "" %}
52
63
  {% assign current_norm = current_path | append: "/" | replace: "//", "/" %}
@@ -0,0 +1,66 @@
1
+ {% assign search_placeholder = site.theme_text.search_placeholder | default: "Search" %}
2
+ {% assign search_clear_label = site.theme_text.search_clear_label | default: "Clear search" %}
3
+ {% assign search_submit_label = site.theme_text.search_submit_label | default: "Search site content" %}
4
+ {% assign search_idle_text = site.theme_text.search_idle_text | default: "Start typing to search the site." %}
5
+ {% assign search_too_short_text = site.theme_text.search_too_short_text | default: "Type at least %d characters to search." %}
6
+ {% assign search_loading_text = site.theme_text.search_loading_text | default: "Loading search index..." %}
7
+ {% assign search_empty_text = site.theme_text.search_empty_text | default: "No results found." %}
8
+ {% assign search_error_text = site.theme_text.search_error_text | default: "Search is unavailable right now." %}
9
+ {% assign variant = include.variant | default: "desktop" %}
10
+ {% assign max_results = site.theme_search.max_results | default: 8 %}
11
+ {% assign min_query_length = site.theme_search.min_query_length | default: 2 %}
12
+ {% assign content_preview_length = site.theme_search.content_preview_length | default: 140 %}
13
+ {% assign root_class = "site-search" %}
14
+ {% if variant == "mobile" %}
15
+ {% assign root_class = root_class | append: " site-search--mobile" %}
16
+ {% else %}
17
+ {% assign root_class = root_class | append: " site-search--desktop" %}
18
+ {% endif %}
19
+ {% assign input_id = "site-search-input-" | append: variant %}
20
+ {% assign panel_id = "site-search-panel-" | append: variant %}
21
+ {% assign status_id = "site-search-status-" | append: variant %}
22
+
23
+ <section class="{{ root_class }}"
24
+ data-search-root
25
+ data-search-url="{{ '/assets/search.json' | relative_url }}"
26
+ data-search-max-results="{{ max_results }}"
27
+ data-search-min-query-length="{{ min_query_length }}"
28
+ data-search-content-preview-length="{{ content_preview_length }}"
29
+ data-search-idle-text="{{ search_idle_text }}"
30
+ data-search-too-short-text="{{ search_too_short_text }}"
31
+ data-search-loading-text="{{ search_loading_text }}"
32
+ data-search-empty-text="{{ search_empty_text }}"
33
+ data-search-error-text="{{ search_error_text }}">
34
+ <form class="site-search__form" role="search" action="{{ '/assets/search.json' | relative_url }}" onsubmit="return false;">
35
+ <label class="site-search__label" for="{{ input_id }}">Search</label>
36
+ <div class="site-search__field-wrap">
37
+ <ion-icon class="site-search__icon" name="search-outline" aria-hidden="true"></ion-icon>
38
+ <input id="{{ input_id }}"
39
+ class="site-search__input"
40
+ type="search"
41
+ name="q"
42
+ placeholder="{{ search_placeholder }}"
43
+ autocomplete="off"
44
+ spellcheck="false"
45
+ aria-controls="{{ panel_id }}"
46
+ aria-expanded="false"
47
+ aria-describedby="{{ status_id }}"
48
+ data-search-input>
49
+ <button type="button"
50
+ class="site-search__clear"
51
+ aria-label="{{ search_clear_label }}"
52
+ data-search-clear
53
+ hidden>
54
+ <span aria-hidden="true">Clear</span>
55
+ </button>
56
+ <button type="submit" class="site-search__submit" aria-label="{{ search_submit_label }}">
57
+ <ion-icon name="search-outline" aria-hidden="true"></ion-icon>
58
+ </button>
59
+ </div>
60
+ </form>
61
+
62
+ <div id="{{ panel_id }}" class="site-search__panel" data-search-panel hidden>
63
+ <p id="{{ status_id }}" class="site-search__status" data-search-status>{{ search_idle_text }}</p>
64
+ <ul class="site-search__results" data-search-results></ul>
65
+ </div>
66
+ </section>
@@ -71,6 +71,7 @@
71
71
  .site-header__inner {
72
72
  display: flex;
73
73
  align-items: center;
74
+ gap: 1rem;
74
75
  padding: 1.25rem 0;
75
76
  }
76
77
 
@@ -79,6 +80,13 @@
79
80
  flex: 1 1 0;
80
81
  }
81
82
 
83
+ .site-header__actions {
84
+ display: flex;
85
+ align-items: center;
86
+ justify-content: flex-end;
87
+ gap: 0.75rem;
88
+ }
89
+
82
90
  .site-header__mobile-toggle-wrap {
83
91
  display: flex;
84
92
  justify-content: flex-end;
@@ -119,6 +127,180 @@
119
127
  display: none;
120
128
  }
121
129
 
130
+ .site-search {
131
+ position: relative;
132
+ }
133
+
134
+ .site-search--desktop {
135
+ display: none;
136
+ }
137
+
138
+ .site-search__label {
139
+ position: absolute;
140
+ width: 1px;
141
+ height: 1px;
142
+ padding: 0;
143
+ margin: -1px;
144
+ overflow: hidden;
145
+ clip: rect(0, 0, 0, 0);
146
+ white-space: nowrap;
147
+ border: 0;
148
+ }
149
+
150
+ .site-search__form {
151
+ margin: 0;
152
+ }
153
+
154
+ .site-search__field-wrap {
155
+ position: relative;
156
+ display: flex;
157
+ align-items: center;
158
+ }
159
+
160
+ .site-search__icon {
161
+ position: absolute;
162
+ left: 0.9rem;
163
+ font-size: 1rem;
164
+ color: var(--color-muted);
165
+ pointer-events: none;
166
+ }
167
+
168
+ .site-search__input {
169
+ width: 100%;
170
+ min-height: 2.75rem;
171
+ padding: 0.7rem 6rem 0.7rem 2.55rem;
172
+ border: 1px solid color-mix(in srgb, var(--color-border) 85%, #ffffff 15%);
173
+ border-radius: 999px;
174
+ font: inherit;
175
+ color: var(--color-text);
176
+ background: color-mix(in srgb, var(--color-surface) 90%, var(--color-brand-soft) 10%);
177
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
178
+ }
179
+
180
+ .site-search__input::placeholder {
181
+ color: color-mix(in srgb, var(--color-muted) 72%, #ffffff 28%);
182
+ }
183
+
184
+ .site-search__input:focus {
185
+ background: var(--color-surface);
186
+ }
187
+
188
+ .site-search__input:focus-visible,
189
+ .site-search__result-link:focus-visible,
190
+ .site-search__clear:focus-visible,
191
+ .site-search__submit:focus-visible {
192
+ outline: 3px solid color-mix(in srgb, var(--color-brand) 35%, transparent);
193
+ outline-offset: 2px;
194
+ }
195
+
196
+ .site-search__clear,
197
+ .site-search__submit {
198
+ position: absolute;
199
+ top: 50%;
200
+ transform: translateY(-50%);
201
+ border: 0;
202
+ border-radius: 999px;
203
+ font: inherit;
204
+ font-size: 0.82rem;
205
+ font-weight: 700;
206
+ line-height: 1;
207
+ color: var(--color-brand);
208
+ background: transparent;
209
+ }
210
+
211
+ .site-search__clear {
212
+ right: 2.95rem;
213
+ }
214
+
215
+ .site-search__submit {
216
+ right: 0.5rem;
217
+ padding: 0.45rem 0.7rem;
218
+ color: var(--color-brand-strong);
219
+ background: color-mix(in srgb, var(--color-brand-soft) 80%, #ffffff 20%);
220
+ }
221
+
222
+ .site-search__submit:hover,
223
+ .site-search__submit:active,
224
+ .site-search__clear:hover,
225
+ .site-search__clear:active {
226
+ color: var(--color-brand-strong);
227
+ }
228
+
229
+ .site-search__panel {
230
+ position: absolute;
231
+ top: calc(100% + 0.65rem);
232
+ left: 0;
233
+ z-index: 30;
234
+ width: min(100vw - 2rem, 32rem);
235
+ padding: 0.8rem;
236
+ border: 1px solid color-mix(in srgb, var(--color-border) 85%, #ffffff 15%);
237
+ border-radius: 1rem;
238
+ background: color-mix(in srgb, var(--color-surface) 97%, var(--color-brand-soft) 3%);
239
+ box-shadow: 0 20px 50px -35px rgba(15, 23, 42, 0.55);
240
+ }
241
+
242
+ .site-search__status {
243
+ margin-bottom: 0.35rem;
244
+ font-size: 0.9rem;
245
+ color: var(--color-muted);
246
+ }
247
+
248
+ .site-search__results {
249
+ display: flex;
250
+ flex-direction: column;
251
+ gap: 0.55rem;
252
+ margin: 0;
253
+ padding: 0;
254
+ list-style: none;
255
+ }
256
+
257
+ .site-search__result-item {
258
+ margin: 0;
259
+ }
260
+
261
+ .site-search__result-link {
262
+ display: flex;
263
+ flex-direction: column;
264
+ gap: 0.25rem;
265
+ padding: 0.85rem 0.95rem;
266
+ border: 1px solid transparent;
267
+ border-radius: 0.85rem;
268
+ background: color-mix(in srgb, var(--color-brand-soft) 30%, #ffffff 70%);
269
+ transition: border-color 0.2s ease, background-color 0.2s ease;
270
+ }
271
+
272
+ .site-search__result-link:hover,
273
+ .site-search__result-link:active {
274
+ border-color: color-mix(in srgb, var(--color-brand) 24%, transparent);
275
+ background: color-mix(in srgb, var(--color-brand-soft) 45%, #ffffff 55%);
276
+ }
277
+
278
+ .site-search__result-title {
279
+ font-weight: 700;
280
+ color: var(--color-text);
281
+ }
282
+
283
+ .site-search__result-meta {
284
+ font-size: 0.82rem;
285
+ color: var(--color-brand-strong);
286
+ }
287
+
288
+ .site-search__result-snippet {
289
+ font-size: 0.92rem;
290
+ line-height: 1.55;
291
+ color: var(--color-muted);
292
+ }
293
+
294
+ .site-search--mobile {
295
+ margin-bottom: 1rem;
296
+ }
297
+
298
+ .site-search--mobile .site-search__panel {
299
+ position: static;
300
+ width: 100%;
301
+ margin-top: 0.65rem;
302
+ }
303
+
122
304
  .site-nav-list {
123
305
  display: flex;
124
306
  align-items: center;
@@ -182,7 +364,7 @@
182
364
  .site-mobile-nav__list {
183
365
  display: flex;
184
366
  flex-direction: column;
185
- align-items: center;
367
+ align-items: stretch;
186
368
  margin: 0;
187
369
  padding: 0;
188
370
  }
@@ -1742,6 +1924,10 @@
1742
1924
  padding: 1.5rem 0;
1743
1925
  }
1744
1926
 
1927
+ .site-header__actions {
1928
+ gap: 1rem;
1929
+ }
1930
+
1745
1931
  .site-header__mobile-toggle-wrap {
1746
1932
  display: none;
1747
1933
  }
@@ -1751,6 +1937,16 @@
1751
1937
  justify-content: flex-end;
1752
1938
  }
1753
1939
 
1940
+ .site-search--desktop {
1941
+ display: block;
1942
+ flex: 0 1 19rem;
1943
+ }
1944
+
1945
+ .site-search--desktop .site-search__panel {
1946
+ left: auto;
1947
+ right: 0;
1948
+ }
1949
+
1754
1950
  .site-mobile-nav {
1755
1951
  display: none;
1756
1952
  }
@@ -1 +1 @@
1
- (function(){"use strict";let H;const Lt=()=>{if(typeof window>"u")return new Map;if(!H){const t=window;t.Ionicons=t.Ionicons||{},H=t.Ionicons.map=t.Ionicons.map||new Map}return H},_t=t=>{Object.keys(t).forEach(e=>{K(e,t[e]);const n=e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g,"$1-$2").toLowerCase();e!==n&&K(n,t[e])})},K=(t,e)=>{const n=Lt(),s=n.get(t);s===void 0?n.set(t,e):s!==e&&console.warn(`[Ionicons Warning]: Multiple icons were mapped to name "${t}". Ensure that multiple icons are not mapped to the same icon name.`)},Mt="ionicons",E={hydratedSelectorName:"hydrated",lazyLoad:!1,updatable:!0};var It=Object.defineProperty,Ot=(t,e)=>{for(var n in e)It(t,n,{get:e[n],enumerable:!0})},y=t=>{if(t.__stencil__getHostRef)return t.__stencil__getHostRef()},Ct=(t,e)=>{const n={$flags$:0,$hostElement$:t,$cmpMeta$:e,$instanceValues$:new Map};n.$onReadyPromise$=new Promise(o=>n.$onReadyResolve$=o),t["s-p"]=[],t["s-rc"]=[];const s=n;return t.__stencil__getHostRef=()=>s,s},J=(t,e)=>e in t,A=(t,e)=>(0,console.error)(t,e),L=new Map,Tt="slot-fb{display:contents}slot-fb[hidden]{display:none}",Q="http://www.w3.org/1999/xlink",h=typeof window<"u"?window:{},Pt=h.HTMLElement||class{},v={$flags$:0,$resourcesUrl$:"",jmp:t=>t(),raf:t=>requestAnimationFrame(t),ael:(t,e,n,s)=>t.addEventListener(e,n,s),rel:(t,e,n,s)=>t.removeEventListener(e,n,s),ce:(t,e)=>new CustomEvent(t,e)},Ht=t=>Promise.resolve(t),V=(()=>{try{return new CSSStyleSheet,typeof new CSSStyleSheet().replaceSync=="function"}catch{}return!1})(),q=!1,N=[],tt=[],qt=(t,e)=>n=>{t.push(n),q||(q=!0,v.raf(nt))},et=t=>{for(let e=0;e<t.length;e++)try{t[e](performance.now())}catch(n){A(n)}t.length=0},nt=()=>{et(N),et(tt),(q=N.length>0)&&v.raf(nt)},j=t=>Ht().then(t),jt=qt(tt),Ut=t=>{const e=new URL(t,v.$resourcesUrl$);return e.origin!==h.location.origin?e.href:e.pathname},U=t=>(t=typeof t,t==="object"||t==="function");function zt(t){var e,n,s;return(s=(n=(e=t.head)==null?void 0:e.querySelector('meta[name="csp-nonce"]'))==null?void 0:n.getAttribute("content"))!=null?s:void 0}var Bt=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Rt={};Ot(Rt,{err:()=>st,map:()=>Dt,ok:()=>z,unwrap:()=>Wt,unwrapErr:()=>Xt});var z=t=>({isOk:!0,isErr:!1,value:t}),st=t=>({isOk:!1,isErr:!0,value:t});function Dt(t,e){if(t.isOk){const n=e(t.value);return n instanceof Promise?n.then(s=>z(s)):z(n)}if(t.isErr){const n=t.value;return st(n)}throw"should never get here"}var Wt=t=>{if(t.isOk)return t.value;throw t.value},Xt=t=>{if(t.isErr)return t.value;throw t.value};function Fe(t){}var _;function Zt(t){var e;const n=this.attachShadow({mode:"open"});_===void 0&&(_=(e=void 0)!=null?e:null),_&&n.adoptedStyleSheets.push(_)}var w=(t,e="")=>()=>{},m=new WeakMap,Gt=(t,e,n)=>{let s=L.get(t);V&&n?(s=s||new CSSStyleSheet,typeof s=="string"?s=e:s.replaceSync(e)):s=e,L.set(t,s)},Ft=(t,e,n)=>{var s;const o=ot(e),i=L.get(o);if(!h.document)return o;if(t=t.nodeType===11?t:h.document,i)if(typeof i=="string"){t=t.head||t;let c=m.get(t),r;if(c||m.set(t,c=new Set),!c.has(o)){{r=h.document.createElement("style"),r.innerHTML=i;const l=(s=v.$nonce$)!=null?s:zt(h.document);if(l!=null&&r.setAttribute("nonce",l),!(e.$flags$&1))if(t.nodeName==="HEAD"){const a=t.querySelectorAll("link[rel=preconnect]"),d=a.length>0?a[a.length-1].nextSibling:t.querySelector("style");t.insertBefore(r,d?.parentNode===t?d:null)}else if("host"in t)if(V){const a=new CSSStyleSheet;a.replaceSync(i),t.adoptedStyleSheets.unshift(a)}else{const a=t.querySelector("style");a?a.innerHTML=i+a.innerHTML:t.prepend(r)}else t.append(r);e.$flags$&1&&t.insertBefore(r,null)}e.$flags$&4&&(r.innerHTML+=Tt),c&&c.add(o)}}else t.adoptedStyleSheets.includes(i)||t.adoptedStyleSheets.push(i);return o},Yt=t=>{const e=t.$cmpMeta$,n=t.$hostElement$,s=e.$flags$,o=w("attachStyles",e.$tagName$),i=Ft(n.shadowRoot?n.shadowRoot:n.getRootNode(),e);s&10&&(n["s-sc"]=i,n.classList.add(i+"-h")),o()},ot=(t,e)=>"sc-"+t.$tagName$,M=(t,e,...n)=>{let s=null,o=null,i=!1,c=!1;const r=[],l=d=>{for(let f=0;f<d.length;f++)s=d[f],Array.isArray(s)?l(s):s!=null&&typeof s!="boolean"&&((i=typeof t!="function"&&!U(s))&&(s=String(s)),i&&c?r[r.length-1].$text$+=s:r.push(i?B(null,s):s),c=i)};if(l(n),e){e.key&&(o=e.key);{const d=e.className||e.class;d&&(e.class=typeof d!="object"?d:Object.keys(d).filter(f=>d[f]).join(" "))}}const a=B(t,null);return a.$attrs$=e,r.length>0&&(a.$children$=r),a.$key$=o,a},B=(t,e)=>{const n={$flags$:0,$tag$:t,$text$:e,$elm$:null,$children$:null};return n.$attrs$=null,n.$key$=null,n},it={},Kt=t=>t&&t.$tag$===it,R=t=>{const e=Bt(t);return new RegExp(`(^|[^@]|@(?!supports\\s+selector\\s*\\([^{]*?${e}))(${e}\\b)`,"g")};R("::slotted"),R(":host"),R(":host-context");var rt=(t,e,n)=>t!=null&&!U(t)?e&4?t==="false"?!1:t===""||!!t:e&1?String(t):t:t,Jt=(t,e,n)=>{const s=v.ce(e,n);return t.dispatchEvent(s),s},ct=(t,e,n,s,o,i,c)=>{if(n===s)return;let r=J(t,e),l=e.toLowerCase();if(e==="class"){const a=t.classList,d=at(n);let f=at(s);a.remove(...d.filter(u=>u&&!f.includes(u))),a.add(...f.filter(u=>u&&!d.includes(u)))}else if(e==="style"){for(const a in n)(!s||s[a]==null)&&(a.includes("-")?t.style.removeProperty(a):t.style[a]="");for(const a in s)(!n||s[a]!==n[a])&&(a.includes("-")?t.style.setProperty(a,s[a]):t.style[a]=s[a])}else if(e!=="key")if(e==="ref")s&&s(t);else if(!t.__lookupSetter__(e)&&e[0]==="o"&&e[1]==="n"){if(e[2]==="-"?e=e.slice(3):J(h,l)?e=l.slice(2):e=l[2]+e.slice(3),n||s){const a=e.endsWith(lt);e=e.replace(Vt,""),n&&v.rel(t,e,n,a),s&&v.ael(t,e,s,a)}}else{const a=U(s);if(r||a&&s!==null)try{if(t.tagName.includes("-"))t[e]!==s&&(t[e]=s);else{const f=s??"";e==="list"?r=!1:(n==null||t[e]!=f)&&(typeof t.__lookupSetter__(e)=="function"?t[e]=f:t.setAttribute(e,f))}}catch{}let d=!1;l!==(l=l.replace(/^xlink\:?/,""))&&(e=l,d=!0),s==null||s===!1?(s!==!1||t.getAttribute(e)==="")&&(d?t.removeAttributeNS(Q,e):t.removeAttribute(e)):(!r||i&4||o)&&!a&&t.nodeType===1&&(s=s===!0?"":s,d?t.setAttributeNS(Q,e,s):t.setAttribute(e,s))}},Qt=/\s/,at=t=>(typeof t=="object"&&t&&"baseVal"in t&&(t=t.baseVal),!t||typeof t!="string"?[]:t.split(Qt)),lt="Capture",Vt=new RegExp(lt+"$"),dt=(t,e,n,s)=>{const o=e.$elm$.nodeType===11&&e.$elm$.host?e.$elm$.host:e.$elm$,i=t&&t.$attrs$||{},c=e.$attrs$||{};for(const r of ft(Object.keys(i)))r in c||ct(o,r,i[r],void 0,n,e.$flags$);for(const r of ft(Object.keys(c)))ct(o,r,i[r],c[r],n,e.$flags$)};function ft(t){return t.includes("ref")?[...t.filter(e=>e!=="ref"),"ref"]:t}var D,ut=!1,I=(t,e,n)=>{const s=e.$children$[n];let o=0,i,c;if(s.$text$!==null)i=s.$elm$=h.document.createTextNode(s.$text$);else{if(!h.document)throw new Error("You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component.");if(i=s.$elm$=h.document.createElement(s.$tag$),dt(null,s,ut),s.$children$)for(o=0;o<s.$children$.length;++o)c=I(t,s,o),c&&i.appendChild(c)}return i["s-hn"]=D,i},$t=(t,e,n,s,o,i)=>{let c=t,r;for(c.shadowRoot&&c.tagName===D&&(c=c.shadowRoot);o<=i;++o)s[o]&&(r=I(null,n,o),r&&(s[o].$elm$=r,C(c,r,e)))},ht=(t,e,n)=>{for(let s=e;s<=n;++s){const o=t[s];if(o){const i=o.$elm$;pt(o),i&&i.remove()}}},Nt=(t,e,n,s,o=!1)=>{let i=0,c=0,r=0,l=0,a=e.length-1,d=e[0],f=e[a],u=s.length-1,$=s[0],p=s[u],g,x;for(;i<=a&&c<=u;)if(d==null)d=e[++i];else if(f==null)f=e[--a];else if($==null)$=s[++c];else if(p==null)p=s[--u];else if(O(d,$,o))S(d,$,o),d=e[++i],$=s[++c];else if(O(f,p,o))S(f,p,o),f=e[--a],p=s[--u];else if(O(d,p,o))S(d,p,o),C(t,d.$elm$,f.$elm$.nextSibling),d=e[++i],p=s[--u];else if(O(f,$,o))S(f,$,o),C(t,f.$elm$,d.$elm$),f=e[--a],$=s[++c];else{for(r=-1,l=i;l<=a;++l)if(e[l]&&e[l].$key$!==null&&e[l].$key$===$.$key$){r=l;break}r>=0?(x=e[r],x.$tag$!==$.$tag$?g=I(e&&e[c],n,r):(S(x,$,o),e[r]=void 0,g=x.$elm$),$=s[++c]):(g=I(e&&e[c],n,c),$=s[++c]),g&&C(d.$elm$.parentNode,g,d.$elm$)}i>a?$t(t,s[u+1]==null?null:s[u+1].$elm$,n,s,c,u):c>u&&ht(e,i,a)},O=(t,e,n=!1)=>t.$tag$===e.$tag$?n?(n&&!t.$key$&&e.$key$&&(t.$key$=e.$key$),!0):t.$key$===e.$key$:!1,S=(t,e,n=!1)=>{const s=e.$elm$=t.$elm$,o=t.$children$,i=e.$children$,c=e.$text$;c===null?(dt(t,e,ut),o!==null&&i!==null?Nt(s,o,e,i,n):i!==null?(t.$text$!==null&&(s.textContent=""),$t(s,null,e,i,0,i.length-1)):!n&&E.updatable&&o!==null&&ht(o,0,o.length-1)):t.$text$!==c&&(s.data=c)},pt=t=>{t.$attrs$&&t.$attrs$.ref&&t.$attrs$.ref(null),t.$children$&&t.$children$.map(pt)},C=(t,e,n)=>t?.insertBefore(e,n),te=(t,e,n=!1)=>{const s=t.$hostElement$,o=t.$cmpMeta$,i=t.$vnode$||B(null,null),r=Kt(e)?e:M(null,null,e);if(D=s.tagName,o.$attrsToReflect$&&(r.$attrs$=r.$attrs$||{},o.$attrsToReflect$.map(([l,a])=>r.$attrs$[a]=s[l])),n&&r.$attrs$)for(const l of Object.keys(r.$attrs$))s.hasAttribute(l)&&!["key","ref","style","class"].includes(l)&&(r.$attrs$[l]=s[l]);r.$tag$=null,r.$flags$|=4,t.$vnode$=r,r.$elm$=i.$elm$=s.shadowRoot||s,S(i,r,n)},gt=(t,e)=>{if(e&&!t.$onRenderResolve$&&e["s-p"]){const n=e["s-p"].push(new Promise(s=>t.$onRenderResolve$=()=>{e["s-p"].splice(n-1,1),s()}))}},W=(t,e)=>{if(t.$flags$|=16,t.$flags$&4){t.$flags$|=512;return}return gt(t,t.$ancestorComponent$),jt(()=>ee(t,e))},ee=(t,e)=>{const n=t.$hostElement$,s=w("scheduleUpdate",t.$cmpMeta$.$tagName$),o=n;if(!o)throw new Error(`Can't render component <${n.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \`externalRuntime: true\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`);let i;return e?i=b(o,"componentWillLoad",void 0,n):i=b(o,"componentWillUpdate",void 0,n),i=vt(i,()=>b(o,"componentWillRender",void 0,n)),s(),vt(i,()=>se(t,o,e))},vt=(t,e)=>ne(t)?t.then(e).catch(n=>{console.error(n),e()}):e(),ne=t=>t instanceof Promise||t&&t.then&&typeof t.then=="function",se=async(t,e,n)=>{var s;const o=t.$hostElement$,i=w("update",t.$cmpMeta$.$tagName$),c=o["s-rc"];n&&Yt(t);const r=w("render",t.$cmpMeta$.$tagName$);oe(t,e,o,n),c&&(c.map(l=>l()),o["s-rc"]=void 0),r(),i();{const l=(s=o["s-p"])!=null?s:[],a=()=>ie(t);l.length===0?a():(Promise.all(l).then(a),t.$flags$|=4,l.length=0)}},oe=(t,e,n,s)=>{try{e=e.render(),t.$flags$&=-17,t.$flags$|=2,te(t,e,s)}catch(o){A(o,t.$hostElement$)}return null},ie=t=>{const e=t.$cmpMeta$.$tagName$,n=t.$hostElement$,s=w("postUpdate",e),o=n,i=t.$ancestorComponent$;b(o,"componentDidRender",void 0,n),t.$flags$&64?(b(o,"componentDidUpdate",void 0,n),s()):(t.$flags$|=64,ce(n),b(o,"componentDidLoad",void 0,n),s(),t.$onReadyResolve$(n),i||re()),t.$onRenderResolve$&&(t.$onRenderResolve$(),t.$onRenderResolve$=void 0),t.$flags$&512&&j(()=>W(t,!1)),t.$flags$&=-517},re=t=>{j(()=>Jt(h,"appload",{detail:{namespace:Mt}}))},b=(t,e,n,s)=>{if(t&&t[e])try{return t[e](n)}catch(o){A(o,s)}},ce=t=>{var e;return t.classList.add((e=E.hydratedSelectorName)!=null?e:"hydrated")},ae=(t,e)=>y(t).$instanceValues$.get(e),yt=(t,e,n,s)=>{const o=y(t),i=t,c=o.$instanceValues$.get(e),r=o.$flags$,l=i;n=rt(n,s.$members$[e][0]);const a=Number.isNaN(c)&&Number.isNaN(n);if(n!==c&&!a){o.$instanceValues$.set(e,n);{if(s.$watchers$&&r&128){const f=s.$watchers$[e];f&&f.map(u=>{try{l[u](n,c,e)}catch($){A($,i)}})}if((r&18)===2){if(l.componentShouldUpdate&&l.componentShouldUpdate(n,c,e)===!1)return;W(o,!1)}}}},le=(t,e,n)=>{var s,o;const i=t.prototype;if(e.$members$||e.$watchers$||t.watchers){t.watchers&&!e.$watchers$&&(e.$watchers$=t.watchers);const c=Object.entries((s=e.$members$)!=null?s:{});c.map(([r,[l]])=>{if(l&31||l&32){const{get:a,set:d}=Object.getOwnPropertyDescriptor(i,r)||{};a&&(e.$members$[r][0]|=2048),d&&(e.$members$[r][0]|=4096),Object.defineProperty(i,r,{get(){return a?a.apply(this):ae(this,r)},configurable:!0,enumerable:!0}),Object.defineProperty(i,r,{set(f){const u=y(this);if(d){const $=l&32?this[r]:u.$hostElement$[r];typeof $>"u"&&u.$instanceValues$.get(r)?f=u.$instanceValues$.get(r):!u.$instanceValues$.get(r)&&$&&u.$instanceValues$.set(r,$),d.apply(this,[rt(f,l)]),f=l&32?this[r]:u.$hostElement$[r],yt(this,r,f,e);return}{yt(this,r,f,e);return}}})}});{const r=new Map;i.attributeChangedCallback=function(l,a,d){v.jmp(()=>{var f;const u=r.get(l);if(!(this.hasOwnProperty(u)&&E.lazyLoad)){if(i.hasOwnProperty(u)&&typeof this[u]=="number"&&this[u]==d)return;if(u==null){const p=y(this),g=p?.$flags$;if(g&&!(g&8)&&g&128&&d!==a){const Y=this,Et=(f=e.$watchers$)==null?void 0:f[l];Et?.forEach(At=>{Y[At]!=null&&Y[At].call(Y,d,a,l)})}return}}const $=Object.getOwnPropertyDescriptor(i,u);d=d===null&&typeof this[u]=="boolean"?!1:d,d!==this[u]&&(!$.get||$.set)&&(this[u]=d)})},t.observedAttributes=Array.from(new Set([...Object.keys((o=e.$watchers$)!=null?o:{}),...c.filter(([l,a])=>a[0]&15).map(([l,a])=>{var d;const f=a[1]||l;return r.set(f,l),a[0]&512&&((d=e.$attrsToReflect$)==null||d.push([l,f])),f})]))}}return t},wt=async(t,e,n,s)=>{let o;if((e.$flags$&32)===0){e.$flags$|=32;{o=t.constructor;const r=t.localName;customElements.whenDefined(r).then(()=>e.$flags$|=128)}if(o&&o.style){let r;typeof o.style=="string"&&(r=o.style);const l=ot(n);if(!L.has(l)){const a=w("registerStyles",n.$tagName$);Gt(l,r,!!(n.$flags$&1)),a()}}}const i=e.$ancestorComponent$,c=()=>W(e,!0);i&&i["s-rc"]?i["s-rc"].push(c):c()},de=(t,e)=>{},fe=t=>{{const e=y(t),n=e.$cmpMeta$,s=w("connectedCallback",n.$tagName$);if(e.$flags$&1)e?.$lazyInstance$||e?.$onReadyPromise$&&e.$onReadyPromise$.then(()=>de());else{e.$flags$|=1;{let o=t;for(;o=o.parentNode||o.host;)if(o["s-p"]){gt(e,e.$ancestorComponent$=o);break}}n.$members$&&Object.entries(n.$members$).map(([o,[i]])=>{if(i&31&&t.hasOwnProperty(o)){const c=t[o];delete t[o],t[o]=c}}),E.initializeNextTick?j(()=>wt(t,e,n)):wt(t,e,n)}s()}},ue=async t=>{y(t),m.has(t)&&m.delete(t),t.shadowRoot&&m.has(t.shadowRoot)&&m.delete(t.shadowRoot)},$e=(t,e)=>{const n={$flags$:e[0],$tagName$:e[1]};n.$members$=e[2],n.$watchers$=t.$watchers$,n.$attrsToReflect$=[];const s=t.prototype.connectedCallback,o=t.prototype.disconnectedCallback;return Object.assign(t.prototype,{__hasHostListenerAttached:!1,__registerHost(){Ct(this,n)},connectedCallback(){this.__hasHostListenerAttached||(y(this),this.__hasHostListenerAttached=!0),fe(this),s&&s.call(this)},disconnectedCallback(){ue(this),o&&o.call(this)},__attachShadow(){if(!this.shadowRoot)Zt.call(this,n);else if(this.shadowRoot.mode!=="open")throw new Error(`Unable to re-use existing shadow root for ${n.$tagName$}! Mode is set to ${this.shadowRoot.mode} but Stencil only supports open shadow roots.`)}}),t.is=n.$tagName$,le(t,n)};let X;const he=()=>{if(typeof window>"u")return new Map;if(!X){const t=window;t.Ionicons=t.Ionicons||{},X=t.Ionicons.map=t.Ionicons.map||new Map}return X},pe=t=>{let e=Z(t.src);return e||(e=mt(t.name,t.icon,t.mode,t.ios,t.md),e?ge(e,t):t.icon&&(e=Z(t.icon),e||(e=Z(t.icon[t.mode]),e))?e:null)},ge=(t,e)=>{const n=he().get(t);if(n)return n;try{return Ut(`svg/${t}.svg`)}catch(s){console.log("e",s),console.warn(`[Ionicons Warning]: Could not load icon with name "${t}". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to the icon component.`,e)}},mt=(t,e,n,s,o)=>(n=(n&&P(n))==="ios"?"ios":"md",s&&n==="ios"?t=P(s):o&&n==="md"?t=P(o):(!t&&e&&!St(e)&&(t=e),T(t)&&(t=P(t))),!T(t)||t.trim()===""||t.replace(/[a-z]|-|\d/gi,"")!==""?null:t),Z=t=>T(t)&&(t=t.trim(),St(t))?t:null,St=t=>t.length>0&&/(\/|\.)/.test(t),T=t=>typeof t=="string",P=t=>t.toLowerCase(),ve=(t,e=[])=>{const n={};return e.forEach(s=>{t.hasAttribute(s)&&(t.getAttribute(s)!==null&&(n[s]=t.getAttribute(s)),t.removeAttribute(s))}),n},ye=t=>t&&t.dir!==""?t.dir.toLowerCase()==="rtl":document?.dir.toLowerCase()==="rtl",we=t=>{const e=document.createElement("div");e.innerHTML=t;for(let s=e.childNodes.length-1;s>=0;s--)e.childNodes[s].nodeName.toLowerCase()!=="svg"&&e.removeChild(e.childNodes[s]);const n=e.firstElementChild;if(n&&n.nodeName.toLowerCase()==="svg"){const s=n.getAttribute("class")||"";if(n.setAttribute("class",(s+" s-ion-icon").trim()),bt(n))return e.innerHTML}return""},bt=t=>{if(t.nodeType===1){if(t.nodeName.toLowerCase()==="script")return!1;for(let e=0;e<t.attributes.length;e++){const n=t.attributes[e].name;if(T(n)&&n.toLowerCase().indexOf("on")===0)return!1}for(let e=0;e<t.childNodes.length;e++)if(!bt(t.childNodes[e]))return!1}return!0},me=t=>t.startsWith("data:image/svg+xml"),Se=t=>t.indexOf(";utf8,")!==-1,k=new Map,kt=new Map;let G;function F(t){return k.set(t,""),""}const be=(t,e)=>{const n=kt.get(t);return n||(typeof fetch<"u"&&typeof document<"u"?me(t)&&Se(t)?Promise.resolve(ke(t)):xe(t,e):Promise.resolve(F(t)))};function ke(t){G||(G=new DOMParser);const n=G.parseFromString(t,"text/html").querySelector("svg");if(n)return k.set(t,n.outerHTML),n.outerHTML;throw new Error(`Could not parse svg from ${t}`)}function xe(t,e){const n=fetch(t).then(s=>s.text().then(o=>{o&&e!==!1&&(o=we(o));const i=o||"";return k.set(t,i),i}).catch(()=>F(t))).catch(()=>F(t));return kt.set(t,n),n}const Ee=":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;box-sizing:content-box !important}:host .ionicon{stroke:currentColor}.ionicon-fill-none{fill:none}.ionicon-stroke-width{stroke-width:var(--ionicon-stroke-width, 32px)}.icon-inner,.ionicon,svg{display:block;height:100%;width:100%}@supports (background: -webkit-named-image(i)){:host(.icon-rtl) .icon-inner{transform:scaleX(-1)}}@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])){:host(.icon-rtl) .icon-inner{transform:scaleX(-1)}}:host(.flip-rtl):host-context([dir='rtl']) .icon-inner{transform:scaleX(-1)}@supports selector(:dir(rtl)){:host(.flip-rtl:dir(rtl)) .icon-inner{transform:scaleX(-1)}:host(.flip-rtl:dir(ltr)) .icon-inner{transform:scaleX(1)}}:host(.icon-small){font-size:1.125rem !important}:host(.icon-large){font-size:2rem !important}:host(.ion-color){color:var(--ion-color-base) !important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}",Ae=$e(class extends Pt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.iconName=null,this.inheritedAttributes={},this.didLoadIcon=!1,this.isVisible=!1,this.mode=Le(),this.lazy=!1,this.sanitize=!0}componentWillLoad(){this.inheritedAttributes=ve(this.el,["aria-label"])}connectedCallback(){this.waitUntilVisible(this.el,"50px",()=>{this.isVisible=!0,this.loadIcon()})}componentDidLoad(){this.didLoadIcon||this.loadIcon()}disconnectedCallback(){this.io&&(this.io.disconnect(),this.io=void 0)}waitUntilVisible(e,n,s){if(!!!(this.lazy&&typeof window<"u"&&window.IntersectionObserver))return s();const i=this.io=new window.IntersectionObserver(c=>{c[0].isIntersecting&&(i.disconnect(),this.io=void 0,s())},{rootMargin:n});i.observe(e)}loadIcon(){if(this.isVisible){const e=pe(this);e&&(k.has(e)?this.svgContent=k.get(e):be(e,this.sanitize).then(()=>this.svgContent=k.get(e)),this.didLoadIcon=!0)}this.iconName=mt(this.name,this.icon,this.mode,this.ios,this.md)}render(){const{flipRtl:e,iconName:n,inheritedAttributes:s,el:o}=this,i=this.mode||"md",c=n?(n.includes("arrow")||n.includes("chevron"))&&e!==!1:!1,r=e||c;return M(it,Object.assign({key:"0578c899781ca145dd8205acd9670af39b57cf2e",role:"img",class:Object.assign(Object.assign({[i]:!0},_e(this.color)),{[`icon-${this.size}`]:!!this.size,"flip-rtl":r,"icon-rtl":r&&ye(o)})},s),this.svgContent?M("div",{class:"icon-inner",innerHTML:this.svgContent}):M("div",{class:"icon-inner"}))}static get assetsDirs(){return["svg"]}get el(){return this}static get watchers(){return{name:["loadIcon"],src:["loadIcon"],icon:["loadIcon"],ios:["loadIcon"],md:["loadIcon"]}}static get style(){return Ee}},[1,"ion-icon",{mode:[1025],color:[1],ios:[1],md:[1],flipRtl:[4,"flip-rtl"],name:[513],src:[1],icon:[8],size:[1],lazy:[4],sanitize:[4],svgContent:[32],isVisible:[32]},void 0,{name:["loadIcon"],src:["loadIcon"],icon:["loadIcon"],ios:["loadIcon"],md:["loadIcon"]}]),Le=()=>typeof document<"u"&&document.documentElement.getAttribute("mode")||"md",_e=t=>t?{"ion-color":!0,[`ion-color-${t}`]:!0}:null;function Me(){if(typeof customElements>"u")return;["ion-icon"].forEach(e=>{e==="ion-icon"&&(customElements.get(e)||customElements.define(e,Ae))})}const Ie=Me,Oe="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='m112 184 144 144 144-144' stroke-linecap='round' stroke-linejoin='round' stroke-width='48px' class='ionicon-fill-none'/></svg>",Ce="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='m289.94 256 95-95A24 24 0 0 0 351 127l-95 95-95-95a24 24 0 0 0-34 34l95 95-95 95a24 24 0 1 0 34 34l95-95 95 95a24 24 0 0 0 34-34Z'/></svg>",Te="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M256 32C132.3 32 32 134.9 32 261.7c0 101.5 64.2 187.5 153.2 217.9a17.6 17.6 0 0 0 3.8.4c8.3 0 11.5-6.1 11.5-11.4 0-5.5-.2-19.9-.3-39.1a102.4 102.4 0 0 1-22.6 2.7c-43.1 0-52.9-33.5-52.9-33.5-10.2-26.5-24.9-33.6-24.9-33.6-19.5-13.7-.1-14.1 1.4-14.1h.1c22.5 2 34.3 23.8 34.3 23.8 11.2 19.6 26.2 25.1 39.6 25.1a63 63 0 0 0 25.6-6c2-14.8 7.8-24.9 14.2-30.7-49.7-5.8-102-25.5-102-113.5 0-25.1 8.7-45.6 23-61.6-2.3-5.8-10-29.2 2.2-60.8a18.6 18.6 0 0 1 5-.5c8.1 0 26.4 3.1 56.6 24.1a208.2 208.2 0 0 1 112.2 0c30.2-21 48.5-24.1 56.6-24.1a18.6 18.6 0 0 1 5 .5c12.2 31.6 4.5 55 2.2 60.8 14.3 16.1 23 36.6 23 61.6 0 88.2-52.4 107.6-102.3 113.3 8 7.1 15.2 21.1 15.2 42.5 0 30.7-.3 55.5-.3 63 0 5.4 3.1 11.5 11.4 11.5a19.4 19.4 0 0 0 4-.4C415.9 449.2 480 363.1 480 261.7 480 134.9 379.7 32 256 32'/></svg>",Pe="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M444.17 32H70.28C49.85 32 32 46.7 32 66.89v374.72C32 461.91 49.85 480 70.28 480h373.78c20.54 0 35.94-18.21 35.94-38.39V66.89C480.12 46.7 464.6 32 444.17 32m-273.3 373.43h-64.18V205.88h64.18ZM141 175.54h-.46c-20.54 0-33.84-15.29-33.84-34.43 0-19.49 13.65-34.42 34.65-34.42s33.85 14.82 34.31 34.42c-.01 19.14-13.31 34.43-34.66 34.43m264.43 229.89h-64.18V296.32c0-26.14-9.34-44-32.56-44-17.74 0-28.24 12-32.91 23.69-1.75 4.2-2.22 9.92-2.22 15.76v113.66h-64.18V205.88h64.18v27.77c9.34-13.3 23.93-32.44 57.88-32.44 42.13 0 74 27.77 74 87.64Z'/></svg>",He="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M496 109.5a201.8 201.8 0 0 1-56.55 15.3 97.5 97.5 0 0 0 43.33-53.6 197.7 197.7 0 0 1-62.56 23.5A99.14 99.14 0 0 0 348.31 64c-54.42 0-98.46 43.4-98.46 96.9a93.2 93.2 0 0 0 2.54 22.1 280.7 280.7 0 0 1-203-101.3A95.7 95.7 0 0 0 36 130.4c0 33.6 17.53 63.3 44 80.7A97.5 97.5 0 0 1 35.22 199v1.2c0 47 34 86.1 79 95a100.8 100.8 0 0 1-25.94 3.4 94.4 94.4 0 0 1-18.51-1.8c12.51 38.5 48.92 66.5 92.05 67.3A199.6 199.6 0 0 1 39.5 405.6a203 203 0 0 1-23.5-1.4A278.7 278.7 0 0 0 166.74 448c181.36 0 280.44-147.7 280.44-275.8 0-4.2-.11-8.4-.31-12.5A198.5 198.5 0 0 0 496 109.5'/></svg>",qe="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M508.64 148.79c0-45-33.1-81.2-74-81.2C379.24 65 322.74 64 265 64h-18c-57.6 0-114.2 1-169.6 3.6C36.6 67.6 3.5 104 3.5 149 1 184.59-.06 220.19 0 255.79q-.15 53.4 3.4 106.9c0 45 33.1 81.5 73.9 81.5 58.2 2.7 117.9 3.9 178.6 3.8q91.2.3 178.6-3.8c40.9 0 74-36.5 74-81.5 2.4-35.7 3.5-71.3 3.4-107q.34-53.4-3.26-106.9M207 353.89v-196.5l145 98.2Z'/></svg>",je="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M80 160h352M80 256h352M80 352h352' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>",Ue="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64Z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 128v144h96' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>",xt="menu-outline",ze="close",Be=()=>{const t=document.querySelector(".site-header__toggle");if(!t)return;const e=document.querySelector(t.dataset.target);if(!e)return;const n=()=>{if(!e.classList.contains("is-hidden")){e.classList.add("is-hidden"),t.setAttribute("aria-expanded","false");const s=t.querySelector("ion-icon");s&&(s.name=xt)}};t.addEventListener("click",()=>{const s=t.getAttribute("aria-expanded")==="true";e.classList.toggle("is-hidden"),t.setAttribute("aria-expanded",s?"false":"true");const o=t.querySelector("ion-icon");o&&(o.name=s?xt:ze)}),document.addEventListener("click",s=>{const o=e.contains(s.target),i=t.contains(s.target);!o&&!i&&n()}),document.addEventListener("keydown",s=>{s.key==="Escape"&&n()})},Re={category:"data-category",categoryId:"data-category-id",emitMetadata:"data-emit-metadata",inputPosition:"data-input-position",lang:"data-lang",loading:"data-loading",mapping:"data-mapping",reactionsEnabled:"data-reactions-enabled",repo:"data-repo",repoId:"data-repo-id",strict:"data-strict",term:"data-term",theme:"data-theme"},De=t=>{if(!t||t.dataset.giscusLoaded==="true")return;const e=document.createElement("script");e.src=t.dataset.giscusScriptSrc||"https://giscus.app/client.js",e.async=!0,e.crossOrigin="anonymous";for(const[n,s]of Object.entries(Re)){const o=t.dataset[`giscus${n.charAt(0).toUpperCase()}${n.slice(1)}`];o&&e.setAttribute(s,o)}t.append(e),t.dataset.giscusLoaded="true"},We=()=>{const t=document.querySelectorAll("[data-comments-collapsible]");t.length&&t.forEach(e=>{const n=e.querySelector("[data-comments-toggle]"),s=e.querySelector("[data-comments-panel]"),o=e.querySelector("[data-giscus-mount]");!n||!s||!o||n.addEventListener("click",()=>{const c=!(n.getAttribute("aria-expanded")==="true");n.setAttribute("aria-expanded",c?"true":"false"),e.classList.toggle("is-open",c),s.hidden=!c,c&&De(o)})})},Xe=()=>{const t=document.querySelector("#main-header");if(!t)return;const e=()=>{if(window.scrollY>8){t.classList.add("is-scrolled");return}t.classList.remove("is-scrolled")};e(),window.addEventListener("scroll",e,{passive:!0})},Ze=()=>{const t=document.querySelectorAll("[data-series-collapsible]");t.length&&t.forEach(e=>{const n=e.querySelector("[data-series-toggle]"),s=e.querySelector("[data-series-panel]");if(!n||!s)return;const o=()=>{const c=n.getAttribute("aria-expanded")==="true";e.classList.toggle("is-open",c),s.hidden=!c};o(),n.addEventListener("click",()=>{const c=n.getAttribute("aria-expanded")==="true";n.setAttribute("aria-expanded",c?"false":"true"),o()});const i=e.querySelectorAll("[data-series-overflow-toggle]");i.length&&i.forEach(c=>{c.addEventListener("click",()=>{const r=c.dataset.seriesOverflowGroup,l=r?`[data-series-overflow-item][data-series-overflow-group="${r}"]`:"[data-series-overflow-item]";e.querySelectorAll(l).forEach(d=>{d.hidden=!1}),c.hidden=!0})})})},Ge=()=>{const t=document.querySelector("[data-reading-progress]"),e=document.querySelector(".content");if(!t||!e)return;const n=()=>{const s=e.offsetTop,o=e.offsetHeight,i=window.innerHeight,c=window.scrollY,r=Math.max(o-i,1),a=Math.min(Math.max(c-s,0),r)/r*100;t.style.transform=`scaleX(${a/100})`};n(),window.addEventListener("scroll",n,{passive:!0}),window.addEventListener("resize",n)};_t({"chevron-down-outline":Oe,close:Ce,"logo-github":Te,"logo-linkedin":Pe,"logo-twitter":He,"logo-youtube":qe,"menu-outline":je,"time-outline":Ue}),Ie(),Be(),We(),Xe(),Ze(),Ge()})();
1
+ (function(){"use strict";let R;const It=()=>{if(typeof window>"u")return new Map;if(!R){const t=window;t.Ionicons=t.Ionicons||{},R=t.Ionicons.map=t.Ionicons.map||new Map}return R},Ot=t=>{Object.keys(t).forEach(e=>{tt(e,t[e]);const n=e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g,"$1-$2").toLowerCase();e!==n&&tt(n,t[e])})},tt=(t,e)=>{const n=It(),s=n.get(t);s===void 0?n.set(t,e):s!==e&&console.warn(`[Ionicons Warning]: Multiple icons were mapped to name "${t}". Ensure that multiple icons are not mapped to the same icon name.`)},qt="ionicons",T={hydratedSelectorName:"hydrated",lazyLoad:!1,updatable:!0};var Pt=Object.defineProperty,zt=(t,e)=>{for(var n in e)Pt(t,n,{get:e[n],enumerable:!0})},S=t=>{if(t.__stencil__getHostRef)return t.__stencil__getHostRef()},Ht=(t,e)=>{const n={$flags$:0,$hostElement$:t,$cmpMeta$:e,$instanceValues$:new Map};n.$onReadyPromise$=new Promise(o=>n.$onReadyResolve$=o),t["s-p"]=[],t["s-rc"]=[];const s=n;return t.__stencil__getHostRef=()=>s,s},et=(t,e)=>e in t,C=(t,e)=>(0,console.error)(t,e),M=new Map,jt="slot-fb{display:contents}slot-fb[hidden]{display:none}",nt="http://www.w3.org/1999/xlink",v=typeof window<"u"?window:{},Ut=v.HTMLElement||class{},y={$flags$:0,$resourcesUrl$:"",jmp:t=>t(),raf:t=>requestAnimationFrame(t),ael:(t,e,n,s)=>t.addEventListener(e,n,s),rel:(t,e,n,s)=>t.removeEventListener(e,n,s),ce:(t,e)=>new CustomEvent(t,e)},Rt=t=>Promise.resolve(t),st=(()=>{try{return new CSSStyleSheet,typeof new CSSStyleSheet().replaceSync=="function"}catch{}return!1})(),B=!1,ot=[],it=[],Bt=(t,e)=>n=>{t.push(n),B||(B=!0,y.raf(at))},rt=t=>{for(let e=0;e<t.length;e++)try{t[e](performance.now())}catch(n){C(n)}t.length=0},at=()=>{rt(ot),rt(it),(B=ot.length>0)&&y.raf(at)},D=t=>Rt().then(t),Dt=Bt(it),Wt=t=>{const e=new URL(t,y.$resourcesUrl$);return e.origin!==v.location.origin?e.href:e.pathname},W=t=>(t=typeof t,t==="object"||t==="function");function Xt(t){var e,n,s;return(s=(n=(e=t.head)==null?void 0:e.querySelector('meta[name="csp-nonce"]'))==null?void 0:n.getAttribute("content"))!=null?s:void 0}var Zt=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Ft={};zt(Ft,{err:()=>ct,map:()=>Gt,ok:()=>X,unwrap:()=>Yt,unwrapErr:()=>Kt});var X=t=>({isOk:!0,isErr:!1,value:t}),ct=t=>({isOk:!1,isErr:!0,value:t});function Gt(t,e){if(t.isOk){const n=e(t.value);return n instanceof Promise?n.then(s=>X(s)):X(n)}if(t.isErr){const n=t.value;return ct(n)}throw"should never get here"}var Yt=t=>{if(t.isOk)return t.value;throw t.value},Kt=t=>{if(t.isErr)return t.value;throw t.value};function hn(t){}var I;function Qt(t){var e;const n=this.attachShadow({mode:"open"});I===void 0&&(I=(e=void 0)!=null?e:null),I&&n.adoptedStyleSheets.push(I)}var x=(t,e="")=>()=>{},E=new WeakMap,Jt=(t,e,n)=>{let s=M.get(t);st&&n?(s=s||new CSSStyleSheet,typeof s=="string"?s=e:s.replaceSync(e)):s=e,M.set(t,s)},Nt=(t,e,n)=>{var s;const o=lt(e),i=M.get(o);if(!v.document)return o;if(t=t.nodeType===11?t:v.document,i)if(typeof i=="string"){t=t.head||t;let a=E.get(t),r;if(a||E.set(t,a=new Set),!a.has(o)){{r=v.document.createElement("style"),r.innerHTML=i;const l=(s=y.$nonce$)!=null?s:Xt(v.document);if(l!=null&&r.setAttribute("nonce",l),!(e.$flags$&1))if(t.nodeName==="HEAD"){const c=t.querySelectorAll("link[rel=preconnect]"),d=c.length>0?c[c.length-1].nextSibling:t.querySelector("style");t.insertBefore(r,d?.parentNode===t?d:null)}else if("host"in t)if(st){const c=new CSSStyleSheet;c.replaceSync(i),t.adoptedStyleSheets.unshift(c)}else{const c=t.querySelector("style");c?c.innerHTML=i+c.innerHTML:t.prepend(r)}else t.append(r);e.$flags$&1&&t.insertBefore(r,null)}e.$flags$&4&&(r.innerHTML+=jt),a&&a.add(o)}}else t.adoptedStyleSheets.includes(i)||t.adoptedStyleSheets.push(i);return o},Vt=t=>{const e=t.$cmpMeta$,n=t.$hostElement$,s=e.$flags$,o=x("attachStyles",e.$tagName$),i=Nt(n.shadowRoot?n.shadowRoot:n.getRootNode(),e);s&10&&(n["s-sc"]=i,n.classList.add(i+"-h")),o()},lt=(t,e)=>"sc-"+t.$tagName$,O=(t,e,...n)=>{let s=null,o=null,i=!1,a=!1;const r=[],l=d=>{for(let u=0;u<d.length;u++)s=d[u],Array.isArray(s)?l(s):s!=null&&typeof s!="boolean"&&((i=typeof t!="function"&&!W(s))&&(s=String(s)),i&&a?r[r.length-1].$text$+=s:r.push(i?Z(null,s):s),a=i)};if(l(n),e){e.key&&(o=e.key);{const d=e.className||e.class;d&&(e.class=typeof d!="object"?d:Object.keys(d).filter(u=>d[u]).join(" "))}}const c=Z(t,null);return c.$attrs$=e,r.length>0&&(c.$children$=r),c.$key$=o,c},Z=(t,e)=>{const n={$flags$:0,$tag$:t,$text$:e,$elm$:null,$children$:null};return n.$attrs$=null,n.$key$=null,n},dt={},te=t=>t&&t.$tag$===dt,F=t=>{const e=Zt(t);return new RegExp(`(^|[^@]|@(?!supports\\s+selector\\s*\\([^{]*?${e}))(${e}\\b)`,"g")};F("::slotted"),F(":host"),F(":host-context");var ut=(t,e,n)=>t!=null&&!W(t)?e&4?t==="false"?!1:t===""||!!t:e&1?String(t):t:t,ee=(t,e,n)=>{const s=y.ce(e,n);return t.dispatchEvent(s),s},ft=(t,e,n,s,o,i,a)=>{if(n===s)return;let r=et(t,e),l=e.toLowerCase();if(e==="class"){const c=t.classList,d=ht(n);let u=ht(s);c.remove(...d.filter(f=>f&&!u.includes(f))),c.add(...u.filter(f=>f&&!d.includes(f)))}else if(e==="style"){for(const c in n)(!s||s[c]==null)&&(c.includes("-")?t.style.removeProperty(c):t.style[c]="");for(const c in s)(!n||s[c]!==n[c])&&(c.includes("-")?t.style.setProperty(c,s[c]):t.style[c]=s[c])}else if(e!=="key")if(e==="ref")s&&s(t);else if(!t.__lookupSetter__(e)&&e[0]==="o"&&e[1]==="n"){if(e[2]==="-"?e=e.slice(3):et(v,l)?e=l.slice(2):e=l[2]+e.slice(3),n||s){const c=e.endsWith(pt);e=e.replace(se,""),n&&y.rel(t,e,n,c),s&&y.ael(t,e,s,c)}}else{const c=W(s);if(r||c&&s!==null)try{if(t.tagName.includes("-"))t[e]!==s&&(t[e]=s);else{const u=s??"";e==="list"?r=!1:(n==null||t[e]!=u)&&(typeof t.__lookupSetter__(e)=="function"?t[e]=u:t.setAttribute(e,u))}}catch{}let d=!1;l!==(l=l.replace(/^xlink\:?/,""))&&(e=l,d=!0),s==null||s===!1?(s!==!1||t.getAttribute(e)==="")&&(d?t.removeAttributeNS(nt,e):t.removeAttribute(e)):(!r||i&4||o)&&!c&&t.nodeType===1&&(s=s===!0?"":s,d?t.setAttributeNS(nt,e,s):t.setAttribute(e,s))}},ne=/\s/,ht=t=>(typeof t=="object"&&t&&"baseVal"in t&&(t=t.baseVal),!t||typeof t!="string"?[]:t.split(ne)),pt="Capture",se=new RegExp(pt+"$"),gt=(t,e,n,s)=>{const o=e.$elm$.nodeType===11&&e.$elm$.host?e.$elm$.host:e.$elm$,i=t&&t.$attrs$||{},a=e.$attrs$||{};for(const r of $t(Object.keys(i)))r in a||ft(o,r,i[r],void 0,n,e.$flags$);for(const r of $t(Object.keys(a)))ft(o,r,i[r],a[r],n,e.$flags$)};function $t(t){return t.includes("ref")?[...t.filter(e=>e!=="ref"),"ref"]:t}var G,vt=!1,q=(t,e,n)=>{const s=e.$children$[n];let o=0,i,a;if(s.$text$!==null)i=s.$elm$=v.document.createTextNode(s.$text$);else{if(!v.document)throw new Error("You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component.");if(i=s.$elm$=v.document.createElement(s.$tag$),gt(null,s,vt),s.$children$)for(o=0;o<s.$children$.length;++o)a=q(t,s,o),a&&i.appendChild(a)}return i["s-hn"]=G,i},mt=(t,e,n,s,o,i)=>{let a=t,r;for(a.shadowRoot&&a.tagName===G&&(a=a.shadowRoot);o<=i;++o)s[o]&&(r=q(null,n,o),r&&(s[o].$elm$=r,z(a,r,e)))},yt=(t,e,n)=>{for(let s=e;s<=n;++s){const o=t[s];if(o){const i=o.$elm$;wt(o),i&&i.remove()}}},oe=(t,e,n,s,o=!1)=>{let i=0,a=0,r=0,l=0,c=e.length-1,d=e[0],u=e[c],f=s.length-1,h=s[0],g=s[f],$,p;for(;i<=c&&a<=f;)if(d==null)d=e[++i];else if(u==null)u=e[--c];else if(h==null)h=s[++a];else if(g==null)g=s[--f];else if(P(d,h,o))b(d,h,o),d=e[++i],h=s[++a];else if(P(u,g,o))b(u,g,o),u=e[--c],g=s[--f];else if(P(d,g,o))b(d,g,o),z(t,d.$elm$,u.$elm$.nextSibling),d=e[++i],g=s[--f];else if(P(u,h,o))b(u,h,o),z(t,u.$elm$,d.$elm$),u=e[--c],h=s[++a];else{for(r=-1,l=i;l<=c;++l)if(e[l]&&e[l].$key$!==null&&e[l].$key$===h.$key$){r=l;break}r>=0?(p=e[r],p.$tag$!==h.$tag$?$=q(e&&e[a],n,r):(b(p,h,o),e[r]=void 0,$=p.$elm$),h=s[++a]):($=q(e&&e[a],n,a),h=s[++a]),$&&z(d.$elm$.parentNode,$,d.$elm$)}i>c?mt(t,s[f+1]==null?null:s[f+1].$elm$,n,s,a,f):a>f&&yt(e,i,c)},P=(t,e,n=!1)=>t.$tag$===e.$tag$?n?(n&&!t.$key$&&e.$key$&&(t.$key$=e.$key$),!0):t.$key$===e.$key$:!1,b=(t,e,n=!1)=>{const s=e.$elm$=t.$elm$,o=t.$children$,i=e.$children$,a=e.$text$;a===null?(gt(t,e,vt),o!==null&&i!==null?oe(s,o,e,i,n):i!==null?(t.$text$!==null&&(s.textContent=""),mt(s,null,e,i,0,i.length-1)):!n&&T.updatable&&o!==null&&yt(o,0,o.length-1)):t.$text$!==a&&(s.data=a)},wt=t=>{t.$attrs$&&t.$attrs$.ref&&t.$attrs$.ref(null),t.$children$&&t.$children$.map(wt)},z=(t,e,n)=>t?.insertBefore(e,n),ie=(t,e,n=!1)=>{const s=t.$hostElement$,o=t.$cmpMeta$,i=t.$vnode$||Z(null,null),r=te(e)?e:O(null,null,e);if(G=s.tagName,o.$attrsToReflect$&&(r.$attrs$=r.$attrs$||{},o.$attrsToReflect$.map(([l,c])=>r.$attrs$[c]=s[l])),n&&r.$attrs$)for(const l of Object.keys(r.$attrs$))s.hasAttribute(l)&&!["key","ref","style","class"].includes(l)&&(r.$attrs$[l]=s[l]);r.$tag$=null,r.$flags$|=4,t.$vnode$=r,r.$elm$=i.$elm$=s.shadowRoot||s,b(i,r,n)},St=(t,e)=>{if(e&&!t.$onRenderResolve$&&e["s-p"]){const n=e["s-p"].push(new Promise(s=>t.$onRenderResolve$=()=>{e["s-p"].splice(n-1,1),s()}))}},Y=(t,e)=>{if(t.$flags$|=16,t.$flags$&4){t.$flags$|=512;return}return St(t,t.$ancestorComponent$),Dt(()=>re(t,e))},re=(t,e)=>{const n=t.$hostElement$,s=x("scheduleUpdate",t.$cmpMeta$.$tagName$),o=n;if(!o)throw new Error(`Can't render component <${n.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \`externalRuntime: true\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`);let i;return e?i=A(o,"componentWillLoad",void 0,n):i=A(o,"componentWillUpdate",void 0,n),i=xt(i,()=>A(o,"componentWillRender",void 0,n)),s(),xt(i,()=>ce(t,o,e))},xt=(t,e)=>ae(t)?t.then(e).catch(n=>{console.error(n),e()}):e(),ae=t=>t instanceof Promise||t&&t.then&&typeof t.then=="function",ce=async(t,e,n)=>{var s;const o=t.$hostElement$,i=x("update",t.$cmpMeta$.$tagName$),a=o["s-rc"];n&&Vt(t);const r=x("render",t.$cmpMeta$.$tagName$);le(t,e,o,n),a&&(a.map(l=>l()),o["s-rc"]=void 0),r(),i();{const l=(s=o["s-p"])!=null?s:[],c=()=>de(t);l.length===0?c():(Promise.all(l).then(c),t.$flags$|=4,l.length=0)}},le=(t,e,n,s)=>{try{e=e.render(),t.$flags$&=-17,t.$flags$|=2,ie(t,e,s)}catch(o){C(o,t.$hostElement$)}return null},de=t=>{const e=t.$cmpMeta$.$tagName$,n=t.$hostElement$,s=x("postUpdate",e),o=n,i=t.$ancestorComponent$;A(o,"componentDidRender",void 0,n),t.$flags$&64?(A(o,"componentDidUpdate",void 0,n),s()):(t.$flags$|=64,fe(n),A(o,"componentDidLoad",void 0,n),s(),t.$onReadyResolve$(n),i||ue()),t.$onRenderResolve$&&(t.$onRenderResolve$(),t.$onRenderResolve$=void 0),t.$flags$&512&&D(()=>Y(t,!1)),t.$flags$&=-517},ue=t=>{D(()=>ee(v,"appload",{detail:{namespace:qt}}))},A=(t,e,n,s)=>{if(t&&t[e])try{return t[e](n)}catch(o){C(o,s)}},fe=t=>{var e;return t.classList.add((e=T.hydratedSelectorName)!=null?e:"hydrated")},he=(t,e)=>S(t).$instanceValues$.get(e),kt=(t,e,n,s)=>{const o=S(t),i=t,a=o.$instanceValues$.get(e),r=o.$flags$,l=i;n=ut(n,s.$members$[e][0]);const c=Number.isNaN(a)&&Number.isNaN(n);if(n!==a&&!c){o.$instanceValues$.set(e,n);{if(s.$watchers$&&r&128){const u=s.$watchers$[e];u&&u.map(f=>{try{l[f](n,a,e)}catch(h){C(h,i)}})}if((r&18)===2){if(l.componentShouldUpdate&&l.componentShouldUpdate(n,a,e)===!1)return;Y(o,!1)}}}},pe=(t,e,n)=>{var s,o;const i=t.prototype;if(e.$members$||e.$watchers$||t.watchers){t.watchers&&!e.$watchers$&&(e.$watchers$=t.watchers);const a=Object.entries((s=e.$members$)!=null?s:{});a.map(([r,[l]])=>{if(l&31||l&32){const{get:c,set:d}=Object.getOwnPropertyDescriptor(i,r)||{};c&&(e.$members$[r][0]|=2048),d&&(e.$members$[r][0]|=4096),Object.defineProperty(i,r,{get(){return c?c.apply(this):he(this,r)},configurable:!0,enumerable:!0}),Object.defineProperty(i,r,{set(u){const f=S(this);if(d){const h=l&32?this[r]:f.$hostElement$[r];typeof h>"u"&&f.$instanceValues$.get(r)?u=f.$instanceValues$.get(r):!f.$instanceValues$.get(r)&&h&&f.$instanceValues$.set(r,h),d.apply(this,[ut(u,l)]),u=l&32?this[r]:f.$hostElement$[r],kt(this,r,u,e);return}{kt(this,r,u,e);return}}})}});{const r=new Map;i.attributeChangedCallback=function(l,c,d){y.jmp(()=>{var u;const f=r.get(l);if(!(this.hasOwnProperty(f)&&T.lazyLoad)){if(i.hasOwnProperty(f)&&typeof this[f]=="number"&&this[f]==d)return;if(f==null){const g=S(this),$=g?.$flags$;if($&&!($&8)&&$&128&&d!==c){const m=this,k=(u=e.$watchers$)==null?void 0:u[l];k?.forEach(Mt=>{m[Mt]!=null&&m[Mt].call(m,d,c,l)})}return}}const h=Object.getOwnPropertyDescriptor(i,f);d=d===null&&typeof this[f]=="boolean"?!1:d,d!==this[f]&&(!h.get||h.set)&&(this[f]=d)})},t.observedAttributes=Array.from(new Set([...Object.keys((o=e.$watchers$)!=null?o:{}),...a.filter(([l,c])=>c[0]&15).map(([l,c])=>{var d;const u=c[1]||l;return r.set(u,l),c[0]&512&&((d=e.$attrsToReflect$)==null||d.push([l,u])),u})]))}}return t},Et=async(t,e,n,s)=>{let o;if((e.$flags$&32)===0){e.$flags$|=32;{o=t.constructor;const r=t.localName;customElements.whenDefined(r).then(()=>e.$flags$|=128)}if(o&&o.style){let r;typeof o.style=="string"&&(r=o.style);const l=lt(n);if(!M.has(l)){const c=x("registerStyles",n.$tagName$);Jt(l,r,!!(n.$flags$&1)),c()}}}const i=e.$ancestorComponent$,a=()=>Y(e,!0);i&&i["s-rc"]?i["s-rc"].push(a):a()},ge=(t,e)=>{},$e=t=>{{const e=S(t),n=e.$cmpMeta$,s=x("connectedCallback",n.$tagName$);if(e.$flags$&1)e?.$lazyInstance$||e?.$onReadyPromise$&&e.$onReadyPromise$.then(()=>ge());else{e.$flags$|=1;{let o=t;for(;o=o.parentNode||o.host;)if(o["s-p"]){St(e,e.$ancestorComponent$=o);break}}n.$members$&&Object.entries(n.$members$).map(([o,[i]])=>{if(i&31&&t.hasOwnProperty(o)){const a=t[o];delete t[o],t[o]=a}}),T.initializeNextTick?D(()=>Et(t,e,n)):Et(t,e,n)}s()}},ve=async t=>{S(t),E.has(t)&&E.delete(t),t.shadowRoot&&E.has(t.shadowRoot)&&E.delete(t.shadowRoot)},me=(t,e)=>{const n={$flags$:e[0],$tagName$:e[1]};n.$members$=e[2],n.$watchers$=t.$watchers$,n.$attrsToReflect$=[];const s=t.prototype.connectedCallback,o=t.prototype.disconnectedCallback;return Object.assign(t.prototype,{__hasHostListenerAttached:!1,__registerHost(){Ht(this,n)},connectedCallback(){this.__hasHostListenerAttached||(S(this),this.__hasHostListenerAttached=!0),$e(this),s&&s.call(this)},disconnectedCallback(){ve(this),o&&o.call(this)},__attachShadow(){if(!this.shadowRoot)Qt.call(this,n);else if(this.shadowRoot.mode!=="open")throw new Error(`Unable to re-use existing shadow root for ${n.$tagName$}! Mode is set to ${this.shadowRoot.mode} but Stencil only supports open shadow roots.`)}}),t.is=n.$tagName$,pe(t,n)};let K;const ye=()=>{if(typeof window>"u")return new Map;if(!K){const t=window;t.Ionicons=t.Ionicons||{},K=t.Ionicons.map=t.Ionicons.map||new Map}return K},we=t=>{let e=Q(t.src);return e||(e=bt(t.name,t.icon,t.mode,t.ios,t.md),e?Se(e,t):t.icon&&(e=Q(t.icon),e||(e=Q(t.icon[t.mode]),e))?e:null)},Se=(t,e)=>{const n=ye().get(t);if(n)return n;try{return Wt(`svg/${t}.svg`)}catch(s){console.log("e",s),console.warn(`[Ionicons Warning]: Could not load icon with name "${t}". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to the icon component.`,e)}},bt=(t,e,n,s,o)=>(n=(n&&j(n))==="ios"?"ios":"md",s&&n==="ios"?t=j(s):o&&n==="md"?t=j(o):(!t&&e&&!At(e)&&(t=e),H(t)&&(t=j(t))),!H(t)||t.trim()===""||t.replace(/[a-z]|-|\d/gi,"")!==""?null:t),Q=t=>H(t)&&(t=t.trim(),At(t))?t:null,At=t=>t.length>0&&/(\/|\.)/.test(t),H=t=>typeof t=="string",j=t=>t.toLowerCase(),xe=(t,e=[])=>{const n={};return e.forEach(s=>{t.hasAttribute(s)&&(t.getAttribute(s)!==null&&(n[s]=t.getAttribute(s)),t.removeAttribute(s))}),n},ke=t=>t&&t.dir!==""?t.dir.toLowerCase()==="rtl":document?.dir.toLowerCase()==="rtl",Ee=t=>{const e=document.createElement("div");e.innerHTML=t;for(let s=e.childNodes.length-1;s>=0;s--)e.childNodes[s].nodeName.toLowerCase()!=="svg"&&e.removeChild(e.childNodes[s]);const n=e.firstElementChild;if(n&&n.nodeName.toLowerCase()==="svg"){const s=n.getAttribute("class")||"";if(n.setAttribute("class",(s+" s-ion-icon").trim()),_t(n))return e.innerHTML}return""},_t=t=>{if(t.nodeType===1){if(t.nodeName.toLowerCase()==="script")return!1;for(let e=0;e<t.attributes.length;e++){const n=t.attributes[e].name;if(H(n)&&n.toLowerCase().indexOf("on")===0)return!1}for(let e=0;e<t.childNodes.length;e++)if(!_t(t.childNodes[e]))return!1}return!0},be=t=>t.startsWith("data:image/svg+xml"),Ae=t=>t.indexOf(";utf8,")!==-1,_=new Map,Lt=new Map;let J;function N(t){return _.set(t,""),""}const _e=(t,e)=>{const n=Lt.get(t);return n||(typeof fetch<"u"&&typeof document<"u"?be(t)&&Ae(t)?Promise.resolve(Le(t)):Te(t,e):Promise.resolve(N(t)))};function Le(t){J||(J=new DOMParser);const n=J.parseFromString(t,"text/html").querySelector("svg");if(n)return _.set(t,n.outerHTML),n.outerHTML;throw new Error(`Could not parse svg from ${t}`)}function Te(t,e){const n=fetch(t).then(s=>s.text().then(o=>{o&&e!==!1&&(o=Ee(o));const i=o||"";return _.set(t,i),i}).catch(()=>N(t))).catch(()=>N(t));return Lt.set(t,n),n}const Ce=":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;box-sizing:content-box !important}:host .ionicon{stroke:currentColor}.ionicon-fill-none{fill:none}.ionicon-stroke-width{stroke-width:var(--ionicon-stroke-width, 32px)}.icon-inner,.ionicon,svg{display:block;height:100%;width:100%}@supports (background: -webkit-named-image(i)){:host(.icon-rtl) .icon-inner{transform:scaleX(-1)}}@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])){:host(.icon-rtl) .icon-inner{transform:scaleX(-1)}}:host(.flip-rtl):host-context([dir='rtl']) .icon-inner{transform:scaleX(-1)}@supports selector(:dir(rtl)){:host(.flip-rtl:dir(rtl)) .icon-inner{transform:scaleX(-1)}:host(.flip-rtl:dir(ltr)) .icon-inner{transform:scaleX(1)}}:host(.icon-small){font-size:1.125rem !important}:host(.icon-large){font-size:2rem !important}:host(.ion-color){color:var(--ion-color-base) !important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}",Me=me(class extends Ut{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.iconName=null,this.inheritedAttributes={},this.didLoadIcon=!1,this.isVisible=!1,this.mode=Ie(),this.lazy=!1,this.sanitize=!0}componentWillLoad(){this.inheritedAttributes=xe(this.el,["aria-label"])}connectedCallback(){this.waitUntilVisible(this.el,"50px",()=>{this.isVisible=!0,this.loadIcon()})}componentDidLoad(){this.didLoadIcon||this.loadIcon()}disconnectedCallback(){this.io&&(this.io.disconnect(),this.io=void 0)}waitUntilVisible(e,n,s){if(!!!(this.lazy&&typeof window<"u"&&window.IntersectionObserver))return s();const i=this.io=new window.IntersectionObserver(a=>{a[0].isIntersecting&&(i.disconnect(),this.io=void 0,s())},{rootMargin:n});i.observe(e)}loadIcon(){if(this.isVisible){const e=we(this);e&&(_.has(e)?this.svgContent=_.get(e):_e(e,this.sanitize).then(()=>this.svgContent=_.get(e)),this.didLoadIcon=!0)}this.iconName=bt(this.name,this.icon,this.mode,this.ios,this.md)}render(){const{flipRtl:e,iconName:n,inheritedAttributes:s,el:o}=this,i=this.mode||"md",a=n?(n.includes("arrow")||n.includes("chevron"))&&e!==!1:!1,r=e||a;return O(dt,Object.assign({key:"0578c899781ca145dd8205acd9670af39b57cf2e",role:"img",class:Object.assign(Object.assign({[i]:!0},Oe(this.color)),{[`icon-${this.size}`]:!!this.size,"flip-rtl":r,"icon-rtl":r&&ke(o)})},s),this.svgContent?O("div",{class:"icon-inner",innerHTML:this.svgContent}):O("div",{class:"icon-inner"}))}static get assetsDirs(){return["svg"]}get el(){return this}static get watchers(){return{name:["loadIcon"],src:["loadIcon"],icon:["loadIcon"],ios:["loadIcon"],md:["loadIcon"]}}static get style(){return Ce}},[1,"ion-icon",{mode:[1025],color:[1],ios:[1],md:[1],flipRtl:[4,"flip-rtl"],name:[513],src:[1],icon:[8],size:[1],lazy:[4],sanitize:[4],svgContent:[32],isVisible:[32]},void 0,{name:["loadIcon"],src:["loadIcon"],icon:["loadIcon"],ios:["loadIcon"],md:["loadIcon"]}]),Ie=()=>typeof document<"u"&&document.documentElement.getAttribute("mode")||"md",Oe=t=>t?{"ion-color":!0,[`ion-color-${t}`]:!0}:null;function qe(){if(typeof customElements>"u")return;["ion-icon"].forEach(e=>{e==="ion-icon"&&(customElements.get(e)||customElements.define(e,Me))})}const Pe=qe,ze="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='m112 184 144 144 144-144' stroke-linecap='round' stroke-linejoin='round' stroke-width='48px' class='ionicon-fill-none'/></svg>",He="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='m289.94 256 95-95A24 24 0 0 0 351 127l-95 95-95-95a24 24 0 0 0-34 34l95 95-95 95a24 24 0 1 0 34 34l95-95 95 95a24 24 0 0 0 34-34Z'/></svg>",je="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M256 32C132.3 32 32 134.9 32 261.7c0 101.5 64.2 187.5 153.2 217.9a17.6 17.6 0 0 0 3.8.4c8.3 0 11.5-6.1 11.5-11.4 0-5.5-.2-19.9-.3-39.1a102.4 102.4 0 0 1-22.6 2.7c-43.1 0-52.9-33.5-52.9-33.5-10.2-26.5-24.9-33.6-24.9-33.6-19.5-13.7-.1-14.1 1.4-14.1h.1c22.5 2 34.3 23.8 34.3 23.8 11.2 19.6 26.2 25.1 39.6 25.1a63 63 0 0 0 25.6-6c2-14.8 7.8-24.9 14.2-30.7-49.7-5.8-102-25.5-102-113.5 0-25.1 8.7-45.6 23-61.6-2.3-5.8-10-29.2 2.2-60.8a18.6 18.6 0 0 1 5-.5c8.1 0 26.4 3.1 56.6 24.1a208.2 208.2 0 0 1 112.2 0c30.2-21 48.5-24.1 56.6-24.1a18.6 18.6 0 0 1 5 .5c12.2 31.6 4.5 55 2.2 60.8 14.3 16.1 23 36.6 23 61.6 0 88.2-52.4 107.6-102.3 113.3 8 7.1 15.2 21.1 15.2 42.5 0 30.7-.3 55.5-.3 63 0 5.4 3.1 11.5 11.4 11.5a19.4 19.4 0 0 0 4-.4C415.9 449.2 480 363.1 480 261.7 480 134.9 379.7 32 256 32'/></svg>",Ue="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M444.17 32H70.28C49.85 32 32 46.7 32 66.89v374.72C32 461.91 49.85 480 70.28 480h373.78c20.54 0 35.94-18.21 35.94-38.39V66.89C480.12 46.7 464.6 32 444.17 32m-273.3 373.43h-64.18V205.88h64.18ZM141 175.54h-.46c-20.54 0-33.84-15.29-33.84-34.43 0-19.49 13.65-34.42 34.65-34.42s33.85 14.82 34.31 34.42c-.01 19.14-13.31 34.43-34.66 34.43m264.43 229.89h-64.18V296.32c0-26.14-9.34-44-32.56-44-17.74 0-28.24 12-32.91 23.69-1.75 4.2-2.22 9.92-2.22 15.76v113.66h-64.18V205.88h64.18v27.77c9.34-13.3 23.93-32.44 57.88-32.44 42.13 0 74 27.77 74 87.64Z'/></svg>",Re="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M496 109.5a201.8 201.8 0 0 1-56.55 15.3 97.5 97.5 0 0 0 43.33-53.6 197.7 197.7 0 0 1-62.56 23.5A99.14 99.14 0 0 0 348.31 64c-54.42 0-98.46 43.4-98.46 96.9a93.2 93.2 0 0 0 2.54 22.1 280.7 280.7 0 0 1-203-101.3A95.7 95.7 0 0 0 36 130.4c0 33.6 17.53 63.3 44 80.7A97.5 97.5 0 0 1 35.22 199v1.2c0 47 34 86.1 79 95a100.8 100.8 0 0 1-25.94 3.4 94.4 94.4 0 0 1-18.51-1.8c12.51 38.5 48.92 66.5 92.05 67.3A199.6 199.6 0 0 1 39.5 405.6a203 203 0 0 1-23.5-1.4A278.7 278.7 0 0 0 166.74 448c181.36 0 280.44-147.7 280.44-275.8 0-4.2-.11-8.4-.31-12.5A198.5 198.5 0 0 0 496 109.5'/></svg>",Be="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M508.64 148.79c0-45-33.1-81.2-74-81.2C379.24 65 322.74 64 265 64h-18c-57.6 0-114.2 1-169.6 3.6C36.6 67.6 3.5 104 3.5 149 1 184.59-.06 220.19 0 255.79q-.15 53.4 3.4 106.9c0 45 33.1 81.5 73.9 81.5 58.2 2.7 117.9 3.9 178.6 3.8q91.2.3 178.6-3.8c40.9 0 74-36.5 74-81.5 2.4-35.7 3.5-71.3 3.4-107q.34-53.4-3.26-106.9M207 353.89v-196.5l145 98.2Z'/></svg>",De="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M80 160h352M80 256h352M80 352h352' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>",We="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M221.09 64a157.09 157.09 0 1 0 157.09 157.09A157.1 157.1 0 0 0 221.09 64Z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M338.29 338.29 448 448' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>",Xe="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' class='ionicon'><path d='M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64Z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 128v144h96' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>",Tt="menu-outline",Ze="close",Fe=()=>{const t=document.querySelector(".site-header__toggle");if(!t)return;const e=document.querySelector(t.dataset.target);if(!e)return;const n=()=>{if(!e.classList.contains("is-hidden")){e.classList.add("is-hidden"),t.setAttribute("aria-expanded","false");const s=t.querySelector("ion-icon");s&&(s.name=Tt)}};t.addEventListener("click",()=>{const s=t.getAttribute("aria-expanded")==="true";e.classList.toggle("is-hidden"),t.setAttribute("aria-expanded",s?"false":"true");const o=t.querySelector("ion-icon");o&&(o.name=s?Tt:Ze)}),document.addEventListener("click",s=>{const o=e.contains(s.target),i=t.contains(s.target);!o&&!i&&n()}),document.addEventListener("keydown",s=>{s.key==="Escape"&&n()})},Ge={category:"data-category",categoryId:"data-category-id",emitMetadata:"data-emit-metadata",inputPosition:"data-input-position",lang:"data-lang",loading:"data-loading",mapping:"data-mapping",reactionsEnabled:"data-reactions-enabled",repo:"data-repo",repoId:"data-repo-id",strict:"data-strict",term:"data-term",theme:"data-theme"},Ye=t=>{if(!t||t.dataset.giscusLoaded==="true")return;const e=document.createElement("script");e.src=t.dataset.giscusScriptSrc||"https://giscus.app/client.js",e.async=!0,e.crossOrigin="anonymous";for(const[n,s]of Object.entries(Ge)){const o=t.dataset[`giscus${n.charAt(0).toUpperCase()}${n.slice(1)}`];o&&e.setAttribute(s,o)}t.append(e),t.dataset.giscusLoaded="true"},Ke=()=>{const t=document.querySelectorAll("[data-comments-collapsible]");t.length&&t.forEach(e=>{const n=e.querySelector("[data-comments-toggle]"),s=e.querySelector("[data-comments-panel]"),o=e.querySelector("[data-giscus-mount]");!n||!s||!o||n.addEventListener("click",()=>{const a=!(n.getAttribute("aria-expanded")==="true");n.setAttribute("aria-expanded",a?"true":"false"),e.classList.toggle("is-open",a),s.hidden=!a,a&&Ye(o)})})},Qe=()=>{const t=document.querySelector("#main-header");if(!t)return;const e=()=>{if(window.scrollY>8){t.classList.add("is-scrolled");return}t.classList.remove("is-scrolled")};e(),window.addEventListener("scroll",e,{passive:!0})},Je=()=>{const t=document.querySelectorAll("[data-series-collapsible]");t.length&&t.forEach(e=>{const n=e.querySelector("[data-series-toggle]"),s=e.querySelector("[data-series-panel]");if(!n||!s)return;const o=()=>{const a=n.getAttribute("aria-expanded")==="true";e.classList.toggle("is-open",a),s.hidden=!a};o(),n.addEventListener("click",()=>{const a=n.getAttribute("aria-expanded")==="true";n.setAttribute("aria-expanded",a?"false":"true"),o()});const i=e.querySelectorAll("[data-series-overflow-toggle]");i.length&&i.forEach(a=>{a.addEventListener("click",()=>{const r=a.dataset.seriesOverflowGroup,l=r?`[data-series-overflow-item][data-series-overflow-group="${r}"]`:"[data-series-overflow-item]";e.querySelectorAll(l).forEach(d=>{d.hidden=!1}),a.hidden=!0})})})},Ne=()=>{const t=document.querySelector("[data-reading-progress]"),e=document.querySelector(".content");if(!t||!e)return;const n=()=>{const s=e.offsetTop,o=e.offsetHeight,i=window.innerHeight,a=window.scrollY,r=Math.max(o-i,1),c=Math.min(Math.max(a-s,0),r)/r*100;t.style.transform=`scaleX(${c/100})`};n(),window.addEventListener("scroll",n,{passive:!0}),window.addEventListener("resize",n)},Ve="[data-search-root]";let U;const w=t=>(t||"").toString().normalize("NFKD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9\s-]/g," ").replace(/\s+/g," ").trim(),tn=t=>w(t).split(" ").filter(e=>e.length>0),en=t=>[...new Set(tn(t))],nn=(t,e)=>{const n=t.date?Date.parse(t.date):0,s=e.date?Date.parse(e.date):0;return Number.isNaN(n)||Number.isNaN(s)?0:s-n},sn=t=>{const e=t.title||"",n=t.content||"",s=Array.isArray(t.tags)?t.tags:[],o=Array.isArray(t.categories)?t.categories:[];return{...t,title:e,content:n,tags:s,categories:o,normalizedTitle:w(e),normalizedContent:w(n),normalizedTags:s.map(w).filter(Boolean),normalizedCategories:o.map(w).filter(Boolean)}},on=async t=>(U||(U=fetch(t,{headers:{Accept:"application/json"}}).then(e=>{if(!e.ok)throw new Error(`Search index request failed with ${e.status}`);return e.json()}).then(e=>e.map(sn)).catch(e=>{throw U=void 0,e})),U),rn=(t,e,n)=>{let s=0;t.normalizedTitle.includes(e)&&(s+=140),t.normalizedContent.includes(e)&&(s+=30),n.forEach(i=>{t.normalizedTitle.includes(i)&&(s+=60),t.normalizedTags.some(a=>a.includes(i))&&(s+=30),t.normalizedCategories.some(a=>a.includes(i))&&(s+=18),t.normalizedContent.includes(i)&&(s+=10)});const o=n.filter(i=>t.normalizedTitle.includes(i)||t.normalizedTags.some(a=>a.includes(i))||t.normalizedCategories.some(a=>a.includes(i))||t.normalizedContent.includes(i)).length;return o===0?0:(o===n.length&&(s+=24),t.type==="post"&&(s+=4),s)},an=(t,e,n)=>{const s=w(e),o=en(e);return!s||o.length===0?[]:t.map(i=>({searchDocument:i,score:rn(i,s,o)})).filter(i=>i.score>0).sort((i,a)=>a.score-i.score||nn(i.searchDocument,a.searchDocument)).slice(0,n).map(i=>i.searchDocument)},cn=(t,e,n)=>{const s=t.replace(/\s+/g," ").trim();if(!s)return"";const o=w(e),a=w(s).indexOf(o);if(a===-1)return s.length>n?`${s.slice(0,n).trimEnd()}...`:s;const r=Math.max(a-Math.floor(n/3),0),l=Math.min(r+n,s.length),c=r>0?"...":"",d=l<s.length?"...":"";return`${c}${s.slice(r,l).trim()}${d}`},ln=t=>{const e=[];return t.type&&e.push(t.type==="post"?"Post":"Page"),t.tags.length>0&&e.push(t.tags.slice(0,2).join(", ")),e.join(" • ")},Ct=(t,e,n,s)=>{const o=t.querySelector("[data-search-results]"),i=t.querySelector("[data-search-status]");o.innerHTML="",i.textContent=s,e.forEach(a=>{const r=window.document.createElement("li");r.className="site-search__result-item";const l=window.document.createElement("a");l.className="site-search__result-link",l.href=a.url;const c=window.document.createElement("span");c.className="site-search__result-title",c.textContent=a.title,l.append(c);const d=ln(a);if(d){const h=window.document.createElement("span");h.className="site-search__result-meta",h.textContent=d,l.append(h)}const u=Number(t.dataset.searchContentPreviewLength||"140"),f=cn(a.content,n,u);if(f){const h=window.document.createElement("span");h.className="site-search__result-snippet",h.textContent=f,l.append(h)}r.append(l),o.append(r)})},dn=t=>{const e=t.querySelector("[data-search-panel]"),n=t.querySelector("[data-search-input]");e.hidden=!1,n.setAttribute("aria-expanded","true")},L=t=>{const e=t.querySelector("[data-search-panel]"),n=t.querySelector("[data-search-input]");e.hidden=!0,n.setAttribute("aria-expanded","false")},V=(t,e)=>{const n=[...t.querySelectorAll(".site-search__result-link")];if(n.length===0)return;const s=n.findIndex(i=>i===window.document.activeElement),o=s===-1?e>0?0:n.length-1:(s+e+n.length)%n.length;n[o].focus()},un=t=>{const e=t.querySelector("[data-search-input]"),n=t.querySelector("[data-search-clear]"),s=t.querySelector(".site-search__form"),o=t.dataset.searchUrl,i=Number(t.dataset.searchMaxResults||"8"),a=Number(t.dataset.searchMinQueryLength||"2"),r=t.dataset.searchIdleText||"Start typing to search the site.",l=t.dataset.searchTooShortText||"Type at least %d characters to search.",c=t.dataset.searchLoadingText||"Loading search index...",d=t.dataset.searchEmptyText||"No results found.",u=t.dataset.searchErrorText||"Search is unavailable right now.",f=p=>{const m=t.querySelector("[data-search-status]");m.textContent=p},h=()=>{t.querySelector("[data-search-results]").innerHTML=""},g=()=>{n.hidden=e.value.length===0},$=async()=>{const p=e.value.trim();if(g(),p.length===0){h(),f(r),L(t);return}if(dn(t),p.length<a){h(),f(l.replace("%d",`${a}`));return}f(c);try{const m=await on(o),k=an(m,p,i);if(k.length===0){Ct(t,[],p,d);return}Ct(t,k,p,`${k.length} result${k.length===1?"":"s"}`)}catch{h(),f(u)}};e.addEventListener("focus",()=>{e.value.trim().length>0&&$()}),e.addEventListener("input",()=>{$()}),e.addEventListener("keydown",p=>{p.key==="ArrowDown"&&(p.preventDefault(),V(t,1)),p.key==="Escape"&&L(t)}),t.addEventListener("keydown",p=>{if(p.key==="Escape"&&(L(t),e.focus()),p.key==="ArrowDown"&&p.target.matches(".site-search__result-link")&&(p.preventDefault(),V(t,1)),p.key==="ArrowUp"&&p.target.matches(".site-search__result-link")){if(p.preventDefault(),p.target===t.querySelector(".site-search__result-link")){e.focus();return}V(t,-1)}}),n.addEventListener("click",()=>{e.value="",g(),h(),f(r),L(t),e.focus()}),s.addEventListener("submit",p=>{p.preventDefault();const m=t.querySelector(".site-search__result-link");if(m){window.location.assign(m.href);return}$()}),window.document.addEventListener("click",p=>{t.contains(p.target)||L(t)})},fn=()=>{const t=window.document.querySelectorAll(Ve);t.length!==0&&t.forEach(un)};Ot({"chevron-down-outline":ze,close:He,"logo-github":je,"logo-linkedin":Ue,"logo-twitter":Re,"logo-youtube":Be,"menu-outline":De,"search-outline":We,"time-outline":Xe}),Pe(),Fe(),Ke(),Qe(),Je(),Ne(),fn()})();
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imdhemy-jekyll-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mohamad Eldhemy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-03-11 00:00:00.000000000 Z
11
+ date: 2026-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -95,6 +95,7 @@ files:
95
95
  - _includes/post-tags.html
96
96
  - _includes/reading-progress.html
97
97
  - _includes/related-posts.html
98
+ - _includes/site-search.html
98
99
  - _includes/social-media-meta.html
99
100
  - _includes/social.html
100
101
  - _includes/testimonials.html