@@ -266,7 +266,7 @@ async function toggleBookmark() {
266266 bookmarkLoading .value = false ;
267267}
268268
269- const { renderMarkdown } = useMarkdown ({ openLinksInNewPage: true });
269+ const { renderMarkdown } = useMarkdown ({ noMargin: true , openLinksInNewPage: true });
270270
271271/**
272272 * Helper functions for generating consistent element IDs
@@ -335,12 +335,13 @@ function onKeyDown(event: KeyboardEvent) {
335335 :id =" getElementId(props.id, 'title')"
336336 bold
337337 inline
338- class =" align-items-baseline "
338+ class =" d-block "
339339 :size =" props.titleSize" >
340340 <FontAwesomeIcon
341341 v-if =" props.titleIcon?.icon"
342- :icon = " props.titleIcon.icon "
342+ class = " mr-1 "
343343 :class =" props.titleIcon.class"
344+ :icon =" props.titleIcon.icon"
344345 :title =" props.titleIcon.title"
345346 :size =" props.titleIcon.size"
346347 fixed-width />
@@ -516,7 +517,7 @@ function onKeyDown(event: KeyboardEvent) {
516517 <BButton
517518 v-if =" (indicator.visible ?? true) && !indicator.disabled"
518519 :id =" getIndicatorId(props.id, indicator.id)"
519- :key =" indicator.id"
520+ :key =" `${ indicator.id}-button` "
520521 v-b-tooltip.hover.noninteractive
521522 class =" inline-icon-button"
522523 :title =" localize(indicator.title)"
@@ -536,7 +537,7 @@ function onKeyDown(event: KeyboardEvent) {
536537 <FontAwesomeIcon
537538 v-else-if =" (indicator.visible ?? true) && indicator.disabled"
538539 :id =" getIndicatorId(props.id, indicator.id)"
539- :key =" indicator.id"
540+ :key =" `${ indicator.id}-icon` "
540541 v-b-tooltip.hover.noninteractive
541542 :title =" localize(indicator.title)"
542543 :icon =" indicator.icon"
@@ -549,16 +550,15 @@ function onKeyDown(event: KeyboardEvent) {
549550 </div >
550551 </div >
551552
552- <div :id =" getElementId(props.id, 'description')" >
553+ <div :id =" getElementId(props.id, 'description')" class = " g-card-description " >
553554 <slot name =" description" >
554- <TextSummary
555- v-if =" props.description && !props.fullDescription"
556- :id =" getElementId(props.id, 'text-summary')"
557- :description =" props.description" />
558- <div
559- v-else-if =" props.description && props.fullDescription"
560- class =" mb-2"
561- v-html =" renderMarkdown(props.description)" />
555+ <template v-if =" props .description " >
556+ <TextSummary
557+ v-if =" !props.fullDescription"
558+ :id =" getElementId(props.id, 'text-summary')"
559+ :description =" props.description" />
560+ <div v-else v-html =" renderMarkdown(props.description)" />
561+ </template >
562562 </slot >
563563 </div >
564564 </div >
@@ -598,9 +598,13 @@ function onKeyDown(event: KeyboardEvent) {
598598 </div >
599599 </slot >
600600
601- <div class =" align-items-center d-flex flex-gapx-1 justify-content-end ml-auto mt-1 " >
601+ <div class =" align-items-center d-flex flex-gapx-1 justify-content-end ml-auto" >
602602 <slot name =" secondary-actions" >
603- <BButtonGroup :id =" getElementId(props.id, 'secondary-actions')" size =" sm" >
603+ <BButtonGroup
604+ v-if =" props.secondaryActions?.length"
605+ :id =" getElementId(props.id, 'secondary-actions')"
606+ size =" sm"
607+ class =" mt-1" >
604608 <template v-for =" sa in props .secondaryActions " >
605609 <BButton
606610 v-if =" sa.visible ?? true"
@@ -630,30 +634,33 @@ function onKeyDown(event: KeyboardEvent) {
630634
631635 <div :id =" getElementId(props.id, 'primary-actions')" class =" d-flex flex-gapx-1" >
632636 <slot name =" primary-actions" >
633- <template v-for =" pa in props .primaryActions " >
634- <BButton
635- v-if =" pa.visible ?? true"
636- :id =" getActionId(props.id, pa.id)"
637- :key =" pa.id"
638- v-b-tooltip.hover.noninteractive
639- :disabled =" pa.disabled"
640- :title =" localize(pa.title)"
641- :variant =" pa.variant || 'primary'"
642- :size =" pa.size || 'sm'"
643- :to =" pa.to"
644- :href =" pa.href"
645- :class =" {
646- 'inline-icon-button': pa.inline,
647- [String(pa.class)]: pa.class,
648- }"
649- @click.stop =" pa.handler" >
650- <FontAwesomeIcon
651- v-if =" pa.icon"
652- :icon =" pa.icon"
653- :size =" pa.size || undefined"
654- fixed-width />
655- {{ localize(pa.label) }}
656- </BButton >
637+ <template v-if =" props .primaryActions ?.length " >
638+ <template v-for =" pa in props .primaryActions " >
639+ <BButton
640+ v-if =" pa.visible ?? true"
641+ :id =" getActionId(props.id, pa.id)"
642+ :key =" pa.id"
643+ v-b-tooltip.hover.noninteractive
644+ class =" mt-1"
645+ :disabled =" pa.disabled"
646+ :title =" localize(pa.title)"
647+ :variant =" pa.variant || 'primary'"
648+ :size =" pa.size || 'sm'"
649+ :to =" pa.to"
650+ :href =" pa.href"
651+ :class =" {
652+ 'inline-icon-button': pa.inline,
653+ [String(pa.class)]: pa.class,
654+ }"
655+ @click.stop =" pa.handler" >
656+ <FontAwesomeIcon
657+ v-if =" pa.icon"
658+ :icon =" pa.icon"
659+ :size =" pa.size || undefined"
660+ fixed-width />
661+ {{ localize(pa.label) }}
662+ </BButton >
663+ </template >
657664 </template >
658665 </slot >
659666 </div >
0 commit comments