@flun/html-template 4.0.13 → 4.0.14

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/f-CHANGELOG.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # 变更日志
2
- ## [4.0.13] - 2026-04-30 19:28
2
+ ## [4.0.14] - 2026-04-30 20:33
3
3
  ### 优化:
4
- - 删除冗余的json数据;
5
- - 依赖包版本修改;
4
+ - 将静态目录工具中的 browser13.js 重命名为 browser.js;
5
+ - 模板的按钮都添加了按钮属性;
6
+ - 硬件列表样式优化;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flun/html-template",
3
- "version": "4.0.13",
3
+ "version": "4.0.14",
4
4
  "description": "一个HTML模板工具包,提供开发服务器和模板编译功能,支持自定义标签和快捷输入,变量定义,包含文件引用,帮助开发者模块化处理HTML。",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -138,7 +138,7 @@
138
138
  <input type="text" id="token" placeholder="在此输入6位验证码" maxlength="6" autofocus
139
139
  autocomplete="one-time-code">
140
140
  </div>
141
- <button class="btn" id="verifyBtn">验证</button>
141
+ <button type="button" class="btn" id="verifyBtn">验证</button>
142
142
  </form>
143
143
  <div class="error" id="message"></div>
144
144
  <div class="backup-link">
@@ -143,7 +143,7 @@
143
143
  <div class="form-group">
144
144
  <input type="email" id="email" placeholder="邮箱地址" autofocus autocomplete="email" maxlength="100">
145
145
  </div>
146
- <button class="btn" id="sendBtn">发送重置邮件</button>
146
+ <button type="button" class="btn" id="sendBtn">发送重置邮件</button>
147
147
  </form>
148
148
  <div id="message" class="error"></div>
149
149
  <div id="manualLink" class="links hidden">
@@ -143,7 +143,7 @@
143
143
  <label for="password">密码</label>
144
144
  <input type="password" id="password" placeholder="请输入密码" maxlength="72" autocomplete="current-password">
145
145
  </div>
146
- <button class="btn" id="loginBtn">登录</button>
146
+ <button type="button" class="btn" id="loginBtn">登录</button>
147
147
  </form>
148
148
  <div class="error" id="message"></div>
149
149
  <div class="links">
@@ -157,7 +157,7 @@
157
157
  <script src="/static/mouseOrTouch.js" defer></script><!-- 引入鼠标或触摸操作 -->
158
158
  <script src="/static/themeImg.js" defer></script> <!-- 引入主题图标模块 -->
159
159
  <script src="/static/topImg.js" defer></script> <!-- 引入返回顶部图标模块 -->
160
- <script src="/static/utils/browser13.js"></script>
160
+ <script src="/static/utils/browser.js"></script> <!-- 引入@flun前端硬件验证模块 -->
161
161
  <script>
162
162
  const [usernameEl, passwordEl, messageDiv, loginBtn] = ['username', 'password', 'message', 'loginBtn']
163
163
  .map(id => document.getElementById(id)),
@@ -276,7 +276,8 @@
276
276
  display: flex;
277
277
  justify-content: space-between;
278
278
  align-items: center;
279
- padding: 10px 0;
279
+ gap: 8px;
280
+ padding: 10px 5px;
280
281
  border-bottom: 1px solid var(--content-border);
281
282
  }
282
283
 
@@ -368,9 +369,9 @@
368
369
  <span class="info-value" id="createdAt">-</span>
369
370
  </div>
370
371
  <div class="action-buttons">
371
- <button class="btn btn-outline" id="editProfileBtn">编辑资料</button>
372
- <button class="btn btn-outline" id="showChangePasswordBtn">修改密码</button>
373
- <button class="btn btn-secondary" id="logoutBtn">退出登录</button>
372
+ <button type="button" class="btn btn-outline" id="editProfileBtn">编辑资料</button>
373
+ <button type="button" class="btn btn-outline" id="showChangePasswordBtn">修改密码</button>
374
+ <button type="button" class="btn btn-secondary" id="logoutBtn">退出登录</button>
374
375
  </div>
375
376
  </div>
376
377
 
@@ -389,8 +390,8 @@
389
390
  autocomplete="off">
390
391
  </div>
391
392
  <div style="display: flex; gap: 10px;">
392
- <button class="btn" id="updateProfileBtn">保存修改</button>
393
- <button class="btn btn-secondary" id="cancelEditBtn">取消</button>
393
+ <button type="button" class="btn" id="updateProfileBtn">保存修改</button>
394
+ <button type="button" class="btn btn-danger" id="cancelEditBtn">取消</button>
394
395
  </div>
395
396
  <div id="updateProfileMessage" class="message"></div>
396
397
  </form>
@@ -410,8 +411,8 @@
410
411
  <input type="password" id="confirmPassword" placeholder="确认新密码" maxlength="72" autocomplete="off">
411
412
  </div>
412
413
  <div style="display: flex; gap: 10px;">
413
- <button class="btn" id="changePasswordBtn">确认提交</button>
414
- <button class="btn btn-secondary" id="cancelChangePasswordBtn">取消</button>
414
+ <button type="button" class="btn" id="changePasswordBtn">确认提交</button>
415
+ <button type="button" class="btn btn-secondary" id="cancelChangePasswordBtn">取消</button>
415
416
  </div>
416
417
  <div id="changePasswordMessage" class="message"></div>
417
418
  </form>
@@ -423,7 +424,7 @@
423
424
  <span class="title-text">
424
425
  双因素认证 (2FA) <span id="twofaCheckmark" class="twofa-checkmark"></span>
425
426
  </span>
426
- <button class="btn" id="toggle2faBtn">启用2FA</button>
427
+ <button type="button" class="btn" id="toggle2faBtn">启用2FA</button>
427
428
  </h2>
428
429
 
429
430
  <div id="enable2faPanel" hidden style="margin-top: 16px;">
@@ -436,22 +437,22 @@
436
437
  <input type="text" id="verifyToken" placeholder="输入6位验证码" maxlength="6"
437
438
  style="width: 100%; padding: 8px; margin: 12px 0;" autocomplete="off">
438
439
  <div class="flex-buttons">
439
- <button class="btn" id="confirm2faBtn">验证并启用</button>
440
- <button class="btn btn-secondary" id="cancelEnable2faBtn">取消</button>
440
+ <button type="button" class="btn" id="confirm2faBtn">验证并启用</button>
441
+ <button type="button" class="btn btn-secondary" id="cancelEnable2faBtn">取消</button>
441
442
  </div>
442
443
  <div id="confirmMessage" class="message" hidden></div>
443
444
  </form>
444
445
  </div>
445
446
 
446
447
  <div id="manage2faPanel" hidden style="margin-top: 16px;">
447
- <button class="btn btn-warning" id="showBackupBtn">生成新的备份码</button>
448
+ <button type="button" class="btn btn-warning" id="showBackupBtn">生成新的备份码</button>
448
449
  <div id="backupManageMessage" class="message" hidden></div>
449
450
  <div id="backupCodesPanel" hidden style="margin-top: 15px;">
450
451
  <p class="info">备用码(仅显示一次,请妥善保存):</p>
451
452
  <div id="backupCodesList" class="backup-codes"></div>
452
453
  <div class="backup-actions">
453
- <button class="btn btn-outline" id="saveBackupFileBtn">💾 保存到文件</button>
454
- <button class="btn btn-outline" id="printBackupCodesBtn">🖨️ 打印备份码</button>
454
+ <button type="button" class="btn btn-outline" id="saveBackupFileBtn">💾 保存到文件</button>
455
+ <button type="button" class="btn btn-outline" id="printBackupCodesBtn">🖨️ 打印备份码</button>
455
456
  </div>
456
457
  </div>
457
458
  </div>
@@ -463,7 +464,7 @@
463
464
  <span class="title-text">
464
465
  硬件验证(指纹/人脸等) <span id="webauthnStatusIcon"></span>
465
466
  </span>
466
- <button class="btn" id="toggleWebAuthnBtn">启用硬件验证</button>
467
+ <button type="button" class="btn" id="toggleWebAuthnBtn">启用硬件验证</button>
467
468
  </h2>
468
469
 
469
470
  <div id="webauthnMessage" class="message" hidden></div>
@@ -472,10 +473,10 @@
472
473
  <ul id="webauthnDeviceList" class="device-list"></ul>
473
474
  <li id="deviceItemExample" class="device-item" style="display: none;">
474
475
  <span class="device-name"></span>
475
- <button class="btn btn-secondary btn-small">删除</button>
476
+ <button type="button" class="btn btn-danger btn-small">删除</button>
476
477
  </li>
477
478
  <div style="display: flex; gap: 12px; margin-top: 12px; flex-wrap: wrap;">
478
- <button class="btn btn-outline" id="manageAddDeviceBtn">➕ 添加新设备</button>
479
+ <button type="button" class="btn btn-outline" id="manageAddDeviceBtn">➕ 添加新设备</button>
479
480
  </div>
480
481
  <div id="webauthnManageMessage" class="message" hidden></div>
481
482
  </div>
@@ -487,7 +488,7 @@
487
488
  <span class="title-text">
488
489
  注销账户 <span style="color:#e53e3e;font-size: 1rem;">(警告:此操作数据无法恢复)</span>
489
490
  </span>
490
- <button class="btn btn-danger" id="showDeleteAccountBtn">注销</button>
491
+ <button type="button" class="btn btn-danger" id="showDeleteAccountBtn">注销</button>
491
492
  </h2>
492
493
  <div id="deleteAccountForm" hidden style="margin-top:15px;">
493
494
  <form onsubmit="return false;">
@@ -496,8 +497,8 @@
496
497
  autocomplete="off">
497
498
  </div>
498
499
  <div style="display: flex; gap: 10px;">
499
- <button class="btn btn-danger" id="deleteAccountBtn">永久注销账户</button>
500
- <button class="btn btn-secondary" id="cancelDeleteBtn">取消</button>
500
+ <button type="button" class="btn btn-danger" id="deleteAccountBtn">永久注销账户</button>
501
+ <button type="button" class="btn btn-secondary" id="cancelDeleteBtn">取消</button>
501
502
  </div>
502
503
  <div id="deleteAccountMessage" class="message"></div>
503
504
  </form>
@@ -511,7 +512,7 @@
511
512
  <script src="/static/mouseOrTouch.js" defer></script><!-- 引入鼠标或触摸操作 -->
512
513
  <script src="/static/themeImg.js" defer></script> <!-- 引入主题图标模块 -->
513
514
  <script src="/static/topImg.js" defer></script> <!-- 引入返回顶部图标模块 -->
514
- <script src="/static/utils/browser13.js"></script>
515
+ <script src="/static/utils/browser.js"></script> <!-- 引入@flun前端硬件验证模块 -->
515
516
  <script>
516
517
  // ==================== 全局变量 ====================
517
518
  let currentUser = null, targetEmail = null, emailCheckInterval = null, isEmailPollingActive = false,
@@ -757,7 +758,7 @@
757
758
  if (enable2faPanel.hidden) await showEnable2faPanel();
758
759
  else hideEnable2faPanel();
759
760
  } else {
760
- if (!confirm('确定关闭双因素认证吗?关闭后账户安全性将降低。')) return;
761
+ if (!confirm('确定关闭双因素认证吗?关闭后账户安全性将降低;')) return;
761
762
  const { ok, data } = await requestApi('/api/disable-2fa', { method: 'POST' }, null, toggle2faBtn);
762
763
  if (ok) await loadUser();
763
764
  else alert(data.message);
@@ -152,7 +152,7 @@
152
152
  <label for="password">密码 (至少6位)</label>
153
153
  <input type="password" id="password" placeholder="请输入密码" maxlength="72" autocomplete="current-password">
154
154
  </div>
155
- <button class="btn" id="registerBtn">注册</button>
155
+ <button type="button" class="btn" id="registerBtn">注册</button>
156
156
  </form>
157
157
  <div id="message" class="error"></div>
158
158
  <div id="manualLink" class="links hidden">
@@ -149,7 +149,7 @@
149
149
  <input type="password" id="confirmPassword" placeholder="确认新密码" maxlength="72"
150
150
  autocomplete="new-password">
151
151
  </div>
152
- <button class="btn" id="resetBtn">重置密码</button>
152
+ <button type="button" class="btn" id="resetBtn">重置密码</button>
153
153
  </form>
154
154
  <div id="message" class="error"></div>
155
155
  </div>
File without changes