@muenchen/muc-patternlab-vue 1.12.1 → 1.13.0-beta.1

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.
@@ -0,0 +1,139 @@
1
+ declare const _default: {
2
+ component: {
3
+ new (...args: any[]): import('vue').CreateComponentPublicInstance<Readonly<import('vue').ExtractPropTypes<{
4
+ icon: {
5
+ type: import('vue').PropType<string>;
6
+ };
7
+ label: {
8
+ type: import('vue').PropType<string>;
9
+ required: true;
10
+ };
11
+ href: {
12
+ type: import('vue').PropType<string>;
13
+ default: string;
14
+ };
15
+ target: {
16
+ type: import('vue').PropType<string>;
17
+ default: string;
18
+ };
19
+ noUnderline: {
20
+ type: import('vue').PropType<boolean>;
21
+ default: boolean;
22
+ };
23
+ }>>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly<import('vue').ExtractPropTypes<{
24
+ icon: {
25
+ type: import('vue').PropType<string>;
26
+ };
27
+ label: {
28
+ type: import('vue').PropType<string>;
29
+ required: true;
30
+ };
31
+ href: {
32
+ type: import('vue').PropType<string>;
33
+ default: string;
34
+ };
35
+ target: {
36
+ type: import('vue').PropType<string>;
37
+ default: string;
38
+ };
39
+ noUnderline: {
40
+ type: import('vue').PropType<boolean>;
41
+ default: boolean;
42
+ };
43
+ }>>, {
44
+ href: string;
45
+ target: string;
46
+ noUnderline: boolean;
47
+ }, true, {}, {}, {
48
+ P: {};
49
+ B: {};
50
+ D: {};
51
+ C: {};
52
+ M: {};
53
+ Defaults: {};
54
+ }, Readonly<import('vue').ExtractPropTypes<{
55
+ icon: {
56
+ type: import('vue').PropType<string>;
57
+ };
58
+ label: {
59
+ type: import('vue').PropType<string>;
60
+ required: true;
61
+ };
62
+ href: {
63
+ type: import('vue').PropType<string>;
64
+ default: string;
65
+ };
66
+ target: {
67
+ type: import('vue').PropType<string>;
68
+ default: string;
69
+ };
70
+ noUnderline: {
71
+ type: import('vue').PropType<boolean>;
72
+ default: boolean;
73
+ };
74
+ }>>, {}, {}, {}, {}, {
75
+ href: string;
76
+ target: string;
77
+ noUnderline: boolean;
78
+ }>;
79
+ __isFragment?: never;
80
+ __isTeleport?: never;
81
+ __isSuspense?: never;
82
+ } & import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
83
+ icon: {
84
+ type: import('vue').PropType<string>;
85
+ };
86
+ label: {
87
+ type: import('vue').PropType<string>;
88
+ required: true;
89
+ };
90
+ href: {
91
+ type: import('vue').PropType<string>;
92
+ default: string;
93
+ };
94
+ target: {
95
+ type: import('vue').PropType<string>;
96
+ default: string;
97
+ };
98
+ noUnderline: {
99
+ type: import('vue').PropType<boolean>;
100
+ default: boolean;
101
+ };
102
+ }>>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
103
+ href: string;
104
+ target: string;
105
+ noUnderline: boolean;
106
+ }, {}, string, {}> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
107
+ $slots: Readonly<{
108
+ icon(): void;
109
+ }> & {
110
+ icon(): void;
111
+ };
112
+ });
113
+ title: string;
114
+ tags: string[];
115
+ args: {
116
+ onClick: import('@vitest/spy').Mock<any, any>;
117
+ };
118
+ parameters: {
119
+ docs: {
120
+ description: {
121
+ component: string;
122
+ };
123
+ };
124
+ };
125
+ };
126
+ export default _default;
127
+ export declare const Weather: {
128
+ args: {
129
+ label: string;
130
+ };
131
+ };
132
+ export declare const LinkWithIcon: {
133
+ args: {
134
+ icon: string;
135
+ label: string;
136
+ href: string;
137
+ noUnderline: boolean;
138
+ };
139
+ };
@@ -0,0 +1,92 @@
1
+ declare function __VLS_template(): Readonly<{
2
+ /**
3
+ * Icon slots overrides chosen prop icon.
4
+ * The icon can be displayed infront or behind the label with these classes: icon--after | icon--before
5
+ */
6
+ icon(): void;
7
+ }> & {
8
+ /**
9
+ * Icon slots overrides chosen prop icon.
10
+ * The icon can be displayed infront or behind the label with these classes: icon--after | icon--before
11
+ */
12
+ icon(): void;
13
+ };
14
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
15
+ /**
16
+ * Text shown as the link
17
+ */
18
+ label: string;
19
+ /**
20
+ * href to link to
21
+ */
22
+ href?: string;
23
+ /**
24
+ * Optional icon displayed behind the text
25
+ */
26
+ icon?: string;
27
+ /**
28
+ * Target on the link
29
+ */
30
+ target?: string;
31
+ /**
32
+ * Removes the underline from the label text
33
+ */
34
+ noUnderline?: boolean;
35
+ }>, {
36
+ noUnderline: boolean;
37
+ href: string;
38
+ target: string;
39
+ }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
40
+ /**
41
+ * Text shown as the link
42
+ */
43
+ label: string;
44
+ /**
45
+ * href to link to
46
+ */
47
+ href?: string;
48
+ /**
49
+ * Optional icon displayed behind the text
50
+ */
51
+ icon?: string;
52
+ /**
53
+ * Target on the link
54
+ */
55
+ target?: string;
56
+ /**
57
+ * Removes the underline from the label text
58
+ */
59
+ noUnderline?: boolean;
60
+ }>, {
61
+ noUnderline: boolean;
62
+ href: string;
63
+ target: string;
64
+ }>>>, {
65
+ href: string;
66
+ target: string;
67
+ noUnderline: boolean;
68
+ }, {}>;
69
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
70
+ export default _default;
71
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
72
+ type __VLS_TypePropsToRuntimeProps<T> = {
73
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
74
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
75
+ } : {
76
+ type: import('vue').PropType<T[K]>;
77
+ required: true;
78
+ };
79
+ };
80
+ type __VLS_WithDefaults<P, D> = {
81
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
82
+ default: D[K];
83
+ }> : P[K];
84
+ };
85
+ type __VLS_Prettify<T> = {
86
+ [K in keyof T]: T[K];
87
+ } & {};
88
+ type __VLS_WithTemplateSlots<T, S> = T & {
89
+ new (): {
90
+ $slots: S;
91
+ };
92
+ };
@@ -0,0 +1,3 @@
1
+ import { default as MucLink } from './MucLink.vue';
2
+
3
+ export { MucLink };
@@ -6,5 +6,6 @@ import { MucComment, MucCommentText } from './Comment/';
6
6
  import { MucCheckbox, MucCheckboxGroup, MucErrorList, MucInput, MucRadioButton, MucRadioButtonGroup, MucSelect, MucTextArea } from './Form';
7
7
  import { MucIcon } from './Icon';
8
8
  import { MucIntro } from './Intro';
9
+ import { MucLink } from './Link';
9
10
 
10
- export { MucButton, MucBanner, MucIntro, MucCallout, MucCard, MucCardContainer, MucComment, MucCommentText, MucRadioButton, MucRadioButtonGroup, MucInput, MucTextArea, MucCheckboxGroup, MucCheckbox, MucSelect, MucErrorList, MucIcon, };
11
+ export { MucButton, MucBanner, MucIntro, MucCallout, MucCard, MucCardContainer, MucComment, MucCommentText, MucRadioButton, MucRadioButtonGroup, MucInput, MucTextArea, MucCheckboxGroup, MucCheckbox, MucSelect, MucErrorList, MucIcon, MucLink, };
@@ -1,5 +1,5 @@
1
- import { defineComponent as v, useAttrs as Z, computed as r, openBlock as n, createElementBlock as c, normalizeClass as y, normalizeStyle as ee, createElementVNode as e, createVNode as R, unref as k, renderSlot as _, createBlock as j, createCommentVNode as $, toDisplayString as u, pushScopeId as H, popScopeId as N, useSlots as W, createTextVNode as g, Fragment as E, renderList as L, createSlots as te, withCtx as I, mergeModels as M, useModel as T, withModifiers as U, ref as O, withDirectives as z, vModelDynamic as se, inject as oe, provide as ae, readonly as ne, toRef as le, vModelText as ce } from "vue";
2
- const ie = ["href"], B = /* @__PURE__ */ v({
1
+ import { defineComponent as h, useAttrs as Z, computed as r, openBlock as n, createElementBlock as c, normalizeClass as b, normalizeStyle as ee, createElementVNode as e, createVNode as R, unref as k, renderSlot as _, createBlock as j, createCommentVNode as g, toDisplayString as u, pushScopeId as H, popScopeId as U, useSlots as N, createTextVNode as $, Fragment as E, renderList as L, createSlots as te, withCtx as B, mergeModels as C, useModel as T, withModifiers as W, ref as O, withDirectives as z, vModelDynamic as se, inject as oe, provide as ae, readonly as ne, toRef as le, vModelText as ce } from "vue";
2
+ const ie = ["href"], M = /* @__PURE__ */ h({
3
3
  __name: "MucIcon",
4
4
  props: {
5
5
  icon: {},
@@ -9,7 +9,7 @@ const ie = ["href"], B = /* @__PURE__ */ v({
9
9
  const t = Z(), s = r(() => t.class ?? "icon");
10
10
  return (o, i) => (n(), c("svg", {
11
11
  "aria-hidden": "true",
12
- class: y(s.value),
12
+ class: b(s.value),
13
13
  style: ee({ color: o.color })
14
14
  }, [
15
15
  e("use", {
@@ -17,7 +17,7 @@ const ie = ["href"], B = /* @__PURE__ */ v({
17
17
  }, null, 8, ie)
18
18
  ], 6));
19
19
  }
20
- }), re = ["role", "aria-label"], ue = { class: "container-fluid" }, de = /* @__PURE__ */ v({
20
+ }), re = ["role", "aria-label"], ue = { class: "container-fluid" }, de = /* @__PURE__ */ h({
21
21
  __name: "MucBanner",
22
22
  props: {
23
23
  type: { default: "info" }
@@ -77,24 +77,24 @@ const ie = ["href"], B = /* @__PURE__ */ v({
77
77
  return (m, f) => (n(), c("div", null, [
78
78
  e("div", null, [
79
79
  e("div", {
80
- class: y(["m-banner", s.value]),
80
+ class: b(["m-banner", s.value]),
81
81
  role: o.value,
82
82
  "aria-label": i.value
83
83
  }, [
84
84
  e("div", ue, [
85
- R(k(B), { icon: l.value }, null, 8, ["icon"]),
85
+ R(k(M), { icon: l.value }, null, 8, ["icon"]),
86
86
  _(m.$slots, "default", {}, void 0, !0)
87
87
  ])
88
88
  ], 10, re)
89
89
  ])
90
90
  ]));
91
91
  }
92
- }), x = (a, t) => {
92
+ }), V = (a, t) => {
93
93
  const s = a.__vccOpts || a;
94
94
  for (const [o, i] of t)
95
95
  s[o] = i;
96
96
  return s;
97
- }, _e = /* @__PURE__ */ x(de, [["__scopeId", "data-v-53bc7eca"]]), me = ["disabled"], D = /* @__PURE__ */ v({
97
+ }, _e = /* @__PURE__ */ V(de, [["__scopeId", "data-v-53bc7eca"]]), me = ["disabled"], D = /* @__PURE__ */ h({
98
98
  __name: "MucButton",
99
99
  props: {
100
100
  variant: { default: "primary" },
@@ -118,22 +118,22 @@ const ie = ["href"], B = /* @__PURE__ */ v({
118
118
  ), m = () => {
119
119
  o("click");
120
120
  };
121
- return (f, h) => (n(), c("button", {
121
+ return (f, v) => (n(), c("button", {
122
122
  onClick: m,
123
123
  disabled: f.disabled,
124
- class: y(["m-button", [i.value, l.value]])
124
+ class: b(["m-button", [i.value, l.value]])
125
125
  }, [
126
126
  e("span", null, [
127
127
  _(f.$slots, "default"),
128
- f.icon ? (n(), j(k(B), {
128
+ f.icon ? (n(), j(k(M), {
129
129
  key: 0,
130
130
  icon: f.icon,
131
131
  class: "m-button__icon"
132
- }, null, 8, ["icon"])) : $("", !0)
132
+ }, null, 8, ["icon"])) : g("", !0)
133
133
  ])
134
134
  ], 10, me));
135
135
  }
136
- }), pe = ["aria-label"], he = { class: "m-callout__inner" }, ve = { class: "m-callout__icon" }, fe = { class: "m-callout__body" }, $e = { class: "m-callout__body__inner" }, ge = { class: "m-callout__headline" }, be = { class: "m-callout__content" }, ye = /* @__PURE__ */ v({
136
+ }), pe = ["aria-label"], he = { class: "m-callout__inner" }, ve = { class: "m-callout__icon" }, fe = { class: "m-callout__body" }, ge = { class: "m-callout__body__inner" }, $e = { class: "m-callout__headline" }, be = { class: "m-callout__content" }, ye = /* @__PURE__ */ h({
137
137
  __name: "MucCallout",
138
138
  props: {
139
139
  type: { default: "info" }
@@ -172,18 +172,18 @@ const ie = ["href"], B = /* @__PURE__ */ v({
172
172
  }
173
173
  });
174
174
  return (l, m) => (n(), c("div", {
175
- class: y(["m-callout", o.value]),
175
+ class: b(["m-callout", o.value]),
176
176
  "aria-label": i.value
177
177
  }, [
178
178
  e("div", he, [
179
179
  e("div", ve, [
180
180
  _(l.$slots, "icon", {}, () => [
181
- R(k(B), { icon: s.value }, null, 8, ["icon"])
181
+ R(k(M), { icon: s.value }, null, 8, ["icon"])
182
182
  ], !0)
183
183
  ]),
184
184
  e("div", fe, [
185
- e("div", $e, [
186
- e("div", ge, [
185
+ e("div", ge, [
186
+ e("div", $e, [
187
187
  _(l.$slots, "header", {}, void 0, !0)
188
188
  ]),
189
189
  e("div", be, [
@@ -196,10 +196,10 @@ const ie = ["href"], B = /* @__PURE__ */ v({
196
196
  ])
197
197
  ], 10, pe));
198
198
  }
199
- }), ke = /* @__PURE__ */ x(ye, [["__scopeId", "data-v-e6cf4104"]]), Me = (a) => (H("data-v-acf0a1dd"), a = a(), N(), a), Ce = { class: "card-content" }, we = { class: "card-header" }, Se = {
199
+ }), ke = /* @__PURE__ */ V(ye, [["__scopeId", "data-v-e6cf4104"]]), Me = (a) => (H("data-v-acf0a1dd"), a = a(), U(), a), Ce = { class: "card-content" }, we = { class: "card-header" }, Se = {
200
200
  key: 0,
201
201
  class: "card-tagline"
202
- }, Ie = /* @__PURE__ */ Me(() => /* @__PURE__ */ e("div", { class: "muc-divider" }, null, -1)), Be = /* @__PURE__ */ v({
202
+ }, Ie = /* @__PURE__ */ Me(() => /* @__PURE__ */ e("div", { class: "muc-divider" }, null, -1)), Be = /* @__PURE__ */ h({
203
203
  __name: "MucCard",
204
204
  props: {
205
205
  title: {},
@@ -216,7 +216,7 @@ const ie = ["href"], B = /* @__PURE__ */ v({
216
216
  e("div", we, [
217
217
  _(o.$slots, "headerPrefix", {}, void 0, !0),
218
218
  e("div", null, [
219
- o.tagline ? (n(), c("div", Se, u(o.tagline), 1)) : $("", !0),
219
+ o.tagline ? (n(), c("div", Se, u(o.tagline), 1)) : g("", !0),
220
220
  e("div", null, [
221
221
  e("h3", null, u(o.title), 1)
222
222
  ])
@@ -227,92 +227,92 @@ const ie = ["href"], B = /* @__PURE__ */ v({
227
227
  ])
228
228
  ]));
229
229
  }
230
- }), xe = /* @__PURE__ */ x(Be, [["__scopeId", "data-v-acf0a1dd"]]), Ve = { class: "container card-container" }, Ae = /* @__PURE__ */ v({
230
+ }), Ve = /* @__PURE__ */ V(Be, [["__scopeId", "data-v-acf0a1dd"]]), xe = { class: "container card-container" }, Ae = /* @__PURE__ */ h({
231
231
  __name: "MucCardContainer",
232
232
  setup(a) {
233
- return (t, s) => (n(), c("div", Ve, [
233
+ return (t, s) => (n(), c("div", xe, [
234
234
  _(t.$slots, "default", {}, void 0, !0)
235
235
  ]));
236
236
  }
237
- }), Re = /* @__PURE__ */ x(Ae, [["__scopeId", "data-v-6740df8f"]]), Ee = { class: "m-comment__head" }, Le = { class: "m-comment__initials" }, Te = { class: "m-comment__info" }, Oe = { class: "m-comment__author" }, je = { key: 0 }, Ge = { class: "m-comment__author" }, Pe = { class: "m-comment__date" }, qe = ["aria-label"], He = {
237
+ }), Re = /* @__PURE__ */ V(Ae, [["__scopeId", "data-v-6740df8f"]]), Ee = { class: "m-comment__head" }, Le = { class: "m-comment__initials" }, Te = { class: "m-comment__info" }, Oe = { class: "m-comment__author" }, je = { key: 0 }, Ge = { class: "m-comment__author" }, Pe = { class: "m-comment__date" }, qe = ["aria-label"], He = {
238
238
  key: 0,
239
239
  class: "m-star-rating__item m-star-rating__item--half"
240
- }, Ne = { class: "m-star-rating__numeric" }, We = { class: "m-comment__body" }, Ue = { class: "m-comment__headline" }, ze = { class: "m-comment__text" }, De = "de-DE", Fe = 0.2, Ke = 0.8, A = 5, F = /* @__PURE__ */ v({
240
+ }, Ue = { class: "m-star-rating__numeric" }, Ne = { class: "m-comment__body" }, We = { class: "m-comment__headline" }, ze = { class: "m-comment__text" }, De = "de-DE", Fe = 0.2, Ke = 0.8, A = 5, F = /* @__PURE__ */ h({
241
241
  __name: "MucComment",
242
242
  props: {
243
243
  rating: {},
244
244
  variant: { default: "listing" }
245
245
  },
246
246
  setup(a) {
247
- const t = W(), s = a, o = r(() => !!t.date), i = r(() => s.variant === "slider" ? "m-comment--slider" : "m-comment--listing"), l = r(
247
+ const t = N(), s = a, o = r(() => !!t.date), i = r(() => s.variant === "slider" ? "m-comment--slider" : "m-comment--listing"), l = r(
248
248
  () => Math.min(Math.max(s.rating, 0), A)
249
249
  ), m = r(() => l.value.toLocaleString(De.valueOf(), {
250
250
  minimumFractionDigits: 1
251
251
  })), f = r(() => {
252
- const h = +(l.value % 1).toFixed(1);
253
- let C = Math.min(Math.floor(l.value), A), b = Math.floor(A - l.value), d = !1;
254
- return l.value !== 0 && l.value !== A && (h <= Fe ? b++ : h >= Ke ? C++ : d = !0), {
255
- fullStars: C,
256
- emptyStars: b,
252
+ const v = +(l.value % 1).toFixed(1);
253
+ let w = Math.min(Math.floor(l.value), A), y = Math.floor(A - l.value), d = !1;
254
+ return l.value !== 0 && l.value !== A && (v <= Fe ? y++ : v >= Ke ? w++ : d = !0), {
255
+ fullStars: w,
256
+ emptyStars: y,
257
257
  isHalfStar: d
258
258
  };
259
259
  });
260
- return (h, C) => (n(), c("div", {
261
- class: y(["m-comment", i.value])
260
+ return (v, w) => (n(), c("div", {
261
+ class: b(["m-comment", i.value])
262
262
  }, [
263
263
  e("div", Ee, [
264
264
  e("div", Le, [
265
- _(h.$slots, "initials")
265
+ _(v.$slots, "initials")
266
266
  ]),
267
267
  e("div", Te, [
268
268
  e("span", Oe, [
269
- _(h.$slots, "author")
269
+ _(v.$slots, "author")
270
270
  ]),
271
271
  o.value ? (n(), c("span", je, [
272
272
  e("span", Ge, [
273
- g("  "),
274
- _(h.$slots, "datePrefix")
273
+ $("  "),
274
+ _(v.$slots, "datePrefix")
275
275
  ]),
276
276
  e("span", Pe, [
277
- g(" "),
278
- _(h.$slots, "date")
277
+ $(" "),
278
+ _(v.$slots, "date")
279
279
  ])
280
- ])) : $("", !0),
280
+ ])) : g("", !0),
281
281
  e("div", {
282
282
  class: "m-star-rating",
283
283
  role: "img",
284
- "aria-label": `Bewertung: ${h.rating} von ${A} Sternen`
284
+ "aria-label": `Bewertung: ${v.rating} von ${A} Sternen`
285
285
  }, [
286
- (n(!0), c(E, null, L(f.value.fullStars, (b) => (n(), c("div", {
287
- key: b,
286
+ (n(!0), c(E, null, L(f.value.fullStars, (y) => (n(), c("div", {
287
+ key: y,
288
288
  class: "m-star-rating__item m-star-rating__item--full"
289
289
  }, [
290
- R(k(B), { icon: "solid-star" })
290
+ R(k(M), { icon: "solid-star" })
291
291
  ]))), 128)),
292
292
  f.value.isHalfStar ? (n(), c("div", He, [
293
- R(k(B), { icon: "half-star" })
294
- ])) : $("", !0),
295
- (n(!0), c(E, null, L(f.value.emptyStars, (b) => (n(), c("div", {
296
- key: b,
293
+ R(k(M), { icon: "half-star" })
294
+ ])) : g("", !0),
295
+ (n(!0), c(E, null, L(f.value.emptyStars, (y) => (n(), c("div", {
296
+ key: y,
297
297
  class: "m-star-rating__item"
298
298
  }, [
299
- R(k(B), { icon: "solid-star" })
299
+ R(k(M), { icon: "solid-star" })
300
300
  ]))), 128)),
301
- e("div", Ne, u(m.value), 1)
301
+ e("div", Ue, u(m.value), 1)
302
302
  ], 8, qe)
303
303
  ])
304
304
  ]),
305
- e("div", We, [
306
- e("div", Ue, [
307
- _(h.$slots, "headline")
305
+ e("div", Ne, [
306
+ e("div", We, [
307
+ _(v.$slots, "headline")
308
308
  ]),
309
309
  e("div", ze, [
310
- _(h.$slots, "text")
310
+ _(v.$slots, "text")
311
311
  ])
312
312
  ])
313
313
  ], 2));
314
314
  }
315
- }), Xe = " ", Je = /* @__PURE__ */ v({
315
+ }), Xe = " ", Je = /* @__PURE__ */ h({
316
316
  __name: "MucCommentText",
317
317
  props: {
318
318
  datePrefix: { default: "am" },
@@ -330,41 +330,41 @@ const ie = ["href"], B = /* @__PURE__ */ v({
330
330
  rating: o.rating,
331
331
  variant: o.variant
332
332
  }, te({
333
- initials: I(() => [
334
- g(u(s.value), 1)
333
+ initials: B(() => [
334
+ $(u(s.value), 1)
335
335
  ]),
336
- datePrefix: I(() => [
337
- g("am")
336
+ datePrefix: B(() => [
337
+ $("am")
338
338
  ]),
339
- author: I(() => [
340
- g(u(o.author), 1)
339
+ author: B(() => [
340
+ $(u(o.author), 1)
341
341
  ]),
342
- headline: I(() => [
343
- g(u(o.headline), 1)
342
+ headline: B(() => [
343
+ $(u(o.headline), 1)
344
344
  ]),
345
- text: I(() => [
346
- g(u(o.text), 1)
345
+ text: B(() => [
346
+ $(u(o.text), 1)
347
347
  ]),
348
348
  _: 2
349
349
  }, [
350
350
  o.date ? {
351
351
  name: "date",
352
- fn: I(() => [
353
- g(u(o.date), 1)
352
+ fn: B(() => [
353
+ $(u(o.date), 1)
354
354
  ]),
355
355
  key: "0"
356
356
  } : void 0
357
357
  ]), 1032, ["rating", "variant"]));
358
358
  }
359
- }), Qe = ["checked"], Ye = { class: "m-label m-checkboxes__label" }, Ze = /* @__PURE__ */ v({
359
+ }), Qe = ["checked"], Ye = { class: "m-label m-checkboxes__label" }, Ze = /* @__PURE__ */ h({
360
360
  __name: "MucCheckbox",
361
- props: /* @__PURE__ */ M({
361
+ props: /* @__PURE__ */ C({
362
362
  label: {}
363
363
  }, {
364
364
  modelValue: { type: Boolean, default: !1 },
365
365
  modelModifiers: {}
366
366
  }),
367
- emits: /* @__PURE__ */ M(["click"], ["update:modelValue"]),
367
+ emits: /* @__PURE__ */ C(["click"], ["update:modelValue"]),
368
368
  setup(a, { emit: t }) {
369
369
  const s = T(a, "modelValue"), o = t, i = () => {
370
370
  s.value = !s.value, o("click");
@@ -378,7 +378,7 @@ const ie = ["href"], B = /* @__PURE__ */ v({
378
378
  name: "checkbox",
379
379
  type: "checkbox",
380
380
  checked: s.value,
381
- onClick: U(i, ["stop"])
381
+ onClick: W(i, ["stop"])
382
382
  }, null, 8, Qe),
383
383
  e("label", Ye, u(l.label), 1)
384
384
  ]));
@@ -386,7 +386,7 @@ const ie = ["href"], B = /* @__PURE__ */ v({
386
386
  }), et = { class: "m-form-group" }, tt = { class: "m-checkbox-group" }, st = { class: "m-checkbox-group__legend" }, ot = { class: "m-checkbox-group__heading" }, at = { class: "m-checkboxes m-checkboxes--collapse" }, nt = /* @__PURE__ */ e("span", null, "Mehr ", -1), lt = {
387
387
  "aria-hidden": "true",
388
388
  class: "icon icon--after"
389
- }, ct = ["href"], it = /* @__PURE__ */ v({
389
+ }, ct = ["href"], it = /* @__PURE__ */ h({
390
390
  __name: "MucCheckboxGroup",
391
391
  props: {
392
392
  heading: {}
@@ -402,17 +402,17 @@ const ie = ["href"], B = /* @__PURE__ */ v({
402
402
  _(l.$slots, "checkboxes"),
403
403
  l.$slots.collapsableCheckboxes ? (n(), c("div", {
404
404
  key: 0,
405
- class: y(["m-checkboxes__collapse__container", s.value])
405
+ class: b(["m-checkboxes__collapse__container", s.value])
406
406
  }, [
407
407
  _(l.$slots, "collapsableCheckboxes")
408
- ], 2)) : $("", !0),
408
+ ], 2)) : g("", !0),
409
409
  l.$slots.collapsableCheckboxes ? (n(), j(k(D), {
410
410
  key: 1,
411
411
  variant: "ghost",
412
412
  onClick: i,
413
413
  "aria-expanded": !t.value
414
414
  }, {
415
- default: I(() => [
415
+ default: B(() => [
416
416
  nt,
417
417
  (n(), c("svg", lt, [
418
418
  e("use", {
@@ -421,7 +421,7 @@ const ie = ["href"], B = /* @__PURE__ */ v({
421
421
  ]))
422
422
  ]),
423
423
  _: 1
424
- }, 8, ["aria-expanded"])) : $("", !0)
424
+ }, 8, ["aria-expanded"])) : g("", !0)
425
425
  ])
426
426
  ])
427
427
  ]));
@@ -430,7 +430,7 @@ const ie = ["href"], B = /* @__PURE__ */ v({
430
430
  class: "m-error-list",
431
431
  role: "alert",
432
432
  tabindex: "-1"
433
- }, ut = { class: "m-error-list__title" }, dt = { class: "m-error-list__body" }, _t = { class: "m-list m-error-list__list" }, mt = /* @__PURE__ */ v({
433
+ }, ut = { class: "m-error-list__title" }, dt = { class: "m-error-list__body" }, _t = { class: "m-list m-error-list__list" }, mt = /* @__PURE__ */ h({
434
434
  __name: "MucErrorList",
435
435
  props: {
436
436
  title: {},
@@ -461,7 +461,7 @@ const ie = ["href"], B = /* @__PURE__ */ v({
461
461
  }, vt = /* @__PURE__ */ e("span", { class: "visually-hidden" }, "(erforderlich)", -1), ft = {
462
462
  id: "text-input-error",
463
463
  class: "m-error-message"
464
- }, $t = { class: "m-input-wrapper m-autocomplete" }, gt = {
464
+ }, gt = { class: "m-input-wrapper m-autocomplete" }, $t = {
465
465
  key: 0,
466
466
  class: "m-input__prefix"
467
467
  }, bt = ["type", "aria-describedby", "placeholder", "required"], yt = {
@@ -473,9 +473,9 @@ const ie = ["href"], B = /* @__PURE__ */ v({
473
473
  }, Ct = ["xlink:href"], wt = /* @__PURE__ */ e("span", { class: "visually-hidden" }, "Suchen", -1), St = {
474
474
  class: "m-hint",
475
475
  id: "text-input-hint"
476
- }, It = /* @__PURE__ */ v({
476
+ }, It = /* @__PURE__ */ h({
477
477
  __name: "MucInput",
478
- props: /* @__PURE__ */ M({
478
+ props: /* @__PURE__ */ C({
479
479
  errorMsg: {},
480
480
  placeholder: {},
481
481
  required: { type: Boolean, default: !1 },
@@ -488,53 +488,53 @@ const ie = ["href"], B = /* @__PURE__ */ v({
488
488
  modelValue: { default: "" },
489
489
  modelModifiers: {}
490
490
  }),
491
- emits: /* @__PURE__ */ M(["suffixClick"], ["update:modelValue"]),
491
+ emits: /* @__PURE__ */ C(["suffixClick"], ["update:modelValue"]),
492
492
  setup(a, { emit: t }) {
493
- const s = T(a, "modelValue"), o = a, i = W(), l = t, m = r(() => o.errorMsg ? "has-error" : ""), f = r(() => o.type === "search"), h = r(() => {
493
+ const s = T(a, "modelValue"), o = a, i = N(), l = t, m = r(() => o.errorMsg ? "has-error" : ""), f = r(() => o.type === "search"), v = r(() => {
494
494
  if (s.value === "") return [];
495
495
  const d = s.value.toLowerCase();
496
496
  return o.datalist.filter(
497
- (w) => w.toLowerCase().startsWith(d) && w.toLowerCase() !== d
497
+ (S) => S.toLowerCase().startsWith(d) && S.toLowerCase() !== d
498
498
  );
499
- }), C = (d) => s.value = d, b = () => l("suffixClick");
500
- return (d, w) => (n(), c("div", {
501
- class: y(["m-form-group", m.value])
499
+ }), w = (d) => s.value = d, y = () => l("suffixClick");
500
+ return (d, S) => (n(), c("div", {
501
+ class: b(["m-form-group", m.value])
502
502
  }, [
503
503
  e("label", pt, [
504
- g(u(d.label) + " ", 1),
504
+ $(u(d.label) + " ", 1),
505
505
  d.required ? (n(), c("span", ht, [
506
- g(" * "),
506
+ $(" * "),
507
507
  vt
508
- ])) : $("", !0)
508
+ ])) : g("", !0)
509
509
  ]),
510
510
  e("p", ft, u(d.errorMsg), 1),
511
- e("div", $t, [
512
- i.prefix ? (n(), c("div", gt, [
511
+ e("div", gt, [
512
+ i.prefix ? (n(), c("div", $t, [
513
513
  e("span", null, [
514
514
  _(d.$slots, "prefix")
515
515
  ])
516
- ])) : $("", !0),
516
+ ])) : g("", !0),
517
517
  z(e("input", {
518
518
  class: "m-input autocomplete-input",
519
519
  type: d.type,
520
- "onUpdate:modelValue": w[0] || (w[0] = (S) => s.value = S),
520
+ "onUpdate:modelValue": S[0] || (S[0] = (I) => s.value = I),
521
521
  "aria-describedby": d.type + "-input",
522
522
  placeholder: d.placeholder,
523
523
  required: d.required
524
524
  }, null, 8, bt), [
525
525
  [se, s.value]
526
526
  ]),
527
- f.value && h.value.length !== 0 ? (n(), c("ul", yt, [
528
- (n(!0), c(E, null, L(h.value, (S) => (n(), c("li", {
527
+ f.value && v.value.length !== 0 ? (n(), c("ul", yt, [
528
+ (n(!0), c(E, null, L(v.value, (I) => (n(), c("li", {
529
529
  class: "autocomplete-result",
530
- key: S,
531
- onClick: (G) => C(S)
532
- }, u(S), 9, kt))), 128))
533
- ])) : $("", !0),
530
+ key: I,
531
+ onClick: (G) => w(I)
532
+ }, u(I), 9, kt))), 128))
533
+ ])) : g("", !0),
534
534
  d.suffixIcon ? (n(), c("button", {
535
535
  key: 2,
536
536
  class: "m-input__suffix",
537
- onClick: b
537
+ onClick: y
538
538
  }, [
539
539
  (n(), c("svg", Mt, [
540
540
  e("use", {
@@ -542,7 +542,7 @@ const ie = ["href"], B = /* @__PURE__ */ v({
542
542
  }, null, 8, Ct)
543
543
  ])),
544
544
  wt
545
- ])) : $("", !0)
545
+ ])) : g("", !0)
546
546
  ]),
547
547
  e("p", St, u(d.hint), 1)
548
548
  ], 2));
@@ -550,7 +550,7 @@ const ie = ["href"], B = /* @__PURE__ */ v({
550
550
  }), K = Symbol("mucRadioGroup"), Bt = {
551
551
  key: 0,
552
552
  class: "m-radios__item"
553
- }, xt = ["checked", "disabled"], Vt = { class: "m-hint" }, At = /* @__PURE__ */ v({
553
+ }, Vt = ["checked", "disabled"], xt = { class: "m-hint" }, At = /* @__PURE__ */ h({
554
554
  __name: "MucRadioButton",
555
555
  props: {
556
556
  value: {},
@@ -560,33 +560,33 @@ const ie = ["href"], B = /* @__PURE__ */ v({
560
560
  },
561
561
  setup(a) {
562
562
  const t = a, s = oe(K), o = () => s == null ? void 0 : s.set(t.value), i = r(() => (s == null ? void 0 : s.modelValue.value) === t.value), l = r(() => t.disabled || (s == null ? void 0 : s.disabled.value)), m = r(() => !!(s != null && s.disabled));
563
- return (f, h) => m.value ? (n(), c("div", Bt, [
563
+ return (f, v) => m.value ? (n(), c("div", Bt, [
564
564
  e("input", {
565
565
  class: "m-radios__input",
566
566
  type: "radio",
567
567
  checked: i.value,
568
568
  disabled: l.value,
569
- onClick: U(o, ["stop"])
570
- }, null, 8, xt),
569
+ onClick: W(o, ["stop"])
570
+ }, null, 8, Vt),
571
571
  e("label", {
572
572
  class: "m-label m-radios__label",
573
573
  onClick: o
574
574
  }, [
575
- g(u(f.label) + " ", 1),
576
- e("span", Vt, u(f.hint), 1)
575
+ $(u(f.label) + " ", 1),
576
+ e("span", xt, u(f.hint), 1)
577
577
  ])
578
- ])) : $("", !0);
578
+ ])) : g("", !0);
579
579
  }
580
- }), Rt = { class: "m-form-group" }, Et = { class: "m-radio-group" }, Lt = { class: "m-radio-group__legend" }, Tt = { class: "m-radio-group__heading" }, Ot = { class: "m-radios" }, jt = /* @__PURE__ */ v({
580
+ }), Rt = { class: "m-form-group" }, Et = { class: "m-radio-group" }, Lt = { class: "m-radio-group__legend" }, Tt = { class: "m-radio-group__heading" }, Ot = { class: "m-radios" }, jt = /* @__PURE__ */ h({
581
581
  __name: "MucRadioButtonGroup",
582
- props: /* @__PURE__ */ M({
582
+ props: /* @__PURE__ */ C({
583
583
  heading: {},
584
584
  disabled: { type: Boolean, default: !1 }
585
585
  }, {
586
586
  modelValue: { type: [Boolean, String, Array, Object, Number, null] },
587
587
  modelModifiers: {}
588
588
  }),
589
- emits: /* @__PURE__ */ M(["change"], ["update:modelValue"]),
589
+ emits: /* @__PURE__ */ C(["change"], ["update:modelValue"]),
590
590
  setup(a, { emit: t }) {
591
591
  const s = T(a, "modelValue"), o = a, i = t;
592
592
  return ae(K, {
@@ -606,20 +606,20 @@ const ie = ["href"], B = /* @__PURE__ */ v({
606
606
  ])
607
607
  ]));
608
608
  }
609
- }), X = (a) => (H("data-v-d28d341e"), a = a(), N(), a), Gt = { class: "m-form-group" }, Pt = { class: "m-label" }, qt = ["value"], Ht = /* @__PURE__ */ X(() => /* @__PURE__ */ e("svg", {
609
+ }), X = (a) => (H("data-v-d28d341e"), a = a(), U(), a), Gt = { class: "m-form-group" }, Pt = { class: "m-label" }, qt = ["value"], Ht = /* @__PURE__ */ X(() => /* @__PURE__ */ e("svg", {
610
610
  "aria-hidden": "true",
611
611
  class: "icon"
612
612
  }, [
613
613
  /* @__PURE__ */ e("use", { "xlink:href": "#icon-chevron-down" })
614
- ], -1)), Nt = /* @__PURE__ */ X(() => /* @__PURE__ */ e("span", { class: "visually-hidden" }, "Auswahlliste öffnen", -1)), Wt = [
614
+ ], -1)), Ut = /* @__PURE__ */ X(() => /* @__PURE__ */ e("span", { class: "visually-hidden" }, "Auswahlliste öffnen", -1)), Nt = [
615
615
  Ht,
616
- Nt
617
- ], Ut = ["onMouseenter", "onClick"], zt = {
616
+ Ut
617
+ ], Wt = ["onMouseenter", "onClick"], zt = {
618
618
  key: 0,
619
619
  class: "m-hint"
620
- }, Dt = /* @__PURE__ */ v({
620
+ }, Dt = /* @__PURE__ */ h({
621
621
  __name: "MucSelect",
622
- props: /* @__PURE__ */ M({
622
+ props: /* @__PURE__ */ C({
623
623
  items: {},
624
624
  label: {},
625
625
  hint: {},
@@ -635,12 +635,12 @@ const ie = ["href"], B = /* @__PURE__ */ v({
635
635
  const t = T(a, "modelValue"), s = O(!1), o = O(), i = O(), l = a, m = () => {
636
636
  s.value = !s.value, i.value = o.value;
637
637
  }, f = (p) => {
638
- o.value = p, l.multiple ? C(p) : h(p), l.multiple || (s.value = !1);
639
- }, h = (p) => {
638
+ o.value = p, l.multiple ? w(p) : v(p), l.multiple || (s.value = !1);
639
+ }, v = (p) => {
640
640
  typeof t.value == "object" && (t.value = t.value.join(" ")), t.value = t.value === p ? "" : p;
641
- }, C = (p) => {
641
+ }, w = (p) => {
642
642
  typeof t.value == "string" && (t.value = [t.value]), t.value = t.value.includes(p) ? t.value.filter((P) => P !== p) : [...t.value, p];
643
- }, b = r(() => typeof t.value == "string" ? t.value : t.value.join(l.multiple ? ", " : " ")), d = (p) => p === i.value ? "active" : "", w = (p) => t.value.includes(p) ? "selected" : "", S = () => i.value = "", G = r(
643
+ }, y = r(() => typeof t.value == "string" ? t.value : t.value.join(l.multiple ? ", " : " ")), d = (p) => p === i.value ? "active" : "", S = (p) => t.value.includes(p) ? "selected" : "", I = () => i.value = "", G = r(
644
644
  () => s.value ? "display-listbox" : ""
645
645
  ), J = r(
646
646
  () => l.multiple ? "m-input-wrapper--multiselect multiselect" : "m-input-wrapper--select"
@@ -648,44 +648,44 @@ const ie = ["href"], B = /* @__PURE__ */ v({
648
648
  return (p, P) => (n(), c("div", Gt, [
649
649
  e("label", Pt, u(p.label), 1),
650
650
  e("div", {
651
- class: y(["m-input-wrapper", J.value])
651
+ class: b(["m-input-wrapper", J.value])
652
652
  }, [
653
653
  e("input", {
654
654
  type: "text",
655
655
  class: "m-input m-combobox m-combobox--single",
656
- value: b.value,
656
+ value: y.value,
657
657
  onClick: m,
658
658
  readonly: ""
659
659
  }, null, 8, qt),
660
660
  e("span", {
661
661
  class: "m-input__trigger",
662
662
  onClick: m
663
- }, Wt),
663
+ }, Nt),
664
664
  e("ul", {
665
- class: y(["listbox", G.value]),
666
- onMouseleave: S
665
+ class: b(["listbox", G.value]),
666
+ onMouseleave: I
667
667
  }, [
668
- (n(!0), c(E, null, L(l.items, (V, Q) => (n(), c("li", {
668
+ (n(!0), c(E, null, L(l.items, (x, Q) => (n(), c("li", {
669
669
  key: Q,
670
- class: y(["option", [d(V), w(V)]]),
671
- onMouseenter: (Y) => i.value = V,
672
- onClick: (Y) => f(V)
673
- }, u(V), 43, Ut))), 128))
670
+ class: b(["option", [d(x), S(x)]]),
671
+ onMouseenter: (Y) => i.value = x,
672
+ onClick: (Y) => f(x)
673
+ }, u(x), 43, Wt))), 128))
674
674
  ], 34)
675
675
  ], 2),
676
- p.hint ? (n(), c("p", zt, u(p.hint), 1)) : $("", !0)
676
+ p.hint ? (n(), c("p", zt, u(p.hint), 1)) : g("", !0)
677
677
  ]));
678
678
  }
679
- }), Ft = /* @__PURE__ */ x(Dt, [["__scopeId", "data-v-d28d341e"]]), Kt = { class: "m-form-group has-error" }, Xt = {
679
+ }), Ft = /* @__PURE__ */ V(Dt, [["__scopeId", "data-v-d28d341e"]]), Kt = { class: "m-form-group has-error" }, Xt = {
680
680
  for: "textarea",
681
681
  class: "m-label"
682
682
  }, Jt = {
683
683
  key: 0,
684
684
  "aria-hidden": "true",
685
685
  class: "mandatory"
686
- }, Qt = /* @__PURE__ */ e("span", { class: "visually-hidden" }, "(erforderlich)", -1), Yt = { class: "m-error-message" }, Zt = { class: "m-input-wrapper" }, es = ["rows", "placeholder"], ts = { class: "m-hint" }, ss = /* @__PURE__ */ v({
686
+ }, Qt = /* @__PURE__ */ e("span", { class: "visually-hidden" }, "(erforderlich)", -1), Yt = { class: "m-error-message" }, Zt = { class: "m-input-wrapper" }, es = ["rows", "placeholder"], ts = { class: "m-hint" }, ss = /* @__PURE__ */ h({
687
687
  __name: "MucTextArea",
688
- props: /* @__PURE__ */ M({
688
+ props: /* @__PURE__ */ C({
689
689
  errorMsg: {},
690
690
  rows: { default: 3 },
691
691
  placeholder: {},
@@ -701,11 +701,11 @@ const ie = ["href"], B = /* @__PURE__ */ v({
701
701
  const t = T(a, "modelValue");
702
702
  return (s, o) => (n(), c("div", Kt, [
703
703
  e("label", Xt, [
704
- g(u(s.label) + " ", 1),
704
+ $(u(s.label) + " ", 1),
705
705
  s.required ? (n(), c("span", Jt, [
706
- g(" * "),
706
+ $(" * "),
707
707
  Qt
708
- ])) : $("", !0)
708
+ ])) : g("", !0)
709
709
  ]),
710
710
  e("p", Yt, u(s.errorMsg), 1),
711
711
  e("div", Zt, [
@@ -731,7 +731,7 @@ const ie = ["href"], B = /* @__PURE__ */ v({
731
731
  }, cs = { class: "m-intro-vertical__title" }, is = {
732
732
  key: 0,
733
733
  class: "muc-divider"
734
- }, rs = { class: "m-intro-vertical__content" }, us = { style: { "padding-bottom": "32px" } }, ds = /* @__PURE__ */ v({
734
+ }, rs = { class: "m-intro-vertical__content" }, us = { style: { "padding-bottom": "32px" } }, ds = /* @__PURE__ */ h({
735
735
  __name: "MucIntro",
736
736
  props: {
737
737
  title: {},
@@ -743,10 +743,10 @@ const ie = ["href"], B = /* @__PURE__ */ v({
743
743
  e("div", as, [
744
744
  e("div", ns, [
745
745
  e("div", null, [
746
- t.tagline ? (n(), c("p", ls, u(t.tagline), 1)) : $("", !0),
746
+ t.tagline ? (n(), c("p", ls, u(t.tagline), 1)) : g("", !0),
747
747
  e("h1", cs, u(t.title), 1)
748
748
  ]),
749
- t.divider ? (n(), c("div", is)) : $("", !0),
749
+ t.divider ? (n(), c("div", is)) : g("", !0),
750
750
  e("div", rs, [
751
751
  e("p", us, [
752
752
  _(t.$slots, "default", {}, void 0, !0)
@@ -756,48 +756,78 @@ const ie = ["href"], B = /* @__PURE__ */ v({
756
756
  ])
757
757
  ]));
758
758
  }
759
- }), _s = /* @__PURE__ */ x(ds, [["__scopeId", "data-v-9ad3adc7"]]), q = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
759
+ }), _s = /* @__PURE__ */ V(ds, [["__scopeId", "data-v-9ad3adc7"]]), ms = ["href", "target"], ps = /* @__PURE__ */ h({
760
+ __name: "MucLink",
761
+ props: {
762
+ label: {},
763
+ href: { default: "#" },
764
+ icon: {},
765
+ target: { default: "_blank" },
766
+ noUnderline: { type: Boolean, default: !1 }
767
+ },
768
+ setup(a) {
769
+ const t = a, s = r(
770
+ () => t.noUnderline ? "m-link--reversed-underline" : ""
771
+ );
772
+ return (o, i) => (n(), c("a", {
773
+ href: o.href,
774
+ target: o.target,
775
+ class: b(["m-link", s.value])
776
+ }, [
777
+ $(u(o.label) + " ", 1),
778
+ _(o.$slots, "icon", {}, () => [
779
+ o.icon ? (n(), j(k(M), {
780
+ key: 0,
781
+ icon: o.icon,
782
+ class: "icon icon--after"
783
+ }, null, 8, ["icon"])) : g("", !0)
784
+ ])
785
+ ], 10, ms));
786
+ }
787
+ }), q = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
760
788
  __proto__: null,
761
789
  MucBanner: _e,
762
790
  MucButton: D,
763
791
  MucCallout: ke,
764
- MucCard: xe,
792
+ MucCard: Ve,
765
793
  MucCardContainer: Re,
766
794
  MucCheckbox: Ze,
767
795
  MucCheckboxGroup: it,
768
796
  MucComment: F,
769
797
  MucCommentText: Je,
770
798
  MucErrorList: mt,
771
- MucIcon: B,
799
+ MucIcon: M,
772
800
  MucInput: It,
773
801
  MucIntro: _s,
802
+ MucLink: ps,
774
803
  MucRadioButton: At,
775
804
  MucRadioButtonGroup: jt,
776
805
  MucSelect: Ft,
777
806
  MucTextArea: ss
778
807
  }, Symbol.toStringTag, { value: "Module" }));
779
- function ms(a) {
808
+ function hs(a) {
780
809
  for (const t in q)
781
810
  a.component(t, q[t]);
782
811
  }
783
- const hs = { install: ms };
812
+ const fs = { install: hs };
784
813
  export {
785
814
  _e as MucBanner,
786
815
  D as MucButton,
787
816
  ke as MucCallout,
788
- xe as MucCard,
817
+ Ve as MucCard,
789
818
  Re as MucCardContainer,
790
819
  Ze as MucCheckbox,
791
820
  it as MucCheckboxGroup,
792
821
  F as MucComment,
793
822
  Je as MucCommentText,
794
823
  mt as MucErrorList,
795
- B as MucIcon,
824
+ M as MucIcon,
796
825
  It as MucInput,
797
826
  _s as MucIntro,
827
+ ps as MucLink,
798
828
  At as MucRadioButton,
799
829
  jt as MucRadioButtonGroup,
800
830
  Ft as MucSelect,
801
831
  ss as MucTextArea,
802
- hs as default
832
+ fs as default
803
833
  };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "author": "FabianWilms",
4
4
  "description": "A vue component library of some of the components available from https://patternlab.muenchen.space",
5
5
  "license": "MIT",
6
- "version": "1.12.1",
6
+ "version": "1.13.0-beta.1",
7
7
  "private": false,
8
8
  "module": "./dist/muc-patternlab-vue.es.js",
9
9
  "types": "./dist/types/index.d.ts",
@@ -0,0 +1,36 @@
1
+ import { fn } from "@storybook/test";
2
+
3
+ import MucLink from "./MucLink.vue";
4
+
5
+ export default {
6
+ component: MucLink,
7
+ title: "MucLink",
8
+ tags: ["autodocs"],
9
+ // 👇 Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked
10
+ args: { onClick: fn() },
11
+ parameters: {
12
+ docs: {
13
+ description: {
14
+ component: `The \`muc-link\` component is a wrapper commponent for a standard html-a tag.
15
+
16
+ [🔗 Patternlab-Docs](https://patternlab.muenchen.space/?p=viewall-elements-links)
17
+ `,
18
+ },
19
+ },
20
+ },
21
+ };
22
+
23
+ export const Weather = {
24
+ args: {
25
+ label: "Generic link label",
26
+ },
27
+ };
28
+
29
+ export const LinkWithIcon = {
30
+ args: {
31
+ icon: "youtube",
32
+ label: "youtube",
33
+ href: "https://www.youtube.com",
34
+ noUnderline: true,
35
+ },
36
+ };
@@ -0,0 +1,74 @@
1
+ <template>
2
+ <a
3
+ :href="href"
4
+ :target="target"
5
+ class="m-link"
6
+ :class="reversedUnderlineClass"
7
+ >
8
+ {{ label }}
9
+ <slot name="icon">
10
+ <muc-icon
11
+ v-if="icon"
12
+ :icon="icon"
13
+ class="icon icon--after"
14
+ />
15
+ </slot>
16
+ </a>
17
+ </template>
18
+
19
+ <script setup lang="ts">
20
+ import { computed } from "vue";
21
+
22
+ import { MucIcon } from "../Icon";
23
+
24
+ const props = withDefaults(
25
+ defineProps<{
26
+ /**
27
+ * Text shown as the link
28
+ */
29
+ label: string;
30
+
31
+ /**
32
+ * href to link to
33
+ */
34
+ href?: string;
35
+
36
+ /**
37
+ * Optional icon displayed behind the text
38
+ */
39
+ icon?: string;
40
+
41
+ /**
42
+ * Target on the link
43
+ */
44
+ target?: string;
45
+
46
+ /**
47
+ * Removes the underline from the label text
48
+ */
49
+ noUnderline?: boolean;
50
+ }>(),
51
+ {
52
+ noUnderline: false,
53
+ href: "#",
54
+ target: "_blank",
55
+ }
56
+ );
57
+
58
+ defineSlots<{
59
+ /**
60
+ * Icon slots overrides chosen prop icon.
61
+ * The icon can be displayed infront or behind the label with these classes: icon--after | icon--before
62
+ */
63
+ icon(): void;
64
+ }>();
65
+
66
+ /**
67
+ * Computed class to remove the underline if chosen.
68
+ */
69
+ const reversedUnderlineClass = computed(() =>
70
+ props.noUnderline ? "m-link--reversed-underline" : ""
71
+ );
72
+ </script>
73
+
74
+ <style scoped></style>
@@ -0,0 +1,3 @@
1
+ import MucLink from "./MucLink.vue";
2
+
3
+ export { MucLink };
@@ -15,6 +15,7 @@ import {
15
15
  } from "./Form";
16
16
  import { MucIcon } from "./Icon";
17
17
  import { MucIntro } from "./Intro";
18
+ import { MucLink } from "./Link";
18
19
 
19
20
  export {
20
21
  MucButton,
@@ -34,4 +35,5 @@ export {
34
35
  MucSelect,
35
36
  MucErrorList,
36
37
  MucIcon,
38
+ MucLink,
37
39
  };