activeadmin_slimselect 1.0.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.
@@ -0,0 +1,571 @@
1
+ :root {
2
+ --ss-primary-color: #5897fb;
3
+ --ss-bg-color: #ffffff;
4
+ --ss-font-color: #4d4d4d;
5
+ --ss-placeholder-color: #8d8d8d;
6
+ --ss-disabled-color: #dcdee2;
7
+ --ss-border-color: #dcdee2;
8
+ --ss-highlight-color: #fffb8c;
9
+ --ss-focus-color: var(--ss-primary-color);
10
+ --ss-success-color: #00b755;
11
+ --ss-error-color: #dc3545;
12
+ --ss-main-height: 40px;
13
+ --ss-content-height: 300px;
14
+ --ss-search-height: 40px;
15
+ --ss-option-height: auto;
16
+ --ss-spacing-l: 9px;
17
+ --ss-spacing-m: 7px;
18
+ --ss-spacing-s: 5px;
19
+ --ss-animation-timing: 0.2s;
20
+ --ss-border-radius: 4px;
21
+ }
22
+
23
+ @keyframes ss-valueIn {
24
+ 0% {
25
+ transform: scale(0);
26
+ opacity: 0;
27
+ }
28
+ 100% {
29
+ transform: scale(1);
30
+ opacity: 1;
31
+ }
32
+ }
33
+ @keyframes ss-valueOut {
34
+ 0% {
35
+ transform: scale(1);
36
+ opacity: 1;
37
+ }
38
+ 100% {
39
+ transform: scale(0);
40
+ opacity: 0;
41
+ }
42
+ }
43
+ .ss-hide {
44
+ display: none !important;
45
+ }
46
+
47
+ .ss-main {
48
+ display: flex;
49
+ flex-direction: row;
50
+ position: relative;
51
+ user-select: none;
52
+ color: var(--ss-font-color);
53
+ min-height: var(--ss-main-height);
54
+ width: 100%;
55
+ padding: var(--ss-spacing-s);
56
+ cursor: pointer;
57
+ border: 1px solid var(--ss-border-color);
58
+ border-radius: var(--ss-border-radius);
59
+ background-color: var(--ss-bg-color);
60
+ outline: 0;
61
+ box-sizing: border-box;
62
+ transition: background-color var(--ss-animation-timing);
63
+ overflow: hidden;
64
+ }
65
+
66
+ .ss-main:focus {
67
+ box-shadow: 0 0 5px var(--ss-focus-color);
68
+ }
69
+
70
+ .ss-main.ss-disabled {
71
+ background-color: var(--ss-disabled-color);
72
+ cursor: not-allowed;
73
+ }
74
+
75
+ .ss-main.ss-disabled .ss-values .ss-disabled {
76
+ color: var(--ss-font-color);
77
+ }
78
+
79
+ .ss-main.ss-disabled .ss-values .ss-value .ss-value-delete {
80
+ cursor: not-allowed;
81
+ }
82
+
83
+ .ss-main.ss-dir-above {
84
+ border-top-left-radius: 0px;
85
+ border-top-right-radius: 0px;
86
+ }
87
+
88
+ .ss-main.ss-dir-below {
89
+ border-bottom-left-radius: 0px;
90
+ border-bottom-right-radius: 0px;
91
+ }
92
+
93
+ .ss-main .ss-values {
94
+ display: inline-flex;
95
+ flex-wrap: wrap;
96
+ gap: var(--ss-spacing-m);
97
+ flex: 1 1 100%;
98
+ min-width: 0;
99
+ max-width: 100%;
100
+ overflow: hidden;
101
+ }
102
+
103
+ .ss-main .ss-values .ss-placeholder {
104
+ display: block;
105
+ width: 100%;
106
+ min-width: 0;
107
+ padding: var(--ss-spacing-s) var(--ss-spacing-m) var(--ss-spacing-s) var(--ss-spacing-m);
108
+ margin: auto 0px auto 0px;
109
+ line-height: 1em;
110
+ color: var(--ss-placeholder-color);
111
+ overflow: hidden;
112
+ text-overflow: ellipsis;
113
+ white-space: nowrap;
114
+ }
115
+
116
+ .ss-main .ss-values .ss-max {
117
+ display: flex;
118
+ user-select: none;
119
+ align-items: center;
120
+ width: fit-content;
121
+ font-size: 12px;
122
+ color: var(--ss-bg-color);
123
+ line-height: 1;
124
+ padding: var(--ss-spacing-s) var(--ss-spacing-m);
125
+ background-color: var(--ss-primary-color);
126
+ border-radius: var(--ss-border-radius);
127
+ }
128
+
129
+ .ss-main .ss-values .ss-single {
130
+ display: block;
131
+ margin: auto 0px auto var(--ss-spacing-s);
132
+ min-width: 0;
133
+ overflow: hidden;
134
+ text-overflow: ellipsis;
135
+ white-space: nowrap;
136
+ flex: 1 1 auto;
137
+ max-width: calc(100% - 20px);
138
+ }
139
+
140
+ .ss-main .ss-values .ss-value {
141
+ display: flex;
142
+ user-select: none;
143
+ align-items: center;
144
+ width: fit-content;
145
+ max-width: 100%;
146
+ background-color: var(--ss-primary-color);
147
+ border-radius: var(--ss-border-radius);
148
+ animation-name: ss-valueIn;
149
+ animation-duration: var(--ss-animation-timing);
150
+ animation-timing-function: ease-out;
151
+ animation-fill-mode: both;
152
+ }
153
+
154
+ .ss-main .ss-values .ss-value.ss-value-out {
155
+ animation-name: ss-valueOut;
156
+ animation-duration: var(--ss-animation-timing);
157
+ animation-timing-function: ease-out;
158
+ }
159
+
160
+ .ss-main .ss-values .ss-value .ss-value-text {
161
+ flex: 1;
162
+ min-width: 0;
163
+ font-size: 12px;
164
+ line-height: 1;
165
+ color: var(--ss-bg-color);
166
+ padding: var(--ss-spacing-s) var(--ss-spacing-m);
167
+ overflow: hidden;
168
+ text-overflow: ellipsis;
169
+ white-space: nowrap;
170
+ }
171
+
172
+ .ss-main .ss-values .ss-value .ss-value-delete {
173
+ display: flex;
174
+ align-items: center;
175
+ height: var(--ss-spacing-l);
176
+ width: var(--ss-spacing-l);
177
+ padding: var(--ss-spacing-s) var(--ss-spacing-m);
178
+ cursor: pointer;
179
+ border-left: solid 1px var(--ss-bg-color);
180
+ box-sizing: content-box;
181
+ }
182
+
183
+ .ss-main .ss-values .ss-value .ss-value-delete svg {
184
+ height: var(--ss-spacing-l);
185
+ width: var(--ss-spacing-l);
186
+ }
187
+
188
+ .ss-main .ss-values .ss-value .ss-value-delete svg path {
189
+ fill: none;
190
+ stroke: var(--ss-bg-color);
191
+ stroke-width: 18;
192
+ stroke-linecap: round;
193
+ stroke-linejoin: round;
194
+ }
195
+
196
+ .ss-main .ss-deselect {
197
+ flex: 0 1 auto;
198
+ display: flex;
199
+ align-items: center;
200
+ justify-content: center;
201
+ width: fit-content;
202
+ height: auto;
203
+ padding: 0 var(--ss-spacing-m) 0 var(--ss-spacing-m);
204
+ }
205
+
206
+ .ss-main .ss-deselect svg {
207
+ width: 8px;
208
+ height: 8px;
209
+ }
210
+
211
+ .ss-main .ss-deselect svg path {
212
+ fill: none;
213
+ stroke: var(--ss-font-color);
214
+ stroke-width: 20;
215
+ stroke-linecap: round;
216
+ stroke-linejoin: round;
217
+ }
218
+
219
+ .ss-main .ss-arrow {
220
+ flex: 0 1 auto;
221
+ display: flex;
222
+ align-items: center;
223
+ justify-content: flex-end;
224
+ width: 12px;
225
+ height: 12px;
226
+ margin: auto var(--ss-spacing-m) auto var(--ss-spacing-m);
227
+ }
228
+
229
+ .ss-main .ss-arrow path {
230
+ fill: none;
231
+ stroke: var(--ss-font-color);
232
+ stroke-width: 18;
233
+ stroke-linecap: round;
234
+ stroke-linejoin: round;
235
+ transition-timing-function: ease-out;
236
+ transition: var(--ss-animation-timing);
237
+ }
238
+
239
+ .ss-content {
240
+ position: absolute;
241
+ display: flex;
242
+ height: auto;
243
+ flex-direction: column;
244
+ width: auto;
245
+ max-height: var(--ss-content-height);
246
+ box-sizing: border-box;
247
+ border: solid 1px var(--ss-border-color);
248
+ background-color: var(--ss-bg-color);
249
+ transition: transform var(--ss-animation-timing), opacity var(--ss-animation-timing);
250
+ opacity: 0;
251
+ transform: scaleY(0);
252
+ overflow: hidden;
253
+ z-index: 10000;
254
+ }
255
+
256
+ .ss-content.ss-relative {
257
+ position: relative;
258
+ height: 100%;
259
+ }
260
+
261
+ .ss-content.ss-fixed {
262
+ position: fixed;
263
+ }
264
+
265
+ .ss-content.ss-dir-above {
266
+ transform-origin: center bottom;
267
+ flex-direction: column-reverse;
268
+ border-top-left-radius: var(--ss-border-radius);
269
+ border-top-right-radius: var(--ss-border-radius);
270
+ }
271
+
272
+ .ss-content.ss-dir-below {
273
+ transform-origin: center top;
274
+ border-bottom-left-radius: var(--ss-border-radius);
275
+ border-bottom-right-radius: var(--ss-border-radius);
276
+ }
277
+
278
+ .ss-content.ss-open {
279
+ opacity: 1;
280
+ transform: scaleY(1);
281
+ }
282
+
283
+ .ss-content .ss-search {
284
+ flex: 0 1 auto;
285
+ display: flex;
286
+ flex-direction: row;
287
+ border-bottom: 1px solid var(--ss-border-color);
288
+ }
289
+
290
+ .ss-content .ss-search input {
291
+ display: inline-flex;
292
+ font-size: inherit;
293
+ line-height: inherit;
294
+ flex: 1 1 auto;
295
+ width: 100%;
296
+ min-width: 0px;
297
+ height: var(--ss-search-height);
298
+ padding: var(--ss-spacing-m) var(--ss-spacing-l);
299
+ margin: 0;
300
+ border: none;
301
+ background-color: var(--ss-bg-color);
302
+ outline: 0;
303
+ text-align: left;
304
+ box-sizing: border-box;
305
+ }
306
+
307
+ .ss-content .ss-search input::placeholder {
308
+ color: var(--ss-placeholder-color);
309
+ vertical-align: middle;
310
+ }
311
+
312
+ .ss-content .ss-search input:focus {
313
+ box-shadow: none;
314
+ }
315
+
316
+ .ss-content .ss-search .ss-addable {
317
+ display: inline-flex;
318
+ justify-content: center;
319
+ align-items: center;
320
+ cursor: pointer;
321
+ flex: 0 0 auto;
322
+ height: auto;
323
+ margin: 0 0 0 var(--ss-spacing-m);
324
+ border: 1px solid var(--ss-border-color);
325
+ border-radius: var(--ss-border-radius);
326
+ }
327
+
328
+ .ss-content .ss-search .ss-addable svg {
329
+ display: flex;
330
+ align-items: center;
331
+ justify-content: flex-end;
332
+ flex: 0 1 auto;
333
+ width: 12px;
334
+ height: 12px;
335
+ margin: auto var(--ss-spacing-m) auto var(--ss-spacing-m);
336
+ }
337
+
338
+ .ss-content .ss-search .ss-addable svg path {
339
+ fill: none;
340
+ stroke: var(--ss-font-color);
341
+ stroke-width: 18;
342
+ stroke-linecap: round;
343
+ stroke-linejoin: round;
344
+ }
345
+
346
+ .ss-content.ss-dir-above .ss-search {
347
+ border-bottom: none;
348
+ border-top: 1px solid var(--ss-border-color);
349
+ }
350
+
351
+ .ss-content .ss-list {
352
+ flex: 1 1 auto;
353
+ height: auto;
354
+ overflow-x: hidden;
355
+ overflow-y: auto;
356
+ }
357
+
358
+ .ss-content .ss-list .ss-error {
359
+ color: var(--ss-error-color);
360
+ padding: var(--ss-spacing-l);
361
+ }
362
+
363
+ .ss-content .ss-list .ss-searching {
364
+ color: var(--ss-font-color);
365
+ padding: var(--ss-spacing-l);
366
+ }
367
+
368
+ .ss-content .ss-list .ss-optgroup .ss-option {
369
+ transition: max-height var(--ss-animation-timing) ease, opacity var(--ss-animation-timing) ease, padding-top var(--ss-animation-timing) ease, padding-bottom var(--ss-animation-timing) ease, margin-top var(--ss-animation-timing) ease, margin-bottom var(--ss-animation-timing) ease;
370
+ }
371
+
372
+ .ss-content .ss-list .ss-optgroup.ss-open .ss-option {
373
+ max-height: 100px;
374
+ opacity: 1;
375
+ overflow: visible;
376
+ }
377
+
378
+ .ss-content .ss-list .ss-optgroup.ss-close .ss-option {
379
+ padding-top: 0 !important;
380
+ padding-bottom: 0 !important;
381
+ margin-top: 0 !important;
382
+ margin-bottom: 0 !important;
383
+ max-height: 0;
384
+ opacity: 0;
385
+ overflow: hidden;
386
+ }
387
+
388
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label {
389
+ display: flex;
390
+ flex-direction: row;
391
+ align-items: center;
392
+ justify-content: space-between;
393
+ padding: var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m) var(--ss-spacing-l);
394
+ }
395
+
396
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-label-text {
397
+ flex: 1 1 auto;
398
+ font-weight: bold;
399
+ color: var(--ss-font-color);
400
+ }
401
+
402
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label:has(.ss-arrow) {
403
+ cursor: pointer;
404
+ }
405
+
406
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions {
407
+ flex: 0 1 auto;
408
+ display: flex;
409
+ flex-direction: row;
410
+ align-items: center;
411
+ justify-content: center;
412
+ gap: var(--ss-spacing-m);
413
+ }
414
+
415
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall {
416
+ flex: 0 0 auto;
417
+ display: flex;
418
+ flex-direction: row;
419
+ cursor: pointer;
420
+ }
421
+
422
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall:hover {
423
+ opacity: 0.5;
424
+ }
425
+
426
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall.ss-selected svg path {
427
+ stroke: var(--ss-error-color);
428
+ }
429
+
430
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall span {
431
+ flex: 0 1 auto;
432
+ display: flex;
433
+ align-items: center;
434
+ justify-content: center;
435
+ font-size: 60%;
436
+ text-align: center;
437
+ padding: 0 var(--ss-spacing-s) 0 0;
438
+ }
439
+
440
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg {
441
+ flex: 0 1 auto;
442
+ width: 13px;
443
+ height: 13px;
444
+ }
445
+
446
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg path {
447
+ fill: none;
448
+ stroke: var(--ss-success-color);
449
+ stroke-linecap: round;
450
+ stroke-linejoin: round;
451
+ }
452
+
453
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg:first-child {
454
+ stroke-width: 5;
455
+ }
456
+
457
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg:last-child {
458
+ stroke-width: 11;
459
+ }
460
+
461
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-closable {
462
+ flex: 0 1 auto;
463
+ display: flex;
464
+ flex-direction: row;
465
+ cursor: pointer;
466
+ }
467
+
468
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-closable .ss-arrow {
469
+ flex: 1 1 auto;
470
+ width: 10px;
471
+ height: 10px;
472
+ }
473
+
474
+ .ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-closable .ss-arrow path {
475
+ fill: none;
476
+ stroke: var(--ss-font-color);
477
+ stroke-width: 18;
478
+ stroke-linecap: round;
479
+ stroke-linejoin: round;
480
+ transition-timing-function: ease-out;
481
+ transition: var(--ss-animation-timing);
482
+ }
483
+
484
+ .ss-content .ss-list .ss-optgroup .ss-option {
485
+ padding: var(--ss-spacing-s) var(--ss-spacing-s) var(--ss-spacing-s) calc(var(--ss-spacing-l) * 3);
486
+ }
487
+
488
+ .ss-content .ss-list .ss-option {
489
+ display: flex;
490
+ align-items: center;
491
+ min-height: var(--ss-option-height);
492
+ padding: var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m) var(--ss-spacing-l);
493
+ white-space: normal;
494
+ color: var(--ss-font-color);
495
+ cursor: pointer;
496
+ user-select: none;
497
+ }
498
+
499
+ .ss-content .ss-list .ss-option:hover:not(.ss-disabled) {
500
+ color: var(--ss-bg-color);
501
+ background-color: var(--ss-primary-color);
502
+ border-left: 5px solid var(--ss-primary-color);
503
+ transition: border-left var(--ss-animation-timing) ease;
504
+ }
505
+
506
+ .ss-content .ss-list .ss-option.ss-highlighted, .ss-content .ss-list .ss-option:not(.ss-disabled).ss-selected {
507
+ color: var(--ss-bg-color);
508
+ background-color: var(--ss-primary-color);
509
+ }
510
+
511
+ .ss-content .ss-list .ss-option.ss-disabled {
512
+ cursor: not-allowed;
513
+ background-color: var(--ss-disabled-color);
514
+ }
515
+
516
+ .ss-content .ss-list .ss-option.ss-disabled:hover {
517
+ color: var(--ss-font-color);
518
+ }
519
+
520
+ .ss-content .ss-list .ss-option .ss-search-highlight {
521
+ display: inline-block;
522
+ background-color: var(--ss-highlight-color);
523
+ }
524
+
525
+ .ss-content .ss-list .ss-search {
526
+ display: flex;
527
+ flex-direction: row;
528
+ align-items: center;
529
+ padding: var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m) var(--ss-spacing-l);
530
+ }
531
+ .ss-main {
532
+ width: calc(80% - 22px);
533
+ min-height: auto;
534
+ padding: 8px 10px 7px;
535
+ border: 1px solid #c9d0d6;
536
+ border-radius: 3px;
537
+ background-color: #fff;
538
+ }
539
+ .ss-main:focus, .ss-main.ss-open {
540
+ border: 1px solid #99a2aa;
541
+ box-shadow: 0 0 4px #99a2aa;
542
+ }
543
+ .ss-main .ss-values {
544
+ gap: 4px;
545
+ }
546
+ .ss-main .ss-values .ss-single {
547
+ margin: 0;
548
+ padding: 0;
549
+ line-height: 1.1em;
550
+ }
551
+ .ss-main .ss-values .ss-placeholder {
552
+ padding: 0;
553
+ margin: 0;
554
+ line-height: 1.1em;
555
+ }
556
+ .ss-main .ss-values .ss-value {
557
+ margin: 0;
558
+ }
559
+ .ss-main .ss-values .ss-value .ss-value-delete {
560
+ font-size: 14px;
561
+ }
562
+ .ss-main .ss-deselect {
563
+ padding: 0 0 0 6px;
564
+ }
565
+ .ss-main .ss-arrow {
566
+ margin: auto 0 auto 6px;
567
+ }
568
+
569
+ .filter_form .filter_form_field .ss-main {
570
+ width: 100%;
571
+ }
@@ -0,0 +1,70 @@
1
+ @import "activeadmin/slimselect/slimselect";
2
+
3
+ // ActiveAdmin variables (match _variables.scss)
4
+ $text-input-horizontal-padding: 10px !default;
5
+ $border-width: 1px !default;
6
+ $text-input-total-padding: $text-input-horizontal-padding * 2 + $border-width * 2;
7
+
8
+ // Override SlimSelect CSS variables to match ActiveAdmin styling
9
+ .ss-main {
10
+ // Match ActiveAdmin input width (same as text inputs)
11
+ width: calc(80% - #{$text-input-total-padding});
12
+
13
+ // Match ActiveAdmin input padding: 8px top, 10px horizontal, 7px bottom
14
+ min-height: auto;
15
+ padding: 8px $text-input-horizontal-padding 7px;
16
+
17
+ // Match ActiveAdmin border styling
18
+ border: $border-width solid #c9d0d6;
19
+ border-radius: 3px;
20
+
21
+ // Match ActiveAdmin background (white, not gray)
22
+ background-color: #fff;
23
+
24
+ // Match ActiveAdmin focus styling (gray, not blue)
25
+ &:focus,
26
+ &.ss-open {
27
+ border: $border-width solid #99a2aa;
28
+ box-shadow: 0 0 4px #99a2aa;
29
+ }
30
+
31
+ .ss-values {
32
+ gap: 4px;
33
+
34
+ .ss-single {
35
+ margin: 0;
36
+ padding: 0;
37
+ line-height: 1.1em;
38
+ }
39
+
40
+ .ss-placeholder {
41
+ padding: 0;
42
+ margin: 0;
43
+ line-height: 1.1em;
44
+ }
45
+
46
+ .ss-value {
47
+ margin: 0;
48
+
49
+ .ss-value-delete {
50
+ font-size: 14px;
51
+ }
52
+ }
53
+ }
54
+
55
+ .ss-deselect {
56
+ padding: 0 0 0 6px;
57
+ }
58
+
59
+ .ss-arrow {
60
+ margin: auto 0 auto 6px;
61
+ }
62
+ }
63
+
64
+ // Filter form specific styling (sidebar)
65
+ .filter_form .filter_form_field {
66
+ .ss-main {
67
+ // In filter forms, selects are full width of the sidebar
68
+ width: 100%;
69
+ }
70
+ }
@@ -0,0 +1 @@
1
+ :root{--ss-primary-color: #5897fb;--ss-bg-color: #ffffff;--ss-font-color: #4d4d4d;--ss-placeholder-color: #8d8d8d;--ss-disabled-color: #dcdee2;--ss-border-color: #dcdee2;--ss-highlight-color: #fffb8c;--ss-focus-color: var(--ss-primary-color);--ss-success-color: #00b755;--ss-error-color: #dc3545;--ss-main-height: 40px;--ss-content-height: 300px;--ss-search-height: 40px;--ss-option-height: auto;--ss-spacing-l: 9px;--ss-spacing-m: 7px;--ss-spacing-s: 5px;--ss-animation-timing: 0.2s;--ss-border-radius: 4px}@keyframes ss-valueIn{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes ss-valueOut{0%{transform:scale(1);opacity:1}100%{transform:scale(0);opacity:0}}.ss-hide{display:none !important}.ss-main{display:flex;flex-direction:row;position:relative;user-select:none;color:var(--ss-font-color);min-height:var(--ss-main-height);width:100%;padding:var(--ss-spacing-s);cursor:pointer;border:1px solid var(--ss-border-color);border-radius:var(--ss-border-radius);background-color:var(--ss-bg-color);outline:0;box-sizing:border-box;transition:background-color var(--ss-animation-timing);overflow:hidden}.ss-main:focus{box-shadow:0 0 5px var(--ss-focus-color)}.ss-main.ss-disabled{background-color:var(--ss-disabled-color);cursor:not-allowed}.ss-main.ss-disabled .ss-values .ss-disabled{color:var(--ss-font-color)}.ss-main.ss-disabled .ss-values .ss-value .ss-value-delete{cursor:not-allowed}.ss-main.ss-dir-above{border-top-left-radius:0px;border-top-right-radius:0px}.ss-main.ss-dir-below{border-bottom-left-radius:0px;border-bottom-right-radius:0px}.ss-main .ss-values{display:inline-flex;flex-wrap:wrap;gap:var(--ss-spacing-m);flex:1 1 100%;min-width:0;max-width:100%;overflow:hidden}.ss-main .ss-values .ss-placeholder{display:block;width:100%;min-width:0;padding:var(--ss-spacing-s) var(--ss-spacing-m) var(--ss-spacing-s) var(--ss-spacing-m);margin:auto 0px auto 0px;line-height:1em;color:var(--ss-placeholder-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-main .ss-values .ss-max{display:flex;user-select:none;align-items:center;width:fit-content;font-size:12px;color:var(--ss-bg-color);line-height:1;padding:var(--ss-spacing-s) var(--ss-spacing-m);background-color:var(--ss-primary-color);border-radius:var(--ss-border-radius)}.ss-main .ss-values .ss-single{display:block;margin:auto 0px auto var(--ss-spacing-s);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;max-width:calc(100% - 20px)}.ss-main .ss-values .ss-value{display:flex;user-select:none;align-items:center;width:fit-content;max-width:100%;background-color:var(--ss-primary-color);border-radius:var(--ss-border-radius);animation-name:ss-valueIn;animation-duration:var(--ss-animation-timing);animation-timing-function:ease-out;animation-fill-mode:both}.ss-main .ss-values .ss-value.ss-value-out{animation-name:ss-valueOut;animation-duration:var(--ss-animation-timing);animation-timing-function:ease-out}.ss-main .ss-values .ss-value .ss-value-text{flex:1;min-width:0;font-size:12px;line-height:1;color:var(--ss-bg-color);padding:var(--ss-spacing-s) var(--ss-spacing-m);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-main .ss-values .ss-value .ss-value-delete{display:flex;align-items:center;height:var(--ss-spacing-l);width:var(--ss-spacing-l);padding:var(--ss-spacing-s) var(--ss-spacing-m);cursor:pointer;border-left:solid 1px var(--ss-bg-color);box-sizing:content-box}.ss-main .ss-values .ss-value .ss-value-delete svg{height:var(--ss-spacing-l);width:var(--ss-spacing-l)}.ss-main .ss-values .ss-value .ss-value-delete svg path{fill:none;stroke:var(--ss-bg-color);stroke-width:18;stroke-linecap:round;stroke-linejoin:round}.ss-main .ss-deselect{flex:0 1 auto;display:flex;align-items:center;justify-content:center;width:fit-content;height:auto;padding:0 var(--ss-spacing-m) 0 var(--ss-spacing-m)}.ss-main .ss-deselect svg{width:8px;height:8px}.ss-main .ss-deselect svg path{fill:none;stroke:var(--ss-font-color);stroke-width:20;stroke-linecap:round;stroke-linejoin:round}.ss-main .ss-arrow{flex:0 1 auto;display:flex;align-items:center;justify-content:flex-end;width:12px;height:12px;margin:auto var(--ss-spacing-m) auto var(--ss-spacing-m)}.ss-main .ss-arrow path{fill:none;stroke:var(--ss-font-color);stroke-width:18;stroke-linecap:round;stroke-linejoin:round;transition-timing-function:ease-out;transition:var(--ss-animation-timing)}.ss-content{position:absolute;display:flex;height:auto;flex-direction:column;width:auto;max-height:var(--ss-content-height);box-sizing:border-box;border:solid 1px var(--ss-border-color);background-color:var(--ss-bg-color);transition:transform var(--ss-animation-timing),opacity var(--ss-animation-timing);opacity:0;transform:scaleY(0);overflow:hidden;z-index:10000}.ss-content.ss-relative{position:relative;height:100%}.ss-content.ss-fixed{position:fixed}.ss-content.ss-dir-above{transform-origin:center bottom;flex-direction:column-reverse;border-top-left-radius:var(--ss-border-radius);border-top-right-radius:var(--ss-border-radius)}.ss-content.ss-dir-below{transform-origin:center top;border-bottom-left-radius:var(--ss-border-radius);border-bottom-right-radius:var(--ss-border-radius)}.ss-content.ss-open{opacity:1;transform:scaleY(1)}.ss-content .ss-search{flex:0 1 auto;display:flex;flex-direction:row;border-bottom:1px solid var(--ss-border-color)}.ss-content .ss-search input{display:inline-flex;font-size:inherit;line-height:inherit;flex:1 1 auto;width:100%;min-width:0px;height:var(--ss-search-height);padding:var(--ss-spacing-m) var(--ss-spacing-l);margin:0;border:none;background-color:var(--ss-bg-color);outline:0;text-align:left;box-sizing:border-box}.ss-content .ss-search input::placeholder{color:var(--ss-placeholder-color);vertical-align:middle}.ss-content .ss-search input:focus{box-shadow:none}.ss-content .ss-search .ss-addable{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;flex:0 0 auto;height:auto;margin:0 0 0 var(--ss-spacing-m);border:1px solid var(--ss-border-color);border-radius:var(--ss-border-radius)}.ss-content .ss-search .ss-addable svg{display:flex;align-items:center;justify-content:flex-end;flex:0 1 auto;width:12px;height:12px;margin:auto var(--ss-spacing-m) auto var(--ss-spacing-m)}.ss-content .ss-search .ss-addable svg path{fill:none;stroke:var(--ss-font-color);stroke-width:18;stroke-linecap:round;stroke-linejoin:round}.ss-content.ss-dir-above .ss-search{border-bottom:none;border-top:1px solid var(--ss-border-color)}.ss-content .ss-list{flex:1 1 auto;height:auto;overflow-x:hidden;overflow-y:auto}.ss-content .ss-list .ss-error{color:var(--ss-error-color);padding:var(--ss-spacing-l)}.ss-content .ss-list .ss-searching{color:var(--ss-font-color);padding:var(--ss-spacing-l)}.ss-content .ss-list .ss-optgroup .ss-option{transition:max-height var(--ss-animation-timing) ease,opacity var(--ss-animation-timing) ease,padding-top var(--ss-animation-timing) ease,padding-bottom var(--ss-animation-timing) ease,margin-top var(--ss-animation-timing) ease,margin-bottom var(--ss-animation-timing) ease}.ss-content .ss-list .ss-optgroup.ss-open .ss-option{max-height:100px;opacity:1;overflow:visible}.ss-content .ss-list .ss-optgroup.ss-close .ss-option{padding-top:0 !important;padding-bottom:0 !important;margin-top:0 !important;margin-bottom:0 !important;max-height:0;opacity:0;overflow:hidden}.ss-content .ss-list .ss-optgroup .ss-optgroup-label{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m) var(--ss-spacing-l)}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-label-text{flex:1 1 auto;font-weight:bold;color:var(--ss-font-color)}.ss-content .ss-list .ss-optgroup .ss-optgroup-label:has(.ss-arrow){cursor:pointer}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions{flex:0 1 auto;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--ss-spacing-m)}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall{flex:0 0 auto;display:flex;flex-direction:row;cursor:pointer}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall:hover{opacity:.5}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall.ss-selected svg path{stroke:var(--ss-error-color)}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall span{flex:0 1 auto;display:flex;align-items:center;justify-content:center;font-size:60%;text-align:center;padding:0 var(--ss-spacing-s) 0 0}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg{flex:0 1 auto;width:13px;height:13px}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg path{fill:none;stroke:var(--ss-success-color);stroke-linecap:round;stroke-linejoin:round}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg:first-child{stroke-width:5}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg:last-child{stroke-width:11}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-closable{flex:0 1 auto;display:flex;flex-direction:row;cursor:pointer}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-closable .ss-arrow{flex:1 1 auto;width:10px;height:10px}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-closable .ss-arrow path{fill:none;stroke:var(--ss-font-color);stroke-width:18;stroke-linecap:round;stroke-linejoin:round;transition-timing-function:ease-out;transition:var(--ss-animation-timing)}.ss-content .ss-list .ss-optgroup .ss-option{padding:var(--ss-spacing-s) var(--ss-spacing-s) var(--ss-spacing-s) calc(var(--ss-spacing-l)*3)}.ss-content .ss-list .ss-option{display:flex;align-items:center;min-height:var(--ss-option-height);padding:var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m) var(--ss-spacing-l);white-space:normal;color:var(--ss-font-color);cursor:pointer;user-select:none}.ss-content .ss-list .ss-option:hover:not(.ss-disabled){color:var(--ss-bg-color);background-color:var(--ss-primary-color);border-left:5px solid var(--ss-primary-color);transition:border-left var(--ss-animation-timing) ease}.ss-content .ss-list .ss-option.ss-highlighted,.ss-content .ss-list .ss-option:not(.ss-disabled).ss-selected{color:var(--ss-bg-color);background-color:var(--ss-primary-color)}.ss-content .ss-list .ss-option.ss-disabled{cursor:not-allowed;background-color:var(--ss-disabled-color)}.ss-content .ss-list .ss-option.ss-disabled:hover{color:var(--ss-font-color)}.ss-content .ss-list .ss-option .ss-search-highlight{display:inline-block;background-color:var(--ss-highlight-color)}.ss-content .ss-list .ss-search{display:flex;flex-direction:row;align-items:center;padding:var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m) var(--ss-spacing-l)}/*# sourceMappingURL=slimselect.css.map */
@@ -0,0 +1,2 @@
1
+ import './slimselect_input.mjs'
2
+ import './slimselect_has_many.mjs'
@@ -0,0 +1,12 @@
1
+ // Bridge ActiveAdmin's jQuery-triggered has_many events to native DOM events
2
+ // so that activeadmin_slimselect's native event listener can pick them up.
3
+ //
4
+ // ActiveAdmin fires `has_many_add:after` via jQuery `.trigger()`, but
5
+ // slimselect_input.js listens with native `document.addEventListener`.
6
+ // jQuery custom events do NOT propagate as native DOM events, so we
7
+ // re-dispatch them here.
8
+ if (typeof jQuery !== 'undefined') {
9
+ jQuery(document).on('has_many_add:after', function () {
10
+ document.dispatchEvent(new Event('has_many_add:after'))
11
+ })
12
+ }