@dragonmastery/dragoncore-vue 0.0.20 → 0.0.22

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 (155) hide show
  1. package/dist/ChangePasswordPage-DVBkBcm9.js +6 -0
  2. package/dist/{ChangePasswordPage-DBXchGfn.js → ChangePasswordPage-ePeFkv_6.js} +2 -2
  3. package/dist/{ChangePasswordPage-DBXchGfn.js.map → ChangePasswordPage-ePeFkv_6.js.map} +1 -1
  4. package/dist/{ConsentRequired-qMNT-U2T.js → ConsentRequired-e7DEOGNg.js} +26 -17
  5. package/dist/ConsentRequired-e7DEOGNg.js.map +1 -0
  6. package/dist/CreateTeamForm-CV9Y00tD.js +35 -0
  7. package/dist/CreateTeamMemberForm-BX1vUcdg.js +35 -0
  8. package/dist/{CreateUserPage-B0iHLsm5.js → CreateUserPage-Cdv-3U5M.js} +2 -2
  9. package/dist/{CreateUserPage-B0iHLsm5.js.map → CreateUserPage-Cdv-3U5M.js.map} +1 -1
  10. package/dist/CreateUserPage-DQoEX-Er.js +6 -0
  11. package/dist/CreditBalanceDashboard-BZAnEjSz.js +35 -0
  12. package/dist/CreditManagement-C4-_c175.js +35 -0
  13. package/dist/CustomerCreateSupportTicketForm-3tIJKMnJ.js +35 -0
  14. package/dist/{CustomerSupportTicketDetailPage-DyJTKtLU.js → CustomerSupportTicketDetailPage-UGqVoV4j.js} +7 -7
  15. package/dist/{CustomerSupportTicketDetailPage-DyJTKtLU.js.map → CustomerSupportTicketDetailPage-UGqVoV4j.js.map} +1 -1
  16. package/dist/CustomerSupportTicketList-CFQEoXtm.js +35 -0
  17. package/dist/{CustomerSupportTicketParent-CldxkQ75.js → CustomerSupportTicketParent-C2XdM5f7.js} +2 -2
  18. package/dist/{CustomerSupportTicketParent-CldxkQ75.js.map → CustomerSupportTicketParent-C2XdM5f7.js.map} +1 -1
  19. package/dist/CustomerSupportTicketParent-Tnov1dEg.js +7 -0
  20. package/dist/CustomerSupportTicketSuccess-DLszUCsg.js +35 -0
  21. package/dist/EditTeamForm-Ww04P2M0.js +35 -0
  22. package/dist/{EditTeamMemberForm-CiNb4nNG.js → EditTeamMemberForm-BgjNP8MZ.js} +2 -2
  23. package/dist/{EditTeamMemberForm-CiNb4nNG.js.map → EditTeamMemberForm-BgjNP8MZ.js.map} +1 -1
  24. package/dist/EditTeamMemberForm-COfY-2FQ.js +6 -0
  25. package/dist/EditUserPage-BJHs3raG.js +7 -0
  26. package/dist/{EditUserPage-DpV3dm-c.js → EditUserPage-uLPhRW5x.js} +3 -3
  27. package/dist/{EditUserPage-DpV3dm-c.js.map → EditUserPage-uLPhRW5x.js.map} +1 -1
  28. package/dist/{ForgotPassword-roKwDfce.js → ForgotPassword-B8JG_n9D.js} +2 -2
  29. package/dist/{ForgotPassword-roKwDfce.js.map → ForgotPassword-B8JG_n9D.js.map} +1 -1
  30. package/dist/ForgotPassword-CzMPARbz.js +7 -0
  31. package/dist/{LoginForm-BGDymDnO.js → LoginForm-C-_lBDyl.js} +49 -47
  32. package/dist/LoginForm-C-_lBDyl.js.map +1 -0
  33. package/dist/LoginForm-DdzRn8nU.js +7 -0
  34. package/dist/Logout-3_Ns09Vy.js +7 -0
  35. package/dist/{Logout-Cbw1SacV.js → Logout-CIAoXyOg.js} +3 -3
  36. package/dist/{Logout-Cbw1SacV.js.map → Logout-CIAoXyOg.js.map} +1 -1
  37. package/dist/{MfaSetup-CwYXnvgW.js → MfaSetup-9qdTKQ0m.js} +3 -3
  38. package/dist/{MfaSetup-CwYXnvgW.js.map → MfaSetup-9qdTKQ0m.js.map} +1 -1
  39. package/dist/MfaSetup-BE_NP70B.js +8 -0
  40. package/dist/{MfaVerify-CIlen2i5.js → MfaVerify-Cgta1nE9.js} +4 -4
  41. package/dist/{MfaVerify-CIlen2i5.js.map → MfaVerify-Cgta1nE9.js.map} +1 -1
  42. package/dist/MfaVerify-CyiJ9A3L.js +8 -0
  43. package/dist/{ResetPassword-BgKyXQ4q.js → ResetPassword-DHUfERyS.js} +2 -2
  44. package/dist/{ResetPassword-BgKyXQ4q.js.map → ResetPassword-DHUfERyS.js.map} +1 -1
  45. package/dist/ResetPassword-DXHunZVp.js +7 -0
  46. package/dist/{SavedFiltersPage-BlzfWkaj.js → SavedFiltersPage-CjFv4fI_.js} +27 -26
  47. package/dist/{SavedFiltersPage-BlzfWkaj.js.map → SavedFiltersPage-CjFv4fI_.js.map} +1 -1
  48. package/dist/Signup-Cy1puoqh.js +9 -0
  49. package/dist/{Signup-qBqsSYVz.js → Signup-DfG7Xmkx.js} +23 -32
  50. package/dist/Signup-DfG7Xmkx.js.map +1 -0
  51. package/dist/{SignupConsentFlow-DG2IGikE.js → SignupConsentFlow-YGWhF7tj.js} +59 -33
  52. package/dist/SignupConsentFlow-YGWhF7tj.js.map +1 -0
  53. package/dist/{SignupRequirementsPage-DnLpQfB8.js → SignupRequirementsPage-Sm3vgkhC.js} +5 -5
  54. package/dist/{SignupRequirementsPage-DnLpQfB8.js.map → SignupRequirementsPage-Sm3vgkhC.js.map} +1 -1
  55. package/dist/StaffCreateSupportTicketForm-C5tRPz95.js +35 -0
  56. package/dist/{StaffSupportTicketDetailPage-D0SjH36N.js → StaffSupportTicketDetailPage-ePkLJU12.js} +7 -7
  57. package/dist/{StaffSupportTicketDetailPage-D0SjH36N.js.map → StaffSupportTicketDetailPage-ePkLJU12.js.map} +1 -1
  58. package/dist/StaffSupportTicketList-BbiPTm54.js +35 -0
  59. package/dist/{StaffSupportTicketParent-Dk6RFRMt.js → StaffSupportTicketParent-Bz-SH6-k.js} +2 -2
  60. package/dist/{StaffSupportTicketParent-Dk6RFRMt.js.map → StaffSupportTicketParent-Bz-SH6-k.js.map} +1 -1
  61. package/dist/StaffSupportTicketParent-D2onnMqe.js +7 -0
  62. package/dist/StaffSupportTicketSuccess-DLVRTvr1.js +35 -0
  63. package/dist/{SupportStaffPage-DFcgP8iE.js → SupportStaffPage-0X1VMovT.js} +5 -5
  64. package/dist/{SupportStaffPage-DFcgP8iE.js.map → SupportStaffPage-0X1VMovT.js.map} +1 -1
  65. package/dist/{SupportTicketMaintenancePage-BCW0eZxV.js → SupportTicketMaintenancePage-CLDqc4Pb.js} +4 -4
  66. package/dist/{SupportTicketMaintenancePage-BCW0eZxV.js.map → SupportTicketMaintenancePage-CLDqc4Pb.js.map} +1 -1
  67. package/dist/TeamAttachmentsTab-B-xXmvOy.js +35 -0
  68. package/dist/TeamHistoryTab-Bb7mq4Dc.js +4 -0
  69. package/dist/{TeamHistoryTab-PVS8A-6K.js → TeamHistoryTab-D0zW5wjj.js} +2 -2
  70. package/dist/{TeamHistoryTab-PVS8A-6K.js.map → TeamHistoryTab-D0zW5wjj.js.map} +1 -1
  71. package/dist/TeamList-B-cFoclM.js +35 -0
  72. package/dist/TeamMemberList-D3GNHlXH.js +35 -0
  73. package/dist/TeamMemberParent-BKfPMX05.js +35 -0
  74. package/dist/TeamNotesTab-BbODx7wS.js +7 -0
  75. package/dist/{TeamNotesTab-D7ELC1EW.js → TeamNotesTab-DImzeVPk.js} +4 -4
  76. package/dist/{TeamNotesTab-D7ELC1EW.js.map → TeamNotesTab-DImzeVPk.js.map} +1 -1
  77. package/dist/TeamParent-5lokhztw.js +35 -0
  78. package/dist/{TimelineNoteInput-D-NjzUiF.js → TimelineNoteInput-Cpnwnx7B.js} +2 -2
  79. package/dist/{TimelineNoteInput-D-NjzUiF.js.map → TimelineNoteInput-Cpnwnx7B.js.map} +1 -1
  80. package/dist/{TimelineSystemEvent-Cc6HMeO3.js → TimelineSystemEvent-BGG9WkQw.js} +4 -4
  81. package/dist/{TimelineSystemEvent-Cc6HMeO3.js.map → TimelineSystemEvent-BGG9WkQw.js.map} +1 -1
  82. package/dist/UserListPage-4hZll_PC.js +4 -0
  83. package/dist/{UserListPage-DdJFeLP1.js → UserListPage-DpkOdR1U.js} +2 -2
  84. package/dist/{UserListPage-DdJFeLP1.js.map → UserListPage-DpkOdR1U.js.map} +1 -1
  85. package/dist/{UserProfilePage-BhCxv0N9.js → UserProfilePage-CWRgwGQH.js} +4 -4
  86. package/dist/{UserProfilePage-BhCxv0N9.js.map → UserProfilePage-CWRgwGQH.js.map} +1 -1
  87. package/dist/UserProfilePage-qFrg3PiC.js +7 -0
  88. package/dist/VerifyEmail-C5EO8OFo.js +9 -0
  89. package/dist/VerifyEmail-DXZ4T5eN.js +257 -0
  90. package/dist/VerifyEmail-DXZ4T5eN.js.map +1 -0
  91. package/dist/ViewTeam-Die0SWa_.js +35 -0
  92. package/dist/ViewTeamMember-_sqrqGit.js +35 -0
  93. package/dist/index.d.ts +100 -102
  94. package/dist/index.js +26 -25
  95. package/dist/{mfaSchema-s-T8m-7-.js → mfaSchema-BnRWf0ma.js} +1 -1
  96. package/dist/{mfaSchema-s-T8m-7-.js.map → mfaSchema-BnRWf0ma.js.map} +1 -1
  97. package/dist/{src--FuqlDhU.js → src-_IeDZXH6.js} +82 -67
  98. package/dist/src-_IeDZXH6.js.map +1 -0
  99. package/dist/useEmailVerificationChannel-BiiuuTUM.js +37 -0
  100. package/dist/useEmailVerificationChannel-BiiuuTUM.js.map +1 -0
  101. package/dist/{useMutation-Dhx2gMgS.js → useMutation-BMZJLpgx.js} +3 -3
  102. package/dist/{useMutation-Dhx2gMgS.js.map → useMutation-BMZJLpgx.js.map} +1 -1
  103. package/dist/{useQuery-DxmMxM8z.js → useQuery-qpXzBuVg.js} +3 -3
  104. package/dist/{useQuery-DxmMxM8z.js.map → useQuery-qpXzBuVg.js.map} +1 -1
  105. package/dist/{useQueryCache-CJKZquh6.js → useQueryCache-DkRwK5Gz.js} +2 -2
  106. package/dist/{useQueryCache-CJKZquh6.js.map → useQueryCache-DkRwK5Gz.js.map} +1 -1
  107. package/dist/{useRpcAuth-Bse-lggK.js → useRpcAuth-x5Gn5gR0.js} +54 -1
  108. package/dist/useRpcAuth-x5Gn5gR0.js.map +1 -0
  109. package/package.json +2 -2
  110. package/dist/ChangePasswordPage-Re323roR.js +0 -6
  111. package/dist/ConsentRequired-qMNT-U2T.js.map +0 -1
  112. package/dist/CreateTeamForm-DXN1hoJh.js +0 -34
  113. package/dist/CreateTeamMemberForm-CLHT1HN_.js +0 -34
  114. package/dist/CreateUserPage-C8107z_O.js +0 -6
  115. package/dist/CreditBalanceDashboard-D7MFKfh6.js +0 -34
  116. package/dist/CreditManagement-A8hVPoSp.js +0 -34
  117. package/dist/CustomerCreateSupportTicketForm-B8JQNC1I.js +0 -34
  118. package/dist/CustomerSupportTicketList-DR-UfcGr.js +0 -34
  119. package/dist/CustomerSupportTicketParent-C-KzT4qQ.js +0 -7
  120. package/dist/CustomerSupportTicketSuccess-SBdIcS-_.js +0 -34
  121. package/dist/EditTeamForm-BDQkhBbx.js +0 -34
  122. package/dist/EditTeamMemberForm-CBxFLoIy.js +0 -6
  123. package/dist/EditUserPage-BWKrAKZZ.js +0 -7
  124. package/dist/ForgotPassword-D3OQqbrD.js +0 -7
  125. package/dist/LoginForm-BGDymDnO.js.map +0 -1
  126. package/dist/LoginForm-C97dUsU3.js +0 -7
  127. package/dist/Logout-DY3iorah.js +0 -7
  128. package/dist/MfaSetup-DAQV8MhP.js +0 -8
  129. package/dist/MfaVerify-D-_oX6gL.js +0 -8
  130. package/dist/ResetPassword-CkPqUFbq.js +0 -7
  131. package/dist/Signup-C2FshPnc.js +0 -8
  132. package/dist/Signup-qBqsSYVz.js.map +0 -1
  133. package/dist/SignupConsentFlow-DG2IGikE.js.map +0 -1
  134. package/dist/StaffCreateSupportTicketForm-BrGB7tqD.js +0 -34
  135. package/dist/StaffSupportTicketList-HA4NlkKE.js +0 -34
  136. package/dist/StaffSupportTicketParent-BTbpNdfc.js +0 -7
  137. package/dist/StaffSupportTicketSuccess-CTeMG_iK.js +0 -34
  138. package/dist/TeamAttachmentsTab-IaRtuF55.js +0 -34
  139. package/dist/TeamHistoryTab-DWcVhkwC.js +0 -4
  140. package/dist/TeamList-BNo_ime8.js +0 -34
  141. package/dist/TeamMemberList-DJKYxfsx.js +0 -34
  142. package/dist/TeamMemberParent-Bk6dqXsh.js +0 -34
  143. package/dist/TeamNotesTab-JRWYpqRJ.js +0 -7
  144. package/dist/TeamParent-TSWT_0bK.js +0 -34
  145. package/dist/UserListPage-BjHbDpvC.js +0 -4
  146. package/dist/UserProfilePage-BxIMig4s.js +0 -7
  147. package/dist/VerifyEmail-BYSYk5ef.js +0 -7
  148. package/dist/VerifyEmail-DXYcjCX4.js +0 -176
  149. package/dist/VerifyEmail-DXYcjCX4.js.map +0 -1
  150. package/dist/VerifyEmailRequired-DeMYFS0I.js +0 -89
  151. package/dist/VerifyEmailRequired-DeMYFS0I.js.map +0 -1
  152. package/dist/ViewTeam-DIxy437n.js +0 -34
  153. package/dist/ViewTeamMember-DIaIqfbX.js +0 -34
  154. package/dist/src--FuqlDhU.js.map +0 -1
  155. package/dist/useRpcAuth-Bse-lggK.js.map +0 -1
@@ -1,34 +0,0 @@
1
- import "./useRpcAuth-Bse-lggK.js";
2
- import "./useQueryCache-CJKZquh6.js";
3
- import "./useMutation-Dhx2gMgS.js";
4
- import "./useQuery-DxmMxM8z.js";
5
- import { nt as TeamMemberParent_default } from "./src--FuqlDhU.js";
6
- import "./AppLink-CHMMrSFI.js";
7
- import "./TimelineSystemEvent-Cc6HMeO3.js";
8
- import "./TeamMembersTab-4gmnP9sD.js";
9
- import "./Appearance-DxWTyx1M.js";
10
- import "./useSignupPendingData-BWHwUHhL.js";
11
- import "./useBreadcrumbs-qB6ghsAf.js";
12
- import "./EditTeamMemberForm-CiNb4nNG.js";
13
- import "./RecordVersionViewer-BWZ78vvE.js";
14
- import "./TeamHistoryTab-PVS8A-6K.js";
15
- import "./UserProfilePage-BhCxv0N9.js";
16
- import "./ChangePasswordPage-DBXchGfn.js";
17
- import "./TeamNotesTab-D7ELC1EW.js";
18
- import "./CustomerSupportTicketParent-CldxkQ75.js";
19
- import "./SupportTicketDevLifecycleBadge-EMrQHfyG.js";
20
- import "./StaffSupportTicketParent-Dk6RFRMt.js";
21
- import "./LoginForm-BGDymDnO.js";
22
- import "./Signup-qBqsSYVz.js";
23
- import "./ForgotPassword-roKwDfce.js";
24
- import "./ResetPassword-BgKyXQ4q.js";
25
- import "./Logout-Cbw1SacV.js";
26
- import "./mfaSchema-s-T8m-7-.js";
27
- import "./MfaSetup-CwYXnvgW.js";
28
- import "./MfaVerify-CIlen2i5.js";
29
- import "./VerifyEmail-DXYcjCX4.js";
30
- import "./UserListPage-DdJFeLP1.js";
31
- import "./CreateUserPage-B0iHLsm5.js";
32
- import "./EditUserPage-DpV3dm-c.js";
33
-
34
- export { TeamMemberParent_default as default };
@@ -1,7 +0,0 @@
1
- import "./useRpcAuth-Bse-lggK.js";
2
- import "./useQueryCache-CJKZquh6.js";
3
- import "./useMutation-Dhx2gMgS.js";
4
- import "./useQuery-DxmMxM8z.js";
5
- import { t as TeamNotesTab_default } from "./TeamNotesTab-D7ELC1EW.js";
6
-
7
- export { TeamNotesTab_default as default };
@@ -1,34 +0,0 @@
1
- import "./useRpcAuth-Bse-lggK.js";
2
- import "./useQueryCache-CJKZquh6.js";
3
- import "./useMutation-Dhx2gMgS.js";
4
- import "./useQuery-DxmMxM8z.js";
5
- import { ct as TeamParent_default } from "./src--FuqlDhU.js";
6
- import "./AppLink-CHMMrSFI.js";
7
- import "./TimelineSystemEvent-Cc6HMeO3.js";
8
- import "./TeamMembersTab-4gmnP9sD.js";
9
- import "./Appearance-DxWTyx1M.js";
10
- import "./useSignupPendingData-BWHwUHhL.js";
11
- import "./useBreadcrumbs-qB6ghsAf.js";
12
- import "./EditTeamMemberForm-CiNb4nNG.js";
13
- import "./RecordVersionViewer-BWZ78vvE.js";
14
- import "./TeamHistoryTab-PVS8A-6K.js";
15
- import "./UserProfilePage-BhCxv0N9.js";
16
- import "./ChangePasswordPage-DBXchGfn.js";
17
- import "./TeamNotesTab-D7ELC1EW.js";
18
- import "./CustomerSupportTicketParent-CldxkQ75.js";
19
- import "./SupportTicketDevLifecycleBadge-EMrQHfyG.js";
20
- import "./StaffSupportTicketParent-Dk6RFRMt.js";
21
- import "./LoginForm-BGDymDnO.js";
22
- import "./Signup-qBqsSYVz.js";
23
- import "./ForgotPassword-roKwDfce.js";
24
- import "./ResetPassword-BgKyXQ4q.js";
25
- import "./Logout-Cbw1SacV.js";
26
- import "./mfaSchema-s-T8m-7-.js";
27
- import "./MfaSetup-CwYXnvgW.js";
28
- import "./MfaVerify-CIlen2i5.js";
29
- import "./VerifyEmail-DXYcjCX4.js";
30
- import "./UserListPage-DdJFeLP1.js";
31
- import "./CreateUserPage-B0iHLsm5.js";
32
- import "./EditUserPage-DpV3dm-c.js";
33
-
34
- export { TeamParent_default as default };
@@ -1,4 +0,0 @@
1
- import "./useRpcAuth-Bse-lggK.js";
2
- import { t as UserListPage_default } from "./UserListPage-DdJFeLP1.js";
3
-
4
- export { UserListPage_default as default };
@@ -1,7 +0,0 @@
1
- import "./useRpcAuth-Bse-lggK.js";
2
- import "./useQueryCache-CJKZquh6.js";
3
- import "./useMutation-Dhx2gMgS.js";
4
- import "./useQuery-DxmMxM8z.js";
5
- import { t as UserProfilePage_default } from "./UserProfilePage-BhCxv0N9.js";
6
-
7
- export { UserProfilePage_default as default };
@@ -1,7 +0,0 @@
1
- import "./useRpcAuth-Bse-lggK.js";
2
- import "./useQueryCache-CJKZquh6.js";
3
- import "./useMutation-Dhx2gMgS.js";
4
- import "./AppLink-CHMMrSFI.js";
5
- import { t as VerifyEmail_default } from "./VerifyEmail-DXYcjCX4.js";
6
-
7
- export { VerifyEmail_default as default };
@@ -1,176 +0,0 @@
1
- import { l as useUserSessionStore, m as useEnv } from "./useRpcAuth-Bse-lggK.js";
2
- import { t as useMutation } from "./useMutation-Dhx2gMgS.js";
3
- import { t as AppLink_default } from "./AppLink-CHMMrSFI.js";
4
- import { o as withReturnUrl, t as getAndClearEmailVerificationReturnUrl } from "./useReturnUrl-qFeazn-G.js";
5
- import { computed, createCommentVNode, createElementBlock, createElementVNode, createStaticVNode, createTextVNode, createVNode, defineComponent, onMounted, openBlock, ref, toDisplayString, withCtx } from "vue";
6
- import { useRoute, useRouter } from "vue-router";
7
- import { toast } from "vue3-toastify";
8
-
9
- //#region src/slices/auth/features/verify_email/VerifyEmail.vue
10
- const _hoisted_1 = { class: "card bg-base-100 shadow-lg border border-base-300 max-w-md mx-auto" };
11
- const _hoisted_2 = { class: "card-body p-4 sm:p-6 text-center" };
12
- const _hoisted_3 = {
13
- key: 0,
14
- class: "space-y-4"
15
- };
16
- const _hoisted_4 = {
17
- key: 1,
18
- class: "space-y-4"
19
- };
20
- const _hoisted_5 = {
21
- key: 0,
22
- class: "text-sm text-base-content/70"
23
- };
24
- const _hoisted_6 = {
25
- key: 1,
26
- class: "text-sm text-base-content/70"
27
- };
28
- const _hoisted_7 = {
29
- key: 2,
30
- class: "text-sm text-base-content/60"
31
- };
32
- const _hoisted_8 = {
33
- key: 2,
34
- class: "space-y-4"
35
- };
36
- const _hoisted_9 = { class: "text-sm text-base-content/70" };
37
- const _hoisted_10 = { class: "flex flex-col gap-2 items-center" };
38
- const _hoisted_11 = ["disabled"];
39
- const AUTH_CHANNEL = "auth";
40
- const _sfc_main = /* @__PURE__ */ defineComponent({
41
- __name: "VerifyEmail",
42
- setup(__props) {
43
- const route = useRoute();
44
- const router = useRouter();
45
- const returnUrl = computed(() => route.query.returnUrl);
46
- const loginLink = computed(() => withReturnUrl("/auth/login", returnUrl.value));
47
- const sessionStore = useUserSessionStore();
48
- const { emailVerificationMode } = useEnv();
49
- const token = route.query.token ?? route.params.token;
50
- const status = ref("loading");
51
- const errorMessage = ref("");
52
- const verifyEmailApi = ref(false);
53
- const resendLoading = ref(false);
54
- const redirectTarget = ref(null);
55
- const { mutate: verifyMutate } = useMutation((api, tokenToVerify) => {
56
- const verifyEmail = api.verifyEmail;
57
- if (!verifyEmail) throw new Error("Email verification is not configured");
58
- return verifyEmail.verifyEmail(tokenToVerify);
59
- }, {
60
- skipAuthCheck: true,
61
- credentials: "include"
62
- });
63
- const { mutate: resendMutate } = useMutation((api, _input) => {
64
- const verifyEmail = api.verifyEmail;
65
- if (!verifyEmail) throw new Error("Email verification is not configured");
66
- return verifyEmail.resendVerificationEmail();
67
- }, { skipAuthCheck: false });
68
- onMounted(async () => {
69
- if (!token) {
70
- status.value = "error";
71
- errorMessage.value = "No verification token provided.";
72
- return;
73
- }
74
- if (emailVerificationMode === "disabled") {
75
- status.value = "error";
76
- errorMessage.value = "Email verification is not enabled for this application.";
77
- return;
78
- }
79
- try {
80
- const result = await verifyMutate(token);
81
- verifyEmailApi.value = true;
82
- if (result?.ok) {
83
- status.value = "success";
84
- const hadSession = !!(result.session?.access_token && result.session?.user_details_token);
85
- if (hadSession) {
86
- sessionStore.setSession(result.session.user_details_token);
87
- sessionStore.setAccessToken(result.session.access_token);
88
- } else try {
89
- await sessionStore.refreshToken();
90
- } catch {}
91
- const channel = new BroadcastChannel(AUTH_CHANNEL);
92
- channel.postMessage({ type: "email_verified" });
93
- channel.close();
94
- const target = getAndClearEmailVerificationReturnUrl() ?? (hadSession ? "/" : null);
95
- if (target) {
96
- redirectTarget.value = target;
97
- setTimeout(() => router.push(target), 1e3);
98
- }
99
- } else status.value = "error";
100
- } catch (error) {
101
- status.value = "error";
102
- errorMessage.value = error instanceof Error ? error.message : "Something went wrong. The link may have expired.";
103
- verifyEmailApi.value = true;
104
- }
105
- });
106
- const resendVerification = async () => {
107
- try {
108
- resendLoading.value = true;
109
- if ((await resendMutate(void 0))?.ok) toast.success("Verification email sent. Please check your inbox.");
110
- else toast.error("Failed to resend verification email.");
111
- } catch (error) {
112
- toast.error(error instanceof Error ? error.message : "Failed to resend");
113
- } finally {
114
- resendLoading.value = false;
115
- }
116
- };
117
- return (_ctx, _cache) => {
118
- return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [status.value === "loading" ? (openBlock(), createElementBlock("div", _hoisted_3, [..._cache[0] || (_cache[0] = [createElementVNode("span", { class: "loading loading-spinner loading-lg text-primary" }, null, -1), createElementVNode("p", { class: "text-sm text-base-content/70" }, "Verifying your email...", -1)])])) : status.value === "success" ? (openBlock(), createElementBlock("div", _hoisted_4, [
119
- _cache[7] || (_cache[7] = createElementVNode("div", { class: "w-14 h-14 rounded-full bg-success/20 flex items-center justify-center mx-auto" }, [createElementVNode("svg", {
120
- xmlns: "http://www.w3.org/2000/svg",
121
- class: "w-7 h-7 text-success",
122
- viewBox: "0 0 24 24",
123
- fill: "none",
124
- stroke: "currentColor",
125
- "stroke-width": "2",
126
- "stroke-linecap": "round",
127
- "stroke-linejoin": "round"
128
- }, [createElementVNode("polyline", { points: "20 6 9 17 4 12" })])], -1)),
129
- _cache[8] || (_cache[8] = createElementVNode("h3", { class: "text-lg font-semibold" }, "Email verified!", -1)),
130
- redirectTarget.value ? (openBlock(), createElementBlock("p", _hoisted_5, " Redirecting you... ")) : (openBlock(), createElementBlock("p", _hoisted_6, [
131
- _cache[2] || (_cache[2] = createTextVNode(" Your email has been verified. Switch back to your other tab to continue, or ", -1)),
132
- createVNode(AppLink_default, {
133
- to: loginLink.value,
134
- class: "link link-primary"
135
- }, {
136
- default: withCtx(() => [..._cache[1] || (_cache[1] = [createTextVNode("continue to login", -1)])]),
137
- _: 1
138
- }, 8, ["to"]),
139
- _cache[3] || (_cache[3] = createTextVNode(". ", -1))
140
- ])),
141
- redirectTarget.value ? (openBlock(), createElementBlock("p", _hoisted_7, [
142
- _cache[5] || (_cache[5] = createTextVNode(" If you aren't redirected automatically, ", -1)),
143
- createVNode(AppLink_default, {
144
- to: redirectTarget.value,
145
- class: "link link-primary"
146
- }, {
147
- default: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode("click here", -1)])]),
148
- _: 1
149
- }, 8, ["to"]),
150
- _cache[6] || (_cache[6] = createTextVNode(". ", -1))
151
- ])) : createCommentVNode("v-if", true)
152
- ])) : (openBlock(), createElementBlock("div", _hoisted_8, [
153
- _cache[10] || (_cache[10] = createStaticVNode("<div class=\"w-14 h-14 rounded-full bg-error/20 flex items-center justify-center mx-auto\"><svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-7 h-7 text-error\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"></line><line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"></line></svg></div><h3 class=\"text-lg font-semibold\">Verification failed</h3>", 2)),
154
- createElementVNode("p", _hoisted_9, toDisplayString(errorMessage.value), 1),
155
- createElementVNode("div", _hoisted_10, [createVNode(AppLink_default, {
156
- to: loginLink.value,
157
- class: "btn btn-outline btn-sm"
158
- }, {
159
- default: withCtx(() => [..._cache[9] || (_cache[9] = [createTextVNode("Back to login", -1)])]),
160
- _: 1
161
- }, 8, ["to"]), verifyEmailApi.value ? (openBlock(), createElementBlock("button", {
162
- key: 0,
163
- type: "button",
164
- class: "btn btn-ghost btn-sm",
165
- disabled: resendLoading.value,
166
- onClick: resendVerification
167
- }, toDisplayString(resendLoading.value ? "Sending..." : "Resend verification email"), 9, _hoisted_11)) : createCommentVNode("v-if", true)])
168
- ]))])]);
169
- };
170
- }
171
- });
172
- var VerifyEmail_default = _sfc_main;
173
-
174
- //#endregion
175
- export { VerifyEmail_default as t };
176
- //# sourceMappingURL=VerifyEmail-DXYcjCX4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VerifyEmail-DXYcjCX4.js","names":[],"sources":["../src/slices/auth/features/verify_email/VerifyEmail.vue"],"sourcesContent":["<template>\n <div class=\"card bg-base-100 shadow-lg border border-base-300 max-w-md mx-auto\">\n <div class=\"card-body p-4 sm:p-6 text-center\">\n <div v-if=\"status === 'loading'\" class=\"space-y-4\">\n <span class=\"loading loading-spinner loading-lg text-primary\"></span>\n <p class=\"text-sm text-base-content/70\">Verifying your email...</p>\n </div>\n <div v-else-if=\"status === 'success'\" class=\"space-y-4\">\n <div\n class=\"w-14 h-14 rounded-full bg-success/20 flex items-center justify-center mx-auto\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"w-7 h-7 text-success\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n </div>\n <h3 class=\"text-lg font-semibold\">Email verified!</h3>\n <p v-if=\"redirectTarget\" class=\"text-sm text-base-content/70\">\n Redirecting you...\n </p>\n <p v-else class=\"text-sm text-base-content/70\">\n Your email has been verified. Switch back to your other tab to continue, or\n <AppLink :to=\"loginLink\" class=\"link link-primary\">continue to login</AppLink>.\n </p>\n <p v-if=\"redirectTarget\" class=\"text-sm text-base-content/60\">\n If you aren't redirected automatically,\n <AppLink :to=\"redirectTarget\" class=\"link link-primary\">click here</AppLink>.\n </p>\n </div>\n <div v-else class=\"space-y-4\">\n <div\n class=\"w-14 h-14 rounded-full bg-error/20 flex items-center justify-center mx-auto\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"w-7 h-7 text-error\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n </div>\n <h3 class=\"text-lg font-semibold\">Verification failed</h3>\n <p class=\"text-sm text-base-content/70\">{{ errorMessage }}</p>\n <div class=\"flex flex-col gap-2 items-center\">\n <AppLink :to=\"loginLink\" class=\"btn btn-outline btn-sm\">Back to login</AppLink>\n <button\n v-if=\"verifyEmailApi\"\n type=\"button\"\n class=\"btn btn-ghost btn-sm\"\n :disabled=\"resendLoading\"\n @click=\"resendVerification\"\n >\n {{ resendLoading ? 'Sending...' : 'Resend verification email' }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppLink from '../../../../components/AppLink.vue';\nimport { useEnv } from '../../../../composables/useEnv';\nimport { useMutation } from '../../../../composables/useMutation';\nimport { useUserSessionStore } from '../../../../composables/useUserSessionStore';\nimport { withReturnUrl, getAndClearEmailVerificationReturnUrl } from '../../../../utils/useReturnUrl';\nimport type { DragoncoreApi } from '@dragonmastery/dragoncore-shared';\nimport type { EmailVerificationApi } from '@dragonmastery/dragoncore-shared';\nimport { computed, ref, onMounted } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { toast } from 'vue3-toastify';\n\nconst AUTH_CHANNEL = 'auth';\n\nconst route = useRoute();\nconst router = useRouter();\nconst returnUrl = computed(() => route.query.returnUrl as string | undefined);\nconst loginLink = computed(() => withReturnUrl('/auth/login', returnUrl.value));\nconst sessionStore = useUserSessionStore();\nconst { emailVerificationMode } = useEnv();\n\n// Support token from query (?token=xxx) or params (/verify-email/:token)\nconst token = (route.query.token ?? route.params.token) as string;\n\nconst status = ref<'loading' | 'success' | 'error'>('loading');\nconst errorMessage = ref<string>('');\nconst verifyEmailApi = ref<boolean>(false);\nconst resendLoading = ref(false);\nconst redirectTarget = ref<string | null>(null);\n\nconst { mutate: verifyMutate } = useMutation(\n (api, tokenToVerify: string) => {\n const verifyEmail = (api as DragoncoreApi).verifyEmail;\n if (!verifyEmail) throw new Error('Email verification is not configured');\n return (verifyEmail as EmailVerificationApi).verifyEmail(tokenToVerify);\n },\n { skipAuthCheck: true, credentials: 'include' },\n);\n\nconst { mutate: resendMutate } = useMutation(\n (api, _input?: unknown) => {\n const verifyEmail = (api as DragoncoreApi).verifyEmail;\n if (!verifyEmail) throw new Error('Email verification is not configured');\n return (verifyEmail as EmailVerificationApi).resendVerificationEmail();\n },\n { skipAuthCheck: false },\n);\n\nonMounted(async () => {\n if (!token) {\n status.value = 'error';\n errorMessage.value = 'No verification token provided.';\n return;\n }\n\n if (emailVerificationMode === 'disabled') {\n status.value = 'error';\n errorMessage.value = 'Email verification is not enabled for this application.';\n return;\n }\n\n try {\n const result = await verifyMutate(token);\n verifyEmailApi.value = true;\n if (result?.ok) {\n status.value = 'success';\n const hadSession =\n !!(result.session?.access_token && result.session?.user_details_token);\n if (hadSession) {\n sessionStore.setSession(result.session!.user_details_token);\n sessionStore.setAccessToken(result.session!.access_token);\n } else {\n try {\n await sessionStore.refreshToken();\n } catch {\n // User may need to log in again; that's ok\n }\n }\n const channel = new BroadcastChannel(AUTH_CHANNEL);\n channel.postMessage({ type: 'email_verified' });\n channel.close();\n const storedReturnUrl = getAndClearEmailVerificationReturnUrl();\n const target = storedReturnUrl ?? (hadSession ? '/' : null);\n if (target) {\n redirectTarget.value = target;\n setTimeout(() => router.push(target), 1000);\n }\n } else {\n status.value = 'error';\n }\n } catch (error) {\n status.value = 'error';\n errorMessage.value = error instanceof Error ? error.message : 'Something went wrong. The link may have expired.';\n verifyEmailApi.value = true;\n }\n});\n\nconst resendVerification = async () => {\n try {\n resendLoading.value = true;\n const result = await resendMutate(undefined);\n if (result?.ok) {\n toast.success('Verification email sent. Please check your inbox.');\n } else {\n toast.error('Failed to resend verification email.');\n }\n } catch (error) {\n toast.error(error instanceof Error ? error.message : 'Failed to resend');\n } finally {\n resendLoading.value = false;\n }\n};\n</script>\n"],"mappings":"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"}
@@ -1,89 +0,0 @@
1
- import { l as useUserSessionStore } from "./useRpcAuth-Bse-lggK.js";
2
- import "./useQueryCache-CJKZquh6.js";
3
- import { t as useMutation } from "./useMutation-Dhx2gMgS.js";
4
- import { t as useQuery } from "./useQuery-DxmMxM8z.js";
5
- import { t as AppLink_default } from "./AppLink-CHMMrSFI.js";
6
- import { o as withReturnUrl, r as getValidReturnUrl, t as getAndClearEmailVerificationReturnUrl } from "./useReturnUrl-qFeazn-G.js";
7
- import { computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, onUnmounted, openBlock, ref, toDisplayString, withCtx } from "vue";
8
- import { useRoute, useRouter } from "vue-router";
9
- import { toast } from "vue3-toastify";
10
-
11
- //#region src/slices/auth/features/verify_email_required/VerifyEmailRequired.vue
12
- const _hoisted_1 = { class: "max-w-md mx-auto bg-base-200 p-6 rounded-xl shadow-md container" };
13
- const _hoisted_2 = { class: "flex flex-col gap-3" };
14
- const _hoisted_3 = ["disabled"];
15
- const AUTH_CHANNEL = "auth";
16
- const _sfc_main = /* @__PURE__ */ defineComponent({
17
- __name: "VerifyEmailRequired",
18
- setup(__props) {
19
- let authChannel = null;
20
- const route = useRoute();
21
- const router = useRouter();
22
- const session = useUserSessionStore();
23
- const returnUrl = computed(() => route.query.returnUrl);
24
- const loginLink = computed(() => withReturnUrl("/auth/login", returnUrl.value));
25
- const resendLoading = ref(false);
26
- const verifyEmailApi = ref(false);
27
- const isLoggedIn = computed(() => !!session.userSession?.user.userId);
28
- useQuery((api) => {
29
- verifyEmailApi.value = !!api.verifyEmail;
30
- return Promise.resolve(true);
31
- }, {
32
- enabled: isLoggedIn,
33
- staleTime: 3600 * 1e3
34
- });
35
- const { mutate: resendMutate } = useMutation((api, _input) => {
36
- const verifyEmail = api.verifyEmail;
37
- if (!verifyEmail) throw new Error("Email verification is not configured");
38
- return verifyEmail.resendVerificationEmail();
39
- }, { skipAuthCheck: false });
40
- const resendVerification = async () => {
41
- try {
42
- resendLoading.value = true;
43
- if ((await resendMutate(void 0))?.ok) {
44
- toast.success("Verification email sent. Please check your inbox.");
45
- await session.refreshToken();
46
- } else toast.error("Failed to resend verification email.");
47
- } catch (error) {
48
- toast.error(error instanceof Error ? error.message : "Failed to resend");
49
- } finally {
50
- resendLoading.value = false;
51
- }
52
- };
53
- authChannel = new BroadcastChannel(AUTH_CHANNEL);
54
- authChannel.onmessage = (event) => {
55
- if (event.data?.type === "email_verified") {
56
- const targetUrl = getAndClearEmailVerificationReturnUrl() ?? getValidReturnUrl(route, "/");
57
- router.push(targetUrl);
58
- }
59
- };
60
- onUnmounted(() => {
61
- authChannel?.close();
62
- authChannel = null;
63
- });
64
- return (_ctx, _cache) => {
65
- return openBlock(), createElementBlock("div", _hoisted_1, [
66
- _cache[1] || (_cache[1] = createElementVNode("h1", { class: "text-2xl font-bold mb-6 text-center" }, "Check your email", -1)),
67
- _cache[2] || (_cache[2] = createElementVNode("p", { class: "text-base-content/80 mb-6" }, " We sent a verification link to your email address. Click the link to verify your account, then you can log in. ", -1)),
68
- createElementVNode("div", _hoisted_2, [createVNode(AppLink_default, {
69
- to: loginLink.value,
70
- class: "btn btn-primary"
71
- }, {
72
- default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode("Continue to login", -1)])]),
73
- _: 1
74
- }, 8, ["to"]), isLoggedIn.value && verifyEmailApi.value ? (openBlock(), createElementBlock("button", {
75
- key: 0,
76
- type: "button",
77
- class: "btn btn-outline btn-sm",
78
- disabled: resendLoading.value,
79
- onClick: resendVerification
80
- }, toDisplayString(resendLoading.value ? "Sending..." : "Resend verification email"), 9, _hoisted_3)) : createCommentVNode("v-if", true)])
81
- ]);
82
- };
83
- }
84
- });
85
- var VerifyEmailRequired_default = _sfc_main;
86
-
87
- //#endregion
88
- export { VerifyEmailRequired_default as default };
89
- //# sourceMappingURL=VerifyEmailRequired-DeMYFS0I.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VerifyEmailRequired-DeMYFS0I.js","names":["authChannel: BroadcastChannel | null"],"sources":["../src/slices/auth/features/verify_email_required/VerifyEmailRequired.vue"],"sourcesContent":["<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\">Check your email</h1>\n <p class=\"text-base-content/80 mb-6\">\n We sent a verification link to your email address. Click the link to verify your account,\n then you can log in.\n </p>\n <div class=\"flex flex-col gap-3\">\n <AppLink :to=\"loginLink\" class=\"btn btn-primary\">Continue to login</AppLink>\n <button\n v-if=\"isLoggedIn && verifyEmailApi\"\n type=\"button\"\n class=\"btn btn-outline btn-sm\"\n :disabled=\"resendLoading\"\n @click=\"resendVerification\"\n >\n {{ resendLoading ? 'Sending...' : 'Resend verification email' }}\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppLink from '../../../../components/AppLink.vue';\nimport type { DragoncoreApi } from '@dragonmastery/dragoncore-shared';\nimport type { EmailVerificationApi } from '@dragonmastery/dragoncore-shared';\nimport { computed, onUnmounted, ref } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { toast } from 'vue3-toastify';\nimport { useMutation } from '../../../../composables/useMutation';\nimport { useQuery } from '../../../../composables/useQuery';\nimport { useUserSessionStore } from '../../../../composables/useUserSessionStore';\nimport {\n getAndClearEmailVerificationReturnUrl,\n getValidReturnUrl,\n withReturnUrl,\n} from '../../../../utils/useReturnUrl';\n\nconst AUTH_CHANNEL = 'auth';\nlet authChannel: BroadcastChannel | null = null;\n\nconst route = useRoute();\nconst router = useRouter();\nconst session = useUserSessionStore();\n\nconst returnUrl = computed(() => route.query.returnUrl as string | undefined);\nconst loginLink = computed(() => withReturnUrl('/auth/login', returnUrl.value));\nconst resendLoading = ref(false);\nconst verifyEmailApi = ref(false);\n\nconst isLoggedIn = computed(() => !!session.userSession?.user.userId);\n\nuseQuery(\n (api) => {\n verifyEmailApi.value = !!(api as DragoncoreApi).verifyEmail;\n return Promise.resolve(true);\n },\n { enabled: isLoggedIn, staleTime: 60 * 60 * 1000 },\n);\n\nconst { mutate: resendMutate } = useMutation(\n (api, _input?: unknown) => {\n const verifyEmail = (api as DragoncoreApi).verifyEmail;\n if (!verifyEmail) throw new Error('Email verification is not configured');\n return (verifyEmail as EmailVerificationApi).resendVerificationEmail();\n },\n { skipAuthCheck: false },\n);\n\nconst resendVerification = async () => {\n try {\n resendLoading.value = true;\n const result = await resendMutate(undefined);\n if (result?.ok) {\n toast.success('Verification email sent. Please check your inbox.');\n await session.refreshToken();\n } else {\n toast.error('Failed to resend verification email.');\n }\n } catch (error) {\n toast.error(error instanceof Error ? error.message : 'Failed to resend');\n } finally {\n resendLoading.value = false;\n }\n};\n\n// Listen for email_verified broadcast (when user verifies in another tab)\nauthChannel = new BroadcastChannel(AUTH_CHANNEL);\nauthChannel.onmessage = (event: MessageEvent<{ type: string }>) => {\n if (event.data?.type === 'email_verified') {\n const targetUrl = getAndClearEmailVerificationReturnUrl() ?? getValidReturnUrl(route, '/');\n router.push(targetUrl);\n }\n};\n\nonUnmounted(() => {\n authChannel?.close();\n authChannel = null;\n});\n</script>\n"],"mappings":";;;;;;;;;;;;;;AAsCA,MAAM,eAAe;;;;EACrB,IAAIA,cAAuC;EAE3C,MAAM,QAAQ,UAAU;EACxB,MAAM,SAAS,WAAW;EAC1B,MAAM,UAAU,qBAAqB;EAErC,MAAM,YAAY,eAAe,MAAM,MAAM,UAAgC;EAC7E,MAAM,YAAY,eAAe,cAAc,eAAe,UAAU,MAAM,CAAC;EAC/E,MAAM,gBAAgB,IAAI,MAAM;EAChC,MAAM,iBAAiB,IAAI,MAAM;EAEjC,MAAM,aAAa,eAAe,CAAC,CAAC,QAAQ,aAAa,KAAK,OAAO;AAErE,YACG,QAAQ;AACP,kBAAe,QAAQ,CAAC,CAAE,IAAsB;AAChD,UAAO,QAAQ,QAAQ,KAAK;KAE9B;GAAE,SAAS;GAAY,WAAW,OAAU;GAAM,CACnD;EAED,MAAM,EAAE,QAAQ,iBAAiB,aAC9B,KAAK,WAAqB;GACzB,MAAM,cAAe,IAAsB;AAC3C,OAAI,CAAC,YAAa,OAAM,IAAI,MAAM,uCAAuC;AACzE,UAAQ,YAAqC,yBAAyB;KAExE,EAAE,eAAe,OAAO,CACzB;EAED,MAAM,qBAAqB,YAAY;AACrC,OAAI;AACF,kBAAc,QAAQ;AAEtB,SADe,MAAM,aAAa,OAAU,GAChC,IAAI;AACd,WAAM,QAAQ,oDAAoD;AAClE,WAAM,QAAQ,cAAc;UAE5B,OAAM,MAAM,uCAAuC;YAE9C,OAAO;AACd,UAAM,MAAM,iBAAiB,QAAQ,MAAM,UAAU,mBAAmB;aAChE;AACR,kBAAc,QAAQ;;;AAK1B,gBAAc,IAAI,iBAAiB,aAAa;AAChD,cAAY,aAAa,UAA0C;AACjE,OAAI,MAAM,MAAM,SAAS,kBAAkB;IACzC,MAAM,YAAY,uCAAuC,IAAI,kBAAkB,OAAO,IAAI;AAC1F,WAAO,KAAK,UAAU;;;AAI1B,oBAAkB;AAChB,gBAAa,OAAO;AACpB,iBAAc;IACd;;uBAjGA,mBAkBM,OAlBN,YAkBM;8BAjBJ,mBAAqE,MAAA,EAAjE,OAAM,uCAAqC,EAAC,oBAAgB,GAAA;8BAChE,mBAGI,KAAA,EAHD,OAAM,6BAA2B,EAAC,oHAGrC,GAAA;IACA,mBAWM,OAXN,YAWM,CAVJ,YAA4E,iBAAA;KAAlE,IAAI,UAAA;KAAW,OAAM;;4BAAmC,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAAA,gBAAjB,qBAAiB,GAAA,CAAA,EAAA,CAAA;;mBAE1D,WAAA,SAAc,eAAA,SAAA,WAAA,EADtB,mBAQS,UAAA;;KANP,MAAK;KACL,OAAM;KACL,UAAU,cAAA;KACV,SAAO;uBAEL,cAAA,QAAa,eAAA,4BAAA,EAAA,GAAA,WAAA,IAAA,mBAAA,QAAA,KAAA,CAAA,CAAA"}
@@ -1,34 +0,0 @@
1
- import "./useRpcAuth-Bse-lggK.js";
2
- import "./useQueryCache-CJKZquh6.js";
3
- import "./useMutation-Dhx2gMgS.js";
4
- import "./useQuery-DxmMxM8z.js";
5
- import { st as ViewTeam_default } from "./src--FuqlDhU.js";
6
- import "./AppLink-CHMMrSFI.js";
7
- import "./TimelineSystemEvent-Cc6HMeO3.js";
8
- import "./TeamMembersTab-4gmnP9sD.js";
9
- import "./Appearance-DxWTyx1M.js";
10
- import "./useSignupPendingData-BWHwUHhL.js";
11
- import "./useBreadcrumbs-qB6ghsAf.js";
12
- import "./EditTeamMemberForm-CiNb4nNG.js";
13
- import "./RecordVersionViewer-BWZ78vvE.js";
14
- import "./TeamHistoryTab-PVS8A-6K.js";
15
- import "./UserProfilePage-BhCxv0N9.js";
16
- import "./ChangePasswordPage-DBXchGfn.js";
17
- import "./TeamNotesTab-D7ELC1EW.js";
18
- import "./CustomerSupportTicketParent-CldxkQ75.js";
19
- import "./SupportTicketDevLifecycleBadge-EMrQHfyG.js";
20
- import "./StaffSupportTicketParent-Dk6RFRMt.js";
21
- import "./LoginForm-BGDymDnO.js";
22
- import "./Signup-qBqsSYVz.js";
23
- import "./ForgotPassword-roKwDfce.js";
24
- import "./ResetPassword-BgKyXQ4q.js";
25
- import "./Logout-Cbw1SacV.js";
26
- import "./mfaSchema-s-T8m-7-.js";
27
- import "./MfaSetup-CwYXnvgW.js";
28
- import "./MfaVerify-CIlen2i5.js";
29
- import "./VerifyEmail-DXYcjCX4.js";
30
- import "./UserListPage-DdJFeLP1.js";
31
- import "./CreateUserPage-B0iHLsm5.js";
32
- import "./EditUserPage-DpV3dm-c.js";
33
-
34
- export { ViewTeam_default as default };
@@ -1,34 +0,0 @@
1
- import "./useRpcAuth-Bse-lggK.js";
2
- import "./useQueryCache-CJKZquh6.js";
3
- import "./useMutation-Dhx2gMgS.js";
4
- import "./useQuery-DxmMxM8z.js";
5
- import { tt as ViewTeamMember_default } from "./src--FuqlDhU.js";
6
- import "./AppLink-CHMMrSFI.js";
7
- import "./TimelineSystemEvent-Cc6HMeO3.js";
8
- import "./TeamMembersTab-4gmnP9sD.js";
9
- import "./Appearance-DxWTyx1M.js";
10
- import "./useSignupPendingData-BWHwUHhL.js";
11
- import "./useBreadcrumbs-qB6ghsAf.js";
12
- import "./EditTeamMemberForm-CiNb4nNG.js";
13
- import "./RecordVersionViewer-BWZ78vvE.js";
14
- import "./TeamHistoryTab-PVS8A-6K.js";
15
- import "./UserProfilePage-BhCxv0N9.js";
16
- import "./ChangePasswordPage-DBXchGfn.js";
17
- import "./TeamNotesTab-D7ELC1EW.js";
18
- import "./CustomerSupportTicketParent-CldxkQ75.js";
19
- import "./SupportTicketDevLifecycleBadge-EMrQHfyG.js";
20
- import "./StaffSupportTicketParent-Dk6RFRMt.js";
21
- import "./LoginForm-BGDymDnO.js";
22
- import "./Signup-qBqsSYVz.js";
23
- import "./ForgotPassword-roKwDfce.js";
24
- import "./ResetPassword-BgKyXQ4q.js";
25
- import "./Logout-Cbw1SacV.js";
26
- import "./mfaSchema-s-T8m-7-.js";
27
- import "./MfaSetup-CwYXnvgW.js";
28
- import "./MfaVerify-CIlen2i5.js";
29
- import "./VerifyEmail-DXYcjCX4.js";
30
- import "./UserListPage-DdJFeLP1.js";
31
- import "./CreateUserPage-B0iHLsm5.js";
32
- import "./EditUserPage-DpV3dm-c.js";
33
-
34
- export { ViewTeamMember_default as default };