selective-ui 1.0.2

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.
Files changed (69) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/dist/selective-ui.css +569 -0
  4. package/dist/selective-ui.css.map +1 -0
  5. package/dist/selective-ui.esm.js +6101 -0
  6. package/dist/selective-ui.esm.js.map +1 -0
  7. package/dist/selective-ui.esm.min.js +1 -0
  8. package/dist/selective-ui.esm.min.js.br +0 -0
  9. package/dist/selective-ui.min.css +1 -0
  10. package/dist/selective-ui.min.css.br +0 -0
  11. package/dist/selective-ui.min.js +2 -0
  12. package/dist/selective-ui.min.js.br +0 -0
  13. package/dist/selective-ui.umd.js +6115 -0
  14. package/dist/selective-ui.umd.js.map +1 -0
  15. package/package.json +68 -0
  16. package/src/css/components/accessorybox.css +64 -0
  17. package/src/css/components/directive.css +20 -0
  18. package/src/css/components/empty-state.css +26 -0
  19. package/src/css/components/loading-state.css +26 -0
  20. package/src/css/components/optgroup.css +62 -0
  21. package/src/css/components/option-handle.css +34 -0
  22. package/src/css/components/option.css +130 -0
  23. package/src/css/components/placeholder.css +15 -0
  24. package/src/css/components/popup.css +39 -0
  25. package/src/css/components/searchbox.css +29 -0
  26. package/src/css/components/selectbox.css +54 -0
  27. package/src/css/index.css +75 -0
  28. package/src/js/adapter/mixed-adapter.js +435 -0
  29. package/src/js/components/accessorybox.js +125 -0
  30. package/src/js/components/directive.js +38 -0
  31. package/src/js/components/empty-state.js +68 -0
  32. package/src/js/components/loading-state.js +60 -0
  33. package/src/js/components/option-handle.js +114 -0
  34. package/src/js/components/placeholder.js +57 -0
  35. package/src/js/components/popup.js +471 -0
  36. package/src/js/components/searchbox.js +168 -0
  37. package/src/js/components/selectbox.js +693 -0
  38. package/src/js/core/base/adapter.js +163 -0
  39. package/src/js/core/base/model.js +59 -0
  40. package/src/js/core/base/recyclerview.js +83 -0
  41. package/src/js/core/base/view.js +62 -0
  42. package/src/js/core/model-manager.js +286 -0
  43. package/src/js/core/search-controller.js +522 -0
  44. package/src/js/index.js +137 -0
  45. package/src/js/models/group-model.js +143 -0
  46. package/src/js/models/option-model.js +237 -0
  47. package/src/js/services/dataset-observer.js +73 -0
  48. package/src/js/services/ea-observer.js +88 -0
  49. package/src/js/services/effector.js +404 -0
  50. package/src/js/services/refresher.js +40 -0
  51. package/src/js/services/resize-observer.js +152 -0
  52. package/src/js/services/select-observer.js +61 -0
  53. package/src/js/types/adapter.type.js +33 -0
  54. package/src/js/types/effector.type.js +24 -0
  55. package/src/js/types/ievents.type.js +11 -0
  56. package/src/js/types/libs.type.js +28 -0
  57. package/src/js/types/model.type.js +11 -0
  58. package/src/js/types/recyclerview.type.js +12 -0
  59. package/src/js/types/resize-observer.type.js +19 -0
  60. package/src/js/types/view.group.type.js +13 -0
  61. package/src/js/types/view.option.type.js +15 -0
  62. package/src/js/types/view.type.js +11 -0
  63. package/src/js/utils/guard.js +47 -0
  64. package/src/js/utils/ievents.js +83 -0
  65. package/src/js/utils/istorage.js +61 -0
  66. package/src/js/utils/libs.js +619 -0
  67. package/src/js/utils/selective.js +386 -0
  68. package/src/js/views/group-view.js +103 -0
  69. package/src/js/views/option-view.js +153 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 maihcx
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,2 @@
1
+ # selective-ui
2
+ Advanced Custom Select Component - Pure JavaScript, Zero Dependencies
@@ -0,0 +1,569 @@
1
+ :root {
2
+ --seui-transparent-color: #00000000;
3
+
4
+ --seui-view-text-color: #121212;
5
+ --seui-view-ro-text-color: #a3a3a3;
6
+ --seui-view-text-style: Arial, Helvetica, sans-serif;
7
+ --seui-view-text-size: 13px;
8
+ --seui-view-mobile-text-size: 16px;
9
+ --seui-view-background-color: #ffffff;
10
+ --seui-view-ro-background-color: #00000029;
11
+ --seui-view-optgroup-background-color: #a3c6e9;
12
+ --seui-view-border-color: #a3a3a3;
13
+ --seui-view-ro-border-color: #bdbdbd;
14
+ --seui-view-border-size: 1px;
15
+ --seui-view-border-style: solid;
16
+ --seui-view-border-radius: 5px;
17
+
18
+ --seui-directive-color: #000000;
19
+ --seui-directive-ro-color: #a3a3a3;
20
+
21
+ --seui-option-crtl-text-color: #307ecc;
22
+ --seui-option-crtl-text-color-hover: #ff0000;
23
+ --seui-option-crtl-background-color: #f3f3f3;
24
+ --seui-option-crtl-border-color: #cccccc;
25
+ --seui-option-crtl-text-size: 13px;
26
+
27
+ --seui-option-padding: 5px;
28
+ --seui-option-border-radius: 5px;
29
+
30
+ --seui-accessory-max-width: 100%;
31
+ --seui-accessory-max-height: 50px;
32
+ --seui-accessory-padding: 2px 0;
33
+ --seui-accessory-item-border-color: #a3a3a3;
34
+ --seui-accessory-item-border-style: solid;
35
+ --seui-accessory-item-border-width: 1px;
36
+ --seui-accessory-item-border-radius: 3px;
37
+ --seui-accessory-item-background: #f7f7f9;
38
+ --seui-accessory-item-font-size: 11px;
39
+ --seui-accessory-item-padding: 2px;
40
+ --seui-accessory-item-gap: 3px;
41
+ --seui-accessory-item-button-color: #757575;
42
+ --seui-accessory-item-button-width: 16px;
43
+ --seui-accessory-item-button-height: 16px;
44
+ --seui-accessory-item-button-border-color: #a3a3a3;
45
+ --seui-accessory-item-button-border-style: solid;
46
+ --seui-accessory-item-button-border-width: 1px;
47
+ --seui-accessory-item-button-border-radius: 2px;
48
+ --seui-accessory-item-content-color: #307ecc;
49
+ --seui-accessory-item-content-font-size: 11px;
50
+ --seui-accessory-item-content-padding: 0 4px 0 2px;
51
+
52
+ --seui-popup-background-color: #fbfbfb;
53
+ --seui-popup-border-color: #a3a3a3;
54
+ --seui-popup-border-style: solid;
55
+ --seui-popup-border-width: 1px;
56
+ --seui-popup-border-radius: 6px;
57
+
58
+ --seui-chkbox-background-color: #ffffff;
59
+ --seui-chkbox-border-color: #8f9194;
60
+
61
+ --seui-chkbox-hover-background-color: #dbdbdb;
62
+ --seui-chkbox-hover-border-color: #b7b7b7;
63
+
64
+ --seui-chkbox-checked-background-color: #9dcff8;
65
+ --seui-chkbox-checked-border-color: #9dcff8;
66
+
67
+ --seui-chkbox-checked-hover-background-color: #9dcff8;
68
+ --seui-chkbox-checked-hover-border-color: #007eff;
69
+
70
+ --seui-chkbox-checked-color: #0075FF;
71
+
72
+ --seui-empty-state-color: #999999;
73
+ --seui-empty-state-background: #f9f9f9;
74
+ --seui-empty-state-padding: 10px 5px;
75
+ }
76
+ .selective-ui-MAIN {
77
+ display: inline-block;
78
+ max-width: min-content;
79
+ }
80
+ .selective-ui-MAIN, .selective-ui-MAIN * {
81
+ box-sizing: border-box;
82
+ touch-action: manipulation;
83
+
84
+ margin: 0;
85
+ padding: 0;
86
+
87
+ line-height: normal;
88
+ }
89
+ .selective-ui-MAIN > select.init {
90
+ display: none;
91
+ }
92
+ .selective-ui-MAIN > .selective-ui-view {
93
+ position: relative;
94
+ width: 100%;
95
+ height: 100%;
96
+
97
+ display: flex;
98
+ flex-direction: row;
99
+ align-items: center;
100
+
101
+ background-color: var(--seui-view-background-color);
102
+ border: var(--seui-view-border-style) var(--seui-view-border-size) var(--seui-view-border-color);
103
+ border-radius: var(--seui-view-border-radius);
104
+ }
105
+
106
+ .selective-ui-MAIN.invisible {
107
+ display: none;
108
+ }
109
+
110
+ .selective-ui-MAIN.disabled {
111
+ --seui-view-background-color: var(--seui-view-ro-background-color);
112
+ --seui-view-border-color: var(--seui-view-ro-border-color);
113
+ --seui-view-text-color: var(--seui-view-ro-text-color);
114
+ --seui-directive-color: var(--seui-directive-ro-color);
115
+ }
116
+
117
+ .selective-ui-MAIN .hide {
118
+ display: none;
119
+ }
120
+
121
+ @supports (-webkit-touch-callout: none) {
122
+ :root {
123
+ --seui-view-text-size: var(--seui-view-mobile-text-size);
124
+ }
125
+ }
126
+ .selective-ui-placeholder {
127
+ display: flex;
128
+ align-items: center;
129
+
130
+ margin-left: 10px;
131
+ max-width: calc(100% - 30px);
132
+ height: calc(100% - 10px);
133
+ text-overflow: ellipsis;
134
+ white-space: nowrap;
135
+ pointer-events: none;
136
+ font-family: var(--seui-view-text-style);
137
+ font-size: var(--seui-view-text-size) !important;
138
+ overflow: hidden;
139
+ color: var(--seui-view-text-color);
140
+ }
141
+ .selective-ui-directive {
142
+ content: " ";
143
+ position: absolute;
144
+ display: inline-block;
145
+ vertical-align: middle;
146
+ transition: all linear 200ms;
147
+ border-top: 4px solid var(--seui-directive-color);
148
+ border-right: 4px solid transparent;
149
+ border-left: 4px solid transparent;
150
+ width: 0;
151
+ height: 0;
152
+ right: 10px;
153
+ top: 50%;
154
+ transform: translateY(-50%) rotate(0deg);
155
+ z-index: 1;
156
+ pointer-events: none;
157
+ }
158
+ .selective-ui-directive.drop-down {
159
+ transform: translateY(-50%) rotate(180deg);
160
+ }
161
+ .selective-ui-empty-state {
162
+ display: flex;
163
+ align-items: center;
164
+ justify-content: center;
165
+ padding: var(--seui-empty-state-padding, 20px);
166
+ text-align: center;
167
+ font-family: var(--seui-view-text-style);
168
+ font-size: var(--seui-view-text-size);
169
+ color: var(--seui-empty-state-color, #999);
170
+ background-color: var(--seui-empty-state-background, transparent);
171
+ border-radius: var(--seui-option-border-radius);
172
+ min-height: 60px;
173
+
174
+ position: sticky;
175
+ bottom: 0;
176
+ }
177
+
178
+ .selective-ui-empty-state.small {
179
+ text-align: left;
180
+ justify-content: flex-start;
181
+ min-height: 30px;
182
+ }
183
+
184
+ .selective-ui-empty-state.hide {
185
+ display: none;
186
+ }
187
+ .selective-ui-loading-state {
188
+ display: flex;
189
+ align-items: center;
190
+ justify-content: center;
191
+ padding: var(--seui-empty-state-padding, 20px);
192
+ text-align: center;
193
+ font-family: var(--seui-view-text-style);
194
+ font-size: var(--seui-view-text-size);
195
+ color: var(--seui-empty-state-color, #999);
196
+ background-color: var(--seui-empty-state-background, transparent);
197
+ border-radius: var(--seui-option-border-radius);
198
+ min-height: 60px;
199
+
200
+ position: sticky;
201
+ bottom: 0;
202
+ }
203
+
204
+ .selective-ui-loading-state.small {
205
+ text-align: left;
206
+ justify-content: flex-start;
207
+ min-height: 30px;
208
+ }
209
+
210
+ .selective-ui-loading-state.hide {
211
+ display: none;
212
+ }
213
+ .selective-ui-group {
214
+ display: flex;
215
+ flex-direction: column;
216
+ gap: 2px;
217
+ }
218
+
219
+ .selective-ui-group.hide {
220
+ display: none;
221
+ }
222
+
223
+ .selective-ui-group-header {
224
+ font-family: var(--seui-view-text-style);
225
+ font-size: var(--seui-view-text-size);
226
+ font-weight: 600;
227
+ color: var(--seui-view-text-color);
228
+ padding: 8px 12px;
229
+ background-color: var(--seui-view-optgroup-background-color);
230
+ border-radius: var(--seui-option-border-radius);
231
+ /* position: sticky; */
232
+ /* top: 0; */
233
+ z-index: 1;
234
+ cursor: pointer;
235
+ -webkit-user-select: none;
236
+ user-select: none;
237
+
238
+ display: flex;
239
+ align-items: center;
240
+ gap: 8px;
241
+ }
242
+
243
+ .selective-ui-group-header::before {
244
+ content: "";
245
+ display: inline-block;
246
+ width: 0;
247
+ height: 0;
248
+ border-top: 5px solid transparent;
249
+ border-bottom: 5px solid transparent;
250
+ border-left: 7px solid currentColor;
251
+ transition: transform 200ms ease;
252
+ transform: rotate(90deg);
253
+ }
254
+
255
+ .selective-ui-group.collapsed .selective-ui-group-header::before {
256
+ transform: rotate(0deg);
257
+ }
258
+
259
+ .selective-ui-group-items {
260
+ display: flex;
261
+ flex-direction: column;
262
+ gap: 2px;
263
+ padding-left: 16px;
264
+ }
265
+
266
+ .selective-ui-group.collapsed .selective-ui-group-items {
267
+ display: none;
268
+ }
269
+
270
+ /* Option trong group có indent nhẹ hơn */
271
+ .selective-ui-group-items .selective-ui-option-view {
272
+ padding-left: 12px;
273
+ border-left: 2px solid #e0e0e0;
274
+ margin-left: 4px;
275
+ }
276
+ .selective-ui-popup, .selective-ui-popup * {
277
+ box-sizing: border-box;
278
+
279
+ line-height: normal;
280
+ }
281
+
282
+ .selective-ui-popup {
283
+ display: none;
284
+ position: fixed;
285
+ z-index: 9999;
286
+ overflow: none;
287
+ flex-direction: column;
288
+
289
+ height: 0px;
290
+ padding: 2px;
291
+ gap: 2px;
292
+
293
+ background-color: var(--seui-popup-background-color);
294
+ border-color: var(--seui-popup-border-color);
295
+ border-style: var(--seui-popup-border-style);
296
+ border-width: var(--seui-popup-border-width);
297
+ border-radius: var(--seui-popup-border-radius);
298
+ }
299
+
300
+ .selective-ui-options-container {
301
+ display: flex;
302
+ flex-direction: column;
303
+ width: 100%;
304
+ gap: 2px;
305
+
306
+ -webkit-overflow-scrolling: touch;
307
+ touch-action: pan-y;
308
+ }
309
+
310
+ .selective-ui-options-container.hide {
311
+ display: none;
312
+ }
313
+ .selective-ui-searchbox {
314
+ display: flex;
315
+ flex-direction: row;
316
+ align-items: center;
317
+ position: absolute;
318
+
319
+ background-color: var(--seui-view-background-color);
320
+ border-radius: 5px;
321
+ z-index: 2;
322
+ width: calc(100% - 30px);
323
+ height: 100%;
324
+ }
325
+
326
+ .selective-ui-searchbox-input {
327
+ width: 100%;
328
+ height: calc(100% - 10px);
329
+ border: 0;
330
+ outline: none !important;
331
+ background: var(--seui-transparent-color);
332
+ color: var(--seui-view-text-color);
333
+ padding: 0 !important;
334
+ margin-left: 10px;
335
+ text-indent: 0px;
336
+ font-family: var(--seui-view-text-style);
337
+ font-size: var(--seui-view-text-size) !important;
338
+ overflow: hidden;
339
+ text-overflow: ellipsis;
340
+ white-space: nowrap;
341
+ }
342
+ .selective-ui-option-handle {
343
+ display: flex;
344
+ flex-direction: row;
345
+ align-items: center;
346
+ justify-content: space-between;
347
+
348
+ font-size: var(--seui-option-crtl-text-size);
349
+ font-family: var(--seui-view-text-style);
350
+ width: unset;
351
+ position: sticky;
352
+ top: 0px;
353
+ padding: var(--seui-option-padding);
354
+ z-index: 2;
355
+ background-color: var(--seui-option-crtl-background-color);
356
+ border: 1px solid var(--seui-option-crtl-border-color);
357
+ border-radius: var(--seui-option-border-radius);
358
+ }
359
+
360
+ .selective-ui-option-handle.hide {
361
+ display: none;
362
+ }
363
+
364
+ .selective-ui-option-handle-item {
365
+ text-decoration: none;
366
+ cursor: pointer;
367
+ color: var(--seui-option-crtl-text-color);
368
+ overflow: hidden;
369
+ text-overflow: ellipsis;
370
+ white-space: nowrap;
371
+ }
372
+
373
+ .selective-ui-option-handle-item:hover {
374
+ color: var(--seui-option-crtl-text-color-hover);
375
+ }
376
+ .selective-ui-option-view {
377
+ display: flex;
378
+ width: auto;
379
+ flex-direction: row;
380
+ align-items: center !important;
381
+ position: relative;
382
+ border-radius: 4px;
383
+ line-height: normal;
384
+ padding: 5px;
385
+ gap: 7px;
386
+ transition: all 180ms;
387
+
388
+ background-color: var(--seui-transparent-color);
389
+ border: solid 1px var(--seui-transparent-color);
390
+ }
391
+
392
+ .selective-ui-option-view.checked {
393
+ background-color: var(--seui-chkbox-checked-background-color);
394
+ border-color: var(--seui-chkbox-checked-border-color);
395
+ }
396
+
397
+ .selective-ui-option-view > input {
398
+ display: none;
399
+ }
400
+
401
+ .selective-ui-option-view > label {
402
+ width: 100%;
403
+ height: 100%;
404
+ display: flex;
405
+ gap: 7px;
406
+ font-family: var(--seui-view-text-style);
407
+ font-size: var(--seui-view-text-size);
408
+ color: var(--seui-view-text-color);
409
+ align-items: center;
410
+ }
411
+
412
+ .selective-ui-option-view.multiple > label::before {
413
+ content: "";
414
+ display: block;
415
+ width: 17px;
416
+ min-width: 17px;
417
+ height: 17px;
418
+ min-height: 17px;
419
+ background: var(--seui-chkbox-background-color);
420
+ border: 1px solid var(--seui-chkbox-border-color);
421
+ border-radius: 0.2em;
422
+ transition: all 200ms, background 200ms ease-in-out;
423
+ }
424
+
425
+ .selective-ui-option-view.multiple.checked > label::before {
426
+ color: var(--seui-view-background-color);
427
+ background: var(--seui-chkbox-checked-color) url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTciIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNyAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjE2ODQ3IDEyLjM4MDhDNy43Nzc3OCAxMi43NzIyIDcuMTQzNTMgMTIuNzcyMiA2Ljc1Mjg0IDEyLjM4MDhMMi43NDQ5OCA4LjM2NDlDMi4zNTU0IDcuOTc0NTQgMi4zNTU0IDcuMzQyNDcgMi43NDQ5OCA2Ljk1MjFMMy4xNjQ1MiA2LjUzMTczQzMuNTU1MiA2LjE0MDI3IDQuMTg5NDYgNi4xNDAyNyA0LjU4MDE0IDYuNTMxNzNMNi43NTI4NCA4LjcwODc4QzcuMTQzNTIgOS4xMDAyNCA3Ljc3Nzc4IDkuMTAwMjQgOC4xNjg0NiA4LjcwODc4TDEyLjI0OTggNC42MTkyM0MxMi42NDA1IDQuMjI3NzcgMTMuMjc0OCA0LjIyNzc3IDEzLjY2NTUgNC42MTkyM0wxNC4wODUgNS4wMzk2QzE0LjQ3NDYgNS40Mjk5NyAxNC40NzQ2IDYuMDYyMDQgMTQuMDg1IDYuNDUyNEw4LjE2ODQ3IDEyLjM4MDhaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K) 50% 40% no-repeat;
428
+ border: 1px solid var(--seui-chkbox-checked-color);
429
+ }
430
+
431
+ .selective-ui-option-view > label > div {
432
+ width: 100%;
433
+ height: 100%;
434
+
435
+ display: flex;
436
+ overflow: hidden;
437
+ text-overflow: ellipsis;
438
+ white-space: nowrap;
439
+ }
440
+
441
+ .selective-ui-option-view > label.align-horizontal-left > div {
442
+ justify-content: flex-start;
443
+ }
444
+
445
+ .selective-ui-option-view > label.align-horizontal-center > div {
446
+ justify-content: center;
447
+ }
448
+
449
+ .selective-ui-option-view > label.align-horizontal-right > div {
450
+ justify-content: flex-end;
451
+ }
452
+
453
+ .selective-ui-option-view > label.align-vertical-left > div {
454
+ align-items: flex-start;
455
+ }
456
+
457
+ .selective-ui-option-view > label.align-vertical-center > div {
458
+ align-items: center;
459
+ }
460
+
461
+ .selective-ui-option-view > label.align-vertical-right > div {
462
+ align-items: flex-end;
463
+ }
464
+
465
+ .selective-ui-option-view.hide {
466
+ display: none;
467
+ }
468
+
469
+ .selective-ui-option-view.highlight {
470
+ background-color: var(--seui-chkbox-hover-background-color);
471
+ border-color: var(--seui-chkbox-hover-border-color);
472
+ }
473
+
474
+ .selective-ui-option-view.highlight.checked {
475
+ background-color: var(--seui-chkbox-checked-hover-background-color);
476
+ border-color: var(--seui-chkbox-checked-hover-border-color);
477
+ }
478
+
479
+ .selective-ui-option-view.has-image {
480
+ gap: 10px;
481
+ }
482
+
483
+ .selective-ui-option-view.has-image.image-top {
484
+ flex-direction: column;
485
+ align-items: center;
486
+ text-align: center;
487
+ }
488
+
489
+ .selective-ui-option-view.has-image.image-right {
490
+ flex-direction: row-reverse;
491
+ }
492
+
493
+ .selective-ui-option-view.has-image.image-bottom {
494
+ flex-direction: column-reverse;
495
+ }
496
+
497
+ .selective-ui-option-view .option-image {
498
+ object-fit: cover;
499
+ flex-shrink: 0;
500
+ }
501
+
502
+ .selective-ui-option-view.multiple.has-image > label::before {
503
+ order: -1;
504
+ }
505
+ .selective-ui-accessorybox {
506
+ display: flex;
507
+ flex-direction: row;
508
+ flex-wrap: wrap;
509
+
510
+ gap: 2px;
511
+ padding: var(--seui-accessory-padding);
512
+ max-width: var(--seui-accessory-max-width);
513
+ max-height: var(--seui-accessory-max-height);
514
+ overflow-y: scroll;
515
+ }
516
+
517
+ .accessory-item {
518
+ display: flex;
519
+ align-items: center;
520
+
521
+ overflow: hidden;
522
+ border-color: var(--seui-accessory-item-border-color);
523
+ border-style: var(--seui-accessory-item-border-style);
524
+ border-width: var(--seui-accessory-item-border-width);
525
+ border-radius: var(--seui-accessory-item-border-radius);
526
+
527
+ background: var(--seui-accessory-item-background);
528
+ font-size: var(--seui-accessory-item-font-size);
529
+ padding: var(--seui-accessory-item-padding);
530
+ gap: var(--seui-accessory-item-gap);
531
+ }
532
+
533
+ .accessory-item > .accessory-item-button {
534
+ position: relative;
535
+ cursor: pointer;
536
+ color: var(--seui-accessory-item-button-color);
537
+ font-weight: bold;
538
+
539
+ border-color: var(--seui-accessory-item-button-border-color);
540
+ border-style: var(--seui-accessory-item-button-border-style);
541
+ border-width: var(--seui-accessory-item-button-border-width);
542
+ border-radius: var(--seui-accessory-item-button-border-radius);
543
+
544
+ width: var(--seui-accessory-item-button-width);
545
+ min-width: var(--seui-accessory-item-button-width);
546
+ height: var(--seui-accessory-item-button-height);
547
+ min-height: var(--seui-accessory-item-button-height);
548
+ }
549
+
550
+ .accessory-item > .accessory-item-button::after {
551
+ background: url('data:image/svg+xml,<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><g><title>Layer 1</title><g transform="rotate(45 8 8)" stroke="null" id="svg_28"><rect stroke="%23000" rx="1" id="svg_20" height="1.41129" width="7.76211" y="7.29435" x="4.11895" stroke-width="0" fill="%234c4c4c"/><rect stroke="%23000" transform="matrix(0 0.705646 -0.705646 0 12.0262 3.97378)" rx="1" id="svg_27" height="2" width="11" y="4.70572" x="0.20572" stroke-width="0" fill="%234c4c4c"/></g></g></svg>');
552
+ display: block;
553
+ content: "";
554
+ position: absolute;
555
+ background-repeat: no-repeat;
556
+ background-position: center center;
557
+ width: 100%;
558
+ height: 100%;
559
+ }
560
+
561
+ .accessory-item > .accessory-item-content {
562
+ color: var(--seui-accessory-item-content-color);
563
+ font-size: var(--seui-accessory-item-content-font-size);
564
+ padding: var(--seui-accessory-item-content-padding);
565
+ overflow: hidden;
566
+ text-overflow: ellipsis;
567
+ white-space: nowrap;
568
+ }
569
+ /*# sourceMappingURL=selective-ui.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.css","selectbox.css","placeholder.css","directive.css","empty-state.css","loading-state.css","optgroup.css","popup.css","searchbox.css","option-handle.css","option.css","accessorybox.css"],"names":[],"mappings":"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","file":"selective-ui.css","sourcesContent":[":root {\r\n --seui-transparent-color: #00000000;\r\n\r\n --seui-view-text-color: #121212;\r\n --seui-view-ro-text-color: #a3a3a3;\r\n --seui-view-text-style: Arial, Helvetica, sans-serif;\r\n --seui-view-text-size: 13px;\r\n --seui-view-mobile-text-size: 16px;\r\n --seui-view-background-color: #ffffff;\r\n --seui-view-ro-background-color: #00000029;\r\n --seui-view-optgroup-background-color: #a3c6e9;\r\n --seui-view-border-color: #a3a3a3;\r\n --seui-view-ro-border-color: #bdbdbd;\r\n --seui-view-border-size: 1px;\r\n --seui-view-border-style: solid;\r\n --seui-view-border-radius: 5px;\r\n\r\n --seui-directive-color: #000000;\r\n --seui-directive-ro-color: #a3a3a3;\r\n\r\n --seui-option-crtl-text-color: #307ecc;\r\n --seui-option-crtl-text-color-hover: #ff0000;\r\n --seui-option-crtl-background-color: #f3f3f3;\r\n --seui-option-crtl-border-color: #cccccc;\r\n --seui-option-crtl-text-size: 13px;\r\n\r\n --seui-option-padding: 5px;\r\n --seui-option-border-radius: 5px;\r\n\r\n --seui-accessory-max-width: 100%;\r\n --seui-accessory-max-height: 50px;\r\n --seui-accessory-padding: 2px 0;\r\n --seui-accessory-item-border-color: #a3a3a3;\r\n --seui-accessory-item-border-style: solid;\r\n --seui-accessory-item-border-width: 1px;\r\n --seui-accessory-item-border-radius: 3px;\r\n --seui-accessory-item-background: #f7f7f9;\r\n --seui-accessory-item-font-size: 11px;\r\n --seui-accessory-item-padding: 2px;\r\n --seui-accessory-item-gap: 3px;\r\n --seui-accessory-item-button-color: #757575;\r\n --seui-accessory-item-button-width: 16px;\r\n --seui-accessory-item-button-height: 16px;\r\n --seui-accessory-item-button-border-color: #a3a3a3;\r\n --seui-accessory-item-button-border-style: solid;\r\n --seui-accessory-item-button-border-width: 1px;\r\n --seui-accessory-item-button-border-radius: 2px;\r\n --seui-accessory-item-content-color: #307ecc;\r\n --seui-accessory-item-content-font-size: 11px;\r\n --seui-accessory-item-content-padding: 0 4px 0 2px;\r\n\r\n --seui-popup-background-color: #fbfbfb;\r\n --seui-popup-border-color: #a3a3a3;\r\n --seui-popup-border-style: solid;\r\n --seui-popup-border-width: 1px;\r\n --seui-popup-border-radius: 6px;\r\n\r\n --seui-chkbox-background-color: #ffffff;\r\n --seui-chkbox-border-color: #8f9194;\r\n\r\n --seui-chkbox-hover-background-color: #dbdbdb;\r\n --seui-chkbox-hover-border-color: #b7b7b7;\r\n\r\n --seui-chkbox-checked-background-color: #9dcff8;\r\n --seui-chkbox-checked-border-color: #9dcff8;\r\n\r\n --seui-chkbox-checked-hover-background-color: #9dcff8;\r\n --seui-chkbox-checked-hover-border-color: #007eff;\r\n\r\n --seui-chkbox-checked-color: #0075FF;\r\n\r\n --seui-empty-state-color: #999999;\r\n --seui-empty-state-background: #f9f9f9;\r\n --seui-empty-state-padding: 10px 5px;\r\n}",".selective-ui-MAIN {\r\n display: inline-block;\r\n max-width: min-content;\r\n}\r\n.selective-ui-MAIN, .selective-ui-MAIN * {\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n\r\n -ms-touch-action: manipulation;\r\n touch-action: manipulation;\r\n\r\n margin: 0;\r\n padding: 0;\r\n\r\n line-height: normal;\r\n}\r\n.selective-ui-MAIN > select.init {\r\n display: none;\r\n}\r\n.selective-ui-MAIN > .selective-ui-view {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n\r\n background-color: var(--seui-view-background-color);\r\n border: var(--seui-view-border-style) var(--seui-view-border-size) var(--seui-view-border-color);\r\n border-radius: var(--seui-view-border-radius);\r\n}\r\n\r\n.selective-ui-MAIN.invisible {\r\n display: none;\r\n}\r\n\r\n.selective-ui-MAIN.disabled {\r\n --seui-view-background-color: var(--seui-view-ro-background-color);\r\n --seui-view-border-color: var(--seui-view-ro-border-color);\r\n --seui-view-text-color: var(--seui-view-ro-text-color);\r\n --seui-directive-color: var(--seui-directive-ro-color);\r\n}\r\n\r\n.selective-ui-MAIN .hide {\r\n display: none;\r\n}\r\n\r\n@supports (-webkit-touch-callout: none) {\r\n :root {\r\n --seui-view-text-size: var(--seui-view-mobile-text-size);\r\n }\r\n}",".selective-ui-placeholder {\r\n display: flex;\r\n align-items: center;\r\n \r\n margin-left: 10px;\r\n max-width: calc(100% - 30px);\r\n height: calc(100% - 10px);\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n pointer-events: none;\r\n font-family: var(--seui-view-text-style);\r\n font-size: var(--seui-view-text-size) !important;\r\n overflow: hidden;\r\n color: var(--seui-view-text-color);\r\n}",".selective-ui-directive {\r\n content: \" \";\r\n position: absolute;\r\n display: inline-block;\r\n vertical-align: middle;\r\n transition: all linear 200ms;\r\n border-top: 4px solid var(--seui-directive-color);\r\n border-right: 4px solid transparent;\r\n border-left: 4px solid transparent;\r\n width: 0;\r\n height: 0;\r\n right: 10px;\r\n top: 50%;\r\n transform: translateY(-50%) rotate(0deg);\r\n z-index: 1;\r\n pointer-events: none;\r\n}\r\n.selective-ui-directive.drop-down {\r\n transform: translateY(-50%) rotate(180deg);\r\n}",".selective-ui-empty-state {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: var(--seui-empty-state-padding, 20px);\r\n text-align: center;\r\n font-family: var(--seui-view-text-style);\r\n font-size: var(--seui-view-text-size);\r\n color: var(--seui-empty-state-color, #999);\r\n background-color: var(--seui-empty-state-background, transparent);\r\n border-radius: var(--seui-option-border-radius);\r\n min-height: 60px;\r\n\r\n position: sticky;\r\n bottom: 0;\r\n}\r\n\r\n.selective-ui-empty-state.small {\r\n text-align: left;\r\n justify-content: flex-start;\r\n min-height: 30px;\r\n}\r\n\r\n.selective-ui-empty-state.hide {\r\n display: none;\r\n}",".selective-ui-loading-state {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: var(--seui-empty-state-padding, 20px);\r\n text-align: center;\r\n font-family: var(--seui-view-text-style);\r\n font-size: var(--seui-view-text-size);\r\n color: var(--seui-empty-state-color, #999);\r\n background-color: var(--seui-empty-state-background, transparent);\r\n border-radius: var(--seui-option-border-radius);\r\n min-height: 60px;\r\n\r\n position: sticky;\r\n bottom: 0;\r\n}\r\n\r\n.selective-ui-loading-state.small {\r\n text-align: left;\r\n justify-content: flex-start;\r\n min-height: 30px;\r\n}\r\n\r\n.selective-ui-loading-state.hide {\r\n display: none;\r\n}",".selective-ui-group {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 2px;\r\n}\r\n\r\n.selective-ui-group.hide {\r\n display: none;\r\n}\r\n\r\n.selective-ui-group-header {\r\n font-family: var(--seui-view-text-style);\r\n font-size: var(--seui-view-text-size);\r\n font-weight: 600;\r\n color: var(--seui-view-text-color);\r\n padding: 8px 12px;\r\n background-color: var(--seui-view-optgroup-background-color);\r\n border-radius: var(--seui-option-border-radius);\r\n /* position: sticky; */\r\n /* top: 0; */\r\n z-index: 1;\r\n cursor: pointer;\r\n user-select: none;\r\n \r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n}\r\n\r\n.selective-ui-group-header::before {\r\n content: \"\";\r\n display: inline-block;\r\n width: 0;\r\n height: 0;\r\n border-top: 5px solid transparent;\r\n border-bottom: 5px solid transparent;\r\n border-left: 7px solid currentColor;\r\n transition: transform 200ms ease;\r\n transform: rotate(90deg);\r\n}\r\n\r\n.selective-ui-group.collapsed .selective-ui-group-header::before {\r\n transform: rotate(0deg);\r\n}\r\n\r\n.selective-ui-group-items {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 2px;\r\n padding-left: 16px;\r\n}\r\n\r\n.selective-ui-group.collapsed .selective-ui-group-items {\r\n display: none;\r\n}\r\n\r\n/* Option trong group có indent nhẹ hơn */\r\n.selective-ui-group-items .selective-ui-option-view {\r\n padding-left: 12px;\r\n border-left: 2px solid #e0e0e0;\r\n margin-left: 4px;\r\n}",".selective-ui-popup, .selective-ui-popup * {\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n\r\n line-height: normal;\r\n}\r\n\r\n.selective-ui-popup {\r\n display: none;\r\n position: fixed;\r\n z-index: 9999;\r\n overflow: none;\r\n flex-direction: column;\r\n \r\n height: 0px;\r\n padding: 2px;\r\n gap: 2px;\r\n\r\n background-color: var(--seui-popup-background-color);\r\n border-color: var(--seui-popup-border-color);\r\n border-style: var(--seui-popup-border-style);\r\n border-width: var(--seui-popup-border-width);\r\n border-radius: var(--seui-popup-border-radius);\r\n}\r\n\r\n.selective-ui-options-container {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n gap: 2px;\r\n\r\n -webkit-overflow-scrolling: touch;\r\n touch-action: pan-y;\r\n}\r\n\r\n.selective-ui-options-container.hide {\r\n display: none;\r\n}",".selective-ui-searchbox {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n position: absolute;\r\n \r\n background-color: var(--seui-view-background-color);\r\n border-radius: 5px;\r\n z-index: 2;\r\n width: calc(100% - 30px);\r\n height: 100%;\r\n}\r\n\r\n.selective-ui-searchbox-input {\r\n width: 100%;\r\n height: calc(100% - 10px);\r\n border: 0;\r\n outline: none !important;\r\n background: var(--seui-transparent-color);\r\n color: var(--seui-view-text-color);\r\n padding: 0 !important;\r\n margin-left: 10px;\r\n text-indent: 0px;\r\n font-family: var(--seui-view-text-style);\r\n font-size: var(--seui-view-text-size) !important;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}",".selective-ui-option-handle {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: space-between;\r\n \r\n font-size: var(--seui-option-crtl-text-size);\r\n font-family: var(--seui-view-text-style);\r\n width: unset;\r\n position: sticky;\r\n top: 0px;\r\n padding: var(--seui-option-padding);\r\n z-index: 2;\r\n background-color: var(--seui-option-crtl-background-color);\r\n border: 1px solid var(--seui-option-crtl-border-color);\r\n border-radius: var(--seui-option-border-radius);\r\n}\r\n\r\n.selective-ui-option-handle.hide {\r\n display: none;\r\n}\r\n\r\n.selective-ui-option-handle-item {\r\n text-decoration: none;\r\n cursor: pointer;\r\n color: var(--seui-option-crtl-text-color);\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.selective-ui-option-handle-item:hover {\r\n color: var(--seui-option-crtl-text-color-hover);\r\n}",".selective-ui-option-view {\r\n display: flex;\r\n width: auto;\r\n flex-direction: row;\r\n align-items: center !important;\r\n position: relative;\r\n border-radius: 4px;\r\n line-height: normal;\r\n padding: 5px;\r\n gap: 7px;\r\n transition: all 180ms;\r\n\r\n background-color: var(--seui-transparent-color);\r\n border: solid 1px var(--seui-transparent-color);\r\n}\r\n\r\n.selective-ui-option-view.checked {\r\n background-color: var(--seui-chkbox-checked-background-color);\r\n border-color: var(--seui-chkbox-checked-border-color);\r\n}\r\n\r\n.selective-ui-option-view > input {\r\n display: none;\r\n}\r\n\r\n.selective-ui-option-view > label {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n gap: 7px;\r\n font-family: var(--seui-view-text-style);\r\n font-size: var(--seui-view-text-size);\r\n color: var(--seui-view-text-color);\r\n align-items: center;\r\n}\r\n\r\n.selective-ui-option-view.multiple > label::before {\r\n content: \"\";\r\n display: block;\r\n width: 17px;\r\n min-width: 17px;\r\n height: 17px;\r\n min-height: 17px;\r\n background: var(--seui-chkbox-background-color);\r\n border: 1px solid var(--seui-chkbox-border-color);\r\n border-radius: 0.2em;\r\n -webkit-transition: all 200ms, background 200ms ease-in-out;\r\n transition: all 200ms, background 200ms ease-in-out;\r\n}\r\n\r\n.selective-ui-option-view.multiple.checked > label::before {\r\n color: var(--seui-view-background-color);\r\n background: var(--seui-chkbox-checked-color) url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTciIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNyAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjE2ODQ3IDEyLjM4MDhDNy43Nzc3OCAxMi43NzIyIDcuMTQzNTMgMTIuNzcyMiA2Ljc1Mjg0IDEyLjM4MDhMMi43NDQ5OCA4LjM2NDlDMi4zNTU0IDcuOTc0NTQgMi4zNTU0IDcuMzQyNDcgMi43NDQ5OCA2Ljk1MjFMMy4xNjQ1MiA2LjUzMTczQzMuNTU1MiA2LjE0MDI3IDQuMTg5NDYgNi4xNDAyNyA0LjU4MDE0IDYuNTMxNzNMNi43NTI4NCA4LjcwODc4QzcuMTQzNTIgOS4xMDAyNCA3Ljc3Nzc4IDkuMTAwMjQgOC4xNjg0NiA4LjcwODc4TDEyLjI0OTggNC42MTkyM0MxMi42NDA1IDQuMjI3NzcgMTMuMjc0OCA0LjIyNzc3IDEzLjY2NTUgNC42MTkyM0wxNC4wODUgNS4wMzk2QzE0LjQ3NDYgNS40Mjk5NyAxNC40NzQ2IDYuMDYyMDQgMTQuMDg1IDYuNDUyNEw4LjE2ODQ3IDEyLjM4MDhaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K) 50% 40% no-repeat;\r\n border: 1px solid var(--seui-chkbox-checked-color);\r\n}\r\n\r\n.selective-ui-option-view > label > div {\r\n width: 100%;\r\n height: 100%;\r\n\r\n display: flex;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.selective-ui-option-view > label.align-horizontal-left > div {\r\n justify-content: flex-start;\r\n}\r\n\r\n.selective-ui-option-view > label.align-horizontal-center > div {\r\n justify-content: center;\r\n}\r\n\r\n.selective-ui-option-view > label.align-horizontal-right > div {\r\n justify-content: flex-end;\r\n}\r\n\r\n.selective-ui-option-view > label.align-vertical-left > div {\r\n align-items: flex-start;\r\n}\r\n\r\n.selective-ui-option-view > label.align-vertical-center > div {\r\n align-items: center;\r\n}\r\n\r\n.selective-ui-option-view > label.align-vertical-right > div {\r\n align-items: flex-end;\r\n}\r\n\r\n.selective-ui-option-view.hide {\r\n display: none;\r\n}\r\n\r\n.selective-ui-option-view.highlight {\r\n background-color: var(--seui-chkbox-hover-background-color);\r\n border-color: var(--seui-chkbox-hover-border-color);\r\n}\r\n\r\n.selective-ui-option-view.highlight.checked {\r\n background-color: var(--seui-chkbox-checked-hover-background-color);\r\n border-color: var(--seui-chkbox-checked-hover-border-color);\r\n}\r\n\r\n.selective-ui-option-view.has-image {\r\n gap: 10px;\r\n}\r\n\r\n.selective-ui-option-view.has-image.image-top {\r\n flex-direction: column;\r\n align-items: center;\r\n text-align: center;\r\n}\r\n\r\n.selective-ui-option-view.has-image.image-right {\r\n flex-direction: row-reverse;\r\n}\r\n\r\n.selective-ui-option-view.has-image.image-bottom {\r\n flex-direction: column-reverse;\r\n}\r\n\r\n.selective-ui-option-view .option-image {\r\n object-fit: cover;\r\n flex-shrink: 0;\r\n}\r\n\r\n.selective-ui-option-view.multiple.has-image > label::before {\r\n order: -1;\r\n}",".selective-ui-accessorybox {\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n\r\n gap: 2px;\r\n padding: var(--seui-accessory-padding);\r\n max-width: var(--seui-accessory-max-width);\r\n max-height: var(--seui-accessory-max-height);\r\n overflow-y: scroll;\r\n}\r\n\r\n.accessory-item {\r\n display: flex;\r\n align-items: center;\r\n\r\n overflow: hidden;\r\n border-color: var(--seui-accessory-item-border-color);\r\n border-style: var(--seui-accessory-item-border-style);\r\n border-width: var(--seui-accessory-item-border-width);\r\n border-radius: var(--seui-accessory-item-border-radius);\r\n\r\n background: var(--seui-accessory-item-background);\r\n font-size: var(--seui-accessory-item-font-size);\r\n padding: var(--seui-accessory-item-padding);\r\n gap: var(--seui-accessory-item-gap);\r\n}\r\n\r\n.accessory-item > .accessory-item-button {\r\n position: relative;\r\n cursor: pointer;\r\n color: var(--seui-accessory-item-button-color);\r\n font-weight: bold;\r\n\r\n border-color: var(--seui-accessory-item-button-border-color);\r\n border-style: var(--seui-accessory-item-button-border-style);\r\n border-width: var(--seui-accessory-item-button-border-width);\r\n border-radius: var(--seui-accessory-item-button-border-radius);\r\n\r\n width: var(--seui-accessory-item-button-width);\r\n min-width: var(--seui-accessory-item-button-width);\r\n height: var(--seui-accessory-item-button-height);\r\n min-height: var(--seui-accessory-item-button-height);\r\n}\r\n\r\n.accessory-item > .accessory-item-button::after {\r\n background: url('data:image/svg+xml,<svg width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\"><g><title>Layer 1</title><g transform=\"rotate(45 8 8)\" stroke=\"null\" id=\"svg_28\"><rect stroke=\"%23000\" rx=\"1\" id=\"svg_20\" height=\"1.41129\" width=\"7.76211\" y=\"7.29435\" x=\"4.11895\" stroke-width=\"0\" fill=\"%234c4c4c\"/><rect stroke=\"%23000\" transform=\"matrix(0 0.705646 -0.705646 0 12.0262 3.97378)\" rx=\"1\" id=\"svg_27\" height=\"2\" width=\"11\" y=\"4.70572\" x=\"0.20572\" stroke-width=\"0\" fill=\"%234c4c4c\"/></g></g></svg>');\r\n display: block;\r\n content: \"\";\r\n position: absolute;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.accessory-item > .accessory-item-content {\r\n color: var(--seui-accessory-item-content-color);\r\n font-size: var(--seui-accessory-item-content-font-size);\r\n padding: var(--seui-accessory-item-content-padding);\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}"]}