11<script setup lang="ts">
22import type { InstalledModuleInfo , ModuleStaticInfo } from ' ../../src/types'
33
4- const props = defineProps <{
5- mod: InstalledModuleInfo
6- info? : ModuleStaticInfo
7- compact? : boolean
8- }>()
4+ const props = withDefaults (
5+ defineProps <{
6+ mod: InstalledModuleInfo
7+ info? : ModuleStaticInfo
8+ compact? : boolean
9+ maintainers? : boolean
10+ }>(), {
11+ maintainers: true ,
12+ },
13+ )
914
1015const data = computed (() => ({
1116 ... props .mod ?.meta ,
@@ -24,61 +29,63 @@ const openInEditor = useOpenInEditor()
2429<template >
2530 <NCard p4 flex =" ~ gap2" >
2631 <div flex =" ~ col gap2" flex-auto of-hidden px1 >
27- <div gap-1t flex items-center text-ellipsis ws-nowrap text-lg >
28- <NuxtLink
29- v-if =" mod.isPackageModule"
30- :to =" npmBase + (data.npm || data.name)"
31- target =" _blank"
32- hover =" underline text-primary"
33- >
34- {{ data.name }}
35- </NuxtLink >
36- <button
37- v-else-if =" mod.entryPath"
38- role =" button"
39- hover =" underline text-primary"
40- @click =" openInEditor(mod.entryPath!)"
41- >
42- {{ data.name }}
43- </button >
44- <span v-else >
45- {{ data.name }}
46- </span >
47- <slot name =" badge" />
48- </div >
32+ <slot name =" main" >
33+ <div gap-1t flex items-center text-ellipsis ws-nowrap text-lg >
34+ <NuxtLink
35+ v-if =" mod.isPackageModule"
36+ :to =" npmBase + (data.npm || data.name)"
37+ target =" _blank"
38+ hover =" underline text-primary"
39+ >
40+ {{ data.name }}
41+ </NuxtLink >
42+ <button
43+ v-else-if =" mod.entryPath"
44+ role =" button"
45+ hover =" underline text-primary"
46+ @click =" openInEditor(mod.entryPath!)"
47+ >
48+ {{ data.name }}
49+ </button >
50+ <span v-else >
51+ {{ data.name }}
52+ </span >
53+ <slot name =" badge" />
54+ </div >
4955
50- <div
51- v-if =" data.description "
52- :class =" compact ? 'ws-nowrap of-hidden truncate' : 'line-clamp-2'"
53- mt--1 text-sm op50
54- >
55- {{ data.description }}
56- </div >
56+ <div
57+ v-if =" data.description "
58+ :class =" compact ? 'ws-nowrap of-hidden truncate' : 'line-clamp-2'"
59+ mt--1 text-sm op50
60+ >
61+ {{ data.description }}
62+ </div >
5763
58- <div flex-auto />
64+ <div flex-auto />
5965
60- <div v-if =" data.website" flex =" ~ gap-2" title =" Documentation" >
61- <span i-carbon-link text-lg op50 />
62- <NuxtLink
63- :to =" data.website"
64- target =" _blank"
65- of-hidden truncate ws-nowrap text-sm op50
66- hover =" op100 underline text-primary"
67- >
68- {{ data.website.replace(/^https?:\/\//, '') }}
69- </NuxtLink >
70- </div >
71- <div v-if =" data.github" flex =" ~ gap-2" >
72- <span i-carbon-logo-github text-lg op50 />
73- <NuxtLink
74- :to =" data.github"
75- target =" _blank"
76- of-hidden truncate ws-nowrap text-sm op50
77- hover =" op100 underline text-primary"
78- >
79- {{ data.github.replace(/^https?:\/\/github.com\//, '') }}
80- </NuxtLink >
81- </div >
66+ <div v-if =" data.website" flex =" ~ gap-2" title =" Documentation" >
67+ <span i-carbon-link text-lg op50 />
68+ <NuxtLink
69+ :to =" data.website"
70+ target =" _blank"
71+ of-hidden truncate ws-nowrap text-sm op50
72+ hover =" op100 underline text-primary"
73+ >
74+ {{ data.website.replace(/^https?:\/\//, '') }}
75+ </NuxtLink >
76+ </div >
77+ <div v-if =" data.github" flex =" ~ gap-2" >
78+ <span i-carbon-logo-github text-lg op50 />
79+ <NuxtLink
80+ :to =" data.github"
81+ target =" _blank"
82+ of-hidden truncate ws-nowrap text-sm op50
83+ hover =" op100 underline text-primary"
84+ >
85+ {{ data.github.replace(/^https?:\/\/github.com\//, '') }}
86+ </NuxtLink >
87+ </div >
88+ </slot >
8289
8390 <slot name =" items" />
8491 </div >
@@ -89,9 +96,9 @@ const openInEditor = useOpenInEditor()
8996 h-20 w-20 flex flex-none rounded bg-gray:3 p4
9097 >
9198 <img v-if =" data.icon" :src =" iconBase + data.icon" :alt =" mod.name" ma >
92- <div i-carbon-circle-dash ma text-4xl op50 />
99+ <div i-carbon-cube ma text-4xl op30 />
93100 </div >
94- <div v-if =" data.maintainers?.length" flex =" ~" mt2 flex-auto items-end justify-end >
101+ <div v-if =" data.maintainers?.length && maintainers " flex =" ~" mt2 flex-auto items-end justify-end >
95102 <NuxtLink
96103 v-for =" m of data.maintainers"
97104 :key =" m.name"
0 commit comments