|
15 | 15 | @include control-font-size-regular(); |
16 | 16 | @include control-padding-inline-block(); |
17 | 17 |
|
18 | | - &:hover { |
| 18 | + &--hover { |
19 | 19 | @include control-colors-hover(); |
20 | 20 | } |
21 | 21 |
|
| 22 | + &--focus { |
| 23 | + @include focus-border(); |
| 24 | + } |
| 25 | + |
| 26 | + &--disabled { |
| 27 | + @include control-colors-disabled(); |
| 28 | + } |
| 29 | + |
| 30 | + &--error { |
| 31 | + @include control-colors-error(); |
| 32 | + } |
| 33 | + |
| 34 | + &__window { |
| 35 | + @include items-container-border(); |
| 36 | + @include items-container-border-radius(); |
| 37 | + @include items-container-colors(); |
| 38 | + @include items-container-padding(); |
| 39 | + @include items-container-gap(); |
| 40 | + @include items-container-max-height(); |
| 41 | + @include items-container-dropdown(); |
| 42 | + } |
| 43 | + |
| 44 | + &-group__header { |
| 45 | + @include item-colors-enabled(); |
| 46 | + @include item-font-header(); |
| 47 | + @include item-padding(); |
| 48 | + |
| 49 | + &--expandable { |
| 50 | + @include item-colors-enabled(); |
| 51 | + @include item-font-header(); |
| 52 | + @include item-padding(); |
| 53 | + @include item-border-radius(); |
| 54 | + |
| 55 | + &-hover { |
| 56 | + @include item-colors-hover(); |
| 57 | + } |
| 58 | + } |
| 59 | + |
| 60 | + &--disabled { |
| 61 | + @include item-colors-disabled(); |
| 62 | + } |
| 63 | + } |
| 64 | + |
| 65 | + &-group { |
| 66 | + @include items-container-gap(); |
| 67 | + |
| 68 | + &__content { |
| 69 | + @include items-container-gap(); |
| 70 | + } |
| 71 | + } |
| 72 | + |
22 | 73 | &__item { |
| 74 | + @include item-colors-enabled(); |
| 75 | + @include item-border(); |
| 76 | + @include item-border-radius(); |
| 77 | + @include item-font(); |
| 78 | + @include item-padding(); |
| 79 | + |
23 | 80 | &--nested { |
24 | 81 | padding-inline-start: calc( |
25 | 82 | var(--ch-combo-box-item-gap) + |
26 | 83 | var(--ch-combo-box-group__expandable-button-size) + |
27 | 84 | var(--mer-spacing--2xs) |
28 | 85 | ); |
29 | 86 | } |
| 87 | + |
| 88 | + &--selected { |
| 89 | + @include item-colors-selected(); |
| 90 | + } |
| 91 | + |
| 92 | + &--disabled { |
| 93 | + @include item-colors-disabled(); |
| 94 | + } |
30 | 95 | } |
31 | 96 | } |
32 | 97 |
|
|
47 | 112 | /// @param {String} $item--selected-selector [".combo-box::part(item selected)"] - |
48 | 113 | /// @param {Boolean} $add--disabled [true] - |
49 | 114 | /// @param {Boolean} $add--placeholder [true] - |
50 | | -/// @param {Boolean} $add--placeholder-var [true] - |
51 | 115 | /// @param {Boolean} $add--error [true] - |
52 | 116 | @mixin combo-box( |
53 | 117 | $combo-box-selector: ".combo-box", |
54 | 118 | $combo-box--disabled-selector: ".combo-box[disabled]", |
55 | 119 | $combo-box--error-selector: ".combo-box-error", |
56 | | - $combo-box__placeholder-selector: ".combo-box::part(placeholder)", |
| 120 | + $combo-box__placeholder-selector: |
| 121 | + ".combo-box[part='ch-combo-box--empty-value']", |
57 | 122 | $window-selector: ".combo-box::part(window)", |
58 | 123 | $group-selector: ".combo-box::part(group)", |
59 | 124 | $group__content-selector: ".combo-box::part(group__content)", |
|
67 | 132 | $item--selected-selector: ".combo-box::part(item selected)", |
68 | 133 | $add--disabled: true, |
69 | 134 | $add--placeholder: true, |
70 | | - $add--placeholder-var: true, |
71 | 135 | $add--error: true |
72 | 136 | ) { |
73 | 137 | #{$combo-box-selector} { |
74 | 138 | @extend %combo-box; |
75 | 139 |
|
76 | | - &:focus { |
77 | | - @include focus-border(); |
| 140 | + &:hover { |
| 141 | + @extend %combo-box--hover; |
78 | 142 | } |
79 | 143 |
|
80 | | - @if $add--placeholder-var { |
| 144 | + &:focus { |
| 145 | + @extend %combo-box--focus; |
81 | 146 | } |
82 | 147 | } |
83 | 148 |
|
|
87 | 152 | } |
88 | 153 | } |
89 | 154 |
|
90 | | - @if $add--disabled { |
91 | | - #{$combo-box--disabled-selector} { |
92 | | - @include control-colors-disabled(); |
93 | | - } |
94 | | - |
95 | | - #{$group__header--disabled-selector} { |
96 | | - @include item-colors-disabled(); |
97 | | - } |
98 | | - |
99 | | - #{$item--disabled-selector} { |
100 | | - @include item-colors-disabled(); |
101 | | - } |
102 | | - } |
103 | | - |
104 | | - @if $add--error { |
105 | | - #{$combo-box--error-selector} { |
106 | | - @include control-colors-error(); |
107 | | - } |
108 | | - } |
109 | | - |
110 | 155 | // - - - - - - - - - - - - - - - - - - - - |
111 | 156 | // Window |
112 | 157 | // - - - - - - - - - - - - - - - - - - - - |
113 | 158 | #{$window-selector} { |
114 | | - @include items-container-border(); |
115 | | - @include items-container-border-radius(); |
116 | | - @include items-container-colors(); |
117 | | - @include items-container-padding(); |
118 | | - @include items-container-gap(); |
119 | | - @include items-container-max-height(); |
120 | | - @include items-container-dropdown(); |
| 159 | + @extend %combo-box__window; |
121 | 160 | } |
122 | 161 |
|
123 | 162 | // - - - - - - - - - - - - - - - - - - - - |
124 | 163 | // Group |
125 | 164 | // - - - - - - - - - - - - - - - - - - - - |
126 | 165 | #{$group__header-selector} { |
127 | | - @include item-colors-enabled(); |
128 | | - @include item-font-header(); |
129 | | - @include item-padding(); |
| 166 | + @extend %combo-box-group__header; |
130 | 167 | } |
131 | 168 |
|
132 | 169 | #{$group__header--expandable-selector} { |
133 | | - @include item-colors-enabled(); |
134 | | - @include item-font-header(); |
135 | | - @include item-padding(); |
136 | | - @include item-border-radius(); |
| 170 | + @extend %combo-box-group__header--expandable; |
137 | 171 |
|
138 | 172 | &:hover { |
139 | | - @include item-colors-hover(); |
| 173 | + @extend %combo-box-group__header--expandable-hover; |
140 | 174 | } |
141 | 175 | } |
| 176 | + |
142 | 177 | #{$group-selector} { |
143 | | - @include items-container-gap(); |
| 178 | + @extend %combo-box-group; |
144 | 179 | } |
| 180 | + |
145 | 181 | #{$group__content-selector} { |
146 | | - @include items-container-gap(); |
| 182 | + @extend %combo-box-group__content; |
147 | 183 | } |
148 | 184 |
|
149 | 185 | // - - - - - - - - - - - - - - - - - - - - |
150 | 186 | // Item |
151 | 187 | // - - - - - - - - - - - - - - - - - - - - |
152 | 188 | #{$item-selector} { |
153 | | - @include item-colors-enabled(); |
154 | | - @include item-border(); |
155 | | - @include item-border-radius(); |
156 | | - @include item-font(); |
157 | | - @include item-padding(); |
| 189 | + @extend %combo-box__item; |
158 | 190 | } |
159 | 191 |
|
160 | 192 | #{$item--nested-selector} { |
161 | 193 | @extend %combo-box__item--nested; |
162 | 194 | } |
163 | 195 |
|
164 | 196 | #{$item--selected-selector} { |
165 | | - @include item-colors-selected(); |
| 197 | + @extend %combo-box__item--selected; |
| 198 | + } |
| 199 | + |
| 200 | + // - - - - - - - - - - - - - - - - - - - - |
| 201 | + // Disabled |
| 202 | + // - - - - - - - - - - - - - - - - - - - - |
| 203 | + @if $add--disabled { |
| 204 | + #{$combo-box--disabled-selector} { |
| 205 | + @extend %combo-box--disabled; |
| 206 | + } |
| 207 | + |
| 208 | + #{$group__header--disabled-selector} { |
| 209 | + @extend %combo-box-group__header--disabled; |
| 210 | + } |
| 211 | + |
| 212 | + #{$item--disabled-selector} { |
| 213 | + @extend %combo-box__item--disabled; |
| 214 | + } |
| 215 | + } |
| 216 | + |
| 217 | + @if $add--error { |
| 218 | + #{$combo-box--error-selector} { |
| 219 | + @extend %combo-box--error; |
| 220 | + } |
166 | 221 | } |
167 | 222 | } |
0 commit comments