@synergy-design-system/metadata 3.16.1 → 3.18.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 (99) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/data/core/component/component:syn-button-group.json +0 -5
  3. package/data/core/component/component:syn-button.json +3 -3
  4. package/data/core/component/component:syn-chart.json +147 -2
  5. package/data/core/component/component:syn-radio-button.json +123 -14
  6. package/data/core/component/component:syn-radio-group.json +11 -0
  7. package/data/core/setup/setup:angular-components-module.json +1 -1
  8. package/data/core/setup/setup:angular-forms-module.json +1 -1
  9. package/data/core/setup/setup:angular-package.json +2 -2
  10. package/data/core/setup/setup:angular-validators-module.json +1 -1
  11. package/data/core/setup/setup:components-package.json +2 -2
  12. package/data/core/setup/setup:react-package.json +2 -2
  13. package/data/core/setup/setup:tokens-package.json +2 -2
  14. package/data/core/setup/setup:vue-package.json +2 -2
  15. package/data/core/token/token:tokens-charts-js-index-d-ts.json +1 -1
  16. package/data/core/token/token:tokens-charts-js-index-js.json +1 -1
  17. package/data/core/token/token:tokens-charts-scss-tokens-scss.json +1 -1
  18. package/data/core/token/token:tokens-charts-themes-sick2025-dark-css.json +1 -1
  19. package/data/core/token/token:tokens-charts-themes-sick2025-light-css.json +1 -1
  20. package/data/core/token/token:tokens-figma-variables-sick2018-dark-json.json +1 -1
  21. package/data/core/token/token:tokens-figma-variables-sick2018-light-json.json +1 -1
  22. package/data/core/token/token:tokens-figma-variables-sick2025-dark-json.json +1 -1
  23. package/data/core/token/token:tokens-figma-variables-sick2025-light-json.json +1 -1
  24. package/data/core/token/token:tokens-js-index-d-ts.json +1 -1
  25. package/data/core/token/token:tokens-js-index-js.json +1 -1
  26. package/data/core/token/token:tokens-scss-tokens-scss.json +1 -1
  27. package/data/core/token/token:tokens-themes-sick2018-dark-css.json +1 -1
  28. package/data/core/token/token:tokens-themes-sick2018-light-css.json +1 -1
  29. package/data/core/token/token:tokens-themes-sick2025-dark-css.json +1 -1
  30. package/data/core/token/token:tokens-themes-sick2025-light-css.json +1 -1
  31. package/data/index.json +3 -2
  32. package/data/layers/examples/component/component:syn-chart.md +115 -106
  33. package/data/layers/examples/component/component:syn-checkbox.md +16 -2
  34. package/data/layers/examples/component/component:syn-combobox.md +10 -21
  35. package/data/layers/examples/component/component:syn-file.md +16 -10
  36. package/data/layers/examples/component/component:syn-input.md +10 -3
  37. package/data/layers/examples/component/component:syn-radio-button.md +200 -0
  38. package/data/layers/examples/component/component:syn-radio-group.md +27 -2
  39. package/data/layers/examples/component/component:syn-radio.md +12 -5
  40. package/data/layers/examples/component/component:syn-range.md +16 -14
  41. package/data/layers/examples/component/component:syn-select.md +10 -3
  42. package/data/layers/examples/component/component:syn-switch.md +10 -3
  43. package/data/layers/examples/component/component:syn-textarea.md +10 -3
  44. package/data/layers/full/component/component:syn-button/components/button-group.styles.ts +66 -0
  45. package/data/layers/full/component/component:syn-button/components/button.component.ts +40 -52
  46. package/data/layers/full/component/component:syn-button/components/button.styles.ts +162 -173
  47. package/data/layers/full/component/component:syn-button-group/components/button-group.component.ts +22 -18
  48. package/data/layers/full/component/component:syn-button-group/components/button-group.styles.ts +0 -2
  49. package/data/layers/full/component/component:syn-chart/angular/chart.component.ts +11 -5
  50. package/data/layers/full/component/component:syn-chart/components/chart.component.ts +67 -20
  51. package/data/layers/full/component/component:syn-chart/components/chart.palettes.ts +59 -59
  52. package/data/layers/full/component/component:syn-chart/components/types.ts +47 -4
  53. package/data/layers/full/component/component:syn-chart/react/chart.ts +1 -1
  54. package/data/layers/full/component/component:syn-chart/vue/SynVueChart.vue +11 -5
  55. package/data/layers/full/component/component:syn-radio-button/angular/radio-button.component.ts +14 -14
  56. package/data/layers/full/component/component:syn-radio-button/components/radio-button.component.ts +45 -25
  57. package/data/layers/full/component/component:syn-radio-button/components/radio-button.styles.ts +87 -25
  58. package/data/layers/full/component/component:syn-radio-button/react/radio-button.ts +1 -1
  59. package/data/layers/full/component/component:syn-radio-button/vue/SynVueRadioButton.vue +6 -6
  60. package/data/layers/full/component/component:syn-radio-group/components/radio-group.component.ts +23 -11
  61. package/data/layers/full/component/component:syn-radio-group/components/radio-group.styles.ts +51 -6
  62. package/data/layers/full/setup/setup:angular-package/angular/CHANGELOG.md +38 -0
  63. package/data/layers/full/setup/setup:angular-package/angular/package.json +1 -1
  64. package/data/layers/full/setup/setup:components-package/components/CHANGELOG.md +36 -0
  65. package/data/layers/full/setup/setup:components-package/components/package.json +1 -1
  66. package/data/layers/full/setup/setup:react-package/react/CHANGELOG.md +28 -0
  67. package/data/layers/full/setup/setup:react-package/react/package.json +1 -1
  68. package/data/layers/full/setup/setup:react-package/react/syn-jsx-elements.ts +4 -4
  69. package/data/layers/full/setup/setup:tokens-package/tokens/CHANGELOG.md +31 -0
  70. package/data/layers/full/setup/setup:tokens-package/tokens/package.json +1 -1
  71. package/data/layers/full/setup/setup:vue-package/vue/CHANGELOG.md +38 -0
  72. package/data/layers/full/setup/setup:vue-package/vue/package.json +1 -1
  73. package/data/layers/full/tokens/charts/js/index.d.ts +275 -265
  74. package/data/layers/full/tokens/charts/js/index.js +143 -133
  75. package/data/layers/full/tokens/charts/scss/_tokens.scss +135 -133
  76. package/data/layers/full/tokens/charts/themes/sick2025_dark.css +135 -133
  77. package/data/layers/full/tokens/charts/themes/sick2025_light.css +135 -133
  78. package/data/layers/full/tokens/figma-variables/sick2018-dark.json +20 -0
  79. package/data/layers/full/tokens/figma-variables/sick2018-light.json +20 -0
  80. package/data/layers/full/tokens/figma-variables/sick2025-dark.json +20 -0
  81. package/data/layers/full/tokens/figma-variables/sick2025-light.json +20 -0
  82. package/data/layers/full/tokens/js/index.d.ts +31 -1
  83. package/data/layers/full/tokens/js/index.js +31 -1
  84. package/data/layers/full/tokens/scss/_tokens.scss +7 -1
  85. package/data/layers/full/tokens/themes/sick2018_dark.css +7 -1
  86. package/data/layers/full/tokens/themes/sick2018_light.css +7 -1
  87. package/data/layers/full/tokens/themes/sick2025_dark.css +7 -1
  88. package/data/layers/full/tokens/themes/sick2025_light.css +7 -1
  89. package/data/layers/interface/component/component:syn-chart.json +5 -5
  90. package/data/layers/interface/component/component:syn-chart.md +4 -4
  91. package/data/layers/interface/component/component:syn-radio-button.json +14 -12
  92. package/data/layers/interface/component/component:syn-radio-button.md +6 -4
  93. package/data/layers/rules/component/component:syn-radio-button.md +16 -11
  94. package/data/manifest.json +1 -1
  95. package/dist/intentPolicy/domains/input/capabilities.js +4 -0
  96. package/dist/intentPolicy/domains/input/patterns.js +9 -0
  97. package/package.json +5 -5
  98. package/data/layers/full/component/component:syn-button/components/button.custom.styles.ts +0 -245
  99. package/data/layers/full/component/component:syn-button-group/components/button-group.custom.styles.ts +0 -5
@@ -6,7 +6,7 @@
6
6
  "fieldName": "palette",
7
7
  "name": "palette",
8
8
  "reflects": true,
9
- "type": "SynChartPalette"
9
+ "type": "ChartPalette"
10
10
  }
11
11
  ],
12
12
  "cssParts": [
@@ -30,19 +30,19 @@
30
30
  {
31
31
  "access": "public",
32
32
  "default": "{}",
33
- "description": "The ECharts configuration option object.\n\nThis property maps 1:1 to the ECharts `option` parameter passed to `setOption()`.\nConsult the [ECharts option documentation](https://echarts.apache.org/en/option.html)\nand assign the object directly to this property.\n\n> **Note:** Currently only **line charts** (`series[].type: 'line'`) are supported.\n> Support for additional chart types (bar, pie, etc.) will be added in future releases or can be requested.\n\nAssigning a new object completely replaces the previous chart configuration (`notMerge: true`).\nTo update only parts of the chart, access the underlying ECharts instance directly and\ncall `setOption()` with custom merge options.",
33
+ "description": "The ECharts configuration input.\n\nThis property accepts either:\n- a plain `ECConfig` object, or\n- a callback that receives a typed preset handle and applies chart presets.\n\nThe resolved result maps 1:1 to the ECharts `option` parameter passed to\n`setOption()`.\nConsult the [ECharts option documentation](https://echarts.apache.org/en/option.html)\nand assign either the object directly or build it through the handle.\n\n> **Note:** Currently only **line charts** (`series[].type: 'line'`) are supported.\n> Support for additional chart types (bar, pie, etc.) will be added in future releases or can be requested.\n\nAssigning a new config input completely replaces the previous chart\nconfiguration (`notMerge: true`).\nTo update only parts of the chart, access the underlying ECharts instance directly and\ncall `setOption()` with custom merge options.",
34
34
  "name": "config",
35
- "type": "ECConfig"
35
+ "type": "ChartConfigType"
36
36
  },
37
37
  {
38
38
  "access": "public",
39
39
  "default": "'categorical'",
40
40
  "description": "The color palette to apply to chart series.\n\n- `categorical` (default) — 12 distinct colors for comparing unrelated data series\n- `sequential-01` … `sequential-07` — 10-step single-hue ramps:\n `01`=primary, `02`=accent, `03`=muted, `04`=purple, `05`=teal, `06`=magenta, `07`=neutral\n- `sequential-status-critical`, `sequential-status-error`, `sequential-status-info`,\n `sequential-status-success`, `sequential-status-warning` — 10-step status ramps\n\nThe palette sets the ECharts `color` array. If `config.color` is explicitly provided,\nit takes precedence over the palette.",
41
41
  "name": "palette",
42
- "type": "SynChartPalette"
42
+ "type": "ChartPalette"
43
43
  }
44
44
  ],
45
- "since": "0.0.0",
45
+ "since": "3.15.0",
46
46
  "slots": [],
47
47
  "sourceModulePath": "components/chart/chart.js",
48
48
  "status": "experimental",
@@ -17,7 +17,7 @@ The `<syn-chart>` component is a container for displaying charts. It provides a
17
17
  ## Usage Information
18
18
 
19
19
  - **Status:** experimental
20
- - **Since:** 0.0.0
20
+ - **Since:** 3.15.0
21
21
 
22
22
  ## Available Properties
23
23
 
@@ -25,16 +25,16 @@ The `<syn-chart>` component is a container for displaying charts. It provides a
25
25
 
26
26
  attribute: -
27
27
  reflects: -
28
- type: `ECConfig`
28
+ type: `ChartConfigType`
29
29
  default: `{}`
30
30
 
31
- The ECharts configuration option object. This property maps 1:1 to the ECharts `option` parameter passed to `setOption()`. Consult the [ECharts option documentation](https://echarts.apache.org/en/option.html) and assign the object directly to this property. > **Note:** Currently only **line charts** (`series[].type: 'line'`) are supported. > Support for additional chart types (bar, pie, etc.) will be added in future releases or can be requested. Assigning a new object completely replaces the previous chart configuration (`notMerge: true`). To update only parts of the chart, access the underlying ECharts instance directly and call `setOption()` with custom merge options.
31
+ The ECharts configuration input. This property accepts either: - a plain `ECConfig` object, or - a callback that receives a typed preset handle and applies chart presets. The resolved result maps 1:1 to the ECharts `option` parameter passed to `setOption()`. Consult the [ECharts option documentation](https://echarts.apache.org/en/option.html) and assign either the object directly or build it through the handle. > **Note:** Currently only **line charts** (`series[].type: 'line'`) are supported. > Support for additional chart types (bar, pie, etc.) will be added in future releases or can be requested. Assigning a new config input completely replaces the previous chart configuration (`notMerge: true`). To update only parts of the chart, access the underlying ECharts instance directly and call `setOption()` with custom merge options.
32
32
 
33
33
  ### palette
34
34
 
35
35
  attribute: `palette`
36
36
  reflects: yes
37
- type: `SynChartPalette`
37
+ type: `ChartPalette`
38
38
  default: `'categorical'`
39
39
 
40
40
  The color palette to apply to chart series. - `categorical` (default) — 12 distinct colors for comparing unrelated data series - `sequential-01` … `sequential-07` — 10-step single-hue ramps: `01`=primary, `02`=accent, `03`=muted, `04`=purple, `05`=teal, `06`=magenta, `07`=neutral - `sequential-status-critical`, `sequential-status-error`, `sequential-status-info`, `sequential-status-success`, `sequential-status-warning` — 10-step status ramps The palette sets the ECharts `color` array. If `config.color` is explicitly provided, it takes precedence over the palette.
@@ -10,9 +10,9 @@
10
10
  },
11
11
  {
12
12
  "default": "false",
13
- "description": "Draws a pill-style radio button with rounded edges.",
14
- "fieldName": "pill",
15
- "name": "pill",
13
+ "description": "Sets the radio button to a readonly state.",
14
+ "fieldName": "readonly",
15
+ "name": "readonly",
16
16
  "reflects": true,
17
17
  "type": "boolean"
18
18
  },
@@ -72,6 +72,8 @@
72
72
  "type": "SynFocusEvent"
73
73
  }
74
74
  ],
75
+ "figmaComponentId": "47863-30109",
76
+ "figmaDocsId": "49697-83768",
75
77
  "methods": [
76
78
  {
77
79
  "description": "Removes focus from the radio button.",
@@ -95,6 +97,12 @@
95
97
  }
96
98
  ],
97
99
  "properties": [
100
+ {
101
+ "access": "public",
102
+ "description": "",
103
+ "name": "defaultSlot",
104
+ "type": "HTMLSlotElement"
105
+ },
98
106
  {
99
107
  "access": "public",
100
108
  "default": "false",
@@ -109,12 +117,6 @@
109
117
  "name": "hasFocus",
110
118
  "type": "boolean"
111
119
  },
112
- {
113
- "access": "public",
114
- "description": "",
115
- "name": "hiddenInput",
116
- "type": "HTMLInputElement"
117
- },
118
120
  {
119
121
  "access": "public",
120
122
  "description": "",
@@ -124,8 +126,8 @@
124
126
  {
125
127
  "access": "public",
126
128
  "default": "false",
127
- "description": "Draws a pill-style radio button with rounded edges.",
128
- "name": "pill",
129
+ "description": "Sets the radio button to a readonly state.",
130
+ "name": "readonly",
129
131
  "type": "boolean"
130
132
  },
131
133
  {
@@ -142,7 +144,7 @@
142
144
  "type": "string | number"
143
145
  }
144
146
  ],
145
- "since": "1.0.0",
147
+ "since": "3.17.0",
146
148
  "slots": [
147
149
  {
148
150
  "description": "The radio button's label.",
@@ -7,6 +7,8 @@ Radios buttons allow the user to select a single option from a group using a but
7
7
  ## Documentation
8
8
 
9
9
  - [Component Documentation](https://synergy-design-system.github.io/?path=/docs/components-syn-radio-button--docs)
10
+ - [Figma Examples](https://www.figma.com/file/bZFqk9urD3NlghGUKrkKCR/Synergy-Digital-Design-System?type=design&node-id=49697-83768)
11
+ - [Figma Component](https://www.figma.com/design/bZFqk9urD3NlghGUKrkKCR/Synergy-Digital-Design-System?node-id=47863-30109)
10
12
 
11
13
  ## Class Information
12
14
 
@@ -16,7 +18,7 @@ Radios buttons allow the user to select a single option from a group using a but
16
18
  ## Usage Information
17
19
 
18
20
  - **Status:** stable
19
- - **Since:** 1.0.0
21
+ - **Since:** 3.17.0
20
22
 
21
23
  ## Available Slots
22
24
 
@@ -35,14 +37,14 @@ default: `false`
35
37
 
36
38
  Disables the radio button.
37
39
 
38
- ### pill
40
+ ### readonly
39
41
 
40
- attribute: `pill`
42
+ attribute: `readonly`
41
43
  reflects: yes
42
44
  type: `boolean`
43
45
  default: `false`
44
46
 
45
- Draws a pill-style radio button with rounded edges.
47
+ Sets the radio button to a readonly state.
46
48
 
47
49
  ### size
48
50
 
@@ -6,22 +6,26 @@ Radios buttons allow the user to select a single option from a group using a but
6
6
 
7
7
  ## Common Use Cases
8
8
 
9
- - Select one option from a group where one is already preselected.
10
- - Switch between groups of settings.
11
- - Filter views by a parent category.
9
+ - Filter or switch between views with button-style appearance and icon support.
10
+ - Select one option from a group where one is already preselected and no invalid state exists.
11
+ - Switch between groups of settings with visual button presentation.
12
+ - Display categorization choices with prominent, icon-enhanced options.
13
+ - Preference or mode selection in UI controls where traditional form input is not needed.
12
14
 
13
15
  ## Usage Guidelines
14
16
 
15
- ### Background
17
+ ### When to Use
16
18
 
17
- - Use with light background options such as white, neutral-100, or primary-100.
19
+ - Use syn-radio-button when you need button-style appearance for single option selection.
20
+ - Use syn-radio for traditional radio button appearance.
21
+ - Both work as form inputs when slotted inside syn-radio-group; the difference is visual presentation.
22
+ - Choose syn-radio-button for use cases like filtering, view switching, or category selection where button styling enhances UX.
23
+ - Slot inside syn-radio-group to participate in form submission and group state management.
24
+ - Use only in groups, as they are designed to allow the user to activate one of several options. For single options, use syn-checkbox instead.
18
25
 
19
26
  ### Behavior
20
27
 
21
- - Don't use as input method in forms, for they are not form elements. Use syn-radio instead.
22
- - Slot inside of an syn-radio-group.
23
- - Use only in groups, as they are designed to allow the user to activate one of several options. To work with a single option, use syn-checkbox instead.
24
- - Pre-select always a "default" value; there is no invalid state.
28
+ - Always pre-select a "default" value. There is no invalid state; one option must always be selected.
25
29
  - Limit the number of options in the group. Users should be able to retain all options available and not be overwhelmed by them.
26
30
 
27
31
  ### Content
@@ -36,8 +40,9 @@ Radios buttons allow the user to select a single option from a group using a but
36
40
 
37
41
  ## Accessibility
38
42
 
39
- - Provide meaningful alternative text for icon-only radio buttons.
40
- - Communicate the group's function-such as filtering or view switching-through clear context or labels.
43
+ - Provide meaningful alternative text for icon-only radio buttons using the label attribute.
44
+ - Communicate the group's functionsuch as filtering or view switchingthrough clear context or labels.
45
+ - Ensure each button option has a unique, non-ambiguous label to help assistive technology users understand their choices.
41
46
 
42
47
  ## Related Components
43
48
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "builtAt": "2026-06-24T08:51:18.865Z",
2
+ "builtAt": "2026-06-30T12:09:05.534Z",
3
3
  "sources": [
4
4
  {
5
5
  "entityCount": 4,
@@ -27,6 +27,10 @@ export const inputCapabilities = [
27
27
  categories: ['input'],
28
28
  target: { id: 'component:syn-radio-group', kind: 'component', name: 'syn-radio-group' },
29
29
  },
30
+ {
31
+ categories: ['input'],
32
+ target: { id: 'component:syn-radio-button', kind: 'component', name: 'syn-radio-button' },
33
+ },
30
34
  {
31
35
  categories: ['input'],
32
36
  target: { id: 'component:syn-file', kind: 'component', name: 'syn-file' },
@@ -75,6 +75,15 @@ export const inputPatterns = [
75
75
  notes: ['Provide one default selected option as recommended in component usage rules.'],
76
76
  target: { id: 'component:syn-radio-group', kind: 'component', name: 'syn-radio-group' },
77
77
  },
78
+ {
79
+ description: 'Single selectable option used within a radio-button group.',
80
+ intent: 'input.selection.single',
81
+ notes: [
82
+ 'Use inside syn-radio-group to provide one explicit selection among related options.',
83
+ 'Provide a default selected value at group level, as recommended in component usage rules.',
84
+ ],
85
+ target: { id: 'component:syn-radio-button', kind: 'component', name: 'syn-radio-button' },
86
+ },
78
87
  {
79
88
  description: 'File attachment or upload control with optional multi-file mode.',
80
89
  intent: 'input.file.upload',
package/package.json CHANGED
@@ -22,12 +22,12 @@
22
22
  "serve-handler": "^6.1.7",
23
23
  "typescript": "^5.9.3",
24
24
  "zod": "^4.4.3",
25
- "@synergy-design-system/components": "3.15.7",
26
- "@synergy-design-system/eslint-config-syn": "^0.1.0",
27
- "@synergy-design-system/fonts": "1.0.8",
28
25
  "@synergy-design-system/docs": "0.1.0",
26
+ "@synergy-design-system/eslint-config-syn": "^0.1.0",
27
+ "@synergy-design-system/components": "3.17.0",
29
28
  "@synergy-design-system/styles": "2.1.2",
30
- "@synergy-design-system/tokens": "^3.15.7"
29
+ "@synergy-design-system/tokens": "^3.17.0",
30
+ "@synergy-design-system/fonts": "1.0.8"
31
31
  },
32
32
  "exports": {
33
33
  ".": {
@@ -70,7 +70,7 @@
70
70
  },
71
71
  "types": "./dist/index.d.ts",
72
72
  "type": "module",
73
- "version": "3.16.1",
73
+ "version": "3.18.0",
74
74
  "scripts": {
75
75
  "build:all": "METADATA_LOG_LEVEL=info pnpm run build:ts && RUN_STORYBOOK_SCRAPER=true pnpm run build:data",
76
76
  "build": "METADATA_LOG_LEVEL=info pnpm run build:ts && pnpm run build:data",
@@ -1,245 +0,0 @@
1
- import { css } from 'lit';
2
-
3
- export default css`
4
- .button {
5
- font-weight: var(--syn-font-weight-bold);
6
- }
7
-
8
- .button:focus-visible {
9
- outline: var(--syn-focus-ring-color) solid var(--syn-focus-ring-width);
10
- outline-offset: var(--syn-focus-ring-width);
11
- }
12
-
13
- /** #429: Use token for opacity */
14
- .button--disabled {
15
- opacity: var(--syn-input-disabled-opacity);
16
- }
17
-
18
- /*
19
- * Adjustments for button label paddings
20
- * @see https://github.com/synergy-design-system/synergy-design-system/issues/243
21
- */
22
- .button--has-prefix.button--small .button__label {
23
- padding-inline-start: var(--syn-spacing-2x-small);
24
- }
25
-
26
- .button--has-suffix.button--small .button__label,
27
- .button--caret.button--small .button__label {
28
- padding-inline-end: var(--syn-spacing-2x-small);
29
- }
30
-
31
- .button--has-prefix.button--medium .button__label {
32
- padding-inline-start: var(--syn-spacing-x-small);
33
- }
34
-
35
- .button--has-suffix.button--medium .button__label,
36
- .button--caret.button--medium .button__label {
37
- padding-inline-end: var(--syn-spacing-x-small);
38
- }
39
-
40
- /**
41
- * Icon-only buttons
42
- */
43
- .button--small .button__label.button__icon-only {
44
- padding: 0 calc(var(--syn-spacing-x-small) + var(--syn-spacing-4x-small));
45
- }
46
-
47
- .button--small .button__label::slotted(syn-icon) {
48
- font-size: var(--syn-font-size-medium);
49
- vertical-align: -3px;
50
- }
51
-
52
- .button--medium .button__label.button__icon-only {
53
- padding: 0 calc(var(--syn-spacing-small) - var(--syn-spacing-4x-small));
54
- }
55
-
56
- .button--medium .button__label::slotted(syn-icon) {
57
- font-size: var(--syn-font-size-x-large);
58
- vertical-align: -6px;
59
- }
60
-
61
- .button--large .button__label.button__icon-only {
62
- padding: 0 calc(var(--syn-spacing-medium) - var(--syn-spacing-4x-small));
63
- }
64
-
65
- .button--large .button__label::slotted(syn-icon) {
66
- font-size: var(--syn-font-size-2x-large);
67
- vertical-align: -8px;
68
- }
69
-
70
- /**
71
- * Size modifiers
72
- */
73
- .button--small {
74
- border-radius: var(--syn-button-border-radius-small);
75
- }
76
-
77
- .button--medium {
78
- border-radius: var(--syn-button-border-radius-medium);
79
- }
80
-
81
- .button--large {
82
- border-radius: var(--syn-button-border-radius-large);
83
- }
84
-
85
- /*
86
- * Standard buttons
87
- */
88
- .button--filled.button--primary {
89
- background: var(--syn-button-color);
90
- border-color: var(--syn-button-color);
91
- color: var(--syn-button-filled-color-text);
92
- }
93
-
94
- .button--filled.button--primary.button--disabled {
95
- background-color: var(--syn-color-neutral-600);
96
- border-color: var(--syn-color-neutral-600);
97
- color: var(--syn-typography-color-text-inverted);
98
- }
99
-
100
- .button--filled.button--primary:hover:not(.button--disabled) {
101
- background-color: var(--syn-button-color-hover);
102
- border-color: var(--syn-button-color-hover);
103
- color: var(--syn-button-filled-color-text-hover);
104
- }
105
-
106
- .button--filled.button--primary:active:not(.button--disabled) {
107
- background-color: var(--syn-button-color-active);
108
- border-color: var(--syn-button-color-active);
109
- color: var(--syn-button-filled-color-text-active);
110
- }
111
-
112
- /*
113
- * Outline buttons
114
- */
115
- .button--outline {
116
- /** #901: Use token for border width */
117
- border-width: var(--syn-input-border-width);
118
- }
119
-
120
- .button--outline.button--primary {
121
- border-color: var(--syn-button-color);
122
- color: var(--syn-button-outline-color-text);
123
- }
124
-
125
- .button--outline.button--primary.button--disabled {
126
- background: none;
127
- border-color: var(--syn-color-neutral-600);
128
- color: var(--syn-color-neutral-600);
129
- }
130
-
131
- .button--outline.button--primary:hover:not(.button--disabled),
132
- .button--outline.button--primary.button--checked:not(.button--disabled) {
133
- background-color: var(--syn-button-outline-color-hover);
134
- border-color: var(--syn-button-outline-color-hover);
135
- color: var(--syn-button-outline-color-text-hover);
136
- }
137
-
138
- .button--outline.button--primary:active:not(.button--disabled) {
139
- background-color: var(--syn-button-outline-color-active);
140
- border-color: var(--syn-button-outline-color-active);
141
- color: var(--syn-button-outline-color-text-active);
142
- }
143
-
144
- /*
145
- * Text buttons
146
- */
147
- .button--text {
148
- color: var(--syn-button-text-color-text);
149
- }
150
-
151
- .button--text:hover:not(.button--disabled) {
152
- color: var(--syn-button-text-color-text-hover);
153
- }
154
-
155
- .button--text:focus-visible:not(.button--disabled) {
156
- color: var(--syn-button-color);
157
- }
158
-
159
- .button--text.button--primary:active:not(.button--disabled) {
160
- color: var(--syn-button-text-color-text-active);
161
- }
162
-
163
- .button--text.button--primary.button--disabled {
164
- color: var(--syn-color-neutral-600);
165
- }
166
-
167
- /**
168
- * Button spacing
169
- */
170
- .button.button--small.button--has-label.button--has-prefix {
171
- padding-inline-start: var(--syn-spacing-small);
172
- }
173
-
174
- .button.button--small.button--has-label.button--has-suffix {
175
- padding-inline-end: var(--syn-spacing-small);
176
- }
177
-
178
- .button.button--small.button--has-prefix .button__prefix,
179
- .button.button--small.button--has-suffix .button__suffix {
180
- font-size: var(--syn-spacing-medium);
181
- }
182
-
183
- .button.button--medium.button--has-label.button--has-prefix {
184
- padding-inline-start: var(--syn-spacing-medium);
185
- }
186
-
187
- .button.button--medium.button--has-label.button--has-suffix {
188
- padding-inline-end: var(--syn-spacing-medium);
189
- }
190
-
191
- .button.button--medium.button--has-prefix .button__prefix,
192
- .button.button--medium.button--has-suffix .button__suffix {
193
- font-size: var(--syn-spacing-large);
194
- }
195
-
196
- .button.button--large.button--has-label.button--has-prefix {
197
- padding-inline-start: var(--syn-spacing-large);
198
- }
199
-
200
- .button.button--large.button--has-label.button--has-prefix .button__label {
201
- padding-inline-start: var(--syn-spacing-small);
202
- }
203
-
204
- .button.button--large.button--has-label.button--has-suffix {
205
- padding-inline-end: var(--syn-spacing-large);
206
- }
207
-
208
- .button.button--large.button--has-label.button--has-suffix .button__label {
209
- padding-inline-end: var(--syn-spacing-small);
210
- }
211
-
212
- .button.button--large.button--has-prefix .button__prefix,
213
- .button.button--large.button--has-suffix .button__suffix {
214
- font-size: var(--syn-font-size-2x-large);
215
- }
216
-
217
- /*
218
- * Caret modifier
219
- */
220
- .button--caret.button--small .button__caret{
221
- font-size: var(--syn-font-size-medium);
222
- }
223
-
224
- .button--caret.button--medium .button__caret{
225
- font-size: var(--syn-font-size-x-large);
226
- }
227
-
228
- .button--caret.button--large .button__caret{
229
- font-size: var(--syn-font-size-2x-large);
230
- }
231
-
232
- /* #392: Button Groups */
233
- :host([data-syn-button-group__button--inner]) .button--filled.button {
234
- border-left-color: var(--syn-panel-background-color);
235
- border-right-color: var(--syn-panel-background-color);
236
- }
237
-
238
- :host([data-syn-button-group__button--first]:not([data-syn-button-group__button--last])) .button--filled.button {
239
- border-right-color: var(--syn-panel-background-color);
240
- }
241
-
242
- :host([data-syn-button-group__button--last]:not([data-syn-button-group__button--first])) .button--filled.button {
243
- border-left-color: var(--syn-panel-background-color);
244
- }
245
- `;
@@ -1,5 +0,0 @@
1
- import { css } from 'lit';
2
-
3
- export default css`
4
- /* Write custom CSS here */
5
- `;