@mesob/auth-react 0.5.0 → 0.5.3

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 (214) hide show
  1. package/dist/{chunk-DG6GRTPG.js → chunk-4LHFPVAY.js} +2 -2
  2. package/dist/{chunk-H5PUZDNU.js → chunk-57L345IN.js} +4 -4
  3. package/dist/{chunk-CP4TTRV4.js → chunk-5B6GREDA.js} +2 -2
  4. package/dist/{chunk-TEHMLZFI.js → chunk-5XCUGCW7.js} +4 -4
  5. package/dist/{chunk-5AEV7RAN.js → chunk-6AV6I5B4.js} +3 -3
  6. package/dist/{chunk-SGDXNT7M.js → chunk-7VWWIN6Q.js} +3 -3
  7. package/dist/{chunk-AWSAC7RT.js → chunk-A5ON3RKH.js} +6 -3
  8. package/dist/chunk-A5ON3RKH.js.map +1 -0
  9. package/dist/{chunk-V6ZHX4LT.js → chunk-BM3YKYGC.js} +2 -2
  10. package/dist/{chunk-TLQMK2QF.js → chunk-BX75EFF3.js} +4 -4
  11. package/dist/{chunk-OXUOGOG3.js → chunk-DCWKYK3D.js} +88 -21
  12. package/dist/chunk-DCWKYK3D.js.map +1 -0
  13. package/dist/{chunk-W3D4HG5W.js → chunk-DRM44QBR.js} +3 -3
  14. package/dist/{chunk-Z34NJZRL.js → chunk-EIJFTUTM.js} +3 -3
  15. package/dist/{chunk-5E3XN6SW.js → chunk-FCPN2FD7.js} +5 -5
  16. package/dist/{chunk-VVKXFEAN.js → chunk-FLGP4ROM.js} +5 -5
  17. package/dist/{chunk-5SDS2E3F.js → chunk-FU4K62DS.js} +2 -2
  18. package/dist/chunk-G2XRGSQE.js +22 -0
  19. package/dist/chunk-G2XRGSQE.js.map +1 -0
  20. package/dist/{chunk-X2BHF4KC.js → chunk-G4VPR4UC.js} +2 -2
  21. package/dist/{chunk-MQI6Q2S4.js → chunk-GGBS64Z5.js} +147 -4
  22. package/dist/chunk-GGBS64Z5.js.map +1 -0
  23. package/dist/{chunk-2PV7RYNK.js → chunk-GQFTH5DQ.js} +95 -20
  24. package/dist/chunk-GQFTH5DQ.js.map +1 -0
  25. package/dist/{chunk-UY55LEIG.js → chunk-H2W42KYL.js} +2 -2
  26. package/dist/{chunk-EPEXIGKB.js → chunk-HBQK5PAH.js} +2 -2
  27. package/dist/{chunk-4ABXALRN.js → chunk-IBRB7ABJ.js} +2 -2
  28. package/dist/{chunk-RMJNENJB.js → chunk-IFFWIROT.js} +2 -2
  29. package/dist/{chunk-WY2JJNZW.js → chunk-IK7V3PT3.js} +2 -2
  30. package/dist/{chunk-N4JFMKGK.js → chunk-JKUKCVY7.js} +5 -5
  31. package/dist/{chunk-MWMSZVH3.js → chunk-K6ACPILA.js} +4 -4
  32. package/dist/{chunk-5BFG47VF.js → chunk-PUOQX6DR.js} +4 -4
  33. package/dist/{chunk-EQWOGD4F.js → chunk-SA6HTWCL.js} +2 -2
  34. package/dist/{chunk-73ZNGEWU.js → chunk-SX6WAVQS.js} +5 -5
  35. package/dist/{chunk-5HAABEAS.js → chunk-TAJQ7O3U.js} +2 -2
  36. package/dist/{chunk-MVVAPYUD.js → chunk-TPG4RW7H.js} +2 -2
  37. package/dist/{chunk-ECF6S2Y2.js → chunk-USVJBAWJ.js} +2 -2
  38. package/dist/{chunk-T34HJRUW.js → chunk-VMAGFUOK.js} +3 -3
  39. package/dist/{chunk-ZZ6D4KE4.js → chunk-VS5FEGMX.js} +2 -2
  40. package/dist/{chunk-IQNQGPIT.js → chunk-VWYJI2FU.js} +4 -4
  41. package/dist/{chunk-H7JRQFFI.js → chunk-W2HMARW4.js} +4 -4
  42. package/dist/{chunk-RRLFPSSM.js → chunk-W7UHDTBI.js} +33 -2
  43. package/dist/chunk-W7UHDTBI.js.map +1 -0
  44. package/dist/{chunk-4X3CJHKR.js → chunk-XLPPZKU2.js} +4 -4
  45. package/dist/{chunk-YFQNNSSC.js → chunk-XO5LLEGV.js} +2 -2
  46. package/dist/{chunk-4NUO6F3J.js → chunk-XZAYLXLS.js} +2 -2
  47. package/dist/{chunk-7CLKBH5Z.js → chunk-YCVDEX5U.js} +3 -3
  48. package/dist/{chunk-6THPM5LB.js → chunk-YQU3KG74.js} +4 -4
  49. package/dist/{chunk-GVEBIL3O.js → chunk-YVHMCTLM.js} +2 -2
  50. package/dist/{chunk-6IEX2RLA.js → chunk-Z4FXOZEJ.js} +3 -3
  51. package/dist/{chunk-UGQP733V.js → chunk-ZOKBN5H4.js} +2 -2
  52. package/dist/components/auth/countdown.js +3 -3
  53. package/dist/components/auth/forgot-password.js +4 -4
  54. package/dist/components/auth/reset-password-form.js +4 -4
  55. package/dist/components/auth/set-password.js +4 -4
  56. package/dist/components/auth/sign-in.js +4 -4
  57. package/dist/components/auth/sign-up.js +4 -4
  58. package/dist/components/auth/verification-form.js +4 -4
  59. package/dist/components/auth/verify-email.js +6 -6
  60. package/dist/components/auth/verify-phone.js +6 -6
  61. package/dist/components/authorization/deny.js +2 -2
  62. package/dist/components/authorization/grant.js +2 -2
  63. package/dist/components/error-boundary.d.ts +1 -1
  64. package/dist/components/iam/domains-page.js +6 -6
  65. package/dist/components/iam/iam-guard.js +3 -3
  66. package/dist/components/iam/permission-selector.js +2 -2
  67. package/dist/components/iam/permissions-page.js +4 -4
  68. package/dist/components/iam/permissions.js +2 -2
  69. package/dist/components/iam/role-detail-layout.js +2 -2
  70. package/dist/components/iam/role-detail-page.js +4 -4
  71. package/dist/components/iam/role-permissions-page.js +5 -5
  72. package/dist/components/iam/roles-page.js +6 -7
  73. package/dist/components/iam/roles.js +2 -2
  74. package/dist/components/iam/sessions-page.js +6 -6
  75. package/dist/components/iam/sessions.js +2 -2
  76. package/dist/components/iam/tenants-page.js +6 -6
  77. package/dist/components/iam/tenants.js +2 -2
  78. package/dist/components/iam/users-page.js +7 -7
  79. package/dist/components/iam/users.js +2 -2
  80. package/dist/components/profile/account.js +2 -2
  81. package/dist/components/profile/change-email-form.js +8 -8
  82. package/dist/components/profile/change-password-form.js +2 -2
  83. package/dist/components/profile/change-phone-form.js +8 -8
  84. package/dist/components/profile/otp-verification-modal.js +5 -5
  85. package/dist/components/profile/profile-layout.js +3 -3
  86. package/dist/components/profile/request-change-email-form.js +2 -2
  87. package/dist/components/profile/request-change-phone-form.js +2 -2
  88. package/dist/components/profile/security.js +13 -13
  89. package/dist/components/profile/verify-change-email-form.js +6 -6
  90. package/dist/components/profile/verify-change-phone-form.js +6 -6
  91. package/dist/index.d.ts +1 -0
  92. package/dist/index.js +976 -64
  93. package/dist/index.js.map +1 -1
  94. package/dist/pages/__import_guard_probe.d.ts +4 -0
  95. package/dist/pages/auth/forgot-password.js +1 -8
  96. package/dist/pages/auth/forgot-password.js.map +1 -1
  97. package/dist/pages/auth/layout.js +6 -4
  98. package/dist/pages/auth/layout.js.map +1 -1
  99. package/dist/pages/auth/reset-password.js +1 -8
  100. package/dist/pages/auth/reset-password.js.map +1 -1
  101. package/dist/pages/auth/set-password.js +1 -9
  102. package/dist/pages/auth/set-password.js.map +1 -1
  103. package/dist/pages/auth/sign-in.js +1 -9
  104. package/dist/pages/auth/sign-in.js.map +1 -1
  105. package/dist/pages/auth/sign-up.js +1 -8
  106. package/dist/pages/auth/sign-up.js.map +1 -1
  107. package/dist/pages/auth/verify-email.js +1 -10
  108. package/dist/pages/auth/verify-email.js.map +1 -1
  109. package/dist/pages/auth/verify-phone.js +1 -10
  110. package/dist/pages/auth/verify-phone.js.map +1 -1
  111. package/dist/pages/iam/domains.d.ts +1 -1
  112. package/dist/pages/iam/permissions.d.ts +1 -1
  113. package/dist/pages/iam/permissions.js +3 -7
  114. package/dist/pages/iam/permissions.js.map +1 -1
  115. package/dist/pages/iam/role-detail-layout.js +1 -5
  116. package/dist/pages/iam/role-detail-layout.js.map +1 -1
  117. package/dist/pages/iam/role-detail.js +1 -7
  118. package/dist/pages/iam/role-detail.js.map +1 -1
  119. package/dist/pages/iam/role-permissions.js +1 -8
  120. package/dist/pages/iam/role-permissions.js.map +1 -1
  121. package/dist/pages/iam/role-users.js +1 -13
  122. package/dist/pages/iam/role-users.js.map +1 -1
  123. package/dist/pages/iam/roles.d.ts +1 -1
  124. package/dist/pages/iam/roles.js +3 -11
  125. package/dist/pages/iam/roles.js.map +1 -1
  126. package/dist/pages/iam/sessions.d.ts +1 -1
  127. package/dist/pages/iam/sessions.js +3 -9
  128. package/dist/pages/iam/sessions.js.map +1 -1
  129. package/dist/pages/iam/tenant-detail.js +1 -8
  130. package/dist/pages/iam/tenant-detail.js.map +1 -1
  131. package/dist/pages/iam/tenants/tenant-selector.js +3 -3
  132. package/dist/pages/iam/tenants.d.ts +1 -1
  133. package/dist/pages/iam/tenants.js +3 -10
  134. package/dist/pages/iam/tenants.js.map +1 -1
  135. package/dist/pages/iam/user-activity.js +1 -12
  136. package/dist/pages/iam/user-activity.js.map +1 -1
  137. package/dist/pages/iam/user-detail-layout.js +1 -7
  138. package/dist/pages/iam/user-detail-layout.js.map +1 -1
  139. package/dist/pages/iam/user-detail.js +1 -7
  140. package/dist/pages/iam/user-detail.js.map +1 -1
  141. package/dist/pages/iam/users/user-selector.js +149 -7
  142. package/dist/pages/iam/users/user-selector.js.map +1 -1
  143. package/dist/pages/iam/users.d.ts +1 -1
  144. package/dist/pages/iam/users.js +3 -11
  145. package/dist/pages/iam/users.js.map +1 -1
  146. package/dist/pages/profile/account.js +2 -5
  147. package/dist/pages/profile/account.js.map +1 -1
  148. package/dist/pages/profile/layout.d.ts +1 -1
  149. package/dist/pages/profile/layout.js +3 -5
  150. package/dist/pages/profile/layout.js.map +1 -1
  151. package/dist/pages/profile/security.js +2 -16
  152. package/dist/pages/profile/security.js.map +1 -1
  153. package/dist/types.d.ts +11 -2
  154. package/dist/utils/handle-error.d.ts +3 -1
  155. package/dist/utils/safe-redirect.d.ts +2 -0
  156. package/package.json +3 -3
  157. package/dist/chunk-2PV7RYNK.js.map +0 -1
  158. package/dist/chunk-AWSAC7RT.js.map +0 -1
  159. package/dist/chunk-GBDNBY6K.js +0 -153
  160. package/dist/chunk-GBDNBY6K.js.map +0 -1
  161. package/dist/chunk-MQI6Q2S4.js.map +0 -1
  162. package/dist/chunk-NFGFJPCX.js +0 -313
  163. package/dist/chunk-NFGFJPCX.js.map +0 -1
  164. package/dist/chunk-NJMNRSJH.js +0 -83
  165. package/dist/chunk-NJMNRSJH.js.map +0 -1
  166. package/dist/chunk-OXUOGOG3.js.map +0 -1
  167. package/dist/chunk-QPEUVMSP.js +0 -149
  168. package/dist/chunk-QPEUVMSP.js.map +0 -1
  169. package/dist/chunk-RCQTWNAG.js +0 -150
  170. package/dist/chunk-RCQTWNAG.js.map +0 -1
  171. package/dist/chunk-RRLFPSSM.js.map +0 -1
  172. package/dist/chunk-SGUROG23.js +0 -356
  173. package/dist/chunk-SGUROG23.js.map +0 -1
  174. package/dist/chunk-X6EUQZSZ.js +0 -81
  175. package/dist/chunk-X6EUQZSZ.js.map +0 -1
  176. /package/dist/{chunk-DG6GRTPG.js.map → chunk-4LHFPVAY.js.map} +0 -0
  177. /package/dist/{chunk-H5PUZDNU.js.map → chunk-57L345IN.js.map} +0 -0
  178. /package/dist/{chunk-CP4TTRV4.js.map → chunk-5B6GREDA.js.map} +0 -0
  179. /package/dist/{chunk-TEHMLZFI.js.map → chunk-5XCUGCW7.js.map} +0 -0
  180. /package/dist/{chunk-5AEV7RAN.js.map → chunk-6AV6I5B4.js.map} +0 -0
  181. /package/dist/{chunk-SGDXNT7M.js.map → chunk-7VWWIN6Q.js.map} +0 -0
  182. /package/dist/{chunk-V6ZHX4LT.js.map → chunk-BM3YKYGC.js.map} +0 -0
  183. /package/dist/{chunk-TLQMK2QF.js.map → chunk-BX75EFF3.js.map} +0 -0
  184. /package/dist/{chunk-W3D4HG5W.js.map → chunk-DRM44QBR.js.map} +0 -0
  185. /package/dist/{chunk-Z34NJZRL.js.map → chunk-EIJFTUTM.js.map} +0 -0
  186. /package/dist/{chunk-5E3XN6SW.js.map → chunk-FCPN2FD7.js.map} +0 -0
  187. /package/dist/{chunk-VVKXFEAN.js.map → chunk-FLGP4ROM.js.map} +0 -0
  188. /package/dist/{chunk-5SDS2E3F.js.map → chunk-FU4K62DS.js.map} +0 -0
  189. /package/dist/{chunk-X2BHF4KC.js.map → chunk-G4VPR4UC.js.map} +0 -0
  190. /package/dist/{chunk-UY55LEIG.js.map → chunk-H2W42KYL.js.map} +0 -0
  191. /package/dist/{chunk-EPEXIGKB.js.map → chunk-HBQK5PAH.js.map} +0 -0
  192. /package/dist/{chunk-4ABXALRN.js.map → chunk-IBRB7ABJ.js.map} +0 -0
  193. /package/dist/{chunk-RMJNENJB.js.map → chunk-IFFWIROT.js.map} +0 -0
  194. /package/dist/{chunk-WY2JJNZW.js.map → chunk-IK7V3PT3.js.map} +0 -0
  195. /package/dist/{chunk-N4JFMKGK.js.map → chunk-JKUKCVY7.js.map} +0 -0
  196. /package/dist/{chunk-MWMSZVH3.js.map → chunk-K6ACPILA.js.map} +0 -0
  197. /package/dist/{chunk-5BFG47VF.js.map → chunk-PUOQX6DR.js.map} +0 -0
  198. /package/dist/{chunk-EQWOGD4F.js.map → chunk-SA6HTWCL.js.map} +0 -0
  199. /package/dist/{chunk-73ZNGEWU.js.map → chunk-SX6WAVQS.js.map} +0 -0
  200. /package/dist/{chunk-5HAABEAS.js.map → chunk-TAJQ7O3U.js.map} +0 -0
  201. /package/dist/{chunk-MVVAPYUD.js.map → chunk-TPG4RW7H.js.map} +0 -0
  202. /package/dist/{chunk-ECF6S2Y2.js.map → chunk-USVJBAWJ.js.map} +0 -0
  203. /package/dist/{chunk-T34HJRUW.js.map → chunk-VMAGFUOK.js.map} +0 -0
  204. /package/dist/{chunk-ZZ6D4KE4.js.map → chunk-VS5FEGMX.js.map} +0 -0
  205. /package/dist/{chunk-IQNQGPIT.js.map → chunk-VWYJI2FU.js.map} +0 -0
  206. /package/dist/{chunk-H7JRQFFI.js.map → chunk-W2HMARW4.js.map} +0 -0
  207. /package/dist/{chunk-4X3CJHKR.js.map → chunk-XLPPZKU2.js.map} +0 -0
  208. /package/dist/{chunk-YFQNNSSC.js.map → chunk-XO5LLEGV.js.map} +0 -0
  209. /package/dist/{chunk-4NUO6F3J.js.map → chunk-XZAYLXLS.js.map} +0 -0
  210. /package/dist/{chunk-7CLKBH5Z.js.map → chunk-YCVDEX5U.js.map} +0 -0
  211. /package/dist/{chunk-6THPM5LB.js.map → chunk-YQU3KG74.js.map} +0 -0
  212. /package/dist/{chunk-GVEBIL3O.js.map → chunk-YVHMCTLM.js.map} +0 -0
  213. /package/dist/{chunk-6IEX2RLA.js.map → chunk-Z4FXOZEJ.js.map} +0 -0
  214. /package/dist/{chunk-UGQP733V.js.map → chunk-ZOKBN5H4.js.map} +0 -0
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/use-session-cookie-name.ts"],"sourcesContent":["import { useConfig } from '../provider';\nimport { getSessionCookieName } from '../utils/cookie';\n\nexport function useSessionCookieName(): string {\n const { config } = useConfig();\n return getSessionCookieName(config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,SAAS,uBAA+B;AAC7C,QAAM,EAAE,OAAO,IAAI,UAAU;AAC7B,SAAO,qBAAqB,MAAM;AACpC;","names":[]}
1
+ {"version":3,"sources":["../src/hooks/use-session-cookie-name.ts","../src/pages/iam/roles/users/_components/role-users-page.tsx","../src/pages/iam/tenants/tenant-detail-page-content.tsx","../src/pages/iam/users/_components/user-detail-layout-content.tsx","../src/pages/iam/users/_components/user-detail-page-content.tsx","../src/pages/iam/users/activity/user-activity-page-content.tsx","../src/pages/iam/users/activity/_components/role-section.tsx","../src/pages/iam/roles/_components/role-selector.tsx"],"sourcesContent":["import { useConfig } from '../provider';\nimport { getSessionCookieName } from '../utils/cookie';\n\nexport function useSessionCookieName(): string {\n const { config } = useConfig();\n return getSessionCookieName(config);\n}\n","'use client';\n\nimport { IAMGuard } from '@mesob/auth-react/components/iam/iam-guard';\nimport { UserSelector } from '@mesob/auth-react/pages/iam/users/user-selector';\nimport type { User } from '@mesob/auth-react/pages/iam/users/users-data';\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n Badge,\n Button,\n DataTablePagination,\n DeleteConfirmButton,\n DisplayTable,\n EntityEmptyState,\n EntityFilter,\n EntityHeader,\n EntityLoadingState,\n EntitySearch,\n EntitySort,\n EntityViewToggle,\n PageBody,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n useEntityPagination,\n useEntityParams,\n} from '@mesob/ui/components';\nimport { IconPlus, IconUser, IconUsers } from '@tabler/icons-react';\nimport { useQueryClient } from '@tanstack/react-query';\nimport type { ReactNode } from 'react';\nimport { useMemo } from 'react';\nimport { toast } from 'sonner';\nimport type { paths } from '../../../../../data/openapi';\nimport { authApi$ } from '../../../shared/page-helpers';\n\ntype RoleUsersPageProps = {\n roleId: string;\n};\n\nconst TABLE_COLUMN_COUNT = 4;\n\nfunction initials(user: User) {\n return user.fullName\n .split(' ')\n .filter(Boolean)\n .slice(0, 2)\n .map((part: string) => part[0]?.toUpperCase() ?? '')\n .join('');\n}\n\nfunction UserIdentity({ user }: { user: User }) {\n return (\n <div className=\"flex items-center gap-3\">\n <Avatar className=\"h-9 w-9\">\n <AvatarImage src={user.image ?? undefined} />\n <AvatarFallback>{initials(user)}</AvatarFallback>\n </Avatar>\n <div>\n <p className=\"font-medium\">{user.fullName}</p>\n </div>\n </div>\n );\n}\n\nfunction UserContact({ user }: { user: User }) {\n return (\n <div className=\"space-y-1\">\n {user.email ? (\n <div className=\"flex items-center gap-2\">\n <span>{user.email}</span>\n {user.emailVerified ? (\n <Badge variant=\"outline\">Verified</Badge>\n ) : null}\n </div>\n ) : null}\n {user.phone ? (\n <div className=\"flex items-center gap-2\">\n <span>{user.phone}</span>\n {user.phoneVerified ? (\n <Badge variant=\"outline\">Verified</Badge>\n ) : null}\n </div>\n ) : null}\n {user.email || user.phone ? null : (\n <span className=\"text-muted-foreground\">—</span>\n )}\n </div>\n );\n}\n\nfunction UserRemoveButton({\n roleId,\n userId,\n onRemove,\n}: {\n roleId: string;\n userId: string;\n onRemove: (roleId: string, userId: string) => void;\n}) {\n return (\n <DeleteConfirmButton\n entityName=\"user\"\n onConfirm={() => onRemove(roleId, userId)}\n triggerClassName=\"size-8 text-destructive hover:text-destructive\"\n />\n );\n}\n\nfunction RoleUsersTable({\n roleId,\n users,\n onRemove,\n}: {\n roleId: string;\n users: User[];\n onRemove: (roleId: string, userId: string) => void;\n}) {\n return (\n <DisplayTable withTableBorder>\n <Thead>\n <Tr>\n <Th>User</Th>\n <Th>Contact</Th>\n <Th>Last sign in</Th>\n <Th className=\"w-[60px]\" />\n </Tr>\n </Thead>\n <Tbody>\n {users.map((user) => (\n <Tr key={user.id}>\n <Td>\n <UserIdentity user={user} />\n </Td>\n <Td>\n <UserContact user={user} />\n </Td>\n <Td>\n {user.lastSignInAt\n ? new Date(user.lastSignInAt).toLocaleDateString()\n : 'Never'}\n </Td>\n <Td>\n <UserRemoveButton\n roleId={roleId}\n userId={user.id}\n onRemove={onRemove}\n />\n </Td>\n </Tr>\n ))}\n </Tbody>\n </DisplayTable>\n );\n}\n\nfunction RoleUsersCards({\n roleId,\n users,\n onRemove,\n}: {\n roleId: string;\n users: User[];\n onRemove: (roleId: string, userId: string) => void;\n}) {\n return (\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3\">\n {users.map((user) => (\n <div\n key={user.id}\n className=\"rounded-xl border border-border/60 bg-card p-4 shadow-sm\"\n >\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"space-y-3\">\n <div className=\"flex items-center gap-3\">\n <Avatar className=\"h-10 w-10\">\n <AvatarImage src={user.image ?? undefined} />\n <AvatarFallback>{initials(user)}</AvatarFallback>\n </Avatar>\n <div>\n <p className=\"font-semibold\">{user.fullName}</p>\n </div>\n </div>\n <div className=\"space-y-1 text-sm text-muted-foreground\">\n <p>{user.email ?? user.phone ?? 'No contact info'}</p>\n <p>\n Last sign in{' '}\n {user.lastSignInAt\n ? new Date(user.lastSignInAt).toLocaleDateString()\n : 'never'}\n </p>\n </div>\n </div>\n <UserRemoveButton\n roleId={roleId}\n userId={user.id}\n onRemove={onRemove}\n />\n </div>\n </div>\n ))}\n </div>\n );\n}\n\nexport function RoleUsersPage({ roleId }: RoleUsersPageProps) {\n return (\n <IAMGuard>\n <RoleUsersPageContent roleId={roleId} />\n </IAMGuard>\n );\n}\n\nfunction RoleUsersPageContent({ roleId }: RoleUsersPageProps) {\n const qc = useQueryClient();\n const { queryConfig, params, setParams } = useEntityParams({\n searchKey: 'search',\n defaultSort: 'fullName',\n defaultOrder: 'asc',\n });\n const usersQuery = useMemo(\n () =>\n ({\n params: {\n path: { id: roleId },\n query: queryConfig.params.query,\n },\n }) as {\n params: {\n path: { id: string };\n query: NonNullable<\n paths['/roles/{id}/users']['get']['parameters']['query']\n >;\n };\n },\n [queryConfig, roleId],\n );\n\n const { data, isPending, isFetching } = authApi$.useQuery(\n 'get',\n '/roles/{id}/users',\n usersQuery,\n { enabled: !!roleId },\n );\n const assignUsers = authApi$.useMutation('post', '/roles/{id}/users', {\n onSuccess: (result: { created?: number } | undefined) => {\n qc.invalidateQueries({ queryKey: ['get', '/roles'] });\n qc.invalidateQueries({ queryKey: ['get', '/roles/{id}'] });\n qc.invalidateQueries({ queryKey: ['get', '/roles/{id}/users'] });\n toast.success(\n result?.created ? `${result.created} user(s) added` : 'No changes',\n );\n },\n onError: () => {\n toast.error('Failed to assign users');\n },\n });\n const revokeUser = authApi$.useMutation(\n 'delete',\n '/roles/{id}/users/{userId}',\n {\n onSuccess: () => {\n qc.invalidateQueries({ queryKey: ['get', '/roles'] });\n qc.invalidateQueries({ queryKey: ['get', '/roles/{id}'] });\n qc.invalidateQueries({ queryKey: ['get', '/roles/{id}/users'] });\n toast.success('User removed');\n },\n onError: () => {\n toast.error('Failed to remove user');\n },\n },\n );\n\n const users = (data?.users ?? []) as User[];\n const { total, pageCount } = useEntityPagination({\n items: users,\n total: data?.total,\n pageSize: params.pageSize,\n });\n const isLoading = isPending || isFetching;\n const currentView = (params.view || 'table') as 'table' | 'card';\n const handleRemoveUser = (targetRoleId: string, userId: string) => {\n revokeUser.mutate({\n params: {\n path: { id: targetRoleId, userId },\n },\n });\n };\n\n if (!roleId) {\n return null;\n }\n\n let content: ReactNode;\n if (isLoading) {\n content = (\n <EntityLoadingState\n view={currentView}\n rowCount={params.pageSize}\n columnCount={TABLE_COLUMN_COUNT}\n cardCount={params.pageSize}\n />\n );\n } else if (total === 0) {\n content = (\n <EntityEmptyState\n icon={IconUsers}\n entityName=\"user\"\n title=\"No users assigned\"\n description=\"Assign users from the selector to add them to this role.\"\n />\n );\n } else if (currentView === 'table') {\n content = (\n <div className=\"space-y-4\">\n <RoleUsersTable\n roleId={roleId}\n users={users}\n onRemove={handleRemoveUser}\n />\n <DataTablePagination\n pageIndex={params.page - 1}\n pageSize={params.pageSize}\n pageCount={pageCount}\n totalRows={total}\n onPageChange={(page) => setParams({ page: page + 1 })}\n onPageSizeChange={(pageSize) => setParams({ pageSize, page: 1 })}\n />\n </div>\n );\n } else {\n content = (\n <div className=\"space-y-4\">\n <RoleUsersCards\n roleId={roleId}\n users={users}\n onRemove={handleRemoveUser}\n />\n <DataTablePagination\n pageIndex={params.page - 1}\n pageSize={params.pageSize}\n pageCount={pageCount}\n totalRows={total}\n onPageChange={(page) => setParams({ page: page + 1 })}\n onPageSizeChange={(pageSize) => setParams({ pageSize, page: 1 })}\n />\n </div>\n );\n }\n\n return (\n <PageBody className=\"px-0 pb-6\">\n <EntityHeader\n icon={<IconUser className=\"h-5 w-5\" />}\n title=\"Role users\"\n actions={\n <UserSelector\n trigger={\n <Button size=\"sm\" loading={assignUsers.isPending}>\n <IconPlus className=\"h-4 w-4\" />\n Add users\n </Button>\n }\n multiple\n excludeIds={users.map((user) => user.id)}\n onSelect={(selectedUsers: User[]) => {\n if (!selectedUsers.length) {\n return;\n }\n\n assignUsers.mutate({\n params: { path: { id: roleId } },\n body: {\n userIds: selectedUsers.map((user: User) => user.id),\n },\n });\n }}\n />\n }\n search={\n <EntitySearch\n paramKey=\"search\"\n placeholder=\"Search assigned users...\"\n />\n }\n filter={\n <EntityFilter\n options={[\n { label: 'All', value: '' },\n { label: 'Name', value: 'fullName' },\n { label: 'Email', value: 'email' },\n { label: 'Phone', value: 'phone' },\n ]}\n placeholder=\"Search field\"\n />\n }\n sort={\n <EntitySort\n defaultSort=\"fullName\"\n defaultOrder=\"asc\"\n options={[\n { label: 'Created', value: 'createdAt' },\n { label: 'Updated', value: 'updatedAt' },\n { label: 'Name', value: 'fullName' },\n { label: 'Last Sign In', value: 'lastSignInAt' },\n ]}\n />\n }\n view={<EntityViewToggle views={['table', 'card']} />}\n />\n {content}\n </PageBody>\n );\n}\n","'use client';\n\nimport { IAMGuard } from '@mesob/auth-react/components/iam/iam-guard';\nimport {\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n EntityDetailHeader,\n PageContainer,\n type TabItem,\n useBreadcrumbs,\n} from '@mesob/ui/components';\nimport { IconBuilding } from '@tabler/icons-react';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { useMemo } from 'react';\nimport { useApi, useConfig } from '../../../provider';\nimport { str } from './_components/tenants-data';\n\ntype TenantDetailPageContentProps = {\n tenantId: string;\n};\n\nexport function TenantDetailPageContent({\n tenantId,\n}: TenantDetailPageContentProps) {\n return (\n <IAMGuard>\n <TenantDetailPageContentInner tenantId={tenantId} />\n </IAMGuard>\n );\n}\n\nfunction TenantDetailPageContentInner({\n tenantId,\n}: TenantDetailPageContentProps) {\n const { hooks } = useApi();\n const { config } = useConfig();\n const homeHref = config.navigation?.defaultRedirectUrl || '/';\n const qc = useQueryClient();\n\n const { data, isLoading } = hooks.useQuery(\n 'get',\n '/tenants/{id}',\n { params: { path: { id: tenantId } } },\n { enabled: !!tenantId },\n );\n const tenant = data?.tenant;\n\n const toggleActive = hooks.useMutation('put', '/tenants/{id}', {\n onSuccess: () => {\n qc.invalidateQueries({ queryKey: ['get', '/tenants/{id}'] });\n qc.invalidateQueries({ queryKey: ['get', '/tenants'] });\n },\n });\n\n const title = tenant ? str(tenant.name) || tenant.id : (tenantId ?? 'Tenant');\n useBreadcrumbs({\n items: [\n { label: 'Home', href: homeHref },\n { label: 'IAM', href: '/iam' },\n { label: 'Tenants', href: '/iam/tenants' },\n { label: title },\n ],\n });\n\n const tabs: TabItem[] = useMemo(\n () => [\n {\n value: 'detail',\n name: 'Detail',\n content: (\n <Card className=\"mt-4\">\n <CardHeader>\n <CardTitle>Tenant details</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2 text-sm\">\n {tenant && (\n <>\n <p>\n <span className=\"text-muted-foreground\">Name:</span>{' '}\n {str(tenant.name) || '—'}\n </p>\n <p>\n <span className=\"text-muted-foreground\">Description:</span>{' '}\n {str(tenant.description) || '—'}\n </p>\n <p>\n <span className=\"text-muted-foreground\">Language:</span>{' '}\n {tenant.defaultLanguage ?? '—'}\n </p>\n <p>\n <span className=\"text-muted-foreground\">Currency:</span>{' '}\n {tenant.defaultCurrency ?? '—'}\n </p>\n <p>\n <span className=\"text-muted-foreground\">Timezone:</span>{' '}\n {tenant.timezone ?? '—'}\n </p>\n </>\n )}\n </CardContent>\n </Card>\n ),\n },\n {\n value: 'theme',\n name: 'Theme',\n content: (\n <Card className=\"mt-4\">\n <CardHeader>\n <CardTitle>Theme</CardTitle>\n </CardHeader>\n <CardContent className=\"text-muted-foreground text-sm\">\n Theme settings (placeholder)\n </CardContent>\n </Card>\n ),\n },\n {\n value: 'settings',\n name: 'Settings',\n content: (\n <Card className=\"mt-4\">\n <CardHeader>\n <CardTitle>Settings</CardTitle>\n </CardHeader>\n <CardContent className=\"text-muted-foreground text-sm\">\n Tenant settings (placeholder)\n </CardContent>\n </Card>\n ),\n },\n ],\n [tenant],\n );\n\n const actions = tenant && (\n <Button\n variant={tenant.isActive ? 'secondary' : 'default'}\n size=\"sm\"\n onClick={() =>\n toggleActive.mutate({\n params: { path: { id: tenantId } },\n body: { isActive: !tenant.isActive },\n })\n }\n disabled={toggleActive.isPending}\n >\n {tenant.isActive ? 'Deactivate' : 'Activate'}\n </Button>\n );\n\n if (!tenantId) {\n return null;\n }\n if (isLoading || !tenant) {\n return (\n <div className=\"flex flex-1 flex-col gap-4 p-4 pt-0\">\n <div className=\"h-24 animate-pulse rounded-xl bg-muted\" />\n </div>\n );\n }\n\n return (\n <PageContainer className=\"flex flex-1 flex-col gap-4 p-4 pt-0\">\n <EntityDetailHeader\n title={title}\n icon={<IconBuilding className=\"h-5 w-5 text-muted-foreground\" />}\n actions={actions}\n tabs={tabs}\n />\n </PageContainer>\n );\n}\n","'use client';\n\nimport { IAMGuard } from '@mesob/auth-react/components/iam/iam-guard';\nimport { toTitleCase } from '@mesob/common';\nimport {\n Button,\n EntityDetailHeader,\n PageContainer,\n type TabItem,\n useBreadcrumbs,\n} from '@mesob/ui/components';\nimport { IconUser } from '@tabler/icons-react';\nimport { useMemo } from 'react';\nimport { useApi, useConfig } from '../../../../provider';\n\ntype UserDetailLayoutContentProps = {\n userId: string;\n children: React.ReactNode;\n};\n\nexport function UserDetailLayoutContent({\n userId,\n children,\n}: UserDetailLayoutContentProps) {\n return (\n <IAMGuard>\n <UserDetailLayoutContentInner userId={userId}>\n {children}\n </UserDetailLayoutContentInner>\n </IAMGuard>\n );\n}\n\nfunction UserDetailLayoutContentInner({\n userId,\n children,\n}: UserDetailLayoutContentProps) {\n const { hooks } = useApi();\n const { config } = useConfig();\n const homeHref = config.navigation?.defaultRedirectUrl || '/';\n const { data, isLoading } = hooks.useQuery(\n 'get',\n '/users/{id}',\n { params: { path: { id: userId } } },\n { enabled: !!userId },\n );\n const user = data?.user;\n\n const title = toTitleCase(user?.fullName || userId || 'User');\n\n useBreadcrumbs({\n items: [\n { label: 'Home', href: homeHref },\n { label: 'IAM', href: '/iam' },\n { label: 'Users', href: '/iam/users' },\n { label: title },\n ],\n });\n\n const tabs: TabItem[] = useMemo(\n () => [\n { value: 'detail', name: 'Detail', href: `/iam/users/${userId}` },\n {\n value: 'activity',\n name: 'Activity',\n href: `/iam/users/${userId}/activity`,\n },\n ],\n [userId],\n );\n\n if (!userId) {\n return null;\n }\n\n return (\n <PageContainer>\n <EntityDetailHeader\n title={title}\n icon={<IconUser />}\n tabs={tabs}\n loading={isLoading}\n actions={<Button>Test Button</Button>}\n />\n {children}\n </PageContainer>\n );\n}\n","'use client';\n\nimport { IAMGuard } from '@mesob/auth-react/components/iam/iam-guard';\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from '@mesob/ui/components';\nimport { IconCircleCheck } from '@tabler/icons-react';\nimport { useApi } from '../../../../provider';\n\ntype UserDetailPageContentProps = {\n userId: string;\n};\n\nexport function UserDetailPageContent({ userId }: UserDetailPageContentProps) {\n return (\n <IAMGuard>\n <UserDetailPageContentInner userId={userId} />\n </IAMGuard>\n );\n}\n\nfunction UserDetailPageContentInner({ userId }: UserDetailPageContentProps) {\n const { hooks } = useApi();\n const { data, isLoading } = hooks.useQuery(\n 'get',\n '/users/{id}',\n { params: { path: { id: userId } } },\n { enabled: !!userId },\n );\n const user = data?.user;\n\n if (!userId) {\n return null;\n }\n if (isLoading || !user) {\n return <div className=\"h-32 animate-pulse rounded-xl bg-muted mt-4\" />;\n }\n\n return (\n <Card>\n <CardHeader>\n <CardTitle>User details</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2 text-sm\">\n <p>\n <span className=\"text-muted-foreground\">Name:</span>{' '}\n {user.fullName || '—'}\n </p>\n <p>\n <span className=\"text-muted-foreground\">Email:</span>{' '}\n {user.email ?? '—'}{' '}\n {user.emailVerified && (\n <Tooltip>\n <TooltipTrigger>\n <IconCircleCheck className=\"inline size-4 text-muted-foreground\" />\n </TooltipTrigger>\n <TooltipContent>Email verified</TooltipContent>\n </Tooltip>\n )}\n </p>\n <p>\n <span className=\"text-muted-foreground\">Phone:</span>{' '}\n {user.phone ?? '—'}{' '}\n {user.phoneVerified && (\n <Tooltip>\n <TooltipTrigger>\n <IconCircleCheck className=\"inline size-4 text-muted-foreground\" />\n </TooltipTrigger>\n <TooltipContent>Phone verified</TooltipContent>\n </Tooltip>\n )}\n </p>\n <p>\n <span className=\"text-muted-foreground\">Last sign in:</span>{' '}\n {user.lastSignInAt\n ? new Date(user.lastSignInAt).toLocaleString()\n : 'Never'}\n </p>\n {user.roleCodes?.length ? (\n <p>\n <span className=\"text-muted-foreground\">Roles:</span>{' '}\n {user.roleCodes.join(', ')}\n </p>\n ) : null}\n </CardContent>\n </Card>\n );\n}\n","'use client';\n\nimport { IAMGuard } from '@mesob/auth-react/components/iam/iam-guard';\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Section,\n} from '@mesob/ui/components';\nimport { IconCalendar } from '@tabler/icons-react';\nimport { RoleSection } from './_components/role-section';\n\ntype UserActivityPageContentProps = {\n userId: string;\n};\n\nexport function UserActivityPageContent({\n userId,\n}: UserActivityPageContentProps) {\n return (\n <IAMGuard>\n <UserActivityPageContentInner userId={userId} />\n </IAMGuard>\n );\n}\n\nfunction UserActivityPageContentInner({\n userId,\n}: UserActivityPageContentProps) {\n if (!userId) {\n return null;\n }\n\n return (\n <div className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle>Activity</CardTitle>\n </CardHeader>\n <CardContent className=\"flex items-center gap-2 text-muted-foreground text-sm\">\n <IconCalendar className=\"h-4 w-4\" />\n Activity (placeholder)\n </CardContent>\n </Card>\n <RoleSection userId={userId} />\n <Section title=\"Permissions\">test</Section>\n <Section title=\"Groups\">test</Section>\n </div>\n );\n}\n","'use client';\n\nimport {\n Button,\n EntityEmptyState,\n EntityLoadingState,\n EntitySection,\n useEntitySectionState,\n} from '@mesob/ui/components';\nimport { IconPlus, IconShield } from '@tabler/icons-react';\nimport { useMemo, useState } from 'react';\nimport { RoleSelector } from '../../../roles/_components/role-selector';\nimport type { Role } from '../../../roles/_components/roles-data';\nimport { str } from '../../../roles/_components/roles-data';\nimport { RolesList } from '../../../roles/_components/roles-list';\nimport {\n authApi$,\n defaultEntityQueryOptions,\n} from '../../../shared/page-helpers';\n\nconst LIMIT = 100;\nconst TABLE_COLUMN_COUNT = 4;\n\nfunction filterAndSort(\n roles: Role[],\n search: string,\n sort: string,\n order: 'asc' | 'desc',\n) {\n let out = roles;\n if (search.trim()) {\n const q = search.trim().toLowerCase();\n out = out.filter(\n (r) =>\n str(r.name).toLowerCase().includes(q) ||\n r.code.toLowerCase().includes(q),\n );\n }\n const mult = order === 'asc' ? 1 : -1;\n const by = sort === 'code' ? 'code' : 'createdAt';\n out = [...out].sort((a, b) =>\n by === 'code'\n ? mult * a.code.localeCompare(b.code)\n : mult *\n (new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime()),\n );\n return out;\n}\n\nexport function RoleSection({ userId }: { userId: string }) {\n const [open, setOpen] = useState(false);\n const sectionState = useEntitySectionState({\n defaultSort: 'createdAt',\n defaultOrder: 'desc',\n defaultPageSize: 10,\n filterOptions: [\n { label: 'All', value: '' },\n { label: 'By Code', value: 'code' },\n ],\n sortOptions: [\n { label: 'Created', value: 'createdAt' },\n { label: 'Updated', value: 'updatedAt' },\n { label: 'Code', value: 'code' },\n ],\n views: ['table', 'card'],\n });\n\n const { data, isPending, isFetching } = authApi$.useQuery(\n 'get',\n '/roles',\n { params: { query: { limit: LIMIT } } },\n { ...defaultEntityQueryOptions, enabled: open },\n );\n const isLoading = isPending || isFetching;\n const roles = data?.roles ?? [];\n\n const filtered = useMemo(\n () =>\n filterAndSort(\n roles,\n sectionState.search,\n sectionState.sort,\n sectionState.order,\n ),\n [roles, sectionState.search, sectionState.sort, sectionState.order],\n );\n const pageCount = Math.ceil(filtered.length / sectionState.pageSize) || 1;\n const pageIndex = Math.min(sectionState.page - 1, Math.max(0, pageCount - 1));\n const paginated = useMemo(\n () =>\n filtered.slice(\n pageIndex * sectionState.pageSize,\n pageIndex * sectionState.pageSize + sectionState.pageSize,\n ),\n [filtered, pageIndex, sectionState.pageSize],\n );\n\n return (\n <EntitySection\n title=\"Role\"\n state={sectionState}\n onOpenChange={setOpen}\n actions={\n <RoleSelector\n trigger={\n <Button variant=\"outline\" size=\"sm\">\n <IconPlus className=\"h-4 w-4\" />\n Add role\n </Button>\n }\n multiple\n onSelect={(roles) => {\n // TODO: assign roles to user; logging for now\n // biome-ignore lint/suspicious/noConsole: intentional for now\n console.log('Selected roles:', userId, roles);\n }}\n />\n }\n config={{\n searchPlaceholder: 'Search roles...',\n filterOptions: sectionState.filterOptions,\n sortOptions: sectionState.sortOptions,\n views: sectionState.views,\n }}\n >\n {(state) => (\n <>\n {isLoading && (\n <EntityLoadingState\n view={state.view as 'table' | 'card'}\n rowCount={state.pageSize}\n columnCount={TABLE_COLUMN_COUNT}\n cardCount={state.pageSize}\n />\n )}\n {!isLoading && filtered.length === 0 && (\n <EntityEmptyState\n icon={IconShield}\n entityName=\"role\"\n title=\"No roles\"\n description={\n roles.length === 0 ? 'No roles in tenant.' : 'No matches.'\n }\n />\n )}\n {!isLoading && filtered.length > 0 && (\n <RolesList\n data={paginated}\n view={state.view as 'table' | 'card'}\n pageIndex={pageIndex}\n pageSize={state.pageSize}\n pageCount={pageCount}\n totalRows={filtered.length}\n onPageChange={(p) => state.setPage(p + 1)}\n onPageSizeChange={(size) => {\n state.setPageSize(size);\n state.setPage(1);\n }}\n />\n )}\n </>\n )}\n </EntitySection>\n );\n}\n","'use client';\n\nimport {\n EntitySelector,\n type EntitySelectorColumn,\n type EntitySelectorConfig,\n useEntitySectionState,\n} from '@mesob/ui/components';\nimport { cn } from '@mesob/ui/lib/utils';\nimport { IconCalendar, IconShield } from '@tabler/icons-react';\nimport type { ReactNode } from 'react';\nimport type { paths } from '../../../../data/openapi';\nimport { authApi$, defaultEntityQueryOptions } from '../../shared/page-helpers';\nimport { RoleCard } from './role-card';\nimport type { Role } from './roles-data';\nimport { str } from './roles-data';\n\nfunction SelectableRoleCard({\n role,\n selected,\n onToggle,\n}: {\n role: Role;\n selected: boolean;\n onToggle: () => void;\n}) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: div to avoid nested buttons from RoleCard\n <div\n role=\"button\"\n tabIndex={0}\n onClick={onToggle}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n onToggle();\n }\n }}\n className={cn(\n 'cursor-pointer rounded-lg transition-shadow focus:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n selected && 'ring-primary ring-2',\n )}\n >\n <RoleCard role={role} mode=\"static\" />\n </div>\n );\n}\n\nconst roleColumns: EntitySelectorColumn<Role>[] = [\n {\n key: 'role',\n header: 'Role',\n cell: (role) => (\n <>\n <p className=\"font-medium\">{str(role.name) || role.code}</p>\n <p className=\"text-sm text-muted-foreground\">{role.code}</p>\n </>\n ),\n },\n {\n key: 'description',\n header: 'Description',\n cell: (role) => (\n <span className=\"text-muted-foreground line-clamp-1 max-w-[200px]\">\n {str(role.description) || '—'}\n </span>\n ),\n },\n {\n key: 'created',\n header: 'Created',\n cell: (role) => (\n <div className=\"flex items-center gap-1 text-muted-foreground\">\n <IconCalendar className=\"h-4 w-4\" />\n {new Date(role.createdAt).toLocaleDateString()}\n </div>\n ),\n },\n];\n\ntype RoleSelectorProps = {\n trigger: ReactNode;\n multiple?: boolean;\n onSelect: (roles: Role[]) => void;\n modalSize?: 'sm' | 'md' | 'lg' | 'xl' | 'full';\n contentClassName?: string;\n};\n\nexport function RoleSelector({\n trigger,\n multiple = true,\n onSelect,\n modalSize = 'xl',\n contentClassName,\n}: RoleSelectorProps) {\n const state = useEntitySectionState({\n defaultSort: 'createdAt',\n defaultOrder: 'desc',\n defaultPageSize: 10,\n searchParamName: 'search',\n });\n const rolesQuery = state.queryConfig as {\n params: {\n query: NonNullable<paths['/roles']['get']['parameters']['query']>;\n };\n };\n\n const { data, isPending, isFetching } = authApi$.useQuery(\n 'get',\n '/roles',\n rolesQuery,\n defaultEntityQueryOptions,\n );\n\n const roles = data?.roles ?? [];\n\n const config: EntitySelectorConfig<Role> = {\n title: 'Select role(s)',\n modalSize,\n contentClassName,\n multiple,\n entityName: 'role',\n entityIcon: IconShield,\n columns: roleColumns,\n columnCount: 3,\n getItemLabel: (role) => str(role.name) || role.code,\n searchPlaceholder: 'Search roles...',\n wrapHeaderInCard: false,\n filterOptions: [\n { label: 'All', value: '' },\n { label: 'By Code', value: 'code' },\n ],\n sortOptions: [\n { label: 'Created', value: 'createdAt' },\n { label: 'Updated', value: 'updatedAt' },\n { label: 'Code', value: 'code' },\n ],\n showViewToggle: false,\n renderCard: (role, selected, onToggle) => (\n <SelectableRoleCard role={role} selected={selected} onToggle={onToggle} />\n ),\n };\n\n return (\n <EntitySelector<Role>\n trigger={trigger}\n config={config}\n onSelect={onSelect}\n items={roles}\n total={data?.total}\n isLoading={isPending || isFetching}\n state={state}\n />\n );\n}\n"],"mappings":"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","names":["IAMGuard","IAMGuard","IAMGuard","Button","useQueryClient","useMemo","jsx","jsxs","IAMGuard","useQueryClient","str","useMemo","Button","IAMGuard","Button","EntityDetailHeader","PageContainer","useBreadcrumbs","IconUser","useMemo","jsx","jsxs","IAMGuard","useBreadcrumbs","useMemo","PageContainer","EntityDetailHeader","IconUser","Button","IAMGuard","Card","CardContent","CardHeader","CardTitle","jsx","jsxs","IAMGuard","Card","CardHeader","CardTitle","CardContent","IAMGuard","Card","CardContent","CardHeader","CardTitle","IconCalendar","Button","EntityEmptyState","EntityLoadingState","useEntitySectionState","IconPlus","IconShield","useMemo","Fragment","jsx","jsxs","Fragment","jsx","jsxs","TABLE_COLUMN_COUNT","useEntitySectionState","useMemo","Button","IconPlus","roles","EntityLoadingState","EntityEmptyState","IconShield","jsx","jsxs","IAMGuard","Card","CardHeader","CardTitle","CardContent","IconCalendar"]}
@@ -0,0 +1,4 @@
1
+ /** Biome import-guard probe; not used at runtime. */
2
+ export declare const importGuardProbeSignIn: ({ redirectUrl }?: {
3
+ redirectUrl?: string;
4
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -1,12 +1,5 @@
1
- import {
2
- ForgotPassword
3
- } from "../../chunk-4X3CJHKR.js";
4
- import "../../chunk-RRLFPSSM.js";
5
- import "../../chunk-DPH2PHK3.js";
6
- import "../../chunk-EPEXIGKB.js";
7
- import "../../chunk-AWSAC7RT.js";
8
-
9
1
  // src/pages/auth/forgot-password.tsx
2
+ import { ForgotPassword } from "@mesob/auth-react/components/auth/forgot-password";
10
3
  import { jsx } from "react/jsx-runtime";
11
4
  var metadata = {
12
5
  title: "Forgot password",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/auth/forgot-password.tsx"],"sourcesContent":["import type { Metadata } from 'next';\nimport { ForgotPassword } from '../../components/auth/forgot-password';\n\nexport const metadata: Metadata = {\n title: 'Forgot password',\n description: 'Request a password reset link or code.',\n};\n\nexport default function ForgotPasswordPage() {\n return <ForgotPassword />;\n}\n"],"mappings":";;;;;;;;;AASS;AANF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEe,SAAR,qBAAsC;AAC3C,SAAO,oBAAC,kBAAe;AACzB;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/auth/forgot-password.tsx"],"sourcesContent":["import { ForgotPassword } from '@mesob/auth-react/components/auth/forgot-password';\nimport type { Metadata } from 'next';\n\nexport const metadata: Metadata = {\n title: 'Forgot password',\n description: 'Request a password reset link or code.',\n};\n\nexport default function ForgotPasswordPage() {\n return <ForgotPassword />;\n}\n"],"mappings":";AAAA,SAAS,sBAAsB;AAStB;AANF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEe,SAAR,qBAAsC;AAC3C,SAAO,oBAAC,kBAAe;AACzB;","names":[]}
@@ -1,13 +1,14 @@
1
1
  "use client";
2
2
  import {
3
- AuthCard
4
- } from "../../chunk-G2AW2H36.js";
3
+ getSafeRedirectFromSearch
4
+ } from "../../chunk-G2XRGSQE.js";
5
5
  import {
6
6
  useConfig,
7
7
  useSession
8
- } from "../../chunk-AWSAC7RT.js";
8
+ } from "../../chunk-A5ON3RKH.js";
9
9
 
10
10
  // src/pages/auth/layout.tsx
11
+ import { AuthCard } from "@mesob/auth-react/components/auth/auth-card";
11
12
  import { Spinner } from "@mesob/ui/components";
12
13
  import { useEffect, useRef } from "react";
13
14
  import { jsx } from "react/jsx-runtime";
@@ -18,7 +19,8 @@ function AuthLayout({ children }) {
18
19
  useEffect(() => {
19
20
  if (isAuthenticated && !hasRedirected.current) {
20
21
  hasRedirected.current = true;
21
- const redirectUrl = config.navigation?.defaultRedirectUrl || "/";
22
+ const fromQuery = getSafeRedirectFromSearch(window.location.search);
23
+ const redirectUrl = fromQuery ?? (config.navigation?.defaultRedirectUrl || "/");
22
24
  if (config.navigation?.onNavigate) {
23
25
  config.navigation.onNavigate(redirectUrl);
24
26
  } else {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/auth/layout.tsx"],"sourcesContent":["'use client';\n\nimport { Spinner } from '@mesob/ui/components';\nimport type { ReactNode } from 'react';\nimport { useEffect, useRef } from 'react';\nimport { AuthCard } from '../../components/auth/auth-card';\nimport { useConfig, useSession } from '../../provider';\n\nexport default function AuthLayout({ children }: { children: ReactNode }) {\n const { isLoading, isAuthenticated } = useSession();\n const { config } = useConfig();\n const hasRedirected = useRef(false);\n\n useEffect(() => {\n if (isAuthenticated && !hasRedirected.current) {\n hasRedirected.current = true;\n const redirectUrl = config.navigation?.defaultRedirectUrl || '/';\n\n if (config.navigation?.onNavigate) {\n config.navigation.onNavigate(redirectUrl);\n } else {\n window.location.href = redirectUrl;\n }\n }\n }, [config.navigation, isAuthenticated]);\n\n if (isLoading) {\n return (\n <div className=\"flex min-h-svh items-center justify-center\">\n <Spinner className=\"size-8\" />\n </div>\n );\n }\n\n if (isAuthenticated) {\n return null;\n }\n\n return (\n <div className=\"bg-primary/5\">\n <AuthCard>{children}</AuthCard>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAEA,SAAS,eAAe;AAExB,SAAS,WAAW,cAAc;AAyB1B;AArBO,SAAR,WAA4B,EAAE,SAAS,GAA4B;AACxE,QAAM,EAAE,WAAW,gBAAgB,IAAI,WAAW;AAClD,QAAM,EAAE,OAAO,IAAI,UAAU;AAC7B,QAAM,gBAAgB,OAAO,KAAK;AAElC,YAAU,MAAM;AACd,QAAI,mBAAmB,CAAC,cAAc,SAAS;AAC7C,oBAAc,UAAU;AACxB,YAAM,cAAc,OAAO,YAAY,sBAAsB;AAE7D,UAAI,OAAO,YAAY,YAAY;AACjC,eAAO,WAAW,WAAW,WAAW;AAAA,MAC1C,OAAO;AACL,eAAO,SAAS,OAAO;AAAA,MACzB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,OAAO,YAAY,eAAe,CAAC;AAEvC,MAAI,WAAW;AACb,WACE,oBAAC,SAAI,WAAU,8CACb,8BAAC,WAAQ,WAAU,UAAS,GAC9B;AAAA,EAEJ;AAEA,MAAI,iBAAiB;AACnB,WAAO;AAAA,EACT;AAEA,SACE,oBAAC,SAAI,WAAU,gBACb,8BAAC,YAAU,UAAS,GACtB;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/auth/layout.tsx"],"sourcesContent":["'use client';\n\nimport { AuthCard } from '@mesob/auth-react/components/auth/auth-card';\nimport { Spinner } from '@mesob/ui/components';\nimport type { ReactNode } from 'react';\nimport { useEffect, useRef } from 'react';\nimport { useConfig, useSession } from '../../provider';\nimport { getSafeRedirectFromSearch } from '../../utils/safe-redirect';\n\nexport default function AuthLayout({ children }: { children: ReactNode }) {\n const { isLoading, isAuthenticated } = useSession();\n const { config } = useConfig();\n const hasRedirected = useRef(false);\n\n useEffect(() => {\n if (isAuthenticated && !hasRedirected.current) {\n hasRedirected.current = true;\n const fromQuery = getSafeRedirectFromSearch(window.location.search);\n const redirectUrl =\n fromQuery ?? (config.navigation?.defaultRedirectUrl || '/');\n\n if (config.navigation?.onNavigate) {\n config.navigation.onNavigate(redirectUrl);\n } else {\n window.location.href = redirectUrl;\n }\n }\n }, [config.navigation, isAuthenticated]);\n\n if (isLoading) {\n return (\n <div className=\"flex min-h-svh items-center justify-center\">\n <Spinner className=\"size-8\" />\n </div>\n );\n }\n\n if (isAuthenticated) {\n return null;\n }\n\n return (\n <div className=\"bg-primary/5\">\n <AuthCard>{children}</AuthCard>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAEA,SAAS,gBAAgB;AACzB,SAAS,eAAe;AAExB,SAAS,WAAW,cAAc;AA2B1B;AAvBO,SAAR,WAA4B,EAAE,SAAS,GAA4B;AACxE,QAAM,EAAE,WAAW,gBAAgB,IAAI,WAAW;AAClD,QAAM,EAAE,OAAO,IAAI,UAAU;AAC7B,QAAM,gBAAgB,OAAO,KAAK;AAElC,YAAU,MAAM;AACd,QAAI,mBAAmB,CAAC,cAAc,SAAS;AAC7C,oBAAc,UAAU;AACxB,YAAM,YAAY,0BAA0B,OAAO,SAAS,MAAM;AAClE,YAAM,cACJ,cAAc,OAAO,YAAY,sBAAsB;AAEzD,UAAI,OAAO,YAAY,YAAY;AACjC,eAAO,WAAW,WAAW,WAAW;AAAA,MAC1C,OAAO;AACL,eAAO,SAAS,OAAO;AAAA,MACzB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,OAAO,YAAY,eAAe,CAAC;AAEvC,MAAI,WAAW;AACb,WACE,oBAAC,SAAI,WAAU,8CACb,8BAAC,WAAQ,WAAU,UAAS,GAC9B;AAAA,EAEJ;AAEA,MAAI,iBAAiB;AACnB,WAAO;AAAA,EACT;AAEA,SACE,oBAAC,SAAI,WAAU,gBACb,8BAAC,YAAU,UAAS,GACtB;AAEJ;","names":[]}
@@ -1,12 +1,5 @@
1
- import {
2
- ResetPasswordForm
3
- } from "../../chunk-H7JRQFFI.js";
4
- import "../../chunk-RRLFPSSM.js";
5
- import "../../chunk-DPH2PHK3.js";
6
- import "../../chunk-EPEXIGKB.js";
7
- import "../../chunk-AWSAC7RT.js";
8
-
9
1
  // src/pages/auth/reset-password.tsx
2
+ import { ResetPasswordForm } from "@mesob/auth-react/components/auth/reset-password-form";
10
3
  import { jsx } from "react/jsx-runtime";
11
4
  var metadata = {
12
5
  title: "Reset password",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/auth/reset-password.tsx"],"sourcesContent":["import type { Metadata } from 'next';\nimport { ResetPasswordForm } from '../../components/auth/reset-password-form';\n\ntype PageProps = {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n};\n\nexport const metadata: Metadata = {\n title: 'Reset password',\n description: 'Set a new password for your account.',\n};\n\nexport default async function ResetPasswordPage({ searchParams }: PageProps) {\n const params = searchParams ? await searchParams : {};\n const verificationIdParam = params.verificationId;\n const redirectParam = params.redirect;\n const verificationId =\n typeof verificationIdParam === 'string' ? verificationIdParam : '';\n const redirectUrl =\n typeof redirectParam === 'string' ? redirectParam : undefined;\n\n return (\n <ResetPasswordForm\n verificationId={verificationId}\n redirectUrl={redirectUrl}\n />\n );\n}\n"],"mappings":";;;;;;;;;AAsBI;AAfG,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,kBAAyC,EAAE,aAAa,GAAc;AAC3E,QAAM,SAAS,eAAe,MAAM,eAAe,CAAC;AACpD,QAAM,sBAAsB,OAAO;AACnC,QAAM,gBAAgB,OAAO;AAC7B,QAAM,iBACJ,OAAO,wBAAwB,WAAW,sBAAsB;AAClE,QAAM,cACJ,OAAO,kBAAkB,WAAW,gBAAgB;AAEtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/auth/reset-password.tsx"],"sourcesContent":["import { ResetPasswordForm } from '@mesob/auth-react/components/auth/reset-password-form';\nimport type { Metadata } from 'next';\n\ntype PageProps = {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n};\n\nexport const metadata: Metadata = {\n title: 'Reset password',\n description: 'Set a new password for your account.',\n};\n\nexport default async function ResetPasswordPage({ searchParams }: PageProps) {\n const params = searchParams ? await searchParams : {};\n const verificationIdParam = params.verificationId;\n const redirectParam = params.redirect;\n const verificationId =\n typeof verificationIdParam === 'string' ? verificationIdParam : '';\n const redirectUrl =\n typeof redirectParam === 'string' ? redirectParam : undefined;\n\n return (\n <ResetPasswordForm\n verificationId={verificationId}\n redirectUrl={redirectUrl}\n />\n );\n}\n"],"mappings":";AAAA,SAAS,yBAAyB;AAsB9B;AAfG,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,kBAAyC,EAAE,aAAa,GAAc;AAC3E,QAAM,SAAS,eAAe,MAAM,eAAe,CAAC;AACpD,QAAM,sBAAsB,OAAO;AACnC,QAAM,gBAAgB,OAAO;AAC7B,QAAM,iBACJ,OAAO,wBAAwB,WAAW,sBAAsB;AAClE,QAAM,cACJ,OAAO,kBAAkB,WAAW,gBAAgB;AAEtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,13 +1,5 @@
1
- import {
2
- SetPassword
3
- } from "../../chunk-TEHMLZFI.js";
4
- import "../../chunk-V2W3WPCZ.js";
5
- import "../../chunk-RRLFPSSM.js";
6
- import "../../chunk-DPH2PHK3.js";
7
- import "../../chunk-EPEXIGKB.js";
8
- import "../../chunk-AWSAC7RT.js";
9
-
10
1
  // src/pages/auth/set-password.tsx
2
+ import { SetPassword } from "@mesob/auth-react/components/auth/set-password";
11
3
  import { jsx } from "react/jsx-runtime";
12
4
  var metadata = {
13
5
  title: "Set password",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/auth/set-password.tsx"],"sourcesContent":["import type { Metadata } from 'next';\nimport { SetPassword } from '../../components/auth/set-password';\n\ntype PageProps = {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n};\n\nexport const metadata: Metadata = {\n title: 'Set password',\n description: 'Set a password for your account.',\n};\n\nexport default async function SetPasswordPage({ searchParams }: PageProps) {\n const params = searchParams ? await searchParams : {};\n const identifierParam = params.identifier;\n const redirectParam = params.redirect;\n const identifier =\n typeof identifierParam === 'string' ? identifierParam : undefined;\n const redirectUrl =\n typeof redirectParam === 'string' ? redirectParam : undefined;\n\n return <SetPassword identifier={identifier} redirectUrl={redirectUrl} />;\n}\n"],"mappings":";;;;;;;;;;AAqBS;AAdF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,gBAAuC,EAAE,aAAa,GAAc;AACzE,QAAM,SAAS,eAAe,MAAM,eAAe,CAAC;AACpD,QAAM,kBAAkB,OAAO;AAC/B,QAAM,gBAAgB,OAAO;AAC7B,QAAM,aACJ,OAAO,oBAAoB,WAAW,kBAAkB;AAC1D,QAAM,cACJ,OAAO,kBAAkB,WAAW,gBAAgB;AAEtD,SAAO,oBAAC,eAAY,YAAwB,aAA0B;AACxE;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/auth/set-password.tsx"],"sourcesContent":["import { SetPassword } from '@mesob/auth-react/components/auth/set-password';\nimport type { Metadata } from 'next';\n\ntype PageProps = {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n};\n\nexport const metadata: Metadata = {\n title: 'Set password',\n description: 'Set a password for your account.',\n};\n\nexport default async function SetPasswordPage({ searchParams }: PageProps) {\n const params = searchParams ? await searchParams : {};\n const identifierParam = params.identifier;\n const redirectParam = params.redirect;\n const identifier =\n typeof identifierParam === 'string' ? identifierParam : undefined;\n const redirectUrl =\n typeof redirectParam === 'string' ? redirectParam : undefined;\n\n return <SetPassword identifier={identifier} redirectUrl={redirectUrl} />;\n}\n"],"mappings":";AAAA,SAAS,mBAAmB;AAqBnB;AAdF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,gBAAuC,EAAE,aAAa,GAAc;AACzE,QAAM,SAAS,eAAe,MAAM,eAAe,CAAC;AACpD,QAAM,kBAAkB,OAAO;AAC/B,QAAM,gBAAgB,OAAO;AAC7B,QAAM,aACJ,OAAO,oBAAoB,WAAW,kBAAkB;AAC1D,QAAM,cACJ,OAAO,kBAAkB,WAAW,gBAAgB;AAEtD,SAAO,oBAAC,eAAY,YAAwB,aAA0B;AACxE;","names":[]}
@@ -1,13 +1,5 @@
1
- import {
2
- SignIn
3
- } from "../../chunk-2PV7RYNK.js";
4
- import "../../chunk-V2W3WPCZ.js";
5
- import "../../chunk-RRLFPSSM.js";
6
- import "../../chunk-DPH2PHK3.js";
7
- import "../../chunk-EPEXIGKB.js";
8
- import "../../chunk-AWSAC7RT.js";
9
-
10
1
  // src/pages/auth/sign-in.tsx
2
+ import { SignIn } from "@mesob/auth-react/components/auth/sign-in";
11
3
  import { jsx } from "react/jsx-runtime";
12
4
  var metadata = {
13
5
  title: "Sign in",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/auth/sign-in.tsx"],"sourcesContent":["import type { Metadata } from 'next';\nimport { SignIn } from '../../components/auth/sign-in';\n\ntype PageProps = {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n};\n\nexport const metadata: Metadata = {\n title: 'Sign in',\n description: 'Sign in to your account.',\n};\n\nexport default async function SignInPage({ searchParams }: PageProps) {\n const params = searchParams ? await searchParams : {};\n const redirectParam = params.redirect;\n const redirectUrl =\n typeof redirectParam === 'string' ? redirectParam : undefined;\n\n return <SignIn redirectUrl={redirectUrl} />;\n}\n"],"mappings":";;;;;;;;;;AAkBS;AAXF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,WAAkC,EAAE,aAAa,GAAc;AACpE,QAAM,SAAS,eAAe,MAAM,eAAe,CAAC;AACpD,QAAM,gBAAgB,OAAO;AAC7B,QAAM,cACJ,OAAO,kBAAkB,WAAW,gBAAgB;AAEtD,SAAO,oBAAC,UAAO,aAA0B;AAC3C;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/auth/sign-in.tsx"],"sourcesContent":["import { SignIn } from '@mesob/auth-react/components/auth/sign-in';\nimport type { Metadata } from 'next';\n\ntype PageProps = {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n};\n\nexport const metadata: Metadata = {\n title: 'Sign in',\n description: 'Sign in to your account.',\n};\n\nexport default async function SignInPage({ searchParams }: PageProps) {\n const params = searchParams ? await searchParams : {};\n const redirectParam = params.redirect;\n const redirectUrl =\n typeof redirectParam === 'string' ? redirectParam : undefined;\n\n return <SignIn redirectUrl={redirectUrl} />;\n}\n"],"mappings":";AAAA,SAAS,cAAc;AAkBd;AAXF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,WAAkC,EAAE,aAAa,GAAc;AACpE,QAAM,SAAS,eAAe,MAAM,eAAe,CAAC;AACpD,QAAM,gBAAgB,OAAO;AAC7B,QAAM,cACJ,OAAO,kBAAkB,WAAW,gBAAgB;AAEtD,SAAO,oBAAC,UAAO,aAA0B;AAC3C;","names":[]}
@@ -1,12 +1,5 @@
1
- import {
2
- SignUp
3
- } from "../../chunk-OXUOGOG3.js";
4
- import "../../chunk-RRLFPSSM.js";
5
- import "../../chunk-DPH2PHK3.js";
6
- import "../../chunk-EPEXIGKB.js";
7
- import "../../chunk-AWSAC7RT.js";
8
-
9
1
  // src/pages/auth/sign-up.tsx
2
+ import { SignUp } from "@mesob/auth-react/components/auth/sign-up";
10
3
  import { jsx } from "react/jsx-runtime";
11
4
  var metadata = {
12
5
  title: "Sign up",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/auth/sign-up.tsx"],"sourcesContent":["import type { Metadata } from 'next';\nimport { SignUp } from '../../components/auth/sign-up';\n\ntype PageProps = {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n};\n\nexport const metadata: Metadata = {\n title: 'Sign up',\n description: 'Create a new account.',\n};\n\nexport default async function SignUpPage({ searchParams }: PageProps) {\n const params = searchParams ? await searchParams : {};\n const emailParam = params.email;\n const phoneParam = params.phone;\n const redirectParam = params.redirect;\n let identifier: string | undefined;\n\n if (typeof emailParam === 'string') {\n identifier = emailParam;\n } else if (typeof phoneParam === 'string') {\n identifier = phoneParam;\n }\n\n const redirectUrl =\n typeof redirectParam === 'string' ? redirectParam : undefined;\n\n return <SignUp redirectUrl={redirectUrl} initialIdentifier={identifier} />;\n}\n"],"mappings":";;;;;;;;;AA4BS;AArBF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,WAAkC,EAAE,aAAa,GAAc;AACpE,QAAM,SAAS,eAAe,MAAM,eAAe,CAAC;AACpD,QAAM,aAAa,OAAO;AAC1B,QAAM,aAAa,OAAO;AAC1B,QAAM,gBAAgB,OAAO;AAC7B,MAAI;AAEJ,MAAI,OAAO,eAAe,UAAU;AAClC,iBAAa;AAAA,EACf,WAAW,OAAO,eAAe,UAAU;AACzC,iBAAa;AAAA,EACf;AAEA,QAAM,cACJ,OAAO,kBAAkB,WAAW,gBAAgB;AAEtD,SAAO,oBAAC,UAAO,aAA0B,mBAAmB,YAAY;AAC1E;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/auth/sign-up.tsx"],"sourcesContent":["import { SignUp } from '@mesob/auth-react/components/auth/sign-up';\nimport type { Metadata } from 'next';\n\ntype PageProps = {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n};\n\nexport const metadata: Metadata = {\n title: 'Sign up',\n description: 'Create a new account.',\n};\n\nexport default async function SignUpPage({ searchParams }: PageProps) {\n const params = searchParams ? await searchParams : {};\n const emailParam = params.email;\n const phoneParam = params.phone;\n const redirectParam = params.redirect;\n let identifier: string | undefined;\n\n if (typeof emailParam === 'string') {\n identifier = emailParam;\n } else if (typeof phoneParam === 'string') {\n identifier = phoneParam;\n }\n\n const redirectUrl =\n typeof redirectParam === 'string' ? redirectParam : undefined;\n\n return <SignUp redirectUrl={redirectUrl} initialIdentifier={identifier} />;\n}\n"],"mappings":";AAAA,SAAS,cAAc;AA4Bd;AArBF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,WAAkC,EAAE,aAAa,GAAc;AACpE,QAAM,SAAS,eAAe,MAAM,eAAe,CAAC;AACpD,QAAM,aAAa,OAAO;AAC1B,QAAM,aAAa,OAAO;AAC1B,QAAM,gBAAgB,OAAO;AAC7B,MAAI;AAEJ,MAAI,OAAO,eAAe,UAAU;AAClC,iBAAa;AAAA,EACf,WAAW,OAAO,eAAe,UAAU;AACzC,iBAAa;AAAA,EACf;AAEA,QAAM,cACJ,OAAO,kBAAkB,WAAW,gBAAgB;AAEtD,SAAO,oBAAC,UAAO,aAA0B,mBAAmB,YAAY;AAC1E;","names":[]}
@@ -1,14 +1,5 @@
1
- import {
2
- VerifyEmail
3
- } from "../../chunk-VVKXFEAN.js";
4
- import "../../chunk-Z34NJZRL.js";
5
- import "../../chunk-RMJNENJB.js";
6
- import "../../chunk-RRLFPSSM.js";
7
- import "../../chunk-DPH2PHK3.js";
8
- import "../../chunk-EPEXIGKB.js";
9
- import "../../chunk-AWSAC7RT.js";
10
-
11
1
  // src/pages/auth/verify-email.tsx
2
+ import { VerifyEmail } from "@mesob/auth-react/components/auth/verify-email";
12
3
  import { jsx } from "react/jsx-runtime";
13
4
  var metadata = {
14
5
  title: "Verify email",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/auth/verify-email.tsx"],"sourcesContent":["import type { Metadata } from 'next';\nimport { VerifyEmail } from '../../components/auth/verify-email';\n\ntype PageProps = {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n};\n\nexport const metadata: Metadata = {\n title: 'Verify email',\n description: 'Verify your email address.',\n};\n\nexport default async function VerifyEmailPage({ searchParams }: PageProps) {\n const params = searchParams ? await searchParams : {};\n const verificationIdParam = params.verificationId;\n const emailParam = params.email;\n const redirectParam = params.redirect;\n const verificationId =\n typeof verificationIdParam === 'string' ? verificationIdParam : '';\n const email = typeof emailParam === 'string' ? emailParam : '';\n const redirectUrl =\n typeof redirectParam === 'string' ? redirectParam : undefined;\n\n return (\n <VerifyEmail\n verificationId={verificationId}\n email={email}\n redirectUrl={redirectUrl}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;AAwBI;AAjBG,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,gBAAuC,EAAE,aAAa,GAAc;AACzE,QAAM,SAAS,eAAe,MAAM,eAAe,CAAC;AACpD,QAAM,sBAAsB,OAAO;AACnC,QAAM,aAAa,OAAO;AAC1B,QAAM,gBAAgB,OAAO;AAC7B,QAAM,iBACJ,OAAO,wBAAwB,WAAW,sBAAsB;AAClE,QAAM,QAAQ,OAAO,eAAe,WAAW,aAAa;AAC5D,QAAM,cACJ,OAAO,kBAAkB,WAAW,gBAAgB;AAEtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/auth/verify-email.tsx"],"sourcesContent":["import { VerifyEmail } from '@mesob/auth-react/components/auth/verify-email';\nimport type { Metadata } from 'next';\n\ntype PageProps = {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n};\n\nexport const metadata: Metadata = {\n title: 'Verify email',\n description: 'Verify your email address.',\n};\n\nexport default async function VerifyEmailPage({ searchParams }: PageProps) {\n const params = searchParams ? await searchParams : {};\n const verificationIdParam = params.verificationId;\n const emailParam = params.email;\n const redirectParam = params.redirect;\n const verificationId =\n typeof verificationIdParam === 'string' ? verificationIdParam : '';\n const email = typeof emailParam === 'string' ? emailParam : '';\n const redirectUrl =\n typeof redirectParam === 'string' ? redirectParam : undefined;\n\n return (\n <VerifyEmail\n verificationId={verificationId}\n email={email}\n redirectUrl={redirectUrl}\n />\n );\n}\n"],"mappings":";AAAA,SAAS,mBAAmB;AAwBxB;AAjBG,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,gBAAuC,EAAE,aAAa,GAAc;AACzE,QAAM,SAAS,eAAe,MAAM,eAAe,CAAC;AACpD,QAAM,sBAAsB,OAAO;AACnC,QAAM,aAAa,OAAO;AAC1B,QAAM,gBAAgB,OAAO;AAC7B,QAAM,iBACJ,OAAO,wBAAwB,WAAW,sBAAsB;AAClE,QAAM,QAAQ,OAAO,eAAe,WAAW,aAAa;AAC5D,QAAM,cACJ,OAAO,kBAAkB,WAAW,gBAAgB;AAEtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,14 +1,5 @@
1
- import {
2
- VerifyPhone
3
- } from "../../chunk-5E3XN6SW.js";
4
- import "../../chunk-Z34NJZRL.js";
5
- import "../../chunk-RMJNENJB.js";
6
- import "../../chunk-RRLFPSSM.js";
7
- import "../../chunk-DPH2PHK3.js";
8
- import "../../chunk-EPEXIGKB.js";
9
- import "../../chunk-AWSAC7RT.js";
10
-
11
1
  // src/pages/auth/verify-phone.tsx
2
+ import { VerifyPhone } from "@mesob/auth-react/components/auth/verify-phone";
12
3
  import { jsx } from "react/jsx-runtime";
13
4
  var metadata = {
14
5
  title: "Verify phone",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/auth/verify-phone.tsx"],"sourcesContent":["import type { Metadata } from 'next';\nimport { VerifyPhone } from '../../components/auth/verify-phone';\n\ntype PageProps = {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n};\n\nexport const metadata: Metadata = {\n title: 'Verify phone',\n description: 'Verify your phone number.',\n};\n\nexport default async function VerifyPhonePage({ searchParams }: PageProps) {\n const params = searchParams ? await searchParams : {};\n const verificationIdParam = params.verificationId;\n const contextParam = params.context;\n const phoneParam = params.phone;\n const identifierParam = params.identifier;\n const redirectParam = params.redirect;\n\n const verificationId =\n typeof verificationIdParam === 'string' ? verificationIdParam : '';\n const context =\n contextParam === 'sign-up' || contextParam === 'sign-in'\n ? contextParam\n : 'sign-in';\n\n let phone = '';\n if (typeof phoneParam === 'string') {\n phone = phoneParam;\n } else if (typeof identifierParam === 'string') {\n phone = identifierParam;\n }\n\n const redirectUrl =\n typeof redirectParam === 'string' ? redirectParam : undefined;\n\n return (\n <VerifyPhone\n verificationId={verificationId}\n context={context}\n phone={phone}\n redirectUrl={redirectUrl}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;AAsCI;AA/BG,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,gBAAuC,EAAE,aAAa,GAAc;AACzE,QAAM,SAAS,eAAe,MAAM,eAAe,CAAC;AACpD,QAAM,sBAAsB,OAAO;AACnC,QAAM,eAAe,OAAO;AAC5B,QAAM,aAAa,OAAO;AAC1B,QAAM,kBAAkB,OAAO;AAC/B,QAAM,gBAAgB,OAAO;AAE7B,QAAM,iBACJ,OAAO,wBAAwB,WAAW,sBAAsB;AAClE,QAAM,UACJ,iBAAiB,aAAa,iBAAiB,YAC3C,eACA;AAEN,MAAI,QAAQ;AACZ,MAAI,OAAO,eAAe,UAAU;AAClC,YAAQ;AAAA,EACV,WAAW,OAAO,oBAAoB,UAAU;AAC9C,YAAQ;AAAA,EACV;AAEA,QAAM,cACJ,OAAO,kBAAkB,WAAW,gBAAgB;AAEtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/auth/verify-phone.tsx"],"sourcesContent":["import { VerifyPhone } from '@mesob/auth-react/components/auth/verify-phone';\nimport type { Metadata } from 'next';\n\ntype PageProps = {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n};\n\nexport const metadata: Metadata = {\n title: 'Verify phone',\n description: 'Verify your phone number.',\n};\n\nexport default async function VerifyPhonePage({ searchParams }: PageProps) {\n const params = searchParams ? await searchParams : {};\n const verificationIdParam = params.verificationId;\n const contextParam = params.context;\n const phoneParam = params.phone;\n const identifierParam = params.identifier;\n const redirectParam = params.redirect;\n\n const verificationId =\n typeof verificationIdParam === 'string' ? verificationIdParam : '';\n const context =\n contextParam === 'sign-up' || contextParam === 'sign-in'\n ? contextParam\n : 'sign-in';\n\n let phone = '';\n if (typeof phoneParam === 'string') {\n phone = phoneParam;\n } else if (typeof identifierParam === 'string') {\n phone = identifierParam;\n }\n\n const redirectUrl =\n typeof redirectParam === 'string' ? redirectParam : undefined;\n\n return (\n <VerifyPhone\n verificationId={verificationId}\n context={context}\n phone={phone}\n redirectUrl={redirectUrl}\n />\n );\n}\n"],"mappings":";AAAA,SAAS,mBAAmB;AAsCxB;AA/BG,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,gBAAuC,EAAE,aAAa,GAAc;AACzE,QAAM,SAAS,eAAe,MAAM,eAAe,CAAC;AACpD,QAAM,sBAAsB,OAAO;AACnC,QAAM,eAAe,OAAO;AAC5B,QAAM,aAAa,OAAO;AAC1B,QAAM,kBAAkB,OAAO;AAC/B,QAAM,gBAAgB,OAAO;AAE7B,QAAM,iBACJ,OAAO,wBAAwB,WAAW,sBAAsB;AAClE,QAAM,UACJ,iBAAiB,aAAa,iBAAiB,YAC3C,eACA;AAEN,MAAI,QAAQ;AACZ,MAAI,OAAO,eAAe,UAAU;AAClC,YAAQ;AAAA,EACV,WAAW,OAAO,oBAAoB,UAAU;AAC9C,YAAQ;AAAA,EACV;AAEA,QAAM,cACJ,OAAO,kBAAkB,WAAW,gBAAgB;AAEtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1 +1 @@
1
- export { DomainsPage as default } from '../../components/iam/domains-page';
1
+ export { DomainsPage as default } from '@mesob/auth-react/components/iam/domains-page';
@@ -1 +1 @@
1
- export { PermissionsPage as default } from '../../components/iam/permissions-page';
1
+ export { PermissionsPage as default } from '@mesob/auth-react/components/iam/permissions-page';
@@ -1,11 +1,7 @@
1
1
  "use client";
2
- import {
3
- PermissionsPage
4
- } from "../../chunk-T34HJRUW.js";
5
- import "../../chunk-NPW7D2HZ.js";
6
- import "../../chunk-V6ZHX4LT.js";
7
- import "../../chunk-5SDS2E3F.js";
8
- import "../../chunk-AWSAC7RT.js";
2
+
3
+ // src/pages/iam/permissions.tsx
4
+ import { PermissionsPage } from "@mesob/auth-react/components/iam/permissions-page";
9
5
  export {
10
6
  PermissionsPage as default
11
7
  };
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/iam/permissions.tsx"],"sourcesContent":["'use client';\n\nexport { PermissionsPage as default } from '@mesob/auth-react/components/iam/permissions-page';\n"],"mappings":";;;AAEA,SAA4B,uBAAe;","names":[]}
@@ -1,9 +1,5 @@
1
- import {
2
- RoleDetailLayout
3
- } from "../../chunk-EQWOGD4F.js";
4
- import "../../chunk-AWSAC7RT.js";
5
-
6
1
  // src/pages/iam/role-detail-layout.tsx
2
+ import { RoleDetailLayout } from "@mesob/auth-react/components/iam/role-detail-layout";
7
3
  import { jsx } from "react/jsx-runtime";
8
4
  async function RoleDetailLayoutPage({
9
5
  children,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/iam/role-detail-layout.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { RoleDetailLayout } from '../../components/iam/role-detail-layout';\n\ntype RoleDetailLayoutPageProps = {\n children: ReactNode;\n params: Promise<{ id: string }>;\n};\n\nexport default async function RoleDetailLayoutPage({\n children,\n params,\n}: RoleDetailLayoutPageProps) {\n const { id } = await params;\n\n return (\n <RoleDetailLayout roleId={id} basePath=\"/iam/roles\">\n {children}\n </RoleDetailLayout>\n );\n}\n"],"mappings":";;;;;;AAeI;AAPJ,eAAO,qBAA4C;AAAA,EACjD;AAAA,EACA;AACF,GAA8B;AAC5B,QAAM,EAAE,GAAG,IAAI,MAAM;AAErB,SACE,oBAAC,oBAAiB,QAAQ,IAAI,UAAS,cACpC,UACH;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/iam/role-detail-layout.tsx"],"sourcesContent":["import { RoleDetailLayout } from '@mesob/auth-react/components/iam/role-detail-layout';\nimport type { ReactNode } from 'react';\n\ntype RoleDetailLayoutPageProps = {\n children: ReactNode;\n params: Promise<{ id: string }>;\n};\n\nexport default async function RoleDetailLayoutPage({\n children,\n params,\n}: RoleDetailLayoutPageProps) {\n const { id } = await params;\n\n return (\n <RoleDetailLayout roleId={id} basePath=\"/iam/roles\">\n {children}\n </RoleDetailLayout>\n );\n}\n"],"mappings":";AAAA,SAAS,wBAAwB;AAe7B;AAPJ,eAAO,qBAA4C;AAAA,EACjD;AAAA,EACA;AACF,GAA8B;AAC5B,QAAM,EAAE,GAAG,IAAI,MAAM;AAErB,SACE,oBAAC,oBAAiB,QAAQ,IAAI,UAAS,cACpC,UACH;AAEJ;","names":[]}
@@ -1,11 +1,5 @@
1
- import {
2
- RoleDetailPage
3
- } from "../../chunk-7CLKBH5Z.js";
4
- import "../../chunk-V6ZHX4LT.js";
5
- import "../../chunk-5SDS2E3F.js";
6
- import "../../chunk-AWSAC7RT.js";
7
-
8
1
  // src/pages/iam/role-detail.tsx
2
+ import { RoleDetailPage } from "@mesob/auth-react/components/iam/role-detail-page";
9
3
  import { jsx } from "react/jsx-runtime";
10
4
  var metadata = {
11
5
  title: "Role Detail",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/iam/role-detail.tsx"],"sourcesContent":["import type { Metadata } from 'next';\nimport { RoleDetailPage } from '../../components/iam/role-detail-page';\n\ntype RoleDetailPageProps = {\n params: Promise<{ id: string }>;\n};\n\nexport const metadata: Metadata = {\n title: 'Role Detail',\n description: 'Manage role details.',\n};\n\nexport default async function RoleDetailRoutePage({\n params,\n}: RoleDetailPageProps) {\n const { id } = await params;\n\n return <RoleDetailPage roleId={id} basePath=\"/iam/roles\" />;\n}\n"],"mappings":";;;;;;;;AAiBS;AAVF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,oBAA2C;AAAA,EAChD;AACF,GAAwB;AACtB,QAAM,EAAE,GAAG,IAAI,MAAM;AAErB,SAAO,oBAAC,kBAAe,QAAQ,IAAI,UAAS,cAAa;AAC3D;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/iam/role-detail.tsx"],"sourcesContent":["import { RoleDetailPage } from '@mesob/auth-react/components/iam/role-detail-page';\nimport type { Metadata } from 'next';\n\ntype RoleDetailPageProps = {\n params: Promise<{ id: string }>;\n};\n\nexport const metadata: Metadata = {\n title: 'Role Detail',\n description: 'Manage role details.',\n};\n\nexport default async function RoleDetailRoutePage({\n params,\n}: RoleDetailPageProps) {\n const { id } = await params;\n\n return <RoleDetailPage roleId={id} basePath=\"/iam/roles\" />;\n}\n"],"mappings":";AAAA,SAAS,sBAAsB;AAiBtB;AAVF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,oBAA2C;AAAA,EAChD;AACF,GAAwB;AACtB,QAAM,EAAE,GAAG,IAAI,MAAM;AAErB,SAAO,oBAAC,kBAAe,QAAQ,IAAI,UAAS,cAAa;AAC3D;","names":[]}
@@ -1,12 +1,5 @@
1
- import {
2
- RolePermissionsPage
3
- } from "../../chunk-IQNQGPIT.js";
4
- import "../../chunk-GVEBIL3O.js";
5
- import "../../chunk-V6ZHX4LT.js";
6
- import "../../chunk-5SDS2E3F.js";
7
- import "../../chunk-AWSAC7RT.js";
8
-
9
1
  // src/pages/iam/role-permissions.tsx
2
+ import { RolePermissionsPage } from "@mesob/auth-react/components/iam/role-permissions-page";
10
3
  import { jsx } from "react/jsx-runtime";
11
4
  var metadata = {
12
5
  title: "Role Permissions",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/iam/role-permissions.tsx"],"sourcesContent":["import type { Metadata } from 'next';\nimport { RolePermissionsPage } from '../../components/iam/role-permissions-page';\n\ntype RolePermissionsPageProps = {\n params: Promise<{ id: string }>;\n};\n\nexport const metadata: Metadata = {\n title: 'Role Permissions',\n description: 'Manage permissions assigned to a role.',\n};\n\nexport default async function RolePermissionsRoutePage({\n params,\n}: RolePermissionsPageProps) {\n const { id } = await params;\n\n return <RolePermissionsPage roleId={id} />;\n}\n"],"mappings":";;;;;;;;;AAiBS;AAVF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,yBAAgD;AAAA,EACrD;AACF,GAA6B;AAC3B,QAAM,EAAE,GAAG,IAAI,MAAM;AAErB,SAAO,oBAAC,uBAAoB,QAAQ,IAAI;AAC1C;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/iam/role-permissions.tsx"],"sourcesContent":["import { RolePermissionsPage } from '@mesob/auth-react/components/iam/role-permissions-page';\nimport type { Metadata } from 'next';\n\ntype RolePermissionsPageProps = {\n params: Promise<{ id: string }>;\n};\n\nexport const metadata: Metadata = {\n title: 'Role Permissions',\n description: 'Manage permissions assigned to a role.',\n};\n\nexport default async function RolePermissionsRoutePage({\n params,\n}: RolePermissionsPageProps) {\n const { id } = await params;\n\n return <RolePermissionsPage roleId={id} />;\n}\n"],"mappings":";AAAA,SAAS,2BAA2B;AAiB3B;AAVF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,yBAAgD;AAAA,EACrD;AACF,GAA6B;AAC3B,QAAM,EAAE,GAAG,IAAI,MAAM;AAErB,SAAO,oBAAC,uBAAoB,QAAQ,IAAI;AAC1C;","names":[]}
@@ -1,17 +1,5 @@
1
- import {
2
- RoleUsersPage
3
- } from "../../chunk-SGUROG23.js";
4
- import "../../chunk-GBDNBY6K.js";
5
- import "../../chunk-ECF6S2Y2.js";
6
- import "../../chunk-OW75JENQ.js";
7
- import "../../chunk-W3D4HG5W.js";
8
- import "../../chunk-WY2JJNZW.js";
9
- import "../../chunk-NPW7D2HZ.js";
10
- import "../../chunk-V6ZHX4LT.js";
11
- import "../../chunk-5SDS2E3F.js";
12
- import "../../chunk-AWSAC7RT.js";
13
-
14
1
  // src/pages/iam/role-users.tsx
2
+ import { RoleUsersPage } from "@mesob/auth-react";
15
3
  import { jsx } from "react/jsx-runtime";
16
4
  var metadata = {
17
5
  title: "Role Users",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/iam/role-users.tsx"],"sourcesContent":["import type { Metadata } from 'next';\nimport { RoleUsersPage } from './roles/users/_components/role-users-page';\n\ntype RoleUsersPageProps = {\n params: Promise<{ id: string }>;\n};\n\nexport const metadata: Metadata = {\n title: 'Role Users',\n description: 'Manage users assigned to a role.',\n};\n\nexport default async function RoleUsersRoutePage({\n params,\n}: RoleUsersPageProps) {\n const { id } = await params;\n\n return <RoleUsersPage roleId={id} />;\n}\n"],"mappings":";;;;;;;;;;;;;;AAiBS;AAVF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,mBAA0C;AAAA,EAC/C;AACF,GAAuB;AACrB,QAAM,EAAE,GAAG,IAAI,MAAM;AAErB,SAAO,oBAAC,iBAAc,QAAQ,IAAI;AACpC;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/iam/role-users.tsx"],"sourcesContent":["import { RoleUsersPage } from '@mesob/auth-react';\nimport type { Metadata } from 'next';\n\ntype RoleUsersPageProps = {\n params: Promise<{ id: string }>;\n};\n\nexport const metadata: Metadata = {\n title: 'Role Users',\n description: 'Manage users assigned to a role.',\n};\n\nexport default async function RoleUsersRoutePage({\n params,\n}: RoleUsersPageProps) {\n const { id } = await params;\n\n return <RoleUsersPage roleId={id} />;\n}\n"],"mappings":";AAAA,SAAS,qBAAqB;AAiBrB;AAVF,IAAM,WAAqB;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AACf;AAEA,eAAO,mBAA0C;AAAA,EAC/C;AACF,GAAuB;AACrB,QAAM,EAAE,GAAG,IAAI,MAAM;AAErB,SAAO,oBAAC,iBAAc,QAAQ,IAAI;AACpC;","names":[]}
@@ -1 +1 @@
1
- export { RolesPage as default } from '../../components/iam/roles-page';
1
+ export { RolesPage as default } from '@mesob/auth-react/components/iam/roles-page';
@@ -1,15 +1,7 @@
1
1
  "use client";
2
- import {
3
- RolesPage
4
- } from "../../chunk-RCQTWNAG.js";
5
- import "../../chunk-MQI6Q2S4.js";
6
- import "../../chunk-OW75JENQ.js";
7
- import "../../chunk-W3D4HG5W.js";
8
- import "../../chunk-WY2JJNZW.js";
9
- import "../../chunk-NPW7D2HZ.js";
10
- import "../../chunk-V6ZHX4LT.js";
11
- import "../../chunk-5SDS2E3F.js";
12
- import "../../chunk-AWSAC7RT.js";
2
+
3
+ // src/pages/iam/roles.tsx
4
+ import { RolesPage } from "@mesob/auth-react/components/iam/roles-page";
13
5
  export {
14
6
  RolesPage as default
15
7
  };
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/iam/roles.tsx"],"sourcesContent":["'use client';\n\nexport { RolesPage as default } from '@mesob/auth-react/components/iam/roles-page';\n"],"mappings":";;;AAEA,SAAsB,iBAAe;","names":[]}
@@ -1 +1 @@
1
- export { SessionsPage as default } from '../../components/iam/sessions-page';
1
+ export { SessionsPage as default } from '@mesob/auth-react/components/iam/sessions-page';
@@ -1,13 +1,7 @@
1
1
  "use client";
2
- import {
3
- SessionsPage
4
- } from "../../chunk-H5PUZDNU.js";
5
- import "../../chunk-W3D4HG5W.js";
6
- import "../../chunk-WY2JJNZW.js";
7
- import "../../chunk-NPW7D2HZ.js";
8
- import "../../chunk-V6ZHX4LT.js";
9
- import "../../chunk-5SDS2E3F.js";
10
- import "../../chunk-AWSAC7RT.js";
2
+
3
+ // src/pages/iam/sessions.tsx
4
+ import { SessionsPage } from "@mesob/auth-react/components/iam/sessions-page";
11
5
  export {
12
6
  SessionsPage as default
13
7
  };
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/iam/sessions.tsx"],"sourcesContent":["'use client';\n\nexport { SessionsPage as default } from '@mesob/auth-react/components/iam/sessions-page';\n"],"mappings":";;;AAEA,SAAyB,oBAAe;","names":[]}
@@ -1,12 +1,5 @@
1
- import {
2
- TenantDetailPageContent
3
- } from "../../chunk-QPEUVMSP.js";
4
- import "../../chunk-EWXK56WQ.js";
5
- import "../../chunk-V6ZHX4LT.js";
6
- import "../../chunk-5SDS2E3F.js";
7
- import "../../chunk-AWSAC7RT.js";
8
-
9
1
  // src/pages/iam/tenant-detail.tsx
2
+ import { TenantDetailPageContent } from "@mesob/auth-react";
10
3
  import { jsx } from "react/jsx-runtime";
11
4
  async function TenantDetailPage({
12
5
  params
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pages/iam/tenant-detail.tsx"],"sourcesContent":["import { TenantDetailPageContent } from './tenants/tenant-detail-page-content';\n\ntype TenantDetailPageProps = {\n params: Promise<{ id: string }>;\n};\n\nexport default async function TenantDetailPage({\n params,\n}: TenantDetailPageProps) {\n const { id } = await params;\n\n return <TenantDetailPageContent tenantId={id} />;\n}\n"],"mappings":";;;;;;;;;AAWS;AALT,eAAO,iBAAwC;AAAA,EAC7C;AACF,GAA0B;AACxB,QAAM,EAAE,GAAG,IAAI,MAAM;AAErB,SAAO,oBAAC,2BAAwB,UAAU,IAAI;AAChD;","names":[]}
1
+ {"version":3,"sources":["../../../src/pages/iam/tenant-detail.tsx"],"sourcesContent":["import { TenantDetailPageContent } from '@mesob/auth-react';\n\ntype TenantDetailPageProps = {\n params: Promise<{ id: string }>;\n};\n\nexport default async function TenantDetailPage({\n params,\n}: TenantDetailPageProps) {\n const { id } = await params;\n\n return <TenantDetailPageContent tenantId={id} />;\n}\n"],"mappings":";AAAA,SAAS,+BAA+B;AAW/B;AALT,eAAO,iBAAwC;AAAA,EAC7C;AACF,GAA0B;AACxB,QAAM,EAAE,GAAG,IAAI,MAAM;AAErB,SAAO,oBAAC,2BAAwB,UAAU,IAAI;AAChD;","names":[]}
@@ -4,12 +4,12 @@ import {
4
4
  } from "../../../chunk-EWXK56WQ.js";
5
5
  import {
6
6
  authApi$
7
- } from "../../../chunk-W3D4HG5W.js";
8
- import "../../../chunk-WY2JJNZW.js";
7
+ } from "../../../chunk-DRM44QBR.js";
8
+ import "../../../chunk-IK7V3PT3.js";
9
9
  import {
10
10
  defaultEntityQueryOptions
11
11
  } from "../../../chunk-NPW7D2HZ.js";
12
- import "../../../chunk-AWSAC7RT.js";
12
+ import "../../../chunk-A5ON3RKH.js";
13
13
 
14
14
  // src/pages/iam/tenants/_components/tenant-selector.tsx
15
15
  import {
@@ -1 +1 @@
1
- export { TenantsPage as default } from '../../components/iam/tenants-page';
1
+ export { TenantsPage as default } from '@mesob/auth-react/components/iam/tenants-page';