jekyll-theme-amethyst 0.5.5 → 0.5.6

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: b888148ddeed309539dd8b1cca933e608fec49c80bf193eb7501a3d91fb4ff1d
4
- data.tar.gz: 7f39a9b28ebf484945fa38a76eb9c5ae0caa0959ef49c7ed1bad967a9ea3ed38
3
+ metadata.gz: bc62c023ae273db79b3acc529dddc7135d43bfe271fb6881f1bb40ddd1cfe8e2
4
+ data.tar.gz: e942d04b53cebbc392adeb2568e2c76cc89375c4d2856088e7b3b4882af6536f
5
5
  SHA512:
6
- metadata.gz: db75864028d8e5dc0eb1f7ff6d7a2d5a522c5fe56253cdbda47cd3efeda2cd05c06a3b73ed49200c2504a69496e4d8e7d92ab30774b8955320474557b23fce13
7
- data.tar.gz: acf904c9a0b6278f2f2e56e4d8a78f7e54f5bff0cce1865f7bcc8a267263ec60228b162ebce7e3a070a81557ff86f5b2177e48a1ba19df9a38d461339620d4d3
6
+ metadata.gz: 1d408de5207f6847843de164aefefe67e2625788d31cef75e7f3a01d0c9c259d7750465e3efef0acf3572e2561002b5852a7a05b3f2951c009abf6d0715a4a8a
7
+ data.tar.gz: 31238e7c423a739c1a779ad90a98192efa45d6b7898fe958ddac5f6b69bf71548ac882a705d7e4f5a8115837b972a75d8a6f5f316deec5d5c7d320732c29354c
@@ -1,12 +1,12 @@
1
- /*! https://github.com/jquery/typesense-minibar 1.0.2 */
1
+ /*! https://github.com/jquery/typesense-minibar 1.1.1 */
2
2
  .tsmb-form {
3
3
  --tsmb-size-edge: 1px;
4
4
  --tsmb-size-radius: 3px;
5
5
  --tsmb-size-highlight: 2px;
6
6
  --tsmb-size-base: 1rem;
7
7
  --tsmb-size-sm: 0.8rem;
8
- --tsmb-size-half: calc( var(--tsmb-size-sm) * 0.5 );
9
- --tsmb-size-input: calc( var(--tsmb-size-base) * 1.2 );
8
+ --tsmb-size-half: calc(var(--tsmb-size-sm)/2);
9
+ --tsmb-size-input: calc(var(--tsmb-size-base) * 1.2);
10
10
 
11
11
  --tsmb-color-base-background: #fff;
12
12
  --tsmb-color-base30: #333;
@@ -24,10 +24,12 @@
24
24
  position: relative;
25
25
  width: 20rem;
26
26
  max-width: 100%;
27
+ padding: 0;
27
28
  color: var(--tsmb-color-base30);
28
29
  }
29
30
 
30
31
  .tsmb-form input[type=search] {
32
+ box-sizing: border-box;
31
33
  -webkit-appearance: none;
32
34
  -moz-appearance: none;
33
35
  appearance: none;
@@ -68,15 +70,22 @@
68
70
  background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='654 -372 1664 1664' width='20' height='20'><path d='M1806,332c0-123.3-43.8-228.8-131.5-316.5C1586.8-72.2,1481.3-116,1358-116s-228.8,43.8-316.5,131.5 C953.8,103.2,910,208.7,910,332s43.8,228.8,131.5,316.5C1129.2,736.2,1234.7,780,1358,780s228.8-43.8,316.5-131.5 C1762.2,560.8,1806,455.3,1806,332z M2318,1164c0,34.7-12.7,64.7-38,90s-55.3,38-90,38c-36,0-66-12.7-90-38l-343-342 c-119.3,82.7-252.3,124-399,124c-95.3,0-186.5-18.5-273.5-55.5s-162-87-225-150s-113-138-150-225S654,427.3,654,332 s18.5-186.5,55.5-273.5s87-162,150-225s138-113,225-150S1262.7-372,1358-372s186.5,18.5,273.5,55.5s162,87,225,150s113,138,150,225 S2062,236.7,2062,332c0,146.7-41.3,279.7-124,399l343,343C2305.7,1098.7,2318,1128.7,2318,1164z'/></svg>") 0 50% / contain no-repeat;
69
71
  position: absolute;
70
72
  top: calc(var(--tsmb-size-sm) + var(--tsmb-size-edge));
71
- left: var(--tsmb-size-base);
73
+ left: var(--tsmb-size-sm);
72
74
  width: var(--tsmb-size-base);
73
75
  height: var(--tsmb-size-input);
74
76
  opacity: 0.5;
75
77
  }
76
78
 
79
+ /* js only */
80
+ .tsmb-form--open input[type=search],
81
+ .tsmb-form--slash input[type=search] {
82
+ padding-right: calc(var(--tsmb-size-sm) + var(--tsmb-size-base) + var(--tsmb-size-base));
83
+ }
84
+
77
85
  .tsmb-icon-close {
86
+ box-sizing: border-box;
78
87
  position: absolute;
79
- top: calc(50% - var(--tsmb-size-base) / 2);
88
+ top: calc(50% - var(--tsmb-size-base)/2);
80
89
  right: var(--tsmb-size-base);
81
90
  width: var(--tsmb-size-base);
82
91
  height: var(--tsmb-size-base);
@@ -95,15 +104,16 @@
95
104
  content: '/';
96
105
  display: inline-block;
97
106
  position: absolute;
98
- top: calc(var(--tsmb-size-sm) + var(--tsmb-size-edge) + (var(--tsmb-size-input) / 2) - 1em - var(--tsmb-size-edge));
99
- right: var(--tsmb-size-base);
100
- width: 2em;
101
- height: 2em;
107
+ top: calc(50% - (var(--tsmb-size-input) + var(--tsmb-size-sm)/2)/2);
108
+ right: var(--tsmb-size-sm);
109
+ width: calc(var(--tsmb-size-input) + var(--tsmb-size-sm)/2);
110
+ height: calc(var(--tsmb-size-input) + var(--tsmb-size-sm)/2);
102
111
 
103
- font-size: var(--tsmb-size-sm);
104
- line-height: 2;
112
+ font-size: var(--tsmb-size-base);
113
+ line-height: calc(var(--tsmb-size-input) + var(--tsmb-size-sm)/2);
105
114
  text-align: center;
106
115
 
116
+ background: var(--tsmb-color-base-background);
107
117
  border: var(--tsmb-size-edge) solid var(--tsmb-color-base90);
108
118
  border-radius: var(--tsmb-size-radius);
109
119
  color: var(--tsmb-color-base90);
@@ -179,15 +189,14 @@
179
189
  padding: var(--tsmb-size-base);
180
190
  }
181
191
 
182
- .tsmb-foot {
192
+ .tsmb-foot,
193
+ .tsmb-foot:hover {
183
194
  display: block;
184
195
  text-align: right;
185
196
  font-size: var(--tsmb-size-sm);
186
197
  line-height: 18px;
187
198
  padding: var(--tsmb-size-half) var(--tsmb-size-sm);
188
199
  box-shadow: 0 0 10px rgba(0,0,0,0.12);
189
- }
190
- .tsmb-foot:hover {
191
200
  text-decoration: none;
192
201
  }
193
202
  .tsmb-foot::before {
@@ -1,9 +1,23 @@
1
- /*! https://github.com/jquery/typesense-minibar 1.0.2 */
1
+ /*! https://github.com/jquery/typesense-minibar 1.1.1 */
2
2
  globalThis.tsminibar = function tsminibar (form) {
3
- const { origin, key, collection } = form.dataset;
3
+ const { origin, collection } = form.dataset;
4
4
  const group = !!form.dataset.group;
5
5
  const cache = new Map();
6
- const state = { query: '', hits: [], cursor: -1, open: false };
6
+ const state = { query: '', cursor: -1, open: false, hits: [] };
7
+ const searchParams = new URLSearchParams({
8
+ per_page: '5',
9
+ query_by: 'hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3,hierarchy.lvl4,hierarchy.lvl5,content',
10
+ include_fields: 'hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3,hierarchy.lvl4,hierarchy.lvl5,content,url_without_anchor,url,id',
11
+ highlight_full_fields: 'hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3,hierarchy.lvl4,hierarchy.lvl5,content',
12
+ group_by: 'url_without_anchor',
13
+ group_limit: '1',
14
+ sort_by: 'item_priority:desc',
15
+ snippet_threshold: '8',
16
+ highlight_affix_num_tokens: '12',
17
+ 'x-typesense-api-key': form.dataset.key,
18
+ ...Object.fromEntries(new URLSearchParams(form.dataset.searchParams))
19
+ });
20
+ const noResults = form.dataset.noResults || "No results for '{}'.";
7
21
 
8
22
  const input = form.querySelector('input[type=search]');
9
23
  const listbox = document.createElement('div');
@@ -12,11 +26,11 @@ globalThis.tsminibar = function tsminibar (form) {
12
26
  input.after(listbox);
13
27
 
14
28
  let preconnect = null;
15
- input.addEventListener('focus', () => {
29
+ input.addEventListener('focus', function () {
16
30
  if (!preconnect) {
17
31
  preconnect = document.createElement('link');
18
32
  preconnect.rel = 'preconnect';
19
- preconnect.crossOrigin = 'anonymous'; // for fetch mode:cors,credentials:omit
33
+ preconnect.crossOrigin = 'anonymous'; // match fetch cors,credentials:omit
20
34
  preconnect.href = origin;
21
35
  document.head.append(preconnect);
22
36
  }
@@ -25,19 +39,12 @@ globalThis.tsminibar = function tsminibar (form) {
25
39
  render();
26
40
  }
27
41
  });
28
- input.addEventListener('click', () => {
29
- if (!state.open && state.hits.length) {
30
- state.open = true;
31
- render();
32
- }
33
- });
34
- input.addEventListener('input', async () => {
42
+ input.addEventListener('input', async function () {
35
43
  const query = state.query = input.value;
36
44
  if (!query) {
37
45
  state.hits = []; // don't leak old hits on focus
38
46
  state.cursor = -1;
39
- close();
40
- return;
47
+ return close();
41
48
  }
42
49
  const hits = await search(query);
43
50
  if (state.query === query) { // ignore non-current query
@@ -47,8 +54,14 @@ globalThis.tsminibar = function tsminibar (form) {
47
54
  render();
48
55
  }
49
56
  });
50
- input.addEventListener('keydown', (e) => {
51
- if (!(e.altKey || e.ctrlKey || e.metaKey || e.shiftKey)) {
57
+ input.addEventListener('click', function () {
58
+ if (!state.open && state.hits.length) {
59
+ state.open = true;
60
+ render();
61
+ }
62
+ });
63
+ input.addEventListener('keydown', function (e) {
64
+ if (!e.altKey && !e.ctrlKey && !e.metaKey && !e.shiftKey) {
52
65
  if (e.code === 'ArrowDown') moveCursor(1);
53
66
  if (e.code === 'ArrowUp') moveCursor(-1);
54
67
  if (e.code === 'Escape') close();
@@ -58,11 +71,15 @@ globalThis.tsminibar = function tsminibar (form) {
58
71
  }
59
72
  }
60
73
  });
61
- form.addEventListener('submit', (e) => {
74
+ form.addEventListener('submit', function (e) {
62
75
  e.preventDefault(); // disable fallback
63
76
  });
64
77
  form.insertAdjacentHTML('beforeend', '<svg viewBox="0 0 12 12" width="20" height="20" aria-hidden="true" class="tsmb-icon-close" style="display: none;"><path d="M9 3L3 9M3 3L9 9"/></svg>');
65
- form.querySelector('.tsmb-icon-close').addEventListener('click', close);
78
+ form.querySelector('.tsmb-icon-close').addEventListener('click', function () {
79
+ input.value = '';
80
+ input.focus();
81
+ close();
82
+ });
66
83
  connect();
67
84
 
68
85
  function close () {
@@ -98,30 +115,19 @@ globalThis.tsminibar = function tsminibar (form) {
98
115
  }
99
116
 
100
117
  async function search (query) {
118
+ let lvl0;
101
119
  let hits = cache.get(query);
102
120
  if (hits) {
103
121
  cache.delete(query);
104
122
  cache.set(query, hits); // LRU
105
123
  return hits;
106
124
  }
125
+ searchParams.set('q', query);
107
126
  const resp = await fetch(
108
- `${origin}/collections/${collection}/documents/search?` + new URLSearchParams({
109
- q: query,
110
- per_page: '5',
111
- query_by: 'hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3,hierarchy.lvl4,hierarchy.lvl5,content',
112
- include_fields: 'hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3,hierarchy.lvl4,hierarchy.lvl5,content,url_without_anchor,url,id',
113
- highlight_full_fields: 'hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3,hierarchy.lvl4,hierarchy.lvl5,content',
114
- group_by: 'url_without_anchor',
115
- group_limit: '1',
116
- sort_by: 'item_priority:desc',
117
- snippet_threshold: '8',
118
- highlight_affix_num_tokens: '12',
119
- 'x-typesense-api-key': key,
120
- }),
127
+ `${origin}/collections/${collection}/documents/search?` + searchParams,
121
128
  { mode: 'cors', credentials: 'omit', method: 'GET' }
122
129
  );
123
130
  const data = await resp.json();
124
- let lvl0;
125
131
  hits = data?.grouped_hits?.map(ghit => {
126
132
  const hit = ghit.hits[0];
127
133
  return {
@@ -146,7 +152,7 @@ globalThis.tsminibar = function tsminibar (form) {
146
152
  listbox.hidden = !state.open;
147
153
  form.classList.toggle('tsmb-form--open', state.open);
148
154
  if (state.open) {
149
- listbox.innerHTML = (state.hits.map((hit, i) => `<div role="option"${i === state.cursor ? ' aria-selected="true"' : ''}>${hit.lvl0 ? `<div class="tsmb-suggestion_group">${hit.lvl0}</div>` : ''}<a href="${hit.url}" tabindex="-1"><div class="tsmb-suggestion_title">${hit.title}</div><div class="tsmb-suggestion_content">${hit.content}</div></a></div>`).join('') || `<div class="tsmb-empty">No results for '${escape(state.query)}'.</div>`) + (form.dataset.foot ? '<a href="https://typesense.org" class="tsmb-foot" title="Search by Typesense"></a>' : '');
155
+ listbox.innerHTML = (state.hits.map((hit, i) => `<div role="option"${i === state.cursor ? ' aria-selected="true"' : ''}>${hit.lvl0 ? `<div class="tsmb-suggestion_group">${hit.lvl0}</div>` : ''}<a href="${hit.url}" tabindex="-1"><div class="tsmb-suggestion_title">${hit.title}</div><div class="tsmb-suggestion_content">${hit.content}</div></a></div>`).join('') || `<div class="tsmb-empty">${noResults.replace('{}', escape(state.query))}</div>`) + (form.dataset.foot ? '<a href="https://typesense.org" class="tsmb-foot" title="Search by Typesense"></a>' : '');
150
156
  }
151
157
  }
152
158
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-amethyst
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5
4
+ version: 0.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Timo Tijhof
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-06-12 00:00:00.000000000 Z
12
+ date: 2023-10-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jekyll
@@ -65,28 +65,28 @@ dependencies:
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.6.1
68
+ version: 0.7.0
69
69
  type: :runtime
70
70
  prerelease: false
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.6.1
75
+ version: 0.7.0
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: jekyll-feed
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.15.1
82
+ version: 0.17.0
83
83
  type: :runtime
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.15.1
89
+ version: 0.17.0
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: jekyll-archives
92
92
  requirement: !ruby/object:Gem::Requirement