@@ -11,73 +11,99 @@ governing permissions and limitations under the License.
1111*/
1212
1313@import "../commons/index.css" ;
14+ @import "../commons/basebutton.css" ;
1415@import "../vars/css/components/spectrum-picker.css" ;
1516
16- : root {
17- --spectrum-picker-popover-max-width : var (
18- --spectrum-global-dimension-size-3000
19- );
20- --spectrum-picker-width : var (--spectrum-global-dimension-size-2400 );
21-
22- /* This needs to be a variable so it overrides when using multiStops */
23- --spectrum-picker-quiet-width : auto;
24- }
25-
2617.spectrum-Picker {
27- /* todo: remove when fixed in DNA */
28- --spectrum-picker-min-width : var (--spectrum-global-dimension-size-400 );
29-
3018 @remapvars {
3119 find : /--spectrum-picker-m(.* )/ ;
3220 filter : color;
3321 replace : --spectrum-picker$1 ;
3422 }
35- @remapvars {
36- find : /--spectrum-picker-quiet-m(.* )/ ;
37- filter : color;
38- replace : --spectrum-picker-quiet$1 ;
39- }
23+
24+ /* todo: remove when fixed in DNA */
25+ --spectrum-picker-min-width : var (--spectrum-global-dimension-size-400 );
26+
27+ /* Todo: fix in DNA, should have been zero */
28+ --spectrum-picker-disabled-border-size : 0 ;
29+
30+ --spectrum-picker-popover-max-width : var (--spectrum-global-dimension-size-3000 );
31+ --spectrum-picker-width : var (--spectrum-global-dimension-size-2400 );
32+
33+ /* todo: use real DNA var */
34+ --spectrum-picker-border-size-increase-focus : 1px ;
4035}
4136
4237.spectrum-Picker {
43- position : relative;
44- display : inline-block;
38+ @inherit : %spectrum- BaseButto n;
39+
40+ display : flex;
41+ justify-content : space-between;
42+ align-items : center;
4543
4644 /* Truncate if menu options make us too wide */
4745 max-inline-size : 100% ;
4846 inline-size : var (--spectrum-picker-width );
4947 min-inline-size : var (--spectrum-picker-min-width );
48+ block-size : var (--spectrum-picker-height );
5049
51- /* Hack to enable select-powered Dropdowns */
52- select {
53- appearance : none;
54- -ms-appearance : none; /* Edge */
50+ margin : 0 ;
51+ padding-block : 0 ;
52+ padding-inline : var (--spectrum-picker-textonly-padding-left ) var (--spectrum-picker-textonly-padding-right );
5553
56- & :: -ms-expand {
57- display : none ;
58- }
54+ border-width : var ( --spectrum-picker-border-size );
55+ border-style : solid ;
56+ border-radius : var ( --spectrum-picker-border-radius );
5957
60- & :: -ms-value {
61- background-color : transparent;
62- }
58+ transition : background-color var ( --spectrum-global-animation-duration-100 ) ,
59+ box-shadow var ( --spectrum-global-animation-duration-100 ) ,
60+ border-color var ( --spectrum-global-animation-duration-100 );
6361
64- & + .spectrum-Picker-icon {
65- position : absolute;
66- inset-inline-end : var (--spectrum-picker-icon-gap );
67- inset-block-start : 50% ;
68- margin-block-start : calc (
69- var (--spectrum-icon-chevron-down-medium-height ) / -2
70- );
71- }
62+ & : disabled ,
63+ & .is-disabled {
64+ border-width : var (--spectrum-picker-disabled-border-size );
65+ cursor : default;
66+ }
67+
68+ & .is-open {
69+ border-width : var (--spectrum-picker-border-size );
70+ }
71+
72+ .spectrum-Picker-icon {
73+ flex-shrink : 0 ;
74+
75+ margin-inline-start : calc (var (--spectrum-picker-padding-left ) - var (--spectrum-picker-textonly-padding-left ));
76+ margin-inline-end : var (--spectrum-picker-icon-gap );
77+ }
78+
79+ .spectrum-Picker-label + .spectrum-Picker-icon {
80+ margin-inline-start : var (--spectrum-picker-icon-gap );
7281 }
7382}
7483
75- .spectrum-Picker-trigger {
76- position : relative;
77- inline-size : 100% ;
78- display : flex;
79- justify-content : space-between;
80- align-items : center;
84+ .spectrum-Picker--quiet {
85+ @remapvars {
86+ find : /--spectrum-picker-quiet-m(.* )/ ;
87+ filter : color;
88+ replace : --spectrum-picker-$1 ;
89+ }
90+
91+ /* Todo: fix in DNA, should have been zero */
92+ --spectrum-picker-border-size : 0 ;
93+ --spectrum-picker-border-radius : 0 ;
94+ --spectrum-picker-textonly-padding-left : 0 ;
95+ --spectrum-picker-textonly-padding-right : 0 ;
96+ }
97+
98+ .spectrum-Picker--quiet {
99+ inline-size : auto;
100+
101+ & : disabled ,
102+ & .is-disabled {
103+ & : focus-ring {
104+ box-shadow : none;
105+ }
106+ }
81107}
82108
83109.spectrum-Picker-label {
@@ -107,93 +133,183 @@ governing permissions and limitations under the License.
107133}
108134
109135/* Only apply margin to the icon if there's a label */
110- .spectrum-Picker-label + .spectrum-Picker-icon {
111- margin-inline-start : var (--spectrum-picker-icon-gap );
112- }
113-
114- .spectrum-Icon + .spectrum-Picker-label {
115- /* todo not sure if this is right */
136+ .spectrum-Picker-label + .spectrum-Picker-validationIcon {
116137 margin-inline-start : var (--spectrum-picker-icon-gap );
117138}
118139
119140/* Only apply margin if there's a label */
120- .spectrum-Picker-label ~ .spectrum-Picker-icon {
141+ .spectrum-Picker-label ~ .spectrum-Picker-menuIcon {
121142 margin-inline-start : var (--spectrum-picker-icon-gap );
122143}
123144
124- .spectrum-Picker-icon {
145+ /* The picker chevron */
146+ .spectrum-Picker-menuIcon {
125147 display : inline-block;
126148 position : relative;
127149 vertical-align : top;
128150 transition : color var (--spectrum-global-animation-duration-100 ) ease-out;
129151 flex-shrink : 0 ;
130-
131- /* Fix Safari 10 bug where align-items is ignored inside of buttons */
132- margin-block-start : calc (
133- calc (
134- var (--spectrum-picker-height ) -
135- calc (var (--spectrum-picker-border-size ) * 2 ) -
136- var (--spectrum-icon-chevron-down-medium-height )
137- ) / 2
138- );
139- margin-block-end : calc (
140- calc (
141- var (--spectrum-picker-height ) -
142- calc (var (--spectrum-picker-border-size ) * 2 ) -
143- var (--spectrum-icon-chevron-down-medium-height )
144- ) / 2
145- );
146-
147- opacity : 1 ;
148- }
149-
150- /* Error icons */
151- .spectrum-Picker-trigger {
152- .spectrum-Icon : not (.spectrum-Picker-icon ) {
153- flex-shrink : 0 ;
154- /* Fix Safari 10 bug where align-items is ignored inside of buttons */
155- margin-block-start : calc (
156- calc (
157- var (--spectrum-picker-height ) -
158- calc (var (--spectrum-picker-border-size ) * 2 ) -
159- var (--spectrum-picker-icon-size )
160- ) / 2
161- );
162- margin-block-end : calc (
163- calc (
164- var (--spectrum-picker-height ) -
165- calc (var (--spectrum-picker-border-size ) * 2 ) -
166- var (--spectrum-picker-icon-size )
167- ) / 2
168- );
169- }
170-
171- .spectrum-Picker-label + .spectrum-Icon : not (.spectrum-Picker-icon ) {
172- margin-inline-start : var (--spectrum-picker-icon-gap );
173- }
174152}
175153
176- .spectrum-Icon + .spectrum-Picker-icon {
154+ .spectrum-Picker-validationIcon + .spectrum-Picker-menuIcon {
177155 margin-inline-start : var (--spectrum-picker-icon-gap );
178156}
179157
180- .spectrum-Picker--quiet {
181- @remapvars {
182- find : /--spectrum-picker-quiet-m(.* )/ ;
183- filter : color;
184- replace : --spectrum-picker$1 ;
185- }
186-
187- inline-size : var (--spectrum-picker-quiet-width );
188- }
189-
190158.spectrum-Picker-popover {
191159 max-inline-size : var (--spectrum-picker-popover-max-width );
192160}
193161
194162.spectrum-Picker-popover--quiet {
195163 margin-inline-start : calc (
196- -1 * calc (var (--spectrum-picker-quiet-popover-offset-x ) +
164+ -1 * calc (var (--spectrum-picker-quiet-m- popover-offset-x ) +
197165 var (--spectrum-popover-border-size ))
198166 );
199167}
168+
169+ .spectrum-Picker {
170+ color : var (--spectrum-picker-m-text-color );
171+ background-color : var (--spectrum-picker-m-background-color );
172+ border-color : var (--spectrum-picker-m-border-color );
173+
174+ & : hover {
175+ color : var (--spectrum-picker-m-text-color-hover );
176+ background-color : var (--spectrum-picker-m-background-color-hover );
177+ border-color : var (--spectrum-picker-m-border-color-hover );
178+
179+ .spectrum-Picker-menuIcon {
180+ color : var (--spectrum-picker-m-icon-color-hover );
181+ }
182+ }
183+
184+ & : active ,
185+ & .is-selected {
186+ background-color : var (--spectrum-picker-m-background-color-down );
187+ border-color : var (--spectrum-picker-m-border-color-down );
188+
189+ & .is-placeholder {
190+ .spectrum-Picker-label {
191+ color : var (--spectrum-picker-m-placeholder-text-color-down );
192+ }
193+ }
194+ }
195+
196+ & : focus-ring ,
197+ & .is-focused {
198+ background-color : var (--spectrum-picker-m-background-color-key-focus );
199+ border-color : var (--spectrum-picker-m-border-color-key-focus );
200+ box-shadow : 0 0 0 var (--spectrum-picker-border-size-increase-focus ) var (--spectrum-picker-m-border-color-key-focus );
201+ color : var (--spectrum-picker-m-text-color-key-focus );
202+
203+ & .is-placeholder {
204+ color : var (--spectrum-picker-m-placeholder-text-color-key-focus );
205+ }
206+ }
207+
208+ & .is-invalid {
209+ border-color : var (--spectrum-picker-m-border-color-error );
210+
211+ .spectrum-Picker-validationIcon {
212+ color : var (--spectrum-picker-m-validation-icon-color-error );
213+ }
214+
215+ & : hover {
216+ border-color : var (--spectrum-picker-m-border-color-error-hover );
217+ }
218+
219+ & : active ,
220+ & .is-selected {
221+ border-color : var (--spectrum-picker-m-border-color-error-down );
222+ }
223+
224+ & : focus-ring ,
225+ & .is-focused {
226+ border-color : var (--spectrum-picker-m-border-color-error-key-focus );
227+ box-shadow : 0 0 0 var (--spectrum-picker-border-size-increase-focus ) var (--spectrum-picker-m-border-color-error-key-focus );
228+ }
229+ }
230+
231+ & : disabled ,
232+ & .is-disabled {
233+ background-color : var (--spectrum-picker-m-background-color-disabled );
234+ color : var (--spectrum-picker-m-text-color-disabled );
235+
236+ .spectrum-Picker-icon ,
237+ .spectrum-Picker-menuIcon ,
238+ .spectrum-Picker-validationIcon {
239+ color : var (--spectrum-picker-m-icon-color-disabled );
240+ }
241+
242+ .spectrum-Picker-label {
243+ & .is-placeholder {
244+ color : var (--spectrum-picker-m-placeholder-text-color-disabled );
245+ }
246+ }
247+ }
248+ }
249+
250+ .spectrum-Picker-menuIcon {
251+ color : var (--spectrum-picker-m-icon-color );
252+ }
253+
254+ .spectrum-Picker-label {
255+ & .is-placeholder {
256+ color : var (--spectrum-picker-m-placeholder-text-color );
257+
258+ & : hover {
259+ color : var (--spectrum-picker-m-placeholder-text-color-hover );
260+ }
261+
262+ & : active {
263+ color : var (--spectrum-picker-m-placeholder-text-color-mouse-focus );
264+ }
265+ }
266+ }
267+
268+ .spectrum-Picker--quiet {
269+ color : var (--spectrum-picker-m-text-color );
270+ border-color : var (--spectrum-picker-quiet-m-border-color );
271+ background-color : var (--spectrum-picker-quiet-m-background-color );
272+
273+ & : hover {
274+ background-color : var (--spectrum-picker-quiet-m-background-color-hover );
275+ color : var (--spectrum-picker-m-text-color-hover );
276+ }
277+
278+ & : focus-ring ,
279+ & .is-focused {
280+ background-color : var (--spectrum-picker-quiet-m-background-color-key-focus );
281+ box-shadow : 0 2px 0 0 var (--spectrum-picker-m-border-color-key-focus );
282+
283+ & .is-placeholder {
284+ color : var (--spectrum-picker-quiet-m-placeholder-text-color-key-focus );
285+ }
286+ .spectrum-Picker-menuIcon {
287+ color : var (--spectrum-picker-m-icon-color-key-focus )
288+ }
289+ }
290+
291+ & : active ,
292+ & .is-selected {
293+ background-color : var (--spectrum-picker-quiet-m-background-color-down );
294+ border-color : var (--spectrum-picker-quiet-m-border-color-down );
295+
296+ & : focus-ring ,
297+ & .is-focused {
298+ background-color : var (--spectrum-picker-quiet-m-background-color-key-focus );
299+ box-shadow : 0 2px 0 0 var (--spectrum-picker-m-border-color-key-focus );
300+ }
301+ }
302+
303+ & .is-invalid {
304+ & : focus-ring ,
305+ & .is-focused {
306+ box-shadow : 0 2px 0 0 var (--spectrum-picker-m-border-color-error-key-focus );
307+ }
308+ }
309+
310+ & : disabled ,
311+ & .is-disabled {
312+ background-color : var (--spectrum-picker-quiet-m-background-color-disabled );
313+ color : var (--spectrum-picker-m-text-color-disabled );
314+ }
315+ }
0 commit comments