@aquera/nile-elements 0.1.15 → 0.1.16

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.
Files changed (38) hide show
  1. package/README.md +5 -0
  2. package/demo/index.html +0 -10
  3. package/demo/variables.css +19 -58
  4. package/demo/variables_v2.css +0 -2
  5. package/dist/nile-button/nile-button.css.cjs.js +1 -1
  6. package/dist/nile-button/nile-button.css.cjs.js.map +1 -1
  7. package/dist/nile-button/nile-button.css.esm.js +77 -83
  8. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  9. package/dist/nile-checkbox/nile-checkbox.test.cjs.js.map +1 -1
  10. package/dist/nile-checkbox/nile-checkbox.test.esm.js +2 -2
  11. package/dist/nile-form-group/nile-form-group.css.cjs.js +1 -1
  12. package/dist/nile-form-group/nile-form-group.css.cjs.js.map +1 -1
  13. package/dist/nile-form-group/nile-form-group.css.esm.js +1 -1
  14. package/dist/nile-stepper-item/nile-stepper-item.css.cjs.js +1 -1
  15. package/dist/nile-stepper-item/nile-stepper-item.css.cjs.js.map +1 -1
  16. package/dist/nile-stepper-item/nile-stepper-item.css.esm.js +0 -1
  17. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  18. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  19. package/dist/nile-toast/nile-toast.esm.js +3 -3
  20. package/dist/src/nile-button/nile-button.css.js +77 -83
  21. package/dist/src/nile-button/nile-button.css.js.map +1 -1
  22. package/dist/src/nile-checkbox/nile-checkbox.test.js +5 -17
  23. package/dist/src/nile-checkbox/nile-checkbox.test.js.map +1 -1
  24. package/dist/src/nile-form-group/nile-form-group.css.js +1 -1
  25. package/dist/src/nile-form-group/nile-form-group.css.js.map +1 -1
  26. package/dist/src/nile-stepper-item/nile-stepper-item.css.js +0 -1
  27. package/dist/src/nile-stepper-item/nile-stepper-item.css.js.map +1 -1
  28. package/dist/src/nile-toast/nile-toast.d.ts +1 -0
  29. package/dist/src/nile-toast/nile-toast.js +5 -1
  30. package/dist/src/nile-toast/nile-toast.js.map +1 -1
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/package.json +1 -1
  33. package/src/nile-button/nile-button.css.ts +77 -83
  34. package/src/nile-checkbox/nile-checkbox.test.ts +6 -21
  35. package/src/nile-form-group/nile-form-group.css.ts +1 -1
  36. package/src/nile-stepper-item/nile-stepper-item.css.ts +0 -1
  37. package/src/nile-toast/nile-toast.ts +3 -1
  38. package/vscode-html-custom-data.json +5 -1
@@ -58,6 +58,7 @@ let NileToast = class NileToast extends NileElement {
58
58
  this.hasSlottedContent = false;
59
59
  this.hasSlottedIcon = false;
60
60
  this.prefixImageUrl = '';
61
+ this.closeIconName = 'close';
61
62
  /** The alert's theme variant. */
62
63
  this.variant = 'success';
63
64
  /**
@@ -294,7 +295,7 @@ let NileToast = class NileToast extends NileElement {
294
295
  part="close-button"
295
296
  exportparts="base:close-button__base"
296
297
  class="alert__close-button"
297
- name="close"
298
+ name="${this.closeIconName}"
298
299
  label="close"
299
300
  size="20"
300
301
  color="#98A2B3"
@@ -328,6 +329,9 @@ __decorate([
328
329
  __decorate([
329
330
  property({ type: String, reflect: true })
330
331
  ], NileToast.prototype, "prefixImageUrl", void 0);
332
+ __decorate([
333
+ property({ type: String, reflect: true })
334
+ ], NileToast.prototype, "closeIconName", void 0);
331
335
  __decorate([
332
336
  property({ reflect: true })
333
337
  ], NileToast.prototype, "variant", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"nile-toast.js","sourceRoot":"","sources":["../../../src/nile-toast/nile-toast.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, CSSResultArray, TemplateResult } from 'lit';\n\nimport '../nile-icon-button/nile-icon-button';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { html } from 'lit';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport { styles } from './nile-toast.css';\nimport type { CSSResultGroup } from 'lit';\n\nconst toastStack = Object.assign(document.createElement('div'), {\n className: 'nile-toast-stack',\n});\n\n/**\n * Nile icon component.\n *\n * @tag nile-toast\n *\n * @dependency nile-icon-button\n *\n * @slot - The alert's main content.\n * @slot icon - An icon to show in the alert. Works best with `<nile-icon>`.\n *\n * @event nile-show - Emitted when the alert opens.\n * @event nile-after-show - Emitted after the alert opens and all animations are complete.\n * @event nile-hide - Emitted when the alert closes.\n * @event nile-after-hide - Emitted after the alert closes and all animations are complete.\n *\n * @csspart base - The component's base wrapper.\n * @csspart icon - The container that wraps the optional icon.\n * @csspart message - The container that wraps the alert's main content.\n * @csspart close-button - The close button, an `<nile-icon-button>`.\n * @csspart close-button__base - The close button's exported `base` part.\n *\n * @animation alert.show - The animation to use when showing the alert.\n * @animation alert.hide - The animation to use when hiding the alert.\n */\n\n@customElement('nile-toast')\nexport class NileToast extends NileElement {\n static styles: CSSResultGroup = styles;\n\n private autoHideTimeout: number;\n private readonly hasSlotController = new HasSlotController(\n this,\n 'icon',\n 'suffix'\n );\n\n @query('[part~=\"base\"]') base: HTMLElement;\n\n /**\n * Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the alert's open state.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n\n @property({ type: Boolean, reflect: true }) noIcon = false;\n\n /** Enables a close button that allows the user to dismiss the alert. */\n\n @property({ type: Boolean, reflect: true }) closable = false;\n\n @property({ type: Boolean, reflect: true }) hasSlottedContent = false;\n\n @property({ type: Boolean, reflect: true }) hasSlottedIcon = false;\n\n @property({ type: String, reflect: true }) prefixImageUrl = '';\n\n /** The alert's theme variant. */\n @property({ reflect: true }) variant:\n | 'success'\n | 'info'\n | 'warning'\n | 'error'\n | 'gray'\n | 'black' = 'success';\n\n /**\n * The length of time, in milliseconds, the alert will show before closing itself. If the user interacts with\n * the alert before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `Infinity`, meaning\n * the alert will not close on its own.\n */\n @property({ type: Number }) duration = Infinity;\n\n @property({ type: String }) title = '';\n\n @property({ type: String }) content = '';\n\n @property({ type: Array, reflect: true }) tags: any[] = [];\n\n firstUpdated() {\n this.base.hidden = !this.open;\n }\n\n private restartAutoHide() {\n clearTimeout(this.autoHideTimeout);\n if (this.open && this.duration < Infinity) {\n this.autoHideTimeout = window.setTimeout(\n () => this.hide(),\n this.duration\n );\n }\n }\n\n private handleCloseClick() {\n this.hide();\n }\n\n private handleMouseMove() {\n this.restartAutoHide();\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n // Show\n this.emit('nile-show');\n\n if (this.duration < Infinity) {\n this.restartAutoHide();\n }\n\n await stopAnimations(this.base);\n this.base.hidden = false;\n const { keyframes, options } = getAnimation(this, 'alert.show', {\n dir: 'ltr',\n });\n await animateTo(this.base, keyframes, options);\n\n this.emit('nile-after-show');\n } else {\n // Hide\n this.emit('nile-hide');\n\n clearTimeout(this.autoHideTimeout);\n\n await stopAnimations(this.base);\n const { keyframes, options } = getAnimation(this, 'alert.hide', {\n dir: 'ltr',\n });\n await animateTo(this.base, keyframes, options);\n this.base.hidden = true;\n\n this.emit('nile-after-hide');\n }\n }\n\n @watch('duration')\n handleDurationChange() {\n this.restartAutoHide();\n }\n\n /** Shows the alert. */\n async show() {\n if (this.open) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n /** Hides the alert */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n getIconNameByVariant() {\n switch (this.variant) {\n case 'success':\n return 'check-circle';\n case 'info':\n return 'info-circle';\n case 'warning':\n return 'alert-circle';\n case 'error':\n return 'alert-circle';\n case 'gray':\n return 'info-circle';\n case 'black':\n return 'info-circle';\n }\n }\n\n getIconColorByVariant() {\n switch (this.variant) {\n case 'success':\n return 'var(--nile-toast-color-icon-color-success)';\n case 'info':\n return 'var(--nile-toast-color-icon-color-info)';\n case 'warning':\n return 'var(--nile-toast-color-icon-color-warning)';\n case 'error':\n return 'var(--nile-toast-color-icon-color-error)';\n case 'gray':\n return 'var(--nile-toast-color-icon-color-gray)';\n case 'black':\n return 'var(--nile-toast-color-icon-color-black)';\n }\n }\n\n handleSlotChange(e: any) {\n const slot = e.target;\n const nodes = slot.assignedNodes({ flatten: true });\n if (slot.name === 'message') {\n const nodes = slot.assignedNodes({ flatten: true });\n this.hasSlottedContent = nodes.length > 0;\n }\n\n if (slot.name === 'icon') {\n const nodes = slot.assignedNodes({ flatten: true });\n this.hasSlottedIcon = nodes.length > 0;\n }\n }\n\n /**\n * Displays the alert as a toast notification. This will move the alert out of its position in the DOM and, when\n * dismissed, it will be removed from the DOM completely. By storing a reference to the alert, you can reuse it by\n * calling this method again. The returned promise will resolve after the alert is hidden.\n */\n async toast() {\n return new Promise<void>(resolve => {\n if (toastStack.parentElement === null) {\n document.body.append(toastStack);\n }\n\n toastStack.appendChild(this);\n\n // Wait for the toast stack to render\n requestAnimationFrame(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- force a reflow for the initial transition\n this.clientWidth;\n this.show();\n });\n\n this.addEventListener(\n 'nile-after-hide',\n () => {\n toastStack.removeChild(this);\n resolve();\n\n // Remove the toast stack from the DOM when there are no more alerts\n if (toastStack.querySelector('nile-alert') === null) {\n toastStack.remove();\n }\n },\n { once: true }\n );\n });\n }\n\n private toastTags(content: string, imageUrl: string) {\n return html`\n <div class=\"alert__tag\">\n <img class=\"alert__tag-image\" src=\"${imageUrl}\" />\n <span class=\"alert__tag-content\"> ${content} </span>\n </div>\n `;\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n alert: true,\n 'alert--open': this.open,\n 'alert--closable': this.closable,\n 'alert--has-icon': this.hasSlotController.test('icon'),\n 'alert--success': this.variant === 'success',\n 'alert--info': this.variant === 'info',\n 'alert--warning': this.variant === 'warning',\n 'alert--error': this.variant === 'error',\n 'alert--gray': this.variant === 'gray',\n 'alert--black': this.variant === 'black',\n 'alert--no-content': this.content === '',\n })}\n role=\"alert\"\n aria-hidden=${this.open ? 'false' : 'true'}\n @mousemove=${this.handleMouseMove}\n >\n <slot name=\"icon\" part=\"icon\" ?hidden=\"${this.noIcon === true}\">\n ${!this.prefixImageUrl\n ? html`\n <div\n class=\"alert__prefix-icon-container\"\n ?hidden=\"${this.hasSlottedIcon ||\n this.prefixImageUrl.length > 0}\"\n >\n <nile-icon\n name=\"${this.getIconNameByVariant()}\"\n size=\"20\"\n color=\"${this.getIconColorByVariant()}\"\n method=\"stroke\"\n ></nile-icon>\n </div>\n `\n : html`\n <img src=\"${this.prefixImageUrl}\" class=\"alert__prefix-img\" />\n `}\n </slot>\n\n <slot\n name=\"message\"\n part=\"message\"\n class=\"alert__message\"\n aria-live=\"polite\"\n @slotchange=\"${this.handleSlotChange}\"\n >\n <span\n ?hidden=\"${this.hasSlottedContent && this.title === ''}\"\n class=\"alert__message--title\"\n >\n ${this.title}\n </span>\n ${this.title\n ? html` <span\n ?hidden=\"${this.content === ''}\"\n class=${classMap({\n 'alert__message--content': true,\n 'alert__message--content-only': !!this.title,\n })}\n >\n ${this.content}\n </span>`\n : null}\n ${this.tags?.length > 0\n ? html`\n <div class=\"alert__tags\">\n ${this.tags.map(\n tag =>\n html`<span\n >${this.toastTags(tag.content, tag.imageUrl)}</span\n >`\n )}\n </div>\n `\n : ``}\n </slot>\n\n ${this.closable\n ? html`\n <nile-icon-button\n part=\"close-button\"\n exportparts=\"base:close-button__base\"\n class=\"alert__close-button\"\n name=\"close\"\n label=\"close\"\n size=\"20\"\n color=\"#98A2B3\"\n @click=${this.handleCloseClick}\n ></nile-icon-button>\n `\n : null}\n </div>\n `;\n }\n}\n\nsetDefaultAnimation('alert.show', {\n keyframes: [\n { opacity: 0, scale: 0.8 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 250, easing: 'ease' },\n});\n\nsetDefaultAnimation('alert.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 },\n ],\n options: { duration: 250, easing: 'ease' },\n});\n\nexport default NileToast;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-toast': NileToast;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-toast.js","sourceRoot":"","sources":["../../../src/nile-toast/nile-toast.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, CSSResultArray, TemplateResult } from 'lit';\n\nimport '../nile-icon-button/nile-icon-button';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { html } from 'lit';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport { styles } from './nile-toast.css';\nimport type { CSSResultGroup } from 'lit';\n\nconst toastStack = Object.assign(document.createElement('div'), {\n className: 'nile-toast-stack',\n});\n\n/**\n * Nile icon component.\n *\n * @tag nile-toast\n *\n * @dependency nile-icon-button\n *\n * @slot - The alert's main content.\n * @slot icon - An icon to show in the alert. Works best with `<nile-icon>`.\n *\n * @event nile-show - Emitted when the alert opens.\n * @event nile-after-show - Emitted after the alert opens and all animations are complete.\n * @event nile-hide - Emitted when the alert closes.\n * @event nile-after-hide - Emitted after the alert closes and all animations are complete.\n *\n * @csspart base - The component's base wrapper.\n * @csspart icon - The container that wraps the optional icon.\n * @csspart message - The container that wraps the alert's main content.\n * @csspart close-button - The close button, an `<nile-icon-button>`.\n * @csspart close-button__base - The close button's exported `base` part.\n *\n * @animation alert.show - The animation to use when showing the alert.\n * @animation alert.hide - The animation to use when hiding the alert.\n */\n\n@customElement('nile-toast')\nexport class NileToast extends NileElement {\n static styles: CSSResultGroup = styles;\n\n private autoHideTimeout: number;\n private readonly hasSlotController = new HasSlotController(\n this,\n 'icon',\n 'suffix'\n );\n\n @query('[part~=\"base\"]') base: HTMLElement;\n\n /**\n * Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the alert's open state.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n\n @property({ type: Boolean, reflect: true }) noIcon = false;\n\n /** Enables a close button that allows the user to dismiss the alert. */\n\n @property({ type: Boolean, reflect: true }) closable = false;\n\n @property({ type: Boolean, reflect: true }) hasSlottedContent = false;\n\n @property({ type: Boolean, reflect: true }) hasSlottedIcon = false;\n\n @property({ type: String, reflect: true }) prefixImageUrl = '';\n \n @property({ type: String, reflect: true }) closeIconName = 'close';\n\n /** The alert's theme variant. */\n @property({ reflect: true }) variant:\n | 'success'\n | 'info'\n | 'warning'\n | 'error'\n | 'gray'\n | 'black' = 'success';\n\n /**\n * The length of time, in milliseconds, the alert will show before closing itself. If the user interacts with\n * the alert before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `Infinity`, meaning\n * the alert will not close on its own.\n */\n @property({ type: Number }) duration = Infinity;\n\n @property({ type: String }) title = '';\n\n @property({ type: String }) content = '';\n\n @property({ type: Array, reflect: true }) tags: any[] = [];\n\n firstUpdated() {\n this.base.hidden = !this.open;\n }\n\n private restartAutoHide() {\n clearTimeout(this.autoHideTimeout);\n if (this.open && this.duration < Infinity) {\n this.autoHideTimeout = window.setTimeout(\n () => this.hide(),\n this.duration\n );\n }\n }\n\n private handleCloseClick() {\n this.hide();\n }\n\n private handleMouseMove() {\n this.restartAutoHide();\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n // Show\n this.emit('nile-show');\n\n if (this.duration < Infinity) {\n this.restartAutoHide();\n }\n\n await stopAnimations(this.base);\n this.base.hidden = false;\n const { keyframes, options } = getAnimation(this, 'alert.show', {\n dir: 'ltr',\n });\n await animateTo(this.base, keyframes, options);\n\n this.emit('nile-after-show');\n } else {\n // Hide\n this.emit('nile-hide');\n\n clearTimeout(this.autoHideTimeout);\n\n await stopAnimations(this.base);\n const { keyframes, options } = getAnimation(this, 'alert.hide', {\n dir: 'ltr',\n });\n await animateTo(this.base, keyframes, options);\n this.base.hidden = true;\n\n this.emit('nile-after-hide');\n }\n }\n\n @watch('duration')\n handleDurationChange() {\n this.restartAutoHide();\n }\n\n /** Shows the alert. */\n async show() {\n if (this.open) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n /** Hides the alert */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n getIconNameByVariant() {\n switch (this.variant) {\n case 'success':\n return 'check-circle';\n case 'info':\n return 'info-circle';\n case 'warning':\n return 'alert-circle';\n case 'error':\n return 'alert-circle';\n case 'gray':\n return 'info-circle';\n case 'black':\n return 'info-circle';\n }\n }\n\n getIconColorByVariant() {\n switch (this.variant) {\n case 'success':\n return 'var(--nile-toast-color-icon-color-success)';\n case 'info':\n return 'var(--nile-toast-color-icon-color-info)';\n case 'warning':\n return 'var(--nile-toast-color-icon-color-warning)';\n case 'error':\n return 'var(--nile-toast-color-icon-color-error)';\n case 'gray':\n return 'var(--nile-toast-color-icon-color-gray)';\n case 'black':\n return 'var(--nile-toast-color-icon-color-black)';\n }\n }\n\n handleSlotChange(e: any) {\n const slot = e.target;\n const nodes = slot.assignedNodes({ flatten: true });\n if (slot.name === 'message') {\n const nodes = slot.assignedNodes({ flatten: true });\n this.hasSlottedContent = nodes.length > 0;\n }\n\n if (slot.name === 'icon') {\n const nodes = slot.assignedNodes({ flatten: true });\n this.hasSlottedIcon = nodes.length > 0;\n }\n }\n\n /**\n * Displays the alert as a toast notification. This will move the alert out of its position in the DOM and, when\n * dismissed, it will be removed from the DOM completely. By storing a reference to the alert, you can reuse it by\n * calling this method again. The returned promise will resolve after the alert is hidden.\n */\n async toast() {\n return new Promise<void>(resolve => {\n if (toastStack.parentElement === null) {\n document.body.append(toastStack);\n }\n\n toastStack.appendChild(this);\n\n // Wait for the toast stack to render\n requestAnimationFrame(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- force a reflow for the initial transition\n this.clientWidth;\n this.show();\n });\n\n this.addEventListener(\n 'nile-after-hide',\n () => {\n toastStack.removeChild(this);\n resolve();\n\n // Remove the toast stack from the DOM when there are no more alerts\n if (toastStack.querySelector('nile-alert') === null) {\n toastStack.remove();\n }\n },\n { once: true }\n );\n });\n }\n\n private toastTags(content: string, imageUrl: string) {\n return html`\n <div class=\"alert__tag\">\n <img class=\"alert__tag-image\" src=\"${imageUrl}\" />\n <span class=\"alert__tag-content\"> ${content} </span>\n </div>\n `;\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n alert: true,\n 'alert--open': this.open,\n 'alert--closable': this.closable,\n 'alert--has-icon': this.hasSlotController.test('icon'),\n 'alert--success': this.variant === 'success',\n 'alert--info': this.variant === 'info',\n 'alert--warning': this.variant === 'warning',\n 'alert--error': this.variant === 'error',\n 'alert--gray': this.variant === 'gray',\n 'alert--black': this.variant === 'black',\n 'alert--no-content': this.content === '',\n })}\n role=\"alert\"\n aria-hidden=${this.open ? 'false' : 'true'}\n @mousemove=${this.handleMouseMove}\n >\n <slot name=\"icon\" part=\"icon\" ?hidden=\"${this.noIcon === true}\">\n ${!this.prefixImageUrl\n ? html`\n <div\n class=\"alert__prefix-icon-container\"\n ?hidden=\"${this.hasSlottedIcon ||\n this.prefixImageUrl.length > 0}\"\n >\n <nile-icon\n name=\"${this.getIconNameByVariant()}\"\n size=\"20\"\n color=\"${this.getIconColorByVariant()}\"\n method=\"stroke\"\n ></nile-icon>\n </div>\n `\n : html`\n <img src=\"${this.prefixImageUrl}\" class=\"alert__prefix-img\" />\n `}\n </slot>\n\n <slot\n name=\"message\"\n part=\"message\"\n class=\"alert__message\"\n aria-live=\"polite\"\n @slotchange=\"${this.handleSlotChange}\"\n >\n <span\n ?hidden=\"${this.hasSlottedContent && this.title === ''}\"\n class=\"alert__message--title\"\n >\n ${this.title}\n </span>\n ${this.title\n ? html` <span\n ?hidden=\"${this.content === ''}\"\n class=${classMap({\n 'alert__message--content': true,\n 'alert__message--content-only': !!this.title,\n })}\n >\n ${this.content}\n </span>`\n : null}\n ${this.tags?.length > 0\n ? html`\n <div class=\"alert__tags\">\n ${this.tags.map(\n tag =>\n html`<span\n >${this.toastTags(tag.content, tag.imageUrl)}</span\n >`\n )}\n </div>\n `\n : ``}\n </slot>\n\n ${this.closable\n ? html`\n <nile-icon-button\n part=\"close-button\"\n exportparts=\"base:close-button__base\"\n class=\"alert__close-button\"\n name=\"${this.closeIconName}\"\n label=\"close\"\n size=\"20\"\n color=\"#98A2B3\"\n @click=${this.handleCloseClick}\n ></nile-icon-button>\n `\n : null}\n </div>\n `;\n }\n}\n\nsetDefaultAnimation('alert.show', {\n keyframes: [\n { opacity: 0, scale: 0.8 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 250, easing: 'ease' },\n});\n\nsetDefaultAnimation('alert.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 },\n ],\n options: { duration: 250, easing: 'ease' },\n});\n\nexport default NileToast;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-toast': NileToast;\n }\n}\n"]}