@workos-inc/widgets 1.0.0 → 1.1.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.
- package/README.md +68 -1
- package/dist/cjs/card-list.d.ts +6 -0
- package/dist/cjs/card-list.d.ts.map +1 -0
- package/dist/cjs/card-list.js +13 -0
- package/dist/cjs/card-list.js.map +1 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +7 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/add-mfa-dialog.d.ts +9 -0
- package/dist/cjs/lib/add-mfa-dialog.d.ts.map +1 -0
- package/dist/cjs/lib/add-mfa-dialog.js +135 -0
- package/dist/cjs/lib/add-mfa-dialog.js.map +1 -0
- package/dist/cjs/lib/api/user.d.ts +13 -57
- package/dist/cjs/lib/api/user.d.ts.map +1 -1
- package/dist/cjs/lib/api/user.js +44 -314
- package/dist/cjs/lib/api/user.js.map +1 -1
- package/dist/cjs/lib/change-password-dialog.d.ts +8 -0
- package/dist/cjs/lib/change-password-dialog.d.ts.map +1 -0
- package/dist/cjs/lib/change-password-dialog.js +97 -0
- package/dist/cjs/lib/change-password-dialog.js.map +1 -0
- package/dist/cjs/lib/copy-button.d.ts +8 -0
- package/dist/cjs/lib/copy-button.d.ts.map +1 -0
- package/dist/cjs/lib/copy-button.js +63 -0
- package/dist/cjs/lib/copy-button.js.map +1 -0
- package/dist/cjs/lib/delete-user-dialog.d.ts +2 -2
- package/dist/cjs/lib/delete-user-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/delete-user-dialog.js +1 -1
- package/dist/cjs/lib/delete-user-dialog.js.map +1 -1
- package/dist/cjs/lib/edit-user-profile-dialog.d.ts +10 -0
- package/dist/cjs/lib/edit-user-profile-dialog.d.ts.map +1 -0
- package/dist/cjs/lib/edit-user-profile-dialog.js +85 -0
- package/dist/cjs/lib/edit-user-profile-dialog.js.map +1 -0
- package/dist/cjs/lib/edit-user-role-dialog.d.ts +12 -0
- package/dist/cjs/lib/edit-user-role-dialog.d.ts.map +1 -0
- package/dist/cjs/lib/{edit-user-details-dialog.js → edit-user-role-dialog.js} +11 -7
- package/dist/cjs/lib/edit-user-role-dialog.js.map +1 -0
- package/dist/cjs/lib/elements.d.ts +1 -0
- package/dist/cjs/lib/elements.d.ts.map +1 -1
- package/dist/cjs/lib/elements.js +10 -4
- package/dist/cjs/lib/elements.js.map +1 -1
- package/dist/cjs/lib/elevated-access.d.ts +8 -0
- package/dist/cjs/lib/elevated-access.d.ts.map +1 -0
- package/dist/cjs/lib/elevated-access.js +130 -0
- package/dist/cjs/lib/elevated-access.js.map +1 -0
- package/dist/cjs/lib/generic-error.d.ts +4 -0
- package/dist/cjs/lib/generic-error.d.ts.map +1 -0
- package/dist/cjs/lib/generic-error.js +57 -0
- package/dist/cjs/lib/generic-error.js.map +1 -0
- package/dist/cjs/lib/icon-panel.d.ts +3 -0
- package/dist/cjs/lib/icon-panel.d.ts.map +1 -0
- package/dist/cjs/lib/icon-panel.js +16 -0
- package/dist/cjs/lib/icon-panel.js.map +1 -0
- package/dist/cjs/lib/icons.d.ts +3 -0
- package/dist/cjs/lib/icons.d.ts.map +1 -0
- package/dist/cjs/lib/icons.js +8 -0
- package/dist/cjs/lib/icons.js.map +1 -0
- package/dist/cjs/lib/invite-user-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/invite-user-dialog.js +7 -5
- package/dist/cjs/lib/invite-user-dialog.js.map +1 -1
- package/dist/cjs/lib/logout-all-sessions-dialog.d.ts +9 -0
- package/dist/cjs/lib/logout-all-sessions-dialog.d.ts.map +1 -0
- package/dist/cjs/lib/logout-all-sessions-dialog.js +52 -0
- package/dist/cjs/lib/logout-all-sessions-dialog.js.map +1 -0
- package/dist/cjs/lib/logout-dialog.d.ts +10 -0
- package/dist/cjs/lib/logout-dialog.d.ts.map +1 -0
- package/dist/cjs/lib/logout-dialog.js +58 -0
- package/dist/cjs/lib/logout-dialog.js.map +1 -0
- package/dist/cjs/lib/marker.d.ts +14 -0
- package/dist/cjs/lib/marker.d.ts.map +1 -0
- package/dist/cjs/lib/marker.js +38 -0
- package/dist/cjs/lib/marker.js.map +1 -0
- package/dist/cjs/lib/oauth-icons.d.ts +4 -0
- package/dist/cjs/lib/oauth-icons.d.ts.map +1 -0
- package/dist/cjs/lib/oauth-icons.js +67 -0
- package/dist/cjs/lib/oauth-icons.js.map +1 -0
- package/dist/cjs/lib/organization-switcher.d.ts +24 -0
- package/dist/cjs/lib/organization-switcher.d.ts.map +1 -0
- package/dist/cjs/lib/organization-switcher.js +35 -0
- package/dist/cjs/lib/organization-switcher.js.map +1 -0
- package/dist/cjs/lib/otp-input.d.ts +20 -0
- package/dist/cjs/lib/otp-input.d.ts.map +1 -0
- package/dist/cjs/lib/otp-input.js +174 -0
- package/dist/cjs/lib/otp-input.js.map +1 -0
- package/dist/cjs/lib/resend-invite-dialog.d.ts +2 -2
- package/dist/cjs/lib/resend-invite-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/resend-invite-dialog.js +1 -1
- package/dist/cjs/lib/resend-invite-dialog.js.map +1 -1
- package/dist/cjs/lib/reset-mfa-dialog.d.ts +9 -0
- package/dist/cjs/lib/reset-mfa-dialog.d.ts.map +1 -0
- package/dist/cjs/lib/reset-mfa-dialog.js +60 -0
- package/dist/cjs/lib/reset-mfa-dialog.js.map +1 -0
- package/dist/cjs/lib/revoke-invite-dialog.d.ts +2 -2
- package/dist/cjs/lib/revoke-invite-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/revoke-invite-dialog.js +1 -1
- package/dist/cjs/lib/revoke-invite-dialog.js.map +1 -1
- package/dist/cjs/lib/save-button.d.ts +11 -0
- package/dist/cjs/lib/save-button.d.ts.map +1 -0
- package/dist/cjs/lib/save-button.js +47 -0
- package/dist/cjs/lib/save-button.js.map +1 -0
- package/dist/cjs/lib/set-password-dialog.d.ts +8 -0
- package/dist/cjs/lib/set-password-dialog.d.ts.map +1 -0
- package/dist/cjs/lib/set-password-dialog.js +80 -0
- package/dist/cjs/lib/set-password-dialog.js.map +1 -0
- package/dist/cjs/lib/use-dialog-close.d.ts +2 -0
- package/dist/cjs/lib/use-dialog-close.d.ts.map +1 -0
- package/dist/cjs/lib/use-dialog-close.js +43 -0
- package/dist/cjs/lib/use-dialog-close.js.map +1 -0
- package/dist/cjs/lib/use-security-settings.d.ts +11 -0
- package/dist/cjs/lib/use-security-settings.d.ts.map +1 -0
- package/dist/cjs/lib/use-security-settings.js +39 -0
- package/dist/cjs/lib/use-security-settings.js.map +1 -0
- package/dist/cjs/lib/user-actions-dropdown.d.ts +2 -2
- package/dist/cjs/lib/user-actions-dropdown.d.ts.map +1 -1
- package/dist/cjs/lib/user-actions-dropdown.js +8 -4
- package/dist/cjs/lib/user-actions-dropdown.js.map +1 -1
- package/dist/cjs/lib/user-profile.d.ts +11 -0
- package/dist/cjs/lib/user-profile.d.ts.map +1 -0
- package/dist/cjs/lib/user-profile.js +36 -0
- package/dist/cjs/lib/user-profile.js.map +1 -0
- package/dist/cjs/lib/user-security.d.ts +11 -0
- package/dist/cjs/lib/user-security.d.ts.map +1 -0
- package/dist/cjs/lib/user-security.js +64 -0
- package/dist/cjs/lib/user-security.js.map +1 -0
- package/dist/cjs/lib/user-sessions.d.ts +12 -0
- package/dist/cjs/lib/user-sessions.d.ts.map +1 -0
- package/dist/cjs/lib/user-sessions.js +72 -0
- package/dist/cjs/lib/user-sessions.js.map +1 -0
- package/dist/cjs/lib/users-filter.d.ts +2 -2
- package/dist/cjs/lib/users-filter.d.ts.map +1 -1
- package/dist/cjs/lib/users-filter.js.map +1 -1
- package/dist/cjs/lib/users-management-context.d.ts +0 -9
- package/dist/cjs/lib/users-management-context.d.ts.map +1 -1
- package/dist/cjs/lib/users-management-context.js +13 -26
- package/dist/cjs/lib/users-management-context.js.map +1 -1
- package/dist/cjs/lib/users-management-state.d.ts +3 -3
- package/dist/cjs/lib/users-management-state.d.ts.map +1 -1
- package/dist/cjs/lib/users-management-state.js.map +1 -1
- package/dist/cjs/lib/users-management.d.ts +3 -4
- package/dist/cjs/lib/users-management.d.ts.map +1 -1
- package/dist/cjs/lib/users-management.js +8 -26
- package/dist/cjs/lib/users-management.js.map +1 -1
- package/dist/cjs/lib/utils.d.ts +10 -2
- package/dist/cjs/lib/utils.d.ts.map +1 -1
- package/dist/cjs/lib/utils.js +18 -0
- package/dist/cjs/lib/utils.js.map +1 -1
- package/dist/cjs/organization-switcher.client.d.ts +8 -0
- package/dist/cjs/organization-switcher.client.d.ts.map +1 -0
- package/dist/cjs/organization-switcher.client.js +37 -0
- package/dist/cjs/organization-switcher.client.js.map +1 -0
- package/dist/cjs/user-profile.client.d.ts +7 -0
- package/dist/cjs/user-profile.client.d.ts.map +1 -0
- package/dist/cjs/user-profile.client.js +31 -0
- package/dist/cjs/user-profile.client.js.map +1 -0
- package/dist/cjs/user-security.client.d.ts +7 -0
- package/dist/cjs/user-security.client.d.ts.map +1 -0
- package/dist/cjs/user-security.client.js +27 -0
- package/dist/cjs/user-security.client.js.map +1 -0
- package/dist/cjs/user-sessions.client.d.ts +12 -0
- package/dist/cjs/user-sessions.client.d.ts.map +1 -0
- package/dist/cjs/user-sessions.client.js +48 -0
- package/dist/cjs/user-sessions.client.js.map +1 -0
- package/dist/cjs/users-management.client.d.ts +2 -1
- package/dist/cjs/users-management.client.d.ts.map +1 -1
- package/dist/cjs/users-management.client.js +12 -43
- package/dist/cjs/users-management.client.js.map +1 -1
- package/dist/esm/card-list.d.ts +6 -0
- package/dist/esm/card-list.d.ts.map +1 -0
- package/dist/esm/card-list.js +9 -0
- package/dist/esm/card-list.js.map +1 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/add-mfa-dialog.d.ts +9 -0
- package/dist/esm/lib/add-mfa-dialog.d.ts.map +1 -0
- package/dist/esm/lib/add-mfa-dialog.js +109 -0
- package/dist/esm/lib/add-mfa-dialog.js.map +1 -0
- package/dist/esm/lib/api/user.d.ts +13 -57
- package/dist/esm/lib/api/user.d.ts.map +1 -1
- package/dist/esm/lib/api/user.js +44 -313
- package/dist/esm/lib/api/user.js.map +1 -1
- package/dist/esm/lib/change-password-dialog.d.ts +8 -0
- package/dist/esm/lib/change-password-dialog.d.ts.map +1 -0
- package/dist/esm/lib/change-password-dialog.js +71 -0
- package/dist/esm/lib/change-password-dialog.js.map +1 -0
- package/dist/esm/lib/copy-button.d.ts +8 -0
- package/dist/esm/lib/copy-button.d.ts.map +1 -0
- package/dist/esm/lib/copy-button.js +37 -0
- package/dist/esm/lib/copy-button.js.map +1 -0
- package/dist/esm/lib/delete-user-dialog.d.ts +2 -2
- package/dist/esm/lib/delete-user-dialog.d.ts.map +1 -1
- package/dist/esm/lib/delete-user-dialog.js +1 -1
- package/dist/esm/lib/delete-user-dialog.js.map +1 -1
- package/dist/esm/lib/edit-user-profile-dialog.d.ts +10 -0
- package/dist/esm/lib/edit-user-profile-dialog.d.ts.map +1 -0
- package/dist/esm/lib/edit-user-profile-dialog.js +59 -0
- package/dist/esm/lib/edit-user-profile-dialog.js.map +1 -0
- package/dist/esm/lib/edit-user-role-dialog.d.ts +12 -0
- package/dist/esm/lib/edit-user-role-dialog.d.ts.map +1 -0
- package/dist/esm/lib/{edit-user-details-dialog.js → edit-user-role-dialog.js} +10 -6
- package/dist/esm/lib/edit-user-role-dialog.js.map +1 -0
- package/dist/esm/lib/elements.d.ts +1 -0
- package/dist/esm/lib/elements.d.ts.map +1 -1
- package/dist/esm/lib/elements.js +9 -3
- package/dist/esm/lib/elements.js.map +1 -1
- package/dist/esm/lib/elevated-access.d.ts +8 -0
- package/dist/esm/lib/elevated-access.d.ts.map +1 -0
- package/dist/esm/lib/elevated-access.js +104 -0
- package/dist/esm/lib/elevated-access.js.map +1 -0
- package/dist/esm/lib/generic-error.d.ts +4 -0
- package/dist/esm/lib/generic-error.d.ts.map +1 -0
- package/dist/esm/lib/generic-error.js +31 -0
- package/dist/esm/lib/generic-error.js.map +1 -0
- package/dist/esm/lib/icon-panel.d.ts +3 -0
- package/dist/esm/lib/icon-panel.d.ts.map +1 -0
- package/dist/esm/lib/icon-panel.js +13 -0
- package/dist/esm/lib/icon-panel.js.map +1 -0
- package/dist/esm/lib/icons.d.ts +3 -0
- package/dist/esm/lib/icons.d.ts.map +1 -0
- package/dist/esm/lib/icons.js +5 -0
- package/dist/esm/lib/icons.js.map +1 -0
- package/dist/esm/lib/invite-user-dialog.d.ts.map +1 -1
- package/dist/esm/lib/invite-user-dialog.js +7 -5
- package/dist/esm/lib/invite-user-dialog.js.map +1 -1
- package/dist/esm/lib/logout-all-sessions-dialog.d.ts +9 -0
- package/dist/esm/lib/logout-all-sessions-dialog.d.ts.map +1 -0
- package/dist/esm/lib/logout-all-sessions-dialog.js +26 -0
- package/dist/esm/lib/logout-all-sessions-dialog.js.map +1 -0
- package/dist/esm/lib/logout-dialog.d.ts +10 -0
- package/dist/esm/lib/logout-dialog.d.ts.map +1 -0
- package/dist/esm/lib/logout-dialog.js +32 -0
- package/dist/esm/lib/logout-dialog.js.map +1 -0
- package/dist/esm/lib/marker.d.ts +14 -0
- package/dist/esm/lib/marker.d.ts.map +1 -0
- package/dist/esm/lib/marker.js +9 -0
- package/dist/esm/lib/marker.js.map +1 -0
- package/dist/esm/lib/oauth-icons.d.ts +4 -0
- package/dist/esm/lib/oauth-icons.d.ts.map +1 -0
- package/dist/esm/lib/oauth-icons.js +39 -0
- package/dist/esm/lib/oauth-icons.js.map +1 -0
- package/dist/esm/lib/organization-switcher.d.ts +24 -0
- package/dist/esm/lib/organization-switcher.d.ts.map +1 -0
- package/dist/esm/lib/organization-switcher.js +29 -0
- package/dist/esm/lib/organization-switcher.js.map +1 -0
- package/dist/esm/lib/otp-input.d.ts +20 -0
- package/dist/esm/lib/otp-input.d.ts.map +1 -0
- package/dist/esm/lib/otp-input.js +148 -0
- package/dist/esm/lib/otp-input.js.map +1 -0
- package/dist/esm/lib/resend-invite-dialog.d.ts +2 -2
- package/dist/esm/lib/resend-invite-dialog.d.ts.map +1 -1
- package/dist/esm/lib/resend-invite-dialog.js +1 -1
- package/dist/esm/lib/resend-invite-dialog.js.map +1 -1
- package/dist/esm/lib/reset-mfa-dialog.d.ts +9 -0
- package/dist/esm/lib/reset-mfa-dialog.d.ts.map +1 -0
- package/dist/esm/lib/reset-mfa-dialog.js +34 -0
- package/dist/esm/lib/reset-mfa-dialog.js.map +1 -0
- package/dist/esm/lib/revoke-invite-dialog.d.ts +2 -2
- package/dist/esm/lib/revoke-invite-dialog.d.ts.map +1 -1
- package/dist/esm/lib/revoke-invite-dialog.js +1 -1
- package/dist/esm/lib/revoke-invite-dialog.js.map +1 -1
- package/dist/esm/lib/save-button.d.ts +11 -0
- package/dist/esm/lib/save-button.d.ts.map +1 -0
- package/dist/esm/lib/save-button.js +44 -0
- package/dist/esm/lib/save-button.js.map +1 -0
- package/dist/esm/lib/set-password-dialog.d.ts +8 -0
- package/dist/esm/lib/set-password-dialog.d.ts.map +1 -0
- package/dist/esm/lib/set-password-dialog.js +54 -0
- package/dist/esm/lib/set-password-dialog.js.map +1 -0
- package/dist/esm/lib/use-dialog-close.d.ts +2 -0
- package/dist/esm/lib/use-dialog-close.d.ts.map +1 -0
- package/dist/esm/lib/use-dialog-close.js +17 -0
- package/dist/esm/lib/use-dialog-close.js.map +1 -0
- package/dist/esm/lib/use-security-settings.d.ts +11 -0
- package/dist/esm/lib/use-security-settings.d.ts.map +1 -0
- package/dist/esm/lib/use-security-settings.js +36 -0
- package/dist/esm/lib/use-security-settings.js.map +1 -0
- package/dist/esm/lib/user-actions-dropdown.d.ts +2 -2
- package/dist/esm/lib/user-actions-dropdown.d.ts.map +1 -1
- package/dist/esm/lib/user-actions-dropdown.js +8 -4
- package/dist/esm/lib/user-actions-dropdown.js.map +1 -1
- package/dist/esm/lib/user-profile.d.ts +11 -0
- package/dist/esm/lib/user-profile.d.ts.map +1 -0
- package/dist/esm/lib/user-profile.js +27 -0
- package/dist/esm/lib/user-profile.js.map +1 -0
- package/dist/esm/lib/user-security.d.ts +11 -0
- package/dist/esm/lib/user-security.d.ts.map +1 -0
- package/dist/esm/lib/user-security.js +32 -0
- package/dist/esm/lib/user-security.js.map +1 -0
- package/dist/esm/lib/user-sessions.d.ts +12 -0
- package/dist/esm/lib/user-sessions.d.ts.map +1 -0
- package/dist/esm/lib/user-sessions.js +40 -0
- package/dist/esm/lib/user-sessions.js.map +1 -0
- package/dist/esm/lib/users-filter.d.ts +2 -2
- package/dist/esm/lib/users-filter.d.ts.map +1 -1
- package/dist/esm/lib/users-filter.js.map +1 -1
- package/dist/esm/lib/users-management-context.d.ts +0 -9
- package/dist/esm/lib/users-management-context.d.ts.map +1 -1
- package/dist/esm/lib/users-management-context.js +13 -25
- package/dist/esm/lib/users-management-context.js.map +1 -1
- package/dist/esm/lib/users-management-state.d.ts +3 -3
- package/dist/esm/lib/users-management-state.d.ts.map +1 -1
- package/dist/esm/lib/users-management-state.js.map +1 -1
- package/dist/esm/lib/users-management.d.ts +3 -4
- package/dist/esm/lib/users-management.d.ts.map +1 -1
- package/dist/esm/lib/users-management.js +9 -27
- package/dist/esm/lib/users-management.js.map +1 -1
- package/dist/esm/lib/users-search.d.ts +1 -1
- package/dist/esm/lib/users-search.d.ts.map +1 -1
- package/dist/esm/lib/utils.d.ts +10 -2
- package/dist/esm/lib/utils.d.ts.map +1 -1
- package/dist/esm/lib/utils.js +16 -0
- package/dist/esm/lib/utils.js.map +1 -1
- package/dist/esm/organization-switcher.client.d.ts +8 -0
- package/dist/esm/organization-switcher.client.d.ts.map +1 -0
- package/dist/esm/organization-switcher.client.js +33 -0
- package/dist/esm/organization-switcher.client.js.map +1 -0
- package/dist/esm/user-profile.client.d.ts +7 -0
- package/dist/esm/user-profile.client.d.ts.map +1 -0
- package/dist/esm/user-profile.client.js +27 -0
- package/dist/esm/user-profile.client.js.map +1 -0
- package/dist/esm/user-security.client.d.ts +7 -0
- package/dist/esm/user-security.client.d.ts.map +1 -0
- package/dist/esm/user-security.client.js +23 -0
- package/dist/esm/user-security.client.js.map +1 -0
- package/dist/esm/user-sessions.client.d.ts +12 -0
- package/dist/esm/user-sessions.client.d.ts.map +1 -0
- package/dist/esm/user-sessions.client.js +44 -0
- package/dist/esm/user-sessions.client.js.map +1 -0
- package/dist/esm/users-management.client.d.ts +2 -1
- package/dist/esm/users-management.client.d.ts.map +1 -1
- package/dist/esm/users-management.client.js +12 -20
- package/dist/esm/users-management.client.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +10 -4
- package/src/card-list.tsx +26 -0
- package/src/index.ts +3 -0
- package/src/lib/add-mfa-dialog.tsx +379 -0
- package/src/lib/api/user.ts +54 -458
- package/src/lib/card-list.css +3 -0
- package/src/lib/change-password-dialog.tsx +290 -0
- package/src/lib/copy-button.tsx +53 -0
- package/src/lib/delete-user-dialog.tsx +9 -6
- package/src/lib/edit-user-profile-dialog.tsx +181 -0
- package/src/lib/{edit-user-details-dialog.tsx → edit-user-role-dialog.tsx} +12 -9
- package/src/lib/elements.tsx +34 -1
- package/src/lib/elevated-access.tsx +261 -0
- package/src/lib/generic-error.tsx +70 -0
- package/src/lib/icon-panel.tsx +26 -0
- package/src/lib/icons.tsx +21 -0
- package/src/lib/invite-user-dialog.tsx +15 -10
- package/src/lib/logout-all-sessions-dialog.tsx +82 -0
- package/src/lib/logout-dialog.tsx +89 -0
- package/src/lib/marker.css +81 -0
- package/src/lib/marker.tsx +39 -0
- package/src/lib/oauth-icons.tsx +138 -0
- package/src/lib/organization-switcher.tsx +160 -0
- package/src/lib/otp-input.tsx +276 -0
- package/src/lib/resend-invite-dialog.tsx +9 -6
- package/src/lib/reset-mfa-dialog.tsx +104 -0
- package/src/lib/revoke-invite-dialog.tsx +9 -6
- package/src/lib/save-button.css +60 -0
- package/src/lib/save-button.tsx +113 -0
- package/src/lib/set-password-dialog.tsx +204 -0
- package/src/lib/use-dialog-close.tsx +19 -0
- package/src/lib/use-security-settings.tsx +49 -0
- package/src/lib/user-actions-dropdown.tsx +10 -6
- package/src/lib/user-profile.tsx +247 -0
- package/src/lib/user-security.tsx +187 -0
- package/src/lib/user-sessions.tsx +204 -0
- package/src/lib/users-filter.tsx +2 -2
- package/src/lib/users-management-context.tsx +21 -36
- package/src/lib/users-management-state.ts +3 -3
- package/src/lib/users-management.tsx +21 -77
- package/src/lib/utils.ts +30 -2
- package/src/organization-switcher.client.tsx +77 -0
- package/src/styles.css +44 -0
- package/src/user-profile.client.tsx +51 -0
- package/src/user-security.client.tsx +55 -0
- package/src/user-sessions.client.tsx +96 -0
- package/src/users-management.client.tsx +28 -39
- package/dist/cjs/lib/api/role.d.ts +0 -9
- package/dist/cjs/lib/api/role.d.ts.map +0 -1
- package/dist/cjs/lib/api/role.js +0 -115
- package/dist/cjs/lib/api/role.js.map +0 -1
- package/dist/cjs/lib/edit-user-details-dialog.d.ts +0 -12
- package/dist/cjs/lib/edit-user-details-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/edit-user-details-dialog.js.map +0 -1
- package/dist/esm/lib/api/role.d.ts +0 -9
- package/dist/esm/lib/api/role.d.ts.map +0 -1
- package/dist/esm/lib/api/role.js +0 -110
- package/dist/esm/lib/api/role.js.map +0 -1
- package/dist/esm/lib/edit-user-details-dialog.d.ts +0 -12
- package/dist/esm/lib/edit-user-details-dialog.d.ts.map +0 -1
- package/dist/esm/lib/edit-user-details-dialog.js.map +0 -1
- package/src/lib/api/role.ts +0 -147
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as Form from "@radix-ui/react-form";
|
|
3
|
+
import { AlertDialog, Callout, Dialog, Flex, Text } from "@radix-ui/themes";
|
|
4
|
+
import { useElevatedAccessToken, useMe, useSendVerification, useVerify, } from "@repo/api";
|
|
5
|
+
import { useEffect, useRef, useState } from "react";
|
|
6
|
+
import { PrimaryButton, SecondaryButton } from "./elements";
|
|
7
|
+
import * as Otp from "./otp-input";
|
|
8
|
+
export function ElevatedAccess({ type = "dialog", children, onVerified, }) {
|
|
9
|
+
const { elevatedAccess } = useElevatedAccessToken();
|
|
10
|
+
const [authenticationChallengeId, setAuthenticationChallengeId] = useState();
|
|
11
|
+
const prevAccessToken = useRef(elevatedAccess);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
prevAccessToken.current = elevatedAccess;
|
|
14
|
+
}, [elevatedAccess]);
|
|
15
|
+
if (elevatedAccess) {
|
|
16
|
+
return _jsx(_Fragment, { children: children });
|
|
17
|
+
}
|
|
18
|
+
if (!authenticationChallengeId) {
|
|
19
|
+
const hasTokenExpired = !!prevAccessToken.current;
|
|
20
|
+
return (_jsx(SendVerificationEmailForm, { type: type, hasTokenExpired: hasTokenExpired, onSuccess: (challengeId) => {
|
|
21
|
+
setAuthenticationChallengeId(challengeId);
|
|
22
|
+
} }));
|
|
23
|
+
}
|
|
24
|
+
if (authenticationChallengeId) {
|
|
25
|
+
return (_jsx(VerificationIdentityForm, { type: type, authenticationChallengeId: authenticationChallengeId, onSuccess: () => {
|
|
26
|
+
// Reset the challenge id
|
|
27
|
+
setAuthenticationChallengeId(undefined);
|
|
28
|
+
return onVerified?.();
|
|
29
|
+
} }));
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
function SendVerificationEmailForm({ onSuccess, type, hasTokenExpired, }) {
|
|
34
|
+
const { data: me } = useMe();
|
|
35
|
+
const sendVerification = useSendVerification({
|
|
36
|
+
mutation: { onSuccess: (data) => onSuccess(data.authenticationChallenge) },
|
|
37
|
+
});
|
|
38
|
+
const Title = type === "dialog" ? Dialog.Title : AlertDialog.Title;
|
|
39
|
+
const Description = type === "dialog" ? Dialog.Description : AlertDialog.Description;
|
|
40
|
+
const Close = type === "dialog" ? Dialog.Close : AlertDialog.Cancel;
|
|
41
|
+
const handleSubmit = async (event) => {
|
|
42
|
+
event.preventDefault();
|
|
43
|
+
sendVerification.mutate();
|
|
44
|
+
};
|
|
45
|
+
return (_jsxs("form", { onSubmit: handleSubmit, children: [_jsx(Title, { children: hasTokenExpired
|
|
46
|
+
? "Your verification token has expired"
|
|
47
|
+
: "Verify your identity" }), _jsxs(Description, { color: "gray", mb: "5", children: ["To continue, we need to confirm your identity. We'll send a temporary verification code to", " ", _jsx(Text, { weight: "bold", highContrast: true, children: me?.email }), "."] }), sendVerification.error && (_jsx(Callout.Root, { color: "red", mt: "-2", mb: "0", children: _jsx(Callout.Text, { children: getMutationErrorMessage(sendVerification.error) }) })), _jsxs(Flex, { justify: "end", align: "center", gap: "3", mt: "5", children: [_jsx(Close, { children: _jsx(SecondaryButton, { type: "button", disabled: sendVerification.isPending, children: "Cancel" }) }), _jsx(PrimaryButton, { type: "submit", loading: sendVerification.isPending, children: "Send verification code" })] })] }));
|
|
48
|
+
}
|
|
49
|
+
function VerificationIdentityForm({ onSuccess, authenticationChallengeId, type, }) {
|
|
50
|
+
const { data: me } = useMe();
|
|
51
|
+
const { setElevatedAccess } = useElevatedAccessToken();
|
|
52
|
+
const verifyIdentity = useVerify();
|
|
53
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
54
|
+
const Title = type === "dialog" ? Dialog.Title : AlertDialog.Title;
|
|
55
|
+
const Description = type === "dialog" ? Dialog.Description : AlertDialog.Description;
|
|
56
|
+
const Close = type === "dialog" ? Dialog.Close : AlertDialog.Cancel;
|
|
57
|
+
const handleSubmit = async (event) => {
|
|
58
|
+
event.preventDefault();
|
|
59
|
+
const formData = new FormData(event.currentTarget);
|
|
60
|
+
const code = formData.get("otp-code")?.toString() ?? "";
|
|
61
|
+
setIsSubmitting(true);
|
|
62
|
+
try {
|
|
63
|
+
// Mutate async so we can wait for the onSuccess callback as well
|
|
64
|
+
const newAuthState = await verifyIdentity.mutateAsync({
|
|
65
|
+
data: {
|
|
66
|
+
code,
|
|
67
|
+
authenticationChallengeId,
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
const in10Seconds = new Date(Date.now() + 5 * 1000);
|
|
71
|
+
setElevatedAccess({
|
|
72
|
+
token: newAuthState.elevatedAccessToken,
|
|
73
|
+
// expiresAt: newAuthState.expiresAt,
|
|
74
|
+
expiresAt: in10Seconds.toISOString(),
|
|
75
|
+
});
|
|
76
|
+
if (onSuccess) {
|
|
77
|
+
await new Promise((resolve) => setTimeout(resolve, 200));
|
|
78
|
+
await onSuccess();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
console.error(error);
|
|
83
|
+
}
|
|
84
|
+
setIsSubmitting(false);
|
|
85
|
+
};
|
|
86
|
+
return (_jsxs(Form.Root, { onSubmit: handleSubmit, children: [_jsx(Title, { children: "Verify your identity" }), _jsxs(Description, { color: "gray", children: ["A verification code was sent to", " ", _jsx(Text, { weight: "bold", highContrast: true, children: me?.email }), ". Please enter it below."] }), _jsxs(Flex, { direction: "column", gap: "2", mt: "5", mx: "auto", width: "fit-content", children: [_jsxs(Otp.Root, { autoSubmit: true, gap: "2", justify: "center", columns: "repeat(6, 48px)", width: "fit-content", rows: "48px", name: "otp-code", readOnly: isSubmitting, children: [_jsx(Otp.Input, { required: true, autoFocus: true, autoComplete: "off" }), _jsx(Otp.Input, { required: true }), _jsx(Otp.Input, { required: true }), _jsx(Otp.Input, { required: true }), _jsx(Otp.Input, { required: true }), _jsx(Otp.Input, { required: true })] }), verifyIdentity.error && (_jsx(Text, { color: "red", size: "2", as: "p", children: getMutationErrorMessage(verifyIdentity.error) }))] }), _jsxs(Flex, { justify: "end", align: "center", gap: "3", mt: "5", children: [_jsx(Close, { children: _jsx(SecondaryButton, { type: "button", children: "Cancel" }) }), _jsx(PrimaryButton, { type: "submit", loading: isSubmitting, children: "Confirm" })] })] }));
|
|
87
|
+
}
|
|
88
|
+
function getMutationErrorMessage(error) {
|
|
89
|
+
let message = typeof error === "string" ? error : "";
|
|
90
|
+
if (error instanceof Error) {
|
|
91
|
+
message = error.message;
|
|
92
|
+
}
|
|
93
|
+
else if (typeof error === "object" &&
|
|
94
|
+
error !== null &&
|
|
95
|
+
"message" in error &&
|
|
96
|
+
typeof error.message === "string") {
|
|
97
|
+
message = error.message;
|
|
98
|
+
}
|
|
99
|
+
if (!message || message === "Bad Request") {
|
|
100
|
+
message = "Invalid code, please try again.";
|
|
101
|
+
}
|
|
102
|
+
return message;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=elevated-access.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elevated-access.js","sourceRoot":"","sources":["../../../src/lib/elevated-access.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-error.d.ts","sourceRoot":"","sources":["../../../src/lib/generic-error.tsx"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,2CAgEzD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Flex, Heading, Text } from "@radix-ui/themes";
|
|
4
|
+
import { ApiError, FetchError, NoAuthTokenError } from "./errors";
|
|
5
|
+
import { Cross2Icon } from "@radix-ui/react-icons";
|
|
6
|
+
export function GenericError({ error }) {
|
|
7
|
+
React.useEffect(() => {
|
|
8
|
+
console.error(error);
|
|
9
|
+
}, [error]);
|
|
10
|
+
const render = (heading, message) => (_jsxs(Flex, { p: "6", justify: "center", align: "center", direction: "column", children: [_jsx(Flex, { align: "center", justify: "center", width: "32px", height: "32px", mb: "2", style: {
|
|
11
|
+
borderRadius: "9999px",
|
|
12
|
+
backgroundColor: "var(--red-a4)",
|
|
13
|
+
color: "var(--red-a11)",
|
|
14
|
+
}, children: _jsx(Cross2Icon, { width: "24px", height: "24px" }) }), _jsxs(Flex, { direction: "column", gap: "1", maxWidth: "420px", children: [_jsx(Heading, { size: "5", align: "center", mb: "1", wrap: "balance", as: "h3", children: heading }), _jsx(Text, { as: "p", align: "center", wrap: "balance", color: "gray", children: message })] })] }));
|
|
15
|
+
if (error instanceof FetchError) {
|
|
16
|
+
return render("Error fetching data", "An error occurred. You may need to configure CORS in the WorkOS Dashboard. " +
|
|
17
|
+
"Contact your organization admin for support.");
|
|
18
|
+
}
|
|
19
|
+
if (error instanceof NoAuthTokenError) {
|
|
20
|
+
return render("Error fetching data", "Authorization error. You likely forgot to provide an authorization " +
|
|
21
|
+
"token to the Users Management Widget.");
|
|
22
|
+
}
|
|
23
|
+
if (error instanceof ApiError && error.status === 404) {
|
|
24
|
+
// The widgets API treats all authorization errors as 404s. If there is a
|
|
25
|
+
// legitimate 404, it's a bug on our end but there's currently no way to
|
|
26
|
+
// distinguish between the two.
|
|
27
|
+
return render("Error fetching data", "Authorization error. Contact your organization admin for support.");
|
|
28
|
+
}
|
|
29
|
+
return render("Error fetching data", "An unknown error occurred. If the problem continues, contact the site owner.");
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=generic-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-error.js","sourceRoot":"","sources":["../../../src/lib/generic-error.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAsB;IACxD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,OAAwB,EAAE,EAAE,CAAC,CAC5D,MAAC,IAAI,IAAC,CAAC,EAAC,GAAG,EAAC,OAAO,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,aAC5D,KAAC,IAAI,IACH,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,EAAE,EAAC,GAAG,EACN,KAAK,EAAE;oBACL,YAAY,EAAE,QAAQ;oBACtB,eAAe,EAAE,eAAe;oBAChC,KAAK,EAAE,gBAAgB;iBACxB,YAED,KAAC,UAAU,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,GAAG,GACpC,EAEP,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,EAAC,QAAQ,EAAC,OAAO,aAC/C,KAAC,OAAO,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,QAAQ,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,EAAC,EAAE,EAAC,IAAI,YAC3D,OAAO,GACA,EAEV,KAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAC,MAAM,YACpD,OAAO,GACH,IACF,IACF,CACR,CAAC;IAEF,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,MAAM,CACX,qBAAqB,EACrB,6EAA6E;YAC3E,8CAA8C,CACjD,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;QACtC,OAAO,MAAM,CACX,qBAAqB,EACrB,qEAAqE;YACnE,uCAAuC,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACtD,yEAAyE;QACzE,wEAAwE;QACxE,+BAA+B;QAC/B,OAAO,MAAM,CACX,qBAAqB,EACrB,mEAAmE,CACpE,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CACX,qBAAqB,EACrB,8EAA8E,CAC/E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-panel.d.ts","sourceRoot":"","sources":["../../../src/lib/icon-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGnD,eAAO,MAAM,SAAS,sGAsBrB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Flex } from "@radix-ui/themes";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
export const IconPanel = forwardRef(function IconPanel({ children, ...props }, ref) {
|
|
5
|
+
return (_jsx(Flex, { ref: ref, width: "32px", height: "32px", align: "center", justify: "center", style: {
|
|
6
|
+
borderWidth: 1,
|
|
7
|
+
borderStyle: "solid",
|
|
8
|
+
borderColor: "var(--gray-4)",
|
|
9
|
+
borderRadius: "var(--radius-3)",
|
|
10
|
+
backgroundColor: "var(--gray-2)",
|
|
11
|
+
}, ...props, children: children }));
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=icon-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-panel.js","sourceRoot":"","sources":["../../../src/lib/icon-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAa,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CACjC,SAAS,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IAC5C,OAAO,CACL,KAAC,IAAI,IACH,GAAG,EAAE,GAAG,EACR,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAE;YACL,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,eAAe;YAC5B,YAAY,EAAE,iBAAiB;YAC/B,eAAe,EAAE,eAAe;SACjC,KACG,KAAK,YAER,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/lib/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,2CAkBzD"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export function PasskeyIcon(props) {
|
|
3
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", ...props, children: _jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M5.86 1.005a2.86 2.86 0 1 0 0 5.719 2.86 2.86 0 0 0 0-5.72ZM2 3.865a3.86 3.86 0 1 1 4.899 3.717c.974.166 1.699.58 2.368 1.196a.5.5 0 1 1-.678.735C7.882 8.862 7.136 8.5 5.859 8.5c-2.036 0-3.195.693-3.867 1.613-.602.824-.86 1.893-.917 2.986h8.618a.5.5 0 0 1 0 1H.563a.5.5 0 0 1-.5-.5c0-1.356.248-2.88 1.121-4.076.743-1.018 1.897-1.741 3.582-1.957A3.861 3.861 0 0 1 2 3.864Zm12.185 6.509a2.892 2.892 0 1 0-2.212-.024v4.428L13.197 16l2.036-2.037-1.271-1.27 1.271-1.272-1.046-1.047Zm-.212-3.423a.847.847 0 1 1-1.695 0 .847.847 0 0 1 1.695 0Z", clipRule: "evenodd" }) }));
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../src/lib/icons.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,WAAW,CAAC,KAA8B;IACxD,OAAO,CACL,cACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,KACP,KAAK,YAET,eACE,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,0hBAA0hB,EAC5hB,QAAQ,EAAC,SAAS,GAClB,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invite-user-dialog.d.ts","sourceRoot":"","sources":["../../../src/lib/invite-user-dialog.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAuB/B,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"invite-user-dialog.d.ts","sourceRoot":"","sources":["../../../src/lib/invite-user-dialog.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAuB/B,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,2CA0JnE"}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Callout, Dialog, Flex, Select, Text, VisuallyHidden, } from "@radix-ui/themes";
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import { useRoles } from "./api/role";
|
|
6
|
-
import { useInviteUser } from "./api/user";
|
|
7
5
|
import { DialogContent, PrimaryButton, SecondaryButton, SelectContent, SelectItem, SelectTrigger, TextField, } from "./elements";
|
|
8
6
|
import { Label } from "./elements";
|
|
9
7
|
import { isErrorLike } from "./utils";
|
|
8
|
+
import { useInviteUser } from "./api/user";
|
|
9
|
+
import { useRoles } from "@repo/api";
|
|
10
10
|
/**
|
|
11
11
|
* Used to stub a fake value for the role select. It will be selected by default
|
|
12
12
|
* before the role query resolves, or if the query results in an error. We do
|
|
@@ -19,7 +19,9 @@ export function InviteUserDialog({ children }) {
|
|
|
19
19
|
const dialogId = toId("invite-user", React.useId());
|
|
20
20
|
const formId = toId(dialogId, "form");
|
|
21
21
|
const inviteUser = useInviteUser();
|
|
22
|
-
const rolesQuery = useRoles(
|
|
22
|
+
const rolesQuery = useRoles({
|
|
23
|
+
query: { initialData: [] },
|
|
24
|
+
});
|
|
23
25
|
const roles = rolesQuery.data;
|
|
24
26
|
const [selectedRole, setSelectedRole] = React.useState(() => getDefaultRole(roles)?.slug || PLACEHOLDER_ROLE);
|
|
25
27
|
React.useEffect(() => {
|
|
@@ -37,7 +39,7 @@ export function InviteUserDialog({ children }) {
|
|
|
37
39
|
if (inviteUser.isPending || rolesQuery.status !== "success") {
|
|
38
40
|
return;
|
|
39
41
|
}
|
|
40
|
-
inviteUser.mutate(data, {
|
|
42
|
+
inviteUser.mutate({ data }, {
|
|
41
43
|
onSuccess: () => {
|
|
42
44
|
setOpen(false);
|
|
43
45
|
},
|
|
@@ -49,7 +51,7 @@ export function InviteUserDialog({ children }) {
|
|
|
49
51
|
event.preventDefault();
|
|
50
52
|
onSubmitForm({
|
|
51
53
|
email: event.currentTarget.email.value,
|
|
52
|
-
|
|
54
|
+
roles: [selectedRole],
|
|
53
55
|
});
|
|
54
56
|
}, children: [_jsx(FormField, { rootId: dialogId, name: "email", label: "Email address", error: formErrors.fields.email, required: true, control: (props) => (_jsx(TextField, { ...props, "data-1p-ignore": "true", "data-lpignore": "true", type: "email", autoComplete: "off", placeholder: "Enter an email address" })) }), _jsx(FormField, { rootId: dialogId, name: "role", label: "Role", error: formErrors.fields.role, disabled: rolesQuery.isPending || roles.length <= 1, info: roles.length === 1 ? (_jsxs(_Fragment, { children: ["New users will be invited with the", " ", _jsx(Text, { weight: "bold", children: roles[0].name }), " role, as it is the only one available."] })) : undefined, control: ({ id, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, ...props }) => (_jsxs(Select.Root, { ...props, value: selectedRole, onValueChange: setSelectedRole, children: [_jsx(SelectTrigger, { id: id, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: PLACEHOLDER_ROLE, disabled: true, children: "Select a role" }), roles.map((role) => (_jsx(SelectItem, { value: role.slug, children: role.name }, role.slug)))] })] })) })] }) }), formErrors.form ? (_jsx(Callout.Root, { color: "red", mt: "4", mb: "-2", children: _jsx(Callout.Text, { children: formErrors.form }) })) : null, _jsxs(Flex, { mt: "5", gap: "3", justify: "end", children: [_jsx(Dialog.Close, { children: _jsx(SecondaryButton, { disabled: inviteUser.isPending, children: "Cancel" }) }), _jsx(PrimaryButton, { form: formId, loading: inviteUser.isPending, disabled: rolesQuery.isPending || undefined, children: "Invite" })] }), _jsx(VisuallyHidden, { asChild: true, children: _jsx("section", { "aria-live": "polite", children: formErrors.form }) })] }, String(open))] }));
|
|
55
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invite-user-dialog.js","sourceRoot":"","sources":["../../../src/lib/invite-user-dialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,OAAO,EACP,MAAM,EACN,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"invite-user-dialog.js","sourceRoot":"","sources":["../../../src/lib/invite-user-dialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AlertDialog } from "@radix-ui/themes";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
interface LogoutAllSessionsDialogProps extends AlertDialog.RootProps {
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
currentSessionId: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function LogoutAllSessionsDialog({ open, onOpenChange, children, currentSessionId, ...props }: LogoutAllSessionsDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=logout-all-sessions-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout-all-sessions-dialog.d.ts","sourceRoot":"","sources":["../../../src/lib/logout-all-sessions-dialog.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAQ,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC,UAAU,4BAA6B,SAAQ,WAAW,CAAC,SAAS;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,4BAA4B,2CAwD9B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { AlertDialog, Flex } from "@radix-ui/themes";
|
|
5
|
+
import { AlertDialogContent, DestructiveButton, SecondaryButton, } from "./elements";
|
|
6
|
+
import { getSessionsQueryKey, useRevokeAllSessions } from "@repo/api";
|
|
7
|
+
import { useQueryClient } from "@tanstack/react-query";
|
|
8
|
+
import { SaveButton } from "./save-button";
|
|
9
|
+
export function LogoutAllSessionsDialog({ open, onOpenChange, children, currentSessionId, ...props }) {
|
|
10
|
+
const client = useQueryClient();
|
|
11
|
+
const revokeAllSessions = useRevokeAllSessions();
|
|
12
|
+
const onSubmitForm = () => {
|
|
13
|
+
revokeAllSessions.mutate({ data: { currentSessionId } });
|
|
14
|
+
};
|
|
15
|
+
const handleDone = React.useCallback(() => {
|
|
16
|
+
onOpenChange?.(false);
|
|
17
|
+
client.invalidateQueries({
|
|
18
|
+
queryKey: getSessionsQueryKey(),
|
|
19
|
+
});
|
|
20
|
+
}, [client, onOpenChange]);
|
|
21
|
+
return (_jsx(AlertDialog.Root, { open: open, onOpenChange: onOpenChange, ...props, children: _jsxs(AlertDialogContent, { maxWidth: "480px", children: [_jsx(AlertDialog.Title, { children: "Sign out of all other devices?" }), _jsx(AlertDialog.Description, { children: "You will be logged out of all other active sessions on other devices, except this one." }), _jsx(Flex, { gap: "3", justify: "end", mt: "5", asChild: true, children: _jsxs("form", { onSubmit: (event) => {
|
|
22
|
+
event.preventDefault();
|
|
23
|
+
onSubmitForm();
|
|
24
|
+
}, children: [_jsx(AlertDialog.Cancel, { children: _jsx(SecondaryButton, { disabled: revokeAllSessions.isPending || revokeAllSessions.isSuccess, children: "Cancel" }) }), _jsx(SaveButton, { asChild: true, loading: revokeAllSessions.isPending, done: revokeAllSessions.isSuccess, onDone: handleDone, children: _jsx(DestructiveButton, { type: "submit", children: "Sign out" }) })] }) })] }) }));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=logout-all-sessions-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout-all-sessions-dialog.js","sourceRoot":"","sources":["../../../src/lib/logout-all-sessions-dialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,MAAM,UAAU,uBAAuB,CAAC,EACtC,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,GAAG,KAAK,EACqB;IAC7B,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAEhC,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;IAEjD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACxC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;QAEtB,MAAM,CAAC,iBAAiB,CAAC;YACvB,QAAQ,EAAE,mBAAmB,EAAE;SAChC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAE3B,OAAO,CACL,KAAC,WAAW,CAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,KAAM,KAAK,YACjE,MAAC,kBAAkB,IAAC,QAAQ,EAAC,OAAO,aAClC,KAAC,WAAW,CAAC,KAAK,iDAAmD,EACrE,KAAC,WAAW,CAAC,WAAW,yGAGE,EAE1B,KAAC,IAAI,IAAC,GAAG,EAAC,GAAG,EAAC,OAAO,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,OAAO,kBACxC,gBACE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,KAAK,CAAC,cAAc,EAAE,CAAC;4BACvB,YAAY,EAAE,CAAC;wBACjB,CAAC,aAED,KAAC,WAAW,CAAC,MAAM,cACjB,KAAC,eAAe,IACd,QAAQ,EACN,iBAAiB,CAAC,SAAS,IAAI,iBAAiB,CAAC,SAAS,uBAI5C,GACC,EAErB,KAAC,UAAU,IACT,OAAO,QACP,OAAO,EAAE,iBAAiB,CAAC,SAAS,EACpC,IAAI,EAAE,iBAAiB,CAAC,SAAS,EACjC,MAAM,EAAE,UAAU,YAElB,KAAC,iBAAiB,IAAC,IAAI,EAAC,QAAQ,yBAA6B,GAClD,IACR,GACF,IACY,GACJ,CACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AlertDialog } from "@radix-ui/themes";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
import { ActiveSession } from "@repo/api";
|
|
4
|
+
interface LogoutDialogProps extends AlertDialog.RootProps {
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
session: ActiveSession;
|
|
7
|
+
}
|
|
8
|
+
export declare function LogoutDialog({ children, session, open, onOpenChange, ...props }: LogoutDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=logout-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout-dialog.d.ts","sourceRoot":"","sources":["../../../src/lib/logout-dialog.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,OAAO,EACL,aAAa,EAGd,MAAM,WAAW,CAAC;AAKnB,UAAU,iBAAkB,SAAQ,WAAW,CAAC,SAAS;IACvD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,iBAAiB,2CA0DnB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { AlertDialog, Flex, Strong } from "@radix-ui/themes";
|
|
5
|
+
import { AlertDialogContent, DestructiveButton, SecondaryButton, } from "./elements";
|
|
6
|
+
import { getSessionsQueryKey, useRevokeSession, } from "@repo/api";
|
|
7
|
+
import { useQueryClient } from "@tanstack/react-query";
|
|
8
|
+
import { SaveButton } from "./save-button";
|
|
9
|
+
import { parseUserAgent } from "./utils";
|
|
10
|
+
export function LogoutDialog({ children, session, open, onOpenChange, ...props }) {
|
|
11
|
+
const client = useQueryClient();
|
|
12
|
+
const userAgent = parseUserAgent(session.userAgent);
|
|
13
|
+
const device = userAgent.pretty;
|
|
14
|
+
const revokeSession = useRevokeSession();
|
|
15
|
+
const handleDone = React.useCallback(() => {
|
|
16
|
+
onOpenChange?.(false);
|
|
17
|
+
client.invalidateQueries({
|
|
18
|
+
queryKey: getSessionsQueryKey(),
|
|
19
|
+
exact: false,
|
|
20
|
+
});
|
|
21
|
+
}, [onOpenChange, client]);
|
|
22
|
+
const onSubmitForm = () => {
|
|
23
|
+
revokeSession.mutate({
|
|
24
|
+
sessionId: session.id,
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
return (_jsx(AlertDialog.Root, { open: open, onOpenChange: onOpenChange, ...props, children: _jsxs(AlertDialogContent, { maxWidth: "480px", children: [_jsx(AlertDialog.Title, { children: "Sign out of device?" }), _jsxs(AlertDialog.Description, { children: ["You will be signed out of ", _jsxs(Strong, { children: [device, "."] })] }), _jsx(Flex, { gap: "3", justify: "end", mt: "5", asChild: true, children: _jsxs("form", { onSubmit: (event) => {
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
onSubmitForm();
|
|
30
|
+
}, children: [_jsx(AlertDialog.Cancel, { children: _jsx(SecondaryButton, { disabled: revokeSession.isPending || revokeSession.isSuccess, children: "Cancel" }) }), _jsx(SaveButton, { asChild: true, loading: revokeSession.isPending, done: revokeSession.isSuccess, onDone: handleDone, children: _jsx(DestructiveButton, { type: "submit", children: "Sign out" }) })] }) })] }) }));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=logout-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout-dialog.js","sourceRoot":"","sources":["../../../src/lib/logout-dialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAOzC,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,GAAG,KAAK,EACU;IAClB,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAEhC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACxC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;QAEtB,MAAM,CAAC,iBAAiB,CAAC;YACvB,QAAQ,EAAE,mBAAmB,EAAE;YAC/B,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,aAAa,CAAC,MAAM,CAAC;YACnB,SAAS,EAAE,OAAO,CAAC,EAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,WAAW,CAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,KAAM,KAAK,YACjE,MAAC,kBAAkB,IAAC,QAAQ,EAAC,OAAO,aAClC,KAAC,WAAW,CAAC,KAAK,sCAAwC,EAC1D,MAAC,WAAW,CAAC,WAAW,6CACI,MAAC,MAAM,eAAE,MAAM,SAAW,IAC5B,EAE1B,KAAC,IAAI,IAAC,GAAG,EAAC,GAAG,EAAC,OAAO,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,OAAO,kBACxC,gBACE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,KAAK,CAAC,cAAc,EAAE,CAAC;4BACvB,YAAY,EAAE,CAAC;wBACjB,CAAC,aAED,KAAC,WAAW,CAAC,MAAM,cACjB,KAAC,eAAe,IACd,QAAQ,EAAE,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,uBAG5C,GACC,EAErB,KAAC,UAAU,IACT,OAAO,QACP,OAAO,EAAE,aAAa,CAAC,SAAS,EAChC,IAAI,EAAE,aAAa,CAAC,SAAS,EAC7B,MAAM,EAAE,UAAU,YAElB,KAAC,iBAAiB,IAAC,IAAI,EAAC,QAAQ,yBAA6B,GAClD,IACR,GACF,IACY,GACJ,CACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Text } from "@radix-ui/themes";
|
|
3
|
+
import { MarginProps } from "@radix-ui/themes/props";
|
|
4
|
+
type TextProps = React.ComponentPropsWithoutRef<typeof Text>;
|
|
5
|
+
type MarkerOwnProps = {
|
|
6
|
+
color?: "gray" | "purple" | "blue" | "green" | "yellow" | "red";
|
|
7
|
+
highContrast?: boolean;
|
|
8
|
+
size?: TextProps["size"];
|
|
9
|
+
};
|
|
10
|
+
interface MarkerProps extends Omit<React.ComponentPropsWithRef<"span">, "color">, MarkerOwnProps, MarginProps {
|
|
11
|
+
}
|
|
12
|
+
export declare const Marker: React.ForwardRefExoticComponent<Omit<MarkerProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=marker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../../../src/lib/marker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD,KAAK,SAAS,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,IAAI,CAAC,CAAC;AAE7D,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAChE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CAC1B,CAAC;AAEF,UAAU,WACR,SAAQ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EACxD,cAAc,EACd,WAAW;CAAG;AAElB,eAAO,MAAM,MAAM,kGAmBlB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Text } from "@radix-ui/themes";
|
|
4
|
+
import clsx from "clsx";
|
|
5
|
+
import { namespaceClassNames } from "./utils";
|
|
6
|
+
export const Marker = React.forwardRef(function Marker({ children, className, highContrast, ...props }, forwardedRef) {
|
|
7
|
+
return (_jsx(Text, { ref: forwardedRef, className: clsx(className, namespaceClassNames("marker")), ...props, children: _jsx("span", { className: namespaceClassNames("marker-circle"), children: _jsx("span", { className: namespaceClassNames("marker-content"), children: children }) }) }));
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=marker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marker.js","sourceRoot":"","sources":["../../../src/lib/marker.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAe9C,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CACpC,SAAS,MAAM,CACb,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,EAC/C,YAAY;IAEZ,OAAO,CACL,KAAC,IAAI,IACH,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,KACrD,KAAK,YAET,eAAM,SAAS,EAAE,mBAAmB,CAAC,eAAe,CAAC,YACnD,eAAM,SAAS,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,YACnD,QAAQ,GACJ,GACF,GACF,CACR,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export declare const getOAuthIcon: (account: string) => React.ForwardRefExoticComponent<Omit<React.SVGProps<SVGSVGElement>, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
3
|
+
export declare const getOAuthName: (account: string) => "GitHub" | "Google" | "Microsoft" | "Apple";
|
|
4
|
+
//# sourceMappingURL=oauth-icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-icons.d.ts","sourceRoot":"","sources":["../../../src/lib/oauth-icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA6G/B,eAAO,MAAM,YAAY,YAAa,MAAM,qHAa3C,CAAC;AAEF,eAAO,MAAM,YAAY,YAAa,MAAM,gDAa3C,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
const GitHub = React.forwardRef((props, forwardedRef) => (_jsx("svg", { ref: forwardedRef, fill: "none", height: "16", viewBox: "0 0 15 15", width: "16", xmlns: "http://www.w3.org/2000/svg", ...props, children: _jsx("path", { clipRule: "evenodd", d: "M7.49933 0.25C3.49635 0.25 0.25 3.49593 0.25 7.50024C0.25 10.703 2.32715 13.4206 5.2081 14.3797C5.57084 14.446 5.70302 14.2222 5.70302 14.0299C5.70302 13.8576 5.69679 13.4019 5.69323 12.797C3.67661 13.235 3.25112 11.825 3.25112 11.825C2.92132 10.9874 2.44599 10.7644 2.44599 10.7644C1.78773 10.3149 2.49584 10.3238 2.49584 10.3238C3.22353 10.375 3.60629 11.0711 3.60629 11.0711C4.25298 12.1788 5.30335 11.8588 5.71638 11.6732C5.78225 11.205 5.96962 10.8854 6.17658 10.7043C4.56675 10.5209 2.87415 9.89918 2.87415 7.12104C2.87415 6.32925 3.15677 5.68257 3.62053 5.17563C3.54576 4.99226 3.29697 4.25521 3.69174 3.25691C3.69174 3.25691 4.30015 3.06196 5.68522 3.99973C6.26337 3.83906 6.8838 3.75895 7.50022 3.75583C8.1162 3.75895 8.73619 3.83906 9.31523 3.99973C10.6994 3.06196 11.3069 3.25691 11.3069 3.25691C11.7026 4.25521 11.4538 4.99226 11.3795 5.17563C11.8441 5.68257 12.1245 6.32925 12.1245 7.12104C12.1245 9.9063 10.4292 10.5192 8.81452 10.6985C9.07444 10.9224 9.30633 11.3648 9.30633 12.0413C9.30633 13.0102 9.29742 13.7922 9.29742 14.0299C9.29742 14.2239 9.42828 14.4496 9.79591 14.3788C12.6746 13.4179 14.75 10.7025 14.75 7.50024C14.75 3.49593 11.5036 0.25 7.49933 0.25Z", fill: "currentColor", fillRule: "evenodd" }) })));
|
|
4
|
+
GitHub.displayName = "GitHub";
|
|
5
|
+
const Google = React.forwardRef((props, forwardedRef) => (_jsx("svg", { ref: forwardedRef, fill: "none", height: "15", viewBox: "0 0 16 16", width: "15", xmlns: "http://www.w3.org/2000/svg", ...props, children: _jsxs("g", { children: [_jsx("path", { d: "M15.83 8.18C15.83 7.65333 15.7833 7.15333 15.7033 6.66667H8.17V9.67333H12.4833C12.29 10.66 11.7233 11.4933 10.8833 12.06V14.06H13.4567C14.9633 12.6667 15.83 10.6133 15.83 8.18Z", fill: "#4285F4" }), _jsx("path", { d: "M8.17 16C10.33 16 12.1367 15.28 13.4567 14.06L10.8833 12.06C10.1633 12.54 9.25 12.8333 8.17 12.8333C6.08334 12.8333 4.31667 11.4267 3.68334 9.52667H1.03V11.5867C2.34334 14.2 5.04334 16 8.17 16Z", fill: "#34A853" }), _jsx("path", { d: "M3.68334 9.52667C3.51667 9.04667 3.43 8.53333 3.43 8C3.43 7.46667 3.52334 6.95334 3.68334 6.47334V4.41334H1.03C0.483335 5.49334 0.170002 6.70667 0.170002 8C0.170002 9.29333 0.483335 10.5067 1.03 11.5867L3.68334 9.52667Z", fill: "#FBBC05" }), _jsx("path", { d: "M8.17 3.16667C9.35 3.16667 10.4033 3.57334 11.2367 4.36667L13.5167 2.08667C12.1367 0.793334 10.33 0 8.17 0C5.04334 0 2.34334 1.8 1.03 4.41334L3.68334 6.47334C4.31667 4.57334 6.08334 3.16667 8.17 3.16667Z", fill: "#EA4335" })] }) })));
|
|
6
|
+
Google.displayName = "Google";
|
|
7
|
+
const Microsoft = React.forwardRef((props, forwardedRef) => (_jsx("svg", { ref: forwardedRef, fill: "none", height: "15", viewBox: "0 0 15 15", width: "15", xmlns: "http://www.w3.org/2000/svg", ...props, children: _jsxs("g", { children: [_jsx("path", { d: "M0 0H7L7 7H-4.76837e-07L0 0Z", fill: "#F35325" }), _jsx("path", { d: "M8 0H15V7H8L8 0Z", fill: "#81BC06" }), _jsx("path", { d: "M0 8H7V15H0V8Z", fill: "#05A6F0" }), _jsx("path", { d: "M8 8L15 8V15L8 15V8Z", fill: "#FFBA08" })] }) })));
|
|
8
|
+
Microsoft.displayName = "Microsoft";
|
|
9
|
+
const Apple = React.forwardRef(({ style, ...props }, forwardedRef) => (_jsx("svg", { ref: forwardedRef, fill: "none", height: "15", style: { overflow: "visible", ...style }, viewBox: "0 0 15 15", width: "15", xmlns: "http://www.w3.org/2000/svg", ...props, children: _jsx("path", { d: "M14.219 3.33667C14.1169 3.41674 12.3137 4.44312 12.3137 6.72534C12.3137 9.3651 14.6082 10.299 14.6769 10.3221C14.6663 10.379 14.3124 11.601 13.4671 12.8462C12.7134 13.942 11.9263 15.0359 10.7288 15.0359C9.53134 15.0359 9.22317 14.3333 7.84081 14.3333C6.49366 14.3333 6.01469 15.0591 4.91935 15.0591C3.82401 15.0591 3.05978 14.0451 2.18104 12.8C1.1632 11.3378 0.34082 9.06625 0.34082 6.91034C0.34082 3.45232 2.56668 1.61835 4.75732 1.61835C5.92133 1.61835 6.89164 2.39036 7.62246 2.39036C8.31802 2.39036 9.40277 1.5721 10.7271 1.5721C11.2289 1.5721 13.0321 1.61835 14.219 3.33667ZM10.0984 0.108136C10.646 -0.548247 11.0334 -1.459 11.0334 -2.36975C11.0334 -2.49605 11.0229 -2.62412 11 -2.72729C10.1089 -2.6935 9.04883 -2.12783 8.40959 -1.37895C7.90772 -0.802617 7.43931 0.108136 7.43931 1.03134C7.43931 1.1701 7.46218 1.30883 7.47277 1.35331C7.52909 1.36398 7.62067 1.37643 7.71224 1.37643C8.51172 1.37643 9.51724 0.835672 10.0984 0.108136Z", fill: "currentColor" }) })));
|
|
10
|
+
Apple.displayName = "Apple";
|
|
11
|
+
export const getOAuthIcon = (account) => {
|
|
12
|
+
switch (account) {
|
|
13
|
+
case "GithubOAuth":
|
|
14
|
+
return GitHub;
|
|
15
|
+
case "GoogleOAuth":
|
|
16
|
+
return Google;
|
|
17
|
+
case "MicrosoftOAuth":
|
|
18
|
+
return Microsoft;
|
|
19
|
+
case "AppleOAuth":
|
|
20
|
+
return Apple;
|
|
21
|
+
default:
|
|
22
|
+
throw new Error(`Unknown OAuth account type: ${account}`);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
export const getOAuthName = (account) => {
|
|
26
|
+
switch (account) {
|
|
27
|
+
case "GithubOAuth":
|
|
28
|
+
return "GitHub";
|
|
29
|
+
case "GoogleOAuth":
|
|
30
|
+
return "Google";
|
|
31
|
+
case "MicrosoftOAuth":
|
|
32
|
+
return "Microsoft";
|
|
33
|
+
case "AppleOAuth":
|
|
34
|
+
return "Apple";
|
|
35
|
+
default:
|
|
36
|
+
throw new Error(`Unknown OAuth account type: ${account}`);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=oauth-icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-icons.js","sourceRoot":"","sources":["../../../src/lib/oauth-icons.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAG7B,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,CACzB,cACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,IAAI,EACV,KAAK,EAAC,4BAA4B,KAC9B,KAAK,YAET,eACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,4pCAA4pC,EAC9pC,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,GACZ,GACJ,CACP,CAAC,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAG7B,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,CACzB,cACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,IAAI,EACV,KAAK,EAAC,4BAA4B,KAC9B,KAAK,YAET,wBACE,eACE,CAAC,EAAC,kLAAkL,EACpL,IAAI,EAAC,SAAS,GACd,EACF,eACE,CAAC,EAAC,mMAAmM,EACrM,IAAI,EAAC,SAAS,GACd,EACF,eACE,CAAC,EAAC,6NAA6N,EAC/N,IAAI,EAAC,SAAS,GACd,EACF,eACE,CAAC,EAAC,6MAA6M,EAC/M,IAAI,EAAC,SAAS,GACd,IACA,GACA,CACP,CAAC,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAGhC,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,CACzB,cACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,IAAI,EACV,KAAK,EAAC,4BAA4B,KAC9B,KAAK,YAET,wBACE,eAAM,CAAC,EAAC,8BAA8B,EAAC,IAAI,EAAC,SAAS,GAAG,EACxD,eAAM,CAAC,EAAC,kBAAkB,EAAC,IAAI,EAAC,SAAS,GAAG,EAC5C,eAAM,CAAC,EAAC,gBAAgB,EAAC,IAAI,EAAC,SAAS,GAAG,EAC1C,eAAM,CAAC,EAAC,sBAAsB,EAAC,IAAI,EAAC,SAAS,GAAG,IAC9C,GACA,CACP,CAAC,CAAC;AAEH,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAEpC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAG5B,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,CACvC,cACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,IAAI,EACX,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EACxC,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,IAAI,EACV,KAAK,EAAC,4BAA4B,KAC9B,KAAK,YAET,eACE,CAAC,EAAC,46BAA46B,EAC96B,IAAI,EAAC,cAAc,GACnB,GACE,CACP,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAE5B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE;IAC9C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,aAAa;YAChB,OAAO,MAAM,CAAC;QAChB,KAAK,aAAa;YAChB,OAAO,MAAM,CAAC;QAChB,KAAK,gBAAgB;YACnB,OAAO,SAAS,CAAC;QACnB,KAAK,YAAY;YACf,OAAO,KAAK,CAAC;QACf;YACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE;IAC9C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,aAAa;YAChB,OAAO,QAAQ,CAAC;QAClB,KAAK,aAAa;YAChB,OAAO,QAAQ,CAAC;QAClB,KAAK,gBAAgB;YACnB,OAAO,WAAW,CAAC;QACrB,KAAK,YAAY;YACf,OAAO,OAAO,CAAC;QACjB;YACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { OrganizationInfo, Organizations403, Organizations404 } from "@repo/api";
|
|
2
|
+
type OrganizationSwitcherVariant = "ghost" | "outline";
|
|
3
|
+
export type OrganizationSwitcherPassthroughProps = {
|
|
4
|
+
switchToOrganization: ({ organizationId, }: {
|
|
5
|
+
organizationId: string;
|
|
6
|
+
}) => void;
|
|
7
|
+
variant?: OrganizationSwitcherVariant;
|
|
8
|
+
organizationLabel?: string | null;
|
|
9
|
+
children?: React.ReactNode;
|
|
10
|
+
};
|
|
11
|
+
export interface OrganizationSwitcherProps extends OrganizationSwitcherPassthroughProps {
|
|
12
|
+
organizations: OrganizationInfo[];
|
|
13
|
+
}
|
|
14
|
+
export declare const OrganizationSwitcher: ({ organizations, switchToOrganization, variant, organizationLabel, children, }: OrganizationSwitcherProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
15
|
+
export declare function OrganizationSwitcherLoading({ variant, organizations, }: {
|
|
16
|
+
variant?: OrganizationSwitcherVariant;
|
|
17
|
+
organizations: OrganizationInfo[];
|
|
18
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
interface OrganizationSwitcherErrorProps {
|
|
20
|
+
error: Organizations403 | Organizations404;
|
|
21
|
+
}
|
|
22
|
+
export declare function OrganizationSwitcherError(_: OrganizationSwitcherErrorProps): null;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=organization-switcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization-switcher.d.ts","sourceRoot":"","sources":["../../../src/lib/organization-switcher.tsx"],"names":[],"mappings":"AAaA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AAEnB,KAAK,2BAA2B,GAAG,OAAO,GAAG,SAAS,CAAC;AAGvD,MAAM,MAAM,oCAAoC,GAAG;IACjD,oBAAoB,EAAE,CAAC,EACrB,cAAc,GACf,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;KACxB,KAAK,IAAI,CAAC;IAEX,OAAO,CAAC,EAAE,2BAA2B,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,yBACf,SAAQ,oCAAoC;IAC5C,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,oBAAoB,mFAM9B,yBAAyB,mDAiF3B,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,EAC1C,OAAmB,EACnB,aAAa,GACd,EAAE;IACD,OAAO,CAAC,EAAE,2BAA2B,CAAC;IACtC,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACnC,2CAgBA;AAED,UAAU,8BAA8B;IACtC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAAC;CAC5C;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,8BAA8B,QAG1E"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { CheckIcon } from "@radix-ui/react-icons";
|
|
4
|
+
import { Box, Button, ChevronDownIcon, DropdownMenu, Flex, Skeleton, Text, VisuallyHidden, } from "@radix-ui/themes";
|
|
5
|
+
export const OrganizationSwitcher = ({ organizations, switchToOrganization, variant = "outline", organizationLabel = "Organizations", children, }) => {
|
|
6
|
+
const currentOrganization = organizations.find((organization) => organization.current);
|
|
7
|
+
// Possible if the user has no organizations - we should figure out what to do in this case
|
|
8
|
+
if (!currentOrganization) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return (_jsxs(DropdownMenu.Root, { children: [_jsx(DropdownMenu.Trigger, { children: _jsx(Button, { color: "gray", variant: variant, className: "OrganizationSwitcherTrigger", children: _jsxs(Flex, { align: "center", justify: "between", gap: "2", flexGrow: "1", children: [_jsx(Text, { children: currentOrganization.name }), _jsx(DropdownMenu.TriggerIcon, {})] }) }) }), _jsxs(DropdownMenu.Content, { children: [_jsxs(DropdownMenu.Group, { children: [organizationLabel ? (_jsx(DropdownMenu.Label, { children: _jsx(Text, { children: organizationLabel }) })) : null, organizations.map((organization) => (_jsx(Flex, { asChild: true, pr: "2", maxWidth: "280px", minWidth: "180px", children: _jsx(DropdownMenu.Item, { onClick: () => {
|
|
12
|
+
if (organization.id !== currentOrganization.id) {
|
|
13
|
+
switchToOrganization({ organizationId: organization.id });
|
|
14
|
+
}
|
|
15
|
+
}, children: _jsxs(Flex, { justify: "between", align: "center", gap: "4", flexGrow: "1", overflow: "hidden", children: [_jsxs(Text, { truncate: true, children: [organization.name, organization.current && (_jsx(VisuallyHidden, { children: " (current)" }))] }), _jsx(Flex, { "aria-hidden": true, align: "center", justify: "center", flexShrink: "0", children: organization.current ? (_jsx(CheckIcon, { width: "18px", height: "18px" })) : (
|
|
16
|
+
// make the extra space for
|
|
17
|
+
_jsx(Box, { width: "18px", height: "18px" })) })] }) }) }, organization.id)))] }), children] })] }));
|
|
18
|
+
};
|
|
19
|
+
export function OrganizationSwitcherLoading({ variant = "outline", organizations, }) {
|
|
20
|
+
const currentOrganization = organizations.find((organization) => organization.current);
|
|
21
|
+
return (
|
|
22
|
+
// Always need DropdownMenu.Root to wrap children than may include
|
|
23
|
+
_jsx(Button, { color: "gray", variant: variant, disabled: true, children: _jsxs(Flex, { align: "center", gap: "2", children: [_jsx(Skeleton, { loading: !currentOrganization, children: _jsx(Text, { children: currentOrganization?.name ?? "Loading..." }) }), _jsx(ChevronDownIcon, {})] }) }));
|
|
24
|
+
}
|
|
25
|
+
export function OrganizationSwitcherError(_) {
|
|
26
|
+
// TODO: consider other error state options
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=organization-switcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization-switcher.js","sourceRoot":"","sources":["../../../src/lib/organization-switcher.tsx"],"names":[],"mappings":"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"}
|