@synergy-design-system/mcp 2.13.4 → 2.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.14.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1252](https://github.com/synergy-design-system/synergy-design-system/pull/1252) [`9d36167`](https://github.com/synergy-design-system/synergy-design-system/commit/9d36167d35ebbdd43820d520140d6823e1331ea1) Thanks [@schilchSICKAG](https://github.com/schilchSICKAG)! - Released on: 2026-04-20
8
+
9
+ fix: 🐛 syn-dialog has broken scrolling when slotting scrollable children (#1249)
10
+
11
+ ## 2.14.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [#1247](https://github.com/synergy-design-system/synergy-design-system/pull/1247) [`b3ab501`](https://github.com/synergy-design-system/synergy-design-system/commit/b3ab50132ec4ab770b79fa32b1334a1054c60746) Thanks [@schilchSICKAG](https://github.com/schilchSICKAG)! - Released on: 2026-04-15
16
+
17
+ feat: ✨ Updates to the Synergy translation System (#452, #1242, #1248)
18
+
19
+ This release adds translations for all officially supported languages, as well as documentation about how to use Synergies translation system.
20
+ It also removes unneeded dependencies from the components package:
21
+ - `@shoelace-style/translate` has reached end of live. We forked the original code to make sure it receives updates in Synergy if needed.
22
+ - `@shoelace-style/animation` was never used internally.
23
+
3
24
  ## 2.13.4
4
25
 
5
26
  ### Patch Changes
@@ -1 +1 @@
1
- d1dbcb89316700587875bfb327172531
1
+ b270e08896f2966f7f6efa8f2dbde907
@@ -1,39 +1,35 @@
1
- /* eslint-disable */
2
1
  import { css } from 'lit';
3
2
 
4
3
  export default css`
5
- /* stylelint-disable */
6
4
  :host {
7
5
  --width: 31rem;
8
- --header-spacing: var(--syn-spacing-large);
9
- --body-spacing: var(--syn-spacing-large);
10
- --footer-spacing: var(--syn-spacing-large);
6
+ --header-spacing: var(--syn-spacing-large) var(--syn-spacing-x-small) var(--syn-spacing-large) var(--syn-spacing-large);
7
+ --body-spacing: var(--syn-spacing-medium) var(--syn-spacing-large);
8
+ --footer-spacing: var(--syn-spacing-medium) var(--syn-spacing-large) var(--syn-spacing-large) var(--syn-spacing-medium);
11
9
 
12
10
  display: contents;
13
11
  }
14
12
 
15
13
  .dialog {
16
- display: flex;
17
14
  align-items: center;
15
+ display: flex;
16
+ inset: 0;
18
17
  justify-content: center;
19
18
  position: fixed;
20
- top: 0;
21
- right: 0;
22
- bottom: 0;
23
- left: 0;
24
19
  z-index: var(--syn-z-index-dialog);
25
20
  }
26
21
 
27
22
  .dialog__panel {
23
+ background-color: var(--syn-panel-background-color);
24
+ border: var(--syn-spacing-4x-small) solid var(--syn-panel-border-color);
25
+ border-radius: var(--syn-border-radius-none);
26
+ box-shadow: var(--syn-shadow-large);
28
27
  display: flex;
29
28
  flex-direction: column;
30
- z-index: 2;
31
- width: var(--width);
32
- max-width: calc(100% - var(--syn-spacing-2x-large));
33
29
  max-height: calc(100% - var(--syn-spacing-2x-large));
34
- background-color: var(--syn-panel-background-color);
35
- border-radius: var(--syn-border-radius-medium);
36
- box-shadow: var(--syn-shadow-x-large);
30
+ max-width: calc(100% - var(--syn-spacing-2x-large));
31
+ width: var(--width);
32
+ z-index: 2;
37
33
  }
38
34
 
39
35
  .dialog__panel:focus {
@@ -41,7 +37,7 @@ export default css`
41
37
  }
42
38
 
43
39
  /* Ensure there's enough vertical padding for phones that don't update vh when chrome appears (e.g. iPhone) */
44
- @media screen and (max-width: 420px) {
40
+ @media screen and (width <= 420px) {
45
41
  .dialog__panel {
46
42
  max-height: 80vh;
47
43
  }
@@ -53,48 +49,62 @@ export default css`
53
49
  }
54
50
 
55
51
  .dialog__header {
56
- flex: 0 0 auto;
57
52
  display: flex;
53
+ flex: 0 0 auto;
58
54
  }
59
55
 
60
56
  .dialog__title {
61
57
  flex: 1 1 auto;
62
58
  font: inherit;
63
- font-size: var(--syn-font-size-large);
64
- line-height: var(--syn-line-height-dense);
65
- padding: var(--header-spacing);
59
+ font-family: var(--syn-font-sans);
60
+ font-size: var(--syn-font-size-x-large);
61
+ font-weight: var(--syn-font-weight-bold);
62
+ line-height: var(--syn-line-height-normal);
66
63
  margin: 0;
64
+ padding: var(--header-spacing);
67
65
  }
68
66
 
69
67
  .dialog__header-actions {
70
- flex-shrink: 0;
68
+ align-items: flex-start;
71
69
  display: flex;
70
+ flex-shrink: 0;
72
71
  flex-wrap: wrap;
72
+ gap: var(--syn-spacing-x-small);
73
73
  justify-content: end;
74
- gap: var(--syn-spacing-2x-small);
75
- padding: 0 var(--header-spacing);
74
+ padding: var(--syn-spacing-large) var(--syn-spacing-small) var(--syn-spacing-large) 0;
75
+ }
76
+
77
+ /**
78
+ * We need this to make sure we are big enough as defined in the layout
79
+ * When omitting this statement, we will get rounding problems via line-height
80
+ */
81
+ .dialog__title,
82
+ .dialog__header-actions {
83
+ min-height: 88px;
76
84
  }
77
85
 
78
86
  .dialog__header-actions syn-icon-button,
79
87
  .dialog__header-actions ::slotted(syn-icon-button) {
80
- flex: 0 0 auto;
81
- display: flex;
82
88
  align-items: center;
83
- font-size: var(--syn-font-size-medium);
89
+ color: var(--syn-color-neutral-950);
90
+ display: flex;
91
+ flex: 0 0 auto;
92
+ font-size: var(--syn-font-size-x-large);
84
93
  }
85
94
 
86
95
  .dialog__body {
87
- flex: 1 1 auto;
88
96
  display: block;
89
- padding: var(--body-spacing);
97
+ flex: 1 1 auto;
90
98
  overflow: auto;
91
99
  -webkit-overflow-scrolling: touch;
100
+ padding: var(--body-spacing);
101
+ will-change: transform; /* #1249: Fixes Chrome scroll issues when using multiple scrollable items as content */
92
102
  }
93
103
 
94
104
  .dialog__footer {
95
105
  flex: 0 0 auto;
96
- text-align: right;
97
106
  padding: var(--footer-spacing);
107
+ text-align: right;
98
108
  }
99
109
 
100
110
  .dialog__footer ::slotted(syn-button:not(:first-of-type)) {
@@ -106,12 +116,10 @@ export default css`
106
116
  }
107
117
 
108
118
  .dialog__overlay {
109
- position: fixed;
110
- top: 0;
111
- right: 0;
112
- bottom: 0;
113
- left: 0;
119
+ backdrop-filter: blur(var(--syn-overlay-background-blur)); /* #946: Add background blur for sick 2025 */
114
120
  background-color: var(--syn-overlay-background-color);
121
+ inset: 0;
122
+ position: fixed;
115
123
  }
116
124
 
117
125
  @media (forced-colors: active) {
@@ -1,14 +1,15 @@
1
- /* eslint-disable */
1
+ /* eslint-disable @typescript-eslint/no-floating-promises */
2
+ import { classMap } from 'lit/directives/class-map.js';
3
+ import { html } from 'lit';
4
+ import { ifDefined } from 'lit/directives/if-defined.js';
5
+ import { property, query } from 'lit/decorators.js';
6
+ import type { CSSResultGroup } from 'lit';
2
7
  import { animateTo, stopAnimations } from '../../internal/animate.js';
3
8
  import { blurActiveElement } from '../../internal/closeActiveElement.js';
4
- import { classMap } from 'lit/directives/class-map.js';
5
9
  import { getAnimation, setDefaultAnimation } from '../../utilities/animation-registry.js';
6
10
  import { HasSlotController } from '../../internal/slot.js';
7
- import { html } from 'lit';
8
- import { ifDefined } from 'lit/directives/if-defined.js';
9
11
  import { LocalizeController } from '../../utilities/localize.js';
10
12
  import { lockBodyScrolling, unlockBodyScrolling } from '../../internal/scroll.js';
11
- import { property, query } from 'lit/decorators.js';
12
13
  import { waitForEvent } from '../../internal/event.js';
13
14
  import { watch } from '../../internal/watch.js';
14
15
  import componentStyles from '../../styles/component.styles.js';
@@ -16,8 +17,6 @@ import Modal from '../../internal/modal.js';
16
17
  import SynergyElement from '../../internal/synergy-element.js';
17
18
  import SynIconButton from '../icon-button/icon-button.component.js';
18
19
  import styles from './dialog.styles.js';
19
- import customStyles from './dialog.custom.styles.js';
20
- import type { CSSResultGroup } from 'lit';
21
20
 
22
21
  /**
23
22
  * @summary Dialogs, sometimes called "modals", appear above the page and require the user's immediate attention.
@@ -70,26 +69,33 @@ import type { CSSResultGroup } from 'lit';
70
69
  * the third-party modal opens. Upon closing, call `modal.deactivateExternal()` to restore Synergy's focus trapping.
71
70
  */
72
71
  export default class SynDialog extends SynergyElement {
73
- static styles: CSSResultGroup = [componentStyles, styles, customStyles];
72
+ static styles: CSSResultGroup = [componentStyles, styles];
73
+
74
74
  static dependencies = {
75
- 'syn-icon-button': SynIconButton
75
+ 'syn-icon-button': SynIconButton,
76
76
  };
77
77
 
78
78
  private readonly hasSlotController = new HasSlotController(this, 'footer');
79
+
79
80
  private readonly localize = new LocalizeController(this);
81
+
80
82
  private originalTrigger: HTMLElement | null;
83
+
81
84
  public modal = new Modal(this);
85
+
82
86
  private closeWatcher: CloseWatcher | null;
83
87
 
84
88
  @query('.dialog') dialog: HTMLElement;
89
+
85
90
  @query('.dialog__panel') panel: HTMLElement;
91
+
86
92
  @query('.dialog__overlay') overlay: HTMLElement;
87
93
 
88
94
  /**
89
95
  * Indicates whether or not the dialog is open. You can toggle this attribute to show and hide the dialog, or you can
90
96
  * use the `show()` and `hide()` methods and this attribute will reflect the dialog's open state.
91
97
  */
92
- @property({ type: Boolean, reflect: true }) open = false;
98
+ @property({ reflect: true, type: Boolean }) open = false;
93
99
 
94
100
  /**
95
101
  * The dialog's label as displayed in the header. You should always include a relevant label even when using
@@ -101,7 +107,7 @@ export default class SynDialog extends SynergyElement {
101
107
  * Disables the header. This will also remove the default close button, so please ensure you provide an easy,
102
108
  * accessible way for users to dismiss the dialog.
103
109
  */
104
- @property({ attribute: 'no-header', type: Boolean, reflect: true }) noHeader = false;
110
+ @property({ attribute: 'no-header', reflect: true, type: Boolean }) noHeader = false;
105
111
 
106
112
  firstUpdated() {
107
113
  this.dialog.hidden = !this.open;
@@ -123,7 +129,7 @@ export default class SynDialog extends SynergyElement {
123
129
  private requestClose(source: 'close-button' | 'keyboard' | 'overlay') {
124
130
  const slRequestClose = this.emit('syn-request-close', {
125
131
  cancelable: true,
126
- detail: { source }
132
+ detail: { source },
127
133
  });
128
134
 
129
135
  if (slRequestClose.defaultPrevented) {
@@ -205,7 +211,7 @@ export default class SynDialog extends SynergyElement {
205
211
  const overlayAnimation = getAnimation(this, 'dialog.overlay.show', { dir: this.localize.dir() });
206
212
  await Promise.all([
207
213
  animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options),
208
- animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options)
214
+ animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options),
209
215
  ]);
210
216
 
211
217
  this.emit('syn-after-show');
@@ -229,7 +235,7 @@ export default class SynDialog extends SynergyElement {
229
235
  }),
230
236
  animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options).then(() => {
231
237
  this.panel.hidden = true;
232
- })
238
+ }),
233
239
  ]);
234
240
 
235
241
  this.dialog.hidden = true;
@@ -271,13 +277,14 @@ export default class SynDialog extends SynergyElement {
271
277
  }
272
278
 
273
279
  render() {
280
+ /* eslint-disable lit-a11y/click-events-have-key-events */
274
281
  return html`
275
282
  <div
276
283
  part="base"
277
284
  class=${classMap({
278
285
  dialog: true,
286
+ 'dialog--has-footer': this.hasSlotController.test('footer'),
279
287
  'dialog--open': this.open,
280
- 'dialog--has-footer': this.hasSlotController.test('footer')
281
288
  })}
282
289
  >
283
290
  <div part="overlay" class="dialog__overlay" @click=${() => this.requestClose('overlay')} tabindex="-1"></div>
@@ -324,36 +331,37 @@ export default class SynDialog extends SynergyElement {
324
331
  </div>
325
332
  </div>
326
333
  `;
334
+ /* eslint-enable lit-a11y/click-events-have-key-events */
327
335
  }
328
336
  }
329
337
 
330
338
  setDefaultAnimation('dialog.show', {
331
339
  keyframes: [
332
340
  { opacity: 0, scale: 0.8 },
333
- { opacity: 1, scale: 1 }
341
+ { opacity: 1, scale: 1 },
334
342
  ],
335
- options: { duration: 250, easing: 'ease' }
343
+ options: { duration: 250, easing: 'ease' },
336
344
  });
337
345
 
338
346
  setDefaultAnimation('dialog.hide', {
339
347
  keyframes: [
340
348
  { opacity: 1, scale: 1 },
341
- { opacity: 0, scale: 0.8 }
349
+ { opacity: 0, scale: 0.8 },
342
350
  ],
343
- options: { duration: 250, easing: 'ease' }
351
+ options: { duration: 250, easing: 'ease' },
344
352
  });
345
353
 
346
354
  setDefaultAnimation('dialog.denyClose', {
347
355
  keyframes: [{ scale: 1 }, { scale: 1.02 }, { scale: 1 }],
348
- options: { duration: 250 }
356
+ options: { duration: 250 },
349
357
  });
350
358
 
351
359
  setDefaultAnimation('dialog.overlay.show', {
352
360
  keyframes: [{ opacity: 0 }, { opacity: 1 }],
353
- options: { duration: 250 }
361
+ options: { duration: 250 },
354
362
  });
355
363
 
356
364
  setDefaultAnimation('dialog.overlay.hide', {
357
365
  keyframes: [{ opacity: 1 }, { opacity: 0 }],
358
- options: { duration: 250 }
366
+ options: { duration: 250 },
359
367
  });
@@ -1,5 +1,34 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.11.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1252](https://github.com/synergy-design-system/synergy-design-system/pull/1252) [`9d36167`](https://github.com/synergy-design-system/synergy-design-system/commit/9d36167d35ebbdd43820d520140d6823e1331ea1) Thanks [@schilchSICKAG](https://github.com/schilchSICKAG)! - Released on: 2026-04-20
8
+
9
+ fix: 🐛 syn-dialog has broken scrolling when slotting scrollable children (#1249)
10
+
11
+ - Updated dependencies []:
12
+ - @synergy-design-system/tokens@3.11.1
13
+
14
+ ## 3.11.0
15
+
16
+ ### Minor Changes
17
+
18
+ - [#1247](https://github.com/synergy-design-system/synergy-design-system/pull/1247) [`b3ab501`](https://github.com/synergy-design-system/synergy-design-system/commit/b3ab50132ec4ab770b79fa32b1334a1054c60746) Thanks [@schilchSICKAG](https://github.com/schilchSICKAG)! - Released on: 2026-04-15
19
+
20
+ feat: ✨ Updates to the Synergy translation System (#452, #1242, #1248)
21
+
22
+ This release adds translations for all officially supported languages, as well as documentation about how to use Synergies translation system.
23
+ It also removes unneeded dependencies from the components package:
24
+ - `@shoelace-style/translate` has reached end of live. We forked the original code to make sure it receives updates in Synergy if needed.
25
+ - `@shoelace-style/animation` was never used internally.
26
+
27
+ ### Patch Changes
28
+
29
+ - Updated dependencies []:
30
+ - @synergy-design-system/tokens@3.11.0
31
+
3
32
  ## 3.10.5
4
33
 
5
34
  ### Patch Changes
@@ -71,62 +100,6 @@
71
100
  This release adds the possiblity to use `<syn-divider>` as a separator between items in the `<syn-header>` metanavigation.
72
101
  It will automatically set the correct `height` on vertically aligned `<syn-dividers>`.
73
102
 
74
- You may use it via:
75
-
76
- ```html
77
- <syn-header label="App Name">
78
- <nav slot="meta-navigation">
79
- <syn-icon-button
80
- name="settings_outline"
81
- label="Settings"
82
- ></syn-icon-button>
83
- <syn-icon-button
84
- name="insert_chart_outlined"
85
- label="Analytics"
86
- ></syn-icon-button>
87
- <syn-divider vertical></syn-divider>
88
- <syn-icon-button name="dark_mode" label="Dark Mode"></syn-icon-button>
89
- <syn-divider vertical></syn-divider>
90
- <syn-icon-button name="language" label="Language"></syn-icon-button>
91
- <syn-icon-button name="login" label="Login"></syn-icon-button>
92
- </nav>
93
- </syn-header>
94
- ```
95
-
96
- or via directly slotting the `<syn-divider>` via
97
-
98
- ```html
99
- <syn-header label="App Name">
100
- <syn-icon-button
101
- slot="meta-navigation"
102
- name="settings_outline"
103
- label="Settings"
104
- ></syn-icon-button>
105
- <syn-icon-button
106
- slot="meta-navigation"
107
- name="insert_chart_outlined"
108
- label="Analytics"
109
- ></syn-icon-button>
110
- <syn-divider vertical slot="meta-navigation"></syn-divider>
111
- <syn-icon-button
112
- slot="meta-navigation"
113
- name="dark_mode"
114
- label="Dark Mode"
115
- ></syn-icon-button>
116
- <syn-divider vertical slot="meta-navigation"></syn-divider>
117
- <syn-icon-button
118
- slot="meta-navigation"
119
- name="language"
120
- label="Language"
121
- ></syn-icon-button>
122
- <syn-icon-button
123
- slot="meta-navigation"
124
- name="login"
125
- label="Login"
126
- ></syn-icon-button>
127
- </syn-header>
128
- ```
129
-
130
103
  `<syn-header>` now also exposes a new `cssproperty` `--metanavigation-item-size` that can be used to define the size of rendered `<syn-icon-buttons>`, as well as the height of `<syn-divider>`
131
104
 
132
105
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @synergy-design-system/styles version 2.0.2
2
+ * @synergy-design-system/styles version 2.0.3
3
3
  * SICK Global UX Foundation
4
4
  */
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @synergy-design-system/styles version 2.0.2
2
+ * @synergy-design-system/styles version 2.0.3
3
3
  * SICK Global UX Foundation
4
4
  */
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @synergy-design-system/styles version 2.0.2
2
+ * @synergy-design-system/styles version 2.0.3
3
3
  * SICK Global UX Foundation
4
4
  */
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @synergy-design-system/styles version 2.0.2
2
+ * @synergy-design-system/styles version 2.0.3
3
3
  * SICK Global UX Foundation
4
4
  */
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @synergy-design-system/styles version 2.0.2
2
+ * @synergy-design-system/styles version 2.0.3
3
3
  * SICK Global UX Foundation
4
4
  */
5
5
  /**
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.11.1
4
+
5
+ ## 3.11.0
6
+
3
7
  ## 3.10.5
4
8
 
5
9
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @synergy-design-system/tokens version 3.10.4
2
+ * @synergy-design-system/tokens version 3.11.0
3
3
  * SICK Global UX Foundation
4
4
  * Do not edit directly, this file was auto-generated.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @synergy-design-system/tokens version 3.10.4
2
+ * @synergy-design-system/tokens version 3.11.0
3
3
  * SICK Global UX Foundation
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @synergy-design-system/tokens version 3.10.4
2
+ * @synergy-design-system/tokens version 3.11.0
3
3
  * SICK Global UX Foundation
4
4
  * Do not edit directly, this file was auto-generated.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @synergy-design-system/tokens version 3.10.4
2
+ * @synergy-design-system/tokens version 3.11.0
3
3
  * SICK Global UX Foundation
4
4
  * Do not edit directly, this file was auto-generated.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @synergy-design-system/tokens version 3.10.4
2
+ * @synergy-design-system/tokens version 3.11.0
3
3
  * SICK Global UX Foundation
4
4
  * Do not edit directly, this file was auto-generated.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @synergy-design-system/tokens version 3.10.4
2
+ * @synergy-design-system/tokens version 3.11.0
3
3
  * SICK Global UX Foundation
4
4
  * Do not edit directly, this file was auto-generated.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @synergy-design-system/tokens version 3.10.4
2
+ * @synergy-design-system/tokens version 3.11.0
3
3
  * SICK Global UX Foundation
4
4
  * Do not edit directly, this file was auto-generated.
5
5
  */
@@ -0,0 +1,279 @@
1
+ ## Dynamically Set Localizations
2
+
3
+ This example shows how to dynamically set localizations for Synergy components. This can be useful if you want to allow users to change the language of your application on the fly.
4
+
5
+ ```html
6
+ <!-- .synergy-demo-application -->
7
+ <div id="localization-demo-story" class="synergy-demo-application">
8
+ <!-- header -->
9
+ <syn-header label="Localization Demo" sticky="" burger-menu="hidden">
10
+ <!-- meta-navigation -->
11
+ <nav slot="meta-navigation">
12
+ <syn-dropdown placement="bottom-start">
13
+ <div slot="trigger">
14
+ <syn-tooltip content="Change language" placement="bottom">
15
+ <syn-icon-button
16
+ color="neutral"
17
+ name="language"
18
+ label="Choose language"
19
+ size="inherit"
20
+ ></syn-icon-button>
21
+ </syn-tooltip>
22
+ </div>
23
+ <syn-menu role="menu">
24
+ <syn-menu-item
25
+ type="checkbox"
26
+ value="cs"
27
+ role="menuitemcheckbox"
28
+ aria-checked="false"
29
+ aria-disabled="false"
30
+ tabindex="0"
31
+ >Čeština</syn-menu-item
32
+ >
33
+
34
+ <syn-menu-item
35
+ type="checkbox"
36
+ value="da"
37
+ role="menuitemcheckbox"
38
+ aria-checked="false"
39
+ aria-disabled="false"
40
+ tabindex="-1"
41
+ >Dansk</syn-menu-item
42
+ >
43
+
44
+ <syn-menu-item
45
+ type="checkbox"
46
+ checked=""
47
+ value="de"
48
+ role="menuitemcheckbox"
49
+ aria-checked="true"
50
+ aria-disabled="false"
51
+ tabindex="-1"
52
+ >Deutsch</syn-menu-item
53
+ >
54
+
55
+ <syn-menu-item
56
+ type="checkbox"
57
+ value="en"
58
+ role="menuitemcheckbox"
59
+ aria-checked="false"
60
+ aria-disabled="false"
61
+ tabindex="-1"
62
+ >English</syn-menu-item
63
+ >
64
+
65
+ <syn-menu-item
66
+ type="checkbox"
67
+ value="es"
68
+ role="menuitemcheckbox"
69
+ aria-checked="false"
70
+ aria-disabled="false"
71
+ tabindex="-1"
72
+ >Español</syn-menu-item
73
+ >
74
+
75
+ <syn-menu-item
76
+ type="checkbox"
77
+ value="fi"
78
+ role="menuitemcheckbox"
79
+ aria-checked="false"
80
+ aria-disabled="false"
81
+ tabindex="-1"
82
+ >Suomi</syn-menu-item
83
+ >
84
+
85
+ <syn-menu-item
86
+ type="checkbox"
87
+ value="fr"
88
+ role="menuitemcheckbox"
89
+ aria-checked="false"
90
+ aria-disabled="false"
91
+ tabindex="-1"
92
+ >Français</syn-menu-item
93
+ >
94
+
95
+ <syn-menu-item
96
+ type="checkbox"
97
+ value="it"
98
+ role="menuitemcheckbox"
99
+ aria-checked="false"
100
+ aria-disabled="false"
101
+ tabindex="-1"
102
+ >Italian</syn-menu-item
103
+ >
104
+
105
+ <syn-menu-item
106
+ type="checkbox"
107
+ value="ja"
108
+ role="menuitemcheckbox"
109
+ aria-checked="false"
110
+ aria-disabled="false"
111
+ tabindex="-1"
112
+ >日本語</syn-menu-item
113
+ >
114
+
115
+ <syn-menu-item
116
+ type="checkbox"
117
+ value="ko"
118
+ role="menuitemcheckbox"
119
+ aria-checked="false"
120
+ aria-disabled="false"
121
+ tabindex="-1"
122
+ >한국어</syn-menu-item
123
+ >
124
+
125
+ <syn-menu-item
126
+ type="checkbox"
127
+ value="nl"
128
+ role="menuitemcheckbox"
129
+ aria-checked="false"
130
+ aria-disabled="false"
131
+ tabindex="-1"
132
+ >Nederlands</syn-menu-item
133
+ >
134
+
135
+ <syn-menu-item
136
+ type="checkbox"
137
+ value="pl"
138
+ role="menuitemcheckbox"
139
+ aria-checked="false"
140
+ aria-disabled="false"
141
+ tabindex="-1"
142
+ >Polski</syn-menu-item
143
+ >
144
+
145
+ <syn-menu-item
146
+ type="checkbox"
147
+ value="pt-BR"
148
+ role="menuitemcheckbox"
149
+ aria-checked="false"
150
+ aria-disabled="false"
151
+ tabindex="-1"
152
+ >Português (Brasil)</syn-menu-item
153
+ >
154
+
155
+ <syn-menu-item
156
+ type="checkbox"
157
+ value="ru"
158
+ role="menuitemcheckbox"
159
+ aria-checked="false"
160
+ aria-disabled="false"
161
+ tabindex="-1"
162
+ >Русский</syn-menu-item
163
+ >
164
+
165
+ <syn-menu-item
166
+ type="checkbox"
167
+ value="sv"
168
+ role="menuitemcheckbox"
169
+ aria-checked="false"
170
+ aria-disabled="false"
171
+ tabindex="-1"
172
+ >Svenska</syn-menu-item
173
+ >
174
+
175
+ <syn-menu-item
176
+ type="checkbox"
177
+ value="tr"
178
+ role="menuitemcheckbox"
179
+ aria-checked="false"
180
+ aria-disabled="false"
181
+ tabindex="-1"
182
+ >Türkçe</syn-menu-item
183
+ >
184
+
185
+ <syn-menu-item
186
+ type="checkbox"
187
+ value="zh-cn"
188
+ role="menuitemcheckbox"
189
+ aria-checked="false"
190
+ aria-disabled="false"
191
+ tabindex="-1"
192
+ >简体中文</syn-menu-item
193
+ >
194
+
195
+ <syn-menu-item
196
+ type="checkbox"
197
+ value="zh-tw"
198
+ role="menuitemcheckbox"
199
+ aria-checked="false"
200
+ aria-disabled="false"
201
+ tabindex="-1"
202
+ >正體中文</syn-menu-item
203
+ >
204
+ </syn-menu>
205
+ </syn-dropdown>
206
+ </nav>
207
+ <!-- /meta-navigation -->
208
+ </syn-header>
209
+ <!-- /header -->
210
+
211
+ <!-- .synergy-demo-content -->
212
+ <div class="synergy-demo-content">
213
+ <main class="synergy-demo-main">
214
+ <syn-card shadow="">
215
+ <h1 class="syn-heading--3x-large">
216
+ Current selected language:
217
+ <span>Deutsch</span>
218
+ </h1>
219
+ <p>
220
+ The following example demonstrates the usage of the
221
+ <code>&lt;syn-file&gt;</code> component with different language
222
+ settings. The first item will adapt to the currently selected
223
+ language, while the second one uses a fixed
224
+ <code>lang="en"</code> attribute, making it fixed to English
225
+ regardless of the selected language.
226
+ </p>
227
+ <p>
228
+ Try changing the language using the dropdown in the header to see how
229
+ the first file input updates its translations accordingly.
230
+ </p>
231
+ <div class="form">
232
+ <syn-file droparea="" size="medium" form=""></syn-file>
233
+ <syn-file droparea="" lang="en" size="medium" form=""></syn-file>
234
+ </div>
235
+ </syn-card>
236
+ </main>
237
+ <!-- /.synergy-demo-main -->
238
+ </div>
239
+ <!-- /.synergy-demo-content -->
240
+ </div>
241
+ <!-- /.synergy-demo-application -->
242
+
243
+ <style>
244
+ body {
245
+ margin: 0 !important;
246
+ padding: 0 !important;
247
+ }
248
+
249
+ .synergy-demo-application {
250
+ display: flex;
251
+ flex-direction: column;
252
+ }
253
+
254
+ .synergy-demo-content {
255
+ background: var(--syn-page-background-color-muted);
256
+ }
257
+
258
+ .synergy-demo-main {
259
+ display: flex;
260
+ flex-direction: column;
261
+ font: var(--syn-body-medium);
262
+ margin: var(--syn-spacing-medium);
263
+
264
+ h1 {
265
+ margin: 0 0 var(--syn-spacing-medium);
266
+ }
267
+
268
+ .form {
269
+ display: flex;
270
+ flex-direction: row;
271
+ gap: var(--syn-spacing-medium);
272
+
273
+ syn-file {
274
+ flex-basis: calc(50% - var(--syn-spacing-medium) / 2);
275
+ }
276
+ }
277
+ }
278
+ </style>
279
+ ```
package/package.json CHANGED
@@ -28,12 +28,12 @@
28
28
  "serve-handler": "^6.1.7",
29
29
  "ts-jest": "^29.4.6",
30
30
  "typescript": "^5.9.3",
31
+ "@synergy-design-system/components": "3.11.1",
32
+ "@synergy-design-system/docs": "0.1.0",
31
33
  "@synergy-design-system/eslint-config-syn": "^0.1.0",
32
- "@synergy-design-system/components": "3.10.5",
33
- "@synergy-design-system/tokens": "^3.10.5",
34
34
  "@synergy-design-system/fonts": "1.0.5",
35
- "@synergy-design-system/docs": "0.1.0",
36
- "@synergy-design-system/styles": "2.0.3"
35
+ "@synergy-design-system/styles": "2.0.3",
36
+ "@synergy-design-system/tokens": "^3.11.1"
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.13.4",
70
+ "version": "2.14.1",
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,60 +0,0 @@
1
- import { css } from 'lit';
2
-
3
- export default css`
4
- :host {
5
- /**
6
- * Used as the default padding for the dialog title
7
- */
8
- --header-spacing: var(--syn-spacing-large) var(--syn-spacing-x-small) var(--syn-spacing-large) var(--syn-spacing-large);
9
-
10
- /**
11
- * Defines the default body spacing
12
- */
13
- --body-spacing: var(--syn-spacing-medium) var(--syn-spacing-large);
14
-
15
- /**
16
- * Defines the default footer spacing
17
- */
18
- --footer-spacing: var(--syn-spacing-medium) var(--syn-spacing-large) var(--syn-spacing-large) var(--syn-spacing-medium);
19
- }
20
-
21
- .dialog__panel {
22
- border: var(--syn-spacing-4x-small) solid var(--syn-panel-border-color);
23
- border-radius: var(--syn-border-radius-none);
24
- box-shadow: var(--syn-shadow-large);
25
- }
26
-
27
- .dialog__header-actions {
28
- align-items: flex-start;
29
- gap: var(--syn-spacing-x-small);
30
- padding: var(--syn-spacing-large) var(--syn-spacing-small) var(--syn-spacing-large) 0;
31
- }
32
-
33
- /* Overlay Background */
34
- .dialog__overlay {
35
- /* #946: Add background blur for sick 2025 */
36
- backdrop-filter: blur(var(--syn-overlay-background-blur));
37
- }
38
-
39
- /**
40
- * We need this to make sure we are big enough as defined in the layout
41
- * When omitting this statement, we will get rounding problems via line-height
42
- */
43
- .dialog__title,
44
- .dialog__header-actions {
45
- min-height: 88px;
46
- }
47
-
48
- .dialog__header-actions syn-icon-button,
49
- .dialog__header-actions ::slotted(syn-icon-button) {
50
- color: var(--syn-color-neutral-950);
51
- font-size: var(--syn-font-size-x-large);
52
- }
53
-
54
- .dialog__title {
55
- font-family: var(--syn-font-sans);
56
- font-size: var(--syn-font-size-x-large);
57
- font-weight: var(--syn-font-weight-bold);
58
- line-height: var(--syn-line-height-normal);
59
- }
60
- `;