@dragunio/fe-libs 0.1.8 → 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
@@ -580,6 +580,7 @@ table[data-fe-table] tbody tr:hover {
580
580
  display: flex;
581
581
  flex-direction: column;
582
582
  height: 100vh;
583
+ height: 100dvh;
583
584
  max-width: calc(100vw - 32px);
584
585
  overflow: hidden;
585
586
  background: #fff;
@@ -609,6 +610,7 @@ table[data-fe-table] tbody tr:hover {
609
610
  .fe-drawer--full-screen {
610
611
  width: 100vw;
611
612
  height: 100vh;
613
+ height: 100dvh;
612
614
  max-width: none;
613
615
  max-height: none;
614
616
  margin: 0;
@@ -635,19 +637,18 @@ table[data-fe-table] tbody tr:hover {
635
637
  margin: 0;
636
638
  font-size: 18px;
637
639
  }
638
- .fe-drawer__header button {
639
- width: 32px;
640
- height: 32px;
641
- border: 0;
642
- border-radius: 50%;
643
- background: transparent;
644
- color: #535b6a;
645
- font-size: 26px;
646
- line-height: 1;
647
- cursor: pointer;
640
+ .fe-drawer__heading {
641
+ min-width: 0;
648
642
  }
649
- .fe-drawer__header button:hover {
650
- 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;
651
652
  }
652
653
  .fe-drawer__body {
653
654
  flex: 1 1 auto;
@@ -695,6 +696,69 @@ table[data-fe-table] tbody tr:hover {
695
696
  transform: translateY(0);
696
697
  }
697
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
+ }
698
762
 
699
763
  /* packages/form-controls/src/controls/Field/style.css */
700
764
  .fe-field__label {
@@ -1268,6 +1332,19 @@ table[data-fe-table] tbody tr:hover {
1268
1332
  font-size: 12px;
1269
1333
  }
1270
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
+
1271
1348
  /* packages/form-controls/src/controls/TextArea/style.css */
1272
1349
  .fe-text-area {
1273
1350
  display: grid;
@@ -1945,21 +2022,23 @@ table[data-fe-table] tbody tr:hover {
1945
2022
  display: grid;
1946
2023
  place-items: center;
1947
2024
  padding: 24px;
1948
- background: rgba(15, 18, 25, .5);
1949
- animation: fe-modal-fade .16s ease;
2025
+ background: rgba(15, 18, 25, 0.5);
2026
+ animation: fe-modal-fade 0.16s ease;
1950
2027
  }
1951
2028
  .fe-modal {
1952
2029
  display: flex;
1953
- width: min(100%, 560px);
2030
+ width: 100%;
2031
+ max-width: 560px;
1954
2032
  max-height: min(720px, calc(100vh - 48px));
2033
+ max-height: min(720px, calc(100dvh - 48px));
1955
2034
  flex-direction: column;
1956
2035
  overflow: hidden;
1957
2036
  border-radius: 16px;
1958
2037
  background: #fff;
1959
2038
  color: #20242c;
1960
- box-shadow: 0 24px 64px rgba(15, 18, 25, .28);
2039
+ box-shadow: 0 24px 64px rgba(15, 18, 25, 0.28);
1961
2040
  outline: 0;
1962
- 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);
1963
2042
  }
1964
2043
  .fe-modal--small {
1965
2044
  max-width: 400px;
@@ -1977,6 +2056,7 @@ table[data-fe-table] tbody tr:hover {
1977
2056
  width: calc(100vw - 48px);
1978
2057
  max-width: none;
1979
2058
  max-height: calc(100vh - 48px);
2059
+ max-height: calc(100dvh - 48px);
1980
2060
  }
1981
2061
  .fe-modal__header {
1982
2062
  display: flex;
@@ -2043,7 +2123,7 @@ table[data-fe-table] tbody tr:hover {
2043
2123
  @keyframes fe-modal-in {
2044
2124
  from {
2045
2125
  opacity: 0;
2046
- transform: translateY(10px) scale(.985);
2126
+ transform: translateY(10px) scale(0.985);
2047
2127
  }
2048
2128
  to {
2049
2129
  opacity: 1;
@@ -2058,6 +2138,7 @@ table[data-fe-table] tbody tr:hover {
2058
2138
  .fe-modal--full {
2059
2139
  width: 100%;
2060
2140
  max-height: calc(100vh - 32px);
2141
+ max-height: calc(100dvh - 32px);
2061
2142
  }
2062
2143
  .fe-modal__header,
2063
2144
  .fe-modal__body,
@@ -2068,6 +2149,7 @@ table[data-fe-table] tbody tr:hover {
2068
2149
  .fe-modal__footer {
2069
2150
  align-items: stretch;
2070
2151
  flex-direction: column;
2152
+ padding-bottom: max(12px, env(safe-area-inset-bottom));
2071
2153
  }
2072
2154
  .fe-modal__actions {
2073
2155
  width: 100%;
@@ -2077,6 +2159,13 @@ table[data-fe-table] tbody tr:hover {
2077
2159
  flex: 1;
2078
2160
  }
2079
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
+ }
2080
2169
 
2081
2170
  /* packages/progress/src/styles.css */
2082
2171
  .fe-progress {
@@ -2534,4 +2623,408 @@ table[data-fe-table] tbody tr:hover {
2534
2623
  white-space: nowrap;
2535
2624
  }
2536
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
+
2537
3030
  /* src/styles.css */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dragunio/fe-libs",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Reusable React components, icons, and table primitives.",
5
5
  "license": "MIT",
6
6
  "repository": {