mantenimento-app 2.3.0 → 2.3.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.
package/app.js CHANGED
@@ -3719,7 +3719,7 @@ const defaultExpenseItems = [
3719
3719
  }
3720
3720
  }
3721
3721
 
3722
- const primaCasaLocativeConsidered = primaCasaAssignmentConsidered && primaCasaValoreLocativo > 0;
3722
+ const primaCasaLocativeConsidered = primaCasaValoreLocativo > 0 && primaCasaAssegnataA !== "";
3723
3723
  let primaCasaLocativeTransfer1to2 = 0;
3724
3724
  let primaCasaLocativeTransfer2to1 = 0;
3725
3725
  if (primaCasaLocativeConsidered) {
@@ -3719,7 +3719,7 @@ const defaultExpenseItems = [
3719
3719
  }
3720
3720
  }
3721
3721
 
3722
- const primaCasaLocativeConsidered = primaCasaAssignmentConsidered && primaCasaValoreLocativo > 0;
3722
+ const primaCasaLocativeConsidered = primaCasaValoreLocativo > 0 && primaCasaAssegnataA !== "";
3723
3723
  let primaCasaLocativeTransfer1to2 = 0;
3724
3724
  let primaCasaLocativeTransfer2to1 = 0;
3725
3725
  if (primaCasaLocativeConsidered) {
@@ -623,7 +623,7 @@
623
623
  <script src="supabase.min.js"></script>
624
624
  <script src="fabric.min.js"></script>
625
625
  <script src="html2pdf.bundle.min.js"></script>
626
- <script src="app.js?v=2.3.0"></script>
626
+ <script src="app.js?v=2.3.2"></script>
627
627
  </body>
628
628
  </html>
629
629
 
@@ -884,68 +884,138 @@
884
884
  color: #184a44;
885
885
  }
886
886
 
887
+ .extra-box-first-home {
888
+ background: linear-gradient(135deg, #ffffff 0%, #f0fffe 50%, #f5faff 100%);
889
+ border: 1px solid rgba(27, 141, 127, 0.15);
890
+ box-shadow: 0 2px 8px rgba(27, 141, 127, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.8);
891
+ }
892
+
893
+ .extra-box-first-home .extra-box-title::before {
894
+ content: '🏠 ';
895
+ margin-right: 4px;
896
+ }
897
+
887
898
  .extra-box-first-home .extra-grid {
888
899
  gap: 8px 10px;
889
900
  }
890
901
 
891
902
  .mortgage-split-slider {
892
- margin-top: 2px;
893
- border: 1px solid #b9d6cf;
894
- border-radius: 12px;
903
+ margin-top: 12px;
904
+ border: 1.5px solid rgba(27, 141, 127, 0.2);
905
+ border-radius: 16px;
895
906
  background:
896
- radial-gradient(120% 160% at 0% 0%, rgba(229, 247, 242, 0.8), transparent 58%),
897
- radial-gradient(120% 160% at 100% 0%, rgba(255, 241, 214, 0.8), transparent 58%),
898
- linear-gradient(180deg, #fafdfc, #eef7f5);
899
- padding: 8px;
907
+ radial-gradient(120% 160% at 0% 0%, rgba(229, 247, 242, 0.6), transparent 58%),
908
+ radial-gradient(120% 160% at 100% 0%, rgba(255, 241, 214, 0.6), transparent 58%),
909
+ linear-gradient(180deg, #fafffe, #f2f8f7);
910
+ padding: 14px;
900
911
  display: grid;
901
912
  grid-template-columns: minmax(0, 1fr) minmax(180px, 2fr) minmax(0, 1fr);
902
- gap: 6px;
913
+ gap: 10px;
903
914
  align-items: center;
904
- transition: opacity 0.2s ease;
915
+ box-shadow: 0 4px 12px rgba(27, 141, 127, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.6);
916
+ transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
917
+ }
918
+
919
+ .mortgage-split-slider:hover {
920
+ box-shadow: 0 8px 20px rgba(27, 141, 127, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.8);
921
+ border-color: rgba(27, 141, 127, 0.3);
905
922
  }
906
923
 
907
924
  .mortgage-split-slider.is-disabled {
908
- opacity: 0.58;
925
+ opacity: 0.55;
926
+ filter: grayscale(0.4);
909
927
  }
910
928
 
911
929
  .mortgage-split-side {
912
- border: 1px solid #c6ded8;
913
- border-radius: 12px;
914
- padding: 8px;
915
- background: linear-gradient(180deg, #ffffff, #f3faf8);
916
- min-height: 58px;
930
+ border: 1.5px solid rgba(27, 141, 127, 0.15);
931
+ border-radius: 14px;
932
+ padding: 12px;
933
+ background: linear-gradient(135deg, #ffffff 0%, #f5fbf9 100%);
934
+ min-height: 62px;
917
935
  display: grid;
918
936
  align-content: center;
919
- gap: 3px;
920
- box-shadow: 0 1px 3px rgba(17, 74, 68, 0.08);
937
+ gap: 4px;
938
+ box-shadow: 0 2px 6px rgba(27, 141, 127, 0.08), inset 0 1px 2px rgba(255, 255, 255, 0.7);
939
+ transition: all 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
940
+ position: relative;
941
+ overflow: hidden;
942
+ }
943
+
944
+ .mortgage-split-side::before {
945
+ content: '';
946
+ position: absolute;
947
+ top: 0;
948
+ left: 0;
949
+ right: 0;
950
+ bottom: 0;
951
+ background: radial-gradient(120% 200% at 50% 0%, rgba(255, 255, 255, 0.4), transparent 70%);
952
+ pointer-events: none;
953
+ opacity: 0;
954
+ transition: opacity 0.28s ease;
955
+ }
956
+
957
+ .mortgage-split-side:hover {
958
+ transform: translateY(-2px);
959
+ box-shadow: 0 6px 16px rgba(27, 141, 127, 0.12), inset 0 1px 2px rgba(255, 255, 255, 0.9);
960
+ border-color: rgba(27, 141, 127, 0.25);
961
+ }
962
+
963
+ .mortgage-split-side:hover::before {
964
+ opacity: 1;
921
965
  }
922
966
 
923
967
  .mortgage-split-side-left {
924
- box-shadow: inset 3px 0 0 #1b8d7f;
968
+ box-shadow: 0 2px 6px rgba(27, 141, 127, 0.08), inset 0 1px 2px rgba(255, 255, 255, 0.7), inset 3px 0 0 #1b8d7f;
969
+ background: linear-gradient(135deg, #effaf8 0%, #e5f5f1 100%);
970
+ }
971
+
972
+ .mortgage-split-side-left:hover {
973
+ box-shadow: 0 6px 16px rgba(27, 141, 127, 0.12), inset 0 1px 2px rgba(255, 255, 255, 0.9), inset 3px 0 0 #1b8d7f;
974
+ background: linear-gradient(135deg, #f0faf8 0%, #e8f7f4 100%);
925
975
  }
926
976
 
927
977
  .mortgage-split-side-right {
928
- box-shadow: inset -3px 0 0 #d89a35;
978
+ box-shadow: 0 2px 6px rgba(27, 141, 127, 0.08), inset 0 1px 2px rgba(255, 255, 255, 0.7), inset -3px 0 0 #d89a35;
929
979
  text-align: right;
980
+ background: linear-gradient(135deg, #fef9f1 0%, #fdf5e8 100%);
981
+ }
982
+
983
+ .mortgage-split-side-right:hover {
984
+ box-shadow: 0 6px 16px rgba(27, 141, 127, 0.12), inset 0 1px 2px rgba(255, 255, 255, 0.9), inset -3px 0 0 #d89a35;
985
+ background: linear-gradient(135deg, #fefaf4 0%, #fef7ed 100%);
930
986
  }
931
987
 
932
988
  .mortgage-split-name {
933
- font-size: 0.72rem;
989
+ font-size: 0.73rem;
934
990
  font-weight: 800;
935
- color: #2a4a46;
991
+ color: #1a3a36;
936
992
  overflow-wrap: anywhere;
993
+ letter-spacing: 0.3px;
994
+ text-shadow: 0 1px 2px rgba(255, 255, 255, 0.5);
937
995
  }
938
996
 
939
997
  .mortgage-split-amount {
940
- font-size: 0.9rem;
998
+ font-size: 0.95rem;
941
999
  font-weight: 900;
942
- color: #124f48;
943
- letter-spacing: 0.2px;
1000
+ color: #0b4440;
1001
+ letter-spacing: 0.3px;
1002
+ background: linear-gradient(135deg, #0f6659, #1b8d7f);
1003
+ -webkit-background-clip: text;
1004
+ -webkit-text-fill-color: transparent;
1005
+ background-clip: text;
1006
+ filter: drop-shadow(0 1px 2px rgba(27, 141, 127, 0.2));
1007
+ }
1008
+
1009
+ .mortgage-split-side-right .mortgage-split-amount {
1010
+ background: linear-gradient(135deg, #c86d28, #d89a35);
1011
+ -webkit-background-clip: text;
1012
+ -webkit-text-fill-color: transparent;
1013
+ background-clip: text;
944
1014
  }
945
1015
 
946
1016
  .mortgage-split-range-wrap {
947
1017
  position: relative;
948
- padding: 14px 0 6px;
1018
+ padding: 20px 0 8px;
949
1019
  --split-left: 50%;
950
1020
  }
951
1021
 
@@ -953,58 +1023,141 @@
953
1023
  -webkit-appearance: none;
954
1024
  appearance: none;
955
1025
  width: 100%;
956
- height: 8px;
1026
+ height: 10px;
957
1027
  border-radius: 999px;
958
1028
  background: linear-gradient(90deg,
959
- #2b9d8e 0%,
960
- #6cb9a9 var(--split-left),
961
- #dfb264 var(--split-left),
962
- #cb8a2d 100%);
1029
+ #16a396 0%,
1030
+ #3db5a0 20%,
1031
+ #6cbba8 var(--split-left),
1032
+ #ddb05a var(--split-left),
1033
+ #d89a35 80%,
1034
+ #c27f1d 100%);
963
1035
  outline: none;
964
1036
  margin: 0;
965
- transition: background 0.16s ease;
1037
+ transition: background 0.2s ease;
1038
+ box-shadow: 0 2px 4px rgba(22, 163, 150, 0.2), inset 0 1px 1px rgba(255, 255, 255, 0.3);
1039
+ }
1040
+
1041
+ .mortgage-split-range-wrap input[type="range"]:hover {
1042
+ box-shadow: 0 3px 8px rgba(22, 163, 150, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.4);
966
1043
  }
967
1044
 
968
1045
  .mortgage-split-range-wrap input[type="range"]::-webkit-slider-thumb {
969
1046
  -webkit-appearance: none;
970
1047
  appearance: none;
971
- width: 22px;
972
- height: 22px;
1048
+ width: 26px;
1049
+ height: 26px;
973
1050
  border-radius: 50%;
974
- border: 2px solid #ffffff;
975
- background: radial-gradient(circle at 35% 30%, #ffffff 0%, #e8f8f5 42%, #177a6f 100%);
976
- box-shadow: 0 3px 9px rgba(13, 70, 64, 0.35);
977
- cursor: pointer;
1051
+ border: 3px solid #ffffff;
1052
+ background: radial-gradient(circle at 30% 25%, #ffffff 0%, #f0faf8 30%, #16a396 100%);
1053
+ box-shadow: 0 4px 12px rgba(13, 70, 64, 0.4), 0 0 0 1px rgba(27, 141, 127, 0.15);
1054
+ cursor: grab;
1055
+ transition: all 0.2s ease;
1056
+ }
1057
+
1058
+ .mortgage-split-range-wrap input[type="range"]::-webkit-slider-thumb:hover {
1059
+ width: 28px;
1060
+ height: 28px;
1061
+ box-shadow: 0 6px 16px rgba(13, 70, 64, 0.5), 0 0 0 2px rgba(27, 141, 127, 0.2);
1062
+ }
1063
+
1064
+ .mortgage-split-range-wrap input[type="range"]::-webkit-slider-thumb:active {
1065
+ cursor: grabbing;
978
1066
  }
979
1067
 
980
1068
  .mortgage-split-range-wrap input[type="range"]::-moz-range-thumb {
981
- width: 22px;
982
- height: 22px;
1069
+ width: 26px;
1070
+ height: 26px;
983
1071
  border-radius: 50%;
984
- border: 2px solid #ffffff;
985
- background: radial-gradient(circle at 35% 30%, #ffffff 0%, #e8f8f5 42%, #177a6f 100%);
986
- box-shadow: 0 3px 9px rgba(13, 70, 64, 0.35);
987
- cursor: pointer;
1072
+ border: 3px solid #ffffff;
1073
+ background: radial-gradient(circle at 30% 25%, #ffffff 0%, #f0faf8 30%, #16a396 100%);
1074
+ box-shadow: 0 4px 12px rgba(13, 70, 64, 0.4), 0 0 0 1px rgba(27, 141, 127, 0.15);
1075
+ cursor: grab;
1076
+ transition: all 0.2s ease;
1077
+ }
1078
+
1079
+ .mortgage-split-range-wrap input[type="range"]::-moz-range-thumb:hover {
1080
+ width: 28px;
1081
+ height: 28px;
1082
+ box-shadow: 0 6px 16px rgba(13, 70, 64, 0.5), 0 0 0 2px rgba(27, 141, 127, 0.2);
988
1083
  }
989
1084
 
990
1085
  .mortgage-split-center {
991
1086
  position: absolute;
992
- top: -1px;
993
- left: 50%;
1087
+ top: 2px;
1088
+ left: var(--split-left);
994
1089
  transform: translateX(-50%);
995
- font-size: 0.7rem;
1090
+ font-size: 0.73rem;
996
1091
  font-weight: 900;
997
- color: #114c45;
998
- background: #ffffff;
999
- border: 1px solid #b8d5ce;
1092
+ color: #0f544d;
1093
+ background: linear-gradient(135deg, #ffffff, #f5fbf9);
1094
+ border: 1.5px solid rgba(27, 141, 127, 0.2);
1000
1095
  border-radius: 999px;
1001
- padding: 1px 7px;
1096
+ padding: 2px 9px;
1002
1097
  white-space: nowrap;
1098
+ box-shadow: 0 2px 6px rgba(27, 141, 127, 0.15), inset 0 1px 2px rgba(255, 255, 255, 0.6);
1099
+ transition: all 0.2s ease;
1100
+ letter-spacing: 0.2px;
1003
1101
  }
1004
1102
 
1005
1103
  #primaCasaMutuoSplitInfo {
1006
- margin-top: 3px;
1104
+ margin-top: 6px;
1007
1105
  font-size: 0.77rem;
1106
+ color: #2a5350;
1107
+ font-weight: 600;
1108
+ letter-spacing: 0.1px;
1109
+ }
1110
+
1111
+ /* Premium first home mortgage section */
1112
+ .extra-box-first-home .field {
1113
+ gap: 6px;
1114
+ }
1115
+
1116
+ .extra-box-first-home .field label {
1117
+ font-weight: 600;
1118
+ color: #1a3a36;
1119
+ }
1120
+
1121
+ .extra-box-first-home input[type="number"],
1122
+ .extra-box-first-home input[type="text"],
1123
+ .extra-box-first-home select {
1124
+ border: 1.5px solid rgba(27, 141, 127, 0.2);
1125
+ background: linear-gradient(135deg, #ffffff 0%, #f5fbf9 100%);
1126
+ box-shadow: 0 2px 4px rgba(27, 141, 127, 0.06), inset 0 1px 1px rgba(255, 255, 255, 0.5);
1127
+ transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
1128
+ }
1129
+
1130
+ .extra-box-first-home input[type="number"]:hover,
1131
+ .extra-box-first-home input[type="text"]:hover,
1132
+ .extra-box-first-home select:hover {
1133
+ border-color: rgba(27, 141, 127, 0.35);
1134
+ box-shadow: 0 4px 10px rgba(27, 141, 127, 0.12), inset 0 1px 1px rgba(255, 255, 255, 0.6);
1135
+ }
1136
+
1137
+ .extra-box-first-home input[type="number"]:focus,
1138
+ .extra-box-first-home input[type="text"]:focus,
1139
+ .extra-box-first-home select:focus {
1140
+ outline: none;
1141
+ border-color: #16a396;
1142
+ box-shadow: 0 0 0 3px rgba(22, 163, 150, 0.15), inset 0 1px 1px rgba(255, 255, 255, 0.6);
1143
+ background: linear-gradient(135deg, #f5fdfc 0%, #f0fcfa 100%);
1144
+ }
1145
+
1146
+ .extra-box-first-home input[type="checkbox"] {
1147
+ width: 18px;
1148
+ height: 18px;
1149
+ cursor: pointer;
1150
+ accent-color: #16a396;
1151
+ transition: all 0.2s ease;
1152
+ }
1153
+
1154
+ .extra-box-first-home input[type="checkbox"]:hover {
1155
+ filter: brightness(1.1);
1156
+ }
1157
+
1158
+ .extra-box-first-home input[type="checkbox"]:focus-visible {
1159
+ outline: 2px solid #16a396;
1160
+ outline-offset: 2px;
1008
1161
  }
1009
1162
 
1010
1163
  .label-row {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mantenimento-app",
3
- "version": "2.3.0",
3
+ "version": "2.3.2",
4
4
  "description": "Frontend + backend architecture for the mantenimento calculator",
5
5
  "type": "commonjs",
6
6
  "main": "backend/calculate-model.js",