web-mojo 2.1.70 → 2.1.116

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.
Files changed (78) hide show
  1. package/dist/admin.cjs.js +1 -1
  2. package/dist/admin.cjs.js.map +1 -1
  3. package/dist/admin.es.js +14 -26
  4. package/dist/admin.es.js.map +1 -1
  5. package/dist/auth.cjs.js +1 -1
  6. package/dist/auth.cjs.js.map +1 -1
  7. package/dist/auth.css +179 -660
  8. package/dist/auth.es.js +83 -43
  9. package/dist/auth.es.js.map +1 -1
  10. package/dist/charts.cjs.js +1 -1
  11. package/dist/charts.es.js +2 -2
  12. package/dist/chunks/{ContextMenu-CD5yoYTS.js → ContextMenu-CUvwhX0l.js} +2 -2
  13. package/dist/chunks/{ContextMenu-CD5yoYTS.js.map → ContextMenu-CUvwhX0l.js.map} +1 -1
  14. package/dist/chunks/{ContextMenu-Cds78Jny.js → ContextMenu-DRp4XFcC.js} +2 -2
  15. package/dist/chunks/{ContextMenu-Cds78Jny.js.map → ContextMenu-DRp4XFcC.js.map} +1 -1
  16. package/dist/chunks/{DataView-DPSnw5Nb.js → DataView-D4K18g9k.js} +2 -2
  17. package/dist/chunks/{DataView-DPSnw5Nb.js.map → DataView-D4K18g9k.js.map} +1 -1
  18. package/dist/chunks/{DataView-CfPr57_R.js → DataView-DsSzhNcH.js} +2 -2
  19. package/dist/chunks/{DataView-CfPr57_R.js.map → DataView-DsSzhNcH.js.map} +1 -1
  20. package/dist/chunks/{Dialog-BqNrby-G.js → Dialog--4J9O60R.js} +2 -2
  21. package/dist/chunks/{Dialog-BqNrby-G.js.map → Dialog--4J9O60R.js.map} +1 -1
  22. package/dist/chunks/{Dialog-B9C-Tivh.js → Dialog-DXrIEti_.js} +5 -5
  23. package/dist/chunks/{Dialog-B9C-Tivh.js.map → Dialog-DXrIEti_.js.map} +1 -1
  24. package/dist/chunks/{FilePreviewView-Bp09ZiEw.js → FilePreviewView-HtW6KRdR.js} +77 -32
  25. package/dist/chunks/FilePreviewView-HtW6KRdR.js.map +1 -0
  26. package/dist/chunks/FilePreviewView-NeIc7I0M.js +2 -0
  27. package/dist/chunks/FilePreviewView-NeIc7I0M.js.map +1 -0
  28. package/dist/chunks/{FormView-DWR9Albb.js → FormView-CIa1o6FC.js} +3 -3
  29. package/dist/chunks/{FormView-DWR9Albb.js.map → FormView-CIa1o6FC.js.map} +1 -1
  30. package/dist/chunks/{FormView-D0dUMQGM.js → FormView-CTGzaTJ0.js} +2 -2
  31. package/dist/chunks/{FormView-D0dUMQGM.js.map → FormView-CTGzaTJ0.js.map} +1 -1
  32. package/dist/chunks/{MetricsChart-BHv1mj0l.js → MetricsChart-DemSixLu.js} +2 -2
  33. package/dist/chunks/{MetricsChart-BHv1mj0l.js.map → MetricsChart-DemSixLu.js.map} +1 -1
  34. package/dist/chunks/{MetricsChart-Du8mtBlY.js → MetricsChart-Dx66dFfT.js} +3 -3
  35. package/dist/chunks/{MetricsChart-Du8mtBlY.js.map → MetricsChart-Dx66dFfT.js.map} +1 -1
  36. package/dist/chunks/{PDFViewer-C-RkFhlV.js → PDFViewer-rK7woJFy.js} +2 -2
  37. package/dist/chunks/{PDFViewer-C-RkFhlV.js.map → PDFViewer-rK7woJFy.js.map} +1 -1
  38. package/dist/chunks/{PDFViewer-9beaQaeq.js → PDFViewer-vqSk5_Md.js} +3 -3
  39. package/dist/chunks/{PDFViewer-9beaQaeq.js.map → PDFViewer-vqSk5_Md.js.map} +1 -1
  40. package/dist/chunks/{Page-KLwFxSBF.js → Page-B88l1hS3.js} +2 -2
  41. package/dist/chunks/{Page-KLwFxSBF.js.map → Page-B88l1hS3.js.map} +1 -1
  42. package/dist/chunks/{Page-Dg7X1BML.js → Page-BetG0u0h.js} +2 -2
  43. package/dist/chunks/{Page-Dg7X1BML.js.map → Page-BetG0u0h.js.map} +1 -1
  44. package/dist/chunks/{TopNav-47rWUwBU.js → TopNav-B-ox8ef4.js} +14 -4
  45. package/dist/chunks/TopNav-B-ox8ef4.js.map +1 -0
  46. package/dist/chunks/TopNav-aS3Dyowj.js +2 -0
  47. package/dist/chunks/TopNav-aS3Dyowj.js.map +1 -0
  48. package/dist/chunks/{User-DNxU39NR.js → User-B3Iz5PQD.js} +31 -2
  49. package/dist/chunks/User-B3Iz5PQD.js.map +1 -0
  50. package/dist/chunks/User-Bi9SbbzB.js +3 -0
  51. package/dist/chunks/User-Bi9SbbzB.js.map +1 -0
  52. package/dist/chunks/{WebApp-No-qysKc.js → WebApp-Bdehjb5l.js} +141 -12
  53. package/dist/chunks/WebApp-Bdehjb5l.js.map +1 -0
  54. package/dist/chunks/WebApp-DGWgRFwF.js +2 -0
  55. package/dist/chunks/WebApp-DGWgRFwF.js.map +1 -0
  56. package/dist/css/web-mojo.css +2 -2
  57. package/dist/docit.cjs.js +1 -1
  58. package/dist/docit.es.js +6 -6
  59. package/dist/index.cjs.js +1 -1
  60. package/dist/index.cjs.js.map +1 -1
  61. package/dist/index.es.js +16 -15
  62. package/dist/index.es.js.map +1 -1
  63. package/dist/lightbox.cjs.js +1 -1
  64. package/dist/lightbox.es.js +4 -4
  65. package/dist/portal.css +258 -44
  66. package/package.json +1 -1
  67. package/dist/chunks/FilePreviewView-Bp09ZiEw.js.map +0 -1
  68. package/dist/chunks/FilePreviewView-CnZhI3Yw.js +0 -2
  69. package/dist/chunks/FilePreviewView-CnZhI3Yw.js.map +0 -1
  70. package/dist/chunks/TopNav-47rWUwBU.js.map +0 -1
  71. package/dist/chunks/TopNav-DAB4M5C6.js +0 -2
  72. package/dist/chunks/TopNav-DAB4M5C6.js.map +0 -1
  73. package/dist/chunks/User-DNxU39NR.js.map +0 -1
  74. package/dist/chunks/User-lVECCjCu.js +0 -3
  75. package/dist/chunks/User-lVECCjCu.js.map +0 -1
  76. package/dist/chunks/WebApp-Bci5ZTRS.js +0 -2
  77. package/dist/chunks/WebApp-Bci5ZTRS.js.map +0 -1
  78. package/dist/chunks/WebApp-No-qysKc.js.map +0 -1
package/dist/auth.es.js CHANGED
@@ -1,7 +1,7 @@
1
- import { W as WebApp } from "./chunks/WebApp-No-qysKc.js";
2
- import { B, b, a, c, e, f } from "./chunks/WebApp-No-qysKc.js";
1
+ import { b as VERSION, W as WebApp } from "./chunks/WebApp-Bdehjb5l.js";
2
+ import { B, a, c, e, f } from "./chunks/WebApp-Bdehjb5l.js";
3
3
  import { T as TokenManager } from "./chunks/TokenManager-BXNva8Jk.js";
4
- import { P as Page } from "./chunks/Page-Dg7X1BML.js";
4
+ import { P as Page } from "./chunks/Page-BetG0u0h.js";
5
5
  class AuthManager {
6
6
  constructor(app, config = {}) {
7
7
  this.app = app;
@@ -323,9 +323,9 @@ class LoginPage extends Page {
323
323
  }
324
324
  },
325
325
  features: {
326
- rememberMe: true,
326
+ rememberMe: false,
327
327
  forgotPassword: true,
328
- registration: true
328
+ registration: false
329
329
  }
330
330
  };
331
331
  }
@@ -341,6 +341,7 @@ class LoginPage extends Page {
341
341
  isLoading: false,
342
342
  error: null,
343
343
  showPassword: false,
344
+ version: VERSION,
344
345
  // Feature availability
345
346
  passkeySupported: this.getApp().auth?.isPasskeySupported?.() || false,
346
347
  // Config data for template
@@ -359,7 +360,6 @@ class LoginPage extends Page {
359
360
  this.updateData({
360
361
  username: "",
361
362
  password: "",
362
- rememberMe: true,
363
363
  error: null,
364
364
  isLoading: false
365
365
  });
@@ -1052,7 +1052,7 @@ class ResetPasswordPage extends Page {
1052
1052
  }
1053
1053
  }
1054
1054
  const templates = {};
1055
- templates["auth/pages/ForgotPasswordPage.mst"] = `<div class="auth-page forgot-password-page min-vh-100 d-flex align-items-center py-4">
1055
+ templates["extensions/auth/pages/ForgotPasswordPage.mst"] = `<div class="auth-page forgot-password-page min-vh-100 d-flex align-items-center py-4">
1056
1056
  <div class="container">
1057
1057
  <div class="row justify-content-center">
1058
1058
  <div class="col-sm-8 col-md-8 col-lg-6 col-xl-5">
@@ -1146,7 +1146,7 @@ templates["auth/pages/ForgotPasswordPage.mst"] = `<div class="auth-page forgot-p
1146
1146
  </div>
1147
1147
  </div>
1148
1148
  `;
1149
- templates["auth/pages/LoginPage.mst"] = `<div class="auth-page login-page min-vh-100 d-flex align-items-center py-4">
1149
+ templates["extensions/auth/pages/LoginPage.mst"] = `<div class="auth-page min-vh-100 d-flex align-items-center py-4">
1150
1150
  <div class="container">
1151
1151
  <div class="row justify-content-center">
1152
1152
  <div class="col-sm-10 col-md-8 col-lg-6 col-xl-5">
@@ -1157,8 +1157,12 @@ templates["auth/pages/LoginPage.mst"] = `<div class="auth-page login-page min-vh
1157
1157
  {{#data.logoUrl}}
1158
1158
  <img src="{{data.logoUrl}}" alt="{{data.title}}" class="mb-3" style="max-height: 60px;">
1159
1159
  {{/data.logoUrl}}
1160
+ {{#data.messages.loginTitle}}
1160
1161
  <h2 class="h3 mb-2">{{#data.loginIcon}}<i class="{{data.loginIcon}}"></i> {{/data.loginIcon}}{{data.messages.loginTitle}}</h2>
1162
+ {{/data.messages.loginTitle}}
1163
+ {{/data.messages.loginSubtitle}}
1161
1164
  <p class="text-muted">{{data.messages.loginSubtitle}}</p>
1165
+ {{/data.messages.loginSubtitle}}
1162
1166
  </div>
1163
1167
 
1164
1168
  <!-- Error Alert -->
@@ -1294,17 +1298,27 @@ templates["auth/pages/LoginPage.mst"] = `<div class="auth-page login-page min-vh
1294
1298
  </div>
1295
1299
 
1296
1300
  <!-- Security Notice -->
1297
- <div class="text-center mt-3">
1298
- <small class="text-muted">
1299
- <i class="bi bi-shield-check me-1"></i>Secure Login with 256-bit Encryption
1300
- </small>
1301
+ <!-- TOS and Privacy Links -->
1302
+ <div class="text-center mt-3 auth-footer-links">
1303
+ {{#data.termsUrl}}
1304
+ <small><a href="{{data.termsUrl}}" target="_blank" rel="noopener noreferrer">Terms of Service</a></small>
1305
+ {{/data.termsUrl}}
1306
+ {{#data.termsUrl}}{{#data.privacyUrl}}
1307
+ <small class="mx-1 text-muted">&middot;</small>
1308
+ {{/data.privacyUrl}}{{/data.termsUrl}}
1309
+ {{#data.privacyUrl}}
1310
+ <small><a href="{{data.privacyUrl}}" target="_blank" rel="noopener noreferrer">Privacy Policy</a></small>
1311
+ {{/data.privacyUrl}}
1312
+ <div class="text-muted text-center mt-3">
1313
+ <small>version {{data.version}}</small>
1314
+ </div>
1301
1315
  </div>
1302
1316
  </div>
1303
1317
  </div>
1304
1318
  </div>
1305
1319
  </div>
1306
1320
  `;
1307
- templates["auth/pages/RegisterPage.mst"] = `<div class="auth-page register-page min-vh-100 d-flex align-items-center py-4">
1321
+ templates["extensions/auth/pages/RegisterPage.mst"] = `<div class="auth-page register-page min-vh-100 d-flex align-items-center py-4">
1308
1322
  <div class="container">
1309
1323
  <div class="row justify-content-center">
1310
1324
  <div class="col-sm-10 col-md-8 col-lg-6 col-xl-5">
@@ -1497,7 +1511,7 @@ templates["auth/pages/RegisterPage.mst"] = `<div class="auth-page register-page
1497
1511
  </div>
1498
1512
  </div>
1499
1513
  `;
1500
- templates["auth/pages/ResetPasswordPage.mst"] = `<div class="auth-page reset-password-page min-vh-100 d-flex align-items-center py-4">
1514
+ templates["extensions/auth/pages/ResetPasswordPage.mst"] = `<div class="auth-page reset-password-page min-vh-100 d-flex align-items-center py-4">
1501
1515
  <div class="container">
1502
1516
  <div class="row justify-content-center">
1503
1517
  <div class="col-sm-10 col-md-8 col-lg-6 col-xl-5">
@@ -1728,55 +1742,80 @@ templates["auth/pages/ResetPasswordPage.mst"] = `<div class="auth-page reset-pas
1728
1742
  </div>
1729
1743
  </div>
1730
1744
  `;
1731
- const auth_pages_ForgotPasswordPage_mst = templates["auth/pages/ForgotPasswordPage.mst"];
1732
- const auth_pages_LoginPage_mst = templates["auth/pages/LoginPage.mst"];
1733
- const auth_pages_RegisterPage_mst = templates["auth/pages/RegisterPage.mst"];
1745
+ function getTemplate(key) {
1746
+ const normalizedKey = key.replace(/^\//, "").replace(/^src\//, "").replace(/\\/g, "/");
1747
+ return templates[normalizedKey] || templates[key];
1748
+ }
1734
1749
  class AuthApp extends WebApp {
1735
1750
  constructor(config = {}) {
1751
+ const uiConfig = {
1752
+ title: config.name || "My App",
1753
+ logoUrl: null,
1754
+ termsUrl: null,
1755
+ privacyUrl: null,
1756
+ theme: {
1757
+ background: "auth-bg-light",
1758
+ panel: "auth-panel-light",
1759
+ ...config.ui?.theme || {}
1760
+ },
1761
+ messages: {
1762
+ loginTitle: "Welcome Back",
1763
+ loginSubtitle: "Sign in to your account",
1764
+ registerTitle: "Create Account",
1765
+ registerSubtitle: "Join us today",
1766
+ forgotTitle: "Reset Password",
1767
+ forgotSubtitle: "We'll send you reset instructions",
1768
+ ...config.ui?.messages || {}
1769
+ },
1770
+ ...config.ui || {}
1771
+ };
1736
1772
  const authConfig = {
1737
- // Default auth routes
1773
+ ...config,
1738
1774
  routes: {
1739
1775
  login: "/login",
1740
1776
  register: "/register",
1741
1777
  forgot: "/forgot-password",
1742
1778
  reset: "/reset-password",
1743
- ...config.routes
1779
+ ...config.routes || {}
1744
1780
  },
1745
- // Default navigation redirects
1746
1781
  loginRedirect: config.loginRedirect || "/",
1747
1782
  logoutRedirect: config.logoutRedirect || "/login",
1748
- // Default features
1749
1783
  features: {
1750
1784
  forgotPassword: true,
1751
1785
  registration: true,
1752
1786
  rememberMe: true,
1753
- ...config.features
1787
+ ...config.features || {}
1754
1788
  },
1755
- // Default password reset method
1756
1789
  passwordResetMethod: config.passwordResetMethod || "code",
1757
- // Default UI messages and branding
1758
- ui: {
1759
- title: config.name || "My App",
1760
- logoUrl: config.logoUrl || null,
1761
- messages: {
1762
- loginTitle: "Welcome Back",
1763
- loginSubtitle: "Sign in to your account",
1764
- registerTitle: "Create Account",
1765
- registerSubtitle: "Join us today",
1766
- forgotTitle: "Reset Password",
1767
- forgotSubtitle: "We'll send you reset instructions",
1768
- ...config.ui?.messages || {}
1769
- }
1770
- },
1771
- ...config
1790
+ ui: uiConfig
1772
1791
  };
1773
1792
  super(authConfig);
1774
1793
  this.auth = new AuthManager(this, authConfig);
1775
1794
  this.authConfig = authConfig;
1795
+ this.applyAuthTheme();
1776
1796
  this.registerAuthPages();
1777
1797
  this.setupAuthIntegration();
1778
1798
  this.setupAuthGuards();
1779
1799
  }
1800
+ /**
1801
+ * Applies the configured background and panel themes to the body.
1802
+ */
1803
+ applyAuthTheme() {
1804
+ const theme = this.authConfig.ui.theme;
1805
+ if (!theme) return;
1806
+ const classesToRemove = Array.from(document.body.classList).filter(
1807
+ (c2) => c2.startsWith("auth-bg-") || c2.startsWith("auth-panel-")
1808
+ );
1809
+ if (classesToRemove.length) {
1810
+ document.body.classList.remove(...classesToRemove);
1811
+ }
1812
+ if (theme.background) {
1813
+ document.body.classList.add(theme.background);
1814
+ }
1815
+ if (theme.panel) {
1816
+ document.body.classList.add(theme.panel);
1817
+ }
1818
+ }
1780
1819
  /**
1781
1820
  * Registers all the standard authentication pages with the application.
1782
1821
  */
@@ -1786,14 +1825,14 @@ class AuthApp extends WebApp {
1786
1825
  route: cfg.routes.login,
1787
1826
  title: "Login",
1788
1827
  authConfig: cfg,
1789
- template: auth_pages_LoginPage_mst
1828
+ template: getTemplate("extensions/auth/pages/LoginPage.mst")
1790
1829
  });
1791
1830
  if (cfg.features.registration) {
1792
1831
  this.registerPage("register", RegisterPage, {
1793
1832
  route: cfg.routes.register,
1794
1833
  title: "Register",
1795
1834
  authConfig: cfg,
1796
- template: auth_pages_RegisterPage_mst
1835
+ template: getTemplate("extensions/auth/pages/RegisterPage.mst")
1797
1836
  });
1798
1837
  }
1799
1838
  if (cfg.features.forgotPassword) {
@@ -1801,12 +1840,13 @@ class AuthApp extends WebApp {
1801
1840
  route: cfg.routes.forgot,
1802
1841
  title: "Reset Password",
1803
1842
  authConfig: cfg,
1804
- template: auth_pages_ForgotPasswordPage_mst
1843
+ template: getTemplate("extensions/auth/pages/ForgotPasswordPage.mst")
1805
1844
  });
1806
1845
  this.registerPage("reset-password", ResetPasswordPage, {
1807
1846
  route: cfg.routes.reset,
1808
1847
  title: "Set New Password",
1809
- authConfig: cfg
1848
+ authConfig: cfg,
1849
+ template: getTemplate("extensions/auth/pages/ResetPasswordPage.mst")
1810
1850
  });
1811
1851
  }
1812
1852
  }
@@ -2158,7 +2198,7 @@ export {
2158
2198
  PasskeyPlugin,
2159
2199
  RegisterPage,
2160
2200
  ResetPasswordPage,
2161
- b as VERSION,
2201
+ VERSION,
2162
2202
  a as VERSION_INFO,
2163
2203
  c as VERSION_MAJOR,
2164
2204
  e as VERSION_MINOR,