@stapel/workspaces-react 0.5.0 → 0.7.0

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 (100) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/api/generated/schema.d.ts +384 -4
  3. package/dist/api/generated/schema.d.ts.map +1 -1
  4. package/dist/api/types.d.ts +20 -5
  5. package/dist/api/types.d.ts.map +1 -1
  6. package/dist/api/workspacesApi.d.ts +23 -1
  7. package/dist/api/workspacesApi.d.ts.map +1 -1
  8. package/dist/api/workspacesApi.js +4 -0
  9. package/dist/api/workspacesApi.js.map +1 -1
  10. package/dist/default/InviteAcceptPage.d.ts +28 -0
  11. package/dist/default/InviteAcceptPage.d.ts.map +1 -0
  12. package/dist/default/InviteAcceptPage.js +141 -0
  13. package/dist/default/InviteAcceptPage.js.map +1 -0
  14. package/dist/default/MembersManager.d.ts +4 -4
  15. package/dist/default/MembersManager.d.ts.map +1 -1
  16. package/dist/default/MembersManager.js +61 -56
  17. package/dist/default/MembersManager.js.map +1 -1
  18. package/dist/default/index.d.ts +2 -0
  19. package/dist/default/index.d.ts.map +1 -1
  20. package/dist/default/index.js +1 -0
  21. package/dist/default/index.js.map +1 -1
  22. package/dist/flows/inviteAcceptFlow.d.ts +155 -0
  23. package/dist/flows/inviteAcceptFlow.d.ts.map +1 -0
  24. package/dist/flows/inviteAcceptFlow.js +126 -0
  25. package/dist/flows/inviteAcceptFlow.js.map +1 -0
  26. package/dist/headless/Can.d.ts +40 -0
  27. package/dist/headless/Can.d.ts.map +1 -0
  28. package/dist/headless/Can.js +30 -0
  29. package/dist/headless/Can.js.map +1 -0
  30. package/dist/headless/InviteAcceptFlow.d.ts +44 -0
  31. package/dist/headless/InviteAcceptFlow.d.ts.map +1 -0
  32. package/dist/headless/InviteAcceptFlow.js +67 -0
  33. package/dist/headless/InviteAcceptFlow.js.map +1 -0
  34. package/dist/headless/RoleSelect.d.ts +41 -0
  35. package/dist/headless/RoleSelect.d.ts.map +1 -0
  36. package/dist/headless/RoleSelect.js +34 -0
  37. package/dist/headless/RoleSelect.js.map +1 -0
  38. package/dist/i18n/generated/errors.gen.d.ts +48 -0
  39. package/dist/i18n/generated/errors.gen.d.ts.map +1 -1
  40. package/dist/i18n/generated/errors.gen.js +24 -0
  41. package/dist/i18n/generated/errors.gen.js.map +1 -1
  42. package/dist/i18n/generated/errors.ru.gen.d.ts.map +1 -1
  43. package/dist/i18n/generated/errors.ru.gen.js +8 -0
  44. package/dist/i18n/generated/errors.ru.gen.js.map +1 -1
  45. package/dist/i18n/keys.d.ts +28 -0
  46. package/dist/i18n/keys.d.ts.map +1 -1
  47. package/dist/i18n/keys.js +64 -0
  48. package/dist/i18n/keys.js.map +1 -1
  49. package/dist/i18n/ru.d.ts.map +1 -1
  50. package/dist/i18n/ru.js +30 -0
  51. package/dist/i18n/ru.js.map +1 -1
  52. package/dist/index.d.ts +14 -3
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +9 -2
  55. package/dist/index.js.map +1 -1
  56. package/dist/model/capabilities.d.ts +21 -0
  57. package/dist/model/capabilities.d.ts.map +1 -0
  58. package/dist/model/capabilities.js +32 -0
  59. package/dist/model/capabilities.js.map +1 -0
  60. package/dist/model/emailMask.d.ts +22 -0
  61. package/dist/model/emailMask.d.ts.map +1 -0
  62. package/dist/model/emailMask.js +36 -0
  63. package/dist/model/emailMask.js.map +1 -0
  64. package/dist/model/mutations.d.ts +23 -3
  65. package/dist/model/mutations.d.ts.map +1 -1
  66. package/dist/model/mutations.js +39 -1
  67. package/dist/model/mutations.js.map +1 -1
  68. package/dist/model/queries.d.ts +56 -6
  69. package/dist/model/queries.d.ts.map +1 -1
  70. package/dist/model/queries.js +75 -7
  71. package/dist/model/queries.js.map +1 -1
  72. package/dist/model/queryKeys.d.ts +2 -0
  73. package/dist/model/queryKeys.d.ts.map +1 -1
  74. package/dist/model/queryKeys.js +6 -0
  75. package/dist/model/queryKeys.js.map +1 -1
  76. package/llms.txt +40 -15
  77. package/manifest.json +225 -3
  78. package/package.json +5 -5
  79. package/src/analytics/generated/events.json +1 -1
  80. package/src/api/generated/schema.ts +384 -4
  81. package/src/api/types.ts +20 -5
  82. package/src/api/workspacesApi.ts +50 -0
  83. package/src/default/InviteAcceptPage.tsx +373 -0
  84. package/src/default/MembersManager.tsx +155 -145
  85. package/src/default/index.ts +2 -0
  86. package/src/flows/inviteAcceptFlow.ts +289 -0
  87. package/src/headless/Can.tsx +49 -0
  88. package/src/headless/InviteAcceptFlow.tsx +105 -0
  89. package/src/headless/RoleSelect.tsx +58 -0
  90. package/src/i18n/generated/errors.gen.ts +24 -0
  91. package/src/i18n/generated/errors.json +62 -0
  92. package/src/i18n/generated/errors.ru.gen.ts +8 -0
  93. package/src/i18n/keys.ts +68 -0
  94. package/src/i18n/ru.ts +34 -0
  95. package/src/index.ts +26 -0
  96. package/src/model/capabilities.ts +37 -0
  97. package/src/model/emailMask.ts +37 -0
  98. package/src/model/mutations.ts +56 -4
  99. package/src/model/queries.ts +99 -7
  100. package/src/model/queryKeys.ts +10 -0
@@ -1,5 +1,5 @@
1
1
  import type { StapelClient } from "@stapel/core";
2
- import type { Member, MemberInvite, MemberInviteResult, MemberPage, MemberRoleUpdate, MembersParams, InvitationAccept, Workspace, WorkspaceCreate, WorkspaceList, WorkspaceUpdate } from "./types.js";
2
+ import type { Member, MemberInvite, MemberInviteResult, MemberPage, MemberRoleUpdate, MembersParams, InvitationAccept, InvitationClaim, InvitationPreview, RoleList, Workspace, WorkspaceCreate, WorkspaceList, WorkspaceUpdate } from "./types.js";
3
3
  /**
4
4
  * The pair's typed operation surface — one method per stapel-workspaces endpoint
5
5
  * a signed-in browser client may call, bound to the injected {@link StapelClient}
@@ -38,6 +38,28 @@ export interface WorkspacesApi {
38
38
  removeMember(workspaceId: string, userId: string): Promise<void>;
39
39
  /** Accept an invitation by its token — returns the caller's new membership. */
40
40
  acceptInvitation(body: InvitationAccept): Promise<Member>;
41
+ /**
42
+ * Public (AllowAny) invitation preview — what the `/invite/{token}` page
43
+ * renders before any auth decision. The token in the URL is the bearer
44
+ * secret: a credential, never log it.
45
+ */
46
+ getInvitationPreview(token: string): Promise<InvitationPreview>;
47
+ /**
48
+ * Mint a login grant for a NOT-yet-registered invitee (AllowAny; only valid
49
+ * while `email_registered === false` — an existing account gets 409
50
+ * `email_already_registered` and the frontend switches to login). The
51
+ * invitation is NOT consumed: accept stays a separate, deliberate step.
52
+ * The returned `grant_token` is exchanged at AUTH's `POST /grant/exchange/`
53
+ * — deliberately not this pair's surface (pairs don't depend on each
54
+ * other); `InviteAcceptFlow` hands it outward via `onLoginGrant`.
55
+ */
56
+ claimInvitation(token: string): Promise<InvitationClaim>;
57
+ /** Decline an invitation (authenticated + email-match) — the invitee's
58
+ * terminal "no". Decline ≠ revoke; both stay distinguishable in `status`. */
59
+ declineInvitation(token: string): Promise<void>;
60
+ /** The effective role registry (builtin + deployment overlay), for
61
+ * RoleSelect-class UI — capability strings verbatim, rank-descending. */
62
+ listRoles(): Promise<RoleList>;
41
63
  }
42
64
  export declare function createWorkspacesApi(client: StapelClient): WorkspacesApi;
43
65
  //# sourceMappingURL=workspacesApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspacesApi.d.ts","sourceRoot":"","sources":["../../src/api/workspacesApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAqBpB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,6EAA6E;IAC7E,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IACzC,uDAAuD;IACvD,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3D,wDAAwD;IACxD,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACtD,sEAAsE;IACtE,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,SAAS,CAAC,CAAC;IACtB,4CAA4C;IAC5C,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD,iEAAiE;IACjE,WAAW,CACT,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,mEAAmE;IACnE,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/B,mEAAmE;IACnE,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,8EAA8E;IAC9E,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,+EAA+E;IAC/E,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CA4DvE"}
1
+ {"version":3,"file":"workspacesApi.d.ts","sourceRoot":"","sources":["../../src/api/workspacesApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAqBpB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,6EAA6E;IAC7E,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IACzC,uDAAuD;IACvD,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3D,wDAAwD;IACxD,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACtD,sEAAsE;IACtE,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,SAAS,CAAC,CAAC;IACtB,4CAA4C;IAC5C,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD,iEAAiE;IACjE,WAAW,CACT,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,mEAAmE;IACnE,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/B,mEAAmE;IACnE,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,8EAA8E;IAC9E,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,+EAA+E;IAC/E,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAI1D;;;;OAIG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChE;;;;;;;;OAQG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACzD;iFAC6E;IAC7E,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAIhD;6EACyE;IACzE,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;CAChC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CA+EvE"}
@@ -39,6 +39,10 @@ export function createWorkspacesApi(client) {
39
39
  updateMemberRole: (workspaceId, userId, patch) => client.patch(`/${encodeURIComponent(workspaceId)}/members/${encodeURIComponent(userId)}`, patch, mutating()),
40
40
  removeMember: (workspaceId, userId) => client.delete(`/${encodeURIComponent(workspaceId)}/members/${encodeURIComponent(userId)}`, mutating()),
41
41
  acceptInvitation: (body) => client.post("/invitations/accept", body, mutating()),
42
+ getInvitationPreview: (token) => client.get(`/invitations/${encodeURIComponent(token)}`),
43
+ claimInvitation: (token) => client.post(`/invitations/${encodeURIComponent(token)}/claim`, undefined, mutating()),
44
+ declineInvitation: (token) => client.post(`/invitations/${encodeURIComponent(token)}/decline`, undefined, mutating()),
45
+ listRoles: () => client.get("/roles"),
42
46
  };
43
47
  }
44
48
  //# sourceMappingURL=workspacesApi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspacesApi.js","sourceRoot":"","sources":["../../src/api/workspacesApi.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,MAAM,YAAY,GAA2B;IAC3C,kBAAkB,EAAE,gBAAgB;CACrC,CAAC;AAEF,SAAS,QAAQ,CACf,OAAuD;IAEvD,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE;KAClD,CAAC;AACJ,CAAC;AA0DD,MAAM,UAAU,mBAAmB,CAAC,MAAoB;IACtD,OAAO;QACL,MAAM;QAEN,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAErC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CACxB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAA8B,EAAE,QAAQ,EAAE,CAAC;QAE9D,YAAY,EAAE,CAAC,WAAW,EAAE,EAAE,CAC5B,MAAM,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QAEnD,eAAe,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CACtC,MAAM,CAAC,KAAK,CACV,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,EACrC,KAA+B,EAC/B,QAAQ,EAAE,CACX;QAEH,eAAe,EAAE,CAAC,WAAW,EAAE,EAAE,CAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;QAElE,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,KAAK,GAAoC,EAAE,CAAC;YAClD,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS;gBAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/D,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS;gBAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YACxE,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC5D,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS;gBAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/D,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,WAAW,CAAC,UAAU,EAAE;gBAC/D,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,aAAa,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CACnC,MAAM,CAAC,IAAI,CACT,IAAI,kBAAkB,CAAC,WAAW,CAAC,iBAAiB,EACpD,IAA2B,EAC3B,QAAQ,EAAE,CACX;QAEH,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAC/C,MAAM,CAAC,KAAK,CACV,IAAI,kBAAkB,CAAC,WAAW,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAC3E,KAAgC,EAChC,QAAQ,EAAE,CACX;QAEH,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,MAAM,CACX,IAAI,kBAAkB,CAAC,WAAW,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAC3E,QAAQ,EAAE,CACX;QAEH,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CACzB,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,IAA+B,EAC/B,QAAQ,EAAE,CACX;KACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"workspacesApi.js","sourceRoot":"","sources":["../../src/api/workspacesApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ import type { Member } from "../api/types.js";
3
+ export interface InviteAcceptPageProps {
4
+ /** The invite token from the route — a bearer secret, never log it. */
5
+ readonly token: string;
6
+ /** The signed-in account's email, or null/undefined when no session
7
+ * (e.g. auth-react's `useAuthSessionState().user?.email ?? null`). */
8
+ readonly sessionEmail?: string | null;
9
+ /**
10
+ * Exchange the login grant at auth (the §B4 seam — see the module doc).
11
+ * Resolve = signed in (the page advances); reject = retry offered.
12
+ */
13
+ readonly onLoginGrant?: (grantToken: string) => void | Promise<void>;
14
+ /** Login slot for `loginRequired` (registered invitee, no session). */
15
+ readonly renderLoginPanel?: (ctx: {
16
+ onLoggedIn: (email: string) => void;
17
+ }) => ReactNode;
18
+ /** Basic-data slot for `basicData` (fresh account). Omitted → auto-skip. */
19
+ readonly renderInitialSetup?: (ctx: {
20
+ onDone: () => void;
21
+ }) => ReactNode;
22
+ /** Wrong-account CTA (sign out / switch). Omitted → CTA hidden. */
23
+ readonly onSwitchAccount?: () => void;
24
+ readonly onAccepted?: (member: Member) => void;
25
+ readonly onDeclined?: () => void;
26
+ }
27
+ export declare function InviteAcceptPage(props: InviteAcceptPageProps): ReactElement;
28
+ //# sourceMappingURL=InviteAcceptPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InviteAcceptPage.d.ts","sourceRoot":"","sources":["../../src/default/InviteAcceptPage.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKrD,OAAO,KAAK,EAAqB,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGjE,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;0EACsE;IACtE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,uEAAuE;IACvE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE;QAChC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KACrC,KAAK,SAAS,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,SAAS,CAAC;IACzE,mEAAmE;IACnE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CA4B3E"}
@@ -0,0 +1,141 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * `<InviteAcceptPage/>` — the default `/invite/{token}` route component
4
+ * (org-program §B4): every state of the `InviteAcceptFlow` headless journey
5
+ * rendered with antd, with the two HOST SLOTS the pair cannot own:
6
+ *
7
+ * - `renderLoginPanel` — the sign-in surface for a registered invitee
8
+ * without a session (drop auth-react's `<AuthPanel/>` in; call
9
+ * `onLoggedIn(email)` — or simply let the `sessionEmail` prop update,
10
+ * the flow re-routes on it automatically).
11
+ * - `renderInitialSetup` — the basic-data step for a freshly created
12
+ * account (drop profiles-react's `InitialSetupPrompt`/`InitialSetupModal`
13
+ * in; call `onDone()`). Omitted → the step auto-skips.
14
+ *
15
+ * THE GRANT SEAM (§B4): for a NEW user the flow mints a login grant and this
16
+ * page hands it to YOUR `onLoginGrant(grantToken)` — wire it to auth-react's
17
+ * `api.exchangeLoginGrant(grantToken)` + `session.adopt(...)`. When your
18
+ * callback's promise resolves the page advances the flow automatically
19
+ * (`grantExchanged`); a rejection shows a retry. The pairs stay decoupled:
20
+ * this package never imports auth-react.
21
+ *
22
+ * Like the pair's other default skins (MembersManager/WorkspaceSettings),
23
+ * theming comes from the host's antd ConfigProvider — this is a route BODY,
24
+ * not a self-themed shell.
25
+ */
26
+ import { useEffect, useRef, useState } from "react";
27
+ import { Alert, Button, Card, Flex, Result, Spin, Typography } from "antd";
28
+ import { useFormatFlowError, useT } from "@stapel/core";
29
+ import { InviteAcceptFlow } from "../headless/InviteAcceptFlow.js";
30
+ import { WORKSPACES_I18N_KEYS } from "../i18n/keys.js";
31
+ export function InviteAcceptPage(props) {
32
+ return (_jsx(InviteAcceptFlow, { token: props.token, sessionEmail: props.sessionEmail ?? null, ...(props.onAccepted !== undefined ? { onAccepted: props.onAccepted } : {}), ...(props.onDeclined !== undefined ? { onDeclined: props.onDeclined } : {}), children: (bag) => (_jsx(PageBody, { bag: bag, sessionEmail: props.sessionEmail ?? null, ...(props.onLoginGrant !== undefined
33
+ ? { onLoginGrant: props.onLoginGrant }
34
+ : {}), ...(props.renderLoginPanel !== undefined
35
+ ? { renderLoginPanel: props.renderLoginPanel }
36
+ : {}), ...(props.renderInitialSetup !== undefined
37
+ ? { renderInitialSetup: props.renderInitialSetup }
38
+ : {}), ...(props.onSwitchAccount !== undefined
39
+ ? { onSwitchAccount: props.onSwitchAccount }
40
+ : {}) })) }));
41
+ }
42
+ const UNAVAILABLE_KEY = {
43
+ expired: WORKSPACES_I18N_KEYS.inviteUnavailableExpired,
44
+ revoked: WORKSPACES_I18N_KEYS.inviteUnavailableRevoked,
45
+ accepted: WORKSPACES_I18N_KEYS.inviteUnavailableAccepted,
46
+ declined: WORKSPACES_I18N_KEYS.inviteUnavailableDeclined,
47
+ };
48
+ function InviteHeader(props) {
49
+ const t = useT();
50
+ return (_jsxs(Flex, { vertical: true, gap: 4, children: [_jsx(Typography.Title, { level: 3, style: { margin: 0 }, children: t(WORKSPACES_I18N_KEYS.inviteAcceptTitle, {
51
+ workspace: props.preview.workspace_name,
52
+ }) }), _jsx(Typography.Text, { type: "secondary", children: t(WORKSPACES_I18N_KEYS.inviteRoleLine, { role: props.preview.role }) }), _jsx(Typography.Text, { type: "secondary", children: t(WORKSPACES_I18N_KEYS.inviteEmailLine, {
53
+ email: props.preview.email_masked,
54
+ }) })] }));
55
+ }
56
+ /** A real component (not hooks in the render-prop lambda) — owns the
57
+ * grant-exchange effect below. */
58
+ function PageBody(props) {
59
+ const t = useT();
60
+ const formatError = useFormatFlowError();
61
+ const { bag } = props;
62
+ const s = bag.state;
63
+ // ── the grant seam: run the host's exchange when the grant is issued ──────
64
+ const { onLoginGrant, renderInitialSetup } = props;
65
+ const grantToken = s.step === "grantIssued" ? s.grantToken : null;
66
+ const [exchangeFailed, setExchangeFailed] = useState(false);
67
+ const exchangedRef = useRef(null);
68
+ useEffect(() => {
69
+ if (grantToken === null || onLoginGrant === undefined)
70
+ return;
71
+ if (exchangedRef.current === grantToken)
72
+ return; // once per grant
73
+ exchangedRef.current = grantToken;
74
+ setExchangeFailed(false);
75
+ void (async () => {
76
+ try {
77
+ await onLoginGrant(grantToken);
78
+ bag.grantExchanged();
79
+ }
80
+ catch {
81
+ // The grant is single-use server-side but un-consumed on a network
82
+ // fault; retry re-runs the host callback with the SAME token.
83
+ exchangedRef.current = null;
84
+ setExchangeFailed(true);
85
+ }
86
+ })();
87
+ }, [grantToken, onLoginGrant, bag]);
88
+ // ── basic-data auto-skip when the host provides no slot ───────────────────
89
+ useEffect(() => {
90
+ if (s.step === "basicData" && renderInitialSetup === undefined) {
91
+ bag.completeBasicData();
92
+ }
93
+ }, [s.step, renderInitialSetup, bag]);
94
+ switch (s.step) {
95
+ case "idle":
96
+ case "loadingPreview":
97
+ return (_jsx(Card, { "data-testid": "invite-accept-page", children: _jsxs(Flex, { vertical: true, align: "center", gap: "middle", children: [_jsx(Typography.Text, { type: "secondary", children: t(WORKSPACES_I18N_KEYS.inviteLoading) }), _jsx(Spin, {})] }) }));
98
+ case "previewError":
99
+ return (_jsx(Card, { "data-testid": "invite-accept-page", children: _jsx(Alert, { type: "error", showIcon: true, message: formatError(s.error) }) }));
100
+ case "unavailable":
101
+ return (_jsx(Card, { "data-testid": "invite-accept-page", children: _jsx(Result, { status: "info", title: s.preview.workspace_name, subTitle: t(UNAVAILABLE_KEY[s.status] ??
102
+ WORKSPACES_I18N_KEYS.inviteUnavailableRevoked) }) }));
103
+ case "wrongAccount":
104
+ return (_jsx(Card, { "data-testid": "invite-accept-page", children: _jsxs(Flex, { vertical: true, gap: "middle", children: [_jsx(InviteHeader, { preview: s.preview }), _jsx(Alert, { type: "warning", showIcon: true, message: t(WORKSPACES_I18N_KEYS.inviteWrongAccount), description: t(WORKSPACES_I18N_KEYS.inviteWrongAccountHint, {
105
+ email: props.sessionEmail ?? "",
106
+ invited: s.preview.email_masked,
107
+ }) }), props.onSwitchAccount && (_jsx(Button, { onClick: props.onSwitchAccount, "data-analytics": "flow", children: t(WORKSPACES_I18N_KEYS.inviteSwitchAccountCta) }))] }) }));
108
+ case "loginRequired":
109
+ return (_jsx(Card, { "data-testid": "invite-accept-page", children: _jsxs(Flex, { vertical: true, gap: "middle", children: [_jsx(InviteHeader, { preview: s.preview }), _jsx(Typography.Text, { strong: true, children: t(WORKSPACES_I18N_KEYS.inviteLoginTitle) }), props.renderLoginPanel?.({
110
+ onLoggedIn: (email) => bag.sessionEstablished(email),
111
+ })] }) }));
112
+ case "newUser":
113
+ case "claiming":
114
+ case "claimError":
115
+ return (_jsx(Card, { "data-testid": "invite-accept-page", children: _jsxs(Flex, { vertical: true, gap: "middle", children: [_jsx(InviteHeader, { preview: s.preview }), _jsx(Typography.Text, { type: "secondary", children: t(WORKSPACES_I18N_KEYS.inviteNewUserHint, {
116
+ email: s.preview.email_masked,
117
+ }) }), s.step === "claimError" && (_jsx(Alert, { type: "error", showIcon: true, message: formatError(s.error) })), _jsx(Button, { type: "primary", loading: s.step === "claiming", onClick: () => bag.claim(), "data-analytics": "flow", children: t(s.step === "claiming"
118
+ ? WORKSPACES_I18N_KEYS.inviteClaiming
119
+ : WORKSPACES_I18N_KEYS.inviteCreateAccountCta) })] }) }));
120
+ case "grantIssued":
121
+ return (_jsx(Card, { "data-testid": "invite-accept-page", children: _jsx(Flex, { vertical: true, align: "center", gap: "middle", children: exchangeFailed ? (_jsxs(_Fragment, { children: [_jsx(Alert, { type: "error", showIcon: true, message: t(WORKSPACES_I18N_KEYS.inviteExchangeFailed) }), _jsx(Button, { type: "primary", onClick: () => {
122
+ // Re-arm the effect for the same grant token.
123
+ exchangedRef.current = null;
124
+ setExchangeFailed(false);
125
+ }, "data-analytics": "flow", children: t(WORKSPACES_I18N_KEYS.inviteRetryCta) })] })) : (_jsxs(_Fragment, { children: [_jsx(Typography.Text, { type: "secondary", children: t(WORKSPACES_I18N_KEYS.inviteExchanging) }), _jsx(Spin, {})] })) }) }));
126
+ case "basicData":
127
+ return (_jsx(Card, { "data-testid": "invite-accept-page", children: _jsxs(Flex, { vertical: true, gap: "middle", children: [_jsx(Typography.Title, { level: 4, style: { margin: 0 }, children: t(WORKSPACES_I18N_KEYS.inviteBasicDataTitle) }), renderInitialSetup ? (renderInitialSetup({ onDone: () => bag.completeBasicData() })) : (_jsx(Spin, {}))] }) }));
128
+ case "acceptPrompt":
129
+ case "accepting":
130
+ case "declining":
131
+ case "acceptError":
132
+ return (_jsx(Card, { "data-testid": "invite-accept-page", children: _jsxs(Flex, { vertical: true, gap: "middle", children: [_jsx(InviteHeader, { preview: s.preview }), s.step === "acceptError" && (_jsx(Alert, { type: "error", showIcon: true, message: formatError(s.error) })), _jsxs(Flex, { gap: "small", children: [_jsx(Button, { type: "primary", loading: s.step === "accepting", disabled: s.step === "declining", onClick: () => bag.accept(), "data-analytics": "flow", children: t(WORKSPACES_I18N_KEYS.inviteJoinCta) }), _jsx(Button, { danger: true, loading: s.step === "declining", disabled: s.step === "accepting", onClick: () => bag.decline(), "data-analytics": "flow", children: t(WORKSPACES_I18N_KEYS.inviteDeclineCta) })] })] }) }));
133
+ case "accepted":
134
+ return (_jsx(Card, { "data-testid": "invite-accept-page", children: _jsx(Result, { status: "success", title: t(WORKSPACES_I18N_KEYS.inviteAccepted, {
135
+ workspace: s.preview.workspace_name,
136
+ }) }) }));
137
+ case "declined":
138
+ return (_jsx(Card, { "data-testid": "invite-accept-page", children: _jsx(Result, { status: "info", title: s.preview.workspace_name, subTitle: t(WORKSPACES_I18N_KEYS.inviteDeclined) }) }));
139
+ }
140
+ }
141
+ //# sourceMappingURL=InviteAcceptPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InviteAcceptPage.js","sourceRoot":"","sources":["../../src/default/InviteAcceptPage.tsx"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ export interface MembersManagerProps {
3
3
  workspaceId: string;
4
4
  /**
5
5
  * Whether the caller may invite, change roles, and remove members. The
6
- * host already knows the caller's own role in this workspace (e.g. from
7
- * `useWorkspace(workspaceId).data?.my_role`); this component doesn't
8
- * re-derive it — pass `false` for a read-only roster (e.g. a `viewer`/
9
- * `member` looking at their teammates). Default `true`.
6
+ * host already knows the caller's own verdict in this workspace (e.g.
7
+ * `useCapabilities(workspaceId).can("members.invite")`, or the coarser
8
+ * `my_role`); this component doesn't re-derive it — pass `false` for a
9
+ * read-only roster. Default `true`.
10
10
  */
11
11
  canManage?: boolean;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MembersManager.d.ts","sourceRoot":"","sources":["../../src/default/MembersManager.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAQ1C,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAkBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CA4IvE"}
1
+ {"version":3,"file":"MembersManager.d.ts","sourceRoot":"","sources":["../../src/default/MembersManager.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAU1C,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CA0JvE"}
@@ -5,73 +5,78 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  * инвайты)"). Built entirely on this pair's EXISTING `Members` headless
6
6
  * wrapper (`useMembers`/`useInviteMembers`/`useUpdateMemberRole`/
7
7
  * `useRemoveMember`) — no new backend surface.
8
+ *
9
+ * Roles come from the EFFECTIVE registry via the `RoleSelect` headless
10
+ * (GET /roles, org-program §A2) — not a hardcoded builtin four: a deployment
11
+ * that overlays `STAPEL_WORKSPACES["ROLES"]` (e.g. a `secretary`) sees its
12
+ * roles here with `workspaces.role.<key>` labels (client-bundle merge,
13
+ * raw-name fallback). `owner` is offered only in the member-row select (the
14
+ * backend enforces "only an owner grants owner" and last-owner protection);
15
+ * the invite dialog filters it out, as before.
8
16
  */
9
17
  import { useState } from "react";
10
18
  import { Alert, Button, Card, Input, Modal, Popconfirm, Select, Table, Typography } from "antd";
11
19
  import { useT } from "@stapel/core";
12
20
  import { Members } from "../headless/Members.js";
21
+ import { RoleSelect } from "../headless/RoleSelect.js";
13
22
  import { WORKSPACES_I18N_KEYS } from "../i18n/keys.js";
14
- const ROLES = ["owner", "admin", "member", "viewer"];
15
- const ROLE_KEY = {
16
- owner: "roleOwner",
17
- admin: "roleAdmin",
18
- member: "roleMember",
19
- viewer: "roleViewer",
20
- };
21
- function isWorkspaceRole(value) {
22
- return ROLES.includes(value);
23
- }
23
+ const DEFAULT_INVITE_ROLE = "member";
24
24
  export function MembersManager(props) {
25
25
  const t = useT();
26
26
  const canManage = props.canManage ?? true;
27
27
  const [inviteOpen, setInviteOpen] = useState(false);
28
28
  const [emailsText, setEmailsText] = useState("");
29
- const [inviteRole, setInviteRole] = useState("member");
30
- return (_jsx(Members, { workspaceId: props.workspaceId, children: ({ members, isLoading, isError, error, invite, isInviting, updateRole, remove }) => {
31
- function openInvite() {
32
- setEmailsText("");
33
- setInviteRole("member");
34
- setInviteOpen(true);
35
- }
36
- function submitInvite() {
37
- const emails = emailsText
38
- .split(/[,\s]+/)
39
- .map((e) => e.trim())
40
- .filter((e) => e.length > 0);
41
- if (emails.length === 0)
42
- return;
43
- invite({ emails, role: inviteRole });
44
- setInviteOpen(false);
45
- }
46
- const columns = [
47
- {
48
- title: "Email",
49
- dataIndex: "email",
50
- key: "email",
51
- render: (value) => value ?? "—",
52
- },
53
- {
54
- title: t(WORKSPACES_I18N_KEYS.membersInviteRoleLabel),
55
- key: "role",
56
- render: (_, member) => {
57
- const role = isWorkspaceRole(member.role) ? member.role : "member";
58
- return canManage ? (_jsx(Select, { value: role, style: { width: 140 }, onChange: (next) => updateRole({ userId: member.user_id, role: next }), options: ROLES.map((r) => ({ value: r, label: t(WORKSPACES_I18N_KEYS[ROLE_KEY[r]]) })) })) : (_jsx("span", { children: t(WORKSPACES_I18N_KEYS[ROLE_KEY[role]]) }));
29
+ const [inviteRole, setInviteRole] = useState(DEFAULT_INVITE_ROLE);
30
+ return (_jsx(RoleSelect, { children: (rolesBag) => (_jsx(Members, { workspaceId: props.workspaceId, children: ({ members, isLoading, isError, error, invite, isInviting, updateRole, remove }) => {
31
+ const { labelFor } = rolesBag;
32
+ const roleOptions = rolesBag.roles.map((r) => ({
33
+ value: r.role,
34
+ label: labelFor(r.role),
35
+ }));
36
+ const inviteRoleOptions = roleOptions.filter((o) => o.value !== "owner");
37
+ function openInvite() {
38
+ setEmailsText("");
39
+ setInviteRole(DEFAULT_INVITE_ROLE);
40
+ setInviteOpen(true);
41
+ }
42
+ function submitInvite() {
43
+ const emails = emailsText
44
+ .split(/[,\s]+/)
45
+ .map((e) => e.trim())
46
+ .filter((e) => e.length > 0);
47
+ if (emails.length === 0)
48
+ return;
49
+ invite({ emails, role: inviteRole });
50
+ setInviteOpen(false);
51
+ }
52
+ const columns = [
53
+ {
54
+ title: "Email",
55
+ dataIndex: "email",
56
+ key: "email",
57
+ render: (value) => value ?? "—",
58
+ },
59
+ {
60
+ title: t(WORKSPACES_I18N_KEYS.membersInviteRoleLabel),
61
+ key: "role",
62
+ render: (_, member) => canManage ? (_jsx(Select, { value: member.role, style: { width: 160 }, loading: rolesBag.isLoading, onChange: (next) => updateRole({ userId: member.user_id, role: next }),
63
+ // A member's CURRENT role may be missing from the
64
+ // registry options (a deployment removed an overlay
65
+ // role) — antd shows the raw value then, which matches
66
+ // labelFor's raw-name fallback contract.
67
+ options: roleOptions })) : (_jsx("span", { children: labelFor(member.role) })),
59
68
  },
60
- },
61
- ...(canManage
62
- ? [
63
- {
64
- title: "",
65
- key: "actions",
66
- render: (_, member) => (_jsx(Popconfirm, { title: t(WORKSPACES_I18N_KEYS.membersRemoveConfirm), onConfirm: () => remove(member.user_id), children: _jsx(Button, { danger: true, type: "link", children: t(WORKSPACES_I18N_KEYS.membersRemove) }) })),
67
- },
68
- ]
69
- : []),
70
- ];
71
- return (_jsxs(Card, { "data-testid": "members-manager", children: [_jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "flex-start", gap: 16 }, children: [_jsxs("div", { children: [_jsx(Typography.Title, { level: 4, style: { marginTop: 0 }, children: t(WORKSPACES_I18N_KEYS.membersTitle) }), _jsx(Typography.Text, { type: "secondary", children: t(WORKSPACES_I18N_KEYS.membersSubtitle) })] }), canManage && (_jsx(Button, { type: "primary", onClick: openInvite, "data-analytics": "none", "data-analytics-reason": "local-ui-open-invite-dialog", children: t(WORKSPACES_I18N_KEYS.membersInvite) }))] }), isError && error && (_jsx(Alert, { style: { marginTop: 12 }, type: "error", showIcon: true, message: error.message })), _jsx(Table, { style: { marginTop: 16 }, size: "small", loading: isLoading, rowKey: (member) => member.id, dataSource: members, columns: columns, pagination: false }), _jsx(Modal, { title: t(WORKSPACES_I18N_KEYS.membersInviteDialogTitle), open: inviteOpen, onCancel: () => setInviteOpen(false), onOk: submitInvite, okButtonProps: { loading: isInviting, disabled: emailsText.trim().length === 0 }, children: _jsxs("div", { style: { display: "grid", gap: 12 }, children: [_jsxs("div", { children: [_jsx(Typography.Text, { children: t(WORKSPACES_I18N_KEYS.membersInviteEmailsLabel) }), _jsx(Input, { value: emailsText, onChange: (e) => setEmailsText(e.target.value), placeholder: t(WORKSPACES_I18N_KEYS.membersInviteEmailsPlaceholder) })] }), _jsxs("div", { children: [_jsx(Typography.Text, { children: t(WORKSPACES_I18N_KEYS.membersInviteRoleLabel) }), _jsx(Select, { value: inviteRole, onChange: setInviteRole, style: { width: "100%" }, options: ROLES.filter((r) => r !== "owner").map((r) => ({
72
- value: r,
73
- label: t(WORKSPACES_I18N_KEYS[ROLE_KEY[r]]),
74
- })) })] })] }) })] }));
75
- } }));
69
+ ...(canManage
70
+ ? [
71
+ {
72
+ title: "",
73
+ key: "actions",
74
+ render: (_, member) => (_jsx(Popconfirm, { title: t(WORKSPACES_I18N_KEYS.membersRemoveConfirm), onConfirm: () => remove(member.user_id), children: _jsx(Button, { danger: true, type: "link", children: t(WORKSPACES_I18N_KEYS.membersRemove) }) })),
75
+ },
76
+ ]
77
+ : []),
78
+ ];
79
+ return (_jsxs(Card, { "data-testid": "members-manager", children: [_jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "flex-start", gap: 16 }, children: [_jsxs("div", { children: [_jsx(Typography.Title, { level: 4, style: { marginTop: 0 }, children: t(WORKSPACES_I18N_KEYS.membersTitle) }), _jsx(Typography.Text, { type: "secondary", children: t(WORKSPACES_I18N_KEYS.membersSubtitle) })] }), canManage && (_jsx(Button, { type: "primary", onClick: openInvite, "data-analytics": "none", "data-analytics-reason": "local-ui-open-invite-dialog", children: t(WORKSPACES_I18N_KEYS.membersInvite) }))] }), isError && error && (_jsx(Alert, { style: { marginTop: 12 }, type: "error", showIcon: true, message: error.message })), _jsx(Table, { style: { marginTop: 16 }, size: "small", loading: isLoading, rowKey: (member) => member.id, dataSource: members, columns: columns, pagination: false }), _jsx(Modal, { title: t(WORKSPACES_I18N_KEYS.membersInviteDialogTitle), open: inviteOpen, onCancel: () => setInviteOpen(false), onOk: submitInvite, okButtonProps: { loading: isInviting, disabled: emailsText.trim().length === 0 }, children: _jsxs("div", { style: { display: "grid", gap: 12 }, children: [_jsxs("div", { children: [_jsx(Typography.Text, { children: t(WORKSPACES_I18N_KEYS.membersInviteEmailsLabel) }), _jsx(Input, { value: emailsText, onChange: (e) => setEmailsText(e.target.value), placeholder: t(WORKSPACES_I18N_KEYS.membersInviteEmailsPlaceholder) })] }), _jsxs("div", { children: [_jsx(Typography.Text, { children: t(WORKSPACES_I18N_KEYS.membersInviteRoleLabel) }), _jsx(Select, { value: inviteRole, onChange: setInviteRole, style: { width: "100%" }, loading: rolesBag.isLoading, options: inviteRoleOptions })] })] }) })] }));
80
+ } })) }));
76
81
  }
77
82
  //# sourceMappingURL=MembersManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MembersManager.js","sourceRoot":"","sources":["../../src/default/MembersManager.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MembersManager.js","sourceRoot":"","sources":["../../src/default/MembersManager.tsx"],"names":[],"mappings":"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"}
@@ -15,4 +15,6 @@ export { WorkspaceSettings } from "./WorkspaceSettings.js";
15
15
  export type { WorkspaceSettingsProps } from "./WorkspaceSettings.js";
16
16
  export { MembersManager } from "./MembersManager.js";
17
17
  export type { MembersManagerProps } from "./MembersManager.js";
18
+ export { InviteAcceptPage } from "./InviteAcceptPage.js";
19
+ export type { InviteAcceptPageProps } from "./InviteAcceptPage.js";
18
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -13,4 +13,5 @@
13
13
  */
14
14
  export { WorkspaceSettings } from "./WorkspaceSettings.js";
15
15
  export { MembersManager } from "./MembersManager.js";
16
+ export { InviteAcceptPage } from "./InviteAcceptPage.js";
16
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}