@muenchen/muc-patternlab-vue 1.13.0-beta.7 → 1.13.0-beta.8

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 (214) hide show
  1. package/components/Banner/MucBanner.stories.d.ts +70 -0
  2. package/components/Banner/MucBanner.vue.d.ts +37 -0
  3. package/components/BuisnessHours/BusinessHours.stories.d.ts +80 -0
  4. package/components/BuisnessHours/MucBusinessHours.vue.d.ts +56 -0
  5. package/components/Button/MucButton.stories.d.ts +114 -0
  6. package/{dist/components → components}/Button/MucButton.vue.d.ts +23 -43
  7. package/components/Callout/MucCallout.stories.d.ts +77 -0
  8. package/components/Callout/MucCallout.vue.d.ts +57 -0
  9. package/components/Card/MucCard.stories.d.ts +117 -0
  10. package/components/Card/MucCard.vue.d.ts +42 -0
  11. package/components/Card/MucCardContainer.stories.d.ts +124 -0
  12. package/components/Card/MucCardContainer.vue.d.ts +24 -0
  13. package/components/Comment/MucComment.stories.d.ts +82 -0
  14. package/components/Comment/MucComment.vue.d.ts +89 -0
  15. package/components/Comment/MucCommentText.stories.d.ts +51 -0
  16. package/components/Comment/MucCommentText.vue.d.ts +24 -0
  17. package/{dist/components → components}/Divider/MucDivider.stories.d.ts +1 -1
  18. package/{dist/components → components}/Divider/MucDivider.vue.d.ts +1 -1
  19. package/components/Form/MucCheckbox.stories.d.ts +33 -0
  20. package/components/Form/MucCheckbox.vue.d.ts +18 -0
  21. package/components/Form/MucCheckboxGroup.stories.d.ts +188 -0
  22. package/components/Form/MucCheckboxGroup.vue.d.ts +42 -0
  23. package/components/Form/MucCounter.stories.d.ts +63 -0
  24. package/components/Form/MucCounter.vue.d.ts +33 -0
  25. package/components/Form/MucErrorList.stories.d.ts +31 -0
  26. package/components/Form/MucErrorList.vue.d.ts +8 -0
  27. package/components/Form/MucInput.stories.d.ts +165 -0
  28. package/{dist/components → components}/Form/MucInput.vue.d.ts +23 -42
  29. package/components/Form/MucRadioButton.stories.d.ts +104 -0
  30. package/components/Form/MucRadioButton.vue.d.ts +38 -0
  31. package/components/Form/MucRadioButtonGroup.vue.d.ts +38 -0
  32. package/components/Form/MucSelect.stories.d.ts +82 -0
  33. package/{dist/components → components}/Form/MucSelect.vue.d.ts +5 -30
  34. package/components/Form/MucSelectItem.vue.d.ts +9 -0
  35. package/components/Form/MucTextArea.stories.d.ts +64 -0
  36. package/components/Form/MucTextArea.vue.d.ts +38 -0
  37. package/components/Icon/MucIcon.stories.d.ts +33 -0
  38. package/components/Icon/MucIcon.vue.d.ts +20 -0
  39. package/components/Intro/MucIntro.stories.d.ts +61 -0
  40. package/components/Intro/MucIntro.vue.d.ts +50 -0
  41. package/components/Link/MucLink.stories.d.ts +83 -0
  42. package/components/Link/MucLink.vue.d.ts +72 -0
  43. package/components/PercentageSpinner/MucPercentageSpinner.stories.d.ts +32 -0
  44. package/components/PercentageSpinner/MucPercentageSpinner.vue.d.ts +30 -0
  45. package/components/PercentageSpinner/index.d.ts +2 -0
  46. package/{dist/components → components}/index.d.ts +2 -1
  47. package/muc-patternlab-vue.es.js +1003 -0
  48. package/package.json +4 -7
  49. package/{dist/style.css → style.css} +1 -1
  50. package/LICENSE +0 -21
  51. package/README.md +0 -111
  52. package/dist/components/Banner/MucBanner.stories.d.ts +0 -82
  53. package/dist/components/Banner/MucBanner.vue.d.ts +0 -54
  54. package/dist/components/BuisnessHours/BusinessHours.stories.d.ts +0 -116
  55. package/dist/components/BuisnessHours/MucBusinessHours.vue.d.ts +0 -74
  56. package/dist/components/Button/MucButton.stories.d.ts +0 -158
  57. package/dist/components/Callout/MucCallout.stories.d.ts +0 -89
  58. package/dist/components/Callout/MucCallout.vue.d.ts +0 -73
  59. package/dist/components/Card/MucCard.stories.d.ts +0 -165
  60. package/dist/components/Card/MucCard.vue.d.ts +0 -46
  61. package/dist/components/Card/MucCardContainer.stories.d.ts +0 -148
  62. package/dist/components/Card/MucCardContainer.vue.d.ts +0 -19
  63. package/dist/components/Comment/MucComment.stories.d.ts +0 -106
  64. package/dist/components/Comment/MucComment.vue.d.ts +0 -105
  65. package/dist/components/Comment/MucCommentText.stories.d.ts +0 -93
  66. package/dist/components/Comment/MucCommentText.vue.d.ts +0 -47
  67. package/dist/components/Form/MucCheckbox.stories.d.ts +0 -40
  68. package/dist/components/Form/MucCheckbox.vue.d.ts +0 -26
  69. package/dist/components/Form/MucCheckboxGroup.stories.d.ts +0 -241
  70. package/dist/components/Form/MucCheckboxGroup.vue.d.ts +0 -46
  71. package/dist/components/Form/MucCounter.stories.d.ts +0 -89
  72. package/dist/components/Form/MucCounter.vue.d.ts +0 -54
  73. package/dist/components/Form/MucErrorList.stories.d.ts +0 -41
  74. package/dist/components/Form/MucErrorList.vue.d.ts +0 -17
  75. package/dist/components/Form/MucInput.stories.d.ts +0 -239
  76. package/dist/components/Form/MucRadioButton.stories.d.ts +0 -168
  77. package/dist/components/Form/MucRadioButton.vue.d.ts +0 -59
  78. package/dist/components/Form/MucRadioButtonGroup.vue.d.ts +0 -54
  79. package/dist/components/Form/MucSelect.stories.d.ts +0 -116
  80. package/dist/components/Form/MucSelectItem.vue.d.ts +0 -18
  81. package/dist/components/Form/MucTextArea.stories.d.ts +0 -94
  82. package/dist/components/Form/MucTextArea.vue.d.ts +0 -61
  83. package/dist/components/Icon/MucIcon.stories.d.ts +0 -43
  84. package/dist/components/Icon/MucIcon.vue.d.ts +0 -29
  85. package/dist/components/Intro/MucIntro.stories.d.ts +0 -97
  86. package/dist/components/Intro/MucIntro.vue.d.ts +0 -54
  87. package/dist/components/Link/MucLink.stories.d.ts +0 -139
  88. package/dist/components/Link/MucLink.vue.d.ts +0 -92
  89. package/dist/muc-patternlab-vue.es.js +0 -973
  90. package/src/components/Banner/MucBanner.stories.ts +0 -47
  91. package/src/components/Banner/MucBanner.vue +0 -109
  92. package/src/components/Banner/index.ts +0 -3
  93. package/src/components/BuisnessHours/BusinessHourType.ts +0 -28
  94. package/src/components/BuisnessHours/BusinessHours.stories.ts +0 -108
  95. package/src/components/BuisnessHours/MucBusinessHours.vue +0 -162
  96. package/src/components/Button/MucButton.stories.ts +0 -63
  97. package/src/components/Button/MucButton.vue +0 -89
  98. package/src/components/Button/index.ts +0 -3
  99. package/src/components/Callout/MucCallout.stories.ts +0 -49
  100. package/src/components/Callout/MucCallout.vue +0 -140
  101. package/src/components/Callout/index.ts +0 -3
  102. package/src/components/Card/MucCard.stories.ts +0 -55
  103. package/src/components/Card/MucCard.vue +0 -92
  104. package/src/components/Card/MucCardContainer.stories.ts +0 -43
  105. package/src/components/Card/MucCardContainer.vue +0 -37
  106. package/src/components/Card/index.ts +0 -4
  107. package/src/components/Comment/CommentType.ts +0 -3
  108. package/src/components/Comment/MucComment.stories.ts +0 -38
  109. package/src/components/Comment/MucComment.vue +0 -179
  110. package/src/components/Comment/MucCommentText.stories.ts +0 -38
  111. package/src/components/Comment/MucCommentText.vue +0 -61
  112. package/src/components/Comment/index.ts +0 -4
  113. package/src/components/Divider/MucDivider.stories.ts +0 -19
  114. package/src/components/Divider/MucDivider.vue +0 -9
  115. package/src/components/Divider/index.ts +0 -3
  116. package/src/components/Form/MucCheckbox.stories.ts +0 -25
  117. package/src/components/Form/MucCheckbox.vue +0 -47
  118. package/src/components/Form/MucCheckboxGroup.stories.ts +0 -43
  119. package/src/components/Form/MucCheckboxGroup.vue +0 -80
  120. package/src/components/Form/MucCounter.stories.ts +0 -47
  121. package/src/components/Form/MucCounter.vue +0 -128
  122. package/src/components/Form/MucErrorList.stories.ts +0 -31
  123. package/src/components/Form/MucErrorList.vue +0 -34
  124. package/src/components/Form/MucInput.stories.ts +0 -90
  125. package/src/components/Form/MucInput.vue +0 -198
  126. package/src/components/Form/MucRadioButton.stories.ts +0 -32
  127. package/src/components/Form/MucRadioButton.vue +0 -81
  128. package/src/components/Form/MucRadioButtonGroup.vue +0 -65
  129. package/src/components/Form/MucRadioButtonTypes.ts +0 -41
  130. package/src/components/Form/MucSelect.stories.ts +0 -69
  131. package/src/components/Form/MucSelect.vue +0 -352
  132. package/src/components/Form/MucSelectItem.vue +0 -25
  133. package/src/components/Form/MucSelectTypes.ts +0 -8
  134. package/src/components/Form/MucTextArea.stories.ts +0 -47
  135. package/src/components/Form/MucTextArea.vue +0 -80
  136. package/src/components/Form/index.ts +0 -23
  137. package/src/components/Icon/MucIcon.stories.ts +0 -35
  138. package/src/components/Icon/MucIcon.vue +0 -29
  139. package/src/components/Icon/index.ts +0 -3
  140. package/src/components/Intro/MucIntro.stories.ts +0 -37
  141. package/src/components/Intro/MucIntro.vue +0 -70
  142. package/src/components/Intro/index.ts +0 -3
  143. package/src/components/Link/MucLink.stories.ts +0 -36
  144. package/src/components/Link/MucLink.vue +0 -74
  145. package/src/components/Link/index.ts +0 -3
  146. package/src/components/index.ts +0 -43
  147. package/src/composables/useOnClickOutside.ts +0 -24
  148. package/src/index.ts +0 -14
  149. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-700.eot +0 -0
  150. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-700.svg +0 -0
  151. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-700.ttf +0 -0
  152. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-700.woff +0 -0
  153. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-700.woff2 +0 -0
  154. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-italic.eot +0 -0
  155. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-italic.svg +0 -0
  156. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-italic.ttf +0 -0
  157. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-italic.woff +0 -0
  158. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-italic.woff2 +0 -0
  159. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-regular.eot +0 -0
  160. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-regular.svg +0 -0
  161. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-regular.ttf +0 -0
  162. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-regular.woff +0 -0
  163. /package/{dist/assets → assets}/fonts/open-sans/open-sans-v27-latin-regular.woff2 +0 -0
  164. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300.eot +0 -0
  165. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300.svg +0 -0
  166. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300.ttf +0 -0
  167. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300.woff +0 -0
  168. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300.woff2 +0 -0
  169. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.eot +0 -0
  170. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.svg +0 -0
  171. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.ttf +0 -0
  172. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.woff +0 -0
  173. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-300italic.woff2 +0 -0
  174. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700.eot +0 -0
  175. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700.svg +0 -0
  176. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700.ttf +0 -0
  177. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700.woff +0 -0
  178. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700.woff2 +0 -0
  179. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.eot +0 -0
  180. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.svg +0 -0
  181. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.ttf +0 -0
  182. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.woff +0 -0
  183. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-700italic.woff2 +0 -0
  184. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.eot +0 -0
  185. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.svg +0 -0
  186. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.ttf +0 -0
  187. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.woff +0 -0
  188. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-italic.woff2 +0 -0
  189. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.eot +0 -0
  190. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.svg +0 -0
  191. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.ttf +0 -0
  192. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.woff +0 -0
  193. /package/{dist/assets → assets}/fonts/roboto-condensed/roboto-condensed-v19-latin-regular.woff2 +0 -0
  194. /package/{dist/assets → assets}/temporary/custom-icons.svg +0 -0
  195. /package/{dist/assets → assets}/temporary/custom-style.css +0 -0
  196. /package/{dist/assets → assets}/temporary/muc-icons.svg +0 -0
  197. /package/{dist/assets → assets}/temporary/muenchende-fontfaces.css +0 -0
  198. /package/{dist/assets → assets}/temporary/muenchende-style.css +0 -0
  199. /package/{dist/components → components}/Banner/index.d.ts +0 -0
  200. /package/{dist/components → components}/BuisnessHours/BusinessHourType.d.ts +0 -0
  201. /package/{dist/components → components}/Button/index.d.ts +0 -0
  202. /package/{dist/components → components}/Callout/index.d.ts +0 -0
  203. /package/{dist/components → components}/Card/index.d.ts +0 -0
  204. /package/{dist/components → components}/Comment/CommentType.d.ts +0 -0
  205. /package/{dist/components → components}/Comment/index.d.ts +0 -0
  206. /package/{dist/components → components}/Divider/index.d.ts +0 -0
  207. /package/{dist/components → components}/Form/MucRadioButtonTypes.d.ts +0 -0
  208. /package/{dist/components → components}/Form/MucSelectTypes.d.ts +0 -0
  209. /package/{dist/components → components}/Form/index.d.ts +0 -0
  210. /package/{dist/components → components}/Icon/index.d.ts +0 -0
  211. /package/{dist/components → components}/Intro/index.d.ts +0 -0
  212. /package/{dist/components → components}/Link/index.d.ts +0 -0
  213. /package/{dist/composables → composables}/useOnClickOutside.d.ts +0 -0
  214. /package/{dist/index.d.ts → index.d.ts} +0 -0
@@ -1,198 +0,0 @@
1
- <template>
2
- <div
3
- class="m-form-group"
4
- :class="isErrorClass"
5
- >
6
- <label
7
- for="search-input"
8
- class="m-label"
9
- >
10
- {{ label }}
11
- <span
12
- v-if="required"
13
- aria-hidden="true"
14
- class="mandatory"
15
- >
16
- *
17
- <span class="visually-hidden">(erforderlich)</span>
18
- </span>
19
- </label>
20
- <p
21
- id="text-input-error"
22
- class="m-error-message"
23
- >
24
- {{ errorMsg }}
25
- </p>
26
- <div class="m-input-wrapper m-autocomplete">
27
- <div
28
- v-if="!!slots.prefix"
29
- class="m-input__prefix"
30
- >
31
- <span>
32
- <slot name="prefix" />
33
- </span>
34
- </div>
35
- <input
36
- class="m-input autocomplete-input"
37
- :type="type"
38
- v-model="modelValue"
39
- :aria-describedby="type + '-input'"
40
- :placeholder="placeholder"
41
- :required="required"
42
- />
43
- <ul
44
- v-if="isSearch && currentAvalOptions.length !== 0"
45
- class="autocomplete-result-list autocomplete-result-list--location"
46
- >
47
- <li
48
- class="autocomplete-result"
49
- v-for="option in currentAvalOptions"
50
- :key="option"
51
- @click="handleOptionSelection(option)"
52
- >
53
- {{ option }}
54
- </li>
55
- </ul>
56
- <button
57
- v-if="suffixIcon"
58
- class="m-input__suffix"
59
- @click="handleSuffixClick"
60
- >
61
- <svg
62
- aria-hidden="true"
63
- class="icon"
64
- >
65
- <use :xlink:href="'#icon-' + suffixIcon"></use>
66
- </svg>
67
- <span class="visually-hidden">Suchen</span>
68
- </button>
69
- </div>
70
- <p
71
- class="m-hint"
72
- id="text-input-hint"
73
- >
74
- {{ hint }}
75
- </p>
76
- </div>
77
- </template>
78
- <script setup lang="ts">
79
- import { computed } from "vue";
80
-
81
- /**
82
- * Type includes all possible input types possible.
83
- */
84
- type inputType =
85
- | "text"
86
- | "password"
87
- | "color"
88
- | "search"
89
- | "date"
90
- | "datetime-local";
91
-
92
- /**
93
- * Input value from the input component.
94
- */
95
- const modelValue = defineModel<string>({ default: "" });
96
-
97
- const props = withDefaults(
98
- defineProps<{
99
- /**
100
- * Displays error message and highlights the input form with a red border.
101
- */
102
- errorMsg?: string;
103
-
104
- /**
105
- * Placeholder for empty input form.
106
- */
107
- placeholder?: string;
108
-
109
- /**
110
- * Sets this input form as required. Default is wrong.
111
- */
112
- required?: boolean;
113
-
114
- /**
115
- * Displays a label above the form component.
116
- */
117
- label?: string;
118
-
119
- /**
120
- * Displays a hint beneath the form component.
121
- */
122
- hint?: string;
123
-
124
- /**
125
- * Sets the type of this form component. This can be text, password, color, date or datetime-local.
126
- */
127
- type?: inputType;
128
-
129
- /**
130
- * Options for the form component. Type must set to 'search'.
131
- */
132
- datalist?: string[];
133
-
134
- /**
135
- * Icon to be displayed as a suffix at the end of the input.
136
- */
137
- suffixIcon?: string;
138
- }>(),
139
- {
140
- required: false,
141
- type: "text",
142
- dataList: [],
143
- }
144
- );
145
-
146
- const slots = defineSlots<{
147
- /**
148
- * Slot in front of the user input with divider.
149
- */
150
- prefix(): any;
151
- }>();
152
-
153
- const emits = defineEmits<{
154
- /**
155
- * Triggered when suffix-button is clicked.
156
- * @param e Click-Event
157
- */
158
- (e: "suffixClick"): void;
159
- }>();
160
-
161
- /**
162
- * Computes a CSS class based on the presence of an error message.
163
- * @returns {string} Returns "has-error" if there is an error message, otherwise an empty string.
164
- */
165
- const isErrorClass = computed(() => (!props.errorMsg ? "" : "has-error"));
166
-
167
- /**
168
- * Computes whether the current type is "search".
169
- * @returns {boolean} Returns true if the type is "search", otherwise false.
170
- */
171
- const isSearch = computed(() => props.type === "search");
172
-
173
- /**
174
- * Computes the list of available options based on the current search value.
175
- * Filters the options from the datalist based on whether they start with the search value.
176
- * @returns {string[]} Returns an array of matching options.
177
- */
178
- const currentAvalOptions = computed(() => {
179
- if (modelValue.value === "") return [];
180
-
181
- const searchValue = modelValue.value.toLowerCase();
182
- return props.datalist!.filter(
183
- (option) =>
184
- option.toLowerCase().startsWith(searchValue) &&
185
- option.toLowerCase() !== searchValue
186
- );
187
- });
188
-
189
- /**
190
- * Handles the selection of an option.
191
- * Sets the model value to the selected option.
192
- * @param {string} option - The selected option.
193
- */
194
- const handleOptionSelection = (option: string) => (modelValue.value = option);
195
-
196
- const handleSuffixClick = () => emits("suffixClick");
197
- </script>
198
- <style scoped></style>
@@ -1,32 +0,0 @@
1
- import MucRadioButton from "./MucRadioButton.vue";
2
- import MucRadioButtonGroup from "./MucRadioButtonGroup.vue";
3
-
4
- export default {
5
- component: MucRadioButton,
6
- title: "Forms/MucRadioButton",
7
- tags: ["autodocs"],
8
- parameters: {
9
- docs: {
10
- description: {
11
- component: `
12
- Offers simple functionality of a radio-button.
13
- You need to use the radio-button within the radio-button-group - combined you can provide grouping functionality to allow users to select from a predefined set of options.
14
-
15
- [🔗 Patternlab-Docs](https://patternlab.muenchen.space/?p=elements-radios)
16
- `,
17
- },
18
- },
19
- },
20
- };
21
-
22
- export const Default = () => ({
23
- components: { MucRadioButton, MucRadioButtonGroup },
24
- template: `
25
- <MucRadioButtonGroup heading="Checkbox group" model-value="">
26
- <template v-slot:default>
27
- <MucRadioButton value="first" label="first option" hint="This is a hint for this radiobutton"/>
28
- <MucRadioButton v-for="index in 3" :key="index" :label="'other option-' + index" :value="'val-' + index"/>
29
- </template>
30
- </MucRadioButtonGroup>
31
- `,
32
- });
@@ -1,81 +0,0 @@
1
- <template>
2
- <div
3
- class="m-radios__item"
4
- v-if="isInRadioButtonGroup"
5
- >
6
- <input
7
- class="m-radios__input"
8
- type="radio"
9
- :checked="isChecked"
10
- :disabled="isDisabled"
11
- @click.stop="clicked"
12
- />
13
- <label
14
- class="m-label m-radios__label"
15
- @click="clicked"
16
- >
17
- {{ label }}
18
- <span class="m-hint">
19
- {{ hint }}
20
- </span>
21
- </label>
22
- </div>
23
- </template>
24
-
25
- <script setup lang="ts">
26
- import { computed, inject } from "vue";
27
-
28
- import { RadioButtonGroupKey } from "./MucRadioButtonTypes";
29
-
30
- const props = withDefaults(
31
- defineProps<{
32
- /**
33
- * value for this radiobutton
34
- */
35
- value: string;
36
-
37
- /**
38
- * Optional label shown behind the radiobutton
39
- */
40
- label?: string;
41
-
42
- /**
43
- * Optional hint shown beneath the radiobutton
44
- */
45
- hint?: string;
46
-
47
- /**
48
- * Optionally disable this specific radiobutton
49
- */
50
- disabled?: boolean;
51
- }>(),
52
- {
53
- disabled: false,
54
- }
55
- );
56
-
57
- /**
58
- * Data provided by the radio-button-group
59
- */
60
- const parentData = inject(RadioButtonGroupKey);
61
-
62
- /**
63
- * Function called upon clicking this radiobutton
64
- */
65
- const clicked = () => parentData?.set(props.value);
66
-
67
- /**
68
- * Computed property if this radiobutton is checked or not
69
- */
70
- const isChecked = computed(() => parentData?.modelValue.value === props.value);
71
-
72
- /**
73
- * Computed property if this radiobutton should be disabled
74
- */
75
- const isDisabled = computed(() => props.disabled || parentData?.disabled.value);
76
-
77
- /**
78
- * Determines if this radiobutton is used inside a radiobutton-group
79
- */
80
- const isInRadioButtonGroup = computed(() => !!parentData?.disabled ?? false);
81
- </script>
@@ -1,65 +0,0 @@
1
- <template>
2
- <div class="m-form-group">
3
- <fieldset class="m-radio-group">
4
- <legend class="m-radio-group__legend">
5
- <h3 class="m-radio-group__heading">
6
- {{ heading }}
7
- </h3>
8
- </legend>
9
- <div class="m-radios">
10
- <slot name="default" />
11
- </div>
12
- </fieldset>
13
- </div>
14
- </template>
15
-
16
- <script setup lang="ts">
17
- import { provide, readonly, toRef } from "vue";
18
-
19
- import {
20
- RadioButtonGroupKey,
21
- RadioButtonValueTypes,
22
- } from "./MucRadioButtonTypes";
23
-
24
- /**
25
- * exposed two-way binding of the currently selected radiobuttons-value
26
- */
27
- const selectedButton = defineModel<RadioButtonValueTypes>("modelValue");
28
-
29
- const props = withDefaults(
30
- defineProps<{
31
- /**
32
- * Optional heading above all radiobuttons as a group heading
33
- */
34
- heading?: string;
35
-
36
- /**
37
- * Optionally disable all child radiobuttons - defaults to 'false'
38
- */
39
- disabled?: boolean;
40
- }>(),
41
- {
42
- disabled: false,
43
- }
44
- );
45
-
46
- const emit = defineEmits<{
47
- /**
48
- * Triggered when a different radiobutton is selected.
49
- * @param value RadioButtonValueTypes the value of the newly selected radiobutton
50
- */
51
- change: [value: RadioButtonValueTypes];
52
- }>();
53
-
54
- /**
55
- * Providing necessary data to all child radiobuttons.
56
- */
57
- provide(RadioButtonGroupKey, {
58
- set: (value: RadioButtonValueTypes) => {
59
- emit("change", value);
60
- selectedButton.value = value;
61
- },
62
- modelValue: selectedButton,
63
- disabled: readonly(toRef(props.disabled)),
64
- });
65
- </script>
@@ -1,41 +0,0 @@
1
- import { InjectionKey, Ref } from "vue";
2
-
3
- /**
4
- * Key for inject and provide
5
- *
6
- * @type {InjectionKey<RadioButtonGroupInjection>}
7
- */
8
- export const RadioButtonGroupKey: InjectionKey<RadioButtonGroupInjection> =
9
- Symbol("mucRadioGroup");
10
-
11
- /**
12
- * Type getting injected / provided
13
- */
14
- export type RadioButtonGroupInjection = {
15
- /**
16
- * Function for setting the value of the current selected radiobutton
17
- * @param {RadioButtonValueTypes} value - Value being set as the new current selected radiobutton
18
- */
19
- set: (value: RadioButtonValueTypes) => void;
20
-
21
- /**
22
- * Current value of the currently selected radiobutton
23
- */
24
- modelValue: Readonly<Ref<RadioButtonValueTypes | undefined>>;
25
-
26
- /**
27
- * Deactivate all child radiobuttons
28
- */
29
- disabled: Readonly<Ref<boolean>>;
30
- };
31
-
32
- /**
33
- * Different possible types used as value for a radiobutton-values
34
- */
35
- export type RadioButtonValueTypes =
36
- | boolean
37
- | string
38
- | unknown[]
39
- | Record<string, unknown>
40
- | number
41
- | null;
@@ -1,69 +0,0 @@
1
- import MucSelect from "./MucSelect.vue";
2
-
3
- export default {
4
- component: MucSelect,
5
- title: "Forms/MucSelect",
6
- tags: ["autodocs"],
7
- parameters: {
8
- docs: {
9
- description: {
10
- component: `Choose from an option from a given list of objects or strings - multiple can also be allowed. The design is similar to the text input with autocompletion.
11
-
12
- [🔗 Patternlab-Docs](https://patternlab.muenchen.space/?p=elements-combobox)
13
- `,
14
- },
15
- },
16
- },
17
- };
18
-
19
- export const Default = {
20
- args: {
21
- modelValue: {
22
- id: "1",
23
- name: "Object 1",
24
- quantity: 1,
25
- },
26
- items: [
27
- {
28
- id: "1",
29
- name: "Object 1",
30
- quantity: 1,
31
- },
32
- {
33
- id: "2",
34
- name: "Object 2",
35
- quantity: 2,
36
- },
37
- {
38
- id: "3",
39
- name: "Object 3",
40
- quantity: 3,
41
- },
42
- {
43
- id: "4",
44
- name: "Object 4",
45
- quantity: 4,
46
- },
47
- ],
48
- label: "This is a label",
49
- hint: "This is a hint",
50
- itemTitle: "name",
51
- },
52
- };
53
-
54
- export const MultiSelect = {
55
- args: {
56
- ...Default.args,
57
- label: "Select multiple objects",
58
- multiple: true,
59
- },
60
- };
61
-
62
- export const StringSelect = {
63
- args: {
64
- modelValue: "String 1",
65
- items: ["String 1", "String 2", "String 3", "String 4"],
66
- label: "Select strings",
67
- hint: "This is a hint",
68
- },
69
- };