mantenimento-app 2.1.4 → 2.1.6

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
@@ -4140,6 +4140,10 @@ const defaultExpenseItems = [
4140
4140
  function renderSpiegabilita(m) {
4141
4141
  const panel = document.getElementById("spiegPanel");
4142
4142
  if (!panel) return;
4143
+ const c1Name = c1n();
4144
+ const c2Name = c2n();
4145
+ const c1NameEsc = escapeHtml(c1Name);
4146
+ const c2NameEsc = escapeHtml(c2Name);
4143
4147
 
4144
4148
  const peso1Pct = (m.peso1 * 100).toFixed(1);
4145
4149
  const peso2Pct = (m.peso2 * 100).toFixed(1);
@@ -4371,8 +4375,10 @@ const defaultExpenseItems = [
4371
4375
  .join("");
4372
4376
  mainHtml = `
4373
4377
  <span class="result-main-line">${escapeHtml(tr("calcNoTransferSuggested"))}</span>
4374
- <span class="result-main-sub">${escapeHtml(tr("calcCompBenefitsLabel"))}</span>
4375
- <ul class="result-benefits-list">${benefitsHtml}</ul>
4378
+ <div class="result-benefits-box">
4379
+ <span class="result-main-sub">${escapeHtml(tr("calcCompBenefitsLabel"))}</span>
4380
+ <ul class="result-benefits-list">${benefitsHtml}</ul>
4381
+ </div>
4376
4382
  `;
4377
4383
  } else if (benefitsInline) {
4378
4384
  mainHtml = `<span class="result-main-line">${escapeHtml(msg("calcNoTransferWithBenefits", { benefits: benefitsInline }))}</span>`;
@@ -4140,6 +4140,10 @@ const defaultExpenseItems = [
4140
4140
  function renderSpiegabilita(m) {
4141
4141
  const panel = document.getElementById("spiegPanel");
4142
4142
  if (!panel) return;
4143
+ const c1Name = c1n();
4144
+ const c2Name = c2n();
4145
+ const c1NameEsc = escapeHtml(c1Name);
4146
+ const c2NameEsc = escapeHtml(c2Name);
4143
4147
 
4144
4148
  const peso1Pct = (m.peso1 * 100).toFixed(1);
4145
4149
  const peso2Pct = (m.peso2 * 100).toFixed(1);
@@ -4371,8 +4375,10 @@ const defaultExpenseItems = [
4371
4375
  .join("");
4372
4376
  mainHtml = `
4373
4377
  <span class="result-main-line">${escapeHtml(tr("calcNoTransferSuggested"))}</span>
4374
- <span class="result-main-sub">${escapeHtml(tr("calcCompBenefitsLabel"))}</span>
4375
- <ul class="result-benefits-list">${benefitsHtml}</ul>
4378
+ <div class="result-benefits-box">
4379
+ <span class="result-main-sub">${escapeHtml(tr("calcCompBenefitsLabel"))}</span>
4380
+ <ul class="result-benefits-list">${benefitsHtml}</ul>
4381
+ </div>
4376
4382
  `;
4377
4383
  } else if (benefitsInline) {
4378
4384
  mainHtml = `<span class="result-main-line">${escapeHtml(msg("calcNoTransferWithBenefits", { benefits: benefitsInline }))}</span>`;
@@ -347,7 +347,7 @@
347
347
  </div>
348
348
  </div>
349
349
 
350
- <div class="extra-box" id="firstHomeBox">
350
+ <div class="extra-box extra-box-first-home" id="firstHomeBox">
351
351
  <div class="extra-box-title" id="firstHomeBoxTitle">Mutuo prima casa ceduta</div>
352
352
  <div class="extra-box-note" id="firstHomeBoxNote">Dichiara se esiste un mutuo sulla prima casa dei coniugi ceduta a uno dei due: il modello considera il trasferimento implicito quando la casa e assegnata al collocatario.</div>
353
353
  <div class="extra-grid">
@@ -374,16 +374,13 @@
374
374
  </select>
375
375
  </div>
376
376
  <div class="field">
377
- <label for="primaCasaMutuoPerc1" class="label-row"><span id="lblPrimaCasaMutuoPerc1">Quota mutuo a carico Coniuge 1 (%)</span>
378
- <span class="hint" id="hintPrimaCasaMutuoPerc1" title="Percentuale della rata mutuo pagata da Coniuge 1. La quota di Coniuge 2 e complementare a 100%.">i</span>
379
- </label>
380
377
  <div class="mortgage-split-slider" id="primaCasaMutuoSliderWrap">
381
378
  <div class="mortgage-split-side mortgage-split-side-left" id="primaCasaSplitLeft">
382
379
  <div class="mortgage-split-name" id="primaCasaSplitLeftName">Coniuge 1</div>
383
380
  <div class="mortgage-split-amount" id="primaCasaSplitLeftAmount">0 EUR</div>
384
381
  </div>
385
382
  <div class="mortgage-split-range-wrap">
386
- <input id="primaCasaMutuoPerc1" type="range" min="0" max="100" step="1" value="50" />
383
+ <input id="primaCasaMutuoPerc1" type="range" min="0" max="100" step="1" value="50" aria-label="Ripartizione quota mutuo" />
387
384
  <div class="mortgage-split-center" id="primaCasaSplitCenter">50% / 50%</div>
388
385
  </div>
389
386
  <div class="mortgage-split-side mortgage-split-side-right" id="primaCasaSplitRight">
@@ -501,7 +498,17 @@
501
498
  <p class="note">
502
499
  Questo strumento e solo orientativo e non sostituisce una valutazione legale/professionale del caso concreto.
503
500
  </p>
504
- <div id="spiegPanel" class="spieg-panel"></div>
501
+ <div id="spiegPanel" class="spieg-panel">
502
+ <details class="spieg-details" open>
503
+ <summary class="spieg-title">💡 Perche questo risultato?</summary>
504
+ <div class="spieg-grid">
505
+ <div class="spieg-item">
506
+ <div class="spieg-item-label">Stato calcolo</div>
507
+ <div class="spieg-item-body">Sezione in aggiornamento automatico: modifica i dati per vedere la spiegazione dettagliata del risultato.</div>
508
+ </div>
509
+ </div>
510
+ </details>
511
+ </div>
505
512
  </div>
506
513
  </section>
507
514
  </div>
@@ -576,6 +583,7 @@
576
583
  <script src="supabase.min.js"></script>
577
584
  <script src="fabric.min.js"></script>
578
585
  <script src="html2pdf.bundle.min.js"></script>
579
- <script src="app.js?v=2.1.4"></script>
586
+ <script src="app.js?v=2.1.6"></script>
580
587
  </body>
581
588
  </html>
589
+
@@ -851,18 +851,22 @@
851
851
  color: #184a44;
852
852
  }
853
853
 
854
+ .extra-box-first-home .extra-grid {
855
+ gap: 8px 10px;
856
+ }
857
+
854
858
  .mortgage-split-slider {
855
- margin-top: 6px;
859
+ margin-top: 2px;
856
860
  border: 1px solid #b9d6cf;
857
- border-radius: 14px;
861
+ border-radius: 12px;
858
862
  background:
859
863
  radial-gradient(120% 160% at 0% 0%, rgba(229, 247, 242, 0.8), transparent 58%),
860
864
  radial-gradient(120% 160% at 100% 0%, rgba(255, 241, 214, 0.8), transparent 58%),
861
865
  linear-gradient(180deg, #fafdfc, #eef7f5);
862
- padding: 10px;
866
+ padding: 8px;
863
867
  display: grid;
864
868
  grid-template-columns: minmax(0, 1fr) minmax(180px, 2fr) minmax(0, 1fr);
865
- gap: 8px;
869
+ gap: 6px;
866
870
  align-items: center;
867
871
  transition: opacity 0.2s ease;
868
872
  }
@@ -873,10 +877,10 @@
873
877
 
874
878
  .mortgage-split-side {
875
879
  border: 1px solid #c6ded8;
876
- border-radius: 11px;
877
- padding: 8px;
880
+ border-radius: 10px;
881
+ padding: 7px;
878
882
  background: rgba(255, 255, 255, 0.84);
879
- min-height: 66px;
883
+ min-height: 58px;
880
884
  display: grid;
881
885
  align-content: center;
882
886
  gap: 2px;
@@ -892,14 +896,14 @@
892
896
  }
893
897
 
894
898
  .mortgage-split-name {
895
- font-size: 0.76rem;
899
+ font-size: 0.72rem;
896
900
  font-weight: 800;
897
901
  color: #2a4a46;
898
902
  overflow-wrap: anywhere;
899
903
  }
900
904
 
901
905
  .mortgage-split-amount {
902
- font-size: 0.95rem;
906
+ font-size: 0.9rem;
903
907
  font-weight: 900;
904
908
  color: #124f48;
905
909
  letter-spacing: 0.2px;
@@ -907,7 +911,7 @@
907
911
 
908
912
  .mortgage-split-range-wrap {
909
913
  position: relative;
910
- padding: 20px 0 10px;
914
+ padding: 14px 0 6px;
911
915
  }
912
916
 
913
917
  .mortgage-split-range-wrap input[type="range"] {
@@ -945,18 +949,23 @@
945
949
 
946
950
  .mortgage-split-center {
947
951
  position: absolute;
948
- top: -2px;
952
+ top: -1px;
949
953
  left: 50%;
950
954
  transform: translateX(-50%);
951
- font-size: 0.74rem;
955
+ font-size: 0.7rem;
952
956
  font-weight: 900;
953
957
  color: #114c45;
954
958
  background: #ffffff;
955
959
  border: 1px solid #b8d5ce;
956
960
  border-radius: 999px;
957
- padding: 2px 8px;
961
+ padding: 1px 7px;
958
962
  white-space: nowrap;
959
963
  }
964
+
965
+ #primaCasaMutuoSplitInfo {
966
+ margin-top: 3px;
967
+ font-size: 0.77rem;
968
+ }
960
969
 
961
970
  .label-row {
962
971
  display: inline-flex;
@@ -2155,7 +2164,16 @@
2155
2164
  border: 1px solid #bfd6d0;
2156
2165
  border-radius: 999px;
2157
2166
  padding: 3px 9px;
2158
- margin-bottom: 8px;
2167
+ margin-bottom: 0;
2168
+ }
2169
+
2170
+ .result-benefits-box {
2171
+ border: 1px solid #bdd6cf;
2172
+ border-radius: 12px;
2173
+ background: linear-gradient(180deg, rgba(249, 253, 252, 0.92), rgba(241, 249, 246, 0.92));
2174
+ padding: 8px;
2175
+ display: grid;
2176
+ gap: 8px;
2159
2177
  }
2160
2178
 
2161
2179
  .result-benefits-list {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mantenimento-app",
3
- "version": "2.1.4",
3
+ "version": "2.1.6",
4
4
  "description": "Frontend + backend architecture for the mantenimento calculator",
5
5
  "type": "commonjs",
6
6
  "main": "backend/calculate-model.js",