emoji-picker-element/src/svelte/components/Picker/Picker.html

70 lines
2.4 KiB
HTML
Raw Normal View History

<svelte:options tag="lite-emoji-picker" />
2020-05-18 04:08:00 +02:00
<section
2020-05-31 23:14:13 +02:00
class="lep-picker {resolvedDarkMode ? 'lep-dark' : 'lep-light'}"
2020-05-18 04:08:00 +02:00
aria-label={i18n.regionLabel}
bind:this={rootElement}
style="--lep-num-columns: {numColumns};"
>
2020-05-31 23:42:21 +02:00
<div class="lep-search-row">
<div class="lep-search-wrapper">
<input
id="lep-search"
class="lep-search"
type="text"
placeholder={i18n.search}
autocapitalize="none"
spellcheck="true"
bind:value={rawSearchText}
>
<label class="lep-sr-only" for="lep-search">{i18n.search}</label>
</div>
<button class="lep-emoji lep-skintone-button">👍</button>
2020-05-18 04:08:00 +02:00
</div>
2020-06-01 04:25:38 +02:00
<div class="lep-nav"
role="tablist"
style="grid-template-columns: repeat({categories.length}, 1fr);"
aria-label={i18n.categoriesLabel}>
2020-05-18 04:08:00 +02:00
{#each categories as category (category.group)}
2020-06-01 04:25:38 +02:00
<button role="tab"
class="lep-nav-button"
aria-controls="lep-tab-{category.group}"
aria-label={i18n.categories[category.name]}
aria-selected={currentCategory.group === category.group}
title={i18n.categories[category.name]}
on:click={() => handleCategoryClick(category)}>
<div class="lep-emoji">
2020-06-01 03:05:51 +02:00
{category.emoji}
</div>
2020-06-01 04:25:38 +02:00
</button>
{/each}
</div>
<div class="lep-indicators"
aria-hidden="true">
{#each categories as category (category.group)}
2020-06-01 04:58:07 +02:00
<div class="lep-indicator {currentCategory.group === category.group ? '' : 'lep-hidden'}">
</div>
2020-05-18 04:08:00 +02:00
{/each}
</div>
2020-06-01 04:58:07 +02:00
<div class="lep-tabpanel"
role="tabpanel"
2020-05-18 04:08:00 +02:00
aria-label={i18n.categories[currentCategory.name]}
2020-05-31 21:56:44 +02:00
id="lep-tab-{currentCategory.group}">
2020-06-01 04:58:07 +02:00
<div class="lep-emoji-menu" role="menu">
{#each currentEmojis as emoji (emoji.unicode)}
<button role="menuitem"
class="lep-tabpanel-emoji lep-emoji"
id="lep-emoji-{emoji.unicode}">
{emoji.unicode}
</button>
{/each}
<!-- Render placeholders to make sure that the grid spacing looks correct. There may be a better way. -->
{#each placeholders as placeholder}
<div class="lep-emoji lep-hidden"></div>
{/each}
2020-05-18 04:08:00 +02:00
</div>
</div>
2020-06-01 04:25:38 +02:00
<div aria-hidden="true" class="lep-hidden lep-abs-pos">
2020-05-18 04:08:00 +02:00
<button class="lep-emoji lep-baseline-emoji" bind:this={baselineEmoji}>😀</button>
</div>
</section>