@synergy-design-system/mcp 1.41.2 → 2.0.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 (96) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +43 -8
  3. package/dist/build/assets.js +1 -0
  4. package/dist/build/static.js +15 -7
  5. package/dist/build/styles.js +1 -0
  6. package/dist/build/tokens.js +1 -0
  7. package/dist/tools/asset-info.js +4 -4
  8. package/dist/tools/index.d.ts +1 -0
  9. package/dist/tools/index.js +1 -0
  10. package/dist/tools/migration-info.d.ts +10 -1
  11. package/dist/tools/migration-info.js +74 -12
  12. package/dist/tools/migration-list.d.ts +10 -0
  13. package/dist/tools/migration-list.js +122 -0
  14. package/dist/utilities/migration.d.ts +3 -1
  15. package/dist/utilities/migration.js +25 -2
  16. package/metadata/checksum.txt +1 -1
  17. package/metadata/packages/angular/README.md +1 -1
  18. package/metadata/packages/assets/BREAKING_CHANGES.md +305 -0
  19. package/metadata/packages/assets/CHANGELOG.md +18 -0
  20. package/metadata/packages/assets/README.md +39 -22
  21. package/metadata/packages/components/components/syn-alert/component.custom.styles.ts +20 -20
  22. package/metadata/packages/components/components/syn-badge/component.custom.styles.ts +10 -10
  23. package/metadata/packages/components/components/syn-breadcrumb-item/component.custom.styles.ts +1 -1
  24. package/metadata/packages/components/components/syn-button/component.custom.styles.ts +24 -24
  25. package/metadata/packages/components/components/syn-checkbox/component.custom.styles.ts +7 -7
  26. package/metadata/packages/components/components/syn-combobox/component.angular.ts +0 -17
  27. package/metadata/packages/components/components/syn-combobox/component.ts +0 -9
  28. package/metadata/packages/components/components/syn-combobox/component.vue +0 -9
  29. package/metadata/packages/components/components/syn-details/component.custom.styles.ts +1 -1
  30. package/metadata/packages/components/components/syn-dialog/component.custom.styles.ts +1 -1
  31. package/metadata/packages/components/components/syn-dropdown/component.angular.ts +0 -17
  32. package/metadata/packages/components/components/syn-dropdown/component.ts +0 -8
  33. package/metadata/packages/components/components/syn-dropdown/component.vue +0 -9
  34. package/metadata/packages/components/components/syn-file/component.styles.ts +6 -6
  35. package/metadata/packages/components/components/syn-header/component.styles.ts +7 -7
  36. package/metadata/packages/components/components/syn-icon-button/component.custom.styles.ts +8 -8
  37. package/metadata/packages/components/components/syn-input/component.custom.styles.ts +3 -3
  38. package/metadata/packages/components/components/syn-input/component.ts +2 -3
  39. package/metadata/packages/components/components/syn-menu-item/component.custom.styles.ts +11 -11
  40. package/metadata/packages/components/components/syn-nav-item/component.styles.ts +3 -3
  41. package/metadata/packages/components/components/syn-optgroup/component.styles.ts +1 -1
  42. package/metadata/packages/components/components/syn-option/component.custom.styles.ts +13 -13
  43. package/metadata/packages/components/components/syn-popup/component.angular.ts +0 -16
  44. package/metadata/packages/components/components/syn-popup/component.ts +3 -10
  45. package/metadata/packages/components/components/syn-popup/component.vue +0 -10
  46. package/metadata/packages/components/components/syn-progress-bar/component.custom.styles.ts +2 -2
  47. package/metadata/packages/components/components/syn-progress-ring/component.custom.styles.ts +2 -2
  48. package/metadata/packages/components/components/syn-radio/component.custom.styles.ts +7 -7
  49. package/metadata/packages/components/components/syn-range/component.styles.ts +9 -9
  50. package/metadata/packages/components/components/syn-range/component.ts +0 -1
  51. package/metadata/packages/components/components/syn-range-tick/component.styles.ts +1 -1
  52. package/metadata/packages/components/components/syn-select/component.angular.ts +0 -17
  53. package/metadata/packages/components/components/syn-select/component.ts +0 -8
  54. package/metadata/packages/components/components/syn-select/component.vue +0 -9
  55. package/metadata/packages/components/components/syn-side-nav/component.angular.ts +0 -21
  56. package/metadata/packages/components/components/syn-side-nav/component.ts +1 -36
  57. package/metadata/packages/components/components/syn-side-nav/component.vue +0 -13
  58. package/metadata/packages/components/components/syn-spinner/component.custom.styles.ts +2 -2
  59. package/metadata/packages/components/components/syn-switch/component.custom.styles.ts +16 -16
  60. package/metadata/packages/components/components/syn-tab/component.custom.styles.ts +3 -3
  61. package/metadata/packages/components/components/syn-tab-group/component.custom.styles.ts +2 -2
  62. package/metadata/packages/components/components/syn-tag/component.custom.styles.ts +1 -1
  63. package/metadata/packages/components/components/syn-tooltip/component.angular.ts +0 -18
  64. package/metadata/packages/components/components/syn-tooltip/component.ts +1 -10
  65. package/metadata/packages/components/components/syn-tooltip/component.vue +0 -10
  66. package/metadata/packages/components/migration/BREAKING_CHANGES.md +433 -14
  67. package/metadata/packages/components/static/CHANGELOG.md +44 -0
  68. package/metadata/packages/components/static/LIMITATIONS.md +141 -35
  69. package/metadata/packages/styles/BREAKING_CHANGES.md +105 -0
  70. package/metadata/packages/styles/CHANGELOG.md +26 -0
  71. package/metadata/packages/styles/index.css +9 -9
  72. package/metadata/packages/styles/link-list.css +1 -1
  73. package/metadata/packages/styles/link.css +2 -2
  74. package/metadata/packages/styles/tables.css +8 -8
  75. package/metadata/packages/styles/typography.css +1 -1
  76. package/metadata/packages/tokens/BREAKING_CHANGES.md +180 -0
  77. package/metadata/packages/tokens/CHANGELOG.md +18 -0
  78. package/metadata/packages/tokens/README.md +2 -0
  79. package/metadata/packages/tokens/dark.css +237 -236
  80. package/metadata/packages/tokens/index.js +6 -1
  81. package/metadata/packages/tokens/light.css +221 -220
  82. package/metadata/packages/tokens/sick2018_dark.css +4 -3
  83. package/metadata/packages/tokens/sick2018_light.css +4 -3
  84. package/metadata/packages/tokens/sick2025_dark.css +4 -3
  85. package/metadata/packages/tokens/sick2025_light.css +4 -3
  86. package/metadata/static/components/syn-badge/docs.md +2 -14
  87. package/metadata/static/components/syn-popup/docs.md +10 -29
  88. package/metadata/static/components/syn-range/docs.md +1 -1
  89. package/metadata/static/migration/index.md +51 -11
  90. package/metadata/{packages/components/migration/migration-synergy-v3.md → static/migration/v2-2018-to-v2-2025.md} +1 -1
  91. package/metadata/static/migration/v2-2018-to-v3-2018.md +147 -0
  92. package/metadata/static/migration/v2-2018-to-v3-2025.md +150 -0
  93. package/metadata/static/migration/v2-2025-to-v3-2025.md +133 -0
  94. package/metadata/static/templates/appshell.md +8 -8
  95. package/metadata/static/templates/footer.md +1 -1
  96. package/package.json +6 -6
@@ -11,7 +11,7 @@ export default css`
11
11
  }
12
12
 
13
13
  .checkbox__control {
14
- border-radius: var(--syn-checkbox-border-radius, var(--syn-input-border-radius-small));
14
+ border-radius: var(--syn-checkbox-border-radius);
15
15
 
16
16
  /* #1083: This adds spacing around multi-line labels */
17
17
  margin: 0.1em 0;
@@ -20,8 +20,8 @@ export default css`
20
20
  /* Checked/indeterminate */
21
21
  .checkbox--checked .checkbox__control,
22
22
  .checkbox--indeterminate .checkbox__control {
23
- background-color: var(--syn-interactive-emphasis-color, var(--syn-color-primary-600));
24
- border-color: var(--syn-interactive-emphasis-color, var(--syn-color-primary-600));
23
+ background-color: var(--syn-interactive-emphasis-color);
24
+ border-color: var(--syn-interactive-emphasis-color);
25
25
  }
26
26
 
27
27
  :host([data-user-invalid]) .checkbox__control {
@@ -56,8 +56,8 @@ export default css`
56
56
  */
57
57
  .checkbox.checkbox--checked:not(.checkbox--disabled):hover .checkbox__control,
58
58
  .checkbox.checkbox--indeterminate:not(.checkbox--disabled):hover .checkbox__control {
59
- background-color: var(--syn-interactive-emphasis-color-hover, var(--syn-color-primary-900));
60
- border-color: var(--syn-interactive-emphasis-color-hover, var(--syn-color-primary-900));
59
+ background-color: var(--syn-interactive-emphasis-color-hover);
60
+ border-color: var(--syn-interactive-emphasis-color-hover);
61
61
  }
62
62
 
63
63
  /*
@@ -74,8 +74,8 @@ export default css`
74
74
  /* Checked/indeterminate */
75
75
  .checkbox.checkbox--checked:not(.checkbox--disabled):active .checkbox__control,
76
76
  .checkbox.checkbox--indeterminate:not(.checkbox--disabled):active .checkbox__control {
77
- background: var(--syn-interactive-emphasis-color-active, var(--syn-color-primary-900));
78
- border-color: var(--syn-interactive-emphasis-color-active, var(--syn-color-primary-900));
77
+ background: var(--syn-interactive-emphasis-color-active);
78
+ border-color: var(--syn-interactive-emphasis-color-active);
79
79
  }
80
80
 
81
81
  .checkbox__label {
@@ -242,23 +242,6 @@ and `hide()` methods and this attribute will reflect the combobox's open state.
242
242
  return this.nativeElement.open;
243
243
  }
244
244
 
245
- /**
246
- * Enable this option to prevent the listbox from being clipped,
247
- when the component is placed inside a container with `overflow: auto|scroll`.
248
- Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.
249
-
250
- @deprecated This property is deprecated and will be removed in the next major version.
251
- */
252
- @Input()
253
- set hoist(v: '' | SynCombobox['hoist']) {
254
- this._ngZone.runOutsideAngular(
255
- () => (this.nativeElement.hoist = v === '' || v),
256
- );
257
- }
258
- get hoist(): SynCombobox['hoist'] {
259
- return this.nativeElement.hoist;
260
- }
261
-
262
245
  /**
263
246
  * The combobox's label.
264
247
  * If you need to display HTML, use the `label` slot instead.
@@ -169,14 +169,6 @@ export default class SynCombobox extends SynergyElement implements SynergyFormCo
169
169
  */
170
170
  @property({ reflect: true, type: Boolean }) open = false;
171
171
 
172
- /**
173
- * Enable this option to prevent the listbox from being clipped,
174
- * when the component is placed inside a container with `overflow: auto|scroll`.
175
- * Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.
176
- * @deprecated This property is deprecated and will be removed in the next major version.
177
- */
178
- @property({ type: Boolean }) hoist = false;
179
-
180
172
  /** The combobox's label. If you need to display HTML, use the `label` slot instead. */
181
173
  @property() label = '';
182
174
 
@@ -1002,7 +994,6 @@ export default class SynCombobox extends SynergyElement implements SynergyFormCo
1002
994
  'combobox--top': this.placement === 'top',
1003
995
  })}
1004
996
  placement=${`${this.placement}-start`}
1005
- strategy=${this.hoist ? 'fixed' : 'absolute'}
1006
997
  flip
1007
998
  shift
1008
999
  sync="width"
@@ -120,15 +120,6 @@ and `hide()` methods and this attribute will reflect the combobox's open state.
120
120
  */
121
121
  open?: SynCombobox['open'];
122
122
 
123
- /**
124
- * Enable this option to prevent the listbox from being clipped,
125
- when the component is placed inside a container with `overflow: auto|scroll`.
126
- Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.
127
-
128
- @deprecated This property is deprecated and will be removed in the next major version.
129
- */
130
- hoist?: SynCombobox['hoist'];
131
-
132
123
  /**
133
124
  * The combobox's label.
134
125
  * If you need to display HTML, use the `label` slot instead.
@@ -39,7 +39,7 @@ export default css`
39
39
  * we have to adjust the rotation of the icon when the details is open.
40
40
  */
41
41
  .details--open .details__summary-icon {
42
- rotate: var(--syn-details-open-rotation, 360deg);
42
+ rotate: var(--syn-details-open-rotation);
43
43
  }
44
44
 
45
45
  /**
@@ -33,7 +33,7 @@ export default css`
33
33
  /* Overlay Background */
34
34
  .dialog__overlay {
35
35
  /* #946: Add background blur for sick 2025 */
36
- backdrop-filter: blur(var(--syn-overlay-background-blur, 0));
36
+ backdrop-filter: blur(var(--syn-overlay-background-blur));
37
37
  }
38
38
 
39
39
  /**
@@ -154,23 +154,6 @@ dropdowns that allow for multiple interactions.
154
154
  return this.nativeElement.skidding;
155
155
  }
156
156
 
157
- /**
158
- * Enable this option to prevent the panel from being clipped when the component is placed inside a container with
159
- `overflow: auto|scroll`.
160
- * Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.
161
-
162
- @deprecated This property is deprecated and will be removed in the next major version.
163
- */
164
- @Input()
165
- set hoist(v: '' | SynDropdown['hoist']) {
166
- this._ngZone.runOutsideAngular(
167
- () => (this.nativeElement.hoist = v === '' || v),
168
- );
169
- }
170
- get hoist(): SynDropdown['hoist'] {
171
- return this.nativeElement.hoist;
172
- }
173
-
174
157
  /**
175
158
  * Syncs the popup width or height to that of the trigger element.
176
159
  */
@@ -108,13 +108,6 @@ export default class SynDropdown extends SynergyElement {
108
108
  /** The distance in pixels from which to offset the panel along its trigger. */
109
109
  @property({ type: Number }) skidding = 0;
110
110
 
111
- /**
112
- * Enable this option to prevent the panel from being clipped when the component is placed inside a container with
113
- * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.
114
- * @deprecated This property is deprecated and will be removed in the next major version.
115
- */
116
- @property({ type: Boolean }) hoist = false;
117
-
118
111
  /**
119
112
  * Syncs the popup width or height to that of the trigger element.
120
113
  */
@@ -438,7 +431,6 @@ export default class SynDropdown extends SynergyElement {
438
431
  placement=${this.placement}
439
432
  distance=${this.distance}
440
433
  skidding=${this.skidding}
441
- strategy=${this.hoist ? 'fixed' : 'absolute'}
442
434
  flip
443
435
  shift
444
436
  auto-size="vertical"
@@ -84,15 +84,6 @@ dropdowns that allow for multiple interactions.
84
84
  */
85
85
  skidding?: SynDropdown['skidding'];
86
86
 
87
- /**
88
- * Enable this option to prevent the panel from being clipped when the component is placed inside a container with
89
- `overflow: auto|scroll`.
90
- * Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.
91
-
92
- @deprecated This property is deprecated and will be removed in the next major version.
93
- */
94
- hoist?: SynDropdown['hoist'];
95
-
96
87
  /**
97
88
  * Syncs the popup width or height to that of the trigger element.
98
89
  */
@@ -77,13 +77,13 @@ export default css`
77
77
  */
78
78
  .form-control--user-dragging:not([disabled]) .button::part(base) {
79
79
  background: none;
80
- border-color: var(--syn-interactive-emphasis-color-hover, var(--syn-color-primary-900));
81
- color: var(--syn-interactive-emphasis-color-hover, var(--syn-color-primary-900));
80
+ border-color: var(--syn-interactive-emphasis-color-hover);
81
+ color: var(--syn-interactive-emphasis-color-hover);
82
82
  }
83
83
 
84
84
  /* Drop Area */
85
85
  .droparea {
86
- --highlight-color: var(--syn-interactive-emphasis-color, var(--syn-color-primary-600));
86
+ --highlight-color: var(--syn-interactive-emphasis-color);
87
87
 
88
88
  border: var(--syn-input-border-width) dashed var(--syn-input-border-color);
89
89
  border-radius: var(--syn-input-border-radius-medium);
@@ -93,7 +93,7 @@ export default css`
93
93
  }
94
94
 
95
95
  .droparea:focus-visible {
96
- border: var(--syn-input-border-width) dashed var(--syn-interactive-emphasis-color, var(--syn-color-primary-600));
96
+ border: var(--syn-input-border-width) dashed var(--syn-interactive-emphasis-color);
97
97
  outline: var(--syn-focus-ring);
98
98
  outline-offset: var(--syn-focus-ring-offset);
99
99
  }
@@ -161,12 +161,12 @@ export default css`
161
161
 
162
162
  :host(:not([disabled])) .form-control--user-dragging .droparea {
163
163
  background: var(--syn-color-primary-50);
164
- border: var(--syn-input-border-width) solid var(--syn-interactive-emphasis-color, var(--syn-color-primary-600));
164
+ border: var(--syn-input-border-width) solid var(--syn-interactive-emphasis-color);
165
165
  cursor: pointer;
166
166
  }
167
167
 
168
168
  :host(:not([disabled])) .droparea:not(:focus-visible):hover {
169
- --highlight-color: var(--syn-interactive-emphasis-color-hover, var(--syn-color-primary-900));
169
+ --highlight-color: var(--syn-interactive-emphasis-color-hover);
170
170
 
171
171
  border: var(--syn-input-border-width) dashed var(--syn-input-border-color-hover);
172
172
  cursor: pointer;
@@ -7,7 +7,7 @@ export default css`
7
7
 
8
8
  .header {
9
9
  background: var(--syn-panel-background-color);
10
- box-shadow: inset 0 -1px 0 0 var(--syn-header-border-color, var(--syn-color-neutral-400));
10
+ box-shadow: inset 0 -1px 0 0 var(--syn-header-border-color);
11
11
  }
12
12
 
13
13
  /**
@@ -39,7 +39,7 @@ export default css`
39
39
  */
40
40
  .header__logo ::slotted(a),
41
41
  .header__logo ::slotted(a:hover) {
42
- color: var(--syn-logo-color, var(--syn-color-primary-600));
42
+ color: var(--syn-logo-color);
43
43
  }
44
44
 
45
45
  .header__logo ::slotted(a:is(:focus-visible)) {
@@ -52,7 +52,7 @@ export default css`
52
52
  */
53
53
  .header__logo syn-icon,
54
54
  .header__logo syn-icon::part(svg) {
55
- color: var(--syn-logo-color, var(--syn-color-primary-600));
55
+ color: var(--syn-logo-color);
56
56
  height: 32px;
57
57
  width: auto;
58
58
  }
@@ -78,7 +78,7 @@ export default css`
78
78
  }
79
79
 
80
80
  .header__meta-navigation ::slotted(*) {
81
- color: var(--syn-interactive-quiet-color, var(--syn-color-neutral-950));
81
+ color: var(--syn-interactive-quiet-color);
82
82
  display: contents;
83
83
  font-size: var(--syn-font-size-x-large);
84
84
  }
@@ -97,7 +97,7 @@ export default css`
97
97
  align-items: center;
98
98
  background: none;
99
99
  border: none;
100
- color: var(--syn-interactive-quiet-color, var(--syn-color-neutral-950));
100
+ color: var(--syn-interactive-quiet-color);
101
101
  cursor: pointer;
102
102
  display: flex;
103
103
  font-size: var(--syn-font-size-x-large);
@@ -107,11 +107,11 @@ export default css`
107
107
  }
108
108
 
109
109
  .header__burger-menu-toggle:hover {
110
- color: var(--syn-interactive-quiet-color-hover, var(--syn-color-primary-600));
110
+ color: var(--syn-interactive-quiet-color-hover);
111
111
  }
112
112
 
113
113
  .header__burger-menu-toggle:active {
114
- color: var(--syn-interactive-quiet-color-active, var(--syn-color-primary-700));
114
+ color: var(--syn-interactive-quiet-color-active);
115
115
  }
116
116
 
117
117
  .header__burger-menu-toggle:focus-visible {
@@ -16,7 +16,7 @@ export default css`
16
16
 
17
17
  /* Remove round borders */
18
18
  .icon-button:focus-visible {
19
- border-radius: var(--syn-icon-button-focus-ring-border-radius, var(--syn-border-radius-none));
19
+ border-radius: var(--syn-icon-button-focus-ring-border-radius);
20
20
  }
21
21
 
22
22
  /* Colors */
@@ -26,31 +26,31 @@ export default css`
26
26
 
27
27
  :host([color="primary"]),
28
28
  :host([color="primary"]) .icon-button:focus-visible:not(.icon-button--disabled) {
29
- color: var(--syn-interactive-emphasis-color, var(--syn-color-primary-600));
29
+ color: var(--syn-interactive-emphasis-color);
30
30
  }
31
31
 
32
32
  :host([color="primary"]) .icon-button:hover:not(.icon-button--disabled) {
33
- color: var(--syn-interactive-emphasis-color-hover, var(--syn-color-primary-900));
33
+ color: var(--syn-interactive-emphasis-color-hover);
34
34
  }
35
35
 
36
36
  :host([color="primary"]) .icon-button:active:not(.icon-button--disabled) {
37
- color: var(--syn-interactive-emphasis-color-active, var(--syn-color-primary-950));
37
+ color: var(--syn-interactive-emphasis-color-active);
38
38
  }
39
39
 
40
40
  :host([color="neutral"]) {
41
- color: var(--syn-interactive-quiet-color, var(--syn-typography-color-text));
41
+ color: var(--syn-interactive-quiet-color);
42
42
  }
43
43
 
44
44
  :host([color="neutral"]) .icon-button:hover:not(.icon-button--disabled) {
45
- color: var(--syn-interactive-quiet-color-hover, var(--syn-color-primary-600));
45
+ color: var(--syn-interactive-quiet-color-hover);
46
46
  }
47
47
 
48
48
  :host([color="neutral"]) .icon-button:active:not(.icon-button--disabled) {
49
- color: var(--syn-interactive-quiet-color-active, var(--syn-color-primary-700));
49
+ color: var(--syn-interactive-quiet-color-active);
50
50
  }
51
51
 
52
52
  :host([color="neutral"]) .icon-button:focus-visible:not(.icon-button--disabled):not(:hover) {
53
- color: var(--syn-interactive-quiet-color, var(--syn-typography-color-text));
53
+ color: var(--syn-interactive-quiet-color);
54
54
  }
55
55
 
56
56
  /* Sizes */
@@ -225,7 +225,7 @@ export default css`
225
225
  align-items: center;
226
226
  background: none;
227
227
  border: none;
228
- color: var(--syn-interactive-emphasis-color, var(--syn-color-primary-600));
228
+ color: var(--syn-interactive-emphasis-color);
229
229
  cursor: pointer;
230
230
  display: flex;
231
231
  padding: var(--syn-spacing-x-small);
@@ -245,11 +245,11 @@ export default css`
245
245
  }
246
246
 
247
247
  .input__number-stepper-button:hover:not([disabled]) {
248
- color: var(--syn-interactive-emphasis-color-hover, var(--syn-color-primary-900));
248
+ color: var(--syn-interactive-emphasis-color-hover);
249
249
  }
250
250
 
251
251
  .input__number-stepper-button:active:not([disabled]) {
252
- color: var(--syn-interactive-emphasis-color-active, var(--syn-color-primary-950));
252
+ color: var(--syn-interactive-emphasis-color-active);
253
253
  }
254
254
 
255
255
  .input__number-stepper-button[disabled] {
@@ -264,7 +264,7 @@ export default class SynInput extends SynergyElement implements SynergyFormContr
264
264
  type: Number,
265
265
  }) maxFractionDigits: number;
266
266
 
267
- #numericStrategy: NumericStrategy = nativeNumericStrategy;
267
+ #numericStrategy: NumericStrategy = modernNumericStrategy;
268
268
 
269
269
  /**
270
270
  * Defines the strategy for handling numbers in the numeric input.
@@ -305,8 +305,7 @@ export default class SynInput extends SynergyElement implements SynergyFormContr
305
305
  }
306
306
 
307
307
  /**
308
- * @default nativeNumericStrategy
309
- * @todo: This must be changed to "modern" in Synergy@3
308
+ * @default modernNumericStrategy
310
309
  */
311
310
  get numericStrategy(): 'native' | 'modern' | Partial<NumericStrategy> {
312
311
  return this.#numericStrategy;
@@ -31,7 +31,7 @@ export default css`
31
31
  /* Border Radius needs to be increased to cover the outline */
32
32
  border-radius: calc(var(--syn-focus-ring-border-radius) + var(--menuitem-inset-border-vertical));
33
33
  border-width: var(--menuitem-inset-border-horizontal) var(--menuitem-inset-border-vertical);
34
- color: var(--syn-option-color, var(--syn-typography-color-text));
34
+ color: var(--syn-option-color);
35
35
  font-size: var(--menuitem-font-size);
36
36
 
37
37
  /* Height is dependent on line-height of .option__label, which does not fit completely to layout */
@@ -40,7 +40,7 @@ export default css`
40
40
  }
41
41
 
42
42
  :host(:focus-visible) .menu-item {
43
- background-color: var(--syn-option-background-color-active, var(--syn-color-neutral-1000));
43
+ background-color: var(--syn-option-background-color-active);
44
44
  }
45
45
 
46
46
  /** #429: Use token for opacity */
@@ -64,26 +64,26 @@ export default css`
64
64
  */
65
65
  .menu-item .menu-item__prefix::slotted(syn-icon),
66
66
  .menu-item .menu-item__suffix::slotted(syn-icon) {
67
- color: var(--syn-option-icon-color, var(--syn-typography-color-text));
67
+ color: var(--syn-option-icon-color);
68
68
  font-size: var(--syn-font-size-x-large);
69
69
  }
70
70
 
71
71
  :host(:hover) .menu-item .menu-item__prefix::slotted(syn-icon),
72
72
  :host(:hover) .menu-item__suffix::slotted(syn-icon) {
73
- color: var(--syn-option-icon-color-hover, var(--syn-typography-color-text-inverted));
73
+ color: var(--syn-option-icon-color-hover);
74
74
  }
75
75
 
76
76
  :host(:focus-visible) .menu-item .menu-item__prefix::slotted(syn-icon),
77
77
  :host(:focus-visible) .menu-item .menu-item__suffix::slotted(syn-icon) {
78
- color: var(--syn-option-icon-color-active, var(--syn-typography-color-text-inverted));
78
+ color: var(--syn-option-icon-color-active);
79
79
  }
80
80
 
81
81
  /* Adjust background and text color for focused elements */
82
82
  /* stylelint-disable selector-not-notation, plugin/no-unsupported-browser-features */
83
83
  :host(:hover:not([aria-disabled='true'], :focus-visible)) .menu-item,
84
84
  .menu-item--submenu-expanded {
85
- background-color: var(--syn-option-background-color-hover, var(--syn-color-neutral-1000));
86
- color: var(--syn-option-color-hover, var(--syn-typography-color-text-inverted));
85
+ background-color: var(--syn-option-background-color-hover);
86
+ color: var(--syn-option-color-hover);
87
87
  }
88
88
  /* stylelint-enable selector-not-notation, plugin/no-unsupported-browser-features */
89
89
 
@@ -106,7 +106,7 @@ export default css`
106
106
  }
107
107
 
108
108
  .menu-item .menu-item__check {
109
- color: var(--syn-option-check-color, var(--syn-color-primary-600));
109
+ color: var(--syn-option-check-color);
110
110
  margin-inline-end: var(--syn-spacing-small);
111
111
  }
112
112
 
@@ -121,11 +121,11 @@ export default css`
121
121
  * Make sure the checkbox is also visible when the item is active
122
122
  */
123
123
  :host(:focus-visible) .menu-item--checked .menu-item__check {
124
- color: var(--syn-option-check-color-active, var(--syn-color-neutral-0));
124
+ color: var(--syn-option-check-color-active);
125
125
  }
126
126
 
127
127
  :host(:hover) .menu-item--checked .menu-item__check {
128
- color: var(--syn-option-check-color-hover, var(--syn-color-neutral-0));
128
+ color: var(--syn-option-check-color-hover);
129
129
  }
130
130
 
131
131
  /**
@@ -159,7 +159,7 @@ export default css`
159
159
  .menu-item--loading syn-spinner {
160
160
  --track-width: 2px;
161
161
 
162
- color: var(--syn-interactive-emphasis-color, var(--syn-color-primary-700));
162
+ color: var(--syn-interactive-emphasis-color);
163
163
  font-size: var(--syn-font-size-medium);
164
164
  left: calc(var(--menuitem-padding) - var(--menuitem-inset-border-vertical));
165
165
  }
@@ -103,7 +103,7 @@ export default css`
103
103
  * Basic set up for the nav item prefix.
104
104
  */
105
105
  .nav-item:not(.nav-item--disabled)::before {
106
- background: var(--syn-interactive-background-color-hover, var(--syn-color-neutral-50));
106
+ background: var(--syn-interactive-background-color-hover);
107
107
  content: '';
108
108
  display: block;
109
109
  height: 100%;
@@ -127,7 +127,7 @@ export default css`
127
127
  * #443: Add support for active state
128
128
  */
129
129
  .nav-item:not(.nav-item--disabled):active::before {
130
- background: var(--syn-interactive-background-color-active, var(--syn-color-neutral-50));
130
+ background: var(--syn-interactive-background-color-active);
131
131
  opacity: 1;
132
132
  }
133
133
 
@@ -267,7 +267,7 @@ export default css`
267
267
  }
268
268
 
269
269
  .current-indicator--visible {
270
- background: var(--syn-interactive-emphasis-color, var(--syn-color-primary-600));
270
+ background: var(--syn-interactive-emphasis-color);
271
271
  }
272
272
 
273
273
  .nav-item--horizontal .current-indicator {
@@ -51,7 +51,7 @@ export default css`
51
51
 
52
52
  .optgroup__prefix,
53
53
  .optgroup__suffix {
54
- color: var(--syn-option-icon-color, var(--syn-color-neutral-800));
54
+ color: var(--syn-option-icon-color);
55
55
  font-size: var(--syn-spacing-large);
56
56
  }
57
57
 
@@ -36,18 +36,18 @@ export default css`
36
36
  }
37
37
 
38
38
  .option:not(.option--current) {
39
- color: var(--syn-option-color, var(--syn-typography-color-text));
39
+ color: var(--syn-option-color);
40
40
  }
41
41
 
42
42
  .option--current,
43
43
  .option--current.option--hover:not(.option--disabled) {
44
- background-color: var(--syn-option-background-color-active, var(--syn-color-neutral-1000));
45
- color: var(--syn-option-color-active, var(--syn-typography-color-text-inverted));
44
+ background-color: var(--syn-option-background-color-active);
45
+ color: var(--syn-option-color-active);
46
46
  }
47
47
 
48
48
  .option--hover:not(.option--current):not(.option--disabled) {
49
- background-color: var(--syn-option-background-color-hover, var(--syn-color-neutral-1000));
50
- color: var(--syn-option-color-hover, var(--syn-typography-color-text-inverted));
49
+ background-color: var(--syn-option-background-color-hover);
50
+ color: var(--syn-option-color-hover);
51
51
  }
52
52
 
53
53
  /** #429: Use token for opacity */
@@ -56,8 +56,8 @@ export default css`
56
56
  }
57
57
 
58
58
  .option--current.option--disabled {
59
- background-color: var(--syn-option-background-color-hover, var(--syn-color-neutral-1000));
60
- color: var(--syn-option-color-hover, var(--syn-typography-color-text-inverted));
59
+ background-color: var(--syn-option-background-color-hover);
60
+ color: var(--syn-option-color-hover);
61
61
  }
62
62
 
63
63
  .option__label {
@@ -65,7 +65,7 @@ export default css`
65
65
  }
66
66
 
67
67
  .option__check {
68
- color: var(--syn-option-check-color, var(--syn-color-primary-600));
68
+ color: var(--syn-option-check-color);
69
69
  font-size: var(--option-icon-size, var(--syn-spacing-large));
70
70
  }
71
71
 
@@ -75,11 +75,11 @@ export default css`
75
75
 
76
76
  /* Invert the check mark when keyboard navigation is used */
77
77
  .option--current .option__check {
78
- color: var(--syn-option-check-color-active, var(--syn-color-neutral-0));
78
+ color: var(--syn-option-check-color-active);
79
79
  }
80
80
 
81
81
  .option--hover:not(.option--current) .option__check {
82
- color: var(--syn-option-check-color-hover, var(--syn-color-neutral-0));
82
+ color: var(--syn-option-check-color-hover);
83
83
  }
84
84
 
85
85
  /* Use larger spacing between icons and content */
@@ -94,18 +94,18 @@ export default css`
94
94
  /* Set correct icon size when someone uses syn-icon in the slots */
95
95
  .option__prefix::slotted(syn-icon),
96
96
  .option__suffix::slotted(syn-icon) {
97
- color: var(--syn-option-icon-color, var(--syn-typography-color-text));
97
+ color: var(--syn-option-icon-color);
98
98
  font-size: var(--option-icon-size, var(--syn-spacing-large));
99
99
  }
100
100
 
101
101
  .option--hover .option__prefix::slotted(syn-icon),
102
102
  .option--hover .option__suffix::slotted(syn-icon) {
103
- color: var(--syn-option-icon-color-hover, var(--syn-color-neutral-800));
103
+ color: var(--syn-option-icon-color-hover);
104
104
  }
105
105
 
106
106
  .option--current .option__prefix::slotted(syn-icon),
107
107
  .option--current .option__suffix::slotted(syn-icon) {
108
- color: var(--syn-option-icon-color-active, var(--syn-color-neutral-800));
108
+ color: var(--syn-option-icon-color-active);
109
109
  }
110
110
 
111
111
  /* This is needed for the highlight styling of the options in syn-combobox */
@@ -108,22 +108,6 @@ panel inside of the viewport.
108
108
  return this.nativeElement.placement;
109
109
  }
110
110
 
111
- /**
112
- * Determines how the popup is positioned.
113
- * The `absolute` strategy works well in most cases, but if overflow is
114
- clipped, using a `fixed` position strategy can often workaround it.
115
-
116
- @deprecated The strategy property is deprecated and will be removed in future versions.
117
- * Modern browsers support the popover element which is used internally instead.
118
- */
119
- @Input()
120
- set strategy(v: SynPopup['strategy']) {
121
- this._ngZone.runOutsideAngular(() => (this.nativeElement.strategy = v));
122
- }
123
- get strategy(): SynPopup['strategy'] {
124
- return this.nativeElement.strategy;
125
- }
126
-
127
111
  /**
128
112
  * The distance in pixels from which to offset the panel away from its anchor.
129
113
  */
@@ -106,13 +106,6 @@ export default class SynPopup extends SynergyElement {
106
106
  | 'left-start'
107
107
  | 'left-end' = 'top';
108
108
 
109
- /**
110
- * Determines how the popup is positioned. The `absolute` strategy works well in most cases, but if overflow is
111
- * clipped, using a `fixed` position strategy can often workaround it.
112
- * @deprecated The strategy property is deprecated and will be removed in future versions. Modern browsers support the popover element which is used internally instead.
113
- */
114
- @property({ reflect: true }) strategy: 'absolute' | 'fixed' = 'absolute';
115
-
116
109
  /** The distance in pixels from which to offset the panel away from its anchor. */
117
110
  @property({ type: Number }) distance = 0;
118
111
 
@@ -417,14 +410,14 @@ export default class SynPopup extends SynergyElement {
417
410
  // More info: https://github.com/shoelace-style/shoelace/issues/1135
418
411
  //
419
412
  const getOffsetParent =
420
- SUPPORTS_POPOVER || this.strategy === 'absolute'
413
+ SUPPORTS_POPOVER
421
414
  ? (element: Element) => platform.getOffsetParent(element, offsetParent)
422
415
  : platform.getOffsetParent;
423
416
 
424
417
  computePosition(this.anchorEl, this.popup, {
425
418
  placement: this.placement,
426
419
  middleware,
427
- strategy: SUPPORTS_POPOVER ? 'absolute' : this.strategy,
420
+ strategy: SUPPORTS_POPOVER ? 'absolute' : 'fixed',
428
421
  platform: {
429
422
  ...platform,
430
423
  getOffsetParent
@@ -585,7 +578,7 @@ export default class SynPopup extends SynergyElement {
585
578
  class=${classMap({
586
579
  popup: true,
587
580
  'popup--active': this.active,
588
- 'popup--fixed': !SUPPORTS_POPOVER && this.strategy === 'fixed',
581
+ 'popup--fixed': !SUPPORTS_POPOVER,
589
582
  'popup--has-arrow': this.arrow
590
583
  })}
591
584
  >
@@ -72,16 +72,6 @@ panel inside of the viewport.
72
72
  */
73
73
  placement?: SynPopup['placement'];
74
74
 
75
- /**
76
- * Determines how the popup is positioned.
77
- * The `absolute` strategy works well in most cases, but if overflow is
78
- clipped, using a `fixed` position strategy can often workaround it.
79
-
80
- @deprecated The strategy property is deprecated and will be removed in future versions.
81
- * Modern browsers support the popover element which is used internally instead.
82
- */
83
- strategy?: SynPopup['strategy'];
84
-
85
75
  /**
86
76
  * The distance in pixels from which to offset the panel away from its anchor.
87
77
  */