@dragonmastery/dragoncore-vue 0.0.21 → 0.0.23

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 (245) hide show
  1. package/dist/{AppLink-CHMMrSFI.js → AppLink-FcNGKgvG.js} +1 -1
  2. package/dist/{AppLink-CHMMrSFI.js.map → AppLink-FcNGKgvG.js.map} +1 -1
  3. package/dist/Appearance-Ch4zfWZ3.js +3 -0
  4. package/dist/{Appearance-DxWTyx1M.js → Appearance-shr0Aql0.js} +1 -1
  5. package/dist/{Appearance-DxWTyx1M.js.map → Appearance-shr0Aql0.js.map} +1 -1
  6. package/dist/{ChangePasswordPage--3XwluwE.js → ChangePasswordPage-C633yQiU.js} +2 -2
  7. package/dist/{ChangePasswordPage--3XwluwE.js.map → ChangePasswordPage-C633yQiU.js.map} +1 -1
  8. package/dist/ChangePasswordPage-CYuCCosx.js +7 -0
  9. package/dist/ConfirmDialog-DjthOYU6.js +85 -0
  10. package/dist/ConfirmDialog-DjthOYU6.js.map +1 -0
  11. package/dist/ConsentRequired-BPjsZoPY.js +211 -0
  12. package/dist/ConsentRequired-BPjsZoPY.js.map +1 -0
  13. package/dist/CreateTeamForm-CeaC41VY.js +142 -0
  14. package/dist/CreateTeamForm-CeaC41VY.js.map +1 -0
  15. package/dist/CreateTeamForm-DfgCaUwX.js +12 -0
  16. package/dist/CreateTeamMemberForm-Bv9gNG4z.js +140 -0
  17. package/dist/CreateTeamMemberForm-Bv9gNG4z.js.map +1 -0
  18. package/dist/CreateTeamMemberForm-CnHfpob_.js +12 -0
  19. package/dist/CreateUserPage-C9uOeYDJ.js +7 -0
  20. package/dist/{CreateUserPage-DLwXeLAq.js → CreateUserPage-CqKcY7_X.js} +2 -2
  21. package/dist/{CreateUserPage-DLwXeLAq.js.map → CreateUserPage-CqKcY7_X.js.map} +1 -1
  22. package/dist/CreditBalanceDashboard-0HiJE_OS.js +13 -0
  23. package/dist/CreditBalanceDashboard-k_orNn4h.js +28 -0
  24. package/dist/CreditBalanceDashboard-k_orNn4h.js.map +1 -0
  25. package/dist/CreditManagement-BVBZQDI4.js +356 -0
  26. package/dist/CreditManagement-BVBZQDI4.js.map +1 -0
  27. package/dist/CreditManagement-DXdIN-0d.js +13 -0
  28. package/dist/CreditTransactionHistory-DSu-6aDi.js +229 -0
  29. package/dist/CreditTransactionHistory-DSu-6aDi.js.map +1 -0
  30. package/dist/CustomerCreateSupportTicketForm-BsjX8Pja.js +14 -0
  31. package/dist/CustomerCreateSupportTicketForm-kf8YIGjx.js +158 -0
  32. package/dist/CustomerCreateSupportTicketForm-kf8YIGjx.js.map +1 -0
  33. package/dist/{CustomerSupportTicketDetailPage-BdyaKG1v.js → CustomerSupportTicketDetailPage-C_-YoAaP.js} +12 -9
  34. package/dist/{CustomerSupportTicketDetailPage-BdyaKG1v.js.map → CustomerSupportTicketDetailPage-C_-YoAaP.js.map} +1 -1
  35. package/dist/CustomerSupportTicketList-DdACn3ug.js +63 -0
  36. package/dist/{CustomerSupportTicketParent-HIxwSVdu.js → CustomerSupportTicketParent-BpBuYCrP.js} +4 -4
  37. package/dist/{CustomerSupportTicketParent-HIxwSVdu.js.map → CustomerSupportTicketParent-BpBuYCrP.js.map} +1 -1
  38. package/dist/CustomerSupportTicketParent-Djy7pNqO.js +8 -0
  39. package/dist/CustomerSupportTicketSuccess-DsFzpJFU.js +12 -0
  40. package/dist/CustomerSupportTicketSuccess-cumNSGdx.js +54 -0
  41. package/dist/CustomerSupportTicketSuccess-cumNSGdx.js.map +1 -0
  42. package/dist/EditTeamForm-BE3iX2x3.js +12 -0
  43. package/dist/EditTeamForm-BxRN338L.js +163 -0
  44. package/dist/EditTeamForm-BxRN338L.js.map +1 -0
  45. package/dist/EditTeamMemberForm-D7D1Zddh.js +9 -0
  46. package/dist/{EditTeamMemberForm-CaS2GLjV.js → EditTeamMemberForm-DfgJr5Cy.js} +7 -72
  47. package/dist/EditTeamMemberForm-DfgJr5Cy.js.map +1 -0
  48. package/dist/EditUserPage-C0K7EGjM.js +8 -0
  49. package/dist/{EditUserPage-DURc5rmi.js → EditUserPage-CI_jtU8P.js} +4 -4
  50. package/dist/{EditUserPage-DURc5rmi.js.map → EditUserPage-CI_jtU8P.js.map} +1 -1
  51. package/dist/EnhancedRefreshTokenHandler-C6tZCcfX.js +189 -0
  52. package/dist/EnhancedRefreshTokenHandler-C6tZCcfX.js.map +1 -0
  53. package/dist/FieldsetSection-Cd4B8Ad7.js +27 -0
  54. package/dist/FieldsetSection-Cd4B8Ad7.js.map +1 -0
  55. package/dist/{ForgotPassword-OjIPi9s9.js → ForgotPassword-Ckb9Z-wb.js} +4 -4
  56. package/dist/{ForgotPassword-OjIPi9s9.js.map → ForgotPassword-Ckb9Z-wb.js.map} +1 -1
  57. package/dist/ForgotPassword-tJVSg7PB.js +8 -0
  58. package/dist/{TimelineSystemEvent-BHzFr46C.js → InlineAttachments-DAn_QknY.js} +60 -661
  59. package/dist/InlineAttachments-DAn_QknY.js.map +1 -0
  60. package/dist/{LoginForm-9UFnA-fO.js → LoginForm-CMN2T1fA.js} +5 -5
  61. package/dist/{LoginForm-9UFnA-fO.js.map → LoginForm-CMN2T1fA.js.map} +1 -1
  62. package/dist/LoginForm-QFJ8NHww.js +8 -0
  63. package/dist/{Logout-YgTgOFUH.js → Logout-CFLYHlLr.js} +5 -5
  64. package/dist/{Logout-YgTgOFUH.js.map → Logout-CFLYHlLr.js.map} +1 -1
  65. package/dist/Logout-CjDBff3W.js +8 -0
  66. package/dist/MfaSetup-BZcoxJx-.js +9 -0
  67. package/dist/{MfaSetup-RtFMY_dj.js → MfaSetup-XqoAwBXx.js} +5 -5
  68. package/dist/{MfaSetup-RtFMY_dj.js.map → MfaSetup-XqoAwBXx.js.map} +1 -1
  69. package/dist/{MfaVerify-Cvhe8bEM.js → MfaVerify-C-A75TFZ.js} +6 -6
  70. package/dist/{MfaVerify-Cvhe8bEM.js.map → MfaVerify-C-A75TFZ.js.map} +1 -1
  71. package/dist/MfaVerify-Dy2aV5Gk.js +9 -0
  72. package/dist/{RecordVersionViewer-BWZ78vvE.js → RecordVersionViewer-D2j10HdK.js} +1 -1
  73. package/dist/{RecordVersionViewer-BWZ78vvE.js.map → RecordVersionViewer-D2j10HdK.js.map} +1 -1
  74. package/dist/{ResetPassword-BE4mXK9q.js → ResetPassword-Cd-Yxp8E.js} +4 -4
  75. package/dist/{ResetPassword-BE4mXK9q.js.map → ResetPassword-Cd-Yxp8E.js.map} +1 -1
  76. package/dist/ResetPassword-D6to3G6a.js +8 -0
  77. package/dist/{SavedFiltersPage-DQt6uc8m.js → SavedFiltersPage-DM5DvAFa.js} +62 -34
  78. package/dist/{SavedFiltersPage-DQt6uc8m.js.map → SavedFiltersPage-DM5DvAFa.js.map} +1 -1
  79. package/dist/{Signup-9TjMMnU4.js → Signup-2pqvJiVt.js} +57 -57
  80. package/dist/Signup-2pqvJiVt.js.map +1 -0
  81. package/dist/Signup-XdImA1os.js +9 -0
  82. package/dist/{SignupConsentFlow-QUZGKjdB.js → SignupConsentFlow-X3kXuviv.js} +106 -70
  83. package/dist/SignupConsentFlow-X3kXuviv.js.map +1 -0
  84. package/dist/{SignupRequirementsPage-DfbYmpQD.js → SignupRequirementsPage-Cf-ElkEq.js} +9 -8
  85. package/dist/{SignupRequirementsPage-DfbYmpQD.js.map → SignupRequirementsPage-Cf-ElkEq.js.map} +1 -1
  86. package/dist/StaffCreateSupportTicketForm-BlUP2XXy.js +14 -0
  87. package/dist/StaffCreateSupportTicketForm-D2nn4rTU.js +255 -0
  88. package/dist/StaffCreateSupportTicketForm-D2nn4rTU.js.map +1 -0
  89. package/dist/{StaffSupportTicketDetailPage-DQdfh6H1.js → StaffSupportTicketDetailPage-MFtm06BE.js} +14 -11
  90. package/dist/{StaffSupportTicketDetailPage-DQdfh6H1.js.map → StaffSupportTicketDetailPage-MFtm06BE.js.map} +1 -1
  91. package/dist/StaffSupportTicketList-LfLx0pYP.js +63 -0
  92. package/dist/StaffSupportTicketParent-B7mEN1oD.js +8 -0
  93. package/dist/{StaffSupportTicketParent-CilR4RGM.js → StaffSupportTicketParent-BvPwgOqH.js} +4 -4
  94. package/dist/{StaffSupportTicketParent-CilR4RGM.js.map → StaffSupportTicketParent-BvPwgOqH.js.map} +1 -1
  95. package/dist/StaffSupportTicketSuccess-BMCOP3ko.js +12 -0
  96. package/dist/StaffSupportTicketSuccess-Ca2WrcRg.js +54 -0
  97. package/dist/StaffSupportTicketSuccess-Ca2WrcRg.js.map +1 -0
  98. package/dist/{SupportStaffPage-KKugAnFm.js → SupportStaffPage-B69-kuvg.js} +8 -7
  99. package/dist/{SupportStaffPage-KKugAnFm.js.map → SupportStaffPage-B69-kuvg.js.map} +1 -1
  100. package/dist/{SupportTicketDevLifecycleBadge-EMrQHfyG.js → SupportTicketDevLifecycleBadge-BoAjMb08.js} +1 -1
  101. package/dist/{SupportTicketDevLifecycleBadge-EMrQHfyG.js.map → SupportTicketDevLifecycleBadge-BoAjMb08.js.map} +1 -1
  102. package/dist/{SupportTicketMaintenancePage-smItdkrD.js → SupportTicketMaintenancePage-Bptja-xb.js} +5 -4
  103. package/dist/{SupportTicketMaintenancePage-smItdkrD.js.map → SupportTicketMaintenancePage-Bptja-xb.js.map} +1 -1
  104. package/dist/TeamAttachmentsTab-Dk3LxX3n.js +63 -0
  105. package/dist/TeamHistoryTab-CRONdHcL.js +6 -0
  106. package/dist/{TeamHistoryTab-D5biUPmq.js → TeamHistoryTab-DM8KBEG1.js} +7 -19
  107. package/dist/TeamHistoryTab-DM8KBEG1.js.map +1 -0
  108. package/dist/TeamList-DYm_vQ2z.js +8 -0
  109. package/dist/TeamList-qdwlMuJv.js +141 -0
  110. package/dist/TeamList-qdwlMuJv.js.map +1 -0
  111. package/dist/TeamMemberList-4LRLT_7Z.js +7 -0
  112. package/dist/TeamMemberList-DyI1U1t_.js +166 -0
  113. package/dist/TeamMemberList-DyI1U1t_.js.map +1 -0
  114. package/dist/TeamMemberParent-B63pRfI6.js +10 -0
  115. package/dist/TeamMemberParent-D9Fxu7GD.js +83 -0
  116. package/dist/TeamMemberParent-D9Fxu7GD.js.map +1 -0
  117. package/dist/TeamMembersTab-BGcdyEE8.js +3 -0
  118. package/dist/{TeamMembersTab-4gmnP9sD.js → TeamMembersTab-BigqpBDH.js} +1 -1
  119. package/dist/{TeamMembersTab-4gmnP9sD.js.map → TeamMembersTab-BigqpBDH.js.map} +1 -1
  120. package/dist/{TeamNotesTab-BzGZZ1h8.js → TeamNotesTab-BgxleidZ.js} +6 -5
  121. package/dist/{TeamNotesTab-BzGZZ1h8.js.map → TeamNotesTab-BgxleidZ.js.map} +1 -1
  122. package/dist/TeamNotesTab-o7glfjoY.js +8 -0
  123. package/dist/TeamParent-BwXqA3rj.js +83 -0
  124. package/dist/TeamParent-BwXqA3rj.js.map +1 -0
  125. package/dist/TeamParent-CFOmyKPz.js +11 -0
  126. package/dist/{TimelineNoteInput-0p-M4Qie.js → TimelineNoteInput-DXaodm43.js} +3 -2
  127. package/dist/{TimelineNoteInput-0p-M4Qie.js.map → TimelineNoteInput-DXaodm43.js.map} +1 -1
  128. package/dist/TimelineSystemEvent-zCMUx5Zz.js +525 -0
  129. package/dist/TimelineSystemEvent-zCMUx5Zz.js.map +1 -0
  130. package/dist/UserListPage-Bmwg0an5.js +5 -0
  131. package/dist/{UserListPage-DUE5gJTo.js → UserListPage-DtA8tLff.js} +4 -3
  132. package/dist/{UserListPage-DUE5gJTo.js.map → UserListPage-DtA8tLff.js.map} +1 -1
  133. package/dist/UserProfilePage-DRbCAr9H.js +8 -0
  134. package/dist/{UserProfilePage-C3b93Keh.js → UserProfilePage-g4-VEDXo.js} +4 -4
  135. package/dist/{UserProfilePage-C3b93Keh.js.map → UserProfilePage-g4-VEDXo.js.map} +1 -1
  136. package/dist/{VerifyEmail-DlOmWGG-.js → VerifyEmail-CM5ehFB8.js} +7 -7
  137. package/dist/{VerifyEmail-DlOmWGG-.js.map → VerifyEmail-CM5ehFB8.js.map} +1 -1
  138. package/dist/VerifyEmail-DMHczC9f.js +10 -0
  139. package/dist/ViewTeam-CXyABxE6.js +8 -0
  140. package/dist/ViewTeam-DSbKV60o.js +220 -0
  141. package/dist/ViewTeam-DSbKV60o.js.map +1 -0
  142. package/dist/ViewTeamMember-BB0nvPOe.js +167 -0
  143. package/dist/ViewTeamMember-BB0nvPOe.js.map +1 -0
  144. package/dist/ViewTeamMember-jrOnBaDh.js +7 -0
  145. package/dist/ZiniaContainer-CjVhCnGB.js +18 -0
  146. package/dist/ZiniaContainer-CjVhCnGB.js.map +1 -0
  147. package/dist/{convertToLocalDateTime-CFhtN6PI.js → convertToLocalDateTime-BF25N4xd.js} +1 -2
  148. package/dist/convertToLocalDateTime-BF25N4xd.js.map +1 -0
  149. package/dist/customerSupportTicketRoutes-C7OxGAGl.js +142 -0
  150. package/dist/customerSupportTicketRoutes-C7OxGAGl.js.map +1 -0
  151. package/dist/{displayIdFormatter-Dz900Awr.js → displayIdFormatter-B-_WQHOr.js} +1 -1
  152. package/dist/{displayIdFormatter-Dz900Awr.js.map → displayIdFormatter-B-_WQHOr.js.map} +1 -1
  153. package/dist/{extractRpcErrorMessage-Di8E8-Wh.js → extractRpcErrorMessage-diUBl6Ij.js} +1 -1
  154. package/dist/{extractRpcErrorMessage-Di8E8-Wh.js.map → extractRpcErrorMessage-diUBl6Ij.js.map} +1 -1
  155. package/dist/index.d.ts +793 -834
  156. package/dist/index.js +66 -38
  157. package/dist/{mfaSchema-BnRWf0ma.js → mfaSchema-Ukqzdyck.js} +1 -1
  158. package/dist/{mfaSchema-BnRWf0ma.js.map → mfaSchema-Ukqzdyck.js.map} +1 -1
  159. package/dist/saved_filter-CfzH0BzK.js +1210 -0
  160. package/dist/saved_filter-CfzH0BzK.js.map +1 -0
  161. package/dist/signupConsentStorage-DS9vCUuC.js +27 -0
  162. package/dist/signupConsentStorage-DS9vCUuC.js.map +1 -0
  163. package/dist/{src-CEBiyg_f.css → src-C6ZmNSSU.css} +1 -1
  164. package/dist/{src-CEBiyg_f.css.map → src-C6ZmNSSU.css.map} +1 -1
  165. package/dist/src-DVe_0RO9.js +4654 -0
  166. package/dist/src-DVe_0RO9.js.map +1 -0
  167. package/dist/staffSupportTicketRoutes-CWutoQWp.js +135 -0
  168. package/dist/staffSupportTicketRoutes-CWutoQWp.js.map +1 -0
  169. package/dist/teamMemberMetadata-CQnbVepq.js +49 -0
  170. package/dist/teamMemberMetadata-CQnbVepq.js.map +1 -0
  171. package/dist/teamMetadata-DlvwO5V0.js +53 -0
  172. package/dist/teamMetadata-DlvwO5V0.js.map +1 -0
  173. package/dist/teamRoutes-KFgnsdDP.js +192 -0
  174. package/dist/teamRoutes-KFgnsdDP.js.map +1 -0
  175. package/dist/team_memberRoutes-Cjpw_ql6.js +84 -0
  176. package/dist/team_memberRoutes-Cjpw_ql6.js.map +1 -0
  177. package/dist/{useBreadcrumbs-qB6ghsAf.js → useBreadcrumbs-DIqU5AAp.js} +1 -1
  178. package/dist/{useBreadcrumbs-qB6ghsAf.js.map → useBreadcrumbs-DIqU5AAp.js.map} +1 -1
  179. package/dist/{useEmailVerificationChannel-BNi926Ho.js → useEmailVerificationChannel-B51z65PN.js} +3 -3
  180. package/dist/{useEmailVerificationChannel-BNi926Ho.js.map → useEmailVerificationChannel-B51z65PN.js.map} +1 -1
  181. package/dist/{useMutation-BTsyHKyn.js → useMutation-BLNuJoYl.js} +6 -3
  182. package/dist/useMutation-BLNuJoYl.js.map +1 -0
  183. package/dist/{useQuery-BggIE52P.js → useQuery-BzUGEOj0.js} +4 -3
  184. package/dist/{useQuery-BggIE52P.js.map → useQuery-BzUGEOj0.js.map} +1 -1
  185. package/dist/{useQueryCache-Bjm-S8v5.js → useQueryCache-alzaRWEb.js} +2 -2
  186. package/dist/{useQueryCache-Bjm-S8v5.js.map → useQueryCache-alzaRWEb.js.map} +1 -1
  187. package/dist/{useReturnUrl-qFeazn-G.js → useReturnUrl-B5V3SJf5.js} +1 -1
  188. package/dist/{useReturnUrl-qFeazn-G.js.map → useReturnUrl-B5V3SJf5.js.map} +1 -1
  189. package/dist/{useRpcAuth-rmHf7bYx.js → useRpcAuth-CJtq1dqM.js} +25 -194
  190. package/dist/useRpcAuth-CJtq1dqM.js.map +1 -0
  191. package/dist/userAuthorized-C09FHWGL.js +185 -0
  192. package/dist/userAuthorized-C09FHWGL.js.map +1 -0
  193. package/package.json +3 -3
  194. package/dist/Appearance-D5pwxuf4.js +0 -3
  195. package/dist/ChangePasswordPage-CpDPmEml.js +0 -6
  196. package/dist/ConsentRequired-C4IRMA0c.js +0 -213
  197. package/dist/ConsentRequired-C4IRMA0c.js.map +0 -1
  198. package/dist/CreateTeamForm-B4cIuYAf.js +0 -35
  199. package/dist/CreateTeamMemberForm-Chrw1y00.js +0 -35
  200. package/dist/CreateUserPage-WruMs7WP.js +0 -6
  201. package/dist/CreditBalanceDashboard-CkcsrZ_e.js +0 -35
  202. package/dist/CreditManagement-Ddvu9dMw.js +0 -35
  203. package/dist/CustomerCreateSupportTicketForm-BKperKGS.js +0 -35
  204. package/dist/CustomerSupportTicketList-DcbrjDa9.js +0 -35
  205. package/dist/CustomerSupportTicketParent-BeNzUwuP.js +0 -7
  206. package/dist/CustomerSupportTicketSuccess-CC967u3y.js +0 -35
  207. package/dist/EditTeamForm-B5Tee5wL.js +0 -35
  208. package/dist/EditTeamMemberForm-CaS2GLjV.js.map +0 -1
  209. package/dist/EditTeamMemberForm-OtcS8QWt.js +0 -6
  210. package/dist/EditUserPage-T4DQlKhf.js +0 -7
  211. package/dist/ForgotPassword-CUifhmqP.js +0 -7
  212. package/dist/LoginForm-Bg7GoZEA.js +0 -7
  213. package/dist/Logout-Bs92csWH.js +0 -7
  214. package/dist/MfaSetup-BACX5XP-.js +0 -8
  215. package/dist/MfaVerify-ak4iSdQ2.js +0 -8
  216. package/dist/ResetPassword-pY1uhTdl.js +0 -7
  217. package/dist/Signup-9TjMMnU4.js.map +0 -1
  218. package/dist/Signup-Bq-G3D-s.js +0 -9
  219. package/dist/SignupConsentFlow-QUZGKjdB.js.map +0 -1
  220. package/dist/StaffCreateSupportTicketForm-D0ZuisDk.js +0 -35
  221. package/dist/StaffSupportTicketList-CiqC05XB.js +0 -35
  222. package/dist/StaffSupportTicketParent-DkV329NI.js +0 -7
  223. package/dist/StaffSupportTicketSuccess-CUYnimaI.js +0 -35
  224. package/dist/TeamAttachmentsTab-DUtCD1Yi.js +0 -35
  225. package/dist/TeamHistoryTab-BsUoH4VK.js +0 -4
  226. package/dist/TeamHistoryTab-D5biUPmq.js.map +0 -1
  227. package/dist/TeamList-BkPIqZ8V.js +0 -35
  228. package/dist/TeamMemberList-1mxUGCNa.js +0 -35
  229. package/dist/TeamMemberParent-DzeBIElY.js +0 -35
  230. package/dist/TeamMembersTab-CBB2Yl_I.js +0 -3
  231. package/dist/TeamNotesTab-ClHl2nXd.js +0 -7
  232. package/dist/TeamParent-DJa9UZTP.js +0 -35
  233. package/dist/TimelineSystemEvent-BHzFr46C.js.map +0 -1
  234. package/dist/UserListPage-BTLE4J0s.js +0 -4
  235. package/dist/UserProfilePage-CVTORtSx.js +0 -7
  236. package/dist/VerifyEmail-DCP4DWIw.js +0 -9
  237. package/dist/ViewTeam-DVfnLMhV.js +0 -35
  238. package/dist/ViewTeamMember-L4v3gCIn.js +0 -35
  239. package/dist/convertToLocalDateTime-CFhtN6PI.js.map +0 -1
  240. package/dist/src-QZJyMfGX.js +0 -8951
  241. package/dist/src-QZJyMfGX.js.map +0 -1
  242. package/dist/useMutation-BTsyHKyn.js.map +0 -1
  243. package/dist/useRpcAuth-rmHf7bYx.js.map +0 -1
  244. package/dist/useSignupPendingData-BWHwUHhL.js +0 -47
  245. package/dist/useSignupPendingData-BWHwUHhL.js.map +0 -1
@@ -0,0 +1,185 @@
1
+ import { d as useEnv, n as createAppBatch, o as useUserSessionStore, u as logger } from "./useRpcAuth-CJtq1dqM.js";
2
+
3
+ //#region src/middleware/userAuthorized.ts
4
+ /**
5
+ * Creates a navigation guard that checks both authentication and authorization
6
+ * based on allowed user types.
7
+ *
8
+ * @example
9
+ * // Only staff and super_admin can access
10
+ * const staffOnly = createUserAuthorizedGuard({
11
+ * allowedUserTypes: ['staff', 'super_admin'],
12
+ * redirectTo: { name: 'Home' }
13
+ * });
14
+ *
15
+ * @example
16
+ * // All authenticated users can access
17
+ * const authenticated = createUserAuthorizedGuard({
18
+ * allowedUserTypes: ['consumer', 'lead', 'staff', 'super_admin'],
19
+ * redirectTo: { name: 'Home' }
20
+ * });
21
+ */
22
+ function createUserAuthorizedGuard(options) {
23
+ const { allowedUserTypes, redirectTo = { name: "Home" }, loginPath = "/auth/login", requireAuth = true } = options;
24
+ return async (to, _from, next) => {
25
+ const userSession = useUserSessionStore();
26
+ const env = useEnv();
27
+ if (requireAuth) if (!!userSession.accessToken) {
28
+ const { accessTokenExpired, refreshTokenExpired } = userSession.isTokenExpired();
29
+ if (!accessTokenExpired) {} else if (refreshTokenExpired) {
30
+ logger.warn("[UserAuthorized] Refresh token expired, redirecting to login");
31
+ userSession.clearSession();
32
+ const returnUrl = to.fullPath;
33
+ next({
34
+ path: loginPath,
35
+ query: { returnUrl }
36
+ });
37
+ return;
38
+ } else {
39
+ logger.debug("[UserAuthorized] Access token expired, attempting refresh");
40
+ if (!await userSession.refreshToken()) {
41
+ logger.error("[UserAuthorized] Token refresh failed, redirecting to login");
42
+ userSession.clearSession();
43
+ const returnUrl = to.fullPath;
44
+ next({
45
+ path: loginPath,
46
+ query: { returnUrl }
47
+ });
48
+ return;
49
+ }
50
+ }
51
+ } else {
52
+ logger.debug("[UserAuthorized] No access token, attempting refresh token flow");
53
+ if (!await userSession.refreshToken()) {
54
+ logger.debug("[UserAuthorized] No valid session found, redirecting to login");
55
+ userSession.clearSession();
56
+ const returnUrl = to.fullPath;
57
+ next({
58
+ path: loginPath,
59
+ query: { returnUrl }
60
+ });
61
+ return;
62
+ }
63
+ }
64
+ if (to.path !== "/auth/consent-required") try {
65
+ const pending = await createAppBatch().users.getPendingConsents();
66
+ if (pending && pending.length > 0) {
67
+ logger.debug("[UserAuthorized] Pending consents found, redirecting to consent-required");
68
+ next({
69
+ path: "/auth/consent-required",
70
+ query: {
71
+ returnUrl: to.fullPath,
72
+ ...to.query
73
+ }
74
+ });
75
+ return;
76
+ }
77
+ } catch (err) {
78
+ logger.warn("[UserAuthorized] Failed to check pending consents, continuing", { err });
79
+ }
80
+ if (!to.path.startsWith("/auth/") && env.emailVerificationMode === "strict") {
81
+ if (!(userSession.currentSession?.user?.email_verified ?? true)) {
82
+ logger.debug("[UserAuthorized] Strict mode: unverified user, redirecting to verify-email");
83
+ next({
84
+ path: "/auth/verify-email",
85
+ query: { returnUrl: to.fullPath }
86
+ });
87
+ return;
88
+ }
89
+ }
90
+ const userType = userSession.currentSession?.user.user_type;
91
+ if (!userType) {
92
+ logger.warn("[UserAuthorized] No user type found, redirecting");
93
+ next(redirectTo);
94
+ return;
95
+ }
96
+ if (allowedUserTypes.includes(userType)) {
97
+ logger.debug(`[UserAuthorized] User type '${userType}' is authorized`);
98
+ next();
99
+ } else {
100
+ logger.warn(`[UserAuthorized] User type '${userType}' is not authorized. Allowed: ${allowedUserTypes.join(", ")}`);
101
+ next(redirectTo);
102
+ }
103
+ };
104
+ }
105
+ /**
106
+ * Pre-built guard: Staff and super admin only
107
+ * Redirects non-staff users to the provided redirect path
108
+ */
109
+ function createStaffOnlyGuard(options) {
110
+ return createUserAuthorizedGuard({
111
+ allowedUserTypes: ["staff", "super_admin"],
112
+ redirectTo: options?.redirectTo ?? { name: "Home" },
113
+ loginPath: options?.loginPath
114
+ });
115
+ }
116
+ /**
117
+ * Pre-built guard: Super admin only
118
+ * Redirects non-super-admin users to the provided redirect path
119
+ */
120
+ function createSuperAdminOnlyGuard(options) {
121
+ return createUserAuthorizedGuard({
122
+ allowedUserTypes: ["super_admin"],
123
+ redirectTo: options?.redirectTo ?? "/notfound",
124
+ loginPath: options?.loginPath
125
+ });
126
+ }
127
+ /**
128
+ * Pre-built guard: All authenticated users
129
+ * Any logged-in user can access (consumer, lead, staff, or super_admin)
130
+ */
131
+ function createAuthenticatedGuard(options) {
132
+ return createUserAuthorizedGuard({
133
+ allowedUserTypes: [
134
+ "consumer",
135
+ "lead",
136
+ "staff",
137
+ "super_admin"
138
+ ],
139
+ redirectTo: options?.redirectTo ?? { name: "Home" },
140
+ loginPath: options?.loginPath
141
+ });
142
+ }
143
+ /**
144
+ * Pre-built guard: Lead, staff, and super admin
145
+ * Consumers are not allowed
146
+ */
147
+ function createLeadOrStaffOnlyGuard(options) {
148
+ return createUserAuthorizedGuard({
149
+ allowedUserTypes: [
150
+ "lead",
151
+ "staff",
152
+ "super_admin"
153
+ ],
154
+ redirectTo: options?.redirectTo ?? { name: "Home" },
155
+ loginPath: options?.loginPath
156
+ });
157
+ }
158
+ /**
159
+ * Pre-configured guards with sensible defaults
160
+ * Apps can use these directly or override with create*Guard functions
161
+ */
162
+ /**
163
+ * Pre-configured: All authenticated users
164
+ * Default redirect: Home, Default login: /auth/login
165
+ */
166
+ const userAuthenticated = createAuthenticatedGuard();
167
+ /**
168
+ * Pre-configured: Staff and super admin only
169
+ * Default redirect: Home, Default login: /auth/login
170
+ */
171
+ const staffOnly = createStaffOnlyGuard();
172
+ /**
173
+ * Pre-configured: Super admin only
174
+ * Default redirect: /notfound, Default login: /auth/login
175
+ */
176
+ const userIsSuperAdmin = createSuperAdminOnlyGuard();
177
+ /**
178
+ * Pre-configured: Lead, staff, and super admin
179
+ * Default redirect: Home, Default login: /auth/login
180
+ */
181
+ const leadOrStaffOnly = createLeadOrStaffOnlyGuard();
182
+
183
+ //#endregion
184
+ export { createUserAuthorizedGuard as a, userAuthenticated as c, createSuperAdminOnlyGuard as i, userIsSuperAdmin as l, createLeadOrStaffOnlyGuard as n, leadOrStaffOnly as o, createStaffOnlyGuard as r, staffOnly as s, createAuthenticatedGuard as t };
185
+ //# sourceMappingURL=userAuthorized-C09FHWGL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userAuthorized-C09FHWGL.js","names":[],"sources":["../src/middleware/userAuthorized.ts"],"sourcesContent":["import type { UserTypeValues } from '@dragonmastery/dragoncore-shared';\nimport type { NavigationGuard, RouteLocationRaw } from 'vue-router';\nimport { createAppBatch } from '../composables/useRpcAuth';\nimport { useEnv } from '../composables/useEnv';\nimport { useUserSessionStore } from '../composables/useUserSessionStore';\nimport { logger } from '../utils/logger';\n\nexport interface UserAuthorizedOptions {\n /**\n * List of user types allowed to access this route\n * Same pattern as `visible_to` in route meta\n */\n allowedUserTypes: UserTypeValues[];\n\n /**\n * Where to redirect if user is not authorized\n * Can be a route name, path, or route object\n */\n redirectTo?: RouteLocationRaw;\n\n /**\n * Login path for redirecting unauthenticated users\n * Only used if requireAuth is true\n */\n loginPath?: string;\n\n /**\n * Whether to also check authentication (token refresh, etc.)\n * Default: true\n */\n requireAuth?: boolean;\n}\n\n/**\n * Creates a navigation guard that checks both authentication and authorization\n * based on allowed user types.\n *\n * @example\n * // Only staff and super_admin can access\n * const staffOnly = createUserAuthorizedGuard({\n * allowedUserTypes: ['staff', 'super_admin'],\n * redirectTo: { name: 'Home' }\n * });\n *\n * @example\n * // All authenticated users can access\n * const authenticated = createUserAuthorizedGuard({\n * allowedUserTypes: ['consumer', 'lead', 'staff', 'super_admin'],\n * redirectTo: { name: 'Home' }\n * });\n */\nexport function createUserAuthorizedGuard(options: UserAuthorizedOptions): NavigationGuard {\n const {\n allowedUserTypes,\n redirectTo = { name: 'Home' },\n loginPath = '/auth/login',\n requireAuth = true,\n } = options;\n\n return async (to, _from, next) => {\n const userSession = useUserSessionStore();\n const env = useEnv();\n\n // Step 1: Check authentication if required\n if (requireAuth) {\n const hasAccessToken = !!userSession.accessToken;\n\n if (hasAccessToken) {\n const { accessTokenExpired, refreshTokenExpired } = userSession.isTokenExpired();\n\n if (!accessTokenExpired) {\n // Token is valid, proceed to authorization check\n } else if (refreshTokenExpired) {\n // Refresh token expired, redirect to login\n logger.warn('[UserAuthorized] Refresh token expired, redirecting to login');\n userSession.clearSession();\n const returnUrl = to.fullPath;\n next({\n path: loginPath,\n query: { returnUrl },\n });\n return;\n } else {\n // Access token expired, try refresh\n logger.debug('[UserAuthorized] Access token expired, attempting refresh');\n const refreshSuccessful = await userSession.refreshToken();\n\n if (!refreshSuccessful) {\n logger.error('[UserAuthorized] Token refresh failed, redirecting to login');\n userSession.clearSession();\n const returnUrl = to.fullPath;\n next({\n path: loginPath,\n query: { returnUrl },\n });\n return;\n }\n }\n } else {\n // No access token, try refresh token flow\n logger.debug('[UserAuthorized] No access token, attempting refresh token flow');\n const refreshSuccessful = await userSession.refreshToken();\n\n if (!refreshSuccessful) {\n logger.debug('[UserAuthorized] No valid session found, redirecting to login');\n userSession.clearSession();\n const returnUrl = to.fullPath;\n next({\n path: loginPath,\n query: { returnUrl },\n });\n return;\n }\n }\n }\n\n // Step 2: Check consent status\n // Call getPendingConsents for fresh data - backend returns [] when CONSENT_FEATURE_ENABLED is false\n if (to.path !== '/auth/consent-required') {\n try {\n const batch = createAppBatch();\n const pending = await batch.users.getPendingConsents();\n if (pending && pending.length > 0) {\n logger.debug('[UserAuthorized] Pending consents found, redirecting to consent-required');\n next({\n path: '/auth/consent-required',\n query: { returnUrl: to.fullPath, ...to.query },\n });\n return;\n }\n } catch (err) {\n logger.warn('[UserAuthorized] Failed to check pending consents, continuing', { err });\n // On auth/network error, let user proceed; they may hit CONSENT_REQUIRED on next API call\n }\n }\n\n // Step 2.5: In strict mode, block unverified users from app entirely\n if (\n !to.path.startsWith('/auth/') &&\n env.emailVerificationMode === 'strict'\n ) {\n const emailVerified = userSession.currentSession?.user?.email_verified ?? true;\n if (!emailVerified) {\n logger.debug('[UserAuthorized] Strict mode: unverified user, redirecting to verify-email');\n next({ path: '/auth/verify-email', query: { returnUrl: to.fullPath } });\n return;\n }\n }\n\n // Step 3: Check authorization (user type)\n const userType = userSession.currentSession?.user.user_type;\n\n if (!userType) {\n logger.warn('[UserAuthorized] No user type found, redirecting');\n next(redirectTo);\n return;\n }\n\n if (allowedUserTypes.includes(userType)) {\n logger.debug(`[UserAuthorized] User type '${userType}' is authorized`);\n next();\n } else {\n logger.warn(\n `[UserAuthorized] User type '${userType}' is not authorized. Allowed: ${allowedUserTypes.join(', ')}`,\n );\n next(redirectTo);\n }\n };\n}\n\n/**\n * Pre-built guard: Staff and super admin only\n * Redirects non-staff users to the provided redirect path\n */\nexport function createStaffOnlyGuard(options?: {\n redirectTo?: RouteLocationRaw;\n loginPath?: string;\n}): NavigationGuard {\n return createUserAuthorizedGuard({\n allowedUserTypes: ['staff', 'super_admin'],\n redirectTo: options?.redirectTo ?? { name: 'Home' },\n loginPath: options?.loginPath,\n });\n}\n\n/**\n * Pre-built guard: Super admin only\n * Redirects non-super-admin users to the provided redirect path\n */\nexport function createSuperAdminOnlyGuard(options?: {\n redirectTo?: RouteLocationRaw;\n loginPath?: string;\n}): NavigationGuard {\n return createUserAuthorizedGuard({\n allowedUserTypes: ['super_admin'],\n redirectTo: options?.redirectTo ?? '/notfound',\n loginPath: options?.loginPath,\n });\n}\n\n/**\n * Pre-built guard: All authenticated users\n * Any logged-in user can access (consumer, lead, staff, or super_admin)\n */\nexport function createAuthenticatedGuard(options?: {\n redirectTo?: RouteLocationRaw;\n loginPath?: string;\n}): NavigationGuard {\n return createUserAuthorizedGuard({\n allowedUserTypes: ['consumer', 'lead', 'staff', 'super_admin'],\n redirectTo: options?.redirectTo ?? { name: 'Home' },\n loginPath: options?.loginPath,\n });\n}\n\n/**\n * Pre-built guard: Lead, staff, and super admin\n * Consumers are not allowed\n */\nexport function createLeadOrStaffOnlyGuard(options?: {\n redirectTo?: RouteLocationRaw;\n loginPath?: string;\n}): NavigationGuard {\n return createUserAuthorizedGuard({\n allowedUserTypes: ['lead', 'staff', 'super_admin'],\n redirectTo: options?.redirectTo ?? { name: 'Home' },\n loginPath: options?.loginPath,\n });\n}\n\n/**\n * Pre-configured guards with sensible defaults\n * Apps can use these directly or override with create*Guard functions\n */\n\n/**\n * Pre-configured: All authenticated users\n * Default redirect: Home, Default login: /auth/login\n */\nexport const userAuthenticated = createAuthenticatedGuard();\n\n/**\n * Pre-configured: Staff and super admin only\n * Default redirect: Home, Default login: /auth/login\n */\nexport const staffOnly = createStaffOnlyGuard();\n\n/**\n * Pre-configured: Super admin only\n * Default redirect: /notfound, Default login: /auth/login\n */\nexport const userIsSuperAdmin = createSuperAdminOnlyGuard();\n\n/**\n * Pre-configured: Lead, staff, and super admin\n * Default redirect: Home, Default login: /auth/login\n */\nexport const leadOrStaffOnly = createLeadOrStaffOnlyGuard();\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dragonmastery/dragoncore-vue",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "description": "Vue 3 components and composables for dragoncore",
5
5
  "author": "DragonMastery",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -34,14 +34,14 @@
34
34
  "npm:publish": "bun run ../publish.ts"
35
35
  },
36
36
  "dependencies": {
37
- "capnweb": "0.5.0",
37
+ "capnweb": "0.6.0",
38
38
  "dompurify": "^3.3.1",
39
39
  "jwt-decode": "4.0.0",
40
40
  "marked": "^17.0.3",
41
41
  "vue3-toastify": "0.2.8"
42
42
  },
43
43
  "peerDependencies": {
44
- "@dragonmastery/dragoncore-shared": "^0.0.21",
44
+ "@dragonmastery/dragoncore-shared": "^0.0.23",
45
45
  "@dragonmastery/zinia-forms-core": ">=0.5.11",
46
46
  "@vueuse/core": ">=14.0.0",
47
47
  "pinia": ">=3.0.0",
@@ -1,3 +0,0 @@
1
- import { t as Appearance_default } from "./Appearance-DxWTyx1M.js";
2
-
3
- export { Appearance_default as default };
@@ -1,6 +0,0 @@
1
- import "./useRpcAuth-rmHf7bYx.js";
2
- import "./useQueryCache-Bjm-S8v5.js";
3
- import "./useMutation-BTsyHKyn.js";
4
- import { t as ChangePasswordPage_default } from "./ChangePasswordPage--3XwluwE.js";
5
-
6
- export { ChangePasswordPage_default as default };
@@ -1,213 +0,0 @@
1
- import { l as useUserSessionStore } from "./useRpcAuth-rmHf7bYx.js";
2
- import "./useQueryCache-Bjm-S8v5.js";
3
- import { t as useMutation } from "./useMutation-BTsyHKyn.js";
4
- import { t as useQuery } from "./useQuery-BggIE52P.js";
5
- import { Fragment, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, nextTick, openBlock, reactive, ref, renderList, renderSlot, toDisplayString, unref, watch, withCtx } from "vue";
6
- import { useRouter } from "vue-router";
7
- import { toast } from "vue3-toastify";
8
- import { recordConsentsSchema } from "@dragonmastery/dragoncore-shared";
9
- import { useForm, withMetadata } from "@dragonmastery/zinia-forms-core";
10
- import DOMPurify from "dompurify";
11
- import { marked } from "marked";
12
-
13
- //#region src/slices/auth/shared/ConsentTermsSection.vue
14
- const _hoisted_1$1 = { class: "mb-6" };
15
- const _hoisted_2$1 = { class: "font-semibold mb-2" };
16
- const _hoisted_3$1 = {
17
- key: 0,
18
- class: "text-sm text-base-content/70 mb-2"
19
- };
20
- const _hoisted_4$1 = ["data-consent-type"];
21
- const _hoisted_5 = ["innerHTML"];
22
- const _hoisted_6 = { class: "mb-3" };
23
- const _hoisted_7 = ["href"];
24
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
25
- __name: "ConsentTermsSection",
26
- props: {
27
- config: {},
28
- checkboxDisabled: { type: Boolean }
29
- },
30
- emits: ["scrolledToBottom"],
31
- setup(__props, { emit: __emit }) {
32
- const emit = __emit;
33
- const scrollEl = ref(null);
34
- function setScrollRef(el) {
35
- scrollEl.value = el instanceof HTMLElement ? el : null;
36
- }
37
- /** Renders markdown content as sanitized HTML */
38
- function renderMarkdown(content) {
39
- const html = marked.parse(content);
40
- return DOMPurify.sanitize(html, {
41
- ALLOWED_TAGS: [
42
- "p",
43
- "br",
44
- "strong",
45
- "em",
46
- "u",
47
- "a",
48
- "ul",
49
- "ol",
50
- "li",
51
- "h1",
52
- "h2",
53
- "h3",
54
- "h4",
55
- "blockquote",
56
- "code",
57
- "pre",
58
- "hr"
59
- ],
60
- ALLOWED_ATTR: [
61
- "href",
62
- "target",
63
- "rel"
64
- ]
65
- });
66
- }
67
- function checkScrolledToBottom() {
68
- const el = scrollEl.value;
69
- if (!el) return;
70
- const { scrollTop, scrollHeight, clientHeight } = el;
71
- if (scrollHeight - scrollTop - clientHeight < 10) emit("scrolledToBottom");
72
- }
73
- function onScroll() {
74
- checkScrolledToBottom();
75
- }
76
- nextTick(checkScrolledToBottom);
77
- return (_ctx, _cache) => {
78
- return openBlock(), createElementBlock("div", _hoisted_1$1, [
79
- createElementVNode("div", _hoisted_2$1, toDisplayString(__props.config.label), 1),
80
- __props.config.content ? (openBlock(), createElementBlock("p", _hoisted_3$1, " Please read the full document before accepting. Scroll to the bottom when you've finished reading. ")) : createCommentVNode("v-if", true),
81
- createCommentVNode(" Scrollable terms box when content is provided (supports Markdown) "),
82
- __props.config.content ? (openBlock(), createElementBlock("div", {
83
- key: 1,
84
- ref: (el) => setScrollRef(el),
85
- class: "border border-base-300 rounded-lg px-3 py-4 sm:p-4 bg-base-100 overflow-y-auto overflow-x-hidden mb-3 min-h-80 max-h-[min(32rem,70vh)] w-full min-w-0",
86
- "data-consent-type": __props.config.type,
87
- onScroll
88
- }, [createElementVNode("div", {
89
- class: "prose prose-sm prose-max-w-none max-w-full min-w-0 text-sm prose-headings:font-semibold prose-p:my-2",
90
- innerHTML: renderMarkdown(__props.config.content)
91
- }, null, 8, _hoisted_5)], 40, _hoisted_4$1)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [createCommentVNode(" Link-only fallback when no content "), createElementVNode("div", _hoisted_6, [__props.config.url ? (openBlock(), createElementBlock("a", {
92
- key: 0,
93
- href: __props.config.url,
94
- target: "_blank",
95
- rel: "noopener noreferrer",
96
- class: "link link-accent"
97
- }, " View " + toDisplayString(__props.config.label), 9, _hoisted_7)) : createCommentVNode("v-if", true)])], 2112)),
98
- renderSlot(_ctx.$slots, "checkbox", {
99
- label: __props.config.content ? `I have read and accept the ${__props.config.label}` : `I accept the ${__props.config.label}`,
100
- disabled: __props.checkboxDisabled
101
- })
102
- ]);
103
- };
104
- }
105
- });
106
- var ConsentTermsSection_default = _sfc_main$1;
107
-
108
- //#endregion
109
- //#region src/slices/auth/features/consent_required/ConsentRequired.vue
110
- const _hoisted_1 = { class: "w-full max-w-md mx-auto mb-8 sm:mb-10 bg-base-200 px-3 py-4 sm:px-6 sm:py-6 rounded-xl shadow-md container min-w-0" };
111
- const _hoisted_2 = { class: "flex flex-col gap-5 mt-6" };
112
- const _hoisted_3 = ["disabled"];
113
- const _hoisted_4 = {
114
- key: 1,
115
- class: "text-center"
116
- };
117
- const _sfc_main = /* @__PURE__ */ defineComponent({
118
- __name: "ConsentRequired",
119
- setup(__props) {
120
- const { ziniaGeneric, ZiniaForm, ZiniaSubmitButton } = useForm(withMetadata(recordConsentsSchema, "recordConsents", {}), {
121
- storeName: "consent-required-form",
122
- persistToLocalStorage: false,
123
- renderStyle: "daisy_ui"
124
- });
125
- const sessionStore = useUserSessionStore();
126
- const router = useRouter();
127
- const { data: pendingConsents, loading } = useQuery((api) => api.users.getPendingConsents(), { skipAuthCheck: false });
128
- const hasScrolledToBottom = reactive({});
129
- watch(() => pendingConsents.value, (consents) => {
130
- if (!consents) return;
131
- for (const c of consents) if (c.content) hasScrolledToBottom[c.type] = false;
132
- else hasScrolledToBottom[c.type] = true;
133
- }, { immediate: true });
134
- watch([pendingConsents, loading], ([consents, isLoading]) => {
135
- if (!isLoading && Array.isArray(consents) && consents.length === 0) router.push("/");
136
- }, { immediate: true });
137
- const declining = ref(false);
138
- const { mutate: recordConsentsMutate } = useMutation((api, input) => api.users.recordConsents(input), { skipAuthCheck: false });
139
- const handleSubmit = async (data) => {
140
- await recordConsentsMutate(data);
141
- return data;
142
- };
143
- const handleSuccess = async () => {
144
- await sessionStore.refreshToken();
145
- toast.success("Consents recorded. You can now continue.");
146
- window.scrollTo(0, 0);
147
- await router.push("/");
148
- };
149
- const handleError = (error) => {
150
- toast.error(error instanceof Error ? error.message : "Failed to record consents");
151
- };
152
- const handleDecline = async () => {
153
- declining.value = true;
154
- try {
155
- sessionStore.clearSession();
156
- toast.info("You have declined. You have been logged out.");
157
- await router.push("/auth/login");
158
- } finally {
159
- declining.value = false;
160
- }
161
- };
162
- return (_ctx, _cache) => {
163
- return openBlock(), createElementBlock("div", _hoisted_1, [
164
- _cache[1] || (_cache[1] = createElementVNode("h1", { class: "text-2xl font-bold mb-6 text-center" }, "Additional consent required", -1)),
165
- _cache[2] || (_cache[2] = createElementVNode("p", { class: "text-base-content/80 mb-6" }, " We've updated our terms. Please review the following and scroll to the bottom of each section before you can accept. If you decline, you will not have access to the application and will be logged out. ", -1)),
166
- (unref(pendingConsents) ?? []).length > 0 ? (openBlock(), createBlock(unref(ZiniaForm), {
167
- key: 0,
168
- onHandleSubmit: handleSubmit,
169
- onSuccess: handleSuccess,
170
- onError: handleError
171
- }, {
172
- default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(pendingConsents) ?? [], (config) => {
173
- return openBlock(), createBlock(ConsentTermsSection_default, {
174
- key: config.type,
175
- config,
176
- "checkbox-disabled": config.content ? !hasScrolledToBottom[config.type] : false,
177
- onScrolledToBottom: ($event) => hasScrolledToBottom[config.type] = true
178
- }, {
179
- checkbox: withCtx(({ label, disabled }) => [createVNode(unref(ziniaGeneric).CheckboxField, {
180
- name: `acceptances.${config.type}`,
181
- label,
182
- disabled
183
- }, null, 8, [
184
- "name",
185
- "label",
186
- "disabled"
187
- ])]),
188
- _: 2
189
- }, 1032, [
190
- "config",
191
- "checkbox-disabled",
192
- "onScrolledToBottom"
193
- ]);
194
- }), 128)), createElementVNode("div", _hoisted_2, [createVNode(unref(ZiniaSubmitButton), {
195
- submitText: "Accept and continue",
196
- submittingText: "Saving..."
197
- }), createElementVNode("button", {
198
- type: "button",
199
- class: "btn btn-outline btn-sm btn-error",
200
- disabled: declining.value,
201
- onClick: handleDecline
202
- }, toDisplayString(declining.value ? "Logging out..." : "Decline and log out"), 9, _hoisted_3)])]),
203
- _: 1
204
- })) : (openBlock(), createElementBlock("div", _hoisted_4, [..._cache[0] || (_cache[0] = [createElementVNode("p", { class: "text-base-content/80 mb-4" }, "Loading...", -1)])]))
205
- ]);
206
- };
207
- }
208
- });
209
- var ConsentRequired_default = _sfc_main;
210
-
211
- //#endregion
212
- export { ConsentRequired_default as default };
213
- //# sourceMappingURL=ConsentRequired-C4IRMA0c.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConsentRequired-C4IRMA0c.js","names":[],"sources":["../src/slices/auth/shared/ConsentTermsSection.vue","../src/slices/auth/features/consent_required/ConsentRequired.vue"],"sourcesContent":["<template>\n <div class=\"mb-6\">\n <div class=\"font-semibold mb-2\">{{ config.label }}</div>\n\n <p v-if=\"config.content\" class=\"text-sm text-base-content/70 mb-2\">\n Please read the full document before accepting. Scroll to the bottom when you've finished reading.\n </p>\n\n <!-- Scrollable terms box when content is provided (supports Markdown) -->\n <div\n v-if=\"config.content\"\n :ref=\"(el) => setScrollRef(el)\"\n class=\"border border-base-300 rounded-lg px-3 py-4 sm:p-4 bg-base-100 overflow-y-auto overflow-x-hidden mb-3 min-h-80 max-h-[min(32rem,70vh)] w-full min-w-0\"\n :data-consent-type=\"config.type\"\n @scroll=\"onScroll\"\n >\n <div\n class=\"prose prose-sm prose-max-w-none max-w-full min-w-0 text-sm prose-headings:font-semibold prose-p:my-2\"\n v-html=\"renderMarkdown(config.content)\"\n />\n </div>\n\n <!-- Link-only fallback when no content -->\n <div v-else class=\"mb-3\">\n <a\n v-if=\"config.url\"\n :href=\"config.url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"link link-accent\"\n >\n View {{ config.label }}\n </a>\n </div>\n\n <slot\n name=\"checkbox\"\n :label=\"config.content ? `I have read and accept the ${config.label}` : `I accept the ${config.label}`\"\n :disabled=\"checkboxDisabled\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { SignupConsentConfigDto } from '@dragonmastery/dragoncore-shared';\nimport DOMPurify from 'dompurify';\nimport { marked } from 'marked';\nimport { nextTick, ref } from 'vue';\n\ndefineProps<{\n config: SignupConsentConfigDto;\n checkboxDisabled: boolean;\n}>();\n\nconst emit = defineEmits<{\n scrolledToBottom: [];\n}>();\n\nconst scrollEl = ref<HTMLElement | null>(null);\n\nfunction setScrollRef(el: unknown) {\n scrollEl.value = el instanceof HTMLElement ? el : null;\n}\n\n/** Renders markdown content as sanitized HTML */\nfunction renderMarkdown(content: string): string {\n const html = marked.parse(content) as string;\n return DOMPurify.sanitize(html, {\n ALLOWED_TAGS: ['p', 'br', 'strong', 'em', 'u', 'a', 'ul', 'ol', 'li', 'h1', 'h2', 'h3', 'h4', 'blockquote', 'code', 'pre', 'hr'],\n ALLOWED_ATTR: ['href', 'target', 'rel'],\n });\n}\n\nfunction checkScrolledToBottom() {\n const el = scrollEl.value;\n if (!el) return;\n const { scrollTop, scrollHeight, clientHeight } = el;\n const atBottom = scrollHeight - scrollTop - clientHeight < 10;\n if (atBottom) {\n emit('scrolledToBottom');\n }\n}\n\nfunction onScroll() {\n checkScrolledToBottom();\n}\n\n// When content is short and doesn't need scrolling\nnextTick(checkScrolledToBottom);\n</script>\n","<template>\n <div class=\"w-full max-w-md mx-auto mb-8 sm:mb-10 bg-base-200 px-3 py-4 sm:px-6 sm:py-6 rounded-xl shadow-md container min-w-0\">\n <h1 class=\"text-2xl font-bold mb-6 text-center\">Additional consent required</h1>\n <p class=\"text-base-content/80 mb-6\">\n We've updated our terms. Please review the following and scroll to the bottom of each section\n before you can accept. If you decline, you will not have access to the application and will be logged out.\n </p>\n\n <ZiniaForm\n v-if=\"(pendingConsents ?? []).length > 0\"\n @handle-submit=\"handleSubmit\"\n @success=\"handleSuccess\"\n @error=\"handleError\"\n >\n <ConsentTermsSection\n v-for=\"config in (pendingConsents ?? [])\"\n :key=\"config.type\"\n :config=\"config\"\n :checkbox-disabled=\"config.content ? !hasScrolledToBottom[config.type] : false\"\n @scrolled-to-bottom=\"hasScrolledToBottom[config.type] = true\"\n >\n <template #checkbox=\"{ label, disabled }\">\n <ziniaGeneric.CheckboxField\n :name=\"`acceptances.${config.type}`\"\n :label=\"label\"\n :disabled=\"disabled\"\n />\n </template>\n </ConsentTermsSection>\n\n <div class=\"flex flex-col gap-5 mt-6\">\n <ZiniaSubmitButton submitText=\"Accept and continue\" submittingText=\"Saving...\" />\n <button\n type=\"button\"\n class=\"btn btn-outline btn-sm btn-error\"\n :disabled=\"declining\"\n @click=\"handleDecline\"\n >\n {{ declining ? 'Logging out...' : 'Decline and log out' }}\n </button>\n </div>\n </ZiniaForm>\n\n <div v-else class=\"text-center\">\n <p class=\"text-base-content/80 mb-4\">Loading...</p>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { RecordConsentsInputDto } from '@dragonmastery/dragoncore-shared';\nimport { recordConsentsSchema } from '@dragonmastery/dragoncore-shared';\nimport { withMetadata } from '@dragonmastery/zinia-forms-core';\nimport { useForm } from '@dragonmastery/zinia-forms-core';\nimport ConsentTermsSection from '../../shared/ConsentTermsSection.vue';\nimport { reactive, ref, watch } from 'vue';\nimport { useRouter } from 'vue-router';\nimport { toast } from 'vue3-toastify';\nimport { useMutation } from '../../../../composables/useMutation';\nimport { useQuery } from '../../../../composables/useQuery';\nimport { useUserSessionStore } from '../../../../composables/useUserSessionStore';\n\nconst recordConsentsSchemaWithMetadata = withMetadata(recordConsentsSchema, 'recordConsents', {});\n\nconst { ziniaGeneric, ZiniaForm, ZiniaSubmitButton } = useForm(recordConsentsSchemaWithMetadata, {\n storeName: 'consent-required-form',\n persistToLocalStorage: false,\n renderStyle: 'daisy_ui',\n});\n\nconst sessionStore = useUserSessionStore();\nconst router = useRouter();\n\nconst { data: pendingConsents, loading } = useQuery(\n (api) => api.users.getPendingConsents(),\n { skipAuthCheck: false },\n);\n\n// Scroll-to-bottom tracking: consent type -> whether user has scrolled to bottom\nconst hasScrolledToBottom = reactive<Record<string, boolean>>({});\n// Initialize scroll state when consents load; ConsentTermsSection handles \"content fits\" via its own nextTick\nwatch(\n () => pendingConsents.value,\n (consents) => {\n if (!consents) return;\n for (const c of consents) {\n if (c.content) {\n hasScrolledToBottom[c.type] = false;\n } else {\n hasScrolledToBottom[c.type] = true;\n }\n }\n },\n { immediate: true },\n);\n\n// If no pending consents (e.g. already completed or consent disabled), redirect home\nwatch(\n [pendingConsents, loading],\n ([consents, isLoading]) => {\n if (!isLoading && Array.isArray(consents) && consents.length === 0) {\n router.push('/');\n }\n },\n { immediate: true },\n);\n\nconst declining = ref(false);\n\nconst { mutate: recordConsentsMutate } = useMutation(\n (api, input: RecordConsentsInputDto) => api.users.recordConsents(input),\n { skipAuthCheck: false },\n);\n\nconst handleSubmit = async (data: RecordConsentsInputDto) => {\n await recordConsentsMutate(data);\n return data;\n};\n\nconst handleSuccess = async () => {\n await sessionStore.refreshToken();\n toast.success('Consents recorded. You can now continue.');\n window.scrollTo(0, 0);\n await router.push('/');\n};\n\nconst handleError = (error: unknown) => {\n toast.error(error instanceof Error ? error.message : 'Failed to record consents');\n};\n\nconst handleDecline = async () => {\n declining.value = true;\n try {\n sessionStore.clearSession();\n toast.info('You have declined. You have been logged out.');\n await router.push('/auth/login');\n } finally {\n declining.value = false;\n }\n};\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDA,MAAM,OAAO;EAIb,MAAM,WAAW,IAAwB,KAAK;EAE9C,SAAS,aAAa,IAAa;AACjC,YAAS,QAAQ,cAAc,cAAc,KAAK;;;EAIpD,SAAS,eAAe,SAAyB;GAC/C,MAAM,OAAO,OAAO,MAAM,QAAQ;AAClC,UAAO,UAAU,SAAS,MAAM;IAC9B,cAAc;KAAC;KAAK;KAAM;KAAU;KAAM;KAAK;KAAK;KAAM;KAAM;KAAM;KAAM;KAAM;KAAM;KAAM;KAAc;KAAQ;KAAO;KAAK;IAChI,cAAc;KAAC;KAAQ;KAAU;KAAM;IACxC,CAAC;;EAGJ,SAAS,wBAAwB;GAC/B,MAAM,KAAK,SAAS;AACpB,OAAI,CAAC,GAAI;GACT,MAAM,EAAE,WAAW,cAAc,iBAAiB;AAElD,OADiB,eAAe,YAAY,eAAe,GAEzD,MAAK,mBAAmB;;EAI5B,SAAS,WAAW;AAClB,0BAAuB;;AAIzB,WAAS,sBAAsB;;uBAvF7B,mBAuCM,OAvCN,cAuCM;IAtCJ,mBAAwD,OAAxD,cAAwD,gBAArB,QAAA,OAAO,MAAK,EAAA,EAAA;IAEtC,QAAA,OAAO,WAAA,WAAA,EAAhB,mBAEI,KAFJ,cAAmE,uGAEnE,IAAA,mBAAA,QAAA,KAAA;IAEA,mBAAA,sEAA0E;IAElE,QAAA,OAAO,WAAA,WAAA,EADf,mBAWM,OAAA;;KATH,MAAM,OAAO,aAAa,GAAE;KAC7B,OAAM;KACL,qBAAmB,QAAA,OAAO;KAClB;QAET,mBAGE,OAAA;KAFA,OAAM;KACN,WAAQ,eAAe,QAAA,OAAO,QAAO;iEAKzC,mBAUM,UAAA,EAAA,KAAA,GAAA,EAAA,CAXN,mBAAA,uCAA2C,EAC3C,mBAUM,OAVN,YAUM,CARI,QAAA,OAAO,OAAA,WAAA,EADf,mBAQI,KAAA;;KAND,MAAM,QAAA,OAAO;KACd,QAAO;KACP,KAAI;KACJ,OAAM;OACP,WACM,gBAAG,QAAA,OAAO,MAAK,EAAA,GAAA,WAAA,IAAA,mBAAA,QAAA,KAAA,CAAA,CAAA,CAAA;IAIxB,WAIE,KAAA,QAAA,YAAA;KAFC,OAAO,QAAA,OAAO,UAAO,8BAAiC,QAAA,OAAO,UAAK,gBAAqB,QAAA,OAAO;KAC9F,UAAU,QAAA;;;;;;;;;;;;;;;;;;;;EC0BjB,MAAM,EAAE,cAAc,WAAW,sBAAsB,QAFd,aAAa,sBAAsB,kBAAkB,EAAE,CAAC,EAEA;GAC/F,WAAW;GACX,uBAAuB;GACvB,aAAa;GACd,CAAC;EAEF,MAAM,eAAe,qBAAqB;EAC1C,MAAM,SAAS,WAAW;EAE1B,MAAM,EAAE,MAAM,iBAAiB,YAAY,UACxC,QAAQ,IAAI,MAAM,oBAAoB,EACvC,EAAE,eAAe,OAAO,CACzB;EAGD,MAAM,sBAAsB,SAAkC,EAAE,CAAC;AAEjE,cACQ,gBAAgB,QACrB,aAAa;AACZ,OAAI,CAAC,SAAU;AACf,QAAK,MAAM,KAAK,SACd,KAAI,EAAE,QACJ,qBAAoB,EAAE,QAAQ;OAE9B,qBAAoB,EAAE,QAAQ;KAIpC,EAAE,WAAW,MAAM,CACpB;AAGD,QACE,CAAC,iBAAiB,QAAQ,GACzB,CAAC,UAAU,eAAe;AACzB,OAAI,CAAC,aAAa,MAAM,QAAQ,SAAS,IAAI,SAAS,WAAW,EAC/D,QAAO,KAAK,IAAI;KAGpB,EAAE,WAAW,MAAM,CACpB;EAED,MAAM,YAAY,IAAI,MAAM;EAE5B,MAAM,EAAE,QAAQ,yBAAyB,aACtC,KAAK,UAAkC,IAAI,MAAM,eAAe,MAAM,EACvE,EAAE,eAAe,OAAO,CACzB;EAED,MAAM,eAAe,OAAO,SAAiC;AAC3D,SAAM,qBAAqB,KAAK;AAChC,UAAO;;EAGT,MAAM,gBAAgB,YAAY;AAChC,SAAM,aAAa,cAAc;AACjC,SAAM,QAAQ,2CAA2C;AACzD,UAAO,SAAS,GAAG,EAAE;AACrB,SAAM,OAAO,KAAK,IAAI;;EAGxB,MAAM,eAAe,UAAmB;AACtC,SAAM,MAAM,iBAAiB,QAAQ,MAAM,UAAU,4BAA4B;;EAGnF,MAAM,gBAAgB,YAAY;AAChC,aAAU,QAAQ;AAClB,OAAI;AACF,iBAAa,cAAc;AAC3B,UAAM,KAAK,+CAA+C;AAC1D,UAAM,OAAO,KAAK,cAAc;aACxB;AACR,cAAU,QAAQ;;;;uBAxIpB,mBA6CM,OA7CN,YA6CM;8BA5CJ,mBAAgF,MAAA,EAA5E,OAAM,uCAAqC,EAAC,+BAA2B,GAAA;8BAC3E,mBAGI,KAAA,EAHD,OAAM,6BAA2B,EAAC,8MAGrC,GAAA;KAGS,MAAA,gBAAe,IAAA,EAAA,EAAQ,SAAM,KAAA,WAAA,EADtC,YAiCY,MAAA,UAAA,EAAA;;KA/BT,gBAAe;KACf,WAAS;KACT,SAAO;;4BAGmC,EAAA,UAAA,KAAA,EAD3C,mBAcsB,UAAA,MAAA,WAbF,MAAA,gBAAe,IAAA,EAAA,GAA1B,WAAM;0BADf,YAcsB,6BAAA;OAZnB,KAAK,OAAO;OACJ;OACR,qBAAmB,OAAO,UAAO,CAAI,oBAAoB,OAAO,QAAI;OACpE,qBAAkB,WAAE,oBAAoB,OAAO,QAAI;;OAEzC,UAAQ,SAKf,EALmB,OAAO,eAAQ,CACpC,YAIE,MAAA,aAAA,CAAA,eAAA;QAHC,MAAI,eAAiB,OAAO;QACrB;QACG;;;;;;;;;;;;gBAKjB,mBAUM,OAVN,YAUM,CATJ,YAAiF,MAAA,kBAAA,EAAA;MAA9D,YAAW;MAAsB,gBAAe;SACnE,mBAOS,UAAA;MANP,MAAK;MACL,OAAM;MACL,UAAU,UAAA;MACV,SAAO;wBAEL,UAAA,QAAS,mBAAA,sBAAA,EAAA,GAAA,WAAA,CAAA,CAAA,CAAA,CAAA;;wBAKlB,mBAEM,OAFN,YAEM,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CADJ,mBAAmD,KAAA,EAAhD,OAAM,6BAA2B,EAAC,cAAU,GAAA,CAAA,EAAA,CAAA"}
@@ -1,35 +0,0 @@
1
- import "./useRpcAuth-rmHf7bYx.js";
2
- import "./useQueryCache-Bjm-S8v5.js";
3
- import "./useMutation-BTsyHKyn.js";
4
- import "./useQuery-BggIE52P.js";
5
- import { mt as CreateTeamForm_default } from "./src-QZJyMfGX.js";
6
- import "./AppLink-CHMMrSFI.js";
7
- import "./TimelineSystemEvent-BHzFr46C.js";
8
- import "./TeamMembersTab-4gmnP9sD.js";
9
- import "./Appearance-DxWTyx1M.js";
10
- import "./useSignupPendingData-BWHwUHhL.js";
11
- import "./useBreadcrumbs-qB6ghsAf.js";
12
- import "./EditTeamMemberForm-CaS2GLjV.js";
13
- import "./RecordVersionViewer-BWZ78vvE.js";
14
- import "./TeamHistoryTab-D5biUPmq.js";
15
- import "./UserProfilePage-C3b93Keh.js";
16
- import "./ChangePasswordPage--3XwluwE.js";
17
- import "./TeamNotesTab-BzGZZ1h8.js";
18
- import "./CustomerSupportTicketParent-HIxwSVdu.js";
19
- import "./SupportTicketDevLifecycleBadge-EMrQHfyG.js";
20
- import "./StaffSupportTicketParent-CilR4RGM.js";
21
- import "./LoginForm-9UFnA-fO.js";
22
- import "./useEmailVerificationChannel-BNi926Ho.js";
23
- import "./Signup-9TjMMnU4.js";
24
- import "./ForgotPassword-OjIPi9s9.js";
25
- import "./ResetPassword-BE4mXK9q.js";
26
- import "./Logout-YgTgOFUH.js";
27
- import "./mfaSchema-BnRWf0ma.js";
28
- import "./MfaSetup-RtFMY_dj.js";
29
- import "./MfaVerify-Cvhe8bEM.js";
30
- import "./VerifyEmail-DlOmWGG-.js";
31
- import "./UserListPage-DUE5gJTo.js";
32
- import "./CreateUserPage-DLwXeLAq.js";
33
- import "./EditUserPage-DURc5rmi.js";
34
-
35
- export { CreateTeamForm_default as default };
@@ -1,35 +0,0 @@
1
- import "./useRpcAuth-rmHf7bYx.js";
2
- import "./useQueryCache-Bjm-S8v5.js";
3
- import "./useMutation-BTsyHKyn.js";
4
- import "./useQuery-BggIE52P.js";
5
- import { ot as CreateTeamMemberForm_default } from "./src-QZJyMfGX.js";
6
- import "./AppLink-CHMMrSFI.js";
7
- import "./TimelineSystemEvent-BHzFr46C.js";
8
- import "./TeamMembersTab-4gmnP9sD.js";
9
- import "./Appearance-DxWTyx1M.js";
10
- import "./useSignupPendingData-BWHwUHhL.js";
11
- import "./useBreadcrumbs-qB6ghsAf.js";
12
- import "./EditTeamMemberForm-CaS2GLjV.js";
13
- import "./RecordVersionViewer-BWZ78vvE.js";
14
- import "./TeamHistoryTab-D5biUPmq.js";
15
- import "./UserProfilePage-C3b93Keh.js";
16
- import "./ChangePasswordPage--3XwluwE.js";
17
- import "./TeamNotesTab-BzGZZ1h8.js";
18
- import "./CustomerSupportTicketParent-HIxwSVdu.js";
19
- import "./SupportTicketDevLifecycleBadge-EMrQHfyG.js";
20
- import "./StaffSupportTicketParent-CilR4RGM.js";
21
- import "./LoginForm-9UFnA-fO.js";
22
- import "./useEmailVerificationChannel-BNi926Ho.js";
23
- import "./Signup-9TjMMnU4.js";
24
- import "./ForgotPassword-OjIPi9s9.js";
25
- import "./ResetPassword-BE4mXK9q.js";
26
- import "./Logout-YgTgOFUH.js";
27
- import "./mfaSchema-BnRWf0ma.js";
28
- import "./MfaSetup-RtFMY_dj.js";
29
- import "./MfaVerify-Cvhe8bEM.js";
30
- import "./VerifyEmail-DlOmWGG-.js";
31
- import "./UserListPage-DUE5gJTo.js";
32
- import "./CreateUserPage-DLwXeLAq.js";
33
- import "./EditUserPage-DURc5rmi.js";
34
-
35
- export { CreateTeamMemberForm_default as default };
@@ -1,6 +0,0 @@
1
- import "./useRpcAuth-rmHf7bYx.js";
2
- import "./useQueryCache-Bjm-S8v5.js";
3
- import "./useMutation-BTsyHKyn.js";
4
- import { t as CreateUserPage_default } from "./CreateUserPage-DLwXeLAq.js";
5
-
6
- export { CreateUserPage_default as default };
@@ -1,35 +0,0 @@
1
- import "./useRpcAuth-rmHf7bYx.js";
2
- import "./useQueryCache-Bjm-S8v5.js";
3
- import "./useMutation-BTsyHKyn.js";
4
- import "./useQuery-BggIE52P.js";
5
- import { s as CreditBalanceDashboard_default } from "./src-QZJyMfGX.js";
6
- import "./AppLink-CHMMrSFI.js";
7
- import "./TimelineSystemEvent-BHzFr46C.js";
8
- import "./TeamMembersTab-4gmnP9sD.js";
9
- import "./Appearance-DxWTyx1M.js";
10
- import "./useSignupPendingData-BWHwUHhL.js";
11
- import "./useBreadcrumbs-qB6ghsAf.js";
12
- import "./EditTeamMemberForm-CaS2GLjV.js";
13
- import "./RecordVersionViewer-BWZ78vvE.js";
14
- import "./TeamHistoryTab-D5biUPmq.js";
15
- import "./UserProfilePage-C3b93Keh.js";
16
- import "./ChangePasswordPage--3XwluwE.js";
17
- import "./TeamNotesTab-BzGZZ1h8.js";
18
- import "./CustomerSupportTicketParent-HIxwSVdu.js";
19
- import "./SupportTicketDevLifecycleBadge-EMrQHfyG.js";
20
- import "./StaffSupportTicketParent-CilR4RGM.js";
21
- import "./LoginForm-9UFnA-fO.js";
22
- import "./useEmailVerificationChannel-BNi926Ho.js";
23
- import "./Signup-9TjMMnU4.js";
24
- import "./ForgotPassword-OjIPi9s9.js";
25
- import "./ResetPassword-BE4mXK9q.js";
26
- import "./Logout-YgTgOFUH.js";
27
- import "./mfaSchema-BnRWf0ma.js";
28
- import "./MfaSetup-RtFMY_dj.js";
29
- import "./MfaVerify-Cvhe8bEM.js";
30
- import "./VerifyEmail-DlOmWGG-.js";
31
- import "./UserListPage-DUE5gJTo.js";
32
- import "./CreateUserPage-DLwXeLAq.js";
33
- import "./EditUserPage-DURc5rmi.js";
34
-
35
- export { CreditBalanceDashboard_default as default };
@@ -1,35 +0,0 @@
1
- import "./useRpcAuth-rmHf7bYx.js";
2
- import "./useQueryCache-Bjm-S8v5.js";
3
- import "./useMutation-BTsyHKyn.js";
4
- import "./useQuery-BggIE52P.js";
5
- import { t as CreditManagement_default } from "./src-QZJyMfGX.js";
6
- import "./AppLink-CHMMrSFI.js";
7
- import "./TimelineSystemEvent-BHzFr46C.js";
8
- import "./TeamMembersTab-4gmnP9sD.js";
9
- import "./Appearance-DxWTyx1M.js";
10
- import "./useSignupPendingData-BWHwUHhL.js";
11
- import "./useBreadcrumbs-qB6ghsAf.js";
12
- import "./EditTeamMemberForm-CaS2GLjV.js";
13
- import "./RecordVersionViewer-BWZ78vvE.js";
14
- import "./TeamHistoryTab-D5biUPmq.js";
15
- import "./UserProfilePage-C3b93Keh.js";
16
- import "./ChangePasswordPage--3XwluwE.js";
17
- import "./TeamNotesTab-BzGZZ1h8.js";
18
- import "./CustomerSupportTicketParent-HIxwSVdu.js";
19
- import "./SupportTicketDevLifecycleBadge-EMrQHfyG.js";
20
- import "./StaffSupportTicketParent-CilR4RGM.js";
21
- import "./LoginForm-9UFnA-fO.js";
22
- import "./useEmailVerificationChannel-BNi926Ho.js";
23
- import "./Signup-9TjMMnU4.js";
24
- import "./ForgotPassword-OjIPi9s9.js";
25
- import "./ResetPassword-BE4mXK9q.js";
26
- import "./Logout-YgTgOFUH.js";
27
- import "./mfaSchema-BnRWf0ma.js";
28
- import "./MfaSetup-RtFMY_dj.js";
29
- import "./MfaVerify-Cvhe8bEM.js";
30
- import "./VerifyEmail-DlOmWGG-.js";
31
- import "./UserListPage-DUE5gJTo.js";
32
- import "./CreateUserPage-DLwXeLAq.js";
33
- import "./EditUserPage-DURc5rmi.js";
34
-
35
- export { CreditManagement_default as default };