@muenchen/muc-patternlab-vue 1.1.0 → 1.2.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.
- package/README.md +14 -15
- package/dist/components/Banner/MucBanner.vue.d.ts +1 -1
- package/dist/components/Banner/index.d.ts +3 -46
- package/dist/components/Button/MucButton.vue.d.ts +1 -1
- package/dist/components/Callout/MucCallout.vue.d.ts +41 -0
- package/dist/components/Callout/index.d.ts +3 -0
- package/dist/components/Intro/MucIntro.vue.d.ts +1 -1
- package/dist/components/index.d.ts +5 -4
- package/dist/muc-patternlab-vue.es.js +122 -47
- package/dist/style.css +1 -1
- package/dist/types/components/Banner/MucBanner.vue.d.ts +2 -1
- package/dist/types/components/Banner/index.d.ts +2 -46
- package/dist/types/components/Callout/MucCallout.vue.d.ts +41 -0
- package/dist/types/components/Callout/index.d.ts +2 -0
- package/dist/types/components/index.d.ts +5 -4
- package/dist/types/index.d.ts +3 -3
- package/package.json +8 -6
- package/src/components/Banner/MucBanner.vue +13 -11
- package/src/components/Banner/index.ts +2 -2
- package/src/components/Button/MucButton.vue +5 -7
- package/src/components/Button/index.ts +1 -1
- package/src/components/Callout/MucCallout.vue +121 -0
- package/src/components/Callout/index.ts +3 -0
- package/src/components/Intro/MucIntro.vue +4 -4
- package/src/components/Intro/index.ts +2 -2
- package/src/components/index.ts +5 -4
- package/src/index.ts +12 -11
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
This repository contains a ready-to-use Vue-Components-Library based on [munich.de's MDE5 Patternlab](https://patternlab.muenchen.space/).
|
|
6
6
|
|
|
7
|
-
In
|
|
7
|
+
In its current state only some components exist. The library will continually grow as the need for new components grows.
|
|
8
8
|
|
|
9
9
|
We intend to let this project be a community project in which every developer who needs new components contributes the results of his work into this library.
|
|
10
10
|
|
|
@@ -16,11 +16,11 @@ In the near future we plan to
|
|
|
16
16
|
- Create more components
|
|
17
17
|
- Integrate MDE5 Patternlab npm-Package as soon as it's available
|
|
18
18
|
|
|
19
|
-
See the [open issues](
|
|
19
|
+
See the [open issues](https://github.com/it-at-m/muc-patternlab-vue/issues) for a full list of proposed features (and known issues).
|
|
20
20
|
|
|
21
21
|
## Usage
|
|
22
22
|
|
|
23
|
-
Please refer to the [
|
|
23
|
+
Please refer to the [usage guide](https://it-at-m.github.io/muc-patternlab-vue/guide/).
|
|
24
24
|
|
|
25
25
|
## Develop
|
|
26
26
|
|
|
@@ -33,18 +33,6 @@ npm install
|
|
|
33
33
|
npm run docs:dev
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
### Release and Publish
|
|
37
|
-
|
|
38
|
-
This project uses [semantic-release](https://github.com/semantic-release/semantic-release)!
|
|
39
|
-
|
|
40
|
-
It follows [Angulars Commit Message Conventions](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#-commit-message-format). For example:
|
|
41
|
-
|
|
42
|
-
| Commit message | Release type |
|
|
43
|
-
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------- |
|
|
44
|
-
| `fix(pencil): stop graphite breaking when too much pressure applied` | Patch Release |
|
|
45
|
-
| `feat(pencil): add 'graphiteWidth' option` | ~~Minor~~ Feature Release |
|
|
46
|
-
| `perf(pencil): remove graphiteWidth option`<br><br>`BREAKING CHANGE: The graphiteWidth option has been removed.`<br>`The default graphite width of 10mm is always used for performance reasons.` | ~~Major~~ Breaking Release |
|
|
47
|
-
|
|
48
36
|
### Adding a new Component
|
|
49
37
|
|
|
50
38
|
1. Create a new Folder under `./src/components`-Directory
|
|
@@ -83,6 +71,17 @@ Don't forget to give the project a star! Thanks again!
|
|
|
83
71
|
|
|
84
72
|
More about this in the [CODE_OF_CONDUCT](/CODE_OF_CONDUCT.md) file.
|
|
85
73
|
|
|
74
|
+
### Release and Publish
|
|
75
|
+
|
|
76
|
+
This project uses [semantic-release](https://github.com/semantic-release/semantic-release)!
|
|
77
|
+
|
|
78
|
+
It follows [Angulars Commit Message Conventions](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#-commit-message-format). For example:
|
|
79
|
+
|
|
80
|
+
| Commit message | Release type |
|
|
81
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------- |
|
|
82
|
+
| `fix(pencil): stop graphite breaking when too much pressure applied` | Patch Release |
|
|
83
|
+
| `feat(pencil): add 'graphiteWidth' option` | ~~Minor~~ Feature Release |
|
|
84
|
+
| `perf(pencil): remove graphiteWidth option`<br><br>`BREAKING CHANGE: The graphiteWidth option has been removed.`<br>`The default graphite width of 10mm is always used for performance reasons.` | ~~Major~~ Breaking Release |
|
|
86
85
|
|
|
87
86
|
## License
|
|
88
87
|
|
|
@@ -6,7 +6,7 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
|
|
|
6
6
|
type: PropType<bannerType>;
|
|
7
7
|
default: string;
|
|
8
8
|
};
|
|
9
|
-
}, {}, unknown, {}, {}, import(
|
|
9
|
+
}, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
10
10
|
type: {
|
|
11
11
|
type: PropType<bannerType>;
|
|
12
12
|
default: string;
|
|
@@ -1,46 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
type: {
|
|
5
|
-
type: import("vue").PropType<"info" | "warning" | "emergency">;
|
|
6
|
-
default: string;
|
|
7
|
-
};
|
|
8
|
-
}>>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
|
|
9
|
-
type: {
|
|
10
|
-
type: import("vue").PropType<"info" | "warning" | "emergency">;
|
|
11
|
-
default: string;
|
|
12
|
-
};
|
|
13
|
-
}>>, {
|
|
14
|
-
type: "info" | "warning" | "emergency";
|
|
15
|
-
}, true, {}, {}, {
|
|
16
|
-
P: {};
|
|
17
|
-
B: {};
|
|
18
|
-
D: {};
|
|
19
|
-
C: {};
|
|
20
|
-
M: {};
|
|
21
|
-
Defaults: {};
|
|
22
|
-
}, Readonly<import("vue").ExtractPropTypes<{
|
|
23
|
-
type: {
|
|
24
|
-
type: import("vue").PropType<"info" | "warning" | "emergency">;
|
|
25
|
-
default: string;
|
|
26
|
-
};
|
|
27
|
-
}>>, {}, {}, {}, {}, {
|
|
28
|
-
type: "info" | "warning" | "emergency";
|
|
29
|
-
}>;
|
|
30
|
-
__isFragment?: undefined;
|
|
31
|
-
__isTeleport?: undefined;
|
|
32
|
-
__isSuspense?: undefined;
|
|
33
|
-
} & import('vue').ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
|
|
34
|
-
type: {
|
|
35
|
-
type: import("vue").PropType<"info" | "warning" | "emergency">;
|
|
36
|
-
default: string;
|
|
37
|
-
};
|
|
38
|
-
}>>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
|
|
39
|
-
type: "info" | "warning" | "emergency";
|
|
40
|
-
}, {}, string, {}> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
|
|
41
|
-
$slots: {
|
|
42
|
-
default?(_: {}): any;
|
|
43
|
-
};
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
export default _default;
|
|
1
|
+
import { default as MucBanner } from './MucBanner.vue';
|
|
2
|
+
|
|
3
|
+
export { MucBanner };
|
|
@@ -3,7 +3,7 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
|
|
|
3
3
|
type: BooleanConstructor;
|
|
4
4
|
default: boolean;
|
|
5
5
|
};
|
|
6
|
-
}, {}, unknown, {}, {}, import(
|
|
6
|
+
}, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
7
7
|
expanded: {
|
|
8
8
|
type: BooleanConstructor;
|
|
9
9
|
default: boolean;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
type calloutType = "info" | "warning" | "success" | "error";
|
|
2
|
+
declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
3
|
+
type?: calloutType | undefined;
|
|
4
|
+
}>, {
|
|
5
|
+
type: string;
|
|
6
|
+
}>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
7
|
+
type?: calloutType | undefined;
|
|
8
|
+
}>, {
|
|
9
|
+
type: string;
|
|
10
|
+
}>>>, {
|
|
11
|
+
type: calloutType;
|
|
12
|
+
}, {}>, {
|
|
13
|
+
icon?(_: {}): any;
|
|
14
|
+
header?(_: {}): any;
|
|
15
|
+
content?(_: {
|
|
16
|
+
class: string;
|
|
17
|
+
}): any;
|
|
18
|
+
}>;
|
|
19
|
+
export default _default;
|
|
20
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
21
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
22
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
23
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
24
|
+
} : {
|
|
25
|
+
type: import('vue').PropType<T[K]>;
|
|
26
|
+
required: true;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
type __VLS_WithDefaults<P, D> = {
|
|
30
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
31
|
+
default: D[K];
|
|
32
|
+
}> : P[K];
|
|
33
|
+
};
|
|
34
|
+
type __VLS_Prettify<T> = {
|
|
35
|
+
[K in keyof T]: T[K];
|
|
36
|
+
} & {};
|
|
37
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
38
|
+
new (): {
|
|
39
|
+
$slots: S;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -2,7 +2,7 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
|
|
|
2
2
|
title: {
|
|
3
3
|
type: StringConstructor;
|
|
4
4
|
};
|
|
5
|
-
}, {}, unknown, {}, {}, import(
|
|
5
|
+
}, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
6
6
|
title: {
|
|
7
7
|
type: StringConstructor;
|
|
8
8
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { MucIntro } from './Intro';
|
|
2
|
+
import { MucCallout } from './Callout';
|
|
3
|
+
import { MucButton } from './Button';
|
|
4
|
+
import { MucBanner } from './Banner';
|
|
4
5
|
|
|
5
|
-
export { MucButton, MucBanner, MucIntro };
|
|
6
|
+
export { MucButton, MucBanner, MucIntro, MucCallout };
|
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
const
|
|
3
|
-
__name: "MucButton",
|
|
4
|
-
props: {
|
|
5
|
-
expanded: {
|
|
6
|
-
type: Boolean,
|
|
7
|
-
default: !1
|
|
8
|
-
}
|
|
9
|
-
},
|
|
10
|
-
setup(n) {
|
|
11
|
-
return (e, r) => (a(), c("button", f, [
|
|
12
|
-
i(e.$slots, "default")
|
|
13
|
-
]));
|
|
14
|
-
}
|
|
15
|
-
}), g = ["role", "aria-label"], h = { class: "container-fluid" }, b = /* @__PURE__ */ t("svg", { class: "icon" }, [
|
|
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" }, [
|
|
16
3
|
/* @__PURE__ */ t("use", { href: "#icon-information" })
|
|
17
|
-
], -1),
|
|
4
|
+
], -1), g = /* @__PURE__ */ _({
|
|
18
5
|
__name: "MucBanner",
|
|
19
6
|
props: {
|
|
20
7
|
type: {
|
|
@@ -23,7 +10,7 @@ const f = { class: "m-button m-button--primary m-button--animated-right" }, y =
|
|
|
23
10
|
}
|
|
24
11
|
},
|
|
25
12
|
setup(n) {
|
|
26
|
-
const e = n,
|
|
13
|
+
const e = n, s = o(() => {
|
|
27
14
|
switch (e.type) {
|
|
28
15
|
case "info":
|
|
29
16
|
return "m-banner--info";
|
|
@@ -34,7 +21,7 @@ const f = { class: "m-button m-button--primary m-button--animated-right" }, y =
|
|
|
34
21
|
default:
|
|
35
22
|
return "m-banner--info";
|
|
36
23
|
}
|
|
37
|
-
}),
|
|
24
|
+
}), a = o(() => {
|
|
38
25
|
switch (e.type) {
|
|
39
26
|
case "info":
|
|
40
27
|
return "dialog";
|
|
@@ -45,7 +32,7 @@ const f = { class: "m-button m-button--primary m-button--animated-right" }, y =
|
|
|
45
32
|
default:
|
|
46
33
|
return "dialog";
|
|
47
34
|
}
|
|
48
|
-
}),
|
|
35
|
+
}), c = o(() => {
|
|
49
36
|
switch (e.type) {
|
|
50
37
|
case "info":
|
|
51
38
|
return "Information";
|
|
@@ -57,24 +44,110 @@ const f = { class: "m-button m-button--primary m-button--animated-right" }, y =
|
|
|
57
44
|
return "Information";
|
|
58
45
|
}
|
|
59
46
|
});
|
|
60
|
-
return (
|
|
47
|
+
return (l, p) => (i(), u("div", null, [
|
|
61
48
|
t("div", null, [
|
|
62
49
|
t("div", {
|
|
63
|
-
class:
|
|
64
|
-
role:
|
|
65
|
-
"aria-label":
|
|
50
|
+
class: m(["m-banner", s.value]),
|
|
51
|
+
role: a.value,
|
|
52
|
+
"aria-label": c.value
|
|
66
53
|
}, [
|
|
67
|
-
t("div",
|
|
68
|
-
|
|
54
|
+
t("div", y, [
|
|
55
|
+
v,
|
|
69
56
|
t("p", null, [
|
|
70
|
-
|
|
57
|
+
r(l.$slots, "default")
|
|
71
58
|
])
|
|
72
59
|
])
|
|
73
|
-
], 10,
|
|
60
|
+
], 10, h)
|
|
74
61
|
])
|
|
75
62
|
]));
|
|
76
63
|
}
|
|
77
|
-
}),
|
|
64
|
+
}), b = { class: "m-button m-button--primary m-button--animated-right" }, $ = /* @__PURE__ */ _({
|
|
65
|
+
__name: "MucButton",
|
|
66
|
+
props: {
|
|
67
|
+
expanded: {
|
|
68
|
+
type: Boolean,
|
|
69
|
+
default: !1
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
setup(n) {
|
|
73
|
+
return (e, s) => (i(), u("button", b, [
|
|
74
|
+
r(e.$slots, "default")
|
|
75
|
+
]));
|
|
76
|
+
}
|
|
77
|
+
}), w = ["aria-label"], M = { class: "m-callout__inner" }, x = { class: "m-callout__icon" }, B = {
|
|
78
|
+
"aria-hidden": "true",
|
|
79
|
+
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__ */ _({
|
|
81
|
+
__name: "MucCallout",
|
|
82
|
+
props: {
|
|
83
|
+
type: { default: "info" }
|
|
84
|
+
},
|
|
85
|
+
setup(n) {
|
|
86
|
+
const e = n, s = o(() => {
|
|
87
|
+
switch (e.type) {
|
|
88
|
+
case "error":
|
|
89
|
+
return "warning";
|
|
90
|
+
case "success":
|
|
91
|
+
return "check";
|
|
92
|
+
default:
|
|
93
|
+
return "information";
|
|
94
|
+
}
|
|
95
|
+
}), a = o(() => {
|
|
96
|
+
switch (e.type) {
|
|
97
|
+
case "error":
|
|
98
|
+
return "m-callout--error";
|
|
99
|
+
case "warning":
|
|
100
|
+
return "m-callout--warning";
|
|
101
|
+
case "success":
|
|
102
|
+
return "m-callout--success";
|
|
103
|
+
default:
|
|
104
|
+
return "m-callout--default";
|
|
105
|
+
}
|
|
106
|
+
}), c = o(() => {
|
|
107
|
+
switch (e.type) {
|
|
108
|
+
case "success":
|
|
109
|
+
return "Erfolgreich";
|
|
110
|
+
case "warning":
|
|
111
|
+
return "Warnung";
|
|
112
|
+
case "error":
|
|
113
|
+
return "Error";
|
|
114
|
+
default:
|
|
115
|
+
return "Information";
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return (l, p) => (i(), u("div", {
|
|
119
|
+
class: m(["m-callout", a.value]),
|
|
120
|
+
"aria-label": c.value
|
|
121
|
+
}, [
|
|
122
|
+
t("div", M, [
|
|
123
|
+
t("div", x, [
|
|
124
|
+
r(l.$slots, "icon", {}, () => [
|
|
125
|
+
(i(), u("svg", B, [
|
|
126
|
+
t("use", {
|
|
127
|
+
"xlink:href": `#icon-${s.value}`
|
|
128
|
+
}, null, 8, k)
|
|
129
|
+
]))
|
|
130
|
+
], !0)
|
|
131
|
+
]),
|
|
132
|
+
t("div", I, [
|
|
133
|
+
t("div", C, [
|
|
134
|
+
t("div", S, [
|
|
135
|
+
r(l.$slots, "header", {}, void 0, !0)
|
|
136
|
+
]),
|
|
137
|
+
t("div", E, [
|
|
138
|
+
r(l.$slots, "content", { class: "m-callout__content" }, void 0, !0)
|
|
139
|
+
])
|
|
140
|
+
])
|
|
141
|
+
])
|
|
142
|
+
])
|
|
143
|
+
], 10, w));
|
|
144
|
+
}
|
|
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__ */ _({
|
|
78
151
|
__name: "MucIntro",
|
|
79
152
|
props: {
|
|
80
153
|
title: {
|
|
@@ -82,14 +155,14 @@ const f = { class: "m-button m-button--primary m-button--animated-right" }, y =
|
|
|
82
155
|
}
|
|
83
156
|
},
|
|
84
157
|
setup(n) {
|
|
85
|
-
return (e,
|
|
86
|
-
t("div",
|
|
87
|
-
t("div",
|
|
88
|
-
t("div",
|
|
89
|
-
t("div",
|
|
90
|
-
t("h1",
|
|
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),
|
|
91
164
|
t("p", null, [
|
|
92
|
-
|
|
165
|
+
r(e.$slots, "default")
|
|
93
166
|
])
|
|
94
167
|
])
|
|
95
168
|
])
|
|
@@ -97,20 +170,22 @@ const f = { class: "m-button m-button--primary m-button--animated-right" }, y =
|
|
|
97
170
|
])
|
|
98
171
|
]));
|
|
99
172
|
}
|
|
100
|
-
}),
|
|
173
|
+
}), d = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
101
174
|
__proto__: null,
|
|
102
|
-
MucBanner:
|
|
103
|
-
MucButton:
|
|
104
|
-
|
|
175
|
+
MucBanner: g,
|
|
176
|
+
MucButton: $,
|
|
177
|
+
MucCallout: z,
|
|
178
|
+
MucIntro: R
|
|
105
179
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
106
|
-
function
|
|
107
|
-
for (const e in
|
|
108
|
-
n.component(e,
|
|
180
|
+
function T(n) {
|
|
181
|
+
for (const e in d)
|
|
182
|
+
n.component(e, d[e]);
|
|
109
183
|
}
|
|
110
|
-
const
|
|
184
|
+
const q = { install: T };
|
|
111
185
|
export {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
186
|
+
g as MucBanner,
|
|
187
|
+
$ as MucButton,
|
|
188
|
+
z as MucCallout,
|
|
189
|
+
R as MucIntro,
|
|
190
|
+
q as default
|
|
116
191
|
};
|