@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
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
## Default
|
|
2
|
+
|
|
3
|
+
Radio buttons allow the user to select a single option from a group using a button-like control.Radio buttons are designed to be used with radio groups. When a radio button has focus, the arrow keys can be used to change the selected option just like standard radio controls.
|
|
4
|
+
|
|
5
|
+
```html
|
|
6
|
+
<syn-radio-group label="Select an option" name="a" value="1">
|
|
7
|
+
<syn-radio-button value="1"> Option 1 </syn-radio-button>
|
|
8
|
+
|
|
9
|
+
<syn-radio-button value="2">Option 2</syn-radio-button>
|
|
10
|
+
<syn-radio-button value="3">Option 3</syn-radio-button>
|
|
11
|
+
</syn-radio-group>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Checked
|
|
17
|
+
|
|
18
|
+
To set the initial value and checked state, use the value attribute on the containing radio group.
|
|
19
|
+
|
|
20
|
+
```html
|
|
21
|
+
<syn-radio-group label="Select an option" name="b" value="2">
|
|
22
|
+
<syn-radio-button value="1">Option 1</syn-radio-button>
|
|
23
|
+
<syn-radio-button value="2">Option 2</syn-radio-button>
|
|
24
|
+
<syn-radio-button value="3">Option 3</syn-radio-button>
|
|
25
|
+
</syn-radio-group>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Focus
|
|
31
|
+
|
|
32
|
+
The focus event gives the user feedback that the radio button has been focused by the keyboard interaction.
|
|
33
|
+
|
|
34
|
+
```html
|
|
35
|
+
<syn-radio-group label="Select an option" name="b" value="1">
|
|
36
|
+
<syn-radio-button value="1">Option 1</syn-radio-button>
|
|
37
|
+
<syn-radio-button value="2">Option 2</syn-radio-button>
|
|
38
|
+
<syn-radio-button value="3">Option 3</syn-radio-button>
|
|
39
|
+
</syn-radio-group>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Disabled
|
|
45
|
+
|
|
46
|
+
Use the disabled attribute to disable a radio button.
|
|
47
|
+
|
|
48
|
+
```html
|
|
49
|
+
<syn-radio-group label="Select an option" name="b" value="1">
|
|
50
|
+
<syn-radio-button value="1" disabled="">Option 1</syn-radio-button>
|
|
51
|
+
<syn-radio-button value="2" disabled="">Option 2</syn-radio-button>
|
|
52
|
+
<syn-radio-button value="3">Option 3</syn-radio-button>
|
|
53
|
+
</syn-radio-group>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Readonly
|
|
59
|
+
|
|
60
|
+
Add the read-only attribute to render a readonly radio button. Please note that you need to enable the readonly state for each individual radio button.
|
|
61
|
+
|
|
62
|
+
```html
|
|
63
|
+
<div
|
|
64
|
+
style="display: flex; flex-direction: column; gap: var(--syn-spacing-medium)"
|
|
65
|
+
>
|
|
66
|
+
<syn-radio-group label="Select an option" name="b" value="1">
|
|
67
|
+
<syn-radio-button value="1" readonly="">Option 1</syn-radio-button>
|
|
68
|
+
<syn-radio-button value="2" readonly="">Option 2</syn-radio-button>
|
|
69
|
+
<syn-radio-button value="3" readonly="">Option 3</syn-radio-button>
|
|
70
|
+
</syn-radio-group>
|
|
71
|
+
<syn-radio-group label="Select an option" name="b" value="1">
|
|
72
|
+
<syn-radio-button value="1" readonly="">Option 1</syn-radio-button>
|
|
73
|
+
<syn-radio-button value="2" readonly="">Option 2</syn-radio-button>
|
|
74
|
+
<syn-radio-button value="3">Option 3</syn-radio-button>
|
|
75
|
+
</syn-radio-group>
|
|
76
|
+
</div>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Sizes
|
|
82
|
+
|
|
83
|
+
Use the size attribute to change a radio button’s size.
|
|
84
|
+
|
|
85
|
+
```html
|
|
86
|
+
<div
|
|
87
|
+
style="display: flex; flex-direction: column; gap: var(--syn-spacing-medium)"
|
|
88
|
+
>
|
|
89
|
+
<syn-radio-group label="Select an option" name="size" value="1" size="small">
|
|
90
|
+
<syn-radio-button value="1">Option 1</syn-radio-button>
|
|
91
|
+
<syn-radio-button value="2">Option 2</syn-radio-button>
|
|
92
|
+
<syn-radio-button value="3">Option 3</syn-radio-button>
|
|
93
|
+
</syn-radio-group>
|
|
94
|
+
|
|
95
|
+
<syn-radio-group label="Select an option" name="size" value="1" size="medium">
|
|
96
|
+
<syn-radio-button value="1">Option 1</syn-radio-button>
|
|
97
|
+
<syn-radio-button value="2">Option 2</syn-radio-button>
|
|
98
|
+
<syn-radio-button value="3">Option 3</syn-radio-button>
|
|
99
|
+
</syn-radio-group>
|
|
100
|
+
|
|
101
|
+
<syn-radio-group label="Select an option" name="size" value="1" size="large">
|
|
102
|
+
<syn-radio-button value="1">Option 1</syn-radio-button>
|
|
103
|
+
<syn-radio-button value="2">Option 2</syn-radio-button>
|
|
104
|
+
<syn-radio-button value="3">Option 3</syn-radio-button>
|
|
105
|
+
</syn-radio-group>
|
|
106
|
+
</div>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Invalid
|
|
112
|
+
|
|
113
|
+
The invalid status is used to warn the user that the Radio Group is invalid. For example, if the radio-button is mandatory and nothing has been checked.
|
|
114
|
+
|
|
115
|
+
```html
|
|
116
|
+
<form
|
|
117
|
+
onsubmit="
|
|
118
|
+
event.preventDefault();
|
|
119
|
+
event.stopPropagation();
|
|
120
|
+
"
|
|
121
|
+
id="components-syn-radio-button--invalid"
|
|
122
|
+
>
|
|
123
|
+
<syn-radio-group
|
|
124
|
+
label="Select an option"
|
|
125
|
+
name="a"
|
|
126
|
+
help-text="This is required"
|
|
127
|
+
required=""
|
|
128
|
+
>
|
|
129
|
+
<syn-radio-button value="1">Option 1</syn-radio-button>
|
|
130
|
+
<syn-radio-button value="2">Option 2</syn-radio-button>
|
|
131
|
+
<syn-radio-button value="3">Option 3</syn-radio-button>
|
|
132
|
+
</syn-radio-group>
|
|
133
|
+
|
|
134
|
+
<syn-button type="submit" variant="filled">Submit</syn-button>
|
|
135
|
+
</form>
|
|
136
|
+
<style>
|
|
137
|
+
#components-syn-radio-button--invalid {
|
|
138
|
+
display: flex;
|
|
139
|
+
flex-direction: column;
|
|
140
|
+
gap: var(--syn-spacing-large);
|
|
141
|
+
}
|
|
142
|
+
syn-button {
|
|
143
|
+
align-self: flex-start;
|
|
144
|
+
}
|
|
145
|
+
</style>
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Prefix And Suffix Icons
|
|
151
|
+
|
|
152
|
+
Use the prefix and suffix slots to add icons.
|
|
153
|
+
|
|
154
|
+
```html
|
|
155
|
+
<syn-radio-group label="Select an option" name="b" value="1">
|
|
156
|
+
<syn-radio-button value="1">
|
|
157
|
+
<syn-icon slot="prefix" name="wallpaper"></syn-icon>
|
|
158
|
+
Option 1
|
|
159
|
+
</syn-radio-button>
|
|
160
|
+
<syn-radio-button value="2">
|
|
161
|
+
Option 2
|
|
162
|
+
<syn-icon slot="suffix" name="wallpaper"></syn-icon>
|
|
163
|
+
</syn-radio-button>
|
|
164
|
+
<syn-radio-button value="3">
|
|
165
|
+
<syn-icon slot="prefix" name="wallpaper"></syn-icon>
|
|
166
|
+
Option 3
|
|
167
|
+
<syn-icon slot="suffix" name="wallpaper"></syn-icon>
|
|
168
|
+
</syn-radio-button>
|
|
169
|
+
</syn-radio-group>
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Buttons With Icons
|
|
175
|
+
|
|
176
|
+
You can omit button labels and use icons instead. Make sure to set a label attribute on each icon so screen readers will announce each option correctly.
|
|
177
|
+
|
|
178
|
+
```html
|
|
179
|
+
<syn-radio-group label="Select an option" name="a" value="neutral">
|
|
180
|
+
<syn-radio-button value="angry">
|
|
181
|
+
<syn-icon name="face_5" label="Angry"></syn-icon>
|
|
182
|
+
</syn-radio-button>
|
|
183
|
+
|
|
184
|
+
<syn-radio-button value="sad">
|
|
185
|
+
<syn-icon name="face_4" label="Sad"></syn-icon>
|
|
186
|
+
</syn-radio-button>
|
|
187
|
+
|
|
188
|
+
<syn-radio-button value="neutral">
|
|
189
|
+
<syn-icon name="face_3" label="Neutral"></syn-icon>
|
|
190
|
+
</syn-radio-button>
|
|
191
|
+
|
|
192
|
+
<syn-radio-button value="happy">
|
|
193
|
+
<syn-icon name="face_2" label="Happy"></syn-icon>
|
|
194
|
+
</syn-radio-button>
|
|
195
|
+
|
|
196
|
+
<syn-radio-button value="laughing">
|
|
197
|
+
<syn-icon name="face_6" label="Laughing"></syn-icon>
|
|
198
|
+
</syn-radio-button>
|
|
199
|
+
</syn-radio-group>
|
|
200
|
+
```
|
|
@@ -140,7 +140,13 @@ The size of Radios and Radio Buttons will be determined by the Radio Group’s s
|
|
|
140
140
|
The invalid status is used to warn the user that the Radio Group is invalid. For example, if the radio is mandatory and nothing has been checked.
|
|
141
141
|
|
|
142
142
|
```html
|
|
143
|
-
<form
|
|
143
|
+
<form
|
|
144
|
+
onsubmit="
|
|
145
|
+
event.preventDefault();
|
|
146
|
+
event.stopPropagation();
|
|
147
|
+
"
|
|
148
|
+
id="components-syn-radio-group--invalid"
|
|
149
|
+
>
|
|
144
150
|
<syn-radio-group
|
|
145
151
|
label="Select an option"
|
|
146
152
|
name="a"
|
|
@@ -151,10 +157,11 @@ The invalid status is used to warn the user that the Radio Group is invalid. For
|
|
|
151
157
|
<syn-radio value="2">Option 2</syn-radio>
|
|
152
158
|
<syn-radio value="3">Option 3</syn-radio>
|
|
153
159
|
</syn-radio-group>
|
|
160
|
+
|
|
154
161
|
<syn-button type="submit" variant="filled">Submit</syn-button>
|
|
155
162
|
</form>
|
|
156
163
|
<style>
|
|
157
|
-
|
|
164
|
+
#components-syn-radio-group--invalid {
|
|
158
165
|
display: flex;
|
|
159
166
|
flex-direction: column;
|
|
160
167
|
gap: var(--syn-spacing-large);
|
|
@@ -182,3 +189,21 @@ Use the setCustomValidity() method to set a custom validation message. This will
|
|
|
182
189
|
<syn-button type="submit" variant="filled">Submit</syn-button>
|
|
183
190
|
</form>
|
|
184
191
|
```
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Radio Buttons
|
|
196
|
+
|
|
197
|
+
Radio buttons offer an alternate way to display radio controls. In this case, an internal button group is used to group the buttons into a single, cohesive control.
|
|
198
|
+
|
|
199
|
+
```html
|
|
200
|
+
<syn-radio-group
|
|
201
|
+
label="Select an option"
|
|
202
|
+
value="Option 1"
|
|
203
|
+
help-text="Select an option that makes you proud."
|
|
204
|
+
>
|
|
205
|
+
<syn-radio-button value="Option 1">Option 1</syn-radio-button>
|
|
206
|
+
<syn-radio-button value="Option 2">Option 2</syn-radio-button>
|
|
207
|
+
<syn-radio-button value="Option 3">Option 3</syn-radio-button>
|
|
208
|
+
</syn-radio-group>
|
|
209
|
+
```
|
|
@@ -73,18 +73,25 @@ Add the size attribute to the Radio Group to change the radios’ size.
|
|
|
73
73
|
The invalid status is used to warn the user that the Radio is invalid. For example, if the radio is mandatory and nothing has been checked.
|
|
74
74
|
|
|
75
75
|
```html
|
|
76
|
-
<form
|
|
77
|
-
|
|
76
|
+
<form
|
|
77
|
+
onsubmit="
|
|
78
|
+
event.preventDefault();
|
|
79
|
+
event.stopPropagation();
|
|
80
|
+
"
|
|
81
|
+
id="components-syn-radio--invalid"
|
|
82
|
+
>
|
|
83
|
+
<syn-radio-group required="">
|
|
78
84
|
<syn-radio value="1">Invalid</syn-radio>
|
|
79
|
-
<syn-radio value="
|
|
85
|
+
<syn-radio value="">Invalid</syn-radio>
|
|
80
86
|
</syn-radio-group>
|
|
87
|
+
|
|
81
88
|
<syn-button type="submit" variant="filled">Submit</syn-button>
|
|
82
89
|
</form>
|
|
83
90
|
<style>
|
|
84
|
-
|
|
91
|
+
#components-syn-radio--invalid {
|
|
85
92
|
display: flex;
|
|
86
93
|
flex-direction: column;
|
|
87
|
-
gap:
|
|
94
|
+
gap: var(--syn-spacing-large);
|
|
88
95
|
}
|
|
89
96
|
syn-button {
|
|
90
97
|
align-self: flex-start;
|
|
@@ -49,30 +49,32 @@ Use the disabled attribute to disable a range.
|
|
|
49
49
|
The invalid status is used to warn the user that the input is invalid. As range validation is not supported by the browser, you will need to implement your own validation logic.
|
|
50
50
|
|
|
51
51
|
```html
|
|
52
|
-
<form
|
|
52
|
+
<form
|
|
53
|
+
onsubmit="
|
|
54
|
+
event.preventDefault();
|
|
55
|
+
event.stopPropagation();
|
|
56
|
+
"
|
|
57
|
+
id="components-syn-range--invalid"
|
|
58
|
+
>
|
|
53
59
|
<syn-range
|
|
54
60
|
help-text="This is an error text"
|
|
55
61
|
id="range-invalid"
|
|
56
62
|
max="100"
|
|
57
63
|
min="0"
|
|
58
64
|
value="50"
|
|
59
|
-
>
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
document.querySelector("form").addEventListener("submit", (e) => {
|
|
65
|
-
e.preventDefault();
|
|
66
|
-
});
|
|
65
|
+
></syn-range>
|
|
66
|
+
<script type="module">
|
|
67
|
+
const range = document.querySelector("#range-invalid");
|
|
68
|
+
range.setCustomValidity("Please enter a valid value");
|
|
69
|
+
</script>
|
|
67
70
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
</script>
|
|
71
|
+
<syn-button type="submit" variant="filled">Submit</syn-button>
|
|
72
|
+
</form>
|
|
71
73
|
<style>
|
|
72
|
-
|
|
74
|
+
#components-syn-range--invalid {
|
|
73
75
|
display: flex;
|
|
74
76
|
flex-direction: column;
|
|
75
|
-
gap:
|
|
77
|
+
gap: var(--syn-spacing-large);
|
|
76
78
|
}
|
|
77
79
|
syn-button {
|
|
78
80
|
align-self: flex-start;
|
|
@@ -250,19 +250,26 @@ Use the size attribute to change a select’s size. Note that size does not appl
|
|
|
250
250
|
The invalid status is used to warn the user that the Select is invalid. For example, if the entry of text is mandatory and nothing has been entered.
|
|
251
251
|
|
|
252
252
|
```html
|
|
253
|
-
<form
|
|
253
|
+
<form
|
|
254
|
+
onsubmit="
|
|
255
|
+
event.preventDefault();
|
|
256
|
+
event.stopPropagation();
|
|
257
|
+
"
|
|
258
|
+
id="components-syn-select--invalid"
|
|
259
|
+
>
|
|
254
260
|
<syn-select label="Select one" required="">
|
|
255
261
|
<syn-option value="option-1">Option 1</syn-option>
|
|
256
262
|
<syn-option value="option-2">Option 2</syn-option>
|
|
257
263
|
<syn-option value="option-3">Option 3</syn-option>
|
|
258
264
|
</syn-select>
|
|
265
|
+
|
|
259
266
|
<syn-button type="submit" variant="filled">Submit</syn-button>
|
|
260
267
|
</form>
|
|
261
268
|
<style>
|
|
262
|
-
|
|
269
|
+
#components-syn-select--invalid {
|
|
263
270
|
display: flex;
|
|
264
271
|
flex-direction: column;
|
|
265
|
-
gap:
|
|
272
|
+
gap: var(--syn-spacing-large);
|
|
266
273
|
}
|
|
267
274
|
syn-button {
|
|
268
275
|
align-self: flex-start;
|
|
@@ -96,15 +96,22 @@ Add descriptive help text to a switch with the help-text attribute. For help tex
|
|
|
96
96
|
The invalid status is used to warn the user that the Switch is invalid.
|
|
97
97
|
|
|
98
98
|
```html
|
|
99
|
-
<form
|
|
99
|
+
<form
|
|
100
|
+
onsubmit="
|
|
101
|
+
event.preventDefault();
|
|
102
|
+
event.stopPropagation();
|
|
103
|
+
"
|
|
104
|
+
id="components-syn-switch--invalid"
|
|
105
|
+
>
|
|
100
106
|
<syn-switch required="">Option</syn-switch>
|
|
107
|
+
|
|
101
108
|
<syn-button type="submit" variant="filled">Submit</syn-button>
|
|
102
109
|
</form>
|
|
103
110
|
<style>
|
|
104
|
-
|
|
111
|
+
#components-syn-switch--invalid {
|
|
105
112
|
display: flex;
|
|
106
113
|
flex-direction: column;
|
|
107
|
-
gap:
|
|
114
|
+
gap: var(--syn-spacing-large);
|
|
108
115
|
}
|
|
109
116
|
syn-button {
|
|
110
117
|
align-self: flex-start;
|
|
@@ -112,19 +112,26 @@ Use the size attribute to change a textarea’s size.
|
|
|
112
112
|
The invalid status is used to warn the user that the input is invalid. For example, if the entry of text is mandatory and nothing has been entered or if a text has been entered that does not have the correct format.
|
|
113
113
|
|
|
114
114
|
```html
|
|
115
|
-
<form
|
|
115
|
+
<form
|
|
116
|
+
onsubmit="
|
|
117
|
+
event.preventDefault();
|
|
118
|
+
event.stopPropagation();
|
|
119
|
+
"
|
|
120
|
+
id="components-syn-textarea--invalid"
|
|
121
|
+
>
|
|
116
122
|
<syn-textarea
|
|
117
123
|
placeholder="Type something"
|
|
118
124
|
help-text="This textarea is required."
|
|
119
125
|
required=""
|
|
120
126
|
></syn-textarea>
|
|
127
|
+
|
|
121
128
|
<syn-button type="submit" variant="filled">Submit</syn-button>
|
|
122
129
|
</form>
|
|
123
130
|
<style>
|
|
124
|
-
|
|
131
|
+
#components-syn-textarea--invalid {
|
|
125
132
|
display: flex;
|
|
126
133
|
flex-direction: column;
|
|
127
|
-
gap:
|
|
134
|
+
gap: var(--syn-spacing-large);
|
|
128
135
|
}
|
|
129
136
|
syn-button {
|
|
130
137
|
align-self: flex-start;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
|
|
3
|
+
export default css`
|
|
4
|
+
/* stylelint-disable no-descending-specificity */
|
|
5
|
+
/*
|
|
6
|
+
* Button groups support a variety of button types (e.g. buttons with tooltips, buttons as dropdown triggers, etc.).
|
|
7
|
+
* This means buttons aren't always direct descendants of the button group, thus we can't target them with the
|
|
8
|
+
* ::slotted selector. To work around this, the button group component does some magic to add these special classes to
|
|
9
|
+
* buttons and we style them here instead.
|
|
10
|
+
*/
|
|
11
|
+
:host([data-syn-button-group__button--first]:not([data-syn-button-group__button--last])) .button {
|
|
12
|
+
border-end-end-radius: 0;
|
|
13
|
+
border-start-end-radius: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:host([data-syn-button-group__button--inner]) .button {
|
|
17
|
+
border-radius: 0;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
:host([data-syn-button-group__button--last]:not([data-syn-button-group__button--first])) .button {
|
|
21
|
+
border-end-start-radius: 0;
|
|
22
|
+
border-start-start-radius: 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* All except the first */
|
|
26
|
+
:host([data-syn-button-group__button]:not([data-syn-button-group__button--first])) {
|
|
27
|
+
margin-inline-start: calc(-1 * var(--syn-input-border-width));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Add a visual separator between solid buttons */
|
|
31
|
+
:host([data-syn-button-group__button]:not([data-syn-button-group__button--first]):not([data-syn-button-group__button--radio]):not([variant='filled']):not(:hover)) .button::after {
|
|
32
|
+
border-left: solid 1px rgb(128 128 128 / 33%);
|
|
33
|
+
bottom: 0;
|
|
34
|
+
content: '';
|
|
35
|
+
inset-inline-start: 0;
|
|
36
|
+
/* stylelint-disable-next-line plugin/no-unsupported-browser-features */
|
|
37
|
+
mix-blend-mode: multiply;
|
|
38
|
+
position: absolute;
|
|
39
|
+
top: 0;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Bump hovered, focused, and checked buttons up so their focus ring isn't clipped */
|
|
43
|
+
:host([data-syn-button-group__button--hover]) {
|
|
44
|
+
z-index: 1;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Focus and checked are always on top */
|
|
48
|
+
:host([data-syn-button-group__button--focus]),
|
|
49
|
+
:host([data-syn-button-group__button][checked]) {
|
|
50
|
+
z-index: 2;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* #392: Button Groups */
|
|
54
|
+
:host([data-syn-button-group__button--inner]) .button--filled.button {
|
|
55
|
+
border-left-color: var(--syn-panel-background-color);
|
|
56
|
+
border-right-color: var(--syn-panel-background-color);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
:host([data-syn-button-group__button--first]:not([data-syn-button-group__button--last])) .button--filled.button {
|
|
60
|
+
border-right-color: var(--syn-panel-background-color);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
:host([data-syn-button-group__button--last]:not([data-syn-button-group__button--first])) .button--filled.button {
|
|
64
|
+
border-left-color: var(--syn-panel-background-color);
|
|
65
|
+
}
|
|
66
|
+
`;
|