@burdenoff/microfe-workspaces 2026.510.50

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 (260) hide show
  1. package/README.md +88 -0
  2. package/dist/WorkspacesRoot.d.ts +35 -0
  3. package/dist/WorkspacesRoot.d.ts.map +1 -0
  4. package/dist/WorkspacesRoot.js +71 -0
  5. package/dist/WorkspacesRoot.js.map +1 -0
  6. package/dist/WorkspacesRoutes.d.ts +10 -0
  7. package/dist/WorkspacesRoutes.d.ts.map +1 -0
  8. package/dist/WorkspacesRoutes.js +111 -0
  9. package/dist/WorkspacesRoutes.js.map +1 -0
  10. package/dist/components/CreateProjectDialog.d.ts +6 -0
  11. package/dist/components/CreateProjectDialog.d.ts.map +1 -0
  12. package/dist/components/CreateProjectDialog.js +115 -0
  13. package/dist/components/CreateProjectDialog.js.map +1 -0
  14. package/dist/components/CreateWorkspaceDialog.d.ts +2 -0
  15. package/dist/components/CreateWorkspaceDialog.d.ts.map +1 -0
  16. package/dist/components/CreateWorkspaceDialog.js +172 -0
  17. package/dist/components/CreateWorkspaceDialog.js.map +1 -0
  18. package/dist/components/InviteMemberDialog.d.ts +7 -0
  19. package/dist/components/InviteMemberDialog.d.ts.map +1 -0
  20. package/dist/components/InviteMemberDialog.js +148 -0
  21. package/dist/components/InviteMemberDialog.js.map +1 -0
  22. package/dist/components/MemberListItem.d.ts +11 -0
  23. package/dist/components/MemberListItem.d.ts.map +1 -0
  24. package/dist/components/MemberListItem.js +118 -0
  25. package/dist/components/MemberListItem.js.map +1 -0
  26. package/dist/components/ProjectCard.d.ts +13 -0
  27. package/dist/components/ProjectCard.d.ts.map +1 -0
  28. package/dist/components/ProjectCard.js +150 -0
  29. package/dist/components/ProjectCard.js.map +1 -0
  30. package/dist/components/WorkspaceCard.d.ts +8 -0
  31. package/dist/components/WorkspaceCard.d.ts.map +1 -0
  32. package/dist/components/WorkspaceCard.js +79 -0
  33. package/dist/components/WorkspaceCard.js.map +1 -0
  34. package/dist/components/WorkspacesErrorBoundary.d.ts +27 -0
  35. package/dist/components/WorkspacesErrorBoundary.d.ts.map +1 -0
  36. package/dist/components/WorkspacesErrorBoundary.js +136 -0
  37. package/dist/components/WorkspacesErrorBoundary.js.map +1 -0
  38. package/dist/components/index.d.ts +8 -0
  39. package/dist/components/index.d.ts.map +1 -0
  40. package/dist/components/index.js +7 -0
  41. package/dist/constants/permissions.d.ts +33 -0
  42. package/dist/constants/permissions.d.ts.map +1 -0
  43. package/dist/constants/permissions.js +31 -0
  44. package/dist/constants/permissions.js.map +1 -0
  45. package/dist/generated/global-operations.d.ts +279 -0
  46. package/dist/generated/global-operations.d.ts.map +1 -0
  47. package/dist/generated/global-operations.js +103 -0
  48. package/dist/generated/global-operations.js.map +1 -0
  49. package/dist/generated/global-types.d.ts +20714 -0
  50. package/dist/generated/global-types.d.ts.map +1 -0
  51. package/dist/generated/wspace-operations.d.ts +2209 -0
  52. package/dist/generated/wspace-operations.d.ts.map +1 -0
  53. package/dist/generated/wspace-operations.js +576 -0
  54. package/dist/generated/wspace-operations.js.map +1 -0
  55. package/dist/generated/wspace-types.d.ts +54990 -0
  56. package/dist/generated/wspace-types.d.ts.map +1 -0
  57. package/dist/hooks/index.d.ts +8 -0
  58. package/dist/hooks/index.d.ts.map +1 -0
  59. package/dist/hooks/index.js +7 -0
  60. package/dist/hooks/useMemberMutations.d.ts +61 -0
  61. package/dist/hooks/useMemberMutations.d.ts.map +1 -0
  62. package/dist/hooks/useMemberMutations.js +263 -0
  63. package/dist/hooks/useMemberMutations.js.map +1 -0
  64. package/dist/hooks/useProjectMutations.d.ts +26 -0
  65. package/dist/hooks/useProjectMutations.d.ts.map +1 -0
  66. package/dist/hooks/useProjectMutations.js +127 -0
  67. package/dist/hooks/useProjectMutations.js.map +1 -0
  68. package/dist/hooks/useProjects.d.ts +16 -0
  69. package/dist/hooks/useProjects.d.ts.map +1 -0
  70. package/dist/hooks/useProjects.js +103 -0
  71. package/dist/hooks/useProjects.js.map +1 -0
  72. package/dist/hooks/useScopedNavigation.d.ts +4 -0
  73. package/dist/hooks/useScopedNavigation.d.ts.map +1 -0
  74. package/dist/hooks/useScopedNavigation.js +11 -0
  75. package/dist/hooks/useScopedNavigation.js.map +1 -0
  76. package/dist/hooks/useTenants.d.ts +13 -0
  77. package/dist/hooks/useTenants.d.ts.map +1 -0
  78. package/dist/hooks/useTenants.js +47 -0
  79. package/dist/hooks/useTenants.js.map +1 -0
  80. package/dist/hooks/useWorkspaceActivity.d.ts +12 -0
  81. package/dist/hooks/useWorkspaceActivity.d.ts.map +1 -0
  82. package/dist/hooks/useWorkspaceActivity.js +31 -0
  83. package/dist/hooks/useWorkspaceActivity.js.map +1 -0
  84. package/dist/hooks/useWorkspaceMembers.d.ts +24 -0
  85. package/dist/hooks/useWorkspaceMembers.d.ts.map +1 -0
  86. package/dist/hooks/useWorkspaceMembers.js +130 -0
  87. package/dist/hooks/useWorkspaceMembers.js.map +1 -0
  88. package/dist/hooks/useWorkspaceMutations.d.ts +36 -0
  89. package/dist/hooks/useWorkspaceMutations.d.ts.map +1 -0
  90. package/dist/hooks/useWorkspaceMutations.js +119 -0
  91. package/dist/hooks/useWorkspaceMutations.js.map +1 -0
  92. package/dist/hooks/useWorkspacePermissions.d.ts +29 -0
  93. package/dist/hooks/useWorkspacePermissions.d.ts.map +1 -0
  94. package/dist/hooks/useWorkspacePermissions.js +33 -0
  95. package/dist/hooks/useWorkspacePermissions.js.map +1 -0
  96. package/dist/hooks/useWorkspaceRoles.d.ts +8 -0
  97. package/dist/hooks/useWorkspaceRoles.d.ts.map +1 -0
  98. package/dist/hooks/useWorkspaceRoles.js +31 -0
  99. package/dist/hooks/useWorkspaceRoles.js.map +1 -0
  100. package/dist/hooks/useWorkspaces.d.ts +21 -0
  101. package/dist/hooks/useWorkspaces.d.ts.map +1 -0
  102. package/dist/hooks/useWorkspaces.js +75 -0
  103. package/dist/hooks/useWorkspaces.js.map +1 -0
  104. package/dist/hooks/useWorkspacesEventEmitter.d.ts +14 -0
  105. package/dist/hooks/useWorkspacesEventEmitter.d.ts.map +1 -0
  106. package/dist/hooks/useWorkspacesEventEmitter.js +14 -0
  107. package/dist/hooks/useWorkspacesEventEmitter.js.map +1 -0
  108. package/dist/index.d.ts +33 -0
  109. package/dist/index.d.ts.map +1 -0
  110. package/dist/index.js +24 -0
  111. package/dist/pages/ActivityListPage.d.ts +2 -0
  112. package/dist/pages/ActivityListPage.d.ts.map +1 -0
  113. package/dist/pages/ActivityListPage.js +119 -0
  114. package/dist/pages/ActivityListPage.js.map +1 -0
  115. package/dist/pages/CreateWorkspacePage.d.ts +2 -0
  116. package/dist/pages/CreateWorkspacePage.d.ts.map +1 -0
  117. package/dist/pages/CreateWorkspacePage.js +264 -0
  118. package/dist/pages/CreateWorkspacePage.js.map +1 -0
  119. package/dist/pages/InviteAcceptancePage.d.ts +6 -0
  120. package/dist/pages/InviteAcceptancePage.d.ts.map +1 -0
  121. package/dist/pages/InviteAcceptancePage.js +495 -0
  122. package/dist/pages/InviteAcceptancePage.js.map +1 -0
  123. package/dist/pages/MembersListPage.d.ts +2 -0
  124. package/dist/pages/MembersListPage.d.ts.map +1 -0
  125. package/dist/pages/MembersListPage.js +420 -0
  126. package/dist/pages/MembersListPage.js.map +1 -0
  127. package/dist/pages/ProjectDetailPage.d.ts +2 -0
  128. package/dist/pages/ProjectDetailPage.d.ts.map +1 -0
  129. package/dist/pages/ProjectDetailPage.js +361 -0
  130. package/dist/pages/ProjectDetailPage.js.map +1 -0
  131. package/dist/pages/ProjectsListPage.d.ts +2 -0
  132. package/dist/pages/ProjectsListPage.d.ts.map +1 -0
  133. package/dist/pages/ProjectsListPage.js +398 -0
  134. package/dist/pages/ProjectsListPage.js.map +1 -0
  135. package/dist/pages/WorkspaceDetailPage.d.ts +2 -0
  136. package/dist/pages/WorkspaceDetailPage.d.ts.map +1 -0
  137. package/dist/pages/WorkspaceDetailPage.js +230 -0
  138. package/dist/pages/WorkspaceDetailPage.js.map +1 -0
  139. package/dist/pages/WorkspaceSettingsPage.d.ts +2 -0
  140. package/dist/pages/WorkspaceSettingsPage.d.ts.map +1 -0
  141. package/dist/pages/WorkspaceSettingsPage.js +157 -0
  142. package/dist/pages/WorkspaceSettingsPage.js.map +1 -0
  143. package/dist/pages/WorkspacesListPage.d.ts +2 -0
  144. package/dist/pages/WorkspacesListPage.d.ts.map +1 -0
  145. package/dist/pages/WorkspacesListPage.js +186 -0
  146. package/dist/pages/WorkspacesListPage.js.map +1 -0
  147. package/dist/pages/dashboard/DashboardCustomizer.d.ts +12 -0
  148. package/dist/pages/dashboard/DashboardCustomizer.d.ts.map +1 -0
  149. package/dist/pages/dashboard/DashboardCustomizer.js +136 -0
  150. package/dist/pages/dashboard/DashboardCustomizer.js.map +1 -0
  151. package/dist/pages/dashboard/DashboardGrid.d.ts +8 -0
  152. package/dist/pages/dashboard/DashboardGrid.d.ts.map +1 -0
  153. package/dist/pages/dashboard/DashboardGrid.js +58 -0
  154. package/dist/pages/dashboard/DashboardGrid.js.map +1 -0
  155. package/dist/pages/dashboard/DashboardPage.d.ts +14 -0
  156. package/dist/pages/dashboard/DashboardPage.d.ts.map +1 -0
  157. package/dist/pages/dashboard/DashboardPage.js +136 -0
  158. package/dist/pages/dashboard/DashboardPage.js.map +1 -0
  159. package/dist/pages/dashboard/WidgetWrapper.d.ts +17 -0
  160. package/dist/pages/dashboard/WidgetWrapper.d.ts.map +1 -0
  161. package/dist/pages/dashboard/WidgetWrapper.js +72 -0
  162. package/dist/pages/dashboard/WidgetWrapper.js.map +1 -0
  163. package/dist/pages/dashboard/config.d.ts +9 -0
  164. package/dist/pages/dashboard/config.d.ts.map +1 -0
  165. package/dist/pages/dashboard/config.js +214 -0
  166. package/dist/pages/dashboard/config.js.map +1 -0
  167. package/dist/pages/dashboard/hooks/useDashboardData.d.ts +9 -0
  168. package/dist/pages/dashboard/hooks/useDashboardData.d.ts.map +1 -0
  169. package/dist/pages/dashboard/hooks/useDashboardData.js +118 -0
  170. package/dist/pages/dashboard/hooks/useDashboardData.js.map +1 -0
  171. package/dist/pages/dashboard/hooks/useDashboardPreferences.d.ts +4 -0
  172. package/dist/pages/dashboard/hooks/useDashboardPreferences.d.ts.map +1 -0
  173. package/dist/pages/dashboard/hooks/useDashboardPreferences.js +32 -0
  174. package/dist/pages/dashboard/hooks/useDashboardPreferences.js.map +1 -0
  175. package/dist/pages/dashboard/types.d.ts +145 -0
  176. package/dist/pages/dashboard/types.d.ts.map +1 -0
  177. package/dist/pages/dashboard/widgets/GroupsWidget.d.ts +4 -0
  178. package/dist/pages/dashboard/widgets/GroupsWidget.d.ts.map +1 -0
  179. package/dist/pages/dashboard/widgets/GroupsWidget.js +59 -0
  180. package/dist/pages/dashboard/widgets/GroupsWidget.js.map +1 -0
  181. package/dist/pages/dashboard/widgets/MembersWidget.d.ts +4 -0
  182. package/dist/pages/dashboard/widgets/MembersWidget.d.ts.map +1 -0
  183. package/dist/pages/dashboard/widgets/MembersWidget.js +65 -0
  184. package/dist/pages/dashboard/widgets/MembersWidget.js.map +1 -0
  185. package/dist/pages/dashboard/widgets/ProjectsWidget.d.ts +4 -0
  186. package/dist/pages/dashboard/widgets/ProjectsWidget.d.ts.map +1 -0
  187. package/dist/pages/dashboard/widgets/ProjectsWidget.js +91 -0
  188. package/dist/pages/dashboard/widgets/ProjectsWidget.js.map +1 -0
  189. package/dist/pages/dashboard/widgets/QuickActionsWidget.d.ts +4 -0
  190. package/dist/pages/dashboard/widgets/QuickActionsWidget.d.ts.map +1 -0
  191. package/dist/pages/dashboard/widgets/QuickActionsWidget.js +80 -0
  192. package/dist/pages/dashboard/widgets/QuickActionsWidget.js.map +1 -0
  193. package/dist/pages/dashboard/widgets/RecentActivityWidget.d.ts +4 -0
  194. package/dist/pages/dashboard/widgets/RecentActivityWidget.d.ts.map +1 -0
  195. package/dist/pages/dashboard/widgets/RecentActivityWidget.js +81 -0
  196. package/dist/pages/dashboard/widgets/RecentActivityWidget.js.map +1 -0
  197. package/dist/pages/dashboard/widgets/StorageWidget.d.ts +4 -0
  198. package/dist/pages/dashboard/widgets/StorageWidget.d.ts.map +1 -0
  199. package/dist/pages/dashboard/widgets/StorageWidget.js +69 -0
  200. package/dist/pages/dashboard/widgets/StorageWidget.js.map +1 -0
  201. package/dist/pages/dashboard/widgets/SystemHealthWidget.d.ts +4 -0
  202. package/dist/pages/dashboard/widgets/SystemHealthWidget.d.ts.map +1 -0
  203. package/dist/pages/dashboard/widgets/SystemHealthWidget.js +59 -0
  204. package/dist/pages/dashboard/widgets/SystemHealthWidget.js.map +1 -0
  205. package/dist/pages/dashboard/widgets/TagCloudWidget.d.ts +4 -0
  206. package/dist/pages/dashboard/widgets/TagCloudWidget.d.ts.map +1 -0
  207. package/dist/pages/dashboard/widgets/TagCloudWidget.js +61 -0
  208. package/dist/pages/dashboard/widgets/TagCloudWidget.js.map +1 -0
  209. package/dist/pages/dashboard/widgets/TipsWidget.d.ts +4 -0
  210. package/dist/pages/dashboard/widgets/TipsWidget.d.ts.map +1 -0
  211. package/dist/pages/dashboard/widgets/TipsWidget.js +67 -0
  212. package/dist/pages/dashboard/widgets/TipsWidget.js.map +1 -0
  213. package/dist/pages/dashboard/widgets/UpcomingEventsWidget.d.ts +4 -0
  214. package/dist/pages/dashboard/widgets/UpcomingEventsWidget.d.ts.map +1 -0
  215. package/dist/pages/dashboard/widgets/UpcomingEventsWidget.js +83 -0
  216. package/dist/pages/dashboard/widgets/UpcomingEventsWidget.js.map +1 -0
  217. package/dist/pages/dashboard/widgets/WelcomeWidget.d.ts +4 -0
  218. package/dist/pages/dashboard/widgets/WelcomeWidget.d.ts.map +1 -0
  219. package/dist/pages/dashboard/widgets/WelcomeWidget.js +71 -0
  220. package/dist/pages/dashboard/widgets/WelcomeWidget.js.map +1 -0
  221. package/dist/pages/dashboard/widgets/WorkflowStatsWidget.d.ts +4 -0
  222. package/dist/pages/dashboard/widgets/WorkflowStatsWidget.d.ts.map +1 -0
  223. package/dist/pages/dashboard/widgets/WorkflowStatsWidget.js +97 -0
  224. package/dist/pages/dashboard/widgets/WorkflowStatsWidget.js.map +1 -0
  225. package/dist/pages/dashboard/widgets/WorkspacesWidget.d.ts +4 -0
  226. package/dist/pages/dashboard/widgets/WorkspacesWidget.d.ts.map +1 -0
  227. package/dist/pages/dashboard/widgets/WorkspacesWidget.js +67 -0
  228. package/dist/pages/dashboard/widgets/WorkspacesWidget.js.map +1 -0
  229. package/dist/providers/WorkspacesProvider.d.ts +13 -0
  230. package/dist/providers/WorkspacesProvider.d.ts.map +1 -0
  231. package/dist/providers/WorkspacesProvider.js +24 -0
  232. package/dist/providers/WorkspacesProvider.js.map +1 -0
  233. package/dist/store/workspacesStore.d.ts +82 -0
  234. package/dist/store/workspacesStore.d.ts.map +1 -0
  235. package/dist/store/workspacesStore.js +92 -0
  236. package/dist/store/workspacesStore.js.map +1 -0
  237. package/dist/types/index.d.ts +280 -0
  238. package/dist/types/index.d.ts.map +1 -0
  239. package/dist/utils/formatters.d.ts +60 -0
  240. package/dist/utils/formatters.d.ts.map +1 -0
  241. package/dist/utils/formatters.js +61 -0
  242. package/dist/utils/formatters.js.map +1 -0
  243. package/dist/utils/index.d.ts +3 -0
  244. package/dist/utils/index.d.ts.map +1 -0
  245. package/dist/utils/nativeBridge.d.ts +3 -0
  246. package/dist/utils/nativeBridge.d.ts.map +1 -0
  247. package/dist/utils/nativeBridge.js +2 -0
  248. package/dist/utils/projectTags.d.ts +6 -0
  249. package/dist/utils/projectTags.d.ts.map +1 -0
  250. package/dist/utils/projectTags.js +49 -0
  251. package/dist/utils/projectTags.js.map +1 -0
  252. package/dist/utils/slug.d.ts +13 -0
  253. package/dist/utils/slug.d.ts.map +1 -0
  254. package/dist/utils/slug.js +8 -0
  255. package/dist/utils/slug.js.map +1 -0
  256. package/dist/utils/tokenHelpers.d.ts +114 -0
  257. package/dist/utils/tokenHelpers.d.ts.map +1 -0
  258. package/dist/utils/tokenHelpers.js +80 -0
  259. package/dist/utils/tokenHelpers.js.map +1 -0
  260. package/package.json +113 -0
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Workspace MFE - Permission Hook
3
+ *
4
+ * Wraps usePermissions() with typed permission flags for all workspace resources.
5
+ */
6
+ export declare function useWorkspacePermissions(): {
7
+ isLoading: boolean;
8
+ canListWorkspaces: boolean;
9
+ canViewWorkspace: boolean;
10
+ canCreateWorkspace: boolean;
11
+ canUpdateWorkspace: boolean;
12
+ canDeleteWorkspace: boolean;
13
+ canArchiveWorkspace: boolean;
14
+ canListMembers: boolean;
15
+ canViewMember: boolean;
16
+ canInviteMember: boolean;
17
+ canUpdateMember: boolean;
18
+ canRemoveMember: boolean;
19
+ canListProjects: boolean;
20
+ canViewProject: boolean;
21
+ canCreateProject: boolean;
22
+ canUpdateProject: boolean;
23
+ canDeleteProject: boolean;
24
+ canArchiveProject: boolean;
25
+ canViewSettings: boolean;
26
+ canUpdateSettings: boolean;
27
+ canViewActivity: boolean;
28
+ };
29
+ //# sourceMappingURL=useWorkspacePermissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspacePermissions.d.ts","sourceRoot":"","sources":["../../src/hooks/useWorkspacePermissions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,wBAAgB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;EAoCtC"}
@@ -0,0 +1,33 @@
1
+ import { WORKSPACE_PERMISSIONS as e } from "../constants/permissions.js";
2
+ import { usePermissions as t } from "@burdenoff/fe-libs/shared/providers/shell";
3
+ //#region src/hooks/useWorkspacePermissions.ts
4
+ function n() {
5
+ let { hasPermission: n, isLoading: r } = t();
6
+ return {
7
+ isLoading: r,
8
+ canListWorkspaces: n(e.WORKSPACE_LIST),
9
+ canViewWorkspace: n(e.WORKSPACE_READ),
10
+ canCreateWorkspace: n(e.WORKSPACE_CREATE),
11
+ canUpdateWorkspace: n(e.WORKSPACE_UPDATE),
12
+ canDeleteWorkspace: n(e.WORKSPACE_DELETE),
13
+ canArchiveWorkspace: n(e.WORKSPACE_ARCHIVE),
14
+ canListMembers: n(e.MEMBER_LIST),
15
+ canViewMember: n(e.MEMBER_READ),
16
+ canInviteMember: n(e.MEMBER_CREATE),
17
+ canUpdateMember: n(e.MEMBER_UPDATE),
18
+ canRemoveMember: n(e.MEMBER_DELETE),
19
+ canListProjects: n(e.PROJECT_LIST),
20
+ canViewProject: n(e.PROJECT_READ),
21
+ canCreateProject: n(e.PROJECT_CREATE),
22
+ canUpdateProject: n(e.PROJECT_UPDATE),
23
+ canDeleteProject: n(e.PROJECT_DELETE),
24
+ canArchiveProject: n(e.PROJECT_ARCHIVE),
25
+ canViewSettings: n(e.SETTINGS_READ),
26
+ canUpdateSettings: n(e.SETTINGS_WRITE),
27
+ canViewActivity: n(e.ACTIVITY_READ)
28
+ };
29
+ }
30
+ //#endregion
31
+ export { n as useWorkspacePermissions };
32
+
33
+ //# sourceMappingURL=useWorkspacePermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspacePermissions.js","names":[],"sources":["../../src/hooks/useWorkspacePermissions.ts"],"sourcesContent":["/**\n * Workspace MFE - Permission Hook\n *\n * Wraps usePermissions() with typed permission flags for all workspace resources.\n */\n\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { WORKSPACE_PERMISSIONS } from '../constants/permissions';\n\nexport function useWorkspacePermissions() {\n const { hasPermission, isLoading } = usePermissions();\n\n return {\n isLoading,\n\n // Workspace\n canListWorkspaces: hasPermission(WORKSPACE_PERMISSIONS.WORKSPACE_LIST),\n canViewWorkspace: hasPermission(WORKSPACE_PERMISSIONS.WORKSPACE_READ),\n canCreateWorkspace: hasPermission(WORKSPACE_PERMISSIONS.WORKSPACE_CREATE),\n canUpdateWorkspace: hasPermission(WORKSPACE_PERMISSIONS.WORKSPACE_UPDATE),\n canDeleteWorkspace: hasPermission(WORKSPACE_PERMISSIONS.WORKSPACE_DELETE),\n canArchiveWorkspace: hasPermission(WORKSPACE_PERMISSIONS.WORKSPACE_ARCHIVE),\n\n // Members\n canListMembers: hasPermission(WORKSPACE_PERMISSIONS.MEMBER_LIST),\n canViewMember: hasPermission(WORKSPACE_PERMISSIONS.MEMBER_READ),\n canInviteMember: hasPermission(WORKSPACE_PERMISSIONS.MEMBER_CREATE),\n canUpdateMember: hasPermission(WORKSPACE_PERMISSIONS.MEMBER_UPDATE),\n canRemoveMember: hasPermission(WORKSPACE_PERMISSIONS.MEMBER_DELETE),\n\n // Projects\n canListProjects: hasPermission(WORKSPACE_PERMISSIONS.PROJECT_LIST),\n canViewProject: hasPermission(WORKSPACE_PERMISSIONS.PROJECT_READ),\n canCreateProject: hasPermission(WORKSPACE_PERMISSIONS.PROJECT_CREATE),\n canUpdateProject: hasPermission(WORKSPACE_PERMISSIONS.PROJECT_UPDATE),\n canDeleteProject: hasPermission(WORKSPACE_PERMISSIONS.PROJECT_DELETE),\n canArchiveProject: hasPermission(WORKSPACE_PERMISSIONS.PROJECT_ARCHIVE),\n\n // Settings\n canViewSettings: hasPermission(WORKSPACE_PERMISSIONS.SETTINGS_READ),\n canUpdateSettings: hasPermission(WORKSPACE_PERMISSIONS.SETTINGS_WRITE),\n\n // Activity\n canViewActivity: hasPermission(WORKSPACE_PERMISSIONS.ACTIVITY_READ),\n };\n}\n"],"mappings":";;;AASA,SAAgB,IAA0B;CACxC,IAAM,EAAE,kBAAe,iBAAc,GAAgB;AAErD,QAAO;EACL;EAGA,mBAAmB,EAAc,EAAsB,eAAe;EACtE,kBAAkB,EAAc,EAAsB,eAAe;EACrE,oBAAoB,EAAc,EAAsB,iBAAiB;EACzE,oBAAoB,EAAc,EAAsB,iBAAiB;EACzE,oBAAoB,EAAc,EAAsB,iBAAiB;EACzE,qBAAqB,EAAc,EAAsB,kBAAkB;EAG3E,gBAAgB,EAAc,EAAsB,YAAY;EAChE,eAAe,EAAc,EAAsB,YAAY;EAC/D,iBAAiB,EAAc,EAAsB,cAAc;EACnE,iBAAiB,EAAc,EAAsB,cAAc;EACnE,iBAAiB,EAAc,EAAsB,cAAc;EAGnE,iBAAiB,EAAc,EAAsB,aAAa;EAClE,gBAAgB,EAAc,EAAsB,aAAa;EACjE,kBAAkB,EAAc,EAAsB,eAAe;EACrE,kBAAkB,EAAc,EAAsB,eAAe;EACrE,kBAAkB,EAAc,EAAsB,eAAe;EACrE,mBAAmB,EAAc,EAAsB,gBAAgB;EAGvE,iBAAiB,EAAc,EAAsB,cAAc;EACnE,mBAAmB,EAAc,EAAsB,eAAe;EAGtE,iBAAiB,EAAc,EAAsB,cAAc;EACpE"}
@@ -0,0 +1,8 @@
1
+ export interface WorkspaceRoleOption {
2
+ id: string;
3
+ name: string;
4
+ description?: string | null;
5
+ isSystem: boolean;
6
+ }
7
+ export declare const useWorkspaceRoles: (workspaceIdOverride?: string) => import('@tanstack/react-query').UseQueryResult<WorkspaceRoleOption[], Error>;
8
+ //# sourceMappingURL=useWorkspaceRoles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspaceRoles.d.ts","sourceRoot":"","sources":["../../src/hooks/useWorkspaceRoles.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAaD,eAAO,MAAM,iBAAiB,GAAI,sBAAsB,MAAM,iFA4B7D,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { useWorkspacesContext as e } from "../providers/WorkspacesProvider.js";
2
+ import { useQuery as t } from "@tanstack/react-query";
3
+ import { graphqlFetch as n } from "@burdenoff/fe-libs/shared/graphql";
4
+ //#region src/hooks/useWorkspaceRoles.ts
5
+ var r = "\n query GetWorkspaceRoles($scopeId: String!, $pagination: PaginationInput) {\n roles(scopeId: $scopeId, pagination: $pagination) {\n id\n name\n description\n isSystem\n }\n }\n", i = (i) => {
6
+ let { authToken: a, workspaceId: o } = e(), s = i || o;
7
+ return t({
8
+ queryKey: ["workspaceRoles", s],
9
+ queryFn: async () => {
10
+ let e = await n({
11
+ gateway: "workspace",
12
+ authToken: a || void 0,
13
+ query: r,
14
+ variables: {
15
+ scopeId: s,
16
+ pagination: { limit: 50 }
17
+ },
18
+ workspaceId: s || void 0,
19
+ workspaceToken: !0
20
+ });
21
+ if (e.errors?.length) throw Error(e.errors[0]?.message || "Failed to load workspace roles");
22
+ return e.data?.roles ?? [];
23
+ },
24
+ enabled: !!s,
25
+ staleTime: 300 * 1e3
26
+ });
27
+ };
28
+ //#endregion
29
+ export { i as useWorkspaceRoles };
30
+
31
+ //# sourceMappingURL=useWorkspaceRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspaceRoles.js","names":[],"sources":["../../src/hooks/useWorkspaceRoles.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query';\nimport { graphqlFetch } from '@burdenoff/fe-libs/shared/graphql';\nimport { useWorkspacesContext } from '../providers/WorkspacesProvider';\n\nexport interface WorkspaceRoleOption {\n id: string;\n name: string;\n description?: string | null;\n isSystem: boolean;\n}\n\nconst GET_WORKSPACE_ROLES = `\n query GetWorkspaceRoles($scopeId: String!, $pagination: PaginationInput) {\n roles(scopeId: $scopeId, pagination: $pagination) {\n id\n name\n description\n isSystem\n }\n }\n`;\n\nexport const useWorkspaceRoles = (workspaceIdOverride?: string) => {\n const { authToken, workspaceId } = useWorkspacesContext();\n const effectiveWorkspaceId = workspaceIdOverride || workspaceId;\n\n return useQuery({\n queryKey: ['workspaceRoles', effectiveWorkspaceId],\n queryFn: async (): Promise<WorkspaceRoleOption[]> => {\n const result = await graphqlFetch<{ roles: WorkspaceRoleOption[] }>({\n gateway: 'workspace',\n authToken: authToken || undefined,\n query: GET_WORKSPACE_ROLES,\n variables: {\n scopeId: effectiveWorkspaceId,\n pagination: { limit: 50 },\n },\n workspaceId: effectiveWorkspaceId || undefined,\n workspaceToken: true,\n });\n\n if (result.errors?.length) {\n throw new Error(result.errors[0]?.message || 'Failed to load workspace roles');\n }\n\n return result.data?.roles ?? [];\n },\n enabled: !!effectiveWorkspaceId,\n staleTime: 5 * 60 * 1000,\n });\n};\n"],"mappings":";;;;AAWA,IAAM,IAAsB,kNAWf,KAAqB,MAAiC;CACjE,IAAM,EAAE,cAAW,mBAAgB,GAAsB,EACnD,IAAuB,KAAuB;AAEpD,QAAO,EAAS;EACd,UAAU,CAAC,kBAAkB,EAAqB;EAClD,SAAS,YAA4C;GACnD,IAAM,IAAS,MAAM,EAA+C;IAClE,SAAS;IACT,WAAW,KAAa,KAAA;IACxB,OAAO;IACP,WAAW;KACT,SAAS;KACT,YAAY,EAAE,OAAO,IAAI;KAC1B;IACD,aAAa,KAAwB,KAAA;IACrC,gBAAgB;IACjB,CAAC;AAEF,OAAI,EAAO,QAAQ,OACjB,OAAU,MAAM,EAAO,OAAO,IAAI,WAAW,iCAAiC;AAGhF,UAAO,EAAO,MAAM,SAAS,EAAE;;EAEjC,SAAS,CAAC,CAAC;EACX,WAAW,MAAS;EACrB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { WorkspaceFilters, WorkspaceList, Workspace, PaginationInput } from '../types';
2
+
3
+ /**
4
+ * Hook to fetch all workspaces with filtering and pagination
5
+ * Uses workspace token for authorization (x-workspace-id header)
6
+ */
7
+ export declare const useWorkspaces: (filters?: WorkspaceFilters, pagination?: PaginationInput) => import('@tanstack/react-query').UseQueryResult<WorkspaceList, Error>;
8
+ /**
9
+ * Hook to fetch a single workspace by ID
10
+ * Uses workspace token for authorization (x-workspace-id header)
11
+ */
12
+ export declare const useWorkspace: (id: string) => import('@tanstack/react-query').UseQueryResult<Workspace, Error>;
13
+ /**
14
+ * Hook to fetch current user's workspaces
15
+ * NOTE: Uses global gateway because workspace listing is managed at the global/tenant layer
16
+ */
17
+ export declare const useMyWorkspaces: (pagination?: {
18
+ limit?: number;
19
+ offset?: number;
20
+ }) => import('@tanstack/react-query').UseQueryResult<WorkspaceList, Error>;
21
+ //# sourceMappingURL=useWorkspaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspaces.d.ts","sourceRoot":"","sources":["../../src/hooks/useWorkspaces.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAO5F;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,gBAAgB,EAAE,aAAa,eAAe,yEA0BrF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,MAAM,qEAsBtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,aAAa;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,yEA8B/E,CAAC"}
@@ -0,0 +1,75 @@
1
+ import { useWorkspacesContext as e } from "../providers/WorkspacesProvider.js";
2
+ import { GetWorkspaceDocument as t, GetWorkspacesDocument as n } from "../generated/wspace-operations.js";
3
+ import { GetGlobalMyWorkspacesDocument as r } from "../generated/global-operations.js";
4
+ import { useQuery as i } from "@tanstack/react-query";
5
+ import { print as a } from "graphql";
6
+ import { graphqlFetch as o } from "@burdenoff/fe-libs/shared/graphql";
7
+ //#region src/hooks/useWorkspaces.ts
8
+ var s = (t, r) => {
9
+ let { authToken: s, tenantId: c } = e();
10
+ return i({
11
+ queryKey: [
12
+ "workspaces",
13
+ c,
14
+ t,
15
+ r
16
+ ],
17
+ queryFn: async () => {
18
+ let e = await o({
19
+ gateway: "workspace",
20
+ authToken: s || void 0,
21
+ workspaceToken: !0,
22
+ query: a(n),
23
+ variables: {
24
+ filter: t,
25
+ pagination: r
26
+ }
27
+ });
28
+ if (e.errors?.length) throw Error(e.errors[0]?.message || "GraphQL error");
29
+ return e.data.workspaces;
30
+ },
31
+ staleTime: 300 * 1e3,
32
+ retry: 1
33
+ });
34
+ }, c = (n) => {
35
+ let { authToken: r } = e();
36
+ return i({
37
+ queryKey: ["workspace", n],
38
+ queryFn: async () => {
39
+ let e = await o({
40
+ gateway: "workspace",
41
+ authToken: r || void 0,
42
+ workspaceToken: !0,
43
+ query: a(t),
44
+ variables: { id: n }
45
+ });
46
+ if (e.errors?.length) throw Error(e.errors[0]?.message || "GraphQL error");
47
+ return e.data.workspace;
48
+ },
49
+ enabled: !!n,
50
+ staleTime: 300 * 1e3
51
+ });
52
+ }, l = (t) => {
53
+ let { authToken: n } = e();
54
+ return i({
55
+ queryKey: ["myWorkspaces", t],
56
+ queryFn: async () => {
57
+ let e = await o({
58
+ gateway: "global",
59
+ authToken: n || void 0,
60
+ query: a(r),
61
+ variables: {
62
+ limit: t?.limit,
63
+ offset: t?.offset
64
+ }
65
+ });
66
+ if (e.errors?.length) throw Error(e.errors[0]?.message || "GraphQL error");
67
+ return e.data.myWorkspaces;
68
+ },
69
+ staleTime: 300 * 1e3
70
+ });
71
+ };
72
+ //#endregion
73
+ export { l as useMyWorkspaces, c as useWorkspace, s as useWorkspaces };
74
+
75
+ //# sourceMappingURL=useWorkspaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspaces.js","names":[],"sources":["../../src/hooks/useWorkspaces.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query';\nimport { print } from 'graphql';\nimport { graphqlFetch } from '@burdenoff/fe-libs/shared/graphql';\nimport { useWorkspacesContext } from '../providers/WorkspacesProvider';\nimport { GetWorkspacesDocument, GetWorkspaceDocument } from '../generated/wspace-operations';\nimport { GetGlobalMyWorkspacesDocument } from '../generated/global-operations';\nimport type { WorkspaceFilters, WorkspaceList, Workspace, PaginationInput } from '../types';\n\ntype WorkspaceWithCounts = Workspace & {\n memberCount?: number;\n projectCount?: number;\n};\n\n/**\n * Hook to fetch all workspaces with filtering and pagination\n * Uses workspace token for authorization (x-workspace-id header)\n */\nexport const useWorkspaces = (filters?: WorkspaceFilters, pagination?: PaginationInput) => {\n const { authToken, tenantId } = useWorkspacesContext();\n\n return useQuery({\n queryKey: ['workspaces', tenantId, filters, pagination],\n queryFn: async (): Promise<WorkspaceList> => {\n const result = await graphqlFetch<{ workspaces: WorkspaceList }>({\n gateway: 'workspace',\n authToken: authToken || undefined,\n workspaceToken: true, // Use workspace token from profile storage\n query: print(GetWorkspacesDocument),\n variables: {\n filter: filters,\n pagination,\n },\n });\n\n if (result.errors?.length) {\n throw new Error(result.errors[0]?.message || 'GraphQL error');\n }\n\n return result.data!.workspaces;\n },\n staleTime: 5 * 60 * 1000,\n retry: 1,\n });\n};\n\n/**\n * Hook to fetch a single workspace by ID\n * Uses workspace token for authorization (x-workspace-id header)\n */\nexport const useWorkspace = (id: string) => {\n const { authToken } = useWorkspacesContext();\n\n return useQuery({\n queryKey: ['workspace', id],\n queryFn: async (): Promise<Workspace> => {\n const result = await graphqlFetch<{ workspace: Workspace }>({\n gateway: 'workspace',\n authToken: authToken || undefined,\n workspaceToken: true,\n query: print(GetWorkspaceDocument),\n variables: { id },\n });\n\n if (result.errors?.length) {\n throw new Error(result.errors[0]?.message || 'GraphQL error');\n }\n return result.data!.workspace;\n },\n enabled: !!id,\n staleTime: 5 * 60 * 1000,\n });\n};\n\n/**\n * Hook to fetch current user's workspaces\n * NOTE: Uses global gateway because workspace listing is managed at the global/tenant layer\n */\nexport const useMyWorkspaces = (pagination?: { limit?: number; offset?: number }) => {\n const { authToken } = useWorkspacesContext();\n\n return useQuery({\n queryKey: ['myWorkspaces', pagination],\n queryFn: async (): Promise<WorkspaceList> => {\n const result = await graphqlFetch<{\n myWorkspaces: {\n total: number;\n hasMore: boolean;\n items: WorkspaceWithCounts[];\n };\n }>({\n gateway: 'global', // Workspace listing is in global layer, not workspace layer\n authToken: authToken || undefined,\n query: print(GetGlobalMyWorkspacesDocument),\n variables: {\n limit: pagination?.limit,\n offset: pagination?.offset,\n },\n });\n\n if (result.errors?.length) {\n throw new Error(result.errors[0]?.message || 'GraphQL error');\n }\n\n return result.data!.myWorkspaces;\n },\n staleTime: 5 * 60 * 1000,\n });\n};\n"],"mappings":";;;;;;;AAiBA,IAAa,KAAiB,GAA4B,MAAiC;CACzF,IAAM,EAAE,cAAW,gBAAa,GAAsB;AAEtD,QAAO,EAAS;EACd,UAAU;GAAC;GAAc;GAAU;GAAS;GAAW;EACvD,SAAS,YAAoC;GAC3C,IAAM,IAAS,MAAM,EAA4C;IAC/D,SAAS;IACT,WAAW,KAAa,KAAA;IACxB,gBAAgB;IAChB,OAAO,EAAM,EAAsB;IACnC,WAAW;KACT,QAAQ;KACR;KACD;IACF,CAAC;AAEF,OAAI,EAAO,QAAQ,OACjB,OAAU,MAAM,EAAO,OAAO,IAAI,WAAW,gBAAgB;AAG/D,UAAO,EAAO,KAAM;;EAEtB,WAAW,MAAS;EACpB,OAAO;EACR,CAAC;GAOS,KAAgB,MAAe;CAC1C,IAAM,EAAE,iBAAc,GAAsB;AAE5C,QAAO,EAAS;EACd,UAAU,CAAC,aAAa,EAAG;EAC3B,SAAS,YAAgC;GACvC,IAAM,IAAS,MAAM,EAAuC;IAC1D,SAAS;IACT,WAAW,KAAa,KAAA;IACxB,gBAAgB;IAChB,OAAO,EAAM,EAAqB;IAClC,WAAW,EAAE,OAAI;IAClB,CAAC;AAEF,OAAI,EAAO,QAAQ,OACjB,OAAU,MAAM,EAAO,OAAO,IAAI,WAAW,gBAAgB;AAE/D,UAAO,EAAO,KAAM;;EAEtB,SAAS,CAAC,CAAC;EACX,WAAW,MAAS;EACrB,CAAC;GAOS,KAAmB,MAAqD;CACnF,IAAM,EAAE,iBAAc,GAAsB;AAE5C,QAAO,EAAS;EACd,UAAU,CAAC,gBAAgB,EAAW;EACtC,SAAS,YAAoC;GAC3C,IAAM,IAAS,MAAM,EAMlB;IACD,SAAS;IACT,WAAW,KAAa,KAAA;IACxB,OAAO,EAAM,EAA8B;IAC3C,WAAW;KACT,OAAO,GAAY;KACnB,QAAQ,GAAY;KACrB;IACF,CAAC;AAEF,OAAI,EAAO,QAAQ,OACjB,OAAU,MAAM,EAAO,OAAO,IAAI,WAAW,gBAAgB;AAG/D,UAAO,EAAO,KAAM;;EAEtB,WAAW,MAAS;EACrB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export type WorkspacesDomainEvent = 'workspace.created' | 'workspace.updated' | 'workspace.deleted' | 'workspace.archived' | 'workspace.reactivated' | 'project.created' | 'project.updated' | 'project.deleted' | 'project.archived' | 'project.unarchived' | 'workspace-member.added' | 'workspace-member.removed' | 'workspace-member.role-updated' | 'workspace-invitation.created' | 'workspace-invitation.accepted' | 'workspace-invitation.rejected' | 'workspace-invitation.cancelled' | 'workspace-invitation.resent' | 'workspace-invitation.deleted' | 'workspace-activity.appended';
2
+ export interface WorkspacesEventPayload {
3
+ workspaceId?: string;
4
+ projectId?: string;
5
+ memberId?: string;
6
+ invitationId?: string;
7
+ userId?: string;
8
+ email?: string;
9
+ source?: string;
10
+ }
11
+ export declare function useWorkspacesEventEmitter(): {
12
+ emit: (event: WorkspacesDomainEvent, payload?: WorkspacesEventPayload) => void;
13
+ };
14
+ //# sourceMappingURL=useWorkspacesEventEmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspacesEventEmitter.d.ts","sourceRoot":"","sources":["../../src/hooks/useWorkspacesEventEmitter.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,qBAAqB,GAC7B,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,uBAAuB,GACvB,iBAAiB,GACjB,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,wBAAwB,GACxB,0BAA0B,GAC1B,+BAA+B,GAC/B,8BAA8B,GAC9B,+BAA+B,GAC/B,+BAA+B,GAC/B,gCAAgC,GAChC,6BAA6B,GAC7B,8BAA8B,GAC9B,6BAA6B,CAAC;AAElC,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,yBAAyB,IAAI;IAC3C,IAAI,EAAE,CAAC,KAAK,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAC;CAChF,CAaA"}
@@ -0,0 +1,14 @@
1
+ import { useEventBus as e } from "@burdenoff/fe-libs/shared/events";
2
+ //#region src/hooks/useWorkspacesEventEmitter.ts
3
+ function t() {
4
+ let t = e(), n = t.emit.bind(t);
5
+ return { emit: (e, t = {}) => {
6
+ try {
7
+ n(e, t);
8
+ } catch {}
9
+ } };
10
+ }
11
+ //#endregion
12
+ export { t as useWorkspacesEventEmitter };
13
+
14
+ //# sourceMappingURL=useWorkspacesEventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspacesEventEmitter.js","names":[],"sources":["../../src/hooks/useWorkspacesEventEmitter.ts"],"sourcesContent":["/**\n * Workspaces-domain event emitter. Emits lifecycle events to the host shell's\n * event bus per `~/products/infra/infra-specs/microfrontends/47-FRONTEND-EVENT-BUS.md`.\n *\n * The MFE never sinks directly to Rybbit/audit — it goes through the bus.\n *\n * The fe-libs `EventBus.emit` is statically typed against `BurdenoffEventName`\n * which doesn't list our workspaces-domain names. The runtime bus is dynamic,\n * so the cast loses autocomplete but is sound.\n */\nimport { useEventBus } from '@burdenoff/fe-libs/shared/events';\n\nexport type WorkspacesDomainEvent =\n | 'workspace.created'\n | 'workspace.updated'\n | 'workspace.deleted'\n | 'workspace.archived'\n | 'workspace.reactivated'\n | 'project.created'\n | 'project.updated'\n | 'project.deleted'\n | 'project.archived'\n | 'project.unarchived'\n | 'workspace-member.added'\n | 'workspace-member.removed'\n | 'workspace-member.role-updated'\n | 'workspace-invitation.created'\n | 'workspace-invitation.accepted'\n | 'workspace-invitation.rejected'\n | 'workspace-invitation.cancelled'\n | 'workspace-invitation.resent'\n | 'workspace-invitation.deleted'\n | 'workspace-activity.appended';\n\nexport interface WorkspacesEventPayload {\n workspaceId?: string;\n projectId?: string;\n memberId?: string;\n invitationId?: string;\n userId?: string;\n email?: string;\n source?: string;\n}\n\nexport function useWorkspacesEventEmitter(): {\n emit: (event: WorkspacesDomainEvent, payload?: WorkspacesEventPayload) => void;\n} {\n const bus = useEventBus();\n type DynamicEmit = (event: string, payload: unknown) => void;\n const emit = (bus as unknown as { emit: DynamicEmit }).emit.bind(bus);\n return {\n emit: (event: WorkspacesDomainEvent, payload: WorkspacesEventPayload = {}) => {\n try {\n emit(event, payload);\n } catch {\n // Bus failures must not break workspace operations.\n }\n },\n };\n}\n"],"mappings":";;AA4CA,SAAgB,IAEd;CACA,IAAM,IAAM,GAAa,EAEnB,IAAQ,EAAyC,KAAK,KAAK,EAAI;AACrE,QAAO,EACL,OAAO,GAA8B,IAAkC,EAAE,KAAK;AAC5E,MAAI;AACF,KAAK,GAAO,EAAQ;UACd;IAIX"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Workspaces Microfrontend
3
+ *
4
+ * Enterprise collaboration platform for managing workspaces,
5
+ * projects, teams, and integrations.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * import { WorkspacesRoot, type WorkspacesRootProps } from '@burdenoff/micro-fe/workspaces';
10
+ *
11
+ * function App() {
12
+ * const props: WorkspacesRootProps = {
13
+ * basePath: '/workspaces',
14
+ * navigate: (path) => router.push(path),
15
+ * currentUser: { id: '1', email: 'user@example.com' },
16
+ * apiGatewayUrl: 'https://api.example.com',
17
+ * authToken: 'token',
18
+ * };
19
+ *
20
+ * return <WorkspacesRoot {...props} />;
21
+ * }
22
+ * ```
23
+ */
24
+ export { WorkspacesRoot } from './WorkspacesRoot';
25
+ export { DashboardPage } from './pages/dashboard/DashboardPage';
26
+ export { InviteAcceptancePage } from './pages/InviteAcceptancePage';
27
+ export { WorkspacesProvider, useWorkspacesContext } from './providers/WorkspacesProvider';
28
+ export { useWorkspacesStore } from './store/workspacesStore';
29
+ export * from './hooks';
30
+ export * from './components';
31
+ export * from './utils';
32
+ export type { WorkspacesRootProps, Workspace, WorkspaceType, WorkspaceStatus, WorkspaceMember, WorkspaceRole, WorkspaceSettings, WorkspaceFeature, WorkspaceIntegration, Project, ProjectStatus, Activity, ActivityType, WorkspaceFilters, ProjectFilters, ViewMode, SortBy, SortDirection, CreateWorkspaceInput, UpdateWorkspaceInput, CreateProjectInput, UpdateProjectInput, NavItem, FooterItem, } from './types';
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAG1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,YAAY,EACV,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,MAAM,EACN,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,UAAU,GACX,MAAM,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,24 @@
1
+ import { WorkspacesProvider as e, useWorkspacesContext as t } from "./providers/WorkspacesProvider.js";
2
+ import { WorkspacesErrorBoundary as n } from "./components/WorkspacesErrorBoundary.js";
3
+ import { useWorkspacesStore as r } from "./store/workspacesStore.js";
4
+ import { useMyWorkspaces as i, useWorkspace as a, useWorkspaces as o } from "./hooks/useWorkspaces.js";
5
+ import { getMemberRoleClasses as s, getMemberRoleLabel as c, getProjectStatusClasses as l, getProjectStatusIconClass as u, getProjectStatusLabel as d, getWorkspaceStatusBgClass as f, getWorkspaceStatusClasses as p, getWorkspaceStatusIconClass as m, getWorkspaceStatusLabel as h } from "./utils/tokenHelpers.js";
6
+ import { WorkspaceCard as g } from "./components/WorkspaceCard.js";
7
+ import { WorkspacesRoot as _ } from "./WorkspacesRoot.js";
8
+ import { DashboardPage as v } from "./pages/dashboard/DashboardPage.js";
9
+ import { useInvitation as y, useUserWorkspaces as b, useWorkspaceInvitations as x, useWorkspaceMember as S, useWorkspaceMembers as C } from "./hooks/useWorkspaceMembers.js";
10
+ import { useAcceptInvitation as w, useAddWorkspaceMember as T, useBulkCreateInvitations as E, useCancelInvitation as D, useCreateInvitation as O, useDeleteInvitation as k, useRejectInvitation as A, useRemoveUserFromWorkspace as j, useRemoveWorkspaceMember as M, useResendInvitation as N, useUpdateInvitation as P } from "./hooks/useMemberMutations.js";
11
+ import { InviteAcceptancePage as F } from "./pages/InviteAcceptancePage.js";
12
+ import { useArchiveWorkspace as I, useCreateWorkspace as L, useDeleteWorkspace as R, useReactivateWorkspace as z, useUpdateWorkspace as B } from "./hooks/useWorkspaceMutations.js";
13
+ import { useMyProjects as V, useProject as H, useProjectMembersCount as U, useProjects as W } from "./hooks/useProjects.js";
14
+ import { useArchiveProject as G, useCreateProject as K, useDeleteProject as q, useUnarchiveProject as J, useUpdateProject as Y } from "./hooks/useProjectMutations.js";
15
+ import { useMyOrganizations as X, useMyTenants as Z } from "./hooks/useTenants.js";
16
+ import "./hooks/index.js";
17
+ import { CreateWorkspaceDialog as Q } from "./components/CreateWorkspaceDialog.js";
18
+ import { formatDate as $, formatDateTime as ee, formatFileSize as te, formatProjectStatus as ne, formatRelativeTime as re, formatWorkspaceStatus as ie, getInitials as ae, toTitleCase as oe, truncate as se } from "./utils/formatters.js";
19
+ import { ProjectCard as ce } from "./components/ProjectCard.js";
20
+ import { CreateProjectDialog as le } from "./components/CreateProjectDialog.js";
21
+ import { MemberListItem as ue } from "./components/MemberListItem.js";
22
+ import { InviteMemberDialog as de } from "./components/InviteMemberDialog.js";
23
+ import "./components/index.js";
24
+ export { le as CreateProjectDialog, Q as CreateWorkspaceDialog, v as DashboardPage, F as InviteAcceptancePage, de as InviteMemberDialog, ue as MemberListItem, ce as ProjectCard, g as WorkspaceCard, n as WorkspacesErrorBoundary, e as WorkspacesProvider, _ as WorkspacesRoot, $ as formatDate, ee as formatDateTime, te as formatFileSize, ne as formatProjectStatus, re as formatRelativeTime, ie as formatWorkspaceStatus, ae as getInitials, s as getMemberRoleClasses, c as getMemberRoleLabel, l as getProjectStatusClasses, u as getProjectStatusIconClass, d as getProjectStatusLabel, f as getWorkspaceStatusBgClass, p as getWorkspaceStatusClasses, m as getWorkspaceStatusIconClass, h as getWorkspaceStatusLabel, oe as toTitleCase, se as truncate, w as useAcceptInvitation, T as useAddWorkspaceMember, G as useArchiveProject, I as useArchiveWorkspace, E as useBulkCreateInvitations, D as useCancelInvitation, O as useCreateInvitation, K as useCreateProject, L as useCreateWorkspace, k as useDeleteInvitation, q as useDeleteProject, R as useDeleteWorkspace, y as useInvitation, X as useMyOrganizations, V as useMyProjects, Z as useMyTenants, i as useMyWorkspaces, H as useProject, U as useProjectMembersCount, W as useProjects, z as useReactivateWorkspace, A as useRejectInvitation, j as useRemoveUserFromWorkspace, M as useRemoveWorkspaceMember, N as useResendInvitation, J as useUnarchiveProject, P as useUpdateInvitation, Y as useUpdateProject, B as useUpdateWorkspace, b as useUserWorkspaces, a as useWorkspace, x as useWorkspaceInvitations, S as useWorkspaceMember, C as useWorkspaceMembers, o as useWorkspaces, t as useWorkspacesContext, r as useWorkspacesStore };
@@ -0,0 +1,2 @@
1
+ export declare function ActivityListPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ActivityListPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityListPage.d.ts","sourceRoot":"","sources":["../../src/pages/ActivityListPage.tsx"],"names":[],"mappings":"AASA,wBAAgB,gBAAgB,4CAgH/B"}
@@ -0,0 +1,119 @@
1
+ import { formatDate as e } from "../utils/formatters.js";
2
+ import { useWorkspaceActivity as t } from "../hooks/useWorkspaceActivity.js";
3
+ import { useWorkspacePermissions as n } from "../hooks/useWorkspacePermissions.js";
4
+ import { useCallback as r } from "react";
5
+ import { Activity as i } from "lucide-react";
6
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
+ import { Card as s, CardContent as c, CardHeader as l, CardTitle as u, Skeleton as d } from "@burdenoff/fe-libs/ui";
8
+ import { useParams as f } from "react-router-dom";
9
+ import { useI18n as p } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
10
+ //#region src/pages/ActivityListPage.tsx
11
+ function m() {
12
+ let { t: m } = p(), h = r((e, t) => {
13
+ let n = m(e);
14
+ return n === e ? t : n;
15
+ }, [m]), { workspaceId: g } = f(), { data: _, isLoading: v, error: y } = t(g), { canViewActivity: b, isLoading: x } = n();
16
+ return x ? /* @__PURE__ */ o("div", {
17
+ className: "space-y-4 p-6",
18
+ children: [/* @__PURE__ */ a(d, { className: "h-10 w-1/3" }), /* @__PURE__ */ a(d, { className: "h-64" })]
19
+ }) : b ? /* @__PURE__ */ o("div", {
20
+ className: "space-y-4 sm:space-y-6 p-3 sm:p-6",
21
+ children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
22
+ className: "text-2xl sm:text-3xl font-bold",
23
+ children: h("activityList.title", "Activity")
24
+ }), /* @__PURE__ */ a("p", {
25
+ className: "text-muted-foreground",
26
+ children: h("activityList.description", "Track workspace activity")
27
+ })] }), v ? /* @__PURE__ */ a(s, { children: /* @__PURE__ */ a(c, {
28
+ className: "py-8 text-sm text-muted-foreground",
29
+ children: h("activityList.loading", "Loading activity…")
30
+ }) }) : y ? /* @__PURE__ */ a(s, { children: /* @__PURE__ */ a(c, {
31
+ className: "py-8 text-sm text-destructive",
32
+ children: y instanceof Error ? y.message : h("activityList.loadError", "Failed to load activity")
33
+ }) }) : (_?.length ?? 0) === 0 ? /* @__PURE__ */ o("div", {
34
+ className: "flex flex-col items-center justify-center py-12 text-center",
35
+ children: [
36
+ /* @__PURE__ */ a("div", {
37
+ className: "rounded-full bg-muted p-6 mb-4",
38
+ children: /* @__PURE__ */ a(i, {
39
+ size: 48,
40
+ className: "text-muted-foreground"
41
+ })
42
+ }),
43
+ /* @__PURE__ */ a("h3", {
44
+ className: "text-lg font-semibold mb-2",
45
+ children: h("activityList.emptyTitle", "No recent activity")
46
+ }),
47
+ /* @__PURE__ */ a("p", {
48
+ className: "text-muted-foreground max-w-sm",
49
+ children: h("activityList.emptyDescription", "Recent workspace actions will appear here as your team creates, updates, and manages work.")
50
+ })
51
+ ]
52
+ }) : /* @__PURE__ */ a("div", {
53
+ className: "space-y-3",
54
+ children: _?.map((t) => /* @__PURE__ */ o(s, { children: [/* @__PURE__ */ a(l, {
55
+ className: "pb-2",
56
+ children: /* @__PURE__ */ a(u, {
57
+ className: "text-base",
58
+ children: t.description || t.action
59
+ })
60
+ }), /* @__PURE__ */ o(c, {
61
+ className: "space-y-1 text-sm text-muted-foreground",
62
+ children: [
63
+ /* @__PURE__ */ o("p", { children: [
64
+ h("activityList.labelAction", "Action"),
65
+ ":",
66
+ " ",
67
+ /* @__PURE__ */ a("span", {
68
+ className: "text-foreground",
69
+ children: t.action
70
+ })
71
+ ] }),
72
+ t.resourceType && /* @__PURE__ */ o("p", { children: [
73
+ h("activityList.labelResource", "Resource"),
74
+ ":",
75
+ " ",
76
+ /* @__PURE__ */ a("span", {
77
+ className: "text-foreground",
78
+ children: t.resourceType
79
+ })
80
+ ] }),
81
+ /* @__PURE__ */ o("p", { children: [
82
+ h("activityList.labelWhen", "When"),
83
+ ":",
84
+ " ",
85
+ /* @__PURE__ */ a("span", {
86
+ className: "text-foreground",
87
+ children: e(t.timestamp)
88
+ })
89
+ ] }),
90
+ /* @__PURE__ */ o("p", { children: [
91
+ h("activityList.labelActor", "Actor"),
92
+ ":",
93
+ " ",
94
+ /* @__PURE__ */ a("span", {
95
+ className: "break-all text-foreground",
96
+ children: t.userId
97
+ })
98
+ ] })
99
+ ]
100
+ })] }, t.id))
101
+ })]
102
+ }) : /* @__PURE__ */ a("div", {
103
+ className: "flex items-center justify-center min-h-[400px]",
104
+ children: /* @__PURE__ */ o("div", {
105
+ className: "text-center space-y-2",
106
+ children: [/* @__PURE__ */ a("h2", {
107
+ className: "text-lg font-semibold",
108
+ children: h("activityList.accessDenied", "Access Denied")
109
+ }), /* @__PURE__ */ a("p", {
110
+ className: "text-sm text-muted-foreground",
111
+ children: h("activityList.accessDeniedDescription", "You don't have permission to view activity.")
112
+ })]
113
+ })
114
+ });
115
+ }
116
+ //#endregion
117
+ export { m as ActivityListPage };
118
+
119
+ //# sourceMappingURL=ActivityListPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityListPage.js","names":[],"sources":["../../src/pages/ActivityListPage.tsx"],"sourcesContent":["import { Activity } from 'lucide-react';\nimport { useParams } from 'react-router-dom';\nimport { useCallback } from 'react';\nimport { Card, CardContent, CardHeader, CardTitle, Skeleton } from '@burdenoff/fe-libs/ui';\nimport { useWorkspaceActivity } from '../hooks/useWorkspaceActivity';\nimport { useWorkspacePermissions } from '../hooks/useWorkspacePermissions';\nimport { formatDate } from '../utils/formatters';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nexport function ActivityListPage() {\n const { t } = useI18n();\n const tr = useCallback(\n (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n },\n [t]\n );\n\n const { workspaceId } = useParams<{ workspaceId: string }>();\n const { data: activities, isLoading, error } = useWorkspaceActivity(workspaceId);\n const { canViewActivity, isLoading: permissionsLoading } = useWorkspacePermissions();\n\n if (permissionsLoading) {\n return (\n <div className=\"space-y-4 p-6\">\n <Skeleton className=\"h-10 w-1/3\" />\n <Skeleton className=\"h-64\" />\n </div>\n );\n }\n\n if (!canViewActivity) {\n return (\n <div className=\"flex items-center justify-center min-h-[400px]\">\n <div className=\"text-center space-y-2\">\n <h2 className=\"text-lg font-semibold\">\n {tr('activityList.accessDenied', 'Access Denied')}\n </h2>\n <p className=\"text-sm text-muted-foreground\">\n {tr(\n 'activityList.accessDeniedDescription',\n \"You don't have permission to view activity.\"\n )}\n </p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-4 sm:space-y-6 p-3 sm:p-6\">\n <div>\n <h1 className=\"text-2xl sm:text-3xl font-bold\">{tr('activityList.title', 'Activity')}</h1>\n <p className=\"text-muted-foreground\">\n {tr('activityList.description', 'Track workspace activity')}\n </p>\n </div>\n\n {isLoading ? (\n <Card>\n <CardContent className=\"py-8 text-sm text-muted-foreground\">\n {tr('activityList.loading', 'Loading activity…')}\n </CardContent>\n </Card>\n ) : error ? (\n <Card>\n <CardContent className=\"py-8 text-sm text-destructive\">\n {error instanceof Error\n ? error.message\n : tr('activityList.loadError', 'Failed to load activity')}\n </CardContent>\n </Card>\n ) : (activities?.length ?? 0) === 0 ? (\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\n <div className=\"rounded-full bg-muted p-6 mb-4\">\n <Activity size={48} className=\"text-muted-foreground\" />\n </div>\n <h3 className=\"text-lg font-semibold mb-2\">\n {tr('activityList.emptyTitle', 'No recent activity')}\n </h3>\n <p className=\"text-muted-foreground max-w-sm\">\n {tr(\n 'activityList.emptyDescription',\n 'Recent workspace actions will appear here as your team creates, updates, and manages work.'\n )}\n </p>\n </div>\n ) : (\n <div className=\"space-y-3\">\n {activities?.map((item) => (\n <Card key={item.id}>\n <CardHeader className=\"pb-2\">\n <CardTitle className=\"text-base\">{item.description || item.action}</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-1 text-sm text-muted-foreground\">\n <p>\n {tr('activityList.labelAction', 'Action')}:{' '}\n <span className=\"text-foreground\">{item.action}</span>\n </p>\n {item.resourceType && (\n <p>\n {tr('activityList.labelResource', 'Resource')}:{' '}\n <span className=\"text-foreground\">{item.resourceType}</span>\n </p>\n )}\n <p>\n {tr('activityList.labelWhen', 'When')}:{' '}\n <span className=\"text-foreground\">{formatDate(item.timestamp)}</span>\n </p>\n <p>\n {tr('activityList.labelActor', 'Actor')}:{' '}\n <span className=\"break-all text-foreground\">{item.userId}</span>\n </p>\n </CardContent>\n </Card>\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AASA,SAAgB,IAAmB;CACjC,IAAM,EAAE,SAAM,GAAS,EACjB,IAAK,GACR,GAAa,MAA6B;EACzC,IAAM,IAAQ,EAAE,EAAI;AACpB,SAAO,MAAU,IAAM,IAAW;IAEpC,CAAC,EAAE,CACJ,EAEK,EAAE,mBAAgB,GAAoC,EACtD,EAAE,MAAM,GAAY,cAAW,aAAU,EAAqB,EAAY,EAC1E,EAAE,oBAAiB,WAAW,MAAuB,GAAyB;AA6BpF,QA3BI,IAEA,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD,EAAU,WAAU,cAAe,CAAA,EACnC,kBAAC,GAAD,EAAU,WAAU,QAAS,CAAA,CACzB;MAIL,IAmBH,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;GAAI,WAAU;aAAkC,EAAG,sBAAsB,WAAW;GAAM,CAAA,EAC1F,kBAAC,KAAD;GAAG,WAAU;aACV,EAAG,4BAA4B,2BAA2B;GACzD,CAAA,CACA,EAAA,CAAA,EAEL,IACC,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;GAAa,WAAU;aACpB,EAAG,wBAAwB,oBAAoB;GACpC,CAAA,EACT,CAAA,GACL,IACF,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;GAAa,WAAU;aACpB,aAAiB,QACd,EAAM,UACN,EAAG,0BAA0B,0BAA0B;GAC/C,CAAA,EACT,CAAA,IACJ,GAAY,UAAU,OAAO,IAChC,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD;MAAU,MAAM;MAAI,WAAU;MAA0B,CAAA;KACpD,CAAA;IACN,kBAAC,MAAD;KAAI,WAAU;eACX,EAAG,2BAA2B,qBAAqB;KACjD,CAAA;IACL,kBAAC,KAAD;KAAG,WAAU;eACV,EACC,iCACA,6FACD;KACC,CAAA;IACA;OAEN,kBAAC,OAAD;GAAK,WAAU;aACZ,GAAY,KAAK,MAChB,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;IAAY,WAAU;cACpB,kBAAC,GAAD;KAAW,WAAU;eAAa,EAAK,eAAe,EAAK;KAAmB,CAAA;IACnE,CAAA,EACb,kBAAC,GAAD;IAAa,WAAU;cAAvB;KACE,kBAAC,KAAD,EAAA,UAAA;MACG,EAAG,4BAA4B,SAAS;MAAC;MAAE;MAC5C,kBAAC,QAAD;OAAM,WAAU;iBAAmB,EAAK;OAAc,CAAA;MACpD,EAAA,CAAA;KACH,EAAK,gBACJ,kBAAC,KAAD,EAAA,UAAA;MACG,EAAG,8BAA8B,WAAW;MAAC;MAAE;MAChD,kBAAC,QAAD;OAAM,WAAU;iBAAmB,EAAK;OAAoB,CAAA;MAC1D,EAAA,CAAA;KAEN,kBAAC,KAAD,EAAA,UAAA;MACG,EAAG,0BAA0B,OAAO;MAAC;MAAE;MACxC,kBAAC,QAAD;OAAM,WAAU;iBAAmB,EAAW,EAAK,UAAU;OAAQ,CAAA;MACnE,EAAA,CAAA;KACJ,kBAAC,KAAD,EAAA,UAAA;MACG,EAAG,2BAA2B,QAAQ;MAAC;MAAE;MAC1C,kBAAC,QAAD;OAAM,WAAU;iBAA6B,EAAK;OAAc,CAAA;MAC9D,EAAA,CAAA;KACQ;MACT,EAAA,EAxBI,EAAK,GAwBT,CACP;GACE,CAAA,CAEJ;MArFJ,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,MAAD;IAAI,WAAU;cACX,EAAG,6BAA6B,gBAAgB;IAC9C,CAAA,EACL,kBAAC,KAAD;IAAG,WAAU;cACV,EACC,wCACA,8CACD;IACC,CAAA,CACA;;EACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function CreateWorkspacePage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=CreateWorkspacePage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateWorkspacePage.d.ts","sourceRoot":"","sources":["../../src/pages/CreateWorkspacePage.tsx"],"names":[],"mappings":"AA6BA,wBAAgB,mBAAmB,4CAwXlC"}