@dragunio/fe-libs 0.1.7 → 0.1.9

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/dist/styles.css CHANGED
@@ -232,7 +232,7 @@
232
232
  width: 256px;
233
233
  min-width: 256px;
234
234
  padding: 4px 0;
235
- border: 1px solid #d4d8e0;
235
+ border: 0;
236
236
  border-radius: 12px;
237
237
  background: #fff;
238
238
  box-shadow: 0 10px 24px rgb(16 24 40 / 15%);
@@ -240,9 +240,164 @@
240
240
  .fe-button-bar__menu .fe-button {
241
241
  justify-content: flex-start;
242
242
  width: 100%;
243
+ border-color: transparent;
243
244
  border-radius: 0;
244
245
  text-align: left;
245
246
  }
247
+ .fe-button-bar__menu-divider {
248
+ height: 1px;
249
+ margin: 4px 12px;
250
+ background: #d4d8e0;
251
+ }
252
+ .fe-button-bar__menu .fe-button__icon:first-child {
253
+ display: inline-flex;
254
+ width: 20px;
255
+ height: 20px;
256
+ flex: 0 0 20px;
257
+ align-items: center;
258
+ justify-content: center;
259
+ }
260
+ .fe-button-bar__menu-icon {
261
+ display: inline-flex;
262
+ width: 100%;
263
+ height: 100%;
264
+ align-items: center;
265
+ justify-content: center;
266
+ font-size: 20px;
267
+ line-height: 1;
268
+ }
269
+ .fe-button-bar__menu-icon > :is(svg, img) {
270
+ display: block;
271
+ width: 20px;
272
+ height: 20px;
273
+ flex: 0 0 20px;
274
+ object-fit: contain;
275
+ }
276
+
277
+ /* packages/tabs/src/styles.css */
278
+ .fe-tabs {
279
+ --fe-tabs-accent: #2878f0;
280
+ --fe-tabs-border: #d4d8e0;
281
+ --fe-tabs-muted: #667085;
282
+ --fe-tabs-surface: #f5f6f8;
283
+ --fe-tabs-text: #20242c;
284
+ min-width: 0;
285
+ color: var(--fe-tabs-text);
286
+ }
287
+ .fe-tabs__navigation {
288
+ display: flex;
289
+ min-width: 0;
290
+ align-items: center;
291
+ gap: 4px;
292
+ }
293
+ .fe-tabs__scroll-button.fe-button {
294
+ flex: 0 0 auto;
295
+ }
296
+ .fe-tabs__scroller {
297
+ min-width: 0;
298
+ flex: 1 1 auto;
299
+ overflow-x: auto;
300
+ overscroll-behavior-x: contain;
301
+ scrollbar-color: var(--fe-tabs-border) transparent;
302
+ scrollbar-width: thin;
303
+ scroll-behavior: smooth;
304
+ }
305
+ .fe-tabs__scroller::-webkit-scrollbar {
306
+ height: 6px;
307
+ }
308
+ .fe-tabs__scroller::-webkit-scrollbar-thumb {
309
+ border-radius: 999px;
310
+ background: var(--fe-tabs-border);
311
+ }
312
+ .fe-tabs__list {
313
+ display: flex;
314
+ width: max-content;
315
+ min-width: 100%;
316
+ align-items: center;
317
+ }
318
+ .fe-tabs__tab {
319
+ position: relative;
320
+ display: inline-flex;
321
+ min-height: 42px;
322
+ flex: 0 0 auto;
323
+ align-items: center;
324
+ justify-content: center;
325
+ padding: 10px 14px;
326
+ border: 0;
327
+ border-radius: 0;
328
+ color: var(--fe-tabs-muted);
329
+ background: transparent;
330
+ font: inherit;
331
+ font-weight: 600;
332
+ line-height: 1.25;
333
+ white-space: nowrap;
334
+ cursor: pointer;
335
+ }
336
+ .fe-tabs__tab:hover {
337
+ color: var(--fe-tabs-text);
338
+ }
339
+ .fe-tabs__tab:focus-visible {
340
+ z-index: 1;
341
+ outline: 3px solid color-mix(in srgb, var(--fe-tabs-accent), transparent 62%);
342
+ outline-offset: -3px;
343
+ }
344
+ .fe-tabs__tab:disabled {
345
+ color: #98a2b3;
346
+ cursor: not-allowed;
347
+ }
348
+ .fe-tabs--tab .fe-tabs__list {
349
+ gap: 4px;
350
+ border-bottom: 1px solid var(--fe-tabs-border);
351
+ }
352
+ .fe-tabs--tab .fe-tabs__tab::after {
353
+ position: absolute;
354
+ right: 10px;
355
+ bottom: -1px;
356
+ left: 10px;
357
+ height: 2px;
358
+ border-radius: 999px 999px 0 0;
359
+ background: transparent;
360
+ content: "";
361
+ }
362
+ .fe-tabs--tab .fe-tabs__tab[aria-selected=true] {
363
+ color: var(--fe-tabs-accent);
364
+ }
365
+ .fe-tabs--tab .fe-tabs__tab[aria-selected=true]::after {
366
+ background: var(--fe-tabs-accent);
367
+ }
368
+ .fe-tabs--segment .fe-tabs__list {
369
+ gap: 4px;
370
+ min-width: fit-content;
371
+ padding: 4px;
372
+ border: 1px solid var(--fe-tabs-border);
373
+ border-radius: 12px;
374
+ background: var(--fe-tabs-surface);
375
+ }
376
+ .fe-tabs--segment .fe-tabs__tab {
377
+ min-height: 34px;
378
+ padding: 7px 12px;
379
+ border-radius: 8px;
380
+ }
381
+ .fe-tabs--segment .fe-tabs__tab[aria-selected=true] {
382
+ color: var(--fe-tabs-accent);
383
+ background: #fff;
384
+ box-shadow: 0 1px 2px rgb(16 24 40 / 14%);
385
+ }
386
+ .fe-tabs__panel {
387
+ padding-top: 20px;
388
+ }
389
+ .fe-tabs__panel:focus-visible {
390
+ outline: 3px solid color-mix(in srgb, var(--fe-tabs-accent), transparent 70%);
391
+ outline-offset: 3px;
392
+ }
393
+ .fe-tabs__panel[hidden] {
394
+ display: none;
395
+ }
396
+ @media (prefers-reduced-motion: reduce) {
397
+ .fe-tabs__scroller {
398
+ scroll-behavior: auto;
399
+ }
400
+ }
246
401
 
247
402
  /* packages/table/src/styles.css */
248
403
  .fe-table {
@@ -425,6 +580,7 @@ table[data-fe-table] tbody tr:hover {
425
580
  display: flex;
426
581
  flex-direction: column;
427
582
  height: 100vh;
583
+ height: 100dvh;
428
584
  max-width: calc(100vw - 32px);
429
585
  overflow: hidden;
430
586
  background: #fff;
@@ -454,6 +610,7 @@ table[data-fe-table] tbody tr:hover {
454
610
  .fe-drawer--full-screen {
455
611
  width: 100vw;
456
612
  height: 100vh;
613
+ height: 100dvh;
457
614
  max-width: none;
458
615
  max-height: none;
459
616
  margin: 0;
@@ -480,19 +637,18 @@ table[data-fe-table] tbody tr:hover {
480
637
  margin: 0;
481
638
  font-size: 18px;
482
639
  }
483
- .fe-drawer__header button {
484
- width: 32px;
485
- height: 32px;
486
- border: 0;
487
- border-radius: 50%;
488
- background: transparent;
489
- color: #535b6a;
490
- font-size: 26px;
491
- line-height: 1;
492
- cursor: pointer;
640
+ .fe-drawer__heading {
641
+ min-width: 0;
493
642
  }
494
- .fe-drawer__header button:hover {
495
- background: #f1f3f6;
643
+ .fe-drawer__heading p {
644
+ margin: 5px 0 0;
645
+ color: #687183;
646
+ font-size: 14px;
647
+ line-height: 1.45;
648
+ }
649
+ .fe-drawer__header .fe-button {
650
+ flex: 0 0 auto;
651
+ margin-right: -6px;
496
652
  }
497
653
  .fe-drawer__body {
498
654
  flex: 1 1 auto;
@@ -540,6 +696,69 @@ table[data-fe-table] tbody tr:hover {
540
696
  transform: translateY(0);
541
697
  }
542
698
  }
699
+ @media (max-width: 640px) {
700
+ .fe-drawer__header,
701
+ .fe-drawer__footer {
702
+ padding-right: max(16px, env(safe-area-inset-right));
703
+ padding-left: max(16px, env(safe-area-inset-left));
704
+ }
705
+ .fe-drawer__body {
706
+ padding: 20px max(16px, env(safe-area-inset-right)) 24px max(16px, env(safe-area-inset-left));
707
+ }
708
+ .fe-drawer__footer {
709
+ padding-bottom: max(12px, env(safe-area-inset-bottom));
710
+ }
711
+ .fe-drawer.fe-drawer--left {
712
+ width: calc(100vw - 32px) !important;
713
+ height: 100vh;
714
+ height: 100dvh;
715
+ margin-right: auto;
716
+ margin-left: 0;
717
+ animation-name: fe-drawer-in-left;
718
+ }
719
+ .fe-drawer.fe-drawer--right {
720
+ width: calc(100vw - 32px) !important;
721
+ height: 100vh;
722
+ height: 100dvh;
723
+ margin-right: 0;
724
+ margin-left: auto;
725
+ animation-name: fe-drawer-in-right;
726
+ }
727
+ .fe-drawer.fe-drawer--top {
728
+ width: 100% !important;
729
+ height: auto;
730
+ max-width: none;
731
+ max-height: min(85dvh, 720px);
732
+ margin: 0 auto auto;
733
+ border-radius: 0 0 20px 20px;
734
+ animation-name: fe-drawer-in-top;
735
+ }
736
+ .fe-drawer.fe-drawer--bottom {
737
+ width: 100% !important;
738
+ height: auto;
739
+ max-width: none;
740
+ max-height: min(85dvh, 720px);
741
+ margin: auto 0 0;
742
+ border-radius: 20px 20px 0 0;
743
+ animation-name: fe-drawer-in-bottom;
744
+ }
745
+ .fe-drawer.fe-drawer--full-screen {
746
+ width: 100vw !important;
747
+ height: 100vh;
748
+ height: 100dvh;
749
+ max-width: none;
750
+ max-height: none;
751
+ margin: 0;
752
+ border-radius: 0;
753
+ }
754
+ }
755
+ @media (prefers-reduced-motion: reduce) {
756
+ .fe-drawer-backdrop,
757
+ .fe-drawer {
758
+ animation-duration: 0.01ms;
759
+ animation-iteration-count: 1;
760
+ }
761
+ }
543
762
 
544
763
  /* packages/form-controls/src/controls/Field/style.css */
545
764
  .fe-field__label {
@@ -1113,6 +1332,19 @@ table[data-fe-table] tbody tr:hover {
1113
1332
  font-size: 12px;
1114
1333
  }
1115
1334
 
1335
+ /* packages/form-controls/src/controls/PasswordInput/style.css */
1336
+ .fe-password-input .fe-text-input__suffix {
1337
+ margin-left: 0;
1338
+ padding-right: 4px;
1339
+ }
1340
+ .fe-password-input__toggle.fe-button {
1341
+ width: 28px;
1342
+ min-width: 28px;
1343
+ height: 28px;
1344
+ min-height: 28px;
1345
+ border-radius: 50%;
1346
+ }
1347
+
1116
1348
  /* packages/form-controls/src/controls/TextArea/style.css */
1117
1349
  .fe-text-area {
1118
1350
  display: grid;
@@ -1790,21 +2022,23 @@ table[data-fe-table] tbody tr:hover {
1790
2022
  display: grid;
1791
2023
  place-items: center;
1792
2024
  padding: 24px;
1793
- background: rgba(15, 18, 25, .5);
1794
- animation: fe-modal-fade .16s ease;
2025
+ background: rgba(15, 18, 25, 0.5);
2026
+ animation: fe-modal-fade 0.16s ease;
1795
2027
  }
1796
2028
  .fe-modal {
1797
2029
  display: flex;
1798
- width: min(100%, 560px);
2030
+ width: 100%;
2031
+ max-width: 560px;
1799
2032
  max-height: min(720px, calc(100vh - 48px));
2033
+ max-height: min(720px, calc(100dvh - 48px));
1800
2034
  flex-direction: column;
1801
2035
  overflow: hidden;
1802
2036
  border-radius: 16px;
1803
2037
  background: #fff;
1804
2038
  color: #20242c;
1805
- box-shadow: 0 24px 64px rgba(15, 18, 25, .28);
2039
+ box-shadow: 0 24px 64px rgba(15, 18, 25, 0.28);
1806
2040
  outline: 0;
1807
- animation: fe-modal-in .18s cubic-bezier(.2, .8, .2, 1);
2041
+ animation: fe-modal-in 0.18s cubic-bezier(0.2, 0.8, 0.2, 1);
1808
2042
  }
1809
2043
  .fe-modal--small {
1810
2044
  max-width: 400px;
@@ -1822,6 +2056,7 @@ table[data-fe-table] tbody tr:hover {
1822
2056
  width: calc(100vw - 48px);
1823
2057
  max-width: none;
1824
2058
  max-height: calc(100vh - 48px);
2059
+ max-height: calc(100dvh - 48px);
1825
2060
  }
1826
2061
  .fe-modal__header {
1827
2062
  display: flex;
@@ -1888,7 +2123,7 @@ table[data-fe-table] tbody tr:hover {
1888
2123
  @keyframes fe-modal-in {
1889
2124
  from {
1890
2125
  opacity: 0;
1891
- transform: translateY(10px) scale(.985);
2126
+ transform: translateY(10px) scale(0.985);
1892
2127
  }
1893
2128
  to {
1894
2129
  opacity: 1;
@@ -1903,6 +2138,7 @@ table[data-fe-table] tbody tr:hover {
1903
2138
  .fe-modal--full {
1904
2139
  width: 100%;
1905
2140
  max-height: calc(100vh - 32px);
2141
+ max-height: calc(100dvh - 32px);
1906
2142
  }
1907
2143
  .fe-modal__header,
1908
2144
  .fe-modal__body,
@@ -1913,6 +2149,7 @@ table[data-fe-table] tbody tr:hover {
1913
2149
  .fe-modal__footer {
1914
2150
  align-items: stretch;
1915
2151
  flex-direction: column;
2152
+ padding-bottom: max(12px, env(safe-area-inset-bottom));
1916
2153
  }
1917
2154
  .fe-modal__actions {
1918
2155
  width: 100%;
@@ -1922,6 +2159,13 @@ table[data-fe-table] tbody tr:hover {
1922
2159
  flex: 1;
1923
2160
  }
1924
2161
  }
2162
+ @media (prefers-reduced-motion: reduce) {
2163
+ .fe-modal-backdrop,
2164
+ .fe-modal {
2165
+ animation-duration: 0.01ms;
2166
+ animation-iteration-count: 1;
2167
+ }
2168
+ }
1925
2169
 
1926
2170
  /* packages/progress/src/styles.css */
1927
2171
  .fe-progress {
@@ -2379,4 +2623,408 @@ table[data-fe-table] tbody tr:hover {
2379
2623
  white-space: nowrap;
2380
2624
  }
2381
2625
 
2626
+ /* packages/file-upload/src/styles.css */
2627
+ .fe-file-upload {
2628
+ display: grid;
2629
+ min-width: 0;
2630
+ gap: 8px;
2631
+ color: #20242c;
2632
+ font: inherit;
2633
+ }
2634
+ .fe-file-upload__label {
2635
+ font-size: 14px;
2636
+ font-weight: 600;
2637
+ }
2638
+ .fe-file-upload__description {
2639
+ color: #687183;
2640
+ font-size: 13px;
2641
+ line-height: 1.45;
2642
+ }
2643
+ .fe-file-upload__input {
2644
+ position: absolute;
2645
+ width: 1px;
2646
+ height: 1px;
2647
+ padding: 0;
2648
+ border: 0;
2649
+ overflow: hidden;
2650
+ clip: rect(0 0 0 0);
2651
+ clip-path: inset(50%);
2652
+ white-space: nowrap;
2653
+ }
2654
+ .fe-file-upload__dropzone {
2655
+ display: grid;
2656
+ min-height: 188px;
2657
+ place-items: center;
2658
+ align-content: center;
2659
+ gap: 7px;
2660
+ padding: 24px;
2661
+ border: 2px dashed #b8bec9;
2662
+ border-radius: 14px;
2663
+ background: #fff;
2664
+ text-align: center;
2665
+ transition:
2666
+ border-color 0.16s ease,
2667
+ background-color 0.16s ease,
2668
+ box-shadow 0.16s ease;
2669
+ }
2670
+ .fe-file-upload__dropzone:hover {
2671
+ border-color: #5b9cff;
2672
+ background: #f8fbff;
2673
+ }
2674
+ .fe-file-upload__dropzone--dragging {
2675
+ border-color: #2878f0;
2676
+ background: #e7f1ff;
2677
+ box-shadow: 0 0 0 4px rgba(40, 120, 240, 0.14);
2678
+ }
2679
+ .fe-file-upload__dropzone--disabled {
2680
+ border-color: #d4d8e0;
2681
+ background: #f5f6f8;
2682
+ color: #8b94a4;
2683
+ }
2684
+ .fe-file-upload__drop-icon {
2685
+ display: grid;
2686
+ width: 36px;
2687
+ height: 36px;
2688
+ place-items: center;
2689
+ border-radius: 50%;
2690
+ color: #1e60cc;
2691
+ background: #e7f1ff;
2692
+ font-size: 24px;
2693
+ font-weight: 700;
2694
+ line-height: 1;
2695
+ }
2696
+ .fe-file-upload__drop-label {
2697
+ font-size: 14px;
2698
+ font-weight: 700;
2699
+ }
2700
+ .fe-file-upload__drop-hint {
2701
+ color: #687183;
2702
+ font-size: 13px;
2703
+ }
2704
+ .fe-file-upload__dropzone .fe-button {
2705
+ margin-top: 5px;
2706
+ }
2707
+ .fe-file-upload__errors {
2708
+ display: grid;
2709
+ gap: 4px;
2710
+ padding: 10px 12px;
2711
+ border: 1px solid #f3909d;
2712
+ border-radius: 10px;
2713
+ color: #b92c43;
2714
+ background: #ffeaed;
2715
+ font-size: 13px;
2716
+ line-height: 1.45;
2717
+ }
2718
+ .fe-file-upload__errors p {
2719
+ margin: 0;
2720
+ }
2721
+ .fe-file-upload__list {
2722
+ display: grid;
2723
+ margin: 0;
2724
+ padding: 0;
2725
+ overflow: hidden;
2726
+ border: 1px solid #d4d8e0;
2727
+ border-radius: 12px;
2728
+ list-style: none;
2729
+ }
2730
+ .fe-file-upload__item {
2731
+ display: flex;
2732
+ min-width: 0;
2733
+ align-items: center;
2734
+ gap: 12px;
2735
+ padding: 10px 12px;
2736
+ border-top: 1px solid #e8eaee;
2737
+ background: #fff;
2738
+ }
2739
+ .fe-file-upload__item:first-child {
2740
+ border-top: 0;
2741
+ }
2742
+ .fe-file-upload__visual {
2743
+ display: grid;
2744
+ width: 40px;
2745
+ height: 40px;
2746
+ flex: 0 0 40px;
2747
+ place-items: center;
2748
+ overflow: hidden;
2749
+ border-radius: 8px;
2750
+ background: #f1f3f6;
2751
+ }
2752
+ .fe-file-upload__thumbnail {
2753
+ width: 100%;
2754
+ height: 100%;
2755
+ object-fit: cover;
2756
+ }
2757
+ .fe-file-upload__file-type {
2758
+ max-width: 34px;
2759
+ overflow: hidden;
2760
+ color: #535b6a;
2761
+ font-size: 10px;
2762
+ font-weight: 800;
2763
+ text-overflow: ellipsis;
2764
+ text-transform: uppercase;
2765
+ white-space: nowrap;
2766
+ }
2767
+ .fe-file-upload__file-details {
2768
+ display: grid;
2769
+ min-width: 0;
2770
+ flex: 1 1 auto;
2771
+ gap: 3px;
2772
+ }
2773
+ .fe-file-upload__file-name {
2774
+ overflow: hidden;
2775
+ color: #20242c;
2776
+ font-size: 14px;
2777
+ font-weight: 600;
2778
+ text-overflow: ellipsis;
2779
+ white-space: nowrap;
2780
+ }
2781
+ .fe-file-upload__file-size {
2782
+ color: #687183;
2783
+ font-size: 12px;
2784
+ }
2785
+ .fe-file-upload__item > .fe-button {
2786
+ flex: 0 0 auto;
2787
+ }
2788
+ @media (max-width: 480px) {
2789
+ .fe-file-upload__dropzone {
2790
+ min-height: 168px;
2791
+ padding: 20px 16px;
2792
+ }
2793
+ .fe-file-upload__item {
2794
+ gap: 9px;
2795
+ padding: 9px;
2796
+ }
2797
+ }
2798
+
2799
+ /* packages/file-preview/src/styles.css */
2800
+ .fe-file-preview-backdrop {
2801
+ position: fixed;
2802
+ z-index: 1200;
2803
+ inset: 0;
2804
+ display: grid;
2805
+ place-items: center;
2806
+ padding: 24px;
2807
+ background: rgba(8, 12, 20, 0.88);
2808
+ animation: fe-file-preview-fade 0.16s ease;
2809
+ }
2810
+ .fe-file-preview {
2811
+ display: flex;
2812
+ width: min(1120px, 100%);
2813
+ height: min(760px, calc(100dvh - 48px));
2814
+ flex-direction: column;
2815
+ overflow: hidden;
2816
+ border: 1px solid rgba(255, 255, 255, 0.18);
2817
+ border-radius: 16px;
2818
+ background: #151a23;
2819
+ color: #f8fafc;
2820
+ box-shadow: 0 28px 80px rgba(0, 0, 0, 0.45);
2821
+ outline: 0;
2822
+ animation: fe-file-preview-in 0.18s cubic-bezier(0.2, 0.8, 0.2, 1);
2823
+ }
2824
+ .fe-file-preview__header,
2825
+ .fe-file-preview__footer {
2826
+ display: flex;
2827
+ flex: 0 0 auto;
2828
+ align-items: center;
2829
+ justify-content: space-between;
2830
+ gap: 16px;
2831
+ padding: 14px 18px;
2832
+ }
2833
+ .fe-file-preview__header {
2834
+ border-bottom: 1px solid rgba(255, 255, 255, 0.14);
2835
+ }
2836
+ .fe-file-preview__heading {
2837
+ display: flex;
2838
+ min-width: 0;
2839
+ align-items: center;
2840
+ gap: 12px;
2841
+ }
2842
+ .fe-file-preview__heading h2 {
2843
+ overflow: hidden;
2844
+ margin: 0;
2845
+ font-size: 15px;
2846
+ line-height: 1.35;
2847
+ text-overflow: ellipsis;
2848
+ white-space: nowrap;
2849
+ }
2850
+ .fe-file-preview__heading > span,
2851
+ .fe-file-preview__metadata {
2852
+ flex: 0 0 auto;
2853
+ color: #aab5c6;
2854
+ font-size: 13px;
2855
+ }
2856
+ .fe-file-preview__header .fe-button {
2857
+ flex: 0 0 auto;
2858
+ color: #f8fafc;
2859
+ }
2860
+ .fe-file-preview__header .fe-button:hover {
2861
+ background: rgba(255, 255, 255, 0.12);
2862
+ }
2863
+ .fe-file-preview__body {
2864
+ position: relative;
2865
+ display: grid;
2866
+ min-height: 0;
2867
+ flex: 1 1 auto;
2868
+ place-items: center;
2869
+ overflow: hidden;
2870
+ padding: 24px 80px;
2871
+ background: #0d1118;
2872
+ }
2873
+ .fe-file-preview__image,
2874
+ .fe-file-preview__video {
2875
+ display: block;
2876
+ max-width: 100%;
2877
+ max-height: 100%;
2878
+ border-radius: 10px;
2879
+ object-fit: contain;
2880
+ }
2881
+ .fe-file-preview__video {
2882
+ background: #000;
2883
+ }
2884
+ .fe-file-preview__audio {
2885
+ width: min(520px, 100%);
2886
+ }
2887
+ .fe-file-preview__pdf {
2888
+ width: 100%;
2889
+ height: 100%;
2890
+ border: 0;
2891
+ border-radius: 10px;
2892
+ background: #fff;
2893
+ }
2894
+ .fe-file-preview__unsupported {
2895
+ display: grid;
2896
+ width: min(360px, 100%);
2897
+ gap: 10px;
2898
+ justify-items: center;
2899
+ padding: 32px;
2900
+ border: 1px solid rgba(255, 255, 255, 0.16);
2901
+ border-radius: 14px;
2902
+ color: #c8d1df;
2903
+ background: #1e2531;
2904
+ text-align: center;
2905
+ }
2906
+ .fe-file-preview__unsupported p {
2907
+ margin: 0;
2908
+ color: #f8fafc;
2909
+ font-weight: 600;
2910
+ }
2911
+ .fe-file-preview__unsupported > span:last-child {
2912
+ overflow: hidden;
2913
+ max-width: 100%;
2914
+ text-overflow: ellipsis;
2915
+ white-space: nowrap;
2916
+ }
2917
+ .fe-file-preview__file-type {
2918
+ display: grid;
2919
+ width: 52px;
2920
+ height: 52px;
2921
+ place-items: center;
2922
+ border-radius: 12px;
2923
+ color: #b9d4ff;
2924
+ background: #284b7b;
2925
+ font-size: 12px;
2926
+ font-weight: 800;
2927
+ }
2928
+ .fe-file-preview__empty {
2929
+ color: #aab5c6;
2930
+ }
2931
+ .fe-file-preview__navigation {
2932
+ position: absolute;
2933
+ top: 50%;
2934
+ z-index: 1;
2935
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.28);
2936
+ transform: translateY(-50%);
2937
+ }
2938
+ .fe-file-preview__navigation--previous {
2939
+ left: 20px;
2940
+ }
2941
+ .fe-file-preview__navigation--next {
2942
+ right: 20px;
2943
+ }
2944
+ .fe-file-preview__navigation--previous svg {
2945
+ transform: rotate(90deg);
2946
+ }
2947
+ .fe-file-preview__navigation--next svg {
2948
+ transform: rotate(-90deg);
2949
+ }
2950
+ .fe-file-preview__footer {
2951
+ min-height: 64px;
2952
+ border-top: 1px solid rgba(255, 255, 255, 0.14);
2953
+ }
2954
+ .fe-file-preview__actions {
2955
+ display: flex;
2956
+ flex-wrap: wrap;
2957
+ justify-content: flex-end;
2958
+ gap: 8px;
2959
+ }
2960
+ .fe-file-preview__footer .fe-button--secondary-gray {
2961
+ border-color: rgba(255, 255, 255, 0.26);
2962
+ color: #f8fafc;
2963
+ background: transparent;
2964
+ }
2965
+ .fe-file-preview__footer .fe-button--secondary-gray:hover {
2966
+ background: rgba(255, 255, 255, 0.12);
2967
+ }
2968
+ @keyframes fe-file-preview-fade {
2969
+ from {
2970
+ opacity: 0;
2971
+ }
2972
+ to {
2973
+ opacity: 1;
2974
+ }
2975
+ }
2976
+ @keyframes fe-file-preview-in {
2977
+ from {
2978
+ opacity: 0;
2979
+ transform: translateY(10px) scale(0.985);
2980
+ }
2981
+ to {
2982
+ opacity: 1;
2983
+ transform: translateY(0) scale(1);
2984
+ }
2985
+ }
2986
+ @media (max-width: 640px) {
2987
+ .fe-file-preview-backdrop {
2988
+ padding: 12px;
2989
+ }
2990
+ .fe-file-preview {
2991
+ height: calc(100dvh - 24px);
2992
+ border-radius: 12px;
2993
+ }
2994
+ .fe-file-preview__header,
2995
+ .fe-file-preview__footer {
2996
+ padding-right: 12px;
2997
+ padding-left: 12px;
2998
+ }
2999
+ .fe-file-preview__heading {
3000
+ gap: 8px;
3001
+ }
3002
+ .fe-file-preview__body {
3003
+ padding: 16px 52px;
3004
+ }
3005
+ .fe-file-preview__navigation--previous {
3006
+ left: 8px;
3007
+ }
3008
+ .fe-file-preview__navigation--next {
3009
+ right: 8px;
3010
+ }
3011
+ .fe-file-preview__footer {
3012
+ align-items: flex-start;
3013
+ flex-direction: column;
3014
+ }
3015
+ .fe-file-preview__actions {
3016
+ width: 100%;
3017
+ }
3018
+ .fe-file-preview__actions .fe-button {
3019
+ flex: 1;
3020
+ }
3021
+ }
3022
+ @media (prefers-reduced-motion: reduce) {
3023
+ .fe-file-preview-backdrop,
3024
+ .fe-file-preview {
3025
+ animation-duration: 0.01ms;
3026
+ animation-iteration-count: 1;
3027
+ }
3028
+ }
3029
+
2382
3030
  /* src/styles.css */