Skip to content

Commit

Permalink
feat(Alert): add icon & avatar slots (#1401)
Browse files Browse the repository at this point in the history
Co-authored-by: gangan <44604921+shinGangan@users.noreply.github.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  • Loading branch information
4 people committed Mar 13, 2024
1 parent f4a48f6 commit cee3e12
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 2 deletions.
20 changes: 20 additions & 0 deletions docs/components/content/examples/AlertExampleAvatar.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<template>
<UAlert
title="Customize Alert Avatar"
description="Insert custom content into the avatar slot!"
:avatar="{
src: 'https://avatars.githubusercontent.com/u/739984?v=4',
alt: 'Avatar'
}"
>
<template #avatar="{ avatar }">
<UAvatar
v-bind="avatar"
chip-color="primary"
chip-text=""
chip-position="top-right"
/>
</template>
</UAlert>
</template>

10 changes: 10 additions & 0 deletions docs/components/content/examples/AlertExampleIcon.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<template>
<UAlert title="Customize Alert Icon" description="Insert custom content into the icon slot!" icon="i-heroicons-command-line">
<template #icon="{ icon }">
<UBadge size="sm">
<UIcon :name="icon" />
</UBadge>
</template>
</UAlert>
</template>

12 changes: 12 additions & 0 deletions docs/content/2.components/alert.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,18 @@ This can be handy when you want to display HTML content. To achieve this, you ca

:component-example{component="alert-example-html"}

### `icon`

Use the `#icon` slot to customize the displayed icon.

:component-example{component="alert-example-icon"}

### `avatar`

Use the `#avatar` slot to customize the displayable avatar.

:component-example{component="alert-example-avatar"}

## Props

:component-props
Expand Down
8 changes: 6 additions & 2 deletions src/runtime/components/elements/Alert.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
<template>
<div :class="alertClass" v-bind="attrs">
<div class="flex" :class="[ui.gap, { 'items-start': (description || $slots.description), 'items-center': !description && !$slots.description }]">
<UIcon v-if="icon" :name="icon" :class="ui.icon.base" />
<UAvatar v-if="avatar" v-bind="{ size: ui.avatar.size, ...avatar }" :class="ui.avatar.base" />
<slot name="icon" :icon="icon">
<UIcon v-if="icon" :name="icon" :ui="ui.icon.base" />
</slot>
<slot name="avatar" :avatar="avatar">
<UAvatar v-if="avatar" v-bind="{ size: ui.avatar.size, ...avatar }" :class="ui.avatar.base" />
</slot>

<div :class="ui.inner">
<p v-if="(title || $slots.title)" :class="ui.title">
Expand Down

0 comments on commit cee3e12

Please sign in to comment.