@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.
Files changed (244) hide show
  1. package/README.md +64 -0
  2. package/dist/generated/global-operations.d.ts +1647 -0
  3. package/dist/generated/global-operations.d.ts.map +1 -0
  4. package/dist/generated/global-operations.js +724 -0
  5. package/dist/generated/global-operations.js.map +1 -0
  6. package/dist/generated/global-types.d.ts +20716 -0
  7. package/dist/generated/global-types.d.ts.map +1 -0
  8. package/dist/generated/global-types.js +8 -0
  9. package/dist/generated/global-types.js.map +1 -0
  10. package/dist/generated/wspace-operations.d.ts +2 -0
  11. package/dist/generated/wspace-operations.d.ts.map +1 -0
  12. package/dist/generated/wspace-types.d.ts +53363 -0
  13. package/dist/generated/wspace-types.d.ts.map +1 -0
  14. package/dist/index.d.ts +56 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +3 -0
  17. package/dist/node_modules/sonner/dist/index.js +163 -0
  18. package/dist/node_modules/sonner/dist/index.js.map +1 -0
  19. package/dist/node_modules/zod/v3/ZodError.js +82 -0
  20. package/dist/node_modules/zod/v3/ZodError.js.map +1 -0
  21. package/dist/node_modules/zod/v3/errors.js +10 -0
  22. package/dist/node_modules/zod/v3/errors.js.map +1 -0
  23. package/dist/node_modules/zod/v3/helpers/errorUtil.js +9 -0
  24. package/dist/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
  25. package/dist/node_modules/zod/v3/helpers/parseUtil.js +93 -0
  26. package/dist/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
  27. package/dist/node_modules/zod/v3/helpers/util.js +76 -0
  28. package/dist/node_modules/zod/v3/helpers/util.js.map +1 -0
  29. package/dist/node_modules/zod/v3/locales/en.js +62 -0
  30. package/dist/node_modules/zod/v3/locales/en.js.map +1 -0
  31. package/dist/node_modules/zod/v3/types.js +2441 -0
  32. package/dist/node_modules/zod/v3/types.js.map +1 -0
  33. package/dist/organization-management/AdminOrganizationRoot.d.ts +16 -0
  34. package/dist/organization-management/AdminOrganizationRoot.d.ts.map +1 -0
  35. package/dist/organization-management/AdminOrganizationRoot.js +76 -0
  36. package/dist/organization-management/AdminOrganizationRoot.js.map +1 -0
  37. package/dist/organization-management/AdminOrganizationRoutes.d.ts +16 -0
  38. package/dist/organization-management/AdminOrganizationRoutes.d.ts.map +1 -0
  39. package/dist/organization-management/AdminOrganizationRoutes.js +73 -0
  40. package/dist/organization-management/AdminOrganizationRoutes.js.map +1 -0
  41. package/dist/organization-management/UserOrganizationRoot.d.ts +17 -0
  42. package/dist/organization-management/UserOrganizationRoot.d.ts.map +1 -0
  43. package/dist/organization-management/UserOrganizationRoot.js +45 -0
  44. package/dist/organization-management/UserOrganizationRoot.js.map +1 -0
  45. package/dist/organization-management/UserOrganizationRoutes.d.ts +12 -0
  46. package/dist/organization-management/UserOrganizationRoutes.d.ts.map +1 -0
  47. package/dist/organization-management/UserOrganizationRoutes.js +30 -0
  48. package/dist/organization-management/UserOrganizationRoutes.js.map +1 -0
  49. package/dist/organization-management/constants/permissions.d.ts +30 -0
  50. package/dist/organization-management/constants/permissions.d.ts.map +1 -0
  51. package/dist/organization-management/constants/permissions.js +22 -0
  52. package/dist/organization-management/constants/permissions.js.map +1 -0
  53. package/dist/organization-management/hooks/useOrganizationEventEmitter.d.ts +19 -0
  54. package/dist/organization-management/hooks/useOrganizationEventEmitter.d.ts.map +1 -0
  55. package/dist/organization-management/hooks/useOrganizationEventEmitter.js +15 -0
  56. package/dist/organization-management/hooks/useOrganizationEventEmitter.js.map +1 -0
  57. package/dist/organization-management/hooks/useOrganizationPageView.d.ts +11 -0
  58. package/dist/organization-management/hooks/useOrganizationPageView.d.ts.map +1 -0
  59. package/dist/organization-management/hooks/useOrganizationPageView.js +24 -0
  60. package/dist/organization-management/hooks/useOrganizationPageView.js.map +1 -0
  61. package/dist/organization-management/modules/members/components/InviteMemberForm.d.ts +18 -0
  62. package/dist/organization-management/modules/members/components/InviteMemberForm.d.ts.map +1 -0
  63. package/dist/organization-management/modules/members/components/InviteMemberForm.js +119 -0
  64. package/dist/organization-management/modules/members/components/InviteMemberForm.js.map +1 -0
  65. package/dist/organization-management/modules/members/components/InviteStatusBadge.d.ts +6 -0
  66. package/dist/organization-management/modules/members/components/InviteStatusBadge.d.ts.map +1 -0
  67. package/dist/organization-management/modules/members/components/InviteStatusBadge.js +51 -0
  68. package/dist/organization-management/modules/members/components/InviteStatusBadge.js.map +1 -0
  69. package/dist/organization-management/modules/members/components/MemberRoleBadge.d.ts +11 -0
  70. package/dist/organization-management/modules/members/components/MemberRoleBadge.d.ts.map +1 -0
  71. package/dist/organization-management/modules/members/components/MemberRoleBadge.js +56 -0
  72. package/dist/organization-management/modules/members/components/MemberRoleBadge.js.map +1 -0
  73. package/dist/organization-management/modules/members/components/MyInviteCard.d.ts +22 -0
  74. package/dist/organization-management/modules/members/components/MyInviteCard.d.ts.map +1 -0
  75. package/dist/organization-management/modules/members/components/MyInviteCard.js +70 -0
  76. package/dist/organization-management/modules/members/components/MyInviteCard.js.map +1 -0
  77. package/dist/organization-management/modules/members/components/PendingInvitesList.d.ts +6 -0
  78. package/dist/organization-management/modules/members/components/PendingInvitesList.d.ts.map +1 -0
  79. package/dist/organization-management/modules/members/components/PendingInvitesList.js +141 -0
  80. package/dist/organization-management/modules/members/components/PendingInvitesList.js.map +1 -0
  81. package/dist/organization-management/modules/members/hooks/useInvites.d.ts +75 -0
  82. package/dist/organization-management/modules/members/hooks/useInvites.d.ts.map +1 -0
  83. package/dist/organization-management/modules/members/hooks/useInvites.js +253 -0
  84. package/dist/organization-management/modules/members/hooks/useInvites.js.map +1 -0
  85. package/dist/organization-management/modules/members/hooks/useMembers.d.ts +84 -0
  86. package/dist/organization-management/modules/members/hooks/useMembers.d.ts.map +1 -0
  87. package/dist/organization-management/modules/members/hooks/useMembers.js +95 -0
  88. package/dist/organization-management/modules/members/hooks/useMembers.js.map +1 -0
  89. package/dist/organization-management/modules/members/pages/InviteMemberPage.d.ts +6 -0
  90. package/dist/organization-management/modules/members/pages/InviteMemberPage.d.ts.map +1 -0
  91. package/dist/organization-management/modules/members/pages/InviteMemberPage.js +91 -0
  92. package/dist/organization-management/modules/members/pages/InviteMemberPage.js.map +1 -0
  93. package/dist/organization-management/modules/members/pages/MemberDetailPage.d.ts +6 -0
  94. package/dist/organization-management/modules/members/pages/MemberDetailPage.d.ts.map +1 -0
  95. package/dist/organization-management/modules/members/pages/MemberDetailPage.js +115 -0
  96. package/dist/organization-management/modules/members/pages/MemberDetailPage.js.map +1 -0
  97. package/dist/organization-management/modules/members/pages/MembersListPage.d.ts +2 -0
  98. package/dist/organization-management/modules/members/pages/MembersListPage.d.ts.map +1 -0
  99. package/dist/organization-management/modules/members/pages/MembersListPage.js +424 -0
  100. package/dist/organization-management/modules/members/pages/MembersListPage.js.map +1 -0
  101. package/dist/organization-management/modules/members/pages/MyInvitesPage.d.ts +6 -0
  102. package/dist/organization-management/modules/members/pages/MyInvitesPage.d.ts.map +1 -0
  103. package/dist/organization-management/modules/members/pages/MyInvitesPage.js +114 -0
  104. package/dist/organization-management/modules/members/pages/MyInvitesPage.js.map +1 -0
  105. package/dist/organization-management/modules/members/types/index.d.ts +35 -0
  106. package/dist/organization-management/modules/members/types/index.d.ts.map +1 -0
  107. package/dist/organization-management/modules/organizations/components/OrganizationForm.d.ts +13 -0
  108. package/dist/organization-management/modules/organizations/components/OrganizationForm.d.ts.map +1 -0
  109. package/dist/organization-management/modules/organizations/components/OrganizationForm.js +325 -0
  110. package/dist/organization-management/modules/organizations/components/OrganizationForm.js.map +1 -0
  111. package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.d.ts +13 -0
  112. package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.d.ts.map +1 -0
  113. package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.js +49 -0
  114. package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.js.map +1 -0
  115. package/dist/organization-management/modules/organizations/hooks/useOrganizations.d.ts +86 -0
  116. package/dist/organization-management/modules/organizations/hooks/useOrganizations.d.ts.map +1 -0
  117. package/dist/organization-management/modules/organizations/hooks/useOrganizations.js +164 -0
  118. package/dist/organization-management/modules/organizations/hooks/useOrganizations.js.map +1 -0
  119. package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.d.ts +6 -0
  120. package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.d.ts.map +1 -0
  121. package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js +76 -0
  122. package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js.map +1 -0
  123. package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.d.ts +2 -0
  124. package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.d.ts.map +1 -0
  125. package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js +306 -0
  126. package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js.map +1 -0
  127. package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.d.ts +6 -0
  128. package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.d.ts.map +1 -0
  129. package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js +93 -0
  130. package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js.map +1 -0
  131. package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.d.ts +2 -0
  132. package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.d.ts.map +1 -0
  133. package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js +448 -0
  134. package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js.map +1 -0
  135. package/dist/organization-management/modules/organizations/schemas/index.d.ts +53 -0
  136. package/dist/organization-management/modules/organizations/schemas/index.d.ts.map +1 -0
  137. package/dist/organization-management/modules/organizations/schemas/index.js +25 -0
  138. package/dist/organization-management/modules/organizations/schemas/index.js.map +1 -0
  139. package/dist/organization-management/modules/organizations/types/index.d.ts +34 -0
  140. package/dist/organization-management/modules/organizations/types/index.d.ts.map +1 -0
  141. package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.d.ts +13 -0
  142. package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.d.ts.map +1 -0
  143. package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.js +147 -0
  144. package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.js.map +1 -0
  145. package/dist/organization-management/modules/workspaces/components/WorkspaceCard.d.ts +16 -0
  146. package/dist/organization-management/modules/workspaces/components/WorkspaceCard.d.ts.map +1 -0
  147. package/dist/organization-management/modules/workspaces/components/WorkspaceCard.js +107 -0
  148. package/dist/organization-management/modules/workspaces/components/WorkspaceCard.js.map +1 -0
  149. package/dist/organization-management/modules/workspaces/components/WorkspaceForm.d.ts +16 -0
  150. package/dist/organization-management/modules/workspaces/components/WorkspaceForm.d.ts.map +1 -0
  151. package/dist/organization-management/modules/workspaces/components/WorkspaceForm.js +386 -0
  152. package/dist/organization-management/modules/workspaces/components/WorkspaceForm.js.map +1 -0
  153. package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.d.ts +13 -0
  154. package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.d.ts.map +1 -0
  155. package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.js +49 -0
  156. package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.js.map +1 -0
  157. package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.d.ts +47 -0
  158. package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.d.ts.map +1 -0
  159. package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.js +46 -0
  160. package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.js.map +1 -0
  161. package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.d.ts +133 -0
  162. package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.d.ts.map +1 -0
  163. package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.js +111 -0
  164. package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.js.map +1 -0
  165. package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.d.ts +2 -0
  166. package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.d.ts.map +1 -0
  167. package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js +82 -0
  168. package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js.map +1 -0
  169. package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.d.ts +2 -0
  170. package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.d.ts.map +1 -0
  171. package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js +438 -0
  172. package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js.map +1 -0
  173. package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.d.ts +2 -0
  174. package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.d.ts.map +1 -0
  175. package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js +90 -0
  176. package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js.map +1 -0
  177. package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.d.ts +2 -0
  178. package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.d.ts.map +1 -0
  179. package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js +465 -0
  180. package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js.map +1 -0
  181. package/dist/organization-management/modules/workspaces/schemas/index.d.ts +44 -0
  182. package/dist/organization-management/modules/workspaces/schemas/index.d.ts.map +1 -0
  183. package/dist/organization-management/modules/workspaces/schemas/index.js +22 -0
  184. package/dist/organization-management/modules/workspaces/schemas/index.js.map +1 -0
  185. package/dist/organization-management/modules/workspaces/types/index.d.ts +39 -0
  186. package/dist/organization-management/modules/workspaces/types/index.d.ts.map +1 -0
  187. package/dist/organization-management/modules/workspaces/types/workspace-member.d.ts +48 -0
  188. package/dist/organization-management/modules/workspaces/types/workspace-member.d.ts.map +1 -0
  189. package/dist/organization-management/providers/OrgConsoleProvider.d.ts +19 -0
  190. package/dist/organization-management/providers/OrgConsoleProvider.d.ts.map +1 -0
  191. package/dist/organization-management/providers/OrgConsoleProvider.js +24 -0
  192. package/dist/organization-management/providers/OrgConsoleProvider.js.map +1 -0
  193. package/dist/organization-management/shared/components/dialog/ConfirmDialog.d.ts +28 -0
  194. package/dist/organization-management/shared/components/dialog/ConfirmDialog.d.ts.map +1 -0
  195. package/dist/organization-management/shared/components/dialog/ConfirmDialog.js +105 -0
  196. package/dist/organization-management/shared/components/dialog/ConfirmDialog.js.map +1 -0
  197. package/dist/organization-management/shared/components/feedback/EmptyState.d.ts +14 -0
  198. package/dist/organization-management/shared/components/feedback/EmptyState.d.ts.map +1 -0
  199. package/dist/organization-management/shared/components/feedback/EmptyState.js +30 -0
  200. package/dist/organization-management/shared/components/feedback/EmptyState.js.map +1 -0
  201. package/dist/organization-management/shared/components/feedback/ErrorState.d.ts +11 -0
  202. package/dist/organization-management/shared/components/feedback/ErrorState.d.ts.map +1 -0
  203. package/dist/organization-management/shared/components/feedback/ErrorState.js +37 -0
  204. package/dist/organization-management/shared/components/feedback/ErrorState.js.map +1 -0
  205. package/dist/organization-management/shared/components/feedback/LoadingState.d.ts +6 -0
  206. package/dist/organization-management/shared/components/feedback/LoadingState.d.ts.map +1 -0
  207. package/dist/organization-management/shared/components/feedback/LoadingState.js +24 -0
  208. package/dist/organization-management/shared/components/feedback/LoadingState.js.map +1 -0
  209. package/dist/organization-management/shared/components/input/SearchInput.d.ts +15 -0
  210. package/dist/organization-management/shared/components/input/SearchInput.d.ts.map +1 -0
  211. package/dist/organization-management/shared/components/input/SearchInput.js +40 -0
  212. package/dist/organization-management/shared/components/input/SearchInput.js.map +1 -0
  213. package/dist/organization-management/shared/components/input/SelectionCheckbox.d.ts +10 -0
  214. package/dist/organization-management/shared/components/input/SelectionCheckbox.d.ts.map +1 -0
  215. package/dist/organization-management/shared/components/input/SelectionCheckbox.js +21 -0
  216. package/dist/organization-management/shared/components/input/SelectionCheckbox.js.map +1 -0
  217. package/dist/organization-management/shared/hooks/useDebouncedValue.d.ts +2 -0
  218. package/dist/organization-management/shared/hooks/useDebouncedValue.d.ts.map +1 -0
  219. package/dist/organization-management/shared/hooks/useDebouncedValue.js +17 -0
  220. package/dist/organization-management/shared/hooks/useDebouncedValue.js.map +1 -0
  221. package/dist/organization-management/shared/hooks/useTr.d.ts +14 -0
  222. package/dist/organization-management/shared/hooks/useTr.d.ts.map +1 -0
  223. package/dist/organization-management/shared/hooks/useTr.js +14 -0
  224. package/dist/organization-management/shared/hooks/useTr.js.map +1 -0
  225. package/dist/organization-management/shared/logger.d.ts +11 -0
  226. package/dist/organization-management/shared/logger.d.ts.map +1 -0
  227. package/dist/organization-management/shared/logger.js +46 -0
  228. package/dist/organization-management/shared/logger.js.map +1 -0
  229. package/dist/organization-management/shared/recaptcha.d.ts +2 -0
  230. package/dist/organization-management/shared/recaptcha.d.ts.map +1 -0
  231. package/dist/organization-management/shared/recaptcha.js +6 -0
  232. package/dist/organization-management/shared/recaptcha.js.map +1 -0
  233. package/dist/organization-management/shared/types/graphql.d.ts +131 -0
  234. package/dist/organization-management/shared/types/graphql.d.ts.map +1 -0
  235. package/dist/organization-management/shared/types/graphql.js +10 -0
  236. package/dist/organization-management/shared/types/graphql.js.map +1 -0
  237. package/dist/organization-management/shared/utils/cn.d.ts +8 -0
  238. package/dist/organization-management/shared/utils/cn.d.ts.map +1 -0
  239. package/dist/organization-management/types/index.d.ts +46 -0
  240. package/dist/organization-management/types/index.d.ts.map +1 -0
  241. package/dist/utils/nativeBridge.d.ts +3 -0
  242. package/dist/utils/nativeBridge.d.ts.map +1 -0
  243. package/dist/utils/nativeBridge.js +2 -0
  244. package/package.json +116 -0
@@ -0,0 +1,14 @@
1
+ /**
2
+ * useTr — translation hook with fallback semantics.
3
+ *
4
+ * Wraps `useI18n().t()` so that when a key has no translation (i.e. the
5
+ * provider returns the key itself), the caller's English fallback is used
6
+ * instead. This keeps consumer call sites consistent and avoids leaking
7
+ * untranslated keys into the UI.
8
+ *
9
+ * @example
10
+ * const tr = useTr();
11
+ * return <h1>{tr('organizations.title', 'Organizations')}</h1>;
12
+ */
13
+ export declare function useTr(): (key: string, fallback: string) => string;
14
+ //# sourceMappingURL=useTr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTr.d.ts","sourceRoot":"","sources":["../../../../src/organization-management/shared/hooks/useTr.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CASjE"}
@@ -0,0 +1,14 @@
1
+ import { useCallback as e } from "react";
2
+ import { useI18n as t } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
3
+ //#region src/organization-management/shared/hooks/useTr.ts
4
+ function n() {
5
+ let { t: n } = t();
6
+ return e((e, t) => {
7
+ let r = n(e);
8
+ return r === e ? t : r;
9
+ }, [n]);
10
+ }
11
+ //#endregion
12
+ export { n as useTr };
13
+
14
+ //# sourceMappingURL=useTr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTr.js","names":[],"sources":["../../../../src/organization-management/shared/hooks/useTr.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\n/**\n * useTr — translation hook with fallback semantics.\n *\n * Wraps `useI18n().t()` so that when a key has no translation (i.e. the\n * provider returns the key itself), the caller's English fallback is used\n * instead. This keeps consumer call sites consistent and avoids leaking\n * untranslated keys into the UI.\n *\n * @example\n * const tr = useTr();\n * return <h1>{tr('organizations.title', 'Organizations')}</h1>;\n */\nexport function useTr(): (key: string, fallback: string) => string {\n const { t } = useI18n();\n return useCallback(\n (key: string, fallback: string): string => {\n const translated = t(key);\n return translated === key ? fallback : translated;\n },\n [t]\n );\n}\n"],"mappings":";;;AAeA,SAAgB,IAAmD;CACjE,IAAM,EAAE,SAAM,GAAS;AACvB,QAAO,GACJ,GAAa,MAA6B;EACzC,IAAM,IAAa,EAAE,EAAI;AACzB,SAAO,MAAe,IAAM,IAAW;IAEzC,CAAC,EAAE,CACJ"}
@@ -0,0 +1,11 @@
1
+ /** Redact a free-form ID by exposing only the first/last 4 characters. */
2
+ export declare function redactId(id: string | null | undefined): string | undefined;
3
+ type LogData = Record<string, unknown>;
4
+ interface OrganizationLogger {
5
+ info: (event: string, data?: LogData) => void;
6
+ warn: (event: string, data?: LogData) => void;
7
+ error: (event: string, data?: LogData, error?: unknown) => void;
8
+ }
9
+ export declare const logger: OrganizationLogger;
10
+ export {};
11
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/organization-management/shared/logger.ts"],"names":[],"mappings":"AAkBA,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAI1E;AAED,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvC,UAAU,kBAAkB;IAC1B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACjE;AAQD,eAAO,MAAM,MAAM,EAAE,kBA4BpB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { logManager as e } from "@burdenoff/fe-libs/shared/logger/LogManager";
2
+ //#region src/organization-management/shared/logger.ts
3
+ var t = "organization", n = (() => {
4
+ let n = e.getLogger(`microfe.${t}`);
5
+ return n.setContext({
6
+ component: "microfe-organization",
7
+ module: t
8
+ }), n;
9
+ })();
10
+ function r(e) {
11
+ if (e) return e.length <= 8 ? "***" : `${e.slice(0, 4)}…${e.slice(-4)}`;
12
+ }
13
+ function i(e) {
14
+ if (e) return e instanceof Error ? e : Error(typeof e == "string" ? e : JSON.stringify(e));
15
+ }
16
+ var a = {
17
+ info: (e, r) => {
18
+ try {
19
+ n.info(e, {
20
+ ...r,
21
+ module: t
22
+ });
23
+ } catch {}
24
+ },
25
+ warn: (e, r) => {
26
+ try {
27
+ n.warn(e, {
28
+ ...r,
29
+ module: t
30
+ });
31
+ } catch {}
32
+ },
33
+ error: (e, r, a) => {
34
+ try {
35
+ let o = i(a) ?? Error(e);
36
+ o.meta = {
37
+ ...r,
38
+ module: t
39
+ }, n.error(e, o);
40
+ } catch {}
41
+ }
42
+ };
43
+ //#endregion
44
+ export { a as logger, r as redactId };
45
+
46
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","names":[],"sources":["../../../src/organization-management/shared/logger.ts"],"sourcesContent":["/**\n * Module-scoped logger for `microfe-organization`.\n *\n * Wraps the fe-libs `LogManager` so every log entry is tagged with\n * `module: 'organization'` and IDs are redacted before they hit any sink.\n * Per the SRE guide (§7) we never log emails, display names or other PII.\n */\nimport { logManager } from '@burdenoff/fe-libs/shared/logger/LogManager';\nimport type { ILogger } from '@burdenoff/fe-libs/shared/logger/types';\n\nconst MODULE_NAME = 'organization';\n\nconst baseLogger: ILogger = (() => {\n const log = logManager.getLogger(`microfe.${MODULE_NAME}`);\n log.setContext({ component: 'microfe-organization', module: MODULE_NAME });\n return log;\n})();\n\n/** Redact a free-form ID by exposing only the first/last 4 characters. */\nexport function redactId(id: string | null | undefined): string | undefined {\n if (!id) return undefined;\n if (id.length <= 8) return '***';\n return `${id.slice(0, 4)}…${id.slice(-4)}`;\n}\n\ntype LogData = Record<string, unknown>;\n\ninterface OrganizationLogger {\n info: (event: string, data?: LogData) => void;\n warn: (event: string, data?: LogData) => void;\n error: (event: string, data?: LogData, error?: unknown) => void;\n}\n\nfunction toError(error: unknown): Error | undefined {\n if (!error) return undefined;\n if (error instanceof Error) return error;\n return new Error(typeof error === 'string' ? error : JSON.stringify(error));\n}\n\nexport const logger: OrganizationLogger = {\n info: (event, data) => {\n try {\n baseLogger.info(event, { ...data, module: MODULE_NAME });\n } catch {\n // Logger transport failures must not break the UI.\n }\n },\n warn: (event, data) => {\n try {\n baseLogger.warn(event, { ...data, module: MODULE_NAME });\n } catch {\n // Logger transport failures must not break the UI.\n }\n },\n error: (event, data, error) => {\n try {\n // The fe-libs Logger.error signature drops the `data` arg, so we attach\n // the structured payload to the Error object itself before forwarding.\n const errObj = toError(error) ?? new Error(event);\n const payload = { ...data, module: MODULE_NAME };\n type ErrorWithMeta = Error & { meta?: LogData };\n (errObj as ErrorWithMeta).meta = payload;\n baseLogger.error(event, errObj);\n } catch {\n // Logger transport failures must not break the UI.\n }\n },\n};\n"],"mappings":";;AAUA,IAAM,IAAc,gBAEd,WAA6B;CACjC,IAAM,IAAM,EAAW,UAAU,WAAW,IAAc;AAE1D,QADA,EAAI,WAAW;EAAE,WAAW;EAAwB,QAAQ;EAAa,CAAC,EACnE;IACL;AAGJ,SAAgB,EAAS,GAAmD;AACrE,OAEL,QADI,EAAG,UAAU,IAAU,QACpB,GAAG,EAAG,MAAM,GAAG,EAAE,CAAC,GAAG,EAAG,MAAM,GAAG;;AAW1C,SAAS,EAAQ,GAAmC;AAC7C,OAEL,QADI,aAAiB,QAAc,IACxB,MAAM,OAAO,KAAU,WAAW,IAAQ,KAAK,UAAU,EAAM,CAAC;;AAG7E,IAAa,IAA6B;CACxC,OAAO,GAAO,MAAS;AACrB,MAAI;AACF,KAAW,KAAK,GAAO;IAAE,GAAG;IAAM,QAAQ;IAAa,CAAC;UAClD;;CAIV,OAAO,GAAO,MAAS;AACrB,MAAI;AACF,KAAW,KAAK,GAAO;IAAE,GAAG;IAAM,QAAQ;IAAa,CAAC;UAClD;;CAIV,QAAQ,GAAO,GAAM,MAAU;AAC7B,MAAI;GAGF,IAAM,IAAS,EAAQ,EAAM,IAAQ,MAAM,EAAM;AAIjD,GADC,EAAyB,OAFV;IAAE,GAAG;IAAM,QAAQ;IAAa,EAGhD,EAAW,MAAM,GAAO,EAAO;UACzB;;CAIX"}
@@ -0,0 +1,2 @@
1
+ export declare function executeRecaptcha(action: string): Promise<string | undefined>;
2
+ //# sourceMappingURL=recaptcha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recaptcha.d.ts","sourceRoot":"","sources":["../../../src/organization-management/shared/recaptcha.ts"],"names":[],"mappings":"AAmDA,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiBlF"}
@@ -0,0 +1,6 @@
1
+ //#region src/organization-management/shared/recaptcha.ts
2
+ async function e(e) {}
3
+ //#endregion
4
+ export { e as executeRecaptcha };
5
+
6
+ //# sourceMappingURL=recaptcha.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recaptcha.js","names":[],"sources":["../../../src/organization-management/shared/recaptcha.ts"],"sourcesContent":["/// <reference types=\"vite/client\" />\n\nconst CAPTCHA_ENABLED = import.meta.env.VITE_CAPTCHA_ENABLED === 'true';\nconst SCRIPT_ID = 'burdenoff-recaptcha-v3';\n\ninterface Grecaptcha {\n ready(callback: () => void): void;\n execute(siteKey: string, options: { action: string }): Promise<string>;\n}\n\nfunction getGrecaptcha(): Grecaptcha | undefined {\n return (window as unknown as { grecaptcha?: Grecaptcha }).grecaptcha;\n}\n\nfunction getSiteKey(): string {\n const siteKey = import.meta.env.VITE_RECAPTCHA_SITE_KEY;\n if (typeof siteKey !== 'string' || siteKey.trim().length === 0) {\n throw new Error('reCAPTCHA site key is not configured');\n }\n return siteKey.trim();\n}\n\nfunction loadScript(siteKey: string): Promise<void> {\n if (getGrecaptcha()?.execute) {\n return Promise.resolve();\n }\n\n const existing = document.getElementById(SCRIPT_ID) as HTMLScriptElement | null;\n if (existing) {\n return new Promise((resolve, reject) => {\n existing.addEventListener('load', () => resolve(), { once: true });\n existing.addEventListener('error', () => reject(new Error('Failed to load reCAPTCHA')), {\n once: true,\n });\n });\n }\n\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.id = SCRIPT_ID;\n script.async = true;\n script.defer = true;\n script.src = `https://www.google.com/recaptcha/api.js?render=${encodeURIComponent(siteKey)}`;\n script.addEventListener('load', () => resolve(), { once: true });\n script.addEventListener('error', () => reject(new Error('Failed to load reCAPTCHA')), {\n once: true,\n });\n document.head.appendChild(script);\n });\n}\n\nexport async function executeRecaptcha(action: string): Promise<string | undefined> {\n if (!CAPTCHA_ENABLED) {\n return undefined;\n }\n\n const siteKey = getSiteKey();\n await loadScript(siteKey);\n const grecaptcha = getGrecaptcha();\n if (!grecaptcha?.execute) {\n throw new Error('reCAPTCHA is not available');\n }\n\n return new Promise((resolve, reject) => {\n grecaptcha.ready(() => {\n grecaptcha.execute(siteKey, { action }).then(resolve).catch(reject);\n });\n });\n}\n"],"mappings":";AAmDA,eAAsB,EAAiB,GAA6C"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Shared GraphQL types
3
+ * Generated types will be added via GraphQL Codegen
4
+ */
5
+ export interface PageInfo {
6
+ totalCount: number;
7
+ hasNextPage: boolean;
8
+ hasPreviousPage: boolean;
9
+ startCursor?: string;
10
+ endCursor?: string;
11
+ }
12
+ export interface PaginationInput {
13
+ first?: number;
14
+ after?: string;
15
+ last?: number;
16
+ before?: string;
17
+ }
18
+ export interface Connection<T> {
19
+ items: T[];
20
+ pageInfo: PageInfo;
21
+ }
22
+ export declare enum TenantStatus {
23
+ ACTIVE = "ACTIVE",
24
+ INACTIVE = "INACTIVE",
25
+ SUSPENDED = "SUSPENDED"
26
+ }
27
+ export declare enum OrganizationStatus {
28
+ ACTIVE = "ACTIVE",
29
+ INACTIVE = "INACTIVE",
30
+ ARCHIVED = "ARCHIVED"
31
+ }
32
+ export declare enum WorkspaceStatus {
33
+ ACTIVE = "ACTIVE",
34
+ INACTIVE = "INACTIVE",
35
+ ARCHIVED = "ARCHIVED"
36
+ }
37
+ export declare enum WorkspaceVisibility {
38
+ PRIVATE = "PRIVATE",
39
+ PUBLIC = "PUBLIC",
40
+ INTERNAL = "INTERNAL"
41
+ }
42
+ export declare enum OrganizationRole {
43
+ SUPER_ADMIN = "SUPER_ADMIN",
44
+ TENANT_ADMIN = "TENANT_ADMIN",
45
+ ORG_ADMIN = "ORG_ADMIN",
46
+ WORKSPACE_ADMIN = "WORKSPACE_ADMIN",
47
+ MEMBER = "MEMBER",
48
+ GUEST = "GUEST"
49
+ }
50
+ export declare enum WorkspaceRole {
51
+ SUPER_ADMIN = "SUPER_ADMIN",
52
+ TENANT_ADMIN = "TENANT_ADMIN",
53
+ ORG_ADMIN = "ORG_ADMIN",
54
+ WORKSPACE_ADMIN = "WORKSPACE_ADMIN",
55
+ MEMBER = "MEMBER",
56
+ GUEST = "GUEST"
57
+ }
58
+ export declare enum ProductStatus {
59
+ ACTIVE = "ACTIVE",
60
+ BETA = "BETA",
61
+ DEPRECATED = "DEPRECATED",
62
+ COMING_SOON = "COMING_SOON"
63
+ }
64
+ export interface Tenant {
65
+ id: string;
66
+ name: string;
67
+ slug: string;
68
+ status: TenantStatus;
69
+ subscriptionTier?: string;
70
+ billingAccountId?: string;
71
+ customDomain?: string;
72
+ logoUrl?: string;
73
+ metadata?: Record<string, unknown>;
74
+ createdAt: string;
75
+ updatedAt: string;
76
+ organizations?: Organization[];
77
+ products?: PlatformProduct[];
78
+ }
79
+ export interface Organization {
80
+ id: string;
81
+ tenantId: string;
82
+ name: string;
83
+ slug: string;
84
+ description?: string;
85
+ logo?: string;
86
+ website?: string;
87
+ status: OrganizationStatus;
88
+ metadata?: Record<string, unknown>;
89
+ createdAt: string;
90
+ updatedAt: string;
91
+ memberCount?: number;
92
+ workspaceCount?: number;
93
+ workspaces?: Workspace[];
94
+ }
95
+ export interface Workspace {
96
+ id: string;
97
+ organizationId: string;
98
+ tenantId: string;
99
+ name: string;
100
+ slug: string;
101
+ status: WorkspaceStatus;
102
+ type: string;
103
+ memberCount?: number;
104
+ endpoint?: string;
105
+ region?: string;
106
+ metadata?: Record<string, unknown>;
107
+ createdAt: string;
108
+ updatedAt: string;
109
+ }
110
+ export interface Member {
111
+ id: string;
112
+ userId: string;
113
+ organizationId: string;
114
+ role: string;
115
+ invitedBy?: string;
116
+ joinedAt?: string;
117
+ }
118
+ export interface PlatformProduct {
119
+ id: string;
120
+ name: string;
121
+ slug: string;
122
+ description?: string;
123
+ category?: string;
124
+ status: ProductStatus;
125
+ iconUrl?: string;
126
+ version?: string;
127
+ metadata?: Record<string, unknown>;
128
+ createdAt: string;
129
+ updatedAt: string;
130
+ }
131
+ //# sourceMappingURL=graphql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../../src/organization-management/shared/types/graphql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ //#region src/organization-management/shared/types/graphql.ts
2
+ var e = /* @__PURE__ */ function(e) {
3
+ return e.ACTIVE = "ACTIVE", e.INACTIVE = "INACTIVE", e.ARCHIVED = "ARCHIVED", e;
4
+ }({}), t = /* @__PURE__ */ function(e) {
5
+ return e.ACTIVE = "ACTIVE", e.INACTIVE = "INACTIVE", e.ARCHIVED = "ARCHIVED", e;
6
+ }({});
7
+ //#endregion
8
+ export { e as OrganizationStatus, t as WorkspaceStatus };
9
+
10
+ //# sourceMappingURL=graphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.js","names":[],"sources":["../../../../src/organization-management/shared/types/graphql.ts"],"sourcesContent":["/**\n * Shared GraphQL types\n * Generated types will be added via GraphQL Codegen\n */\n\n// Pagination\nexport interface PageInfo {\n totalCount: number;\n hasNextPage: boolean;\n hasPreviousPage: boolean;\n startCursor?: string;\n endCursor?: string;\n}\n\nexport interface PaginationInput {\n first?: number;\n after?: string;\n last?: number;\n before?: string;\n}\n\n// Connection pattern\nexport interface Connection<T> {\n items: T[];\n pageInfo: PageInfo;\n}\n\n// Common enums\nexport enum TenantStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n SUSPENDED = 'SUSPENDED',\n}\n\nexport enum OrganizationStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n ARCHIVED = 'ARCHIVED',\n}\n\nexport enum WorkspaceStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n ARCHIVED = 'ARCHIVED',\n}\n\nexport enum WorkspaceVisibility {\n PRIVATE = 'PRIVATE',\n PUBLIC = 'PUBLIC',\n INTERNAL = 'INTERNAL',\n}\n\nexport enum OrganizationRole {\n SUPER_ADMIN = 'SUPER_ADMIN',\n TENANT_ADMIN = 'TENANT_ADMIN',\n ORG_ADMIN = 'ORG_ADMIN',\n WORKSPACE_ADMIN = 'WORKSPACE_ADMIN',\n MEMBER = 'MEMBER',\n GUEST = 'GUEST',\n}\n\nexport enum WorkspaceRole {\n SUPER_ADMIN = 'SUPER_ADMIN',\n TENANT_ADMIN = 'TENANT_ADMIN',\n ORG_ADMIN = 'ORG_ADMIN',\n WORKSPACE_ADMIN = 'WORKSPACE_ADMIN',\n MEMBER = 'MEMBER',\n GUEST = 'GUEST',\n}\n\nexport enum ProductStatus {\n ACTIVE = 'ACTIVE',\n BETA = 'BETA',\n DEPRECATED = 'DEPRECATED',\n COMING_SOON = 'COMING_SOON',\n}\n\n// Base entity types (will be replaced by codegen)\nexport interface Tenant {\n id: string;\n name: string;\n slug: string;\n status: TenantStatus;\n subscriptionTier?: string;\n billingAccountId?: string;\n customDomain?: string;\n logoUrl?: string;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n organizations?: Organization[];\n products?: PlatformProduct[];\n}\n\nexport interface Organization {\n id: string;\n tenantId: string;\n name: string;\n slug: string;\n description?: string;\n logo?: string;\n website?: string;\n status: OrganizationStatus;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n memberCount?: number;\n workspaceCount?: number;\n workspaces?: Workspace[];\n}\n\nexport interface Workspace {\n id: string;\n organizationId: string;\n tenantId: string;\n name: string;\n slug: string;\n status: WorkspaceStatus;\n type: string; // PERSONAL, TEAM, etc.\n memberCount?: number;\n endpoint?: string;\n region?: string;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface Member {\n id: string;\n userId: string;\n organizationId: string;\n role: string;\n invitedBy?: string;\n joinedAt?: string;\n}\n\nexport interface PlatformProduct {\n id: string;\n name: string;\n slug: string;\n description?: string;\n category?: string;\n status: ProductStatus;\n iconUrl?: string;\n version?: string;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n}\n"],"mappings":";AAkCA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,SAAA,UACA,EAAA,WAAA,YACA,EAAA,WAAA;KACD,EAEW,IAAL,yBAAA,GAAA;QACL,EAAA,SAAA,UACA,EAAA,WAAA,YACA,EAAA,WAAA;KACD"}
@@ -0,0 +1,8 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ /**
4
+ * Merge Tailwind CSS classes safely
5
+ * Combines clsx for conditional classes and twMerge for Tailwind deduplication
6
+ */
7
+ export declare function cn(...inputs: ClassValue[]): string;
8
+ //# sourceMappingURL=cn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../../../src/organization-management/shared/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C;;;GAGG;AACH,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
@@ -0,0 +1,46 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export interface NavItem {
4
+ id: string;
5
+ label: string;
6
+ path: string;
7
+ icon?: ReactNode;
8
+ order: number;
9
+ group?: string;
10
+ }
11
+ export interface FooterItem {
12
+ id: string;
13
+ label: string;
14
+ order: number;
15
+ type?: string;
16
+ section?: 'left' | 'right' | 'center';
17
+ }
18
+ export interface User {
19
+ id: string;
20
+ email: string;
21
+ firstName?: string;
22
+ lastName?: string;
23
+ avatarUrl?: string;
24
+ }
25
+ export interface OrganizationRootProps {
26
+ basePath?: string;
27
+ navigate: (path: string) => void;
28
+ currentUser?: User;
29
+ tenantId?: string;
30
+ workspaceId?: string;
31
+ apiGatewayUrl?: string;
32
+ authToken?: string;
33
+ capabilities?: {
34
+ canManageOrganizations?: boolean;
35
+ canManageWorkspaces?: boolean;
36
+ canManageMembers?: boolean;
37
+ };
38
+ registerNavItems?: (items: NavItem | NavItem[]) => () => void;
39
+ registerFooterItems?: (items: FooterItem | FooterItem[]) => () => void;
40
+ callbacks?: {
41
+ onOrganizationCreate?: (orgId: string) => void;
42
+ onWorkspaceCreate?: (workspaceId: string) => void;
43
+ onMemberInvite?: (memberId: string) => void;
44
+ };
45
+ }
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organization-management/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CACvC;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAGjC,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,YAAY,CAAC,EAAE;QACb,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;IAGF,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,KAAK,MAAM,IAAI,CAAC;IAC9D,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,KAAK,MAAM,IAAI,CAAC;IAGvE,SAAS,CAAC,EAAE;QACV,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/C,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;QAClD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;KAC7C,CAAC;CACH"}
@@ -0,0 +1,3 @@
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';
3
+ //# sourceMappingURL=nativeBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeBridge.d.ts","sourceRoot":"","sources":["../../src/utils/nativeBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,GACb,MAAM,kCAAkC,CAAC;AAE1C,YAAY,EACV,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,cAAc,GACf,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { isNative as e, nativeConfirm as t, nativeImpact as n, nativeNotify as r, nativeToast as i } from "@burdenoff/fe-libs/shared/native";
2
+ export { e as isNative, t as nativeConfirm, n as nativeImpact, r as nativeNotify, i as nativeToast };
package/package.json ADDED
@@ -0,0 +1,116 @@
1
+ {
2
+ "name": "@burdenoff/microfe-organization",
3
+ "version": "2026.510.110",
4
+ "description": "Organization management microfrontend for Burdenoff products",
5
+ "type": "module",
6
+ "files": [
7
+ "dist",
8
+ "package.json",
9
+ "README.md"
10
+ ],
11
+ "imports": {
12
+ "#src/*": "./src/*",
13
+ "#organization/*": "./src/organization/*"
14
+ },
15
+ "exports": {
16
+ ".": {
17
+ "types": "./dist/index.d.ts",
18
+ "import": "./dist/index.js"
19
+ }
20
+ },
21
+ "main": "./dist/index.js",
22
+ "types": "./dist/index.d.ts",
23
+ "scripts": {
24
+ "dev": "vite",
25
+ "build": "tsc && vite build",
26
+ "schema:pull": "graphql-codegen --project schema-wspace && graphql-codegen --project schema-global",
27
+ "codegen": "graphql-codegen --project wspace && graphql-codegen --project global",
28
+ "codegen:all": "bun run schema:pull && bun run codegen",
29
+ "lint": "eslint .",
30
+ "lint:sanity": "if [ \"${CI:-}\" = \"true\" ]; then bun run lint; else bun run lint -- --cache --cache-location .eslintcache; fi",
31
+ "format": "prettier --write \"src/**/*.{ts,tsx}\"",
32
+ "type:check": "tsc --noEmit",
33
+ "test": "vitest run",
34
+ "test:watch": "vitest",
35
+ "test:coverage": "vitest run --coverage",
36
+ "sanity": "bun run codegen && bun run lint:sanity && bun run format && bun run type:check && bun run build && bun run test",
37
+ "switch:status": "bun scripts/deps-mode.ts status",
38
+ "switch:remote": "bun scripts/deps-mode.ts remote",
39
+ "switch:local": "bun scripts/deps-mode.ts local",
40
+ "switch:check": "bun scripts/deps-mode.ts check",
41
+ "prepare": "lefthook install || true",
42
+ "format:check": "prettier --check \"src/**/*.{ts,tsx}\""
43
+ },
44
+ "dependencies": {
45
+ "@apollo/client": "^3.12.0",
46
+ "@burdenoff/fe-libs": "2026.507.125",
47
+ "@tanstack/react-query": "^5.90.16",
48
+ "clsx": "^2.1.1",
49
+ "graphql": "^16.10.0",
50
+ "lucide-react": "^0.468.0",
51
+ "react": "^19.0.0",
52
+ "react-dom": "^19.0.0",
53
+ "react-router-dom": "^7.1.3",
54
+ "sonner": "^2.0.7",
55
+ "tailwind-merge": "^3.4.0",
56
+ "zod": "^3.25.76",
57
+ "zustand": "^5.0.3"
58
+ },
59
+ "devDependencies": {
60
+ "@eslint/js": "^9.39.1",
61
+ "@graphql-codegen/add": "^5.0.0",
62
+ "@graphql-codegen/cli": "^5.0.0",
63
+ "@graphql-codegen/import-types-preset": "^3.0.0",
64
+ "@graphql-codegen/schema-ast": "^4.0.0",
65
+ "@graphql-codegen/typescript": "^4.0.0",
66
+ "@graphql-codegen/typescript-operations": "^4.0.0",
67
+ "@graphql-codegen/typescript-react-apollo": "^4.0.0",
68
+ "@testing-library/jest-dom": "^6.9.1",
69
+ "@testing-library/react": "^16.3.2",
70
+ "@types/react": "^19.0.2",
71
+ "@types/react-dom": "^19.0.2",
72
+ "@vitejs/plugin-react": "^4.3.4",
73
+ "@vitest/coverage-v8": "^3.2.4",
74
+ "autoprefixer": "^10.4.20",
75
+ "eslint": "^9.18.0",
76
+ "eslint-plugin-react": "^7.37.5",
77
+ "eslint-plugin-react-hooks": "^7.0.1",
78
+ "jsdom": "^29.1.1",
79
+ "knip": "^6.12.2",
80
+ "lefthook": "^2.1.1",
81
+ "postcss": "^8.4.49",
82
+ "prettier": "^3.4.2",
83
+ "tailwindcss": "^4.0.0",
84
+ "typescript": "^5.9.0",
85
+ "typescript-eslint": "^8.46.0",
86
+ "vite": "8.0.8",
87
+ "vite-plugin-dts": "3.9.1",
88
+ "vitest": "^3.2.4"
89
+ },
90
+ "peerDependencies": {
91
+ "@apollo/client": "^3.12.0",
92
+ "react": "^19.0.0",
93
+ "react-dom": "^19.0.0",
94
+ "zustand": "^5.0.0"
95
+ },
96
+ "publishConfig": {
97
+ "access": "restricted"
98
+ },
99
+ "overrides": {
100
+ "lodash": ">=4.17.21",
101
+ "lodash-es": ">=4.17.21",
102
+ "dompurify": ">=3.3.4",
103
+ "fast-xml-parser": ">=4.5.5",
104
+ "@xmldom/xmldom": ">=0.8.12",
105
+ "swiper": ">=12.1.2",
106
+ "brace-expansion": ">=1.1.13",
107
+ "follow-redirects": ">=1.15.12",
108
+ "smol-toml": ">=1.6.1",
109
+ "axios": ">=1.15.0",
110
+ "flatted": ">=3.4.1",
111
+ "yaml": ">=2.8.3",
112
+ "picomatch": ">=2.3.2",
113
+ "immutable": ">=3.8.3",
114
+ "minimatch": ">=3.1.3"
115
+ }
116
+ }