@alepha/ui 0.15.4 → 0.16.0

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 (102) hide show
  1. package/dist/admin/AdminApiKeys-DsmGnHNh.js +3 -0
  2. package/dist/admin/AdminApiKeys-GMORg-1l.js +442 -0
  3. package/dist/admin/AdminApiKeys-GMORg-1l.js.map +1 -0
  4. package/dist/admin/AdminAudits-8SM96viT.js +3 -0
  5. package/dist/admin/{AdminAudits-Oh7iAfQa.js → AdminAudits-pkWrjq1Z.js} +2 -2
  6. package/dist/admin/{AdminAudits-Oh7iAfQa.js.map → AdminAudits-pkWrjq1Z.js.map} +1 -1
  7. package/dist/admin/AdminFiles-B56ocq4H.js +3 -0
  8. package/dist/admin/{AdminFiles-Cu8GHgQ3.js → AdminFiles-WeQbsCsl.js} +2 -2
  9. package/dist/admin/{AdminFiles-Cu8GHgQ3.js.map → AdminFiles-WeQbsCsl.js.map} +1 -1
  10. package/dist/admin/AdminJobs-B-q9iGO3.js +697 -0
  11. package/dist/admin/AdminJobs-B-q9iGO3.js.map +1 -0
  12. package/dist/admin/AdminJobs-CED1syCn.js +3 -0
  13. package/dist/admin/{AdminLayout-QJLIesuG.js → AdminLayout-D8yZ-8lG.js} +4 -2
  14. package/dist/admin/AdminLayout-D8yZ-8lG.js.map +1 -0
  15. package/dist/admin/AdminNotifications-B0B1rdc4.js +3 -0
  16. package/dist/admin/{AdminNotifications-CgYkBuG_.js → AdminNotifications-Ds5Un0NJ.js} +2 -2
  17. package/dist/admin/{AdminNotifications-CgYkBuG_.js.map → AdminNotifications-Ds5Un0NJ.js.map} +1 -1
  18. package/dist/admin/{AdminParameters-Cl-R0nXt.js → AdminParameters-BU3lATdJ.js} +1 -1
  19. package/dist/admin/{AdminParameters-hjNG_KXb.js → AdminParameters-CfDUpc78.js} +4 -4
  20. package/dist/admin/{AdminParameters-hjNG_KXb.js.map → AdminParameters-CfDUpc78.js.map} +1 -1
  21. package/dist/admin/AdminSessions-BDGK2MS6.js +3 -0
  22. package/dist/admin/{AdminSessions-Bey9cuy1.js → AdminSessions-DzIOxM3b.js} +2 -2
  23. package/dist/admin/{AdminSessions-Bey9cuy1.js.map → AdminSessions-DzIOxM3b.js.map} +1 -1
  24. package/dist/admin/{AdminUserAudits-C7AN9jx7.js → AdminUserAudits-CiUPN2BC.js} +2 -2
  25. package/dist/admin/{AdminUserAudits-C7AN9jx7.js.map → AdminUserAudits-CiUPN2BC.js.map} +1 -1
  26. package/dist/admin/{AdminUserAudits-Cp_ERd2g.js → AdminUserAudits-Cj79gENT.js} +1 -1
  27. package/dist/admin/{AdminUserCreate-BVIm4JdN.js → AdminUserCreate-BwQKr4xE.js} +2 -2
  28. package/dist/admin/{AdminUserCreate-BVIm4JdN.js.map → AdminUserCreate-BwQKr4xE.js.map} +1 -1
  29. package/dist/admin/{AdminUserCreate-C1aInRDk.js → AdminUserCreate-Cq-mUmBs.js} +1 -1
  30. package/dist/admin/{AdminUserDetails-Dcn3OwMC.js → AdminUserDetails-DRjVAPFd.js} +1 -1
  31. package/dist/admin/{AdminUserDetails-yM4x8JE6.js → AdminUserDetails-uqtC5aJ1.js} +2 -2
  32. package/dist/admin/{AdminUserDetails-yM4x8JE6.js.map → AdminUserDetails-uqtC5aJ1.js.map} +1 -1
  33. package/dist/admin/{AdminUserLayout-gb-nbggz.js → AdminUserLayout-CGzmHHby.js} +1 -1
  34. package/dist/admin/{AdminUserLayout-BnfBC1gD.js → AdminUserLayout-CiPay35T.js} +2 -2
  35. package/dist/admin/{AdminUserLayout-BnfBC1gD.js.map → AdminUserLayout-CiPay35T.js.map} +1 -1
  36. package/dist/admin/{AdminUserSessions-kmkXG-xf.js → AdminUserSessions-DAE8Nf1F.js} +2 -2
  37. package/dist/admin/{AdminUserSessions-kmkXG-xf.js.map → AdminUserSessions-DAE8Nf1F.js.map} +1 -1
  38. package/dist/admin/AdminUserSessions-DcdzuNZ9.js +3 -0
  39. package/dist/admin/AdminUserSettings-D7V6-ceX.js +3 -0
  40. package/dist/admin/{AdminUserSettings-DZ9iWhJW.js → AdminUserSettings-EbahaV2a.js} +2 -2
  41. package/dist/admin/{AdminUserSettings-DZ9iWhJW.js.map → AdminUserSettings-EbahaV2a.js.map} +1 -1
  42. package/dist/admin/AdminUsers-D9nyzGqQ.js +3 -0
  43. package/dist/admin/{AdminUsers-D6Y5K8Am.js → AdminUsers-Dcjh0KNW.js} +2 -2
  44. package/dist/admin/{AdminUsers-D6Y5K8Am.js.map → AdminUsers-Dcjh0KNW.js.map} +1 -1
  45. package/dist/admin/index.d.ts +33 -41
  46. package/dist/admin/index.d.ts.map +1 -1
  47. package/dist/admin/index.js +129 -179
  48. package/dist/admin/index.js.map +1 -1
  49. package/dist/auth/{AuthLayout-Dj5K4SIN.js → AuthLayout-mFOWbiSP.js} +2 -1
  50. package/dist/auth/AuthLayout-mFOWbiSP.js.map +1 -0
  51. package/dist/auth/index.d.ts +18 -8
  52. package/dist/auth/index.d.ts.map +1 -1
  53. package/dist/auth/index.js +22 -17
  54. package/dist/auth/index.js.map +1 -1
  55. package/dist/core/index.d.ts +16 -24
  56. package/dist/core/index.d.ts.map +1 -1
  57. package/dist/core/index.js +34 -43
  58. package/dist/core/index.js.map +1 -1
  59. package/dist/demo/{DemoLogin-S-b15cmE.js → DemoLogin-CvCG2WVh.js} +3 -1
  60. package/dist/demo/{DemoLogin-S-b15cmE.js.map → DemoLogin-CvCG2WVh.js.map} +1 -1
  61. package/dist/demo/{DemoRegister-B29MdAaZ.js → DemoRegister-CmeHbOAs.js} +3 -1
  62. package/dist/demo/{DemoRegister-B29MdAaZ.js.map → DemoRegister-CmeHbOAs.js.map} +1 -1
  63. package/dist/demo/{DemoResetPassword-CPTy88iK.js → DemoResetPassword-CKO5iA_6.js} +3 -1
  64. package/dist/demo/{DemoResetPassword-CPTy88iK.js.map → DemoResetPassword-CKO5iA_6.js.map} +1 -1
  65. package/dist/demo/index.js +3 -3
  66. package/package.json +11 -11
  67. package/src/admin/AdminRouter.ts +111 -2
  68. package/src/admin/components/AdminLayout.tsx +2 -0
  69. package/src/admin/components/jobs/AdminJobs.tsx +733 -119
  70. package/src/admin/components/keys/AdminApiKeys.tsx +537 -0
  71. package/src/admin/components/parameters/AdminParameters.tsx +2 -3
  72. package/src/admin/index.ts +8 -17
  73. package/src/admin/primitives/$uiAdmin.ts +17 -0
  74. package/src/auth/AuthRouter.ts +14 -6
  75. package/src/auth/components/AuthLayout.tsx +1 -0
  76. package/src/auth/index.ts +5 -14
  77. package/src/auth/primitives/$uiAuth.ts +10 -0
  78. package/src/core/components/buttons/ActionButton.tsx +15 -2
  79. package/src/core/components/buttons/DarkModeButton.css +6 -0
  80. package/src/core/components/buttons/DarkModeButton.tsx +18 -71
  81. package/src/core/components/buttons/LanguageButton.tsx +2 -7
  82. package/src/core/components/buttons/ThemeButton.tsx +2 -6
  83. package/src/core/components/layout/AdminShell.tsx +17 -1
  84. package/src/core/components/layout/AlephaMantineProvider.tsx +2 -1
  85. package/src/core/components/layout/AppBar.tsx +5 -8
  86. package/src/core/components/layout/Sidebar.tsx +10 -0
  87. package/src/core/index.ts +3 -4
  88. package/src/core/styles.css +1 -0
  89. package/src/demo/components/auth/DemoLogin.tsx +2 -0
  90. package/src/demo/components/auth/DemoRegister.tsx +2 -0
  91. package/src/demo/components/auth/DemoResetPassword.tsx +2 -0
  92. package/dist/admin/AdminAudits-BU-p1g7A.js +0 -3
  93. package/dist/admin/AdminFiles-Bg9feLFH.js +0 -3
  94. package/dist/admin/AdminLayout-BfeFXiul.js +0 -3
  95. package/dist/admin/AdminLayout-QJLIesuG.js.map +0 -1
  96. package/dist/admin/AdminNotifications-DmfGPqHe.js +0 -3
  97. package/dist/admin/AdminSessions-Cn4_jB04.js +0 -3
  98. package/dist/admin/AdminUserSessions-rvA0ztxn.js +0 -3
  99. package/dist/admin/AdminUserSettings-Dg-wTRzN.js +0 -3
  100. package/dist/admin/AdminUsers-RCaxccEW.js +0 -3
  101. package/dist/auth/AuthLayout-Dj5K4SIN.js.map +0 -1
  102. package/src/admin/MainRouter.ts +0 -23
@@ -8,7 +8,7 @@ import { $context, $inject, $module, AlephaError, t } from "alepha";
8
8
  import { AlephaReactAuth, ReactAuth, useAuth } from "alepha/react/auth";
9
9
  import { $dictionary, AlephaReactI18n } from "alepha/react/i18n";
10
10
  import { IconLogin2, IconLogout, IconLogout2, IconMailCheck, IconPasswordUser, IconSettings, IconUser, IconUserPlus } from "@tabler/icons-react";
11
- import { $page, ReactPageProvider, useRouter } from "alepha/react/router";
11
+ import { $page, ReactPageProvider, Redirection, useRouter } from "alepha/react/router";
12
12
  import { $client } from "alepha/server/links";
13
13
  import { Avatar } from "@mantine/core";
14
14
  import { useClient, useInject } from "alepha/react";
@@ -143,10 +143,9 @@ const realmQuerySchema = t.object({
143
143
  var AuthRouter = class {
144
144
  realmClient = $client();
145
145
  auth = $inject(ReactAuth);
146
- layout = $page({
147
- name: "AuthLayout",
146
+ authLayout = $page({
148
147
  path: "/auth",
149
- lazy: () => import("./AuthLayout-Dj5K4SIN.js"),
148
+ lazy: () => import("./AuthLayout-mFOWbiSP.js"),
150
149
  children: () => [
151
150
  this.login,
152
151
  this.register,
@@ -163,7 +162,8 @@ var AuthRouter = class {
163
162
  schema: { query: realmQuerySchema },
164
163
  can: () => !this.auth.user,
165
164
  lazy: () => import("./Login-CoU63mMR.js"),
166
- loader: async ({ query }) => {
165
+ loader: async ({ query, user }) => {
166
+ if (user) throw new Redirection(query.r || "/");
167
167
  return { realmConfig: await this.loadRealmConfig(query.realm) };
168
168
  }
169
169
  });
@@ -175,7 +175,8 @@ var AuthRouter = class {
175
175
  schema: { query: realmQuerySchema },
176
176
  can: () => !this.auth.user,
177
177
  lazy: () => import("./Register-BV_oa_AK.js"),
178
- loader: async ({ query }) => {
178
+ loader: async ({ query, user }) => {
179
+ if (user) throw new Redirection(query.r || "/");
179
180
  return { realmConfig: await this.loadRealmConfig(query.realm) };
180
181
  }
181
182
  });
@@ -187,7 +188,8 @@ var AuthRouter = class {
187
188
  schema: { query: realmQuerySchema },
188
189
  can: () => !this.auth.user,
189
190
  lazy: () => import("./ResetPassword-D5wC8GAA.js"),
190
- loader: async ({ query }) => {
191
+ loader: async ({ query, user }) => {
192
+ if (user) throw new Redirection(query.r || "/");
191
193
  return { realmConfig: await this.loadRealmConfig(query.realm) };
192
194
  }
193
195
  });
@@ -295,12 +297,22 @@ const UserButton = (props) => {
295
297
  };
296
298
  var UserButton_default = UserButton;
297
299
 
300
+ //#endregion
301
+ //#region ../../src/auth/primitives/$uiAuth.ts
302
+ /**
303
+ * Register Auth UI components and get the AuthRouter instance.
304
+ */
305
+ const $uiAuth = () => {
306
+ const { alepha } = $context();
307
+ return alepha.inject(AuthRouter);
308
+ };
309
+
298
310
  //#endregion
299
311
  //#region ../../src/auth/index.ts
300
312
  /**
301
- * | type | quality | stability |
302
- * |------|---------|-----------|
303
- * | frontend | rare | experimental |
313
+ * | Stability | Since | Runtime |
314
+ * |-----------|-------|---------|
315
+ * | 2 - beta | 0.12.0 | node, bun, workerd, browser|
304
316
  *
305
317
  * Authentication UI components.
306
318
  *
@@ -323,13 +335,6 @@ const AlephaUIAuth = $module({
323
335
  AuthI18n
324
336
  ]
325
337
  });
326
- /**
327
- * Register Auth UI components and get the AuthRouter instance.
328
- */
329
- const $uiAuth = () => {
330
- const { alepha } = $context();
331
- return alepha.inject(AuthRouter);
332
- };
333
338
 
334
339
  //#endregion
335
340
  export { $uiAuth, AlephaUIAuth, AuthRouter, Login_default as Login, Register_default as Register, ResetPassword_default as ResetPassword, UserButton_default as UserButton, VerifyEmail_default as VerifyEmail };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/auth/AuthI18n.ts","../../src/auth/AuthRouter.ts","../../src/auth/components/buttons/UserButton.tsx","../../src/auth/index.ts"],"sourcesContent":["import { $dictionary } from \"alepha/react/i18n\";\n\nexport class AuthI18n {\n en = $dictionary({\n name: \"alepha.ui.auth.en\",\n lazy: () => ({\n default: {\n loginSignIn: \"Sign in\",\n loginContinueWith: \"Continue with $1\",\n loginOr: \"OR\",\n loginCancel: \"Cancel\",\n loginForgotPassword: \"Forgot password?\",\n loginNoAccount: \"Don't have an account?\",\n loginSignUp: \"Sign up\",\n loginUsername: \"Username\",\n loginEmail: \"Email\",\n loginPhone: \"Phone number\",\n loginPassword: \"Password\",\n registerCreateAccount: \"Create account\",\n registerContinueWith: \"Continue with $1\",\n registerOr: \"OR\",\n registerCancel: \"Cancel\",\n registerHaveAccount: \"Already have an account?\",\n registerSignIn: \"Sign in\",\n registerUsername: \"Username\",\n registerEmail: \"Email\",\n registerPhone: \"Phone number\",\n registerPassword: \"Password\",\n registerConfirmPassword: \"Confirm password\",\n registerDisabled:\n \"Registration is not available. Please contact your administrator.\",\n registerBackToSignIn: \"Back to sign in\",\n registerVerifyTitle: \"Verify your account\",\n registerVerifyDescription:\n \"Please enter the verification code(s) sent to you.\",\n registerEmailCode: \"Email verification code\",\n registerPhoneCode: \"Phone verification code\",\n registerVerifySubmit: \"Complete Registration\",\n registerVerifyBack: \"Back to registration\",\n resetPasswordTitle: \"Reset password\",\n resetPasswordEmail: \"Email\",\n resetPasswordEnterEmail:\n \"Enter your email address to reset your password\",\n resetPasswordSendCode: \"Send verification code\",\n resetPasswordCodeSent: \"We've sent a verification code to your email.\",\n resetPasswordEnterCode: \"Enter the 6-digit code\",\n resetPasswordResendCode: \"Resend code\",\n resetPasswordEnterNewPassword: \"Create your new password\",\n resetPasswordNewPassword: \"New password\",\n resetPasswordConfirmPassword: \"Confirm password\",\n resetPasswordSetNewPassword: \"Set new password\",\n resetPasswordSuccess: \"Your password has been reset successfully.\",\n resetPasswordBackToSignIn: \"Back to sign in\",\n resetPasswordCancel: \"Cancel\",\n resetPasswordDisabled:\n \"Password reset is not available. Please contact your administrator.\",\n verifyEmailTitle: \"Email Verification\",\n verifyEmailVerifying: \"Verifying your email...\",\n verifyEmailPleaseWait:\n \"Please wait while we verify your email address.\",\n verifyEmailSuccess: \"Your email has been verified successfully.\",\n verifyEmailFailed:\n \"Failed to verify your email. The link may have expired or is invalid.\",\n verifyEmailMissingParams:\n \"Invalid verification link. Email and token are required.\",\n verifyEmailSignIn: \"Sign in to your account\",\n verifyEmailBackToSignIn: \"Back to sign in\",\n },\n }),\n });\n\n fr = $dictionary({\n lazy: () => ({\n default: {\n loginSignIn: \"Se connecter\",\n loginContinueWith: \"Continuer avec $1\",\n loginOr: \"OU\",\n loginCancel: \"Annuler\",\n loginForgotPassword: \"Mot de passe oublié ?\",\n loginNoAccount: \"Vous n'avez pas de compte ?\",\n loginSignUp: \"S'inscrire\",\n loginUsername: \"Nom d'utilisateur\",\n loginEmail: \"E-mail\",\n loginPhone: \"Numéro de téléphone\",\n loginPassword: \"Mot de passe\",\n registerCreateAccount: \"Créer un compte\",\n registerContinueWith: \"Continuer avec $1\",\n registerOr: \"OU\",\n registerCancel: \"Annuler\",\n registerHaveAccount: \"Vous avez déjà un compte ?\",\n registerSignIn: \"Se connecter\",\n registerUsername: \"Nom d'utilisateur\",\n registerEmail: \"E-mail\",\n registerPhone: \"Numéro de téléphone\",\n registerPassword: \"Mot de passe\",\n registerConfirmPassword: \"Confirmer le mot de passe\",\n registerDisabled:\n \"L'inscription n'est pas disponible. Veuillez contacter votre administrateur.\",\n registerBackToSignIn: \"Retour à la connexion\",\n registerVerifyTitle: \"Vérifiez votre compte\",\n registerVerifyDescription:\n \"Veuillez entrer le(s) code(s) de vérification qui vous ont été envoyés.\",\n registerEmailCode: \"Code de vérification par e-mail\",\n registerPhoneCode: \"Code de vérification par téléphone\",\n registerVerifySubmit: \"Terminer l'inscription\",\n registerVerifyBack: \"Retour à l'inscription\",\n resetPasswordTitle: \"Réinitialiser le mot de passe\",\n resetPasswordEmail: \"E-mail\",\n resetPasswordEnterEmail:\n \"Entrez votre adresse e-mail pour réinitialiser votre mot de passe\",\n resetPasswordSendCode: \"Envoyer le code de vérification\",\n resetPasswordCodeSent:\n \"Nous avons envoyé un code de vérification à votre e-mail.\",\n resetPasswordEnterCode: \"Entrez le code à 6 chiffres\",\n resetPasswordResendCode: \"Renvoyer le code\",\n resetPasswordEnterNewPassword: \"Créez votre nouveau mot de passe\",\n resetPasswordNewPassword: \"Nouveau mot de passe\",\n resetPasswordConfirmPassword: \"Confirmer le mot de passe\",\n resetPasswordSetNewPassword: \"Définir le nouveau mot de passe\",\n resetPasswordSuccess:\n \"Votre mot de passe a été réinitialisé avec succès.\",\n resetPasswordBackToSignIn: \"Retour à la connexion\",\n resetPasswordCancel: \"Annuler\",\n resetPasswordDisabled:\n \"La réinitialisation du mot de passe n'est pas disponible. Veuillez contacter votre administrateur.\",\n verifyEmailTitle: \"Vérification de l'e-mail\",\n verifyEmailVerifying: \"Vérification de votre e-mail...\",\n verifyEmailPleaseWait:\n \"Veuillez patienter pendant que nous vérifions votre adresse e-mail.\",\n verifyEmailSuccess: \"Votre e-mail a été vérifié avec succès.\",\n verifyEmailFailed:\n \"Échec de la vérification de votre e-mail. Le lien a peut-être expiré ou est invalide.\",\n verifyEmailMissingParams:\n \"Lien de vérification invalide. L'e-mail et le jeton sont requis.\",\n verifyEmailSignIn: \"Se connecter à votre compte\",\n verifyEmailBackToSignIn: \"Retour à la connexion\",\n },\n }),\n });\n}\n","import {\n IconLogin2,\n IconLogout2,\n IconMailCheck,\n IconPasswordUser,\n IconUser,\n IconUserPlus,\n} from \"@tabler/icons-react\";\nimport { $inject, AlephaError, t } from \"alepha\";\nimport type { RealmController } from \"alepha/api/users\";\nimport { ReactAuth } from \"alepha/react/auth\";\nimport { $page } from \"alepha/react/router\";\nimport { $client } from \"alepha/server/links\";\n\n/**\n * Schema for realm query parameter used across auth pages.\n */\nconst realmQuerySchema = t.object({\n r: t.optional(t.string({ description: \"Redirect URL after authentication\" })),\n realm: t.optional(\n t.string({ description: \"User realm name for multi-tenant auth\" }),\n ),\n});\n\nexport class AuthRouter {\n protected readonly realmClient = $client<RealmController>();\n protected readonly auth = $inject(ReactAuth);\n\n layout = $page({\n name: \"AuthLayout\",\n path: \"/auth\",\n lazy: () => import(\"./components/AuthLayout.tsx\"),\n children: () => [\n this.login,\n this.register,\n this.resetPassword,\n this.verifyEmail,\n this.profile,\n ],\n });\n\n login = $page({\n icon: IconLogin2,\n label: \"Sign In\",\n description: \"Sign in to your account\",\n path: \"/login\",\n schema: {\n query: realmQuerySchema,\n },\n can: () => !this.auth.user,\n lazy: () => import(\"./components/Login.tsx\"),\n loader: async ({ query }) => {\n return {\n realmConfig: await this.loadRealmConfig(query.realm),\n };\n },\n });\n\n register = $page({\n icon: IconUserPlus,\n label: \"Register\",\n description: \"Create a new account\",\n path: \"/register\",\n schema: {\n query: realmQuerySchema,\n },\n can: () => !this.auth.user,\n lazy: () => import(\"./components/Register.tsx\"),\n loader: async ({ query }) => {\n return {\n realmConfig: await this.loadRealmConfig(query.realm),\n };\n },\n });\n\n resetPassword = $page({\n icon: IconPasswordUser,\n label: \"Reset Password\",\n description: \"Reset your account password\",\n path: \"/reset-password\",\n schema: {\n query: realmQuerySchema,\n },\n can: () => !this.auth.user,\n lazy: () => import(\"./components/ResetPassword.tsx\"),\n loader: async ({ query }) => {\n return {\n realmConfig: await this.loadRealmConfig(query.realm),\n };\n },\n });\n\n verifyEmail = $page({\n icon: IconMailCheck,\n label: \"Verify Email\",\n description: \"Verify your email address\",\n path: \"/verify-email\",\n schema: {\n query: t.object({\n email: t.optional(t.string()),\n token: t.optional(t.string()),\n }),\n },\n lazy: () => import(\"./components/VerifyEmail.tsx\"),\n });\n\n logout = $page({\n icon: IconLogout2,\n label: \"Sign Out\",\n description: \"Sign out of your account\",\n can: () => !!this.auth.user,\n path: \"/logout\",\n component: () => null,\n loader: () => {\n this.auth.logout();\n return {};\n },\n });\n\n profile = $page({\n name: \"userProfile\",\n icon: IconUser,\n label: \"Profile\",\n description: \"View your profile\",\n path: \"/profile\",\n can: () => !!this.auth.user,\n lazy: () => import(\"./components/Profile.tsx\"),\n });\n\n protected async loadRealmConfig(realmName?: string) {\n try {\n return await this.realmClient.getRealmConfig({\n query: { realmName },\n });\n } catch (e) {\n if (e instanceof AlephaError) {\n throw new AlephaError(\n \"Missing Realm Configuration - Did you forget to add '$realm()' to your application?\",\n e,\n );\n }\n throw e;\n }\n }\n}\n","import {\n ActionButton,\n type ActionMenuConfig,\n type ActionMenuItem,\n type ActionProps,\n ui,\n} from \"@alepha/ui\";\nimport { Avatar } from \"@mantine/core\";\nimport {\n IconLogin2,\n IconLogout,\n IconSettings,\n IconUser,\n} from \"@tabler/icons-react\";\nimport type { AdminUserController } from \"alepha/api/users\";\nimport { useClient, useInject } from \"alepha/react\";\nimport { useAuth } from \"alepha/react/auth\";\nimport { ReactPageProvider, useRouter } from \"alepha/react/router\";\nimport type { ReactNode } from \"react\";\nimport type { AuthRouter } from \"../../AuthRouter.ts\";\n\nexport interface UserButtonProps\n extends Omit<ActionProps, \"menu\" | \"icon\" | \"onClick\"> {\n /**\n * Additional menu items to display before the logout option\n */\n menuItems?: ActionMenuItem[];\n\n /**\n * Custom logout label (default: \"Sign out\")\n */\n logoutLabel?: string;\n\n /**\n * Menu configuration overrides\n */\n menuConfig?: Partial<Omit<ActionMenuConfig, \"items\">>;\n\n /**\n * Whether to show a divider before logout (default: true when menuItems provided)\n */\n showLogoutDivider?: boolean;\n\n /**\n * Custom icon to use instead of user avatar (default: IconUser)\n */\n icon?: ReactNode;\n}\n\nconst UserButton = (props: UserButtonProps) => {\n const {\n menuItems = [],\n logoutLabel = \"Sign out\",\n menuConfig,\n showLogoutDivider = menuItems.length > 0,\n icon,\n children,\n ...buttonProps\n } = props;\n\n buttonProps.variant ??= \"subtle\";\n\n const adminUserCtrl = useClient<AdminUserController>();\n const pages = useInject(ReactPageProvider);\n\n const auth = useAuth<{\n username?: string;\n email?: string;\n picture?: string;\n }>();\n\n const isConnected = !!auth.user;\n const isAdmin = isConnected && adminUserCtrl.findUsers.can();\n const userPage = pages.getPages().find((it) => it.name === \"userProfile\");\n const adminPage = pages.getPages().find((it) => it.name === \"adminLayout\");\n const authRouter = useRouter<AuthRouter>();\n\n if (!auth.user) {\n return (\n <ActionButton\n {...buttonProps}\n icon={IconLogin2}\n href={authRouter.path(\"login\")}\n />\n );\n }\n\n const userLabel = auth.user.username || auth.user.email;\n\n const items: ActionMenuItem[] = [];\n\n // Add user info label if available\n if (auth.user.email && auth.user.username) {\n items.push({\n type: \"label\",\n label: auth.user.email,\n });\n }\n\n // Add profile page link if available\n if (userPage && isConnected) {\n items.push({\n label: \"Profile\",\n icon: <IconUser size={ui.sizes.icon.md} />,\n href: authRouter.path(\"userProfile\"),\n });\n }\n\n // Add admin page link if available and user is admin\n if (adminPage && isAdmin) {\n items.push({\n label: \"Admin\",\n icon: <IconSettings size={ui.sizes.icon.md} />,\n href: authRouter.path(\"adminLayout\"),\n });\n }\n\n // Add custom menu items\n items.push(...menuItems);\n\n // Add divider before logout if needed\n if (showLogoutDivider && items.length > 0) {\n items.push({ type: \"divider\" });\n }\n\n // Add logout item\n items.push({\n label: logoutLabel,\n icon: <IconLogout size={ui.sizes.icon.md} />,\n color: \"red\",\n onClick: () => auth.logout(),\n });\n\n // Use leftSection for Avatar (JSX element), icon prop for component types\n const hasAvatar = !icon && auth.user.picture;\n\n return (\n <ActionButton\n {...buttonProps}\n icon={hasAvatar ? undefined : (icon ?? IconUser)}\n leftSection={\n hasAvatar ? (\n <Avatar\n src={`/api/files/${auth.user.picture}`}\n size={24}\n radius=\"xl\"\n />\n ) : undefined\n }\n menu={{\n position: \"bottom-end\",\n width: 200,\n ...menuConfig,\n items,\n }}\n >\n {children ?? userLabel}\n </ActionButton>\n );\n};\n\nexport default UserButton;\n","import { AlephaUI } from \"@alepha/ui\";\nimport { $context, $module } from \"alepha\";\nimport { AlephaReactAuth } from \"alepha/react/auth\";\nimport { AlephaReactI18n } from \"alepha/react/i18n\";\nimport { AuthI18n } from \"./AuthI18n.ts\";\nimport { AuthRouter } from \"./AuthRouter.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./AuthRouter.ts\";\nexport type { UserButtonProps } from \"./components/buttons/UserButton.tsx\";\nexport { default as UserButton } from \"./components/buttons/UserButton.tsx\";\nexport { default as Login } from \"./components/Login.tsx\";\nexport { default as Register } from \"./components/Register.tsx\";\nexport { default as ResetPassword } from \"./components/ResetPassword.tsx\";\nexport { default as VerifyEmail } from \"./components/VerifyEmail.tsx\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * | type | quality | stability |\n * |------|---------|-----------|\n * | frontend | rare | experimental |\n *\n * Authentication UI components.\n *\n * **Features:**\n * - Login page component\n * - Register page component\n * - Reset password page component\n * - Email verification page component\n * - UserButton for user menu\n *\n * @module alepha.ui.auth\n */\nexport const AlephaUIAuth = $module({\n name: \"alepha.ui.auth\",\n services: [AlephaUI, AlephaReactAuth, AlephaReactI18n, AuthRouter, AuthI18n],\n});\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Register Auth UI components and get the AuthRouter instance.\n */\nexport const $uiAuth = () => {\n const { alepha } = $context();\n return alepha.inject(AuthRouter);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/auth/AuthI18n.ts","../../src/auth/AuthRouter.ts","../../src/auth/components/buttons/UserButton.tsx","../../src/auth/primitives/$uiAuth.ts","../../src/auth/index.ts"],"sourcesContent":["import { $dictionary } from \"alepha/react/i18n\";\n\nexport class AuthI18n {\n en = $dictionary({\n name: \"alepha.ui.auth.en\",\n lazy: () => ({\n default: {\n loginSignIn: \"Sign in\",\n loginContinueWith: \"Continue with $1\",\n loginOr: \"OR\",\n loginCancel: \"Cancel\",\n loginForgotPassword: \"Forgot password?\",\n loginNoAccount: \"Don't have an account?\",\n loginSignUp: \"Sign up\",\n loginUsername: \"Username\",\n loginEmail: \"Email\",\n loginPhone: \"Phone number\",\n loginPassword: \"Password\",\n registerCreateAccount: \"Create account\",\n registerContinueWith: \"Continue with $1\",\n registerOr: \"OR\",\n registerCancel: \"Cancel\",\n registerHaveAccount: \"Already have an account?\",\n registerSignIn: \"Sign in\",\n registerUsername: \"Username\",\n registerEmail: \"Email\",\n registerPhone: \"Phone number\",\n registerPassword: \"Password\",\n registerConfirmPassword: \"Confirm password\",\n registerDisabled:\n \"Registration is not available. Please contact your administrator.\",\n registerBackToSignIn: \"Back to sign in\",\n registerVerifyTitle: \"Verify your account\",\n registerVerifyDescription:\n \"Please enter the verification code(s) sent to you.\",\n registerEmailCode: \"Email verification code\",\n registerPhoneCode: \"Phone verification code\",\n registerVerifySubmit: \"Complete Registration\",\n registerVerifyBack: \"Back to registration\",\n resetPasswordTitle: \"Reset password\",\n resetPasswordEmail: \"Email\",\n resetPasswordEnterEmail:\n \"Enter your email address to reset your password\",\n resetPasswordSendCode: \"Send verification code\",\n resetPasswordCodeSent: \"We've sent a verification code to your email.\",\n resetPasswordEnterCode: \"Enter the 6-digit code\",\n resetPasswordResendCode: \"Resend code\",\n resetPasswordEnterNewPassword: \"Create your new password\",\n resetPasswordNewPassword: \"New password\",\n resetPasswordConfirmPassword: \"Confirm password\",\n resetPasswordSetNewPassword: \"Set new password\",\n resetPasswordSuccess: \"Your password has been reset successfully.\",\n resetPasswordBackToSignIn: \"Back to sign in\",\n resetPasswordCancel: \"Cancel\",\n resetPasswordDisabled:\n \"Password reset is not available. Please contact your administrator.\",\n verifyEmailTitle: \"Email Verification\",\n verifyEmailVerifying: \"Verifying your email...\",\n verifyEmailPleaseWait:\n \"Please wait while we verify your email address.\",\n verifyEmailSuccess: \"Your email has been verified successfully.\",\n verifyEmailFailed:\n \"Failed to verify your email. The link may have expired or is invalid.\",\n verifyEmailMissingParams:\n \"Invalid verification link. Email and token are required.\",\n verifyEmailSignIn: \"Sign in to your account\",\n verifyEmailBackToSignIn: \"Back to sign in\",\n },\n }),\n });\n\n fr = $dictionary({\n lazy: () => ({\n default: {\n loginSignIn: \"Se connecter\",\n loginContinueWith: \"Continuer avec $1\",\n loginOr: \"OU\",\n loginCancel: \"Annuler\",\n loginForgotPassword: \"Mot de passe oublié ?\",\n loginNoAccount: \"Vous n'avez pas de compte ?\",\n loginSignUp: \"S'inscrire\",\n loginUsername: \"Nom d'utilisateur\",\n loginEmail: \"E-mail\",\n loginPhone: \"Numéro de téléphone\",\n loginPassword: \"Mot de passe\",\n registerCreateAccount: \"Créer un compte\",\n registerContinueWith: \"Continuer avec $1\",\n registerOr: \"OU\",\n registerCancel: \"Annuler\",\n registerHaveAccount: \"Vous avez déjà un compte ?\",\n registerSignIn: \"Se connecter\",\n registerUsername: \"Nom d'utilisateur\",\n registerEmail: \"E-mail\",\n registerPhone: \"Numéro de téléphone\",\n registerPassword: \"Mot de passe\",\n registerConfirmPassword: \"Confirmer le mot de passe\",\n registerDisabled:\n \"L'inscription n'est pas disponible. Veuillez contacter votre administrateur.\",\n registerBackToSignIn: \"Retour à la connexion\",\n registerVerifyTitle: \"Vérifiez votre compte\",\n registerVerifyDescription:\n \"Veuillez entrer le(s) code(s) de vérification qui vous ont été envoyés.\",\n registerEmailCode: \"Code de vérification par e-mail\",\n registerPhoneCode: \"Code de vérification par téléphone\",\n registerVerifySubmit: \"Terminer l'inscription\",\n registerVerifyBack: \"Retour à l'inscription\",\n resetPasswordTitle: \"Réinitialiser le mot de passe\",\n resetPasswordEmail: \"E-mail\",\n resetPasswordEnterEmail:\n \"Entrez votre adresse e-mail pour réinitialiser votre mot de passe\",\n resetPasswordSendCode: \"Envoyer le code de vérification\",\n resetPasswordCodeSent:\n \"Nous avons envoyé un code de vérification à votre e-mail.\",\n resetPasswordEnterCode: \"Entrez le code à 6 chiffres\",\n resetPasswordResendCode: \"Renvoyer le code\",\n resetPasswordEnterNewPassword: \"Créez votre nouveau mot de passe\",\n resetPasswordNewPassword: \"Nouveau mot de passe\",\n resetPasswordConfirmPassword: \"Confirmer le mot de passe\",\n resetPasswordSetNewPassword: \"Définir le nouveau mot de passe\",\n resetPasswordSuccess:\n \"Votre mot de passe a été réinitialisé avec succès.\",\n resetPasswordBackToSignIn: \"Retour à la connexion\",\n resetPasswordCancel: \"Annuler\",\n resetPasswordDisabled:\n \"La réinitialisation du mot de passe n'est pas disponible. Veuillez contacter votre administrateur.\",\n verifyEmailTitle: \"Vérification de l'e-mail\",\n verifyEmailVerifying: \"Vérification de votre e-mail...\",\n verifyEmailPleaseWait:\n \"Veuillez patienter pendant que nous vérifions votre adresse e-mail.\",\n verifyEmailSuccess: \"Votre e-mail a été vérifié avec succès.\",\n verifyEmailFailed:\n \"Échec de la vérification de votre e-mail. Le lien a peut-être expiré ou est invalide.\",\n verifyEmailMissingParams:\n \"Lien de vérification invalide. L'e-mail et le jeton sont requis.\",\n verifyEmailSignIn: \"Se connecter à votre compte\",\n verifyEmailBackToSignIn: \"Retour à la connexion\",\n },\n }),\n });\n}\n","import {\n IconLogin2,\n IconLogout2,\n IconMailCheck,\n IconPasswordUser,\n IconUser,\n IconUserPlus,\n} from \"@tabler/icons-react\";\nimport { $inject, AlephaError, t } from \"alepha\";\nimport type { RealmController } from \"alepha/api/users\";\nimport { ReactAuth } from \"alepha/react/auth\";\nimport { $page, Redirection } from \"alepha/react/router\";\nimport { $client } from \"alepha/server/links\";\n\n/**\n * Schema for realm query parameter used across auth pages.\n */\nconst realmQuerySchema = t.object({\n r: t.optional(t.string({ description: \"Redirect URL after authentication\" })),\n realm: t.optional(\n t.string({ description: \"User realm name for multi-tenant auth\" }),\n ),\n});\n\nexport class AuthRouter {\n protected readonly realmClient = $client<RealmController>();\n protected readonly auth = $inject(ReactAuth);\n\n authLayout = $page({\n path: \"/auth\",\n lazy: () => import(\"./components/AuthLayout.tsx\"),\n children: () => [\n this.login,\n this.register,\n this.resetPassword,\n this.verifyEmail,\n this.profile,\n ],\n });\n\n login = $page({\n icon: IconLogin2,\n label: \"Sign In\",\n description: \"Sign in to your account\",\n path: \"/login\",\n schema: {\n query: realmQuerySchema,\n },\n can: () => !this.auth.user,\n lazy: () => import(\"./components/Login.tsx\"),\n loader: async ({ query, user }) => {\n if (user) {\n throw new Redirection(query.r || \"/\");\n }\n return {\n realmConfig: await this.loadRealmConfig(query.realm),\n };\n },\n });\n\n register = $page({\n icon: IconUserPlus,\n label: \"Register\",\n description: \"Create a new account\",\n path: \"/register\",\n schema: {\n query: realmQuerySchema,\n },\n can: () => !this.auth.user,\n lazy: () => import(\"./components/Register.tsx\"),\n loader: async ({ query, user }) => {\n if (user) {\n throw new Redirection(query.r || \"/\");\n }\n return {\n realmConfig: await this.loadRealmConfig(query.realm),\n };\n },\n });\n\n resetPassword = $page({\n icon: IconPasswordUser,\n label: \"Reset Password\",\n description: \"Reset your account password\",\n path: \"/reset-password\",\n schema: {\n query: realmQuerySchema,\n },\n can: () => !this.auth.user,\n lazy: () => import(\"./components/ResetPassword.tsx\"),\n loader: async ({ query, user }) => {\n if (user) {\n throw new Redirection(query.r || \"/\");\n }\n return {\n realmConfig: await this.loadRealmConfig(query.realm),\n };\n },\n });\n\n verifyEmail = $page({\n icon: IconMailCheck,\n label: \"Verify Email\",\n description: \"Verify your email address\",\n path: \"/verify-email\",\n schema: {\n query: t.object({\n email: t.optional(t.string()),\n token: t.optional(t.string()),\n }),\n },\n lazy: () => import(\"./components/VerifyEmail.tsx\"),\n });\n\n logout = $page({\n icon: IconLogout2,\n label: \"Sign Out\",\n description: \"Sign out of your account\",\n can: () => !!this.auth.user,\n path: \"/logout\",\n component: () => null,\n loader: () => {\n this.auth.logout();\n return {};\n },\n });\n\n profile = $page({\n name: \"userProfile\",\n icon: IconUser,\n label: \"Profile\",\n description: \"View your profile\",\n path: \"/profile\",\n can: () => !!this.auth.user,\n lazy: () => import(\"./components/Profile.tsx\"),\n });\n\n protected async loadRealmConfig(realmName?: string) {\n try {\n return await this.realmClient.getRealmConfig({\n query: { realmName },\n });\n } catch (e) {\n if (e instanceof AlephaError) {\n throw new AlephaError(\n \"Missing Realm Configuration - Did you forget to add '$realm()' to your application?\",\n e,\n );\n }\n throw e;\n }\n }\n}\n","import {\n ActionButton,\n type ActionMenuConfig,\n type ActionMenuItem,\n type ActionProps,\n ui,\n} from \"@alepha/ui\";\nimport { Avatar } from \"@mantine/core\";\nimport {\n IconLogin2,\n IconLogout,\n IconSettings,\n IconUser,\n} from \"@tabler/icons-react\";\nimport type { AdminUserController } from \"alepha/api/users\";\nimport { useClient, useInject } from \"alepha/react\";\nimport { useAuth } from \"alepha/react/auth\";\nimport { ReactPageProvider, useRouter } from \"alepha/react/router\";\nimport type { ReactNode } from \"react\";\nimport type { AuthRouter } from \"../../AuthRouter.ts\";\n\nexport interface UserButtonProps\n extends Omit<ActionProps, \"menu\" | \"icon\" | \"onClick\"> {\n /**\n * Additional menu items to display before the logout option\n */\n menuItems?: ActionMenuItem[];\n\n /**\n * Custom logout label (default: \"Sign out\")\n */\n logoutLabel?: string;\n\n /**\n * Menu configuration overrides\n */\n menuConfig?: Partial<Omit<ActionMenuConfig, \"items\">>;\n\n /**\n * Whether to show a divider before logout (default: true when menuItems provided)\n */\n showLogoutDivider?: boolean;\n\n /**\n * Custom icon to use instead of user avatar (default: IconUser)\n */\n icon?: ReactNode;\n}\n\nconst UserButton = (props: UserButtonProps) => {\n const {\n menuItems = [],\n logoutLabel = \"Sign out\",\n menuConfig,\n showLogoutDivider = menuItems.length > 0,\n icon,\n children,\n ...buttonProps\n } = props;\n\n buttonProps.variant ??= \"subtle\";\n\n const adminUserCtrl = useClient<AdminUserController>();\n const pages = useInject(ReactPageProvider);\n\n const auth = useAuth<{\n username?: string;\n email?: string;\n picture?: string;\n }>();\n\n const isConnected = !!auth.user;\n const isAdmin = isConnected && adminUserCtrl.findUsers.can();\n const userPage = pages.getPages().find((it) => it.name === \"userProfile\");\n const adminPage = pages.getPages().find((it) => it.name === \"adminLayout\");\n const authRouter = useRouter<AuthRouter>();\n\n if (!auth.user) {\n return (\n <ActionButton\n {...buttonProps}\n icon={IconLogin2}\n href={authRouter.path(\"login\")}\n />\n );\n }\n\n const userLabel = auth.user.username || auth.user.email;\n\n const items: ActionMenuItem[] = [];\n\n // Add user info label if available\n if (auth.user.email && auth.user.username) {\n items.push({\n type: \"label\",\n label: auth.user.email,\n });\n }\n\n // Add profile page link if available\n if (userPage && isConnected) {\n items.push({\n label: \"Profile\",\n icon: <IconUser size={ui.sizes.icon.md} />,\n href: authRouter.path(\"userProfile\"),\n });\n }\n\n // Add admin page link if available and user is admin\n if (adminPage && isAdmin) {\n items.push({\n label: \"Admin\",\n icon: <IconSettings size={ui.sizes.icon.md} />,\n href: authRouter.path(\"adminLayout\"),\n });\n }\n\n // Add custom menu items\n items.push(...menuItems);\n\n // Add divider before logout if needed\n if (showLogoutDivider && items.length > 0) {\n items.push({ type: \"divider\" });\n }\n\n // Add logout item\n items.push({\n label: logoutLabel,\n icon: <IconLogout size={ui.sizes.icon.md} />,\n color: \"red\",\n onClick: () => auth.logout(),\n });\n\n // Use leftSection for Avatar (JSX element), icon prop for component types\n const hasAvatar = !icon && auth.user.picture;\n\n return (\n <ActionButton\n {...buttonProps}\n icon={hasAvatar ? undefined : (icon ?? IconUser)}\n leftSection={\n hasAvatar ? (\n <Avatar\n src={`/api/files/${auth.user.picture}`}\n size={24}\n radius=\"xl\"\n />\n ) : undefined\n }\n menu={{\n position: \"bottom-end\",\n width: 200,\n ...menuConfig,\n items,\n }}\n >\n {children ?? userLabel}\n </ActionButton>\n );\n};\n\nexport default UserButton;\n","import { $context } from \"alepha\";\nimport { AuthRouter } from \"../AuthRouter.ts\";\n\n/**\n * Register Auth UI components and get the AuthRouter instance.\n */\nexport const $uiAuth = () => {\n const { alepha } = $context();\n return alepha.inject(AuthRouter);\n};\n","import { AlephaUI } from \"@alepha/ui\";\nimport { $module } from \"alepha\";\nimport { AlephaReactAuth } from \"alepha/react/auth\";\nimport { AlephaReactI18n } from \"alepha/react/i18n\";\nimport { AuthI18n } from \"./AuthI18n.ts\";\nimport { AuthRouter } from \"./AuthRouter.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./AuthRouter.ts\";\nexport type { UserButtonProps } from \"./components/buttons/UserButton.tsx\";\nexport { default as UserButton } from \"./components/buttons/UserButton.tsx\";\nexport { default as Login } from \"./components/Login.tsx\";\nexport { default as Register } from \"./components/Register.tsx\";\nexport { default as ResetPassword } from \"./components/ResetPassword.tsx\";\nexport { default as VerifyEmail } from \"./components/VerifyEmail.tsx\";\nexport * from \"./primitives/$uiAuth.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * | Stability | Since | Runtime |\n * |-----------|-------|---------|\n * | 2 - beta | 0.12.0 | node, bun, workerd, browser|\n *\n * Authentication UI components.\n *\n * **Features:**\n * - Login page component\n * - Register page component\n * - Reset password page component\n * - Email verification page component\n * - UserButton for user menu\n *\n * @module alepha.ui.auth\n */\nexport const AlephaUIAuth = $module({\n name: \"alepha.ui.auth\",\n services: [AlephaUI, AlephaReactAuth, AlephaReactI18n, AuthRouter, AuthI18n],\n});\n"],"mappings":"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"}
@@ -462,22 +462,17 @@ interface ClipboardButtonProps extends Omit<ActionCommonProps, "onClick" | "icon
462
462
  declare const ClipboardButton: (props: ClipboardButtonProps) => react_jsx_runtime11.JSX.Element;
463
463
  //#endregion
464
464
  //#region ../../src/core/components/buttons/DarkModeButton.d.ts
465
- interface DarkModeButtonProps {
466
- mode?: "minimal" | "segmented";
467
- size?: MantineBreakpoint;
468
- variant?: "filled" | "light" | "outline" | "default" | "subtle" | "transparent";
469
- fullWidth?: boolean;
470
- segmentedProps?: Partial<SegmentedControlProps>;
471
- actionProps?: Partial<ActionProps>;
472
- }
473
- declare const DarkModeButton: (props: DarkModeButtonProps) => react_jsx_runtime11.JSX.Element;
465
+ /**
466
+ * SSR-safe dark mode toggle button.
467
+ *
468
+ * Uses CSS-based icon switching to avoid hydration mismatches.
469
+ * Both icons are rendered, CSS hides the wrong one based on
470
+ * `data-mantine-color-scheme` attribute.
471
+ */
472
+ declare const DarkModeButton: (props: Partial<ActionProps>) => react_jsx_runtime11.JSX.Element;
474
473
  //#endregion
475
474
  //#region ../../src/core/components/buttons/LanguageButton.d.ts
476
- interface LanguageButtonProps {
477
- languages?: string[];
478
- actionProps?: ActionProps;
479
- }
480
- declare const LanguageButton: (props: LanguageButtonProps) => react_jsx_runtime11.JSX.Element;
475
+ declare const LanguageButton: (props: Partial<ActionProps>) => react_jsx_runtime11.JSX.Element;
481
476
  //#endregion
482
477
  //#region ../../src/core/components/buttons/OmnibarButton.d.ts
483
478
  interface OmnibarButtonProps {
@@ -487,10 +482,7 @@ interface OmnibarButtonProps {
487
482
  declare const OmnibarButton: (props: OmnibarButtonProps) => react_jsx_runtime11.JSX.Element;
488
483
  //#endregion
489
484
  //#region ../../src/core/components/buttons/ThemeButton.d.ts
490
- interface ThemeButtonProps {
491
- actionProps?: Partial<ActionProps>;
492
- }
493
- declare const ThemeButton: (props: ThemeButtonProps) => react_jsx_runtime11.JSX.Element;
485
+ declare const ThemeButton: (props: Partial<ActionProps>) => react_jsx_runtime11.JSX.Element;
494
486
  //#endregion
495
487
  //#region ../../src/core/components/buttons/ToggleSidebarButton.d.ts
496
488
  type Props = ActionProps;
@@ -721,7 +713,7 @@ interface AppBarBurger extends AppBarAbstractItem {
721
713
  }
722
714
  interface AppBarDark extends AppBarAbstractItem {
723
715
  type: "dark";
724
- props?: DarkModeButtonProps;
716
+ props?: Partial<ActionProps>;
725
717
  }
726
718
  interface AppBarSearch extends AppBarAbstractItem {
727
719
  type: "search";
@@ -729,7 +721,7 @@ interface AppBarSearch extends AppBarAbstractItem {
729
721
  }
730
722
  interface AppBarLang extends AppBarAbstractItem {
731
723
  type: "lang";
732
- props?: LanguageButtonProps;
724
+ props?: Partial<ActionProps>;
733
725
  }
734
726
  interface AppBarSpacer extends AppBarAbstractItem {
735
727
  type: "spacer";
@@ -1237,9 +1229,9 @@ declare module "alepha/react/router" {
1237
1229
  }
1238
1230
  }
1239
1231
  /**
1240
- * | type | quality | stability |
1241
- * |------|---------|-----------|
1242
- * | frontend | rare | experimental |
1232
+ * | Stability | Since | Runtime |
1233
+ * |-----------|-------|---------|
1234
+ * | 2 - beta | 0.12.0 | node, bun, workerd, browser|
1243
1235
  *
1244
1236
  * Core UI components based on Mantine UI v8.
1245
1237
  *
@@ -1267,5 +1259,5 @@ declare const $ui: (options?: {
1267
1259
  themes?: AlephaThemeListAtom;
1268
1260
  }) => UiRouter;
1269
1261
  //#endregion
1270
- export { $ui, ActionButton, type ActionClickButtonProps, type ActionCommonProps, type ActionMenuConfig, type ActionMenuItem, type ActionNavigationButtonProps, type ActionProps, type ActionSubmitButtonProps, AdminShell, type AdminShellProps, AlephaMantineProvider, AlephaSidebarState, AlephaThemeListAtom, AlephaUI, AlertDialog, type AlertDialogOptions, type AlertDialogProps, AppBar, type AppBarBurger, type AppBarDark, type AppBarDivider, type AppBarElement, type AppBarItem, type AppBarLang, type AppBarProps, type AppBarSearch, type AppBarSpacer, type BaseDialogOptions, BurgerButton, type CheckboxAction, type CheckboxActionContext, ClipboardButton, type ClipboardButtonProps, type ColumnVisibility, ConfirmDialog, type ConfirmDialogOptions, type ConfirmDialogProps, Control, ControlArray, ControlDate, ControlNumber, ControlObject, ControlQueryBuilder, ControlSelect, CurrentAlephaTheme, DarkModeButton, DataTable, type DataTableColumn, type DataTableColumnContext, type DataTableProps, type DataTableSubmitContext, DialogService, type FilterVisibility, Flex, IconSize, LanguageButton, type MaybePage, OPERATOR_INFO, Omnibar, OmnibarButton, PromptDialog, type PromptDialogOptions, type PromptDialogProps, SchemaField, Sidebar, type SidebarAbstractItem, type SidebarButtonTheme, type SidebarDivider, type SidebarElement, type SidebarItemProps, type SidebarMenuItem, type SidebarNode, type SidebarProps, type SidebarSearch, type SidebarSection, type SidebarSpacer, type SidebarTheme, Text, ThemeButton, type ThemeButtonProps, ThemeProvider, ToastService, ToggleSidebarButton, TypeForm, UiRouter, alephaSidebarAtom, alephaThemeAtom, alephaThemeListAtom, capitalize, defaultTheme, extractSchemaFields, getDefaultIcon, getOperatorsForField, midnightTheme, prettyName, ui, useDialog, useToast };
1262
+ export { $ui, ActionButton, type ActionClickButtonProps, type ActionCommonProps, type ActionMenuConfig, type ActionMenuItem, type ActionNavigationButtonProps, type ActionProps, type ActionSubmitButtonProps, AdminShell, type AdminShellProps, AlephaMantineProvider, AlephaSidebarState, AlephaThemeListAtom, AlephaUI, AlertDialog, type AlertDialogOptions, type AlertDialogProps, AppBar, type AppBarBurger, type AppBarDark, type AppBarDivider, type AppBarElement, type AppBarItem, type AppBarLang, type AppBarProps, type AppBarSearch, type AppBarSpacer, type BaseDialogOptions, BurgerButton, type CheckboxAction, type CheckboxActionContext, ClipboardButton, type ClipboardButtonProps, type ColumnVisibility, ConfirmDialog, type ConfirmDialogOptions, type ConfirmDialogProps, Control, ControlArray, ControlDate, ControlNumber, ControlObject, ControlQueryBuilder, ControlSelect, CurrentAlephaTheme, DarkModeButton, DataTable, type DataTableColumn, type DataTableColumnContext, type DataTableProps, type DataTableSubmitContext, DialogService, type FilterVisibility, Flex, IconSize, LanguageButton, type MaybePage, OPERATOR_INFO, Omnibar, OmnibarButton, PromptDialog, type PromptDialogOptions, type PromptDialogProps, SchemaField, Sidebar, type SidebarAbstractItem, type SidebarButtonTheme, type SidebarDivider, type SidebarElement, type SidebarItemProps, type SidebarMenuItem, type SidebarNode, type SidebarProps, type SidebarSearch, type SidebarSection, type SidebarSpacer, type SidebarTheme, Text, ThemeButton, ThemeProvider, ToastService, ToggleSidebarButton, TypeForm, UiRouter, alephaSidebarAtom, alephaThemeAtom, alephaThemeListAtom, capitalize, defaultTheme, extractSchemaFields, getDefaultIcon, getOperatorsForField, midnightTheme, prettyName, ui, useDialog, useToast };
1271
1263
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/core/atoms/alephaSidebarAtom.ts","../../src/core/atoms/alephaThemeAtom.ts","../../src/core/atoms/alephaThemeListAtom.ts","../../src/core/utils/parseInput.ts","../../src/core/components/form/ControlArray.tsx","../../src/core/components/form/ControlNumber.tsx","../../src/core/components/form/ControlObject.tsx","../../src/core/components/form/ControlSelect.tsx","../../src/core/components/form/Control.tsx","../../src/core/UiRouter.ts","../../src/core/interfaces/AlephaTheme.ts","../../src/core/atoms/themes/default.ts","../../src/core/atoms/themes/midnight.ts","../../src/core/components/buttons/ActionButton.tsx","../../src/core/components/buttons/BurgerButton.tsx","../../src/core/components/buttons/ClipboardButton.tsx","../../src/core/components/buttons/DarkModeButton.tsx","../../src/core/components/buttons/LanguageButton.tsx","../../src/core/components/buttons/OmnibarButton.tsx","../../src/core/components/buttons/ThemeButton.tsx","../../src/core/components/buttons/ToggleSidebarButton.tsx","../../src/core/services/DialogService.tsx","../../src/core/components/dialogs/AlertDialog.tsx","../../src/core/components/dialogs/ConfirmDialog.tsx","../../src/core/components/dialogs/PromptDialog.tsx","../../src/core/components/form/ControlDate.tsx","../../src/core/components/form/ControlQueryBuilder.tsx","../../src/core/components/form/TypeForm.tsx","../../src/core/components/layout/AppBar.tsx","../../src/core/components/layout/Sidebar.tsx","../../src/core/components/layout/AdminShell.tsx","../../src/core/components/layout/Omnibar.tsx","../../src/core/components/layout/AlephaMantineProvider.tsx","../../src/core/components/table/types.ts","../../src/core/components/table/DataTable.tsx","../../src/core/constants/ui.ts","../../src/core/hooks/useDialog.ts","../../src/core/services/ToastService.tsx","../../src/core/hooks/useToast.ts","../../src/core/providers/ThemeProvider.ts","../../src/core/utils/extractSchemaFields.ts","../../src/core/utils/icons.tsx","../../src/core/utils/string.ts","../../src/core/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/core/atoms/alephaSidebarAtom.ts","../../src/core/atoms/alephaThemeAtom.ts","../../src/core/atoms/alephaThemeListAtom.ts","../../src/core/utils/parseInput.ts","../../src/core/components/form/ControlArray.tsx","../../src/core/components/form/ControlNumber.tsx","../../src/core/components/form/ControlObject.tsx","../../src/core/components/form/ControlSelect.tsx","../../src/core/components/form/Control.tsx","../../src/core/UiRouter.ts","../../src/core/interfaces/AlephaTheme.ts","../../src/core/atoms/themes/default.ts","../../src/core/atoms/themes/midnight.ts","../../src/core/components/buttons/ActionButton.tsx","../../src/core/components/buttons/BurgerButton.tsx","../../src/core/components/buttons/ClipboardButton.tsx","../../src/core/components/buttons/DarkModeButton.tsx","../../src/core/components/buttons/LanguageButton.tsx","../../src/core/components/buttons/OmnibarButton.tsx","../../src/core/components/buttons/ThemeButton.tsx","../../src/core/components/buttons/ToggleSidebarButton.tsx","../../src/core/services/DialogService.tsx","../../src/core/components/dialogs/AlertDialog.tsx","../../src/core/components/dialogs/ConfirmDialog.tsx","../../src/core/components/dialogs/PromptDialog.tsx","../../src/core/components/form/ControlDate.tsx","../../src/core/components/form/ControlQueryBuilder.tsx","../../src/core/components/form/TypeForm.tsx","../../src/core/components/layout/AppBar.tsx","../../src/core/components/layout/Sidebar.tsx","../../src/core/components/layout/AdminShell.tsx","../../src/core/components/layout/Omnibar.tsx","../../src/core/components/layout/AlephaMantineProvider.tsx","../../src/core/components/table/types.ts","../../src/core/components/table/DataTable.tsx","../../src/core/constants/ui.ts","../../src/core/hooks/useDialog.ts","../../src/core/services/ToastService.tsx","../../src/core/hooks/useToast.ts","../../src/core/providers/ThemeProvider.ts","../../src/core/utils/extractSchemaFields.ts","../../src/core/utils/icons.tsx","../../src/core/utils/string.ts","../../src/core/index.ts"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { AlephaReactForm, FormValidationError, useForm, useFormState } from "ale
3
3
  import { $head, AlephaReactHead } from "alepha/react/head";
4
4
  import { AlephaReactI18n, useI18n } from "alepha/react/i18n";
5
5
  import { $cookie } from "alepha/server/cookies";
6
- import { ActionIcon, Anchor, AppShell, Autocomplete, Badge, Box, Burger, Button, Card, Checkbox, Collapse, ColorInput, ColorSchemeScript, Container, CopyButton, Divider, Fieldset, FileInput, Flex, Flex as Flex$1, Grid, Group, Image, Input, Kbd, MantineProvider, Menu, MultiSelect, NumberInput, Pagination, PasswordInput, Popover, ScrollArea, SegmentedControl, Select, Slider, Stack, Switch, Table, TagsInput, Text, Text as Text$1, TextInput, Textarea, ThemeIcon, Tooltip, UnstyledButton, useComputedColorScheme, useMantineColorScheme, useMantineTheme } from "@mantine/core";
6
+ import { ActionIcon, Anchor, AppShell, Autocomplete, Badge, Box, Burger, Button, Card, Checkbox, Collapse, ColorInput, ColorSchemeScript, Container, CopyButton, Divider, Fieldset, FileInput, Flex, Flex as Flex$1, Grid, Group, Image, Input, Kbd, MantineProvider, Menu, MultiSelect, NumberInput, Pagination, PasswordInput, Popover, ScrollArea, SegmentedControl, Select, Slider, Stack, Switch, Table, TagsInput, Text, Text as Text$1, TextInput, Textarea, ThemeIcon, Tooltip, UnstyledButton, useMantineColorScheme, useMantineTheme } from "@mantine/core";
7
7
  import { ModalsProvider, modals } from "@mantine/modals";
8
8
  import { IconAlertTriangle, IconArrowDown, IconArrowLeft, IconArrowUp, IconArrowsSort, IconAt, IconCalendar, IconCheck, IconChevronDown, IconChevronRight, IconClock, IconColorPicker, IconColumns, IconCopy, IconFile, IconFilter, IconGripVertical, IconHash, IconInfoCircle, IconInfoTriangle, IconKey, IconLanguage, IconLayoutSidebarLeftCollapse, IconLayoutSidebarRightCollapse, IconLetterCase, IconLink, IconList, IconMail, IconMoon, IconPalette, IconPhone, IconPlus, IconRefresh, IconSearch, IconSelector, IconSquareRounded, IconSun, IconToggleLeft, IconTrash, IconX } from "@tabler/icons-react";
9
9
  import { Children, createElement, isValidElement, useCallback, useEffect, useMemo, useRef, useState } from "react";
@@ -742,8 +742,8 @@ const AlephaMantineProvider = (props) => {
742
742
  "react:transition:end": () => {
743
743
  nprogress.complete();
744
744
  },
745
- "react:action:error": ({ error }) => {
746
- if (error instanceof FormValidationError || error instanceof TypeBoxError) return;
745
+ "react:action:error": ({ error, type }) => {
746
+ if (type === "transition" || error instanceof FormValidationError || error instanceof TypeBoxError) return;
747
747
  toast.danger({
748
748
  title: error.name || "Error",
749
749
  message: error.message ?? "An error occurred while processing your action."
@@ -1045,19 +1045,24 @@ const ActionClickButton = (props) => {
1045
1045
  * Action for navigation with active state support.
1046
1046
  */
1047
1047
  const ActionNavigationButton = (props) => {
1048
- const { active: options, classNameActive, variantActive, routerGoOptions, ...buttonProps } = props;
1048
+ const { active: options, classNameActive, variantActive, routerGoOptions, onClick: propsOnClick, ...buttonProps } = props;
1049
1049
  const router = useRouter();
1050
1050
  const { isPending, isActive } = useActive(options ? {
1051
1051
  href: props.href,
1052
1052
  ...options
1053
1053
  } : { href: props.href });
1054
1054
  const anchorProps = router.anchor(props.href, routerGoOptions);
1055
+ const combinedOnClick = (e) => {
1056
+ propsOnClick?.(e);
1057
+ anchorProps.onClick?.(e);
1058
+ };
1055
1059
  const className = buttonProps.className || "";
1056
1060
  if (isActive && options !== false && classNameActive) buttonProps.className = `${className} ${classNameActive}`.trim();
1057
1061
  if (props.anchorProps) return /* @__PURE__ */ jsx(Anchor, {
1058
1062
  component: "a",
1059
1063
  ...anchorProps,
1060
1064
  ...props.anchorProps,
1065
+ onClick: combinedOnClick,
1061
1066
  children: props.children
1062
1067
  });
1063
1068
  return /* @__PURE__ */ jsx(Button, {
@@ -1065,6 +1070,7 @@ const ActionNavigationButton = (props) => {
1065
1070
  loading: isPending,
1066
1071
  ...buttonProps,
1067
1072
  ...anchorProps,
1073
+ onClick: combinedOnClick,
1068
1074
  variant: isActive && options !== false ? variantActive ?? "filled" : buttonProps.variant ?? "subtle",
1069
1075
  children: props.children
1070
1076
  });
@@ -1120,49 +1126,26 @@ var ClipboardButton_default = ClipboardButton;
1120
1126
 
1121
1127
  //#endregion
1122
1128
  //#region ../../src/core/components/buttons/DarkModeButton.tsx
1129
+ /**
1130
+ * SSR-safe dark mode toggle button.
1131
+ *
1132
+ * Uses CSS-based icon switching to avoid hydration mismatches.
1133
+ * Both icons are rendered, CSS hides the wrong one based on
1134
+ * `data-mantine-color-scheme` attribute.
1135
+ */
1123
1136
  const DarkModeButton = (props) => {
1124
1137
  const { setColorScheme } = useMantineColorScheme();
1125
- const computedColorScheme = useComputedColorScheme("light");
1126
- const [colorScheme, setColorScheme2] = useState("default");
1127
- const mode = props.mode ?? "minimal";
1128
- useEffect(() => {
1129
- setColorScheme2(computedColorScheme);
1130
- }, [computedColorScheme]);
1131
1138
  const toggleColorScheme = () => {
1132
- setColorScheme(computedColorScheme === "dark" ? "light" : "dark");
1139
+ setColorScheme((document.documentElement.getAttribute("data-mantine-color-scheme") ?? "light") === "dark" ? "light" : "dark");
1133
1140
  };
1134
- if (mode === "segmented") return /* @__PURE__ */ jsx(SegmentedControl, {
1135
- value: colorScheme,
1136
- onChange: (value) => setColorScheme(value),
1137
- data: [{
1138
- value: "light",
1139
- label: /* @__PURE__ */ jsx(Flex$1, {
1140
- h: 20,
1141
- align: "center",
1142
- justify: "center",
1143
- children: /* @__PURE__ */ jsx(IconSun, { size: 16 })
1144
- })
1145
- }, {
1146
- value: "dark",
1147
- label: /* @__PURE__ */ jsx(Flex$1, {
1148
- h: 20,
1149
- align: "center",
1150
- justify: "center",
1151
- children: /* @__PURE__ */ jsx(IconMoon, { size: 16 })
1152
- })
1153
- }],
1154
- w: props.fullWidth ? "100%" : void 0,
1155
- ...props.segmentedProps
1156
- });
1157
1141
  return /* @__PURE__ */ jsx(ActionButton_default, {
1158
1142
  onClick: toggleColorScheme,
1159
1143
  variant: props.variant ?? "subtle",
1160
1144
  size: props.size ?? "sm",
1161
1145
  "aria-label": "Toggle color scheme",
1162
1146
  px: "xs",
1163
- fullWidth: props.fullWidth ?? false,
1164
- icon: colorScheme === "dark" ? IconSun : colorScheme === "light" ? IconMoon : IconSun,
1165
- ...props.actionProps
1147
+ icon: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(IconSun, { className: "alepha-light-hidden" }), /* @__PURE__ */ jsx(IconMoon, { className: "alepha-dark-hidden" })] }),
1148
+ ...props
1166
1149
  });
1167
1150
  };
1168
1151
  var DarkModeButton_default = DarkModeButton;
@@ -1179,7 +1162,7 @@ const LanguageButton = (props) => {
1179
1162
  onClick: () => i18n.setLang(lang),
1180
1163
  active: i18n.lang === lang
1181
1164
  })) },
1182
- ...props.actionProps
1165
+ ...props
1183
1166
  });
1184
1167
  };
1185
1168
  var LanguageButton_default = LanguageButton;
@@ -1244,7 +1227,7 @@ const ThemeButton = (props) => {
1244
1227
  onClick: () => setTheme({ index }),
1245
1228
  active: theme.name === it.name
1246
1229
  })) },
1247
- ...props.actionProps
1230
+ ...props
1248
1231
  });
1249
1232
  };
1250
1233
  var ThemeButton_default = ThemeButton;
@@ -2794,6 +2777,9 @@ const Sidebar = (props) => {
2794
2777
  }
2795
2778
  if ("element" in item) return /* @__PURE__ */ jsx(Flex$1, { children: item.element }, key);
2796
2779
  if (item.can && !item.can()) return null;
2780
+ if (item.children && item.children.length > 0) {
2781
+ if (!item.children.some((child) => !child.can || child.can())) return null;
2782
+ }
2797
2783
  if (props.collapsed) return /* @__PURE__ */ jsx(SidebarCollapsedItem, {
2798
2784
  item,
2799
2785
  level: 0,
@@ -3111,6 +3097,10 @@ const AdminShell = (props) => {
3111
3097
  const expandedWidth = Math.max(sidebar.width, collapsedWidth);
3112
3098
  const isExpandedByHover = collapsed && isHovering;
3113
3099
  const effectiveCollapsed = collapsed && !isHovering;
3100
+ const handleSidebarItemClick = useCallback((item) => {
3101
+ if (isExpandedByHover) setIsHovering(false);
3102
+ props.sidebarProps?.onItemClick?.(item);
3103
+ }, [isExpandedByHover, props.sidebarProps?.onItemClick]);
3114
3104
  const hoverWidth = Math.max(defaultWidth, collapsedWidth);
3115
3105
  const sidebarWidth = hasSidebar ? effectiveCollapsed || isExpandedByHover ? collapsedWidth : expandedWidth : 0;
3116
3106
  const canResize = props.sidebarResizable && !collapsed;
@@ -3154,7 +3144,8 @@ const AdminShell = (props) => {
3154
3144
  ...props.appShellNavbarProps,
3155
3145
  children: [/* @__PURE__ */ jsx(Sidebar, {
3156
3146
  ...props.sidebarProps ?? {},
3157
- collapsed: effectiveCollapsed
3147
+ collapsed: effectiveCollapsed,
3148
+ onItemClick: handleSidebarItemClick
3158
3149
  }), (canResize || isExpandedByHover) && /* @__PURE__ */ jsx(Flex$1, {
3159
3150
  pos: "absolute",
3160
3151
  right: -6,
@@ -3880,9 +3871,9 @@ const useDialog = () => {
3880
3871
  //#endregion
3881
3872
  //#region ../../src/core/index.ts
3882
3873
  /**
3883
- * | type | quality | stability |
3884
- * |------|---------|-----------|
3885
- * | frontend | rare | experimental |
3874
+ * | Stability | Since | Runtime |
3875
+ * |-----------|-------|---------|
3876
+ * | 2 - beta | 0.12.0 | node, bun, workerd, browser|
3886
3877
  *
3887
3878
  * Core UI components based on Mantine UI v8.
3888
3879
  *