carbon-components-svelte/src/Notification/NotificationButton.svelte
Eric Liu b21600c9d6
feat(types): loosen icon prop type to allow any Svelte component #806 (#853)
* feat(types): loosen type for Carbon icons #806

* Add closeIcon option and remove stopPropagation on:click in HeaderAction (#840)

* Remove stopPropagation on:click

Remove stopPropagation on:click helps when you have more then one acction to switch between actions tabs

* fix bug for default icon

* add closeIcon attribute to HeaderAction

* feat(types): loosen type for Carbon icons #806

* chore: update TreeView, HeaderAction icon types

Co-authored-by: Daniel Miedzik <daniel.miedzik@gmail.com>
2021-10-15 16:40:23 -07:00

44 lines
1 KiB
Svelte

<script>
/**
* Set the type of notification
* @type {"toast" | "inline"}
*/
export let notificationType = "toast";
/**
* Specify the icon from `carbon-icons-svelte` to render
* @type {typeof import("svelte").SvelteComponent}
*/
export let icon = Close20;
/**
* Specify the title of the icon
* @type {string}
*/
export let title = undefined;
/** Specify the ARIA label for the icon */
export let iconDescription = "Close icon";
import Close20 from "carbon-icons-svelte/lib/Close20/Close20.svelte";
</script>
<!-- svelte-ignore a11y-mouse-events-have-key-events -->
<button
type="button"
aria-label="{iconDescription}"
title="{iconDescription}"
class:bx--toast-notification__close-button="{notificationType === 'toast'}"
class:bx--inline-notification__close-button="{notificationType === 'inline'}"
{...$$restProps}
on:click
on:mouseover
on:mouseenter
on:mouseleave
>
<svelte:component
this="{icon}"
title="{title}"
class="bx--{notificationType}-notification__close-icon"
/>
</button>