@burdenoff/microfe-workspaces 2026.1014.1 → 2026.1016.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/WorkspacesRoot.d.ts +33 -0
  2. package/dist/WorkspacesRoutes.d.ts +9 -0
  3. package/dist/components/CreateProjectDialog.d.ts +5 -0
  4. package/dist/components/CreateWorkspaceDialog.d.ts +1 -0
  5. package/dist/components/InviteMemberDialog.d.ts +6 -0
  6. package/dist/components/MemberListItem.d.ts +9 -0
  7. package/dist/components/ProjectCard.d.ts +13 -0
  8. package/dist/components/ProjectMemberPickerDialog.d.ts +8 -0
  9. package/dist/components/RenameProjectDialog.d.ts +11 -0
  10. package/dist/components/WorkspaceCard.d.ts +6 -0
  11. package/dist/components/WorkspaceContextPathSync.d.ts +23 -0
  12. package/dist/components/WorkspacesErrorBoundary.d.ts +28 -0
  13. package/dist/components/index.d.ts +7 -0
  14. package/dist/components/tags/ProjectTagsWidget.d.ts +21 -0
  15. package/dist/components/tags/ProjectTagsWidget.js +38 -38
  16. package/dist/constants/permissions.d.ts +32 -0
  17. package/dist/generated/global-operations.d.ts +257 -0
  18. package/dist/generated/global-operations.js +844 -152
  19. package/dist/generated/global-types.d.ts +23507 -0
  20. package/dist/generated/wspace-operations.d.ts +1457 -0
  21. package/dist/generated/wspace-operations.js +4277 -626
  22. package/dist/generated/wspace-types.d.ts +57824 -0
  23. package/dist/hooks/index.d.ts +8 -0
  24. package/dist/hooks/useMemberMutations.d.ts +59 -0
  25. package/dist/hooks/useOrgsWithPermission.d.ts +6 -0
  26. package/dist/hooks/usePendingInvitations.d.ts +7 -0
  27. package/dist/hooks/useProjectMemberMutations.d.ts +3 -0
  28. package/dist/hooks/useProjectMembers.d.ts +4 -0
  29. package/dist/hooks/useProjectMutations.d.ts +39 -0
  30. package/dist/hooks/useProjects.d.ts +14 -0
  31. package/dist/hooks/useScopedNavigation.d.ts +3 -0
  32. package/dist/hooks/useTenants.d.ts +11 -0
  33. package/dist/hooks/useTr.d.ts +26 -0
  34. package/dist/hooks/useWorkspaceActivity.d.ts +11 -0
  35. package/dist/hooks/useWorkspaceMembers.d.ts +25 -0
  36. package/dist/hooks/useWorkspaceMutations.d.ts +34 -0
  37. package/dist/hooks/useWorkspacePermissions.d.ts +32 -0
  38. package/dist/hooks/useWorkspaceRoles.d.ts +12 -0
  39. package/dist/hooks/useWorkspaces.d.ts +19 -0
  40. package/dist/hooks/useWorkspacesEventEmitter.d.ts +16 -0
  41. package/dist/hooks/useWorkspacesPageView.d.ts +26 -0
  42. package/dist/index.d.ts +35 -0
  43. package/dist/pages/ActivityListPage.d.ts +1 -0
  44. package/dist/pages/CreateWorkspacePage.d.ts +1 -0
  45. package/dist/pages/InviteAcceptancePage.d.ts +5 -0
  46. package/dist/pages/MembersListPage.d.ts +1 -0
  47. package/dist/pages/PendingInvitesPage.d.ts +1 -0
  48. package/dist/pages/ProjectDetailPage.d.ts +1 -0
  49. package/dist/pages/ProjectMembersPage.d.ts +1 -0
  50. package/dist/pages/ProjectsListPage.d.ts +1 -0
  51. package/dist/pages/WorkspaceDetailPage.d.ts +1 -0
  52. package/dist/pages/WorkspaceInvitePage.d.ts +1 -0
  53. package/dist/pages/WorkspaceSettingsPage.d.ts +1 -0
  54. package/dist/pages/WorkspaceSettingsPage.js +38 -37
  55. package/dist/pages/WorkspacesListPage.d.ts +1 -0
  56. package/dist/pages/dashboard/DashboardCustomizer.d.ts +11 -0
  57. package/dist/pages/dashboard/DashboardGrid.d.ts +6 -0
  58. package/dist/pages/dashboard/DashboardPage.d.ts +19 -0
  59. package/dist/pages/dashboard/WidgetWrapper.d.ts +16 -0
  60. package/dist/pages/dashboard/config.d.ts +27 -0
  61. package/dist/pages/dashboard/hooks/useDashboardData.d.ts +13 -0
  62. package/dist/pages/dashboard/hooks/useDashboardPreferences.d.ts +2 -0
  63. package/dist/pages/dashboard/reorder.d.ts +26 -0
  64. package/dist/pages/dashboard/types.d.ts +197 -0
  65. package/dist/pages/dashboard/widgets/AgentsWidget.d.ts +2 -0
  66. package/dist/pages/dashboard/widgets/GroupsWidget.d.ts +2 -0
  67. package/dist/pages/dashboard/widgets/MembersWidget.d.ts +2 -0
  68. package/dist/pages/dashboard/widgets/ProjectsWidget.d.ts +2 -0
  69. package/dist/pages/dashboard/widgets/QuickActionsWidget.d.ts +2 -0
  70. package/dist/pages/dashboard/widgets/RecentActivityWidget.d.ts +2 -0
  71. package/dist/pages/dashboard/widgets/SessionsWidget.d.ts +2 -0
  72. package/dist/pages/dashboard/widgets/StorageWidget.d.ts +2 -0
  73. package/dist/pages/dashboard/widgets/StorageWidget.js +2 -2
  74. package/dist/pages/dashboard/widgets/TagCloudWidget.d.ts +2 -0
  75. package/dist/pages/dashboard/widgets/TipsWidget.d.ts +2 -0
  76. package/dist/pages/dashboard/widgets/UpcomingEventsWidget.d.ts +2 -0
  77. package/dist/pages/dashboard/widgets/VibesWidget.d.ts +2 -0
  78. package/dist/pages/dashboard/widgets/WelcomeWidget.d.ts +2 -0
  79. package/dist/pages/dashboard/widgets/WorkflowRunsWidget.d.ts +2 -0
  80. package/dist/pages/dashboard/widgets/WorkflowStatsWidget.d.ts +2 -0
  81. package/dist/pages/dashboard/widgets/WorkflowsOverviewWidget.d.ts +2 -0
  82. package/dist/pages/dashboard/widgets/WorkspacesWidget.d.ts +2 -0
  83. package/dist/providers/WorkspacesProvider.d.ts +11 -0
  84. package/dist/store/workspacesStore.d.ts +80 -0
  85. package/dist/translations/en.d.ts +921 -0
  86. package/dist/types/index.d.ts +336 -0
  87. package/dist/utils/formatters.d.ts +53 -0
  88. package/dist/utils/formatters.js +1 -1
  89. package/dist/utils/i18n.d.ts +11 -0
  90. package/dist/utils/index.d.ts +2 -0
  91. package/dist/utils/invitationDisplay.d.ts +6 -0
  92. package/dist/utils/nativeBridge.d.ts +2 -0
  93. package/dist/utils/projectTags.d.ts +6 -0
  94. package/dist/utils/slug.d.ts +12 -0
  95. package/dist/utils/telemetryError.d.ts +1 -0
  96. package/dist/utils/tokenHelpers.d.ts +112 -0
  97. package/dist/utils/workspaceBulkInviteCsv.d.ts +9 -0
  98. package/package.json +37 -23
@@ -0,0 +1,336 @@
1
+ import { MicrofrontendRootProps } from '@burdenoff/fe-libs/shared/types';
2
+ export interface NavItem {
3
+ id: string;
4
+ label: string;
5
+ path: string;
6
+ icon?: React.ReactNode;
7
+ badge?: number | string;
8
+ order?: number;
9
+ group?: string;
10
+ children?: NavItem[];
11
+ }
12
+ export interface FooterItem {
13
+ id: string;
14
+ label: string;
15
+ type?: 'status' | 'action' | 'info';
16
+ order?: number;
17
+ section?: 'left' | 'center' | 'right';
18
+ onClick?: () => void;
19
+ }
20
+ export interface WorkspacesRootProps extends MicrofrontendRootProps {
21
+ /** Organization ID for workspace creation context */
22
+ organizationId?: string;
23
+ registerNavItems?: (items: NavItem | NavItem[]) => () => void;
24
+ registerFooterItems?: (items: FooterItem | FooterItem[]) => () => void;
25
+ onWorkspaceCreate?: (workspace: Workspace) => void;
26
+ onProjectCreate?: (project: Project) => void;
27
+ }
28
+ export type WorkspaceType = 'workspace' | 'user';
29
+ export type WorkspaceStatus = 'ACTIVE' | 'SUSPENDED' | 'ARCHIVED' | 'DELETED';
30
+ export type ProjectStatus = 'ACTIVE' | 'INACTIVE' | 'ARCHIVED';
31
+ export interface ProjectTag {
32
+ id: string;
33
+ tagId: string;
34
+ key: string;
35
+ label: string;
36
+ value?: string | null;
37
+ vocabularyId?: string | null;
38
+ vocabularyKey?: string | null;
39
+ parentTagId?: string | null;
40
+ hierarchyPath?: string | null;
41
+ color?: string | null;
42
+ icon?: string | null;
43
+ description?: string | null;
44
+ metadata?: Record<string, unknown> | null;
45
+ }
46
+ export interface ProjectAssignmentTag {
47
+ id: string;
48
+ key: string;
49
+ label: string;
50
+ value?: string | null;
51
+ vocabularyId?: string | null;
52
+ parentId?: string | null;
53
+ hierarchyPath?: string | null;
54
+ color?: string | null;
55
+ icon?: string | null;
56
+ description?: string | null;
57
+ vocabulary?: {
58
+ key?: string | null;
59
+ } | null;
60
+ }
61
+ export interface ProjectTagAssignment {
62
+ id: string;
63
+ tagId: string;
64
+ entityType: string;
65
+ entityId: string;
66
+ source: string;
67
+ assignedBy?: string | null;
68
+ assignedAt?: string | null;
69
+ validFrom?: string | null;
70
+ validTo?: string | null;
71
+ metadata?: Record<string, unknown> | null;
72
+ tag?: ProjectAssignmentTag | null;
73
+ }
74
+ export interface Workspace {
75
+ id: string;
76
+ name: string;
77
+ type: WorkspaceType;
78
+ status: WorkspaceStatus;
79
+ memberCount?: number;
80
+ projectCount?: number;
81
+ domain?: string;
82
+ contactEmail?: string;
83
+ website?: string;
84
+ address?: string;
85
+ tenantId: string;
86
+ orgId?: string;
87
+ createdBy?: string;
88
+ ownerId: string;
89
+ createdAt: string;
90
+ updatedAt: string;
91
+ deletedAt?: string;
92
+ context?: {
93
+ type?: string;
94
+ metadata?: Record<string, unknown>;
95
+ };
96
+ }
97
+ export interface Project {
98
+ id: string;
99
+ name: string;
100
+ key: string;
101
+ workspaceId: string;
102
+ creatorId: string;
103
+ memberCount?: number;
104
+ status: ProjectStatus;
105
+ config?: Record<string, unknown>;
106
+ tags: ProjectTag[];
107
+ tagAssignments?: ProjectTagAssignment[];
108
+ archived: boolean;
109
+ createdAt: string;
110
+ updatedAt: string;
111
+ deletedAt?: string;
112
+ }
113
+ export interface ProjectMember {
114
+ id: string;
115
+ projectId: string;
116
+ userId: string;
117
+ createdAt: string;
118
+ updatedAt: string;
119
+ deletedAt?: string;
120
+ }
121
+ export interface WorkspaceMember {
122
+ id: string;
123
+ workspaceId: string;
124
+ userId: string;
125
+ createdAt: string;
126
+ updatedAt: string;
127
+ deletedAt?: string;
128
+ context?: {
129
+ type?: string;
130
+ metadata?: Record<string, unknown>;
131
+ };
132
+ }
133
+ export interface WorkspaceInvitation {
134
+ id: string;
135
+ workspaceId?: string;
136
+ workspaceName?: string;
137
+ projectId?: string;
138
+ projectIds?: string[];
139
+ email: string;
140
+ status: InvitationStatus;
141
+ roleIds: string[];
142
+ roleNames?: string[];
143
+ expiresAt?: string;
144
+ invitedById: string;
145
+ invitedUserId?: string;
146
+ createdAt: string;
147
+ updatedAt: string;
148
+ deletedAt?: string;
149
+ context?: {
150
+ type?: string;
151
+ metadata?: Record<string, unknown>;
152
+ };
153
+ }
154
+ export type InvitationStatus = 'PENDING' | 'ACCEPTED' | 'REJECTED' | 'EXPIRED' | 'CANCELLED';
155
+ export type ViewMode = 'grid' | 'list';
156
+ export type SortBy = 'name' | 'createdAt' | 'updatedAt';
157
+ export type SortDirection = 'asc' | 'desc';
158
+ export interface WorkspaceFilters {
159
+ type?: WorkspaceType;
160
+ status?: WorkspaceStatus;
161
+ search?: string;
162
+ tenantId?: string;
163
+ ownerId?: string;
164
+ }
165
+ export interface ProjectFilters {
166
+ status?: ProjectStatus;
167
+ archived?: boolean;
168
+ search?: string;
169
+ workspaceId?: string;
170
+ tagIds?: string[];
171
+ tagKeys?: string[];
172
+ tagHierarchyPaths?: string[];
173
+ matchAllTags?: boolean;
174
+ includeDescendants?: boolean;
175
+ }
176
+ export interface MemberFilters {
177
+ workspaceId?: string;
178
+ search?: string;
179
+ }
180
+ export interface ContextInput {
181
+ type?: string;
182
+ metadata?: Record<string, unknown>;
183
+ }
184
+ /**
185
+ * Input for creating a workspace via global-tenant-svc
186
+ * This creates the workspace in the global layer, which then syncs to wspace layer
187
+ */
188
+ export interface CreateWorkspaceInput {
189
+ /** Tenant ID where the workspace will be created (required) */
190
+ tenantId: string;
191
+ /** Organization ID within the tenant (required) */
192
+ organizationId: string;
193
+ /** Display name of the workspace */
194
+ name: string;
195
+ /** URL-friendly slug (unique within tenant) */
196
+ slug: string;
197
+ /** Workspace type: TEAM or PERSONAL */
198
+ type?: 'TEAM' | 'PERSONAL';
199
+ /** Optional metadata */
200
+ metadata?: Record<string, unknown>;
201
+ }
202
+ /** Tenant entity from global-tenant-svc */
203
+ export interface Tenant {
204
+ id: string;
205
+ name: string;
206
+ slug: string;
207
+ status: string;
208
+ type?: string;
209
+ }
210
+ /** List of tenants response */
211
+ export interface TenantList {
212
+ items: Tenant[];
213
+ total: number;
214
+ hasMore: boolean;
215
+ }
216
+ /** Organization entity from global-tenant-svc */
217
+ export interface Organization {
218
+ id: string;
219
+ name: string;
220
+ slug: string;
221
+ tenantId: string;
222
+ }
223
+ /** List of organizations response */
224
+ export interface OrganizationList {
225
+ items: Organization[];
226
+ total: number;
227
+ hasMore: boolean;
228
+ }
229
+ export interface UpdateWorkspaceInput {
230
+ name?: string;
231
+ status?: WorkspaceStatus;
232
+ domain?: string;
233
+ contactEmail?: string;
234
+ website?: string;
235
+ address?: string;
236
+ ownerId?: string;
237
+ context?: ContextInput;
238
+ }
239
+ export interface CreateProjectInput {
240
+ name: string;
241
+ key?: string;
242
+ config?: Record<string, unknown>;
243
+ tags?: ProjectTag[];
244
+ }
245
+ export interface UpdateProjectInput {
246
+ name?: string;
247
+ key?: string;
248
+ status?: ProjectStatus;
249
+ config?: Record<string, unknown>;
250
+ archived?: boolean;
251
+ tags?: ProjectTag[];
252
+ }
253
+ export interface ReplaceProjectTagsInput {
254
+ entityId: string;
255
+ tagIds: string[];
256
+ }
257
+ export interface AddWorkspaceMemberInput {
258
+ userId: string;
259
+ context?: ContextInput;
260
+ }
261
+ export interface AddProjectMemberInput {
262
+ projectId: string;
263
+ userId: string;
264
+ }
265
+ export interface RemoveProjectMemberInput {
266
+ projectId: string;
267
+ userId: string;
268
+ }
269
+ export interface CreateInvitationInput {
270
+ email: string;
271
+ roleIds?: string[];
272
+ workspaceId?: string;
273
+ projectId?: string;
274
+ projectIds?: string[];
275
+ invitedUserId?: string;
276
+ expiresAt?: string;
277
+ context?: ContextInput;
278
+ }
279
+ export interface UpdateInvitationInput {
280
+ status?: InvitationStatus;
281
+ roleIds?: string[];
282
+ expiresAt?: string;
283
+ context?: ContextInput;
284
+ }
285
+ export interface PaginationInput {
286
+ limit?: number;
287
+ offset?: number;
288
+ cursor?: string;
289
+ }
290
+ export interface WorkspaceList {
291
+ items: Workspace[];
292
+ total: number;
293
+ hasMore: boolean;
294
+ }
295
+ export interface ProjectList {
296
+ items: Project[];
297
+ total: number;
298
+ hasMore: boolean;
299
+ }
300
+ export interface MemberList {
301
+ items: WorkspaceMember[];
302
+ total: number;
303
+ hasMore: boolean;
304
+ }
305
+ export interface ProjectMemberList {
306
+ items: ProjectMember[];
307
+ total: number;
308
+ hasMore: boolean;
309
+ }
310
+ export interface InvitationList {
311
+ items: WorkspaceInvitation[];
312
+ total: number;
313
+ hasMore: boolean;
314
+ }
315
+ export type WorkspaceRole = 'owner' | 'admin' | 'member' | 'guest';
316
+ export interface WorkspaceSettings {
317
+ visibility: 'private' | 'public' | 'unlisted';
318
+ features: WorkspaceFeature[];
319
+ integrations: WorkspaceIntegration[];
320
+ }
321
+ export type WorkspaceFeature = 'projects' | 'files' | 'calendar' | 'tags' | 'conversations' | 'workflow';
322
+ export interface WorkspaceIntegration {
323
+ id: string;
324
+ type: string;
325
+ enabled: boolean;
326
+ config: Record<string, unknown>;
327
+ }
328
+ export interface Activity {
329
+ id: string;
330
+ workspaceId: string;
331
+ userId: string;
332
+ type: ActivityType;
333
+ metadata: Record<string, unknown>;
334
+ createdAt: string;
335
+ }
336
+ export type ActivityType = 'workspace.created' | 'workspace.updated' | 'member.added' | 'member.removed' | 'project.created' | 'file.uploaded';
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Utility functions for formatting dates and strings in the workspace module
3
+ */
4
+ export declare function formatDate(date: string | Date, options?: Intl.DateTimeFormatOptions): string;
5
+ /**
6
+ * Format a date to a relative time string (e.g., "2 days ago")
7
+ * @param date - Date string or Date object
8
+ * @returns Relative time string
9
+ */
10
+ export declare function formatRelativeTime(date: string | Date): string;
11
+ /**
12
+ * Format a date and time to a readable string
13
+ * @param date - Date string or Date object
14
+ * @returns Formatted date and time string
15
+ */
16
+ export declare function formatDateTime(date: string | Date): string;
17
+ /**
18
+ * Truncate a string to a maximum length and add ellipsis
19
+ * @param str - String to truncate
20
+ * @param maxLength - Maximum length before truncation
21
+ * @returns Truncated string
22
+ */
23
+ export declare function truncate(str: string, maxLength: number): string;
24
+ /**
25
+ * Convert a string to title case
26
+ * @param str - String to convert
27
+ * @returns Title cased string
28
+ */
29
+ export declare function toTitleCase(str: string): string;
30
+ /**
31
+ * Format a workspace status to a human-readable string
32
+ * @param status - Workspace status
33
+ * @returns Formatted status string
34
+ */
35
+ export declare function formatWorkspaceStatus(status: string): string;
36
+ /**
37
+ * Format a project status to a human-readable string
38
+ * @param status - Project status
39
+ * @returns Formatted status string
40
+ */
41
+ export declare function formatProjectStatus(status: string): string;
42
+ /**
43
+ * Generate initials from a name
44
+ * @param name - Full name
45
+ * @returns Initials (up to 2 characters)
46
+ */
47
+ export declare function getInitials(name: string): string;
48
+ /**
49
+ * Format a file size in bytes to a human-readable string
50
+ * @param bytes - Size in bytes
51
+ * @returns Formatted size string (e.g., "1.5 MB")
52
+ */
53
+ export declare function formatFileSize(bytes: number): string;
@@ -58,7 +58,7 @@ function d(e) {
58
58
  "GB",
59
59
  "TB"
60
60
  ], r = Math.floor(Math.log(e) / Math.log(t));
61
- return `${parseFloat((e / t ** +r).toFixed(2))} ${n[r]}`;
61
+ return `${parseFloat((e / t ** r).toFixed(2))} ${n[r]}`;
62
62
  }
63
63
  //#endregion
64
64
  export { r as formatDate, a as formatDateTime, d as formatFileSize, l as formatProjectStatus, i as formatRelativeTime, c as formatWorkspaceStatus, u as getInitials, s as toTitleCase, o as truncate };
@@ -0,0 +1,11 @@
1
+ import { I18nContextValue } from '@burdenoff/fe-libs/shared/providers/shell';
2
+ type TranslationParams = Record<string, string | number>;
3
+ /**
4
+ * Translate `key` and fall back to `fallback` when the i18n provider
5
+ * returns the key itself (the convention shell's `useI18n().t(...)` uses
6
+ * to indicate a missing translation). Optional `params` are forwarded to
7
+ * the translator and also used for `{name}` style interpolation in the
8
+ * fallback string.
9
+ */
10
+ export declare function tWithFallback(t: I18nContextValue['t'], key: string, fallback: string, params?: TranslationParams): string;
11
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './formatters';
2
+ export * from './tokenHelpers';
@@ -0,0 +1,6 @@
1
+ import { WorkspaceInvitation } from '../types';
2
+ type InvitationLike = Pick<WorkspaceInvitation, 'workspaceName' | 'workspaceId' | 'roleNames' | 'roleIds' | 'projectId' | 'projectIds' | 'context'>;
3
+ export declare function getWorkspaceDisplayName(invitation: InvitationLike): string;
4
+ export declare function getRoleDisplayNames(invitation: InvitationLike): string[];
5
+ export declare function getProjectDisplayNames(invitation: InvitationLike): string[];
6
+ export {};
@@ -0,0 +1,2 @@
1
+ export { getPlatform, isNative, isIOS, isAndroid, isWeb, nativeImpact, nativeNotify, nativeToast, nativeConfirm, nativeCopyText, nativeShare, nativeOpenUrl, useNativePlatform, useSafeArea, useNativeKeyboard, useAppState, useDeviceInfo, useHaptics, useStatusBar, } from '@burdenoff/fe-libs/shared/native';
2
+ export type { BurdenoffNativePlatform, BurdenoffNativeBridge, SafeAreaInsets, DeviceInfo, HapticImpactStyle, HapticNotificationType, ToastDuration, ConfirmOptions, ShareOptions, AppState, StatusBarTheme, } from '@burdenoff/fe-libs/shared/native';
@@ -0,0 +1,6 @@
1
+ import { TagItem } from '@burdenoff/fe-libs/tag';
2
+ import { Project, ProjectTag } from '../types';
3
+ export declare function normalizeProjectTags(value: unknown): ProjectTag[];
4
+ export declare function normalizeProjectTagAssignments(value: unknown): ProjectTag[];
5
+ export declare function getProjectDisplayTags(project: Pick<Project, 'tags' | 'tagAssignments'> | null | undefined): ProjectTag[];
6
+ export declare function toProjectTag(tag: TagItem): ProjectTag;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Slug utility functions
3
+ *
4
+ * Shared utilities for generating URL-friendly slugs
5
+ */
6
+ /**
7
+ * Generate a URL-friendly slug from a name
8
+ *
9
+ * @param name - The name to convert to a slug
10
+ * @returns A lowercase, hyphenated string suitable for URLs
11
+ */
12
+ export declare function generateSlug(name: string): string;
@@ -0,0 +1 @@
1
+ export declare function safeTelemetryError(err: unknown): string;
@@ -0,0 +1,112 @@
1
+ import { WorkspaceStatus, ProjectStatus, WorkspaceRole } from '../types';
2
+ /**
3
+ * Get semantic token classes for workspace status badges
4
+ *
5
+ * Uses semantic tokens that automatically adapt to theme (light/dark)
6
+ * and brand (workspaces, fluidgrids, etc.)
7
+ *
8
+ * @param status - The workspace status
9
+ * @returns Tailwind class string with semantic token classes
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Badge className={getWorkspaceStatusClasses('ACTIVE')}>
14
+ * ACTIVE
15
+ * </Badge>
16
+ * ```
17
+ */
18
+ export declare function getWorkspaceStatusClasses(status: WorkspaceStatus): string;
19
+ /**
20
+ * Get semantic token classes for project status badges
21
+ *
22
+ * @param status - The project status
23
+ * @returns Tailwind class string with semantic token classes
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * <Badge className={getProjectStatusClasses('ACTIVE')}>
28
+ * ACTIVE
29
+ * </Badge>
30
+ * ```
31
+ */
32
+ export declare function getProjectStatusClasses(status: ProjectStatus): string;
33
+ /**
34
+ * Get semantic token classes for member role badges
35
+ *
36
+ * @param role - The workspace member role
37
+ * @returns Tailwind class string with semantic token classes
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * <Badge className={getMemberRoleClasses('owner')}>
42
+ * Owner
43
+ * </Badge>
44
+ * ```
45
+ */
46
+ export declare function getMemberRoleClasses(role: WorkspaceRole): string;
47
+ /**
48
+ * Get semantic icon color class for workspace status
49
+ *
50
+ * Used for status indicator icons that need to match the status color
51
+ *
52
+ * @param status - The workspace status
53
+ * @returns Tailwind class string for text color
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * <CheckCircle className={getWorkspaceStatusIconClass('ACTIVE')} size={16} />
58
+ * ```
59
+ */
60
+ export declare function getWorkspaceStatusIconClass(status: WorkspaceStatus): string;
61
+ /**
62
+ * Get semantic icon color class for project status
63
+ *
64
+ * @param status - The project status
65
+ * @returns Tailwind class string for text color
66
+ *
67
+ * @example
68
+ * ```tsx
69
+ * <Circle className={getProjectStatusIconClass(project.status)} size={12} />
70
+ * ```
71
+ */
72
+ export declare function getProjectStatusIconClass(status: ProjectStatus): string;
73
+ /**
74
+ * Get semantic background class for workspace status (for larger areas)
75
+ *
76
+ * @param status - The workspace status
77
+ * @returns Tailwind class string for background color
78
+ *
79
+ * @example
80
+ * ```tsx
81
+ * <div className={getWorkspaceStatusBgClass('SUSPENDED')}>
82
+ * Workspace is suspended
83
+ * </div>
84
+ * ```
85
+ */
86
+ export declare function getWorkspaceStatusBgClass(status: WorkspaceStatus): string;
87
+ /**
88
+ * Get human-readable label for workspace status
89
+ *
90
+ * @param status - The workspace status
91
+ * @returns Formatted status label
92
+ *
93
+ * @example
94
+ * ```tsx
95
+ * getWorkspaceStatusLabel('ACTIVE') // "Active"
96
+ * ```
97
+ */
98
+ export declare function getWorkspaceStatusLabel(status: WorkspaceStatus): string;
99
+ /**
100
+ * Get human-readable label for project status
101
+ *
102
+ * @param status - The project status
103
+ * @returns Formatted status label
104
+ */
105
+ export declare function getProjectStatusLabel(status: ProjectStatus): string;
106
+ /**
107
+ * Get human-readable label for member role
108
+ *
109
+ * @param role - The workspace member role
110
+ * @returns Formatted role label
111
+ */
112
+ export declare function getMemberRoleLabel(role: WorkspaceRole): string;
@@ -0,0 +1,9 @@
1
+ export interface WorkspaceBulkInviteRow {
2
+ rowNumber: number;
3
+ email: string;
4
+ errors: string[];
5
+ }
6
+ export declare function parseWorkspaceBulkInviteCsv(text: string): WorkspaceBulkInviteRow[];
7
+ export declare const WORKSPACE_BULK_INVITE_TEMPLATE_FILENAME = "workspace-invite-template.csv";
8
+ export declare const WORKSPACE_BULK_INVITE_TEMPLATE_CONTENT: string;
9
+ export declare function downloadWorkspaceBulkInviteTemplate(): void;