carbon-components-svelte/src/ComposedModal/ModalHeader.svelte
Eric Liu 040e3d3372
Inline carbon icons, remove carbon-icons-svelte from dependencies (#904)
* feat(icons): inline carbon icons used by components

* feat(icons): update svelte components to use inlined carbon icons

* breaking(deps): remove carbon-icons-svelte

* chore(deps-dev): install carbon-icons-svelte as a devDependency
2021-11-11 08:54:45 -08:00

62 lines
1.3 KiB
Svelte

<script>
/** Specify the modal title */
export let title = "";
/** Specify the modal label */
export let label = "";
/** Specify the label class */
export let labelClass = "";
/** Specify the title class */
export let titleClass = "";
/** Specify the close class */
export let closeClass = "";
/** Specify the close icon class */
export let closeIconClass = "";
/** Specify the ARIA label for the close icon */
export let iconDescription = "Close";
import { getContext } from "svelte";
import Close20 from "../icons/Close20.svelte";
const { closeModal, updateLabel } = getContext("ComposedModal");
$: updateLabel(label);
</script>
<div class:bx--modal-header="{true}" {...$$restProps}>
{#if label}
<h2
class:bx--modal-header__label="{true}"
class:bx--type-delta="{true}"
class="{labelClass}"
>
{label}
</h2>
{/if}
{#if title}
<h3
class:bx--modal-header__heading="{true}"
class:bx--type-beta="{true}"
class="{titleClass}"
>
{title}
</h3>
{/if}
<slot />
<button
type="button"
title="{iconDescription}"
aria-label="{iconDescription}"
class:bx--modal-close="{true}"
class="{closeClass}"
on:click
on:click="{closeModal}"
>
<Close20 class="bx--modal-close__icon {closeIconClass}" />
</button>
</div>