myio-js-library 0.1.506 → 0.1.508

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/index.cjs CHANGED
@@ -1164,7 +1164,7 @@ module.exports = __toCommonJS(index_exports);
1164
1164
  // package.json
1165
1165
  var package_default = {
1166
1166
  name: "myio-js-library",
1167
- version: "0.1.506",
1167
+ version: "0.1.508",
1168
1168
  description: "A clean, standalone JS SDK for MYIO projects",
1169
1169
  license: "MIT",
1170
1170
  repository: "github:gh-myio/myio-js-library",
@@ -16048,7 +16048,9 @@ var INFO_TOOLTIP_CSS = `
16048
16048
  }
16049
16049
 
16050
16050
  .myio-info-tooltip.maximized .myio-info-tooltip__content {
16051
- flex: 1;
16051
+ flex: 1 1 auto;
16052
+ min-height: 0;
16053
+ max-height: none;
16052
16054
  overflow-y: auto;
16053
16055
  }
16054
16056
 
@@ -16057,7 +16059,7 @@ var INFO_TOOLTIP_CSS = `
16057
16059
  border: 1px solid #e2e8f0;
16058
16060
  border-radius: 12px;
16059
16061
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12), 0 2px 10px rgba(0, 0, 0, 0.08);
16060
- width: 395px;
16062
+ width: 450px;
16061
16063
  max-width: 90vw;
16062
16064
  font-size: 12px;
16063
16065
  color: #1e293b;
@@ -16503,6 +16505,10 @@ function toggleMaximize3(container) {
16503
16505
  left: container.style.left,
16504
16506
  top: container.style.top
16505
16507
  };
16508
+ state3.isPinned = true;
16509
+ container.classList.add("pinned");
16510
+ const pinBtn = container.querySelector('[data-action="pin"]');
16511
+ pinBtn?.classList.add("pinned");
16506
16512
  }
16507
16513
  container.classList.toggle("maximized", state3.isMaximized);
16508
16514
  const maxBtn = container.querySelector('[data-action="maximize"]');
@@ -70285,7 +70291,7 @@ var ENERGY_SUMMARY_TOOLTIP_CSS = `
70285
70291
  border: 1px solid #e2e8f0;
70286
70292
  border-radius: 12px;
70287
70293
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15), 0 2px 10px rgba(0, 0, 0, 0.08);
70288
- width: 395px;
70294
+ width: 450px;
70289
70295
  max-width: 90vw;
70290
70296
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
70291
70297
  font-size: 12px;
@@ -70387,7 +70393,9 @@ var ENERGY_SUMMARY_TOOLTIP_CSS = `
70387
70393
  }
70388
70394
 
70389
70395
  .energy-summary-tooltip.maximized .energy-summary-tooltip__body {
70390
- flex: 1;
70396
+ flex: 1 1 auto;
70397
+ min-height: 0;
70398
+ max-height: none;
70391
70399
  overflow-y: auto;
70392
70400
  }
70393
70401
 
@@ -71817,6 +71825,7 @@ var EnergySummaryTooltip = {
71817
71825
  left: container.style.left,
71818
71826
  top: container.style.top
71819
71827
  };
71828
+ if (!this._isPinned) this.togglePin();
71820
71829
  }
71821
71830
  container.classList.toggle("maximized", this._isMaximized);
71822
71831
  const maxBtn = container.querySelector('[data-action="maximize"]');
@@ -72338,7 +72347,7 @@ var WATER_SUMMARY_TOOLTIP_CSS = `
72338
72347
  border: 1px solid #e2e8f0;
72339
72348
  border-radius: 12px;
72340
72349
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15), 0 2px 10px rgba(0, 0, 0, 0.08);
72341
- width: 395px;
72350
+ width: 450px;
72342
72351
  max-width: 90vw;
72343
72352
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
72344
72353
  font-size: 12px;
@@ -72440,7 +72449,9 @@ var WATER_SUMMARY_TOOLTIP_CSS = `
72440
72449
  }
72441
72450
 
72442
72451
  .water-summary-tooltip.maximized .water-summary-tooltip__body {
72443
- flex: 1;
72452
+ flex: 1 1 auto;
72453
+ min-height: 0;
72454
+ max-height: none;
72444
72455
  overflow-y: auto;
72445
72456
  }
72446
72457
 
@@ -73739,6 +73750,7 @@ var WaterSummaryTooltip = {
73739
73750
  left: container.style.left,
73740
73751
  top: container.style.top
73741
73752
  };
73753
+ if (!this._isPinned) this.togglePin();
73742
73754
  }
73743
73755
  container.classList.toggle("maximized", this._isMaximized);
73744
73756
  const maxBtn = container.querySelector('[data-action="maximize"]');
@@ -74229,6 +74241,8 @@ var COLUMN_SUMMARY_CSS = `
74229
74241
  display: block; width: 100%; height: auto; aspect-ratio: 1 / 1;
74230
74242
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.15));
74231
74243
  }
74244
+ /* Footer band \u2014 hidden in compact, shown when maximized (mirrors Energy/Water). */
74245
+ .myio-col-summary__footer { display: none; }
74232
74246
  .myio-col-summary__slice {
74233
74247
  stroke: #ffffff; stroke-width: 1.5;
74234
74248
  transition: opacity 0.12s ease;
@@ -74276,14 +74290,16 @@ var COLUMN_SUMMARY_CSS = `
74276
74290
  .myio-info-tooltip.maximized .myio-col-summary__body {
74277
74291
  flex: 1 1 auto; min-height: 0;
74278
74292
  display: grid;
74279
- grid-template-columns: minmax(340px, 440px) 1fr;
74293
+ grid-template-columns: minmax(520px, 620px) 1fr;
74280
74294
  grid-template-rows: auto 1fr;
74281
74295
  gap: 14px 22px;
74282
74296
  }
74283
74297
  .myio-info-tooltip.maximized .myio-col-summary__chart {
74284
74298
  display: block; grid-column: 1; grid-row: 1; min-width: 0;
74285
74299
  }
74286
- .myio-info-tooltip.maximized .myio-col-summary__pie { max-width: 440px; margin: 0 auto; }
74300
+ .myio-info-tooltip.maximized .myio-col-summary__pie {
74301
+ width: 500px; height: 500px; aspect-ratio: auto; margin: 0 auto;
74302
+ }
74287
74303
  .myio-info-tooltip.maximized .myio-col-summary__lists {
74288
74304
  grid-column: 1; grid-row: 2; min-height: 0; overflow-y: auto;
74289
74305
  display: flex; flex-direction: column; gap: 14px;
@@ -74295,6 +74311,22 @@ var COLUMN_SUMMARY_CSS = `
74295
74311
  border-left: 1px solid #e3d9f3; padding-left: 20px;
74296
74312
  }
74297
74313
  .myio-info-tooltip.maximized .myio-col-summary__group { margin-top: 0; }
74314
+ /* Footer band \u2014 same visual language as Energy/Water tooltips. */
74315
+ .myio-info-tooltip.maximized .myio-col-summary__footer {
74316
+ display: flex; justify-content: space-between; align-items: center;
74317
+ flex: 0 0 auto;
74318
+ margin: 14px -16px -16px -16px; /* bleed to the panel edges (cancels __content padding) */
74319
+ padding: 12px 18px;
74320
+ background: linear-gradient(135deg, #3e1a7d 0%, #6d28d9 100%);
74321
+ color: #ffffff; border-radius: 0 0 11px 11px;
74322
+ }
74323
+ .myio-info-tooltip.maximized .myio-col-summary__footer-label {
74324
+ font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.92);
74325
+ letter-spacing: 0.3px;
74326
+ }
74327
+ .myio-info-tooltip.maximized .myio-col-summary__footer-value {
74328
+ font-size: 18px; font-weight: 700; color: #ffffff;
74329
+ }
74298
74330
  `;
74299
74331
  var _cssInjected2 = false;
74300
74332
  function injectCSS10() {
@@ -74382,7 +74414,7 @@ function buildPieSvg(visible, total) {
74382
74414
  function buildLegend(total) {
74383
74415
  if (!_state) return "";
74384
74416
  const { data, excluded, fmt: fmt2, pd } = _state;
74385
- const rows = data.devices.map((d, idx) => {
74417
+ const rows = data.devices.map((d, idx) => ({ d, idx })).sort((a, b) => (Number(b.d.value) || 0) - (Number(a.d.value) || 0)).map(({ d, idx }) => {
74386
74418
  const val = Number(d.value) || 0;
74387
74419
  const isExcl = excluded.has(idx);
74388
74420
  const pct = isExcl ? "\u2014" : fmtPct(val, total, pd);
@@ -74456,6 +74488,10 @@ function buildInner() {
74456
74488
  ${group("\u25BC 3 menores", bottom3)}
74457
74489
  ${group("\u25CF 3 na m\xE9dia", near3)}
74458
74490
  </div>
74491
+ </div>
74492
+ <div class="myio-col-summary__footer">
74493
+ <span class="myio-col-summary__footer-label">Consumo Total \xB7 ${count} dispositivos</span>
74494
+ <span class="myio-col-summary__footer-value">${esc3(fmt2(total))}</span>
74459
74495
  </div>`;
74460
74496
  }
74461
74497
  function setHighlight(idx) {
package/dist/index.js CHANGED
@@ -546,7 +546,7 @@ var init_template_card = __esm({
546
546
  // package.json
547
547
  var package_default = {
548
548
  name: "myio-js-library",
549
- version: "0.1.506",
549
+ version: "0.1.508",
550
550
  description: "A clean, standalone JS SDK for MYIO projects",
551
551
  license: "MIT",
552
552
  repository: "github:gh-myio/myio-js-library",
@@ -15430,7 +15430,9 @@ var INFO_TOOLTIP_CSS = `
15430
15430
  }
15431
15431
 
15432
15432
  .myio-info-tooltip.maximized .myio-info-tooltip__content {
15433
- flex: 1;
15433
+ flex: 1 1 auto;
15434
+ min-height: 0;
15435
+ max-height: none;
15434
15436
  overflow-y: auto;
15435
15437
  }
15436
15438
 
@@ -15439,7 +15441,7 @@ var INFO_TOOLTIP_CSS = `
15439
15441
  border: 1px solid #e2e8f0;
15440
15442
  border-radius: 12px;
15441
15443
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12), 0 2px 10px rgba(0, 0, 0, 0.08);
15442
- width: 395px;
15444
+ width: 450px;
15443
15445
  max-width: 90vw;
15444
15446
  font-size: 12px;
15445
15447
  color: #1e293b;
@@ -15885,6 +15887,10 @@ function toggleMaximize3(container) {
15885
15887
  left: container.style.left,
15886
15888
  top: container.style.top
15887
15889
  };
15890
+ state3.isPinned = true;
15891
+ container.classList.add("pinned");
15892
+ const pinBtn = container.querySelector('[data-action="pin"]');
15893
+ pinBtn?.classList.add("pinned");
15888
15894
  }
15889
15895
  container.classList.toggle("maximized", state3.isMaximized);
15890
15896
  const maxBtn = container.querySelector('[data-action="maximize"]');
@@ -69667,7 +69673,7 @@ var ENERGY_SUMMARY_TOOLTIP_CSS = `
69667
69673
  border: 1px solid #e2e8f0;
69668
69674
  border-radius: 12px;
69669
69675
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15), 0 2px 10px rgba(0, 0, 0, 0.08);
69670
- width: 395px;
69676
+ width: 450px;
69671
69677
  max-width: 90vw;
69672
69678
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
69673
69679
  font-size: 12px;
@@ -69769,7 +69775,9 @@ var ENERGY_SUMMARY_TOOLTIP_CSS = `
69769
69775
  }
69770
69776
 
69771
69777
  .energy-summary-tooltip.maximized .energy-summary-tooltip__body {
69772
- flex: 1;
69778
+ flex: 1 1 auto;
69779
+ min-height: 0;
69780
+ max-height: none;
69773
69781
  overflow-y: auto;
69774
69782
  }
69775
69783
 
@@ -71199,6 +71207,7 @@ var EnergySummaryTooltip = {
71199
71207
  left: container.style.left,
71200
71208
  top: container.style.top
71201
71209
  };
71210
+ if (!this._isPinned) this.togglePin();
71202
71211
  }
71203
71212
  container.classList.toggle("maximized", this._isMaximized);
71204
71213
  const maxBtn = container.querySelector('[data-action="maximize"]');
@@ -71720,7 +71729,7 @@ var WATER_SUMMARY_TOOLTIP_CSS = `
71720
71729
  border: 1px solid #e2e8f0;
71721
71730
  border-radius: 12px;
71722
71731
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15), 0 2px 10px rgba(0, 0, 0, 0.08);
71723
- width: 395px;
71732
+ width: 450px;
71724
71733
  max-width: 90vw;
71725
71734
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
71726
71735
  font-size: 12px;
@@ -71822,7 +71831,9 @@ var WATER_SUMMARY_TOOLTIP_CSS = `
71822
71831
  }
71823
71832
 
71824
71833
  .water-summary-tooltip.maximized .water-summary-tooltip__body {
71825
- flex: 1;
71834
+ flex: 1 1 auto;
71835
+ min-height: 0;
71836
+ max-height: none;
71826
71837
  overflow-y: auto;
71827
71838
  }
71828
71839
 
@@ -73121,6 +73132,7 @@ var WaterSummaryTooltip = {
73121
73132
  left: container.style.left,
73122
73133
  top: container.style.top
73123
73134
  };
73135
+ if (!this._isPinned) this.togglePin();
73124
73136
  }
73125
73137
  container.classList.toggle("maximized", this._isMaximized);
73126
73138
  const maxBtn = container.querySelector('[data-action="maximize"]');
@@ -73611,6 +73623,8 @@ var COLUMN_SUMMARY_CSS = `
73611
73623
  display: block; width: 100%; height: auto; aspect-ratio: 1 / 1;
73612
73624
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.15));
73613
73625
  }
73626
+ /* Footer band \u2014 hidden in compact, shown when maximized (mirrors Energy/Water). */
73627
+ .myio-col-summary__footer { display: none; }
73614
73628
  .myio-col-summary__slice {
73615
73629
  stroke: #ffffff; stroke-width: 1.5;
73616
73630
  transition: opacity 0.12s ease;
@@ -73658,14 +73672,16 @@ var COLUMN_SUMMARY_CSS = `
73658
73672
  .myio-info-tooltip.maximized .myio-col-summary__body {
73659
73673
  flex: 1 1 auto; min-height: 0;
73660
73674
  display: grid;
73661
- grid-template-columns: minmax(340px, 440px) 1fr;
73675
+ grid-template-columns: minmax(520px, 620px) 1fr;
73662
73676
  grid-template-rows: auto 1fr;
73663
73677
  gap: 14px 22px;
73664
73678
  }
73665
73679
  .myio-info-tooltip.maximized .myio-col-summary__chart {
73666
73680
  display: block; grid-column: 1; grid-row: 1; min-width: 0;
73667
73681
  }
73668
- .myio-info-tooltip.maximized .myio-col-summary__pie { max-width: 440px; margin: 0 auto; }
73682
+ .myio-info-tooltip.maximized .myio-col-summary__pie {
73683
+ width: 500px; height: 500px; aspect-ratio: auto; margin: 0 auto;
73684
+ }
73669
73685
  .myio-info-tooltip.maximized .myio-col-summary__lists {
73670
73686
  grid-column: 1; grid-row: 2; min-height: 0; overflow-y: auto;
73671
73687
  display: flex; flex-direction: column; gap: 14px;
@@ -73677,6 +73693,22 @@ var COLUMN_SUMMARY_CSS = `
73677
73693
  border-left: 1px solid #e3d9f3; padding-left: 20px;
73678
73694
  }
73679
73695
  .myio-info-tooltip.maximized .myio-col-summary__group { margin-top: 0; }
73696
+ /* Footer band \u2014 same visual language as Energy/Water tooltips. */
73697
+ .myio-info-tooltip.maximized .myio-col-summary__footer {
73698
+ display: flex; justify-content: space-between; align-items: center;
73699
+ flex: 0 0 auto;
73700
+ margin: 14px -16px -16px -16px; /* bleed to the panel edges (cancels __content padding) */
73701
+ padding: 12px 18px;
73702
+ background: linear-gradient(135deg, #3e1a7d 0%, #6d28d9 100%);
73703
+ color: #ffffff; border-radius: 0 0 11px 11px;
73704
+ }
73705
+ .myio-info-tooltip.maximized .myio-col-summary__footer-label {
73706
+ font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.92);
73707
+ letter-spacing: 0.3px;
73708
+ }
73709
+ .myio-info-tooltip.maximized .myio-col-summary__footer-value {
73710
+ font-size: 18px; font-weight: 700; color: #ffffff;
73711
+ }
73680
73712
  `;
73681
73713
  var _cssInjected2 = false;
73682
73714
  function injectCSS10() {
@@ -73764,7 +73796,7 @@ function buildPieSvg(visible, total) {
73764
73796
  function buildLegend(total) {
73765
73797
  if (!_state) return "";
73766
73798
  const { data, excluded, fmt: fmt2, pd } = _state;
73767
- const rows = data.devices.map((d, idx) => {
73799
+ const rows = data.devices.map((d, idx) => ({ d, idx })).sort((a, b) => (Number(b.d.value) || 0) - (Number(a.d.value) || 0)).map(({ d, idx }) => {
73768
73800
  const val = Number(d.value) || 0;
73769
73801
  const isExcl = excluded.has(idx);
73770
73802
  const pct = isExcl ? "\u2014" : fmtPct(val, total, pd);
@@ -73838,6 +73870,10 @@ function buildInner() {
73838
73870
  ${group("\u25BC 3 menores", bottom3)}
73839
73871
  ${group("\u25CF 3 na m\xE9dia", near3)}
73840
73872
  </div>
73873
+ </div>
73874
+ <div class="myio-col-summary__footer">
73875
+ <span class="myio-col-summary__footer-label">Consumo Total \xB7 ${count} dispositivos</span>
73876
+ <span class="myio-col-summary__footer-value">${esc3(fmt2(total))}</span>
73841
73877
  </div>`;
73842
73878
  }
73843
73879
  function setHighlight(idx) {
@@ -4070,7 +4070,7 @@
4070
4070
 
4071
4071
  // package.json
4072
4072
  var package_default = {
4073
- version: "0.1.506"};
4073
+ version: "0.1.508"};
4074
4074
 
4075
4075
  // src/format/energy.ts
4076
4076
  function formatPower(value, decimals = 2) {
@@ -18865,7 +18865,9 @@
18865
18865
  }
18866
18866
 
18867
18867
  .myio-info-tooltip.maximized .myio-info-tooltip__content {
18868
- flex: 1;
18868
+ flex: 1 1 auto;
18869
+ min-height: 0;
18870
+ max-height: none;
18869
18871
  overflow-y: auto;
18870
18872
  }
18871
18873
 
@@ -18874,7 +18876,7 @@
18874
18876
  border: 1px solid #e2e8f0;
18875
18877
  border-radius: 12px;
18876
18878
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12), 0 2px 10px rgba(0, 0, 0, 0.08);
18877
- width: 395px;
18879
+ width: 450px;
18878
18880
  max-width: 90vw;
18879
18881
  font-size: 12px;
18880
18882
  color: #1e293b;
@@ -19320,6 +19322,10 @@
19320
19322
  left: container.style.left,
19321
19323
  top: container.style.top
19322
19324
  };
19325
+ state3.isPinned = true;
19326
+ container.classList.add("pinned");
19327
+ const pinBtn = container.querySelector('[data-action="pin"]');
19328
+ pinBtn?.classList.add("pinned");
19323
19329
  }
19324
19330
  container.classList.toggle("maximized", state3.isMaximized);
19325
19331
  const maxBtn = container.querySelector('[data-action="maximize"]');
@@ -72897,7 +72903,7 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
72897
72903
  border: 1px solid #e2e8f0;
72898
72904
  border-radius: 12px;
72899
72905
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15), 0 2px 10px rgba(0, 0, 0, 0.08);
72900
- width: 395px;
72906
+ width: 450px;
72901
72907
  max-width: 90vw;
72902
72908
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
72903
72909
  font-size: 12px;
@@ -72999,7 +73005,9 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
72999
73005
  }
73000
73006
 
73001
73007
  .energy-summary-tooltip.maximized .energy-summary-tooltip__body {
73002
- flex: 1;
73008
+ flex: 1 1 auto;
73009
+ min-height: 0;
73010
+ max-height: none;
73003
73011
  overflow-y: auto;
73004
73012
  }
73005
73013
 
@@ -74429,6 +74437,7 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
74429
74437
  left: container.style.left,
74430
74438
  top: container.style.top
74431
74439
  };
74440
+ if (!this._isPinned) this.togglePin();
74432
74441
  }
74433
74442
  container.classList.toggle("maximized", this._isMaximized);
74434
74443
  const maxBtn = container.querySelector('[data-action="maximize"]');
@@ -74950,7 +74959,7 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
74950
74959
  border: 1px solid #e2e8f0;
74951
74960
  border-radius: 12px;
74952
74961
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15), 0 2px 10px rgba(0, 0, 0, 0.08);
74953
- width: 395px;
74962
+ width: 450px;
74954
74963
  max-width: 90vw;
74955
74964
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
74956
74965
  font-size: 12px;
@@ -75052,7 +75061,9 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
75052
75061
  }
75053
75062
 
75054
75063
  .water-summary-tooltip.maximized .water-summary-tooltip__body {
75055
- flex: 1;
75064
+ flex: 1 1 auto;
75065
+ min-height: 0;
75066
+ max-height: none;
75056
75067
  overflow-y: auto;
75057
75068
  }
75058
75069
 
@@ -76351,6 +76362,7 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
76351
76362
  left: container.style.left,
76352
76363
  top: container.style.top
76353
76364
  };
76365
+ if (!this._isPinned) this.togglePin();
76354
76366
  }
76355
76367
  container.classList.toggle("maximized", this._isMaximized);
76356
76368
  const maxBtn = container.querySelector('[data-action="maximize"]');
@@ -76841,6 +76853,8 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
76841
76853
  display: block; width: 100%; height: auto; aspect-ratio: 1 / 1;
76842
76854
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.15));
76843
76855
  }
76856
+ /* Footer band \u2014 hidden in compact, shown when maximized (mirrors Energy/Water). */
76857
+ .myio-col-summary__footer { display: none; }
76844
76858
  .myio-col-summary__slice {
76845
76859
  stroke: #ffffff; stroke-width: 1.5;
76846
76860
  transition: opacity 0.12s ease;
@@ -76888,14 +76902,16 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
76888
76902
  .myio-info-tooltip.maximized .myio-col-summary__body {
76889
76903
  flex: 1 1 auto; min-height: 0;
76890
76904
  display: grid;
76891
- grid-template-columns: minmax(340px, 440px) 1fr;
76905
+ grid-template-columns: minmax(520px, 620px) 1fr;
76892
76906
  grid-template-rows: auto 1fr;
76893
76907
  gap: 14px 22px;
76894
76908
  }
76895
76909
  .myio-info-tooltip.maximized .myio-col-summary__chart {
76896
76910
  display: block; grid-column: 1; grid-row: 1; min-width: 0;
76897
76911
  }
76898
- .myio-info-tooltip.maximized .myio-col-summary__pie { max-width: 440px; margin: 0 auto; }
76912
+ .myio-info-tooltip.maximized .myio-col-summary__pie {
76913
+ width: 500px; height: 500px; aspect-ratio: auto; margin: 0 auto;
76914
+ }
76899
76915
  .myio-info-tooltip.maximized .myio-col-summary__lists {
76900
76916
  grid-column: 1; grid-row: 2; min-height: 0; overflow-y: auto;
76901
76917
  display: flex; flex-direction: column; gap: 14px;
@@ -76907,6 +76923,22 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
76907
76923
  border-left: 1px solid #e3d9f3; padding-left: 20px;
76908
76924
  }
76909
76925
  .myio-info-tooltip.maximized .myio-col-summary__group { margin-top: 0; }
76926
+ /* Footer band \u2014 same visual language as Energy/Water tooltips. */
76927
+ .myio-info-tooltip.maximized .myio-col-summary__footer {
76928
+ display: flex; justify-content: space-between; align-items: center;
76929
+ flex: 0 0 auto;
76930
+ margin: 14px -16px -16px -16px; /* bleed to the panel edges (cancels __content padding) */
76931
+ padding: 12px 18px;
76932
+ background: linear-gradient(135deg, #3e1a7d 0%, #6d28d9 100%);
76933
+ color: #ffffff; border-radius: 0 0 11px 11px;
76934
+ }
76935
+ .myio-info-tooltip.maximized .myio-col-summary__footer-label {
76936
+ font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.92);
76937
+ letter-spacing: 0.3px;
76938
+ }
76939
+ .myio-info-tooltip.maximized .myio-col-summary__footer-value {
76940
+ font-size: 18px; font-weight: 700; color: #ffffff;
76941
+ }
76910
76942
  `;
76911
76943
  var _cssInjected2 = false;
76912
76944
  function injectCSS10() {
@@ -76994,7 +77026,7 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
76994
77026
  function buildLegend(total) {
76995
77027
  if (!_state) return "";
76996
77028
  const { data, excluded, fmt: fmt2, pd } = _state;
76997
- const rows = data.devices.map((d, idx) => {
77029
+ const rows = data.devices.map((d, idx) => ({ d, idx })).sort((a, b) => (Number(b.d.value) || 0) - (Number(a.d.value) || 0)).map(({ d, idx }) => {
76998
77030
  const val = Number(d.value) || 0;
76999
77031
  const isExcl = excluded.has(idx);
77000
77032
  const pct = isExcl ? "\u2014" : fmtPct(val, total, pd);
@@ -77068,6 +77100,10 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
77068
77100
  ${group("\u25BC 3 menores", bottom3)}
77069
77101
  ${group("\u25CF 3 na m\xE9dia", near3)}
77070
77102
  </div>
77103
+ </div>
77104
+ <div class="myio-col-summary__footer">
77105
+ <span class="myio-col-summary__footer-label">Consumo Total \xB7 ${count} dispositivos</span>
77106
+ <span class="myio-col-summary__footer-value">${esc3(fmt2(total))}</span>
77071
77107
  </div>`;
77072
77108
  }
77073
77109
  function setHighlight(idx) {