@intlayer/design-system 9.5.6 → 9.5.7

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 (112) hide show
  1. package/dist/esm/api/hooks/auth.mjs +1 -0
  2. package/dist/esm/api/hooks/auth.mjs.map +1 -1
  3. package/dist/esm/api/index.mjs +2 -2
  4. package/dist/esm/api/useAuth/useOAuth2.mjs +1 -1
  5. package/dist/esm/api/useAuth/useSession.mjs +1 -1
  6. package/dist/esm/api/useUser/index.mjs +1 -1
  7. package/dist/esm/components/Accordion/Accordion.mjs +1 -1
  8. package/dist/esm/components/Avatar/index.mjs +1 -1
  9. package/dist/esm/components/Badge/index.mjs +1 -1
  10. package/dist/esm/components/Breadcrumb/index.mjs +2 -2
  11. package/dist/esm/components/Browser/Browser.mjs +1 -1
  12. package/dist/esm/components/Browser/extractUrlFromSitemap.mjs +29 -24
  13. package/dist/esm/components/Browser/extractUrlFromSitemap.mjs.map +1 -1
  14. package/dist/esm/components/Browser/index.mjs +2 -1
  15. package/dist/esm/components/Button/Button.mjs +1 -1
  16. package/dist/esm/components/Carousel/index.mjs +1 -1
  17. package/dist/esm/components/CollapsibleTable/CollapsibleTable.mjs +2 -2
  18. package/dist/esm/components/Command/index.mjs +1 -1
  19. package/dist/esm/components/Container/index.mjs +1 -1
  20. package/dist/esm/components/ContentEditor/ContentEditor.mjs +1 -1
  21. package/dist/esm/components/ContentEditor/ContentEditorInput.mjs +1 -1
  22. package/dist/esm/components/ContentEditor/ContentEditorTextArea.mjs +2 -2
  23. package/dist/esm/components/CopyButton/index.mjs +1 -1
  24. package/dist/esm/components/CopyToClipboard/index.mjs +1 -1
  25. package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +3 -3
  26. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +1 -1
  27. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +7 -7
  28. package/dist/esm/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +2 -2
  29. package/dist/esm/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +2 -2
  30. package/dist/esm/components/DictionaryFieldEditor/NodeEditor.mjs +2 -2
  31. package/dist/esm/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +3 -3
  32. package/dist/esm/components/DictionaryFieldEditor/StructureView/StructureView.mjs +2 -2
  33. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs +1 -1
  34. package/dist/esm/components/EditableField/EditableFieldLayout.mjs +1 -1
  35. package/dist/esm/components/Form/elements/OTPElement.mjs +1 -1
  36. package/dist/esm/components/HideShow/index.mjs +1 -1
  37. package/dist/esm/components/IDE/FileTree.mjs +1 -1
  38. package/dist/esm/components/IDE/MarkDownRender.mjs +1 -1
  39. package/dist/esm/components/IDE/shikiLanguages.mjs +1 -3
  40. package/dist/esm/components/IDE/shikiLanguages.mjs.map +1 -1
  41. package/dist/esm/components/Input/Checkbox.mjs +1 -1
  42. package/dist/esm/components/Input/Input.mjs +1 -1
  43. package/dist/esm/components/Input/InputPassword.mjs +1 -1
  44. package/dist/esm/components/Input/OTPInput.mjs +2 -2
  45. package/dist/esm/components/Input/Radio.mjs +1 -1
  46. package/dist/esm/components/Input/SearchInput.mjs +1 -1
  47. package/dist/esm/components/Link/Link.mjs +2 -2
  48. package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +2 -2
  49. package/dist/esm/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +24 -6
  50. package/dist/esm/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
  51. package/dist/esm/components/MarkDownRender/MarkDownIframe.mjs +1 -1
  52. package/dist/esm/components/MarkdownEditor/generative/AICompletionCommands.mjs +1 -1
  53. package/dist/esm/components/MarkdownEditor/generative/AISelector.mjs +2 -2
  54. package/dist/esm/components/MarkdownEditor/generative/AISelectorCommands.mjs +1 -1
  55. package/dist/esm/components/MarkdownEditor/generative/GenerativeMenuSwitch.mjs +1 -1
  56. package/dist/esm/components/MarkdownEditor/selectors/ColorSelector.mjs +1 -1
  57. package/dist/esm/components/MarkdownEditor/selectors/LinkSelector.mjs +1 -1
  58. package/dist/esm/components/MarkdownEditor/selectors/NodeSelector.mjs +1 -1
  59. package/dist/esm/components/MarkdownEditor/selectors/TextButtons.mjs +1 -1
  60. package/dist/esm/components/MarkdownEditor/slashCommand.mjs +1 -1
  61. package/dist/esm/components/Modal/Modal.mjs +4 -4
  62. package/dist/esm/components/Navbar/MobileNavbar.mjs +1 -1
  63. package/dist/esm/components/Pagination/Pagination.mjs +3 -3
  64. package/dist/esm/components/Pattern/GridDistortionPattern.mjs +1 -1
  65. package/dist/esm/components/RightDrawer/RightDrawer.mjs +4 -4
  66. package/dist/esm/components/Select/Multiselect.mjs +1 -1
  67. package/dist/esm/components/Select/Select.mjs +1 -1
  68. package/dist/esm/components/Status/index.mjs +1 -1
  69. package/dist/esm/components/SwitchSelector/SwitchSelector.mjs +1 -1
  70. package/dist/esm/components/SwitchSelector/VerticalSwitchSelector.mjs +1 -1
  71. package/dist/esm/components/Tab/Tab.mjs +2 -2
  72. package/dist/esm/components/TabSelector/TabSelector.mjs +1 -1
  73. package/dist/esm/components/Table/ExpandButton.mjs +1 -1
  74. package/dist/esm/components/Tag/index.mjs +1 -1
  75. package/dist/esm/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs +1 -1
  76. package/dist/esm/components/ThemeSwitcherDropDown/MobileThemeSwitcher.mjs +1 -1
  77. package/dist/esm/components/Toaster/Toast.mjs +2 -2
  78. package/dist/esm/components/index.mjs +5 -4
  79. package/dist/esm/hooks/index.mjs +9 -9
  80. package/dist/esm/hooks/useRemoteMcpTools.mjs +1 -1
  81. package/dist/esm/hooks/useScrollDetection.mjs +1 -1
  82. package/dist/esm/hooks/useScrollY.mjs +1 -1
  83. package/dist/esm/libs/auth.mjs +7 -1
  84. package/dist/esm/libs/auth.mjs.map +1 -1
  85. package/dist/esm/providers/ReactQueryProvider.mjs +1 -1
  86. package/dist/esm/providers/ThemeProvider.mjs +2 -2
  87. package/dist/esm/providers/ThemeProvider.mjs.map +1 -1
  88. package/dist/esm/providers/index.mjs +1 -1
  89. package/dist/esm/routes.mjs +4 -2
  90. package/dist/esm/routes.mjs.map +1 -1
  91. package/dist/esm/structured-data/index.mjs +5 -5
  92. package/dist/esm/utils/index.mjs +1 -1
  93. package/dist/esm/webmcp/index.mjs +1 -1
  94. package/dist/types/api/hooks/auth.d.ts.map +1 -1
  95. package/dist/types/components/Browser/extractUrlFromSitemap.d.ts +15 -1
  96. package/dist/types/components/Browser/extractUrlFromSitemap.d.ts.map +1 -1
  97. package/dist/types/components/Browser/index.d.ts +2 -1
  98. package/dist/types/components/IDE/shikiBundle.d.ts +0 -2
  99. package/dist/types/components/IDE/shikiBundle.d.ts.map +1 -1
  100. package/dist/types/components/IDE/shikiLanguages.d.ts +1 -3
  101. package/dist/types/components/IDE/shikiLanguages.d.ts.map +1 -1
  102. package/dist/types/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts +3 -0
  103. package/dist/types/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts.map +1 -1
  104. package/dist/types/components/LocaleSwitcherDropDown/index.d.ts +2 -2
  105. package/dist/types/components/index.d.ts +3 -2
  106. package/dist/types/libs/auth.d.ts +5 -0
  107. package/dist/types/libs/auth.d.ts.map +1 -1
  108. package/dist/types/providers/ThemeProvider.d.ts +7 -0
  109. package/dist/types/providers/ThemeProvider.d.ts.map +1 -1
  110. package/dist/types/routes.d.ts +3 -1
  111. package/dist/types/routes.d.ts.map +1 -1
  112. package/package.json +11 -13
@@ -11,6 +11,7 @@ const useLogin = () => {
11
11
  mutationKey: ["login"],
12
12
  mutationFn: (args) => intlayerAuth.signInEmail(args),
13
13
  onSuccess: (data) => {
14
+ if (!data.data?.user) return;
14
15
  const session = queryClient.getQueryData(["session"]);
15
16
  queryClient.setQueryData(["session"], {
16
17
  ...session,
@@ -1 +1 @@
1
- {"version":3,"file":"auth.mjs","names":[],"sources":["../../../../src/api/hooks/auth.ts"],"sourcesContent":["'use client';\n\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport type { AuthAPI } from '../../libs/auth';\nimport { useIntlayerAuth } from '../useIntlayerAPI';\n\nexport const useLogin = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['login'],\n mutationFn: (args: Parameters<AuthAPI['signInEmail']>[0]) =>\n intlayerAuth.signInEmail(args),\n onSuccess: (data) => {\n const session = queryClient.getQueryData(['session']);\n\n queryClient.setQueryData(['session'], {\n ...session,\n user: data.data.user,\n });\n queryClient.invalidateQueries({ queryKey: ['session'] });\n queryClient.invalidateQueries({ queryKey: ['deviceSessions'] });\n },\n });\n};\n\nexport const useListAccounts = () => {\n const intlayerAuth = useIntlayerAuth();\n return useQuery({\n queryKey: ['listAccounts'],\n queryFn: () => intlayerAuth.listAccounts(),\n });\n};\n\nexport const useUnlinkAccount = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['unlinkAccount'],\n mutationFn: (args: Parameters<AuthAPI['unlinkAccount']>[0]) =>\n intlayerAuth.unlinkAccount(args),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['listAccounts'] });\n },\n });\n};\n\nexport const useLinkSocial = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['linkSocial'],\n mutationFn: (args: Parameters<AuthAPI['linkSocial']>[0]) =>\n intlayerAuth.linkSocial(args),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['listAccounts'] });\n },\n });\n};\n\nexport const useGetVerifyEmailStatus = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['getVerifyEmailStatus'],\n mutationFn: (args: Parameters<AuthAPI['verifyEmailSession']>) =>\n intlayerAuth.verifyEmailSession(...args),\n });\n};\n\nexport const useRegister = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['register'],\n mutationFn: (args: Parameters<AuthAPI['signUpEmail']>[0]) =>\n intlayerAuth.signUpEmail(args),\n });\n};\n\nconst LOGOUT_QUERY_KEYS: string[][] = [\n ['session'],\n ['users'],\n ['organizations'],\n ['projects'],\n ['dictionaries'],\n ['tags'],\n];\n\nexport const useLogout = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['logout'],\n mutationFn: () => intlayerAuth.signOut(),\n // removeQueries instead of resetQueries: evicts cached data without\n // triggering a re-fetch. A re-fetch (resetQueries) can race with the\n // signOut response and resurrect a session from better-auth's\n // short-lived cookie cache, causing an infinite redirect loop between\n // the dashboard and the login page.\n onSettled: () => {\n LOGOUT_QUERY_KEYS.forEach((queryKey) => {\n queryClient.removeQueries({ queryKey });\n });\n },\n });\n};\n\nexport const useChangePassword = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['changePassword'],\n mutationFn: (args: Parameters<AuthAPI['changePasswordSession']>) =>\n intlayerAuth.changePasswordSession(...args),\n });\n};\n\nexport const useAskResetPassword = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['askResetPassword'],\n mutationFn: (args: Parameters<AuthAPI['requestPasswordResetSession']>[0]) =>\n intlayerAuth.requestPasswordResetSession(args),\n });\n};\n\nexport const useResetPassword = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['resetPassword'],\n mutationFn: (args: Parameters<AuthAPI['resetPassword']>[0]) =>\n intlayerAuth.resetPassword(args),\n });\n};\n\nexport const useVerifyEmail = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['verifyEmail'],\n mutationFn: (args: Parameters<AuthAPI['verifyEmailSession']>[0]) =>\n intlayerAuth.verifyEmailSession(args),\n });\n};\n\nexport const useGetUserByAccount = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['user'],\n mutationFn: (args: Parameters<AuthAPI['accountInfo']>[0]) =>\n intlayerAuth.accountInfo(args),\n });\n};\n\nexport const useEnableTwoFactor = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['enableTwoFactor'],\n mutationFn: (args: Parameters<AuthAPI['enableTwoFactor']>[0]) =>\n intlayerAuth.enableTwoFactor(args),\n });\n};\n\nexport const useDisableTwoFactor = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['disableTwoFactor'],\n mutationFn: (args: Parameters<AuthAPI['disableTwoFactor']>[0]) =>\n intlayerAuth.disableTwoFactor(args),\n });\n};\n\nexport const useVerifyTotp = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['verifyTotp'],\n mutationFn: (args: Parameters<AuthAPI['verifyTotp']>[0]) =>\n intlayerAuth.verifyTotp(args),\n });\n};\n\nexport const useVerifyBackupCode = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['verifyBackupCode'],\n mutationFn: (args: Parameters<AuthAPI['verifyBackupCode']>[0]) =>\n intlayerAuth.verifyBackupCode(args),\n });\n};\n\nexport const useAddPasskey = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['addPasskey'],\n mutationFn: (args: Parameters<AuthAPI['addPasskey']>[0]) =>\n intlayerAuth.addPasskey(args),\n });\n};\n\nexport const useSignInPasskey = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['signInPasskey'],\n mutationFn: (args?: Parameters<AuthAPI['signInPasskey']>[0]) =>\n intlayerAuth.signInPasskey(args),\n });\n};\n\nexport const useDeletePasskey = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['deletePasskey'],\n mutationFn: (args: Parameters<AuthAPI['deletePasskey']>[0]) =>\n intlayerAuth.deletePasskey(args),\n });\n};\n\nexport const useListPasskeys = () => {\n const intlayerAuth = useIntlayerAuth();\n return useQuery({\n queryKey: ['listPasskeys'],\n queryFn: () => intlayerAuth.listPasskeys(),\n });\n};\n\nexport const useSignInMagicLink = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['signInMagicLink'],\n mutationFn: (args?: any) => intlayerAuth.signInMagicLink(args),\n });\n};\n\nexport const useRegisterSSO = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['registerSSO'],\n mutationFn: (args: Parameters<AuthAPI['registerSSO']>[0]) =>\n intlayerAuth.registerSSO(args),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['ssoProviders'] });\n },\n });\n};\n\nexport const useSignInSSO = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['signInSSO'],\n mutationFn: (args: Parameters<AuthAPI['signInSSO']>[0]) =>\n intlayerAuth.signInSSO(args),\n });\n};\n\nexport const useListSSOProviders = () => {\n const intlayerAuth = useIntlayerAuth();\n return useQuery({\n queryKey: ['ssoProviders'],\n queryFn: () => intlayerAuth.listSSOProviders(),\n });\n};\n\nexport const useDeleteSSOProvider = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['deleteSSOProvider'],\n mutationFn: (args: Parameters<AuthAPI['deleteSSOProvider']>[0]) =>\n intlayerAuth.deleteSSOProvider(args),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['ssoProviders'] });\n },\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"auth.mjs","names":[],"sources":["../../../../src/api/hooks/auth.ts"],"sourcesContent":["'use client';\n\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport type { AuthAPI } from '../../libs/auth';\nimport { useIntlayerAuth } from '../useIntlayerAPI';\n\nexport const useLogin = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['login'],\n mutationFn: (args: Parameters<AuthAPI['signInEmail']>[0]) =>\n intlayerAuth.signInEmail(args),\n onSuccess: (data) => {\n // better-auth resolves (never throws) on a failed sign-in, with\n // `data: null` and `error` set; the global mutation cache toasts it.\n if (!data.data?.user) return;\n\n const session = queryClient.getQueryData(['session']);\n\n queryClient.setQueryData(['session'], {\n ...session,\n user: data.data.user,\n });\n queryClient.invalidateQueries({ queryKey: ['session'] });\n queryClient.invalidateQueries({ queryKey: ['deviceSessions'] });\n },\n });\n};\n\nexport const useListAccounts = () => {\n const intlayerAuth = useIntlayerAuth();\n return useQuery({\n queryKey: ['listAccounts'],\n queryFn: () => intlayerAuth.listAccounts(),\n });\n};\n\nexport const useUnlinkAccount = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['unlinkAccount'],\n mutationFn: (args: Parameters<AuthAPI['unlinkAccount']>[0]) =>\n intlayerAuth.unlinkAccount(args),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['listAccounts'] });\n },\n });\n};\n\nexport const useLinkSocial = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['linkSocial'],\n mutationFn: (args: Parameters<AuthAPI['linkSocial']>[0]) =>\n intlayerAuth.linkSocial(args),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['listAccounts'] });\n },\n });\n};\n\nexport const useGetVerifyEmailStatus = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['getVerifyEmailStatus'],\n mutationFn: (args: Parameters<AuthAPI['verifyEmailSession']>) =>\n intlayerAuth.verifyEmailSession(...args),\n });\n};\n\nexport const useRegister = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['register'],\n mutationFn: (args: Parameters<AuthAPI['signUpEmail']>[0]) =>\n intlayerAuth.signUpEmail(args),\n });\n};\n\nconst LOGOUT_QUERY_KEYS: string[][] = [\n ['session'],\n ['users'],\n ['organizations'],\n ['projects'],\n ['dictionaries'],\n ['tags'],\n];\n\nexport const useLogout = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['logout'],\n mutationFn: () => intlayerAuth.signOut(),\n // removeQueries instead of resetQueries: evicts cached data without\n // triggering a re-fetch. A re-fetch (resetQueries) can race with the\n // signOut response and resurrect a session from better-auth's\n // short-lived cookie cache, causing an infinite redirect loop between\n // the dashboard and the login page.\n onSettled: () => {\n LOGOUT_QUERY_KEYS.forEach((queryKey) => {\n queryClient.removeQueries({ queryKey });\n });\n },\n });\n};\n\nexport const useChangePassword = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['changePassword'],\n mutationFn: (args: Parameters<AuthAPI['changePasswordSession']>) =>\n intlayerAuth.changePasswordSession(...args),\n });\n};\n\nexport const useAskResetPassword = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['askResetPassword'],\n mutationFn: (args: Parameters<AuthAPI['requestPasswordResetSession']>[0]) =>\n intlayerAuth.requestPasswordResetSession(args),\n });\n};\n\nexport const useResetPassword = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['resetPassword'],\n mutationFn: (args: Parameters<AuthAPI['resetPassword']>[0]) =>\n intlayerAuth.resetPassword(args),\n });\n};\n\nexport const useVerifyEmail = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['verifyEmail'],\n mutationFn: (args: Parameters<AuthAPI['verifyEmailSession']>[0]) =>\n intlayerAuth.verifyEmailSession(args),\n });\n};\n\nexport const useGetUserByAccount = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['user'],\n mutationFn: (args: Parameters<AuthAPI['accountInfo']>[0]) =>\n intlayerAuth.accountInfo(args),\n });\n};\n\nexport const useEnableTwoFactor = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['enableTwoFactor'],\n mutationFn: (args: Parameters<AuthAPI['enableTwoFactor']>[0]) =>\n intlayerAuth.enableTwoFactor(args),\n });\n};\n\nexport const useDisableTwoFactor = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['disableTwoFactor'],\n mutationFn: (args: Parameters<AuthAPI['disableTwoFactor']>[0]) =>\n intlayerAuth.disableTwoFactor(args),\n });\n};\n\nexport const useVerifyTotp = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['verifyTotp'],\n mutationFn: (args: Parameters<AuthAPI['verifyTotp']>[0]) =>\n intlayerAuth.verifyTotp(args),\n });\n};\n\nexport const useVerifyBackupCode = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['verifyBackupCode'],\n mutationFn: (args: Parameters<AuthAPI['verifyBackupCode']>[0]) =>\n intlayerAuth.verifyBackupCode(args),\n });\n};\n\nexport const useAddPasskey = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['addPasskey'],\n mutationFn: (args: Parameters<AuthAPI['addPasskey']>[0]) =>\n intlayerAuth.addPasskey(args),\n });\n};\n\nexport const useSignInPasskey = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['signInPasskey'],\n mutationFn: (args?: Parameters<AuthAPI['signInPasskey']>[0]) =>\n intlayerAuth.signInPasskey(args),\n });\n};\n\nexport const useDeletePasskey = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['deletePasskey'],\n mutationFn: (args: Parameters<AuthAPI['deletePasskey']>[0]) =>\n intlayerAuth.deletePasskey(args),\n });\n};\n\nexport const useListPasskeys = () => {\n const intlayerAuth = useIntlayerAuth();\n return useQuery({\n queryKey: ['listPasskeys'],\n queryFn: () => intlayerAuth.listPasskeys(),\n });\n};\n\nexport const useSignInMagicLink = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['signInMagicLink'],\n mutationFn: (args?: any) => intlayerAuth.signInMagicLink(args),\n });\n};\n\nexport const useRegisterSSO = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['registerSSO'],\n mutationFn: (args: Parameters<AuthAPI['registerSSO']>[0]) =>\n intlayerAuth.registerSSO(args),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['ssoProviders'] });\n },\n });\n};\n\nexport const useSignInSSO = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['signInSSO'],\n mutationFn: (args: Parameters<AuthAPI['signInSSO']>[0]) =>\n intlayerAuth.signInSSO(args),\n });\n};\n\nexport const useListSSOProviders = () => {\n const intlayerAuth = useIntlayerAuth();\n return useQuery({\n queryKey: ['ssoProviders'],\n queryFn: () => intlayerAuth.listSSOProviders(),\n });\n};\n\nexport const useDeleteSSOProvider = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['deleteSSOProvider'],\n mutationFn: (args: Parameters<AuthAPI['deleteSSOProvider']>[0]) =>\n intlayerAuth.deleteSSOProvider(args),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['ssoProviders'] });\n },\n });\n};\n"],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import { useAiAPI, useAnalyticsAPI, useAssetAPI, useAuditAPI, useBitbucketAPI, useDictionaryAPI, useEditorAPI, useEnvironmentAPI, useGithubAPI, useGitlabAPI, useIntlayerAuth, useIntlayerOAuth, useIntlayerOAuthOptions, useNewsletterAPI, useOAuthAPI, useOrganizationAPI, useProjectAPI, useReviewerAPI, useSearchAPI, useShowcaseProjectAPI, useStripeAPI, useTagAPI, useTranslateAPI, useUserAPI } from "./useIntlayerAPI.mjs";
2
+ import { useAddPasskey, useAskResetPassword, useChangePassword, useDeletePasskey, useDeleteSSOProvider, useDisableTwoFactor, useEnableTwoFactor, useGetUserByAccount, useGetVerifyEmailStatus, useLinkSocial, useListAccounts, useListPasskeys, useListSSOProviders, useLogin, useLogout, useRegister, useRegisterSSO, useResetPassword, useSignInMagicLink, useSignInPasskey, useSignInSSO, useUnlinkAccount, useVerifyBackupCode, useVerifyEmail, useVerifyTotp } from "./hooks/auth.mjs";
2
3
  import { useOAuth2 } from "./useAuth/useOAuth2.mjs";
3
4
  import { useSession } from "./useAuth/useSession.mjs";
4
5
  import { useAuth } from "./useAuth/useAuth.mjs";
6
+ import { useUser } from "./useUser/index.mjs";
5
7
  import { useAskDocQuestion, useAuditContentDeclaration, useAuditContentDeclarationField, useAuditContentDeclarationMetadata, useAuditTag, useAutocomplete, useChat, useCustomQuery, useGetAIStats, useTranslateJSONDeclaration } from "./hooks/ai.mjs";
6
8
  import { useGetAnalyticsAudience, useGetContentStats, useGetExperimentResults } from "./hooks/analytics.mjs";
7
9
  import { useDeleteAsset, useGetAssetById, useGetAssets, useUpdateAsset, useUploadAsset } from "./hooks/asset.mjs";
8
10
  import { useAuditScan, useGetRecursiveAuditStatus, useStartRecursiveAudit } from "./hooks/audit.mjs";
9
- import { useAddPasskey, useAskResetPassword, useChangePassword, useDeletePasskey, useDeleteSSOProvider, useDisableTwoFactor, useEnableTwoFactor, useGetUserByAccount, useGetVerifyEmailStatus, useLinkSocial, useListAccounts, useListPasskeys, useListSSOProviders, useLogin, useLogout, useRegister, useRegisterSSO, useResetPassword, useSignInMagicLink, useSignInPasskey, useSignInSSO, useUnlinkAccount, useVerifyBackupCode, useVerifyEmail, useVerifyTotp } from "./hooks/auth.mjs";
10
11
  import { useBitbucketAuth, useBitbucketCheckConfig, useBitbucketGetConfigFile, useBitbucketRepos } from "./hooks/bitbucket.mjs";
11
12
  import { useAddDictionary, useDeleteDictionary, useGetDictionaries, useGetDictionariesKeys, useGetDictionary, useInfiniteGetDictionaries, usePushDictionaries, useUpdateDictionary } from "./hooks/dictionary.mjs";
12
13
  import { useGetDiscussions, useGetDiscussionsData } from "./hooks/discussions.mjs";
@@ -24,6 +25,5 @@ import { useAcceptAffiliateInvitation, useCancelSubscription, useCreatePortalSes
24
25
  import { useAddTag, useDeleteTag, useGetTags, useUpdateTag } from "./hooks/tag.mjs";
25
26
  import { useFillAllTranslations, usePauseTranslationJob, useResumeTranslationJob, useStopTranslationJob } from "./hooks/translate.mjs";
26
27
  import { useCreateUser, useDeleteUser, useGetUserById, useGetUsers, useUpdateUser, useUploadUserAvatar } from "./hooks/user.mjs";
27
- import { useUser } from "./useUser/index.mjs";
28
28
 
29
29
  export { useAcceptAffiliateInvitation, useAddDictionary, useAddEnvironment, useAddNewAccessKey, useAddOrganization, useAddOrganizationMember, useAddPasskey, useAddProject, useAddTag, useAiAPI, useAnalyticsAPI, useAskDocQuestion, useAskResetPassword, useAssetAPI, useAuditAPI, useAuditContentDeclaration, useAuditContentDeclarationField, useAuditContentDeclarationMetadata, useAuditScan, useAuditTag, useAuth, useAutocomplete, useBitbucketAPI, useBitbucketAuth, useBitbucketCheckConfig, useBitbucketGetConfigFile, useBitbucketRepos, useCancelSubscription, useChangePassword, useChat, useContactReviewer, useCreateMission, useCreatePortalSession, useCreatePromoCode, useCreateUser, useCustomQuery, useDeleteAccessKey, useDeleteAsset, useDeleteDictionary, useDeleteEnvironment, useDeleteOrganization, useDeleteOrganizationById, useDeletePasskey, useDeleteProject, useDeleteProjectById, useDeletePromoCode, useDeleteReviewerProfile, useDeleteSSOProvider, useDeleteShowcaseProject, useDeleteTag, useDeleteUser, useDictionaryAPI, useDisableTwoFactor, useEditorAPI, useEnableTwoFactor, useEnvironmentAPI, useEstimateMission, useFillAllTranslations, useGetAIStats, useGetAdminReviewers, useGetAffiliate, useGetAffiliateAccountSession, useGetAffiliateById, useGetAffiliateInvitation, useGetAffiliateInvitations, useGetAffiliateOnboardingLink, useGetAffiliatePromoCode, useGetAffiliateStats, useGetAffiliates, useGetAnalyticsAudience, useGetAssetById, useGetAssets, useGetCIConfig, useGetChatHistory, useGetContentStats, useGetDictionaries, useGetDictionariesKeys, useGetDictionary, useGetDiscussions, useGetDiscussionsData, useGetEditorDictionaries, useGetExperimentResults, useGetInvoices, useGetMissionById, useGetMyMissions, useGetMyReviewerProfile, useGetNewsletterStatus, useGetOrganizations, useGetOtherShowcaseProjects, useGetPaymentMethod, useGetPricing, useGetProjectInsights, useGetProjects, useGetPromoCodeById, useGetPromoCodes, useGetRecursiveAuditStatus, useGetReviewerById, useGetReviewerMarketplace, useGetReviewerPriceDistribution, useGetReviewerReviews, useGetShowcaseProjectById, useGetShowcaseProjects, useGetSubscription, useGetTags, useGetUserByAccount, useGetUserById, useGetUsers, useGetVerifyEmailStatus, useGithubAPI, useGithubAuth, useGithubCheckConfig, useGithubGetAuthUrl, useGithubGetConfigFile, useGithubRepos, useGithubToken, useGitlabAPI, useGitlabAuth, useGitlabCheckConfig, useGitlabGetConfigFile, useGitlabProjects, useGrantAffiliateAccess, useInfiniteGetDictionaries, useIntlayerAuth, useIntlayerOAuth, useIntlayerOAuthOptions, useLinkSocial, useListAccounts, useListPasskeys, useListSSOProviders, useLogin, useLogout, useMigrateEnvironment, useNewsletterAPI, useOAuth2, useOAuthAPI, useOrganizationAPI, usePauseTranslationJob, useProjectAPI, usePushCIConfig, usePushDictionaries, usePushProjectConfiguration, useRefreshAccessKey, useRegister, useRegisterAsReviewer, useRegisterSSO, useResetPassword, useResetToProductionEnvironment, useResumeTranslationJob, useReviewerAPI, useSearchAPI, useSearchDoc, useSelectEnvironment, useSelectOrganization, useSelectProject, useSendAffiliateInvitation, useSendReviewerMessage, useSession, useShowcaseProjectAPI, useSignInMagicLink, useSignInPasskey, useSignInSSO, useStartRecursiveAudit, useStopTranslationJob, useStripeAPI, useSubmitReview, useSubmitShowcaseProject, useSubscribeToNewsletter, useTagAPI, useToggleShowcaseDownvote, useToggleShowcaseUpvote, useTranslateAPI, useTranslateJSONDeclaration, useTriggerBuild, useTriggerWebhook, useUnlinkAccount, useUnselectOrganization, useUnselectProject, useUnsubscribeFromNewsletter, useUpdateAffiliateStatus, useUpdateAsset, useUpdateDictionary, useUpdateEnvironment, useUpdateMemberAccess, useUpdateMissionStatus, useUpdateOrganization, useUpdateOrganizationMailerConfig, useUpdateOrganizationMembers, useUpdateOrganizationMembersById, useUpdateProject, useUpdateProjectMembers, useUpdatePromoCode, useUpdateReviewerProfile, useUpdateShowcaseProject, useUpdateTag, useUpdateUser, useUploadAsset, useUploadReviewerCoverPicture, useUploadReviewerMainPicture, useUploadUserAvatar, useUser, useUserAPI, useValidateReviewerProfile, useVerifyBackupCode, useVerifyEmail, useVerifyTotp, useWriteDictionary };
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
 
3
3
  import { useIsAuthFetchEnabled } from "../../providers/DeferredAuthProvider.mjs";
4
- import { editor } from "@intlayer/config/built";
5
4
  import { useQuery } from "@tanstack/react-query";
6
5
  import { getOAuthAPI } from "@intlayer/api";
7
6
  import { useConfiguration } from "@intlayer/editor-react";
7
+ import { editor } from "@intlayer/config/built";
8
8
  import { defu } from "defu";
9
9
 
10
10
  //#region src/api/useAuth/useOAuth2.ts
@@ -2,9 +2,9 @@
2
2
 
3
3
  import { getAuthAPI } from "../../libs/auth.mjs";
4
4
  import { useIsAuthFetchEnabled } from "../../providers/DeferredAuthProvider.mjs";
5
- import { editor } from "@intlayer/config/built";
6
5
  import { useQuery, useQueryClient } from "@tanstack/react-query";
7
6
  import { useConfiguration } from "@intlayer/editor-react";
7
+ import { editor } from "@intlayer/config/built";
8
8
 
9
9
  //#region src/api/useAuth/useSession.ts
10
10
  const useSession = (sessionProp, intlayerConfiguration) => {
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
- import { useAuth } from "../useAuth/useAuth.mjs";
4
3
  import { useLogout } from "../hooks/auth.mjs";
4
+ import { useAuth } from "../useAuth/useAuth.mjs";
5
5
 
6
6
  //#region src/api/useUser/index.ts
7
7
  const useUser = () => {
@@ -3,9 +3,9 @@
3
3
  import { cn } from "../../utils/cn.mjs";
4
4
  import { Button } from "../Button/Button.mjs";
5
5
  import { MaxHeightSmoother } from "../MaxHeightSmoother/index.mjs";
6
+ import { ChevronDown } from "lucide-react";
6
7
  import { useId, useState } from "react";
7
8
  import { jsx, jsxs } from "react/jsx-runtime";
8
- import { ChevronDown } from "lucide-react";
9
9
 
10
10
  //#region src/components/Accordion/Accordion.tsx
11
11
  /**
@@ -1,8 +1,8 @@
1
1
  import { cn } from "../../utils/cn.mjs";
2
2
  import { Loader } from "../Loader/index.mjs";
3
+ import { User } from "lucide-react";
3
4
  import { useMemo } from "react";
4
5
  import { jsx, jsxs } from "react/jsx-runtime";
5
- import { User } from "lucide-react";
6
6
 
7
7
  //#region src/components/Avatar/index.tsx
8
8
  /**
@@ -1,6 +1,6 @@
1
1
  import { cn } from "../../utils/cn.mjs";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
2
  import { cva } from "class-variance-authority";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
4
 
5
5
  //#region src/components/Badge/index.tsx
6
6
  /**
@@ -3,10 +3,10 @@
3
3
  import { cn } from "../../utils/cn.mjs";
4
4
  import { Button } from "../Button/Button.mjs";
5
5
  import { Link } from "../Link/Link.mjs";
6
+ import { ChevronRightIcon } from "lucide-react";
6
7
  import { Fragment, createElement } from "react";
7
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
8
  import { cva } from "class-variance-authority";
9
- import { ChevronRightIcon } from "lucide-react";
9
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
10
10
  import { getIntlayer } from "intlayer";
11
11
  import { useIntlayer } from "react-intlayer";
12
12
 
@@ -6,9 +6,9 @@ import { Container } from "../Container/index.mjs";
6
6
  import { ClickOutsideDiv } from "../ClickOutsideDiv/index.mjs";
7
7
  import { DropDown } from "../DropDown/index.mjs";
8
8
  import { Input, inputVariants } from "../Input/Input.mjs";
9
+ import { ArrowLeft, ArrowRight, RotateCw, ScanSearch } from "lucide-react";
9
10
  import { useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
10
11
  import { jsx, jsxs } from "react/jsx-runtime";
11
- import { ArrowLeft, ArrowRight, RotateCw, ScanSearch } from "lucide-react";
12
12
  import { useIntlayer } from "react-intlayer";
13
13
 
14
14
  //#region src/components/Browser/Browser.tsx
@@ -1,41 +1,46 @@
1
1
  //#region src/components/Browser/extractUrlFromSitemap.ts
2
- const fetchWithTimeout = (url, timeout = 5e3) => {
2
+ const fetchTextWithTimeout = async (url, timeoutInMilliseconds) => {
3
3
  const controller = new AbortController();
4
- const id = setTimeout(() => controller.abort(), timeout);
5
- return fetch(url, { signal: controller.signal }).finally(() => clearTimeout(id));
4
+ const timeoutId = setTimeout(() => controller.abort(), timeoutInMilliseconds);
5
+ try {
6
+ const response = await fetch(url, { signal: controller.signal });
7
+ if (!response.ok) return null;
8
+ return await response.text();
9
+ } catch {
10
+ return null;
11
+ } finally {
12
+ clearTimeout(timeoutId);
13
+ }
6
14
  };
7
15
  const parseLocs = (xml) => {
8
16
  return (xml.match(/<loc>([\s\S]*?)<\/loc>/g) ?? []).map((m) => m.replace(/<\/?loc>/g, "").trim()).filter(Boolean);
9
17
  };
10
- const fetchSitemapUrls = async (sitemapUrl, visited) => {
18
+ const fetchSitemapUrls = async (sitemapUrl, visited, fetchText) => {
11
19
  if (visited.has(sitemapUrl)) return [];
12
20
  visited.add(sitemapUrl);
13
- try {
14
- const res = await fetchWithTimeout(sitemapUrl);
15
- if (!res.ok) return [];
16
- const xml = await res.text();
17
- if (xml.includes("<sitemapindex")) {
18
- const childUrls = parseLocs(xml);
19
- return (await Promise.all(childUrls.map((url) => fetchSitemapUrls(url, visited)))).flat();
20
- }
21
- return parseLocs(xml);
22
- } catch {
23
- return [];
21
+ const xml = await fetchText(sitemapUrl, 5e3);
22
+ if (!xml) return [];
23
+ if (xml.includes("<sitemapindex")) {
24
+ const childUrls = parseLocs(xml);
25
+ return (await Promise.all(childUrls.map((url) => fetchSitemapUrls(url, visited, fetchText)))).flat();
24
26
  }
27
+ return parseLocs(xml);
25
28
  };
26
- const extractUrlFromSitemap = async (pageUrl) => {
29
+ /**
30
+ * Lists every page URL of the site hosting `pageUrl`, following the sitemaps
31
+ * declared in `robots.txt` (or `/sitemap.xml`) and nested sitemap indexes.
32
+ */
33
+ const extractUrlFromSitemap = async (pageUrl, { fetchText = fetchTextWithTimeout } = {}) => {
27
34
  const origin = new URL(pageUrl).origin;
28
35
  const candidateUrls = [];
29
- try {
30
- const res = await fetchWithTimeout(`${origin}/robots.txt`, 3e3);
31
- if (res.ok) ((await res.text()).match(/^Sitemap:\s*(.+)$/gim) ?? []).forEach((m) => {
32
- const url = m.replace(/^Sitemap:\s*/i, "").trim();
33
- if (url) candidateUrls.push(url);
34
- });
35
- } catch {}
36
+ const robotsText = await fetchText(`${origin}/robots.txt`, 3e3);
37
+ if (robotsText) (robotsText.match(/^Sitemap:\s*(.+)$/gim) ?? []).forEach((m) => {
38
+ const url = m.replace(/^Sitemap:\s*/i, "").trim();
39
+ if (url) candidateUrls.push(url);
40
+ });
36
41
  if (candidateUrls.length === 0) candidateUrls.push(`${origin}/sitemap.xml`);
37
42
  const visited = /* @__PURE__ */ new Set();
38
- const results = await Promise.all(candidateUrls.map((url) => fetchSitemapUrls(url, visited)));
43
+ const results = await Promise.all(candidateUrls.map((url) => fetchSitemapUrls(url, visited, fetchText)));
39
44
  return Array.from(new Set(results.flat())).sort();
40
45
  };
41
46
 
@@ -1 +1 @@
1
- {"version":3,"file":"extractUrlFromSitemap.mjs","names":[],"sources":["../../../../src/components/Browser/extractUrlFromSitemap.ts"],"sourcesContent":["const fetchWithTimeout = (url: string, timeout = 5000): Promise<Response> => {\n const controller = new AbortController();\n const id = setTimeout(() => controller.abort(), timeout);\n return fetch(url, { signal: controller.signal }).finally(() =>\n clearTimeout(id)\n );\n};\n\nconst parseLocs = (xml: string): string[] => {\n const matches = xml.match(/<loc>([\\s\\S]*?)<\\/loc>/g) ?? [];\n return matches.map((m) => m.replace(/<\\/?loc>/g, '').trim()).filter(Boolean);\n};\n\nconst fetchSitemapUrls = async (\n sitemapUrl: string,\n visited: Set<string>\n): Promise<string[]> => {\n if (visited.has(sitemapUrl)) return [];\n visited.add(sitemapUrl);\n\n try {\n const res = await fetchWithTimeout(sitemapUrl);\n if (!res.ok) return [];\n const xml = await res.text();\n\n if (xml.includes('<sitemapindex')) {\n const childUrls = parseLocs(xml);\n const results = await Promise.all(\n childUrls.map((url) => fetchSitemapUrls(url, visited))\n );\n return results.flat();\n }\n\n return parseLocs(xml);\n } catch {\n return [];\n }\n};\n\nexport const extractUrlFromSitemap = async (\n pageUrl: string\n): Promise<string[]> => {\n const origin = new URL(pageUrl).origin;\n const candidateUrls: string[] = [];\n\n try {\n const res = await fetchWithTimeout(`${origin}/robots.txt`, 3000);\n if (res.ok) {\n const text = await res.text();\n const matches = text.match(/^Sitemap:\\s*(.+)$/gim) ?? [];\n matches.forEach((m) => {\n const url = m.replace(/^Sitemap:\\s*/i, '').trim();\n if (url) candidateUrls.push(url);\n });\n }\n } catch {\n // Ignore network / CORS errors for robots.txt\n }\n\n if (candidateUrls.length === 0) {\n candidateUrls.push(`${origin}/sitemap.xml`);\n }\n\n const visited = new Set<string>();\n const results = await Promise.all(\n candidateUrls.map((url) => fetchSitemapUrls(url, visited))\n );\n\n return Array.from(new Set(results.flat())).sort();\n};\n"],"mappings":";AAAA,MAAM,oBAAoB,KAAa,UAAU,QAA4B;CAC3E,MAAM,aAAa,IAAI,gBAAgB;CACvC,MAAM,KAAK,iBAAiB,WAAW,MAAM,GAAG,OAAO;CACvD,OAAO,MAAM,KAAK,EAAE,QAAQ,WAAW,OAAO,CAAC,CAAC,CAAC,cAC/C,aAAa,EAAE,CACjB;AACF;AAEA,MAAM,aAAa,QAA0B;CAE3C,QADgB,IAAI,MAAM,yBAAyB,KAAK,CAAC,EAC3C,CAAC,KAAK,MAAM,EAAE,QAAQ,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO;AAC7E;AAEA,MAAM,mBAAmB,OACvB,YACA,YACsB;CACtB,IAAI,QAAQ,IAAI,UAAU,GAAG,OAAO,CAAC;CACrC,QAAQ,IAAI,UAAU;CAEtB,IAAI;EACF,MAAM,MAAM,MAAM,iBAAiB,UAAU;EAC7C,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;EACrB,MAAM,MAAM,MAAM,IAAI,KAAK;EAE3B,IAAI,IAAI,SAAS,eAAe,GAAG;GACjC,MAAM,YAAY,UAAU,GAAG;GAI/B,QAAO,MAHe,QAAQ,IAC5B,UAAU,KAAK,QAAQ,iBAAiB,KAAK,OAAO,CAAC,CACvD,EACc,CAAC,KAAK;EACtB;EAEA,OAAO,UAAU,GAAG;CACtB,QAAQ;EACN,OAAO,CAAC;CACV;AACF;AAEA,MAAa,wBAAwB,OACnC,YACsB;CACtB,MAAM,SAAS,IAAI,IAAI,OAAO,CAAC,CAAC;CAChC,MAAM,gBAA0B,CAAC;CAEjC,IAAI;EACF,MAAM,MAAM,MAAM,iBAAiB,GAAG,OAAO,cAAc,GAAI;EAC/D,IAAI,IAAI,IAGN,EADgB,MADG,IAAI,KAAK,EACR,CAAC,MAAM,sBAAsB,KAAK,CAAC,EAChD,CAAC,SAAS,MAAM;GACrB,MAAM,MAAM,EAAE,QAAQ,iBAAiB,EAAE,CAAC,CAAC,KAAK;GAChD,IAAI,KAAK,cAAc,KAAK,GAAG;EACjC,CAAC;CAEL,QAAQ,CAER;CAEA,IAAI,cAAc,WAAW,GAC3B,cAAc,KAAK,GAAG,OAAO,aAAa;CAG5C,MAAM,0BAAU,IAAI,IAAY;CAChC,MAAM,UAAU,MAAM,QAAQ,IAC5B,cAAc,KAAK,QAAQ,iBAAiB,KAAK,OAAO,CAAC,CAC3D;CAEA,OAAO,MAAM,KAAK,IAAI,IAAI,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;AAClD"}
1
+ {"version":3,"file":"extractUrlFromSitemap.mjs","names":[],"sources":["../../../../src/components/Browser/extractUrlFromSitemap.ts"],"sourcesContent":["/**\n * Fetches the body of a URL as text, or `null` when the request fails.\n * Injectable so callers that cannot `fetch` cross-origin directly (e.g. a\n * browser extension popup) can proxy the request through the inspected page.\n */\nexport type SitemapTextFetcher = (\n url: string,\n timeoutInMilliseconds: number\n) => Promise<string | null>;\n\nexport type ExtractUrlFromSitemapOptions = {\n /** Defaults to a plain `fetch` with an abort timeout. */\n fetchText?: SitemapTextFetcher;\n};\n\nconst fetchTextWithTimeout: SitemapTextFetcher = async (\n url,\n timeoutInMilliseconds\n) => {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeoutInMilliseconds);\n\n try {\n const response = await fetch(url, { signal: controller.signal });\n if (!response.ok) return null;\n return await response.text();\n } catch {\n return null;\n } finally {\n clearTimeout(timeoutId);\n }\n};\n\nconst parseLocs = (xml: string): string[] => {\n const matches = xml.match(/<loc>([\\s\\S]*?)<\\/loc>/g) ?? [];\n return matches.map((m) => m.replace(/<\\/?loc>/g, '').trim()).filter(Boolean);\n};\n\nconst fetchSitemapUrls = async (\n sitemapUrl: string,\n visited: Set<string>,\n fetchText: SitemapTextFetcher\n): Promise<string[]> => {\n if (visited.has(sitemapUrl)) return [];\n visited.add(sitemapUrl);\n\n const xml = await fetchText(sitemapUrl, 5000);\n if (!xml) return [];\n\n if (xml.includes('<sitemapindex')) {\n const childUrls = parseLocs(xml);\n const results = await Promise.all(\n childUrls.map((url) => fetchSitemapUrls(url, visited, fetchText))\n );\n return results.flat();\n }\n\n return parseLocs(xml);\n};\n\n/**\n * Lists every page URL of the site hosting `pageUrl`, following the sitemaps\n * declared in `robots.txt` (or `/sitemap.xml`) and nested sitemap indexes.\n */\nexport const extractUrlFromSitemap = async (\n pageUrl: string,\n { fetchText = fetchTextWithTimeout }: ExtractUrlFromSitemapOptions = {}\n): Promise<string[]> => {\n const origin = new URL(pageUrl).origin;\n const candidateUrls: string[] = [];\n\n const robotsText = await fetchText(`${origin}/robots.txt`, 3000);\n if (robotsText) {\n const matches = robotsText.match(/^Sitemap:\\s*(.+)$/gim) ?? [];\n matches.forEach((m) => {\n const url = m.replace(/^Sitemap:\\s*/i, '').trim();\n if (url) candidateUrls.push(url);\n });\n }\n\n if (candidateUrls.length === 0) {\n candidateUrls.push(`${origin}/sitemap.xml`);\n }\n\n const visited = new Set<string>();\n const results = await Promise.all(\n candidateUrls.map((url) => fetchSitemapUrls(url, visited, fetchText))\n );\n\n return Array.from(new Set(results.flat())).sort();\n};\n"],"mappings":";AAeA,MAAM,uBAA2C,OAC/C,KACA,0BACG;CACH,MAAM,aAAa,IAAI,gBAAgB;CACvC,MAAM,YAAY,iBAAiB,WAAW,MAAM,GAAG,qBAAqB;CAE5E,IAAI;EACF,MAAM,WAAW,MAAM,MAAM,KAAK,EAAE,QAAQ,WAAW,OAAO,CAAC;EAC/D,IAAI,CAAC,SAAS,IAAI,OAAO;EACzB,OAAO,MAAM,SAAS,KAAK;CAC7B,QAAQ;EACN,OAAO;CACT,UAAU;EACR,aAAa,SAAS;CACxB;AACF;AAEA,MAAM,aAAa,QAA0B;CAE3C,QADgB,IAAI,MAAM,yBAAyB,KAAK,CAAC,EAC3C,CAAC,KAAK,MAAM,EAAE,QAAQ,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO;AAC7E;AAEA,MAAM,mBAAmB,OACvB,YACA,SACA,cACsB;CACtB,IAAI,QAAQ,IAAI,UAAU,GAAG,OAAO,CAAC;CACrC,QAAQ,IAAI,UAAU;CAEtB,MAAM,MAAM,MAAM,UAAU,YAAY,GAAI;CAC5C,IAAI,CAAC,KAAK,OAAO,CAAC;CAElB,IAAI,IAAI,SAAS,eAAe,GAAG;EACjC,MAAM,YAAY,UAAU,GAAG;EAI/B,QAAO,MAHe,QAAQ,IAC5B,UAAU,KAAK,QAAQ,iBAAiB,KAAK,SAAS,SAAS,CAAC,CAClE,EACc,CAAC,KAAK;CACtB;CAEA,OAAO,UAAU,GAAG;AACtB;;;;;AAMA,MAAa,wBAAwB,OACnC,SACA,EAAE,YAAY,yBAAuD,CAAC,MAChD;CACtB,MAAM,SAAS,IAAI,IAAI,OAAO,CAAC,CAAC;CAChC,MAAM,gBAA0B,CAAC;CAEjC,MAAM,aAAa,MAAM,UAAU,GAAG,OAAO,cAAc,GAAI;CAC/D,IAAI,YAEF,CADgB,WAAW,MAAM,sBAAsB,KAAK,CAAC,EACtD,CAAC,SAAS,MAAM;EACrB,MAAM,MAAM,EAAE,QAAQ,iBAAiB,EAAE,CAAC,CAAC,KAAK;EAChD,IAAI,KAAK,cAAc,KAAK,GAAG;CACjC,CAAC;CAGH,IAAI,cAAc,WAAW,GAC3B,cAAc,KAAK,GAAG,OAAO,aAAa;CAG5C,MAAM,0BAAU,IAAI,IAAY;CAChC,MAAM,UAAU,MAAM,QAAQ,IAC5B,cAAc,KAAK,QAAQ,iBAAiB,KAAK,SAAS,SAAS,CAAC,CACtE;CAEA,OAAO,MAAM,KAAK,IAAI,IAAI,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;AAClD"}
@@ -1,3 +1,4 @@
1
1
  import { Browser } from "./Browser.mjs";
2
+ import { extractUrlFromSitemap } from "./extractUrlFromSitemap.mjs";
2
3
 
3
- export { Browser };
4
+ export { Browser, extractUrlFromSitemap };
@@ -1,7 +1,7 @@
1
1
  import { cn } from "../../utils/cn.mjs";
2
2
  import { Loader } from "../Loader/index.mjs";
3
- import { jsx, jsxs } from "react/jsx-runtime";
4
3
  import { cva } from "class-variance-authority";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
5
 
6
6
  //#region src/components/Button/Button.tsx
7
7
  const buttonIconVariants = cva("flex-none shrink-0", {
@@ -4,9 +4,9 @@ import { cn } from "../../utils/cn.mjs";
4
4
  import { Button } from "../Button/Button.mjs";
5
5
  import { KeyboardShortcut } from "../KeyboardShortcut/KeyboardShortcut.mjs";
6
6
  import { Popover } from "../Popover/dynamic.mjs";
7
+ import { ChevronLeft, ChevronRight } from "lucide-react";
7
8
  import { Children, createContext, isValidElement, useContext, useEffect, useLayoutEffect, useRef, useState } from "react";
8
9
  import { jsx, jsxs } from "react/jsx-runtime";
9
- import { ChevronLeft, ChevronRight } from "lucide-react";
10
10
  import { useIntlayer } from "react-intlayer";
11
11
 
12
12
  //#region src/components/Carousel/index.tsx
@@ -2,10 +2,10 @@
2
2
 
3
3
  import { cn } from "../../utils/cn.mjs";
4
4
  import { MaxHeightSmoother } from "../MaxHeightSmoother/index.mjs";
5
+ import { ChevronRight } from "lucide-react";
5
6
  import { useState } from "react";
6
- import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { cva } from "class-variance-authority";
8
- import { ChevronRight } from "lucide-react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
9
 
10
10
  //#region src/components/CollapsibleTable/CollapsibleTable.tsx
11
11
  const collapsibleTableVariants = cva("w-full max-w-full overflow-hidden rounded-lg border bg-card", {
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
 
3
3
  import { cn } from "../../utils/cn.mjs";
4
- import { jsx, jsxs } from "react/jsx-runtime";
5
4
  import { Search } from "lucide-react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { Dialog, DialogContent } from "@radix-ui/react-dialog";
7
7
  import { Command as Command$1 } from "cmdk";
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { cn } from "../../utils/cn.mjs";
2
- import { jsx } from "react/jsx-runtime";
3
2
  import { cva } from "class-variance-authority";
3
+ import { jsx } from "react/jsx-runtime";
4
4
 
5
5
  //#region src/components/Container/index.tsx
6
6
  /**
@@ -2,9 +2,9 @@
2
2
 
3
3
  import { cn } from "../../utils/cn.mjs";
4
4
  import { AutoSizedTextArea } from "../TextArea/AutoSizeTextArea.mjs";
5
+ import { Check, X } from "lucide-react";
5
6
  import { useState } from "react";
6
7
  import { jsx, jsxs } from "react/jsx-runtime";
7
- import { Check, X } from "lucide-react";
8
8
 
9
9
  //#region src/components/ContentEditor/ContentEditor.tsx
10
10
  /**
@@ -2,9 +2,9 @@
2
2
 
3
3
  import { Button } from "../Button/Button.mjs";
4
4
  import { Input } from "../Input/Input.mjs";
5
+ import { Check, X } from "lucide-react";
5
6
  import { useEffect, useState } from "react";
6
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
- import { Check, X } from "lucide-react";
8
8
 
9
9
  //#region src/components/ContentEditor/ContentEditorInput.tsx
10
10
  /**
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
 
3
- import { useUser } from "../../api/useUser/index.mjs";
4
3
  import { Button } from "../Button/Button.mjs";
4
+ import { useUser } from "../../api/useUser/index.mjs";
5
5
  import { AutoCompleteTextarea } from "../TextArea/AutocompleteTextArea.mjs";
6
+ import { Check, X } from "lucide-react";
6
7
  import { useEffect, useState } from "react";
7
8
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
- import { Check, X } from "lucide-react";
9
9
 
10
10
  //#region src/components/ContentEditor/ContentEditorTextArea.tsx
11
11
  /**
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
 
3
3
  import { Button } from "../Button/Button.mjs";
4
+ import { CopyCheckIcon, CopyIcon } from "lucide-react";
4
5
  import { useEffect, useState } from "react";
5
6
  import { jsx } from "react/jsx-runtime";
6
- import { CopyCheckIcon, CopyIcon } from "lucide-react";
7
7
  import { useIntlayer } from "react-intlayer";
8
8
 
9
9
  //#region src/components/CopyButton/index.tsx
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
 
3
3
  import { cn } from "../../utils/cn.mjs";
4
+ import { CopyCheck, CopyIcon } from "lucide-react";
4
5
  import { useState } from "react";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
6
- import { CopyCheck, CopyIcon } from "lucide-react";
7
7
 
8
8
  //#region src/components/CopyToClipboard/index.tsx
9
9
  const useCopyToClipboard = (text, feedbackDuration = 2e3, onCopySuccess, onCopyError) => {
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
- import { useAuditContentDeclarationField } from "../../../api/hooks/ai.mjs";
4
3
  import { Loader } from "../../Loader/index.mjs";
5
4
  import { Button } from "../../Button/Button.mjs";
6
5
  import { Accordion } from "../../Accordion/Accordion.mjs";
@@ -8,17 +7,18 @@ import { Container } from "../../Container/index.mjs";
8
7
  import { ContentEditorInput as ContentEditorInput$1 } from "../../ContentEditor/ContentEditorInput.mjs";
9
8
  import { ContentEditorTextArea as ContentEditorTextArea$1 } from "../../ContentEditor/ContentEditorTextArea.mjs";
10
9
  import { SwitchSelector } from "../../SwitchSelector/SwitchSelector.mjs";
10
+ import { useAuditContentDeclarationField } from "../../../api/hooks/ai.mjs";
11
11
  import { renameKey } from "./object.mjs";
12
12
  import { Label } from "../../Label/index.mjs";
13
13
  import { useLocaleSwitcherContent } from "../../LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs";
14
14
  import { EnumKeyInput } from "../EnumKeyInput.mjs";
15
15
  import { SafeHtmlRenderer } from "./SafeHtmlRenderer.mjs";
16
+ import { Plus, Trash, WandSparkles } from "lucide-react";
16
17
  import { Fragment, Suspense, lazy, memo, useState } from "react";
17
18
  import { jsx, jsxs } from "react/jsx-runtime";
18
- import { Plus, Trash, WandSparkles } from "lucide-react";
19
- import { useConfiguration, useEditedContent } from "@intlayer/editor-react";
20
19
  import { useIntlayer, useLocale } from "react-intlayer";
21
20
  import { getLocaleName } from "@intlayer/core/localization";
21
+ import { useConfiguration, useEditedContent } from "@intlayer/editor-react";
22
22
  import { getEmptyNode, getNodeType } from "@intlayer/core/dictionaryManipulator";
23
23
  import * as NodeTypes from "@intlayer/types/nodeType";
24
24
  import { camelCaseToSentence } from "@intlayer/config/client";
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
 
3
+ import { Button } from "../../Button/Button.mjs";
3
4
  import { useSession } from "../../../api/useAuth/useSession.mjs";
4
5
  import { useAddDictionary } from "../../../api/hooks/dictionary.mjs";
5
6
  import { useGetProjects } from "../../../api/hooks/project.mjs";
6
- import { Button } from "../../Button/Button.mjs";
7
7
  import { MultiSelect } from "../../Select/Multiselect.mjs";
8
8
  import { Select } from "../../Select/Select.mjs";
9
9
  import { InputElement } from "../../Form/elements/InputElement.mjs";
@@ -1,16 +1,16 @@
1
1
  'use client';
2
2
 
3
3
  import { cn } from "../../../utils/cn.mjs";
4
- import { useSession } from "../../../api/useAuth/useSession.mjs";
5
- import { useAuditContentDeclarationMetadata } from "../../../api/hooks/ai.mjs";
6
- import { useGetDictionaries } from "../../../api/hooks/dictionary.mjs";
7
- import { useGetProjects } from "../../../api/hooks/project.mjs";
8
- import { useGetTags } from "../../../api/hooks/tag.mjs";
9
4
  import { Loader } from "../../Loader/index.mjs";
10
5
  import { Button } from "../../Button/Button.mjs";
11
6
  import { Container } from "../../Container/index.mjs";
12
7
  import { Checkbox } from "../../Input/Checkbox.mjs";
13
8
  import { Input } from "../../Input/Input.mjs";
9
+ import { useSession } from "../../../api/useAuth/useSession.mjs";
10
+ import { useAuditContentDeclarationMetadata } from "../../../api/hooks/ai.mjs";
11
+ import { useGetDictionaries } from "../../../api/hooks/dictionary.mjs";
12
+ import { useGetProjects } from "../../../api/hooks/project.mjs";
13
+ import { useGetTags } from "../../../api/hooks/tag.mjs";
14
14
  import { MultiSelect } from "../../Select/Multiselect.mjs";
15
15
  import { Select } from "../../Select/Select.mjs";
16
16
  import { FormItem } from "../../Form/FormItem.mjs";
@@ -27,11 +27,11 @@ import { useForm as useForm$1 } from "../../Form/FormBase.mjs";
27
27
  import { Form } from "../../Form/Form.mjs";
28
28
  import { Pagination } from "../../Pagination/Pagination.mjs";
29
29
  import { useDictionaryDetailsSchema } from "./useDictionaryDetailsSchema.mjs";
30
+ import { WandSparkles } from "lucide-react";
30
31
  import { useEffect, useMemo, useState } from "react";
31
32
  import { jsx, jsxs } from "react/jsx-runtime";
32
- import { WandSparkles } from "lucide-react";
33
- import { useEditedContent } from "@intlayer/editor-react";
34
33
  import { useIntlayer } from "react-intlayer";
34
+ import { useEditedContent } from "@intlayer/editor-react";
35
35
  import { useWatch } from "react-hook-form";
36
36
  import { AnimatePresence, motion } from "framer-motion";
37
37
 
@@ -10,11 +10,11 @@ import { JSONEditor } from "./JSONEditor.mjs";
10
10
  import { NodeEditor } from "./NodeEditor.mjs";
11
11
  import { SaveForm } from "./SaveForm/SaveForm.mjs";
12
12
  import { StructureEditor } from "./StructureEditor.mjs";
13
+ import { ArrowLeft } from "lucide-react";
13
14
  import { useEffect, useState } from "react";
14
15
  import { jsx, jsxs } from "react/jsx-runtime";
15
- import { ArrowLeft } from "lucide-react";
16
- import { useConfiguration, useDictionariesRecordActions, useFocusUnmergedDictionary } from "@intlayer/editor-react";
17
16
  import { useIntlayer } from "react-intlayer";
17
+ import { useConfiguration, useDictionariesRecordActions, useFocusUnmergedDictionary } from "@intlayer/editor-react";
18
18
 
19
19
  //#region src/components/DictionaryFieldEditor/DictionaryFieldEditor.tsx
20
20
  const DictionaryFieldEditor = ({ dictionary, onClickDictionaryList, isDarkMode, mode, onDelete, onSave, showReturnButton = true, rightContent }) => {
@@ -2,11 +2,11 @@ import { Button } from "../../Button/Button.mjs";
2
2
  import { Accordion } from "../../Accordion/Accordion.mjs";
3
3
  import { useLocaleSwitcherContent } from "../../LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs";
4
4
  import { getIsEditableSection } from "../getIsEditableSection.mjs";
5
+ import { ChevronRight, Plus } from "lucide-react";
5
6
  import { useState } from "react";
6
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
- import { ChevronRight, Plus } from "lucide-react";
8
- import { useEditedContentActions, useEditorLocale, useFocusUnmergedDictionary } from "@intlayer/editor-react";
9
8
  import { useIntlayer } from "react-intlayer";
9
+ import { useEditedContentActions, useEditorLocale, useFocusUnmergedDictionary } from "@intlayer/editor-react";
10
10
  import { getContentNodeByKeyPath, getEmptyNode, getNodeType } from "@intlayer/core/dictionaryManipulator";
11
11
  import * as NodeTypes from "@intlayer/types/nodeType";
12
12
  import { isSameKeyPath } from "@intlayer/core/utils";
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
- import { useGetDictionaries } from "../../api/hooks/dictionary.mjs";
4
3
  import { Container } from "../Container/index.mjs";
4
+ import { useGetDictionaries } from "../../api/hooks/dictionary.mjs";
5
5
  import { LocaleSwitcherContent } from "../LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs";
6
6
  import { TextEditorContainer } from "./ContentEditorView/TextEditor.mjs";
7
7
  import { Pagination } from "../Pagination/Pagination.mjs";
@@ -10,8 +10,8 @@ import { KeyPathBreadcrumb } from "./KeyPathBreadcrumb.mjs";
10
10
  import { NavigationViewNode } from "./NavigationView/NavigationViewNode.mjs";
11
11
  import { useCallback, useDeferredValue, useEffect, useMemo, useState, useTransition } from "react";
12
12
  import { jsx, jsxs } from "react/jsx-runtime";
13
- import { useEditedContent, useEditorLocale, useFocusUnmergedDictionary } from "@intlayer/editor-react";
14
13
  import { useIntlayer } from "react-intlayer";
14
+ import { useEditedContent, useEditorLocale, useFocusUnmergedDictionary } from "@intlayer/editor-react";
15
15
  import { getContentNodeByKeyPath } from "@intlayer/core/dictionaryManipulator";
16
16
 
17
17
  //#region src/components/DictionaryFieldEditor/NodeEditor.tsx
@@ -1,17 +1,17 @@
1
1
  'use client';
2
2
 
3
3
  import { cn } from "../../../utils/cn.mjs";
4
+ import { Button } from "../../Button/Button.mjs";
4
5
  import { useSession } from "../../../api/useAuth/useSession.mjs";
5
6
  import { useAuth } from "../../../api/useAuth/useAuth.mjs";
6
7
  import { useDeleteDictionary, usePushDictionaries } from "../../../api/hooks/dictionary.mjs";
7
8
  import { useWriteDictionary } from "../../../api/hooks/editor.mjs";
8
- import { Button } from "../../Button/Button.mjs";
9
9
  import { Modal } from "../../Modal/Modal.mjs";
10
+ import { ArrowUpFromLine, Download, RotateCcw, Save, Trash } from "lucide-react";
10
11
  import { useState } from "react";
11
12
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
12
- import { ArrowUpFromLine, Download, RotateCcw, Save, Trash } from "lucide-react";
13
- import { useDictionariesRecordActions, useEditedContent } from "@intlayer/editor-react";
14
13
  import { useIntlayer } from "react-intlayer";
14
+ import { useDictionariesRecordActions, useEditedContent } from "@intlayer/editor-react";
15
15
 
16
16
  //#region src/components/DictionaryFieldEditor/SaveForm/SaveForm.tsx
17
17
  const SaveForm = ({ dictionary, mode, className, onDelete, onSave, ...props }) => {
@@ -4,10 +4,10 @@ import { Button } from "../../Button/Button.mjs";
4
4
  import { Container } from "../../Container/index.mjs";
5
5
  import { EditableFieldInput } from "../../EditableField/EditableFieldInput.mjs";
6
6
  import { NodeTypeSelector } from "../NodeTypeSelector.mjs";
7
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
7
  import { Plus, Trash } from "lucide-react";
9
- import { useConfiguration, useEditedContentActions, useFocusUnmergedDictionary } from "@intlayer/editor-react";
8
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
9
  import { useIntlayer } from "react-intlayer";
10
+ import { useConfiguration, useEditedContentActions, useFocusUnmergedDictionary } from "@intlayer/editor-react";
11
11
  import { getDefaultNode, getNodeChildren, getNodeType } from "@intlayer/core/dictionaryManipulator";
12
12
  import * as NodeTypes from "@intlayer/types/nodeType";
13
13
  import { isSameKeyPath } from "@intlayer/core/utils";
@@ -4,8 +4,8 @@ import { Button } from "../../Button/Button.mjs";
4
4
  import { Container } from "../../Container/index.mjs";
5
5
  import { DropDown } from "../../DropDown/index.mjs";
6
6
  import { useVersionSwitcher } from "./VersionSwitcherContext.mjs";
7
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
7
  import { MoveVertical } from "lucide-react";
8
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
9
  import { useIntlayer } from "react-intlayer";
10
10
 
11
11
  //#region src/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.tsx