|
8 | 8 | <script> |
9 | 9 | // cSpell:ignore Nominatim jsonv2 |
10 | 10 |
|
11 | | - import { AlertDialog, Button, Listbox, Option, SearchBar } from '@sveltia/ui'; |
| 11 | + import { AlertDialog, Button, Icon, Listbox, Option, SearchBar } from '@sveltia/ui'; |
12 | 12 | import { isObject } from '@sveltia/utils/object'; |
13 | 13 | import { onMount, untrack } from 'svelte'; |
14 | 14 | import { _ } from 'svelte-i18n'; |
|
361 | 361 |
|
362 | 362 | <!-- @todo Support LineString and Polygon types --> |
363 | 363 | {#if geometryType === 'Point'} |
364 | | - <!-- @todo Replace this with <Combobox> --> |
365 | | - <div class="toolbar"> |
366 | | - <SearchBar bind:value={searchQuery} {readonly} flex /> |
| 364 | + <div role="none" class="toolbar"> |
| 365 | + <!-- @todo Replace this with `<Combobox>` --> |
| 366 | + <SearchBar bind:value={searchQuery} {readonly} flex placeholder={$_('find_place')} /> |
| 367 | + <!-- @todo Replace `title` with a native tooltip --> |
367 | 368 | <Button |
368 | 369 | variant="tertiary" |
369 | | - label={$_('use_your_location')} |
| 370 | + iconic |
| 371 | + title={$_('use_your_location')} |
| 372 | + aria-label={$_('use_your_location')} |
370 | 373 | disabled={readonly} |
371 | 374 | onclick={() => { |
372 | 375 | useCurrentLocation(); |
373 | 376 | }} |
374 | | - /> |
375 | | -
|
| 377 | + > |
| 378 | + {#snippet startIcon()} |
| 379 | + <Icon name="near_me" /> |
| 380 | + {/snippet} |
| 381 | + </Button> |
376 | 382 | {#if !required} |
377 | 383 | <Button |
378 | 384 | variant="tertiary" |
|
386 | 392 | </div> |
387 | 393 |
|
388 | 394 | {#if searching} |
389 | | - <div class="search-result searching">{$_('searching')}</div> |
| 395 | + <div role="alert" class="search-result searching">{$_('searching')}</div> |
390 | 396 | {:else if searchQuery} |
391 | 397 | {#if searchResults} |
392 | 398 | {#if searchResults.length} |
393 | | - <Listbox> |
| 399 | + <Listbox aria-label={$_('search_results')}> |
394 | 400 | {#each searchResults as result (result.place_id)} |
395 | 401 | <Option |
396 | 402 | label={result.display_name} |
|
401 | 407 | {/each} |
402 | 408 | </Listbox> |
403 | 409 | {:else} |
404 | | - <div class="search-result no-result">{$_('no_results')}</div> |
| 410 | + <div role="alert" class="search-result no-result">{$_('no_results')}</div> |
405 | 411 | {/if} |
406 | 412 | {/if} |
407 | 413 | {/if} |
|
0 commit comments