@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.
- package/CHANGELOG.md +26 -0
- package/data/core/component/component:syn-button-group.json +0 -5
- package/data/core/component/component:syn-button.json +3 -3
- package/data/core/component/component:syn-chart.json +147 -2
- package/data/core/component/component:syn-radio-button.json +123 -14
- package/data/core/component/component:syn-radio-group.json +11 -0
- package/data/core/setup/setup:angular-components-module.json +1 -1
- package/data/core/setup/setup:angular-forms-module.json +1 -1
- package/data/core/setup/setup:angular-package.json +2 -2
- package/data/core/setup/setup:angular-validators-module.json +1 -1
- package/data/core/setup/setup:components-package.json +2 -2
- package/data/core/setup/setup:react-package.json +2 -2
- package/data/core/setup/setup:tokens-package.json +2 -2
- package/data/core/setup/setup:vue-package.json +2 -2
- package/data/core/token/token:tokens-charts-js-index-d-ts.json +1 -1
- package/data/core/token/token:tokens-charts-js-index-js.json +1 -1
- package/data/core/token/token:tokens-charts-scss-tokens-scss.json +1 -1
- package/data/core/token/token:tokens-charts-themes-sick2025-dark-css.json +1 -1
- package/data/core/token/token:tokens-charts-themes-sick2025-light-css.json +1 -1
- package/data/core/token/token:tokens-figma-variables-sick2018-dark-json.json +1 -1
- package/data/core/token/token:tokens-figma-variables-sick2018-light-json.json +1 -1
- package/data/core/token/token:tokens-figma-variables-sick2025-dark-json.json +1 -1
- package/data/core/token/token:tokens-figma-variables-sick2025-light-json.json +1 -1
- package/data/core/token/token:tokens-js-index-d-ts.json +1 -1
- package/data/core/token/token:tokens-js-index-js.json +1 -1
- package/data/core/token/token:tokens-scss-tokens-scss.json +1 -1
- package/data/core/token/token:tokens-themes-sick2018-dark-css.json +1 -1
- package/data/core/token/token:tokens-themes-sick2018-light-css.json +1 -1
- package/data/core/token/token:tokens-themes-sick2025-dark-css.json +1 -1
- package/data/core/token/token:tokens-themes-sick2025-light-css.json +1 -1
- package/data/index.json +3 -2
- package/data/layers/examples/component/component:syn-chart.md +115 -106
- package/data/layers/examples/component/component:syn-checkbox.md +16 -2
- package/data/layers/examples/component/component:syn-combobox.md +10 -21
- package/data/layers/examples/component/component:syn-file.md +16 -10
- package/data/layers/examples/component/component:syn-input.md +10 -3
- package/data/layers/examples/component/component:syn-radio-button.md +200 -0
- package/data/layers/examples/component/component:syn-radio-group.md +27 -2
- package/data/layers/examples/component/component:syn-radio.md +12 -5
- package/data/layers/examples/component/component:syn-range.md +16 -14
- package/data/layers/examples/component/component:syn-select.md +10 -3
- package/data/layers/examples/component/component:syn-switch.md +10 -3
- package/data/layers/examples/component/component:syn-textarea.md +10 -3
- package/data/layers/full/component/component:syn-button/components/button-group.styles.ts +66 -0
- package/data/layers/full/component/component:syn-button/components/button.component.ts +40 -52
- package/data/layers/full/component/component:syn-button/components/button.styles.ts +162 -173
- package/data/layers/full/component/component:syn-button-group/components/button-group.component.ts +22 -18
- package/data/layers/full/component/component:syn-button-group/components/button-group.styles.ts +0 -2
- package/data/layers/full/component/component:syn-chart/angular/chart.component.ts +11 -5
- package/data/layers/full/component/component:syn-chart/components/chart.component.ts +67 -20
- package/data/layers/full/component/component:syn-chart/components/chart.palettes.ts +59 -59
- package/data/layers/full/component/component:syn-chart/components/types.ts +47 -4
- package/data/layers/full/component/component:syn-chart/react/chart.ts +1 -1
- package/data/layers/full/component/component:syn-chart/vue/SynVueChart.vue +11 -5
- package/data/layers/full/component/component:syn-radio-button/angular/radio-button.component.ts +14 -14
- package/data/layers/full/component/component:syn-radio-button/components/radio-button.component.ts +45 -25
- package/data/layers/full/component/component:syn-radio-button/components/radio-button.styles.ts +87 -25
- package/data/layers/full/component/component:syn-radio-button/react/radio-button.ts +1 -1
- package/data/layers/full/component/component:syn-radio-button/vue/SynVueRadioButton.vue +6 -6
- package/data/layers/full/component/component:syn-radio-group/components/radio-group.component.ts +23 -11
- package/data/layers/full/component/component:syn-radio-group/components/radio-group.styles.ts +51 -6
- package/data/layers/full/setup/setup:angular-package/angular/CHANGELOG.md +38 -0
- package/data/layers/full/setup/setup:angular-package/angular/package.json +1 -1
- package/data/layers/full/setup/setup:components-package/components/CHANGELOG.md +36 -0
- package/data/layers/full/setup/setup:components-package/components/package.json +1 -1
- package/data/layers/full/setup/setup:react-package/react/CHANGELOG.md +28 -0
- package/data/layers/full/setup/setup:react-package/react/package.json +1 -1
- package/data/layers/full/setup/setup:react-package/react/syn-jsx-elements.ts +4 -4
- package/data/layers/full/setup/setup:tokens-package/tokens/CHANGELOG.md +31 -0
- package/data/layers/full/setup/setup:tokens-package/tokens/package.json +1 -1
- package/data/layers/full/setup/setup:vue-package/vue/CHANGELOG.md +38 -0
- package/data/layers/full/setup/setup:vue-package/vue/package.json +1 -1
- package/data/layers/full/tokens/charts/js/index.d.ts +275 -265
- package/data/layers/full/tokens/charts/js/index.js +143 -133
- package/data/layers/full/tokens/charts/scss/_tokens.scss +135 -133
- package/data/layers/full/tokens/charts/themes/sick2025_dark.css +135 -133
- package/data/layers/full/tokens/charts/themes/sick2025_light.css +135 -133
- package/data/layers/full/tokens/figma-variables/sick2018-dark.json +20 -0
- package/data/layers/full/tokens/figma-variables/sick2018-light.json +20 -0
- package/data/layers/full/tokens/figma-variables/sick2025-dark.json +20 -0
- package/data/layers/full/tokens/figma-variables/sick2025-light.json +20 -0
- package/data/layers/full/tokens/js/index.d.ts +31 -1
- package/data/layers/full/tokens/js/index.js +31 -1
- package/data/layers/full/tokens/scss/_tokens.scss +7 -1
- package/data/layers/full/tokens/themes/sick2018_dark.css +7 -1
- package/data/layers/full/tokens/themes/sick2018_light.css +7 -1
- package/data/layers/full/tokens/themes/sick2025_dark.css +7 -1
- package/data/layers/full/tokens/themes/sick2025_light.css +7 -1
- package/data/layers/interface/component/component:syn-chart.json +5 -5
- package/data/layers/interface/component/component:syn-chart.md +4 -4
- package/data/layers/interface/component/component:syn-radio-button.json +14 -12
- package/data/layers/interface/component/component:syn-radio-button.md +6 -4
- package/data/layers/rules/component/component:syn-radio-button.md +16 -11
- package/data/manifest.json +1 -1
- package/dist/intentPolicy/domains/input/capabilities.js +4 -0
- package/dist/intentPolicy/domains/input/patterns.js +9 -0
- package/package.json +5 -5
- package/data/layers/full/component/component:syn-button/components/button.custom.styles.ts +0 -245
- 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": "
|
|
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
|
|
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": "
|
|
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": "
|
|
42
|
+
"type": "ChartPalette"
|
|
43
43
|
}
|
|
44
44
|
],
|
|
45
|
-
"since": "
|
|
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:**
|
|
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: `
|
|
28
|
+
type: `ChartConfigType`
|
|
29
29
|
default: `{}`
|
|
30
30
|
|
|
31
|
-
The ECharts configuration
|
|
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: `
|
|
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": "
|
|
14
|
-
"fieldName": "
|
|
15
|
-
"name": "
|
|
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": "
|
|
128
|
-
"name": "
|
|
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": "
|
|
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:**
|
|
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
|
-
###
|
|
40
|
+
### readonly
|
|
39
41
|
|
|
40
|
-
attribute: `
|
|
42
|
+
attribute: `readonly`
|
|
41
43
|
reflects: yes
|
|
42
44
|
type: `boolean`
|
|
43
45
|
default: `false`
|
|
44
46
|
|
|
45
|
-
|
|
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
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
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
|
-
###
|
|
17
|
+
### When to Use
|
|
16
18
|
|
|
17
|
-
- Use
|
|
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
|
-
-
|
|
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
|
|
43
|
+
- Provide meaningful alternative text for icon-only radio buttons using the label attribute.
|
|
44
|
+
- Communicate the group's function—such as filtering or view switching—through 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
|
|
package/data/manifest.json
CHANGED
|
@@ -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.
|
|
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.
|
|
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
|
-
`;
|