@moraby/app-launcher 0.1.7 → 2.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.
package/README.md CHANGED
@@ -60,6 +60,42 @@ function Header() {
60
60
  }
61
61
  ```
62
62
 
63
+ ### With Settings UI (Admin Mode)
64
+
65
+ The package includes a built-in Settings modal for managing apps.
66
+
67
+ ```tsx
68
+ import { useState } from 'react';
69
+ import { AppLauncher, AppSettings, AppItem } from '@moraby/app-launcher';
70
+ import '@moraby/app-launcher/styles.css';
71
+
72
+ function AdminLauncher() {
73
+ const [showSettings, setShowSettings] = useState(false);
74
+ // Your state management logic here (or use provided props)
75
+ const [apps, setApps] = useState<AppItem[]>([]);
76
+
77
+ return (
78
+ <>
79
+ <AppLauncher
80
+ apps={apps}
81
+ renderFooter={() => <button onClick={() => setShowSettings(true)}>Settings</button>}
82
+ />
83
+
84
+ <AppSettings
85
+ isOpen={showSettings}
86
+ onClose={() => setShowSettings(false)}
87
+ apps={apps}
88
+ onAdd={(app) => setApps([...apps, { ...app, id: Date.now().toString() }])}
89
+ onUpdate={(id, updates) =>
90
+ setApps(apps.map((a) => (a.id === id ? { ...a, ...updates } : a)))
91
+ }
92
+ onDelete={(id) => setApps(apps.filter((a) => a.id !== id))}
93
+ />
94
+ </>
95
+ );
96
+ }
97
+ ```
98
+
63
99
  ## Configuration JSON Format
64
100
 
65
101
  Export your configuration from the admin app and host it as a JSON file:
package/dist/index.css CHANGED
@@ -1,9 +1,71 @@
1
1
  /* src/styles.css */
2
- .app-launcher {
2
+ .app-launcher,
3
+ .app-settings__overlay {
4
+ --al-bg: #ffffff;
5
+ --al-bg-hover: rgba(0, 0, 0, 0.04);
6
+ --al-bg-focus: rgba(0, 0, 0, 0.08);
7
+ --al-text: #3c4043;
8
+ --al-text-secondary: #5f6368;
9
+ --al-text-error: #d93025;
10
+ --al-border: #e0e0e0;
11
+ --al-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 8px 40px rgba(0, 0, 0, 0.2);
12
+ --al-trigger-bg-hover: rgba(0, 0, 0, 0.08);
13
+ --al-trigger-bg-focus: rgba(0, 0, 0, 0.12);
14
+ --al-footer-bg: #fafafa;
15
+ --al-scrollbar: #dadce0;
16
+ --al-overlay-bg: rgba(0, 0, 0, 0.5);
17
+ --al-primary: #4285F4;
18
+ --al-primary-hover: #3367d6;
19
+ --al-primary-text: #ffffff;
3
20
  position: relative;
4
21
  display: inline-flex;
5
22
  align-items: center;
6
23
  }
24
+ @media (prefers-color-scheme: dark) {
25
+ .app-launcher,
26
+ .app-settings__overlay {
27
+ --al-bg: #202124;
28
+ --al-bg-hover: rgba(255, 255, 255, 0.08);
29
+ --al-bg-focus: rgba(255, 255, 255, 0.12);
30
+ --al-text: #e8eaed;
31
+ --al-text-secondary: #9aa0a6;
32
+ --al-text-error: #f28b82;
33
+ --al-border: #3c4043;
34
+ --al-shadow: 0 2px 10px rgba(0, 0, 0, 0.3), 0 8px 40px rgba(0, 0, 0, 0.5);
35
+ --al-trigger-bg-hover: rgba(255, 255, 255, 0.1);
36
+ --al-trigger-bg-focus: rgba(255, 255, 255, 0.15);
37
+ --al-footer-bg: #292a2d;
38
+ --al-scrollbar: #5f6368;
39
+ --al-overlay-bg: rgba(0, 0, 0, 0.7);
40
+ --al-primary: #8ab4f8;
41
+ --al-primary-hover: #aecbfa;
42
+ --al-primary-text: #202124;
43
+ }
44
+ }
45
+ html.dark .app-launcher,
46
+ :root.dark .app-launcher,
47
+ .dark .app-launcher,
48
+ .app-launcher.app-launcher--dark,
49
+ html.dark .app-settings__overlay,
50
+ :root.dark .app-settings__overlay,
51
+ .dark .app-settings__overlay {
52
+ --al-bg: #202124;
53
+ --al-bg-hover: rgba(255, 255, 255, 0.08);
54
+ --al-bg-focus: rgba(255, 255, 255, 0.12);
55
+ --al-text: #e8eaed;
56
+ --al-text-secondary: #9aa0a6;
57
+ --al-text-error: #f28b82;
58
+ --al-border: #3c4043;
59
+ --al-shadow: 0 2px 10px rgba(0, 0, 0, 0.3), 0 8px 40px rgba(0, 0, 0, 0.5);
60
+ --al-trigger-bg-hover: rgba(255, 255, 255, 0.1);
61
+ --al-trigger-bg-focus: rgba(255, 255, 255, 0.15);
62
+ --al-footer-bg: #292a2d;
63
+ --al-scrollbar: #5f6368;
64
+ --al-overlay-bg: rgba(0, 0, 0, 0.7);
65
+ --al-primary: #8ab4f8;
66
+ --al-primary-hover: #aecbfa;
67
+ --al-primary-text: #202124;
68
+ }
7
69
  .app-launcher__trigger {
8
70
  display: flex;
9
71
  align-items: center;
@@ -17,15 +79,15 @@
17
79
  transition: background-color 0.2s ease;
18
80
  }
19
81
  .app-launcher__trigger:hover {
20
- background-color: rgba(0, 0, 0, 0.08);
82
+ background-color: var(--al-trigger-bg-hover);
21
83
  }
22
84
  .app-launcher__trigger:focus {
23
85
  outline: none;
24
- background-color: rgba(0, 0, 0, 0.12);
86
+ background-color: var(--al-trigger-bg-focus);
25
87
  }
26
88
  .app-launcher__trigger-icon {
27
89
  font-size: 24px;
28
- color: #5f6368;
90
+ color: var(--al-text-secondary);
29
91
  }
30
92
  .app-launcher__dropdown {
31
93
  position: absolute;
@@ -34,9 +96,9 @@
34
96
  width: 336px;
35
97
  max-height: 70vh;
36
98
  overflow-y: auto;
37
- background-color: #ffffff;
99
+ background-color: var(--al-bg);
38
100
  border-radius: 8px;
39
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 8px 40px rgba(0, 0, 0, 0.2);
101
+ box-shadow: var(--al-shadow);
40
102
  z-index: 9999;
41
103
  animation: app-launcher-slide-in 0.15s ease-out;
42
104
  }
@@ -70,11 +132,11 @@
70
132
  min-height: 90px;
71
133
  }
72
134
  .app-launcher__item:hover {
73
- background-color: rgba(0, 0, 0, 0.04);
135
+ background-color: var(--al-bg-hover);
74
136
  }
75
137
  .app-launcher__item:focus {
76
138
  outline: none;
77
- background-color: rgba(0, 0, 0, 0.08);
139
+ background-color: var(--al-bg-focus);
78
140
  }
79
141
  .app-launcher__icon-wrapper {
80
142
  display: flex;
@@ -115,7 +177,7 @@
115
177
  sans-serif;
116
178
  font-size: 13px;
117
179
  font-weight: 400;
118
- color: #3c4043;
180
+ color: var(--al-text);
119
181
  text-align: center;
120
182
  line-height: 1.3;
121
183
  max-width: 100%;
@@ -128,27 +190,30 @@
128
190
  padding: 24px;
129
191
  text-align: center;
130
192
  font-size: 14px;
131
- color: #5f6368;
193
+ color: var(--al-text-secondary);
132
194
  }
133
195
  .app-launcher__error {
134
- color: #d93025;
196
+ color: var(--al-text-error);
135
197
  }
136
- .app-launcher__dropdown::-webkit-scrollbar {
198
+ .app-launcher__dropdown::-webkit-scrollbar,
199
+ .app-settings__content::-webkit-scrollbar {
137
200
  width: 8px;
138
201
  }
139
- .app-launcher__dropdown::-webkit-scrollbar-track {
202
+ .app-launcher__dropdown::-webkit-scrollbar-track,
203
+ .app-settings__content::-webkit-scrollbar-track {
140
204
  background: transparent;
141
205
  }
142
- .app-launcher__dropdown::-webkit-scrollbar-thumb {
143
- background-color: #dadce0;
206
+ .app-launcher__dropdown::-webkit-scrollbar-thumb,
207
+ .app-settings__content::-webkit-scrollbar-thumb {
208
+ background-color: var(--al-scrollbar);
144
209
  border-radius: 4px;
145
210
  }
146
211
  .app-launcher__footer {
147
212
  display: flex;
148
213
  justify-content: center;
149
214
  padding: 12px 16px;
150
- border-top: 1px solid #e0e0e0;
151
- background: #fafafa;
215
+ border-top: 1px solid var(--al-border);
216
+ background: var(--al-footer-bg);
152
217
  }
153
218
  @media (max-width: 400px) {
154
219
  .app-launcher__dropdown {
@@ -166,4 +231,524 @@
166
231
  font-size: 12px;
167
232
  }
168
233
  }
234
+ .app-settings__overlay {
235
+ position: fixed;
236
+ top: 0;
237
+ left: 0;
238
+ right: 0;
239
+ bottom: 0;
240
+ width: 100vw;
241
+ height: 100vh;
242
+ background: var(--al-overlay-bg);
243
+ display: flex;
244
+ align-items: center;
245
+ justify-content: center;
246
+ z-index: 9999;
247
+ animation: app-settings-fade-in 0.15s ease-out;
248
+ color: var(--al-text);
249
+ }
250
+ @keyframes app-settings-fade-in {
251
+ from {
252
+ opacity: 0;
253
+ }
254
+ to {
255
+ opacity: 1;
256
+ }
257
+ }
258
+ .app-settings__modal {
259
+ position: relative;
260
+ width: 100%;
261
+ max-width: 480px;
262
+ max-height: 85vh;
263
+ margin: 20px;
264
+ background: var(--al-bg);
265
+ border-radius: 16px;
266
+ box-shadow: var(--al-shadow);
267
+ display: flex;
268
+ flex-direction: column;
269
+ animation: app-settings-slide-up 0.2s ease-out;
270
+ overflow: hidden;
271
+ }
272
+ @keyframes app-settings-slide-up {
273
+ from {
274
+ opacity: 0;
275
+ transform: translateY(20px) scale(0.98);
276
+ }
277
+ to {
278
+ opacity: 1;
279
+ transform: translateY(0) scale(1);
280
+ }
281
+ }
282
+ .app-settings__header {
283
+ display: flex;
284
+ align-items: center;
285
+ justify-content: space-between;
286
+ padding: 20px 24px;
287
+ border-bottom: 1px solid var(--al-border);
288
+ background: var(--al-bg);
289
+ min-height: 36px;
290
+ flex-shrink: 0;
291
+ }
292
+ .app-settings__title {
293
+ font-size: 18px;
294
+ font-weight: 600;
295
+ color: var(--al-text);
296
+ margin: 0;
297
+ font-family:
298
+ "Google Sans",
299
+ "Roboto",
300
+ sans-serif;
301
+ }
302
+ .app-settings__close-button {
303
+ display: flex;
304
+ align-items: center;
305
+ justify-content: center;
306
+ width: 36px;
307
+ height: 36px;
308
+ border: none;
309
+ background: transparent;
310
+ border-radius: 50%;
311
+ cursor: pointer;
312
+ color: var(--al-text-secondary);
313
+ transition: background 0.2s;
314
+ }
315
+ .app-settings__close-button:hover {
316
+ background: var(--al-bg-hover);
317
+ }
318
+ .app-settings__content {
319
+ flex: 1;
320
+ overflow-y: auto;
321
+ padding: 24px;
322
+ }
323
+ .app-settings__add-button {
324
+ display: flex;
325
+ align-items: center;
326
+ justify-content: center;
327
+ gap: 8px;
328
+ width: 100%;
329
+ padding: 14px;
330
+ border: 2px dashed var(--al-border);
331
+ border-radius: 12px;
332
+ background: transparent;
333
+ font-size: 14px;
334
+ font-weight: 500;
335
+ color: var(--al-text-secondary);
336
+ cursor: pointer;
337
+ transition: all 0.2s;
338
+ margin-bottom: 24px;
339
+ font-family: inherit;
340
+ }
341
+ .app-settings__add-button:hover {
342
+ border-color: var(--al-primary);
343
+ color: var(--al-primary);
344
+ background: var(--al-bg-hover);
345
+ }
346
+ .app-settings__add-icon {
347
+ font-size: 16px;
348
+ }
349
+ .app-settings__list {
350
+ margin-bottom: 16px;
351
+ }
352
+ .app-settings__section-title {
353
+ font-size: 13px;
354
+ font-weight: 600;
355
+ color: var(--al-text-secondary);
356
+ text-transform: uppercase;
357
+ letter-spacing: 0.5px;
358
+ margin-bottom: 12px;
359
+ font-family: inherit;
360
+ }
361
+ .app-settings__empty-message {
362
+ text-align: center;
363
+ color: var(--al-text-secondary);
364
+ font-size: 14px;
365
+ padding: 24px;
366
+ background: var(--al-bg-hover);
367
+ border-radius: 8px;
368
+ }
369
+ .app-settings__grid {
370
+ display: flex;
371
+ flex-direction: column;
372
+ gap: 8px;
373
+ }
374
+ .app-settings__card {
375
+ display: flex;
376
+ align-items: center;
377
+ justify-content: space-between;
378
+ padding: 12px;
379
+ background: var(--al-bg-hover);
380
+ border-radius: 12px;
381
+ transition: background 0.2s;
382
+ }
383
+ .app-settings__card:hover {
384
+ background: var(--al-bg-focus);
385
+ }
386
+ .app-settings__card-info {
387
+ display: flex;
388
+ align-items: center;
389
+ gap: 12px;
390
+ min-width: 0;
391
+ flex: 1;
392
+ }
393
+ .app-settings__card-icon {
394
+ display: flex;
395
+ align-items: center;
396
+ justify-content: center;
397
+ width: 40px;
398
+ height: 40px;
399
+ border-radius: 10px;
400
+ font-size: 20px;
401
+ flex-shrink: 0;
402
+ }
403
+ .app-settings__card-details {
404
+ display: flex;
405
+ flex-direction: column;
406
+ min-width: 0;
407
+ }
408
+ .app-settings__card-name {
409
+ font-size: 14px;
410
+ font-weight: 500;
411
+ color: var(--al-text);
412
+ font-family: inherit;
413
+ }
414
+ .app-settings__card-url {
415
+ font-size: 12px;
416
+ color: var(--al-text-secondary);
417
+ overflow: hidden;
418
+ text-overflow: ellipsis;
419
+ white-space: nowrap;
420
+ font-family: inherit;
421
+ }
422
+ .app-settings__card-actions {
423
+ display: flex;
424
+ gap: 4px;
425
+ }
426
+ .app-settings__action-button {
427
+ display: flex;
428
+ align-items: center;
429
+ justify-content: center;
430
+ width: 32px;
431
+ height: 32px;
432
+ border: none;
433
+ background: transparent;
434
+ border-radius: 8px;
435
+ cursor: pointer;
436
+ color: var(--al-text-secondary);
437
+ transition: all 0.15s;
438
+ }
439
+ .app-settings__action-button:hover {
440
+ background: var(--al-bg-focus);
441
+ color: var(--al-text);
442
+ }
443
+ .app-settings__action-button--delete:hover {
444
+ background: rgba(217, 48, 37, 0.1);
445
+ color: var(--al-text-error);
446
+ }
447
+ .app-settings__export-button {
448
+ display: flex;
449
+ align-items: center;
450
+ justify-content: center;
451
+ gap: 8px;
452
+ width: 100%;
453
+ padding: 12px;
454
+ margin-bottom: 16px;
455
+ border: 1px solid #34A853;
456
+ border-radius: 8px;
457
+ background: #e6f4ea;
458
+ font-size: 14px;
459
+ font-weight: 500;
460
+ color: #137333;
461
+ cursor: pointer;
462
+ transition: all 0.2s;
463
+ font-family: inherit;
464
+ }
465
+ @media (prefers-color-scheme: dark) {
466
+ .app-settings__export-button {
467
+ background: rgba(52, 168, 83, 0.2);
468
+ color: #81c995;
469
+ border-color: #81c995;
470
+ }
471
+ }
472
+ .app-settings__export-button:hover {
473
+ background: #ceead6;
474
+ border-color: #137333;
475
+ }
476
+ @media (prefers-color-scheme: dark) {
477
+ .app-settings__export-button:hover {
478
+ background: rgba(52, 168, 83, 0.3);
479
+ }
480
+ }
481
+ .app-settings__export-icon {
482
+ font-size: 14px;
483
+ }
484
+ .app-settings__info {
485
+ padding: 12px;
486
+ background: #e8f0fe;
487
+ border-radius: 8px;
488
+ font-size: 13px;
489
+ color: #1967d2;
490
+ }
491
+ @media (prefers-color-scheme: dark) {
492
+ .app-settings__info {
493
+ background: rgba(138, 180, 248, 0.2);
494
+ color: #8ab4f8;
495
+ }
496
+ }
497
+ .app-settings__info p {
498
+ margin: 0;
499
+ font-family: inherit;
500
+ }
501
+ .app-launcher-form {
502
+ display: flex;
503
+ flex-direction: column;
504
+ gap: 16px;
505
+ }
506
+ .app-launcher-form__preview {
507
+ display: flex;
508
+ flex-direction: column;
509
+ align-items: center;
510
+ gap: 8px;
511
+ padding: 20px;
512
+ background: var(--al-bg-hover);
513
+ border-radius: 12px;
514
+ margin-bottom: 8px;
515
+ }
516
+ .app-launcher-form__preview-icon {
517
+ display: flex;
518
+ align-items: center;
519
+ justify-content: center;
520
+ width: 64px;
521
+ height: 64px;
522
+ border-radius: 16px;
523
+ }
524
+ .app-launcher-form__preview-name {
525
+ font-size: 14px;
526
+ font-weight: 500;
527
+ color: var(--al-text);
528
+ font-family: inherit;
529
+ }
530
+ .app-launcher-form__field {
531
+ display: flex;
532
+ flex-direction: column;
533
+ gap: 6px;
534
+ }
535
+ .app-launcher-form__label {
536
+ font-size: 13px;
537
+ font-weight: 500;
538
+ color: var(--al-text-secondary);
539
+ font-family: inherit;
540
+ }
541
+ .app-launcher-form__input {
542
+ padding: 10px 12px;
543
+ border: 1px solid var(--al-border);
544
+ border-radius: 8px;
545
+ font-size: 14px;
546
+ outline: none;
547
+ background: transparent;
548
+ color: var(--al-text);
549
+ transition: border-color 0.2s;
550
+ font-family: inherit;
551
+ }
552
+ .app-launcher-form__input:focus {
553
+ border-color: var(--al-primary);
554
+ }
555
+ .app-launcher-form__input--error {
556
+ border-color: var(--al-text-error);
557
+ }
558
+ .app-launcher-form__error {
559
+ font-size: 12px;
560
+ color: var(--al-text-error);
561
+ font-family: inherit;
562
+ }
563
+ .app-launcher-form__color-picker {
564
+ display: flex;
565
+ flex-wrap: wrap;
566
+ gap: 8px;
567
+ align-items: center;
568
+ }
569
+ .app-launcher-form__color-button {
570
+ width: 28px;
571
+ height: 28px;
572
+ border: 2px solid transparent;
573
+ border-radius: 50%;
574
+ cursor: pointer;
575
+ transition: transform 0.15s, border-color 0.15s;
576
+ }
577
+ .app-launcher-form__color-button:hover {
578
+ transform: scale(1.15);
579
+ }
580
+ .app-launcher-form__color-button--selected {
581
+ border-color: var(--al-text);
582
+ }
583
+ .app-launcher-form__color-input {
584
+ width: 28px;
585
+ height: 28px;
586
+ border: none;
587
+ border-radius: 50%;
588
+ cursor: pointer;
589
+ padding: 0;
590
+ background: none;
591
+ }
592
+ .app-launcher-form__color-input::-webkit-color-swatch-wrapper {
593
+ padding: 0;
594
+ }
595
+ .app-launcher-form__color-input::-webkit-color-swatch {
596
+ border: 1px dashed var(--al-text-secondary);
597
+ border-radius: 50%;
598
+ }
599
+ .app-launcher-form__actions {
600
+ display: flex;
601
+ justify-content: flex-end;
602
+ gap: 12px;
603
+ padding-top: 8px;
604
+ border-top: 1px solid var(--al-border);
605
+ }
606
+ .app-launcher-form__button {
607
+ padding: 10px 20px;
608
+ border-radius: 8px;
609
+ font-size: 14px;
610
+ font-weight: 500;
611
+ cursor: pointer;
612
+ transition: background 0.2s;
613
+ font-family: inherit;
614
+ }
615
+ .app-launcher-form__button--cancel {
616
+ border: 1px solid var(--al-border);
617
+ background: var(--al-bg);
618
+ color: var(--al-text-secondary);
619
+ }
620
+ .app-launcher-form__button--cancel:hover {
621
+ background: var(--al-bg-hover);
622
+ }
623
+ .app-launcher-form__button--submit {
624
+ border: none;
625
+ background: var(--al-primary);
626
+ color: var(--al-primary-text);
627
+ }
628
+ .app-launcher-form__button--submit:hover {
629
+ background: var(--al-primary-hover);
630
+ }
631
+ .app-launcher-form__icon-mode {
632
+ display: flex;
633
+ gap: 8px;
634
+ margin-bottom: 12px;
635
+ }
636
+ .app-launcher-form__mode-button {
637
+ flex: 1;
638
+ padding: 8px 12px;
639
+ border: 1px solid var(--al-border);
640
+ border-radius: 6px;
641
+ background: var(--al-bg);
642
+ font-size: 13px;
643
+ font-weight: 500;
644
+ color: var(--al-text-secondary);
645
+ cursor: pointer;
646
+ transition: all 0.2s;
647
+ font-family: inherit;
648
+ }
649
+ .app-launcher-form__mode-button:hover {
650
+ background: var(--al-bg-hover);
651
+ }
652
+ .app-launcher-form__mode-button--active {
653
+ background: rgba(66, 133, 244, 0.1);
654
+ border-color: var(--al-primary);
655
+ color: var(--al-primary);
656
+ }
657
+ .app-launcher-form__custom-icon {
658
+ display: flex;
659
+ flex-direction: column;
660
+ gap: 6px;
661
+ }
662
+ .app-launcher-form__hint {
663
+ font-size: 12px;
664
+ color: var(--al-text-secondary);
665
+ margin: 0;
666
+ font-family: inherit;
667
+ }
668
+ .app-launcher-form__preview-svg {
669
+ width: 32px;
670
+ height: 32px;
671
+ mask-size: contain;
672
+ mask-repeat: no-repeat;
673
+ mask-position: center;
674
+ -webkit-mask-size: contain;
675
+ -webkit-mask-repeat: no-repeat;
676
+ -webkit-mask-position: center;
677
+ }
678
+ .app-launcher-form__preview-img {
679
+ width: 32px;
680
+ height: 32px;
681
+ object-fit: contain;
682
+ }
683
+ .app-launcher-icon-picker {
684
+ width: 100%;
685
+ }
686
+ .app-launcher-icon-picker__search {
687
+ width: 100%;
688
+ padding: 10px 12px;
689
+ border: 1px solid var(--al-border);
690
+ border-radius: 8px;
691
+ font-size: 14px;
692
+ outline: none;
693
+ background: transparent;
694
+ color: var(--al-text);
695
+ transition: border-color 0.2s;
696
+ margin-bottom: 12px;
697
+ font-family: inherit;
698
+ }
699
+ .app-launcher-icon-picker__search:focus {
700
+ border-color: var(--al-primary);
701
+ }
702
+ .app-launcher-icon-picker__grid {
703
+ display: grid;
704
+ grid-template-columns: repeat(6, 1fr);
705
+ gap: 8px;
706
+ max-height: 200px;
707
+ overflow-y: auto;
708
+ padding: 4px;
709
+ }
710
+ .app-launcher-icon-picker__button {
711
+ display: flex;
712
+ align-items: center;
713
+ justify-content: center;
714
+ width: 40px;
715
+ height: 40px;
716
+ border: 2px solid transparent;
717
+ border-radius: 8px;
718
+ background: var(--al-bg-hover);
719
+ cursor: pointer;
720
+ transition: all 0.15s;
721
+ }
722
+ .app-launcher-icon-picker__button:hover {
723
+ background: var(--al-bg-focus);
724
+ transform: scale(1.1);
725
+ }
726
+ .app-launcher-icon-picker__button--selected {
727
+ border-color: var(--al-primary);
728
+ background: rgba(66, 133, 244, 0.1);
729
+ }
730
+ .app-launcher-icon-picker__icon {
731
+ font-size: 20px;
732
+ color: var(--al-text-secondary);
733
+ }
734
+ .app-launcher-icon-picker__button--selected .app-launcher-icon-picker__icon {
735
+ color: var(--al-primary);
736
+ }
737
+ .app-launcher-icon-picker__empty {
738
+ text-align: center;
739
+ color: var(--al-text-secondary);
740
+ font-size: 14px;
741
+ padding: 20px;
742
+ font-family: inherit;
743
+ }
744
+ .app-launcher-icon-picker__grid::-webkit-scrollbar {
745
+ width: 6px;
746
+ }
747
+ .app-launcher-icon-picker__grid::-webkit-scrollbar-track {
748
+ background: transparent;
749
+ }
750
+ .app-launcher-icon-picker__grid::-webkit-scrollbar-thumb {
751
+ background-color: var(--al-scrollbar);
752
+ border-radius: 3px;
753
+ }
169
754
  /*# sourceMappingURL=index.css.map */