@dragonmastery/dragoncore-vue 0.0.8 → 0.0.9

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 (108) hide show
  1. package/package.json +4 -13
  2. package/dist/AppLink-CHMMrSFI.js +0 -54
  3. package/dist/AppLink-CHMMrSFI.js.map +0 -1
  4. package/dist/Appearance-BfPdKMXw.js +0 -70
  5. package/dist/Appearance-BfPdKMXw.js.map +0 -1
  6. package/dist/Appearance-C3WguxT-.js +0 -3
  7. package/dist/ChangePasswordPage-DCews8GU.js +0 -86
  8. package/dist/ChangePasswordPage-DCews8GU.js.map +0 -1
  9. package/dist/ChangePasswordPage-Dm5vW0nl.js +0 -6
  10. package/dist/CreateTeamForm-Cg4sD65k.js +0 -27
  11. package/dist/CreateTeamMemberForm-CiG-fCJD.js +0 -27
  12. package/dist/CreateUserPage-B8qeBZij.js +0 -76
  13. package/dist/CreateUserPage-B8qeBZij.js.map +0 -1
  14. package/dist/CreateUserPage-WjYDkwpb.js +0 -6
  15. package/dist/CreditBalanceDashboard-BUdKWieE.js +0 -27
  16. package/dist/CreditManagement-BcyUY_J0.js +0 -27
  17. package/dist/CustomerCreateSupportTicketForm-BplS0xSi.js +0 -27
  18. package/dist/CustomerSupportTicketDetailPage-DZQCplSM.js +0 -717
  19. package/dist/CustomerSupportTicketDetailPage-DZQCplSM.js.map +0 -1
  20. package/dist/CustomerSupportTicketList-DGwy4Wje.js +0 -27
  21. package/dist/CustomerSupportTicketParent-BnmTFigo.js +0 -7
  22. package/dist/CustomerSupportTicketParent-BzY4pmBk.js +0 -66
  23. package/dist/CustomerSupportTicketParent-BzY4pmBk.js.map +0 -1
  24. package/dist/CustomerSupportTicketSuccess-DC1jJG1E.js +0 -27
  25. package/dist/EditTeamForm-BnPwhv5B.js +0 -27
  26. package/dist/EditTeamMemberForm-B8-pI6Xm.js +0 -6
  27. package/dist/EditTeamMemberForm-CKbKomrL.js +0 -191
  28. package/dist/EditTeamMemberForm-CKbKomrL.js.map +0 -1
  29. package/dist/EditUserPage-BG-Fkx_c.js +0 -7
  30. package/dist/EditUserPage-XqF25iwz.js +0 -112
  31. package/dist/EditUserPage-XqF25iwz.js.map +0 -1
  32. package/dist/ForgotPassword-CjWv2V7p.js +0 -7
  33. package/dist/ForgotPassword-D3bjL48L.js +0 -73
  34. package/dist/ForgotPassword-D3bjL48L.js.map +0 -1
  35. package/dist/LoginForm--br4Il85.js +0 -7
  36. package/dist/LoginForm-C85U2E2r.js +0 -116
  37. package/dist/LoginForm-C85U2E2r.js.map +0 -1
  38. package/dist/Logout-DHT-5Qz3.js +0 -6
  39. package/dist/Logout-DZuWLh0O.js +0 -38
  40. package/dist/Logout-DZuWLh0O.js.map +0 -1
  41. package/dist/ResetPassword-M6mvTS24.js +0 -27
  42. package/dist/SavedFiltersPage-D3vJrfzt.js +0 -419
  43. package/dist/SavedFiltersPage-D3vJrfzt.js.map +0 -1
  44. package/dist/Signup-VZa7U-Ur.js +0 -7
  45. package/dist/Signup-hpV8J5cM.js +0 -106
  46. package/dist/Signup-hpV8J5cM.js.map +0 -1
  47. package/dist/StaffCreateSupportTicketForm-Bc7UnK0Q.js +0 -27
  48. package/dist/StaffSupportTicketDetailPage-DY07Ez0R.js +0 -1928
  49. package/dist/StaffSupportTicketDetailPage-DY07Ez0R.js.map +0 -1
  50. package/dist/StaffSupportTicketList-ChJP_67k.js +0 -27
  51. package/dist/StaffSupportTicketParent-CWWhaM37.js +0 -66
  52. package/dist/StaffSupportTicketParent-CWWhaM37.js.map +0 -1
  53. package/dist/StaffSupportTicketParent-Dp1G85wc.js +0 -7
  54. package/dist/StaffSupportTicketSuccess-B6X_dP4f.js +0 -27
  55. package/dist/SupportStaffPage-nd0HowtH.js +0 -156
  56. package/dist/SupportStaffPage-nd0HowtH.js.map +0 -1
  57. package/dist/SupportTicketDevLifecycleBadge-Ba-Rm6QW.js +0 -116
  58. package/dist/SupportTicketDevLifecycleBadge-Ba-Rm6QW.js.map +0 -1
  59. package/dist/SupportTicketMaintenancePage-rcJ7EfDj.js +0 -56
  60. package/dist/SupportTicketMaintenancePage-rcJ7EfDj.js.map +0 -1
  61. package/dist/TeamAttachmentsTab-Dk_Bnk-1.js +0 -27
  62. package/dist/TeamHistoryTab-CNelXR3Q.js +0 -232
  63. package/dist/TeamHistoryTab-CNelXR3Q.js.map +0 -1
  64. package/dist/TeamHistoryTab-siesF93u.js +0 -4
  65. package/dist/TeamList-BtLzbjls.js +0 -27
  66. package/dist/TeamMemberList-EoDXIr0w.js +0 -27
  67. package/dist/TeamMemberParent-DZ5YVyi6.js +0 -27
  68. package/dist/TeamMembersTab-4gmnP9sD.js +0 -21
  69. package/dist/TeamMembersTab-4gmnP9sD.js.map +0 -1
  70. package/dist/TeamMembersTab-DTJxmb-M.js +0 -3
  71. package/dist/TeamNotesTab-BhVRLG8h.js +0 -458
  72. package/dist/TeamNotesTab-BhVRLG8h.js.map +0 -1
  73. package/dist/TeamNotesTab-Crp-afAe.js +0 -7
  74. package/dist/TeamParent-CbrXXzAr.js +0 -27
  75. package/dist/TimelineNoteInput-BVqF4MtZ.js +0 -513
  76. package/dist/TimelineNoteInput-BVqF4MtZ.js.map +0 -1
  77. package/dist/TimelineSystemEvent-D58zN850.js +0 -1897
  78. package/dist/TimelineSystemEvent-D58zN850.js.map +0 -1
  79. package/dist/UserListPage-D68AjrjM.js +0 -4
  80. package/dist/UserListPage-OGYOLwlw.js +0 -153
  81. package/dist/UserListPage-OGYOLwlw.js.map +0 -1
  82. package/dist/UserProfilePage-Q68NAGQQ.js +0 -7
  83. package/dist/UserProfilePage-uAIfC_NW.js +0 -125
  84. package/dist/UserProfilePage-uAIfC_NW.js.map +0 -1
  85. package/dist/ViewTeam-DpE_NfRq.js +0 -27
  86. package/dist/ViewTeamMember-BdBwkuXC.js +0 -27
  87. package/dist/convertToLocalDateTime-DOSGtMn8.js +0 -121
  88. package/dist/convertToLocalDateTime-DOSGtMn8.js.map +0 -1
  89. package/dist/displayIdFormatter-B1ZKgofu.js +0 -13
  90. package/dist/displayIdFormatter-B1ZKgofu.js.map +0 -1
  91. package/dist/extractRpcErrorMessage-C_UbKgHL.js +0 -20
  92. package/dist/extractRpcErrorMessage-C_UbKgHL.js.map +0 -1
  93. package/dist/index.d.ts +0 -6366
  94. package/dist/index.js +0 -30
  95. package/dist/src-CEBiyg_f.css +0 -13
  96. package/dist/src-CEBiyg_f.css.map +0 -1
  97. package/dist/src-CHw8DdkR.js +0 -9200
  98. package/dist/src-CHw8DdkR.js.map +0 -1
  99. package/dist/useBreadcrumbs-DmgSucoe.js +0 -41
  100. package/dist/useBreadcrumbs-DmgSucoe.js.map +0 -1
  101. package/dist/useMutation-B4_S4Xoa.js +0 -50
  102. package/dist/useMutation-B4_S4Xoa.js.map +0 -1
  103. package/dist/useQuery-B7ndu5_P.js +0 -107
  104. package/dist/useQuery-B7ndu5_P.js.map +0 -1
  105. package/dist/useQueryCache-DqcDMsxb.js +0 -254
  106. package/dist/useQueryCache-DqcDMsxb.js.map +0 -1
  107. package/dist/useRpcAuth-Dp2sec-X.js +0 -731
  108. package/dist/useRpcAuth-Dp2sec-X.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditUserPage-XqF25iwz.js","names":[],"sources":["../src/slices/admin/features/user_management/updateUserMetadata.ts","../src/slices/admin/features/user_management/EditUserPage.vue"],"sourcesContent":["import { withMetadata } from '@dragonmastery/zinia-forms-core';\nimport { UserUpdateSchema } from '@dragonmastery/dragoncore-shared';\n\nexport const updateUserSchemaWithMetadata = withMetadata(\n UserUpdateSchema,\n 'updateUserSchema',\n {\n user_type: {\n label: 'User Role',\n helpText: 'Select the role for this user',\n },\n },\n);\n","<template>\n <div class=\"max-w-2xl mx-auto bg-base-200 p-6 rounded-xl shadow-md container\">\n <h1 class=\"text-2xl font-bold mb-6 text-center\">Edit User</h1>\n\n <!-- Loading State -->\n <div v-if=\"fetching\" class=\"flex justify-center py-8\">\n <span class=\"loading loading-spinner loading-lg\"></span>\n </div>\n\n <!-- Error State -->\n <div v-else-if=\"error\" class=\"alert alert-error mb-4\">\n <span>Error loading user: {{ error.message }}</span>\n </div>\n\n <!-- Edit Form -->\n <div v-else-if=\"userData\">\n <!-- Read-only user info -->\n <div class=\"card bg-base-100 shadow-xl mb-6\">\n <div class=\"card-body\">\n <h2 class=\"card-title\">User Information</h2>\n <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <div>\n <label class=\"label\">\n <span class=\"label-text font-semibold\">Username</span>\n </label>\n <div class=\"input input-bordered bg-base-200\">\n {{ userData.username }}\n </div>\n </div>\n <div>\n <label class=\"label\">\n <span class=\"label-text font-semibold\">Email</span>\n </label>\n <div class=\"input input-bordered bg-base-200\">\n {{ userData.email }}\n </div>\n </div>\n <div>\n <label class=\"label\">\n <span class=\"label-text font-semibold\">Email Verified</span>\n </label>\n <div class=\"flex items-center\">\n <span\n class=\"badge\"\n :class=\"userData.email_verified ? 'badge-success' : 'badge-error'\"\n >\n {{ userData.email_verified ? 'Verified' : 'Not Verified' }}\n </span>\n </div>\n </div>\n <div>\n <label class=\"label\">\n <span class=\"label-text font-semibold\">Created</span>\n </label>\n <div class=\"input input-bordered bg-base-200\">\n {{ formatSystemTimestamp(userData.created_at) }}\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Editable role -->\n <ZiniaForm\n @handle-submit=\"handleSubmit\"\n @success=\"handleSuccess\"\n @error=\"handleError\"\n title=\"Update User Role\"\n subtitle=\"Change the user's role in the system\"\n >\n <zinia.UserTypeField />\n\n <div v-if=\"form.submitError\" class=\"alert alert-error mb-4\">\n <span>{{ form.submitError }}</span>\n </div>\n\n <div class=\"flex justify-center mt-6\">\n <ZiniaSubmitButton submitText=\"Update Role\" submittingText=\"Updating...\" />\n </div>\n\n <ZiniaFormErrorsSummary title=\"Please fix the following errors:\" />\n <ZiniaResetButton />\n </ZiniaForm>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useMutation } from '../../../../composables/useMutation';\nimport { useQuery } from '../../../../composables/useQuery';\nimport { formatSystemTimestamp } from '../../../../utils/convertToLocalDateTime';\nimport { useForm } from '@dragonmastery/zinia-forms-core';\nimport type { UserUpdateDto } from '@dragonmastery/dragoncore-shared';\nimport { ref } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { toast } from 'vue3-toastify';\nimport { updateUserSchemaWithMetadata } from './updateUserMetadata';\n\nconst route = useRoute();\nconst router = useRouter();\nconst userId = route.params.id as string;\n\n// Fetch user data\nconst {\n data,\n loading: fetching,\n error,\n} = useQuery((api) => api.users.getUser(userId), {\n staleTime: 5 * 60 * 1000,\n});\n\nconst userData = ref<any | null>(null);\n\n// Create form with user data\nconst { form, zinia, ZiniaForm, ZiniaSubmitButton, ZiniaResetButton, ZiniaFormErrorsSummary } =\n useForm(updateUserSchemaWithMetadata, {\n storeName: `edit-user-form-${userId}`,\n persistToLocalStorage: false,\n renderStyle: 'daisy_ui',\n fetchData: async () => {\n while (fetching.value) {\n await new Promise((resolve) => setTimeout(resolve, 100));\n }\n\n if (!data.value) {\n throw new Error('User not found');\n }\n\n userData.value = data.value;\n return {\n id: data.value?.id,\n user_type: data.value?.user_type,\n } satisfies UserUpdateDto;\n },\n });\n\nconst { mutate: updateUser } = useMutation(\n (api, formData: UserUpdateDto) => api.users.updateUser(formData),\n { invalidate: /^users?:/ },\n);\n\nconst handleSubmit = async (formData: UserUpdateDto) => {\n const result = await updateUser(formData);\n if (!result) throw new Error('Failed to update user');\n return result;\n};\n\nconst handleSuccess = async (_result: any) => {\n await router.push({ name: 'UserManagement' });\n toast.success('User role updated successfully!');\n};\n\nconst handleError = (error: Error | unknown) => {\n form.setSubmitError(error instanceof Error ? error.message : 'An unknown error occurred');\n};\n</script>\n"],"mappings":";;;;;;;;;;AAGA,MAAa,+BAA+B,aAC1C,kBACA,oBACA,EACE,WAAW;CACT,OAAO;CACP,UAAU;CACX,EACF,CACF;;;;;;;;;;;;;;;;;;;;;;;;;ECsFD,MAAM,QAAQ,UAAU;EACxB,MAAM,SAAS,WAAW;EAC1B,MAAM,SAAS,MAAM,OAAO;EAG5B,MAAM,EACJ,MACA,SAAS,UACT,UACE,UAAU,QAAQ,IAAI,MAAM,QAAQ,OAAO,EAAE,EAC/C,WAAW,MAAS,KACrB,CAAC;EAEF,MAAM,WAAW,IAAgB,KAAK;EAGtC,MAAM,EAAE,MAAM,OAAO,WAAW,mBAAmB,kBAAkB,2BACnE,QAAQ,8BAA8B;GACpC,WAAW,kBAAkB;GAC7B,uBAAuB;GACvB,aAAa;GACb,WAAW,YAAY;AACrB,WAAO,SAAS,MACd,OAAM,IAAI,SAAS,YAAY,WAAW,SAAS,IAAI,CAAC;AAG1D,QAAI,CAAC,KAAK,MACR,OAAM,IAAI,MAAM,iBAAiB;AAGnC,aAAS,QAAQ,KAAK;AACtB,WAAO;KACL,IAAI,KAAK,OAAO;KAChB,WAAW,KAAK,OAAO;KACxB;;GAEJ,CAAC;EAEJ,MAAM,EAAE,QAAQ,eAAe,aAC5B,KAAK,aAA4B,IAAI,MAAM,WAAW,SAAS,EAChE,EAAE,YAAY,YAAY,CAC3B;EAED,MAAM,eAAe,OAAO,aAA4B;GACtD,MAAM,SAAS,MAAM,WAAW,SAAS;AACzC,OAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,wBAAwB;AACrD,UAAO;;EAGT,MAAM,gBAAgB,OAAO,YAAiB;AAC5C,SAAM,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC7C,SAAM,QAAQ,kCAAkC;;EAGlD,MAAM,eAAe,YAA2B;AAC9C,QAAK,eAAe,mBAAiB,QAAQ,QAAM,UAAU,4BAA4B;;;uBAxJzF,mBAmFM,OAnFN,YAmFM;8BAlFJ,mBAA8D,MAAA,EAA1D,OAAM,uCAAqC,EAAC,aAAS,GAAA;IAEzD,mBAAA,kBAAsB;IACX,MAAA,SAAQ,IAAA,WAAA,EAAnB,mBAEM,OAFN,YAEM,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CADJ,mBAAwD,QAAA,EAAlD,OAAM,sCAAoC,EAAA,MAAA,GAAA,CAAA,EAAA,CAAA,IAIlC,MAAA,MAAK,IAAA,WAAA,EAArB,mBAEM,UAAA,EAAA,KAAA,GAAA,EAAA,CAHN,mBAAA,gBAAoB,EACpB,mBAEM,OAFN,YAEM,CADJ,mBAAoD,QAAA,MAA9C,yBAAoB,gBAAG,MAAA,MAAK,CAAC,QAAO,EAAA,EAAA,CAAA,CAAA,CAAA,WAI5B,SAAA,SAAA,WAAA,EAAhB,mBAoEM,UAAA,EAAA,KAAA,GAAA,EAAA,CArEN,mBAAA,cAAkB,EAClB,mBAoEM,OAAA,MAAA;KAnEJ,mBAAA,wBAA4B;KAC5B,mBA2CM,OA3CN,YA2CM,CA1CJ,mBAyCM,OAzCN,YAyCM,CAAA,OAAA,OAAA,OAAA,KAxCJ,mBAA4C,MAAA,EAAxC,OAAM,cAAY,EAAC,oBAAgB,GAAA,GACvC,mBAsCM,OAtCN,YAsCM;MArCJ,mBAOM,OAAA,MAAA,CAAA,OAAA,OAAA,OAAA,KANJ,mBAEQ,SAAA,EAFD,OAAM,SAAO,EAAA,CAClB,mBAAsD,QAAA,EAAhD,OAAM,4BAA0B,EAAC,WAAQ,CAAA,QAEjD,mBAEM,OAFN,YAEM,gBADD,SAAA,MAAS,SAAQ,EAAA,EAAA,CAAA,CAAA;MAGxB,mBAOM,OAAA,MAAA,CAAA,OAAA,OAAA,OAAA,KANJ,mBAEQ,SAAA,EAFD,OAAM,SAAO,EAAA,CAClB,mBAAmD,QAAA,EAA7C,OAAM,4BAA0B,EAAC,QAAK,CAAA,QAE9C,mBAEM,OAFN,YAEM,gBADD,SAAA,MAAS,MAAK,EAAA,EAAA,CAAA,CAAA;MAGrB,mBAYM,OAAA,MAAA,CAAA,OAAA,OAAA,OAAA,KAXJ,mBAEQ,SAAA,EAFD,OAAM,SAAO,EAAA,CAClB,mBAA4D,QAAA,EAAtD,OAAM,4BAA0B,EAAC,iBAAc,CAAA,QAEvD,mBAOM,OAPN,YAOM,CANJ,mBAKO,QAAA,EAJL,OAAK,eAAA,CAAC,SACE,SAAA,MAAS,iBAAc,kBAAA,cAAA,CAAA,EAAA,kBAE5B,SAAA,MAAS,iBAAc,aAAA,eAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;MAIhC,mBAOM,OAAA,MAAA,CAAA,OAAA,OAAA,OAAA,KANJ,mBAEQ,SAAA,EAFD,OAAM,SAAO,EAAA,CAClB,mBAAqD,QAAA,EAA/C,OAAM,4BAA0B,EAAC,UAAO,CAAA,QAEhD,mBAEM,OAFN,aAEM,gBADD,MAAA,sBAAqB,CAAC,SAAA,MAAS,WAAU,CAAA,EAAA,EAAA,CAAA,CAAA;;KAOtD,mBAAA,kBAAsB;KACtB,YAmBY,MAAA,UAAA,EAAA;MAlBT,gBAAe;MACf,WAAS;MACT,SAAO;MACR,OAAM;MACN,UAAS;;6BAEc;OAAvB,YAAuB,MAAA,MAAA,CAAA,cAAA;OAEZ,MAAA,KAAI,CAAC,eAAA,WAAA,EAAhB,mBAEM,OAFN,aAEM,CADJ,mBAAmC,QAAA,MAAA,gBAA1B,MAAA,KAAI,CAAC,YAAW,EAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,QAAA,KAAA;OAG3B,mBAEM,OAFN,aAEM,CADJ,YAA2E,MAAA,kBAAA,EAAA;QAAxD,YAAW;QAAc,gBAAe;;OAG7D,YAAmE,MAAA,uBAAA,EAAA,EAA3C,OAAM,oCAAkC,CAAA;OAChE,YAAoB,MAAA,iBAAA,CAAA"}
@@ -1,7 +0,0 @@
1
- import "./useRpcAuth-Dp2sec-X.js";
2
- import "./useQueryCache-DqcDMsxb.js";
3
- import "./useMutation-B4_S4Xoa.js";
4
- import "./AppLink-CHMMrSFI.js";
5
- import { t as ForgotPassword_default } from "./ForgotPassword-D3bjL48L.js";
6
-
7
- export { ForgotPassword_default as default };
@@ -1,73 +0,0 @@
1
- import { t as useMutation } from "./useMutation-B4_S4Xoa.js";
2
- import { t as AppLink_default } from "./AppLink-CHMMrSFI.js";
3
- import { createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, unref, withCtx } from "vue";
4
- import { forgot_password_zod } from "@dragonmastery/dragoncore-shared";
5
- import { useForm, withMetadata } from "@dragonmastery/zinia-forms-core";
6
- import { toast } from "vue3-toastify";
7
-
8
- //#region src/slices/auth/features/forgot_password/forgot_password_schema.ts
9
- const forgotPasswordSchemaWithMetadata = withMetadata(forgot_password_zod, "forgotPasswordSchema", { email: {
10
- inputType: "email",
11
- placeholder: "you@example.com",
12
- helpText: "Enter the email address you used to register",
13
- autocomplete: "username",
14
- className: "login-field",
15
- autofocus: true
16
- } });
17
-
18
- //#endregion
19
- //#region src/slices/auth/features/forgot_password/ForgotPassword.vue
20
- const _hoisted_1 = { class: "max-w-md mx-auto bg-base-200 p-6 rounded-xl shadow-md container" };
21
- const _hoisted_2 = { class: "text-center mt-2" };
22
- const _sfc_main = /* @__PURE__ */ defineComponent({
23
- __name: "ForgotPassword",
24
- setup(__props) {
25
- const { form, zinia, ZiniaForm, ZiniaSubmitButton } = useForm(forgotPasswordSchemaWithMetadata, {
26
- storeName: "forgot-password-form",
27
- persistToLocalStorage: false,
28
- renderStyle: "daisy_ui"
29
- });
30
- const { mutate: forgotPasswordMutate } = useMutation((api, email) => api.passwordReset.forgotPassword(email), { skipAuthCheck: true });
31
- const handleSubmit = async (data) => {
32
- const result = await forgotPasswordMutate(data.email);
33
- if (!result?.ok) throw new Error("Forgot password failed");
34
- return result.ok;
35
- };
36
- const handleSuccess = async (_data) => {
37
- form.reset();
38
- toast.success("If the email address exists, an email has been sent to your email address with instructions to reset your password.");
39
- };
40
- const handleError = (error) => {
41
- console.log("Forgot password failed", error);
42
- toast.error(error.message || "Forgot password failed");
43
- };
44
- return (_ctx, _cache) => {
45
- return openBlock(), createElementBlock("div", _hoisted_1, [_cache[2] || (_cache[2] = createElementVNode("h1", { class: "text-2xl font-bold mb-6 text-center" }, "Forgot Password", -1)), createVNode(unref(ZiniaForm), {
46
- onHandleSubmit: handleSubmit,
47
- onSuccess: handleSuccess,
48
- onError: handleError
49
- }, {
50
- default: withCtx(() => [
51
- createVNode(unref(zinia).EmailField),
52
- createVNode(unref(ZiniaSubmitButton), {
53
- submitText: "Send Reset Password Email",
54
- submittingText: "Sending..."
55
- }),
56
- createElementVNode("div", _hoisted_2, [createElementVNode("p", null, [_cache[1] || (_cache[1] = createTextVNode(" Already have an account? ", -1)), createVNode(AppLink_default, {
57
- class: "link-accent link",
58
- to: "/auth/login"
59
- }, {
60
- default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode("Login", -1)])]),
61
- _: 1
62
- })])])
63
- ]),
64
- _: 1
65
- })]);
66
- };
67
- }
68
- });
69
- var ForgotPassword_default = _sfc_main;
70
-
71
- //#endregion
72
- export { forgotPasswordSchemaWithMetadata as n, ForgotPassword_default as t };
73
- //# sourceMappingURL=ForgotPassword-D3bjL48L.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ForgotPassword-D3bjL48L.js","names":[],"sources":["../src/slices/auth/features/forgot_password/forgot_password_schema.ts","../src/slices/auth/features/forgot_password/ForgotPassword.vue"],"sourcesContent":["import { withMetadata } from '@dragonmastery/zinia-forms-core';\nimport { forgot_password_zod } from '@dragonmastery/dragoncore-shared';\nimport { z } from 'zod';\n\n// Define the login form type\nexport type ForgotPasswordForm = z.infer<typeof forgot_password_zod>;\n\n// Enhance the schema with metadata\nexport const forgotPasswordSchemaWithMetadata = withMetadata(\n forgot_password_zod,\n 'forgotPasswordSchema',\n {\n email: {\n inputType: 'email',\n placeholder: 'you@example.com',\n helpText: 'Enter the email address you used to register',\n autocomplete: 'username',\n className: 'login-field',\n autofocus: true,\n },\n },\n);\n","<template>\n <div class=\"max-w-md mx-auto bg-base-200 p-6 rounded-xl shadow-md container\">\n <h1 class=\"text-2xl font-bold mb-6 text-center\">Forgot Password</h1>\n\n <ZiniaForm @handle-submit=\"handleSubmit\" @success=\"handleSuccess\" @error=\"handleError\">\n <zinia.EmailField />\n\n <ZiniaSubmitButton submitText=\"Send Reset Password Email\" submittingText=\"Sending...\" />\n\n <div class=\"text-center mt-2\">\n <p>\n Already have an account?\n <AppLink class=\"link-accent link\" to=\"/auth/login\">Login</AppLink>\n </p>\n </div>\n </ZiniaForm>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppLink from '../../../../components/AppLink.vue';\nimport { useMutation } from '../../../../composables/useMutation';\nimport { useForm } from '@dragonmastery/zinia-forms-core';\nimport { toast } from 'vue3-toastify';\nimport { z } from 'zod';\nimport { forgotPasswordSchemaWithMetadata } from './forgot_password_schema';\n\nconst { form, zinia, ZiniaForm, ZiniaSubmitButton } = useForm(\n forgotPasswordSchemaWithMetadata,\n {\n storeName: 'forgot-password-form',\n persistToLocalStorage: false,\n renderStyle: 'daisy_ui',\n },\n);\n\nconst { mutate: forgotPasswordMutate } = useMutation(\n (api, email: string) => api.passwordReset.forgotPassword(email),\n {\n skipAuthCheck: true, // Forgot password should work without authentication\n },\n);\n\n// Handle form submission\nconst handleSubmit = async (data: z.infer<typeof forgotPasswordSchemaWithMetadata>) => {\n const result = await forgotPasswordMutate(data.email);\n if (!result?.ok) throw new Error('Forgot password failed');\n return result.ok;\n};\n\n// Handle success\nconst handleSuccess = async (_data: boolean) => {\n form.reset();\n toast.success(\n 'If the email address exists, an email has been sent to your email address with instructions to reset your password.',\n );\n};\n\n// Handle error\nconst handleError = (error: any) => {\n console.log('Forgot password failed', error);\n toast.error(error.message || 'Forgot password failed');\n};\n</script>\n"],"mappings":";;;;;;;;AAQA,MAAa,mCAAmC,aAC9C,qBACA,wBACA,EACE,OAAO;CACL,WAAW;CACX,aAAa;CACb,UAAU;CACV,cAAc;CACd,WAAW;CACX,WAAW;CACZ,EACF,CACF;;;;;;;;;ECMD,MAAM,EAAE,MAAM,OAAO,WAAW,sBAAsB,QACpD,kCACA;GACE,WAAW;GACX,uBAAuB;GACvB,aAAa;GACd,CACF;EAED,MAAM,EAAE,QAAQ,yBAAyB,aACtC,KAAK,UAAkB,IAAI,cAAc,eAAe,MAAM,EAC/D,EACE,eAAe,MAChB,CACF;EAGD,MAAM,eAAe,OAAO,SAA2D;GACrF,MAAM,SAAS,MAAM,qBAAqB,KAAK,MAAM;AACrD,OAAI,CAAC,QAAQ,GAAI,OAAM,IAAI,MAAM,yBAAyB;AAC1D,UAAO,OAAO;;EAIhB,MAAM,gBAAgB,OAAO,UAAmB;AAC9C,QAAK,OAAO;AACZ,SAAM,QACJ,sHACD;;EAIH,MAAM,eAAe,UAAe;AAClC,WAAQ,IAAI,0BAA0B,MAAM;AAC5C,SAAM,MAAM,MAAM,WAAW,yBAAyB;;;uBA5DtD,mBAeM,OAfN,YAeM,CAAA,OAAA,OAAA,OAAA,KAdJ,mBAAoE,MAAA,EAAhE,OAAM,uCAAqC,EAAC,mBAAe,GAAA,GAE/D,YAWY,MAAA,UAAA,EAAA;IAXA,gBAAe;IAAe,WAAS;IAAgB,SAAO;;2BACpD;KAApB,YAAoB,MAAA,MAAA,CAAA,WAAA;KAEpB,YAAwF,MAAA,kBAAA,EAAA;MAArE,YAAW;MAA4B,gBAAe;;KAEzE,mBAKM,OALN,YAKM,CAJJ,mBAGI,KAAA,MAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBAHD,8BAED,GAAA,GAAA,YAAkE,iBAAA;MAAzD,OAAM;MAAmB,IAAG;;6BAAmB,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAAA,gBAAL,SAAK,GAAA,CAAA,EAAA,CAAA"}
@@ -1,7 +0,0 @@
1
- import "./useRpcAuth-Dp2sec-X.js";
2
- import "./useQueryCache-DqcDMsxb.js";
3
- import "./useMutation-B4_S4Xoa.js";
4
- import "./AppLink-CHMMrSFI.js";
5
- import { t as LoginForm_default } from "./LoginForm-C85U2E2r.js";
6
-
7
- export { LoginForm_default as default };
@@ -1,116 +0,0 @@
1
- import { l as useUserSessionStore, m as useEnv } from "./useRpcAuth-Dp2sec-X.js";
2
- import { t as useMutation } from "./useMutation-B4_S4Xoa.js";
3
- import { t as AppLink_default } from "./AppLink-CHMMrSFI.js";
4
- import { createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, unref, withCtx } from "vue";
5
- import { useRouter } from "vue-router";
6
- import { loginSchema } from "@dragonmastery/dragoncore-shared";
7
- import { useForm, withMetadata } from "@dragonmastery/zinia-forms-core";
8
- import { toast } from "vue3-toastify";
9
-
10
- //#region src/slices/auth/features/login/loginSchema.ts
11
- const loginSchemaWithMetadata = withMetadata(loginSchema, "loginSchema", {
12
- email: {
13
- inputType: "email",
14
- placeholder: "you@example.com",
15
- helpText: "Enter the email address you used to register",
16
- autocomplete: "username",
17
- className: "login-field",
18
- autofocus: true
19
- },
20
- password: {
21
- inputType: "password",
22
- placeholder: "••••••••",
23
- helpText: "Must be at least 8 characters",
24
- autocomplete: "current-password",
25
- className: "login-field"
26
- }
27
- });
28
-
29
- //#endregion
30
- //#region src/slices/auth/features/login/LoginForm.vue
31
- const _hoisted_1 = { class: "max-w-md mx-auto bg-base-200 p-6 rounded-xl shadow-md container" };
32
- const _hoisted_2 = { class: "mt-2" };
33
- const _hoisted_3 = {
34
- key: 0,
35
- class: "text-center mt-2"
36
- };
37
- const _sfc_main = /* @__PURE__ */ defineComponent({
38
- __name: "LoginForm",
39
- setup(__props) {
40
- const { allowUserSignup } = useEnv();
41
- const { form, zinia, ZiniaForm, ZiniaSubmitButton } = useForm(loginSchemaWithMetadata, {
42
- storeName: "login-form",
43
- persistToLocalStorage: false,
44
- renderStyle: "daisy_ui"
45
- });
46
- const sessionStore = useUserSessionStore();
47
- const router = useRouter();
48
- const { mutate: loginMutate } = useMutation((api, input) => api.userSessions.login(input), { credentials: "include" });
49
- const handleSubmit = async (data) => {
50
- const loginData = await loginMutate(data);
51
- if (!loginData) throw new Error("Login failed");
52
- const { access_token, user_details_token } = loginData;
53
- if (!access_token || !user_details_token) throw new Error("Invalid login response");
54
- return loginData;
55
- };
56
- const handleSuccess = async (data) => {
57
- sessionStore.setSession(data.user_details_token);
58
- sessionStore.setAccessToken(data.access_token);
59
- form.reset();
60
- const returnUrl = router.currentRoute.value.query.returnUrl;
61
- let targetPath = "/";
62
- if (returnUrl) if (returnUrl.startsWith("/") && !returnUrl.startsWith("/auth/")) {
63
- targetPath = returnUrl;
64
- console.log(`[Login] Redirecting to original destination: ${returnUrl}`);
65
- } else console.warn(`[Login] Invalid return URL detected: ${returnUrl}`);
66
- await router.push(targetPath);
67
- toast.success("You are now logged in!");
68
- };
69
- const handleError = (error) => {
70
- toast.error(error.message || "Login failed");
71
- };
72
- return (_ctx, _cache) => {
73
- return openBlock(), createElementBlock("div", _hoisted_1, [
74
- _cache[3] || (_cache[3] = createElementVNode("h1", { class: "text-2xl font-bold mb-6 text-center" }, "Login", -1)),
75
- createVNode(unref(ZiniaForm), {
76
- onHandleSubmit: handleSubmit,
77
- onSuccess: handleSuccess,
78
- onError: handleError
79
- }, {
80
- default: withCtx(() => [
81
- createVNode(unref(zinia).EmailField),
82
- createVNode(unref(zinia).PasswordField),
83
- createVNode(unref(ZiniaSubmitButton), {
84
- submitText: "Login",
85
- submittingText: "Logging in..."
86
- }),
87
- createElementVNode("div", _hoisted_2, [createVNode(AppLink_default, {
88
- to: "/auth/forgot-password",
89
- class: "link-accent link"
90
- }, {
91
- default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode(" Forgot your password? ", -1)])]),
92
- _: 1
93
- })]),
94
- unref(allowUserSignup) ? (openBlock(), createElementBlock("div", _hoisted_3, [createElementVNode("p", null, [_cache[2] || (_cache[2] = createTextVNode(" Don't have an account? ", -1)), createVNode(AppLink_default, {
95
- class: "link-accent link",
96
- to: "/auth/signup"
97
- }, {
98
- default: withCtx(() => [..._cache[1] || (_cache[1] = [createTextVNode("Sign up", -1)])]),
99
- _: 1
100
- })])])) : createCommentVNode("v-if", true)
101
- ]),
102
- _: 1
103
- }),
104
- createCommentVNode(" Divider between login form and social buttons "),
105
- createCommentVNode(" <div class=\"divider my-6\">OR</div> "),
106
- createCommentVNode(" Social Login Buttons Component "),
107
- createCommentVNode(" <SocialLoginButtons @login=\"socialLogin\" /> ")
108
- ]);
109
- };
110
- }
111
- });
112
- var LoginForm_default = _sfc_main;
113
-
114
- //#endregion
115
- export { loginSchemaWithMetadata as n, LoginForm_default as t };
116
- //# sourceMappingURL=LoginForm-C85U2E2r.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoginForm-C85U2E2r.js","names":[],"sources":["../src/slices/auth/features/login/loginSchema.ts","../src/slices/auth/features/login/LoginForm.vue"],"sourcesContent":["import { withMetadata } from '@dragonmastery/zinia-forms-core';\nimport { loginSchema } from '@dragonmastery/dragoncore-shared';\nimport { z } from 'zod';\n\n// Define the login form type\nexport type LoginForm = z.infer<typeof loginSchema>;\n\n// Enhance the schema with metadata\nexport const loginSchemaWithMetadata = withMetadata(loginSchema, 'loginSchema', {\n email: {\n inputType: 'email',\n placeholder: 'you@example.com',\n helpText: 'Enter the email address you used to register',\n autocomplete: 'username',\n className: 'login-field',\n autofocus: true,\n },\n\n password: {\n inputType: 'password',\n placeholder: '••••••••',\n helpText: 'Must be at least 8 characters',\n autocomplete: 'current-password',\n className: 'login-field',\n },\n});\n","<template>\n <div class=\"max-w-md mx-auto bg-base-200 p-6 rounded-xl shadow-md container\">\n <h1 class=\"text-2xl font-bold mb-6 text-center\">Login</h1>\n\n <ZiniaForm @handle-submit=\"handleSubmit\" @success=\"handleSuccess\" @error=\"handleError\">\n <zinia.EmailField />\n <zinia.PasswordField />\n\n <ZiniaSubmitButton submitText=\"Login\" submittingText=\"Logging in...\" />\n\n <div class=\"mt-2\">\n <AppLink to=\"/auth/forgot-password\" class=\"link-accent link\">\n Forgot your password?\n </AppLink>\n </div>\n <div v-if=\"allowUserSignup\" class=\"text-center mt-2\">\n <p>\n Don't have an account?\n <AppLink class=\"link-accent link\" to=\"/auth/signup\">Sign up</AppLink>\n </p>\n </div>\n </ZiniaForm>\n\n <!-- Divider between login form and social buttons -->\n <!-- <div class=\"divider my-6\">OR</div> -->\n\n <!-- Social Login Buttons Component -->\n <!-- <SocialLoginButtons @login=\"socialLogin\" /> -->\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppLink from '../../../../components/AppLink.vue';\nimport { useMutation } from '../../../../composables/useMutation';\nimport { useEnv } from '../../../../composables/useEnv';\nimport { useUserSessionStore } from '../../../../composables/useUserSessionStore';\nimport { useForm } from '@dragonmastery/zinia-forms-core';\nimport { useRouter } from 'vue-router';\nimport { toast } from 'vue3-toastify';\nimport { z } from 'zod';\nimport { loginSchemaWithMetadata } from './loginSchema';\n\nconst { allowUserSignup } = useEnv();\n\n// Create a type-safe form using our schema with metadata\nconst { form, zinia, ZiniaForm, ZiniaSubmitButton } = useForm(loginSchemaWithMetadata, {\n storeName: 'login-form',\n persistToLocalStorage: false,\n renderStyle: 'daisy_ui',\n});\n\nconst sessionStore = useUserSessionStore();\nconst router = useRouter();\nconst { mutate: loginMutate } = useMutation(\n (api, input: z.infer<typeof loginSchemaWithMetadata>) => api.userSessions.login(input),\n { credentials: 'include' }, // Include credentials to allow cookies\n);\n\n// Handle form submission\nconst handleSubmit = async (data: z.infer<typeof loginSchemaWithMetadata>) => {\n const loginData = await loginMutate(data);\n if (!loginData) throw new Error('Login failed');\n const { access_token, user_details_token } = loginData;\n if (!access_token || !user_details_token) throw new Error('Invalid login response');\n\n return loginData;\n};\n\n// Handle success\nconst handleSuccess = async (data: { access_token: string; user_details_token: string }) => {\n sessionStore.setSession(data.user_details_token);\n sessionStore.setAccessToken(data.access_token);\n\n form.reset();\n\n // Check if there's a return URL to redirect to\n const returnUrl = router.currentRoute.value.query.returnUrl as string;\n let targetPath = '/';\n\n if (returnUrl) {\n // Make sure we're not redirecting to an auth page or external URL\n if (returnUrl.startsWith('/') && !returnUrl.startsWith('/auth/')) {\n targetPath = returnUrl;\n console.log(`[Login] Redirecting to original destination: ${returnUrl}`);\n } else {\n console.warn(`[Login] Invalid return URL detected: ${returnUrl}`);\n }\n }\n\n await router.push(targetPath);\n toast.success('You are now logged in!');\n};\n\n// Handle error\nconst handleError = (error: any) => {\n toast.error(error.message || 'Login failed');\n};\n</script>\n"],"mappings":";;;;;;;;;;AAQA,MAAa,0BAA0B,aAAa,aAAa,eAAe;CAC9E,OAAO;EACL,WAAW;EACX,aAAa;EACb,UAAU;EACV,cAAc;EACd,WAAW;EACX,WAAW;EACZ;CAED,UAAU;EACR,WAAW;EACX,aAAa;EACb,UAAU;EACV,cAAc;EACd,WAAW;EACZ;CACF,CAAC;;;;;;;;;;;;;ECiBF,MAAM,EAAE,oBAAoB,QAAQ;EAGpC,MAAM,EAAE,MAAM,OAAO,WAAW,sBAAsB,QAAQ,yBAAyB;GACrF,WAAW;GACX,uBAAuB;GACvB,aAAa;GACd,CAAC;EAEF,MAAM,eAAe,qBAAqB;EAC1C,MAAM,SAAS,WAAW;EAC1B,MAAM,EAAE,QAAQ,gBAAgB,aAC7B,KAAK,UAAmD,IAAI,aAAa,MAAM,MAAM,EACtF,EAAE,aAAa,WAAW,CAC3B;EAGD,MAAM,eAAe,OAAO,SAAkD;GAC5E,MAAM,YAAY,MAAM,YAAY,KAAK;AACzC,OAAI,CAAC,UAAW,OAAM,IAAI,MAAM,eAAe;GAC/C,MAAM,EAAE,cAAc,uBAAuB;AAC7C,OAAI,CAAC,gBAAgB,CAAC,mBAAoB,OAAM,IAAI,MAAM,yBAAyB;AAEnF,UAAO;;EAIT,MAAM,gBAAgB,OAAO,SAA+D;AAC1F,gBAAa,WAAW,KAAK,mBAAmB;AAChD,gBAAa,eAAe,KAAK,aAAa;AAE9C,QAAK,OAAO;GAGZ,MAAM,YAAY,OAAO,aAAa,MAAM,MAAM;GAClD,IAAI,aAAa;AAEjB,OAAI,UAEF,KAAI,UAAU,WAAW,IAAI,IAAI,CAAC,UAAU,WAAW,SAAS,EAAE;AAChE,iBAAa;AACb,YAAQ,IAAI,gDAAgD,YAAY;SAExE,SAAQ,KAAK,wCAAwC,YAAY;AAIrE,SAAM,OAAO,KAAK,WAAW;AAC7B,SAAM,QAAQ,yBAAyB;;EAIzC,MAAM,eAAe,UAAe;AAClC,SAAM,MAAM,MAAM,WAAW,eAAe;;;uBA9F5C,mBA2BM,OA3BN,YA2BM;8BA1BJ,mBAA0D,MAAA,EAAtD,OAAM,uCAAqC,EAAC,SAAK,GAAA;IAErD,YAiBY,MAAA,UAAA,EAAA;KAjBA,gBAAe;KAAe,WAAS;KAAgB,SAAO;;4BACpD;MAApB,YAAoB,MAAA,MAAA,CAAA,WAAA;MACpB,YAAuB,MAAA,MAAA,CAAA,cAAA;MAEvB,YAAuE,MAAA,kBAAA,EAAA;OAApD,YAAW;OAAQ,gBAAe;;MAErD,mBAIM,OAJN,YAIM,CAHJ,YAEU,iBAAA;OAFD,IAAG;OAAwB,OAAM;;8BAE1C,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAAA,gBAF6D,2BAE7D,GAAA,CAAA,EAAA,CAAA;;;MAES,MAAA,gBAAe,IAAA,WAAA,EAA1B,mBAKM,OALN,YAKM,CAJJ,mBAGI,KAAA,MAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBAHD,4BAED,GAAA,GAAA,YAAqE,iBAAA;OAA5D,OAAM;OAAmB,IAAG;;8BAAsB,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAAA,gBAAP,WAAO,GAAA,CAAA,EAAA,CAAA;;;;;;IAKjE,mBAAA,kDAAsD;IACtD,mBAAA,yCAA2C;IAE3C,mBAAA,mCAAuC;IACvC,mBAAA,kDAAoD"}
@@ -1,6 +0,0 @@
1
- import "./useRpcAuth-Dp2sec-X.js";
2
- import "./useQueryCache-DqcDMsxb.js";
3
- import "./useMutation-B4_S4Xoa.js";
4
- import { t as Logout_default } from "./Logout-DZuWLh0O.js";
5
-
6
- export { Logout_default as default };
@@ -1,38 +0,0 @@
1
- import { l as useUserSessionStore } from "./useRpcAuth-Dp2sec-X.js";
2
- import { t as useMutation } from "./useMutation-B4_S4Xoa.js";
3
- import { createElementBlock, createStaticVNode, defineComponent, onMounted, openBlock } from "vue";
4
- import { useRouter } from "vue-router";
5
- import { toast } from "vue3-toastify";
6
-
7
- //#region src/slices/auth/features/Logout.vue
8
- const _hoisted_1 = { class: "min-h-screen flex items-center justify-center bg-base-100" };
9
- const _sfc_main = /* @__PURE__ */ defineComponent({
10
- __name: "Logout",
11
- setup(__props) {
12
- const sessionStore = useUserSessionStore();
13
- const router = useRouter();
14
- const { mutate: logoutMutate } = useMutation((api) => api.userSessions.logout(), { credentials: "include" });
15
- onMounted(async () => {
16
- try {
17
- await logoutMutate(void 0);
18
- sessionStore.clearSession();
19
- setTimeout(() => {
20
- router.push("/auth/login");
21
- }, 1e3);
22
- } catch (error) {
23
- toast.error(error.message || "Failed to logout", { autoClose: 2e3 });
24
- setTimeout(() => {
25
- router.push("/");
26
- }, 2e3);
27
- }
28
- });
29
- return (_ctx, _cache) => {
30
- return openBlock(), createElementBlock("div", _hoisted_1, [..._cache[0] || (_cache[0] = [createStaticVNode("<div class=\"max-w-md mx-auto bg-base-200 p-8 rounded-xl shadow-md text-center\"><div class=\"flex justify-center mb-4\"><span class=\"loading loading-spinner loading-lg text-primary\"></span></div><h2 class=\"text-2xl font-bold mb-2\">Logging out...</h2><p class=\"text-base-content/70\">Please wait while we securely log you out</p></div>", 1)])]);
31
- };
32
- }
33
- });
34
- var Logout_default = _sfc_main;
35
-
36
- //#endregion
37
- export { Logout_default as t };
38
- //# sourceMappingURL=Logout-DZuWLh0O.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Logout-DZuWLh0O.js","names":["error: any"],"sources":["../src/slices/auth/features/Logout.vue"],"sourcesContent":["<template>\n <div class=\"min-h-screen flex items-center justify-center bg-base-100\">\n <div class=\"max-w-md mx-auto bg-base-200 p-8 rounded-xl shadow-md text-center\">\n <div class=\"flex justify-center mb-4\">\n <span class=\"loading loading-spinner loading-lg text-primary\"></span>\n </div>\n <h2 class=\"text-2xl font-bold mb-2\">Logging out...</h2>\n <p class=\"text-base-content/70\">Please wait while we securely log you out</p>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useMutation } from '../../../composables/useMutation';\nimport { useUserSessionStore } from '../../../composables/useUserSessionStore';\nimport { onMounted } from 'vue';\nimport { useRouter } from 'vue-router';\nimport { toast } from 'vue3-toastify';\n\nconst sessionStore = useUserSessionStore();\nconst router = useRouter();\nconst { mutate: logoutMutate } = useMutation(\n (api) => api.userSessions.logout(),\n { credentials: 'include' }, // Include credentials to allow cookies\n);\n\nonMounted(async () => {\n try {\n await logoutMutate(undefined as any);\n sessionStore.clearSession();\n setTimeout(() => {\n router.push('/auth/login');\n }, 1000);\n } catch (error: any) {\n toast.error(error.message || 'Failed to logout', {\n autoClose: 2000,\n });\n setTimeout(() => {\n router.push('/');\n }, 2000);\n }\n});\n</script>\n"],"mappings":";;;;;;;;;;;EAmBA,MAAM,eAAe,qBAAqB;EAC1C,MAAM,SAAS,WAAW;EAC1B,MAAM,EAAE,QAAQ,iBAAiB,aAC9B,QAAQ,IAAI,aAAa,QAAQ,EAClC,EAAE,aAAa,WAAW,CAC3B;AAED,YAAU,YAAY;AACpB,OAAI;AACF,UAAM,aAAa,OAAiB;AACpC,iBAAa,cAAc;AAC3B,qBAAiB;AACf,YAAO,KAAK,cAAc;OACzB,IAAK;YACDA,OAAY;AACnB,UAAM,MAAM,MAAM,WAAW,oBAAoB,EAC/C,WAAW,KACZ,CAAC;AACF,qBAAiB;AACf,YAAO,KAAK,IAAI;OACf,IAAK;;IAEV;;uBAxCA,mBAQM,OARN,YAQM,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAAA,kBAAA,wVAAA,EAAA,CAAA,EAAA,CAAA"}
@@ -1,27 +0,0 @@
1
- import "./useRpcAuth-Dp2sec-X.js";
2
- import "./useQueryCache-DqcDMsxb.js";
3
- import "./useMutation-B4_S4Xoa.js";
4
- import "./useQuery-B7ndu5_P.js";
5
- import { g as ResetPassword_default } from "./src-CHw8DdkR.js";
6
- import "./AppLink-CHMMrSFI.js";
7
- import "./TimelineSystemEvent-D58zN850.js";
8
- import "./TeamMembersTab-4gmnP9sD.js";
9
- import "./Appearance-BfPdKMXw.js";
10
- import "./useBreadcrumbs-DmgSucoe.js";
11
- import "./EditTeamMemberForm-CKbKomrL.js";
12
- import "./TeamHistoryTab-CNelXR3Q.js";
13
- import "./UserProfilePage-uAIfC_NW.js";
14
- import "./ChangePasswordPage-DCews8GU.js";
15
- import "./TeamNotesTab-BhVRLG8h.js";
16
- import "./CustomerSupportTicketParent-BzY4pmBk.js";
17
- import "./SupportTicketDevLifecycleBadge-Ba-Rm6QW.js";
18
- import "./StaffSupportTicketParent-CWWhaM37.js";
19
- import "./LoginForm-C85U2E2r.js";
20
- import "./Signup-hpV8J5cM.js";
21
- import "./ForgotPassword-D3bjL48L.js";
22
- import "./Logout-DZuWLh0O.js";
23
- import "./UserListPage-OGYOLwlw.js";
24
- import "./CreateUserPage-B8qeBZij.js";
25
- import "./EditUserPage-XqF25iwz.js";
26
-
27
- export { ResetPassword_default as default };