@workos-inc/widgets 1.4.2 → 1.5.1
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/CHANGELOG.md +19 -8
- package/dist/cjs/admin-portal-domain-verification.client.cjs +114 -0
- package/dist/cjs/admin-portal-domain-verification.client.cjs.map +1 -0
- package/dist/cjs/admin-portal-domain-verification.client.d.cts +14 -0
- package/dist/cjs/admin-portal-sso-connection-client.cjs +268 -0
- package/dist/cjs/admin-portal-sso-connection-client.cjs.map +1 -0
- package/dist/cjs/admin-portal-sso-connection-client.d.cts +12 -0
- package/dist/cjs/api/api-provider.cjs +126 -0
- package/dist/cjs/api/api-provider.cjs.map +1 -0
- package/dist/cjs/api/api-provider.d.cts +32 -0
- package/dist/cjs/api/constants.cjs +29 -0
- package/dist/cjs/api/constants.cjs.map +1 -0
- package/dist/cjs/api/constants.d.cts +3 -0
- package/dist/cjs/api/endpoint.cjs +1648 -0
- package/dist/cjs/api/endpoint.cjs.map +1 -0
- package/dist/cjs/api/endpoint.d.cts +1687 -0
- package/dist/cjs/api/errors.cjs +57 -0
- package/dist/cjs/api/errors.cjs.map +1 -0
- package/dist/cjs/api/{errors.d.ts → errors.d.cts} +5 -5
- package/dist/cjs/api/utils.cjs +78 -0
- package/dist/cjs/api/utils.cjs.map +1 -0
- package/dist/cjs/api/utils.d.cts +16 -0
- package/dist/cjs/api/widgets-api-client.cjs +92 -0
- package/dist/cjs/api/widgets-api-client.cjs.map +1 -0
- package/dist/cjs/api/{widgets-api-client.d.ts → widgets-api-client.d.cts} +8 -7
- package/dist/cjs/api-keys-client.cjs +77 -0
- package/dist/cjs/api-keys-client.cjs.map +1 -0
- package/dist/cjs/api-keys-client.d.cts +10 -0
- package/dist/cjs/index.cjs +67 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +26 -0
- package/dist/cjs/lib/add-mfa-dialog.cjs +335 -0
- package/dist/cjs/lib/add-mfa-dialog.cjs.map +1 -0
- package/dist/cjs/lib/add-mfa-dialog.d.cts +11 -0
- package/dist/cjs/lib/admin-portal-domain-verification.cjs +133 -0
- package/dist/cjs/lib/admin-portal-domain-verification.cjs.map +1 -0
- package/dist/cjs/lib/admin-portal-domain-verification.d.cts +20 -0
- package/dist/cjs/lib/admin-portal-sso-connection.cjs +312 -0
- package/dist/cjs/lib/admin-portal-sso-connection.cjs.map +1 -0
- package/dist/cjs/lib/admin-portal-sso-connection.d.cts +42 -0
- package/dist/cjs/lib/api/api-key.cjs +65 -0
- package/dist/cjs/lib/api/api-key.cjs.map +1 -0
- package/dist/cjs/lib/api/api-key.d.cts +16 -0
- package/dist/cjs/lib/api/config.cjs +38 -0
- package/dist/cjs/lib/api/config.cjs.map +1 -0
- package/dist/cjs/lib/api/{config.d.ts → config.d.cts} +4 -3
- package/dist/cjs/lib/api/user.cjs +113 -0
- package/dist/cjs/lib/api/user.cjs.map +1 -0
- package/dist/cjs/lib/api/user.d.cts +26 -0
- package/dist/cjs/lib/api-keys/api-key-details-card.cjs +61 -0
- package/dist/cjs/lib/api-keys/api-key-details-card.cjs.map +1 -0
- package/dist/cjs/lib/api-keys/api-key-details-card.d.cts +11 -0
- package/dist/cjs/lib/api-keys/api-key-details-dialog.cjs +79 -0
- package/dist/cjs/lib/api-keys/api-key-details-dialog.cjs.map +1 -0
- package/dist/cjs/lib/api-keys/api-key-details-dialog.d.cts +13 -0
- package/dist/cjs/lib/api-keys/api-keys-context.cjs +85 -0
- package/dist/cjs/lib/api-keys/api-keys-context.cjs.map +1 -0
- package/dist/cjs/lib/api-keys/api-keys-context.d.cts +19 -0
- package/dist/cjs/lib/api-keys/api-keys-search-provider.cjs +79 -0
- package/dist/cjs/lib/api-keys/api-keys-search-provider.cjs.map +1 -0
- package/dist/cjs/lib/api-keys/api-keys-search-provider.d.cts +12 -0
- package/dist/cjs/lib/api-keys/api-keys-search.cjs +99 -0
- package/dist/cjs/lib/api-keys/api-keys-search.cjs.map +1 -0
- package/dist/cjs/lib/api-keys/api-keys-search.d.cts +6 -0
- package/dist/cjs/lib/api-keys/api-keys-state.cjs +157 -0
- package/dist/cjs/lib/api-keys/api-keys-state.cjs.map +1 -0
- package/dist/cjs/lib/api-keys/api-keys-state.d.cts +31 -0
- package/dist/cjs/lib/api-keys/api-keys-table.cjs +180 -0
- package/dist/cjs/lib/api-keys/api-keys-table.cjs.map +1 -0
- package/dist/cjs/lib/api-keys/api-keys-table.d.cts +10 -0
- package/dist/cjs/lib/api-keys/api-keys.cjs +111 -0
- package/dist/cjs/lib/api-keys/api-keys.cjs.map +1 -0
- package/dist/cjs/lib/api-keys/api-keys.d.cts +11 -0
- package/dist/cjs/lib/api-keys/create-api-key.cjs +365 -0
- package/dist/cjs/lib/api-keys/create-api-key.cjs.map +1 -0
- package/dist/cjs/lib/api-keys/create-api-key.d.cts +6 -0
- package/dist/cjs/lib/api-keys/relative-time.cjs +42 -0
- package/dist/cjs/lib/api-keys/relative-time.cjs.map +1 -0
- package/dist/cjs/lib/api-keys/relative-time.d.cts +7 -0
- package/dist/cjs/lib/api-keys/revoke-api-key-dialog.cjs +86 -0
- package/dist/cjs/lib/api-keys/revoke-api-key-dialog.cjs.map +1 -0
- package/dist/cjs/lib/api-keys/revoke-api-key-dialog.d.cts +12 -0
- package/dist/cjs/lib/api-keys/skeleton-table.cjs +39 -0
- package/dist/cjs/lib/api-keys/skeleton-table.cjs.map +1 -0
- package/dist/cjs/lib/api-keys/skeleton-table.d.cts +9 -0
- package/dist/cjs/lib/card-list.cjs +47 -0
- package/dist/cjs/lib/card-list.cjs.map +1 -0
- package/dist/cjs/lib/card-list.d.cts +9 -0
- package/dist/cjs/lib/change-password-dialog.cjs +238 -0
- package/dist/cjs/lib/change-password-dialog.cjs.map +1 -0
- package/dist/cjs/lib/change-password-dialog.d.cts +10 -0
- package/dist/cjs/lib/constants.cjs +35 -0
- package/dist/cjs/lib/constants.cjs.map +1 -0
- package/dist/cjs/lib/constants.d.cts +5 -0
- package/dist/cjs/lib/copy-button.cjs +74 -0
- package/dist/cjs/lib/copy-button.cjs.map +1 -0
- package/dist/cjs/lib/copy-button.d.cts +10 -0
- package/dist/cjs/lib/delete-domain-dialog.cjs +72 -0
- package/dist/cjs/lib/delete-domain-dialog.cjs.map +1 -0
- package/dist/cjs/lib/delete-domain-dialog.d.cts +16 -0
- package/dist/cjs/lib/delete-user-dialog.cjs +96 -0
- package/dist/cjs/lib/delete-user-dialog.cjs.map +1 -0
- package/dist/cjs/lib/delete-user-dialog.d.cts +16 -0
- package/dist/cjs/lib/domain-actions.cjs +89 -0
- package/dist/cjs/lib/domain-actions.cjs.map +1 -0
- package/dist/cjs/lib/domain-actions.d.cts +13 -0
- package/dist/cjs/lib/domain-item.cjs +86 -0
- package/dist/cjs/lib/domain-item.cjs.map +1 -0
- package/dist/cjs/lib/domain-item.d.cts +13 -0
- package/dist/cjs/lib/edit-user-profile-dialog.cjs +170 -0
- package/dist/cjs/lib/edit-user-profile-dialog.cjs.map +1 -0
- package/dist/cjs/lib/edit-user-profile-dialog.d.cts +14 -0
- package/dist/cjs/lib/edit-user-role-dialog.cjs +321 -0
- package/dist/cjs/lib/edit-user-role-dialog.cjs.map +1 -0
- package/dist/cjs/lib/edit-user-role-dialog.d.cts +27 -0
- package/dist/cjs/lib/elements.cjs +396 -0
- package/dist/cjs/lib/elements.cjs.map +1 -0
- package/dist/cjs/lib/elements.d.cts +47 -0
- package/dist/cjs/lib/elevated-access.cjs +208 -0
- package/dist/cjs/lib/elevated-access.cjs.map +1 -0
- package/dist/cjs/lib/elevated-access.d.cts +10 -0
- package/dist/cjs/lib/empty-state.cjs +39 -0
- package/dist/cjs/lib/empty-state.cjs.map +1 -0
- package/dist/cjs/lib/empty-state.d.cts +10 -0
- package/dist/cjs/lib/error-boundary.cjs +115 -0
- package/dist/cjs/lib/error-boundary.cjs.map +1 -0
- package/dist/cjs/lib/{error-boundary.d.ts → error-boundary.d.cts} +13 -11
- package/dist/cjs/lib/errors.cjs +66 -0
- package/dist/cjs/lib/errors.cjs.map +1 -0
- package/dist/cjs/lib/{errors.d.ts → errors.d.cts} +6 -6
- package/dist/cjs/lib/generic-error.cjs +98 -0
- package/dist/cjs/lib/generic-error.cjs.map +1 -0
- package/dist/cjs/lib/generic-error.d.cts +11 -0
- package/dist/cjs/lib/icon-panel.cjs +53 -0
- package/dist/cjs/lib/icon-panel.cjs.map +1 -0
- package/dist/cjs/lib/icon-panel.d.cts +8 -0
- package/dist/cjs/lib/icons.cjs +51 -0
- package/dist/cjs/lib/icons.cjs.map +1 -0
- package/dist/cjs/lib/icons.d.cts +6 -0
- package/dist/cjs/lib/identity-providers.cjs +111 -0
- package/dist/cjs/lib/identity-providers.cjs.map +1 -0
- package/dist/cjs/lib/identity-providers.d.cts +7 -0
- package/dist/cjs/lib/invite-user-dialog.cjs +277 -0
- package/dist/cjs/lib/invite-user-dialog.cjs.map +1 -0
- package/dist/cjs/lib/invite-user-dialog.d.cts +9 -0
- package/dist/cjs/lib/logout-all-sessions-dialog.cjs +97 -0
- package/dist/cjs/lib/logout-all-sessions-dialog.cjs.map +1 -0
- package/dist/cjs/lib/logout-all-sessions-dialog.d.cts +11 -0
- package/dist/cjs/lib/logout-dialog.cjs +109 -0
- package/dist/cjs/lib/logout-dialog.cjs.map +1 -0
- package/dist/cjs/lib/logout-dialog.d.cts +14 -0
- package/dist/cjs/lib/marker.cjs +56 -0
- package/dist/cjs/lib/marker.cjs.map +1 -0
- package/dist/cjs/lib/{marker.d.ts → marker.d.cts} +7 -6
- package/dist/cjs/lib/name-server-icon.cjs +101 -0
- package/dist/cjs/lib/name-server-icon.cjs.map +1 -0
- package/dist/cjs/lib/name-server-icon.d.cts +11 -0
- package/dist/cjs/lib/oauth-icons.cjs +175 -0
- package/dist/cjs/lib/oauth-icons.cjs.map +1 -0
- package/dist/cjs/lib/oauth-icons.d.cts +6 -0
- package/dist/cjs/lib/organization-switcher.cjs +188 -0
- package/dist/cjs/lib/organization-switcher.cjs.map +1 -0
- package/dist/cjs/lib/{organization-switcher.d.ts → organization-switcher.d.cts} +12 -8
- package/dist/cjs/lib/otp-input.cjs +246 -0
- package/dist/cjs/lib/otp-input.cjs.map +1 -0
- package/dist/cjs/lib/otp-input.d.cts +22 -0
- package/dist/cjs/lib/provider-icon.cjs +69 -0
- package/dist/cjs/lib/provider-icon.cjs.map +1 -0
- package/dist/cjs/lib/{provider-icon.d.ts → provider-icon.d.cts} +5 -4
- package/dist/cjs/lib/resend-invite-dialog.cjs +149 -0
- package/dist/cjs/lib/resend-invite-dialog.cjs.map +1 -0
- package/dist/cjs/lib/resend-invite-dialog.d.cts +14 -0
- package/dist/cjs/lib/reset-mfa-dialog.cjs +111 -0
- package/dist/cjs/lib/reset-mfa-dialog.cjs.map +1 -0
- package/dist/cjs/lib/reset-mfa-dialog.d.cts +11 -0
- package/dist/cjs/lib/revoke-invite-dialog.cjs +103 -0
- package/dist/cjs/lib/revoke-invite-dialog.cjs.map +1 -0
- package/dist/cjs/lib/revoke-invite-dialog.d.cts +14 -0
- package/dist/cjs/lib/save-button.cjs +119 -0
- package/dist/cjs/lib/save-button.cjs.map +1 -0
- package/dist/cjs/lib/save-button.d.cts +13 -0
- package/dist/cjs/lib/search-provider.cjs +79 -0
- package/dist/cjs/lib/search-provider.cjs.map +1 -0
- package/dist/cjs/lib/search-provider.d.cts +12 -0
- package/dist/cjs/lib/set-password-dialog.cjs +165 -0
- package/dist/cjs/lib/set-password-dialog.cjs.map +1 -0
- package/dist/cjs/lib/set-password-dialog.d.cts +10 -0
- package/dist/cjs/lib/status.cjs +72 -0
- package/dist/cjs/lib/status.cjs.map +1 -0
- package/dist/cjs/lib/status.d.cts +11 -0
- package/dist/cjs/lib/use-dialog-close.cjs +53 -0
- package/dist/cjs/lib/use-dialog-close.cjs.map +1 -0
- package/dist/cjs/lib/use-dialog-close.d.cts +3 -0
- package/dist/cjs/lib/use-is-hydrated.cjs +50 -0
- package/dist/cjs/lib/use-is-hydrated.cjs.map +1 -0
- package/dist/cjs/lib/use-is-hydrated.d.cts +3 -0
- package/dist/cjs/lib/use-layout-effect.cjs +31 -0
- package/dist/cjs/lib/use-layout-effect.cjs.map +1 -0
- package/dist/cjs/lib/{use-layout-effect.d.ts → use-layout-effect.d.cts} +3 -2
- package/dist/cjs/lib/use-permissions.cjs +48 -0
- package/dist/cjs/lib/use-permissions.cjs.map +1 -0
- package/dist/cjs/lib/use-permissions.d.cts +6 -0
- package/dist/cjs/lib/use-security-settings.cjs +59 -0
- package/dist/cjs/lib/use-security-settings.cjs.map +1 -0
- package/dist/cjs/lib/{use-security-settings.d.ts → use-security-settings.d.cts} +3 -3
- package/dist/cjs/lib/user-actions-dropdown.cjs +168 -0
- package/dist/cjs/lib/user-actions-dropdown.cjs.map +1 -0
- package/dist/cjs/lib/user-actions-dropdown.d.cts +13 -0
- package/dist/cjs/lib/user-profile.cjs +175 -0
- package/dist/cjs/lib/user-profile.cjs.map +1 -0
- package/dist/cjs/lib/user-profile.d.cts +15 -0
- package/dist/cjs/lib/user-security.cjs +135 -0
- package/dist/cjs/lib/user-security.cjs.map +1 -0
- package/dist/cjs/lib/user-security.d.cts +15 -0
- package/dist/cjs/lib/user-sessions.cjs +178 -0
- package/dist/cjs/lib/user-sessions.cjs.map +1 -0
- package/dist/cjs/lib/user-sessions.d.cts +16 -0
- package/dist/cjs/lib/users-filter.cjs +85 -0
- package/dist/cjs/lib/users-filter.cjs.map +1 -0
- package/dist/cjs/lib/users-filter.d.cts +13 -0
- package/dist/cjs/lib/users-management-context.cjs +81 -0
- package/dist/cjs/lib/users-management-context.cjs.map +1 -0
- package/dist/cjs/lib/users-management-context.d.cts +19 -0
- package/dist/cjs/lib/users-management-state.cjs +154 -0
- package/dist/cjs/lib/users-management-state.cjs.map +1 -0
- package/dist/cjs/lib/users-management-state.d.cts +26 -0
- package/dist/cjs/lib/users-management.cjs +485 -0
- package/dist/cjs/lib/users-management.cjs.map +1 -0
- package/dist/cjs/lib/users-management.d.cts +22 -0
- package/dist/cjs/lib/users-search.cjs +101 -0
- package/dist/cjs/lib/users-search.cjs.map +1 -0
- package/dist/cjs/lib/users-search.d.cts +6 -0
- package/dist/cjs/lib/utils.cjs +148 -0
- package/dist/cjs/lib/utils.cjs.map +1 -0
- package/dist/cjs/lib/utils.d.cts +31 -0
- package/dist/cjs/lib/view-dns-record-dialog.cjs +101 -0
- package/dist/cjs/lib/view-dns-record-dialog.cjs.map +1 -0
- package/dist/cjs/lib/view-dns-record-dialog.d.cts +16 -0
- package/dist/cjs/lib/widgets-context.cjs +59 -0
- package/dist/cjs/lib/widgets-context.cjs.map +1 -0
- package/dist/cjs/lib/widgets-context.d.cts +15 -0
- package/dist/cjs/organization-switcher.client.cjs +79 -0
- package/dist/cjs/organization-switcher.client.cjs.map +1 -0
- package/dist/cjs/organization-switcher.client.d.cts +15 -0
- package/dist/cjs/user-profile.client.cjs +61 -0
- package/dist/cjs/user-profile.client.cjs.map +1 -0
- package/dist/cjs/user-profile.client.d.cts +14 -0
- package/dist/cjs/user-security.client.cjs +68 -0
- package/dist/cjs/user-security.client.cjs.map +1 -0
- package/dist/cjs/user-security.client.d.cts +14 -0
- package/dist/cjs/user-sessions.client.cjs +94 -0
- package/dist/cjs/user-sessions.client.cjs.map +1 -0
- package/dist/cjs/user-sessions.client.d.cts +18 -0
- package/dist/cjs/users-management.client.cjs +82 -0
- package/dist/cjs/users-management.client.cjs.map +1 -0
- package/dist/cjs/users-management.client.d.cts +14 -0
- package/dist/cjs/workos-widgets.client.cjs +106 -0
- package/dist/cjs/workos-widgets.client.cjs.map +1 -0
- package/dist/cjs/{workos-widgets.client.d.ts → workos-widgets.client.d.cts} +10 -7
- package/dist/css/lib/api-keys/api-keys.css +3 -0
- package/dist/css/lib/provider-icon.css +87 -9
- package/dist/css/styles.css +1 -0
- package/dist/esm/admin-portal-domain-verification.client.d.ts +12 -7
- package/dist/esm/admin-portal-domain-verification.client.js +88 -55
- package/dist/esm/admin-portal-domain-verification.client.js.map +1 -1
- package/dist/esm/admin-portal-sso-connection-client.d.ts +10 -7
- package/dist/esm/admin-portal-sso-connection-client.js +222 -176
- package/dist/esm/admin-portal-sso-connection-client.js.map +1 -1
- package/dist/esm/api/api-provider.d.ts +13 -10
- package/dist/esm/api/api-provider.js +83 -95
- package/dist/esm/api/api-provider.js.map +1 -1
- package/dist/esm/api/constants.d.ts +3 -2
- package/dist/esm/api/constants.js +4 -1
- package/dist/esm/api/constants.js.map +1 -1
- package/dist/esm/api/endpoint.d.ts +836 -449
- package/dist/esm/api/endpoint.js +1456 -1024
- package/dist/esm/api/endpoint.js.map +1 -1
- package/dist/esm/api/errors.d.ts +5 -5
- package/dist/esm/api/errors.js +27 -30
- package/dist/esm/api/errors.js.map +1 -1
- package/dist/esm/api/utils.d.ts +11 -5
- package/dist/esm/api/utils.js +41 -27
- package/dist/esm/api/utils.js.map +1 -1
- package/dist/esm/api/widgets-api-client.d.ts +8 -7
- package/dist/esm/api/widgets-api-client.js +60 -50
- package/dist/esm/api/widgets-api-client.js.map +1 -1
- package/dist/esm/api-keys-client.d.ts +10 -0
- package/dist/esm/api-keys-client.js +60 -0
- package/dist/esm/api-keys-client.js.map +1 -0
- package/dist/esm/index.d.ts +26 -9
- package/dist/esm/index.js +50 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/add-mfa-dialog.d.ts +7 -5
- package/dist/esm/lib/add-mfa-dialog.js +290 -86
- package/dist/esm/lib/add-mfa-dialog.js.map +1 -1
- package/dist/esm/lib/admin-portal-domain-verification.d.ts +12 -8
- package/dist/esm/lib/admin-portal-domain-verification.js +84 -10
- package/dist/esm/lib/admin-portal-domain-verification.js.map +1 -1
- package/dist/esm/lib/admin-portal-sso-connection.d.ts +14 -12
- package/dist/esm/lib/admin-portal-sso-connection.js +258 -153
- package/dist/esm/lib/admin-portal-sso-connection.js.map +1 -1
- package/dist/esm/lib/api/api-key.d.ts +16 -0
- package/dist/esm/lib/api/api-key.js +46 -0
- package/dist/esm/lib/api/api-key.js.map +1 -0
- package/dist/esm/lib/api/config.d.ts +4 -3
- package/dist/esm/lib/api/config.js +11 -7
- package/dist/esm/lib/api/config.js.map +1 -1
- package/dist/esm/lib/api/user.d.ts +19 -10
- package/dist/esm/lib/api/user.js +85 -62
- package/dist/esm/lib/api/user.js.map +1 -1
- package/dist/esm/lib/api-keys/api-key-details-card.d.ts +11 -0
- package/dist/esm/lib/api-keys/api-key-details-card.js +37 -0
- package/dist/esm/lib/api-keys/api-key-details-card.js.map +1 -0
- package/dist/esm/lib/api-keys/api-key-details-dialog.d.ts +13 -0
- package/dist/esm/lib/api-keys/api-key-details-dialog.js +57 -0
- package/dist/esm/lib/api-keys/api-key-details-dialog.js.map +1 -0
- package/dist/esm/lib/api-keys/api-keys-context.d.ts +19 -0
- package/dist/esm/lib/api-keys/api-keys-context.js +52 -0
- package/dist/esm/lib/api-keys/api-keys-context.js.map +1 -0
- package/dist/esm/lib/api-keys/api-keys-search-provider.d.ts +12 -0
- package/dist/esm/lib/api-keys/api-keys-search-provider.js +44 -0
- package/dist/esm/lib/api-keys/api-keys-search-provider.js.map +1 -0
- package/dist/esm/lib/api-keys/api-keys-search.d.ts +6 -0
- package/dist/esm/lib/api-keys/api-keys-search.js +65 -0
- package/dist/esm/lib/api-keys/api-keys-search.js.map +1 -0
- package/dist/esm/lib/api-keys/api-keys-state.d.ts +31 -0
- package/dist/esm/lib/api-keys/api-keys-state.js +123 -0
- package/dist/esm/lib/api-keys/api-keys-state.js.map +1 -0
- package/dist/esm/lib/api-keys/api-keys-table.d.ts +10 -0
- package/dist/esm/lib/api-keys/api-keys-table.js +169 -0
- package/dist/esm/lib/api-keys/api-keys-table.js.map +1 -0
- package/dist/esm/lib/api-keys/api-keys.d.ts +11 -0
- package/dist/esm/lib/api-keys/api-keys.js +74 -0
- package/dist/esm/lib/api-keys/api-keys.js.map +1 -0
- package/dist/esm/lib/api-keys/create-api-key.d.ts +6 -0
- package/dist/esm/lib/api-keys/create-api-key.js +352 -0
- package/dist/esm/lib/api-keys/create-api-key.js.map +1 -0
- package/dist/esm/lib/api-keys/relative-time.d.ts +7 -0
- package/dist/esm/lib/api-keys/relative-time.js +18 -0
- package/dist/esm/lib/api-keys/relative-time.js.map +1 -0
- package/dist/esm/lib/api-keys/revoke-api-key-dialog.d.ts +12 -0
- package/dist/esm/lib/api-keys/revoke-api-key-dialog.js +64 -0
- package/dist/esm/lib/api-keys/revoke-api-key-dialog.js.map +1 -0
- package/dist/esm/lib/api-keys/skeleton-table.d.ts +9 -0
- package/dist/esm/lib/api-keys/skeleton-table.js +15 -0
- package/dist/esm/lib/api-keys/skeleton-table.js.map +1 -0
- package/dist/esm/lib/card-list.d.ts +9 -0
- package/dist/esm/lib/card-list.js +22 -0
- package/dist/esm/lib/card-list.js.map +1 -0
- package/dist/esm/lib/change-password-dialog.d.ts +7 -5
- package/dist/esm/lib/change-password-dialog.js +197 -58
- package/dist/esm/lib/change-password-dialog.js.map +1 -1
- package/dist/esm/lib/constants.d.ts +5 -4
- package/dist/esm/lib/constants.js +8 -3
- package/dist/esm/lib/constants.js.map +1 -1
- package/dist/esm/lib/copy-button.d.ts +6 -4
- package/dist/esm/lib/copy-button.js +29 -25
- package/dist/esm/lib/copy-button.js.map +1 -1
- package/dist/esm/lib/delete-domain-dialog.d.ts +9 -5
- package/dist/esm/lib/delete-domain-dialog.js +44 -18
- package/dist/esm/lib/delete-domain-dialog.js.map +1 -1
- package/dist/esm/lib/delete-user-dialog.d.ts +10 -6
- package/dist/esm/lib/delete-user-dialog.js +75 -26
- package/dist/esm/lib/delete-user-dialog.js.map +1 -1
- package/dist/esm/lib/domain-actions.d.ts +8 -4
- package/dist/esm/lib/domain-actions.js +57 -10
- package/dist/esm/lib/domain-actions.js.map +1 -1
- package/dist/esm/lib/domain-item.d.ts +8 -4
- package/dist/esm/lib/domain-item.js +49 -21
- package/dist/esm/lib/domain-item.js.map +1 -1
- package/dist/esm/lib/edit-user-profile-dialog.d.ts +10 -6
- package/dist/esm/lib/edit-user-profile-dialog.js +128 -45
- package/dist/esm/lib/edit-user-profile-dialog.js.map +1 -1
- package/dist/esm/lib/edit-user-role-dialog.d.ts +11 -7
- package/dist/esm/lib/edit-user-role-dialog.js +294 -102
- package/dist/esm/lib/edit-user-role-dialog.js.map +1 -1
- package/dist/esm/lib/elements.d.ts +27 -26
- package/dist/esm/lib/elements.js +325 -88
- package/dist/esm/lib/elements.js.map +1 -1
- package/dist/esm/lib/elevated-access.d.ts +6 -4
- package/dist/esm/lib/elevated-access.js +159 -90
- package/dist/esm/lib/elevated-access.js.map +1 -1
- package/dist/esm/lib/empty-state.d.ts +10 -0
- package/dist/esm/lib/empty-state.js +15 -0
- package/dist/esm/lib/empty-state.js.map +1 -0
- package/dist/esm/lib/error-boundary.d.ts +13 -11
- package/dist/esm/lib/error-boundary.js +69 -74
- package/dist/esm/lib/error-boundary.js.map +1 -1
- package/dist/esm/lib/errors.d.ts +6 -6
- package/dist/esm/lib/errors.js +34 -37
- package/dist/esm/lib/errors.js.map +1 -1
- package/dist/esm/lib/generic-error.d.ts +10 -3
- package/dist/esm/lib/generic-error.js +63 -30
- package/dist/esm/lib/generic-error.js.map +1 -1
- package/dist/esm/lib/icon-panel.d.ts +7 -4
- package/dist/esm/lib/icon-panel.js +25 -10
- package/dist/esm/lib/icon-panel.js.map +1 -1
- package/dist/esm/lib/icons.d.ts +6 -3
- package/dist/esm/lib/icons.js +25 -3
- package/dist/esm/lib/icons.js.map +1 -1
- package/dist/esm/lib/identity-providers.d.ts +6 -6
- package/dist/esm/lib/identity-providers.js +82 -63
- package/dist/esm/lib/identity-providers.js.map +1 -1
- package/dist/esm/lib/invite-user-dialog.d.ts +6 -4
- package/dist/esm/lib/invite-user-dialog.js +236 -117
- package/dist/esm/lib/invite-user-dialog.js.map +1 -1
- package/dist/esm/lib/logout-all-sessions-dialog.d.ts +7 -5
- package/dist/esm/lib/logout-all-sessions-dialog.js +59 -18
- package/dist/esm/lib/logout-all-sessions-dialog.js.map +1 -1
- package/dist/esm/lib/logout-dialog.d.ts +10 -6
- package/dist/esm/lib/logout-dialog.js +74 -24
- package/dist/esm/lib/logout-dialog.js.map +1 -1
- package/dist/esm/lib/marker.d.ts +7 -6
- package/dist/esm/lib/marker.js +17 -4
- package/dist/esm/lib/marker.js.map +1 -1
- package/dist/esm/lib/name-server-icon.d.ts +8 -4
- package/dist/esm/lib/name-server-icon.js +60 -4
- package/dist/esm/lib/name-server-icon.js.map +1 -1
- package/dist/esm/lib/oauth-icons.d.ts +6 -4
- package/dist/esm/lib/oauth-icons.js +132 -31
- package/dist/esm/lib/oauth-icons.js.map +1 -1
- package/dist/esm/lib/organization-switcher.d.ts +12 -8
- package/dist/esm/lib/organization-switcher.js +155 -40
- package/dist/esm/lib/organization-switcher.js.map +1 -1
- package/dist/esm/lib/otp-input.d.ts +9 -7
- package/dist/esm/lib/otp-input.js +163 -100
- package/dist/esm/lib/otp-input.js.map +1 -1
- package/dist/esm/lib/provider-icon.d.ts +5 -4
- package/dist/esm/lib/provider-icon.js +29 -8
- package/dist/esm/lib/provider-icon.js.map +1 -1
- package/dist/esm/lib/resend-invite-dialog.d.ts +10 -6
- package/dist/esm/lib/resend-invite-dialog.js +120 -36
- package/dist/esm/lib/resend-invite-dialog.js.map +1 -1
- package/dist/esm/lib/reset-mfa-dialog.d.ts +7 -5
- package/dist/esm/lib/reset-mfa-dialog.js +70 -23
- package/dist/esm/lib/reset-mfa-dialog.js.map +1 -1
- package/dist/esm/lib/revoke-invite-dialog.d.ts +10 -6
- package/dist/esm/lib/revoke-invite-dialog.js +82 -26
- package/dist/esm/lib/revoke-invite-dialog.js.map +1 -1
- package/dist/esm/lib/save-button.d.ts +6 -4
- package/dist/esm/lib/save-button.js +92 -35
- package/dist/esm/lib/save-button.js.map +1 -1
- package/dist/esm/lib/search-provider.d.ts +7 -6
- package/dist/esm/lib/search-provider.js +37 -20
- package/dist/esm/lib/search-provider.js.map +1 -1
- package/dist/esm/lib/set-password-dialog.d.ts +7 -5
- package/dist/esm/lib/set-password-dialog.js +122 -39
- package/dist/esm/lib/set-password-dialog.js.map +1 -1
- package/dist/esm/lib/status.d.ts +7 -6
- package/dist/esm/lib/status.js +31 -12
- package/dist/esm/lib/status.js.map +1 -1
- package/dist/esm/lib/use-dialog-close.d.ts +3 -2
- package/dist/esm/lib/use-dialog-close.js +16 -14
- package/dist/esm/lib/use-dialog-close.js.map +1 -1
- package/dist/esm/lib/use-is-hydrated.d.ts +3 -2
- package/dist/esm/lib/use-is-hydrated.js +11 -3
- package/dist/esm/lib/use-is-hydrated.js.map +1 -1
- package/dist/esm/lib/use-layout-effect.d.ts +3 -2
- package/dist/esm/lib/use-layout-effect.js +3 -1
- package/dist/esm/lib/use-layout-effect.js.map +1 -1
- package/dist/esm/lib/use-permissions.d.ts +6 -4
- package/dist/esm/lib/use-permissions.js +21 -28
- package/dist/esm/lib/use-permissions.js.map +1 -1
- package/dist/esm/lib/use-security-settings.d.ts +3 -3
- package/dist/esm/lib/use-security-settings.js +33 -32
- package/dist/esm/lib/use-security-settings.js.map +1 -1
- package/dist/esm/lib/user-actions-dropdown.d.ts +9 -5
- package/dist/esm/lib/user-actions-dropdown.js +126 -42
- package/dist/esm/lib/user-actions-dropdown.js.map +1 -1
- package/dist/esm/lib/user-profile.d.ts +11 -7
- package/dist/esm/lib/user-profile.js +136 -15
- package/dist/esm/lib/user-profile.js.map +1 -1
- package/dist/esm/lib/user-security.d.ts +12 -8
- package/dist/esm/lib/user-security.js +81 -14
- package/dist/esm/lib/user-security.js.map +1 -1
- package/dist/esm/lib/user-sessions.d.ts +11 -7
- package/dist/esm/lib/user-sessions.js +131 -25
- package/dist/esm/lib/user-sessions.js.map +1 -1
- package/dist/esm/lib/users-filter.d.ts +9 -6
- package/dist/esm/lib/users-filter.js +42 -20
- package/dist/esm/lib/users-filter.js.map +1 -1
- package/dist/esm/lib/users-management-context.d.ts +11 -6
- package/dist/esm/lib/users-management-context.js +37 -31
- package/dist/esm/lib/users-management-context.js.map +1 -1
- package/dist/esm/lib/users-management-state.d.ts +10 -6
- package/dist/esm/lib/users-management-state.js +108 -105
- package/dist/esm/lib/users-management-state.js.map +1 -1
- package/dist/esm/lib/users-management.d.ts +12 -8
- package/dist/esm/lib/users-management.js +441 -148
- package/dist/esm/lib/users-management.js.map +1 -1
- package/dist/esm/lib/users-search.d.ts +6 -3
- package/dist/esm/lib/users-search.js +48 -15
- package/dist/esm/lib/users-search.js.map +1 -1
- package/dist/esm/lib/utils.d.ts +18 -14
- package/dist/esm/lib/utils.js +90 -86
- package/dist/esm/lib/utils.js.map +1 -1
- package/dist/esm/lib/view-dns-record-dialog.d.ts +9 -5
- package/dist/esm/lib/view-dns-record-dialog.js +80 -14
- package/dist/esm/lib/view-dns-record-dialog.js.map +1 -1
- package/dist/esm/lib/widgets-context.d.ts +11 -7
- package/dist/esm/lib/widgets-context.js +17 -11
- package/dist/esm/lib/widgets-context.js.map +1 -1
- package/dist/esm/organization-switcher.client.d.ts +13 -7
- package/dist/esm/organization-switcher.client.js +47 -24
- package/dist/esm/organization-switcher.client.js.map +1 -1
- package/dist/esm/user-profile.client.d.ts +12 -7
- package/dist/esm/user-profile.client.js +32 -21
- package/dist/esm/user-profile.client.js.map +1 -1
- package/dist/esm/user-security.client.d.ts +12 -7
- package/dist/esm/user-security.client.js +39 -17
- package/dist/esm/user-security.client.js.map +1 -1
- package/dist/esm/user-sessions.client.d.ts +11 -6
- package/dist/esm/user-sessions.client.js +63 -36
- package/dist/esm/user-sessions.client.js.map +1 -1
- package/dist/esm/users-management.client.d.ts +12 -7
- package/dist/esm/users-management.client.js +49 -30
- package/dist/esm/users-management.client.js.map +1 -1
- package/dist/esm/workos-widgets.client.d.ts +10 -7
- package/dist/esm/workos-widgets.client.js +64 -38
- package/dist/esm/workos-widgets.client.js.map +1 -1
- package/package.json +19 -15
- package/dist/cjs/admin-portal-domain-verification.client.d.ts +0 -9
- package/dist/cjs/admin-portal-domain-verification.client.d.ts.map +0 -1
- package/dist/cjs/admin-portal-domain-verification.client.js +0 -70
- package/dist/cjs/admin-portal-domain-verification.client.js.map +0 -1
- package/dist/cjs/admin-portal-sso-connection-client.d.ts +0 -9
- package/dist/cjs/admin-portal-sso-connection-client.d.ts.map +0 -1
- package/dist/cjs/admin-portal-sso-connection-client.js +0 -222
- package/dist/cjs/admin-portal-sso-connection-client.js.map +0 -1
- package/dist/cjs/api/api-provider.d.ts +0 -29
- package/dist/cjs/api/api-provider.d.ts.map +0 -1
- package/dist/cjs/api/api-provider.js +0 -130
- package/dist/cjs/api/api-provider.js.map +0 -1
- package/dist/cjs/api/constants.d.ts +0 -2
- package/dist/cjs/api/constants.d.ts.map +0 -1
- package/dist/cjs/api/constants.js +0 -5
- package/dist/cjs/api/constants.js.map +0 -1
- package/dist/cjs/api/endpoint.d.ts +0 -1300
- package/dist/cjs/api/endpoint.d.ts.map +0 -1
- package/dist/cjs/api/endpoint.js +0 -1143
- package/dist/cjs/api/endpoint.js.map +0 -1
- package/dist/cjs/api/errors.d.ts.map +0 -1
- package/dist/cjs/api/errors.js +0 -40
- package/dist/cjs/api/errors.js.map +0 -1
- package/dist/cjs/api/utils.d.ts +0 -10
- package/dist/cjs/api/utils.d.ts.map +0 -1
- package/dist/cjs/api/utils.js +0 -42
- package/dist/cjs/api/utils.js.map +0 -1
- package/dist/cjs/api/widgets-api-client.d.ts.map +0 -1
- package/dist/cjs/api/widgets-api-client.js +0 -62
- package/dist/cjs/api/widgets-api-client.js.map +0 -1
- package/dist/cjs/card-list.d.ts +0 -6
- package/dist/cjs/card-list.d.ts.map +0 -1
- package/dist/cjs/card-list.js +0 -13
- package/dist/cjs/card-list.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -9
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -27
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/lib/add-mfa-dialog.d.ts +0 -9
- package/dist/cjs/lib/add-mfa-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/add-mfa-dialog.js +0 -136
- package/dist/cjs/lib/add-mfa-dialog.js.map +0 -1
- package/dist/cjs/lib/admin-portal-domain-verification.d.ts +0 -16
- package/dist/cjs/lib/admin-portal-domain-verification.d.ts.map +0 -1
- package/dist/cjs/lib/admin-portal-domain-verification.js +0 -55
- package/dist/cjs/lib/admin-portal-domain-verification.js.map +0 -1
- package/dist/cjs/lib/admin-portal-sso-connection.d.ts +0 -40
- package/dist/cjs/lib/admin-portal-sso-connection.d.ts.map +0 -1
- package/dist/cjs/lib/admin-portal-sso-connection.js +0 -209
- package/dist/cjs/lib/admin-portal-sso-connection.js.map +0 -1
- package/dist/cjs/lib/api/config.d.ts.map +0 -1
- package/dist/cjs/lib/api/config.js +0 -12
- package/dist/cjs/lib/api/config.js.map +0 -1
- package/dist/cjs/lib/api/user.d.ts +0 -17
- package/dist/cjs/lib/api/user.d.ts.map +0 -1
- package/dist/cjs/lib/api/user.js +0 -80
- package/dist/cjs/lib/api/user.js.map +0 -1
- package/dist/cjs/lib/change-password-dialog.d.ts +0 -8
- package/dist/cjs/lib/change-password-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/change-password-dialog.js +0 -97
- package/dist/cjs/lib/change-password-dialog.js.map +0 -1
- package/dist/cjs/lib/constants.d.ts +0 -4
- package/dist/cjs/lib/constants.d.ts.map +0 -1
- package/dist/cjs/lib/constants.js +0 -7
- package/dist/cjs/lib/constants.js.map +0 -1
- package/dist/cjs/lib/copy-button.d.ts +0 -8
- package/dist/cjs/lib/copy-button.d.ts.map +0 -1
- package/dist/cjs/lib/copy-button.js +0 -62
- package/dist/cjs/lib/copy-button.js.map +0 -1
- package/dist/cjs/lib/delete-domain-dialog.d.ts +0 -12
- package/dist/cjs/lib/delete-domain-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/delete-domain-dialog.js +0 -26
- package/dist/cjs/lib/delete-domain-dialog.js.map +0 -1
- package/dist/cjs/lib/delete-user-dialog.d.ts +0 -12
- package/dist/cjs/lib/delete-user-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/delete-user-dialog.js +0 -36
- package/dist/cjs/lib/delete-user-dialog.js.map +0 -1
- package/dist/cjs/lib/domain-actions.d.ts +0 -9
- package/dist/cjs/lib/domain-actions.d.ts.map +0 -1
- package/dist/cjs/lib/domain-actions.js +0 -22
- package/dist/cjs/lib/domain-actions.js.map +0 -1
- package/dist/cjs/lib/domain-item.d.ts +0 -9
- package/dist/cjs/lib/domain-item.d.ts.map +0 -1
- package/dist/cjs/lib/domain-item.js +0 -38
- package/dist/cjs/lib/domain-item.js.map +0 -1
- package/dist/cjs/lib/edit-user-profile-dialog.d.ts +0 -10
- package/dist/cjs/lib/edit-user-profile-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/edit-user-profile-dialog.js +0 -85
- package/dist/cjs/lib/edit-user-profile-dialog.js.map +0 -1
- package/dist/cjs/lib/edit-user-role-dialog.d.ts +0 -23
- package/dist/cjs/lib/edit-user-role-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/edit-user-role-dialog.js +0 -143
- package/dist/cjs/lib/edit-user-role-dialog.js.map +0 -1
- package/dist/cjs/lib/elements.d.ts +0 -46
- package/dist/cjs/lib/elements.d.ts.map +0 -1
- package/dist/cjs/lib/elements.js +0 -148
- package/dist/cjs/lib/elements.js.map +0 -1
- package/dist/cjs/lib/elevated-access.d.ts +0 -8
- package/dist/cjs/lib/elevated-access.d.ts.map +0 -1
- package/dist/cjs/lib/elevated-access.js +0 -131
- package/dist/cjs/lib/elevated-access.js.map +0 -1
- package/dist/cjs/lib/error-boundary.d.ts.map +0 -1
- package/dist/cjs/lib/error-boundary.js +0 -113
- package/dist/cjs/lib/error-boundary.js.map +0 -1
- package/dist/cjs/lib/errors.d.ts.map +0 -1
- package/dist/cjs/lib/errors.js +0 -49
- package/dist/cjs/lib/errors.js.map +0 -1
- package/dist/cjs/lib/generic-error.d.ts +0 -4
- package/dist/cjs/lib/generic-error.d.ts.map +0 -1
- package/dist/cjs/lib/generic-error.js +0 -60
- package/dist/cjs/lib/generic-error.js.map +0 -1
- package/dist/cjs/lib/icon-panel.d.ts +0 -5
- package/dist/cjs/lib/icon-panel.d.ts.map +0 -1
- package/dist/cjs/lib/icon-panel.js +0 -17
- package/dist/cjs/lib/icon-panel.js.map +0 -1
- package/dist/cjs/lib/icons.d.ts +0 -3
- package/dist/cjs/lib/icons.d.ts.map +0 -1
- package/dist/cjs/lib/icons.js +0 -8
- package/dist/cjs/lib/icons.js.map +0 -1
- package/dist/cjs/lib/identity-providers.d.ts +0 -7
- package/dist/cjs/lib/identity-providers.d.ts.map +0 -1
- package/dist/cjs/lib/identity-providers.js +0 -71
- package/dist/cjs/lib/identity-providers.js.map +0 -1
- package/dist/cjs/lib/invite-user-dialog.d.ts +0 -7
- package/dist/cjs/lib/invite-user-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/invite-user-dialog.js +0 -165
- package/dist/cjs/lib/invite-user-dialog.js.map +0 -1
- package/dist/cjs/lib/logout-all-sessions-dialog.d.ts +0 -9
- package/dist/cjs/lib/logout-all-sessions-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/logout-all-sessions-dialog.js +0 -52
- package/dist/cjs/lib/logout-all-sessions-dialog.js.map +0 -1
- package/dist/cjs/lib/logout-dialog.d.ts +0 -10
- package/dist/cjs/lib/logout-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/logout-dialog.js +0 -58
- package/dist/cjs/lib/logout-dialog.js.map +0 -1
- package/dist/cjs/lib/marker.d.ts.map +0 -1
- package/dist/cjs/lib/marker.js +0 -38
- package/dist/cjs/lib/marker.js.map +0 -1
- package/dist/cjs/lib/name-server-icon.d.ts +0 -7
- package/dist/cjs/lib/name-server-icon.d.ts.map +0 -1
- package/dist/cjs/lib/name-server-icon.js +0 -38
- package/dist/cjs/lib/name-server-icon.js.map +0 -1
- package/dist/cjs/lib/oauth-icons.d.ts +0 -4
- package/dist/cjs/lib/oauth-icons.d.ts.map +0 -1
- package/dist/cjs/lib/oauth-icons.js +0 -67
- package/dist/cjs/lib/oauth-icons.js.map +0 -1
- package/dist/cjs/lib/organization-switcher.d.ts.map +0 -1
- package/dist/cjs/lib/organization-switcher.js +0 -62
- package/dist/cjs/lib/organization-switcher.js.map +0 -1
- package/dist/cjs/lib/otp-input.d.ts +0 -20
- package/dist/cjs/lib/otp-input.d.ts.map +0 -1
- package/dist/cjs/lib/otp-input.js +0 -174
- package/dist/cjs/lib/otp-input.js.map +0 -1
- package/dist/cjs/lib/provider-icon.d.ts.map +0 -1
- package/dist/cjs/lib/provider-icon.js +0 -45
- package/dist/cjs/lib/provider-icon.js.map +0 -1
- package/dist/cjs/lib/resend-invite-dialog.d.ts +0 -10
- package/dist/cjs/lib/resend-invite-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/resend-invite-dialog.js +0 -70
- package/dist/cjs/lib/resend-invite-dialog.js.map +0 -1
- package/dist/cjs/lib/reset-mfa-dialog.d.ts +0 -9
- package/dist/cjs/lib/reset-mfa-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/reset-mfa-dialog.js +0 -60
- package/dist/cjs/lib/reset-mfa-dialog.js.map +0 -1
- package/dist/cjs/lib/revoke-invite-dialog.d.ts +0 -10
- package/dist/cjs/lib/revoke-invite-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/revoke-invite-dialog.js +0 -36
- package/dist/cjs/lib/revoke-invite-dialog.js.map +0 -1
- package/dist/cjs/lib/save-button.d.ts +0 -11
- package/dist/cjs/lib/save-button.d.ts.map +0 -1
- package/dist/cjs/lib/save-button.js +0 -47
- package/dist/cjs/lib/save-button.js.map +0 -1
- package/dist/cjs/lib/search-provider.d.ts +0 -11
- package/dist/cjs/lib/search-provider.d.ts.map +0 -1
- package/dist/cjs/lib/search-provider.js +0 -55
- package/dist/cjs/lib/search-provider.js.map +0 -1
- package/dist/cjs/lib/set-password-dialog.d.ts +0 -8
- package/dist/cjs/lib/set-password-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/set-password-dialog.js +0 -80
- package/dist/cjs/lib/set-password-dialog.js.map +0 -1
- package/dist/cjs/lib/status.d.ts +0 -10
- package/dist/cjs/lib/status.d.ts.map +0 -1
- package/dist/cjs/lib/status.js +0 -48
- package/dist/cjs/lib/status.js.map +0 -1
- package/dist/cjs/lib/use-dialog-close.d.ts +0 -2
- package/dist/cjs/lib/use-dialog-close.d.ts.map +0 -1
- package/dist/cjs/lib/use-dialog-close.js +0 -43
- package/dist/cjs/lib/use-dialog-close.js.map +0 -1
- package/dist/cjs/lib/use-is-hydrated.d.ts +0 -2
- package/dist/cjs/lib/use-is-hydrated.d.ts.map +0 -1
- package/dist/cjs/lib/use-is-hydrated.js +0 -34
- package/dist/cjs/lib/use-is-hydrated.js.map +0 -1
- package/dist/cjs/lib/use-layout-effect.d.ts.map +0 -1
- package/dist/cjs/lib/use-layout-effect.js +0 -8
- package/dist/cjs/lib/use-layout-effect.js.map +0 -1
- package/dist/cjs/lib/use-permissions.d.ts +0 -4
- package/dist/cjs/lib/use-permissions.d.ts.map +0 -1
- package/dist/cjs/lib/use-permissions.js +0 -34
- package/dist/cjs/lib/use-permissions.js.map +0 -1
- package/dist/cjs/lib/use-security-settings.d.ts.map +0 -1
- package/dist/cjs/lib/use-security-settings.js +0 -39
- package/dist/cjs/lib/use-security-settings.js.map +0 -1
- package/dist/cjs/lib/user-actions-dropdown.d.ts +0 -9
- package/dist/cjs/lib/user-actions-dropdown.d.ts.map +0 -1
- package/dist/cjs/lib/user-actions-dropdown.js +0 -81
- package/dist/cjs/lib/user-actions-dropdown.js.map +0 -1
- package/dist/cjs/lib/user-profile.d.ts +0 -11
- package/dist/cjs/lib/user-profile.d.ts.map +0 -1
- package/dist/cjs/lib/user-profile.js +0 -36
- package/dist/cjs/lib/user-profile.js.map +0 -1
- package/dist/cjs/lib/user-security.d.ts +0 -11
- package/dist/cjs/lib/user-security.d.ts.map +0 -1
- package/dist/cjs/lib/user-security.js +0 -64
- package/dist/cjs/lib/user-security.js.map +0 -1
- package/dist/cjs/lib/user-sessions.d.ts +0 -12
- package/dist/cjs/lib/user-sessions.d.ts.map +0 -1
- package/dist/cjs/lib/user-sessions.js +0 -72
- package/dist/cjs/lib/user-sessions.js.map +0 -1
- package/dist/cjs/lib/users-filter.d.ts +0 -10
- package/dist/cjs/lib/users-filter.d.ts.map +0 -1
- package/dist/cjs/lib/users-filter.js +0 -56
- package/dist/cjs/lib/users-filter.js.map +0 -1
- package/dist/cjs/lib/users-management-context.d.ts +0 -14
- package/dist/cjs/lib/users-management-context.d.ts.map +0 -1
- package/dist/cjs/lib/users-management-context.js +0 -70
- package/dist/cjs/lib/users-management-context.js.map +0 -1
- package/dist/cjs/lib/users-management-state.d.ts +0 -22
- package/dist/cjs/lib/users-management-state.d.ts.map +0 -1
- package/dist/cjs/lib/users-management-state.js +0 -143
- package/dist/cjs/lib/users-management-state.js.map +0 -1
- package/dist/cjs/lib/users-management.d.ts +0 -18
- package/dist/cjs/lib/users-management.d.ts.map +0 -1
- package/dist/cjs/lib/users-management.js +0 -209
- package/dist/cjs/lib/users-management.js.map +0 -1
- package/dist/cjs/lib/users-search.d.ts +0 -3
- package/dist/cjs/lib/users-search.d.ts.map +0 -1
- package/dist/cjs/lib/users-search.js +0 -63
- package/dist/cjs/lib/users-search.js.map +0 -1
- package/dist/cjs/lib/utils.d.ts +0 -27
- package/dist/cjs/lib/utils.d.ts.map +0 -1
- package/dist/cjs/lib/utils.js +0 -116
- package/dist/cjs/lib/utils.js.map +0 -1
- package/dist/cjs/lib/view-dns-record-dialog.d.ts +0 -12
- package/dist/cjs/lib/view-dns-record-dialog.d.ts.map +0 -1
- package/dist/cjs/lib/view-dns-record-dialog.js +0 -26
- package/dist/cjs/lib/view-dns-record-dialog.js.map +0 -1
- package/dist/cjs/lib/widgets-context.d.ts +0 -11
- package/dist/cjs/lib/widgets-context.d.ts.map +0 -1
- package/dist/cjs/lib/widgets-context.js +0 -45
- package/dist/cjs/lib/widgets-context.js.map +0 -1
- package/dist/cjs/organization-switcher.client.d.ts +0 -9
- package/dist/cjs/organization-switcher.client.d.ts.map +0 -1
- package/dist/cjs/organization-switcher.client.js +0 -39
- package/dist/cjs/organization-switcher.client.js.map +0 -1
- package/dist/cjs/user-profile.client.d.ts +0 -9
- package/dist/cjs/user-profile.client.d.ts.map +0 -1
- package/dist/cjs/user-profile.client.js +0 -33
- package/dist/cjs/user-profile.client.js.map +0 -1
- package/dist/cjs/user-security.client.d.ts +0 -9
- package/dist/cjs/user-security.client.d.ts.map +0 -1
- package/dist/cjs/user-security.client.js +0 -29
- package/dist/cjs/user-security.client.js.map +0 -1
- package/dist/cjs/user-sessions.client.d.ts +0 -13
- package/dist/cjs/user-sessions.client.d.ts.map +0 -1
- package/dist/cjs/user-sessions.client.js +0 -50
- package/dist/cjs/user-sessions.client.js.map +0 -1
- package/dist/cjs/users-management.client.d.ts +0 -9
- package/dist/cjs/users-management.client.d.ts.map +0 -1
- package/dist/cjs/users-management.client.js +0 -46
- package/dist/cjs/users-management.client.js.map +0 -1
- package/dist/cjs/workos-widgets.client.d.ts.map +0 -1
- package/dist/cjs/workos-widgets.client.js +0 -80
- package/dist/cjs/workos-widgets.client.js.map +0 -1
- package/dist/esm/admin-portal-domain-verification.client.d.ts.map +0 -1
- package/dist/esm/admin-portal-sso-connection-client.d.ts.map +0 -1
- package/dist/esm/api/api-provider.d.ts.map +0 -1
- package/dist/esm/api/constants.d.ts.map +0 -1
- package/dist/esm/api/endpoint.d.ts.map +0 -1
- package/dist/esm/api/errors.d.ts.map +0 -1
- package/dist/esm/api/utils.d.ts.map +0 -1
- package/dist/esm/api/widgets-api-client.d.ts.map +0 -1
- package/dist/esm/card-list.d.ts +0 -6
- package/dist/esm/card-list.d.ts.map +0 -1
- package/dist/esm/card-list.js +0 -9
- package/dist/esm/card-list.js.map +0 -1
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/lib/add-mfa-dialog.d.ts.map +0 -1
- package/dist/esm/lib/admin-portal-domain-verification.d.ts.map +0 -1
- package/dist/esm/lib/admin-portal-sso-connection.d.ts.map +0 -1
- package/dist/esm/lib/api/config.d.ts.map +0 -1
- package/dist/esm/lib/api/user.d.ts.map +0 -1
- package/dist/esm/lib/change-password-dialog.d.ts.map +0 -1
- package/dist/esm/lib/constants.d.ts.map +0 -1
- package/dist/esm/lib/copy-button.d.ts.map +0 -1
- package/dist/esm/lib/delete-domain-dialog.d.ts.map +0 -1
- package/dist/esm/lib/delete-user-dialog.d.ts.map +0 -1
- package/dist/esm/lib/domain-actions.d.ts.map +0 -1
- package/dist/esm/lib/domain-item.d.ts.map +0 -1
- package/dist/esm/lib/edit-user-profile-dialog.d.ts.map +0 -1
- package/dist/esm/lib/edit-user-role-dialog.d.ts.map +0 -1
- package/dist/esm/lib/elements.d.ts.map +0 -1
- package/dist/esm/lib/elevated-access.d.ts.map +0 -1
- package/dist/esm/lib/error-boundary.d.ts.map +0 -1
- package/dist/esm/lib/errors.d.ts.map +0 -1
- package/dist/esm/lib/generic-error.d.ts.map +0 -1
- package/dist/esm/lib/icon-panel.d.ts.map +0 -1
- package/dist/esm/lib/icons.d.ts.map +0 -1
- package/dist/esm/lib/identity-providers.d.ts.map +0 -1
- package/dist/esm/lib/invite-user-dialog.d.ts.map +0 -1
- package/dist/esm/lib/logout-all-sessions-dialog.d.ts.map +0 -1
- package/dist/esm/lib/logout-dialog.d.ts.map +0 -1
- package/dist/esm/lib/marker.d.ts.map +0 -1
- package/dist/esm/lib/name-server-icon.d.ts.map +0 -1
- package/dist/esm/lib/oauth-icons.d.ts.map +0 -1
- package/dist/esm/lib/organization-switcher.d.ts.map +0 -1
- package/dist/esm/lib/otp-input.d.ts.map +0 -1
- package/dist/esm/lib/provider-icon.d.ts.map +0 -1
- package/dist/esm/lib/resend-invite-dialog.d.ts.map +0 -1
- package/dist/esm/lib/reset-mfa-dialog.d.ts.map +0 -1
- package/dist/esm/lib/revoke-invite-dialog.d.ts.map +0 -1
- package/dist/esm/lib/save-button.d.ts.map +0 -1
- package/dist/esm/lib/search-provider.d.ts.map +0 -1
- package/dist/esm/lib/set-password-dialog.d.ts.map +0 -1
- package/dist/esm/lib/status.d.ts.map +0 -1
- package/dist/esm/lib/use-dialog-close.d.ts.map +0 -1
- package/dist/esm/lib/use-is-hydrated.d.ts.map +0 -1
- package/dist/esm/lib/use-layout-effect.d.ts.map +0 -1
- package/dist/esm/lib/use-permissions.d.ts.map +0 -1
- package/dist/esm/lib/use-security-settings.d.ts.map +0 -1
- package/dist/esm/lib/user-actions-dropdown.d.ts.map +0 -1
- package/dist/esm/lib/user-profile.d.ts.map +0 -1
- package/dist/esm/lib/user-security.d.ts.map +0 -1
- package/dist/esm/lib/user-sessions.d.ts.map +0 -1
- package/dist/esm/lib/users-filter.d.ts.map +0 -1
- package/dist/esm/lib/users-management-context.d.ts.map +0 -1
- package/dist/esm/lib/users-management-state.d.ts.map +0 -1
- package/dist/esm/lib/users-management.d.ts.map +0 -1
- package/dist/esm/lib/users-search.d.ts.map +0 -1
- package/dist/esm/lib/utils.d.ts.map +0 -1
- package/dist/esm/lib/view-dns-record-dialog.d.ts.map +0 -1
- package/dist/esm/lib/widgets-context.d.ts.map +0 -1
- package/dist/esm/organization-switcher.client.d.ts.map +0 -1
- package/dist/esm/user-profile.client.d.ts.map +0 -1
- package/dist/esm/user-security.client.d.ts.map +0 -1
- package/dist/esm/user-sessions.client.d.ts.map +0 -1
- package/dist/esm/users-management.client.d.ts.map +0 -1
- package/dist/esm/workos-widgets.client.d.ts.map +0 -1
- package/dist/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/tsconfig.esm.tsbuildinfo +0 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useComposedRefs } from "@radix-ui/react-compose-refs";
|
|
4
|
+
import { Cross2Icon, MagnifyingGlassIcon } from "@radix-ui/react-icons";
|
|
5
|
+
import { IconButton } from "@radix-ui/themes";
|
|
6
|
+
import cx from "clsx";
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import { useDebouncedCallback } from "use-debounce";
|
|
9
|
+
import { TextField, TextFieldSlot } from "../elements.js";
|
|
10
|
+
import { useApiKeysSearchContext } from "./api-keys-search-provider.js";
|
|
11
|
+
import { useApiKeysContext } from "./api-keys-context.js";
|
|
12
|
+
import { namespaceClassNames } from "../utils.js";
|
|
13
|
+
const ApiKeysSearch = React.forwardRef(({ className, ...props }, ref) => {
|
|
14
|
+
const { inputRef, clearSearch, searchValue, setSearchValue } = useApiKeysSearchContext();
|
|
15
|
+
const { dispatch } = useApiKeysContext();
|
|
16
|
+
const filter = useDebouncedCallback((value) => {
|
|
17
|
+
dispatch({ type: "FILTER_BY_SEARCH", searchQuery: value });
|
|
18
|
+
}, 200);
|
|
19
|
+
const resetSearch = () => {
|
|
20
|
+
clearSearch();
|
|
21
|
+
filter.cancel();
|
|
22
|
+
};
|
|
23
|
+
return /* @__PURE__ */ jsxs(
|
|
24
|
+
TextField,
|
|
25
|
+
{
|
|
26
|
+
ref: useComposedRefs(inputRef, ref),
|
|
27
|
+
className: cx(namespaceClassNames("api-keys-search"), className),
|
|
28
|
+
autoComplete: "off",
|
|
29
|
+
placeholder: "Search by name",
|
|
30
|
+
value: searchValue,
|
|
31
|
+
onChange: (event) => {
|
|
32
|
+
const value = event.target.value;
|
|
33
|
+
setSearchValue(value);
|
|
34
|
+
filter(value);
|
|
35
|
+
},
|
|
36
|
+
onKeyDown: (event) => {
|
|
37
|
+
if (event.key === "Escape") {
|
|
38
|
+
event.preventDefault();
|
|
39
|
+
resetSearch();
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
...props,
|
|
43
|
+
children: [
|
|
44
|
+
/* @__PURE__ */ jsx(TextFieldSlot, { side: "left", children: /* @__PURE__ */ jsx(MagnifyingGlassIcon, { "aria-hidden": "true", height: "16", width: "16" }) }),
|
|
45
|
+
/* @__PURE__ */ jsx(TextFieldSlot, { side: "right", children: searchValue && /* @__PURE__ */ jsx(
|
|
46
|
+
IconButton,
|
|
47
|
+
{
|
|
48
|
+
size: "1",
|
|
49
|
+
color: "gray",
|
|
50
|
+
variant: "ghost",
|
|
51
|
+
radius: "full",
|
|
52
|
+
onClick: resetSearch,
|
|
53
|
+
"aria-label": "Clear search",
|
|
54
|
+
title: "Clear search",
|
|
55
|
+
children: /* @__PURE__ */ jsx(Cross2Icon, { "aria-hidden": "true" })
|
|
56
|
+
}
|
|
57
|
+
) })
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
});
|
|
62
|
+
export {
|
|
63
|
+
ApiKeysSearch
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=api-keys-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/api-keys/api-keys-search.tsx"],"sourcesContent":["\"use client\";\n\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Cross2Icon, MagnifyingGlassIcon } from \"@radix-ui/react-icons\";\nimport { IconButton } from \"@radix-ui/themes\";\nimport cx from \"clsx\";\nimport * as React from \"react\";\nimport { useDebouncedCallback } from \"use-debounce\";\nimport { TextField, TextFieldSlot } from \"../elements.js\";\nimport { useApiKeysSearchContext } from \"./api-keys-search-provider.js\";\nimport { useApiKeysContext } from \"./api-keys-context.js\";\nimport { namespaceClassNames } from \"../utils.js\";\n\ntype ApiKeysSearchProps = React.ComponentPropsWithoutRef<typeof TextField>;\n\nexport const ApiKeysSearch = React.forwardRef<\n HTMLInputElement,\n ApiKeysSearchProps\n>(({ className, ...props }, ref) => {\n const { inputRef, clearSearch, searchValue, setSearchValue } =\n useApiKeysSearchContext();\n const { dispatch } = useApiKeysContext();\n\n const filter = useDebouncedCallback((value) => {\n dispatch({ type: \"FILTER_BY_SEARCH\", searchQuery: value });\n }, 200);\n\n const resetSearch = () => {\n clearSearch();\n filter.cancel();\n };\n\n return (\n <TextField\n ref={useComposedRefs(inputRef, ref)}\n className={cx(namespaceClassNames(\"api-keys-search\"), className)}\n autoComplete=\"off\"\n placeholder=\"Search by name\"\n value={searchValue}\n onChange={(event) => {\n const value = event.target.value;\n setSearchValue(value);\n filter(value);\n }}\n onKeyDown={(event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n resetSearch();\n }\n }}\n {...props}\n >\n <TextFieldSlot side=\"left\">\n <MagnifyingGlassIcon aria-hidden=\"true\" height=\"16\" width=\"16\" />\n </TextFieldSlot>\n\n <TextFieldSlot side=\"right\">\n {searchValue && (\n <IconButton\n size=\"1\"\n color=\"gray\"\n variant=\"ghost\"\n radius=\"full\"\n onClick={resetSearch}\n aria-label=\"Clear search\"\n title=\"Clear search\"\n >\n <Cross2Icon aria-hidden=\"true\" />\n </IconButton>\n )}\n </TextFieldSlot>\n </TextField>\n );\n});\n"],"mappings":";AAiCI,SAoBI,KApBJ;AA/BJ,SAAS,uBAAuB;AAChC,SAAS,YAAY,2BAA2B;AAChD,SAAS,kBAAkB;AAC3B,OAAO,QAAQ;AACf,YAAY,WAAW;AACvB,SAAS,4BAA4B;AACrC,SAAS,WAAW,qBAAqB;AACzC,SAAS,+BAA+B;AACxC,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AAI7B,MAAM,gBAAgB,MAAM,WAGjC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,QAAM,EAAE,UAAU,aAAa,aAAa,eAAe,IACzD,wBAAwB;AAC1B,QAAM,EAAE,SAAS,IAAI,kBAAkB;AAEvC,QAAM,SAAS,qBAAqB,CAAC,UAAU;AAC7C,aAAS,EAAE,MAAM,oBAAoB,aAAa,MAAM,CAAC;AAAA,EAC3D,GAAG,GAAG;AAEN,QAAM,cAAc,MAAM;AACxB,gBAAY;AACZ,WAAO,OAAO;AAAA,EAChB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,gBAAgB,UAAU,GAAG;AAAA,MAClC,WAAW,GAAG,oBAAoB,iBAAiB,GAAG,SAAS;AAAA,MAC/D,cAAa;AAAA,MACb,aAAY;AAAA,MACZ,OAAO;AAAA,MACP,UAAU,CAAC,UAAU;AACnB,cAAM,QAAQ,MAAM,OAAO;AAC3B,uBAAe,KAAK;AACpB,eAAO,KAAK;AAAA,MACd;AAAA,MACA,WAAW,CAAC,UAAU;AACpB,YAAI,MAAM,QAAQ,UAAU;AAC1B,gBAAM,eAAe;AACrB,sBAAY;AAAA,QACd;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,4BAAC,iBAAc,MAAK,QAClB,8BAAC,uBAAoB,eAAY,QAAO,QAAO,MAAK,OAAM,MAAK,GACjE;AAAA,QAEA,oBAAC,iBAAc,MAAK,SACjB,yBACC;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAM;AAAA,YACN,SAAQ;AAAA,YACR,QAAO;AAAA,YACP,SAAS;AAAA,YACT,cAAW;AAAA,YACX,OAAM;AAAA,YAEN,8BAAC,cAAW,eAAY,QAAO;AAAA;AAAA,QACjC,GAEJ;AAAA;AAAA;AAAA,EACF;AAEJ,CAAC;","names":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ListMetadata, CreateOrganizationApiKeyResponse } from '../../api/endpoint.js';
|
|
3
|
+
import '@tanstack/react-query';
|
|
4
|
+
import '../../api/widgets-api-client.js';
|
|
5
|
+
|
|
6
|
+
declare function useApiKeysState(initialState: ApiKeysState): readonly [ApiKeysState, React.ActionDispatch<[action: ApiKeysAction]>];
|
|
7
|
+
interface ApiKeysState {
|
|
8
|
+
searchQuery: string | null;
|
|
9
|
+
pagination: ListMetadata | null;
|
|
10
|
+
createDialogOpen: boolean;
|
|
11
|
+
createdApiKey: CreateOrganizationApiKeyResponse | null;
|
|
12
|
+
}
|
|
13
|
+
type ApiKeysAction = {
|
|
14
|
+
type: "INIT";
|
|
15
|
+
params: URLSearchParams;
|
|
16
|
+
} | {
|
|
17
|
+
type: "FILTER_BY_SEARCH";
|
|
18
|
+
searchQuery: string | null;
|
|
19
|
+
} | {
|
|
20
|
+
type: "SET_PAGINATION";
|
|
21
|
+
pagination: ListMetadata;
|
|
22
|
+
} | {
|
|
23
|
+
type: "OPEN_CREATE_DIALOG";
|
|
24
|
+
} | {
|
|
25
|
+
type: "CLOSE_CREATE_DIALOG";
|
|
26
|
+
} | {
|
|
27
|
+
type: "SET_CREATED_API_KEY";
|
|
28
|
+
apiKey: CreateOrganizationApiKeyResponse;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { type ApiKeysAction, type ApiKeysState, useApiKeysState };
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { canUseDOM } from "../utils.js";
|
|
3
|
+
function useApiKeysState(initialState) {
|
|
4
|
+
const [[state, effects], dispatch] = React.useReducer(reducer, [
|
|
5
|
+
initialState,
|
|
6
|
+
[]
|
|
7
|
+
]);
|
|
8
|
+
React.useEffect(() => {
|
|
9
|
+
if (window !== window.top) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const params = new URLSearchParams(window.location.search);
|
|
13
|
+
dispatch({ type: "INIT", params });
|
|
14
|
+
}, []);
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
for (const effect of effects) {
|
|
17
|
+
effect();
|
|
18
|
+
}
|
|
19
|
+
}, [effects]);
|
|
20
|
+
return [state, dispatch];
|
|
21
|
+
}
|
|
22
|
+
function reducer(current, action) {
|
|
23
|
+
const effects = [];
|
|
24
|
+
const exec = (fn) => {
|
|
25
|
+
const effect = () => {
|
|
26
|
+
if (!effect.disposed) {
|
|
27
|
+
effect.disposed = true;
|
|
28
|
+
fn();
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
effect.disposed = false;
|
|
32
|
+
effects.push(effect);
|
|
33
|
+
};
|
|
34
|
+
const [currentState] = current;
|
|
35
|
+
switch (action.type) {
|
|
36
|
+
case "INIT": {
|
|
37
|
+
const { params } = action;
|
|
38
|
+
let searchQuery;
|
|
39
|
+
if (searchQuery = params.get("ak_q")) {
|
|
40
|
+
return [{ ...currentState, searchQuery }, effects];
|
|
41
|
+
}
|
|
42
|
+
return current;
|
|
43
|
+
}
|
|
44
|
+
case "SET_PAGINATION": {
|
|
45
|
+
const { pagination } = action;
|
|
46
|
+
if (pagination.after && pagination.after === currentState.pagination?.after || pagination.before && pagination.before === currentState.pagination?.before) {
|
|
47
|
+
return current;
|
|
48
|
+
}
|
|
49
|
+
return [{ ...currentState, pagination }, effects];
|
|
50
|
+
}
|
|
51
|
+
case "FILTER_BY_SEARCH": {
|
|
52
|
+
if (action.searchQuery === currentState.searchQuery) {
|
|
53
|
+
return current;
|
|
54
|
+
}
|
|
55
|
+
const { searchQuery } = action;
|
|
56
|
+
exec(
|
|
57
|
+
() => updateQueryParams({ ak_q: searchQuery }, { replaceState: true })
|
|
58
|
+
);
|
|
59
|
+
return [{ ...currentState, pagination: null, searchQuery }, effects];
|
|
60
|
+
}
|
|
61
|
+
case "OPEN_CREATE_DIALOG": {
|
|
62
|
+
return [
|
|
63
|
+
{
|
|
64
|
+
...currentState,
|
|
65
|
+
createDialogOpen: true,
|
|
66
|
+
createdApiKey: null
|
|
67
|
+
},
|
|
68
|
+
effects
|
|
69
|
+
];
|
|
70
|
+
}
|
|
71
|
+
case "CLOSE_CREATE_DIALOG": {
|
|
72
|
+
return [
|
|
73
|
+
{
|
|
74
|
+
...currentState,
|
|
75
|
+
createDialogOpen: false,
|
|
76
|
+
createdApiKey: null
|
|
77
|
+
},
|
|
78
|
+
effects
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
case "SET_CREATED_API_KEY": {
|
|
82
|
+
return [
|
|
83
|
+
{
|
|
84
|
+
...currentState,
|
|
85
|
+
createdApiKey: action.apiKey
|
|
86
|
+
},
|
|
87
|
+
effects
|
|
88
|
+
];
|
|
89
|
+
}
|
|
90
|
+
default:
|
|
91
|
+
return current;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function updateQueryParams(newParams, args = {}) {
|
|
95
|
+
if (!canUseDOM) {
|
|
96
|
+
throw new Error("Cannot update query params on the server");
|
|
97
|
+
}
|
|
98
|
+
if (window !== window.top) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const initialSearch = window.location.search;
|
|
102
|
+
const params = new URLSearchParams(initialSearch);
|
|
103
|
+
Object.entries(newParams).forEach(([key, value]) => {
|
|
104
|
+
if (value != null && value !== "") {
|
|
105
|
+
params.set(key, String(value));
|
|
106
|
+
} else {
|
|
107
|
+
params.delete(key);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
if (initialSearch === `?${params.toString()}`) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const newUrl = params.toString() ? `${window.location.pathname}?${params}` : window.location.pathname;
|
|
114
|
+
if (args.replaceState) {
|
|
115
|
+
window.history.replaceState({}, "", newUrl);
|
|
116
|
+
} else {
|
|
117
|
+
window.history.pushState({}, "", newUrl);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export {
|
|
121
|
+
useApiKeysState
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=api-keys-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/api-keys/api-keys-state.ts"],"sourcesContent":["import * as React from \"react\";\nimport { canUseDOM } from \"../utils.js\";\nimport {\n CreateOrganizationApiKeyResponse,\n ListMetadata,\n} from \"../../api/endpoint.js\";\n\nexport function useApiKeysState(initialState: ApiKeysState) {\n const [[state, effects], dispatch] = React.useReducer(reducer, [\n initialState,\n [],\n ]);\n\n React.useEffect(() => {\n if (window !== window.top) {\n // do not use query params if widget is rendered in an iframe\n return;\n }\n const params = new URLSearchParams(window.location.search);\n dispatch({ type: \"INIT\", params });\n }, []);\n\n React.useEffect(() => {\n for (const effect of effects) {\n effect();\n }\n }, [effects]);\n\n return [state, dispatch] as const;\n}\n\nfunction reducer(\n current: StateWithEffects<ApiKeysState>,\n action: ApiKeysAction,\n): StateWithEffects<ApiKeysState> {\n const effects: EffectFn[] = [];\n const exec = (fn: () => void) => {\n const effect = () => {\n if (!effect.disposed) {\n effect.disposed = true;\n fn();\n }\n };\n effect.disposed = false;\n effects.push(effect);\n };\n\n const [currentState] = current;\n switch (action.type) {\n case \"INIT\": {\n const { params } = action;\n let searchQuery;\n if ((searchQuery = params.get(\"ak_q\"))) {\n return [{ ...currentState, searchQuery }, effects];\n }\n return current;\n }\n case \"SET_PAGINATION\": {\n const { pagination } = action;\n if (\n (pagination.after &&\n pagination.after === currentState.pagination?.after) ||\n (pagination.before &&\n pagination.before === currentState.pagination?.before)\n ) {\n return current;\n }\n\n return [{ ...currentState, pagination }, effects];\n }\n case \"FILTER_BY_SEARCH\": {\n if (action.searchQuery === currentState.searchQuery) {\n return current;\n }\n const { searchQuery } = action;\n exec(() =>\n updateQueryParams({ ak_q: searchQuery }, { replaceState: true }),\n );\n return [{ ...currentState, pagination: null, searchQuery }, effects];\n }\n case \"OPEN_CREATE_DIALOG\": {\n return [\n {\n ...currentState,\n createDialogOpen: true,\n createdApiKey: null,\n },\n effects,\n ];\n }\n case \"CLOSE_CREATE_DIALOG\": {\n return [\n {\n ...currentState,\n createDialogOpen: false,\n createdApiKey: null,\n },\n effects,\n ];\n }\n case \"SET_CREATED_API_KEY\": {\n return [\n {\n ...currentState,\n createdApiKey: action.apiKey,\n },\n effects,\n ];\n }\n default:\n return current;\n }\n}\n\nexport interface ApiKeysState {\n searchQuery: string | null;\n pagination: ListMetadata | null;\n createDialogOpen: boolean;\n createdApiKey: CreateOrganizationApiKeyResponse | null;\n}\n\nexport type ApiKeysAction =\n | { type: \"INIT\"; params: URLSearchParams }\n | { type: \"FILTER_BY_SEARCH\"; searchQuery: string | null }\n | { type: \"SET_PAGINATION\"; pagination: ListMetadata }\n | { type: \"OPEN_CREATE_DIALOG\" }\n | { type: \"CLOSE_CREATE_DIALOG\" }\n | { type: \"SET_CREATED_API_KEY\"; apiKey: CreateOrganizationApiKeyResponse };\n\ntype EffectFn = {\n (): void;\n disposed: boolean;\n};\n\ntype StateWithEffects<State> = [State, EffectFn[]];\n\nfunction updateQueryParams(\n newParams: { [key: string]: { toString(): string } | null },\n args: { replaceState?: boolean } = {},\n) {\n if (!canUseDOM) {\n throw new Error(\"Cannot update query params on the server\");\n }\n\n if (window !== window.top) {\n // do not update query params if widget is rendered in an iframe\n return;\n }\n\n const initialSearch = window.location.search;\n const params = new URLSearchParams(initialSearch);\n Object.entries(newParams).forEach(([key, value]) => {\n if (value != null && value !== \"\") {\n params.set(key, String(value));\n } else {\n params.delete(key);\n }\n });\n\n if (initialSearch === `?${params.toString()}`) {\n return;\n }\n\n const newUrl = params.toString()\n ? `${window.location.pathname}?${params}`\n : window.location.pathname;\n\n if (args.replaceState) {\n window.history.replaceState({}, \"\", newUrl);\n } else {\n window.history.pushState({}, \"\", newUrl);\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ListOrganizationApiKeysResponse } from '../../api/endpoint.js';
|
|
3
|
+
import '@tanstack/react-query';
|
|
4
|
+
import '../../api/widgets-api-client.js';
|
|
5
|
+
|
|
6
|
+
declare function ApiKeysTable({ apiKeys, }: {
|
|
7
|
+
apiKeys: ListOrganizationApiKeysResponse;
|
|
8
|
+
}): react_jsx_runtime.JSX.Element;
|
|
9
|
+
|
|
10
|
+
export { ApiKeysTable };
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import {
|
|
3
|
+
Button,
|
|
4
|
+
Flex,
|
|
5
|
+
Text,
|
|
6
|
+
IconButton,
|
|
7
|
+
Table,
|
|
8
|
+
Code,
|
|
9
|
+
DropdownMenu,
|
|
10
|
+
Heading
|
|
11
|
+
} from "@radix-ui/themes";
|
|
12
|
+
import {
|
|
13
|
+
DestructiveMenuItem,
|
|
14
|
+
DropdownMenuContent,
|
|
15
|
+
SecondaryButton
|
|
16
|
+
} from "../elements.js";
|
|
17
|
+
import { DotsHorizontalIcon, MagnifyingGlassIcon } from "@radix-ui/react-icons";
|
|
18
|
+
import { useState } from "react";
|
|
19
|
+
import { RevokeApiKeyDialog } from "./revoke-api-key-dialog.js";
|
|
20
|
+
import { CreateApiKeyButton } from "./create-api-key.js";
|
|
21
|
+
import { ApiKeyDetailsDialog } from "./api-key-details-dialog.js";
|
|
22
|
+
import { useIsHydrated } from "../use-is-hydrated.js";
|
|
23
|
+
import { RelativeTime } from "./relative-time.js";
|
|
24
|
+
import { useApiKeysContext } from "./api-keys-context.js";
|
|
25
|
+
import { useApiKeysSearchContext } from "./api-keys-search-provider.js";
|
|
26
|
+
import { ApiKeysSearch } from "./api-keys-search.js";
|
|
27
|
+
function NoApiKeys() {
|
|
28
|
+
const { clearSearch } = useApiKeysSearchContext();
|
|
29
|
+
return /* @__PURE__ */ jsxs(Flex, { p: "6", gap: "4", justify: "center", align: "center", direction: "column", children: [
|
|
30
|
+
/* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "1", maxWidth: "420px", align: "center", children: [
|
|
31
|
+
/* @__PURE__ */ jsx(
|
|
32
|
+
MagnifyingGlassIcon,
|
|
33
|
+
{
|
|
34
|
+
style: { color: "var(--gray-9)" },
|
|
35
|
+
width: "32px",
|
|
36
|
+
height: "32px"
|
|
37
|
+
}
|
|
38
|
+
),
|
|
39
|
+
/* @__PURE__ */ jsx(Heading, { size: "5", mb: "1", wrap: "balance", as: "h3", children: "No API keys match your search" })
|
|
40
|
+
] }),
|
|
41
|
+
/* @__PURE__ */ jsx(Button, { variant: "outline", color: "gray", onClick: clearSearch, children: "Clear search" })
|
|
42
|
+
] });
|
|
43
|
+
}
|
|
44
|
+
function ApiKeysTableHeader() {
|
|
45
|
+
return /* @__PURE__ */ jsxs(Flex, { justify: "between", align: "center", children: [
|
|
46
|
+
/* @__PURE__ */ jsx(ApiKeysSearch, { name: "api-keys-widget-search", style: { width: "390px" } }),
|
|
47
|
+
/* @__PURE__ */ jsx(CreateApiKeyButton, {})
|
|
48
|
+
] });
|
|
49
|
+
}
|
|
50
|
+
function CreatedOn({ createdOn }) {
|
|
51
|
+
const isHydrated = useIsHydrated();
|
|
52
|
+
return /* @__PURE__ */ jsx(Fragment, { children: createdOn.toLocaleDateString("en-US", {
|
|
53
|
+
timeZone: isHydrated ? void 0 : "UTC",
|
|
54
|
+
month: "short",
|
|
55
|
+
day: "numeric",
|
|
56
|
+
year: "numeric"
|
|
57
|
+
}) });
|
|
58
|
+
}
|
|
59
|
+
function ApiKeyRow({ apiKey }) {
|
|
60
|
+
const [revokeDialogOpen, setRevokeDialogOpen] = useState(false);
|
|
61
|
+
const [detailsOpen, setDetailsOpen] = useState(false);
|
|
62
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
63
|
+
/* @__PURE__ */ jsx(
|
|
64
|
+
RevokeApiKeyDialog,
|
|
65
|
+
{
|
|
66
|
+
open: revokeDialogOpen,
|
|
67
|
+
onOpenChange: setRevokeDialogOpen,
|
|
68
|
+
apiKey
|
|
69
|
+
},
|
|
70
|
+
`${revokeDialogOpen}`
|
|
71
|
+
),
|
|
72
|
+
/* @__PURE__ */ jsx(
|
|
73
|
+
ApiKeyDetailsDialog,
|
|
74
|
+
{
|
|
75
|
+
open: detailsOpen,
|
|
76
|
+
onOpenChange: setDetailsOpen,
|
|
77
|
+
apiKey,
|
|
78
|
+
permissions: apiKey.permissions
|
|
79
|
+
}
|
|
80
|
+
),
|
|
81
|
+
/* @__PURE__ */ jsxs(Table.Row, { children: [
|
|
82
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Text, { children: apiKey.name }) }),
|
|
83
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Code, { color: "gray", children: apiKey.obfuscatedValue }) }),
|
|
84
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(
|
|
85
|
+
Text,
|
|
86
|
+
{
|
|
87
|
+
style: apiKey.lastUsedAt ? void 0 : { color: "var(--gray-10)" },
|
|
88
|
+
children: /* @__PURE__ */ jsx(
|
|
89
|
+
RelativeTime,
|
|
90
|
+
{
|
|
91
|
+
date: apiKey.lastUsedAt ? new Date(apiKey.lastUsedAt) : void 0
|
|
92
|
+
}
|
|
93
|
+
)
|
|
94
|
+
}
|
|
95
|
+
) }),
|
|
96
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Text, { children: /* @__PURE__ */ jsx(CreatedOn, { createdOn: new Date(apiKey.createdAt) }) }) }),
|
|
97
|
+
/* @__PURE__ */ jsx(Table.Cell, { justify: "end", children: /* @__PURE__ */ jsxs(DropdownMenu.Root, { children: [
|
|
98
|
+
/* @__PURE__ */ jsx(DropdownMenu.Trigger, { children: /* @__PURE__ */ jsx(
|
|
99
|
+
IconButton,
|
|
100
|
+
{
|
|
101
|
+
radius: "full",
|
|
102
|
+
style: { verticalAlign: "middle" },
|
|
103
|
+
variant: "ghost",
|
|
104
|
+
color: "gray",
|
|
105
|
+
title: "API key actions",
|
|
106
|
+
children: /* @__PURE__ */ jsx(DotsHorizontalIcon, {})
|
|
107
|
+
}
|
|
108
|
+
) }),
|
|
109
|
+
/* @__PURE__ */ jsxs(DropdownMenuContent, { size: "2", align: "end", children: [
|
|
110
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect: () => setDetailsOpen(true), children: "View details" }),
|
|
111
|
+
/* @__PURE__ */ jsx(DestructiveMenuItem, { onSelect: () => setRevokeDialogOpen(true), children: "Revoke key" })
|
|
112
|
+
] })
|
|
113
|
+
] }) })
|
|
114
|
+
] })
|
|
115
|
+
] });
|
|
116
|
+
}
|
|
117
|
+
function ApiKeysTable({
|
|
118
|
+
apiKeys
|
|
119
|
+
}) {
|
|
120
|
+
const { dispatch } = useApiKeysContext();
|
|
121
|
+
const hasPagination = apiKeys.listMetadata.before || apiKeys.listMetadata.after;
|
|
122
|
+
const hasPreviousPage = apiKeys.listMetadata.after;
|
|
123
|
+
const hasNextPage = apiKeys.listMetadata.before;
|
|
124
|
+
return /* @__PURE__ */ jsxs(Flex, { direction: "column", align: "stretch", gap: "3", children: [
|
|
125
|
+
/* @__PURE__ */ jsx(ApiKeysTableHeader, {}),
|
|
126
|
+
apiKeys.data.length === 0 ? /* @__PURE__ */ jsx(NoApiKeys, {}) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
127
|
+
/* @__PURE__ */ jsxs(Table.Root, { variant: "ghost", size: "2", children: [
|
|
128
|
+
/* @__PURE__ */ jsx(Table.Header, { children: /* @__PURE__ */ jsxs(Table.Row, { children: [
|
|
129
|
+
/* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "25%", children: "Name" }),
|
|
130
|
+
/* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "25%", children: "Secret key" }),
|
|
131
|
+
/* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "25%", children: "Last used" }),
|
|
132
|
+
/* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "25%", children: "Created" }),
|
|
133
|
+
/* @__PURE__ */ jsx(Table.ColumnHeaderCell, { width: "28px" })
|
|
134
|
+
] }) }),
|
|
135
|
+
/* @__PURE__ */ jsx(Table.Body, { children: apiKeys.data.map((apiKey) => /* @__PURE__ */ jsx(ApiKeyRow, { apiKey }, apiKey.id)) })
|
|
136
|
+
] }),
|
|
137
|
+
hasPagination && /* @__PURE__ */ jsxs(Flex, { gap: "2", justify: "end", children: [
|
|
138
|
+
/* @__PURE__ */ jsx(
|
|
139
|
+
SecondaryButton,
|
|
140
|
+
{
|
|
141
|
+
disabled: !hasPreviousPage,
|
|
142
|
+
size: "1",
|
|
143
|
+
onClick: () => dispatch({
|
|
144
|
+
type: "SET_PAGINATION",
|
|
145
|
+
pagination: { after: apiKeys.listMetadata.after }
|
|
146
|
+
}),
|
|
147
|
+
children: "Previous"
|
|
148
|
+
}
|
|
149
|
+
),
|
|
150
|
+
/* @__PURE__ */ jsx(
|
|
151
|
+
SecondaryButton,
|
|
152
|
+
{
|
|
153
|
+
disabled: !hasNextPage,
|
|
154
|
+
size: "1",
|
|
155
|
+
onClick: () => dispatch({
|
|
156
|
+
type: "SET_PAGINATION",
|
|
157
|
+
pagination: { before: apiKeys.listMetadata.before }
|
|
158
|
+
}),
|
|
159
|
+
children: "Next"
|
|
160
|
+
}
|
|
161
|
+
)
|
|
162
|
+
] })
|
|
163
|
+
] })
|
|
164
|
+
] });
|
|
165
|
+
}
|
|
166
|
+
export {
|
|
167
|
+
ApiKeysTable
|
|
168
|
+
};
|
|
169
|
+
//# sourceMappingURL=api-keys-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/api-keys/api-keys-table.tsx"],"sourcesContent":["import {\n Button,\n Flex,\n Text,\n IconButton,\n Table,\n Code,\n DropdownMenu,\n Heading,\n} from \"@radix-ui/themes\";\nimport {\n DestructiveMenuItem,\n DropdownMenuContent,\n SecondaryButton,\n} from \"../elements.js\";\nimport { DotsHorizontalIcon, MagnifyingGlassIcon } from \"@radix-ui/react-icons\";\nimport { useState } from \"react\";\nimport { RevokeApiKeyDialog } from \"./revoke-api-key-dialog.js\";\nimport { CreateApiKeyButton } from \"./create-api-key.js\";\nimport { ApiKeyDetailsDialog } from \"./api-key-details-dialog.js\";\nimport { useIsHydrated } from \"../use-is-hydrated.js\";\nimport { RelativeTime } from \"./relative-time.js\";\nimport {\n ListOrganizationApiKeysResponse,\n ListOrganizationApiKeysResponseData,\n} from \"../../api/endpoint.js\";\nimport { useApiKeysContext } from \"./api-keys-context.js\";\nimport { useApiKeysSearchContext } from \"./api-keys-search-provider.js\";\nimport { ApiKeysSearch } from \"./api-keys-search.js\";\n\nfunction NoApiKeys() {\n const { clearSearch } = useApiKeysSearchContext();\n return (\n <Flex p=\"6\" gap=\"4\" justify=\"center\" align=\"center\" direction=\"column\">\n <Flex direction=\"column\" gap=\"1\" maxWidth=\"420px\" align=\"center\">\n <MagnifyingGlassIcon\n style={{ color: \"var(--gray-9)\" }}\n width=\"32px\"\n height=\"32px\"\n />\n <Heading size=\"5\" mb=\"1\" wrap=\"balance\" as=\"h3\">\n No API keys match your search\n </Heading>\n </Flex>\n\n <Button variant=\"outline\" color=\"gray\" onClick={clearSearch}>\n Clear search\n </Button>\n </Flex>\n );\n}\n\nfunction ApiKeysTableHeader() {\n return (\n <Flex justify=\"between\" align=\"center\">\n <ApiKeysSearch name=\"api-keys-widget-search\" style={{ width: \"390px\" }} />\n <CreateApiKeyButton />\n </Flex>\n );\n}\n\nfunction CreatedOn({ createdOn }: { createdOn: Date }) {\n const isHydrated = useIsHydrated();\n return (\n <>\n {createdOn.toLocaleDateString(\"en-US\", {\n timeZone: isHydrated ? undefined : \"UTC\",\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n })}\n </>\n );\n}\n\ninterface ApiKeyRowProps {\n apiKey: ListOrganizationApiKeysResponseData;\n}\n\nfunction ApiKeyRow({ apiKey }: ApiKeyRowProps) {\n const [revokeDialogOpen, setRevokeDialogOpen] = useState(false);\n const [detailsOpen, setDetailsOpen] = useState(false);\n return (\n <>\n <RevokeApiKeyDialog\n // always remount the form when the dialog is opened to reset the validation errors\n key={`${revokeDialogOpen}`}\n open={revokeDialogOpen}\n onOpenChange={setRevokeDialogOpen}\n apiKey={apiKey}\n />\n <ApiKeyDetailsDialog\n open={detailsOpen}\n onOpenChange={setDetailsOpen}\n apiKey={apiKey}\n permissions={apiKey.permissions}\n />\n <Table.Row>\n <Table.Cell>\n <Text>{apiKey.name}</Text>\n </Table.Cell>\n <Table.Cell>\n <Code color=\"gray\">{apiKey.obfuscatedValue}</Code>\n </Table.Cell>\n <Table.Cell>\n <Text\n style={apiKey.lastUsedAt ? undefined : { color: \"var(--gray-10)\" }}\n >\n <RelativeTime\n date={apiKey.lastUsedAt ? new Date(apiKey.lastUsedAt) : undefined}\n />\n </Text>\n </Table.Cell>\n <Table.Cell>\n <Text>\n <CreatedOn createdOn={new Date(apiKey.createdAt)} />\n </Text>\n </Table.Cell>\n <Table.Cell justify=\"end\">\n <DropdownMenu.Root>\n <DropdownMenu.Trigger>\n <IconButton\n radius=\"full\"\n style={{ verticalAlign: \"middle\" }}\n variant=\"ghost\"\n color=\"gray\"\n title=\"API key actions\"\n >\n <DotsHorizontalIcon />\n </IconButton>\n </DropdownMenu.Trigger>\n <DropdownMenuContent size=\"2\" align=\"end\">\n <DropdownMenu.Item onSelect={() => setDetailsOpen(true)}>\n View details\n </DropdownMenu.Item>\n <DestructiveMenuItem onSelect={() => setRevokeDialogOpen(true)}>\n Revoke key\n </DestructiveMenuItem>\n </DropdownMenuContent>\n </DropdownMenu.Root>\n </Table.Cell>\n </Table.Row>\n </>\n );\n}\n\nexport function ApiKeysTable({\n apiKeys,\n}: {\n apiKeys: ListOrganizationApiKeysResponse;\n}) {\n const { dispatch } = useApiKeysContext();\n const hasPagination =\n apiKeys.listMetadata.before || apiKeys.listMetadata.after;\n const hasPreviousPage = apiKeys.listMetadata.after;\n const hasNextPage = apiKeys.listMetadata.before;\n\n return (\n <Flex direction=\"column\" align=\"stretch\" gap=\"3\">\n <ApiKeysTableHeader />\n {apiKeys.data.length === 0 ? (\n <NoApiKeys />\n ) : (\n <>\n <Table.Root variant=\"ghost\" size=\"2\">\n <Table.Header>\n <Table.Row>\n <Table.ColumnHeaderCell width=\"25%\">\n Name\n </Table.ColumnHeaderCell>\n <Table.ColumnHeaderCell width=\"25%\">\n Secret key\n </Table.ColumnHeaderCell>\n <Table.ColumnHeaderCell width=\"25%\">\n Last used\n </Table.ColumnHeaderCell>\n <Table.ColumnHeaderCell width=\"25%\">\n Created\n </Table.ColumnHeaderCell>\n <Table.ColumnHeaderCell width=\"28px\" />\n </Table.Row>\n </Table.Header>\n <Table.Body>\n {apiKeys.data.map((apiKey) => (\n <ApiKeyRow key={apiKey.id} apiKey={apiKey} />\n ))}\n </Table.Body>\n </Table.Root>\n {hasPagination && (\n <Flex gap=\"2\" justify=\"end\">\n <SecondaryButton\n disabled={!hasPreviousPage}\n size=\"1\"\n onClick={() =>\n dispatch({\n type: \"SET_PAGINATION\",\n pagination: { after: apiKeys.listMetadata.after },\n })\n }\n >\n Previous\n </SecondaryButton>\n <SecondaryButton\n disabled={!hasNextPage}\n size=\"1\"\n onClick={() =>\n dispatch({\n type: \"SET_PAGINATION\",\n pagination: { before: apiKeys.listMetadata.before },\n })\n }\n >\n Next\n </SecondaryButton>\n </Flex>\n )}\n </>\n )}\n </Flex>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { Flex } from '@radix-ui/themes';
|
|
3
|
+
|
|
4
|
+
declare function ApiKeysError({ error }: {
|
|
5
|
+
error: unknown;
|
|
6
|
+
}): react_jsx_runtime.JSX.Element;
|
|
7
|
+
declare function ApiKeysEmptyState(): react_jsx_runtime.JSX.Element;
|
|
8
|
+
declare function ApiKeysLoading(): react_jsx_runtime.JSX.Element;
|
|
9
|
+
declare function ApiKeysRoot({ className, children, ...props }: React.ComponentProps<typeof Flex>): react_jsx_runtime.JSX.Element;
|
|
10
|
+
|
|
11
|
+
export { ApiKeysEmptyState, ApiKeysError, ApiKeysLoading, ApiKeysRoot };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Flex, Skeleton } from "@radix-ui/themes";
|
|
3
|
+
import { TextField, TextFieldSlot } from "../elements.js";
|
|
4
|
+
import { GenericError } from "../generic-error.js";
|
|
5
|
+
import { EmptyState } from "../empty-state.js";
|
|
6
|
+
import { MagnifyingGlassIcon } from "@radix-ui/react-icons";
|
|
7
|
+
import { SkeletonTable } from "./skeleton-table.js";
|
|
8
|
+
import { CreateApiKeyButton } from "./create-api-key.js";
|
|
9
|
+
import clsx from "clsx";
|
|
10
|
+
function ApiKeysError({ error }) {
|
|
11
|
+
return /* @__PURE__ */ jsx(GenericError, { error });
|
|
12
|
+
}
|
|
13
|
+
function ApiKeysEmptyState() {
|
|
14
|
+
return /* @__PURE__ */ jsx(
|
|
15
|
+
EmptyState,
|
|
16
|
+
{
|
|
17
|
+
heading: "No API keys yet",
|
|
18
|
+
message: "Generate an API key to authenticate and interact with our API.",
|
|
19
|
+
action: /* @__PURE__ */ jsx(CreateApiKeyButton, {})
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
function ApiKeysLoading() {
|
|
24
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
25
|
+
/* @__PURE__ */ jsxs(Flex, { justify: "between", align: "center", children: [
|
|
26
|
+
/* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(
|
|
27
|
+
TextField,
|
|
28
|
+
{
|
|
29
|
+
name: "api-keys-widget-search",
|
|
30
|
+
style: { width: "390px" },
|
|
31
|
+
placeholder: "Search by name",
|
|
32
|
+
children: /* @__PURE__ */ jsx(TextFieldSlot, { side: "left", children: /* @__PURE__ */ jsx(MagnifyingGlassIcon, { "aria-hidden": "true", height: "16", width: "16" }) })
|
|
33
|
+
}
|
|
34
|
+
) }),
|
|
35
|
+
/* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(Button, { children: "Create API key" }) })
|
|
36
|
+
] }),
|
|
37
|
+
/* @__PURE__ */ jsx(
|
|
38
|
+
SkeletonTable,
|
|
39
|
+
{
|
|
40
|
+
numRows: 5,
|
|
41
|
+
columns: [
|
|
42
|
+
{ children: "Name", width: "25%" },
|
|
43
|
+
{ children: "Secret key", width: "25%" },
|
|
44
|
+
{ children: "Last used", width: "25%" },
|
|
45
|
+
{ children: "Created", width: "25%" }
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
)
|
|
49
|
+
] });
|
|
50
|
+
}
|
|
51
|
+
function ApiKeysRoot({
|
|
52
|
+
className,
|
|
53
|
+
children,
|
|
54
|
+
...props
|
|
55
|
+
}) {
|
|
56
|
+
return /* @__PURE__ */ jsx(
|
|
57
|
+
Flex,
|
|
58
|
+
{
|
|
59
|
+
className: clsx("woswidgets-widget", className),
|
|
60
|
+
"data-woswidgets-widget-id": "api-keys",
|
|
61
|
+
direction: "column",
|
|
62
|
+
gap: "3",
|
|
63
|
+
...props,
|
|
64
|
+
children
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
export {
|
|
69
|
+
ApiKeysEmptyState,
|
|
70
|
+
ApiKeysError,
|
|
71
|
+
ApiKeysLoading,
|
|
72
|
+
ApiKeysRoot
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=api-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/api-keys/api-keys.tsx"],"sourcesContent":["import { Button, Flex, Skeleton } from \"@radix-ui/themes\";\nimport { TextField, TextFieldSlot } from \"../elements.js\";\nimport { GenericError } from \"../generic-error.js\";\nimport { EmptyState } from \"../empty-state.js\";\nimport { MagnifyingGlassIcon } from \"@radix-ui/react-icons\";\nimport { SkeletonTable } from \"./skeleton-table.js\";\nimport { CreateApiKeyButton } from \"./create-api-key.js\";\nimport clsx from \"clsx\";\n\nexport function ApiKeysError({ error }: { error: unknown }) {\n return <GenericError error={error} />;\n}\n\nexport function ApiKeysEmptyState() {\n return (\n <EmptyState\n heading=\"No API keys yet\"\n message=\"Generate an API key to authenticate and interact with our API.\"\n action={<CreateApiKeyButton />}\n />\n );\n}\n\nexport function ApiKeysLoading() {\n return (\n <>\n <Flex justify=\"between\" align=\"center\">\n <Skeleton>\n <TextField\n name=\"api-keys-widget-search\"\n style={{ width: \"390px\" }}\n placeholder=\"Search by name\"\n >\n <TextFieldSlot side=\"left\">\n <MagnifyingGlassIcon aria-hidden=\"true\" height=\"16\" width=\"16\" />\n </TextFieldSlot>\n </TextField>\n </Skeleton>\n <Skeleton>\n <Button>Create API key</Button>\n </Skeleton>\n </Flex>\n <SkeletonTable\n numRows={5}\n columns={[\n { children: \"Name\", width: \"25%\" },\n { children: \"Secret key\", width: \"25%\" },\n { children: \"Last used\", width: \"25%\" },\n { children: \"Created\", width: \"25%\" },\n ]}\n />\n </>\n );\n}\n\nexport function ApiKeysRoot({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof Flex>) {\n return (\n <Flex\n className={clsx(\"woswidgets-widget\", className)}\n data-woswidgets-widget-id=\"api-keys\"\n direction=\"column\"\n gap=\"3\"\n {...props}\n >\n {children}\n </Flex>\n );\n}\n"],"mappings":"AAUS,SAeL,UAfK,KAgBH,YAhBG;AAVT,SAAS,QAAQ,MAAM,gBAAgB;AACvC,SAAS,WAAW,qBAAqB;AACzC,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,2BAA2B;AACpC,SAAS,qBAAqB;AAC9B,SAAS,0BAA0B;AACnC,OAAO,UAAU;AAEV,SAAS,aAAa,EAAE,MAAM,GAAuB;AAC1D,SAAO,oBAAC,gBAAa,OAAc;AACrC;AAEO,SAAS,oBAAoB;AAClC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAQ;AAAA,MACR,QAAQ,oBAAC,sBAAmB;AAAA;AAAA,EAC9B;AAEJ;AAEO,SAAS,iBAAiB;AAC/B,SACE,iCACE;AAAA,yBAAC,QAAK,SAAQ,WAAU,OAAM,UAC5B;AAAA,0BAAC,YACC;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO,EAAE,OAAO,QAAQ;AAAA,UACxB,aAAY;AAAA,UAEZ,8BAAC,iBAAc,MAAK,QAClB,8BAAC,uBAAoB,eAAY,QAAO,QAAO,MAAK,OAAM,MAAK,GACjE;AAAA;AAAA,MACF,GACF;AAAA,MACA,oBAAC,YACC,8BAAC,UAAO,4BAAc,GACxB;AAAA,OACF;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,SAAS;AAAA,UACP,EAAE,UAAU,QAAQ,OAAO,MAAM;AAAA,UACjC,EAAE,UAAU,cAAc,OAAO,MAAM;AAAA,UACvC,EAAE,UAAU,aAAa,OAAO,MAAM;AAAA,UACtC,EAAE,UAAU,WAAW,OAAO,MAAM;AAAA,QACtC;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAsC;AACpC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,KAAK,qBAAqB,SAAS;AAAA,MAC9C,6BAA0B;AAAA,MAC1B,WAAU;AAAA,MACV,KAAI;AAAA,MACH,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;","names":[]}
|