| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import {LitElement, html, css} from 'lit-element'; |
| |
| |
| /** |
| * `<chops-snackbar>` |
| * |
| * A container for showing messages in a snackbar. |
| * |
| */ |
| export class ChopsSnackbar extends LitElement { |
| /** @override */ |
| static get styles() { |
| return css` |
| :host { |
| align-items: center; |
| background-color: #333; |
| border-radius: 6px; |
| bottom: 1em; |
| left: 1em; |
| color: hsla(0, 0%, 100%, .87); |
| display: flex; |
| font-size: var(--chops-large-font-size); |
| padding: 16px; |
| position: fixed; |
| z-index: 1000; |
| } |
| button { |
| background: none; |
| border: none; |
| color: inherit; |
| cursor: pointer; |
| margin: 0; |
| margin-left: 8px; |
| padding: 0; |
| } |
| `; |
| } |
| |
| /** @override */ |
| render() { |
| return html` |
| <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> |
| <slot></slot> |
| <button @click=${this.close}> |
| <i class="material-icons">close</i> |
| </button> |
| `; |
| } |
| |
| /** |
| * Closes the snackbar. |
| * @fires CustomEvent#close |
| */ |
| close() { |
| this.dispatchEvent(new CustomEvent('close')); |
| } |
| } |
| |
| customElements.define('chops-snackbar', ChopsSnackbar); |