jb-select 7.0.6 → 7.1.1

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/lib/jb-select.css CHANGED
@@ -2,298 +2,309 @@
2
2
  @custom-media --tablet-from (min-width: 769px);
3
3
 
4
4
  :host {
5
- display: block;
6
- margin: var(--jb-select-margin, 0 0);
7
- width: var(--jb-select-width, 100%);
5
+ display: block;
6
+ margin: var(--jb-select-margin, 0 0);
7
+ width: var(--jb-select-width, 100%);
8
8
  }
9
9
 
10
10
  :host(:focus),
11
11
  :host(:focus-visible) {
12
- outline: none;
12
+ outline: none;
13
+ }
14
+
15
+ :host(:state(open)) {
16
+ .select-box {
17
+ @media(--tablet-from) {
18
+ /*when there is focus on whole select means menu is open so we change select styles*/
19
+ border-color: var(--border-color);
20
+ border-bottom-color: transparent;
21
+ border-radius: var(--rounded) var(--rounded) 0 0;
22
+ }
23
+ }
24
+ }
25
+ :host(:state(disabled)){
26
+ .jb-select-web-component .select-box .end-section .clear-button{
27
+ display: none;
28
+ }
13
29
  }
14
30
 
15
31
  .jb-select-web-component {
16
- width: 100%;
17
- box-sizing: border-box;
18
- container-type: inline-size;
19
- &.--has-value {
32
+ width: 100%;
33
+ box-sizing: border-box;
34
+ container-type: inline-size;
20
35
 
21
- /*if user select a option and value is set and not null*/
22
- .select-box {
23
- border-color: var(--jb-select-border-color-selected, var(--border-color));
24
- background-color: var(--jb-select-bgcolor-selected, var(--select-box-bg-color));
25
- }
36
+ &.--has-value {
26
37
 
27
- .select-box .end-section .clear-button {
28
- display: block;
29
- }
38
+ /*if user select a option and value is set and not null*/
39
+ .select-box {
40
+ border-color: var(--jb-select-border-color-selected, var(--border-color));
41
+ background-color: var(--jb-select-bgcolor-selected, var(--select-box-bg-color));
30
42
  }
31
43
 
32
- label {
33
- width: 100%;
34
- margin: var(--label-margin);
35
- display: block;
36
- font-size: var(--label-font-size);
37
- color: var(--label-color);
38
- font-weight: var(--jb-input-label-font-weight, 300);
39
-
40
- &:empty {
41
- display: none;
42
- }
44
+ .select-box .end-section .clear-button {
45
+ display: block;
43
46
  }
47
+ }
44
48
 
45
- &:focus-within .select-box {
49
+ label {
50
+ width: 100%;
51
+ margin: var(--label-margin);
52
+ display: block;
53
+ font-size: var(--label-font-size);
54
+ color: var(--label-color);
55
+ font-weight: var(--jb-input-label-font-weight, 300);
46
56
 
47
- @media(--tablet-from) {
48
- /*when there is focus on whole select means menu is open so we change select styles*/
49
- border-color: var(--border-color);
50
- border-bottom-color: transparent;
51
- border-radius: var(--rounded) var(--rounded) 0 0;
52
- }
57
+ &:empty {
58
+ display: none;
53
59
  }
60
+ }
54
61
 
55
- .select-box {
62
+
63
+
64
+ .select-box {
65
+ width: 100%;
66
+ box-sizing: border-box;
67
+ height: var(--height);
68
+ border: solid var(--border-width) var(--border-color);
69
+ border-bottom: solid var(--border-bottom-width) var(--border-color);
70
+ border-radius: var(--box-border-radius);
71
+ background-color: var(--select-box-bg-color);
72
+ margin: var(--jb-select-box-margin, 0px);
73
+ overflow: hidden;
74
+ display: grid;
75
+ grid-template-rows: minmax(0, 1fr);
76
+ grid-template-columns: auto 1fr auto;
77
+ padding-inline-end: var(--jb-select-box-padding-end, 1rem);
78
+ align-items: center;
79
+
80
+ .start-section {
81
+ height: 100%;
82
+ width: auto;
83
+ display: flex;
84
+ justify-content: center;
85
+ align-items: center;
86
+ }
87
+
88
+ .middle-section {
89
+ position: relative;
90
+ width: 100%;
91
+ height: 100%;
92
+ flex: 1;
93
+
94
+ .selected-value-wrapper {
95
+ position: absolute;
96
+ top: 0;
97
+ left: 0;
56
98
  width: 100%;
57
- box-sizing: border-box;
58
- height: var(--height);
59
- border: solid var(--border-width) var(--border-color);
60
- border-bottom: solid var(--border-bottom-width) var(--border-color);
61
- border-radius: var(--box-border-radius);
62
- background-color: var(--select-box-bg-color);
63
- margin: var(--jb-select-box-margin, 0px);
99
+ height: 100%;
100
+ border-radius: inherit;
64
101
  overflow: hidden;
65
- display: grid;
66
- grid-template-rows: minmax(0, 1fr);
67
- grid-template-columns: auto 1fr auto;
68
- padding-inline-end: var(--jb-select-box-padding-end, 1rem);
69
- align-items: center;
70
-
71
- .start-section {
72
- height: 100%;
73
- width: auto;
74
- display: flex;
75
- justify-content: center;
76
- align-items: center;
102
+ z-index: var(--base-z-index);
103
+
104
+ &.--search-typed {
105
+ opacity: 0;
77
106
  }
78
107
 
79
- .middle-section {
80
- position: relative;
81
- width: 100%;
82
- height: 100%;
83
- flex: 1;
84
-
85
- .selected-value-wrapper {
86
- position: absolute;
87
- top: 0;
88
- left: 0;
89
- width: 100%;
90
- height: 100%;
91
- border-radius: inherit;
92
- overflow: hidden;
93
- z-index: var(--base-z-index);
94
-
95
- &.--search-typed {
96
- opacity: 0;
97
- }
98
-
99
- .selected-value {
100
- width: 100%;
101
- box-sizing: border-box;
102
- height: 100%;
103
- background-color: transparent;
104
- padding: var(--selected-value-padding);
105
- display: block;
106
- font-family: inherit;
107
- font-size: var(--selected-value-font-size);
108
- color: var(--value-color);
109
- margin: 0;
110
- border-radius: 0;
111
- display: flex;
112
- align-items: center;
113
- }
114
- }
115
-
116
- .front-box {
117
- position: absolute;
118
- top: 0;
119
- left: 0;
120
- width: 100%;
121
- height: 100%;
122
- border-radius: inherit;
123
- overflow: hidden;
124
- z-index: calc(var(--base-z-index) + 1);
125
-
126
- .search-input {
127
- height: 100%;
128
- background-color: transparent;
129
- padding: var(--inline-slots-padding);
130
- display: block;
131
- margin: 0;
132
- border-radius: 0;
133
- font-size: var(--input-font-size);
134
-
135
- &:focus {
136
- outline: none;
137
- }
138
-
139
- &::placeholder {
140
- color: var(--placeholder-color);
141
- font-size: var(--jb-select-placeholder-font-size, var(--input-font-size));
142
- }
143
- }
144
- }
108
+ .selected-value {
109
+ width: 100%;
110
+ box-sizing: border-box;
111
+ height: 100%;
112
+ background-color: transparent;
113
+ padding: var(--selected-value-padding);
114
+ display: block;
115
+ font-family: inherit;
116
+ font-size: var(--selected-value-font-size);
117
+ color: var(--value-color);
118
+ margin: 0;
119
+ border-radius: 0;
120
+ display: flex;
121
+ align-items: center;
145
122
  }
123
+ }
146
124
 
147
- .end-section {
148
- display: flex;
149
- gap: 1.5rem;
150
- align-items: center;
151
- padding-inline-start: 0.5rem;
152
-
153
- .arrow-icon {
154
- margin: var(--jb-select-arrow-icon-margin, 0 0 0 0);
155
- }
156
-
157
- .clear-button {
158
- /*show when there is value*/
159
- display: none;
160
- --icon-size: var(--clear-icon-size);
161
- height: 100%;
162
- }
125
+ .front-box {
126
+ position: absolute;
127
+ top: 0;
128
+ left: 0;
129
+ width: 100%;
130
+ height: 100%;
131
+ border-radius: inherit;
132
+ overflow: hidden;
133
+ z-index: calc(var(--base-z-index) + 1);
134
+
135
+ .search-input {
136
+ height: 100%;
137
+ background-color: transparent;
138
+ padding: var(--inline-slots-padding);
139
+ display: block;
140
+ margin: 0;
141
+ border-radius: 0;
142
+ font-size: var(--input-font-size);
143
+
144
+ &:focus {
145
+ outline: none;
146
+ }
147
+
148
+ &::placeholder {
149
+ color: var(--placeholder-color);
150
+ font-size: var(--jb-select-placeholder-font-size, var(--input-font-size));
151
+ }
163
152
  }
153
+ }
154
+ }
155
+
156
+ .end-section {
157
+ display: flex;
158
+ gap: 1.5rem;
159
+ align-items: center;
160
+ padding-inline-start: 0.5rem;
161
+
162
+ .arrow-icon {
163
+ margin: var(--jb-select-arrow-icon-margin, 0 0 0 0);
164
+ }
165
+
166
+ .clear-button {
167
+ /*show when there is value*/
168
+ display: none;
169
+ --icon-size: var(--clear-icon-size);
170
+ height: 100%;
171
+ }
172
+ }
164
173
 
165
- ::slotted([slot="start-section"]),
166
- ::slotted([slot="end-section"]) {
167
- height: 100%;
168
- display: flex;
169
- justify-content: center;
170
- align-items: center;
171
- max-height: 100%;
172
- overflow-y: hidden;
173
- background-color: transparent;
174
- padding: var(--inline-slots-padding);
175
- width: auto;
176
- box-sizing: border-box;
174
+ ::slotted([slot="start-section"]),
175
+ ::slotted([slot="end-section"]) {
176
+ height: 100%;
177
+ display: flex;
178
+ justify-content: center;
179
+ align-items: center;
180
+ max-height: 100%;
181
+ overflow-y: hidden;
182
+ background-color: transparent;
183
+ padding: var(--inline-slots-padding);
184
+ width: auto;
185
+ box-sizing: border-box;
186
+ }
187
+
188
+ &:focus-within .selected-value {
189
+ opacity: 0.7;
190
+ transition: all 0.3s ease;
191
+ }
192
+
193
+
194
+ }
195
+
196
+ .message-box {
197
+ font-size: var(--message-font-size);
198
+ padding: 0.125rem var(--inline-space);
199
+ color: var(--message-color);
200
+ display: var(--jb-select-message-box-display, block);
201
+
202
+ &:empty {
203
+ padding: 0;
204
+ }
205
+ }
206
+
207
+ .popover-wrapper {
208
+ position: relative;
209
+
210
+ .select-list-wrapper {
211
+ @media(--tablet-from) {
212
+ width: 100cqi;
213
+ --jb-popover-border-radius: var(--list-border-radius);
214
+ --jb-popover-bg-color: var(--select-box-bg-color);
215
+ --jb-popover-top: 0;
216
+ }
217
+
218
+ &::part(content) {
219
+
220
+ @media(--tablet-from) {
221
+ /*in desktop*/
222
+ border: solid var(--border-width) var(--border-color);
223
+ border-bottom: solid var(--border-bottom-width) var(--border-color);
224
+ border-top: none;
177
225
  }
226
+ }
227
+
228
+ .mobile-search-input-wrapper {
229
+ display: none;
178
230
 
179
- &:focus-within .selected-value {
180
- opacity: 0.7;
181
- transition: all 0.3s ease;
231
+ @media(--tablet-until) {
232
+ display: block;
233
+ margin-block-end: 1rem;
234
+ margin-inline: 0.75rem;
235
+
236
+ .search-input {
237
+ background-color: var(--jb-select-mobile-input-bgcolor, var(--select-box-bg-color));
238
+ border-radius: var(--box-border-radius);
239
+ padding: 0.125rem 0.75rem;
240
+ font-size: 1rem;
241
+ width: 100%;
242
+ height: var(--height);
243
+ }
182
244
  }
183
245
 
246
+ }
184
247
 
185
- }
186
248
 
187
- .message-box {
188
- font-size: var(--message-font-size);
189
- padding: 0.125rem var(--inline-space);
190
- color: var(--message-color);
191
- display: var(--jb-select-message-box-display, block);
249
+ .select-list {
250
+ width: 100%;
251
+ max-height: var(--jb-select-list-max-height, 400px);
252
+ overflow-y: auto;
253
+
254
+ slot {
255
+ padding: var(--jb-select-list-padding, 16px 0);
192
256
 
193
- &:empty {
257
+ &:empty {
194
258
  padding: 0;
259
+ }
195
260
  }
196
- }
197
261
 
198
- .popover-wrapper {
199
- position: relative;
200
-
201
- .select-list-wrapper {
202
- @media(--tablet-from) {
203
- width: 100cqi;
204
- --jb-popover-border-radius: var(--list-border-radius);
205
- --jb-popover-bg-color: var(--select-box-bg-color);
206
- --jb-popover-top: 0;
207
- }
208
-
209
- &::part(content) {
210
-
211
- @media(--tablet-from) {
212
- /*in desktop*/
213
- border: solid var(--border-width) var(--border-color);
214
- border-bottom: solid var(--border-bottom-width) var(--border-color);
215
- border-top: none;
216
- }
217
- }
218
-
219
- .mobile-search-input-wrapper {
220
- display: none;
221
-
222
- @media(--tablet-until) {
223
- display: block;
224
- margin-block-end: 1rem;
225
- margin-inline: 0.75rem;
226
-
227
- .search-input {
228
- background-color: var(--jb-select-mobile-input-bgcolor, var(--select-box-bg-color));
229
- border-radius: var(--box-border-radius);
230
- padding: 0.125rem 0.75rem;
231
- font-size: 1rem;
232
- width: 100%;
233
- height: var(--height);
234
- }
235
- }
236
-
237
- }
238
-
239
-
240
- .select-list {
241
- width: 100%;
242
- max-height: var(--jb-select-list-max-height, 400px);
243
- overflow-y: auto;
244
-
245
- slot {
246
- padding: var(--jb-select-list-padding, 16px 0);
247
-
248
- &:empty {
249
- padding: 0;
250
- }
251
- }
252
-
253
- /* option style places */
254
-
255
- &::-webkit-scrollbar {
256
- width: 9px;
257
- background-color: transparent;
258
- }
259
-
260
- &::-webkit-scrollbar-thumb {
261
- background-color: var(--list-scroll-color);
262
- border-radius: var(--jb-select-list-scroll-border-radius, 4px);
263
- }
264
- }
265
-
266
- .empty-list-placeholder {
267
- display: none;
268
- text-align: center;
269
- color: var(--empty-list-placeholder-color);
270
- font-style: italic;
271
- font-size: var(--input-font-size);
272
-
273
- &.--show {
274
- display: block;
275
- }
276
- }
262
+ /* option style places */
277
263
 
264
+ &::-webkit-scrollbar {
265
+ width: 9px;
266
+ background-color: transparent;
278
267
  }
279
- }
280
268
 
281
- .search-input {
282
- border: none;
283
- width: 100%;
284
- box-sizing: border-box;
285
- display: block;
286
- font-family: inherit;
269
+ &::-webkit-scrollbar-thumb {
270
+ background-color: var(--list-scroll-color);
271
+ border-radius: var(--jb-select-list-scroll-border-radius, 4px);
272
+ }
273
+ }
274
+
275
+ .empty-list-placeholder {
276
+ display: none;
277
+ text-align: center;
278
+ color: var(--empty-list-placeholder-color);
279
+ font-style: italic;
287
280
  font-size: var(--input-font-size);
288
- color: var(--value-color);
289
281
 
290
- &:focus {
291
- outline: none;
282
+ &.--show {
283
+ display: block;
292
284
  }
285
+ }
293
286
 
294
- &::placeholder {
295
- color: var(--placeholder-color);
296
- font-size: var(--jb-select-placeholder-font-size, 1.1em);
297
- }
298
287
  }
288
+ }
289
+
290
+ .search-input {
291
+ border: none;
292
+ width: 100%;
293
+ box-sizing: border-box;
294
+ display: block;
295
+ font-family: inherit;
296
+ font-size: var(--input-font-size);
297
+ color: var(--value-color);
298
+ &:disabled{
299
+ cursor: inherit;
300
+ }
301
+ &:focus {
302
+ outline: none;
303
+ }
304
+
305
+ &::placeholder {
306
+ color: var(--placeholder-color);
307
+ font-size: var(--jb-select-placeholder-font-size, 1.1em);
308
+ }
309
+ }
299
310
  }