@orthacms/users-admin 0.0.0-reserve.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +7 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/lib/api/useAddWorkspaceMember/index.d.ts +16 -0
- package/dist/lib/api/useAddWorkspaceMember/index.d.ts.map +1 -0
- package/dist/lib/api/useInviteMember/index.d.ts +17 -0
- package/dist/lib/api/useInviteMember/index.d.ts.map +1 -0
- package/dist/lib/api/useMembers/index.d.ts +15 -0
- package/dist/lib/api/useMembers/index.d.ts.map +1 -0
- package/dist/lib/api/useMembersMutation/index.d.ts +13 -0
- package/dist/lib/api/useMembersMutation/index.d.ts.map +1 -0
- package/dist/lib/api/useRemoveWorkspaceMember/index.d.ts +15 -0
- package/dist/lib/api/useRemoveWorkspaceMember/index.d.ts.map +1 -0
- package/dist/lib/api/useResendInvite/index.d.ts +8 -0
- package/dist/lib/api/useResendInvite/index.d.ts.map +1 -0
- package/dist/lib/api/useRevokeInvite/index.d.ts +7 -0
- package/dist/lib/api/useRevokeInvite/index.d.ts.map +1 -0
- package/dist/lib/api/useRevokeSession/index.d.ts +15 -0
- package/dist/lib/api/useRevokeSession/index.d.ts.map +1 -0
- package/dist/lib/api/useSetMemberStatus/index.d.ts +15 -0
- package/dist/lib/api/useSetMemberStatus/index.d.ts.map +1 -0
- package/dist/lib/api/useUpdateMember/index.d.ts +15 -0
- package/dist/lib/api/useUpdateMember/index.d.ts.map +1 -0
- package/dist/lib/api/useUserDetail/index.d.ts +9 -0
- package/dist/lib/api/useUserDetail/index.d.ts.map +1 -0
- package/dist/lib/api/useUserSessions/index.d.ts +25 -0
- package/dist/lib/api/useUserSessions/index.d.ts.map +1 -0
- package/dist/lib/api/useWorkspaceOptions/index.d.ts +18 -0
- package/dist/lib/api/useWorkspaceOptions/index.d.ts.map +1 -0
- package/dist/lib/application/useAddWorkspaceMember/index.d.ts +11 -0
- package/dist/lib/application/useAddWorkspaceMember/index.d.ts.map +1 -0
- package/dist/lib/application/useAddWorkspaceMember/index.js +21 -0
- package/dist/lib/application/useInviteMember/index.d.ts +12 -0
- package/dist/lib/application/useInviteMember/index.d.ts.map +1 -0
- package/dist/lib/application/useInviteMember/index.js +12 -0
- package/dist/lib/application/useInviteMemberFlow/index.d.ts +59 -0
- package/dist/lib/application/useInviteMemberFlow/index.d.ts.map +1 -0
- package/dist/lib/application/useInviteMemberFlow/index.js +47 -0
- package/dist/lib/application/useIssuePasswordReset/index.d.ts +12 -0
- package/dist/lib/application/useIssuePasswordReset/index.d.ts.map +1 -0
- package/dist/lib/application/useIssuePasswordReset/index.js +14 -0
- package/dist/lib/application/useMembers/index.d.ts +15 -0
- package/dist/lib/application/useMembers/index.d.ts.map +1 -0
- package/dist/lib/application/useMembers/index.js +23 -0
- package/dist/lib/application/useMembersMutation/index.d.ts +14 -0
- package/dist/lib/application/useMembersMutation/index.d.ts.map +1 -0
- package/dist/lib/application/useMembersMutation/index.js +25 -0
- package/dist/lib/application/usePreferences/index.d.ts +15 -0
- package/dist/lib/application/usePreferences/index.d.ts.map +1 -0
- package/dist/lib/application/usePreferences/index.js +28 -0
- package/dist/lib/application/useRemoveWorkspaceMember/index.d.ts +10 -0
- package/dist/lib/application/useRemoveWorkspaceMember/index.d.ts.map +1 -0
- package/dist/lib/application/useRemoveWorkspaceMember/index.js +20 -0
- package/dist/lib/application/useResendInvite/index.d.ts +10 -0
- package/dist/lib/application/useResendInvite/index.d.ts.map +1 -0
- package/dist/lib/application/useResendInvite/index.js +12 -0
- package/dist/lib/application/useRevokeInvite/index.d.ts +7 -0
- package/dist/lib/application/useRevokeInvite/index.d.ts.map +1 -0
- package/dist/lib/application/useRevokeInvite/index.js +10 -0
- package/dist/lib/application/useRevokeSession/index.d.ts +10 -0
- package/dist/lib/application/useRevokeSession/index.d.ts.map +1 -0
- package/dist/lib/application/useRevokeSession/index.js +19 -0
- package/dist/lib/application/useSetMemberStatus/index.d.ts +11 -0
- package/dist/lib/application/useSetMemberStatus/index.d.ts.map +1 -0
- package/dist/lib/application/useSetMemberStatus/index.js +11 -0
- package/dist/lib/application/useUpdateMember/index.d.ts +11 -0
- package/dist/lib/application/useUpdateMember/index.d.ts.map +1 -0
- package/dist/lib/application/useUpdateMember/index.js +11 -0
- package/dist/lib/application/useUpdateTheme/index.d.ts +14 -0
- package/dist/lib/application/useUpdateTheme/index.d.ts.map +1 -0
- package/dist/lib/application/useUpdateTheme/index.js +25 -0
- package/dist/lib/application/useUserDetail/index.d.ts +9 -0
- package/dist/lib/application/useUserDetail/index.d.ts.map +1 -0
- package/dist/lib/application/useUserDetail/index.js +17 -0
- package/dist/lib/application/useUserSessions/index.d.ts +9 -0
- package/dist/lib/application/useUserSessions/index.d.ts.map +1 -0
- package/dist/lib/application/useUserSessions/index.js +17 -0
- package/dist/lib/application/useWorkspaceOptions/index.d.ts +10 -0
- package/dist/lib/application/useWorkspaceOptions/index.d.ts.map +1 -0
- package/dist/lib/application/useWorkspaceOptions/index.js +17 -0
- package/dist/lib/components/AccountMenu/index.d.ts +9 -0
- package/dist/lib/components/AccountMenu/index.d.ts.map +1 -0
- package/dist/lib/components/AddToWorkspacesDialog/index.d.ts +19 -0
- package/dist/lib/components/AddToWorkspacesDialog/index.d.ts.map +1 -0
- package/dist/lib/components/BackLink/index.d.ts +14 -0
- package/dist/lib/components/BackLink/index.d.ts.map +1 -0
- package/dist/lib/components/ConfirmDialog/index.d.ts +30 -0
- package/dist/lib/components/ConfirmDialog/index.d.ts.map +1 -0
- package/dist/lib/components/EditMemberDialog/index.d.ts +21 -0
- package/dist/lib/components/EditMemberDialog/index.d.ts.map +1 -0
- package/dist/lib/components/MemberAvatar/index.d.ts +24 -0
- package/dist/lib/components/MemberAvatar/index.d.ts.map +1 -0
- package/dist/lib/components/MembersEmpty/index.d.ts +16 -0
- package/dist/lib/components/MembersEmpty/index.d.ts.map +1 -0
- package/dist/lib/components/MembersNoAccess/index.d.ts +7 -0
- package/dist/lib/components/MembersNoAccess/index.d.ts.map +1 -0
- package/dist/lib/components/MembersPagination/index.d.ts +17 -0
- package/dist/lib/components/MembersPagination/index.d.ts.map +1 -0
- package/dist/lib/components/MembersSkeleton/index.d.ts +32 -0
- package/dist/lib/components/MembersSkeleton/index.d.ts.map +1 -0
- package/dist/lib/components/MembersTable/MemberRoleChip/index.d.ts +10 -0
- package/dist/lib/components/MembersTable/MemberRoleChip/index.d.ts.map +1 -0
- package/dist/lib/components/MembersTable/MemberRowActions/index.d.ts +16 -0
- package/dist/lib/components/MembersTable/MemberRowActions/index.d.ts.map +1 -0
- package/dist/lib/components/MembersTable/MemberStatusBadge/index.d.ts +10 -0
- package/dist/lib/components/MembersTable/MemberStatusBadge/index.d.ts.map +1 -0
- package/dist/lib/components/MembersTable/MemberWorkspaces/index.d.ts +10 -0
- package/dist/lib/components/MembersTable/MemberWorkspaces/index.d.ts.map +1 -0
- package/dist/lib/components/MembersTable/index.d.ts +12 -0
- package/dist/lib/components/MembersTable/index.d.ts.map +1 -0
- package/dist/lib/components/MembersToolbar/index.d.ts +13 -0
- package/dist/lib/components/MembersToolbar/index.d.ts.map +1 -0
- package/dist/lib/components/RolePicker/index.d.ts +18 -0
- package/dist/lib/components/RolePicker/index.d.ts.map +1 -0
- package/dist/lib/components/SessionCard/index.d.ts +15 -0
- package/dist/lib/components/SessionCard/index.d.ts.map +1 -0
- package/dist/lib/components/UserDetailLayout/UserDetailTabs/index.d.ts +13 -0
- package/dist/lib/components/UserDetailLayout/UserDetailTabs/index.d.ts.map +1 -0
- package/dist/lib/components/UserDetailLayout/UserHero/index.d.ts +10 -0
- package/dist/lib/components/UserDetailLayout/UserHero/index.d.ts.map +1 -0
- package/dist/lib/components/UserDetailLayout/UserSideRail/index.d.ts +12 -0
- package/dist/lib/components/UserDetailLayout/UserSideRail/index.d.ts.map +1 -0
- package/dist/lib/components/UserDetailLayout/UserStatsStrip/index.d.ts +10 -0
- package/dist/lib/components/UserDetailLayout/UserStatsStrip/index.d.ts.map +1 -0
- package/dist/lib/components/UserDetailLayout/index.d.ts +13 -0
- package/dist/lib/components/UserDetailLayout/index.d.ts.map +1 -0
- package/dist/lib/components/UserDetailRouter/index.d.ts +13 -0
- package/dist/lib/components/UserDetailRouter/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceMembershipCard/index.d.ts +15 -0
- package/dist/lib/components/WorkspaceMembershipCard/index.d.ts.map +1 -0
- package/dist/lib/domain/member/index.d.ts +61 -0
- package/dist/lib/domain/member/index.d.ts.map +1 -0
- package/dist/lib/domain/member/index.js +61 -0
- package/dist/lib/domain/types/member/index.d.ts +90 -0
- package/dist/lib/domain/types/member/index.d.ts.map +1 -0
- package/dist/lib/domain/types/member/index.js +1 -0
- package/dist/lib/domain/types/session/index.d.ts +18 -0
- package/dist/lib/domain/types/session/index.d.ts.map +1 -0
- package/dist/lib/domain/types/session/index.js +1 -0
- package/dist/lib/domain/types/workspaceOption/index.d.ts +15 -0
- package/dist/lib/domain/types/workspaceOption/index.d.ts.map +1 -0
- package/dist/lib/domain/types/workspaceOption/index.js +1 -0
- package/dist/lib/domain/value-objects/email/index.d.ts +24 -0
- package/dist/lib/domain/value-objects/email/index.d.ts.map +1 -0
- package/dist/lib/domain/value-objects/email/index.js +45 -0
- package/dist/lib/infrastructure/httpMemberGateway/index.d.ts +12 -0
- package/dist/lib/infrastructure/httpMemberGateway/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/httpMemberGateway/index.js +158 -0
- package/dist/lib/infrastructure/inviteLink/index.d.ts +13 -0
- package/dist/lib/infrastructure/inviteLink/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/inviteLink/index.js +23 -0
- package/dist/lib/infrastructure/memberGateway/index.d.ts +103 -0
- package/dist/lib/infrastructure/memberGateway/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/memberGateway/index.js +1 -0
- package/dist/lib/infrastructure/memberMapper/index.d.ts +59 -0
- package/dist/lib/infrastructure/memberMapper/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/memberMapper/index.js +52 -0
- package/dist/lib/infrastructure/membersKeys/index.d.ts +37 -0
- package/dist/lib/infrastructure/membersKeys/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/membersKeys/index.js +25 -0
- package/dist/lib/infrastructure/passwordResetLink/index.d.ts +13 -0
- package/dist/lib/infrastructure/passwordResetLink/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/passwordResetLink/index.js +24 -0
- package/dist/lib/infrastructure/preferencesGateway/index.d.ts +37 -0
- package/dist/lib/infrastructure/preferencesGateway/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/preferencesGateway/index.js +43 -0
- package/dist/lib/pages/InviteMemberPage/index.d.ts +7 -0
- package/dist/lib/pages/InviteMemberPage/index.d.ts.map +1 -0
- package/dist/lib/pages/MembersPage/index.d.ts +13 -0
- package/dist/lib/pages/MembersPage/index.d.ts.map +1 -0
- package/dist/lib/pages/UserAccessPage/index.d.ts +9 -0
- package/dist/lib/pages/UserAccessPage/index.d.ts.map +1 -0
- package/dist/lib/pages/UserActivityPage/index.d.ts +8 -0
- package/dist/lib/pages/UserActivityPage/index.d.ts.map +1 -0
- package/dist/lib/pages/UserGeneralPage/index.d.ts +7 -0
- package/dist/lib/pages/UserGeneralPage/index.d.ts.map +1 -0
- package/dist/lib/pages/UserRolesPage/index.d.ts +8 -0
- package/dist/lib/pages/UserRolesPage/index.d.ts.map +1 -0
- package/dist/lib/pages/UserSessionsPage/index.d.ts +7 -0
- package/dist/lib/pages/UserSessionsPage/index.d.ts.map +1 -0
- package/dist/lib/pages/UserWorkspacesPage/index.d.ts +8 -0
- package/dist/lib/pages/UserWorkspacesPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/AccountMenu/index.d.ts +9 -0
- package/dist/lib/presentation/components/AccountMenu/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/AccountMenu/index.js +42 -0
- package/dist/lib/presentation/components/AddToWorkspacesDialog/index.d.ts +19 -0
- package/dist/lib/presentation/components/AddToWorkspacesDialog/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/AddToWorkspacesDialog/index.js +89 -0
- package/dist/lib/presentation/components/BackLink/index.d.ts +14 -0
- package/dist/lib/presentation/components/BackLink/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/BackLink/index.js +12 -0
- package/dist/lib/presentation/components/InviteLinkDialog/index.d.ts +25 -0
- package/dist/lib/presentation/components/InviteLinkDialog/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/InviteLinkDialog/index.js +77 -0
- package/dist/lib/presentation/components/InviteLinkPanel/index.d.ts +26 -0
- package/dist/lib/presentation/components/InviteLinkPanel/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/InviteLinkPanel/index.js +59 -0
- package/dist/lib/presentation/components/InviteSent/index.d.ts +20 -0
- package/dist/lib/presentation/components/InviteSent/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/InviteSent/index.js +60 -0
- package/dist/lib/presentation/components/MemberAvatar/index.d.ts +24 -0
- package/dist/lib/presentation/components/MemberAvatar/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/MemberAvatar/index.js +14 -0
- package/dist/lib/presentation/components/MembersEmpty/index.d.ts +16 -0
- package/dist/lib/presentation/components/MembersEmpty/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/MembersEmpty/index.js +42 -0
- package/dist/lib/presentation/components/MembersNoAccess/index.d.ts +7 -0
- package/dist/lib/presentation/components/MembersNoAccess/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/MembersNoAccess/index.js +24 -0
- package/dist/lib/presentation/components/MembersPagination/index.d.ts +17 -0
- package/dist/lib/presentation/components/MembersPagination/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/MembersPagination/index.js +45 -0
- package/dist/lib/presentation/components/MembersSkeleton/index.d.ts +32 -0
- package/dist/lib/presentation/components/MembersSkeleton/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/MembersSkeleton/index.js +61 -0
- package/dist/lib/presentation/components/MembersTable/MemberRoleChip/index.d.ts +17 -0
- package/dist/lib/presentation/components/MembersTable/MemberRoleChip/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/MembersTable/MemberRoleChip/index.js +36 -0
- package/dist/lib/presentation/components/MembersTable/MemberRowActions/index.d.ts +16 -0
- package/dist/lib/presentation/components/MembersTable/MemberRowActions/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/MembersTable/MemberRowActions/index.js +284 -0
- package/dist/lib/presentation/components/MembersTable/MemberStatusBadge/index.d.ts +10 -0
- package/dist/lib/presentation/components/MembersTable/MemberStatusBadge/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/MembersTable/MemberStatusBadge/index.js +49 -0
- package/dist/lib/presentation/components/MembersTable/MemberWorkspaces/index.d.ts +10 -0
- package/dist/lib/presentation/components/MembersTable/MemberWorkspaces/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/MembersTable/MemberWorkspaces/index.js +37 -0
- package/dist/lib/presentation/components/MembersTable/index.d.ts +12 -0
- package/dist/lib/presentation/components/MembersTable/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/MembersTable/index.js +54 -0
- package/dist/lib/presentation/components/MembersTable/membersTableAnchor/index.d.ts +14 -0
- package/dist/lib/presentation/components/MembersTable/membersTableAnchor/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/MembersToolbar/index.d.ts +15 -0
- package/dist/lib/presentation/components/MembersToolbar/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/MembersToolbar/index.js +23 -0
- package/dist/lib/presentation/components/PasswordResetCard/index.d.ts +19 -0
- package/dist/lib/presentation/components/PasswordResetCard/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/PasswordResetCard/index.js +109 -0
- package/dist/lib/presentation/components/PasswordResetLinkDialog/index.d.ts +27 -0
- package/dist/lib/presentation/components/PasswordResetLinkDialog/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/PasswordResetLinkDialog/index.js +79 -0
- package/dist/lib/presentation/components/PasswordResetLinkPanel/index.d.ts +31 -0
- package/dist/lib/presentation/components/PasswordResetLinkPanel/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/PasswordResetLinkPanel/index.js +64 -0
- package/dist/lib/presentation/components/RolePicker/index.d.ts +21 -0
- package/dist/lib/presentation/components/RolePicker/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/RolePicker/index.js +51 -0
- package/dist/lib/presentation/components/SessionCard/index.d.ts +15 -0
- package/dist/lib/presentation/components/SessionCard/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/SessionCard/index.js +43 -0
- package/dist/lib/presentation/components/ThemeSync/index.d.ts +21 -0
- package/dist/lib/presentation/components/ThemeSync/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/ThemeSync/index.js +32 -0
- package/dist/lib/presentation/components/UserDetailLayout/UserDetailTabs/index.d.ts +15 -0
- package/dist/lib/presentation/components/UserDetailLayout/UserDetailTabs/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/UserDetailLayout/UserDetailTabs/index.js +52 -0
- package/dist/lib/presentation/components/UserDetailLayout/UserHero/index.d.ts +10 -0
- package/dist/lib/presentation/components/UserDetailLayout/UserHero/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/UserDetailLayout/UserHero/index.js +26 -0
- package/dist/lib/presentation/components/UserDetailLayout/UserStatsStrip/index.d.ts +10 -0
- package/dist/lib/presentation/components/UserDetailLayout/UserStatsStrip/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/UserDetailLayout/UserStatsStrip/index.js +39 -0
- package/dist/lib/presentation/components/UserDetailLayout/index.d.ts +13 -0
- package/dist/lib/presentation/components/UserDetailLayout/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/UserDetailLayout/index.js +101 -0
- package/dist/lib/presentation/components/UserDetailRouter/index.d.ts +16 -0
- package/dist/lib/presentation/components/UserDetailRouter/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/UserDetailRouter/index.js +33 -0
- package/dist/lib/presentation/components/WorkspaceMembershipCard/index.d.ts +15 -0
- package/dist/lib/presentation/components/WorkspaceMembershipCard/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceMembershipCard/index.js +27 -0
- package/dist/lib/presentation/membersFilterFields/index.d.ts +10 -0
- package/dist/lib/presentation/membersFilterFields/index.d.ts.map +1 -0
- package/dist/lib/presentation/membersFilterFields/index.js +67 -0
- package/dist/lib/presentation/membersResultsAnchor/index.d.ts +17 -0
- package/dist/lib/presentation/membersResultsAnchor/index.d.ts.map +1 -0
- package/dist/lib/presentation/membersResultsAnchor/index.js +16 -0
- package/dist/lib/presentation/pages/InviteMemberPage/index.d.ts +7 -0
- package/dist/lib/presentation/pages/InviteMemberPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/pages/InviteMemberPage/index.js +346 -0
- package/dist/lib/presentation/pages/MembersPage/index.d.ts +13 -0
- package/dist/lib/presentation/pages/MembersPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/pages/MembersPage/index.js +140 -0
- package/dist/lib/presentation/pages/UserAccessPage/index.d.ts +18 -0
- package/dist/lib/presentation/pages/UserAccessPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/pages/UserAccessPage/index.js +153 -0
- package/dist/lib/presentation/pages/UserActivityPage/index.d.ts +8 -0
- package/dist/lib/presentation/pages/UserActivityPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/pages/UserActivityPage/index.js +228 -0
- package/dist/lib/presentation/pages/UserGeneralPage/index.d.ts +7 -0
- package/dist/lib/presentation/pages/UserGeneralPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/pages/UserGeneralPage/index.js +72 -0
- package/dist/lib/presentation/pages/UserPreferencesPage/ThemePreview.d.ts +11 -0
- package/dist/lib/presentation/pages/UserPreferencesPage/ThemePreview.d.ts.map +1 -0
- package/dist/lib/presentation/pages/UserPreferencesPage/ThemePreview.js +24 -0
- package/dist/lib/presentation/pages/UserPreferencesPage/index.d.ts +10 -0
- package/dist/lib/presentation/pages/UserPreferencesPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/pages/UserPreferencesPage/index.js +148 -0
- package/dist/lib/presentation/pages/UserRolesPage/index.d.ts +8 -0
- package/dist/lib/presentation/pages/UserRolesPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/pages/UserRolesPage/index.js +110 -0
- package/dist/lib/presentation/pages/UserSessionsPage/index.d.ts +7 -0
- package/dist/lib/presentation/pages/UserSessionsPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/pages/UserSessionsPage/index.js +121 -0
- package/dist/lib/presentation/pages/UserWorkspacesPage/index.d.ts +8 -0
- package/dist/lib/presentation/pages/UserWorkspacesPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/pages/UserWorkspacesPage/index.js +111 -0
- package/dist/lib/presentation/userDetailContext/index.d.ts +13 -0
- package/dist/lib/presentation/userDetailContext/index.d.ts.map +1 -0
- package/dist/lib/presentation/userDetailContext/index.js +5 -0
- package/dist/lib/presentation/usersPlugin/index.d.ts +27 -0
- package/dist/lib/presentation/usersPlugin/index.d.ts.map +1 -0
- package/dist/lib/presentation/usersPlugin/index.js +109 -0
- package/dist/lib/types/member/index.d.ts +63 -0
- package/dist/lib/types/member/index.d.ts.map +1 -0
- package/dist/lib/utils/membersFilterFields/index.d.ts +10 -0
- package/dist/lib/utils/membersFilterFields/index.d.ts.map +1 -0
- package/dist/lib/utils/membersKeys/index.d.ts +27 -0
- package/dist/lib/utils/membersKeys/index.d.ts.map +1 -0
- package/dist/lib/utils/toMember/index.d.ts +33 -0
- package/dist/lib/utils/toMember/index.d.ts.map +1 -0
- package/dist/lib/utils/userDetailContext/index.d.ts +13 -0
- package/dist/lib/utils/userDetailContext/index.d.ts.map +1 -0
- package/dist/lib/utils/usersPlugin/index.d.ts +27 -0
- package/dist/lib/utils/usersPlugin/index.d.ts.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Section placeholder shown while {@link useWorkspaceOptions} resolves in the
|
|
3
|
+
* invite wizard's "assign workspaces" step — two mode tiles over a short list of
|
|
4
|
+
* option rows. Replaces the inline spinner so the step keeps its shape while the
|
|
5
|
+
* list loads. Owns a single `role="status"`; the tiles are `aria-hidden`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function WorkspaceOptionsSkeleton({ rows }: {
|
|
8
|
+
rows?: number;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
10
|
+
/**
|
|
11
|
+
* The members-table placeholder shown while {@link useMembers} resolves. Built
|
|
12
|
+
* from the real `Table` primitives so column widths and the header match the
|
|
13
|
+
* loaded table exactly (no reflow on swap). Drops into the page body in place
|
|
14
|
+
* of the table (header + toolbar stay live), so it owns the single
|
|
15
|
+
* `role="status"` announcement; the table itself is `aria-hidden`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function MembersTableSkeleton({ rows }: {
|
|
18
|
+
rows?: number;
|
|
19
|
+
}): import("react").JSX.Element;
|
|
20
|
+
/**
|
|
21
|
+
* Full-page placeholder for the lazy-route `Suspense` fallback — before
|
|
22
|
+
* {@link MembersPage} mounts there is no header or toolbar yet, so this sketches
|
|
23
|
+
* the whole page (header, search toolbar, table) to hold the layout steady
|
|
24
|
+
* while the chunk loads. Reuses {@link MembersTableSkeleton} for the body.
|
|
25
|
+
*/
|
|
26
|
+
export declare function MembersPageSkeleton(): import("react").JSX.Element;
|
|
27
|
+
/**
|
|
28
|
+
* Lazy-route `Suspense` fallback for {@link InviteMemberPage}. Wraps the shared
|
|
29
|
+
* {@link WizardPageSkeleton} so the `sr-only` status stays localized.
|
|
30
|
+
*/
|
|
31
|
+
export declare function InviteMemberPageSkeleton(): import("react").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/MembersSkeleton/index.tsx"],"names":[],"mappings":"AA6BA;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,IAAQ,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BA0BvE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,IAAQ,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAmEnE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,gCAkBlC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,gCAIvC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MemberRole } from '../../../types/member';
|
|
2
|
+
/**
|
|
3
|
+
* The Role column's read-only chip: the member's role as a labelled badge.
|
|
4
|
+
* Changing a role happens through the row's edit action (and the server gates
|
|
5
|
+
* it on `users:update`), so the column itself carries no inline editor.
|
|
6
|
+
*/
|
|
7
|
+
export declare function MemberRoleChip({ role }: {
|
|
8
|
+
role: MemberRole;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/MembersTable/MemberRoleChip/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AA2BxD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,+BAW5D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Member } from '../../../types/member';
|
|
2
|
+
/**
|
|
3
|
+
* The row-end kebab menu. It mirrors the user detail page's side rail: an
|
|
4
|
+
* **Account** group (General / Role / Workspaces) that every reader sees, then
|
|
5
|
+
* permission-gated **Audit** (Sessions / Activity) and **Access** (Sign-in
|
|
6
|
+
* access) groups — each item navigates straight to that tab. Below a separator
|
|
7
|
+
* sit the status quick actions: a pending invite offers Resend / Revoke, an
|
|
8
|
+
* active member Disable, a disabled member Enable, each shown only with its
|
|
9
|
+
* `users:*` permission. The guardrailed Disable (yourself, the sole admin)
|
|
10
|
+
* stays visible but inert with a tooltip. (Clicking the row itself also opens
|
|
11
|
+
* the member — see {@link MembersTable}.)
|
|
12
|
+
*/
|
|
13
|
+
export declare function MemberRowActions({ member }: {
|
|
14
|
+
member: Member;
|
|
15
|
+
}): import("react").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/MembersTable/MemberRowActions/index.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AA6FpD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BAqP9D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MemberStatus } from '../../../types/member';
|
|
2
|
+
/**
|
|
3
|
+
* The Status column's pill: a leading colored dot plus the status label —
|
|
4
|
+
* green "Active", amber "Invited" (a sent, unaccepted invite), muted
|
|
5
|
+
* "Disabled".
|
|
6
|
+
*/
|
|
7
|
+
export declare function MemberStatusBadge({ status }: {
|
|
8
|
+
status: MemberStatus;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/MembersTable/MemberStatusBadge/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAwC1D;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,+BAuBrE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MemberWorkspace } from '../../../types/member';
|
|
2
|
+
/**
|
|
3
|
+
* The Workspaces column: a row of overlapping workspace avatars plus a count,
|
|
4
|
+
* opening a popover that lists every workspace the member belongs to — the
|
|
5
|
+
* same stack-and-popover treatment as the workspace card's member roster.
|
|
6
|
+
*/
|
|
7
|
+
export declare function MemberWorkspaces({ workspaces }: {
|
|
8
|
+
workspaces: MemberWorkspace[];
|
|
9
|
+
}): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/MembersTable/MemberWorkspaces/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAsB7D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC7B,UAAU,EACb,EAAE;IACC,UAAU,EAAE,eAAe,EAAE,CAAC;CACjC,+BAsEA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Member } from '../../types/member';
|
|
2
|
+
/**
|
|
3
|
+
* The members table: avatar + name + email, the role chip, the status pill, the
|
|
4
|
+
* workspace stack, the joined date (the invite date for Invited rows), and the
|
|
5
|
+
* per-row actions menu. The whole row is a shortcut to the member's detail page
|
|
6
|
+
* (the name is a real link for keyboard users); the actions cell stops the
|
|
7
|
+
* click from bubbling so opening the menu doesn't also navigate.
|
|
8
|
+
*/
|
|
9
|
+
export declare function MembersTable({ members }: {
|
|
10
|
+
members: Member[];
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/MembersTable/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAkCjD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,+BAyF9D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The Members table toolbar: a name/email search box with the advanced-filter
|
|
4
|
+
* control pinned to the right. Layout lives in the shared `SearchToolbar`; this
|
|
5
|
+
* wrapper only supplies the localised strings and the page-owned filter control.
|
|
6
|
+
*/
|
|
7
|
+
export declare function MembersToolbar({ search, onSearchChange, filterControl }: {
|
|
8
|
+
search: string;
|
|
9
|
+
onSearchChange: (value: string) => void;
|
|
10
|
+
/** Optional advanced-filter control rendered on the right. */
|
|
11
|
+
filterControl?: ReactNode;
|
|
12
|
+
}): import("react").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/MembersToolbar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAgBvC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC3B,MAAM,EACN,cAAc,EACd,aAAa,EAChB,EAAE;IACC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,8DAA8D;IAC9D,aAAa,CAAC,EAAE,SAAS,CAAC;CAC7B,+BAYA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { MemberRole } from '../../types/member';
|
|
2
|
+
/**
|
|
3
|
+
* A radio-card selector over the three assignable system roles, with each
|
|
4
|
+
* role's description and a "Current" badge on the saved one. Controlled: the
|
|
5
|
+
* parent owns `value` and decides what "apply" does. Used by the detail page's
|
|
6
|
+
* Role tab (and available to the invite flow).
|
|
7
|
+
*/
|
|
8
|
+
export declare function RolePicker({ value, current, disabled, onChange }: {
|
|
9
|
+
/** The selected role. */
|
|
10
|
+
value: MemberRole;
|
|
11
|
+
/** The member's currently-saved role, badged as "Current". */
|
|
12
|
+
current?: MemberRole;
|
|
13
|
+
/** Disables selection (read-only / in-flight). */
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
/** Called with the newly-picked role. */
|
|
16
|
+
onChange: (role: MemberRole) => void;
|
|
17
|
+
}): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/RolePicker/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAwCrD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACvB,KAAK,EACL,OAAO,EACP,QAAgB,EAChB,QAAQ,EACX,EAAE;IACC,yBAAyB;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC,+BAqDA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { UserSession } from '../../api/useUserSessions';
|
|
2
|
+
/**
|
|
3
|
+
* One of a member's live sessions: device/user-agent, originating IP, when it
|
|
4
|
+
* was last seen, and a Revoke action. The caller's own session is badged and
|
|
5
|
+
* its Revoke button disabled, so an admin can't sign themselves out from here.
|
|
6
|
+
*/
|
|
7
|
+
export declare function SessionCard({ session, busy, onRevoke }: {
|
|
8
|
+
/** The session to render. */
|
|
9
|
+
session: UserSession;
|
|
10
|
+
/** Whether a revoke for this session is in flight. */
|
|
11
|
+
busy?: boolean;
|
|
12
|
+
/** Revoke handler. */
|
|
13
|
+
onRevoke: (session: UserSession) => void;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/SessionCard/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAuB7D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EACxB,OAAO,EACP,IAAY,EACZ,QAAQ,EACX,EAAE;IACC,6BAA6B;IAC7B,OAAO,EAAE,WAAW,CAAC;IACrB,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C,+BAkDA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Member } from '../../../types/member';
|
|
2
|
+
/**
|
|
3
|
+
* The detail page's horizontal tab navigation — underline tabs between the
|
|
4
|
+
* hero and the active section. The account tabs (General, Role, Workspaces)
|
|
5
|
+
* are always shown; Sessions/Activity and Sign-in access are gated — without
|
|
6
|
+
* the permission the tab is hidden and its route redirects away, so a
|
|
7
|
+
* read-only admin never sees a dead link. Links are absolute (`/users/:id/…`)
|
|
8
|
+
* so active state is unambiguous regardless of the matched tab.
|
|
9
|
+
*/
|
|
10
|
+
export declare function UserDetailTabs({ member }: {
|
|
11
|
+
member: Member;
|
|
12
|
+
}): import("react").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/UserDetailLayout/UserDetailTabs/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AA+CpD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BAmD5D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Member } from '../../../types/member';
|
|
2
|
+
/**
|
|
3
|
+
* The detail page's identity card: a large initials avatar, the member's name
|
|
4
|
+
* and email, their status and role badges, and the join date. Read-only — every
|
|
5
|
+
* edit lives in a tab below.
|
|
6
|
+
*/
|
|
7
|
+
export declare function UserHero({ member }: {
|
|
8
|
+
member: Member;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/UserDetailLayout/UserHero/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAUpD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BAiCtD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Member } from '../../../types/member';
|
|
2
|
+
/**
|
|
3
|
+
* The detail page's sticky left navigation. Account sections are always shown;
|
|
4
|
+
* the Audit (Sessions, Activity) and Access groups are gated — without the
|
|
5
|
+
* permission the item is hidden and its route redirects away, so a read-only
|
|
6
|
+
* admin never sees a dead link. Links are absolute (`/users/:id/...`) so active
|
|
7
|
+
* state is unambiguous regardless of the matched tab.
|
|
8
|
+
*/
|
|
9
|
+
export declare function UserSideRail({ member }: {
|
|
10
|
+
member: Member;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/UserDetailLayout/UserSideRail/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAsEpD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BAgE1D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Member } from '../../../types/member';
|
|
2
|
+
/**
|
|
3
|
+
* A three-tile summary above the detail tabs: when the member joined, how many
|
|
4
|
+
* workspaces they belong to, and their global role. Sourced entirely from the
|
|
5
|
+
* shared detail record — no extra requests.
|
|
6
|
+
*/
|
|
7
|
+
export declare function UserStatsStrip({ member }: {
|
|
8
|
+
member: Member;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/UserDetailLayout/UserStatsStrip/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AA+CpD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BA2B5D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The user detail page shell, mounted at `/users/:id/*`. Fetches the member
|
|
3
|
+
* once and shares it with every tab through the Outlet context, so a tab read
|
|
4
|
+
* is free. Renders the back link, identity hero, stats strip, and the underline
|
|
5
|
+
* tab bar above the active tab. Loading shows skeletons; a 404 shows a
|
|
6
|
+
* dedicated "no longer exists" state; any other error is retryable by the
|
|
7
|
+
* tabs' own queries falling back here.
|
|
8
|
+
*
|
|
9
|
+
* Gated on `users:read` (the same permission the roster needs): without it the
|
|
10
|
+
* page shows the shared no-access state and fetches nothing.
|
|
11
|
+
*/
|
|
12
|
+
export declare function UserDetailLayout(): import("react").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/UserDetailLayout/index.tsx"],"names":[],"mappings":"AAwCA;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,gCAoI/B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The nested router for one member, mounted by the plugin at `/users/:id/*`.
|
|
3
|
+
* Mirrors `IdentityRouter`: a single element owning its own `<Routes>`, with
|
|
4
|
+
* the shared layout wrapping the tab pages and providing the member via Outlet
|
|
5
|
+
* context.
|
|
6
|
+
*
|
|
7
|
+
* The Audit (Sessions, Activity) and Access tabs are permission-gated at the
|
|
8
|
+
* route level — without the permission the route redirects to General, so a
|
|
9
|
+
* deep link or stale bookmark can't reach a tab the side rail hides. The index
|
|
10
|
+
* redirects to General as the default tab.
|
|
11
|
+
*/
|
|
12
|
+
export declare function UserDetailRouter(): import("react").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/UserDetailRouter/index.tsx"],"names":[],"mappings":"AAUA;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,gCA6C/B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { MemberWorkspace } from '../../types/member';
|
|
2
|
+
/**
|
|
3
|
+
* One workspace the member belongs to: its tinted mark, name, and (when the
|
|
4
|
+
* viewer can manage members) a Remove action. Removal is confirmed by the
|
|
5
|
+
* parent page, so this card just signals intent.
|
|
6
|
+
*/
|
|
7
|
+
export declare function WorkspaceMembershipCard({ workspace, onRemove, removing }: {
|
|
8
|
+
/** The workspace membership to render. */
|
|
9
|
+
workspace: MemberWorkspace;
|
|
10
|
+
/** Remove handler; omit to hide the action (read-only). */
|
|
11
|
+
onRemove?: (workspace: MemberWorkspace) => void;
|
|
12
|
+
/** Whether a removal for this workspace is in flight. */
|
|
13
|
+
removing?: boolean;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/WorkspaceMembershipCard/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAc1D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACpC,SAAS,EACT,QAAQ,EACR,QAAgB,EACnB,EAAE;IACC,0CAA0C;IAC1C,SAAS,EAAE,eAAe,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,+BA2CA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Member } from '../types/member';
|
|
2
|
+
/**
|
|
3
|
+
* Why a guarded member action is currently vetoed, as a machine key the
|
|
4
|
+
* presentation maps to a localized reason:
|
|
5
|
+
* - `self` — you can't disable/suspend your own account, or change your own role.
|
|
6
|
+
* - `lastAdmin` — the sole active admin can't be demoted or disabled.
|
|
7
|
+
* - `customRole` — the member holds a role outside the three assignable system
|
|
8
|
+
* roles, so the picker cannot represent (or safely replace) it.
|
|
9
|
+
*/
|
|
10
|
+
export type MemberBlockReason = 'self' | 'lastAdmin' | 'customRole';
|
|
11
|
+
/**
|
|
12
|
+
* The result of a UX-invariant check: `ok` when the action is allowed, else the
|
|
13
|
+
* machine `reason` the button/menu shows (disabled, with a tooltip/alert). The
|
|
14
|
+
* server enforces the same rules — this only mirrors them so the control can
|
|
15
|
+
* explain itself before the request instead of failing on submit.
|
|
16
|
+
*/
|
|
17
|
+
export type MemberInvariant = {
|
|
18
|
+
ok: true;
|
|
19
|
+
reason: null;
|
|
20
|
+
} | {
|
|
21
|
+
ok: false;
|
|
22
|
+
reason: MemberBlockReason;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* A member wrapped as a thin client entity, exposing the **UX invariants** the
|
|
26
|
+
* admin mirrors from server-computed facts (`isLastAdmin`, the viewer's id).
|
|
27
|
+
* The admin stays thin — the server owns business truth (ADR-0003); this only
|
|
28
|
+
* lets a control disable itself with a reason rather than let the user click
|
|
29
|
+
* into a guaranteed `409`.
|
|
30
|
+
*
|
|
31
|
+
* It wraps the plain {@link Member} view model (the cached, query-serializable
|
|
32
|
+
* shape) rather than replacing it, so React Query's structural sharing keeps
|
|
33
|
+
* working; construct one on demand where an invariant is needed.
|
|
34
|
+
*/
|
|
35
|
+
export declare class MemberEntity {
|
|
36
|
+
private readonly member;
|
|
37
|
+
private constructor();
|
|
38
|
+
/** Wraps a {@link Member} view model for invariant checks. */
|
|
39
|
+
static of(member: Member): MemberEntity;
|
|
40
|
+
/**
|
|
41
|
+
* Whether this member's global role may be changed by the viewer. Three
|
|
42
|
+
* ways it can't: it's **your own** account (the server 409s "You cannot
|
|
43
|
+
* change your own role"), they are the sole active admin (`isLastAdmin` —
|
|
44
|
+
* demoting them would leave the system with no administrator), or they hold
|
|
45
|
+
* a **custom** role the three-way picker can't represent (`role: null`).
|
|
46
|
+
*
|
|
47
|
+
* `viewerId` is required for the self check, mirroring
|
|
48
|
+
* {@link MemberEntity.canBeRemoved}. Without it the control cannot explain
|
|
49
|
+
* itself and the user is left to discover the rule from a failed request.
|
|
50
|
+
*/
|
|
51
|
+
canChangeRole(viewerId: string | undefined): MemberInvariant;
|
|
52
|
+
/**
|
|
53
|
+
* Whether this member's sign-in access may be removed (disabled/suspended)
|
|
54
|
+
* by the viewer. You can't disable your own account (`self`), and the sole
|
|
55
|
+
* active admin can't be disabled (`lastAdmin`). Enabling/reactivating a
|
|
56
|
+
* disabled member is never vetoed, so callers apply this only to the
|
|
57
|
+
* suspend direction.
|
|
58
|
+
*/
|
|
59
|
+
canBeRemoved(viewerId: string | undefined): MemberInvariant;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/domain/member/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,GAAG,YAAY,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GACrB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAE,GAC1B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAI/C;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA3C,OAAO;IAEP,8DAA8D;IAC9D,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAIvC;;;;;;;;;;OAUG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe;IAa5D;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe;CAS9D"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
const ALLOWED = { ok: true, reason: null };
|
|
2
|
+
/**
|
|
3
|
+
* A member wrapped as a thin client entity, exposing the **UX invariants** the
|
|
4
|
+
* admin mirrors from server-computed facts (`isLastAdmin`, the viewer's id).
|
|
5
|
+
* The admin stays thin — the server owns business truth (ADR-0003); this only
|
|
6
|
+
* lets a control disable itself with a reason rather than let the user click
|
|
7
|
+
* into a guaranteed `409`.
|
|
8
|
+
*
|
|
9
|
+
* It wraps the plain {@link Member} view model (the cached, query-serializable
|
|
10
|
+
* shape) rather than replacing it, so React Query's structural sharing keeps
|
|
11
|
+
* working; construct one on demand where an invariant is needed.
|
|
12
|
+
*/
|
|
13
|
+
export class MemberEntity {
|
|
14
|
+
member;
|
|
15
|
+
constructor(member) {
|
|
16
|
+
this.member = member;
|
|
17
|
+
}
|
|
18
|
+
/** Wraps a {@link Member} view model for invariant checks. */
|
|
19
|
+
static of(member) {
|
|
20
|
+
return new MemberEntity(member);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Whether this member's global role may be changed by the viewer. Three
|
|
24
|
+
* ways it can't: it's **your own** account (the server 409s "You cannot
|
|
25
|
+
* change your own role"), they are the sole active admin (`isLastAdmin` —
|
|
26
|
+
* demoting them would leave the system with no administrator), or they hold
|
|
27
|
+
* a **custom** role the three-way picker can't represent (`role: null`).
|
|
28
|
+
*
|
|
29
|
+
* `viewerId` is required for the self check, mirroring
|
|
30
|
+
* {@link MemberEntity.canBeRemoved}. Without it the control cannot explain
|
|
31
|
+
* itself and the user is left to discover the rule from a failed request.
|
|
32
|
+
*/
|
|
33
|
+
canChangeRole(viewerId) {
|
|
34
|
+
if (viewerId !== undefined && viewerId === this.member.id) {
|
|
35
|
+
return { ok: false, reason: 'self' };
|
|
36
|
+
}
|
|
37
|
+
if (this.member.isLastAdmin) {
|
|
38
|
+
return { ok: false, reason: 'lastAdmin' };
|
|
39
|
+
}
|
|
40
|
+
if (this.member.role === null) {
|
|
41
|
+
return { ok: false, reason: 'customRole' };
|
|
42
|
+
}
|
|
43
|
+
return ALLOWED;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Whether this member's sign-in access may be removed (disabled/suspended)
|
|
47
|
+
* by the viewer. You can't disable your own account (`self`), and the sole
|
|
48
|
+
* active admin can't be disabled (`lastAdmin`). Enabling/reactivating a
|
|
49
|
+
* disabled member is never vetoed, so callers apply this only to the
|
|
50
|
+
* suspend direction.
|
|
51
|
+
*/
|
|
52
|
+
canBeRemoved(viewerId) {
|
|
53
|
+
if (viewerId !== undefined && viewerId === this.member.id) {
|
|
54
|
+
return { ok: false, reason: 'self' };
|
|
55
|
+
}
|
|
56
|
+
if (this.member.isLastAdmin) {
|
|
57
|
+
return { ok: false, reason: 'lastAdmin' };
|
|
58
|
+
}
|
|
59
|
+
return ALLOWED;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { AvatarColor } from '@orthacms/design-system';
|
|
2
|
+
/** The three assignable system roles, by stable key. */
|
|
3
|
+
export type MemberRole = 'admin' | 'contributor' | 'viewer';
|
|
4
|
+
/**
|
|
5
|
+
* Account lifecycle state, mirroring the server's `user_status` enum.
|
|
6
|
+
* `pending` renders as the "Invited" pill — an invite that has been sent but
|
|
7
|
+
* not yet accepted.
|
|
8
|
+
*/
|
|
9
|
+
export type MemberStatus = 'pending' | 'active' | 'disabled';
|
|
10
|
+
/** A workspace a member belongs to, as shown in the Workspaces column. */
|
|
11
|
+
export type MemberWorkspace = {
|
|
12
|
+
/** Stable workspace id. */
|
|
13
|
+
id: string;
|
|
14
|
+
/** Display name. */
|
|
15
|
+
name: string;
|
|
16
|
+
/** Short description, or `null` when none is set. */
|
|
17
|
+
description: string | null;
|
|
18
|
+
/** Two-letter initials shown in the avatar. */
|
|
19
|
+
initials: string;
|
|
20
|
+
/** Accent color tinting the workspace's avatar. */
|
|
21
|
+
color: AvatarColor;
|
|
22
|
+
};
|
|
23
|
+
/** A member of the system — one row of the Members table. */
|
|
24
|
+
export type Member = {
|
|
25
|
+
/** Stable user id. */
|
|
26
|
+
id: string;
|
|
27
|
+
/** Display name; falls back to the email until the invite is accepted. */
|
|
28
|
+
name: string;
|
|
29
|
+
/** Contact email. */
|
|
30
|
+
email: string;
|
|
31
|
+
/** Two-letter initials shown in the avatar. */
|
|
32
|
+
initials: string;
|
|
33
|
+
/** Accent color tinting the member's avatar (derived, not persisted). */
|
|
34
|
+
color: AvatarColor;
|
|
35
|
+
/**
|
|
36
|
+
* The member's single global role, by key — or `null` when they hold a
|
|
37
|
+
* custom role outside the three assignable system roles. Never guess a key
|
|
38
|
+
* for `null`: render {@link Member.roleName} instead and lock any control
|
|
39
|
+
* that would reassign it.
|
|
40
|
+
*/
|
|
41
|
+
role: MemberRole | null;
|
|
42
|
+
/** Human-readable role label (e.g. `Administrator`). */
|
|
43
|
+
roleName: string;
|
|
44
|
+
/** Account lifecycle state. */
|
|
45
|
+
status: MemberStatus;
|
|
46
|
+
/** When the membership was created; the invite date while `pending`. */
|
|
47
|
+
joinedAt: Date;
|
|
48
|
+
/**
|
|
49
|
+
* Whether this member is the only active administrator, computed
|
|
50
|
+
* server-side. When set, demote/disable controls are disabled with an
|
|
51
|
+
* explanatory tooltip — the server rejects those actions regardless.
|
|
52
|
+
*/
|
|
53
|
+
isLastAdmin: boolean;
|
|
54
|
+
/** The workspaces this member belongs to. */
|
|
55
|
+
workspaces: MemberWorkspace[];
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* A member the API just issued an invite token for — the response of inviting
|
|
59
|
+
* and of resending, and nothing else. No mailer sends the link yet, so the
|
|
60
|
+
* inviting admin is the delivery channel: the token comes back once, is turned
|
|
61
|
+
* into a link for them to copy, and is never readable again (the server stores
|
|
62
|
+
* only its hash).
|
|
63
|
+
*/
|
|
64
|
+
export type InvitedMember = Member & {
|
|
65
|
+
/** The raw invite token, shown to the inviting admin exactly once. */
|
|
66
|
+
inviteToken: string;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* A member the API just issued a password-reset token for — the response of
|
|
70
|
+
* `POST /users/:id/password-reset`, and nothing else. No mailer sends the link
|
|
71
|
+
* yet, so the issuing admin is the delivery channel: the token comes back once,
|
|
72
|
+
* is turned into a link for them to hand over, and is never readable again (the
|
|
73
|
+
* server stores only its hash).
|
|
74
|
+
*/
|
|
75
|
+
export type MemberWithResetToken = Member & {
|
|
76
|
+
/** The raw password-reset token, shown to the issuing admin exactly once. */
|
|
77
|
+
resetToken: string;
|
|
78
|
+
};
|
|
79
|
+
/** One page of members plus the pagination envelope. */
|
|
80
|
+
export type MemberList = {
|
|
81
|
+
/** The members on this page. */
|
|
82
|
+
items: Member[];
|
|
83
|
+
/** Total members matching the search, across all pages. */
|
|
84
|
+
total: number;
|
|
85
|
+
/** 1-based page number. */
|
|
86
|
+
page: number;
|
|
87
|
+
/** Rows per page. */
|
|
88
|
+
pageSize: number;
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/domain/types/member/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,wDAAwD;AACxD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE5D;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE7D,0EAA0E;AAC1E,MAAM,MAAM,eAAe,GAAG;IAC1B,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,KAAK,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,MAAM,GAAG;IACjB,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,KAAK,EAAE,WAAW,CAAC;IACnB;;;;;OAKG;IACH,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,wEAAwE;IACxE,QAAQ,EAAE,IAAI,CAAC;IACf;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,UAAU,EAAE,eAAe,EAAE,CAAC;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IACjC,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG;IACxC,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,UAAU,GAAG;IACrB,gCAAgC;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** A live session as the user-detail Sessions tab renders it. */
|
|
2
|
+
export type UserSession = {
|
|
3
|
+
/** Revocation handle (the session row id). */
|
|
4
|
+
id: string;
|
|
5
|
+
/** Originating `User-Agent`, or `null` if it was never captured. */
|
|
6
|
+
userAgent: string | null;
|
|
7
|
+
/** Originating IP, or `null` if it was never captured. */
|
|
8
|
+
ipAddress: string | null;
|
|
9
|
+
/** When the session was opened. */
|
|
10
|
+
createdAt: Date;
|
|
11
|
+
/** Last authenticated request seen on this session. */
|
|
12
|
+
lastSeenAt: Date;
|
|
13
|
+
/** Absolute expiry. */
|
|
14
|
+
expiresAt: Date;
|
|
15
|
+
/** Whether this is the viewer's own session (never revocable from here). */
|
|
16
|
+
current: boolean;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/domain/types/session/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,MAAM,WAAW,GAAG;IACtB,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,oEAAoE;IACpE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mCAAmC;IACnC,SAAS,EAAE,IAAI,CAAC;IAChB,uDAAuD;IACvD,UAAU,EAAE,IAAI,CAAC;IACjB,uBAAuB;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,4EAA4E;IAC5E,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AvatarColor } from '@orthacms/design-system';
|
|
2
|
+
/** A workspace as the invite wizard's assignment step (and the add-to-workspaces dialog) render it. */
|
|
3
|
+
export type WorkspaceOption = {
|
|
4
|
+
/** Stable workspace id. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Display name. */
|
|
7
|
+
name: string;
|
|
8
|
+
/** Short description, or `null` when none is set. */
|
|
9
|
+
description: string | null;
|
|
10
|
+
/** Two-letter initials shown in the avatar. */
|
|
11
|
+
initials: string;
|
|
12
|
+
/** Accent color tinting the workspace's avatar. */
|
|
13
|
+
color: AvatarColor;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/domain/types/workspaceOption/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,uGAAuG;AACvG,MAAM,MAAM,eAAe,GAAG;IAC1B,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,KAAK,EAAE,WAAW,CAAC;CACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A member's email address — a client-side value object mirroring the server's
|
|
3
|
+
* invite-email rule. It exists so the invite form's email field and its submit
|
|
4
|
+
* guard validate one rule rather than each re-testing an inline `z.email()` /
|
|
5
|
+
* regex literal. Format only — whether the address is already taken is a server
|
|
6
|
+
* concern surfaced as a `409` on submit.
|
|
7
|
+
*/
|
|
8
|
+
export declare class Email {
|
|
9
|
+
private readonly email;
|
|
10
|
+
private constructor();
|
|
11
|
+
/**
|
|
12
|
+
* Whether `value` is a well-shaped email, without throwing — the check the
|
|
13
|
+
* invite form's field uses for instant, per-keystroke feedback.
|
|
14
|
+
*/
|
|
15
|
+
static isValid(value: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Builds an {@link Email}, throwing on an empty, over-long, or wrongly-shaped
|
|
18
|
+
* value. Used by the invite use-case as a last guard before the request.
|
|
19
|
+
*/
|
|
20
|
+
static create(value: string): Email;
|
|
21
|
+
/** The underlying email string. */
|
|
22
|
+
get value(): string;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/domain/value-objects/email/index.ts"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,qBAAa,KAAK;IACM,OAAO,CAAC,QAAQ,CAAC,KAAK;IAA1C,OAAO;IAEP;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAQtC;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IAOnC,mCAAmC;IACnC,IAAI,KAAK,IAAI,MAAM,CAElB;CACJ"}
|