@erst-vg/vg-design-wrapper 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/CHANGELOG.md +49 -45
  2. package/README.md +2 -2
  3. package/dist/src/components/VgVideo.vue.d.ts +0 -8
  4. package/dist/vg-design-wrapper.js +518 -563
  5. package/dist/vg-design-wrapper.umd.cjs +24 -24
  6. package/package.json +91 -89
  7. package/src/assets/icons/abonnementFilled.svg +4 -4
  8. package/src/assets/icons/abonnementOutline.svg +4 -4
  9. package/src/assets/icons/accordion.svg +2 -2
  10. package/src/assets/icons/accordionClose.svg +2 -2
  11. package/src/assets/icons/accordionCloseOld.svg +6 -6
  12. package/src/assets/icons/accordionOpen.svg +3 -3
  13. package/src/assets/icons/accordionOpenOld.svg +6 -6
  14. package/src/assets/icons/accountCircle.svg +2 -2
  15. package/src/assets/icons/add.svg +5 -5
  16. package/src/assets/icons/addBig.svg +5 -5
  17. package/src/assets/icons/afpublicer.svg +2 -2
  18. package/src/assets/icons/agenda.svg +3 -3
  19. package/src/assets/icons/anchorlink.svg +3 -3
  20. package/src/assets/icons/anchormenuer.svg +3 -3
  21. package/src/assets/icons/anden.svg +3 -3
  22. package/src/assets/icons/angleArrowDown.svg +2 -2
  23. package/src/assets/icons/angleArrowUp.svg +2 -2
  24. package/src/assets/icons/ansoegninger.svg +6 -6
  25. package/src/assets/icons/antal-gange.svg +6 -6
  26. package/src/assets/icons/applikationer.svg +2 -2
  27. package/src/assets/icons/arrowLeft.svg +2 -2
  28. package/src/assets/icons/arrowRight.svg +2 -2
  29. package/src/assets/icons/bell.svg +2 -2
  30. package/src/assets/icons/bellAlarmFilled.svg +2 -2
  31. package/src/assets/icons/bellAlarmOutline.svg +2 -2
  32. package/src/assets/icons/bellOvercrossed.svg +2 -2
  33. package/src/assets/icons/beskedcenter.svg +2 -2
  34. package/src/assets/icons/billede.svg +2 -2
  35. package/src/assets/icons/bogmaerker.svg +2 -2
  36. package/src/assets/icons/bookmarkFilled.svg +2 -2
  37. package/src/assets/icons/bookmarkOutline.svg +2 -2
  38. package/src/assets/icons/breadcrumbArrow.svg +3 -3
  39. package/src/assets/icons/bred_smal.svg +3 -3
  40. package/src/assets/icons/cSRDAddDatapunkt.svg +5 -5
  41. package/src/assets/icons/cSRDAddMultipleDatapunkter.svg +7 -7
  42. package/src/assets/icons/cSRDLockedDatapunkt.svg +4 -4
  43. package/src/assets/icons/cSRDRemoveDatapunkt.svg +5 -5
  44. package/src/assets/icons/cSRDRemoveDatapunktOversigt.svg +4 -4
  45. package/src/assets/icons/calendar.svg +2 -2
  46. package/src/assets/icons/calendarOutline.svg +2 -2
  47. package/src/assets/icons/callToAction.svg +2 -2
  48. package/src/assets/icons/card.svg +2 -2
  49. package/src/assets/icons/carouselArrowLeft.svg +2 -2
  50. package/src/assets/icons/carouselArrowRight.svg +2 -2
  51. package/src/assets/icons/category.svg +2 -2
  52. package/src/assets/icons/center.svg +3 -3
  53. package/src/assets/icons/check.svg +2 -2
  54. package/src/assets/icons/chevronLeft.svg +2 -2
  55. package/src/assets/icons/circularArrow.svg +3 -3
  56. package/src/assets/icons/close.svg +2 -2
  57. package/src/assets/icons/closeCircleOutline.svg +2 -2
  58. package/src/assets/icons/closeCirleFilled.svg +2 -2
  59. package/src/assets/icons/copyLink.svg +2 -2
  60. package/src/assets/icons/datahub.svg +2 -2
  61. package/src/assets/icons/deleteOutline.svg +3 -3
  62. package/src/assets/icons/deltagelsesgange.svg +2 -2
  63. package/src/assets/icons/dots.svg +4 -4
  64. package/src/assets/icons/dotsHorizontal.svg +2 -2
  65. package/src/assets/icons/doubleArrow.svg +2 -2
  66. package/src/assets/icons/downRightArrow.svg +2 -2
  67. package/src/assets/icons/download.svg +2 -2
  68. package/src/assets/icons/draggable.svg +5 -5
  69. package/src/assets/icons/email.svg +5 -5
  70. package/src/assets/icons/emner.svg +2 -2
  71. package/src/assets/icons/en_spalte.svg +3 -3
  72. package/src/assets/icons/envelopeFilled.svg +2 -2
  73. package/src/assets/icons/envelopeOutline.svg +4 -4
  74. package/src/assets/icons/error.svg +2 -2
  75. package/src/assets/icons/excel.svg +4 -4
  76. package/src/assets/icons/expandCircleRight.svg +3 -3
  77. package/src/assets/icons/eyeHide.svg +2 -2
  78. package/src/assets/icons/file.svg +5 -5
  79. package/src/assets/icons/filter.svg +2 -2
  80. package/src/assets/icons/filter2.svg +20 -20
  81. package/src/assets/icons/fire_spalter.svg +3 -3
  82. package/src/assets/icons/graph.svg +2 -2
  83. package/src/assets/icons/helpCircleOutline.svg +5 -5
  84. package/src/assets/icons/hero.svg +2 -2
  85. package/src/assets/icons/highlightArrow.svg +3 -3
  86. package/src/assets/icons/history.svg +2 -2
  87. package/src/assets/icons/home.svg +5 -5
  88. package/src/assets/icons/image.svg +5 -5
  89. package/src/assets/icons/indsaet.svg +2 -2
  90. package/src/assets/icons/indstillinger.svg +2 -2
  91. package/src/assets/icons/info.svg +4 -4
  92. package/src/assets/icons/infobox.svg +2 -2
  93. package/src/assets/icons/knap.svg +2 -2
  94. package/src/assets/icons/kontaktformular.svg +2 -2
  95. package/src/assets/icons/kopi.svg +2 -2
  96. package/src/assets/icons/leftUpCurvedArrow.svg +2 -2
  97. package/src/assets/icons/letter.svg +2 -2
  98. package/src/assets/icons/link.svg +2 -2
  99. package/src/assets/icons/linkboks.svg +4 -4
  100. package/src/assets/icons/linkedin.svg +5 -5
  101. package/src/assets/icons/liste.svg +2 -2
  102. package/src/assets/icons/listecard.svg +2 -2
  103. package/src/assets/icons/loading.svg +2 -2
  104. package/src/assets/icons/location.svg +2 -2
  105. package/src/assets/icons/lock.svg +6 -6
  106. package/src/assets/icons/loginbanner.svg +2 -2
  107. package/src/assets/icons/magnify.svg +2 -2
  108. package/src/assets/icons/magnifyBig.svg +2 -2
  109. package/src/assets/icons/map.svg +2 -2
  110. package/src/assets/icons/menu.svg +2 -2
  111. package/src/assets/icons/menuDown.svg +2 -2
  112. package/src/assets/icons/menuUp.svg +2 -2
  113. package/src/assets/icons/minus.svg +2 -2
  114. package/src/assets/icons/mitId.svg +3 -3
  115. package/src/assets/icons/notVerified.svg +2 -2
  116. package/src/assets/icons/notes.svg +5 -5
  117. package/src/assets/icons/online.svg +2 -2
  118. package/src/assets/icons/openInNew.svg +2 -2
  119. package/src/assets/icons/paere.svg +7 -7
  120. package/src/assets/icons/paginationChevronLeft.svg +4 -4
  121. package/src/assets/icons/paginationChevronRight.svg +4 -4
  122. package/src/assets/icons/paginationFirstPage.svg +4 -4
  123. package/src/assets/icons/paginationLastPage.svg +4 -4
  124. package/src/assets/icons/partnergruppe.svg +5 -5
  125. package/src/assets/icons/pause.svg +2 -2
  126. package/src/assets/icons/pdf.svg +4 -4
  127. package/src/assets/icons/pdfDownload.svg +2 -2
  128. package/src/assets/icons/pencil.svg +2 -2
  129. package/src/assets/icons/pencilOutline.svg +2 -2
  130. package/src/assets/icons/people.svg +4 -4
  131. package/src/assets/icons/phone.svg +5 -5
  132. package/src/assets/icons/play.svg +4 -4
  133. package/src/assets/icons/playVideo.svg +4 -4
  134. package/src/assets/icons/plus.svg +2 -2
  135. package/src/assets/icons/powerpoint.svg +4 -4
  136. package/src/assets/icons/praedefineretSoegning.svg +2 -2
  137. package/src/assets/icons/questionmark.svg +3 -3
  138. package/src/assets/icons/quote.svg +2 -2
  139. package/src/assets/icons/redaktion.svg +2 -2
  140. package/src/assets/icons/remove.svg +2 -2
  141. package/src/assets/icons/removeRedEyeOutline.svg +2 -2
  142. package/src/assets/icons/revert.svg +3 -3
  143. package/src/assets/icons/richtext.svg +2 -2
  144. package/src/assets/icons/roundCheckmark.svg +2 -2
  145. package/src/assets/icons/save.svg +2 -2
  146. package/src/assets/icons/sektionsoverskrift.svg +5 -5
  147. package/src/assets/icons/smal_bred.svg +3 -3
  148. package/src/assets/icons/starFilled.svg +2 -2
  149. package/src/assets/icons/starOutline.svg +2 -2
  150. package/src/assets/icons/tag.svg +2 -2
  151. package/src/assets/icons/teaser.svg +3 -3
  152. package/src/assets/icons/teaserbillede.svg +2 -2
  153. package/src/assets/icons/tekstgruppe.svg +2 -2
  154. package/src/assets/icons/time.svg +6 -6
  155. package/src/assets/icons/to_spalter.svg +3 -3
  156. package/src/assets/icons/top.svg +3 -3
  157. package/src/assets/icons/trashCan.svg +2 -2
  158. package/src/assets/icons/tre_spalter.svg +3 -3
  159. package/src/assets/icons/udvidedeCardgruppe.svg +2 -2
  160. package/src/assets/icons/unlock.svg +2 -2
  161. package/src/assets/icons/verified.svg +2 -2
  162. package/src/assets/icons/video.svg +2 -2
  163. package/src/assets/icons/word.svg +10 -10
  164. package/src/assets/icons/zoom.svg +2 -2
  165. package/src/components/VgAccordion.vue +97 -97
  166. package/src/components/VgButton.vue +18 -18
  167. package/src/components/VgButtons.vue +27 -27
  168. package/src/components/VgCard.vue +96 -96
  169. package/src/components/VgCardGroup.vue +18 -18
  170. package/src/components/VgDesignWrapper.vue +45 -45
  171. package/src/components/VgIcon.vue +54 -54
  172. package/src/components/VgKalturaVideo.vue +70 -0
  173. package/src/components/VgListe.vue +73 -73
  174. package/src/components/VgListeCard.vue +41 -41
  175. package/src/components/VgLoginButton.vue +7 -7
  176. package/src/components/VgPagination.vue +207 -207
  177. package/src/components/VgVideo.vue +59 -0
  178. package/src/components/VgVideoToolVideo.vue +70 -0
  179. package/src/styles/custom/_vgAccordion.scss +39 -39
  180. package/src/styles/custom/_vgCard.scss +15 -15
  181. package/src/styles/custom/_vgIcon.scss +3 -3
  182. package/src/styles/custom/_vgListe.scss +3 -3
  183. package/src/styles/custom/_vgVideo.scss +86 -0
  184. package/src/styles/custom/_vgVideoFrame.scss +9 -0
  185. package/src/styles/utility.scss +2 -2
  186. package/src/styles/vg/_vg-colors.scss +209 -209
  187. package/src/styles/vg/accordion/_vg-accordion.scss +140 -142
  188. package/src/styles/vg/buttons/_vg-buttons.scss +365 -365
  189. package/src/styles/vg/mixins/_vg-mediaquery-helpers.scss +159 -159
  190. package/src/styles/vg/pagination/_vg-pagination.scss +69 -69
  191. package/dist/src/components/VgVimeoVideo.vue.d.ts +0 -39
  192. package/dist/tests/unit/components/VgVimeoVideo.spec.d.ts +0 -1
@@ -1,54 +1,54 @@
1
- <template>
2
- <svg v-if="custom" class="icon-svg" :focusable="focusable" :aria-hidden="titleTekst === ''">
3
- <title v-if="title" xmlns="http://www.w3.org/2000/svg">{{ title }}</title>
4
- <use :xlink:href="`#${icon}`"></use>
5
- </svg>
6
- <InlineSvg v-else-if="iconSrc" :src="iconSrc" class="icon icon-svg" :title="titleTekst" :focusable="focusable" :aria-hidden="titleTekst === ''" />
7
- </template>
8
-
9
- <script setup lang="ts">
10
- import { computed, inject } from 'vue';
11
- import InlineSvg from 'vue-inline-svg';
12
-
13
- const props = defineProps({
14
- icon: {
15
- type: String,
16
- required: true
17
- },
18
- focusable: {
19
- type: String,
20
- default: 'false'
21
- },
22
- title: {
23
- type: String,
24
- default: undefined
25
- }
26
- });
27
-
28
- const siteIkoner = inject('siteIkoner');
29
-
30
- const titleTekst = computed(() => props.title || '');
31
-
32
- const custom = computed((): boolean => !!iconSrc.value?.includes('<symbol'));
33
-
34
- const iconSrc = computed(() => {
35
- let resolved = siteIkoner ? (siteIkoner as { [key: string]: string })[props.icon] : null;
36
- if (props.icon && !resolved) {
37
- try {
38
- const path = new URL(`../assets/icons/${props.icon}.svg`, import.meta.url).href;
39
- if (path.endsWith('undefined')) {
40
- throw Error('invalid URL');
41
- }
42
- resolved = path;
43
- } catch {
44
- // eslint-disable-next-line no-console
45
- console.warn(`Unable to resolve path for icon: ${props.icon}.svg`);
46
- }
47
- }
48
- return resolved;
49
- });
50
- </script>
51
-
52
- <style lang="scss" scoped>
53
- @use '@/styles/custom/_vgIcon.scss';
54
- </style>
1
+ <template>
2
+ <svg v-if="custom" class="icon-svg" :focusable="focusable" :aria-hidden="titleTekst === ''">
3
+ <title v-if="title" xmlns="http://www.w3.org/2000/svg">{{ title }}</title>
4
+ <use :xlink:href="`#${icon}`"></use>
5
+ </svg>
6
+ <InlineSvg v-else-if="iconSrc" :src="iconSrc" class="icon icon-svg" :title="titleTekst" :focusable="focusable" :aria-hidden="titleTekst === ''" />
7
+ </template>
8
+
9
+ <script setup lang="ts">
10
+ import { computed, inject } from 'vue';
11
+ import InlineSvg from 'vue-inline-svg';
12
+
13
+ const props = defineProps({
14
+ icon: {
15
+ type: String,
16
+ required: true
17
+ },
18
+ focusable: {
19
+ type: String,
20
+ default: 'false'
21
+ },
22
+ title: {
23
+ type: String,
24
+ default: undefined
25
+ }
26
+ });
27
+
28
+ const siteIkoner = inject('siteIkoner');
29
+
30
+ const titleTekst = computed(() => props.title || '');
31
+
32
+ const custom = computed((): boolean => !!iconSrc.value?.includes('<symbol'));
33
+
34
+ const iconSrc = computed(() => {
35
+ let resolved = siteIkoner ? (siteIkoner as { [key: string]: string })[props.icon] : null;
36
+ if (props.icon && !resolved) {
37
+ try {
38
+ const path = new URL(`../assets/icons/${props.icon}.svg`, import.meta.url).href;
39
+ if (path.endsWith('undefined')) {
40
+ throw Error('invalid URL');
41
+ }
42
+ resolved = path;
43
+ } catch {
44
+ // eslint-disable-next-line no-console
45
+ console.warn(`Unable to resolve path for icon: ${props.icon}.svg`);
46
+ }
47
+ }
48
+ return resolved;
49
+ });
50
+ </script>
51
+
52
+ <style lang="scss" scoped>
53
+ @use '@/styles/custom/_vgIcon.scss';
54
+ </style>
@@ -0,0 +1,70 @@
1
+ <template>
2
+ <div>
3
+ <iframe
4
+ v-if="playVideo && videoUrl"
5
+ :src="videoUrl"
6
+ :alt="alt"
7
+ class="video-frame"
8
+ title="Kaltura afspiller"
9
+ allow="autoplay"
10
+ allowfullscreen
11
+ webkitallowfullscreen
12
+ mozAllowFullScreen
13
+ data-testid="video-frame"
14
+ />
15
+ <slot name="preview" :thumbnail-url="thumbnailUrl" />
16
+ </div>
17
+ </template>
18
+
19
+ <script setup lang="ts">
20
+ import { computed } from 'vue';
21
+
22
+ const props = defineProps({
23
+ src: {
24
+ type: String,
25
+ required: true
26
+ },
27
+ alt: {
28
+ type: String,
29
+ required: true
30
+ },
31
+ playVideo: {
32
+ type: Boolean,
33
+ required: true
34
+ }
35
+ });
36
+
37
+ const videoUrl = computed(() => {
38
+ let link = props.src;
39
+ const autoPlay = 'flashvars[autoPlay]';
40
+ if (!link.includes(autoPlay)) {
41
+ link = addQuerystring(link, `${autoPlay}=true`);
42
+ }
43
+ return link;
44
+ });
45
+
46
+ const thumbnailUrl = computed<string>(() => {
47
+ let url = '';
48
+ const groups = props.src.match(/https:\/\/(.*)\/p\/(\d*)\/.*?.*entry_id=([a-zA-Z0-9_]+)(?=&|$)/); // NOSONAR
49
+ if (groups?.length === 4) {
50
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
51
+ const [_, domain, partnerId, entryId] = groups;
52
+ url = `https://${domain}/p/${partnerId}/thumbnail/entry_id/${entryId}/width/800/quality/100`;
53
+ }
54
+ return url;
55
+ });
56
+
57
+ function addQuerystring(url: string, query: string): string {
58
+ const firstParamPrefix = '?';
59
+ const subsequentParamPrefix = '&';
60
+ if (query.indexOf(firstParamPrefix) === 0 || query.indexOf(subsequentParamPrefix) === 0) {
61
+ query = query.substring(1);
62
+ }
63
+ const qsPrefix = url.indexOf(firstParamPrefix) > 0 ? subsequentParamPrefix : firstParamPrefix;
64
+ return url + qsPrefix + query;
65
+ }
66
+ </script>
67
+
68
+ <style lang="scss" scoped>
69
+ @use '@/styles/custom/_vgVideoFrame.scss';
70
+ </style>
@@ -1,73 +1,73 @@
1
- <template>
2
- <div>
3
- <div class="udvidet-cardgruppe udvidet-cardgruppe-liste px-0">
4
- <p>{{ resultsText }}</p>
5
- <div class="row cardrow">
6
- <slot />
7
- </div>
8
- </div>
9
- <div v-if="antal > dataSlice.length" class="d-flex justify-content-center">
10
- <div v-if="useSpinner && pending">
11
- <slot name="spinner">
12
- <div class="spinner" />
13
- </slot>
14
- </div>
15
- <button v-else class="button centered-button button-secondary" type="button" data-testid="button-load" @click="onClick">
16
- {{ $t('content.application.emnelandningside.button.visflere') }}
17
- </button>
18
- </div>
19
- </div>
20
- </template>
21
-
22
- <script setup lang="ts">
23
- import { ParamType } from '@/utils/tekstnoegle-util';
24
- import { computed, inject, nextTick, PropType, ref, watch } from 'vue';
25
-
26
- const emits = defineEmits(['load-slice']);
27
- const props = defineProps({
28
- titel: {
29
- type: String,
30
- required: false,
31
- default: undefined
32
- },
33
- antal: {
34
- type: Number,
35
- required: true
36
- },
37
- useSpinner: {
38
- type: Boolean,
39
- default: true
40
- },
41
- dataSlice: {
42
- type: Array as PropType<any>,
43
- required: true
44
- }
45
- });
46
-
47
- const $t: (tekstnoegle: string, params?: ParamType) => string = inject('$t')!;
48
-
49
- const pending = ref(false);
50
-
51
- const resultsText = computed(() => $t('content.applikation.cardliste.results.text', [props.dataSlice.length, props.antal ?? 0]));
52
-
53
- const onClick = () => {
54
- pending.value = true;
55
- emits('load-slice');
56
- };
57
-
58
- watch(
59
- () => props.dataSlice,
60
- async (newDataSlice, oldDataSlice) => {
61
- if (newDataSlice > oldDataSlice) {
62
- pending.value = false;
63
- await nextTick();
64
- const containerElement = document.querySelector('.applikation-container .udvidet-cardgruppe-liste');
65
- containerElement?.querySelectorAll<HTMLElement>('.udvidet-cardgruppe-card')[oldDataSlice.length].focus();
66
- }
67
- }
68
- );
69
- </script>
70
-
71
- <style lang="scss" scoped>
72
- @use '@/styles/custom/_vgListe.scss';
73
- </style>
1
+ <template>
2
+ <div>
3
+ <div class="udvidet-cardgruppe udvidet-cardgruppe-liste px-0">
4
+ <p>{{ resultsText }}</p>
5
+ <div class="row cardrow">
6
+ <slot />
7
+ </div>
8
+ </div>
9
+ <div v-if="antal > dataSlice.length" class="d-flex justify-content-center">
10
+ <div v-if="useSpinner && pending">
11
+ <slot name="spinner">
12
+ <div class="spinner" />
13
+ </slot>
14
+ </div>
15
+ <button v-else class="button centered-button button-secondary" type="button" data-testid="button-load" @click="onClick">
16
+ {{ $t('content.application.emnelandningside.button.visflere') }}
17
+ </button>
18
+ </div>
19
+ </div>
20
+ </template>
21
+
22
+ <script setup lang="ts">
23
+ import { ParamType } from '@/utils/tekstnoegle-util';
24
+ import { computed, inject, nextTick, PropType, ref, watch } from 'vue';
25
+
26
+ const emits = defineEmits(['load-slice']);
27
+ const props = defineProps({
28
+ titel: {
29
+ type: String,
30
+ required: false,
31
+ default: undefined
32
+ },
33
+ antal: {
34
+ type: Number,
35
+ required: true
36
+ },
37
+ useSpinner: {
38
+ type: Boolean,
39
+ default: true
40
+ },
41
+ dataSlice: {
42
+ type: Array as PropType<any>,
43
+ required: true
44
+ }
45
+ });
46
+
47
+ const $t: (tekstnoegle: string, params?: ParamType) => string = inject('$t')!;
48
+
49
+ const pending = ref(false);
50
+
51
+ const resultsText = computed(() => $t('content.applikation.cardliste.results.text', [props.dataSlice.length, props.antal ?? 0]));
52
+
53
+ const onClick = () => {
54
+ pending.value = true;
55
+ emits('load-slice');
56
+ };
57
+
58
+ watch(
59
+ () => props.dataSlice,
60
+ async (newDataSlice, oldDataSlice) => {
61
+ if (newDataSlice > oldDataSlice) {
62
+ pending.value = false;
63
+ await nextTick();
64
+ const containerElement = document.querySelector('.applikation-container .udvidet-cardgruppe-liste');
65
+ containerElement?.querySelectorAll<HTMLElement>('.udvidet-cardgruppe-card')[oldDataSlice.length].focus();
66
+ }
67
+ }
68
+ );
69
+ </script>
70
+
71
+ <style lang="scss" scoped>
72
+ @use '@/styles/custom/_vgListe.scss';
73
+ </style>
@@ -1,41 +1,41 @@
1
- <template>
2
- <div class="card-container">
3
- <div class="udvidet-card-container">
4
- <a role="button" tabindex="0" class="udvidet-cardgruppe-card liste-layout" data-testid="link" :title="titel" :aria-label="titel">
5
- <div class="text-wrapper">
6
- <div>
7
- <div class="text">
8
- <div v-if="label" class="label-container">
9
- <p class="h6 m-0 show-spaces break-word" data-testid="label">{{ label }}</p>
10
- </div>
11
- <div class="card-titel">
12
- <h3 class="h4 line-limit mt-0 mb-3 break-word" data-testid="titel">{{ titel }}</h3>
13
- </div>
14
- <pre class="mt-0 mb-3 break-word line-limit">
15
- <slot/>
16
- </pre>
17
- </div>
18
- </div>
19
- </div>
20
- </a>
21
- </div>
22
- </div>
23
- </template>
24
-
25
- <script setup lang="ts">
26
- defineProps({
27
- label: {
28
- type: String,
29
- required: false,
30
- default: undefined
31
- },
32
- titel: {
33
- type: String,
34
- required: true
35
- }
36
- });
37
- </script>
38
-
39
- <style lang="scss" scoped>
40
- @use '@/styles/custom/_vgCard.scss';
41
- </style>
1
+ <template>
2
+ <div class="card-container">
3
+ <div class="udvidet-card-container">
4
+ <a role="button" tabindex="0" class="udvidet-cardgruppe-card liste-layout" data-testid="link" :title="titel" :aria-label="titel">
5
+ <div class="text-wrapper">
6
+ <div>
7
+ <div class="text">
8
+ <div v-if="label" class="label-container">
9
+ <p class="h6 m-0 show-spaces break-word" data-testid="label">{{ label }}</p>
10
+ </div>
11
+ <div class="card-titel">
12
+ <h3 class="h4 line-limit mt-0 mb-3 break-word" data-testid="titel">{{ titel }}</h3>
13
+ </div>
14
+ <pre class="mt-0 mb-3 break-word line-limit">
15
+ <slot/>
16
+ </pre>
17
+ </div>
18
+ </div>
19
+ </div>
20
+ </a>
21
+ </div>
22
+ </div>
23
+ </template>
24
+
25
+ <script setup lang="ts">
26
+ defineProps({
27
+ label: {
28
+ type: String,
29
+ required: false,
30
+ default: undefined
31
+ },
32
+ titel: {
33
+ type: String,
34
+ required: true
35
+ }
36
+ });
37
+ </script>
38
+
39
+ <style lang="scss" scoped>
40
+ @use '@/styles/custom/_vgCard.scss';
41
+ </style>
@@ -1,7 +1,7 @@
1
- <template>
2
- <button type="button" class="button mitid-button d-inline-flex align-items-center"><VgIcon icon="mitId" class="mr-4" />Log ind med MitID</button>
3
- </template>
4
-
5
- <script setup lang="ts">
6
- import VgIcon from '@/components/VgIcon.vue';
7
- </script>
1
+ <template>
2
+ <button type="button" class="button mitid-button d-inline-flex align-items-center"><VgIcon icon="mitId" class="mr-4" />Log ind med MitID</button>
3
+ </template>
4
+
5
+ <script setup lang="ts">
6
+ import VgIcon from '@/components/VgIcon.vue';
7
+ </script>