@burdenoff/microfe-organization 2026.510.110
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/README.md +64 -0
- package/dist/generated/global-operations.d.ts +1647 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-operations.js +724 -0
- package/dist/generated/global-operations.js.map +1 -0
- package/dist/generated/global-types.d.ts +20716 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/global-types.js +8 -0
- package/dist/generated/global-types.js.map +1 -0
- package/dist/generated/wspace-operations.d.ts +2 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-types.d.ts +53363 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/node_modules/sonner/dist/index.js +163 -0
- package/dist/node_modules/sonner/dist/index.js.map +1 -0
- package/dist/node_modules/zod/v3/ZodError.js +82 -0
- package/dist/node_modules/zod/v3/ZodError.js.map +1 -0
- package/dist/node_modules/zod/v3/errors.js +10 -0
- package/dist/node_modules/zod/v3/errors.js.map +1 -0
- package/dist/node_modules/zod/v3/helpers/errorUtil.js +9 -0
- package/dist/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
- package/dist/node_modules/zod/v3/helpers/parseUtil.js +93 -0
- package/dist/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
- package/dist/node_modules/zod/v3/helpers/util.js +76 -0
- package/dist/node_modules/zod/v3/helpers/util.js.map +1 -0
- package/dist/node_modules/zod/v3/locales/en.js +62 -0
- package/dist/node_modules/zod/v3/locales/en.js.map +1 -0
- package/dist/node_modules/zod/v3/types.js +2441 -0
- package/dist/node_modules/zod/v3/types.js.map +1 -0
- package/dist/organization-management/AdminOrganizationRoot.d.ts +16 -0
- package/dist/organization-management/AdminOrganizationRoot.d.ts.map +1 -0
- package/dist/organization-management/AdminOrganizationRoot.js +76 -0
- package/dist/organization-management/AdminOrganizationRoot.js.map +1 -0
- package/dist/organization-management/AdminOrganizationRoutes.d.ts +16 -0
- package/dist/organization-management/AdminOrganizationRoutes.d.ts.map +1 -0
- package/dist/organization-management/AdminOrganizationRoutes.js +73 -0
- package/dist/organization-management/AdminOrganizationRoutes.js.map +1 -0
- package/dist/organization-management/UserOrganizationRoot.d.ts +17 -0
- package/dist/organization-management/UserOrganizationRoot.d.ts.map +1 -0
- package/dist/organization-management/UserOrganizationRoot.js +45 -0
- package/dist/organization-management/UserOrganizationRoot.js.map +1 -0
- package/dist/organization-management/UserOrganizationRoutes.d.ts +12 -0
- package/dist/organization-management/UserOrganizationRoutes.d.ts.map +1 -0
- package/dist/organization-management/UserOrganizationRoutes.js +30 -0
- package/dist/organization-management/UserOrganizationRoutes.js.map +1 -0
- package/dist/organization-management/constants/permissions.d.ts +30 -0
- package/dist/organization-management/constants/permissions.d.ts.map +1 -0
- package/dist/organization-management/constants/permissions.js +22 -0
- package/dist/organization-management/constants/permissions.js.map +1 -0
- package/dist/organization-management/hooks/useOrganizationEventEmitter.d.ts +19 -0
- package/dist/organization-management/hooks/useOrganizationEventEmitter.d.ts.map +1 -0
- package/dist/organization-management/hooks/useOrganizationEventEmitter.js +15 -0
- package/dist/organization-management/hooks/useOrganizationEventEmitter.js.map +1 -0
- package/dist/organization-management/hooks/useOrganizationPageView.d.ts +11 -0
- package/dist/organization-management/hooks/useOrganizationPageView.d.ts.map +1 -0
- package/dist/organization-management/hooks/useOrganizationPageView.js +24 -0
- package/dist/organization-management/hooks/useOrganizationPageView.js.map +1 -0
- package/dist/organization-management/modules/members/components/InviteMemberForm.d.ts +18 -0
- package/dist/organization-management/modules/members/components/InviteMemberForm.d.ts.map +1 -0
- package/dist/organization-management/modules/members/components/InviteMemberForm.js +119 -0
- package/dist/organization-management/modules/members/components/InviteMemberForm.js.map +1 -0
- package/dist/organization-management/modules/members/components/InviteStatusBadge.d.ts +6 -0
- package/dist/organization-management/modules/members/components/InviteStatusBadge.d.ts.map +1 -0
- package/dist/organization-management/modules/members/components/InviteStatusBadge.js +51 -0
- package/dist/organization-management/modules/members/components/InviteStatusBadge.js.map +1 -0
- package/dist/organization-management/modules/members/components/MemberRoleBadge.d.ts +11 -0
- package/dist/organization-management/modules/members/components/MemberRoleBadge.d.ts.map +1 -0
- package/dist/organization-management/modules/members/components/MemberRoleBadge.js +56 -0
- package/dist/organization-management/modules/members/components/MemberRoleBadge.js.map +1 -0
- package/dist/organization-management/modules/members/components/MyInviteCard.d.ts +22 -0
- package/dist/organization-management/modules/members/components/MyInviteCard.d.ts.map +1 -0
- package/dist/organization-management/modules/members/components/MyInviteCard.js +70 -0
- package/dist/organization-management/modules/members/components/MyInviteCard.js.map +1 -0
- package/dist/organization-management/modules/members/components/PendingInvitesList.d.ts +6 -0
- package/dist/organization-management/modules/members/components/PendingInvitesList.d.ts.map +1 -0
- package/dist/organization-management/modules/members/components/PendingInvitesList.js +141 -0
- package/dist/organization-management/modules/members/components/PendingInvitesList.js.map +1 -0
- package/dist/organization-management/modules/members/hooks/useInvites.d.ts +75 -0
- package/dist/organization-management/modules/members/hooks/useInvites.d.ts.map +1 -0
- package/dist/organization-management/modules/members/hooks/useInvites.js +253 -0
- package/dist/organization-management/modules/members/hooks/useInvites.js.map +1 -0
- package/dist/organization-management/modules/members/hooks/useMembers.d.ts +84 -0
- package/dist/organization-management/modules/members/hooks/useMembers.d.ts.map +1 -0
- package/dist/organization-management/modules/members/hooks/useMembers.js +95 -0
- package/dist/organization-management/modules/members/hooks/useMembers.js.map +1 -0
- package/dist/organization-management/modules/members/pages/InviteMemberPage.d.ts +6 -0
- package/dist/organization-management/modules/members/pages/InviteMemberPage.d.ts.map +1 -0
- package/dist/organization-management/modules/members/pages/InviteMemberPage.js +91 -0
- package/dist/organization-management/modules/members/pages/InviteMemberPage.js.map +1 -0
- package/dist/organization-management/modules/members/pages/MemberDetailPage.d.ts +6 -0
- package/dist/organization-management/modules/members/pages/MemberDetailPage.d.ts.map +1 -0
- package/dist/organization-management/modules/members/pages/MemberDetailPage.js +115 -0
- package/dist/organization-management/modules/members/pages/MemberDetailPage.js.map +1 -0
- package/dist/organization-management/modules/members/pages/MembersListPage.d.ts +2 -0
- package/dist/organization-management/modules/members/pages/MembersListPage.d.ts.map +1 -0
- package/dist/organization-management/modules/members/pages/MembersListPage.js +424 -0
- package/dist/organization-management/modules/members/pages/MembersListPage.js.map +1 -0
- package/dist/organization-management/modules/members/pages/MyInvitesPage.d.ts +6 -0
- package/dist/organization-management/modules/members/pages/MyInvitesPage.d.ts.map +1 -0
- package/dist/organization-management/modules/members/pages/MyInvitesPage.js +114 -0
- package/dist/organization-management/modules/members/pages/MyInvitesPage.js.map +1 -0
- package/dist/organization-management/modules/members/types/index.d.ts +35 -0
- package/dist/organization-management/modules/members/types/index.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/components/OrganizationForm.d.ts +13 -0
- package/dist/organization-management/modules/organizations/components/OrganizationForm.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/components/OrganizationForm.js +325 -0
- package/dist/organization-management/modules/organizations/components/OrganizationForm.js.map +1 -0
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.d.ts +13 -0
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.js +49 -0
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.js.map +1 -0
- package/dist/organization-management/modules/organizations/hooks/useOrganizations.d.ts +86 -0
- package/dist/organization-management/modules/organizations/hooks/useOrganizations.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/hooks/useOrganizations.js +164 -0
- package/dist/organization-management/modules/organizations/hooks/useOrganizations.js.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.d.ts +6 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js +76 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.d.ts +2 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js +306 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.d.ts +6 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js +93 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.d.ts +2 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js +448 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js.map +1 -0
- package/dist/organization-management/modules/organizations/schemas/index.d.ts +53 -0
- package/dist/organization-management/modules/organizations/schemas/index.d.ts.map +1 -0
- package/dist/organization-management/modules/organizations/schemas/index.js +25 -0
- package/dist/organization-management/modules/organizations/schemas/index.js.map +1 -0
- package/dist/organization-management/modules/organizations/types/index.d.ts +34 -0
- package/dist/organization-management/modules/organizations/types/index.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.d.ts +13 -0
- package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.js +147 -0
- package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.js.map +1 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.d.ts +16 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.js +107 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.js.map +1 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.d.ts +16 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.js +386 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.js.map +1 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.d.ts +13 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.js +49 -0
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.js.map +1 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.d.ts +47 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.js +46 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.js.map +1 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.d.ts +133 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.js +111 -0
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.js.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.d.ts +2 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js +82 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.d.ts +2 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js +438 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.d.ts +2 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js +90 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.d.ts +2 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js +465 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js.map +1 -0
- package/dist/organization-management/modules/workspaces/schemas/index.d.ts +44 -0
- package/dist/organization-management/modules/workspaces/schemas/index.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/schemas/index.js +22 -0
- package/dist/organization-management/modules/workspaces/schemas/index.js.map +1 -0
- package/dist/organization-management/modules/workspaces/types/index.d.ts +39 -0
- package/dist/organization-management/modules/workspaces/types/index.d.ts.map +1 -0
- package/dist/organization-management/modules/workspaces/types/workspace-member.d.ts +48 -0
- package/dist/organization-management/modules/workspaces/types/workspace-member.d.ts.map +1 -0
- package/dist/organization-management/providers/OrgConsoleProvider.d.ts +19 -0
- package/dist/organization-management/providers/OrgConsoleProvider.d.ts.map +1 -0
- package/dist/organization-management/providers/OrgConsoleProvider.js +24 -0
- package/dist/organization-management/providers/OrgConsoleProvider.js.map +1 -0
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.d.ts +28 -0
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.d.ts.map +1 -0
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.js +105 -0
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.js.map +1 -0
- package/dist/organization-management/shared/components/feedback/EmptyState.d.ts +14 -0
- package/dist/organization-management/shared/components/feedback/EmptyState.d.ts.map +1 -0
- package/dist/organization-management/shared/components/feedback/EmptyState.js +30 -0
- package/dist/organization-management/shared/components/feedback/EmptyState.js.map +1 -0
- package/dist/organization-management/shared/components/feedback/ErrorState.d.ts +11 -0
- package/dist/organization-management/shared/components/feedback/ErrorState.d.ts.map +1 -0
- package/dist/organization-management/shared/components/feedback/ErrorState.js +37 -0
- package/dist/organization-management/shared/components/feedback/ErrorState.js.map +1 -0
- package/dist/organization-management/shared/components/feedback/LoadingState.d.ts +6 -0
- package/dist/organization-management/shared/components/feedback/LoadingState.d.ts.map +1 -0
- package/dist/organization-management/shared/components/feedback/LoadingState.js +24 -0
- package/dist/organization-management/shared/components/feedback/LoadingState.js.map +1 -0
- package/dist/organization-management/shared/components/input/SearchInput.d.ts +15 -0
- package/dist/organization-management/shared/components/input/SearchInput.d.ts.map +1 -0
- package/dist/organization-management/shared/components/input/SearchInput.js +40 -0
- package/dist/organization-management/shared/components/input/SearchInput.js.map +1 -0
- package/dist/organization-management/shared/components/input/SelectionCheckbox.d.ts +10 -0
- package/dist/organization-management/shared/components/input/SelectionCheckbox.d.ts.map +1 -0
- package/dist/organization-management/shared/components/input/SelectionCheckbox.js +21 -0
- package/dist/organization-management/shared/components/input/SelectionCheckbox.js.map +1 -0
- package/dist/organization-management/shared/hooks/useDebouncedValue.d.ts +2 -0
- package/dist/organization-management/shared/hooks/useDebouncedValue.d.ts.map +1 -0
- package/dist/organization-management/shared/hooks/useDebouncedValue.js +17 -0
- package/dist/organization-management/shared/hooks/useDebouncedValue.js.map +1 -0
- package/dist/organization-management/shared/hooks/useTr.d.ts +14 -0
- package/dist/organization-management/shared/hooks/useTr.d.ts.map +1 -0
- package/dist/organization-management/shared/hooks/useTr.js +14 -0
- package/dist/organization-management/shared/hooks/useTr.js.map +1 -0
- package/dist/organization-management/shared/logger.d.ts +11 -0
- package/dist/organization-management/shared/logger.d.ts.map +1 -0
- package/dist/organization-management/shared/logger.js +46 -0
- package/dist/organization-management/shared/logger.js.map +1 -0
- package/dist/organization-management/shared/recaptcha.d.ts +2 -0
- package/dist/organization-management/shared/recaptcha.d.ts.map +1 -0
- package/dist/organization-management/shared/recaptcha.js +6 -0
- package/dist/organization-management/shared/recaptcha.js.map +1 -0
- package/dist/organization-management/shared/types/graphql.d.ts +131 -0
- package/dist/organization-management/shared/types/graphql.d.ts.map +1 -0
- package/dist/organization-management/shared/types/graphql.js +10 -0
- package/dist/organization-management/shared/types/graphql.js.map +1 -0
- package/dist/organization-management/shared/utils/cn.d.ts +8 -0
- package/dist/organization-management/shared/utils/cn.d.ts.map +1 -0
- package/dist/organization-management/types/index.d.ts +46 -0
- package/dist/organization-management/types/index.d.ts.map +1 -0
- package/dist/utils/nativeBridge.d.ts +3 -0
- package/dist/utils/nativeBridge.d.ts.map +1 -0
- package/dist/utils/nativeBridge.js +2 -0
- package/package.json +116 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Organization, Connection, OrganizationStatus } from '../../../shared/types/graphql';
|
|
2
|
+
|
|
3
|
+
export type { Organization };
|
|
4
|
+
export { OrganizationStatus };
|
|
5
|
+
export type OrganizationsConnection = Connection<Organization>;
|
|
6
|
+
export interface OrganizationFilterInput {
|
|
7
|
+
tenantId?: string;
|
|
8
|
+
search?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface OrganizationStats {
|
|
11
|
+
totalWorkspaces: number;
|
|
12
|
+
totalMembers: number;
|
|
13
|
+
activeMembers: number;
|
|
14
|
+
storageUsed: number;
|
|
15
|
+
storageLimit: number;
|
|
16
|
+
}
|
|
17
|
+
export interface CreateOrganizationInput {
|
|
18
|
+
name: string;
|
|
19
|
+
slug: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
tenantId: string;
|
|
22
|
+
logo?: string;
|
|
23
|
+
website?: string;
|
|
24
|
+
recaptchaToken?: string;
|
|
25
|
+
metadata?: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
export interface UpdateOrganizationInput {
|
|
28
|
+
name?: string;
|
|
29
|
+
description?: string;
|
|
30
|
+
logo?: string;
|
|
31
|
+
website?: string;
|
|
32
|
+
metadata?: Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/organization-management/modules/organizations/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAG9B,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAG/D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { WorkspaceMember } from '../types';
|
|
2
|
+
|
|
3
|
+
interface AddWorkspaceMemberDialogProps {
|
|
4
|
+
open: boolean;
|
|
5
|
+
onOpenChange: (open: boolean) => void;
|
|
6
|
+
workspaceId: string;
|
|
7
|
+
organizationId: string;
|
|
8
|
+
existingMembers: WorkspaceMember[];
|
|
9
|
+
onInviteOrganizationMember?: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function AddWorkspaceMemberDialog({ open, onOpenChange, workspaceId, organizationId, existingMembers, onInviteOrganizationMember, }: AddWorkspaceMemberDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=AddWorkspaceMemberDialog.d.ts.map
|
package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddWorkspaceMemberDialog.d.ts","sourceRoot":"","sources":["../../../../../src/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,UAAU,6BAA6B;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;CACzC;AAED,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,EACf,0BAA0B,GAC3B,EAAE,6BAA6B,2CAoM/B"}
|
package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.js
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { toast as e } from "../../../../node_modules/sonner/dist/index.js";
|
|
2
|
+
import { useTr as t } from "../../../shared/hooks/useTr.js";
|
|
3
|
+
import { useMembers as n } from "../../members/hooks/useMembers.js";
|
|
4
|
+
import { useAddWorkspaceMember as r } from "../hooks/useWorkspaceMembers.js";
|
|
5
|
+
import { useEffect as i, useMemo as a, useState as o } from "react";
|
|
6
|
+
import { AlertCircle as s, Loader2 as c, UserPlus as l } from "lucide-react";
|
|
7
|
+
import { Dialog as u, DialogContent as d, DialogDescription as f, DialogFooter as p, DialogHeader as m, DialogTitle as h } from "@burdenoff/fe-libs/ui";
|
|
8
|
+
import { jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
9
|
+
//#region src/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.tsx
|
|
10
|
+
function v({ open: v, onOpenChange: y, workspaceId: b, organizationId: x, existingMembers: S, onInviteOrganizationMember: C }) {
|
|
11
|
+
let w = t(), [T, E] = o(""), [D, O] = o("MEMBER"), [k, A] = o(null), { members: j, loading: M } = n(x, 100, 0, v), { addWorkspaceMember: N, loading: P } = r(), F = a(() => new Set(S.map((e) => e.userId)), [S]), I = a(() => j.filter((e) => !F.has(e.userId)), [F, j]);
|
|
12
|
+
return i(() => {
|
|
13
|
+
if (!v) {
|
|
14
|
+
E(""), O("MEMBER"), A(null);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
!T && I.length > 0 && E(I[0]?.userId ?? "");
|
|
18
|
+
}, [
|
|
19
|
+
I,
|
|
20
|
+
v,
|
|
21
|
+
T
|
|
22
|
+
]), /* @__PURE__ */ g(u, {
|
|
23
|
+
open: v,
|
|
24
|
+
onOpenChange: y,
|
|
25
|
+
children: /* @__PURE__ */ _(d, {
|
|
26
|
+
className: "sm:max-w-[520px] border-[var(--color-border-default)] bg-[var(--color-bg-surface)] text-[var(--color-text-primary)]",
|
|
27
|
+
children: [/* @__PURE__ */ _(m, { children: [/* @__PURE__ */ _(h, {
|
|
28
|
+
className: "flex items-center gap-2 text-[var(--color-text-primary)]",
|
|
29
|
+
children: [/* @__PURE__ */ g(l, {
|
|
30
|
+
size: 18,
|
|
31
|
+
"aria-hidden": "true"
|
|
32
|
+
}), w("workspaces.addMember.title", "Add workspace member")]
|
|
33
|
+
}), /* @__PURE__ */ g(f, {
|
|
34
|
+
className: "text-[var(--color-text-secondary)]",
|
|
35
|
+
children: w("workspaces.addMember.description", "Choose an existing organization member and assign their workspace role.")
|
|
36
|
+
})] }), /* @__PURE__ */ _("form", {
|
|
37
|
+
onSubmit: async (t) => {
|
|
38
|
+
if (t.preventDefault(), !T) {
|
|
39
|
+
A(w("workspaces.addMember.selectRequired", "Select an organization member to add to this workspace."));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
A(null);
|
|
44
|
+
let t = await N({
|
|
45
|
+
workspaceId: b,
|
|
46
|
+
userId: T,
|
|
47
|
+
role: D
|
|
48
|
+
});
|
|
49
|
+
if (t.errors?.length) throw Error(t.errors[0]?.message ?? w("workspaces.addMember.failed", "Failed to add workspace member"));
|
|
50
|
+
e.success(w("workspaces.addMember.success", "Workspace member added successfully")), y(!1);
|
|
51
|
+
} catch (e) {
|
|
52
|
+
A(e instanceof Error ? e.message : w("workspaces.addMember.failed", "Failed to add workspace member"));
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
className: "space-y-4",
|
|
56
|
+
children: [
|
|
57
|
+
k ? /* @__PURE__ */ _("div", {
|
|
58
|
+
className: "flex items-start gap-2 rounded-lg border border-[var(--color-status-error-border)] bg-[var(--color-status-error-bgSubtle)] p-3 text-sm text-[var(--color-status-error-text)]",
|
|
59
|
+
children: [/* @__PURE__ */ g(s, {
|
|
60
|
+
size: 16,
|
|
61
|
+
className: "mt-0.5 shrink-0",
|
|
62
|
+
"aria-hidden": "true"
|
|
63
|
+
}), /* @__PURE__ */ g("span", { children: k })]
|
|
64
|
+
}) : null,
|
|
65
|
+
/* @__PURE__ */ _("div", { children: [
|
|
66
|
+
/* @__PURE__ */ g("label", {
|
|
67
|
+
htmlFor: "workspace-member-user",
|
|
68
|
+
className: "mb-1 block text-sm font-medium text-[var(--color-text-primary)]",
|
|
69
|
+
children: w("workspaces.addMember.memberLabel", "Organization member")
|
|
70
|
+
}),
|
|
71
|
+
/* @__PURE__ */ _("select", {
|
|
72
|
+
id: "workspace-member-user",
|
|
73
|
+
value: T,
|
|
74
|
+
onChange: (e) => E(e.target.value),
|
|
75
|
+
disabled: M || P || I.length === 0,
|
|
76
|
+
className: "w-full rounded-lg border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-3 py-2 text-[var(--color-text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-border-focus)] disabled:cursor-not-allowed disabled:bg-[var(--color-bg-muted)]",
|
|
77
|
+
children: [I.length === 0 ? /* @__PURE__ */ g("option", {
|
|
78
|
+
value: "",
|
|
79
|
+
children: w("workspaces.addMember.noneAvailable", "No eligible organization members available")
|
|
80
|
+
}) : null, I.map((e) => /* @__PURE__ */ _("option", {
|
|
81
|
+
value: e.userId,
|
|
82
|
+
children: [
|
|
83
|
+
e.userId,
|
|
84
|
+
" (",
|
|
85
|
+
e.role,
|
|
86
|
+
")"
|
|
87
|
+
]
|
|
88
|
+
}, e.id))]
|
|
89
|
+
}),
|
|
90
|
+
/* @__PURE__ */ g("p", {
|
|
91
|
+
className: "mt-1 text-xs text-[var(--color-text-muted)]",
|
|
92
|
+
children: w("workspaces.addMember.filterHelp", "Only members that belong to this organization and are not already in the workspace are listed.")
|
|
93
|
+
}),
|
|
94
|
+
I.length === 0 && C ? /* @__PURE__ */ g("button", {
|
|
95
|
+
type: "button",
|
|
96
|
+
onClick: () => {
|
|
97
|
+
y(!1), C();
|
|
98
|
+
},
|
|
99
|
+
className: "mt-2 inline-flex items-center gap-2 text-sm font-medium text-[var(--color-action-primary-bg)] hover:underline",
|
|
100
|
+
children: w("workspaces.addMember.inviteInstead", "Invite a new organization member instead")
|
|
101
|
+
}) : null
|
|
102
|
+
] }),
|
|
103
|
+
/* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("label", {
|
|
104
|
+
htmlFor: "workspace-member-role",
|
|
105
|
+
className: "mb-1 block text-sm font-medium text-[var(--color-text-primary)]",
|
|
106
|
+
children: w("workspaces.addMember.roleLabel", "Workspace role")
|
|
107
|
+
}), /* @__PURE__ */ _("select", {
|
|
108
|
+
id: "workspace-member-role",
|
|
109
|
+
value: D,
|
|
110
|
+
onChange: (e) => O(e.target.value),
|
|
111
|
+
disabled: P,
|
|
112
|
+
className: "w-full rounded-lg border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-3 py-2 text-[var(--color-text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-border-focus)] disabled:cursor-not-allowed disabled:bg-[var(--color-bg-muted)]",
|
|
113
|
+
children: [/* @__PURE__ */ g("option", {
|
|
114
|
+
value: "MEMBER",
|
|
115
|
+
children: w("members.role.member", "Member")
|
|
116
|
+
}), /* @__PURE__ */ g("option", {
|
|
117
|
+
value: "WORKSPACE_ADMIN",
|
|
118
|
+
children: w("members.role.workspaceAdmin", "Workspace Admin")
|
|
119
|
+
})]
|
|
120
|
+
})] }),
|
|
121
|
+
/* @__PURE__ */ _(p, {
|
|
122
|
+
className: "gap-3 sm:gap-0",
|
|
123
|
+
children: [/* @__PURE__ */ g("button", {
|
|
124
|
+
type: "button",
|
|
125
|
+
onClick: () => y(!1),
|
|
126
|
+
className: "rounded-lg border border-[var(--color-border-default)] px-4 py-2 text-[var(--color-text-primary)] transition-colors hover:bg-[var(--color-bg-subtle)]",
|
|
127
|
+
disabled: P,
|
|
128
|
+
children: w("common.cancel", "Cancel")
|
|
129
|
+
}), /* @__PURE__ */ _("button", {
|
|
130
|
+
type: "submit",
|
|
131
|
+
className: "inline-flex items-center justify-center gap-2 rounded-lg bg-[var(--color-action-primary-bg)] px-4 py-2 text-[var(--color-action-primary-text)] transition-all duration-200 hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",
|
|
132
|
+
disabled: P || M || I.length === 0,
|
|
133
|
+
children: [P ? /* @__PURE__ */ g(c, {
|
|
134
|
+
size: 16,
|
|
135
|
+
className: "animate-spin"
|
|
136
|
+
}) : null, w("workspaces.addMember.submit", "Add member")]
|
|
137
|
+
})]
|
|
138
|
+
})
|
|
139
|
+
]
|
|
140
|
+
})]
|
|
141
|
+
})
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
//#endregion
|
|
145
|
+
export { v as AddWorkspaceMemberDialog };
|
|
146
|
+
|
|
147
|
+
//# sourceMappingURL=AddWorkspaceMemberDialog.js.map
|
package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddWorkspaceMemberDialog.js","names":[],"sources":["../../../../../src/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\nimport { AlertCircle, Loader2, UserPlus } from 'lucide-react';\nimport { toast } from 'sonner';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { useMembers } from '../../members/hooks/useMembers';\nimport { useAddWorkspaceMember } from '../hooks/useWorkspaceMembers';\nimport type { WorkspaceMember } from '../types';\nimport { useTr } from '../../../shared/hooks/useTr';\n\ninterface AddWorkspaceMemberDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n workspaceId: string;\n organizationId: string;\n existingMembers: WorkspaceMember[];\n onInviteOrganizationMember?: () => void;\n}\n\nexport function AddWorkspaceMemberDialog({\n open,\n onOpenChange,\n workspaceId,\n organizationId,\n existingMembers,\n onInviteOrganizationMember,\n}: AddWorkspaceMemberDialogProps) {\n const tr = useTr();\n const [selectedUserId, setSelectedUserId] = useState('');\n const [selectedRole, setSelectedRole] = useState<'MEMBER' | 'WORKSPACE_ADMIN'>('MEMBER');\n const [submissionError, setSubmissionError] = useState<string | null>(null);\n\n const { members: organizationMembers, loading: membersLoading } = useMembers(\n organizationId,\n 100,\n 0,\n open\n );\n const { addWorkspaceMember, loading: addingMember } = useAddWorkspaceMember();\n\n const existingUserIds = useMemo(\n () => new Set(existingMembers.map((member) => member.userId)),\n [existingMembers]\n );\n\n const availableMembers = useMemo(\n () => organizationMembers.filter((member) => !existingUserIds.has(member.userId)),\n [existingUserIds, organizationMembers]\n );\n\n useEffect(() => {\n if (!open) {\n setSelectedUserId('');\n setSelectedRole('MEMBER');\n setSubmissionError(null);\n return;\n }\n\n if (!selectedUserId && availableMembers.length > 0) {\n setSelectedUserId(availableMembers[0]?.userId ?? '');\n }\n }, [availableMembers, open, selectedUserId]);\n\n const handleSubmit = async (event: React.FormEvent) => {\n event.preventDefault();\n\n if (!selectedUserId) {\n setSubmissionError(\n tr(\n 'workspaces.addMember.selectRequired',\n 'Select an organization member to add to this workspace.'\n )\n );\n return;\n }\n\n try {\n setSubmissionError(null);\n const result = await addWorkspaceMember({\n workspaceId,\n userId: selectedUserId,\n role: selectedRole,\n });\n\n if (result.errors?.length) {\n throw new Error(\n result.errors[0]?.message ??\n tr('workspaces.addMember.failed', 'Failed to add workspace member')\n );\n }\n\n toast.success(tr('workspaces.addMember.success', 'Workspace member added successfully'));\n onOpenChange(false);\n } catch (error) {\n setSubmissionError(\n error instanceof Error\n ? error.message\n : tr('workspaces.addMember.failed', 'Failed to add workspace member')\n );\n }\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"sm:max-w-[520px] border-[var(--color-border-default)] bg-[var(--color-bg-surface)] text-[var(--color-text-primary)]\">\n <DialogHeader>\n <DialogTitle className=\"flex items-center gap-2 text-[var(--color-text-primary)]\">\n <UserPlus size={18} aria-hidden=\"true\" />\n {tr('workspaces.addMember.title', 'Add workspace member')}\n </DialogTitle>\n <DialogDescription className=\"text-[var(--color-text-secondary)]\">\n {tr(\n 'workspaces.addMember.description',\n 'Choose an existing organization member and assign their workspace role.'\n )}\n </DialogDescription>\n </DialogHeader>\n\n <form onSubmit={handleSubmit} className=\"space-y-4\">\n {submissionError ? (\n <div className=\"flex items-start gap-2 rounded-lg border border-[var(--color-status-error-border)] bg-[var(--color-status-error-bgSubtle)] p-3 text-sm text-[var(--color-status-error-text)]\">\n <AlertCircle size={16} className=\"mt-0.5 shrink-0\" aria-hidden=\"true\" />\n <span>{submissionError}</span>\n </div>\n ) : null}\n\n <div>\n <label\n htmlFor=\"workspace-member-user\"\n className=\"mb-1 block text-sm font-medium text-[var(--color-text-primary)]\"\n >\n {tr('workspaces.addMember.memberLabel', 'Organization member')}\n </label>\n <select\n id=\"workspace-member-user\"\n value={selectedUserId}\n onChange={(event) => setSelectedUserId(event.target.value)}\n disabled={membersLoading || addingMember || availableMembers.length === 0}\n className=\"w-full rounded-lg border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-3 py-2 text-[var(--color-text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-border-focus)] disabled:cursor-not-allowed disabled:bg-[var(--color-bg-muted)]\"\n >\n {availableMembers.length === 0 ? (\n <option value=\"\">\n {tr(\n 'workspaces.addMember.noneAvailable',\n 'No eligible organization members available'\n )}\n </option>\n ) : null}\n {availableMembers.map((member) => (\n <option key={member.id} value={member.userId}>\n {member.userId} ({member.role})\n </option>\n ))}\n </select>\n <p className=\"mt-1 text-xs text-[var(--color-text-muted)]\">\n {tr(\n 'workspaces.addMember.filterHelp',\n 'Only members that belong to this organization and are not already in the workspace are listed.'\n )}\n </p>\n {availableMembers.length === 0 && onInviteOrganizationMember ? (\n <button\n type=\"button\"\n onClick={() => {\n onOpenChange(false);\n onInviteOrganizationMember();\n }}\n className=\"mt-2 inline-flex items-center gap-2 text-sm font-medium text-[var(--color-action-primary-bg)] hover:underline\"\n >\n {tr(\n 'workspaces.addMember.inviteInstead',\n 'Invite a new organization member instead'\n )}\n </button>\n ) : null}\n </div>\n\n <div>\n <label\n htmlFor=\"workspace-member-role\"\n className=\"mb-1 block text-sm font-medium text-[var(--color-text-primary)]\"\n >\n {tr('workspaces.addMember.roleLabel', 'Workspace role')}\n </label>\n <select\n id=\"workspace-member-role\"\n value={selectedRole}\n onChange={(event) =>\n setSelectedRole(event.target.value as 'MEMBER' | 'WORKSPACE_ADMIN')\n }\n disabled={addingMember}\n className=\"w-full rounded-lg border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-3 py-2 text-[var(--color-text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-border-focus)] disabled:cursor-not-allowed disabled:bg-[var(--color-bg-muted)]\"\n >\n <option value=\"MEMBER\">{tr('members.role.member', 'Member')}</option>\n <option value=\"WORKSPACE_ADMIN\">\n {tr('members.role.workspaceAdmin', 'Workspace Admin')}\n </option>\n </select>\n </div>\n\n <DialogFooter className=\"gap-3 sm:gap-0\">\n <button\n type=\"button\"\n onClick={() => onOpenChange(false)}\n className=\"rounded-lg border border-[var(--color-border-default)] px-4 py-2 text-[var(--color-text-primary)] transition-colors hover:bg-[var(--color-bg-subtle)]\"\n disabled={addingMember}\n >\n {tr('common.cancel', 'Cancel')}\n </button>\n <button\n type=\"submit\"\n className=\"inline-flex items-center justify-center gap-2 rounded-lg bg-[var(--color-action-primary-bg)] px-4 py-2 text-[var(--color-action-primary-text)] transition-all duration-200 hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={addingMember || membersLoading || availableMembers.length === 0}\n >\n {addingMember ? <Loader2 size={16} className=\"animate-spin\" /> : null}\n {tr('workspaces.addMember.submit', 'Add member')}\n </button>\n </DialogFooter>\n </form>\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Workspace } from '../types';
|
|
2
|
+
|
|
3
|
+
interface WorkspaceCardProps {
|
|
4
|
+
workspace: Workspace;
|
|
5
|
+
onClick?: (workspace: Workspace) => void;
|
|
6
|
+
onEdit?: (workspace: Workspace) => void;
|
|
7
|
+
onDelete?: (workspace: Workspace) => void;
|
|
8
|
+
showActions?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* WorkspaceCard
|
|
12
|
+
* Displays a workspace in a card format for grid views
|
|
13
|
+
*/
|
|
14
|
+
export declare function WorkspaceCard({ workspace, onClick, onEdit, onDelete, showActions, }: WorkspaceCardProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=WorkspaceCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceCard.d.ts","sourceRoot":"","sources":["../../../../../src/organization-management/modules/workspaces/components/WorkspaceCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,UAAU,kBAAkB;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,WAAkB,GACnB,EAAE,kBAAkB,2CAoJpB"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { useTr as e } from "../../../shared/hooks/useTr.js";
|
|
2
|
+
import { WorkspaceStatusBadge as t } from "./WorkspaceStatusBadge.js";
|
|
3
|
+
import { Briefcase as n, MoreVertical as r } from "lucide-react";
|
|
4
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
5
|
+
//#region src/organization-management/modules/workspaces/components/WorkspaceCard.tsx
|
|
6
|
+
function o({ workspace: o, onClick: s, onEdit: c, onDelete: l, showActions: u = !0 }) {
|
|
7
|
+
let d = e(), f = () => {
|
|
8
|
+
s && s(o);
|
|
9
|
+
};
|
|
10
|
+
return /* @__PURE__ */ a("div", {
|
|
11
|
+
onClick: f,
|
|
12
|
+
onKeyDown: (e) => {
|
|
13
|
+
s && (e.key === "Enter" || e.key === " ") && (e.preventDefault(), f());
|
|
14
|
+
},
|
|
15
|
+
className: `
|
|
16
|
+
w-full text-left
|
|
17
|
+
bg-[var(--color-bg-surface)]
|
|
18
|
+
border border-[var(--color-border-default)]
|
|
19
|
+
rounded-lg
|
|
20
|
+
p-6
|
|
21
|
+
shadow-[var(--shadow-elevation-1)]
|
|
22
|
+
transition-all
|
|
23
|
+
${s ? "cursor-pointer hover:shadow-[var(--shadow-elevation-2)] hover:border-[var(--color-border-hover)]" : ""}
|
|
24
|
+
`,
|
|
25
|
+
"aria-label": s ? `${d("workspaces.card.open", "Open workspace")} ${o.name}` : void 0,
|
|
26
|
+
role: s ? "button" : void 0,
|
|
27
|
+
tabIndex: s ? 0 : void 0,
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ a("div", {
|
|
30
|
+
className: "flex items-start justify-between mb-4",
|
|
31
|
+
children: [/* @__PURE__ */ a("div", {
|
|
32
|
+
className: "flex items-center gap-3",
|
|
33
|
+
children: [/* @__PURE__ */ i("div", {
|
|
34
|
+
className: "w-12 h-12 rounded-lg bg-[var(--color-status-info-muted)] flex items-center justify-center",
|
|
35
|
+
children: /* @__PURE__ */ i(n, {
|
|
36
|
+
size: 24,
|
|
37
|
+
className: "text-[var(--color-status-info)]"
|
|
38
|
+
})
|
|
39
|
+
}), /* @__PURE__ */ a("div", {
|
|
40
|
+
className: "flex-1",
|
|
41
|
+
children: [/* @__PURE__ */ i("h3", {
|
|
42
|
+
className: "font-semibold text-[var(--color-text-primary)] text-lg",
|
|
43
|
+
children: o.name
|
|
44
|
+
}), /* @__PURE__ */ a("p", {
|
|
45
|
+
className: "text-sm text-[var(--color-text-muted)] font-mono",
|
|
46
|
+
children: ["/", o.slug]
|
|
47
|
+
})]
|
|
48
|
+
})]
|
|
49
|
+
}), u && /* @__PURE__ */ i("button", {
|
|
50
|
+
type: "button",
|
|
51
|
+
onClick: (e) => e.stopPropagation(),
|
|
52
|
+
className: "\n p-1.5 rounded-lg\n text-[var(--color-text-secondary)]\n hover:bg-[var(--color-bg-subtle)]\n active:scale-95\n transition-all duration-200\n ",
|
|
53
|
+
"aria-label": `${d("workspaces.card.actionsFor", "Workspace actions for")} ${o.name}`,
|
|
54
|
+
children: /* @__PURE__ */ i(r, { size: 18 })
|
|
55
|
+
})]
|
|
56
|
+
}),
|
|
57
|
+
/* @__PURE__ */ a("div", {
|
|
58
|
+
className: "flex gap-2 mb-4",
|
|
59
|
+
children: [/* @__PURE__ */ i(t, { status: o.status }), /* @__PURE__ */ i("span", {
|
|
60
|
+
className: "inline-flex items-center px-2 py-1 rounded-md text-xs font-medium bg-[var(--color-bg-subtle)] text-[var(--color-text-secondary)]",
|
|
61
|
+
children: o.type
|
|
62
|
+
})]
|
|
63
|
+
}),
|
|
64
|
+
o.memberCount !== void 0 && /* @__PURE__ */ a("p", {
|
|
65
|
+
className: "text-sm text-[var(--color-text-secondary)] mb-4",
|
|
66
|
+
children: [
|
|
67
|
+
o.memberCount,
|
|
68
|
+
" ",
|
|
69
|
+
o.memberCount === 1 ? d("members.role.member", "Member").toLowerCase() : d("workspaces.list.members", "Members").toLowerCase()
|
|
70
|
+
]
|
|
71
|
+
}),
|
|
72
|
+
/* @__PURE__ */ i("div", {
|
|
73
|
+
className: "pt-2 border-t border-[var(--color-border-default)]",
|
|
74
|
+
children: /* @__PURE__ */ a("p", {
|
|
75
|
+
className: "text-xs text-[var(--color-text-muted)]",
|
|
76
|
+
children: [
|
|
77
|
+
d("common.created", "Created"),
|
|
78
|
+
" ",
|
|
79
|
+
new Date(o.createdAt).toLocaleDateString()
|
|
80
|
+
]
|
|
81
|
+
})
|
|
82
|
+
}),
|
|
83
|
+
u && (c || l) && /* @__PURE__ */ a("div", {
|
|
84
|
+
className: "flex gap-2 mt-4 pt-4 border-t border-[var(--color-border-default)]",
|
|
85
|
+
children: [c && /* @__PURE__ */ i("button", {
|
|
86
|
+
type: "button",
|
|
87
|
+
onClick: (e) => {
|
|
88
|
+
e.stopPropagation(), c && c(o);
|
|
89
|
+
},
|
|
90
|
+
className: "\n flex-1 px-3 py-1.5 text-sm\n bg-[var(--color-bg-subtle)]\n text-[var(--color-text-primary)]\n rounded-lg\n hover:bg-[var(--color-bg-muted)]\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n ",
|
|
91
|
+
children: d("common.edit", "Edit")
|
|
92
|
+
}), l && /* @__PURE__ */ i("button", {
|
|
93
|
+
type: "button",
|
|
94
|
+
onClick: (e) => {
|
|
95
|
+
e.stopPropagation(), l && l(o);
|
|
96
|
+
},
|
|
97
|
+
className: "\n flex-1 px-3 py-1.5 text-sm\n bg-[var(--color-status-error-muted)]\n text-[var(--color-status-error)]\n rounded-lg\n hover:opacity-80\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n ",
|
|
98
|
+
children: d("common.delete", "Delete")
|
|
99
|
+
})]
|
|
100
|
+
})
|
|
101
|
+
]
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
//#endregion
|
|
105
|
+
export { o as WorkspaceCard };
|
|
106
|
+
|
|
107
|
+
//# sourceMappingURL=WorkspaceCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceCard.js","names":[],"sources":["../../../../../src/organization-management/modules/workspaces/components/WorkspaceCard.tsx"],"sourcesContent":["import { Briefcase, MoreVertical } from 'lucide-react';\nimport { WorkspaceStatusBadge } from './WorkspaceStatusBadge';\nimport type { Workspace } from '../types';\nimport { useTr } from '../../../shared/hooks/useTr';\n\ninterface WorkspaceCardProps {\n workspace: Workspace;\n onClick?: (workspace: Workspace) => void;\n onEdit?: (workspace: Workspace) => void;\n onDelete?: (workspace: Workspace) => void;\n showActions?: boolean;\n}\n\n/**\n * WorkspaceCard\n * Displays a workspace in a card format for grid views\n */\nexport function WorkspaceCard({\n workspace,\n onClick,\n onEdit,\n onDelete,\n showActions = true,\n}: WorkspaceCardProps) {\n const tr = useTr();\n const handleCardClick = () => {\n if (onClick) {\n onClick(workspace);\n }\n };\n\n const handleEdit = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (onEdit) {\n onEdit(workspace);\n }\n };\n\n const handleDelete = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (onDelete) {\n onDelete(workspace);\n }\n };\n\n return (\n <div\n onClick={handleCardClick}\n onKeyDown={(event) => {\n if (!onClick) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleCardClick();\n }\n }}\n className={`\n w-full text-left\n bg-[var(--color-bg-surface)]\n border border-[var(--color-border-default)]\n rounded-lg\n p-6\n shadow-[var(--shadow-elevation-1)]\n transition-all\n ${onClick ? 'cursor-pointer hover:shadow-[var(--shadow-elevation-2)] hover:border-[var(--color-border-hover)]' : ''}\n `}\n aria-label={\n onClick ? `${tr('workspaces.card.open', 'Open workspace')} ${workspace.name}` : undefined\n }\n role={onClick ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n >\n {/* Header */}\n <div className=\"flex items-start justify-between mb-4\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-12 h-12 rounded-lg bg-[var(--color-status-info-muted)] flex items-center justify-center\">\n <Briefcase size={24} className=\"text-[var(--color-status-info)]\" />\n </div>\n <div className=\"flex-1\">\n <h3 className=\"font-semibold text-[var(--color-text-primary)] text-lg\">\n {workspace.name}\n </h3>\n <p className=\"text-sm text-[var(--color-text-muted)] font-mono\">/{workspace.slug}</p>\n </div>\n </div>\n\n {showActions && (\n <button\n type=\"button\"\n onClick={(e) => e.stopPropagation()}\n className=\"\n p-1.5 rounded-lg\n text-[var(--color-text-secondary)]\n hover:bg-[var(--color-bg-subtle)]\n active:scale-95\n transition-all duration-200\n \"\n aria-label={`${tr('workspaces.card.actionsFor', 'Workspace actions for')} ${workspace.name}`}\n >\n <MoreVertical size={18} />\n </button>\n )}\n </div>\n\n {/* Badges */}\n <div className=\"flex gap-2 mb-4\">\n <WorkspaceStatusBadge status={workspace.status} />\n <span className=\"inline-flex items-center px-2 py-1 rounded-md text-xs font-medium bg-[var(--color-bg-subtle)] text-[var(--color-text-secondary)]\">\n {workspace.type}\n </span>\n </div>\n\n {/* Member Count */}\n {workspace.memberCount !== undefined && (\n <p className=\"text-sm text-[var(--color-text-secondary)] mb-4\">\n {workspace.memberCount}{' '}\n {workspace.memberCount === 1\n ? tr('members.role.member', 'Member').toLowerCase()\n : tr('workspaces.list.members', 'Members').toLowerCase()}\n </p>\n )}\n\n {/* Metadata */}\n <div className=\"pt-2 border-t border-[var(--color-border-default)]\">\n <p className=\"text-xs text-[var(--color-text-muted)]\">\n {tr('common.created', 'Created')} {new Date(workspace.createdAt).toLocaleDateString()}\n </p>\n </div>\n\n {/* Footer Actions */}\n {showActions && (onEdit || onDelete) && (\n <div className=\"flex gap-2 mt-4 pt-4 border-t border-[var(--color-border-default)]\">\n {onEdit && (\n <button\n type=\"button\"\n onClick={handleEdit}\n className=\"\n flex-1 px-3 py-1.5 text-sm\n bg-[var(--color-bg-subtle)]\n text-[var(--color-text-primary)]\n rounded-lg\n hover:bg-[var(--color-bg-muted)]\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n \"\n >\n {tr('common.edit', 'Edit')}\n </button>\n )}\n {onDelete && (\n <button\n type=\"button\"\n onClick={handleDelete}\n className=\"\n flex-1 px-3 py-1.5 text-sm\n bg-[var(--color-status-error-muted)]\n text-[var(--color-status-error)]\n rounded-lg\n hover:opacity-80\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n \"\n >\n {tr('common.delete', 'Delete')}\n </button>\n )}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;AAiBA,SAAgB,EAAc,EAC5B,cACA,YACA,WACA,aACA,iBAAc,MACO;CACrB,IAAM,IAAK,GAAO,EACZ,UAAwB;AAC5B,EAAI,KACF,EAAQ,EAAU;;AAkBtB,QACE,kBAAC,OAAD;EACE,SAAS;EACT,YAAY,MAAU;AACf,SACD,EAAM,QAAQ,WAAW,EAAM,QAAQ,SACzC,EAAM,gBAAgB,EACtB,GAAiB;;EAGrB,WAAW;;;;;;;;UAQP,IAAU,qGAAqG,GAAG;;EAEtH,cACE,IAAU,GAAG,EAAG,wBAAwB,iBAAiB,CAAC,GAAG,EAAU,SAAS,KAAA;EAElF,MAAM,IAAU,WAAW,KAAA;EAC3B,UAAU,IAAU,IAAI,KAAA;YAvB1B;GA0BE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD;OAAW,MAAM;OAAI,WAAU;OAAoC,CAAA;MAC/D,CAAA,EACN,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,MAAD;OAAI,WAAU;iBACX,EAAU;OACR,CAAA,EACL,kBAAC,KAAD;OAAG,WAAU;iBAAb,CAAgE,KAAE,EAAU,KAAS;SACjF;QACF;QAEL,KACC,kBAAC,UAAD;KACE,MAAK;KACL,UAAU,MAAM,EAAE,iBAAiB;KACnC,WAAU;KAOV,cAAY,GAAG,EAAG,8BAA8B,wBAAwB,CAAC,GAAG,EAAU;eAEtF,kBAAC,GAAD,EAAc,MAAM,IAAM,CAAA;KACnB,CAAA,CAEP;;GAGN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAsB,QAAQ,EAAU,QAAU,CAAA,EAClD,kBAAC,QAAD;KAAM,WAAU;eACb,EAAU;KACN,CAAA,CACH;;GAGL,EAAU,gBAAgB,KAAA,KACzB,kBAAC,KAAD;IAAG,WAAU;cAAb;KACG,EAAU;KAAa;KACvB,EAAU,gBAAgB,IACvB,EAAG,uBAAuB,SAAS,CAAC,aAAa,GACjD,EAAG,2BAA2B,UAAU,CAAC,aAAa;KACxD;;GAIN,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,KAAD;KAAG,WAAU;eAAb;MACG,EAAG,kBAAkB,UAAU;MAAC;MAAE,IAAI,KAAK,EAAU,UAAU,CAAC,oBAAoB;MACnF;;IACA,CAAA;GAGL,MAAgB,KAAU,MACzB,kBAAC,OAAD;IAAK,WAAU;cAAf,CACG,KACC,kBAAC,UAAD;KACE,MAAK;KACL,UAvGQ,MAAwB;AAE1C,MADA,EAAE,iBAAiB,EACf,KACF,EAAO,EAAU;;KAqGT,WAAU;eAWT,EAAG,eAAe,OAAO;KACnB,CAAA,EAEV,KACC,kBAAC,UAAD;KACE,MAAK;KACL,UAlHU,MAAwB;AAE5C,MADA,EAAE,iBAAiB,EACf,KACF,EAAS,EAAU;;KAgHX,WAAU;eAWT,EAAG,iBAAiB,SAAS;KACvB,CAAA,CAEP;;GAEJ"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CreateWorkspaceInput, UpdateWorkspaceInput, Workspace } from '../types';
|
|
2
|
+
|
|
3
|
+
interface WorkspaceFormProps {
|
|
4
|
+
workspace?: Workspace | null;
|
|
5
|
+
tenantId?: string;
|
|
6
|
+
tenantName?: string;
|
|
7
|
+
organizationId?: string;
|
|
8
|
+
organizationName?: string;
|
|
9
|
+
showOrganizationSelector?: boolean;
|
|
10
|
+
onSubmit: (data: CreateWorkspaceInput | UpdateWorkspaceInput) => Promise<void>;
|
|
11
|
+
onCancel: () => void;
|
|
12
|
+
loading?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function WorkspaceForm({ workspace, tenantId, tenantName, organizationId, organizationName, showOrganizationSelector, onSubmit, onCancel, loading, }: WorkspaceFormProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=WorkspaceForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceForm.d.ts","sourceRoot":"","sources":["../../../../../src/organization-management/modules/workspaces/components/WorkspaceForm.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAMtF,UAAU,kBAAkB;IAC1B,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,oBAAoB,GAAG,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,QAAQ,EACR,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,wBAAgC,EAChC,QAAQ,EACR,QAAQ,EACR,OAAO,GACR,EAAE,kBAAkB,2CAiapB"}
|