@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,39 @@
|
|
|
1
|
+
import { Workspace, WorkspaceStatus } from '../../../shared/types/graphql';
|
|
2
|
+
|
|
3
|
+
export type { Workspace };
|
|
4
|
+
export { WorkspaceStatus };
|
|
5
|
+
export type { WorkspaceMember, WorkspaceMembersConnection, AddWorkspaceMemberInput, UpdateWorkspaceMemberInput, UserRole, } from './workspace-member';
|
|
6
|
+
export { WorkspaceMemberRole } from './workspace-member';
|
|
7
|
+
export interface WorkspacesConnection {
|
|
8
|
+
items: Workspace[];
|
|
9
|
+
total: number;
|
|
10
|
+
limit: number;
|
|
11
|
+
offset: number;
|
|
12
|
+
hasMore: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface WorkspaceFilterInput {
|
|
15
|
+
status?: WorkspaceStatus;
|
|
16
|
+
organizationId?: string;
|
|
17
|
+
tenantId?: string;
|
|
18
|
+
search?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface WorkspaceStats {
|
|
21
|
+
totalMembers: number;
|
|
22
|
+
activeMembers: number;
|
|
23
|
+
storageUsed: number;
|
|
24
|
+
storageLimit: number;
|
|
25
|
+
}
|
|
26
|
+
export interface CreateWorkspaceInput {
|
|
27
|
+
name: string;
|
|
28
|
+
slug: string;
|
|
29
|
+
tenantId: string;
|
|
30
|
+
organizationId: string;
|
|
31
|
+
type?: string;
|
|
32
|
+
metadata?: Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
export interface UpdateWorkspaceInput {
|
|
35
|
+
name?: string;
|
|
36
|
+
type?: string;
|
|
37
|
+
metadata?: Record<string, unknown>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/organization-management/modules/workspaces/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,YAAY,EAAE,SAAS,EAAE,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,CAAC;AAG3B,YAAY,EACV,eAAe,EACf,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,EAC1B,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAGD,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workspace Member Types
|
|
3
|
+
* Aligned with backend WorkspaceMember schema
|
|
4
|
+
*/
|
|
5
|
+
export type UserRole = 'SUPER_ADMIN' | 'TENANT_ADMIN' | 'ORG_ADMIN' | 'WORKSPACE_ADMIN' | 'MEMBER' | 'GUEST';
|
|
6
|
+
export declare const WorkspaceMemberRole: {
|
|
7
|
+
SUPER_ADMIN: "SUPER_ADMIN";
|
|
8
|
+
TENANT_ADMIN: "TENANT_ADMIN";
|
|
9
|
+
ORG_ADMIN: "ORG_ADMIN";
|
|
10
|
+
WORKSPACE_ADMIN: "WORKSPACE_ADMIN";
|
|
11
|
+
MEMBER: "MEMBER";
|
|
12
|
+
GUEST: "GUEST";
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Workspace Member type matching backend schema
|
|
16
|
+
*/
|
|
17
|
+
export interface WorkspaceMember {
|
|
18
|
+
id: string;
|
|
19
|
+
userId: string;
|
|
20
|
+
role: UserRole;
|
|
21
|
+
invitedBy?: string | null;
|
|
22
|
+
joinedAt: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Workspace Member List response (paginated)
|
|
26
|
+
*/
|
|
27
|
+
export interface WorkspaceMembersConnection {
|
|
28
|
+
items: WorkspaceMember[];
|
|
29
|
+
total: number;
|
|
30
|
+
limit: number;
|
|
31
|
+
offset: number;
|
|
32
|
+
hasMore: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Input for adding a workspace member
|
|
36
|
+
*/
|
|
37
|
+
export interface AddWorkspaceMemberInput {
|
|
38
|
+
workspaceId: string;
|
|
39
|
+
userId: string;
|
|
40
|
+
role?: UserRole;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Input for updating a workspace member's role
|
|
44
|
+
*/
|
|
45
|
+
export interface UpdateWorkspaceMemberInput {
|
|
46
|
+
role: UserRole;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=workspace-member.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-member.d.ts","sourceRoot":"","sources":["../../../../../src/organization-management/modules/workspaces/types/workspace-member.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,MAAM,QAAQ,GAChB,aAAa,GACb,cAAc,GACd,WAAW,GACX,iBAAiB,GACjB,QAAQ,GACR,OAAO,CAAC;AAEZ,eAAO,MAAM,mBAAmB;;;;;;;CAO/B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,QAAQ,CAAC;CAChB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { OrganizationRootProps } from '../types';
|
|
3
|
+
|
|
4
|
+
type OrgConsoleContextValue = OrganizationRootProps;
|
|
5
|
+
export interface OrgConsoleProviderProps extends OrganizationRootProps {
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* OrgConsoleProvider
|
|
10
|
+
* Provides global console context to all child components
|
|
11
|
+
*/
|
|
12
|
+
export declare function OrgConsoleProvider({ children, ...props }: OrgConsoleProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
/**
|
|
14
|
+
* Hook to access global console context
|
|
15
|
+
* @throws Error if used outside OrgConsoleProvider
|
|
16
|
+
*/
|
|
17
|
+
export declare function useOrgConsole(): OrgConsoleContextValue;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=OrgConsoleProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrgConsoleProvider.d.ts","sourceRoot":"","sources":["../../../src/organization-management/providers/OrgConsoleProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEtD,KAAK,sBAAsB,GAAG,qBAAqB,CAAC;AAIpD,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,2CAQjF;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,sBAAsB,CAMtD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createContext as e, useContext as t } from "react";
|
|
2
|
+
import { PermissionProvider as n } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
3
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
4
|
+
//#region src/organization-management/providers/OrgConsoleProvider.tsx
|
|
5
|
+
var i = e(null);
|
|
6
|
+
function a({ children: e, ...t }) {
|
|
7
|
+
return /* @__PURE__ */ r(i.Provider, {
|
|
8
|
+
value: t,
|
|
9
|
+
children: /* @__PURE__ */ r(n, {
|
|
10
|
+
scopeId: t.tenantId ?? null,
|
|
11
|
+
gateway: "global",
|
|
12
|
+
children: e
|
|
13
|
+
})
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
function o() {
|
|
17
|
+
let e = t(i);
|
|
18
|
+
if (!e) throw Error("useOrgConsole must be used within OrgConsoleProvider");
|
|
19
|
+
return e;
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { a as OrgConsoleProvider, o as useOrgConsole };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=OrgConsoleProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrgConsoleProvider.js","names":[],"sources":["../../../src/organization-management/providers/OrgConsoleProvider.tsx"],"sourcesContent":["import { createContext, useContext, type ReactNode } from 'react';\nimport { PermissionProvider } from '@burdenoff/fe-libs/shared/providers/shell';\nimport type { OrganizationRootProps } from '../types';\n\ntype OrgConsoleContextValue = OrganizationRootProps;\n\nconst OrgConsoleContext = createContext<OrgConsoleContextValue | null>(null);\n\nexport interface OrgConsoleProviderProps extends OrganizationRootProps {\n children: ReactNode;\n}\n\n/**\n * OrgConsoleProvider\n * Provides global console context to all child components\n */\nexport function OrgConsoleProvider({ children, ...props }: OrgConsoleProviderProps) {\n return (\n <OrgConsoleContext.Provider value={props}>\n <PermissionProvider scopeId={props.tenantId ?? null} gateway=\"global\">\n {children}\n </PermissionProvider>\n </OrgConsoleContext.Provider>\n );\n}\n\n/**\n * Hook to access global console context\n * @throws Error if used outside OrgConsoleProvider\n */\nexport function useOrgConsole(): OrgConsoleContextValue {\n const context = useContext(OrgConsoleContext);\n if (!context) {\n throw new Error('useOrgConsole must be used within OrgConsoleProvider');\n }\n return context;\n}\n"],"mappings":";;;;AAMA,IAAM,IAAoB,EAA6C,KAAK;AAU5E,SAAgB,EAAmB,EAAE,aAAU,GAAG,KAAkC;AAClF,QACE,kBAAC,EAAkB,UAAnB;EAA4B,OAAO;YACjC,kBAAC,GAAD;GAAoB,SAAS,EAAM,YAAY;GAAM,SAAQ;GAC1D;GACkB,CAAA;EACM,CAAA;;AAQjC,SAAgB,IAAwC;CACtD,IAAM,IAAU,EAAW,EAAkB;AAC7C,KAAI,CAAC,EACH,OAAU,MAAM,uDAAuD;AAEzE,QAAO"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
type ConfirmDialogVariant = 'default' | 'warning' | 'danger';
|
|
2
|
+
interface ConfirmDialogProps {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onOpenChange: (open: boolean) => void;
|
|
5
|
+
title: string;
|
|
6
|
+
description: string;
|
|
7
|
+
confirmText?: string;
|
|
8
|
+
cancelText?: string;
|
|
9
|
+
variant?: ConfirmDialogVariant;
|
|
10
|
+
onConfirm: () => void;
|
|
11
|
+
}
|
|
12
|
+
interface ConfirmDialogState {
|
|
13
|
+
open: boolean;
|
|
14
|
+
title: string;
|
|
15
|
+
description: string;
|
|
16
|
+
confirmText?: string;
|
|
17
|
+
cancelText?: string;
|
|
18
|
+
variant?: ConfirmDialogVariant;
|
|
19
|
+
}
|
|
20
|
+
export declare function ConfirmDialog({ open, onOpenChange, title, description, confirmText, cancelText, variant, onConfirm, }: ConfirmDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function useConfirmDialog(): {
|
|
22
|
+
openConfirmDialog: (config: Omit<ConfirmDialogState, "open"> & {
|
|
23
|
+
onConfirm: () => void;
|
|
24
|
+
}) => void;
|
|
25
|
+
ConfirmDialog: import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
};
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=ConfirmDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfirmDialog.d.ts","sourceRoot":"","sources":["../../../../../src/organization-management/shared/components/dialog/ConfirmDialog.tsx"],"names":[],"mappings":"AAcA,KAAK,oBAAoB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE7D,UAAU,kBAAkB;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAkCD,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,OAAmB,EACnB,SAAS,GACV,EAAE,kBAAkB,2CA8CpB;AAED,wBAAgB,gBAAgB;gCASnB,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG;QAAE,SAAS,EAAE,MAAM,IAAI,CAAA;KAAE;;EAkCxE"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { useCallback as e, useMemo as t, useState as n } from "react";
|
|
2
|
+
import { AlertCircle as r, AlertTriangle as i, Info as a } from "lucide-react";
|
|
3
|
+
import { AlertDialog as o, AlertDialogAction as s, AlertDialogCancel as c, AlertDialogContent as l, AlertDialogDescription as u, AlertDialogFooter as d, AlertDialogHeader as f, AlertDialogTitle as p } from "@burdenoff/fe-libs/ui";
|
|
4
|
+
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
5
|
+
import { useI18n as g } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
6
|
+
//#region src/organization-management/shared/components/dialog/ConfirmDialog.tsx
|
|
7
|
+
var _ = {
|
|
8
|
+
default: {
|
|
9
|
+
icon: a,
|
|
10
|
+
iconContainerClassName: "bg-[var(--color-status-info-bgSubtle)]",
|
|
11
|
+
iconClassName: "text-[var(--color-status-info-text)]",
|
|
12
|
+
actionClassName: "bg-[var(--color-action-primary-bg)] text-[var(--color-action-primary-text)] hover:opacity-90"
|
|
13
|
+
},
|
|
14
|
+
warning: {
|
|
15
|
+
icon: i,
|
|
16
|
+
iconContainerClassName: "bg-[var(--color-status-warning-bgSubtle)]",
|
|
17
|
+
iconClassName: "text-[var(--color-status-warning-text)]",
|
|
18
|
+
actionClassName: "bg-[var(--color-status-warning-bg)] text-[var(--color-text-inverse)] hover:opacity-90"
|
|
19
|
+
},
|
|
20
|
+
danger: {
|
|
21
|
+
icon: r,
|
|
22
|
+
iconContainerClassName: "bg-[var(--color-status-error-bgSubtle)]",
|
|
23
|
+
iconClassName: "text-[var(--color-status-error-text)]",
|
|
24
|
+
actionClassName: "bg-[var(--color-status-error-bg)] text-[var(--color-text-inverse)] hover:opacity-90"
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
function v({ open: t, onOpenChange: n, title: r, description: i, confirmText: a, cancelText: v, variant: y = "default", onConfirm: b }) {
|
|
28
|
+
let { t: x } = g(), S = e((e, t) => {
|
|
29
|
+
let n = x(e);
|
|
30
|
+
return n === e ? t : n;
|
|
31
|
+
}, [x]), C = _[y], w = C.icon, T = a ?? S("common.confirm", "Confirm"), E = v ?? S("common.cancel", "Cancel");
|
|
32
|
+
return /* @__PURE__ */ m(o, {
|
|
33
|
+
open: t,
|
|
34
|
+
onOpenChange: n,
|
|
35
|
+
children: /* @__PURE__ */ h(l, {
|
|
36
|
+
className: "max-w-md border-[var(--color-border-default)] bg-[var(--color-bg-surface)] text-[var(--color-text-primary)]",
|
|
37
|
+
children: [/* @__PURE__ */ m(f, { children: /* @__PURE__ */ h("div", {
|
|
38
|
+
className: "flex items-start gap-4",
|
|
39
|
+
children: [/* @__PURE__ */ m("div", {
|
|
40
|
+
className: `flex h-10 w-10 items-center justify-center rounded-full ${C.iconContainerClassName}`,
|
|
41
|
+
children: /* @__PURE__ */ m(w, { className: `h-5 w-5 ${C.iconClassName}` })
|
|
42
|
+
}), /* @__PURE__ */ h("div", {
|
|
43
|
+
className: "flex-1",
|
|
44
|
+
children: [/* @__PURE__ */ m(p, {
|
|
45
|
+
className: "text-lg text-[var(--color-text-primary)]",
|
|
46
|
+
children: r
|
|
47
|
+
}), /* @__PURE__ */ m(u, {
|
|
48
|
+
className: "mt-2 text-sm text-[var(--color-text-secondary)]",
|
|
49
|
+
children: i
|
|
50
|
+
})]
|
|
51
|
+
})]
|
|
52
|
+
}) }), /* @__PURE__ */ h(d, {
|
|
53
|
+
className: "mt-6",
|
|
54
|
+
children: [/* @__PURE__ */ m(c, {
|
|
55
|
+
className: "border-[var(--color-border-default)] bg-[var(--color-bg-surface)] text-[var(--color-text-primary)] hover:bg-[var(--color-bg-subtle)]",
|
|
56
|
+
children: E
|
|
57
|
+
}), /* @__PURE__ */ m(s, {
|
|
58
|
+
onClick: b,
|
|
59
|
+
className: C.actionClassName,
|
|
60
|
+
children: T
|
|
61
|
+
})]
|
|
62
|
+
})]
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
function y() {
|
|
67
|
+
let [r, i] = n({
|
|
68
|
+
open: !1,
|
|
69
|
+
title: "",
|
|
70
|
+
description: ""
|
|
71
|
+
}), [a, o] = n(null), s = e((e) => {
|
|
72
|
+
i({
|
|
73
|
+
...e,
|
|
74
|
+
open: !0
|
|
75
|
+
}), o(() => e.onConfirm);
|
|
76
|
+
}, []), c = e((e) => {
|
|
77
|
+
i((t) => ({
|
|
78
|
+
...t,
|
|
79
|
+
open: e
|
|
80
|
+
})), e || o(null);
|
|
81
|
+
}, []);
|
|
82
|
+
return {
|
|
83
|
+
openConfirmDialog: s,
|
|
84
|
+
ConfirmDialog: t(() => /* @__PURE__ */ m(v, {
|
|
85
|
+
open: r.open,
|
|
86
|
+
onOpenChange: c,
|
|
87
|
+
title: r.title,
|
|
88
|
+
description: r.description,
|
|
89
|
+
confirmText: r.confirmText,
|
|
90
|
+
cancelText: r.cancelText,
|
|
91
|
+
variant: r.variant,
|
|
92
|
+
onConfirm: () => {
|
|
93
|
+
a?.(), c(!1);
|
|
94
|
+
}
|
|
95
|
+
}), [
|
|
96
|
+
c,
|
|
97
|
+
a,
|
|
98
|
+
r
|
|
99
|
+
])
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
//#endregion
|
|
103
|
+
export { y as useConfirmDialog };
|
|
104
|
+
|
|
105
|
+
//# sourceMappingURL=ConfirmDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfirmDialog.js","names":[],"sources":["../../../../../src/organization-management/shared/components/dialog/ConfirmDialog.tsx"],"sourcesContent":["import { AlertCircle, AlertTriangle, Info } from 'lucide-react';\nimport { useCallback, useMemo, useState } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '@burdenoff/fe-libs/ui';\n\ntype ConfirmDialogVariant = 'default' | 'warning' | 'danger';\n\ninterface ConfirmDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: string;\n description: string;\n confirmText?: string;\n cancelText?: string;\n variant?: ConfirmDialogVariant;\n onConfirm: () => void;\n}\n\ninterface ConfirmDialogState {\n open: boolean;\n title: string;\n description: string;\n confirmText?: string;\n cancelText?: string;\n variant?: ConfirmDialogVariant;\n}\n\nconst VARIANT_STYLES: Record<\n ConfirmDialogVariant,\n {\n icon: typeof Info;\n iconContainerClassName: string;\n iconClassName: string;\n actionClassName: string;\n }\n> = {\n default: {\n icon: Info,\n iconContainerClassName: 'bg-[var(--color-status-info-bgSubtle)]',\n iconClassName: 'text-[var(--color-status-info-text)]',\n actionClassName:\n 'bg-[var(--color-action-primary-bg)] text-[var(--color-action-primary-text)] hover:opacity-90',\n },\n warning: {\n icon: AlertTriangle,\n iconContainerClassName: 'bg-[var(--color-status-warning-bgSubtle)]',\n iconClassName: 'text-[var(--color-status-warning-text)]',\n actionClassName:\n 'bg-[var(--color-status-warning-bg)] text-[var(--color-text-inverse)] hover:opacity-90',\n },\n danger: {\n icon: AlertCircle,\n iconContainerClassName: 'bg-[var(--color-status-error-bgSubtle)]',\n iconClassName: 'text-[var(--color-status-error-text)]',\n actionClassName:\n 'bg-[var(--color-status-error-bg)] text-[var(--color-text-inverse)] hover:opacity-90',\n },\n};\n\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n confirmText,\n cancelText,\n variant = 'default',\n onConfirm,\n}: ConfirmDialogProps) {\n const { t } = useI18n();\n const tr = useCallback(\n (key: string, fallback: string) => {\n const translated = t(key);\n return translated === key ? fallback : translated;\n },\n [t]\n );\n const styles = VARIANT_STYLES[variant];\n const Icon = styles.icon;\n const resolvedConfirmText = confirmText ?? tr('common.confirm', 'Confirm');\n const resolvedCancelText = cancelText ?? tr('common.cancel', 'Cancel');\n\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent className=\"max-w-md border-[var(--color-border-default)] bg-[var(--color-bg-surface)] text-[var(--color-text-primary)]\">\n <AlertDialogHeader>\n <div className=\"flex items-start gap-4\">\n <div\n className={`flex h-10 w-10 items-center justify-center rounded-full ${styles.iconContainerClassName}`}\n >\n <Icon className={`h-5 w-5 ${styles.iconClassName}`} />\n </div>\n <div className=\"flex-1\">\n <AlertDialogTitle className=\"text-lg text-[var(--color-text-primary)]\">\n {title}\n </AlertDialogTitle>\n <AlertDialogDescription className=\"mt-2 text-sm text-[var(--color-text-secondary)]\">\n {description}\n </AlertDialogDescription>\n </div>\n </div>\n </AlertDialogHeader>\n\n <AlertDialogFooter className=\"mt-6\">\n <AlertDialogCancel className=\"border-[var(--color-border-default)] bg-[var(--color-bg-surface)] text-[var(--color-text-primary)] hover:bg-[var(--color-bg-subtle)]\">\n {resolvedCancelText}\n </AlertDialogCancel>\n <AlertDialogAction onClick={onConfirm} className={styles.actionClassName}>\n {resolvedConfirmText}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n}\n\nexport function useConfirmDialog() {\n const [state, setState] = useState<ConfirmDialogState>({\n open: false,\n title: '',\n description: '',\n });\n const [onConfirm, setOnConfirm] = useState<(() => void) | null>(null);\n\n const openConfirmDialog = useCallback(\n (config: Omit<ConfirmDialogState, 'open'> & { onConfirm: () => void }) => {\n setState({ ...config, open: true });\n setOnConfirm(() => config.onConfirm);\n },\n []\n );\n\n const handleOpenChange = useCallback((open: boolean) => {\n setState((previousState) => ({ ...previousState, open }));\n if (!open) {\n setOnConfirm(null);\n }\n }, []);\n\n const dialog = useMemo(\n () => (\n <ConfirmDialog\n open={state.open}\n onOpenChange={handleOpenChange}\n title={state.title}\n description={state.description}\n confirmText={state.confirmText}\n cancelText={state.cancelText}\n variant={state.variant}\n onConfirm={() => {\n onConfirm?.();\n handleOpenChange(false);\n }}\n />\n ),\n [handleOpenChange, onConfirm, state]\n );\n\n return { openConfirmDialog, ConfirmDialog: dialog };\n}\n"],"mappings":";;;;;;AAoCA,IAAM,IAQF;CACF,SAAS;EACP,MAAM;EACN,wBAAwB;EACxB,eAAe;EACf,iBACE;EACH;CACD,SAAS;EACP,MAAM;EACN,wBAAwB;EACxB,eAAe;EACf,iBACE;EACH;CACD,QAAQ;EACN,MAAM;EACN,wBAAwB;EACxB,eAAe;EACf,iBACE;EACH;CACF;AAED,SAAgB,EAAc,EAC5B,SACA,iBACA,UACA,gBACA,gBACA,eACA,aAAU,WACV,gBACqB;CACrB,IAAM,EAAE,SAAM,GAAS,EACjB,IAAK,GACR,GAAa,MAAqB;EACjC,IAAM,IAAa,EAAE,EAAI;AACzB,SAAO,MAAe,IAAM,IAAW;IAEzC,CAAC,EAAE,CACJ,EACK,IAAS,EAAe,IACxB,IAAO,EAAO,MACd,IAAsB,KAAe,EAAG,kBAAkB,UAAU,EACpE,IAAqB,KAAc,EAAG,iBAAiB,SAAS;AAEtE,QACE,kBAAC,GAAD;EAAmB;EAAoB;YACrC,kBAAC,GAAD;GAAoB,WAAU;aAA9B,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD;KACE,WAAW,2DAA2D,EAAO;eAE7E,kBAAC,GAAD,EAAM,WAAW,WAAW,EAAO,iBAAmB,CAAA;KAClD,CAAA,EACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAkB,WAAU;gBACzB;MACgB,CAAA,EACnB,kBAAC,GAAD;MAAwB,WAAU;gBAC/B;MACsB,CAAA,CACrB;OACF;OACY,CAAA,EAEpB,kBAAC,GAAD;IAAmB,WAAU;cAA7B,CACE,kBAAC,GAAD;KAAmB,WAAU;eAC1B;KACiB,CAAA,EACpB,kBAAC,GAAD;KAAmB,SAAS;KAAW,WAAW,EAAO;eACtD;KACiB,CAAA,CACF;MACD;;EACT,CAAA;;AAIlB,SAAgB,IAAmB;CACjC,IAAM,CAAC,GAAO,KAAY,EAA6B;EACrD,MAAM;EACN,OAAO;EACP,aAAa;EACd,CAAC,EACI,CAAC,GAAW,KAAgB,EAA8B,KAAK,EAE/D,IAAoB,GACvB,MAAyE;AAExE,EADA,EAAS;GAAE,GAAG;GAAQ,MAAM;GAAM,CAAC,EACnC,QAAmB,EAAO,UAAU;IAEtC,EAAE,CACH,EAEK,IAAmB,GAAa,MAAkB;AAEtD,EADA,GAAU,OAAmB;GAAE,GAAG;GAAe;GAAM,EAAE,EACpD,KACH,EAAa,KAAK;IAEnB,EAAE,CAAC;AAqBN,QAAO;EAAE;EAAmB,eAnBb,QAEX,kBAAC,GAAD;GACE,MAAM,EAAM;GACZ,cAAc;GACd,OAAO,EAAM;GACb,aAAa,EAAM;GACnB,aAAa,EAAM;GACnB,YAAY,EAAM;GAClB,SAAS,EAAM;GACf,iBAAiB;AAEf,IADA,KAAa,EACb,EAAiB,GAAM;;GAEzB,CAAA,EAEJ;GAAC;GAAkB;GAAW;GAAM,CACrC;EAEkD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
interface EmptyStateProps {
|
|
4
|
+
icon: ReactNode;
|
|
5
|
+
title: string;
|
|
6
|
+
description: string;
|
|
7
|
+
action?: {
|
|
8
|
+
label: string;
|
|
9
|
+
onClick: () => void;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export declare function EmptyState({ icon, title, description, action }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=EmptyState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../../../src/organization-management/shared/components/feedback/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,eAAe;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,CAAC;CACH;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,eAAe,2CAyB/E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
|
2
|
+
//#region src/organization-management/shared/components/feedback/EmptyState.tsx
|
|
3
|
+
function n({ icon: n, title: r, description: i, action: a }) {
|
|
4
|
+
return /* @__PURE__ */ t("div", {
|
|
5
|
+
className: "flex flex-col items-center justify-center py-12 text-center animate-in fade-in duration-300",
|
|
6
|
+
children: [
|
|
7
|
+
/* @__PURE__ */ e("div", {
|
|
8
|
+
className: "text-[var(--color-text-muted)] mb-4",
|
|
9
|
+
children: n
|
|
10
|
+
}),
|
|
11
|
+
/* @__PURE__ */ e("h3", {
|
|
12
|
+
className: "text-lg font-semibold text-[var(--color-text-primary)] mb-2",
|
|
13
|
+
children: r
|
|
14
|
+
}),
|
|
15
|
+
/* @__PURE__ */ e("p", {
|
|
16
|
+
className: "text-sm text-[var(--color-text-muted)] mb-6 max-w-md",
|
|
17
|
+
children: i
|
|
18
|
+
}),
|
|
19
|
+
a && /* @__PURE__ */ e("button", {
|
|
20
|
+
onClick: a.onClick,
|
|
21
|
+
className: "\n inline-flex items-center gap-2 px-4 py-2\n bg-[var(--color-action-primary-bg)]\n text-[var(--color-action-primary-text)]\n rounded-lg\n hover:opacity-90 hover:scale-[1.02]\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n ",
|
|
22
|
+
children: a.label
|
|
23
|
+
})
|
|
24
|
+
]
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { n as EmptyState };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=EmptyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.js","names":[],"sources":["../../../../../src/organization-management/shared/components/feedback/EmptyState.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\ninterface EmptyStateProps {\n icon: ReactNode;\n title: string;\n description: string;\n action?: {\n label: string;\n onClick: () => void;\n };\n}\n\nexport function EmptyState({ icon, title, description, action }: EmptyStateProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 text-center animate-in fade-in duration-300\">\n <div className=\"text-[var(--color-text-muted)] mb-4\">{icon}</div>\n <h3 className=\"text-lg font-semibold text-[var(--color-text-primary)] mb-2\">{title}</h3>\n <p className=\"text-sm text-[var(--color-text-muted)] mb-6 max-w-md\">{description}</p>\n {action && (\n <button\n onClick={action.onClick}\n className=\"\n inline-flex items-center gap-2 px-4 py-2\n bg-[var(--color-action-primary-bg)]\n text-[var(--color-action-primary-text)]\n rounded-lg\n hover:opacity-90 hover:scale-[1.02]\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n \"\n >\n {action.label}\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;AAYA,SAAgB,EAAW,EAAE,SAAM,UAAO,gBAAa,aAA2B;AAChF,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAuC;IAAW,CAAA;GACjE,kBAAC,MAAD;IAAI,WAAU;cAA+D;IAAW,CAAA;GACxF,kBAAC,KAAD;IAAG,WAAU;cAAwD;IAAgB,CAAA;GACpF,KACC,kBAAC,UAAD;IACE,SAAS,EAAO;IAChB,WAAU;cAWT,EAAO;IACD,CAAA;GAEP"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface ErrorStateProps {
|
|
2
|
+
title?: string;
|
|
3
|
+
message: string;
|
|
4
|
+
action?: {
|
|
5
|
+
label: string;
|
|
6
|
+
onClick: () => void;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export declare function ErrorState({ title, message, action }: ErrorStateProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=ErrorState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorState.d.ts","sourceRoot":"","sources":["../../../../../src/organization-management/shared/components/feedback/ErrorState.tsx"],"names":[],"mappings":"AAGA,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,CAAC;CACH;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe,2CAkCrE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { useTr as e } from "../../hooks/useTr.js";
|
|
2
|
+
import { AlertCircle as t } from "lucide-react";
|
|
3
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
|
+
//#region src/organization-management/shared/components/feedback/ErrorState.tsx
|
|
5
|
+
function i({ title: i, message: a, action: o }) {
|
|
6
|
+
let s = e(), c = i ?? s("common.error.title", "Something went wrong");
|
|
7
|
+
return /* @__PURE__ */ r("div", {
|
|
8
|
+
className: "flex flex-col items-center justify-center py-12 text-center animate-in fade-in duration-300",
|
|
9
|
+
role: "alert",
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ n("div", {
|
|
12
|
+
className: "w-16 h-16 rounded-full bg-[var(--color-status-error-muted)] flex items-center justify-center mb-4",
|
|
13
|
+
children: /* @__PURE__ */ n(t, {
|
|
14
|
+
size: 32,
|
|
15
|
+
className: "text-[var(--color-status-error)]"
|
|
16
|
+
})
|
|
17
|
+
}),
|
|
18
|
+
/* @__PURE__ */ n("h3", {
|
|
19
|
+
className: "text-lg font-semibold text-[var(--color-text-primary)] mb-2",
|
|
20
|
+
children: c
|
|
21
|
+
}),
|
|
22
|
+
/* @__PURE__ */ n("p", {
|
|
23
|
+
className: "text-sm text-[var(--color-text-muted)] mb-6 max-w-md",
|
|
24
|
+
children: a
|
|
25
|
+
}),
|
|
26
|
+
o && /* @__PURE__ */ n("button", {
|
|
27
|
+
onClick: o.onClick,
|
|
28
|
+
className: "\n inline-flex items-center gap-2 px-4 py-2\n bg-[var(--color-action-primary-bg)]\n text-[var(--color-action-primary-text)]\n rounded-lg\n hover:opacity-90 hover:scale-[1.02]\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n ",
|
|
29
|
+
children: o.label
|
|
30
|
+
})
|
|
31
|
+
]
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
export { i as ErrorState };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=ErrorState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorState.js","names":[],"sources":["../../../../../src/organization-management/shared/components/feedback/ErrorState.tsx"],"sourcesContent":["import { AlertCircle } from 'lucide-react';\nimport { useTr } from '../../hooks/useTr';\n\ninterface ErrorStateProps {\n title?: string;\n message: string;\n action?: {\n label: string;\n onClick: () => void;\n };\n}\n\nexport function ErrorState({ title, message, action }: ErrorStateProps) {\n const tr = useTr();\n const resolvedTitle = title ?? tr('common.error.title', 'Something went wrong');\n return (\n <div\n className=\"flex flex-col items-center justify-center py-12 text-center animate-in fade-in duration-300\"\n role=\"alert\"\n >\n <div className=\"w-16 h-16 rounded-full bg-[var(--color-status-error-muted)] flex items-center justify-center mb-4\">\n <AlertCircle size={32} className=\"text-[var(--color-status-error)]\" />\n </div>\n <h3 className=\"text-lg font-semibold text-[var(--color-text-primary)] mb-2\">\n {resolvedTitle}\n </h3>\n <p className=\"text-sm text-[var(--color-text-muted)] mb-6 max-w-md\">{message}</p>\n {action && (\n <button\n onClick={action.onClick}\n className=\"\n inline-flex items-center gap-2 px-4 py-2\n bg-[var(--color-action-primary-bg)]\n text-[var(--color-action-primary-text)]\n rounded-lg\n hover:opacity-90 hover:scale-[1.02]\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n \"\n >\n {action.label}\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;;;AAYA,SAAgB,EAAW,EAAE,UAAO,YAAS,aAA2B;CACtE,IAAM,IAAK,GAAO,EACZ,IAAgB,KAAS,EAAG,sBAAsB,uBAAuB;AAC/E,QACE,kBAAC,OAAD;EACE,WAAU;EACV,MAAK;YAFP;GAIE,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,GAAD;KAAa,MAAM;KAAI,WAAU;KAAqC,CAAA;IAClE,CAAA;GACN,kBAAC,MAAD;IAAI,WAAU;cACX;IACE,CAAA;GACL,kBAAC,KAAD;IAAG,WAAU;cAAwD;IAAY,CAAA;GAChF,KACC,kBAAC,UAAD;IACE,SAAS,EAAO;IAChB,WAAU;cAWT,EAAO;IACD,CAAA;GAEP"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadingState.d.ts","sourceRoot":"","sources":["../../../../../src/organization-management/shared/components/feedback/LoadingState.tsx"],"names":[],"mappings":"AAGA,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,2CAc1D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { useTr as e } from "../../hooks/useTr.js";
|
|
2
|
+
import { Loader2 as t } from "lucide-react";
|
|
3
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
|
+
//#region src/organization-management/shared/components/feedback/LoadingState.tsx
|
|
5
|
+
function i({ message: i }) {
|
|
6
|
+
let a = e(), o = i ?? a("common.loading", "Loading...");
|
|
7
|
+
return /* @__PURE__ */ r("div", {
|
|
8
|
+
className: "flex flex-col items-center justify-center py-12 animate-in fade-in duration-300",
|
|
9
|
+
role: "status",
|
|
10
|
+
"aria-live": "polite",
|
|
11
|
+
"aria-busy": "true",
|
|
12
|
+
children: [/* @__PURE__ */ n(t, {
|
|
13
|
+
size: 48,
|
|
14
|
+
className: "text-[var(--color-status-info)] animate-spin mb-4"
|
|
15
|
+
}), /* @__PURE__ */ n("p", {
|
|
16
|
+
className: "text-sm text-[var(--color-text-muted)]",
|
|
17
|
+
children: o
|
|
18
|
+
})]
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { i as LoadingState };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=LoadingState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadingState.js","names":[],"sources":["../../../../../src/organization-management/shared/components/feedback/LoadingState.tsx"],"sourcesContent":["import { Loader2 } from 'lucide-react';\nimport { useTr } from '../../hooks/useTr';\n\ninterface LoadingStateProps {\n message?: string;\n}\n\nexport function LoadingState({ message }: LoadingStateProps) {\n const tr = useTr();\n const resolvedMessage = message ?? tr('common.loading', 'Loading...');\n return (\n <div\n className=\"flex flex-col items-center justify-center py-12 animate-in fade-in duration-300\"\n role=\"status\"\n aria-live=\"polite\"\n aria-busy=\"true\"\n >\n <Loader2 size={48} className=\"text-[var(--color-status-info)] animate-spin mb-4\" />\n <p className=\"text-sm text-[var(--color-text-muted)]\">{resolvedMessage}</p>\n </div>\n );\n}\n"],"mappings":";;;;AAOA,SAAgB,EAAa,EAAE,cAA8B;CAC3D,IAAM,IAAK,GAAO,EACZ,IAAkB,KAAW,EAAG,kBAAkB,aAAa;AACrE,QACE,kBAAC,OAAD;EACE,WAAU;EACV,MAAK;EACL,aAAU;EACV,aAAU;YAJZ,CAME,kBAAC,GAAD;GAAS,MAAM;GAAI,WAAU;GAAsD,CAAA,EACnF,kBAAC,KAAD;GAAG,WAAU;aAA0C;GAAoB,CAAA,CACvE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface SearchInputProps {
|
|
2
|
+
value: string;
|
|
3
|
+
onChange: (value: string) => void;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
className?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
inputId?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* SearchInput
|
|
11
|
+
* Reusable search input component with clear button
|
|
12
|
+
*/
|
|
13
|
+
export declare function SearchInput({ value, onChange, placeholder, className, label, inputId, }: SearchInputProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=SearchInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../../../src/organization-management/shared/components/input/SearchInput.tsx"],"names":[],"mappings":"AAGA,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,WAAW,EACX,SAAc,EACd,KAAK,EACL,OAAO,GACR,EAAE,gBAAgB,2CAmDlB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { useTr as e } from "../../hooks/useTr.js";
|
|
2
|
+
import { Search as t, X as n } from "lucide-react";
|
|
3
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
4
|
+
//#region src/organization-management/shared/components/input/SearchInput.tsx
|
|
5
|
+
function a({ value: a, onChange: o, placeholder: s, className: c = "", label: l, inputId: u }) {
|
|
6
|
+
let d = e(), f = s ?? d("common.search.placeholder", "Search...");
|
|
7
|
+
return /* @__PURE__ */ i("div", {
|
|
8
|
+
className: `relative ${c}`,
|
|
9
|
+
children: [
|
|
10
|
+
l ? /* @__PURE__ */ r("label", {
|
|
11
|
+
htmlFor: u,
|
|
12
|
+
className: "sr-only",
|
|
13
|
+
children: l
|
|
14
|
+
}) : null,
|
|
15
|
+
/* @__PURE__ */ r(t, {
|
|
16
|
+
size: 18,
|
|
17
|
+
className: "absolute left-3 top-1/2 -translate-y-1/2 text-[var(--color-text-muted)]"
|
|
18
|
+
}),
|
|
19
|
+
/* @__PURE__ */ r("input", {
|
|
20
|
+
id: u,
|
|
21
|
+
type: "text",
|
|
22
|
+
value: a,
|
|
23
|
+
onChange: (e) => o(e.target.value),
|
|
24
|
+
placeholder: f,
|
|
25
|
+
"aria-label": l ?? f,
|
|
26
|
+
className: "\n w-full pl-[3.25rem] pr-10 py-2\n bg-[var(--color-bg-surface)]\n border border-[var(--color-border-default)]\n rounded-lg\n text-[var(--color-text-primary)]\n placeholder:text-[var(--color-text-muted)]\n focus:outline-none focus:ring-2 focus:ring-[var(--color-border-focus)]\n transition-all duration-200\n "
|
|
27
|
+
}),
|
|
28
|
+
a && /* @__PURE__ */ r("button", {
|
|
29
|
+
onClick: () => o(""),
|
|
30
|
+
className: "\n absolute right-3 top-1/2 -translate-y-1/2\n p-1 rounded-md\n text-[var(--color-text-muted)]\n hover:text-[var(--color-text-primary)]\n hover:bg-[var(--color-bg-subtle)]\n active:scale-95\n transition-all duration-200\n ",
|
|
31
|
+
"aria-label": "Clear search",
|
|
32
|
+
children: /* @__PURE__ */ r(n, { size: 16 })
|
|
33
|
+
})
|
|
34
|
+
]
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { a as SearchInput };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=SearchInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchInput.js","names":[],"sources":["../../../../../src/organization-management/shared/components/input/SearchInput.tsx"],"sourcesContent":["import { Search, X } from 'lucide-react';\nimport { useTr } from '../../hooks/useTr';\n\ninterface SearchInputProps {\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n className?: string;\n label?: string;\n inputId?: string;\n}\n\n/**\n * SearchInput\n * Reusable search input component with clear button\n */\nexport function SearchInput({\n value,\n onChange,\n placeholder,\n className = '',\n label,\n inputId,\n}: SearchInputProps) {\n const tr = useTr();\n const resolvedPlaceholder = placeholder ?? tr('common.search.placeholder', 'Search...');\n return (\n <div className={`relative ${className}`}>\n {label ? (\n <label htmlFor={inputId} className=\"sr-only\">\n {label}\n </label>\n ) : null}\n <Search\n size={18}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-[var(--color-text-muted)]\"\n />\n <input\n id={inputId}\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={resolvedPlaceholder}\n aria-label={label ?? resolvedPlaceholder}\n className=\"\n w-full pl-[3.25rem] pr-10 py-2\n bg-[var(--color-bg-surface)]\n border border-[var(--color-border-default)]\n rounded-lg\n text-[var(--color-text-primary)]\n placeholder:text-[var(--color-text-muted)]\n focus:outline-none focus:ring-2 focus:ring-[var(--color-border-focus)]\n transition-all duration-200\n \"\n />\n {value && (\n <button\n onClick={() => onChange('')}\n className=\"\n absolute right-3 top-1/2 -translate-y-1/2\n p-1 rounded-md\n text-[var(--color-text-muted)]\n hover:text-[var(--color-text-primary)]\n hover:bg-[var(--color-bg-subtle)]\n active:scale-95\n transition-all duration-200\n \"\n aria-label=\"Clear search\"\n >\n <X size={16} />\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;;;AAgBA,SAAgB,EAAY,EAC1B,UACA,aACA,gBACA,eAAY,IACZ,UACA,cACmB;CACnB,IAAM,IAAK,GAAO,EACZ,IAAsB,KAAe,EAAG,6BAA6B,YAAY;AACvF,QACE,kBAAC,OAAD;EAAK,WAAW,YAAY;YAA5B;GACG,IACC,kBAAC,SAAD;IAAO,SAAS;IAAS,WAAU;cAChC;IACK,CAAA,GACN;GACJ,kBAAC,GAAD;IACE,MAAM;IACN,WAAU;IACV,CAAA;GACF,kBAAC,SAAD;IACE,IAAI;IACJ,MAAK;IACE;IACP,WAAW,MAAM,EAAS,EAAE,OAAO,MAAM;IACzC,aAAa;IACb,cAAY,KAAS;IACrB,WAAU;IAUV,CAAA;GACD,KACC,kBAAC,UAAD;IACE,eAAe,EAAS,GAAG;IAC3B,WAAU;IASV,cAAW;cAEX,kBAAC,GAAD,EAAG,MAAM,IAAM,CAAA;IACR,CAAA;GAEP"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface SelectionCheckboxProps {
|
|
2
|
+
checked: boolean;
|
|
3
|
+
indeterminate?: boolean;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
onChange: (checked: boolean) => void;
|
|
6
|
+
ariaLabel: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function SelectionCheckbox({ checked, indeterminate, disabled, onChange, ariaLabel, }: SelectionCheckboxProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=SelectionCheckbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectionCheckbox.d.ts","sourceRoot":"","sources":["../../../../../src/organization-management/shared/components/input/SelectionCheckbox.tsx"],"names":[],"mappings":"AAEA,UAAU,sBAAsB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,aAAqB,EACrB,QAAgB,EAChB,QAAQ,EACR,SAAS,GACV,EAAE,sBAAsB,2CAoBxB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useEffect as e, useRef as t } from "react";
|
|
2
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
3
|
+
//#region src/organization-management/shared/components/input/SelectionCheckbox.tsx
|
|
4
|
+
function r({ checked: r, indeterminate: i = !1, disabled: a = !1, onChange: o, ariaLabel: s }) {
|
|
5
|
+
let c = t(null);
|
|
6
|
+
return e(() => {
|
|
7
|
+
c.current && (c.current.indeterminate = i && !r);
|
|
8
|
+
}, [r, i]), /* @__PURE__ */ n("input", {
|
|
9
|
+
ref: c,
|
|
10
|
+
type: "checkbox",
|
|
11
|
+
checked: r,
|
|
12
|
+
disabled: a,
|
|
13
|
+
"aria-label": s,
|
|
14
|
+
onChange: (e) => o(e.target.checked),
|
|
15
|
+
className: "h-4 w-4 rounded border-[var(--color-border-default)] text-[var(--color-action-primary-bg)] focus:ring-2 focus:ring-[var(--color-border-focus)]"
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { r as SelectionCheckbox };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=SelectionCheckbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectionCheckbox.js","names":[],"sources":["../../../../../src/organization-management/shared/components/input/SelectionCheckbox.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\ninterface SelectionCheckboxProps {\n checked: boolean;\n indeterminate?: boolean;\n disabled?: boolean;\n onChange: (checked: boolean) => void;\n ariaLabel: string;\n}\n\nexport function SelectionCheckbox({\n checked,\n indeterminate = false,\n disabled = false,\n onChange,\n ariaLabel,\n}: SelectionCheckboxProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate && !checked;\n }\n }, [checked, indeterminate]);\n\n return (\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n aria-label={ariaLabel}\n onChange={(event) => onChange(event.target.checked)}\n className=\"h-4 w-4 rounded border-[var(--color-border-default)] text-[var(--color-action-primary-bg)] focus:ring-2 focus:ring-[var(--color-border-focus)]\"\n />\n );\n}\n"],"mappings":";;;AAUA,SAAgB,EAAkB,EAChC,YACA,mBAAgB,IAChB,cAAW,IACX,aACA,gBACyB;CACzB,IAAM,IAAW,EAAyB,KAAK;AAQ/C,QANA,QAAgB;AACd,EAAI,EAAS,YACX,EAAS,QAAQ,gBAAgB,KAAiB,CAAC;IAEpD,CAAC,GAAS,EAAc,CAAC,EAG1B,kBAAC,SAAD;EACE,KAAK;EACL,MAAK;EACI;EACC;EACV,cAAY;EACZ,WAAW,MAAU,EAAS,EAAM,OAAO,QAAQ;EACnD,WAAU;EACV,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDebouncedValue.d.ts","sourceRoot":"","sources":["../../../../src/organization-management/shared/hooks/useDebouncedValue.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,SAAM,GAAG,CAAC,CAc7D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useEffect as e, useState as t } from "react";
|
|
2
|
+
//#region src/organization-management/shared/hooks/useDebouncedValue.ts
|
|
3
|
+
function n(n, r = 300) {
|
|
4
|
+
let [i, a] = t(n);
|
|
5
|
+
return e(() => {
|
|
6
|
+
let e = window.setTimeout(() => {
|
|
7
|
+
a(n);
|
|
8
|
+
}, r);
|
|
9
|
+
return () => {
|
|
10
|
+
window.clearTimeout(e);
|
|
11
|
+
};
|
|
12
|
+
}, [r, n]), i;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { n as useDebouncedValue };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=useDebouncedValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDebouncedValue.js","names":[],"sources":["../../../../src/organization-management/shared/hooks/useDebouncedValue.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport function useDebouncedValue<T>(value: T, delay = 300): T {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const timeoutId = window.setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n window.clearTimeout(timeoutId);\n };\n }, [delay, value]);\n\n return debouncedValue;\n}\n"],"mappings":";;AAEA,SAAgB,EAAqB,GAAU,IAAQ,KAAQ;CAC7D,IAAM,CAAC,GAAgB,KAAqB,EAAS,EAAM;AAY3D,QAVA,QAAgB;EACd,IAAM,IAAY,OAAO,iBAAiB;AACxC,KAAkB,EAAM;KACvB,EAAM;AAET,eAAa;AACX,UAAO,aAAa,EAAU;;IAE/B,CAAC,GAAO,EAAM,CAAC,EAEX"}
|