@muenchen/muc-patternlab-vue 1.3.0 → 1.4.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 (66) hide show
  1. package/dist/assets/fonts/open-sans/open-sans-v27-latin-700.eot +0 -0
  2. package/dist/assets/fonts/open-sans/open-sans-v27-latin-700.svg +349 -0
  3. package/dist/assets/fonts/open-sans/open-sans-v27-latin-700.ttf +0 -0
  4. package/dist/assets/fonts/open-sans/open-sans-v27-latin-700.woff +0 -0
  5. package/dist/assets/fonts/open-sans/open-sans-v27-latin-700.woff2 +0 -0
  6. package/dist/assets/fonts/open-sans/open-sans-v27-latin-italic.eot +0 -0
  7. package/dist/assets/fonts/open-sans/open-sans-v27-latin-italic.svg +379 -0
  8. package/dist/assets/fonts/open-sans/open-sans-v27-latin-italic.ttf +0 -0
  9. package/dist/assets/fonts/open-sans/open-sans-v27-latin-italic.woff +0 -0
  10. package/dist/assets/fonts/open-sans/open-sans-v27-latin-italic.woff2 +0 -0
  11. package/dist/assets/fonts/open-sans/open-sans-v27-latin-regular.eot +0 -0
  12. package/dist/assets/fonts/open-sans/open-sans-v27-latin-regular.svg +349 -0
  13. package/dist/assets/fonts/open-sans/open-sans-v27-latin-regular.ttf +0 -0
  14. package/dist/assets/fonts/open-sans/open-sans-v27-latin-regular.woff +0 -0
  15. package/dist/assets/fonts/open-sans/open-sans-v27-latin-regular.woff2 +0 -0
  16. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-300.eot +0 -0
  17. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-300.svg +310 -0
  18. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-300.ttf +0 -0
  19. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-300.woff +0 -0
  20. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-300.woff2 +0 -0
  21. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.eot +0 -0
  22. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.svg +323 -0
  23. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.ttf +0 -0
  24. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.woff +0 -0
  25. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.woff2 +0 -0
  26. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-700.eot +0 -0
  27. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-700.svg +309 -0
  28. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-700.ttf +0 -0
  29. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-700.woff +0 -0
  30. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-700.woff2 +0 -0
  31. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.eot +0 -0
  32. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.svg +322 -0
  33. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.ttf +0 -0
  34. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.woff +0 -0
  35. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.woff2 +0 -0
  36. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.eot +0 -0
  37. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.svg +326 -0
  38. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.ttf +0 -0
  39. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.woff +0 -0
  40. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.woff2 +0 -0
  41. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.eot +0 -0
  42. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.svg +306 -0
  43. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.ttf +0 -0
  44. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.woff +0 -0
  45. package/dist/assets/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.woff2 +0 -0
  46. package/dist/assets/temporary/muenchende-fontfaces.css +12 -12
  47. package/dist/components/Button/MucButton.vue.d.ts +39 -12
  48. package/dist/components/Comment/CommentType.d.ts +2 -0
  49. package/dist/components/Comment/MucComment.vue.d.ts +45 -0
  50. package/dist/components/Comment/MucCommentText.vue.d.ts +48 -0
  51. package/dist/components/Comment/index.d.ts +4 -0
  52. package/dist/components/index.d.ts +2 -1
  53. package/dist/muc-patternlab-vue.es.js +240 -74
  54. package/dist/types/components/Button/MucButton.vue.d.ts +39 -12
  55. package/dist/types/components/Comment/CommentType.d.ts +2 -0
  56. package/dist/types/components/Comment/MucComment.vue.d.ts +44 -0
  57. package/dist/types/components/Comment/MucCommentText.vue.d.ts +47 -0
  58. package/dist/types/components/Comment/index.d.ts +3 -0
  59. package/dist/types/components/index.d.ts +2 -1
  60. package/package.json +1 -1
  61. package/src/components/Button/MucButton.vue +52 -12
  62. package/src/components/Comment/CommentType.ts +3 -0
  63. package/src/components/Comment/MucComment.vue +148 -0
  64. package/src/components/Comment/MucCommentText.vue +53 -0
  65. package/src/components/Comment/index.ts +4 -0
  66. package/src/components/index.ts +9 -1
@@ -1,7 +1,7 @@
1
- import { defineComponent as _, computed as o, openBlock as i, createElementBlock as u, createElementVNode as t, normalizeClass as m, renderSlot as r, toDisplayString as f } from "vue";
2
- const h = ["role", "aria-label"], y = { class: "container-fluid" }, v = /* @__PURE__ */ t("svg", { class: "icon" }, [
1
+ import { defineComponent as v, computed as c, openBlock as o, createElementBlock as r, createElementVNode as t, normalizeClass as y, renderSlot as i, createCommentVNode as b, useSlots as x, createTextVNode as d, Fragment as M, renderList as C, toDisplayString as h, createBlock as B, unref as E, createSlots as I, withCtx as p } from "vue";
2
+ const L = ["role", "aria-label"], O = { class: "container-fluid" }, T = /* @__PURE__ */ t("svg", { class: "icon" }, [
3
3
  /* @__PURE__ */ t("use", { href: "#icon-information" })
4
- ], -1), g = /* @__PURE__ */ _({
4
+ ], -1), D = /* @__PURE__ */ v({
5
5
  __name: "MucBanner",
6
6
  props: {
7
7
  type: {
@@ -9,8 +9,8 @@ const h = ["role", "aria-label"], y = { class: "container-fluid" }, v = /* @__PU
9
9
  default: "info"
10
10
  }
11
11
  },
12
- setup(n) {
13
- const e = n, s = o(() => {
12
+ setup(a) {
13
+ const e = a, n = c(() => {
14
14
  switch (e.type) {
15
15
  case "info":
16
16
  return "m-banner--info";
@@ -21,7 +21,7 @@ const h = ["role", "aria-label"], y = { class: "container-fluid" }, v = /* @__PU
21
21
  default:
22
22
  return "m-banner--info";
23
23
  }
24
- }), a = o(() => {
24
+ }), s = c(() => {
25
25
  switch (e.type) {
26
26
  case "info":
27
27
  return "dialog";
@@ -32,7 +32,7 @@ const h = ["role", "aria-label"], y = { class: "container-fluid" }, v = /* @__PU
32
32
  default:
33
33
  return "dialog";
34
34
  }
35
- }), c = o(() => {
35
+ }), u = c(() => {
36
36
  switch (e.type) {
37
37
  case "info":
38
38
  return "Information";
@@ -44,46 +44,73 @@ const h = ["role", "aria-label"], y = { class: "container-fluid" }, v = /* @__PU
44
44
  return "Information";
45
45
  }
46
46
  });
47
- return (l, p) => (i(), u("div", null, [
47
+ return (m, _) => (o(), r("div", null, [
48
48
  t("div", null, [
49
49
  t("div", {
50
- class: m(["m-banner", s.value]),
51
- role: a.value,
52
- "aria-label": c.value
50
+ class: y(["m-banner", n.value]),
51
+ role: s.value,
52
+ "aria-label": u.value
53
53
  }, [
54
- t("div", y, [
55
- v,
54
+ t("div", O, [
55
+ T,
56
56
  t("p", null, [
57
- r(l.$slots, "default")
57
+ i(m.$slots, "default")
58
58
  ])
59
59
  ])
60
- ], 10, h)
60
+ ], 10, L)
61
61
  ])
62
62
  ]));
63
63
  }
64
- }), b = { class: "m-button m-button--primary m-button--animated-right" }, $ = /* @__PURE__ */ _({
64
+ }), P = ["disabled"], R = {
65
+ key: 0,
66
+ "aria-hidden": "true",
67
+ class: "m-button__icon"
68
+ }, A = ["xlink:href"], H = /* @__PURE__ */ v({
65
69
  __name: "MucButton",
66
70
  props: {
67
- expanded: {
68
- type: Boolean,
69
- default: !1
70
- }
71
+ variant: { default: "primary" },
72
+ disabled: { type: Boolean, default: !1 },
73
+ icon: {}
71
74
  },
72
- setup(n) {
73
- return (e, s) => (i(), u("button", b, [
74
- r(e.$slots, "default")
75
- ]));
75
+ emits: ["click"],
76
+ setup(a, { emit: e }) {
77
+ const n = a, s = e, u = c(() => {
78
+ switch (n.variant) {
79
+ case "secondary":
80
+ return "m-button--secondary";
81
+ case "ghost":
82
+ return "m-button--ghost";
83
+ default:
84
+ return "m-button--primary";
85
+ }
86
+ }), m = () => {
87
+ s("click");
88
+ };
89
+ return (_, l) => (o(), r("button", {
90
+ onClick: m,
91
+ disabled: _.disabled,
92
+ class: y(["m-button m-button--animated-right", u.value])
93
+ }, [
94
+ t("span", null, [
95
+ i(_.$slots, "default"),
96
+ _.icon ? (o(), r("svg", R, [
97
+ t("use", {
98
+ "xlink:href": "#icon-" + _.icon
99
+ }, null, 8, A)
100
+ ])) : b("", !0)
101
+ ])
102
+ ], 10, P));
76
103
  }
77
- }), w = ["aria-label"], M = { class: "m-callout__inner" }, x = { class: "m-callout__icon" }, B = {
104
+ }), W = ["aria-label"], j = { class: "m-callout__inner" }, F = { class: "m-callout__icon" }, N = {
78
105
  "aria-hidden": "true",
79
106
  class: "icon"
80
- }, k = ["xlink:href"], I = { class: "m-callout__body" }, C = { class: "m-callout__body__inner" }, S = { class: "m-callout__headline" }, E = { class: "m-callout__content" }, O = /* @__PURE__ */ _({
107
+ }, V = ["xlink:href"], z = { class: "m-callout__body" }, U = { class: "m-callout__body__inner" }, X = { class: "m-callout__headline" }, q = { class: "m-callout__content" }, G = /* @__PURE__ */ v({
81
108
  __name: "MucCallout",
82
109
  props: {
83
110
  type: { default: "info" }
84
111
  },
85
- setup(n) {
86
- const e = n, s = o(() => {
112
+ setup(a) {
113
+ const e = a, n = c(() => {
87
114
  switch (e.type) {
88
115
  case "error":
89
116
  return "warning";
@@ -92,7 +119,7 @@ const h = ["role", "aria-label"], y = { class: "container-fluid" }, v = /* @__PU
92
119
  default:
93
120
  return "information";
94
121
  }
95
- }), a = o(() => {
122
+ }), s = c(() => {
96
123
  switch (e.type) {
97
124
  case "error":
98
125
  return "m-callout--error";
@@ -103,7 +130,7 @@ const h = ["role", "aria-label"], y = { class: "container-fluid" }, v = /* @__PU
103
130
  default:
104
131
  return "m-callout--default";
105
132
  }
106
- }), c = o(() => {
133
+ }), u = c(() => {
107
134
  switch (e.type) {
108
135
  case "success":
109
136
  return "Erfolgreich";
@@ -115,54 +142,189 @@ const h = ["role", "aria-label"], y = { class: "container-fluid" }, v = /* @__PU
115
142
  return "Information";
116
143
  }
117
144
  });
118
- return (l, p) => (i(), u("div", {
119
- class: m(["m-callout", a.value]),
120
- "aria-label": c.value
145
+ return (m, _) => (o(), r("div", {
146
+ class: y(["m-callout", s.value]),
147
+ "aria-label": u.value
121
148
  }, [
122
- t("div", M, [
123
- t("div", x, [
124
- r(l.$slots, "icon", {}, () => [
125
- (i(), u("svg", B, [
149
+ t("div", j, [
150
+ t("div", F, [
151
+ i(m.$slots, "icon", {}, () => [
152
+ (o(), r("svg", N, [
126
153
  t("use", {
127
- "xlink:href": `#icon-${s.value}`
128
- }, null, 8, k)
154
+ "xlink:href": `#icon-${n.value}`
155
+ }, null, 8, V)
129
156
  ]))
130
157
  ], !0)
131
158
  ]),
132
- t("div", I, [
133
- t("div", C, [
134
- t("div", S, [
135
- r(l.$slots, "header", {}, void 0, !0)
159
+ t("div", z, [
160
+ t("div", U, [
161
+ t("div", X, [
162
+ i(m.$slots, "header", {}, void 0, !0)
136
163
  ]),
137
- t("div", E, [
138
- r(l.$slots, "content", { class: "m-callout__content" }, void 0, !0)
164
+ t("div", q, [
165
+ i(m.$slots, "content", { class: "m-callout__content" }, void 0, !0)
139
166
  ])
140
167
  ])
141
168
  ])
142
169
  ])
143
- ], 10, w));
170
+ ], 10, W));
171
+ }
172
+ }), J = (a, e) => {
173
+ const n = a.__vccOpts || a;
174
+ for (const [s, u] of e)
175
+ n[s] = u;
176
+ return n;
177
+ }, K = /* @__PURE__ */ J(G, [["__scopeId", "data-v-e8b61339"]]), Q = { class: "m-comment__head" }, Y = { class: "m-comment__initials" }, Z = { class: "m-comment__info" }, tt = { class: "m-comment__author" }, et = { key: 0 }, nt = { class: "m-comment__author" }, st = { class: "m-comment__date" }, at = ["aria-label"], ot = /* @__PURE__ */ t("svg", {
178
+ "aria-hidden": "true",
179
+ class: "icon"
180
+ }, [
181
+ /* @__PURE__ */ t("use", { "xlink:href": "#icon-solid-star" })
182
+ ], -1), rt = [
183
+ ot
184
+ ], it = {
185
+ key: 0,
186
+ class: "m-star-rating__item m-star-rating__item--half"
187
+ }, ct = /* @__PURE__ */ t("svg", {
188
+ "aria-hidden": "true",
189
+ class: "icon"
190
+ }, [
191
+ /* @__PURE__ */ t("use", { "xlink:href": "#icon-half-star" })
192
+ ], -1), lt = [
193
+ ct
194
+ ], ut = /* @__PURE__ */ t("svg", {
195
+ "aria-hidden": "true",
196
+ class: "icon"
197
+ }, [
198
+ /* @__PURE__ */ t("use", { "xlink:href": "#icon-solid-star" })
199
+ ], -1), _t = [
200
+ ut
201
+ ], mt = { class: "m-star-rating__numeric" }, dt = { class: "m-comment__body" }, ht = { class: "m-comment__headline" }, ft = { class: "m-comment__text" }, pt = "de-DE", vt = 0.2, gt = 0.8, g = 5, w = /* @__PURE__ */ v({
202
+ __name: "MucComment",
203
+ props: {
204
+ rating: {},
205
+ variant: { default: "listing" }
206
+ },
207
+ setup(a) {
208
+ const e = x(), n = a, s = c(() => !!e.date), u = c(() => n.variant === "slider" ? "m-comment--slider" : "m-comment--listing"), m = c(() => n.rating.toLocaleString(pt.valueOf(), {
209
+ minimumFractionDigits: 1
210
+ })), _ = c(() => {
211
+ const l = +(n.rating % 1).toFixed(1);
212
+ let $ = Math.min(Math.floor(n.rating), g), f = Math.floor(g - n.rating), k = !1;
213
+ return n.rating !== 0 && n.rating !== g && (l <= vt ? f++ : l >= gt ? $++ : k = !0), {
214
+ fullStars: $,
215
+ emptyStars: f,
216
+ isHalfStar: k
217
+ };
218
+ });
219
+ return (l, $) => (o(), r("div", {
220
+ class: y(["m-comment", u.value])
221
+ }, [
222
+ t("div", Q, [
223
+ t("div", Y, [
224
+ i(l.$slots, "initials")
225
+ ]),
226
+ t("div", Z, [
227
+ t("span", tt, [
228
+ i(l.$slots, "author")
229
+ ]),
230
+ s.value ? (o(), r("span", et, [
231
+ t("span", nt, [
232
+ d(" "),
233
+ i(l.$slots, "datePrefix")
234
+ ]),
235
+ t("span", st, [
236
+ d(" "),
237
+ i(l.$slots, "date")
238
+ ])
239
+ ])) : b("", !0),
240
+ t("div", {
241
+ class: "m-star-rating",
242
+ role: "img",
243
+ "aria-label": `Bewertung: ${l.rating} von ${g} Sternen`
244
+ }, [
245
+ (o(!0), r(M, null, C(_.value.fullStars, (f) => (o(), r("div", {
246
+ key: f,
247
+ class: "m-star-rating__item m-star-rating__item--full"
248
+ }, rt))), 128)),
249
+ _.value.isHalfStar ? (o(), r("div", it, lt)) : b("", !0),
250
+ (o(!0), r(M, null, C(_.value.emptyStars, (f) => (o(), r("div", {
251
+ key: f,
252
+ class: "m-star-rating__item"
253
+ }, _t))), 128)),
254
+ t("div", mt, h(m.value), 1)
255
+ ], 8, at)
256
+ ])
257
+ ]),
258
+ t("div", dt, [
259
+ t("div", ht, [
260
+ i(l.$slots, "headline")
261
+ ]),
262
+ t("div", ft, [
263
+ i(l.$slots, "text")
264
+ ])
265
+ ])
266
+ ], 2));
267
+ }
268
+ }), yt = /* @__PURE__ */ v({
269
+ __name: "MucCommentText",
270
+ props: {
271
+ datePrefix: { default: "am" },
272
+ initials: {},
273
+ author: {},
274
+ date: {},
275
+ headline: {},
276
+ text: {},
277
+ rating: {},
278
+ variant: { default: "listing" }
279
+ },
280
+ setup(a) {
281
+ const e = a, n = c(() => e.initials ?? e.author.split(" ").map((s) => s.charAt(0)).join(""));
282
+ return (s, u) => (o(), B(E(w), {
283
+ rating: s.rating,
284
+ variant: s.variant
285
+ }, I({
286
+ initials: p(() => [
287
+ d(h(n.value), 1)
288
+ ]),
289
+ datePrefix: p(() => [
290
+ d("am")
291
+ ]),
292
+ author: p(() => [
293
+ d(h(s.author), 1)
294
+ ]),
295
+ headline: p(() => [
296
+ d(h(s.headline), 1)
297
+ ]),
298
+ text: p(() => [
299
+ d(h(s.text), 1)
300
+ ]),
301
+ _: 2
302
+ }, [
303
+ s.date ? {
304
+ name: "date",
305
+ fn: p(() => [
306
+ d(h(s.date), 1)
307
+ ]),
308
+ key: "0"
309
+ } : void 0
310
+ ]), 1032, ["rating", "variant"]));
144
311
  }
145
- }), j = (n, e) => {
146
- const s = n.__vccOpts || n;
147
- for (const [a, c] of e)
148
- s[a] = c;
149
- return s;
150
- }, z = /* @__PURE__ */ j(O, [["__scopeId", "data-v-e8b61339"]]), A = { class: "m-intro m-intro-summary-text" }, L = { class: "container" }, W = { class: "m-intro-summary-text__body" }, D = { class: "m-intro-summary-text__grid" }, N = { class: "m-intro-summary-text__content" }, P = { class: "m-intro-summary-text__title" }, R = /* @__PURE__ */ _({
312
+ }), $t = { class: "m-intro m-intro-summary-text" }, bt = { class: "container" }, kt = { class: "m-intro-summary-text__body" }, Mt = { class: "m-intro-summary-text__grid" }, Ct = { class: "m-intro-summary-text__content" }, St = { class: "m-intro-summary-text__title" }, wt = /* @__PURE__ */ v({
151
313
  __name: "MucIntro",
152
314
  props: {
153
315
  title: {
154
316
  type: String
155
317
  }
156
318
  },
157
- setup(n) {
158
- return (e, s) => (i(), u("div", A, [
159
- t("div", L, [
160
- t("div", W, [
161
- t("div", D, [
162
- t("div", N, [
163
- t("h1", P, f(n.title), 1),
319
+ setup(a) {
320
+ return (e, n) => (o(), r("div", $t, [
321
+ t("div", bt, [
322
+ t("div", kt, [
323
+ t("div", Mt, [
324
+ t("div", Ct, [
325
+ t("h1", St, h(a.title), 1),
164
326
  t("p", null, [
165
- r(e.$slots, "default")
327
+ i(e.$slots, "default")
166
328
  ])
167
329
  ])
168
330
  ])
@@ -170,22 +332,26 @@ const h = ["role", "aria-label"], y = { class: "container-fluid" }, v = /* @__PU
170
332
  ])
171
333
  ]));
172
334
  }
173
- }), d = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
335
+ }), S = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
174
336
  __proto__: null,
175
- MucBanner: g,
176
- MucButton: $,
177
- MucCallout: z,
178
- MucIntro: R
337
+ MucBanner: D,
338
+ MucButton: H,
339
+ MucCallout: K,
340
+ MucComment: w,
341
+ MucCommentText: yt,
342
+ MucIntro: wt
179
343
  }, Symbol.toStringTag, { value: "Module" }));
180
- function T(n) {
181
- for (const e in d)
182
- n.component(e, d[e]);
344
+ function xt(a) {
345
+ for (const e in S)
346
+ a.component(e, S[e]);
183
347
  }
184
- const q = { install: T };
348
+ const Et = { install: xt };
185
349
  export {
186
- g as MucBanner,
187
- $ as MucButton,
188
- z as MucCallout,
189
- R as MucIntro,
190
- q as default
350
+ D as MucBanner,
351
+ H as MucButton,
352
+ K as MucCallout,
353
+ w as MucComment,
354
+ yt as MucCommentText,
355
+ wt as MucIntro,
356
+ Et as default
191
357
  };
@@ -1,21 +1,48 @@
1
- declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
2
- expanded: {
3
- type: BooleanConstructor;
4
- default: boolean;
5
- };
6
- }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
7
- expanded: {
8
- type: BooleanConstructor;
9
- default: boolean;
10
- };
11
- }>>, {
12
- expanded: boolean;
1
+ type buttonType = "primary" | "secondary" | "ghost";
2
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<{
3
+ variant?: buttonType | undefined;
4
+ disabled?: boolean | undefined;
5
+ icon?: string | undefined;
6
+ }>, {
7
+ variant: string;
8
+ disabled: boolean;
9
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
+ click: () => void;
11
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<{
12
+ variant?: buttonType | undefined;
13
+ disabled?: boolean | undefined;
14
+ icon?: string | undefined;
15
+ }>, {
16
+ variant: string;
17
+ disabled: boolean;
18
+ }>>> & {
19
+ onClick?: (() => any) | undefined;
20
+ }, {
21
+ variant: buttonType;
22
+ disabled: boolean;
13
23
  }, {}>, {
14
24
  default?(_: {}): any;
15
25
  }>;
16
26
  export default _default;
27
+ type __VLS_WithDefaults<P, D> = {
28
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
29
+ default: D[K];
30
+ }> : P[K];
31
+ };
32
+ type __VLS_Prettify<T> = {
33
+ [K in keyof T]: T[K];
34
+ } & {};
17
35
  type __VLS_WithTemplateSlots<T, S> = T & {
18
36
  new (): {
19
37
  $slots: S;
20
38
  };
21
39
  };
40
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
41
+ type __VLS_TypePropsToOption<T> = {
42
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
43
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
44
+ } : {
45
+ type: import('vue').PropType<T[K]>;
46
+ required: true;
47
+ };
48
+ };
@@ -0,0 +1,2 @@
1
+ type CommentType = "listing" | "slider";
2
+ export default CommentType;
@@ -0,0 +1,44 @@
1
+ import CommentType from "./CommentType";
2
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<{
3
+ rating: number;
4
+ variant?: CommentType | undefined;
5
+ }>, {
6
+ variant: string;
7
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<{
8
+ rating: number;
9
+ variant?: CommentType | undefined;
10
+ }>, {
11
+ variant: string;
12
+ }>>>, {
13
+ variant: CommentType;
14
+ }, {}>, {
15
+ initials?(_: {}): any;
16
+ author?(_: {}): any;
17
+ datePrefix?(_: {}): any;
18
+ date?(_: {}): any;
19
+ headline?(_: {}): any;
20
+ text?(_: {}): any;
21
+ }>;
22
+ export default _default;
23
+ type __VLS_WithDefaults<P, D> = {
24
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
25
+ default: D[K];
26
+ }> : P[K];
27
+ };
28
+ type __VLS_Prettify<T> = {
29
+ [K in keyof T]: T[K];
30
+ } & {};
31
+ type __VLS_WithTemplateSlots<T, S> = T & {
32
+ new (): {
33
+ $slots: S;
34
+ };
35
+ };
36
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
37
+ type __VLS_TypePropsToOption<T> = {
38
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
39
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
40
+ } : {
41
+ type: import('vue').PropType<T[K]>;
42
+ required: true;
43
+ };
44
+ };
@@ -0,0 +1,47 @@
1
+ import CommentType from "./CommentType";
2
+ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<{
3
+ datePrefix?: string | undefined;
4
+ initials?: string | undefined;
5
+ author: string;
6
+ date?: string | undefined;
7
+ headline?: string | undefined;
8
+ text: string;
9
+ rating: number;
10
+ variant: CommentType;
11
+ }>, {
12
+ datePrefix: string;
13
+ variant: string;
14
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<{
15
+ datePrefix?: string | undefined;
16
+ initials?: string | undefined;
17
+ author: string;
18
+ date?: string | undefined;
19
+ headline?: string | undefined;
20
+ text: string;
21
+ rating: number;
22
+ variant: CommentType;
23
+ }>, {
24
+ datePrefix: string;
25
+ variant: string;
26
+ }>>>, {
27
+ variant: CommentType;
28
+ datePrefix: string;
29
+ }, {}>;
30
+ export default _default;
31
+ type __VLS_WithDefaults<P, D> = {
32
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
33
+ default: D[K];
34
+ }> : P[K];
35
+ };
36
+ type __VLS_Prettify<T> = {
37
+ [K in keyof T]: T[K];
38
+ } & {};
39
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
40
+ type __VLS_TypePropsToOption<T> = {
41
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
42
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
43
+ } : {
44
+ type: import('vue').PropType<T[K]>;
45
+ required: true;
46
+ };
47
+ };
@@ -0,0 +1,3 @@
1
+ import MucComment from "./MucComment.vue";
2
+ import MucCommentText from "./MucCommentText.vue";
3
+ export { MucComment, MucCommentText };
@@ -1,5 +1,6 @@
1
1
  import { MucBanner } from "./Banner";
2
2
  import { MucButton } from "./Button";
3
3
  import { MucCallout } from "./Callout";
4
+ import { MucComment, MucCommentText } from "./Comment/";
4
5
  import { MucIntro } from "./Intro";
5
- export { MucButton, MucBanner, MucIntro, MucCallout };
6
+ export { MucButton, MucBanner, MucIntro, MucCallout, MucComment, MucCommentText, };
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.3.0",
6
+ "version": "1.4.0",
7
7
  "private": false,
8
8
  "module": "./dist/muc-patternlab-vue.es.js",
9
9
  "types": "./dist/types/index.d.ts",
@@ -1,16 +1,56 @@
1
- <script setup lang="ts">
2
- defineProps({
3
- expanded: {
4
- type: Boolean,
5
- default: false,
6
- },
7
- });
8
- </script>
9
-
10
1
  <template>
11
- <button class="m-button m-button--primary m-button--animated-right">
12
- <slot />
2
+ <button
3
+ @click="handleClick"
4
+ :disabled="disabled"
5
+ class="m-button m-button--animated-right"
6
+ :class="buttonClass"
7
+ >
8
+ <span>
9
+ <slot />
10
+ <svg
11
+ v-if="icon"
12
+ aria-hidden="true"
13
+ class="m-button__icon"
14
+ >
15
+ <use :xlink:href="'#icon-' + icon"></use>
16
+ </svg>
17
+ </span>
13
18
  </button>
14
19
  </template>
15
20
 
16
- <style scoped></style>
21
+ <script setup lang="ts">
22
+ import { computed } from "vue";
23
+
24
+ type buttonType = "primary" | "secondary" | "ghost";
25
+
26
+ const props = withDefaults(
27
+ defineProps<{
28
+ variant?: buttonType;
29
+ disabled?: boolean;
30
+ icon?: string;
31
+ }>(),
32
+ {
33
+ variant: "primary",
34
+ disabled: false,
35
+ }
36
+ );
37
+
38
+ const emit = defineEmits<{
39
+ (e: "click"): void;
40
+ }>();
41
+
42
+ const buttonClass = computed(() => {
43
+ switch (props.variant) {
44
+ case "secondary":
45
+ return "m-button--secondary";
46
+ case "ghost":
47
+ return "m-button--ghost";
48
+ default:
49
+ return "m-button--primary";
50
+ }
51
+ });
52
+
53
+ const handleClick = () => {
54
+ emit("click");
55
+ };
56
+ </script>
@@ -0,0 +1,3 @@
1
+ type CommentType = "listing" | "slider";
2
+
3
+ export default CommentType;