@synergy-design-system/mcp 2.6.1 → 2.7.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 (64) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/utilities/storybook/scraper.js +14 -3
  3. package/metadata/checksum.txt +1 -1
  4. package/metadata/packages/components/components/syn-checkbox/component.angular.ts +13 -0
  5. package/metadata/packages/components/components/syn-checkbox/component.styles.ts +99 -39
  6. package/metadata/packages/components/components/syn-checkbox/component.ts +13 -10
  7. package/metadata/packages/components/components/syn-checkbox/component.vue +5 -0
  8. package/metadata/packages/components/components/syn-combobox/component.angular.ts +13 -0
  9. package/metadata/packages/components/components/syn-combobox/component.styles.ts +216 -193
  10. package/metadata/packages/components/components/syn-combobox/component.ts +68 -39
  11. package/metadata/packages/components/components/syn-combobox/component.vue +5 -0
  12. package/metadata/packages/components/components/syn-file/component.angular.ts +13 -0
  13. package/metadata/packages/components/components/syn-file/component.styles.ts +20 -3
  14. package/metadata/packages/components/components/syn-file/component.ts +19 -5
  15. package/metadata/packages/components/components/syn-file/component.vue +5 -0
  16. package/metadata/packages/components/components/syn-input/component.ts +1 -2
  17. package/metadata/packages/components/components/syn-radio/component.angular.ts +13 -0
  18. package/metadata/packages/components/components/syn-radio/component.styles.ts +91 -29
  19. package/metadata/packages/components/components/syn-radio/component.ts +19 -10
  20. package/metadata/packages/components/components/syn-radio/component.vue +5 -0
  21. package/metadata/packages/components/components/syn-radio-group/component.styles.ts +30 -9
  22. package/metadata/packages/components/components/syn-radio-group/component.ts +61 -32
  23. package/metadata/packages/components/components/syn-range/component.angular.ts +13 -0
  24. package/metadata/packages/components/components/syn-range/component.styles.ts +27 -3
  25. package/metadata/packages/components/components/syn-range/component.ts +17 -5
  26. package/metadata/packages/components/components/syn-range/component.vue +5 -0
  27. package/metadata/packages/components/components/syn-select/component.angular.ts +13 -0
  28. package/metadata/packages/components/components/syn-select/component.styles.ts +222 -151
  29. package/metadata/packages/components/components/syn-select/component.ts +30 -15
  30. package/metadata/packages/components/components/syn-select/component.vue +5 -0
  31. package/metadata/packages/components/components/syn-switch/component.angular.ts +13 -0
  32. package/metadata/packages/components/components/syn-switch/component.styles.ts +145 -63
  33. package/metadata/packages/components/components/syn-switch/component.ts +16 -4
  34. package/metadata/packages/components/components/syn-switch/component.vue +5 -0
  35. package/metadata/packages/components/components/syn-textarea/component.styles.ts +55 -27
  36. package/metadata/packages/components/components/syn-textarea/component.ts +1 -3
  37. package/metadata/packages/components/static/CHANGELOG.md +27 -0
  38. package/metadata/packages/tokens/CHANGELOG.md +22 -0
  39. package/metadata/packages/tokens/dark.css +7 -1
  40. package/metadata/packages/tokens/index.js +31 -1
  41. package/metadata/packages/tokens/light.css +7 -1
  42. package/metadata/packages/tokens/sick2018_dark.css +7 -1
  43. package/metadata/packages/tokens/sick2018_light.css +7 -1
  44. package/metadata/packages/tokens/sick2025_dark.css +7 -1
  45. package/metadata/packages/tokens/sick2025_light.css +7 -1
  46. package/metadata/static/components/syn-checkbox/docs.md +36 -0
  47. package/metadata/static/components/syn-combobox/docs.md +138 -0
  48. package/metadata/static/components/syn-file/docs.md +24 -0
  49. package/metadata/static/components/syn-input/docs.md +1 -1
  50. package/metadata/static/components/syn-radio/docs.md +21 -0
  51. package/metadata/static/components/syn-radio-group/docs.md +46 -0
  52. package/metadata/static/components/syn-range/docs.md +19 -0
  53. package/metadata/static/components/syn-select/docs.md +81 -0
  54. package/metadata/static/components/syn-switch/docs.md +22 -0
  55. package/metadata/static/components/syn-textarea/docs.md +1 -1
  56. package/metadata/static/components/syn-tooltip/docs.md +73 -0
  57. package/package.json +4 -4
  58. package/metadata/packages/components/components/syn-checkbox/component.custom.styles.ts +0 -86
  59. package/metadata/packages/components/components/syn-combobox/component.custom.styles.ts +0 -122
  60. package/metadata/packages/components/components/syn-radio/component.custom.styles.ts +0 -86
  61. package/metadata/packages/components/components/syn-radio-group/component.custom.styles.ts +0 -25
  62. package/metadata/packages/components/components/syn-select/component.custom.styles.ts +0 -175
  63. package/metadata/packages/components/components/syn-switch/component.custom.styles.ts +0 -141
  64. package/metadata/packages/components/components/syn-textarea/component.custom.styles.ts +0 -48
@@ -142,3 +142,76 @@ Set the trigger attribute to click to toggle the tooltip on click instead of
142
142
  >
143
143
  </syn-tooltip>
144
144
  ```
145
+
146
+ ---
147
+
148
+ ## Manual Trigger
149
+
150
+ Tooltips can be controlled programmatically by setting the trigger attribute to manual. Use the open attribute to control when the tooltip is shown.
151
+
152
+ ```html
153
+ <syn-button style="margin-right: 4rem" title="" variant="outline" size="medium"
154
+ >Toggle Manually</syn-button
155
+ >
156
+ <syn-tooltip
157
+ content="This is an avatar"
158
+ trigger="manual"
159
+ class="manual-tooltip"
160
+ open=""
161
+ >
162
+ <syn-icon-button
163
+ name="person"
164
+ label="Person"
165
+ size="medium"
166
+ color="neutral"
167
+ ></syn-icon-button>
168
+ </syn-tooltip>
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Removing Arrows
174
+
175
+ You can control the size of tooltip arrows by overriding the --syn-tooltip-arrow-size design token. To remove them, set the value to 0 as shown below.
176
+
177
+ ```html
178
+ <syn-tooltip
179
+ content="This is a tooltip"
180
+ style="--syn-tooltip-arrow-size: 0"
181
+ open=""
182
+ >
183
+ <syn-button title="" variant="outline" size="medium">No Arrow</syn-button>
184
+ </syn-tooltip>
185
+ ```
186
+
187
+ ---
188
+
189
+ ## HTML In Tooltips
190
+
191
+ Use the content slot to create tooltips with HTML content. Tooltips are designed only for text and presentational elements. Avoid placing interactive content, such as buttons, links, and form controls, in a tooltip.
192
+
193
+ ```html
194
+ <syn-tooltip open="">
195
+ <div slot="content">
196
+ I'm not <strong>just</strong> a tooltip, I'm a <em>tooltip</em> with HTML!
197
+ </div>
198
+
199
+ <syn-button title="" variant="outline" size="medium">Hover me</syn-button>
200
+ </syn-tooltip>
201
+ ```
202
+
203
+ ---
204
+
205
+ ## Setting A Maximum Width
206
+
207
+ Use the --max-width custom property to change the width the tooltip can grow to before wrapping occurs.
208
+
209
+ ```html
210
+ <syn-tooltip
211
+ style="--max-width: 80px"
212
+ content="This tooltip will wrap after only 80 pixels."
213
+ open=""
214
+ >
215
+ <syn-button title="" variant="outline" size="medium">Hover me</syn-button>
216
+ </syn-tooltip>
217
+ ```
package/package.json CHANGED
@@ -29,11 +29,11 @@
29
29
  "ts-jest": "^29.4.6",
30
30
  "typescript": "^5.9.3",
31
31
  "@synergy-design-system/docs": "0.1.0",
32
- "@synergy-design-system/components": "3.4.1",
33
- "@synergy-design-system/fonts": "1.0.3",
34
32
  "@synergy-design-system/eslint-config-syn": "^0.1.0",
33
+ "@synergy-design-system/fonts": "1.0.3",
35
34
  "@synergy-design-system/styles": "2.0.1",
36
- "@synergy-design-system/tokens": "^3.4.1"
35
+ "@synergy-design-system/tokens": "^3.5.0",
36
+ "@synergy-design-system/components": "3.5.0"
37
37
  },
38
38
  "exports": {
39
39
  ".": {
@@ -67,7 +67,7 @@
67
67
  "directory": "packages/mcp"
68
68
  },
69
69
  "type": "module",
70
- "version": "2.6.1",
70
+ "version": "2.7.0",
71
71
  "scripts": {
72
72
  "build": "pnpm run build:ts && pnpm run build:metadata && pnpm build:hash",
73
73
  "build:all": "pnpm run build && pnpm run build:storybook",
@@ -1,86 +0,0 @@
1
- import { css } from 'lit';
2
-
3
- export default css`
4
- .checkbox {
5
- /* #1083: This adds spacing around multi-line labels */
6
- padding: var(--syn-spacing-2x-small) 0;
7
- }
8
-
9
- .checkbox--small {
10
- padding: var(--syn-spacing-3x-small) 0;
11
- }
12
-
13
- .checkbox__control {
14
- border-radius: var(--syn-checkbox-border-radius);
15
-
16
- /* #1083: This adds spacing around multi-line labels */
17
- margin: 0.1em 0;
18
- }
19
-
20
- /* Checked/indeterminate */
21
- .checkbox--checked .checkbox__control,
22
- .checkbox--indeterminate .checkbox__control {
23
- background-color: var(--syn-interactive-emphasis-color);
24
- border-color: var(--syn-interactive-emphasis-color);
25
- }
26
-
27
- :host([data-user-invalid]) .checkbox__control {
28
- background: var(--syn-input-border-color-focus-error);
29
- border-color: var(--syn-input-border-color-focus-error);
30
- }
31
-
32
- /**
33
- * #943: When invalid, use a transparent background if not checked or indeterminate
34
- */
35
- :host([data-user-invalid]:not([checked]):not([indeterminate])) .checkbox__control {
36
- background: transparent;
37
- }
38
-
39
- /** #429: Use token for opacity */
40
- .checkbox--disabled {
41
- opacity: var(--syn-input-disabled-opacity);
42
- }
43
-
44
- /**
45
- * Hover
46
- * Applies the hover state to the whole component
47
- */
48
- .checkbox:not(.checkbox--checked):not(.checkbox--disabled):hover .checkbox__control {
49
- background-color: var(--syn-input-background-color-hover);
50
- border-color: var(--syn-input-border-color-hover);
51
- }
52
-
53
- /**
54
- * Checked/indeterminate + hover
55
- * Applies the hover state to the whole component
56
- */
57
- .checkbox.checkbox--checked:not(.checkbox--disabled):hover .checkbox__control,
58
- .checkbox.checkbox--indeterminate:not(.checkbox--disabled):hover .checkbox__control {
59
- background-color: var(--syn-interactive-emphasis-color-hover);
60
- border-color: var(--syn-interactive-emphasis-color-hover);
61
- }
62
-
63
- /*
64
- * #443: Add active styles
65
- * The checked and unchecked states have different active colors
66
- * Note the fallback is defined to match the hover color.
67
- * This is done to make sure no active state is shown at all if no active color is defined.
68
- * Still better than showing one for the unchecked state but not for the checked state.
69
- */
70
- .checkbox:not(.checkbox--checked):not(.checkbox--disabled):active .checkbox__control {
71
- border-color: var(--syn-input-border-color-active);
72
- }
73
-
74
- /* Checked/indeterminate */
75
- .checkbox.checkbox--checked:not(.checkbox--disabled):active .checkbox__control,
76
- .checkbox.checkbox--indeterminate:not(.checkbox--disabled):active .checkbox__control {
77
- background: var(--syn-interactive-emphasis-color-active);
78
- border-color: var(--syn-interactive-emphasis-color-active);
79
- }
80
-
81
- .checkbox__label {
82
- align-self: center;
83
- line-height: var(--syn-line-height-normal);
84
- margin-inline-start: var(--syn-spacing-x-small);
85
- }
86
- `;
@@ -1,122 +0,0 @@
1
- import { css } from 'lit';
2
- import sharedOptionSize from '../option/option-size.styles.js';
3
-
4
- export default css`
5
-
6
- .combobox__display-input {
7
- flex: 1;
8
- min-width: var(--syn-spacing-2x-large);
9
- width: unset;
10
- }
11
-
12
- .combobox:not(.combobox--disabled) .combobox__display-input {
13
- cursor: text;
14
- }
15
-
16
- .listbox__options ::slotted(syn-option[hidden]),
17
- .listbox__options ::slotted(syn-optgroup[hidden]) {
18
- display: none;
19
- }
20
-
21
- .listbox__no-results {
22
- align-items: center;
23
- color: var(--syn-color-neutral-950);
24
- display: flex;
25
- font: var(--syn-body-medium-regular);
26
- padding: var(--syn-spacing-small) var(--syn-spacing-medium) var(--syn-spacing-small) 52px;
27
- }
28
-
29
- .combobox--small .listbox__no-results {
30
- font-size: var(--syn-input-font-size-small);
31
- min-height: var(--syn-input-height-small);
32
- padding: 0 var(--syn-spacing-small) 0 40px;
33
- }
34
-
35
- .combobox--large .listbox__no-results {
36
- font-size: var(--syn-input-font-size-large);
37
- min-height: var(--syn-input-height-large);
38
- padding: 0 var(--syn-spacing-large) 0 68px;
39
- }
40
-
41
- /* Multi Select */
42
- .combobox__tags {
43
- align-items: center;
44
- display: flex;
45
- flex-wrap: wrap;
46
- margin-inline-start: var(--syn-spacing-2x-small);
47
- }
48
-
49
- .combobox__tags::slotted(syn-tag) {
50
- cursor: pointer !important;
51
- }
52
-
53
- .combobox--disabled .combobox__tags,
54
- .combobox--disabled .combobox__tags::slotted(syn-tag) {
55
- cursor: not-allowed !important;
56
- }
57
-
58
- .combobox--small .combobox__tags {
59
- gap: var(--syn-spacing-2x-small);
60
- }
61
-
62
- .combobox--medium .combobox__tags {
63
- gap: var(--syn-spacing-x-small);
64
- }
65
-
66
- .combobox--large .combobox__tags {
67
- gap: var(--syn-spacing-small);
68
- }
69
-
70
- .combobox--tags-visible.combobox--small .combobox__tags {
71
- margin-inline-end: var(--syn-spacing-x-small);
72
- }
73
-
74
- .combobox--tags-visible.combobox--medium .combobox__tags {
75
- margin-inline-end: var(--syn-input-spacing-small);
76
- }
77
-
78
- .combobox--tags-visible.combobox--large .combobox__tags {
79
- margin-inline-end: var(--syn-input-spacing-medium);
80
- }
81
-
82
- /**
83
- * #850: Allow to measure the size of the combobox.
84
- * This is needed so we can automatically size and truncate the tags in the <syn-combobox multiple> component.
85
- * Scoped to multiple to not break the single select per accident.
86
- * Scoped to when placeholder is not visible to not break the placeholder visualization
87
- */
88
- :host([multiple]) :not(.combobox--placeholder-visible).combobox--tags-visible > .combobox__inputs > .combobox__tags {
89
- min-width: 85px;
90
- overflow: hidden;
91
- }
92
-
93
- :host([multiple]) .combobox__tags > div {
94
- display: contents;
95
- }
96
-
97
- :host([multiple]) .combobox__tags > div > syn-tag {
98
- --syn-tag-position-adjustment: var(--syn-spacing-3x-small);
99
-
100
- max-width: var(--syn-select-tag-max-width);
101
- }
102
-
103
- :host([multiple]) .combobox__tags > div > syn-tag::part(content) {
104
- display: initial;
105
- overflow: hidden;
106
- text-overflow: ellipsis;
107
- white-space: nowrap;
108
- }
109
-
110
- /*
111
- This class is needed to be able to hide the options as long as the popup close animation is running.
112
- As otherwise the listbox would flicker because the options are shown again when the value is reset to empty string.
113
- */
114
- .options__hide {
115
- /* We need to set the slot to something different than display: contents to be able to hide it. Also it should not take any space so we remove the height */
116
- display: block;
117
- height: 0;
118
- opacity: 0;
119
- }
120
-
121
- ${sharedOptionSize}
122
- `;
@@ -1,86 +0,0 @@
1
- import { css } from 'lit';
2
-
3
- export default css`
4
- :host(:focus-visible) .radio__control {
5
- outline: var(--syn-focus-ring);
6
- outline-offset: var(--syn-focus-ring-width);
7
- }
8
-
9
- .radio {
10
- align-items: flex-start;
11
- }
12
-
13
- /** #429: Use token for opacity */
14
- .radio--disabled {
15
- opacity: var(--syn-input-disabled-opacity);
16
- }
17
-
18
- /* Checked */
19
- /* stylelint-disable-next-line no-descending-specificity */
20
- .radio--checked .radio__control {
21
- background-color: var(--syn-interactive-emphasis-color);
22
- border-color: var(--syn-interactive-emphasis-color);
23
- }
24
-
25
- /* Reset original hover */
26
- .radio:not(.radio--checked):not(.radio--disabled) .radio__control:hover {
27
- background: inherit;
28
- border-color: inherit;
29
- }
30
-
31
- /* Checked + hover */
32
- .radio.radio--checked:not(.radio--disabled):hover .radio__control {
33
- background-color: var(--syn-interactive-emphasis-color-hover);
34
- border-color: var(--syn-interactive-emphasis-color-hover);
35
- }
36
-
37
- /* Checked + active */
38
- .radio.radio--checked:not(.radio--disabled):active .radio__control {
39
- background-color: var(--syn-interactive-emphasis-color-active);
40
- border-color: var(--syn-interactive-emphasis-color-active);
41
- }
42
-
43
- /* Not-Checked + Hover */
44
- .radio:not(.radio--checked):not(.radio--disabled):hover .radio__control {
45
- border-color: var(--syn-input-border-color-hover);
46
- }
47
-
48
- /* Not-Checked + active */
49
- .radio:not(.radio--checked):not(.radio--disabled):active .radio__control {
50
- border-color: var(--syn-input-border-color-active);
51
- }
52
-
53
- /* Fix#456: Multi line radio fixes */
54
- .radio__label {
55
- align-self: center;
56
- margin-inline-start: var(--syn-spacing-x-small);
57
- margin-top: -1px;
58
- }
59
-
60
- .radio--small .radio__label {
61
- font: var(--syn-body-small-regular);
62
- }
63
-
64
- .radio--medium .radio__label {
65
- font: var(--syn-body-medium-regular);
66
- }
67
-
68
- .radio--large .radio__label {
69
- font: var(--syn-body-large-regular);
70
- }
71
-
72
- /* /Fix#456 */
73
-
74
- /**
75
- * #920: The new icons are instances in figma.
76
- * The width of the system icon is 12px x 12px, so there is no inner padding.
77
- * To accommodate for this, we need to set the width and height of the icon to 50% to get the same result as before.
78
- */
79
- .radio__checked-icon {
80
- scale: 0.5;
81
- }
82
-
83
- .radio--small .radio__label, .radio--large .radio__label {
84
- margin-inline-start: var(--syn-spacing-x-small);
85
- }
86
- `;
@@ -1,25 +0,0 @@
1
- import { css } from 'lit';
2
-
3
- export default css`
4
- :host([data-user-invalid]) {
5
- --syn-input-border-color: var(--syn-input-border-color-focus-error);
6
- --syn-input-border-color-hover: var(--syn-input-border-color-focus-error);
7
- --syn-color-primary-600: var(--syn-input-border-color-focus-error);
8
- --syn-color-primary-900: var(--syn-color-error-900);
9
- --syn-color-primary-950: var(--syn-color-error-950);
10
- --syn-color-neutral-1000: var(--syn-input-border-color-focus-error);
11
- --syn-interactive-emphasis-color: var(--syn-input-border-color-focus-error);
12
- --syn-interactive-emphasis-color-hover: var(--syn-input-border-color-focus-error);
13
- --syn-interactive-emphasis-color-active: var(--syn-input-border-color-focus-error);
14
- }
15
-
16
- .form-control--has-help-text.form-control--radio-group .form-control__help-text {
17
- margin-top: var(--syn-spacing-x-small);
18
- }
19
-
20
- .form-control-input {
21
- display: flex;
22
- flex-direction: column;
23
- gap: var(--syn-spacing-x-small);
24
- }
25
- `;
@@ -1,175 +0,0 @@
1
- import { css } from 'lit';
2
- import sharedOptionSize from '../option/option-size.styles.js';
3
-
4
- export default css`
5
- /** #429: Use token for opacity */
6
- .select--standard.select--disabled .select__combobox {
7
- opacity: var(--syn-input-disabled-opacity);
8
- }
9
-
10
- /**
11
- * Invalid user data
12
- */
13
- :host([data-user-invalid]) .select__combobox {
14
- border-color: var(--syn-input-border-color-focus-error);
15
- }
16
-
17
- :host([data-user-invalid]) .select--standard:not(.select--disabled).select--open .select__combobox,
18
- :host([data-user-invalid]) .select--standard:not(.select--disabled).select--focused .select__combobox {
19
- border-color: var(--syn-input-border-color-focus-error);
20
- box-shadow: 0 0 0 var(--syn-focus-ring-width) var(--syn-input-focus-ring-error);
21
- }
22
-
23
- /* Clear button */
24
- .select__clear {
25
- color: var(--syn-input-icon-icon-clearable-color);
26
- font-size: var(--syn-spacing-large);
27
- }
28
-
29
- .select--small .select__clear {
30
- font-size: var(--syn-spacing-medium);
31
- }
32
-
33
- .select--large .select__clear {
34
- font-size: var(--syn-spacing-x-large);
35
- }
36
-
37
- .select--medium .select__clear {
38
- margin-inline-start: var(--syn-spacing-small);
39
- }
40
-
41
- /* Expand icon */
42
- .select__expand-icon {
43
- color: var(--syn-color-neutral-950);
44
- margin-inline-start: var(--syn-spacing-small);
45
- }
46
-
47
- .select--small .select__expand-icon {
48
- font-size: var(--syn-spacing-medium);
49
- }
50
-
51
- .select--medium .select__expand-icon {
52
- font-size: var(--syn-spacing-large);
53
- }
54
-
55
- .select--large .select__expand-icon {
56
- font-size: var(--syn-spacing-x-large);
57
- }
58
-
59
- /* Change select border on hover */
60
- /* stylelint-disable-next-line no-descending-specificity */
61
- .select:not(.select--disabled):hover .select__combobox {
62
- border-color: var(--syn-input-border-color-hover);
63
- }
64
-
65
- /* Prefix and Suffix */
66
-
67
- /* Small */
68
- .select--small .select__prefix::slotted(*) {
69
- margin-inline-end: var(--syn-spacing-x-small);
70
- }
71
-
72
- .select--small .select__suffix::slotted(*) {
73
- margin-inline-start: var(--syn-spacing-x-small);
74
- }
75
-
76
- .select--small .select__suffix::slotted(syn-icon),
77
- .select--small .select__prefix::slotted(syn-icon) {
78
- font-size: var(--syn-font-size-medium);
79
- }
80
-
81
- /* Medium */
82
- .select--medium .select__prefix::slotted(*) {
83
- margin-inline-end: var(--syn-input-spacing-small);
84
- }
85
-
86
- .select--medium .select__suffix::slotted(*) {
87
- margin-inline-start: var(--syn-input-spacing-small);
88
- }
89
-
90
- .select--medium .select__suffix::slotted(syn-icon),
91
- .select--medium .select__prefix::slotted(syn-icon) {
92
- font-size: var(--syn-font-size-x-large);
93
- }
94
-
95
- /* Large */
96
- .select--large .select__prefix::slotted(*) {
97
- margin-inline-end: var(--syn-input-spacing-medium);
98
- }
99
-
100
- .select--large .select__suffix::slotted(*) {
101
- margin-inline-start: var(--syn-input-spacing-medium);
102
- }
103
-
104
- .select--large .select__suffix::slotted(syn-icon),
105
- .select--large .select__prefix::slotted(syn-icon) {
106
- font-size: var(--syn-font-size-2x-large);
107
- }
108
-
109
- .select__prefix,
110
- .select__suffix {
111
- color: var(--syn-input-icon-color);
112
- }
113
-
114
- /* Multi Select */
115
- .select__tags {
116
- margin-inline-start: var(--syn-spacing-medium);
117
- }
118
-
119
- .select--small .select__tags {
120
- gap: var(--syn-spacing-2x-small);
121
- }
122
-
123
- .select--medium .select__tags {
124
- gap: var(--syn-spacing-x-small);
125
- }
126
-
127
- .select--large .select__tags {
128
- gap: var(--syn-spacing-small);
129
- }
130
-
131
- /* Listbox */
132
- .select__listbox {
133
- border-radius: var(--syn-input-border-radius-medium);
134
- box-shadow: var(--syn-shadow-medium);
135
- }
136
-
137
- /**
138
- * Make sure to hide the syn-divider for the first syn-optgroup
139
- * Note! ::slotted does currently not work with ::part, so we
140
- * opted for using a css variable here.
141
- */
142
- .select__listbox ::slotted(syn-optgroup:first-of-type) {
143
- --display-divider: none;
144
- }
145
-
146
- /**
147
- * #850: Allow to measure the size of the combobox.
148
- * This is needed so we can automatically size and truncate the tags in the <syn-select multiple> component.
149
- * Scoped to multiple to not break the single select per accident.
150
- * Scoped to when placeholder is not visible to not break the placeholder visualization
151
- */
152
- :host([multiple]) :not(.select--placeholder-visible) > .select__combobox > .select__tags {
153
- min-width: 100px;
154
- overflow: hidden;
155
- }
156
-
157
- :host([multiple]) .select__tags > div {
158
- display: contents;
159
- }
160
-
161
- :host([multiple]) .select__tags > div > syn-tag {
162
- --syn-tag-position-adjustment: var(--syn-spacing-3x-small);
163
-
164
- max-width: var(--syn-select-tag-max-width);
165
- }
166
-
167
- :host([multiple]) .select__tags > div > syn-tag::part(content) {
168
- display: initial;
169
- overflow: hidden;
170
- text-overflow: ellipsis;
171
- white-space: nowrap;
172
- }
173
-
174
- ${sharedOptionSize}
175
- `;