|
184 | 184 | <CardTop ratio="square">
|
185 | 185 | <template #default>
|
186 | 186 | <!-- Template Thumbnail -->
|
187 |
| - <div |
188 |
| - class="w-full h-full relative rounded-lg overflow-hidden" |
189 |
| - > |
| 187 | + <div class="w-full h-full relative overflow-hidden"> |
190 | 188 | <template v-if="template.mediaType === 'audio'">
|
191 | 189 | <AudioThumbnail :src="getBaseThumbnailSrc(template)" />
|
192 | 190 | </template>
|
|
251 | 249 | v-if="loadingTemplate === template.name"
|
252 | 250 | class="absolute inset-0 z-10 w-12 h-12 m-auto"
|
253 | 251 | />
|
| 252 | + <button |
| 253 | + v-if="template.tutorialUrl" |
| 254 | + v-tooltip.bottom="{ |
| 255 | + value: $t('g.seeTutorial'), |
| 256 | + pt: { |
| 257 | + text: { class: 'text-sm' } |
| 258 | + } |
| 259 | + }" |
| 260 | + class="absolute top-2 right-2 z-20 inline-flex items-center justify-center rounded-lg bg-black/20 w-8 h-8 cursor-pointer border-0" |
| 261 | + @click.stop="openTutorial(template)" |
| 262 | + > |
| 263 | + <i class="pi pi-question-circle text-white/80 text-lg" /> |
| 264 | + </button> |
254 | 265 | </div>
|
255 | 266 | </template>
|
256 | 267 | <template #bottom-right>
|
|
266 | 277 | </template>
|
267 | 278 | <template #bottom>
|
268 | 279 | <CardBottom>
|
269 |
| - <div class="flex flex-col gap-2 pt-3"> |
| 280 | + <div class="flex flex-col gap-2 p-4"> |
270 | 281 | <h3
|
271 |
| - class="line-clamp-1 text-sm m-0" |
| 282 | + class="line-clamp-2 text-lg font-medium m-0" |
272 | 283 | :title="
|
273 | 284 | getTemplateTitle(
|
274 | 285 | template,
|
|
283 | 294 | )
|
284 | 295 | }}
|
285 | 296 | </h3>
|
286 |
| - <div class="flex justify-between gap-2"> |
287 |
| - <div class="flex-1"> |
288 |
| - <p |
289 |
| - class="line-clamp-2 text-sm text-muted m-0" |
290 |
| - :title="getTemplateDescription(template)" |
291 |
| - > |
292 |
| - {{ getTemplateDescription(template) }} |
293 |
| - </p> |
294 |
| - </div> |
295 |
| - <div |
296 |
| - v-if="template.tutorialUrl" |
297 |
| - class="flex flex-col-reverse justify-center" |
298 |
| - > |
299 |
| - <IconButton |
300 |
| - v-if="hoveredTemplate === template.name" |
301 |
| - v-tooltip.bottom="$t('g.seeTutorial')" |
302 |
| - v-bind="$attrs" |
303 |
| - type="primary" |
304 |
| - size="sm" |
305 |
| - @click.stop="openTutorial(template)" |
306 |
| - > |
307 |
| - <i class="icon-[lucide--info] size-4" /> |
308 |
| - </IconButton> |
309 |
| - </div> |
310 |
| - </div> |
| 297 | + <p |
| 298 | + class="line-clamp-5 text-sm text-muted m-0" |
| 299 | + :title="getTemplateDescription(template)" |
| 300 | + > |
| 301 | + {{ getTemplateDescription(template) }} |
| 302 | + </p> |
311 | 303 | </div>
|
312 | 304 | </CardBottom>
|
313 | 305 | </template>
|
@@ -378,7 +370,6 @@ import ProgressSpinner from 'primevue/progressspinner'
|
378 | 370 | import { computed, onBeforeUnmount, provide, ref, watch } from 'vue'
|
379 | 371 | import { useI18n } from 'vue-i18n'
|
380 | 372 |
|
381 |
| -import IconButton from '@/components/button/IconButton.vue' |
382 | 373 | import IconTextButton from '@/components/button/IconTextButton.vue'
|
383 | 374 | import CardBottom from '@/components/card/CardBottom.vue'
|
384 | 375 | import CardContainer from '@/components/card/CardContainer.vue'
|
|
0 commit comments