@workos-inc/widgets 1.10.2-next.1776747232772 → 1.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/CHANGELOG.md +5 -8
  2. package/dist/cjs/admin-portal-audit-log-streaming.client.d.cts +2 -2
  3. package/dist/cjs/admin-portal-domain-verification.client.d.cts +2 -2
  4. package/dist/cjs/admin-portal-sso-connection.client.d.cts +2 -2
  5. package/dist/cjs/{alert-dialog-BlG3_awx.d.cts → alert-dialog-BMbVcJfZ.d.cts} +7 -5
  6. package/dist/cjs/api-keys.client.d.cts +2 -2
  7. package/dist/cjs/dialog-CGXwsXVe.d.cts +25 -0
  8. package/dist/cjs/directory-sync.client.d.cts +2 -2
  9. package/dist/cjs/index.d.cts +2 -2
  10. package/dist/cjs/lib/admin-portal-audit-log-streaming.d.cts +2 -2
  11. package/dist/cjs/lib/admin-portal-domain-verification.d.cts +2 -2
  12. package/dist/cjs/lib/admin-portal-sso-connection.d.cts +2 -2
  13. package/dist/cjs/lib/api-keys/api-keys.d.cts +2 -2
  14. package/dist/cjs/lib/api-keys/create-api-key.cjs +1 -1
  15. package/dist/cjs/lib/api-keys/create-api-key.cjs.map +1 -1
  16. package/dist/cjs/lib/api-keys/revoke-api-key-dialog.cjs +1 -1
  17. package/dist/cjs/lib/api-keys/revoke-api-key-dialog.cjs.map +1 -1
  18. package/dist/cjs/lib/copy-button.d.cts +2 -2
  19. package/dist/cjs/lib/delete-domain-dialog.cjs +7 -7
  20. package/dist/cjs/lib/delete-domain-dialog.cjs.map +1 -1
  21. package/dist/cjs/lib/directory-sync.d.cts +2 -2
  22. package/dist/cjs/lib/elements/alert-dialog.cjs +4 -1
  23. package/dist/cjs/lib/elements/alert-dialog.cjs.map +1 -1
  24. package/dist/cjs/lib/elements/alert-dialog.d.cts +2 -2
  25. package/dist/cjs/lib/elements/dialog.cjs +4 -1
  26. package/dist/cjs/lib/elements/dialog.cjs.map +1 -1
  27. package/dist/cjs/lib/elements/dialog.d.cts +2 -2
  28. package/dist/cjs/lib/elements.d.cts +2 -2
  29. package/dist/cjs/lib/elevated-access.cjs +2 -2
  30. package/dist/cjs/lib/elevated-access.cjs.map +1 -1
  31. package/dist/cjs/lib/empty-state.d.cts +2 -2
  32. package/dist/cjs/lib/organization-switcher.d.cts +2 -2
  33. package/dist/cjs/lib/otp-input.d.cts +2 -2
  34. package/dist/cjs/lib/pipes.d.cts +2 -2
  35. package/dist/cjs/lib/save-button.d.cts +2 -2
  36. package/dist/cjs/lib/user-profile.d.cts +2 -2
  37. package/dist/cjs/lib/user-security.d.cts +2 -2
  38. package/dist/cjs/lib/user-sessions.d.cts +2 -2
  39. package/dist/cjs/lib/users-management.d.cts +2 -2
  40. package/dist/cjs/lib/utils.d.cts +2 -2
  41. package/dist/cjs/lib/widgets-context.d.cts +2 -2
  42. package/dist/cjs/organization-switcher.client.d.cts +2 -2
  43. package/dist/cjs/pipes.client.d.cts +2 -2
  44. package/dist/cjs/user-profile.client.d.cts +2 -2
  45. package/dist/cjs/user-security.client.d.cts +2 -2
  46. package/dist/cjs/user-sessions.client.d.cts +2 -2
  47. package/dist/cjs/users-management.client.d.cts +2 -2
  48. package/dist/cjs/workos-widgets.client.d.cts +2 -2
  49. package/dist/esm/admin-portal-audit-log-streaming.client.d.ts +2 -2
  50. package/dist/esm/admin-portal-domain-verification.client.d.ts +2 -2
  51. package/dist/esm/admin-portal-sso-connection.client.d.ts +2 -2
  52. package/dist/esm/{alert-dialog-BlG3_awx.d.ts → alert-dialog-BMbVcJfZ.d.ts} +7 -5
  53. package/dist/esm/api-keys.client.d.ts +2 -2
  54. package/dist/esm/dialog-CGXwsXVe.d.ts +25 -0
  55. package/dist/esm/directory-sync.client.d.ts +2 -2
  56. package/dist/esm/index.d.ts +2 -2
  57. package/dist/esm/lib/admin-portal-audit-log-streaming.d.ts +2 -2
  58. package/dist/esm/lib/admin-portal-domain-verification.d.ts +2 -2
  59. package/dist/esm/lib/admin-portal-sso-connection.d.ts +2 -2
  60. package/dist/esm/lib/api-keys/api-keys.d.ts +2 -2
  61. package/dist/esm/lib/api-keys/create-api-key.js +1 -1
  62. package/dist/esm/lib/api-keys/create-api-key.js.map +1 -1
  63. package/dist/esm/lib/api-keys/revoke-api-key-dialog.js +1 -1
  64. package/dist/esm/lib/api-keys/revoke-api-key-dialog.js.map +1 -1
  65. package/dist/esm/lib/copy-button.d.ts +2 -2
  66. package/dist/esm/lib/delete-domain-dialog.js +9 -9
  67. package/dist/esm/lib/delete-domain-dialog.js.map +1 -1
  68. package/dist/esm/lib/directory-sync.d.ts +2 -2
  69. package/dist/esm/lib/elements/alert-dialog.d.ts +2 -2
  70. package/dist/esm/lib/elements/alert-dialog.js +6 -3
  71. package/dist/esm/lib/elements/alert-dialog.js.map +1 -1
  72. package/dist/esm/lib/elements/dialog.d.ts +2 -2
  73. package/dist/esm/lib/elements/dialog.js +6 -3
  74. package/dist/esm/lib/elements/dialog.js.map +1 -1
  75. package/dist/esm/lib/elements.d.ts +2 -2
  76. package/dist/esm/lib/elevated-access.js +2 -2
  77. package/dist/esm/lib/elevated-access.js.map +1 -1
  78. package/dist/esm/lib/empty-state.d.ts +2 -2
  79. package/dist/esm/lib/organization-switcher.d.ts +2 -2
  80. package/dist/esm/lib/otp-input.d.ts +2 -2
  81. package/dist/esm/lib/pipes.d.ts +2 -2
  82. package/dist/esm/lib/save-button.d.ts +2 -2
  83. package/dist/esm/lib/user-profile.d.ts +2 -2
  84. package/dist/esm/lib/user-security.d.ts +2 -2
  85. package/dist/esm/lib/user-sessions.d.ts +2 -2
  86. package/dist/esm/lib/users-management.d.ts +2 -2
  87. package/dist/esm/lib/utils.d.ts +2 -2
  88. package/dist/esm/lib/widgets-context.d.ts +2 -2
  89. package/dist/esm/organization-switcher.client.d.ts +2 -2
  90. package/dist/esm/pipes.client.d.ts +2 -2
  91. package/dist/esm/user-profile.client.d.ts +2 -2
  92. package/dist/esm/user-security.client.d.ts +2 -2
  93. package/dist/esm/user-sessions.client.d.ts +2 -2
  94. package/dist/esm/users-management.client.d.ts +2 -2
  95. package/dist/esm/workos-widgets.client.d.ts +2 -2
  96. package/package.json +3 -3
  97. package/dist/cjs/dialog-C15qCLN3.d.cts +0 -23
  98. package/dist/esm/dialog-C15qCLN3.d.ts +0 -23
package/CHANGELOG.md CHANGED
@@ -1,14 +1,11 @@
1
1
  # Changelog
2
2
 
3
- ## 1.10.2-next.1776747232772
3
+ ## 1.10.2
4
4
 
5
- ### Patch Changes
6
-
7
- - [#179](https://github.com/workos/widgets/pull/179) [`c5fca6c`](https://github.com/workos/widgets/commit/c5fca6c17a02d82f1f15bd7b1b07174fefc239ed) Thanks [@ajworkos](https://github.com/ajworkos)! - Use form POST to launch Admin Portal for improved security (keeps API tokens out of URL query parameters)
8
-
9
- - [#225](https://github.com/workos/widgets/pull/225) [`7ad4ea9`](https://github.com/workos/widgets/commit/7ad4ea9b98bf3ce3fe8d350dd9a7034536ecc8c2) Thanks [@jasonbarry](https://github.com/jasonbarry)! - Fixes idle sessions from resulting in an incorrect permissions error
10
-
11
- - [#222](https://github.com/workos/widgets/pull/222) [`c6d4ca0`](https://github.com/workos/widgets/commit/c6d4ca0ef5a5d4d11e83baee6adc2e5b75203ef9) Thanks [@chaance](https://github.com/chaance)! - Fix semantic markup for data list elements in the User Profile Widget
5
+ - Use form `POST` instead of `window.open` to launch Admin Portal
6
+ - Standardize dialog descriptions to use size 2 text
7
+ - Fix idle sessions from resulting in incorrect permissions error
8
+ - Fix semantic markup for data list elements in the `UserProfile` Widget
12
9
 
13
10
  ## 1.10.1
14
11
 
@@ -9,9 +9,9 @@ import './api/widgets-api-client.cjs';
9
9
  import './lib/elements.cjs';
10
10
  import '@radix-ui/themes';
11
11
  import '@radix-ui/themes/props';
12
- import './dialog-C15qCLN3.cjs';
12
+ import './dialog-CGXwsXVe.cjs';
13
13
  import '@radix-ui/themes/components/dialog';
14
- import './alert-dialog-BlG3_awx.cjs';
14
+ import './alert-dialog-BMbVcJfZ.cjs';
15
15
  import '@radix-ui/themes/components/alert-dialog';
16
16
  import './dropdown-menu-BQ5LtvdR.cjs';
17
17
  import '@radix-ui/themes/components/dropdown-menu';
@@ -9,9 +9,9 @@ import './api/widgets-api-client.cjs';
9
9
  import './lib/elements.cjs';
10
10
  import '@radix-ui/themes';
11
11
  import '@radix-ui/themes/props';
12
- import './dialog-C15qCLN3.cjs';
12
+ import './dialog-CGXwsXVe.cjs';
13
13
  import '@radix-ui/themes/components/dialog';
14
- import './alert-dialog-BlG3_awx.cjs';
14
+ import './alert-dialog-BMbVcJfZ.cjs';
15
15
  import '@radix-ui/themes/components/alert-dialog';
16
16
  import './dropdown-menu-BQ5LtvdR.cjs';
17
17
  import '@radix-ui/themes/components/dropdown-menu';
@@ -10,9 +10,9 @@ import './api/widgets-api-client.cjs';
10
10
  import './lib/elements.cjs';
11
11
  import '@radix-ui/themes';
12
12
  import '@radix-ui/themes/props';
13
- import './dialog-C15qCLN3.cjs';
13
+ import './dialog-CGXwsXVe.cjs';
14
14
  import '@radix-ui/themes/components/dialog';
15
- import './alert-dialog-BlG3_awx.cjs';
15
+ import './alert-dialog-BMbVcJfZ.cjs';
16
16
  import '@radix-ui/themes/components/alert-dialog';
17
17
  import './dropdown-menu-BQ5LtvdR.cjs';
18
18
  import '@radix-ui/themes/components/dropdown-menu';
@@ -1,17 +1,19 @@
1
1
  import * as React from 'react';
2
- import { ContentProps as ContentProps$1, Action, ActionProps, Cancel, CancelProps, Description, DescriptionProps, Root, RootProps, Title, TitleProps, Trigger, TriggerProps } from '@radix-ui/themes/components/alert-dialog';
2
+ import { ContentProps as ContentProps$1, DescriptionProps as DescriptionProps$1, Action, ActionProps, Cancel, CancelProps, Root, RootProps, Title, TitleProps, Trigger, TriggerProps } from '@radix-ui/themes/components/alert-dialog';
3
3
 
4
4
  interface ContentProps extends ContentProps$1 {
5
5
  }
6
6
  declare const AlertDialogContent: React.ForwardRefExoticComponent<ContentProps & React.RefAttributes<HTMLDivElement>>;
7
+ interface DescriptionProps extends DescriptionProps$1 {
8
+ }
9
+ declare const AlertDialogDescription: React.ForwardRefExoticComponent<DescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
7
10
 
8
11
  declare const alertDialog_Action: typeof Action;
9
12
  declare const alertDialog_ActionProps: typeof ActionProps;
10
13
  declare const alertDialog_Cancel: typeof Cancel;
11
14
  declare const alertDialog_CancelProps: typeof CancelProps;
12
15
  type alertDialog_ContentProps = ContentProps;
13
- declare const alertDialog_Description: typeof Description;
14
- declare const alertDialog_DescriptionProps: typeof DescriptionProps;
16
+ type alertDialog_DescriptionProps = DescriptionProps;
15
17
  declare const alertDialog_Root: typeof Root;
16
18
  declare const alertDialog_RootProps: typeof RootProps;
17
19
  declare const alertDialog_Title: typeof Title;
@@ -19,7 +21,7 @@ declare const alertDialog_TitleProps: typeof TitleProps;
19
21
  declare const alertDialog_Trigger: typeof Trigger;
20
22
  declare const alertDialog_TriggerProps: typeof TriggerProps;
21
23
  declare namespace alertDialog {
22
- export { alertDialog_Action as Action, alertDialog_ActionProps as ActionProps, alertDialog_Cancel as Cancel, alertDialog_CancelProps as CancelProps, AlertDialogContent as Content, type alertDialog_ContentProps as ContentProps, alertDialog_Description as Description, alertDialog_DescriptionProps as DescriptionProps, alertDialog_Root as Root, alertDialog_RootProps as RootProps, alertDialog_Title as Title, alertDialog_TitleProps as TitleProps, alertDialog_Trigger as Trigger, alertDialog_TriggerProps as TriggerProps };
24
+ export { alertDialog_Action as Action, alertDialog_ActionProps as ActionProps, alertDialog_Cancel as Cancel, alertDialog_CancelProps as CancelProps, AlertDialogContent as Content, type alertDialog_ContentProps as ContentProps, AlertDialogDescription as Description, type alertDialog_DescriptionProps as DescriptionProps, alertDialog_Root as Root, alertDialog_RootProps as RootProps, alertDialog_Title as Title, alertDialog_TitleProps as TitleProps, alertDialog_Trigger as Trigger, alertDialog_TriggerProps as TriggerProps };
23
25
  }
24
26
 
25
- export { AlertDialogContent as A, type ContentProps as C, alertDialog as a };
27
+ export { AlertDialogContent as A, type ContentProps as C, type DescriptionProps as D, alertDialog as a, AlertDialogDescription as b };
@@ -9,9 +9,9 @@ import './api/widgets-api-client.cjs';
9
9
  import './lib/elements.cjs';
10
10
  import '@radix-ui/themes';
11
11
  import '@radix-ui/themes/props';
12
- import './dialog-C15qCLN3.cjs';
12
+ import './dialog-CGXwsXVe.cjs';
13
13
  import '@radix-ui/themes/components/dialog';
14
- import './alert-dialog-BlG3_awx.cjs';
14
+ import './alert-dialog-BMbVcJfZ.cjs';
15
15
  import '@radix-ui/themes/components/alert-dialog';
16
16
  import './dropdown-menu-BQ5LtvdR.cjs';
17
17
  import '@radix-ui/themes/components/dropdown-menu';
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ import { ContentProps as ContentProps$1, DescriptionProps as DescriptionProps$1, Close, CloseProps, Root, RootProps, Title, TitleProps, Trigger, TriggerProps } from '@radix-ui/themes/components/dialog';
3
+
4
+ interface ContentProps extends ContentProps$1 {
5
+ }
6
+ declare const DialogContent: React.ForwardRefExoticComponent<ContentProps & React.RefAttributes<HTMLDivElement>>;
7
+ interface DescriptionProps extends DescriptionProps$1 {
8
+ }
9
+ declare const DialogDescription: React.ForwardRefExoticComponent<DescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
10
+
11
+ declare const dialog_Close: typeof Close;
12
+ declare const dialog_CloseProps: typeof CloseProps;
13
+ type dialog_ContentProps = ContentProps;
14
+ type dialog_DescriptionProps = DescriptionProps;
15
+ declare const dialog_Root: typeof Root;
16
+ declare const dialog_RootProps: typeof RootProps;
17
+ declare const dialog_Title: typeof Title;
18
+ declare const dialog_TitleProps: typeof TitleProps;
19
+ declare const dialog_Trigger: typeof Trigger;
20
+ declare const dialog_TriggerProps: typeof TriggerProps;
21
+ declare namespace dialog {
22
+ export { dialog_Close as Close, dialog_CloseProps as CloseProps, DialogContent as Content, type dialog_ContentProps as ContentProps, DialogDescription as Description, type dialog_DescriptionProps as DescriptionProps, dialog_Root as Root, dialog_RootProps as RootProps, dialog_Title as Title, dialog_TitleProps as TitleProps, dialog_Trigger as Trigger, dialog_TriggerProps as TriggerProps };
23
+ }
24
+
25
+ export { type ContentProps as C, DialogContent as D, DialogDescription as a, type DescriptionProps as b, dialog as d };
@@ -9,9 +9,9 @@ import 'react/jsx-runtime';
9
9
  import './lib/elements.cjs';
10
10
  import '@radix-ui/themes';
11
11
  import '@radix-ui/themes/props';
12
- import './dialog-C15qCLN3.cjs';
12
+ import './dialog-CGXwsXVe.cjs';
13
13
  import '@radix-ui/themes/components/dialog';
14
- import './alert-dialog-BlG3_awx.cjs';
14
+ import './alert-dialog-BMbVcJfZ.cjs';
15
15
  import '@radix-ui/themes/components/alert-dialog';
16
16
  import './dropdown-menu-BQ5LtvdR.cjs';
17
17
  import '@radix-ui/themes/components/dropdown-menu';
@@ -27,9 +27,9 @@ import '@tanstack/react-query';
27
27
  import 'react';
28
28
  import './lib/elements.cjs';
29
29
  import '@radix-ui/themes';
30
- import './dialog-C15qCLN3.cjs';
30
+ import './dialog-CGXwsXVe.cjs';
31
31
  import '@radix-ui/themes/components/dialog';
32
- import './alert-dialog-BlG3_awx.cjs';
32
+ import './alert-dialog-BMbVcJfZ.cjs';
33
33
  import '@radix-ui/themes/components/alert-dialog';
34
34
  import './dropdown-menu-BQ5LtvdR.cjs';
35
35
  import '@radix-ui/themes/components/dropdown-menu';
@@ -5,9 +5,9 @@ import { AuditLogStreamType } from '../api/endpoint.cjs';
5
5
  import './elements.cjs';
6
6
  import '@radix-ui/themes';
7
7
  import '@radix-ui/themes/props';
8
- import '../dialog-C15qCLN3.cjs';
8
+ import '../dialog-CGXwsXVe.cjs';
9
9
  import '@radix-ui/themes/components/dialog';
10
- import '../alert-dialog-BlG3_awx.cjs';
10
+ import '../alert-dialog-BMbVcJfZ.cjs';
11
11
  import '@radix-ui/themes/components/alert-dialog';
12
12
  import '../dropdown-menu-BQ5LtvdR.cjs';
13
13
  import '@radix-ui/themes/components/dropdown-menu';
@@ -7,9 +7,9 @@ import '../api/widgets-api-client.cjs';
7
7
  import './elements.cjs';
8
8
  import '@radix-ui/themes';
9
9
  import '@radix-ui/themes/props';
10
- import '../dialog-C15qCLN3.cjs';
10
+ import '../dialog-CGXwsXVe.cjs';
11
11
  import '@radix-ui/themes/components/dialog';
12
- import '../alert-dialog-BlG3_awx.cjs';
12
+ import '../alert-dialog-BMbVcJfZ.cjs';
13
13
  import '@radix-ui/themes/components/alert-dialog';
14
14
  import '../dropdown-menu-BQ5LtvdR.cjs';
15
15
  import '@radix-ui/themes/components/dropdown-menu';
@@ -8,9 +8,9 @@ import '../api/widgets-api-client.cjs';
8
8
  import './elements.cjs';
9
9
  import '@radix-ui/themes';
10
10
  import '@radix-ui/themes/props';
11
- import '../dialog-C15qCLN3.cjs';
11
+ import '../dialog-CGXwsXVe.cjs';
12
12
  import '@radix-ui/themes/components/dialog';
13
- import '../alert-dialog-BlG3_awx.cjs';
13
+ import '../alert-dialog-BMbVcJfZ.cjs';
14
14
  import '@radix-ui/themes/components/alert-dialog';
15
15
  import '../dropdown-menu-BQ5LtvdR.cjs';
16
16
  import '@radix-ui/themes/components/dropdown-menu';
@@ -4,9 +4,9 @@ import '../elements.cjs';
4
4
  import 'react';
5
5
  import '@radix-ui/themes';
6
6
  import '@radix-ui/themes/props';
7
- import '../../dialog-C15qCLN3.cjs';
7
+ import '../../dialog-CGXwsXVe.cjs';
8
8
  import '@radix-ui/themes/components/dialog';
9
- import '../../alert-dialog-BlG3_awx.cjs';
9
+ import '../../alert-dialog-BMbVcJfZ.cjs';
10
10
  import '@radix-ui/themes/components/alert-dialog';
11
11
  import '../../dropdown-menu-BQ5LtvdR.cjs';
12
12
  import '@radix-ui/themes/components/dropdown-menu';
@@ -196,7 +196,7 @@ function SaveApiKeyContent({ apiKey }) {
196
196
  description: "Dialog title prompting user to save their API key"
197
197
  }
198
198
  ) }),
199
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Dialog.Description, { size: "2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
199
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Dialog.Description, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
200
200
  import_translation.Translation,
201
201
  {
202
202
  defaultMessage: "Please save this API key in a secure location. If you lose it, you'll need to generate a new one.",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/api-keys/create-api-key.tsx"],"sourcesContent":["import {\n Box,\n Checkbox,\n Flex,\n ScrollArea,\n Text,\n Callout,\n} from \"@radix-ui/themes\";\nimport {\n Dialog,\n Label,\n Button,\n TextField,\n TextFieldSlot,\n} from \"../elements.js\";\nimport { Form } from \"radix-ui\";\nimport {\n ExclamationTriangleIcon,\n InfoCircledIcon,\n MagnifyingGlassIcon,\n} from \"@radix-ui/react-icons\";\nimport { CopyButton, CopyIconButton } from \"../copy-button.js\";\nimport * as React from \"react\";\nimport {\n useListOrganizationApiKeyPermissions,\n ListOrganizationApiKeyPermission,\n} from \"../../api/endpoint.js\";\nimport { useCreateApiKey } from \"../api/api-key.js\";\nimport { useApiKeysContext } from \"./api-keys-context.js\";\nimport { Translation } from \"../i18n/translation.js\";\nimport { useTranslation } from \"../i18n/use-translation.js\";\n\nexport function CreateApiKeyDialog() {\n const {\n state: { createDialogOpen, createdApiKey },\n dispatch,\n } = useApiKeysContext();\n\n return (\n <Dialog.Root\n open={createDialogOpen}\n onOpenChange={(open) => {\n if (!open) {\n dispatch({ type: \"CLOSE_CREATE_DIALOG\" });\n }\n }}\n >\n {createdApiKey ? (\n <SaveApiKeyContent apiKey={createdApiKey.value} />\n ) : (\n <CreateApiKeyForm\n // always remount the form when the dialog is opened to reset the validation errors\n key={`${createDialogOpen}`}\n />\n )}\n </Dialog.Root>\n );\n}\n\nfunction CreateApiKeyForm() {\n const { dispatch } = useApiKeysContext();\n const translate = useTranslation();\n const [errors, setErrors] = React.useState<{\n name: boolean;\n }>({ name: false });\n\n const validate = (formData: FormData) => {\n const name = formData.get(\"name\")?.toString() ?? \"\";\n const errors = { name: !name.trim().length };\n setErrors(errors);\n const isValid = Object.values(errors).every((error) => error === false);\n return isValid;\n };\n\n const {\n mutate: createOrganizationApiKey,\n error,\n isPending,\n isSuccess,\n } = useCreateApiKey();\n const permissions = useListOrganizationApiKeyPermissions({ limit: 100 });\n\n return (\n <Dialog.Content maxWidth=\"529px\">\n <Dialog.Title size=\"4\" weight={\"bold\"}>\n <Translation\n defaultMessage=\"Create API key\"\n id=\"eUFRNS\"\n description=\"Dialog title for creating a new API key\"\n />\n </Dialog.Title>\n <Form.Root\n onSubmit={(e) => {\n if (isPending) return;\n e.preventDefault();\n const data = new FormData(e.currentTarget);\n const isValid = validate(data);\n if (!isValid) {\n return;\n }\n\n createOrganizationApiKey(\n {\n data: {\n name: data.get(\"name\")?.toString() ?? \"\",\n permissions: data.getAll(\"permission\").map(String) || [],\n },\n },\n {\n onSuccess: (data) => {\n dispatch({ type: \"SET_CREATED_API_KEY\", apiKey: data });\n },\n },\n );\n }}\n >\n <Flex direction=\"column\" align=\"stretch\" gap=\"4\">\n {error && (\n <Callout.Root color=\"red\" role=\"alert\">\n <Callout.Icon>\n <ExclamationTriangleIcon />\n </Callout.Icon>\n <Callout.Text>\n <Translation\n defaultMessage=\"An error occurred while creating the API key.\"\n id=\"0LyBVd\"\n description=\"Error message when API key creation fails\"\n />\n </Callout.Text>\n </Callout.Root>\n )}\n <Form.Field name=\"name\" asChild>\n <Flex direction=\"column\" align=\"stretch\" gap=\"2\">\n <Form.Label asChild>\n <Label>\n <Translation\n defaultMessage=\"Name\"\n id=\"v0VmRy\"\n description=\"Label for API key name input field\"\n />\n </Label>\n </Form.Label>\n <Form.Control asChild>\n <TextField\n data-1p-ignore\n autoComplete=\"off\"\n placeholder={translate({\n defaultMessage: \"A descriptive name for the API key\",\n id: \"moyvr4\",\n description: \"Placeholder for API key name input\",\n })}\n />\n </Form.Control>\n {errors.name && (\n <Form.Message asChild>\n <Text size=\"2\" color=\"red\">\n <Translation\n defaultMessage=\"The name is required\"\n id=\"oF9d2V\"\n description=\"Validation error when API key name is empty\"\n />\n </Text>\n </Form.Message>\n )}\n </Flex>\n </Form.Field>\n {permissions.isSuccess && permissions.data.data.length > 0 && (\n <PermissionsField permissions={permissions.data.data} />\n )}\n </Flex>\n\n <Flex align=\"center\" gap=\"3\" justify=\"end\" mt=\"5\">\n <Dialog.Close>\n <Button variant=\"secondary\" disabled={isPending || isSuccess}>\n <Translation\n defaultMessage=\"Cancel\"\n id=\"AyVAAW\"\n description=\"Button to cancel API key creation\"\n />\n </Button>\n </Dialog.Close>\n <Button type=\"submit\" loading={isPending || isSuccess}>\n <Translation\n defaultMessage=\"Create API key\"\n id=\"d4BNWL\"\n description=\"Button to submit and create the API key\"\n />\n </Button>\n </Flex>\n </Form.Root>\n </Dialog.Content>\n );\n}\n\nfunction SaveApiKeyContent({ apiKey }: { apiKey: string }) {\n return (\n <Dialog.Content maxWidth=\"529px\">\n <Dialog.Title size=\"4\" weight={\"bold\"}>\n <Translation\n defaultMessage=\"Save your key\"\n id=\"wFFCij\"\n description=\"Dialog title prompting user to save their API key\"\n />\n </Dialog.Title>\n <Dialog.Description size=\"2\">\n <Translation\n defaultMessage=\"Please save this API key in a secure location. If you lose it, you'll need to generate a new one.\"\n id=\"sy+2x7\"\n description=\"Warning message about saving the API key\"\n />\n </Dialog.Description>\n <Callout.Root mt=\"5\" mb=\"4\">\n <Callout.Icon>\n <InfoCircledIcon />\n </Callout.Icon>\n <Callout.Text>\n <Translation\n defaultMessage=\"You won't be able to access the key again. Please copy it now.\"\n id=\"EFAK/K\"\n description=\"Callout warning that the key won't be accessible again\"\n />\n </Callout.Text>\n </Callout.Root>\n <TextField value={apiKey} readOnly>\n <TextFieldSlot side=\"right\">\n <CopyIconButton value={apiKey} />\n </TextFieldSlot>\n </TextField>\n <Flex align=\"center\" gap=\"3\" justify=\"end\" mt=\"5\">\n <Dialog.Close>\n <CopyButton value={apiKey}>\n <Translation\n defaultMessage=\"Copy and close\"\n id=\"ViYtvQ\"\n description=\"Button to copy API key and close dialog\"\n />\n </CopyButton>\n </Dialog.Close>\n </Flex>\n </Dialog.Content>\n );\n}\n\nfunction Permission({\n checked,\n permission,\n onChange,\n}: {\n checked: boolean;\n permission: ListOrganizationApiKeyPermission;\n onChange: (isChecked: boolean) => void;\n}) {\n return (\n <label\n htmlFor={permission.slug}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n padding: \"var(--space-2) var(--space-4)\",\n gap: \"var(--space-3)\",\n borderBottom: \"1px solid var(--gray-6)\",\n cursor: \"pointer\",\n }}\n >\n <Checkbox\n checked={checked}\n id={permission.slug}\n name=\"permission\"\n value={permission.slug}\n onCheckedChange={(e) => onChange(e === \"indeterminate\" ? false : e)}\n />\n <Flex direction=\"column\">\n <Text size=\"2\" weight=\"bold\">\n {permission.name}\n </Text>\n <Text size=\"2\" color=\"gray\">\n {permission.description}\n </Text>\n </Flex>\n </label>\n );\n}\n\nfunction PermissionsField({\n permissions = [],\n}: {\n permissions: ListOrganizationApiKeyPermission[];\n}) {\n const [selectedPermissions, setSelectedPermissions] = React.useState<\n ListOrganizationApiKeyPermission[]\n >([]);\n const [filter, setFilter] = React.useState(\"\");\n const fieldRef = React.useRef<HTMLDivElement | null>(null);\n const translate = useTranslation();\n const filteredPermissions = React.useMemo(() => {\n return permissions.filter((p) => {\n return (\n !filter.trim().length ||\n p.description?.toLowerCase().match(filter.toLowerCase()) ||\n p.name.toLowerCase().match(filter.toLowerCase()) ||\n p.slug.toLowerCase().match(filter.toLowerCase())\n );\n });\n }, [permissions, filter]);\n\n React.useEffect(() => {\n const onResize = () => {\n if (fieldRef.current && filteredPermissions.length !== 0) {\n fieldRef.current.style.minHeight = \"unset\";\n }\n };\n window.addEventListener(\"resize\", onResize);\n return () => {\n window.removeEventListener(\"resize\", onResize);\n };\n }, [filteredPermissions.length]);\n\n return (\n <Form.Field name=\"permissions\" asChild>\n <Flex direction=\"column\" align=\"stretch\" gap=\"1\">\n <Form.Label asChild>\n <Label>\n <Translation\n defaultMessage=\"Permissions\"\n id=\"6YN1wO\"\n description=\"Label for API key permissions field\"\n />\n </Label>\n </Form.Label>\n <Text size=\"2\" mb=\"2\" color=\"gray\">\n <Translation\n defaultMessage=\"Only enable the minimum permissions required for your use case.\"\n id=\"q2VEtG\"\n description=\"Help text for API key permissions selection\"\n />\n </Text>\n <Flex\n ref={fieldRef}\n style={{\n borderRadius: \"var(--radius-3)\",\n borderColor: \"var(--gray-6)\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n }}\n direction=\"column\"\n align=\"stretch\"\n >\n <TextField\n name=\"search\"\n value={filter}\n size=\"2\"\n onChange={(e) => {\n if (fieldRef.current) {\n fieldRef.current.style.minHeight =\n fieldRef.current.clientHeight + 2 + \"px\";\n }\n setFilter(e.target.value);\n }}\n style={{\n height: \"40px\",\n borderRadius: \"var(--radius-3) var(--radius-3) 0 0\",\n boxShadow: \"none\",\n }}\n placeholder={translate({\n defaultMessage: \"Search\",\n id: \"iyNcly\",\n description: \"Placeholder for permissions search input\",\n })}\n >\n <TextFieldSlot side=\"left\" px=\"3\">\n <MagnifyingGlassIcon aria-hidden=\"true\" height=\"16\" width=\"16\" />\n </TextFieldSlot>\n </TextField>\n {filteredPermissions.length > 0 ? (\n <>\n <ScrollArea\n scrollbars=\"vertical\"\n style={{\n flex: 1,\n maxHeight: \"calc(50vh - 150px)\",\n border: \"1px solid var(--gray-6)\",\n borderWidth: \"1px 0 0\",\n }}\n >\n {filteredPermissions.map((permission) => (\n <Permission\n checked={selectedPermissions.some(\n (sp) => sp.slug === permission.slug,\n )}\n key={permission.slug}\n permission={permission}\n onChange={(isChecked) =>\n setSelectedPermissions((prev) =>\n isChecked\n ? [...prev, permission]\n : prev.filter((sp) => sp.slug !== permission.slug),\n )\n }\n />\n ))}\n </ScrollArea>\n <Box\n px=\"4\"\n py=\"3\"\n mt={\"-1px\"}\n flexGrow=\"0\"\n style={{\n borderTop: \"0 solid var(--gray-6)\",\n borderWidth: \"1px 0 0\",\n }}\n >\n <SelectedPermissions\n total={permissions.length}\n selected={selectedPermissions.length}\n onToggle={() =>\n setSelectedPermissions((prev) =>\n prev.length === permissions.length ? [] : permissions,\n )\n }\n />\n </Box>\n </>\n ) : (\n <Flex\n gap=\"4\"\n pt=\"6\"\n pb=\"6\"\n style={{ borderTop: \"1px solid var(--gray-6)\" }}\n flexGrow=\"1\"\n justify=\"center\"\n align=\"center\"\n direction=\"column\"\n >\n <MagnifyingGlassIcon\n style={{\n color: \"var(--gray-9)\",\n width: \"var(--space-5)\",\n height: \"var(--space-5)\",\n }}\n />\n <Text size=\"2\" align=\"center\" mb=\"2\" wrap=\"balance\" weight=\"bold\">\n <Translation\n defaultMessage=\"No permissions match your search\"\n id=\"xjqT9f\"\n description=\"Empty state message when no permissions match search\"\n />\n </Text>\n <Button\n variant=\"secondary\"\n size=\"1\"\n onClick={() => setFilter(\"\")}\n >\n <Translation\n defaultMessage=\"Clear search\"\n id=\"YrMs63\"\n description=\"Button to clear permissions search\"\n />\n </Button>\n </Flex>\n )}\n </Flex>\n </Flex>\n </Form.Field>\n );\n}\n\nfunction SelectedPermissions({\n total,\n selected,\n onToggle,\n}: {\n total: number;\n selected: number;\n onToggle: () => void;\n}) {\n return (\n <Flex align=\"center\" gap=\"2\">\n <Text size=\"1\" style={{ lineHeight: 1, color: \"var(--gray-11)\" }}>\n {selected === 0 ? (\n <Translation\n defaultMessage=\"No permissions selected\"\n id=\"FqU9hv\"\n description=\"Message when no permissions are selected\"\n />\n ) : selected === 1 ? (\n <Translation\n defaultMessage=\"1 permission selected\"\n id=\"VouLgT\"\n description=\"Message showing count of selected permissions\"\n />\n ) : (\n <Translation\n defaultMessage=\"{count} permissions selected\"\n id=\"ZL90DI\"\n description=\"Message showing count of selected permissions\"\n values={{ count: selected }}\n />\n )}\n </Text>\n <Text\n size=\"1\"\n onClick={onToggle}\n style={{ cursor: \"pointer\", color: \"var(--accent-10)\" }}\n >\n {total === selected ? (\n <Translation\n defaultMessage=\"Deselect all\"\n id=\"63f7SY\"\n description=\"Button to deselect all permissions\"\n />\n ) : (\n <Translation\n defaultMessage=\"Select all\"\n id=\"onTqlA\"\n description=\"Button to select all permissions\"\n />\n )}\n </Text>\n </Flex>\n );\n}\n\nexport function CreateApiKeyButton() {\n const { dispatch } = useApiKeysContext();\n return (\n <Button\n variant=\"secondary\"\n onClick={() => dispatch({ type: \"OPEN_CREATE_DIALOG\" })}\n >\n <Translation\n defaultMessage=\"Create API key\"\n id=\"vq5724\"\n description=\"Button to open create API key dialog\"\n />\n </Button>\n );\n}\n"],"mappings":"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","names":["errors","error","data"]}
1
+ {"version":3,"sources":["../../../../src/lib/api-keys/create-api-key.tsx"],"sourcesContent":["import {\n Box,\n Checkbox,\n Flex,\n ScrollArea,\n Text,\n Callout,\n} from \"@radix-ui/themes\";\nimport {\n Dialog,\n Label,\n Button,\n TextField,\n TextFieldSlot,\n} from \"../elements.js\";\nimport { Form } from \"radix-ui\";\nimport {\n ExclamationTriangleIcon,\n InfoCircledIcon,\n MagnifyingGlassIcon,\n} from \"@radix-ui/react-icons\";\nimport { CopyButton, CopyIconButton } from \"../copy-button.js\";\nimport * as React from \"react\";\nimport {\n useListOrganizationApiKeyPermissions,\n ListOrganizationApiKeyPermission,\n} from \"../../api/endpoint.js\";\nimport { useCreateApiKey } from \"../api/api-key.js\";\nimport { useApiKeysContext } from \"./api-keys-context.js\";\nimport { Translation } from \"../i18n/translation.js\";\nimport { useTranslation } from \"../i18n/use-translation.js\";\n\nexport function CreateApiKeyDialog() {\n const {\n state: { createDialogOpen, createdApiKey },\n dispatch,\n } = useApiKeysContext();\n\n return (\n <Dialog.Root\n open={createDialogOpen}\n onOpenChange={(open) => {\n if (!open) {\n dispatch({ type: \"CLOSE_CREATE_DIALOG\" });\n }\n }}\n >\n {createdApiKey ? (\n <SaveApiKeyContent apiKey={createdApiKey.value} />\n ) : (\n <CreateApiKeyForm\n // always remount the form when the dialog is opened to reset the validation errors\n key={`${createDialogOpen}`}\n />\n )}\n </Dialog.Root>\n );\n}\n\nfunction CreateApiKeyForm() {\n const { dispatch } = useApiKeysContext();\n const translate = useTranslation();\n const [errors, setErrors] = React.useState<{\n name: boolean;\n }>({ name: false });\n\n const validate = (formData: FormData) => {\n const name = formData.get(\"name\")?.toString() ?? \"\";\n const errors = { name: !name.trim().length };\n setErrors(errors);\n const isValid = Object.values(errors).every((error) => error === false);\n return isValid;\n };\n\n const {\n mutate: createOrganizationApiKey,\n error,\n isPending,\n isSuccess,\n } = useCreateApiKey();\n const permissions = useListOrganizationApiKeyPermissions({ limit: 100 });\n\n return (\n <Dialog.Content maxWidth=\"529px\">\n <Dialog.Title size=\"4\" weight={\"bold\"}>\n <Translation\n defaultMessage=\"Create API key\"\n id=\"eUFRNS\"\n description=\"Dialog title for creating a new API key\"\n />\n </Dialog.Title>\n <Form.Root\n onSubmit={(e) => {\n if (isPending) return;\n e.preventDefault();\n const data = new FormData(e.currentTarget);\n const isValid = validate(data);\n if (!isValid) {\n return;\n }\n\n createOrganizationApiKey(\n {\n data: {\n name: data.get(\"name\")?.toString() ?? \"\",\n permissions: data.getAll(\"permission\").map(String) || [],\n },\n },\n {\n onSuccess: (data) => {\n dispatch({ type: \"SET_CREATED_API_KEY\", apiKey: data });\n },\n },\n );\n }}\n >\n <Flex direction=\"column\" align=\"stretch\" gap=\"4\">\n {error && (\n <Callout.Root color=\"red\" role=\"alert\">\n <Callout.Icon>\n <ExclamationTriangleIcon />\n </Callout.Icon>\n <Callout.Text>\n <Translation\n defaultMessage=\"An error occurred while creating the API key.\"\n id=\"0LyBVd\"\n description=\"Error message when API key creation fails\"\n />\n </Callout.Text>\n </Callout.Root>\n )}\n <Form.Field name=\"name\" asChild>\n <Flex direction=\"column\" align=\"stretch\" gap=\"2\">\n <Form.Label asChild>\n <Label>\n <Translation\n defaultMessage=\"Name\"\n id=\"v0VmRy\"\n description=\"Label for API key name input field\"\n />\n </Label>\n </Form.Label>\n <Form.Control asChild>\n <TextField\n data-1p-ignore\n autoComplete=\"off\"\n placeholder={translate({\n defaultMessage: \"A descriptive name for the API key\",\n id: \"moyvr4\",\n description: \"Placeholder for API key name input\",\n })}\n />\n </Form.Control>\n {errors.name && (\n <Form.Message asChild>\n <Text size=\"2\" color=\"red\">\n <Translation\n defaultMessage=\"The name is required\"\n id=\"oF9d2V\"\n description=\"Validation error when API key name is empty\"\n />\n </Text>\n </Form.Message>\n )}\n </Flex>\n </Form.Field>\n {permissions.isSuccess && permissions.data.data.length > 0 && (\n <PermissionsField permissions={permissions.data.data} />\n )}\n </Flex>\n\n <Flex align=\"center\" gap=\"3\" justify=\"end\" mt=\"5\">\n <Dialog.Close>\n <Button variant=\"secondary\" disabled={isPending || isSuccess}>\n <Translation\n defaultMessage=\"Cancel\"\n id=\"AyVAAW\"\n description=\"Button to cancel API key creation\"\n />\n </Button>\n </Dialog.Close>\n <Button type=\"submit\" loading={isPending || isSuccess}>\n <Translation\n defaultMessage=\"Create API key\"\n id=\"d4BNWL\"\n description=\"Button to submit and create the API key\"\n />\n </Button>\n </Flex>\n </Form.Root>\n </Dialog.Content>\n );\n}\n\nfunction SaveApiKeyContent({ apiKey }: { apiKey: string }) {\n return (\n <Dialog.Content maxWidth=\"529px\">\n <Dialog.Title size=\"4\" weight={\"bold\"}>\n <Translation\n defaultMessage=\"Save your key\"\n id=\"wFFCij\"\n description=\"Dialog title prompting user to save their API key\"\n />\n </Dialog.Title>\n <Dialog.Description>\n <Translation\n defaultMessage=\"Please save this API key in a secure location. If you lose it, you'll need to generate a new one.\"\n id=\"sy+2x7\"\n description=\"Warning message about saving the API key\"\n />\n </Dialog.Description>\n <Callout.Root mt=\"5\" mb=\"4\">\n <Callout.Icon>\n <InfoCircledIcon />\n </Callout.Icon>\n <Callout.Text>\n <Translation\n defaultMessage=\"You won't be able to access the key again. Please copy it now.\"\n id=\"EFAK/K\"\n description=\"Callout warning that the key won't be accessible again\"\n />\n </Callout.Text>\n </Callout.Root>\n <TextField value={apiKey} readOnly>\n <TextFieldSlot side=\"right\">\n <CopyIconButton value={apiKey} />\n </TextFieldSlot>\n </TextField>\n <Flex align=\"center\" gap=\"3\" justify=\"end\" mt=\"5\">\n <Dialog.Close>\n <CopyButton value={apiKey}>\n <Translation\n defaultMessage=\"Copy and close\"\n id=\"ViYtvQ\"\n description=\"Button to copy API key and close dialog\"\n />\n </CopyButton>\n </Dialog.Close>\n </Flex>\n </Dialog.Content>\n );\n}\n\nfunction Permission({\n checked,\n permission,\n onChange,\n}: {\n checked: boolean;\n permission: ListOrganizationApiKeyPermission;\n onChange: (isChecked: boolean) => void;\n}) {\n return (\n <label\n htmlFor={permission.slug}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n padding: \"var(--space-2) var(--space-4)\",\n gap: \"var(--space-3)\",\n borderBottom: \"1px solid var(--gray-6)\",\n cursor: \"pointer\",\n }}\n >\n <Checkbox\n checked={checked}\n id={permission.slug}\n name=\"permission\"\n value={permission.slug}\n onCheckedChange={(e) => onChange(e === \"indeterminate\" ? false : e)}\n />\n <Flex direction=\"column\">\n <Text size=\"2\" weight=\"bold\">\n {permission.name}\n </Text>\n <Text size=\"2\" color=\"gray\">\n {permission.description}\n </Text>\n </Flex>\n </label>\n );\n}\n\nfunction PermissionsField({\n permissions = [],\n}: {\n permissions: ListOrganizationApiKeyPermission[];\n}) {\n const [selectedPermissions, setSelectedPermissions] = React.useState<\n ListOrganizationApiKeyPermission[]\n >([]);\n const [filter, setFilter] = React.useState(\"\");\n const fieldRef = React.useRef<HTMLDivElement | null>(null);\n const translate = useTranslation();\n const filteredPermissions = React.useMemo(() => {\n return permissions.filter((p) => {\n return (\n !filter.trim().length ||\n p.description?.toLowerCase().match(filter.toLowerCase()) ||\n p.name.toLowerCase().match(filter.toLowerCase()) ||\n p.slug.toLowerCase().match(filter.toLowerCase())\n );\n });\n }, [permissions, filter]);\n\n React.useEffect(() => {\n const onResize = () => {\n if (fieldRef.current && filteredPermissions.length !== 0) {\n fieldRef.current.style.minHeight = \"unset\";\n }\n };\n window.addEventListener(\"resize\", onResize);\n return () => {\n window.removeEventListener(\"resize\", onResize);\n };\n }, [filteredPermissions.length]);\n\n return (\n <Form.Field name=\"permissions\" asChild>\n <Flex direction=\"column\" align=\"stretch\" gap=\"1\">\n <Form.Label asChild>\n <Label>\n <Translation\n defaultMessage=\"Permissions\"\n id=\"6YN1wO\"\n description=\"Label for API key permissions field\"\n />\n </Label>\n </Form.Label>\n <Text size=\"2\" mb=\"2\" color=\"gray\">\n <Translation\n defaultMessage=\"Only enable the minimum permissions required for your use case.\"\n id=\"q2VEtG\"\n description=\"Help text for API key permissions selection\"\n />\n </Text>\n <Flex\n ref={fieldRef}\n style={{\n borderRadius: \"var(--radius-3)\",\n borderColor: \"var(--gray-6)\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n }}\n direction=\"column\"\n align=\"stretch\"\n >\n <TextField\n name=\"search\"\n value={filter}\n size=\"2\"\n onChange={(e) => {\n if (fieldRef.current) {\n fieldRef.current.style.minHeight =\n fieldRef.current.clientHeight + 2 + \"px\";\n }\n setFilter(e.target.value);\n }}\n style={{\n height: \"40px\",\n borderRadius: \"var(--radius-3) var(--radius-3) 0 0\",\n boxShadow: \"none\",\n }}\n placeholder={translate({\n defaultMessage: \"Search\",\n id: \"iyNcly\",\n description: \"Placeholder for permissions search input\",\n })}\n >\n <TextFieldSlot side=\"left\" px=\"3\">\n <MagnifyingGlassIcon aria-hidden=\"true\" height=\"16\" width=\"16\" />\n </TextFieldSlot>\n </TextField>\n {filteredPermissions.length > 0 ? (\n <>\n <ScrollArea\n scrollbars=\"vertical\"\n style={{\n flex: 1,\n maxHeight: \"calc(50vh - 150px)\",\n border: \"1px solid var(--gray-6)\",\n borderWidth: \"1px 0 0\",\n }}\n >\n {filteredPermissions.map((permission) => (\n <Permission\n checked={selectedPermissions.some(\n (sp) => sp.slug === permission.slug,\n )}\n key={permission.slug}\n permission={permission}\n onChange={(isChecked) =>\n setSelectedPermissions((prev) =>\n isChecked\n ? [...prev, permission]\n : prev.filter((sp) => sp.slug !== permission.slug),\n )\n }\n />\n ))}\n </ScrollArea>\n <Box\n px=\"4\"\n py=\"3\"\n mt={\"-1px\"}\n flexGrow=\"0\"\n style={{\n borderTop: \"0 solid var(--gray-6)\",\n borderWidth: \"1px 0 0\",\n }}\n >\n <SelectedPermissions\n total={permissions.length}\n selected={selectedPermissions.length}\n onToggle={() =>\n setSelectedPermissions((prev) =>\n prev.length === permissions.length ? [] : permissions,\n )\n }\n />\n </Box>\n </>\n ) : (\n <Flex\n gap=\"4\"\n pt=\"6\"\n pb=\"6\"\n style={{ borderTop: \"1px solid var(--gray-6)\" }}\n flexGrow=\"1\"\n justify=\"center\"\n align=\"center\"\n direction=\"column\"\n >\n <MagnifyingGlassIcon\n style={{\n color: \"var(--gray-9)\",\n width: \"var(--space-5)\",\n height: \"var(--space-5)\",\n }}\n />\n <Text size=\"2\" align=\"center\" mb=\"2\" wrap=\"balance\" weight=\"bold\">\n <Translation\n defaultMessage=\"No permissions match your search\"\n id=\"xjqT9f\"\n description=\"Empty state message when no permissions match search\"\n />\n </Text>\n <Button\n variant=\"secondary\"\n size=\"1\"\n onClick={() => setFilter(\"\")}\n >\n <Translation\n defaultMessage=\"Clear search\"\n id=\"YrMs63\"\n description=\"Button to clear permissions search\"\n />\n </Button>\n </Flex>\n )}\n </Flex>\n </Flex>\n </Form.Field>\n );\n}\n\nfunction SelectedPermissions({\n total,\n selected,\n onToggle,\n}: {\n total: number;\n selected: number;\n onToggle: () => void;\n}) {\n return (\n <Flex align=\"center\" gap=\"2\">\n <Text size=\"1\" style={{ lineHeight: 1, color: \"var(--gray-11)\" }}>\n {selected === 0 ? (\n <Translation\n defaultMessage=\"No permissions selected\"\n id=\"FqU9hv\"\n description=\"Message when no permissions are selected\"\n />\n ) : selected === 1 ? (\n <Translation\n defaultMessage=\"1 permission selected\"\n id=\"VouLgT\"\n description=\"Message showing count of selected permissions\"\n />\n ) : (\n <Translation\n defaultMessage=\"{count} permissions selected\"\n id=\"ZL90DI\"\n description=\"Message showing count of selected permissions\"\n values={{ count: selected }}\n />\n )}\n </Text>\n <Text\n size=\"1\"\n onClick={onToggle}\n style={{ cursor: \"pointer\", color: \"var(--accent-10)\" }}\n >\n {total === selected ? (\n <Translation\n defaultMessage=\"Deselect all\"\n id=\"63f7SY\"\n description=\"Button to deselect all permissions\"\n />\n ) : (\n <Translation\n defaultMessage=\"Select all\"\n id=\"onTqlA\"\n description=\"Button to select all permissions\"\n />\n )}\n </Text>\n </Flex>\n );\n}\n\nexport function CreateApiKeyButton() {\n const { dispatch } = useApiKeysContext();\n return (\n <Button\n variant=\"secondary\"\n onClick={() => dispatch({ type: \"OPEN_CREATE_DIALOG\" })}\n >\n <Translation\n defaultMessage=\"Create API key\"\n id=\"vq5724\"\n description=\"Button to open create API key dialog\"\n />\n </Button>\n );\n}\n"],"mappings":"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","names":["errors","error","data"]}
@@ -61,7 +61,7 @@ function RevokeApiKeyDialog({
61
61
  }
62
62
  ) }),
63
63
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Flex, { direction: "column", gap: "5", children: [
64
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.AlertDialog.Description, { size: "2", children: [
64
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.AlertDialog.Description, { children: [
65
65
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
66
66
  import_translation.Translation,
67
67
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/api-keys/revoke-api-key-dialog.tsx"],"sourcesContent":["import { Flex, Callout } from \"@radix-ui/themes\";\nimport { ApiKeyDetailsCard } from \"./api-key-details-card.js\";\nimport {\n getListOrganizationApiKeysQueryKey,\n ListOrganizationApiKeysResponseData,\n} from \"../../api/endpoint.js\";\nimport { useDeleteOrganizationApiKey } from \"../../api/endpoint.js\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { ExclamationTriangleIcon } from \"@radix-ui/react-icons\";\nimport { AlertDialog, Button } from \"../elements.js\";\nimport { Translation } from \"../i18n/translation.js\";\n\nexport function RevokeApiKeyDialog({\n apiKey,\n open,\n onOpenChange,\n}: {\n apiKey: ListOrganizationApiKeysResponseData;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}) {\n const queryClient = useQueryClient();\n const {\n mutate: deleteOrganizationApiKey,\n isPending,\n error,\n isSuccess,\n } = useDeleteOrganizationApiKey({\n mutation: {\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: getListOrganizationApiKeysQueryKey(),\n });\n onOpenChange(false);\n },\n },\n });\n\n return (\n <AlertDialog.Root open={open} onOpenChange={onOpenChange}>\n <AlertDialog.Content maxWidth=\"529px\">\n <AlertDialog.Title mb=\"2\">\n <Translation\n defaultMessage=\"Revoke API key?\"\n id=\"e18ZsK\"\n description=\"Dialog title for confirming API key revocation\"\n />\n </AlertDialog.Title>\n <Flex direction=\"column\" gap=\"5\">\n <AlertDialog.Description size=\"2\">\n <Translation\n defaultMessage=\"This API key will be immediately disabled. API request made using this key will be rejected, which could cause any systems still depending on it to break.\"\n id=\"GLPUiU\"\n description=\"Warning about revoking API key\"\n />\n <strong>\n <Translation\n defaultMessage=\"This action cannot be undone.\"\n id=\"PTbRJT\"\n description=\"Warning that API key revocation is permanent\"\n />\n </strong>\n </AlertDialog.Description>\n {error && (\n <Callout.Root color=\"red\" role=\"alert\">\n <Callout.Icon>\n <ExclamationTriangleIcon />\n </Callout.Icon>\n <Callout.Text>\n <Translation\n defaultMessage=\"An error occurred while revoking the API key.\"\n id=\"edrdLd\"\n description=\"Error message when API key revocation fails\"\n />\n </Callout.Text>\n </Callout.Root>\n )}\n <ApiKeyDetailsCard apiKey={apiKey} />\n <Flex justify=\"end\" gap=\"2\">\n <AlertDialog.Cancel>\n <Button variant=\"secondary\">\n <Translation\n defaultMessage=\"Cancel\"\n id=\"EKf0ES\"\n description=\"Button to cancel API key revocation\"\n />\n </Button>\n </AlertDialog.Cancel>\n <Button\n variant=\"destructive\"\n disabled={isPending || isSuccess}\n loading={isPending || isSuccess}\n onClick={() => deleteOrganizationApiKey({ apiKeyId: apiKey.id })}\n >\n <Translation\n defaultMessage=\"Revoke key\"\n id=\"KSosDD\"\n description=\"Button to confirm API key revocation\"\n />\n </Button>\n </Flex>\n </Flex>\n </AlertDialog.Content>\n </AlertDialog.Root>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA0CU;AA1CV,oBAA8B;AAC9B,kCAAkC;AAClC,sBAGO;AACP,IAAAA,mBAA4C;AAC5C,yBAA+B;AAC/B,yBAAwC;AACxC,sBAAoC;AACpC,yBAA4B;AAErB,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,kBAAc,mCAAe;AACnC,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,8CAA4B;AAAA,IAC9B,UAAU;AAAA,MACR,WAAW,MAAM;AACf,oBAAY,kBAAkB;AAAA,UAC5B,cAAU,oDAAmC;AAAA,QAC/C,CAAC;AACD,qBAAa,KAAK;AAAA,MACpB;AAAA,IACF;AAAA,EACF,CAAC;AAED,SACE,4CAAC,4BAAY,MAAZ,EAAiB,MAAY,cAC5B,uDAAC,4BAAY,SAAZ,EAAoB,UAAS,SAC5B;AAAA,gDAAC,4BAAY,OAAZ,EAAkB,IAAG,KACpB;AAAA,MAAC;AAAA;AAAA,QACC,gBAAe;AAAA,QACf,IAAG;AAAA,QACH,aAAY;AAAA;AAAA,IACd,GACF;AAAA,IACA,6CAAC,sBAAK,WAAU,UAAS,KAAI,KAC3B;AAAA,mDAAC,4BAAY,aAAZ,EAAwB,MAAK,KAC5B;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd;AAAA,QACA,4CAAC,YACC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF;AAAA,SACF;AAAA,MACC,SACC,6CAAC,sBAAQ,MAAR,EAAa,OAAM,OAAM,MAAK,SAC7B;AAAA,oDAAC,sBAAQ,MAAR,EACC,sDAAC,8CAAwB,GAC3B;AAAA,QACA,4CAAC,sBAAQ,MAAR,EACC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF;AAAA,SACF;AAAA,MAEF,4CAAC,iDAAkB,QAAgB;AAAA,MACnC,6CAAC,sBAAK,SAAQ,OAAM,KAAI,KACtB;AAAA,oDAAC,4BAAY,QAAZ,EACC,sDAAC,0BAAO,SAAQ,aACd;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF,GACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,UAAU,aAAa;AAAA,YACvB,SAAS,aAAa;AAAA,YACtB,SAAS,MAAM,yBAAyB,EAAE,UAAU,OAAO,GAAG,CAAC;AAAA,YAE/D;AAAA,cAAC;AAAA;AAAA,gBACC,gBAAe;AAAA,gBACf,IAAG;AAAA,gBACH,aAAY;AAAA;AAAA,YACd;AAAA;AAAA,QACF;AAAA,SACF;AAAA,OACF;AAAA,KACF,GACF;AAEJ;","names":["import_endpoint"]}
1
+ {"version":3,"sources":["../../../../src/lib/api-keys/revoke-api-key-dialog.tsx"],"sourcesContent":["import { Flex, Callout } from \"@radix-ui/themes\";\nimport { ApiKeyDetailsCard } from \"./api-key-details-card.js\";\nimport {\n getListOrganizationApiKeysQueryKey,\n ListOrganizationApiKeysResponseData,\n} from \"../../api/endpoint.js\";\nimport { useDeleteOrganizationApiKey } from \"../../api/endpoint.js\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { ExclamationTriangleIcon } from \"@radix-ui/react-icons\";\nimport { AlertDialog, Button } from \"../elements.js\";\nimport { Translation } from \"../i18n/translation.js\";\n\nexport function RevokeApiKeyDialog({\n apiKey,\n open,\n onOpenChange,\n}: {\n apiKey: ListOrganizationApiKeysResponseData;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}) {\n const queryClient = useQueryClient();\n const {\n mutate: deleteOrganizationApiKey,\n isPending,\n error,\n isSuccess,\n } = useDeleteOrganizationApiKey({\n mutation: {\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: getListOrganizationApiKeysQueryKey(),\n });\n onOpenChange(false);\n },\n },\n });\n\n return (\n <AlertDialog.Root open={open} onOpenChange={onOpenChange}>\n <AlertDialog.Content maxWidth=\"529px\">\n <AlertDialog.Title mb=\"2\">\n <Translation\n defaultMessage=\"Revoke API key?\"\n id=\"e18ZsK\"\n description=\"Dialog title for confirming API key revocation\"\n />\n </AlertDialog.Title>\n <Flex direction=\"column\" gap=\"5\">\n <AlertDialog.Description>\n <Translation\n defaultMessage=\"This API key will be immediately disabled. API request made using this key will be rejected, which could cause any systems still depending on it to break.\"\n id=\"GLPUiU\"\n description=\"Warning about revoking API key\"\n />\n <strong>\n <Translation\n defaultMessage=\"This action cannot be undone.\"\n id=\"PTbRJT\"\n description=\"Warning that API key revocation is permanent\"\n />\n </strong>\n </AlertDialog.Description>\n {error && (\n <Callout.Root color=\"red\" role=\"alert\">\n <Callout.Icon>\n <ExclamationTriangleIcon />\n </Callout.Icon>\n <Callout.Text>\n <Translation\n defaultMessage=\"An error occurred while revoking the API key.\"\n id=\"edrdLd\"\n description=\"Error message when API key revocation fails\"\n />\n </Callout.Text>\n </Callout.Root>\n )}\n <ApiKeyDetailsCard apiKey={apiKey} />\n <Flex justify=\"end\" gap=\"2\">\n <AlertDialog.Cancel>\n <Button variant=\"secondary\">\n <Translation\n defaultMessage=\"Cancel\"\n id=\"EKf0ES\"\n description=\"Button to cancel API key revocation\"\n />\n </Button>\n </AlertDialog.Cancel>\n <Button\n variant=\"destructive\"\n disabled={isPending || isSuccess}\n loading={isPending || isSuccess}\n onClick={() => deleteOrganizationApiKey({ apiKeyId: apiKey.id })}\n >\n <Translation\n defaultMessage=\"Revoke key\"\n id=\"KSosDD\"\n description=\"Button to confirm API key revocation\"\n />\n </Button>\n </Flex>\n </Flex>\n </AlertDialog.Content>\n </AlertDialog.Root>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA0CU;AA1CV,oBAA8B;AAC9B,kCAAkC;AAClC,sBAGO;AACP,IAAAA,mBAA4C;AAC5C,yBAA+B;AAC/B,yBAAwC;AACxC,sBAAoC;AACpC,yBAA4B;AAErB,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,kBAAc,mCAAe;AACnC,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,8CAA4B;AAAA,IAC9B,UAAU;AAAA,MACR,WAAW,MAAM;AACf,oBAAY,kBAAkB;AAAA,UAC5B,cAAU,oDAAmC;AAAA,QAC/C,CAAC;AACD,qBAAa,KAAK;AAAA,MACpB;AAAA,IACF;AAAA,EACF,CAAC;AAED,SACE,4CAAC,4BAAY,MAAZ,EAAiB,MAAY,cAC5B,uDAAC,4BAAY,SAAZ,EAAoB,UAAS,SAC5B;AAAA,gDAAC,4BAAY,OAAZ,EAAkB,IAAG,KACpB;AAAA,MAAC;AAAA;AAAA,QACC,gBAAe;AAAA,QACf,IAAG;AAAA,QACH,aAAY;AAAA;AAAA,IACd,GACF;AAAA,IACA,6CAAC,sBAAK,WAAU,UAAS,KAAI,KAC3B;AAAA,mDAAC,4BAAY,aAAZ,EACC;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd;AAAA,QACA,4CAAC,YACC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF;AAAA,SACF;AAAA,MACC,SACC,6CAAC,sBAAQ,MAAR,EAAa,OAAM,OAAM,MAAK,SAC7B;AAAA,oDAAC,sBAAQ,MAAR,EACC,sDAAC,8CAAwB,GAC3B;AAAA,QACA,4CAAC,sBAAQ,MAAR,EACC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF;AAAA,SACF;AAAA,MAEF,4CAAC,iDAAkB,QAAgB;AAAA,MACnC,6CAAC,sBAAK,SAAQ,OAAM,KAAI,KACtB;AAAA,oDAAC,4BAAY,QAAZ,EACC,sDAAC,0BAAO,SAAQ,aACd;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF,GACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,UAAU,aAAa;AAAA,YACvB,SAAS,aAAa;AAAA,YACtB,SAAS,MAAM,yBAAyB,EAAE,UAAU,OAAO,GAAG,CAAC;AAAA,YAE/D;AAAA,cAAC;AAAA;AAAA,gBACC,gBAAe;AAAA,gBACf,IAAG;AAAA,gBACH,aAAY;AAAA;AAAA,YACd;AAAA;AAAA,QACF;AAAA,SACF;AAAA,OACF;AAAA,KACF,GACF;AAEJ;","names":["import_endpoint"]}
@@ -2,9 +2,9 @@ import * as React from 'react';
2
2
  import { Button, IconButton } from './elements.cjs';
3
3
  import '@radix-ui/themes';
4
4
  import '@radix-ui/themes/props';
5
- import '../dialog-C15qCLN3.cjs';
5
+ import '../dialog-CGXwsXVe.cjs';
6
6
  import '@radix-ui/themes/components/dialog';
7
- import '../alert-dialog-BlG3_awx.cjs';
7
+ import '../alert-dialog-BMbVcJfZ.cjs';
8
8
  import '@radix-ui/themes/components/alert-dialog';
9
9
  import '../dropdown-menu-BQ5LtvdR.cjs';
10
10
  import '@radix-ui/themes/components/dropdown-menu';
@@ -31,7 +31,7 @@ const DeleteDomainDialog = (props) => {
31
31
  switch (props.domain.state) {
32
32
  case "Verified":
33
33
  case "LegacyVerified":
34
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { size: "2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
34
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
35
35
  import_translation.Translation,
36
36
  {
37
37
  defaultMessage: "Users with the email domain {domain} will no longer be considered verified. This action is immediate and cannot be undone.",
@@ -39,9 +39,9 @@ const DeleteDomainDialog = (props) => {
39
39
  description: "Warning message for removing a verified domain",
40
40
  values: { domain: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("b", { children: props.domain.domain }) }
41
41
  }
42
- ) }) });
42
+ );
43
43
  case "Failed":
44
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
44
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
45
45
  import_translation.Translation,
46
46
  {
47
47
  defaultMessage: "Are you sure you want to remove the domain {domain}? This action is immediate and cannot be undone.",
@@ -49,9 +49,9 @@ const DeleteDomainDialog = (props) => {
49
49
  description: "Warning message for removing a failed domain",
50
50
  values: { domain: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("b", { children: props.domain.domain }) }
51
51
  }
52
- ) }) });
52
+ );
53
53
  default:
54
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
55
55
  import_translation.Translation,
56
56
  {
57
57
  defaultMessage: "Removing {domain} will cancel the DNS record verification process. This action is immediate and cannot be undone.",
@@ -59,7 +59,7 @@ const DeleteDomainDialog = (props) => {
59
59
  description: "Warning message for removing a domain in verification",
60
60
  values: { domain: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("b", { children: props.domain.domain }) }
61
61
  }
62
- ) }) });
62
+ );
63
63
  }
64
64
  })();
65
65
  const handleDeleteDomain = () => {
@@ -77,7 +77,7 @@ const DeleteDomainDialog = (props) => {
77
77
  description: "Dialog title for removing a domain"
78
78
  }
79
79
  ) }),
80
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Description, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { size: "2", highContrast: true, children: message }) }),
80
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Description, { children: message }),
81
81
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Flex, { justify: "end", gap: "2", mt: "5", children: [
82
82
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Button, { variant: "secondary", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
83
83
  import_translation.Translation,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/delete-domain-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Flex, Text } from \"@radix-ui/themes\";\nimport { OrganizationDomain } from \"../api/endpoint.js\";\nimport { AlertDialog, Button } from \"./elements.js\";\nimport { Translation } from \"./i18n/translation.js\";\n\ninterface DeleteDomainDialogProps {\n children?: React.ReactNode;\n domain: OrganizationDomain;\n onDeleteDomain: (domainId: string) => void;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nexport const DeleteDomainDialog = (props: DeleteDomainDialogProps) => {\n const message = (() => {\n switch (props.domain.state) {\n case \"Verified\":\n case \"LegacyVerified\":\n return (\n <>\n <Text size=\"2\">\n <Translation\n defaultMessage=\"Users with the email domain {domain} will no longer be considered verified. This action is immediate and cannot be undone.\"\n id=\"HPEjJe\"\n description=\"Warning message for removing a verified domain\"\n values={{ domain: <b>{props.domain.domain}</b> }}\n />\n </Text>\n </>\n );\n case \"Failed\":\n return (\n <>\n <Text>\n <Translation\n defaultMessage=\"Are you sure you want to remove the domain {domain}? This action is immediate and cannot be undone.\"\n id=\"ig3G/s\"\n description=\"Warning message for removing a failed domain\"\n values={{ domain: <b>{props.domain.domain}</b> }}\n />\n </Text>\n </>\n );\n default:\n return (\n <>\n <Text>\n <Translation\n defaultMessage=\"Removing {domain} will cancel the DNS record verification process. This action is immediate and cannot be undone.\"\n id=\"zx2oPb\"\n description=\"Warning message for removing a domain in verification\"\n values={{ domain: <b>{props.domain.domain}</b> }}\n />\n </Text>\n </>\n );\n }\n })();\n\n const handleDeleteDomain = () => {\n props.onDeleteDomain(props.domain.id);\n props.onOpenChange(false);\n };\n\n return (\n <AlertDialog.Root open={props.open} onOpenChange={props.onOpenChange}>\n {props.children && (\n <AlertDialog.Trigger>{props.children}</AlertDialog.Trigger>\n )}\n\n <AlertDialog.Content style={{ maxWidth: \"488px\" }}>\n <AlertDialog.Title mb=\"2\">\n <Translation\n defaultMessage=\"Remove domain\"\n id=\"0stiTP\"\n description=\"Dialog title for removing a domain\"\n />\n </AlertDialog.Title>\n <AlertDialog.Description>\n <Text size=\"2\" highContrast>\n {message}\n </Text>\n </AlertDialog.Description>\n <Flex justify=\"end\" gap=\"2\" mt=\"5\">\n <AlertDialog.Cancel>\n <Button variant=\"secondary\">\n <Translation\n defaultMessage=\"Cancel\"\n id=\"hHNj31\"\n description=\"Cancel button text\"\n />\n </Button>\n </AlertDialog.Cancel>\n <Button variant=\"destructive\" onClick={handleDeleteDomain}>\n <Translation\n defaultMessage=\"Remove domain\"\n id=\"OkjVyP\"\n description=\"Confirm button text to remove domain\"\n />\n </Button>\n </Flex>\n </AlertDialog.Content>\n </AlertDialog.Root>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBU;AAnBV,oBAA2B;AAE3B,sBAAoC;AACpC,yBAA4B;AAUrB,MAAM,qBAAqB,CAAC,UAAmC;AACpE,QAAM,WAAW,MAAM;AACrB,YAAQ,MAAM,OAAO,OAAO;AAAA,MAC1B,KAAK;AAAA,MACL,KAAK;AACH,eACE,2EACE,sDAAC,sBAAK,MAAK,KACT;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,QAAQ,EAAE,QAAQ,4CAAC,OAAG,gBAAM,OAAO,QAAO,EAAK;AAAA;AAAA,QACjD,GACF,GACF;AAAA,MAEJ,KAAK;AACH,eACE,2EACE,sDAAC,sBACC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,QAAQ,EAAE,QAAQ,4CAAC,OAAG,gBAAM,OAAO,QAAO,EAAK;AAAA;AAAA,QACjD,GACF,GACF;AAAA,MAEJ;AACE,eACE,2EACE,sDAAC,sBACC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,QAAQ,EAAE,QAAQ,4CAAC,OAAG,gBAAM,OAAO,QAAO,EAAK;AAAA;AAAA,QACjD,GACF,GACF;AAAA,IAEN;AAAA,EACF,GAAG;AAEH,QAAM,qBAAqB,MAAM;AAC/B,UAAM,eAAe,MAAM,OAAO,EAAE;AACpC,UAAM,aAAa,KAAK;AAAA,EAC1B;AAEA,SACE,6CAAC,4BAAY,MAAZ,EAAiB,MAAM,MAAM,MAAM,cAAc,MAAM,cACrD;AAAA,UAAM,YACL,4CAAC,4BAAY,SAAZ,EAAqB,gBAAM,UAAS;AAAA,IAGvC,6CAAC,4BAAY,SAAZ,EAAoB,OAAO,EAAE,UAAU,QAAQ,GAC9C;AAAA,kDAAC,4BAAY,OAAZ,EAAkB,IAAG,KACpB;AAAA,QAAC;AAAA;AAAA,UACC,gBAAe;AAAA,UACf,IAAG;AAAA,UACH,aAAY;AAAA;AAAA,MACd,GACF;AAAA,MACA,4CAAC,4BAAY,aAAZ,EACC,sDAAC,sBAAK,MAAK,KAAI,cAAY,MACxB,mBACH,GACF;AAAA,MACA,6CAAC,sBAAK,SAAQ,OAAM,KAAI,KAAI,IAAG,KAC7B;AAAA,oDAAC,4BAAY,QAAZ,EACC,sDAAC,0BAAO,SAAQ,aACd;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF,GACF;AAAA,QACA,4CAAC,0BAAO,SAAQ,eAAc,SAAS,oBACrC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/delete-domain-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Flex } from \"@radix-ui/themes\";\nimport { OrganizationDomain } from \"../api/endpoint.js\";\nimport { AlertDialog, Button } from \"./elements.js\";\nimport { Translation } from \"./i18n/translation.js\";\n\ninterface DeleteDomainDialogProps {\n children?: React.ReactNode;\n domain: OrganizationDomain;\n onDeleteDomain: (domainId: string) => void;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nexport const DeleteDomainDialog = (props: DeleteDomainDialogProps) => {\n const message = (() => {\n switch (props.domain.state) {\n case \"Verified\":\n case \"LegacyVerified\":\n return (\n <Translation\n defaultMessage=\"Users with the email domain {domain} will no longer be considered verified. This action is immediate and cannot be undone.\"\n id=\"HPEjJe\"\n description=\"Warning message for removing a verified domain\"\n values={{ domain: <b>{props.domain.domain}</b> }}\n />\n );\n case \"Failed\":\n return (\n <Translation\n defaultMessage=\"Are you sure you want to remove the domain {domain}? This action is immediate and cannot be undone.\"\n id=\"ig3G/s\"\n description=\"Warning message for removing a failed domain\"\n values={{ domain: <b>{props.domain.domain}</b> }}\n />\n );\n default:\n return (\n <Translation\n defaultMessage=\"Removing {domain} will cancel the DNS record verification process. This action is immediate and cannot be undone.\"\n id=\"zx2oPb\"\n description=\"Warning message for removing a domain in verification\"\n values={{ domain: <b>{props.domain.domain}</b> }}\n />\n );\n }\n })();\n\n const handleDeleteDomain = () => {\n props.onDeleteDomain(props.domain.id);\n props.onOpenChange(false);\n };\n\n return (\n <AlertDialog.Root open={props.open} onOpenChange={props.onOpenChange}>\n {props.children && (\n <AlertDialog.Trigger>{props.children}</AlertDialog.Trigger>\n )}\n\n <AlertDialog.Content style={{ maxWidth: \"488px\" }}>\n <AlertDialog.Title mb=\"2\">\n <Translation\n defaultMessage=\"Remove domain\"\n id=\"0stiTP\"\n description=\"Dialog title for removing a domain\"\n />\n </AlertDialog.Title>\n <AlertDialog.Description>{message}</AlertDialog.Description>\n <Flex justify=\"end\" gap=\"2\" mt=\"5\">\n <AlertDialog.Cancel>\n <Button variant=\"secondary\">\n <Translation\n defaultMessage=\"Cancel\"\n id=\"hHNj31\"\n description=\"Cancel button text\"\n />\n </Button>\n </AlertDialog.Cancel>\n <Button variant=\"destructive\" onClick={handleDeleteDomain}>\n <Translation\n defaultMessage=\"Remove domain\"\n id=\"OkjVyP\"\n description=\"Confirm button text to remove domain\"\n />\n </Button>\n </Flex>\n </AlertDialog.Content>\n </AlertDialog.Root>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA0B8B;AAvB9B,oBAAqB;AAErB,sBAAoC;AACpC,yBAA4B;AAUrB,MAAM,qBAAqB,CAAC,UAAmC;AACpE,QAAM,WAAW,MAAM;AACrB,YAAQ,MAAM,OAAO,OAAO;AAAA,MAC1B,KAAK;AAAA,MACL,KAAK;AACH,eACE;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,QAAQ,EAAE,QAAQ,4CAAC,OAAG,gBAAM,OAAO,QAAO,EAAK;AAAA;AAAA,QACjD;AAAA,MAEJ,KAAK;AACH,eACE;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,QAAQ,EAAE,QAAQ,4CAAC,OAAG,gBAAM,OAAO,QAAO,EAAK;AAAA;AAAA,QACjD;AAAA,MAEJ;AACE,eACE;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,QAAQ,EAAE,QAAQ,4CAAC,OAAG,gBAAM,OAAO,QAAO,EAAK;AAAA;AAAA,QACjD;AAAA,IAEN;AAAA,EACF,GAAG;AAEH,QAAM,qBAAqB,MAAM;AAC/B,UAAM,eAAe,MAAM,OAAO,EAAE;AACpC,UAAM,aAAa,KAAK;AAAA,EAC1B;AAEA,SACE,6CAAC,4BAAY,MAAZ,EAAiB,MAAM,MAAM,MAAM,cAAc,MAAM,cACrD;AAAA,UAAM,YACL,4CAAC,4BAAY,SAAZ,EAAqB,gBAAM,UAAS;AAAA,IAGvC,6CAAC,4BAAY,SAAZ,EAAoB,OAAO,EAAE,UAAU,QAAQ,GAC9C;AAAA,kDAAC,4BAAY,OAAZ,EAAkB,IAAG,KACpB;AAAA,QAAC;AAAA;AAAA,UACC,gBAAe;AAAA,UACf,IAAG;AAAA,UACH,aAAY;AAAA;AAAA,MACd,GACF;AAAA,MACA,4CAAC,4BAAY,aAAZ,EAAyB,mBAAQ;AAAA,MAClC,6CAAC,sBAAK,SAAQ,OAAM,KAAI,KAAI,IAAG,KAC7B;AAAA,oDAAC,4BAAY,QAAZ,EACC,sDAAC,0BAAO,SAAQ,aACd;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF,GACF;AAAA,QACA,4CAAC,0BAAO,SAAQ,eAAc,SAAS,oBACrC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
@@ -4,9 +4,9 @@ import { DirectoryType, DirectoryMetadata, DirectoryState } from '../api/endpoin
4
4
  import './elements.cjs';
5
5
  import '@radix-ui/themes';
6
6
  import '@radix-ui/themes/props';
7
- import '../dialog-C15qCLN3.cjs';
7
+ import '../dialog-CGXwsXVe.cjs';
8
8
  import '@radix-ui/themes/components/dialog';
9
- import '../alert-dialog-BlG3_awx.cjs';
9
+ import '../alert-dialog-BMbVcJfZ.cjs';
10
10
  import '@radix-ui/themes/components/alert-dialog';
11
11
  import '../dropdown-menu-BQ5LtvdR.cjs';
12
12
  import '@radix-ui/themes/components/dropdown-menu';
@@ -32,7 +32,7 @@ __export(alert_dialog_exports, {
32
32
  Action: () => import_alert_dialog2.Action,
33
33
  Cancel: () => import_alert_dialog2.Cancel,
34
34
  Content: () => AlertDialogContent,
35
- Description: () => import_alert_dialog2.Description,
35
+ Description: () => AlertDialogDescription,
36
36
  Root: () => import_alert_dialog2.Root,
37
37
  Title: () => import_alert_dialog2.Title,
38
38
  Trigger: () => import_alert_dialog2.Trigger
@@ -63,6 +63,9 @@ const AlertDialogContent = React.forwardRef(
63
63
  );
64
64
  }
65
65
  );
66
+ const AlertDialogDescription = React.forwardRef(function AlertDialogDescription2({ size = "2", ...props }, forwardedRef) {
67
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_alert_dialog.Description, { ref: forwardedRef, size, ...props });
68
+ });
66
69
  // Annotate the CommonJS export names for ESM import in node:
67
70
  0 && (module.exports = {
68
71
  Action,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/elements/alert-dialog.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport {\n Content as RadixAlertDialogContent,\n type ContentProps as RadixAlertDialogContentProps,\n} from \"@radix-ui/themes/components/alert-dialog\";\nimport { useElement } from \"../widgets-context.js\";\nimport { getDomProps, namespaceClassNames } from \"../utils.js\";\nimport { useDialogOverlayHack } from \"./utils.js\";\n\ninterface ContentProps extends RadixAlertDialogContentProps {}\n\nconst AlertDialogContent = React.forwardRef<HTMLDivElement, ContentProps>(\n function AlertDialogContent({ className, ...props }, forwardedRef) {\n const element = useElement(\"dialog\");\n const { ref } = useDialogOverlayHack(forwardedRef, {\n className: namespaceClassNames(\"dialog-overlay\"),\n selector: \".rt-DialogOverlay\",\n });\n return (\n <RadixAlertDialogContent\n ref={ref}\n {...getDomProps({ elementId: \"dialog\", className })}\n {...props}\n {...element}\n />\n );\n },\n);\n\nexport { AlertDialogContent as Content };\nexport type { ContentProps };\n\nexport {\n Action,\n Cancel,\n Description,\n Root,\n Title,\n Trigger,\n} from \"@radix-ui/themes/components/alert-dialog\";\nexport type {\n ActionProps,\n CancelProps,\n DescriptionProps,\n RootProps,\n TitleProps,\n TriggerProps,\n} from \"@radix-ui/themes/components/alert-dialog\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBM;AAnBN,YAAuB;AACvB,0BAGO;AACP,6BAA2B;AAC3B,mBAAiD;AACjD,IAAAA,gBAAqC;AAyBrC,IAAAC,uBAOO;AA5BP,MAAM,qBAAqB,MAAM;AAAA,EAC/B,SAASC,oBAAmB,EAAE,WAAW,GAAG,MAAM,GAAG,cAAc;AACjE,UAAM,cAAU,mCAAW,QAAQ;AACnC,UAAM,EAAE,IAAI,QAAI,oCAAqB,cAAc;AAAA,MACjD,eAAW,kCAAoB,gBAAgB;AAAA,MAC/C,UAAU;AAAA,IACZ,CAAC;AACD,WACE;AAAA,MAAC,oBAAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACC,OAAG,0BAAY,EAAE,WAAW,UAAU,UAAU,CAAC;AAAA,QACjD,GAAG;AAAA,QACH,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;","names":["import_utils","import_alert_dialog","AlertDialogContent","RadixAlertDialogContent"]}
1
+ {"version":3,"sources":["../../../../src/lib/elements/alert-dialog.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport {\n Content as RadixAlertDialogContent,\n type ContentProps as RadixAlertDialogContentProps,\n Description as RadixAlertDialogDescription,\n type DescriptionProps as RadixAlertDialogDescriptionProps,\n} from \"@radix-ui/themes/components/alert-dialog\";\nimport { useElement } from \"../widgets-context.js\";\nimport { getDomProps, namespaceClassNames } from \"../utils.js\";\nimport { useDialogOverlayHack } from \"./utils.js\";\n\ninterface ContentProps extends RadixAlertDialogContentProps {}\n\nconst AlertDialogContent = React.forwardRef<HTMLDivElement, ContentProps>(\n function AlertDialogContent({ className, ...props }, forwardedRef) {\n const element = useElement(\"dialog\");\n const { ref } = useDialogOverlayHack(forwardedRef, {\n className: namespaceClassNames(\"dialog-overlay\"),\n selector: \".rt-DialogOverlay\",\n });\n return (\n <RadixAlertDialogContent\n ref={ref}\n {...getDomProps({ elementId: \"dialog\", className })}\n {...props}\n {...element}\n />\n );\n },\n);\n\ninterface DescriptionProps extends RadixAlertDialogDescriptionProps {}\n\nconst AlertDialogDescription = React.forwardRef<\n HTMLParagraphElement,\n DescriptionProps\n>(function AlertDialogDescription({ size = \"2\", ...props }, forwardedRef) {\n return (\n <RadixAlertDialogDescription ref={forwardedRef} size={size} {...props} />\n );\n});\n\nexport { AlertDialogContent as Content, AlertDialogDescription as Description };\nexport type { ContentProps, DescriptionProps };\n\nexport {\n Action,\n Cancel,\n Root,\n Title,\n Trigger,\n} from \"@radix-ui/themes/components/alert-dialog\";\nexport type {\n ActionProps,\n CancelProps,\n RootProps,\n TitleProps,\n TriggerProps,\n} from \"@radix-ui/themes/components/alert-dialog\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBM;AArBN,YAAuB;AACvB,0BAKO;AACP,6BAA2B;AAC3B,mBAAiD;AACjD,IAAAA,gBAAqC;AAoCrC,IAAAC,uBAMO;AAtCP,MAAM,qBAAqB,MAAM;AAAA,EAC/B,SAASC,oBAAmB,EAAE,WAAW,GAAG,MAAM,GAAG,cAAc;AACjE,UAAM,cAAU,mCAAW,QAAQ;AACnC,UAAM,EAAE,IAAI,QAAI,oCAAqB,cAAc;AAAA,MACjD,eAAW,kCAAoB,gBAAgB;AAAA,MAC/C,UAAU;AAAA,IACZ,CAAC;AACD,WACE;AAAA,MAAC,oBAAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACC,OAAG,0BAAY,EAAE,WAAW,UAAU,UAAU,CAAC;AAAA,QACjD,GAAG;AAAA,QACH,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AAIA,MAAM,yBAAyB,MAAM,WAGnC,SAASC,wBAAuB,EAAE,OAAO,KAAK,GAAG,MAAM,GAAG,cAAc;AACxE,SACE,4CAAC,oBAAAC,aAAA,EAA4B,KAAK,cAAc,MAAa,GAAG,OAAO;AAE3E,CAAC;","names":["import_utils","import_alert_dialog","AlertDialogContent","RadixAlertDialogContent","AlertDialogDescription","RadixAlertDialogDescription"]}
@@ -1,3 +1,3 @@
1
1
  import 'react';
2
- export { Action, ActionProps, Cancel, CancelProps, Description, DescriptionProps, Root, RootProps, Title, TitleProps, Trigger, TriggerProps } from '@radix-ui/themes/components/alert-dialog';
3
- export { A as Content, C as ContentProps } from '../../alert-dialog-BlG3_awx.cjs';
2
+ export { Action, ActionProps, Cancel, CancelProps, Root, RootProps, Title, TitleProps, Trigger, TriggerProps } from '@radix-ui/themes/components/alert-dialog';
3
+ export { A as Content, C as ContentProps, b as Description, D as DescriptionProps } from '../../alert-dialog-BMbVcJfZ.cjs';
@@ -31,7 +31,7 @@ var dialog_exports = {};
31
31
  __export(dialog_exports, {
32
32
  Close: () => import_dialog2.Close,
33
33
  Content: () => DialogContent,
34
- Description: () => import_dialog2.Description,
34
+ Description: () => DialogDescription,
35
35
  Root: () => import_dialog2.Root,
36
36
  Title: () => import_dialog2.Title,
37
37
  Trigger: () => import_dialog2.Trigger
@@ -62,6 +62,9 @@ const DialogContent = React.forwardRef(
62
62
  );
63
63
  }
64
64
  );
65
+ const DialogDescription = React.forwardRef(function DialogDescription2({ size = "2", ...props }, forwardedRef) {
66
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dialog.Description, { ref: forwardedRef, size, ...props });
67
+ });
65
68
  // Annotate the CommonJS export names for ESM import in node:
66
69
  0 && (module.exports = {
67
70
  Close,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/elements/dialog.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport {\n Content as RadixDialogContent,\n type ContentProps as RadixDialogContentProps,\n} from \"@radix-ui/themes/components/dialog\";\nimport { useElement } from \"../widgets-context.js\";\nimport { getDomProps, namespaceClassNames } from \"../utils.js\";\nimport { useDialogOverlayHack } from \"./utils.js\";\n\ninterface ContentProps extends RadixDialogContentProps {}\n\nconst DialogContent = React.forwardRef<HTMLDivElement, ContentProps>(\n function DialogContent({ className, ...props }, forwardedRef) {\n const element = useElement(\"dialog\");\n const { ref } = useDialogOverlayHack(forwardedRef, {\n className: namespaceClassNames(\"dialog-overlay\"),\n selector: \".rt-DialogOverlay\",\n });\n return (\n <RadixDialogContent\n ref={ref}\n {...getDomProps({ elementId: \"dialog\", className })}\n {...props}\n {...element}\n />\n );\n },\n);\n\nexport { DialogContent as Content };\nexport type { ContentProps };\n\nexport {\n Close,\n Description,\n Root,\n Title,\n Trigger,\n} from \"@radix-ui/themes/components/dialog\";\nexport type {\n CloseProps,\n DescriptionProps,\n RootProps,\n TitleProps,\n TriggerProps,\n} from \"@radix-ui/themes/components/dialog\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBM;AAnBN,YAAuB;AACvB,oBAGO;AACP,6BAA2B;AAC3B,mBAAiD;AACjD,IAAAA,gBAAqC;AAyBrC,IAAAC,iBAMO;AA3BP,MAAM,gBAAgB,MAAM;AAAA,EAC1B,SAASC,eAAc,EAAE,WAAW,GAAG,MAAM,GAAG,cAAc;AAC5D,UAAM,cAAU,mCAAW,QAAQ;AACnC,UAAM,EAAE,IAAI,QAAI,oCAAqB,cAAc;AAAA,MACjD,eAAW,kCAAoB,gBAAgB;AAAA,MAC/C,UAAU;AAAA,IACZ,CAAC;AACD,WACE;AAAA,MAAC,cAAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACC,OAAG,0BAAY,EAAE,WAAW,UAAU,UAAU,CAAC;AAAA,QACjD,GAAG;AAAA,QACH,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;","names":["import_utils","import_dialog","DialogContent","RadixDialogContent"]}
1
+ {"version":3,"sources":["../../../../src/lib/elements/dialog.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport {\n Content as RadixDialogContent,\n type ContentProps as RadixDialogContentProps,\n Description as RadixDialogDescription,\n type DescriptionProps as RadixDialogDescriptionProps,\n} from \"@radix-ui/themes/components/dialog\";\nimport { useElement } from \"../widgets-context.js\";\nimport { getDomProps, namespaceClassNames } from \"../utils.js\";\nimport { useDialogOverlayHack } from \"./utils.js\";\n\ninterface ContentProps extends RadixDialogContentProps {}\n\nconst DialogContent = React.forwardRef<HTMLDivElement, ContentProps>(\n function DialogContent({ className, ...props }, forwardedRef) {\n const element = useElement(\"dialog\");\n const { ref } = useDialogOverlayHack(forwardedRef, {\n className: namespaceClassNames(\"dialog-overlay\"),\n selector: \".rt-DialogOverlay\",\n });\n return (\n <RadixDialogContent\n ref={ref}\n {...getDomProps({ elementId: \"dialog\", className })}\n {...props}\n {...element}\n />\n );\n },\n);\n\ninterface DescriptionProps extends RadixDialogDescriptionProps {}\n\nconst DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n DescriptionProps\n>(function DialogDescription({ size = \"2\", ...props }, forwardedRef) {\n return <RadixDialogDescription ref={forwardedRef} size={size} {...props} />;\n});\n\nexport { DialogContent as Content, DialogDescription as Description };\nexport type { ContentProps, DescriptionProps };\n\nexport {\n Close,\n Root,\n Title,\n Trigger,\n} from \"@radix-ui/themes/components/dialog\";\nexport type {\n CloseProps,\n RootProps,\n TitleProps,\n TriggerProps,\n} from \"@radix-ui/themes/components/dialog\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBM;AArBN,YAAuB;AACvB,oBAKO;AACP,6BAA2B;AAC3B,mBAAiD;AACjD,IAAAA,gBAAqC;AAkCrC,IAAAC,iBAKO;AAnCP,MAAM,gBAAgB,MAAM;AAAA,EAC1B,SAASC,eAAc,EAAE,WAAW,GAAG,MAAM,GAAG,cAAc;AAC5D,UAAM,cAAU,mCAAW,QAAQ;AACnC,UAAM,EAAE,IAAI,QAAI,oCAAqB,cAAc;AAAA,MACjD,eAAW,kCAAoB,gBAAgB;AAAA,MAC/C,UAAU;AAAA,IACZ,CAAC;AACD,WACE;AAAA,MAAC,cAAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACC,OAAG,0BAAY,EAAE,WAAW,UAAU,UAAU,CAAC;AAAA,QACjD,GAAG;AAAA,QACH,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AAIA,MAAM,oBAAoB,MAAM,WAG9B,SAASC,mBAAkB,EAAE,OAAO,KAAK,GAAG,MAAM,GAAG,cAAc;AACnE,SAAO,4CAAC,cAAAC,aAAA,EAAuB,KAAK,cAAc,MAAa,GAAG,OAAO;AAC3E,CAAC;","names":["import_utils","import_dialog","DialogContent","RadixDialogContent","DialogDescription","RadixDialogDescription"]}
@@ -1,3 +1,3 @@
1
1
  import 'react';
2
- export { Close, CloseProps, Description, DescriptionProps, Root, RootProps, Title, TitleProps, Trigger, TriggerProps } from '@radix-ui/themes/components/dialog';
3
- export { D as Content, C as ContentProps } from '../../dialog-C15qCLN3.cjs';
2
+ export { Close, CloseProps, Root, RootProps, Title, TitleProps, Trigger, TriggerProps } from '@radix-ui/themes/components/dialog';
3
+ export { D as Content, C as ContentProps, a as Description, b as DescriptionProps } from '../../dialog-CGXwsXVe.cjs';