@orthacms/users-admin 0.4.3 → 0.5.2

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 (116) hide show
  1. package/README.md +2 -1
  2. package/dist/lib/presentation/membersFilterFields/index.d.ts +3 -1
  3. package/dist/lib/presentation/membersFilterFields/index.d.ts.map +1 -1
  4. package/dist/lib/presentation/membersFilterFields/index.js +3 -1
  5. package/dist/lib/presentation/pages/MembersPage/index.d.ts.map +1 -1
  6. package/dist/lib/presentation/pages/MembersPage/index.js +21 -8
  7. package/dist/lib/presentation/usersPlugin/index.d.ts +14 -5
  8. package/dist/lib/presentation/usersPlugin/index.d.ts.map +1 -1
  9. package/dist/lib/presentation/usersPlugin/index.js +14 -5
  10. package/package.json +9 -9
  11. package/dist/lib/api/useAddWorkspaceMember/index.d.ts +0 -16
  12. package/dist/lib/api/useAddWorkspaceMember/index.d.ts.map +0 -1
  13. package/dist/lib/api/useInviteMember/index.d.ts +0 -17
  14. package/dist/lib/api/useInviteMember/index.d.ts.map +0 -1
  15. package/dist/lib/api/useMembers/index.d.ts +0 -15
  16. package/dist/lib/api/useMembers/index.d.ts.map +0 -1
  17. package/dist/lib/api/useMembersMutation/index.d.ts +0 -13
  18. package/dist/lib/api/useMembersMutation/index.d.ts.map +0 -1
  19. package/dist/lib/api/useRemoveWorkspaceMember/index.d.ts +0 -15
  20. package/dist/lib/api/useRemoveWorkspaceMember/index.d.ts.map +0 -1
  21. package/dist/lib/api/useResendInvite/index.d.ts +0 -8
  22. package/dist/lib/api/useResendInvite/index.d.ts.map +0 -1
  23. package/dist/lib/api/useRevokeInvite/index.d.ts +0 -7
  24. package/dist/lib/api/useRevokeInvite/index.d.ts.map +0 -1
  25. package/dist/lib/api/useRevokeSession/index.d.ts +0 -15
  26. package/dist/lib/api/useRevokeSession/index.d.ts.map +0 -1
  27. package/dist/lib/api/useSetMemberStatus/index.d.ts +0 -15
  28. package/dist/lib/api/useSetMemberStatus/index.d.ts.map +0 -1
  29. package/dist/lib/api/useUpdateMember/index.d.ts +0 -15
  30. package/dist/lib/api/useUpdateMember/index.d.ts.map +0 -1
  31. package/dist/lib/api/useUserDetail/index.d.ts +0 -9
  32. package/dist/lib/api/useUserDetail/index.d.ts.map +0 -1
  33. package/dist/lib/api/useUserSessions/index.d.ts +0 -25
  34. package/dist/lib/api/useUserSessions/index.d.ts.map +0 -1
  35. package/dist/lib/api/useWorkspaceOptions/index.d.ts +0 -18
  36. package/dist/lib/api/useWorkspaceOptions/index.d.ts.map +0 -1
  37. package/dist/lib/components/AccountMenu/index.d.ts +0 -9
  38. package/dist/lib/components/AccountMenu/index.d.ts.map +0 -1
  39. package/dist/lib/components/AddToWorkspacesDialog/index.d.ts +0 -19
  40. package/dist/lib/components/AddToWorkspacesDialog/index.d.ts.map +0 -1
  41. package/dist/lib/components/BackLink/index.d.ts +0 -14
  42. package/dist/lib/components/BackLink/index.d.ts.map +0 -1
  43. package/dist/lib/components/ConfirmDialog/index.d.ts +0 -30
  44. package/dist/lib/components/ConfirmDialog/index.d.ts.map +0 -1
  45. package/dist/lib/components/EditMemberDialog/index.d.ts +0 -21
  46. package/dist/lib/components/EditMemberDialog/index.d.ts.map +0 -1
  47. package/dist/lib/components/MemberAvatar/index.d.ts +0 -24
  48. package/dist/lib/components/MemberAvatar/index.d.ts.map +0 -1
  49. package/dist/lib/components/MembersEmpty/index.d.ts +0 -16
  50. package/dist/lib/components/MembersEmpty/index.d.ts.map +0 -1
  51. package/dist/lib/components/MembersNoAccess/index.d.ts +0 -7
  52. package/dist/lib/components/MembersNoAccess/index.d.ts.map +0 -1
  53. package/dist/lib/components/MembersPagination/index.d.ts +0 -17
  54. package/dist/lib/components/MembersPagination/index.d.ts.map +0 -1
  55. package/dist/lib/components/MembersSkeleton/index.d.ts +0 -32
  56. package/dist/lib/components/MembersSkeleton/index.d.ts.map +0 -1
  57. package/dist/lib/components/MembersTable/MemberRoleChip/index.d.ts +0 -10
  58. package/dist/lib/components/MembersTable/MemberRoleChip/index.d.ts.map +0 -1
  59. package/dist/lib/components/MembersTable/MemberRowActions/index.d.ts +0 -16
  60. package/dist/lib/components/MembersTable/MemberRowActions/index.d.ts.map +0 -1
  61. package/dist/lib/components/MembersTable/MemberStatusBadge/index.d.ts +0 -10
  62. package/dist/lib/components/MembersTable/MemberStatusBadge/index.d.ts.map +0 -1
  63. package/dist/lib/components/MembersTable/MemberWorkspaces/index.d.ts +0 -10
  64. package/dist/lib/components/MembersTable/MemberWorkspaces/index.d.ts.map +0 -1
  65. package/dist/lib/components/MembersTable/index.d.ts +0 -12
  66. package/dist/lib/components/MembersTable/index.d.ts.map +0 -1
  67. package/dist/lib/components/MembersToolbar/index.d.ts +0 -13
  68. package/dist/lib/components/MembersToolbar/index.d.ts.map +0 -1
  69. package/dist/lib/components/RolePicker/index.d.ts +0 -18
  70. package/dist/lib/components/RolePicker/index.d.ts.map +0 -1
  71. package/dist/lib/components/SessionCard/index.d.ts +0 -15
  72. package/dist/lib/components/SessionCard/index.d.ts.map +0 -1
  73. package/dist/lib/components/UserDetailLayout/UserDetailTabs/index.d.ts +0 -13
  74. package/dist/lib/components/UserDetailLayout/UserDetailTabs/index.d.ts.map +0 -1
  75. package/dist/lib/components/UserDetailLayout/UserHero/index.d.ts +0 -10
  76. package/dist/lib/components/UserDetailLayout/UserHero/index.d.ts.map +0 -1
  77. package/dist/lib/components/UserDetailLayout/UserSideRail/index.d.ts +0 -12
  78. package/dist/lib/components/UserDetailLayout/UserSideRail/index.d.ts.map +0 -1
  79. package/dist/lib/components/UserDetailLayout/UserStatsStrip/index.d.ts +0 -10
  80. package/dist/lib/components/UserDetailLayout/UserStatsStrip/index.d.ts.map +0 -1
  81. package/dist/lib/components/UserDetailLayout/index.d.ts +0 -13
  82. package/dist/lib/components/UserDetailLayout/index.d.ts.map +0 -1
  83. package/dist/lib/components/UserDetailRouter/index.d.ts +0 -13
  84. package/dist/lib/components/UserDetailRouter/index.d.ts.map +0 -1
  85. package/dist/lib/components/WorkspaceMembershipCard/index.d.ts +0 -15
  86. package/dist/lib/components/WorkspaceMembershipCard/index.d.ts.map +0 -1
  87. package/dist/lib/pages/InviteMemberPage/index.d.ts +0 -7
  88. package/dist/lib/pages/InviteMemberPage/index.d.ts.map +0 -1
  89. package/dist/lib/pages/MembersPage/index.d.ts +0 -13
  90. package/dist/lib/pages/MembersPage/index.d.ts.map +0 -1
  91. package/dist/lib/pages/UserAccessPage/index.d.ts +0 -9
  92. package/dist/lib/pages/UserAccessPage/index.d.ts.map +0 -1
  93. package/dist/lib/pages/UserActivityPage/index.d.ts +0 -8
  94. package/dist/lib/pages/UserActivityPage/index.d.ts.map +0 -1
  95. package/dist/lib/pages/UserGeneralPage/index.d.ts +0 -7
  96. package/dist/lib/pages/UserGeneralPage/index.d.ts.map +0 -1
  97. package/dist/lib/pages/UserRolesPage/index.d.ts +0 -8
  98. package/dist/lib/pages/UserRolesPage/index.d.ts.map +0 -1
  99. package/dist/lib/pages/UserSessionsPage/index.d.ts +0 -7
  100. package/dist/lib/pages/UserSessionsPage/index.d.ts.map +0 -1
  101. package/dist/lib/pages/UserWorkspacesPage/index.d.ts +0 -8
  102. package/dist/lib/pages/UserWorkspacesPage/index.d.ts.map +0 -1
  103. package/dist/lib/presentation/components/MembersTable/membersTableAnchor/index.d.ts +0 -14
  104. package/dist/lib/presentation/components/MembersTable/membersTableAnchor/index.d.ts.map +0 -1
  105. package/dist/lib/types/member/index.d.ts +0 -63
  106. package/dist/lib/types/member/index.d.ts.map +0 -1
  107. package/dist/lib/utils/membersFilterFields/index.d.ts +0 -10
  108. package/dist/lib/utils/membersFilterFields/index.d.ts.map +0 -1
  109. package/dist/lib/utils/membersKeys/index.d.ts +0 -27
  110. package/dist/lib/utils/membersKeys/index.d.ts.map +0 -1
  111. package/dist/lib/utils/toMember/index.d.ts +0 -33
  112. package/dist/lib/utils/toMember/index.d.ts.map +0 -1
  113. package/dist/lib/utils/userDetailContext/index.d.ts +0 -13
  114. package/dist/lib/utils/userDetailContext/index.d.ts.map +0 -1
  115. package/dist/lib/utils/usersPlugin/index.d.ts +0 -27
  116. package/dist/lib/utils/usersPlugin/index.d.ts.map +0 -1
@@ -1,24 +0,0 @@
1
- import type { CSSProperties } from 'react';
2
- import { type AvatarColor } from '@ortha-cms/design-system';
3
- type MemberAvatarProps = {
4
- /** Initials rendered as the avatar content. */
5
- initials: string;
6
- /** Accent color tinting the avatar background. */
7
- color: AvatarColor;
8
- /** Extra classes (size, border). */
9
- className?: string;
10
- /** Extra inline styles (e.g. overlap margin in a stack). */
11
- style?: CSSProperties;
12
- };
13
- /**
14
- * An initials avatar tinted with one of the shared accent colors — members in
15
- * the table, and the smaller workspace chips in the Workspaces column, both
16
- * sized via `className`. Shape comes from the design-system `Avatar` default
17
- * (rounded square). Purely decorative: the member/workspace
18
- * name is always rendered as adjacent text (or an `aria-label` on the
19
- * enclosing control), so the initials are hidden from assistive tech to avoid
20
- * a meaningless "J D A B" reading.
21
- */
22
- export declare function MemberAvatar({ initials, color, className, style }: MemberAvatarProps): import("react").JSX.Element;
23
- export {};
24
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/MemberAvatar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAKH,KAAK,WAAW,EACnB,MAAM,0BAA0B,CAAC;AAElC,KAAK,iBAAiB,GAAG;IACrB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,KAAK,EAAE,WAAW,CAAC;IACnB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,EACzB,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,EACR,EAAE,iBAAiB,+BAYnB"}
@@ -1,16 +0,0 @@
1
- type MembersEmptyProps = {
2
- /** Whether a search is currently narrowing the list. */
3
- filtered: boolean;
4
- /** Clears the search. */
5
- onClear: () => void;
6
- /** Opens the invite flow. Omitted when the user lacks `users:create`. */
7
- onInvite?: () => void;
8
- };
9
- /**
10
- * The empty state under the toolbar. A search miss offers to clear the
11
- * search; a genuinely empty roster invites the first member (when the
12
- * signed-in user may invite).
13
- */
14
- export declare function MembersEmpty({ filtered, onClear, onInvite }: MembersEmptyProps): import("react").JSX.Element;
15
- export {};
16
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/MembersEmpty/index.tsx"],"names":[],"mappings":"AAwCA,KAAK,iBAAiB,GAAG;IACrB,wDAAwD;IACxD,QAAQ,EAAE,OAAO,CAAC;IAClB,yBAAyB;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EACzB,QAAQ,EACR,OAAO,EACP,QAAQ,EACX,EAAE,iBAAiB,+BAwCnB"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Shown in place of the Members page when the signed-in user lacks
3
- * `users:read` — the route still resolves, but no member data is fetched or
4
- * rendered (and the server would refuse it regardless).
5
- */
6
- export declare function MembersNoAccess(): import("react").JSX.Element;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/MembersNoAccess/index.tsx"],"names":[],"mappings":"AAuBA;;;;GAIG;AACH,wBAAgB,eAAe,gCAgB9B"}
@@ -1,17 +0,0 @@
1
- /** The selectable page sizes, smallest first. The server caps at the largest. */
2
- export declare const PAGE_SIZE_OPTIONS: number[];
3
- /**
4
- * The table's footer bar: a rows-per-page selector and an "{from}–{to} of
5
- * {total}" readout, with previous/next controls once there's more than one
6
- * page. Real buttons (not link-styled anchors) since page state is client
7
- * state, not a URL — they disable cleanly at either end.
8
- */
9
- export declare function MembersPagination({ page, pageCount, pageSize, total, onPageChange, onPageSizeChange }: {
10
- page: number;
11
- pageCount: number;
12
- pageSize: number;
13
- total: number;
14
- onPageChange: (page: number) => void;
15
- onPageSizeChange: (pageSize: number) => void;
16
- }): import("react").JSX.Element;
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/MembersPagination/index.tsx"],"names":[],"mappings":"AAuCA,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,UAAmB,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAC9B,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,gBAAgB,EACnB,EAAE;IACC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,+BAmFA"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Section placeholder shown while {@link useWorkspaceOptions} resolves in the
3
- * invite wizard's "assign workspaces" step — two mode tiles over a short list of
4
- * option rows. Replaces the inline spinner so the step keeps its shape while the
5
- * list loads. Owns a single `role="status"`; the tiles are `aria-hidden`.
6
- */
7
- export declare function WorkspaceOptionsSkeleton({ rows }: {
8
- rows?: number;
9
- }): import("react").JSX.Element;
10
- /**
11
- * The members-table placeholder shown while {@link useMembers} resolves. Built
12
- * from the real `Table` primitives so column widths and the header match the
13
- * loaded table exactly (no reflow on swap). Drops into the page body in place
14
- * of the table (header + toolbar stay live), so it owns the single
15
- * `role="status"` announcement; the table itself is `aria-hidden`.
16
- */
17
- export declare function MembersTableSkeleton({ rows }: {
18
- rows?: number;
19
- }): import("react").JSX.Element;
20
- /**
21
- * Full-page placeholder for the lazy-route `Suspense` fallback — before
22
- * {@link MembersPage} mounts there is no header or toolbar yet, so this sketches
23
- * the whole page (header, search toolbar, table) to hold the layout steady
24
- * while the chunk loads. Reuses {@link MembersTableSkeleton} for the body.
25
- */
26
- export declare function MembersPageSkeleton(): import("react").JSX.Element;
27
- /**
28
- * Lazy-route `Suspense` fallback for {@link InviteMemberPage}. Wraps the shared
29
- * {@link WizardPageSkeleton} so the `sr-only` status stays localized.
30
- */
31
- export declare function InviteMemberPageSkeleton(): import("react").JSX.Element;
32
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/MembersSkeleton/index.tsx"],"names":[],"mappings":"AA6BA;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,IAAQ,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BA0BvE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,IAAQ,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAmEnE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,gCAkBlC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,gCAIvC"}
@@ -1,10 +0,0 @@
1
- import type { MemberRole } from '../../../types/member';
2
- /**
3
- * The Role column's read-only chip: the member's role as a labelled badge.
4
- * Changing a role happens through the row's edit action (and the server gates
5
- * it on `users:update`), so the column itself carries no inline editor.
6
- */
7
- export declare function MemberRoleChip({ role }: {
8
- role: MemberRole;
9
- }): import("react").JSX.Element;
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/MembersTable/MemberRoleChip/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AA2BxD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,+BAW5D"}
@@ -1,16 +0,0 @@
1
- import type { Member } from '../../../types/member';
2
- /**
3
- * The row-end kebab menu. It mirrors the user detail page's side rail: an
4
- * **Account** group (General / Role / Workspaces) that every reader sees, then
5
- * permission-gated **Audit** (Sessions / Activity) and **Access** (Sign-in
6
- * access) groups — each item navigates straight to that tab. Below a separator
7
- * sit the status quick actions: a pending invite offers Resend / Revoke, an
8
- * active member Disable, a disabled member Enable, each shown only with its
9
- * `users:*` permission. The guardrailed Disable (yourself, the sole admin)
10
- * stays visible but inert with a tooltip. (Clicking the row itself also opens
11
- * the member — see {@link MembersTable}.)
12
- */
13
- export declare function MemberRowActions({ member }: {
14
- member: Member;
15
- }): import("react").JSX.Element;
16
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/MembersTable/MemberRowActions/index.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AA6FpD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BAqP9D"}
@@ -1,10 +0,0 @@
1
- import type { MemberStatus } from '../../../types/member';
2
- /**
3
- * The Status column's pill: a leading colored dot plus the status label —
4
- * green "Active", amber "Invited" (a sent, unaccepted invite), muted
5
- * "Disabled".
6
- */
7
- export declare function MemberStatusBadge({ status }: {
8
- status: MemberStatus;
9
- }): import("react").JSX.Element;
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/MembersTable/MemberStatusBadge/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAwC1D;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,+BAuBrE"}
@@ -1,10 +0,0 @@
1
- import type { MemberWorkspace } from '../../../types/member';
2
- /**
3
- * The Workspaces column: a row of overlapping workspace avatars plus a count,
4
- * opening a popover that lists every workspace the member belongs to — the
5
- * same stack-and-popover treatment as the workspace card's member roster.
6
- */
7
- export declare function MemberWorkspaces({ workspaces }: {
8
- workspaces: MemberWorkspace[];
9
- }): import("react").JSX.Element;
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/MembersTable/MemberWorkspaces/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAsB7D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC7B,UAAU,EACb,EAAE;IACC,UAAU,EAAE,eAAe,EAAE,CAAC;CACjC,+BAsEA"}
@@ -1,12 +0,0 @@
1
- import type { Member } from '../../types/member';
2
- /**
3
- * The members table: avatar + name + email, the role chip, the status pill, the
4
- * workspace stack, the joined date (the invite date for Invited rows), and the
5
- * per-row actions menu. The whole row is a shortcut to the member's detail page
6
- * (the name is a real link for keyboard users); the actions cell stops the
7
- * click from bubbling so opening the menu doesn't also navigate.
8
- */
9
- export declare function MembersTable({ members }: {
10
- members: Member[];
11
- }): import("react").JSX.Element;
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/MembersTable/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAkCjD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,+BAyF9D"}
@@ -1,13 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- /**
3
- * The Members table toolbar: a name/email search box with the advanced-filter
4
- * control pinned to the right. Layout lives in the shared `SearchToolbar`; this
5
- * wrapper only supplies the localised strings and the page-owned filter control.
6
- */
7
- export declare function MembersToolbar({ search, onSearchChange, filterControl }: {
8
- search: string;
9
- onSearchChange: (value: string) => void;
10
- /** Optional advanced-filter control rendered on the right. */
11
- filterControl?: ReactNode;
12
- }): import("react").JSX.Element;
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/MembersToolbar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAgBvC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC3B,MAAM,EACN,cAAc,EACd,aAAa,EAChB,EAAE;IACC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,8DAA8D;IAC9D,aAAa,CAAC,EAAE,SAAS,CAAC;CAC7B,+BAYA"}
@@ -1,18 +0,0 @@
1
- import type { MemberRole } from '../../types/member';
2
- /**
3
- * A radio-card selector over the three assignable system roles, with each
4
- * role's description and a "Current" badge on the saved one. Controlled: the
5
- * parent owns `value` and decides what "apply" does. Used by the detail page's
6
- * Role tab (and available to the invite flow).
7
- */
8
- export declare function RolePicker({ value, current, disabled, onChange }: {
9
- /** The selected role. */
10
- value: MemberRole;
11
- /** The member's currently-saved role, badged as "Current". */
12
- current?: MemberRole;
13
- /** Disables selection (read-only / in-flight). */
14
- disabled?: boolean;
15
- /** Called with the newly-picked role. */
16
- onChange: (role: MemberRole) => void;
17
- }): import("react").JSX.Element;
18
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/RolePicker/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAwCrD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACvB,KAAK,EACL,OAAO,EACP,QAAgB,EAChB,QAAQ,EACX,EAAE;IACC,yBAAyB;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC,+BAqDA"}
@@ -1,15 +0,0 @@
1
- import type { UserSession } from '../../api/useUserSessions';
2
- /**
3
- * One of a member's live sessions: device/user-agent, originating IP, when it
4
- * was last seen, and a Revoke action. The caller's own session is badged and
5
- * its Revoke button disabled, so an admin can't sign themselves out from here.
6
- */
7
- export declare function SessionCard({ session, busy, onRevoke }: {
8
- /** The session to render. */
9
- session: UserSession;
10
- /** Whether a revoke for this session is in flight. */
11
- busy?: boolean;
12
- /** Revoke handler. */
13
- onRevoke: (session: UserSession) => void;
14
- }): import("react").JSX.Element;
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/SessionCard/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAuB7D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EACxB,OAAO,EACP,IAAY,EACZ,QAAQ,EACX,EAAE;IACC,6BAA6B;IAC7B,OAAO,EAAE,WAAW,CAAC;IACrB,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C,+BAkDA"}
@@ -1,13 +0,0 @@
1
- import type { Member } from '../../../types/member';
2
- /**
3
- * The detail page's horizontal tab navigation — underline tabs between the
4
- * hero and the active section. The account tabs (General, Role, Workspaces)
5
- * are always shown; Sessions/Activity and Sign-in access are gated — without
6
- * the permission the tab is hidden and its route redirects away, so a
7
- * read-only admin never sees a dead link. Links are absolute (`/users/:id/…`)
8
- * so active state is unambiguous regardless of the matched tab.
9
- */
10
- export declare function UserDetailTabs({ member }: {
11
- member: Member;
12
- }): import("react").JSX.Element;
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/UserDetailLayout/UserDetailTabs/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AA+CpD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BAmD5D"}
@@ -1,10 +0,0 @@
1
- import type { Member } from '../../../types/member';
2
- /**
3
- * The detail page's identity card: a large initials avatar, the member's name
4
- * and email, their status and role badges, and the join date. Read-only — every
5
- * edit lives in a tab below.
6
- */
7
- export declare function UserHero({ member }: {
8
- member: Member;
9
- }): import("react").JSX.Element;
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/UserDetailLayout/UserHero/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAUpD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BAiCtD"}
@@ -1,12 +0,0 @@
1
- import type { Member } from '../../../types/member';
2
- /**
3
- * The detail page's sticky left navigation. Account sections are always shown;
4
- * the Audit (Sessions, Activity) and Access groups are gated — without the
5
- * permission the item is hidden and its route redirects away, so a read-only
6
- * admin never sees a dead link. Links are absolute (`/users/:id/...`) so active
7
- * state is unambiguous regardless of the matched tab.
8
- */
9
- export declare function UserSideRail({ member }: {
10
- member: Member;
11
- }): import("react").JSX.Element;
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/UserDetailLayout/UserSideRail/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAsEpD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BAgE1D"}
@@ -1,10 +0,0 @@
1
- import type { Member } from '../../../types/member';
2
- /**
3
- * A three-tile summary above the detail tabs: when the member joined, how many
4
- * workspaces they belong to, and their global role. Sourced entirely from the
5
- * shared detail record — no extra requests.
6
- */
7
- export declare function UserStatsStrip({ member }: {
8
- member: Member;
9
- }): import("react").JSX.Element;
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/UserDetailLayout/UserStatsStrip/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AA+CpD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BA2B5D"}
@@ -1,13 +0,0 @@
1
- /**
2
- * The user detail page shell, mounted at `/users/:id/*`. Fetches the member
3
- * once and shares it with every tab through the Outlet context, so a tab read
4
- * is free. Renders the back link, identity hero, stats strip, and the underline
5
- * tab bar above the active tab. Loading shows skeletons; a 404 shows a
6
- * dedicated "no longer exists" state; any other error is retryable by the
7
- * tabs' own queries falling back here.
8
- *
9
- * Gated on `users:read` (the same permission the roster needs): without it the
10
- * page shows the shared no-access state and fetches nothing.
11
- */
12
- export declare function UserDetailLayout(): import("react").JSX.Element;
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/UserDetailLayout/index.tsx"],"names":[],"mappings":"AAwCA;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,gCAoI/B"}
@@ -1,13 +0,0 @@
1
- /**
2
- * The nested router for one member, mounted by the plugin at `/users/:id/*`.
3
- * Mirrors `IdentityRouter`: a single element owning its own `<Routes>`, with
4
- * the shared layout wrapping the tab pages and providing the member via Outlet
5
- * context.
6
- *
7
- * The Audit (Sessions, Activity) and Access tabs are permission-gated at the
8
- * route level — without the permission the route redirects to General, so a
9
- * deep link or stale bookmark can't reach a tab the side rail hides. The index
10
- * redirects to General as the default tab.
11
- */
12
- export declare function UserDetailRouter(): import("react").JSX.Element;
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/UserDetailRouter/index.tsx"],"names":[],"mappings":"AAUA;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,gCA6C/B"}
@@ -1,15 +0,0 @@
1
- import type { MemberWorkspace } from '../../types/member';
2
- /**
3
- * One workspace the member belongs to: its tinted mark, name, and (when the
4
- * viewer can manage members) a Remove action. Removal is confirmed by the
5
- * parent page, so this card just signals intent.
6
- */
7
- export declare function WorkspaceMembershipCard({ workspace, onRemove, removing }: {
8
- /** The workspace membership to render. */
9
- workspace: MemberWorkspace;
10
- /** Remove handler; omit to hide the action (read-only). */
11
- onRemove?: (workspace: MemberWorkspace) => void;
12
- /** Whether a removal for this workspace is in flight. */
13
- removing?: boolean;
14
- }): import("react").JSX.Element;
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/WorkspaceMembershipCard/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAc1D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACpC,SAAS,EACT,QAAQ,EACR,QAAgB,EACnB,EAAE;IACC,0CAA0C;IAC1C,SAAS,EAAE,eAAe,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,+BA2CA"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Full-page, three-step invite wizard (Details → Role → Workspaces) at
3
- * `/users/invite`, on the design-system wizard chrome. Gated on `users:create`
4
- * — the server enforces the same — so a user without it is redirected.
5
- */
6
- export declare function InviteMemberPage(): import("react").JSX.Element;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/InviteMemberPage/index.tsx"],"names":[],"mappings":"AA+PA;;;;GAIG;AACH,wBAAgB,gBAAgB,gCAuiB/B"}
@@ -1,13 +0,0 @@
1
- /**
2
- * The Members management page: a searchable, filterable, paginated, and
3
- * deep-linkable table of everyone who can sign in, with invite / edit / role /
4
- * status controls gated on the signed-in user's `users:*` permissions. The URL
5
- * query string is the single source of truth for search, the query-builder
6
- * filter, and the page (via `useTableUrlState`), so a filtered view can be
7
- * shared or bookmarked. Rendered at `/users` inside the authenticated shell.
8
- *
9
- * Gated on `users:read`: without it the page shows a no-access state and
10
- * fetches nothing (the server would refuse the request anyway).
11
- */
12
- export declare function MembersPage(): import("react").JSX.Element;
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/MembersPage/index.tsx"],"names":[],"mappings":"AAiEA;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,gCA0M1B"}
@@ -1,9 +0,0 @@
1
- /**
2
- * The Access tab: suspend or reactivate a member's sign-in. Mirrors the
3
- * server's lifecycle — only `active` can be suspended, only `disabled`
4
- * reactivated, and `pending` (un-accepted invite) is read-only. The last
5
- * active admin and your own account can't be suspended; the button explains
6
- * why instead of failing on submit.
7
- */
8
- export declare function UserAccessPage(): import("react").JSX.Element;
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/UserAccessPage/index.tsx"],"names":[],"mappings":"AA8FA;;;;;;GAMG;AACH,wBAAgB,cAAc,gCAsG7B"}
@@ -1,8 +0,0 @@
1
- /**
2
- * The Activity tab: a timeline of audit events whose subject is this member,
3
- * reusing the activity plugin's `useActivityLog` with a pinned `subjectId`
4
- * filter. Gated on `activity:read` (the rail hides it otherwise). Paginated
5
- * with the shared members pagination control.
6
- */
7
- export declare function UserActivityPage(): import("react").JSX.Element;
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/UserActivityPage/index.tsx"],"names":[],"mappings":"AAoNA;;;;;GAKG;AACH,wBAAgB,gBAAgB,gCA6F/B"}
@@ -1,7 +0,0 @@
1
- /**
2
- * The General tab: edit the member's display name; the email is read-only. The
3
- * Save/Discard pair only enables on a real change. Edit controls require
4
- * `users:update`; without it the fields render disabled.
5
- */
6
- export declare function UserGeneralPage(): import("react").JSX.Element;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/UserGeneralPage/index.tsx"],"names":[],"mappings":"AAkDA;;;;GAIG;AACH,wBAAgB,eAAe,gCAkF9B"}
@@ -1,8 +0,0 @@
1
- /**
2
- * The Role tab: pick the member's single global role and apply it behind a
3
- * confirm step (with an extra warning when escalating to Admin). The last
4
- * active admin can't be re-roled; the picker locks with the reason shown.
5
- * Requires `users:update`.
6
- */
7
- export declare function UserRolesPage(): import("react").JSX.Element;
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/UserRolesPage/index.tsx"],"names":[],"mappings":"AAqEA;;;;;GAKG;AACH,wBAAgB,aAAa,gCA+F5B"}
@@ -1,7 +0,0 @@
1
- /**
2
- * The Sessions tab: a member's live sessions with a per-device Revoke. Gated on
3
- * `users:update` (the rail hides it otherwise); revoking is confirmed and drops
4
- * the row on success. The viewer's own session can't be revoked from here.
5
- */
6
- export declare function UserSessionsPage(): import("react").JSX.Element;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/UserSessionsPage/index.tsx"],"names":[],"mappings":"AA4DA;;;;GAIG;AACH,wBAAgB,gBAAgB,gCA6F/B"}
@@ -1,8 +0,0 @@
1
- /**
2
- * The Workspaces tab: the member's workspace memberships, with add (a
3
- * multi-select dialog) and per-card remove (confirmed). Memberships come from
4
- * the shared detail record; mutations invalidate it so the list refreshes.
5
- * Editing requires `users:update`.
6
- */
7
- export declare function UserWorkspacesPage(): import("react").JSX.Element;
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/UserWorkspacesPage/index.tsx"],"names":[],"mappings":"AAiEA;;;;;GAKG;AACH,wBAAgB,kBAAkB,gCAyHjC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * The id of the roster's focus anchor — the table wrapper, which carries
3
- * `tabIndex={-1}` so it can receive focus programmatically without becoming a
4
- * tab stop.
5
- *
6
- * It exists because a row-removing mutation unmounts the control that opened
7
- * the overlay (the row's kebab), so Radix's focus restoration has nowhere to
8
- * return to and focus falls to `<body>` — which restarts a keyboard user at the
9
- * top of the document after every action (WCAG 2.4.3 Focus Order). Shared as a
10
- * constant rather than a hardcoded string in two files so the contract between
11
- * {@link MembersTable} and its row menu is explicit.
12
- */
13
- export declare const MEMBERS_TABLE_ANCHOR_ID = "members-table";
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/presentation/components/MembersTable/membersTableAnchor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,kBAAkB,CAAC"}
@@ -1,63 +0,0 @@
1
- import type { AvatarColor } from '@ortha-cms/design-system';
2
- /** The three assignable system roles, by stable key. */
3
- export type MemberRole = 'admin' | 'contributor' | 'viewer';
4
- /**
5
- * Account lifecycle state, mirroring the server's `user_status` enum.
6
- * `pending` renders as the "Invited" pill — an invite that has been sent but
7
- * not yet accepted.
8
- */
9
- export type MemberStatus = 'pending' | 'active' | 'disabled';
10
- /** A workspace a member belongs to, as shown in the Workspaces column. */
11
- export type MemberWorkspace = {
12
- /** Stable workspace id. */
13
- id: string;
14
- /** Display name. */
15
- name: string;
16
- /** Short description, or `null` when none is set. */
17
- description: string | null;
18
- /** Two-letter initials shown in the avatar. */
19
- initials: string;
20
- /** Accent color tinting the workspace's avatar. */
21
- color: AvatarColor;
22
- };
23
- /** A member of the system — one row of the Members table. */
24
- export type Member = {
25
- /** Stable user id. */
26
- id: string;
27
- /** Display name; falls back to the email until the invite is accepted. */
28
- name: string;
29
- /** Contact email. */
30
- email: string;
31
- /** Two-letter initials shown in the avatar. */
32
- initials: string;
33
- /** Accent color tinting the member's avatar (derived, not persisted). */
34
- color: AvatarColor;
35
- /** The member's single global role, by key. */
36
- role: MemberRole;
37
- /** Human-readable role label (e.g. `Administrator`). */
38
- roleName: string;
39
- /** Account lifecycle state. */
40
- status: MemberStatus;
41
- /** When the membership was created; the invite date while `pending`. */
42
- joinedAt: Date;
43
- /**
44
- * Whether this member is the only active administrator, computed
45
- * server-side. When set, demote/disable controls are disabled with an
46
- * explanatory tooltip — the server rejects those actions regardless.
47
- */
48
- isLastAdmin: boolean;
49
- /** The workspaces this member belongs to. */
50
- workspaces: MemberWorkspace[];
51
- };
52
- /** One page of members plus the pagination envelope. */
53
- export type MemberList = {
54
- /** The members on this page. */
55
- items: Member[];
56
- /** Total members matching the search, across all pages. */
57
- total: number;
58
- /** 1-based page number. */
59
- page: number;
60
- /** Rows per page. */
61
- pageSize: number;
62
- };
63
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/member/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,wDAAwD;AACxD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE5D;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE7D,0EAA0E;AAC1E,MAAM,MAAM,eAAe,GAAG;IAC1B,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,KAAK,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,MAAM,GAAG;IACjB,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,KAAK,EAAE,WAAW,CAAC;IACnB,+CAA+C;IAC/C,IAAI,EAAE,UAAU,CAAC;IACjB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,wEAAwE;IACxE,QAAQ,EAAE,IAAI,CAAC;IACf;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,UAAU,EAAE,eAAe,EAAE,CAAC;CACjC,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,UAAU,GAAG;IACrB,gCAAgC;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -1,10 +0,0 @@
1
- import { type FilterField } from '@ortha-cms/query-builder-admin';
2
- /**
3
- * The members filter surface the query builder offers. A static mirror of the
4
- * server's `USERS_FILTER_SCHEMA` — each `id` matches a whitelisted field (the
5
- * `role.key` dotted path resolves to the BE's `role` relation), so a rule built
6
- * here always validates server-side. `status` / `role` render as dropdowns; the
7
- * BE still accepts any role key string, the UI just offers the system roles.
8
- */
9
- export declare const MEMBERS_FILTER_FIELDS: readonly FilterField[];
10
- //# sourceMappingURL=index.d.ts.map