@synergy-design-system/vue 2.7.2 → 2.8.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 (88) hide show
  1. package/dist/components/SynVueAccordion.vue.d.ts +12 -12
  2. package/dist/components/SynVueAlert.vue.d.ts +13 -9
  3. package/dist/components/SynVueBadge.vue.d.ts +4 -4
  4. package/dist/components/SynVueBreadcrumbItem.vue.d.ts +12 -12
  5. package/dist/components/SynVueButton.vue.d.ts +62 -59
  6. package/dist/components/SynVueCard.vue.d.ts +8 -8
  7. package/dist/components/SynVueCheckbox.vue.d.ts +40 -35
  8. package/dist/components/SynVueCombobox.vue.d.ts +232 -0
  9. package/dist/components/SynVueDetails.vue.d.ts +23 -19
  10. package/dist/components/SynVueDialog.vue.d.ts +7 -1
  11. package/dist/components/SynVueDivider.vue.d.ts +4 -4
  12. package/dist/components/SynVueDrawer.vue.d.ts +11 -5
  13. package/dist/components/SynVueDropdown.vue.d.ts +21 -17
  14. package/dist/components/SynVueFile.vue.d.ts +40 -35
  15. package/dist/components/SynVueHeader.vue.d.ts +10 -7
  16. package/dist/components/SynVueIcon.vue.d.ts +13 -11
  17. package/dist/components/SynVueIconButton.vue.d.ts +37 -35
  18. package/dist/components/SynVueInput.vue.d.ts +115 -109
  19. package/dist/components/SynVueMenu.vue.d.ts +2 -1
  20. package/dist/components/SynVueMenuItem.vue.d.ts +24 -24
  21. package/dist/components/SynVueNavItem.vue.d.ts +13 -9
  22. package/dist/components/SynVueOptgroup.vue.d.ts +10 -10
  23. package/dist/components/SynVueOption.vue.d.ts +4 -4
  24. package/dist/components/SynVuePopup.vue.d.ts +34 -33
  25. package/dist/components/SynVueProgressBar.vue.d.ts +12 -12
  26. package/dist/components/SynVueProgressRing.vue.d.ts +8 -8
  27. package/dist/components/SynVueRadio.vue.d.ts +13 -11
  28. package/dist/components/SynVueRadioButton.vue.d.ts +17 -15
  29. package/dist/components/SynVueRadioGroup.vue.d.ts +32 -29
  30. package/dist/components/SynVueRange.vue.d.ts +57 -51
  31. package/dist/components/SynVueRangeTick.vue.d.ts +4 -4
  32. package/dist/components/SynVueSelect.vue.d.ts +55 -45
  33. package/dist/components/SynVueSideNav.vue.d.ts +5 -1
  34. package/dist/components/SynVueSwitch.vue.d.ts +40 -35
  35. package/dist/components/SynVueTab.vue.d.ts +20 -19
  36. package/dist/components/SynVueTabGroup.vue.d.ts +21 -19
  37. package/dist/components/SynVueTabPanel.vue.d.ts +8 -8
  38. package/dist/components/SynVueTag.vue.d.ts +10 -9
  39. package/dist/components/SynVueTextarea.vue.d.ts +86 -81
  40. package/dist/components/SynVueTooltip.vue.d.ts +29 -25
  41. package/dist/index.d.ts +1 -0
  42. package/package.json +3 -3
  43. package/src/components/SynVueAccordion.vue +16 -21
  44. package/src/components/SynVueAlert.vue +29 -29
  45. package/src/components/SynVueBadge.vue +10 -15
  46. package/src/components/SynVueBreadcrumb.vue +8 -13
  47. package/src/components/SynVueBreadcrumbItem.vue +16 -21
  48. package/src/components/SynVueButton.vue +66 -67
  49. package/src/components/SynVueButtonGroup.vue +8 -13
  50. package/src/components/SynVueCard.vue +12 -17
  51. package/src/components/SynVueCheckbox.vue +64 -53
  52. package/src/components/SynVueCombobox.vue +295 -0
  53. package/src/components/SynVueDetails.vue +35 -35
  54. package/src/components/SynVueDialog.vue +33 -31
  55. package/src/components/SynVueDivider.vue +9 -14
  56. package/src/components/SynVueDrawer.vue +37 -35
  57. package/src/components/SynVueDropdown.vue +37 -37
  58. package/src/components/SynVueFile.vue +69 -58
  59. package/src/components/SynVueHeader.vue +23 -24
  60. package/src/components/SynVueIcon.vue +26 -25
  61. package/src/components/SynVueIconButton.vue +42 -41
  62. package/src/components/SynVueInput.vue +123 -111
  63. package/src/components/SynVueMenu.vue +6 -9
  64. package/src/components/SynVueMenuItem.vue +24 -29
  65. package/src/components/SynVueMenuLabel.vue +2 -6
  66. package/src/components/SynVueNavItem.vue +32 -32
  67. package/src/components/SynVueOptgroup.vue +14 -19
  68. package/src/components/SynVueOption.vue +11 -16
  69. package/src/components/SynVuePopup.vue +51 -52
  70. package/src/components/SynVuePrioNav.vue +2 -6
  71. package/src/components/SynVueProgressBar.vue +16 -21
  72. package/src/components/SynVueProgressRing.vue +13 -18
  73. package/src/components/SynVueRadio.vue +23 -23
  74. package/src/components/SynVueRadioButton.vue +26 -26
  75. package/src/components/SynVueRadioGroup.vue +52 -43
  76. package/src/components/SynVueRange.vue +77 -65
  77. package/src/components/SynVueRangeTick.vue +10 -15
  78. package/src/components/SynVueSelect.vue +90 -74
  79. package/src/components/SynVueSideNav.vue +24 -24
  80. package/src/components/SynVueSpinner.vue +1 -5
  81. package/src/components/SynVueSwitch.vue +63 -52
  82. package/src/components/SynVueTab.vue +25 -26
  83. package/src/components/SynVueTabGroup.vue +31 -31
  84. package/src/components/SynVueTabPanel.vue +13 -18
  85. package/src/components/SynVueTag.vue +18 -19
  86. package/src/components/SynVueTextarea.vue +99 -88
  87. package/src/components/SynVueTooltip.vue +41 -41
  88. package/src/index.js +1 -0
@@ -33,9 +33,11 @@
33
33
  import { computed, ref } from 'vue';
34
34
  import '@synergy-design-system/components/components/alert/alert.js';
35
35
 
36
- import type {
37
- SynAfterHideEvent, SynAfterShowEvent, SynAlert, SynHideEvent, SynShowEvent,
38
- } from '@synergy-design-system/components';
36
+ import type { SynShowEvent } from '@synergy-design-system/components';
37
+ import type { SynAfterShowEvent } from '@synergy-design-system/components';
38
+ import type { SynHideEvent } from '@synergy-design-system/components';
39
+ import type { SynAfterHideEvent } from '@synergy-design-system/components';
40
+ import type { SynAlert } from '@synergy-design-system/components';
39
41
 
40
42
  // DOM Reference to the element
41
43
  const nativeElement = ref<SynAlert>();
@@ -51,17 +53,17 @@ const props = defineProps<{
51
53
  * You can toggle this attribute to show and hide the alert, or you can
52
54
  use the `show()` and `hide()` methods and this attribute will reflect the alert's open state.
53
55
  */
54
- 'open'?: SynAlert['open'];
56
+ open?: SynAlert['open'];
55
57
 
56
58
  /**
57
- * Enables a close button that allows the user to dismiss the alert.
58
- */
59
- 'closable'?: SynAlert['closable'];
59
+ * Enables a close button that allows the user to dismiss the alert.
60
+ */
61
+ closable?: SynAlert['closable'];
60
62
 
61
63
  /**
62
- * The alert's theme variant.
63
- */
64
- 'variant'?: SynAlert['variant'];
64
+ * The alert's theme variant.
65
+ */
66
+ variant?: SynAlert['variant'];
65
67
 
66
68
  /**
67
69
  * The length of time, in milliseconds, the alert will show before closing itself.
@@ -71,39 +73,39 @@ the alert before it closes (e.g.
71
73
  * Defaults to `Infinity`, meaning
72
74
  the alert will not close on its own.
73
75
  */
74
- 'duration'?: SynAlert['duration'];
76
+ duration?: SynAlert['duration'];
75
77
  }>();
76
78
 
77
79
  // Make sure prop binding only forwards the props that are actually there.
78
80
  // This is needed because :param="param" also adds an empty attribute
79
81
  // when using web-components, which breaks optional arguments like size in SynInput
80
82
  // @see https://github.com/vuejs/core/issues/5190#issuecomment-1003112498
81
- const visibleProps = computed(() => Object.fromEntries(
82
- Object
83
- .entries(props)
84
- .filter(([, value]) => typeof value !== 'undefined'),
85
- ));
83
+ const visibleProps = computed(() =>
84
+ Object.fromEntries(
85
+ Object.entries(props).filter(([, value]) => typeof value !== 'undefined'),
86
+ ),
87
+ );
86
88
 
87
89
  // Map events
88
90
  defineEmits<{
89
91
  /**
90
- * Emitted when the alert opens.
91
- */
92
+ * Emitted when the alert opens.
93
+ */
92
94
  'syn-show': [e: SynShowEvent];
93
95
 
94
96
  /**
95
- * Emitted after the alert opens and all animations are complete.
96
- */
97
+ * Emitted after the alert opens and all animations are complete.
98
+ */
97
99
  'syn-after-show': [e: SynAfterShowEvent];
98
100
 
99
101
  /**
100
- * Emitted when the alert closes.
101
- */
102
+ * Emitted when the alert closes.
103
+ */
102
104
  'syn-hide': [e: SynHideEvent];
103
105
 
104
106
  /**
105
- * Emitted after the alert closes and all animations are complete.
106
- */
107
+ * Emitted after the alert closes and all animations are complete.
108
+ */
107
109
  'syn-after-hide': [e: SynAfterHideEvent];
108
110
  }>();
109
111
  </script>
@@ -117,14 +119,12 @@ export type { SynAfterHideEvent } from '@synergy-design-system/components';
117
119
 
118
120
  <template>
119
121
  <syn-alert
120
- v-bind="visibleProps"
121
- ref="nativeElement"
122
122
  @syn-show="$emit('syn-show', $event)"
123
123
  @syn-after-show="$emit('syn-after-show', $event)"
124
-
125
124
  @syn-hide="$emit('syn-hide', $event)"
126
125
  @syn-after-hide="$emit('syn-after-hide', $event)"
127
- >
128
- <slot />
126
+ v-bind="visibleProps"
127
+ ref="nativeElement">
128
+ <slot></slot>
129
129
  </syn-alert>
130
130
  </template>
@@ -30,29 +30,24 @@ defineExpose({
30
30
  // Map attributes
31
31
  const props = defineProps<{
32
32
  /**
33
- * The badge's theme variant.
34
- */
35
- 'variant'?: SynBadge['variant'];
33
+ * The badge's theme variant.
34
+ */
35
+ variant?: SynBadge['variant'];
36
36
  }>();
37
37
 
38
38
  // Make sure prop binding only forwards the props that are actually there.
39
39
  // This is needed because :param="param" also adds an empty attribute
40
40
  // when using web-components, which breaks optional arguments like size in SynInput
41
41
  // @see https://github.com/vuejs/core/issues/5190#issuecomment-1003112498
42
- const visibleProps = computed(() => Object.fromEntries(
43
- Object
44
- .entries(props)
45
- .filter(([, value]) => typeof value !== 'undefined'),
46
- ));
47
-
42
+ const visibleProps = computed(() =>
43
+ Object.fromEntries(
44
+ Object.entries(props).filter(([, value]) => typeof value !== 'undefined'),
45
+ ),
46
+ );
48
47
  </script>
49
48
 
50
49
  <template>
51
- <syn-badge
52
-
53
- v-bind="visibleProps"
54
- ref="nativeElement"
55
- >
56
- <slot />
50
+ <syn-badge v-bind="visibleProps" ref="nativeElement">
51
+ <slot></slot>
57
52
  </syn-badge>
58
53
  </template>
@@ -37,27 +37,22 @@ const props = defineProps<{
37
37
  * This will not be shown on the screen, but it will be announced by
38
38
  screen readers and other assistive devices to provide more context for users.
39
39
  */
40
- 'label'?: SynBreadcrumb['label'];
40
+ label?: SynBreadcrumb['label'];
41
41
  }>();
42
42
 
43
43
  // Make sure prop binding only forwards the props that are actually there.
44
44
  // This is needed because :param="param" also adds an empty attribute
45
45
  // when using web-components, which breaks optional arguments like size in SynInput
46
46
  // @see https://github.com/vuejs/core/issues/5190#issuecomment-1003112498
47
- const visibleProps = computed(() => Object.fromEntries(
48
- Object
49
- .entries(props)
50
- .filter(([, value]) => typeof value !== 'undefined'),
51
- ));
52
-
47
+ const visibleProps = computed(() =>
48
+ Object.fromEntries(
49
+ Object.entries(props).filter(([, value]) => typeof value !== 'undefined'),
50
+ ),
51
+ );
53
52
  </script>
54
53
 
55
54
  <template>
56
- <syn-breadcrumb
57
-
58
- v-bind="visibleProps"
59
- ref="nativeElement"
60
- >
61
- <slot />
55
+ <syn-breadcrumb v-bind="visibleProps" ref="nativeElement">
56
+ <slot></slot>
62
57
  </syn-breadcrumb>
63
58
  </template>
@@ -43,39 +43,34 @@ const props = defineProps<{
43
43
  internally.
44
44
  * When unset, a button will be rendered instead.
45
45
  */
46
- 'href'?: SynBreadcrumbItem['href'];
46
+ href?: SynBreadcrumbItem['href'];
47
47
 
48
48
  /**
49
- * Tells the browser where to open the link.
50
- * Only used when `href` is set.
51
- */
52
- 'target'?: SynBreadcrumbItem['target'];
49
+ * Tells the browser where to open the link.
50
+ * Only used when `href` is set.
51
+ */
52
+ target?: SynBreadcrumbItem['target'];
53
53
 
54
54
  /**
55
- * The `rel` attribute to use on the link.
56
- * Only used when `href` is set.
57
- */
58
- 'rel'?: SynBreadcrumbItem['rel'];
55
+ * The `rel` attribute to use on the link.
56
+ * Only used when `href` is set.
57
+ */
58
+ rel?: SynBreadcrumbItem['rel'];
59
59
  }>();
60
60
 
61
61
  // Make sure prop binding only forwards the props that are actually there.
62
62
  // This is needed because :param="param" also adds an empty attribute
63
63
  // when using web-components, which breaks optional arguments like size in SynInput
64
64
  // @see https://github.com/vuejs/core/issues/5190#issuecomment-1003112498
65
- const visibleProps = computed(() => Object.fromEntries(
66
- Object
67
- .entries(props)
68
- .filter(([, value]) => typeof value !== 'undefined'),
69
- ));
70
-
65
+ const visibleProps = computed(() =>
66
+ Object.fromEntries(
67
+ Object.entries(props).filter(([, value]) => typeof value !== 'undefined'),
68
+ ),
69
+ );
71
70
  </script>
72
71
 
73
72
  <template>
74
- <syn-breadcrumb-item
75
-
76
- v-bind="visibleProps"
77
- ref="nativeElement"
78
- >
79
- <slot />
73
+ <syn-breadcrumb-item v-bind="visibleProps" ref="nativeElement">
74
+ <slot></slot>
80
75
  </syn-breadcrumb-item>
81
76
  </template>
@@ -32,9 +32,10 @@
32
32
  import { computed, ref } from 'vue';
33
33
  import '@synergy-design-system/components/components/button/button.js';
34
34
 
35
- import type {
36
- SynBlurEvent, SynButton, SynFocusEvent, SynInvalidEvent,
37
- } from '@synergy-design-system/components';
35
+ import type { SynBlurEvent } from '@synergy-design-system/components';
36
+ import type { SynFocusEvent } from '@synergy-design-system/components';
37
+ import type { SynInvalidEvent } from '@synergy-design-system/components';
38
+ import type { SynButton } from '@synergy-design-system/components';
38
39
 
39
40
  // DOM Reference to the element
40
41
  const nativeElement = ref<SynButton>();
@@ -45,33 +46,33 @@ defineExpose({
45
46
 
46
47
  // Map attributes
47
48
  const props = defineProps<{
48
- 'title'?: SynButton['title'];
49
+ title?: SynButton['title'];
49
50
 
50
51
  /**
51
- * The button's theme variant.
52
- */
53
- 'variant'?: SynButton['variant'];
52
+ * The button's theme variant.
53
+ */
54
+ variant?: SynButton['variant'];
54
55
 
55
56
  /**
56
- * The button's size.
57
- */
58
- 'size'?: SynButton['size'];
57
+ * The button's size.
58
+ */
59
+ size?: SynButton['size'];
59
60
 
60
61
  /**
61
- * Draws the button with a caret.
62
- * Used to indicate that the button triggers a dropdown menu or similar behavior.
63
- */
64
- 'caret'?: SynButton['caret'];
62
+ * Draws the button with a caret.
63
+ * Used to indicate that the button triggers a dropdown menu or similar behavior.
64
+ */
65
+ caret?: SynButton['caret'];
65
66
 
66
67
  /**
67
- * Disables the button.
68
- */
69
- 'disabled'?: SynButton['disabled'];
68
+ * Disables the button.
69
+ */
70
+ disabled?: SynButton['disabled'];
70
71
 
71
72
  /**
72
- * Draws the button in a loading state.
73
- */
74
- 'loading'?: SynButton['loading'];
73
+ * Draws the button in a loading state.
74
+ */
75
+ loading?: SynButton['loading'];
75
76
 
76
77
  /**
77
78
  * The type of button.
@@ -79,31 +80,31 @@ const props = defineProps<{
79
80
  `<button>` elements behave.
80
81
  * When the type is `submit`, the button will submit the surrounding form.
81
82
  */
82
- 'type'?: SynButton['type'];
83
+ type?: SynButton['type'];
83
84
 
84
85
  /**
85
86
  * The name of the button, submitted as a name/value pair with form data, but only when this button is the submitter.
86
87
  This attribute is ignored when `href` is present.
87
88
  */
88
- 'name'?: SynButton['name'];
89
+ name?: SynButton['name'];
89
90
 
90
91
  /**
91
92
  * The value of the button, submitted as a pair with the button's name as part of the form data, but only when this
92
93
  button is the submitter.
93
94
  * This attribute is ignored when `href` is present.
94
95
  */
95
- 'value'?: SynButton['value'];
96
+ value?: SynButton['value'];
96
97
 
97
98
  /**
98
- * When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.
99
- */
100
- 'href'?: SynButton['href'];
99
+ * When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.
100
+ */
101
+ href?: SynButton['href'];
101
102
 
102
103
  /**
103
- * Tells the browser where to open the link.
104
- * Only used when `href` is present.
105
- */
106
- 'target'?: SynButton['target'];
104
+ * Tells the browser where to open the link.
105
+ * Only used when `href` is present.
106
+ */
107
+ target?: SynButton['target'];
107
108
 
108
109
  /**
109
110
  * When using `href`, this attribute will map to the underlying link's `rel` attribute.
@@ -114,13 +115,13 @@ specific tab/window, this will prevent that from working correctly.
114
115
  * You can remove or change the default value by
115
116
  setting the attribute to an empty string or a value of your choice, respectively.
116
117
  */
117
- 'rel'?: SynButton['rel'];
118
+ rel?: SynButton['rel'];
118
119
 
119
120
  /**
120
- * Tells the browser to download the linked file as this filename.
121
- * Only used when `href` is present.
122
- */
123
- 'download'?: SynButton['download'];
121
+ * Tells the browser to download the linked file as this filename.
122
+ * Only used when `href` is present.
123
+ */
124
+ download?: SynButton['download'];
124
125
 
125
126
  /**
126
127
  * The "form owner" to associate the button with.
@@ -128,59 +129,59 @@ setting the attribute to an empty string or a value of your choice, respectively
128
129
  * The
129
130
  value of this attribute must be an id of a form in the same document or shadow root as the button.
130
131
  */
131
- 'form'?: SynButton['form'];
132
+ form?: SynButton['form'];
132
133
 
133
134
  /**
134
- * Used to override the form owner's `action` attribute.
135
- */
136
- 'formAction'?: SynButton['formAction'];
135
+ * Used to override the form owner's `action` attribute.
136
+ */
137
+ formAction?: SynButton['formAction'];
137
138
 
138
139
  /**
139
- * Used to override the form owner's `enctype` attribute.
140
- */
141
- 'formEnctype'?: SynButton['formEnctype'];
140
+ * Used to override the form owner's `enctype` attribute.
141
+ */
142
+ formEnctype?: SynButton['formEnctype'];
142
143
 
143
144
  /**
144
- * Used to override the form owner's `method` attribute.
145
- */
146
- 'formMethod'?: SynButton['formMethod'];
145
+ * Used to override the form owner's `method` attribute.
146
+ */
147
+ formMethod?: SynButton['formMethod'];
147
148
 
148
149
  /**
149
- * Used to override the form owner's `novalidate` attribute.
150
- */
151
- 'formNoValidate'?: SynButton['formNoValidate'];
150
+ * Used to override the form owner's `novalidate` attribute.
151
+ */
152
+ formNoValidate?: SynButton['formNoValidate'];
152
153
 
153
154
  /**
154
- * Used to override the form owner's `target` attribute.
155
- */
156
- 'formTarget'?: SynButton['formTarget'];
155
+ * Used to override the form owner's `target` attribute.
156
+ */
157
+ formTarget?: SynButton['formTarget'];
157
158
  }>();
158
159
 
159
160
  // Make sure prop binding only forwards the props that are actually there.
160
161
  // This is needed because :param="param" also adds an empty attribute
161
162
  // when using web-components, which breaks optional arguments like size in SynInput
162
163
  // @see https://github.com/vuejs/core/issues/5190#issuecomment-1003112498
163
- const visibleProps = computed(() => Object.fromEntries(
164
- Object
165
- .entries(props)
166
- .filter(([, value]) => typeof value !== 'undefined'),
167
- ));
164
+ const visibleProps = computed(() =>
165
+ Object.fromEntries(
166
+ Object.entries(props).filter(([, value]) => typeof value !== 'undefined'),
167
+ ),
168
+ );
168
169
 
169
170
  // Map events
170
171
  defineEmits<{
171
172
  /**
172
- * Emitted when the button loses focus.
173
- */
173
+ * Emitted when the button loses focus.
174
+ */
174
175
  'syn-blur': [e: SynBlurEvent];
175
176
 
176
177
  /**
177
- * Emitted when the button gains focus.
178
- */
178
+ * Emitted when the button gains focus.
179
+ */
179
180
  'syn-focus': [e: SynFocusEvent];
180
181
 
181
182
  /**
182
- * Emitted when the form control has been checked for validity and its constraints aren't satisfied.
183
- */
183
+ * Emitted when the form control has been checked for validity and its constraints aren't satisfied.
184
+ */
184
185
  'syn-invalid': [e: SynInvalidEvent];
185
186
  }>();
186
187
  </script>
@@ -193,13 +194,11 @@ export type { SynInvalidEvent } from '@synergy-design-system/components';
193
194
 
194
195
  <template>
195
196
  <syn-button
196
- v-bind="visibleProps"
197
- ref="nativeElement"
198
197
  @syn-blur="$emit('syn-blur', $event)"
199
-
200
198
  @syn-focus="$emit('syn-focus', $event)"
201
199
  @syn-invalid="$emit('syn-invalid', $event)"
202
- >
203
- <slot />
200
+ v-bind="visibleProps"
201
+ ref="nativeElement">
202
+ <slot></slot>
204
203
  </syn-button>
205
204
  </template>
@@ -34,27 +34,22 @@ const props = defineProps<{
34
34
  * This won't be displayed on the screen, but it will be announced by assistive
35
35
  devices when interacting with the control and is strongly recommended.
36
36
  */
37
- 'label'?: SynButtonGroup['label'];
37
+ label?: SynButtonGroup['label'];
38
38
  }>();
39
39
 
40
40
  // Make sure prop binding only forwards the props that are actually there.
41
41
  // This is needed because :param="param" also adds an empty attribute
42
42
  // when using web-components, which breaks optional arguments like size in SynInput
43
43
  // @see https://github.com/vuejs/core/issues/5190#issuecomment-1003112498
44
- const visibleProps = computed(() => Object.fromEntries(
45
- Object
46
- .entries(props)
47
- .filter(([, value]) => typeof value !== 'undefined'),
48
- ));
49
-
44
+ const visibleProps = computed(() =>
45
+ Object.fromEntries(
46
+ Object.entries(props).filter(([, value]) => typeof value !== 'undefined'),
47
+ ),
48
+ );
50
49
  </script>
51
50
 
52
51
  <template>
53
- <syn-button-group
54
-
55
- v-bind="visibleProps"
56
- ref="nativeElement"
57
- >
58
- <slot />
52
+ <syn-button-group v-bind="visibleProps" ref="nativeElement">
53
+ <slot></slot>
59
54
  </syn-button-group>
60
55
  </template>
@@ -42,31 +42,26 @@ defineExpose({
42
42
  // Map attributes
43
43
  const props = defineProps<{
44
44
  /**
45
- * Draws the card with sharp edges.
46
- * Can be used e.g.
47
- * when nesting multiple syn-cards to create hierarchy.
48
- */
49
- 'sharp'?: SynCard['sharp'];
45
+ * Draws the card with sharp edges.
46
+ * Can be used e.g.
47
+ * when nesting multiple syn-cards to create hierarchy.
48
+ */
49
+ sharp?: SynCard['sharp'];
50
50
  }>();
51
51
 
52
52
  // Make sure prop binding only forwards the props that are actually there.
53
53
  // This is needed because :param="param" also adds an empty attribute
54
54
  // when using web-components, which breaks optional arguments like size in SynInput
55
55
  // @see https://github.com/vuejs/core/issues/5190#issuecomment-1003112498
56
- const visibleProps = computed(() => Object.fromEntries(
57
- Object
58
- .entries(props)
59
- .filter(([, value]) => typeof value !== 'undefined'),
60
- ));
61
-
56
+ const visibleProps = computed(() =>
57
+ Object.fromEntries(
58
+ Object.entries(props).filter(([, value]) => typeof value !== 'undefined'),
59
+ ),
60
+ );
62
61
  </script>
63
62
 
64
63
  <template>
65
- <syn-card
66
-
67
- v-bind="visibleProps"
68
- ref="nativeElement"
69
- >
70
- <slot />
64
+ <syn-card v-bind="visibleProps" ref="nativeElement">
65
+ <slot></slot>
71
66
  </syn-card>
72
67
  </template>