myio-js-library 0.1.486 → 0.1.487

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
@@ -1159,7 +1159,7 @@ module.exports = __toCommonJS(index_exports);
1159
1159
  // package.json
1160
1160
  var package_default = {
1161
1161
  name: "myio-js-library",
1162
- version: "0.1.486",
1162
+ version: "0.1.487",
1163
1163
  description: "A clean, standalone JS SDK for MYIO projects",
1164
1164
  license: "MIT",
1165
1165
  repository: "github:gh-myio/myio-js-library",
@@ -62014,7 +62014,7 @@ var SettingsModalView = class {
62014
62014
  <div class="customer-name-container">
62015
62015
  <div class="customer-info-row">
62016
62016
  <div class="device-type-icon-wrapper">
62017
- ${this.getDeviceTypeIcon(deviceType)}
62017
+ ${this.getDeviceTypeIcon(deviceType ?? "")}
62018
62018
  </div>
62019
62019
  <div class="customer-info-content">
62020
62020
  <div class="customer-name-label">Shopping</div>
@@ -62620,7 +62620,7 @@ var SettingsModalView = class {
62620
62620
  not_installed: { text: "N\xE3o instalado", color: "#94a3b8" },
62621
62621
  unknown: { text: "Sem informa\xE7\xE3o", color: "#94a3b8" }
62622
62622
  };
62623
- const statusInfo = statusMap[mapDeviceStatusToCardStatus(deviceStatus) || ""] || {
62623
+ const statusInfo = statusMap[mapDeviceStatusToCardStatus(deviceStatus ?? "") || ""] || {
62624
62624
  text: "Desconhecido",
62625
62625
  color: "#6b7280"
62626
62626
  };
@@ -62713,6 +62713,13 @@ var SettingsModalView = class {
62713
62713
  }
62714
62714
 
62715
62715
  /* Header handled by ModalHeader (RFC-0121) */
62716
+ .myio-device-settings-modal .myio-modal-header__title {
62717
+ font-size: 14px;
62718
+ font-weight: 600;
62719
+ }
62720
+ .myio-device-settings-modal .myio-modal-header__icon {
62721
+ font-size: 15px;
62722
+ }
62716
62723
 
62717
62724
  .myio-device-settings-modal.is-maximized {
62718
62725
  width: 100vw !important;
@@ -89971,10 +89978,10 @@ var UserDetailTab = class {
89971
89978
  section.style.cssText = "margin-top:20px;border:1px solid var(--um-border);border-radius:10px;overflow:hidden;";
89972
89979
  const sectionHeader = document.createElement("div");
89973
89980
  sectionHeader.style.cssText = "display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--um-accent);border-bottom:1px solid var(--um-btn-2-border);";
89974
- sectionHeader.innerHTML = `<span style="font-size:13px;font-weight:600;color:#fff;">\u{1F511} Atribui\xE7\xF5es de Fun\xE7\xF5es</span>`;
89981
+ sectionHeader.innerHTML = `<span style="font-size:13px;font-weight:600;color:#fff;">\u{1F511} Fun\xE7\xF5es / Pap\xE9is</span>`;
89975
89982
  const addBtn = document.createElement("button");
89976
89983
  addBtn.className = "um-btn um-btn--secondary um-btn--sm";
89977
- addBtn.textContent = "+ Atribuir Fun\xE7\xE3o";
89984
+ addBtn.textContent = "+ Adicionar";
89978
89985
  addBtn.addEventListener("click", () => this.showAssignForm());
89979
89986
  sectionHeader.appendChild(addBtn);
89980
89987
  section.appendChild(sectionHeader);
@@ -90044,14 +90051,19 @@ var UserDetailTab = class {
90044
90051
  overlay.style.zIndex = "100001";
90045
90052
  const modal = document.createElement("div");
90046
90053
  modal.className = "um-modal";
90047
- modal.style.cssText = "padding: 24px; width: min(480px, 92vw); max-height: 80vh; height: auto; aspect-ratio: unset; overflow-y: auto; display: block;";
90054
+ modal.style.cssText = "width: min(820px, 92vw); max-height: 85vh; height: auto; aspect-ratio: unset; overflow: hidden; display: flex; flex-direction: column;";
90048
90055
  const gcdrCid = window.MyIOOrchestrator?.gcdrCustomerId || "";
90049
90056
  const scopeOptions = [
90050
- { value: "*", label: "* (global)" },
90051
- ...gcdrCid ? [{ value: `customer:${gcdrCid}`, label: `customer:${gcdrCid}` }] : []
90057
+ { value: "*", label: "* (global \u2014 todos os clientes)" },
90058
+ ...gcdrCid ? [{ value: `customer:${gcdrCid}`, label: `Cliente atual (${gcdrCid.slice(0, 8)}...)` }] : []
90052
90059
  ];
90053
90060
  modal.innerHTML = `
90054
- <h4 style="margin:0 0 16px;font-size:15px;font-weight:600;color:var(--um-text-primary,#e2e8f0);">Atribuir Fun\xE7\xE3o</h4>
90061
+ <div style="display:flex;align-items:center;gap:10px;padding:14px 20px;background:var(--um-accent);border-bottom:1px solid var(--um-btn-2-border);flex-shrink:0;">
90062
+ <span style="font-size:15px;">\u{1F511}</span>
90063
+ <span style="flex:1;font-size:14px;font-weight:600;color:#fff;">Atribuir Fun\xE7\xE3o / Papel</span>
90064
+ <button type="button" class="assign-close" style="background:none;border:none;color:rgba(255,255,255,0.8);font-size:18px;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1;">\u2715</button>
90065
+ </div>
90066
+ <div style="padding:20px 24px;overflow-y:auto;flex:1;">
90055
90067
  <div class="um-form" style="max-width:100%;">
90056
90068
  <div class="um-form-group">
90057
90069
  <label class="um-label">Fun\xE7\xE3o <span class="um-req">*</span></label>
@@ -90084,6 +90096,7 @@ var UserDetailTab = class {
90084
90096
  <button class="um-btn um-btn--primary assign-save">Atribuir</button>
90085
90097
  </div>
90086
90098
  </div>
90099
+ </div>
90087
90100
  `;
90088
90101
  overlay.appendChild(modal);
90089
90102
  document.body.appendChild(overlay);
@@ -90114,6 +90127,7 @@ var UserDetailTab = class {
90114
90127
  overlay.addEventListener("click", (e) => {
90115
90128
  if (e.target === overlay) close();
90116
90129
  });
90130
+ modal.querySelector(".assign-close").addEventListener("click", close);
90117
90131
  modal.querySelector(".assign-cancel").addEventListener("click", close);
90118
90132
  modal.querySelector(".assign-save").addEventListener("click", async () => {
90119
90133
  const roleId = modal.querySelector("[name=roleId]").value.trim();
@@ -91146,6 +91160,13 @@ var UserManagementModalView = class {
91146
91160
  }
91147
91161
  // ── Styles ───────────────────────────────────────────────────────────────────
91148
91162
  injectStyles() {
91163
+ if (!document.getElementById("um-font-nunito")) {
91164
+ const link = document.createElement("link");
91165
+ link.id = "um-font-nunito";
91166
+ link.rel = "stylesheet";
91167
+ link.href = "https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700&display=swap";
91168
+ document.head.appendChild(link);
91169
+ }
91149
91170
  if (document.getElementById("um-styles")) return;
91150
91171
  const style = document.createElement("style");
91151
91172
  style.id = "um-styles";
@@ -91269,6 +91290,7 @@ var UserManagementModalView = class {
91269
91290
  /* \u2500\u2500 Component styles (theme-agnostic via variables) \u2500\u2500 */
91270
91291
  .um-modal {
91271
91292
  background: var(--um-modal-bg);
91293
+ font-family: 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
91272
91294
  border-radius: 14px; width: 92vw; max-width: 960px;
91273
91295
  --modal-header-radius: 14px 14px 0 0;
91274
91296
  aspect-ratio: 16/9; display: flex; flex-direction: column;
@@ -91442,7 +91464,7 @@ var UserManagementModalView = class {
91442
91464
  .um-check-label { font-size: 13px; color: var(--um-text-secondary); cursor: pointer; display: flex; align-items: center; gap: 8px; }
91443
91465
  .um-form-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
91444
91466
 
91445
- .um-detail-card { max-width: 560px; }
91467
+ .um-detail-card { width: 100%; }
91446
91468
  .um-detail-section { border: 1px solid var(--um-border); border-radius: 10px; overflow: hidden; margin-bottom: 20px; }
91447
91469
  .um-detail-row {
91448
91470
  display: flex; align-items: flex-start; gap: 16px;
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.486",
549
+ version: "0.1.487",
550
550
  description: "A clean, standalone JS SDK for MYIO projects",
551
551
  license: "MIT",
552
552
  repository: "github:gh-myio/myio-js-library",
@@ -61401,7 +61401,7 @@ var SettingsModalView = class {
61401
61401
  <div class="customer-name-container">
61402
61402
  <div class="customer-info-row">
61403
61403
  <div class="device-type-icon-wrapper">
61404
- ${this.getDeviceTypeIcon(deviceType)}
61404
+ ${this.getDeviceTypeIcon(deviceType ?? "")}
61405
61405
  </div>
61406
61406
  <div class="customer-info-content">
61407
61407
  <div class="customer-name-label">Shopping</div>
@@ -62007,7 +62007,7 @@ var SettingsModalView = class {
62007
62007
  not_installed: { text: "N\xE3o instalado", color: "#94a3b8" },
62008
62008
  unknown: { text: "Sem informa\xE7\xE3o", color: "#94a3b8" }
62009
62009
  };
62010
- const statusInfo = statusMap[mapDeviceStatusToCardStatus(deviceStatus) || ""] || {
62010
+ const statusInfo = statusMap[mapDeviceStatusToCardStatus(deviceStatus ?? "") || ""] || {
62011
62011
  text: "Desconhecido",
62012
62012
  color: "#6b7280"
62013
62013
  };
@@ -62100,6 +62100,13 @@ var SettingsModalView = class {
62100
62100
  }
62101
62101
 
62102
62102
  /* Header handled by ModalHeader (RFC-0121) */
62103
+ .myio-device-settings-modal .myio-modal-header__title {
62104
+ font-size: 14px;
62105
+ font-weight: 600;
62106
+ }
62107
+ .myio-device-settings-modal .myio-modal-header__icon {
62108
+ font-size: 15px;
62109
+ }
62103
62110
 
62104
62111
  .myio-device-settings-modal.is-maximized {
62105
62112
  width: 100vw !important;
@@ -89358,10 +89365,10 @@ var UserDetailTab = class {
89358
89365
  section.style.cssText = "margin-top:20px;border:1px solid var(--um-border);border-radius:10px;overflow:hidden;";
89359
89366
  const sectionHeader = document.createElement("div");
89360
89367
  sectionHeader.style.cssText = "display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--um-accent);border-bottom:1px solid var(--um-btn-2-border);";
89361
- sectionHeader.innerHTML = `<span style="font-size:13px;font-weight:600;color:#fff;">\u{1F511} Atribui\xE7\xF5es de Fun\xE7\xF5es</span>`;
89368
+ sectionHeader.innerHTML = `<span style="font-size:13px;font-weight:600;color:#fff;">\u{1F511} Fun\xE7\xF5es / Pap\xE9is</span>`;
89362
89369
  const addBtn = document.createElement("button");
89363
89370
  addBtn.className = "um-btn um-btn--secondary um-btn--sm";
89364
- addBtn.textContent = "+ Atribuir Fun\xE7\xE3o";
89371
+ addBtn.textContent = "+ Adicionar";
89365
89372
  addBtn.addEventListener("click", () => this.showAssignForm());
89366
89373
  sectionHeader.appendChild(addBtn);
89367
89374
  section.appendChild(sectionHeader);
@@ -89431,14 +89438,19 @@ var UserDetailTab = class {
89431
89438
  overlay.style.zIndex = "100001";
89432
89439
  const modal = document.createElement("div");
89433
89440
  modal.className = "um-modal";
89434
- modal.style.cssText = "padding: 24px; width: min(480px, 92vw); max-height: 80vh; height: auto; aspect-ratio: unset; overflow-y: auto; display: block;";
89441
+ modal.style.cssText = "width: min(820px, 92vw); max-height: 85vh; height: auto; aspect-ratio: unset; overflow: hidden; display: flex; flex-direction: column;";
89435
89442
  const gcdrCid = window.MyIOOrchestrator?.gcdrCustomerId || "";
89436
89443
  const scopeOptions = [
89437
- { value: "*", label: "* (global)" },
89438
- ...gcdrCid ? [{ value: `customer:${gcdrCid}`, label: `customer:${gcdrCid}` }] : []
89444
+ { value: "*", label: "* (global \u2014 todos os clientes)" },
89445
+ ...gcdrCid ? [{ value: `customer:${gcdrCid}`, label: `Cliente atual (${gcdrCid.slice(0, 8)}...)` }] : []
89439
89446
  ];
89440
89447
  modal.innerHTML = `
89441
- <h4 style="margin:0 0 16px;font-size:15px;font-weight:600;color:var(--um-text-primary,#e2e8f0);">Atribuir Fun\xE7\xE3o</h4>
89448
+ <div style="display:flex;align-items:center;gap:10px;padding:14px 20px;background:var(--um-accent);border-bottom:1px solid var(--um-btn-2-border);flex-shrink:0;">
89449
+ <span style="font-size:15px;">\u{1F511}</span>
89450
+ <span style="flex:1;font-size:14px;font-weight:600;color:#fff;">Atribuir Fun\xE7\xE3o / Papel</span>
89451
+ <button type="button" class="assign-close" style="background:none;border:none;color:rgba(255,255,255,0.8);font-size:18px;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1;">\u2715</button>
89452
+ </div>
89453
+ <div style="padding:20px 24px;overflow-y:auto;flex:1;">
89442
89454
  <div class="um-form" style="max-width:100%;">
89443
89455
  <div class="um-form-group">
89444
89456
  <label class="um-label">Fun\xE7\xE3o <span class="um-req">*</span></label>
@@ -89471,6 +89483,7 @@ var UserDetailTab = class {
89471
89483
  <button class="um-btn um-btn--primary assign-save">Atribuir</button>
89472
89484
  </div>
89473
89485
  </div>
89486
+ </div>
89474
89487
  `;
89475
89488
  overlay.appendChild(modal);
89476
89489
  document.body.appendChild(overlay);
@@ -89501,6 +89514,7 @@ var UserDetailTab = class {
89501
89514
  overlay.addEventListener("click", (e) => {
89502
89515
  if (e.target === overlay) close();
89503
89516
  });
89517
+ modal.querySelector(".assign-close").addEventListener("click", close);
89504
89518
  modal.querySelector(".assign-cancel").addEventListener("click", close);
89505
89519
  modal.querySelector(".assign-save").addEventListener("click", async () => {
89506
89520
  const roleId = modal.querySelector("[name=roleId]").value.trim();
@@ -90533,6 +90547,13 @@ var UserManagementModalView = class {
90533
90547
  }
90534
90548
  // ── Styles ───────────────────────────────────────────────────────────────────
90535
90549
  injectStyles() {
90550
+ if (!document.getElementById("um-font-nunito")) {
90551
+ const link = document.createElement("link");
90552
+ link.id = "um-font-nunito";
90553
+ link.rel = "stylesheet";
90554
+ link.href = "https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700&display=swap";
90555
+ document.head.appendChild(link);
90556
+ }
90536
90557
  if (document.getElementById("um-styles")) return;
90537
90558
  const style = document.createElement("style");
90538
90559
  style.id = "um-styles";
@@ -90656,6 +90677,7 @@ var UserManagementModalView = class {
90656
90677
  /* \u2500\u2500 Component styles (theme-agnostic via variables) \u2500\u2500 */
90657
90678
  .um-modal {
90658
90679
  background: var(--um-modal-bg);
90680
+ font-family: 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
90659
90681
  border-radius: 14px; width: 92vw; max-width: 960px;
90660
90682
  --modal-header-radius: 14px 14px 0 0;
90661
90683
  aspect-ratio: 16/9; display: flex; flex-direction: column;
@@ -90829,7 +90851,7 @@ var UserManagementModalView = class {
90829
90851
  .um-check-label { font-size: 13px; color: var(--um-text-secondary); cursor: pointer; display: flex; align-items: center; gap: 8px; }
90830
90852
  .um-form-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
90831
90853
 
90832
- .um-detail-card { max-width: 560px; }
90854
+ .um-detail-card { width: 100%; }
90833
90855
  .um-detail-section { border: 1px solid var(--um-border); border-radius: 10px; overflow: hidden; margin-bottom: 20px; }
90834
90856
  .um-detail-row {
90835
90857
  display: flex; align-items: flex-start; gap: 16px;
@@ -4070,7 +4070,7 @@
4070
4070
 
4071
4071
  // package.json
4072
4072
  var package_default = {
4073
- version: "0.1.486"};
4073
+ version: "0.1.487"};
4074
4074
 
4075
4075
  // src/format/energy.ts
4076
4076
  function formatPower(value, decimals = 2) {
@@ -64616,7 +64616,7 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
64616
64616
  <div class="customer-name-container">
64617
64617
  <div class="customer-info-row">
64618
64618
  <div class="device-type-icon-wrapper">
64619
- ${this.getDeviceTypeIcon(deviceType)}
64619
+ ${this.getDeviceTypeIcon(deviceType ?? "")}
64620
64620
  </div>
64621
64621
  <div class="customer-info-content">
64622
64622
  <div class="customer-name-label">Shopping</div>
@@ -65222,7 +65222,7 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
65222
65222
  not_installed: { text: "N\xE3o instalado", color: "#94a3b8" },
65223
65223
  unknown: { text: "Sem informa\xE7\xE3o", color: "#94a3b8" }
65224
65224
  };
65225
- const statusInfo = statusMap[mapDeviceStatusToCardStatus(deviceStatus)] || {
65225
+ const statusInfo = statusMap[mapDeviceStatusToCardStatus(deviceStatus ?? "")] || {
65226
65226
  text: "Desconhecido",
65227
65227
  color: "#6b7280"
65228
65228
  };
@@ -65315,6 +65315,13 @@ ${this._formatFileSize(f.size)} \xB7 ${f.type || "arquivo"}`;
65315
65315
  }
65316
65316
 
65317
65317
  /* Header handled by ModalHeader (RFC-0121) */
65318
+ .myio-device-settings-modal .myio-modal-header__title {
65319
+ font-size: 14px;
65320
+ font-weight: 600;
65321
+ }
65322
+ .myio-device-settings-modal .myio-modal-header__icon {
65323
+ font-size: 15px;
65324
+ }
65318
65325
 
65319
65326
  .myio-device-settings-modal.is-maximized {
65320
65327
  width: 100vw !important;
@@ -92565,10 +92572,10 @@ Esta a\xE7\xE3o afeta todos os grupos que utilizam este canal.`
92565
92572
  section.style.cssText = "margin-top:20px;border:1px solid var(--um-border);border-radius:10px;overflow:hidden;";
92566
92573
  const sectionHeader = document.createElement("div");
92567
92574
  sectionHeader.style.cssText = "display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--um-accent);border-bottom:1px solid var(--um-btn-2-border);";
92568
- sectionHeader.innerHTML = `<span style="font-size:13px;font-weight:600;color:#fff;">\u{1F511} Atribui\xE7\xF5es de Fun\xE7\xF5es</span>`;
92575
+ sectionHeader.innerHTML = `<span style="font-size:13px;font-weight:600;color:#fff;">\u{1F511} Fun\xE7\xF5es / Pap\xE9is</span>`;
92569
92576
  const addBtn = document.createElement("button");
92570
92577
  addBtn.className = "um-btn um-btn--secondary um-btn--sm";
92571
- addBtn.textContent = "+ Atribuir Fun\xE7\xE3o";
92578
+ addBtn.textContent = "+ Adicionar";
92572
92579
  addBtn.addEventListener("click", () => this.showAssignForm());
92573
92580
  sectionHeader.appendChild(addBtn);
92574
92581
  section.appendChild(sectionHeader);
@@ -92638,14 +92645,19 @@ Esta a\xE7\xE3o afeta todos os grupos que utilizam este canal.`
92638
92645
  overlay.style.zIndex = "100001";
92639
92646
  const modal = document.createElement("div");
92640
92647
  modal.className = "um-modal";
92641
- modal.style.cssText = "padding: 24px; width: min(480px, 92vw); max-height: 80vh; height: auto; aspect-ratio: unset; overflow-y: auto; display: block;";
92648
+ modal.style.cssText = "width: min(820px, 92vw); max-height: 85vh; height: auto; aspect-ratio: unset; overflow: hidden; display: flex; flex-direction: column;";
92642
92649
  const gcdrCid = window.MyIOOrchestrator?.gcdrCustomerId || "";
92643
92650
  const scopeOptions = [
92644
- { value: "*", label: "* (global)" },
92645
- ...gcdrCid ? [{ value: `customer:${gcdrCid}`, label: `customer:${gcdrCid}` }] : []
92651
+ { value: "*", label: "* (global \u2014 todos os clientes)" },
92652
+ ...gcdrCid ? [{ value: `customer:${gcdrCid}`, label: `Cliente atual (${gcdrCid.slice(0, 8)}...)` }] : []
92646
92653
  ];
92647
92654
  modal.innerHTML = `
92648
- <h4 style="margin:0 0 16px;font-size:15px;font-weight:600;color:var(--um-text-primary,#e2e8f0);">Atribuir Fun\xE7\xE3o</h4>
92655
+ <div style="display:flex;align-items:center;gap:10px;padding:14px 20px;background:var(--um-accent);border-bottom:1px solid var(--um-btn-2-border);flex-shrink:0;">
92656
+ <span style="font-size:15px;">\u{1F511}</span>
92657
+ <span style="flex:1;font-size:14px;font-weight:600;color:#fff;">Atribuir Fun\xE7\xE3o / Papel</span>
92658
+ <button type="button" class="assign-close" style="background:none;border:none;color:rgba(255,255,255,0.8);font-size:18px;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1;">\u2715</button>
92659
+ </div>
92660
+ <div style="padding:20px 24px;overflow-y:auto;flex:1;">
92649
92661
  <div class="um-form" style="max-width:100%;">
92650
92662
  <div class="um-form-group">
92651
92663
  <label class="um-label">Fun\xE7\xE3o <span class="um-req">*</span></label>
@@ -92678,6 +92690,7 @@ Esta a\xE7\xE3o afeta todos os grupos que utilizam este canal.`
92678
92690
  <button class="um-btn um-btn--primary assign-save">Atribuir</button>
92679
92691
  </div>
92680
92692
  </div>
92693
+ </div>
92681
92694
  `;
92682
92695
  overlay.appendChild(modal);
92683
92696
  document.body.appendChild(overlay);
@@ -92708,6 +92721,7 @@ Esta a\xE7\xE3o afeta todos os grupos que utilizam este canal.`
92708
92721
  overlay.addEventListener("click", (e) => {
92709
92722
  if (e.target === overlay) close();
92710
92723
  });
92724
+ modal.querySelector(".assign-close").addEventListener("click", close);
92711
92725
  modal.querySelector(".assign-cancel").addEventListener("click", close);
92712
92726
  modal.querySelector(".assign-save").addEventListener("click", async () => {
92713
92727
  const roleId = modal.querySelector("[name=roleId]").value.trim();
@@ -93740,6 +93754,13 @@ Esta a\xE7\xE3o afeta todos os grupos que utilizam este canal.`
93740
93754
  }
93741
93755
  // ── Styles ───────────────────────────────────────────────────────────────────
93742
93756
  injectStyles() {
93757
+ if (!document.getElementById("um-font-nunito")) {
93758
+ const link = document.createElement("link");
93759
+ link.id = "um-font-nunito";
93760
+ link.rel = "stylesheet";
93761
+ link.href = "https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700&display=swap";
93762
+ document.head.appendChild(link);
93763
+ }
93743
93764
  if (document.getElementById("um-styles")) return;
93744
93765
  const style = document.createElement("style");
93745
93766
  style.id = "um-styles";
@@ -93863,6 +93884,7 @@ Esta a\xE7\xE3o afeta todos os grupos que utilizam este canal.`
93863
93884
  /* \u2500\u2500 Component styles (theme-agnostic via variables) \u2500\u2500 */
93864
93885
  .um-modal {
93865
93886
  background: var(--um-modal-bg);
93887
+ font-family: 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
93866
93888
  border-radius: 14px; width: 92vw; max-width: 960px;
93867
93889
  --modal-header-radius: 14px 14px 0 0;
93868
93890
  aspect-ratio: 16/9; display: flex; flex-direction: column;
@@ -94036,7 +94058,7 @@ Esta a\xE7\xE3o afeta todos os grupos que utilizam este canal.`
94036
94058
  .um-check-label { font-size: 13px; color: var(--um-text-secondary); cursor: pointer; display: flex; align-items: center; gap: 8px; }
94037
94059
  .um-form-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
94038
94060
 
94039
- .um-detail-card { max-width: 560px; }
94061
+ .um-detail-card { width: 100%; }
94040
94062
  .um-detail-section { border: 1px solid var(--um-border); border-radius: 10px; overflow: hidden; margin-bottom: 20px; }
94041
94063
  .um-detail-row {
94042
94064
  display: flex; align-items: flex-start; gap: 16px;