rizzo-css 0.0.32 → 0.0.33
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.
- package/README.md +1 -1
- package/package.json +1 -1
- package/scaffold/astro/Search.astro +24 -8
- package/scaffold/svelte/Search.svelte +30 -8
- package/scaffold/vanilla/README-RIZZO.md +1 -1
- package/scaffold/vanilla/components/accordion.html +18 -2
- package/scaffold/vanilla/components/alert.html +18 -2
- package/scaffold/vanilla/components/avatar.html +18 -2
- package/scaffold/vanilla/components/badge.html +18 -2
- package/scaffold/vanilla/components/breadcrumb.html +18 -2
- package/scaffold/vanilla/components/button.html +18 -2
- package/scaffold/vanilla/components/cards.html +18 -2
- package/scaffold/vanilla/components/copy-to-clipboard.html +18 -2
- package/scaffold/vanilla/components/divider.html +18 -2
- package/scaffold/vanilla/components/dropdown.html +18 -2
- package/scaffold/vanilla/components/forms.html +18 -2
- package/scaffold/vanilla/components/icons.html +18 -2
- package/scaffold/vanilla/components/index.html +18 -2
- package/scaffold/vanilla/components/modal.html +18 -2
- package/scaffold/vanilla/components/navbar.html +18 -2
- package/scaffold/vanilla/components/pagination.html +18 -2
- package/scaffold/vanilla/components/progress-bar.html +18 -2
- package/scaffold/vanilla/components/search.html +18 -2
- package/scaffold/vanilla/components/settings.html +18 -2
- package/scaffold/vanilla/components/spinner.html +18 -2
- package/scaffold/vanilla/components/table.html +18 -2
- package/scaffold/vanilla/components/tabs.html +18 -2
- package/scaffold/vanilla/components/theme-switcher.html +18 -2
- package/scaffold/vanilla/components/toast.html +18 -2
- package/scaffold/vanilla/components/tooltip.html +18 -2
- package/scaffold/vanilla/index.html +18 -2
- package/scaffold/vanilla/js/main.js +10 -4
package/README.md
CHANGED
|
@@ -61,7 +61,7 @@ import 'rizzo-css';
|
|
|
61
61
|
**Without a bundler (plain HTML):** Use a CDN. Both unpkg and jsDelivr resolve the package root to the built CSS (via the `unpkg` / `jsdelivr` fields in this package). For reliability or to pin a version, use the explicit path:
|
|
62
62
|
|
|
63
63
|
```html
|
|
64
|
-
<!-- unpkg (pin version: replace @latest with @0.0.
|
|
64
|
+
<!-- unpkg (pin version: replace @latest with @0.0.33 or any version) -->
|
|
65
65
|
<link rel="stylesheet" href="https://unpkg.com/rizzo-css@latest/dist/rizzo.min.css" />
|
|
66
66
|
|
|
67
67
|
<!-- or jsDelivr -->
|
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
import SearchIcon from './icons/Search.astro';
|
|
3
|
+
import Close from './icons/Close.astro';
|
|
3
4
|
interface Props { id?: string; }
|
|
4
5
|
const { id = 'search-main' } = Astro.props;
|
|
5
6
|
---
|
|
@@ -11,8 +12,17 @@ const { id = 'search-main' } = Astro.props;
|
|
|
11
12
|
</button>
|
|
12
13
|
</div>
|
|
13
14
|
<div class="search__overlay" id="{id}-panel" aria-hidden="true" role="dialog" aria-modal="true" data-search-overlay>
|
|
14
|
-
<div class="search__panel">
|
|
15
|
-
<
|
|
15
|
+
<div class="search__panel" role="dialog" aria-modal="true" aria-labelledby="{id}-title" aria-hidden="true" tabindex="-1">
|
|
16
|
+
<h2 id="{id}-title" class="sr-only">Search</h2>
|
|
17
|
+
<div class="search__header">
|
|
18
|
+
<div class="search__input-wrapper">
|
|
19
|
+
<SearchIcon width={20} height={20} class="search__input-icon" aria-hidden="true" />
|
|
20
|
+
<input type="search" class="search__input" placeholder="Search…" aria-label="Search" />
|
|
21
|
+
</div>
|
|
22
|
+
<button type="button" class="search__close-btn" aria-label="Close search" data-search-close>
|
|
23
|
+
<Close width={20} height={20} aria-hidden="true" />
|
|
24
|
+
</button>
|
|
25
|
+
</div>
|
|
16
26
|
<div class="search__results" role="listbox" aria-label="Search results">
|
|
17
27
|
<div class="search__empty">
|
|
18
28
|
<p class="search__empty-text">Start typing to search…</p>
|
|
@@ -41,20 +51,23 @@ const { id = 'search-main' } = Astro.props;
|
|
|
41
51
|
var overlay = search.querySelector('[data-search-overlay]');
|
|
42
52
|
var panel = search.querySelector('.search__panel');
|
|
43
53
|
var input = search.querySelector('.search__input');
|
|
54
|
+
var closeBtn = search.querySelector('[data-search-close]');
|
|
44
55
|
var resultItems = search.querySelectorAll('.search__result-item, [data-search-result-item]');
|
|
45
|
-
if (!trigger || !overlay || !input) return;
|
|
56
|
+
if (!trigger || !overlay || !panel || !input) return;
|
|
46
57
|
var previousActive = null;
|
|
47
58
|
var focusTrapHandler = null;
|
|
48
59
|
function openSearch() {
|
|
49
60
|
previousActive = document.activeElement;
|
|
50
61
|
overlay.setAttribute('aria-hidden', 'false');
|
|
62
|
+
panel.setAttribute('aria-hidden', 'false');
|
|
63
|
+
panel.setAttribute('data-open', 'true');
|
|
51
64
|
trigger.setAttribute('aria-expanded', 'true');
|
|
52
65
|
for (var i = 0; i < resultItems.length; i++) resultItems[i].setAttribute('tabindex', '0');
|
|
53
66
|
input.focus();
|
|
54
67
|
focusTrapHandler = function (e) {
|
|
55
|
-
if (
|
|
68
|
+
if (panel.getAttribute('data-open') !== 'true') return;
|
|
56
69
|
if (e.key === 'Escape') { e.preventDefault(); closeSearch(); return; }
|
|
57
|
-
if (e.key === 'Tab'
|
|
70
|
+
if (e.key === 'Tab') {
|
|
58
71
|
var els = getFocusable(panel);
|
|
59
72
|
if (els.length === 0) return;
|
|
60
73
|
var first = els[0], last = els[els.length - 1], active = document.activeElement;
|
|
@@ -70,16 +83,19 @@ const { id = 'search-main' } = Astro.props;
|
|
|
70
83
|
function closeSearch() {
|
|
71
84
|
document.removeEventListener('keydown', focusTrapHandler);
|
|
72
85
|
focusTrapHandler = null;
|
|
73
|
-
|
|
86
|
+
panel.removeAttribute('data-open');
|
|
87
|
+
panel.setAttribute('aria-hidden', 'true');
|
|
74
88
|
overlay.setAttribute('aria-hidden', 'true');
|
|
75
89
|
trigger.setAttribute('aria-expanded', 'false');
|
|
90
|
+
for (var i = 0; i < resultItems.length; i++) resultItems[i].setAttribute('tabindex', '-1');
|
|
76
91
|
if (previousActive && previousActive.focus) previousActive.focus();
|
|
77
92
|
previousActive = null;
|
|
78
93
|
}
|
|
79
94
|
trigger.addEventListener('click', function () {
|
|
80
|
-
if (
|
|
81
|
-
else
|
|
95
|
+
if (panel.getAttribute('data-open') === 'true') closeSearch();
|
|
96
|
+
else openSearch();
|
|
82
97
|
});
|
|
98
|
+
if (closeBtn) closeBtn.addEventListener('click', closeSearch);
|
|
83
99
|
overlay.addEventListener('click', function (e) {
|
|
84
100
|
if (e.target === overlay) closeSearch();
|
|
85
101
|
});
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
import SearchIcon from './icons/Search.svelte';
|
|
3
|
+
import Close from './icons/Close.svelte';
|
|
4
|
+
|
|
2
5
|
interface Props {
|
|
3
6
|
id?: string;
|
|
4
7
|
}
|
|
@@ -56,6 +59,7 @@
|
|
|
56
59
|
aria-controls="{id}-panel"
|
|
57
60
|
onclick={() => (open = !open)}
|
|
58
61
|
>
|
|
62
|
+
<SearchIcon width={20} height={20} class="search__icon" />
|
|
59
63
|
<span class="search__trigger-text">Search</span>
|
|
60
64
|
</button>
|
|
61
65
|
</div>
|
|
@@ -68,14 +72,32 @@
|
|
|
68
72
|
data-search-overlay
|
|
69
73
|
onclick={(e) => (e.target as HTMLElement) === (e.currentTarget as HTMLElement) && (open = false)}
|
|
70
74
|
>
|
|
71
|
-
<div
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
75
|
+
<div
|
|
76
|
+
class="search__panel"
|
|
77
|
+
role="dialog"
|
|
78
|
+
aria-modal="true"
|
|
79
|
+
aria-labelledby="{id}-title"
|
|
80
|
+
aria-hidden={!open}
|
|
81
|
+
data-open={open ? 'true' : undefined}
|
|
82
|
+
tabindex="-1"
|
|
83
|
+
bind:this={panelEl}
|
|
84
|
+
>
|
|
85
|
+
<h2 id="{id}-title" class="sr-only">Search</h2>
|
|
86
|
+
<div class="search__header">
|
|
87
|
+
<div class="search__input-wrapper">
|
|
88
|
+
<SearchIcon width={20} height={20} class="search__input-icon" aria-hidden="true" />
|
|
89
|
+
<input
|
|
90
|
+
type="search"
|
|
91
|
+
class="search__input"
|
|
92
|
+
placeholder="Search…"
|
|
93
|
+
aria-label="Search"
|
|
94
|
+
bind:value={query}
|
|
95
|
+
/>
|
|
96
|
+
</div>
|
|
97
|
+
<button type="button" class="search__close-btn" aria-label="Close search" onclick={() => (open = false)}>
|
|
98
|
+
<Close width={20} height={20} aria-hidden="true" />
|
|
99
|
+
</button>
|
|
100
|
+
</div>
|
|
79
101
|
<div class="search__results" role="listbox" aria-label="Search results">
|
|
80
102
|
<div class="search__empty">
|
|
81
103
|
<p class="search__empty-text">Start typing to search…</p>
|
|
@@ -13,7 +13,7 @@ If you prefer to load CSS from a CDN instead of the local file, replace the `<li
|
|
|
13
13
|
- `<link rel="stylesheet" href="https://unpkg.com/rizzo-css@latest/dist/rizzo.min.css" />`
|
|
14
14
|
- Or jsDelivr: `https://cdn.jsdelivr.net/npm/rizzo-css@latest/dist/rizzo.min.css`
|
|
15
15
|
|
|
16
|
-
(Replace `@latest` with a specific version, e.g. `@0.0.
|
|
16
|
+
(Replace `@latest` with a specific version, e.g. `@0.0.33`, in production.)
|
|
17
17
|
|
|
18
18
|
The CLI replaces placeholders in `index.html` (e.g. `{{DATA_THEME}}`, `{{TITLE}}`) when you run `rizzo-css init`. The theme selected during init is used on first load when you have no saved preference in the browser.
|
|
19
19
|
|
|
@@ -54,12 +54,22 @@
|
|
|
54
54
|
<div class="search" data-search>
|
|
55
55
|
<div class="search__trigger-wrapper">
|
|
56
56
|
<button type="button" class="search__trigger" aria-label="Open search" aria-expanded="false" aria-controls="search-header-panel">
|
|
57
|
+
<svg class="search__icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
57
58
|
<span class="search__trigger-text">Search</span>
|
|
58
59
|
</button>
|
|
59
60
|
</div>
|
|
60
61
|
<div class="search__overlay" id="search-header-panel" aria-hidden="true" role="dialog" aria-modal="true" data-search-overlay>
|
|
61
|
-
<div class="search__panel">
|
|
62
|
-
<
|
|
62
|
+
<div class="search__panel" role="dialog" aria-modal="true" aria-labelledby="search-header-title" aria-hidden="true" tabindex="-1">
|
|
63
|
+
<h2 id="search-header-title" class="sr-only">Search</h2>
|
|
64
|
+
<div class="search__header">
|
|
65
|
+
<div class="search__input-wrapper">
|
|
66
|
+
<svg class="search__input-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
67
|
+
<input type="search" class="search__input" placeholder="Search…" aria-label="Search" />
|
|
68
|
+
</div>
|
|
69
|
+
<button type="button" class="search__close-btn" aria-label="Close search" data-search-close>
|
|
70
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg>
|
|
71
|
+
</button>
|
|
72
|
+
</div>
|
|
63
73
|
<div class="search__results" role="listbox" aria-label="Search results">
|
|
64
74
|
<div class="search__empty">
|
|
65
75
|
<p class="search__empty-text">Start typing to search…</p>
|
|
@@ -262,6 +272,9 @@
|
|
|
262
272
|
|
|
263
273
|
|
|
264
274
|
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
265
278
|
|
|
266
279
|
|
|
267
280
|
|
|
@@ -348,6 +361,9 @@
|
|
|
348
361
|
|
|
349
362
|
|
|
350
363
|
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
351
367
|
|
|
352
368
|
|
|
353
369
|
|
|
@@ -54,12 +54,22 @@
|
|
|
54
54
|
<div class="search" data-search>
|
|
55
55
|
<div class="search__trigger-wrapper">
|
|
56
56
|
<button type="button" class="search__trigger" aria-label="Open search" aria-expanded="false" aria-controls="search-header-panel">
|
|
57
|
+
<svg class="search__icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
57
58
|
<span class="search__trigger-text">Search</span>
|
|
58
59
|
</button>
|
|
59
60
|
</div>
|
|
60
61
|
<div class="search__overlay" id="search-header-panel" aria-hidden="true" role="dialog" aria-modal="true" data-search-overlay>
|
|
61
|
-
<div class="search__panel">
|
|
62
|
-
<
|
|
62
|
+
<div class="search__panel" role="dialog" aria-modal="true" aria-labelledby="search-header-title" aria-hidden="true" tabindex="-1">
|
|
63
|
+
<h2 id="search-header-title" class="sr-only">Search</h2>
|
|
64
|
+
<div class="search__header">
|
|
65
|
+
<div class="search__input-wrapper">
|
|
66
|
+
<svg class="search__input-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
67
|
+
<input type="search" class="search__input" placeholder="Search…" aria-label="Search" />
|
|
68
|
+
</div>
|
|
69
|
+
<button type="button" class="search__close-btn" aria-label="Close search" data-search-close>
|
|
70
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg>
|
|
71
|
+
</button>
|
|
72
|
+
</div>
|
|
63
73
|
<div class="search__results" role="listbox" aria-label="Search results">
|
|
64
74
|
<div class="search__empty">
|
|
65
75
|
<p class="search__empty-text">Start typing to search…</p>
|
|
@@ -262,6 +272,9 @@
|
|
|
262
272
|
|
|
263
273
|
|
|
264
274
|
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
265
278
|
|
|
266
279
|
|
|
267
280
|
|
|
@@ -348,6 +361,9 @@
|
|
|
348
361
|
|
|
349
362
|
|
|
350
363
|
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
351
367
|
|
|
352
368
|
|
|
353
369
|
|
|
@@ -54,12 +54,22 @@
|
|
|
54
54
|
<div class="search" data-search>
|
|
55
55
|
<div class="search__trigger-wrapper">
|
|
56
56
|
<button type="button" class="search__trigger" aria-label="Open search" aria-expanded="false" aria-controls="search-header-panel">
|
|
57
|
+
<svg class="search__icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
57
58
|
<span class="search__trigger-text">Search</span>
|
|
58
59
|
</button>
|
|
59
60
|
</div>
|
|
60
61
|
<div class="search__overlay" id="search-header-panel" aria-hidden="true" role="dialog" aria-modal="true" data-search-overlay>
|
|
61
|
-
<div class="search__panel">
|
|
62
|
-
<
|
|
62
|
+
<div class="search__panel" role="dialog" aria-modal="true" aria-labelledby="search-header-title" aria-hidden="true" tabindex="-1">
|
|
63
|
+
<h2 id="search-header-title" class="sr-only">Search</h2>
|
|
64
|
+
<div class="search__header">
|
|
65
|
+
<div class="search__input-wrapper">
|
|
66
|
+
<svg class="search__input-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
67
|
+
<input type="search" class="search__input" placeholder="Search…" aria-label="Search" />
|
|
68
|
+
</div>
|
|
69
|
+
<button type="button" class="search__close-btn" aria-label="Close search" data-search-close>
|
|
70
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg>
|
|
71
|
+
</button>
|
|
72
|
+
</div>
|
|
63
73
|
<div class="search__results" role="listbox" aria-label="Search results">
|
|
64
74
|
<div class="search__empty">
|
|
65
75
|
<p class="search__empty-text">Start typing to search…</p>
|
|
@@ -262,6 +272,9 @@
|
|
|
262
272
|
|
|
263
273
|
|
|
264
274
|
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
265
278
|
|
|
266
279
|
|
|
267
280
|
|
|
@@ -348,6 +361,9 @@
|
|
|
348
361
|
|
|
349
362
|
|
|
350
363
|
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
351
367
|
|
|
352
368
|
|
|
353
369
|
|
|
@@ -54,12 +54,22 @@
|
|
|
54
54
|
<div class="search" data-search>
|
|
55
55
|
<div class="search__trigger-wrapper">
|
|
56
56
|
<button type="button" class="search__trigger" aria-label="Open search" aria-expanded="false" aria-controls="search-header-panel">
|
|
57
|
+
<svg class="search__icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
57
58
|
<span class="search__trigger-text">Search</span>
|
|
58
59
|
</button>
|
|
59
60
|
</div>
|
|
60
61
|
<div class="search__overlay" id="search-header-panel" aria-hidden="true" role="dialog" aria-modal="true" data-search-overlay>
|
|
61
|
-
<div class="search__panel">
|
|
62
|
-
<
|
|
62
|
+
<div class="search__panel" role="dialog" aria-modal="true" aria-labelledby="search-header-title" aria-hidden="true" tabindex="-1">
|
|
63
|
+
<h2 id="search-header-title" class="sr-only">Search</h2>
|
|
64
|
+
<div class="search__header">
|
|
65
|
+
<div class="search__input-wrapper">
|
|
66
|
+
<svg class="search__input-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
67
|
+
<input type="search" class="search__input" placeholder="Search…" aria-label="Search" />
|
|
68
|
+
</div>
|
|
69
|
+
<button type="button" class="search__close-btn" aria-label="Close search" data-search-close>
|
|
70
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg>
|
|
71
|
+
</button>
|
|
72
|
+
</div>
|
|
63
73
|
<div class="search__results" role="listbox" aria-label="Search results">
|
|
64
74
|
<div class="search__empty">
|
|
65
75
|
<p class="search__empty-text">Start typing to search…</p>
|
|
@@ -262,6 +272,9 @@
|
|
|
262
272
|
|
|
263
273
|
|
|
264
274
|
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
265
278
|
|
|
266
279
|
|
|
267
280
|
|
|
@@ -348,6 +361,9 @@
|
|
|
348
361
|
|
|
349
362
|
|
|
350
363
|
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
351
367
|
|
|
352
368
|
|
|
353
369
|
|
|
@@ -54,12 +54,22 @@
|
|
|
54
54
|
<div class="search" data-search>
|
|
55
55
|
<div class="search__trigger-wrapper">
|
|
56
56
|
<button type="button" class="search__trigger" aria-label="Open search" aria-expanded="false" aria-controls="search-header-panel">
|
|
57
|
+
<svg class="search__icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
57
58
|
<span class="search__trigger-text">Search</span>
|
|
58
59
|
</button>
|
|
59
60
|
</div>
|
|
60
61
|
<div class="search__overlay" id="search-header-panel" aria-hidden="true" role="dialog" aria-modal="true" data-search-overlay>
|
|
61
|
-
<div class="search__panel">
|
|
62
|
-
<
|
|
62
|
+
<div class="search__panel" role="dialog" aria-modal="true" aria-labelledby="search-header-title" aria-hidden="true" tabindex="-1">
|
|
63
|
+
<h2 id="search-header-title" class="sr-only">Search</h2>
|
|
64
|
+
<div class="search__header">
|
|
65
|
+
<div class="search__input-wrapper">
|
|
66
|
+
<svg class="search__input-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
67
|
+
<input type="search" class="search__input" placeholder="Search…" aria-label="Search" />
|
|
68
|
+
</div>
|
|
69
|
+
<button type="button" class="search__close-btn" aria-label="Close search" data-search-close>
|
|
70
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg>
|
|
71
|
+
</button>
|
|
72
|
+
</div>
|
|
63
73
|
<div class="search__results" role="listbox" aria-label="Search results">
|
|
64
74
|
<div class="search__empty">
|
|
65
75
|
<p class="search__empty-text">Start typing to search…</p>
|
|
@@ -262,6 +272,9 @@
|
|
|
262
272
|
|
|
263
273
|
|
|
264
274
|
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
265
278
|
|
|
266
279
|
|
|
267
280
|
|
|
@@ -348,6 +361,9 @@
|
|
|
348
361
|
|
|
349
362
|
|
|
350
363
|
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
351
367
|
|
|
352
368
|
|
|
353
369
|
|
|
@@ -54,12 +54,22 @@
|
|
|
54
54
|
<div class="search" data-search>
|
|
55
55
|
<div class="search__trigger-wrapper">
|
|
56
56
|
<button type="button" class="search__trigger" aria-label="Open search" aria-expanded="false" aria-controls="search-header-panel">
|
|
57
|
+
<svg class="search__icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
57
58
|
<span class="search__trigger-text">Search</span>
|
|
58
59
|
</button>
|
|
59
60
|
</div>
|
|
60
61
|
<div class="search__overlay" id="search-header-panel" aria-hidden="true" role="dialog" aria-modal="true" data-search-overlay>
|
|
61
|
-
<div class="search__panel">
|
|
62
|
-
<
|
|
62
|
+
<div class="search__panel" role="dialog" aria-modal="true" aria-labelledby="search-header-title" aria-hidden="true" tabindex="-1">
|
|
63
|
+
<h2 id="search-header-title" class="sr-only">Search</h2>
|
|
64
|
+
<div class="search__header">
|
|
65
|
+
<div class="search__input-wrapper">
|
|
66
|
+
<svg class="search__input-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
67
|
+
<input type="search" class="search__input" placeholder="Search…" aria-label="Search" />
|
|
68
|
+
</div>
|
|
69
|
+
<button type="button" class="search__close-btn" aria-label="Close search" data-search-close>
|
|
70
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg>
|
|
71
|
+
</button>
|
|
72
|
+
</div>
|
|
63
73
|
<div class="search__results" role="listbox" aria-label="Search results">
|
|
64
74
|
<div class="search__empty">
|
|
65
75
|
<p class="search__empty-text">Start typing to search…</p>
|
|
@@ -262,6 +272,9 @@
|
|
|
262
272
|
|
|
263
273
|
|
|
264
274
|
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
265
278
|
|
|
266
279
|
|
|
267
280
|
|
|
@@ -348,6 +361,9 @@
|
|
|
348
361
|
|
|
349
362
|
|
|
350
363
|
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
351
367
|
|
|
352
368
|
|
|
353
369
|
|
|
@@ -54,12 +54,22 @@
|
|
|
54
54
|
<div class="search" data-search>
|
|
55
55
|
<div class="search__trigger-wrapper">
|
|
56
56
|
<button type="button" class="search__trigger" aria-label="Open search" aria-expanded="false" aria-controls="search-header-panel">
|
|
57
|
+
<svg class="search__icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
57
58
|
<span class="search__trigger-text">Search</span>
|
|
58
59
|
</button>
|
|
59
60
|
</div>
|
|
60
61
|
<div class="search__overlay" id="search-header-panel" aria-hidden="true" role="dialog" aria-modal="true" data-search-overlay>
|
|
61
|
-
<div class="search__panel">
|
|
62
|
-
<
|
|
62
|
+
<div class="search__panel" role="dialog" aria-modal="true" aria-labelledby="search-header-title" aria-hidden="true" tabindex="-1">
|
|
63
|
+
<h2 id="search-header-title" class="sr-only">Search</h2>
|
|
64
|
+
<div class="search__header">
|
|
65
|
+
<div class="search__input-wrapper">
|
|
66
|
+
<svg class="search__input-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
67
|
+
<input type="search" class="search__input" placeholder="Search…" aria-label="Search" />
|
|
68
|
+
</div>
|
|
69
|
+
<button type="button" class="search__close-btn" aria-label="Close search" data-search-close>
|
|
70
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg>
|
|
71
|
+
</button>
|
|
72
|
+
</div>
|
|
63
73
|
<div class="search__results" role="listbox" aria-label="Search results">
|
|
64
74
|
<div class="search__empty">
|
|
65
75
|
<p class="search__empty-text">Start typing to search…</p>
|
|
@@ -262,6 +272,9 @@
|
|
|
262
272
|
|
|
263
273
|
|
|
264
274
|
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
265
278
|
|
|
266
279
|
|
|
267
280
|
|
|
@@ -348,6 +361,9 @@
|
|
|
348
361
|
|
|
349
362
|
|
|
350
363
|
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
351
367
|
|
|
352
368
|
|
|
353
369
|
|
|
@@ -54,12 +54,22 @@
|
|
|
54
54
|
<div class="search" data-search>
|
|
55
55
|
<div class="search__trigger-wrapper">
|
|
56
56
|
<button type="button" class="search__trigger" aria-label="Open search" aria-expanded="false" aria-controls="search-header-panel">
|
|
57
|
+
<svg class="search__icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
57
58
|
<span class="search__trigger-text">Search</span>
|
|
58
59
|
</button>
|
|
59
60
|
</div>
|
|
60
61
|
<div class="search__overlay" id="search-header-panel" aria-hidden="true" role="dialog" aria-modal="true" data-search-overlay>
|
|
61
|
-
<div class="search__panel">
|
|
62
|
-
<
|
|
62
|
+
<div class="search__panel" role="dialog" aria-modal="true" aria-labelledby="search-header-title" aria-hidden="true" tabindex="-1">
|
|
63
|
+
<h2 id="search-header-title" class="sr-only">Search</h2>
|
|
64
|
+
<div class="search__header">
|
|
65
|
+
<div class="search__input-wrapper">
|
|
66
|
+
<svg class="search__input-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
67
|
+
<input type="search" class="search__input" placeholder="Search…" aria-label="Search" />
|
|
68
|
+
</div>
|
|
69
|
+
<button type="button" class="search__close-btn" aria-label="Close search" data-search-close>
|
|
70
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg>
|
|
71
|
+
</button>
|
|
72
|
+
</div>
|
|
63
73
|
<div class="search__results" role="listbox" aria-label="Search results">
|
|
64
74
|
<div class="search__empty">
|
|
65
75
|
<p class="search__empty-text">Start typing to search…</p>
|
|
@@ -262,6 +272,9 @@
|
|
|
262
272
|
|
|
263
273
|
|
|
264
274
|
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
265
278
|
|
|
266
279
|
|
|
267
280
|
|
|
@@ -348,6 +361,9 @@
|
|
|
348
361
|
|
|
349
362
|
|
|
350
363
|
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
351
367
|
|
|
352
368
|
|
|
353
369
|
|
|
@@ -54,12 +54,22 @@
|
|
|
54
54
|
<div class="search" data-search>
|
|
55
55
|
<div class="search__trigger-wrapper">
|
|
56
56
|
<button type="button" class="search__trigger" aria-label="Open search" aria-expanded="false" aria-controls="search-header-panel">
|
|
57
|
+
<svg class="search__icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
57
58
|
<span class="search__trigger-text">Search</span>
|
|
58
59
|
</button>
|
|
59
60
|
</div>
|
|
60
61
|
<div class="search__overlay" id="search-header-panel" aria-hidden="true" role="dialog" aria-modal="true" data-search-overlay>
|
|
61
|
-
<div class="search__panel">
|
|
62
|
-
<
|
|
62
|
+
<div class="search__panel" role="dialog" aria-modal="true" aria-labelledby="search-header-title" aria-hidden="true" tabindex="-1">
|
|
63
|
+
<h2 id="search-header-title" class="sr-only">Search</h2>
|
|
64
|
+
<div class="search__header">
|
|
65
|
+
<div class="search__input-wrapper">
|
|
66
|
+
<svg class="search__input-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
67
|
+
<input type="search" class="search__input" placeholder="Search…" aria-label="Search" />
|
|
68
|
+
</div>
|
|
69
|
+
<button type="button" class="search__close-btn" aria-label="Close search" data-search-close>
|
|
70
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg>
|
|
71
|
+
</button>
|
|
72
|
+
</div>
|
|
63
73
|
<div class="search__results" role="listbox" aria-label="Search results">
|
|
64
74
|
<div class="search__empty">
|
|
65
75
|
<p class="search__empty-text">Start typing to search…</p>
|
|
@@ -262,6 +272,9 @@
|
|
|
262
272
|
|
|
263
273
|
|
|
264
274
|
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
265
278
|
|
|
266
279
|
|
|
267
280
|
|
|
@@ -348,6 +361,9 @@
|
|
|
348
361
|
|
|
349
362
|
|
|
350
363
|
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
351
367
|
|
|
352
368
|
|
|
353
369
|
|
|
@@ -54,12 +54,22 @@
|
|
|
54
54
|
<div class="search" data-search>
|
|
55
55
|
<div class="search__trigger-wrapper">
|
|
56
56
|
<button type="button" class="search__trigger" aria-label="Open search" aria-expanded="false" aria-controls="search-header-panel">
|
|
57
|
+
<svg class="search__icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
57
58
|
<span class="search__trigger-text">Search</span>
|
|
58
59
|
</button>
|
|
59
60
|
</div>
|
|
60
61
|
<div class="search__overlay" id="search-header-panel" aria-hidden="true" role="dialog" aria-modal="true" data-search-overlay>
|
|
61
|
-
<div class="search__panel">
|
|
62
|
-
<
|
|
62
|
+
<div class="search__panel" role="dialog" aria-modal="true" aria-labelledby="search-header-title" aria-hidden="true" tabindex="-1">
|
|
63
|
+
<h2 id="search-header-title" class="sr-only">Search</h2>
|
|
64
|
+
<div class="search__header">
|
|
65
|
+
<div class="search__input-wrapper">
|
|
66
|
+
<svg class="search__input-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
67
|
+
<input type="search" class="search__input" placeholder="Search…" aria-label="Search" />
|
|
68
|
+
</div>
|
|
69
|
+
<button type="button" class="search__close-btn" aria-label="Close search" data-search-close>
|
|
70
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg>
|
|
71
|
+
</button>
|
|
72
|
+
</div>
|
|
63
73
|
<div class="search__results" role="listbox" aria-label="Search results">
|
|
64
74
|
<div class="search__empty">
|
|
65
75
|
<p class="search__empty-text">Start typing to search…</p>
|
|
@@ -262,6 +272,9 @@
|
|
|
262
272
|
|
|
263
273
|
|
|
264
274
|
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
265
278
|
|
|
266
279
|
|
|
267
280
|
|
|
@@ -348,6 +361,9 @@
|
|
|
348
361
|
|
|
349
362
|
|
|
350
363
|
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
351
367
|
|
|
352
368
|
|
|
353
369
|
|