@intlayer/design-system 9.5.0 → 9.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/api/index.mjs +2 -2
- package/dist/esm/api/useAuth/useOAuth2.mjs +1 -1
- package/dist/esm/api/useAuth/useSession.mjs +2 -2
- package/dist/esm/api/useUser/index.mjs +1 -1
- package/dist/esm/components/ContentEditor/ContentEditorTextArea.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +2 -2
- package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +6 -6
- package/dist/esm/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/NodeEditor.mjs +2 -2
- package/dist/esm/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +2 -2
- package/dist/esm/components/DictionaryFieldEditor/StructureView/StructureView.mjs +1 -1
- package/dist/esm/components/MarkDownRender/MarkDownIframe.mjs +53 -61
- package/dist/esm/components/MarkDownRender/MarkDownIframe.mjs.map +1 -1
- package/dist/esm/components/MarkDownRender/index.mjs +2 -1
- package/dist/esm/components/MarkDownRender/youtubeUrl.mjs +22 -0
- package/dist/esm/components/MarkDownRender/youtubeUrl.mjs.map +1 -0
- package/dist/esm/components/index.mjs +2 -1
- package/dist/esm/routes.mjs +3 -1
- package/dist/esm/routes.mjs.map +1 -1
- package/dist/types/components/MarkDownRender/MarkDownIframe.d.ts.map +1 -1
- package/dist/types/components/MarkDownRender/index.d.ts +2 -1
- package/dist/types/components/MarkDownRender/youtubeUrl.d.ts +17 -0
- package/dist/types/components/MarkDownRender/youtubeUrl.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +2 -1
- package/dist/types/routes.d.ts +2 -0
- package/dist/types/routes.d.ts.map +1 -1
- package/package.json +25 -25
package/dist/esm/api/index.mjs
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
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";
|
|
3
2
|
import { useOAuth2 } from "./useAuth/useOAuth2.mjs";
|
|
4
3
|
import { useSession } from "./useAuth/useSession.mjs";
|
|
5
4
|
import { useAuth } from "./useAuth/useAuth.mjs";
|
|
6
|
-
import { useUser } from "./useUser/index.mjs";
|
|
7
5
|
import { useAskDocQuestion, useAuditContentDeclaration, useAuditContentDeclarationField, useAuditContentDeclarationMetadata, useAuditTag, useAutocomplete, useChat, useCustomQuery, useGetAIStats, useTranslateJSONDeclaration } from "./hooks/ai.mjs";
|
|
8
6
|
import { useGetAnalyticsAudience, useGetContentStats, useGetExperimentResults } from "./hooks/analytics.mjs";
|
|
9
7
|
import { useDeleteAsset, useGetAssetById, useGetAssets, useUpdateAsset, useUploadAsset } from "./hooks/asset.mjs";
|
|
10
8
|
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";
|
|
11
10
|
import { useBitbucketAuth, useBitbucketCheckConfig, useBitbucketGetConfigFile, useBitbucketRepos } from "./hooks/bitbucket.mjs";
|
|
12
11
|
import { useAddDictionary, useDeleteDictionary, useGetDictionaries, useGetDictionariesKeys, useGetDictionary, useInfiniteGetDictionaries, usePushDictionaries, useUpdateDictionary } from "./hooks/dictionary.mjs";
|
|
13
12
|
import { useGetDiscussions, useGetDiscussionsData } from "./hooks/discussions.mjs";
|
|
@@ -25,5 +24,6 @@ import { useAcceptAffiliateInvitation, useCancelSubscription, useCreatePortalSes
|
|
|
25
24
|
import { useAddTag, useDeleteTag, useGetTags, useUpdateTag } from "./hooks/tag.mjs";
|
|
26
25
|
import { useFillAllTranslations, usePauseTranslationJob, useResumeTranslationJob, useStopTranslationJob } from "./hooks/translate.mjs";
|
|
27
26
|
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,8 +1,8 @@
|
|
|
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";
|
|
5
|
+
import { editor } from "@intlayer/config/built";
|
|
6
6
|
import { getOAuthAPI } from "@intlayer/api";
|
|
7
7
|
import { useConfiguration } from "@intlayer/editor-react";
|
|
8
8
|
import { defu } from "defu";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { getAuthAPI } from "../../libs/auth.mjs";
|
|
4
3
|
import { useIsAuthFetchEnabled } from "../../providers/DeferredAuthProvider.mjs";
|
|
5
|
-
import {
|
|
4
|
+
import { getAuthAPI } from "../../libs/auth.mjs";
|
|
6
5
|
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
6
|
+
import { editor } from "@intlayer/config/built";
|
|
7
7
|
import { useConfiguration } from "@intlayer/editor-react";
|
|
8
8
|
|
|
9
9
|
//#region src/api/useAuth/useSession.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { Button } from "../Button/Button.mjs";
|
|
4
3
|
import { useUser } from "../../api/useUser/index.mjs";
|
|
4
|
+
import { Button } from "../Button/Button.mjs";
|
|
5
5
|
import { AutoCompleteTextarea } from "../TextArea/AutocompleteTextArea.mjs";
|
|
6
6
|
import { useEffect, useState } from "react";
|
|
7
7
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
import { useAuditContentDeclarationField } from "../../../api/hooks/ai.mjs";
|
|
3
4
|
import { Loader } from "../../Loader/index.mjs";
|
|
4
5
|
import { Button } from "../../Button/Button.mjs";
|
|
5
6
|
import { Accordion } from "../../Accordion/Accordion.mjs";
|
|
@@ -7,7 +8,6 @@ import { Container } from "../../Container/index.mjs";
|
|
|
7
8
|
import { ContentEditorInput as ContentEditorInput$1 } from "../../ContentEditor/ContentEditorInput.mjs";
|
|
8
9
|
import { ContentEditorTextArea as ContentEditorTextArea$1 } from "../../ContentEditor/ContentEditorTextArea.mjs";
|
|
9
10
|
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";
|
|
@@ -16,9 +16,9 @@ import { SafeHtmlRenderer } from "./SafeHtmlRenderer.mjs";
|
|
|
16
16
|
import { Fragment, Suspense, lazy, memo, useState } from "react";
|
|
17
17
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
18
18
|
import { Plus, Trash, WandSparkles } from "lucide-react";
|
|
19
|
+
import { useConfiguration, useEditedContent } from "@intlayer/editor-react";
|
|
19
20
|
import { useIntlayer, useLocale } from "react-intlayer";
|
|
20
21
|
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";
|
package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { Button } from "../../Button/Button.mjs";
|
|
4
3
|
import { useSession } from "../../../api/useAuth/useSession.mjs";
|
|
5
4
|
import { useAddDictionary } from "../../../api/hooks/dictionary.mjs";
|
|
6
5
|
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";
|
package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { cn } from "../../../utils/cn.mjs";
|
|
4
|
-
import { Loader } from "../../Loader/index.mjs";
|
|
5
|
-
import { Button } from "../../Button/Button.mjs";
|
|
6
|
-
import { Container } from "../../Container/index.mjs";
|
|
7
|
-
import { Checkbox } from "../../Input/Checkbox.mjs";
|
|
8
|
-
import { Input } from "../../Input/Input.mjs";
|
|
9
4
|
import { useSession } from "../../../api/useAuth/useSession.mjs";
|
|
10
5
|
import { useAuditContentDeclarationMetadata } from "../../../api/hooks/ai.mjs";
|
|
11
6
|
import { useGetDictionaries } from "../../../api/hooks/dictionary.mjs";
|
|
12
7
|
import { useGetProjects } from "../../../api/hooks/project.mjs";
|
|
13
8
|
import { useGetTags } from "../../../api/hooks/tag.mjs";
|
|
9
|
+
import { Loader } from "../../Loader/index.mjs";
|
|
10
|
+
import { Button } from "../../Button/Button.mjs";
|
|
11
|
+
import { Container } from "../../Container/index.mjs";
|
|
12
|
+
import { Checkbox } from "../../Input/Checkbox.mjs";
|
|
13
|
+
import { Input } from "../../Input/Input.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";
|
|
@@ -30,8 +30,8 @@ import { useDictionaryDetailsSchema } from "./useDictionaryDetailsSchema.mjs";
|
|
|
30
30
|
import { useEffect, useMemo, useState } from "react";
|
|
31
31
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
32
32
|
import { WandSparkles } from "lucide-react";
|
|
33
|
-
import { useIntlayer } from "react-intlayer";
|
|
34
33
|
import { useEditedContent } from "@intlayer/editor-react";
|
|
34
|
+
import { useIntlayer } from "react-intlayer";
|
|
35
35
|
import { useWatch } from "react-hook-form";
|
|
36
36
|
import { AnimatePresence, motion } from "framer-motion";
|
|
37
37
|
|
|
@@ -13,8 +13,8 @@ import { StructureEditor } from "./StructureEditor.mjs";
|
|
|
13
13
|
import { useEffect, useState } from "react";
|
|
14
14
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
15
|
import { ArrowLeft } from "lucide-react";
|
|
16
|
-
import { useIntlayer } from "react-intlayer";
|
|
17
16
|
import { useConfiguration, useDictionariesRecordActions, useFocusUnmergedDictionary } from "@intlayer/editor-react";
|
|
17
|
+
import { useIntlayer } from "react-intlayer";
|
|
18
18
|
|
|
19
19
|
//#region src/components/DictionaryFieldEditor/DictionaryFieldEditor.tsx
|
|
20
20
|
const DictionaryFieldEditor = ({ dictionary, onClickDictionaryList, isDarkMode, mode, onDelete, onSave, showReturnButton = true, rightContent }) => {
|
|
@@ -5,8 +5,8 @@ import { getIsEditableSection } from "../getIsEditableSection.mjs";
|
|
|
5
5
|
import { useState } from "react";
|
|
6
6
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { ChevronRight, Plus } from "lucide-react";
|
|
8
|
-
import { useIntlayer } from "react-intlayer";
|
|
9
8
|
import { useEditedContentActions, useEditorLocale, useFocusUnmergedDictionary } from "@intlayer/editor-react";
|
|
9
|
+
import { useIntlayer } from "react-intlayer";
|
|
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 { Container } from "../Container/index.mjs";
|
|
4
3
|
import { useGetDictionaries } from "../../api/hooks/dictionary.mjs";
|
|
4
|
+
import { Container } from "../Container/index.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 { useIntlayer } from "react-intlayer";
|
|
14
13
|
import { useEditedContent, useEditorLocale, useFocusUnmergedDictionary } from "@intlayer/editor-react";
|
|
14
|
+
import { useIntlayer } from "react-intlayer";
|
|
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";
|
|
5
4
|
import { useSession } from "../../../api/useAuth/useSession.mjs";
|
|
6
5
|
import { useAuth } from "../../../api/useAuth/useAuth.mjs";
|
|
7
6
|
import { useDeleteDictionary, usePushDictionaries } from "../../../api/hooks/dictionary.mjs";
|
|
8
7
|
import { useWriteDictionary } from "../../../api/hooks/editor.mjs";
|
|
8
|
+
import { Button } from "../../Button/Button.mjs";
|
|
9
9
|
import { Modal } from "../../Modal/Modal.mjs";
|
|
10
10
|
import { useState } from "react";
|
|
11
11
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { ArrowUpFromLine, Download, RotateCcw, Save, Trash } from "lucide-react";
|
|
13
|
-
import { useIntlayer } from "react-intlayer";
|
|
14
13
|
import { useDictionariesRecordActions, useEditedContent } from "@intlayer/editor-react";
|
|
14
|
+
import { useIntlayer } from "react-intlayer";
|
|
15
15
|
|
|
16
16
|
//#region src/components/DictionaryFieldEditor/SaveForm/SaveForm.tsx
|
|
17
17
|
const SaveForm = ({ dictionary, mode, className, onDelete, onSave, ...props }) => {
|
|
@@ -6,8 +6,8 @@ import { EditableFieldInput } from "../../EditableField/EditableFieldInput.mjs";
|
|
|
6
6
|
import { NodeTypeSelector } from "../NodeTypeSelector.mjs";
|
|
7
7
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { Plus, Trash } from "lucide-react";
|
|
9
|
-
import { useIntlayer } from "react-intlayer";
|
|
10
9
|
import { useConfiguration, useEditedContentActions, useFocusUnmergedDictionary } from "@intlayer/editor-react";
|
|
10
|
+
import { useIntlayer } from "react-intlayer";
|
|
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";
|
|
@@ -5,16 +5,58 @@ import { Button } from "../Button/Button.mjs";
|
|
|
5
5
|
import { Link } from "../Link/Link.mjs";
|
|
6
6
|
import { Container } from "../Container/index.mjs";
|
|
7
7
|
import { Modal } from "../Modal/Modal.mjs";
|
|
8
|
+
import { getYoutubeEmbedUrl, getYoutubeVideoId, getYoutubeWatchUrl } from "./youtubeUrl.mjs";
|
|
8
9
|
import { useEffect, useRef, useState } from "react";
|
|
9
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
-
import { MoveDiagonal
|
|
11
|
+
import { MoveDiagonal } from "lucide-react";
|
|
11
12
|
|
|
12
13
|
//#region src/components/MarkDownRender/MarkDownIframe.tsx
|
|
13
|
-
|
|
14
|
+
/**
|
|
15
|
+
* The features the YouTube player asks for, as shipped by YouTube's own embed code.
|
|
16
|
+
*/
|
|
17
|
+
const YOUTUBE_PLAYER_ALLOW = "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share";
|
|
18
|
+
/**
|
|
19
|
+
* Turns whatever the markdown handed over into what the frame is rendered with.
|
|
20
|
+
*
|
|
21
|
+
* A YouTube address, in any of its forms, becomes the player embed carrying
|
|
22
|
+
* the attributes YouTube's own embed code ships with. Query parameters are
|
|
23
|
+
* dropped on purpose: docs written for one origin (`origin=…`) break the
|
|
24
|
+
* player on every other one.
|
|
25
|
+
*
|
|
26
|
+
* `referrerPolicy` is the attribute that matters: the player refuses to start
|
|
27
|
+
* ("Video player configuration error", error 153) unless the request carries
|
|
28
|
+
* a referrer, and a page served with `Referrer-Policy: same-origin` sends none
|
|
29
|
+
* to a cross-origin frame. The attribute overrides the page policy for this
|
|
30
|
+
* frame only.
|
|
31
|
+
*/
|
|
32
|
+
const resolveFrame = (src, frameProps) => {
|
|
33
|
+
const youtubeVideoId = getYoutubeVideoId(src);
|
|
34
|
+
if (!youtubeVideoId) return {
|
|
35
|
+
src,
|
|
36
|
+
frameProps,
|
|
37
|
+
isYoutubeVideo: false
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
isYoutubeVideo: true,
|
|
41
|
+
src: getYoutubeEmbedUrl(youtubeVideoId),
|
|
42
|
+
frameProps: {
|
|
43
|
+
...frameProps,
|
|
44
|
+
allow: YOUTUBE_PLAYER_ALLOW,
|
|
45
|
+
allowFullScreen: true,
|
|
46
|
+
referrerPolicy: "strict-origin-when-cross-origin"
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
const getEmbedLinkMeta = (src) => {
|
|
14
51
|
if (!src) return {
|
|
15
52
|
href: "",
|
|
16
53
|
label: ""
|
|
17
54
|
};
|
|
55
|
+
const youtubeVideoId = getYoutubeVideoId(src);
|
|
56
|
+
if (youtubeVideoId) return {
|
|
57
|
+
href: getYoutubeWatchUrl(youtubeVideoId),
|
|
58
|
+
label: "youtube.com"
|
|
59
|
+
};
|
|
18
60
|
if (/^https?:\/\//i.test(src)) try {
|
|
19
61
|
const url = new URL(src);
|
|
20
62
|
return {
|
|
@@ -31,21 +73,6 @@ function embedLinkMeta(src) {
|
|
|
31
73
|
href: src,
|
|
32
74
|
label: src
|
|
33
75
|
};
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Reads the video id out of a YouTube embed address.
|
|
37
|
-
*
|
|
38
|
-
* @returns The video id, or `null` when the address is not a YouTube embed.
|
|
39
|
-
*/
|
|
40
|
-
const getYoutubeVideoId = (src) => {
|
|
41
|
-
if (!src || !/^https?:\/\//i.test(src)) return null;
|
|
42
|
-
try {
|
|
43
|
-
const url = new URL(src);
|
|
44
|
-
if (!/(^|\.)youtube(-nocookie)?\.com$/.test(url.hostname)) return null;
|
|
45
|
-
return url.pathname.replace(/^\/embed\//, "").split("/")[0] || null;
|
|
46
|
-
} catch {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
76
|
};
|
|
50
77
|
/**
|
|
51
78
|
* Tracks whether an element has come close enough to the viewport to be worth
|
|
@@ -85,63 +112,28 @@ const useHasBecomeVisible = () => {
|
|
|
85
112
|
};
|
|
86
113
|
};
|
|
87
114
|
/**
|
|
88
|
-
* The embed itself
|
|
89
|
-
*
|
|
90
|
-
* A YouTube player pulls well over a megabyte of script before it can show a
|
|
91
|
-
* single frame. Standing in for it with its own thumbnail until the reader
|
|
92
|
-
* presses play keeps that cost on the readers who actually watch the video.
|
|
115
|
+
* The embed itself, mounted once it comes close to the viewport.
|
|
93
116
|
*/
|
|
94
117
|
const EmbeddedFrame = ({ src, title, className, frameProps }) => {
|
|
95
|
-
const [isPlayRequested, setIsPlayRequested] = useState(false);
|
|
96
118
|
const { elementRef, hasBecomeVisible } = useHasBecomeVisible();
|
|
97
|
-
|
|
98
|
-
if (youtubeVideoId && !isPlayRequested) return /* @__PURE__ */ jsxs("button", {
|
|
99
|
-
type: "button",
|
|
100
|
-
"aria-label": title ?? "Play video",
|
|
101
|
-
onClick: () => setIsPlayRequested(true),
|
|
102
|
-
className: cn("group relative block cursor-pointer border-0 bg-card p-0", className),
|
|
103
|
-
children: [/* @__PURE__ */ jsxs("picture", { children: [/* @__PURE__ */ jsx("source", {
|
|
104
|
-
srcSet: `https://i.ytimg.com/vi_webp/${youtubeVideoId}/hqdefault.webp`,
|
|
105
|
-
type: "image/webp"
|
|
106
|
-
}), /* @__PURE__ */ jsx("img", {
|
|
107
|
-
src: `https://i.ytimg.com/vi/${youtubeVideoId}/hqdefault.jpg`,
|
|
108
|
-
alt: "",
|
|
109
|
-
width: 480,
|
|
110
|
-
height: 360,
|
|
111
|
-
fetchPriority: "high",
|
|
112
|
-
decoding: "async",
|
|
113
|
-
className: "size-full object-cover"
|
|
114
|
-
})] }), /* @__PURE__ */ jsx("span", {
|
|
115
|
-
className: "absolute inset-0 flex items-center justify-center",
|
|
116
|
-
children: /* @__PURE__ */ jsx("span", {
|
|
117
|
-
className: "flex size-14 items-center justify-center rounded-full bg-text/70 text-text-opposite transition-transform group-hover:scale-110",
|
|
118
|
-
children: /* @__PURE__ */ jsx(Play, { className: "size-6 translate-x-0.5 fill-current" })
|
|
119
|
-
})
|
|
120
|
-
})]
|
|
121
|
-
});
|
|
122
|
-
if (!hasBecomeVisible && !isPlayRequested) return /* @__PURE__ */ jsx("div", {
|
|
119
|
+
if (!hasBecomeVisible) return /* @__PURE__ */ jsx("div", {
|
|
123
120
|
ref: elementRef,
|
|
124
121
|
"aria-hidden": true,
|
|
125
122
|
className
|
|
126
123
|
});
|
|
127
|
-
const frameSrc = (() => {
|
|
128
|
-
if (!isPlayRequested || !youtubeVideoId || !src) return src;
|
|
129
|
-
const playbackSrc = new URL(src);
|
|
130
|
-
playbackSrc.searchParams.set("autoplay", "1");
|
|
131
|
-
return playbackSrc.href;
|
|
132
|
-
})();
|
|
133
124
|
return /* @__PURE__ */ jsx("iframe", {
|
|
134
125
|
...frameProps,
|
|
135
|
-
src
|
|
126
|
+
src,
|
|
136
127
|
title,
|
|
137
128
|
loading: "lazy",
|
|
138
129
|
className
|
|
139
130
|
});
|
|
140
131
|
};
|
|
141
132
|
const MarkDownIframe = (props) => {
|
|
142
|
-
const { src, className, title, ...rest } = props;
|
|
133
|
+
const { src: rawSrc, className, title, ...rest } = props;
|
|
143
134
|
const [isModalOpen, setIsModalOpen] = useState(false);
|
|
144
|
-
const {
|
|
135
|
+
const { src, frameProps, isYoutubeVideo } = resolveFrame(rawSrc, rest);
|
|
136
|
+
const { href, label } = getEmbedLinkMeta(rawSrc);
|
|
145
137
|
return /* @__PURE__ */ jsxs(Container, {
|
|
146
138
|
roundedSize: "2xl",
|
|
147
139
|
border: true,
|
|
@@ -152,8 +144,8 @@ const MarkDownIframe = (props) => {
|
|
|
152
144
|
/* @__PURE__ */ jsx(EmbeddedFrame, {
|
|
153
145
|
src,
|
|
154
146
|
title,
|
|
155
|
-
frameProps
|
|
156
|
-
className: cn("block max-h-[80vh] min-h-[12rem] w-full border-0", className)
|
|
147
|
+
frameProps,
|
|
148
|
+
className: cn("block max-h-[80vh] min-h-[12rem] w-full border-0", isYoutubeVideo && "aspect-video", className)
|
|
157
149
|
}),
|
|
158
150
|
/* @__PURE__ */ jsxs("div", {
|
|
159
151
|
className: "flex items-center justify-between gap-3 px-3 py-1",
|
|
@@ -190,7 +182,7 @@ const MarkDownIframe = (props) => {
|
|
|
190
182
|
className: "overflow-hidden p-0",
|
|
191
183
|
gap: "none",
|
|
192
184
|
children: /* @__PURE__ */ jsx("iframe", {
|
|
193
|
-
...
|
|
185
|
+
...frameProps,
|
|
194
186
|
src,
|
|
195
187
|
title: title ?? "Embedded content",
|
|
196
188
|
allowFullScreen: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkDownIframe.mjs","names":[],"sources":["../../../../src/components/MarkDownRender/MarkDownIframe.tsx"],"sourcesContent":["'use client';\n\nimport { Button } from '@components/Button';\nimport { Container } from '@components/Container';\nimport { Link } from '@components/Link';\nimport { Modal } from '@components/Modal';\nimport { cn } from '@utils/cn';\nimport { MoveDiagonal, Play } from 'lucide-react';\nimport {\n type ComponentProps,\n type FC,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nfunction embedLinkMeta(src: string | undefined): {\n href: string;\n label: string;\n} {\n if (!src) return { href: '', label: '' };\n if (/^https?:\\/\\//i.test(src)) {\n try {\n const url = new URL(src);\n return { href: url.href, label: url.host };\n } catch {\n return { href: src, label: src };\n }\n }\n return { href: src, label: src };\n}\n\n/**\n * Reads the video id out of a YouTube embed address.\n *\n * @returns The video id, or `null` when the address is not a YouTube embed.\n */\nconst getYoutubeVideoId = (src: string | undefined): string | null => {\n if (!src || !/^https?:\\/\\//i.test(src)) return null;\n\n try {\n const url = new URL(src);\n if (!/(^|\\.)youtube(-nocookie)?\\.com$/.test(url.hostname)) return null;\n\n const videoId = url.pathname.replace(/^\\/embed\\//, '').split('/')[0];\n\n return videoId || null;\n } catch {\n return null;\n }\n};\n\n/**\n * Tracks whether an element has come close enough to the viewport to be worth\n * loading.\n *\n * `loading=\"lazy\"` is not enough for embeds inside tabs or carousels: the\n * browser only defers frames that are far down the page, so a frame parked\n * off-screen by a transform — an inactive tab panel — still loads immediately.\n * A live-app embed costs upwards of a megabyte and seconds of main thread,\n * which is the whole page's performance budget spent on something nobody is\n * looking at.\n *\n * @returns A ref to attach to the placeholder, and whether it became visible.\n */\nconst useHasBecomeVisible = <ElementType extends HTMLElement>() => {\n const elementRef = useRef<ElementType>(null);\n const [hasBecomeVisible, setHasBecomeVisible] = useState(false);\n\n useEffect(() => {\n const element = elementRef.current;\n if (!element || hasBecomeVisible) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n setHasBecomeVisible(true);\n return;\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.isIntersecting)) {\n setHasBecomeVisible(true);\n observer.disconnect();\n }\n },\n { rootMargin: '200px' }\n );\n\n observer.observe(element);\n\n return () => observer.disconnect();\n }, [hasBecomeVisible]);\n\n return { elementRef, hasBecomeVisible };\n};\n\ntype EmbeddedFrameProps = {\n src: string | undefined;\n title: string | undefined;\n className: string;\n frameProps: Omit<ComponentProps<'iframe'>, 'src' | 'title' | 'className'>;\n};\n\n/**\n * The embed itself: a poster for YouTube, deferred loading for anything else.\n *\n * A YouTube player pulls well over a megabyte of script before it can show a\n * single frame. Standing in for it with its own thumbnail until the reader\n * presses play keeps that cost on the readers who actually watch the video.\n */\nconst EmbeddedFrame: FC<EmbeddedFrameProps> = ({\n src,\n title,\n className,\n frameProps,\n}) => {\n const [isPlayRequested, setIsPlayRequested] = useState(false);\n const { elementRef, hasBecomeVisible } =\n useHasBecomeVisible<HTMLDivElement>();\n const youtubeVideoId = getYoutubeVideoId(src);\n\n if (youtubeVideoId && !isPlayRequested) {\n return (\n <button\n type=\"button\"\n aria-label={title ?? 'Play video'}\n onClick={() => setIsPlayRequested(true)}\n className={cn(\n 'group relative block cursor-pointer border-0 bg-card p-0',\n className\n )}\n >\n {/*\n * The poster stands in for the player, so on a page that opens with a\n * video it is the largest element painted — deferring it would defer\n * the page's LCP. It is the one image here worth fetching eagerly.\n */}\n <picture>\n {/*\n * YouTube serves the same poster as WebP under `vi_webp`, at roughly\n * a third of the JPEG's weight. The `img` below stays as the\n * fallback for the browsers that cannot decode it.\n */}\n <source\n srcSet={`https://i.ytimg.com/vi_webp/${youtubeVideoId}/hqdefault.webp`}\n type=\"image/webp\"\n />\n <img\n src={`https://i.ytimg.com/vi/${youtubeVideoId}/hqdefault.jpg`}\n alt=\"\"\n width={480}\n height={360}\n fetchPriority=\"high\"\n decoding=\"async\"\n className=\"size-full object-cover\"\n />\n </picture>\n <span className=\"absolute inset-0 flex items-center justify-center\">\n <span className=\"flex size-14 items-center justify-center rounded-full bg-text/70 text-text-opposite transition-transform group-hover:scale-110\">\n <Play className=\"size-6 translate-x-0.5 fill-current\" />\n </span>\n </span>\n </button>\n );\n }\n\n if (!hasBecomeVisible && !isPlayRequested) {\n // Same box as the frame it stands in for, so nothing shifts once it loads.\n return <div ref={elementRef} aria-hidden className={className} />;\n }\n\n const frameSrc = (() => {\n if (!isPlayRequested || !youtubeVideoId || !src) return src;\n\n const playbackSrc = new URL(src);\n playbackSrc.searchParams.set('autoplay', '1');\n\n return playbackSrc.href;\n })();\n\n return (\n <iframe\n {...frameProps}\n src={frameSrc}\n title={title}\n loading=\"lazy\"\n className={className}\n />\n );\n};\n\nexport const MarkDownIframe: FC<ComponentProps<'iframe'>> = (props) => {\n const { src, className, title, ...rest } = props;\n const [isModalOpen, setIsModalOpen] = useState(false);\n const { href, label } = embedLinkMeta(src);\n\n return (\n <Container\n roundedSize=\"2xl\"\n border\n borderColor=\"neutral\"\n className=\"overflow-hidden p-0\"\n gap=\"none\"\n >\n <EmbeddedFrame\n src={src}\n title={title}\n frameProps={rest}\n className={cn(\n 'block max-h-[80vh] min-h-[12rem] w-full border-0',\n className\n )}\n />\n <div className=\"flex items-center justify-between gap-3 px-3 py-1\">\n {href ? (\n <Link\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n label=\"\"\n color=\"neutral\"\n className=\"inline-flex min-w-0 max-w-[calc(100%-3rem)] items-center gap-2 text-muted-foreground text-xs underline-offset-2 hover:text-foreground hover:underline\"\n >\n {label}\n </Link>\n ) : (\n <span className=\"text-neutral text-sm\">Embedded frame</span>\n )}\n <Button\n variant=\"hoverable\"\n size=\"icon-md\"\n onClick={() => setIsModalOpen(true)}\n label=\"Open embedded page in fullscreen\"\n Icon={MoveDiagonal}\n />\n </div>\n\n <Modal\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n size=\"unset\"\n hasCloseButton\n isScrollable\n padding=\"sm\"\n >\n {isModalOpen && src ? (\n <Container\n roundedSize=\"2xl\"\n border\n borderColor=\"neutral\"\n className=\"overflow-hidden p-0\"\n gap=\"none\"\n >\n <iframe\n {...rest}\n src={src}\n title={title ?? 'Embedded content'}\n allowFullScreen\n className=\"block min-h-[82vh] w-full border-0\"\n />\n </Container>\n ) : null}\n </Modal>\n </Container>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MarkDownIframe.mjs","names":[],"sources":["../../../../src/components/MarkDownRender/MarkDownIframe.tsx"],"sourcesContent":["'use client';\n\nimport { Button } from '@components/Button';\nimport { Container } from '@components/Container';\nimport { Link } from '@components/Link';\nimport { Modal } from '@components/Modal';\nimport { cn } from '@utils/cn';\nimport { MoveDiagonal } from 'lucide-react';\nimport {\n type ComponentProps,\n type FC,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport {\n getYoutubeEmbedUrl,\n getYoutubeVideoId,\n getYoutubeWatchUrl,\n} from './youtubeUrl';\n\ntype FrameProps = Omit<ComponentProps<'iframe'>, 'src' | 'title' | 'className'>;\n\n/**\n * The features the YouTube player asks for, as shipped by YouTube's own embed code.\n */\nconst YOUTUBE_PLAYER_ALLOW =\n 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share';\n\ntype ResolvedFrame = {\n src: string | undefined;\n frameProps: FrameProps;\n isYoutubeVideo: boolean;\n};\n\n/**\n * Turns whatever the markdown handed over into what the frame is rendered with.\n *\n * A YouTube address, in any of its forms, becomes the player embed carrying\n * the attributes YouTube's own embed code ships with. Query parameters are\n * dropped on purpose: docs written for one origin (`origin=…`) break the\n * player on every other one.\n *\n * `referrerPolicy` is the attribute that matters: the player refuses to start\n * (\"Video player configuration error\", error 153) unless the request carries\n * a referrer, and a page served with `Referrer-Policy: same-origin` sends none\n * to a cross-origin frame. The attribute overrides the page policy for this\n * frame only.\n */\nconst resolveFrame = (\n src: string | undefined,\n frameProps: FrameProps\n): ResolvedFrame => {\n const youtubeVideoId = getYoutubeVideoId(src);\n\n if (!youtubeVideoId) return { src, frameProps, isYoutubeVideo: false };\n\n return {\n isYoutubeVideo: true,\n src: getYoutubeEmbedUrl(youtubeVideoId),\n frameProps: {\n ...frameProps,\n allow: YOUTUBE_PLAYER_ALLOW,\n allowFullScreen: true,\n referrerPolicy: 'strict-origin-when-cross-origin',\n },\n };\n};\n\nconst getEmbedLinkMeta = (\n src: string | undefined\n): { href: string; label: string } => {\n if (!src) return { href: '', label: '' };\n\n const youtubeVideoId = getYoutubeVideoId(src);\n if (youtubeVideoId) {\n return {\n href: getYoutubeWatchUrl(youtubeVideoId),\n label: 'youtube.com',\n };\n }\n\n if (/^https?:\\/\\//i.test(src)) {\n try {\n const url = new URL(src);\n return { href: url.href, label: url.host };\n } catch {\n return { href: src, label: src };\n }\n }\n\n return { href: src, label: src };\n};\n\n/**\n * Tracks whether an element has come close enough to the viewport to be worth\n * loading.\n *\n * `loading=\"lazy\"` is not enough for embeds inside tabs or carousels: the\n * browser only defers frames that are far down the page, so a frame parked\n * off-screen by a transform — an inactive tab panel — still loads immediately.\n * A live-app embed costs upwards of a megabyte and seconds of main thread,\n * which is the whole page's performance budget spent on something nobody is\n * looking at.\n *\n * @returns A ref to attach to the placeholder, and whether it became visible.\n */\nconst useHasBecomeVisible = <ElementType extends HTMLElement>() => {\n const elementRef = useRef<ElementType>(null);\n const [hasBecomeVisible, setHasBecomeVisible] = useState(false);\n\n useEffect(() => {\n const element = elementRef.current;\n if (!element || hasBecomeVisible) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n setHasBecomeVisible(true);\n return;\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.isIntersecting)) {\n setHasBecomeVisible(true);\n observer.disconnect();\n }\n },\n { rootMargin: '200px' }\n );\n\n observer.observe(element);\n\n return () => observer.disconnect();\n }, [hasBecomeVisible]);\n\n return { elementRef, hasBecomeVisible };\n};\n\ntype EmbeddedFrameProps = Pick<ResolvedFrame, 'src' | 'frameProps'> & {\n title: string | undefined;\n className: string;\n};\n\n/**\n * The embed itself, mounted once it comes close to the viewport.\n */\nconst EmbeddedFrame: FC<EmbeddedFrameProps> = ({\n src,\n title,\n className,\n frameProps,\n}) => {\n const { elementRef, hasBecomeVisible } =\n useHasBecomeVisible<HTMLDivElement>();\n\n if (!hasBecomeVisible) {\n // Same box as the frame it stands in for, so nothing shifts once it loads.\n return <div ref={elementRef} aria-hidden className={className} />;\n }\n\n return (\n <iframe\n {...frameProps}\n src={src}\n title={title}\n loading=\"lazy\"\n className={className}\n />\n );\n};\n\nexport const MarkDownIframe: FC<ComponentProps<'iframe'>> = (props) => {\n const { src: rawSrc, className, title, ...rest } = props;\n const [isModalOpen, setIsModalOpen] = useState(false);\n const { src, frameProps, isYoutubeVideo } = resolveFrame(rawSrc, rest);\n const { href, label } = getEmbedLinkMeta(rawSrc);\n\n return (\n <Container\n roundedSize=\"2xl\"\n border\n borderColor=\"neutral\"\n className=\"overflow-hidden p-0\"\n gap=\"none\"\n >\n <EmbeddedFrame\n src={src}\n title={title}\n frameProps={frameProps}\n className={cn(\n 'block max-h-[80vh] min-h-[12rem] w-full border-0',\n isYoutubeVideo && 'aspect-video',\n className\n )}\n />\n <div className=\"flex items-center justify-between gap-3 px-3 py-1\">\n {href ? (\n <Link\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n label=\"\"\n color=\"neutral\"\n className=\"inline-flex min-w-0 max-w-[calc(100%-3rem)] items-center gap-2 text-muted-foreground text-xs underline-offset-2 hover:text-foreground hover:underline\"\n >\n {label}\n </Link>\n ) : (\n <span className=\"text-neutral text-sm\">Embedded frame</span>\n )}\n <Button\n variant=\"hoverable\"\n size=\"icon-md\"\n onClick={() => setIsModalOpen(true)}\n label=\"Open embedded page in fullscreen\"\n Icon={MoveDiagonal}\n />\n </div>\n\n <Modal\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n size=\"unset\"\n hasCloseButton\n isScrollable\n padding=\"sm\"\n >\n {isModalOpen && src ? (\n <Container\n roundedSize=\"2xl\"\n border\n borderColor=\"neutral\"\n className=\"overflow-hidden p-0\"\n gap=\"none\"\n >\n <iframe\n {...frameProps}\n src={src}\n title={title ?? 'Embedded content'}\n allowFullScreen\n className=\"block min-h-[82vh] w-full border-0\"\n />\n </Container>\n ) : null}\n </Modal>\n </Container>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { getYoutubeEmbedUrl, getYoutubeVideoId, getYoutubeWatchUrl } from "./youtubeUrl.mjs";
|
|
1
2
|
import { MarkDownIframe } from "./MarkDownIframe.mjs";
|
|
2
3
|
import { MarkdownRenderer, baseMarkdownComponents, getIntlayerMarkdownOptions } from "./MarkDownRender.mjs";
|
|
3
4
|
|
|
4
|
-
export { MarkDownIframe, MarkdownRenderer, baseMarkdownComponents, getIntlayerMarkdownOptions };
|
|
5
|
+
export { MarkDownIframe, MarkdownRenderer, baseMarkdownComponents, getIntlayerMarkdownOptions, getYoutubeEmbedUrl, getYoutubeVideoId, getYoutubeWatchUrl };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/components/MarkDownRender/youtubeUrl.ts
|
|
2
|
+
/**
|
|
3
|
+
* Reads the video id out of a YouTube address (embed, watch, youtu.be, shorts, etc.).
|
|
4
|
+
*
|
|
5
|
+
* @returns The video id, or `null` when the address is not a YouTube URL.
|
|
6
|
+
*/
|
|
7
|
+
const getYoutubeVideoId = (src) => {
|
|
8
|
+
if (!src) return null;
|
|
9
|
+
return src.match(/(?:youtu\.be\/|youtube(?:-nocookie)?\.com\/(?:embed\/|v\/|watch\?v=|shorts\/))([\w-]{11})/i)?.[1] ?? null;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* The address the YouTube player is loaded from for a given video.
|
|
13
|
+
*/
|
|
14
|
+
const getYoutubeEmbedUrl = (videoId) => `https://www.youtube.com/embed/${videoId}`;
|
|
15
|
+
/**
|
|
16
|
+
* The address of the video on youtube.com itself.
|
|
17
|
+
*/
|
|
18
|
+
const getYoutubeWatchUrl = (videoId) => `https://www.youtube.com/watch?v=${videoId}`;
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { getYoutubeEmbedUrl, getYoutubeVideoId, getYoutubeWatchUrl };
|
|
22
|
+
//# sourceMappingURL=youtubeUrl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"youtubeUrl.mjs","names":[],"sources":["../../../../src/components/MarkDownRender/youtubeUrl.ts"],"sourcesContent":["/**\n * Reads the video id out of a YouTube address (embed, watch, youtu.be, shorts, etc.).\n *\n * @returns The video id, or `null` when the address is not a YouTube URL.\n */\nexport const getYoutubeVideoId = (src: string | undefined): string | null => {\n if (!src) return null;\n\n const match = src.match(\n /(?:youtu\\.be\\/|youtube(?:-nocookie)?\\.com\\/(?:embed\\/|v\\/|watch\\?v=|shorts\\/))([\\w-]{11})/i\n );\n\n return match?.[1] ?? null;\n};\n\n/**\n * The address the YouTube player is loaded from for a given video.\n */\nexport const getYoutubeEmbedUrl = (videoId: string): string =>\n `https://www.youtube.com/embed/${videoId}`;\n\n/**\n * The address of the video on youtube.com itself.\n */\nexport const getYoutubeWatchUrl = (videoId: string): string =>\n `https://www.youtube.com/watch?v=${videoId}`;\n"],"mappings":";;;;;;AAKA,MAAa,qBAAqB,QAA2C;CAC3E,IAAI,CAAC,KAAK,OAAO;CAMjB,OAJc,IAAI,MAChB,4FAGS,CAAC,GAAG,MAAM;AACvB;;;;AAKA,MAAa,sBAAsB,YACjC,iCAAiC;;;;AAKnC,MAAa,sBAAsB,YACjC,mCAAmC"}
|
|
@@ -115,6 +115,7 @@ import { KeyboardScreenAdapter } from "./KeyboardScreenAdapter/index.mjs";
|
|
|
115
115
|
import { LanguageBackground } from "./LanguageBackground/LanguageBackground.mjs";
|
|
116
116
|
import { LanguageSection, LocalCardList } from "./LanguageBackground/LanguageSection.mjs";
|
|
117
117
|
import { LocaleSwitcher } from "./LocaleSwitcherDropDown/LocaleSwitcher.mjs";
|
|
118
|
+
import { getYoutubeEmbedUrl, getYoutubeVideoId, getYoutubeWatchUrl } from "./MarkDownRender/youtubeUrl.mjs";
|
|
118
119
|
import { MarkDownIframe } from "./MarkDownRender/MarkDownIframe.mjs";
|
|
119
120
|
import { Tab } from "./Tab/Tab.mjs";
|
|
120
121
|
import { Table } from "./Table/Table.mjs";
|
|
@@ -142,4 +143,4 @@ import { Terminal } from "./Terminal/Terminal.mjs";
|
|
|
142
143
|
import { DesktopThemeSwitcher } from "./ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs";
|
|
143
144
|
import { MobileThemeSwitcher } from "./ThemeSwitcherDropDown/MobileThemeSwitcher.mjs";
|
|
144
145
|
|
|
145
|
-
export { Accordion, AutoCompleteTextarea, AutoSizedTextArea, Avatar, Badge, BitbucketLogo, Breadcrumb, Browser, Burger, Button, Carousel, Checkbox, ClickOutsideDiv, Code, CodeBlock, CodeDefault, CodeHighlighted, CollapsibleTable, Command, CommandRoot, Container, ContentEditableTextArea, ContentEditor, ContentEditorInput, ContentEditorTextArea, ContentSelector, CopyButton, CopyToClipboard, DesktopNavbar, DesktopThemeSwitcher, Detail, DictionaryCreationForm, DictionaryEditor, DictionaryFieldEditor, DiscordLogo, DotPattern, DropDown, EditableFieldInput, EditableFieldTextArea, ExpandCollapse, FacebookLogo, FileList, Flag, flags_exports as Flags, Footer, Form, AutoSizedTextAreaElement as FormAutoSizedTextArea, Button as FormButton, CheckboxElement as FormCheckbox, FormControl, FormDescription, EditableFieldInputElement as FormEditableFieldInput, EditableFieldTextAreaElement as FormEditableFieldTextArea, FormElement, FormField, InputElement as FormInput, InputPasswordElement as FormInputPassword, FormItem, FormLabelLayout as FormLabel, FormMessage, MultiSelectElement as FormMultiSelect, OTPElement as FormOTP, SearchInputElement as FormSearchInput, SelectElement as FormSelect, SwitchSelectorElement as FormSwitchSelector, TextAreaElement as FormTextArea, GitHubLogo, GitLabLogo, GoogleLogo, GridDistortionPattern, GridPattern, H1, H2, H3, H4, H5, H6, HTMLRenderer, HeightResizer, HideShow, Hr, IDE, InformationTag, Input, InputIndicator, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputPassword, InstagramLogo, KeyPathBreadcrumb, KeyboardScreenAdapter, KeyboardShortcut, Label, LanguageBackground, LanguageSection, Link, LinkedInLogo, Loader, LocalCardList, LocaleSwitcher, LocaleSwitcherContent, LocaleSwitcherContentProvider, Logo, LogoTextOnly, LogoWithText, LogoWithTextBelow, MarkDownIframe, MarkdownEditor, MarkdownRenderer, MaxHeightSmoother, MaxWidthSmoother, MobileNavbar, MobileThemeSwitcher, Modal, MultiSelect, Navbar, NodeEditor, NumberItemsSelector, OTPInput, OTPInputContext, Pagination, Popover, PopoverStatic, PressableSpan, ProductHuntLogo, Radio, RightDrawer, SaveForm, SearchInput, Select, SelectContent, SelectLabel, SelectSeparator, ShowingResultsNumberItems, SmartTable, SocialNetworks, Spotlight, Step, Steps, SwitchSelector, Tab, TabSelector, Table, Tag, Td, TechLogo, techLogos_exports as TechLogos, Terminal, TextArea, TextEditor, TextEditorContainer, Th, TiktokLogo, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, Tr, VersionSwitcher, VersionSwitcherProvider, VerticalSwitchSelector, WithResizer, XLogo, YoutubeLogo, badgeVariants, baseMarkdownComponents, buttonVariants, checkIsExternalLink, checkboxVariants, choiceVariant, containerVariants, createEditorUploadFn, defaultChoices, drawerManager, getCapitals, getIntlayerHTMLOptions, getIntlayerMarkdownOptions, indicatorVariant, inputSlotVariants, inputVariants, isTextChildren, linkVariants, paginationVariants, radioVariants, reducer, shikiWrapperClassName, switchSelectorVariant, toast, toastVariants, traceKeys, useContentEditable, useCopyToClipboard, useForm, useFormField, useIsRightDrawerOpen, useLocaleSwitcherContent, usePasswordManagerBadge, usePopoverIds, usePrevious, useRightDrawer, useRightDrawerActions, useToast, useVersionSwitcher };
|
|
146
|
+
export { Accordion, AutoCompleteTextarea, AutoSizedTextArea, Avatar, Badge, BitbucketLogo, Breadcrumb, Browser, Burger, Button, Carousel, Checkbox, ClickOutsideDiv, Code, CodeBlock, CodeDefault, CodeHighlighted, CollapsibleTable, Command, CommandRoot, Container, ContentEditableTextArea, ContentEditor, ContentEditorInput, ContentEditorTextArea, ContentSelector, CopyButton, CopyToClipboard, DesktopNavbar, DesktopThemeSwitcher, Detail, DictionaryCreationForm, DictionaryEditor, DictionaryFieldEditor, DiscordLogo, DotPattern, DropDown, EditableFieldInput, EditableFieldTextArea, ExpandCollapse, FacebookLogo, FileList, Flag, flags_exports as Flags, Footer, Form, AutoSizedTextAreaElement as FormAutoSizedTextArea, Button as FormButton, CheckboxElement as FormCheckbox, FormControl, FormDescription, EditableFieldInputElement as FormEditableFieldInput, EditableFieldTextAreaElement as FormEditableFieldTextArea, FormElement, FormField, InputElement as FormInput, InputPasswordElement as FormInputPassword, FormItem, FormLabelLayout as FormLabel, FormMessage, MultiSelectElement as FormMultiSelect, OTPElement as FormOTP, SearchInputElement as FormSearchInput, SelectElement as FormSelect, SwitchSelectorElement as FormSwitchSelector, TextAreaElement as FormTextArea, GitHubLogo, GitLabLogo, GoogleLogo, GridDistortionPattern, GridPattern, H1, H2, H3, H4, H5, H6, HTMLRenderer, HeightResizer, HideShow, Hr, IDE, InformationTag, Input, InputIndicator, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputPassword, InstagramLogo, KeyPathBreadcrumb, KeyboardScreenAdapter, KeyboardShortcut, Label, LanguageBackground, LanguageSection, Link, LinkedInLogo, Loader, LocalCardList, LocaleSwitcher, LocaleSwitcherContent, LocaleSwitcherContentProvider, Logo, LogoTextOnly, LogoWithText, LogoWithTextBelow, MarkDownIframe, MarkdownEditor, MarkdownRenderer, MaxHeightSmoother, MaxWidthSmoother, MobileNavbar, MobileThemeSwitcher, Modal, MultiSelect, Navbar, NodeEditor, NumberItemsSelector, OTPInput, OTPInputContext, Pagination, Popover, PopoverStatic, PressableSpan, ProductHuntLogo, Radio, RightDrawer, SaveForm, SearchInput, Select, SelectContent, SelectLabel, SelectSeparator, ShowingResultsNumberItems, SmartTable, SocialNetworks, Spotlight, Step, Steps, SwitchSelector, Tab, TabSelector, Table, Tag, Td, TechLogo, techLogos_exports as TechLogos, Terminal, TextArea, TextEditor, TextEditorContainer, Th, TiktokLogo, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, Tr, VersionSwitcher, VersionSwitcherProvider, VerticalSwitchSelector, WithResizer, XLogo, YoutubeLogo, badgeVariants, baseMarkdownComponents, buttonVariants, checkIsExternalLink, checkboxVariants, choiceVariant, containerVariants, createEditorUploadFn, defaultChoices, drawerManager, getCapitals, getIntlayerHTMLOptions, getIntlayerMarkdownOptions, getYoutubeEmbedUrl, getYoutubeVideoId, getYoutubeWatchUrl, indicatorVariant, inputSlotVariants, inputVariants, isTextChildren, linkVariants, paginationVariants, radioVariants, reducer, shikiWrapperClassName, switchSelectorVariant, toast, toastVariants, traceKeys, useContentEditable, useCopyToClipboard, useForm, useFormField, useIsRightDrawerOpen, useLocaleSwitcherContent, usePasswordManagerBadge, usePopoverIds, usePrevious, useRightDrawer, useRightDrawerActions, useToast, useVersionSwitcher };
|
package/dist/esm/routes.mjs
CHANGED
|
@@ -149,6 +149,7 @@ const Website_Doc_Environment_NestJS_Path = "/doc/environment/nest";
|
|
|
149
149
|
const Website_Doc_Environment_Fastify_Path = "/doc/environment/fastify";
|
|
150
150
|
const Website_Doc_Environment_Hono_Path = "/doc/environment/hono";
|
|
151
151
|
const Website_Doc_Environment_Htmx_Path = "/doc/environment/htmx";
|
|
152
|
+
const Website_Doc_Environment_Remix_3_Path = "/doc/environment/remix-3";
|
|
152
153
|
const Website_Doc_CLI_Fill_Path = "/doc/concept/cli/fill";
|
|
153
154
|
const Website_Doc_CLI_Translate_Path = "/doc/concept/cli/doc-translate";
|
|
154
155
|
const Website_Doc_CLI_Review_Path = "/doc/concept/cli/doc-review";
|
|
@@ -223,6 +224,7 @@ const Website_Doc_Environment_NestJS = `${Website_Origin}${Website_Doc_Environme
|
|
|
223
224
|
const Website_Doc_Environment_Fastify = `${Website_Origin}${Website_Doc_Environment_Fastify_Path}`;
|
|
224
225
|
const Website_Doc_Environment_Hono = `${Website_Origin}${Website_Doc_Environment_Hono_Path}`;
|
|
225
226
|
const Website_Doc_Environment_Htmx = `${Website_Origin}${Website_Doc_Environment_Htmx_Path}`;
|
|
227
|
+
const Website_Doc_Environment_Remix_3 = `${Website_Origin}${Website_Doc_Environment_Remix_3_Path}`;
|
|
226
228
|
const Website_Doc_CLI_Fill = `${Website_Origin}${Website_Doc_CLI_Fill_Path}`;
|
|
227
229
|
const Website_Doc_CLI_Translate = `${Website_Origin}${Website_Doc_CLI_Translate_Path}`;
|
|
228
230
|
const Website_Doc_CLI_Review = `${Website_Origin}${Website_Doc_CLI_Review_Path}`;
|
|
@@ -322,5 +324,5 @@ const External_ExampleIntlayerWithReactNative = "https://github.com/aymericzip/i
|
|
|
322
324
|
const External_ExampleIntlayerWithExpress = "https://github.com/aymericzip/intlayer/tree/main/examples/express-app";
|
|
323
325
|
|
|
324
326
|
//#endregion
|
|
325
|
-
export { App_Admin, App_Admin_Affiliate, App_Admin_Affiliate_Path, App_Admin_Dashboard, App_Admin_Dashboard_Path, App_Admin_Discussions, App_Admin_Discussions_Path, App_Admin_Management, App_Admin_Management_Path, App_Admin_Organizations, App_Admin_Organizations_Path, App_Admin_Path, App_Admin_Projects, App_Admin_Projects_Path, App_Admin_PromoCodes, App_Admin_PromoCodes_Path, App_Admin_Reviewers, App_Admin_Reviewers_Path, App_Admin_Users, App_Admin_Users_Path, App_Affiliation, App_Affiliation_Path, App_Auth_AskResetPassword, App_Auth_AskResetPassword_Path, App_Auth_ChangePassword, App_Auth_ChangePassword_Path, App_Auth_Demo_Path, App_Auth_Path, App_Auth_ResetPassword, App_Auth_ResetPassword_Path, App_Auth_SignIn, App_Auth_SignIn_Path, App_Auth_SignUp, App_Auth_SignUp_Path, App_Auth_TwoFactor, App_Auth_TwoFactor_Path, App_Dashboard, App_Dashboard_Analytics, App_Dashboard_Analytics_Path, App_Dashboard_Assets_Path, App_Dashboard_Dictionaries, App_Dashboard_Dictionaries_Path, App_Dashboard_Editor, App_Dashboard_Editor_Path, App_Dashboard_IDE, App_Dashboard_IDE_Path, App_Dashboard_Organization, App_Dashboard_Organization_Path, App_Dashboard_Profile, App_Dashboard_Profile_Path, App_Dashboard_Projects, App_Dashboard_Projects_Path, App_Dashboard_Scanner, App_Dashboard_Scanner_Path, App_Dashboard_Tags, App_Dashboard_Tags_Path, App_Dashboard_Translate, App_Dashboard_Translate_Path, App_Demo, App_Demo_Path, App_Home_Path, App_Init_Path, App_NotFound_Path, App_Onboarding, App_Onboarding_Path, App_Origin, App_Pricing, App_Pricing_Path, App_ReviewerMarketplace, App_ReviewerMarketplace_Dashboard, App_ReviewerMarketplace_Dashboard_Mission_Path, App_ReviewerMarketplace_Dashboard_Path, App_ReviewerMarketplace_Path, App_ReviewerMarketplace_Reviewer_Path, AuthMd_Path, Backend_Health, Backend_OAuth2_Token, Backend_Origin, Backend_Root, Doc_Blog_Path, Doc_Blog_Root_Path, Doc_Blog_Search_Path, Doc_Blog_What_is_i18n_Path, Doc_CLI_Fill_Path, Doc_CLI_Review_Path, Doc_CLI_Translate_Path, Doc_Chat_Path, Doc_Contributors_Path, Doc_Environment_Adonis_Path, Doc_Environment_Angular_Path, Doc_Environment_Astro_Path, Doc_Environment_CRA_Path, Doc_Environment_Express_Path, Doc_Environment_Fastify_Path, Doc_Environment_Hono_Path, Doc_Environment_Lit_Path, Doc_Environment_Lynx_Path, Doc_Environment_NestJS_Path, Doc_Environment_NextJS_14_Path, Doc_Environment_NextJS_15_Path, Doc_Environment_NextJS_16_Path, Doc_Environment_NextJS_Path, Doc_Environment_Nodejs_Path, Doc_Environment_NuxtAndVue_Path, Doc_Environment_ReactNativeAndExpo_Path, Doc_Environment_Tanstack_Path, Doc_Environment_ViteAndPreact_Path, Doc_Environment_ViteAndReact_Path, Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes_Path, Doc_Environment_ViteAndReact_ReactRouterV7_Path, Doc_Environment_ViteAndSolid_Path, Doc_Environment_ViteAndSvelte_Path, Doc_Environment_ViteAndVue_Path, Doc_FrequentQuestions_Path, Doc_IntlayerCMS_Path, Doc_IntlayerVisualEditor_Path, Doc_Intlayer_with_Lynx_and_React_Path, Doc_MCP_Path, Doc_Path, Doc_PrivacyPolicy_Path, Doc_ReleasesV6_Path, Doc_ReleasesV7_Path, Doc_ReleasesV8_Path, Doc_Root_Path, Doc_Search_Path, Doc_ShowcaseSubmit_Path, Doc_Showcase_Path, Doc_TermsOfService_Path, Doc_Why_Path, External_AI_Landing_Page, External_Discord, External_DockerHub_SelfHost, External_ExampleIntlayerWithExpress, External_ExampleIntlayerWithNextjs, External_ExampleIntlayerWithReactJS, External_ExampleIntlayerWithReactNative, External_ExampleIntlayerWithViteAndPreact, External_ExampleIntlayerWithViteAndReact, External_ExampleIntlayerWithViteAndSolid, External_ExampleIntlayerWithViteAndSvelte, External_ExampleIntlayerWithViteAndVue, External_Examples, External_Github, External_Github_i18n_benchmark, External_LinkedIn, External_ShowcaseApp, LlmsTxt_Path, Mcp_Origin, Mcp_Root, Mcp_Sse, Showcase_Origin, Showcase_Root, Showcase_Root_Path, Showcase_Submit, Showcase_Submit_Path, Website_Benchmark, Website_Benchmark_NextJS, Website_Benchmark_NextJS_Path, Website_Benchmark_Path, Website_Benchmark_Tanstack, Website_Benchmark_Tanstack_Path, Website_Blog, Website_Blog_Path, Website_Blog_Root, Website_Blog_Root_Path, Website_Blog_Search, Website_Blog_Search_Path, Website_Blog_What_is_i18n, Website_Blog_What_is_i18n_Path, Website_CMS, Website_CMS_Path, Website_Changelog, Website_Changelog_Path, Website_Contributors, Website_Contributors_Path, Website_Demo, Website_Demo_Path, Website_Doc, Website_Doc_CLI_Fill, Website_Doc_CLI_Fill_Path, Website_Doc_CLI_Review, Website_Doc_CLI_Review_Path, Website_Doc_CLI_Translate, Website_Doc_CLI_Translate_Path, Website_Doc_Chat, Website_Doc_Chat_Path, Website_Doc_Environment_Adonis, Website_Doc_Environment_Adonis_Path, Website_Doc_Environment_Angular, Website_Doc_Environment_Angular_Path, Website_Doc_Environment_Astro, Website_Doc_Environment_Astro_Path, Website_Doc_Environment_CRA, Website_Doc_Environment_CRA_Path, Website_Doc_Environment_Express, Website_Doc_Environment_Express_Path, Website_Doc_Environment_Fastify, Website_Doc_Environment_Fastify_Path, Website_Doc_Environment_Hono, Website_Doc_Environment_Hono_Path, Website_Doc_Environment_Htmx, Website_Doc_Environment_Htmx_Path, Website_Doc_Environment_Lit, Website_Doc_Environment_Lit_Path, Website_Doc_Environment_Lynx, Website_Doc_Environment_Lynx_Path, Website_Doc_Environment_NestJS, Website_Doc_Environment_NestJS_Path, Website_Doc_Environment_NextJS, Website_Doc_Environment_NextJS_14, Website_Doc_Environment_NextJS_14_Path, Website_Doc_Environment_NextJS_15, Website_Doc_Environment_NextJS_15_Path, Website_Doc_Environment_NextJS_16, Website_Doc_Environment_NextJS_16_Path, Website_Doc_Environment_NextJS_Path, Website_Doc_Environment_Nodejs, Website_Doc_Environment_Nodejs_Path, Website_Doc_Environment_NuxtAndVue, Website_Doc_Environment_NuxtAndVue_Path, Website_Doc_Environment_ReactNativeAndExpo, Website_Doc_Environment_ReactNativeAndExpo_Path, Website_Doc_Environment_Tanstack, Website_Doc_Environment_Tanstack_Path, Website_Doc_Environment_ViteAndPreact, Website_Doc_Environment_ViteAndPreact_Path, Website_Doc_Environment_ViteAndReact, Website_Doc_Environment_ViteAndReact_Path, Website_Doc_Environment_ViteAndReact_ReactRouterV7, Website_Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes, Website_Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes_Path, Website_Doc_Environment_ViteAndReact_ReactRouterV7_Path, Website_Doc_Environment_ViteAndSolid, Website_Doc_Environment_ViteAndSolid_Path, Website_Doc_Environment_ViteAndSvelte, Website_Doc_Environment_ViteAndSvelte_Path, Website_Doc_Environment_ViteAndVue, Website_Doc_Environment_ViteAndVue_Path, Website_Doc_HTML, Website_Doc_HTML_Path, Website_Doc_IntlayerCMS, Website_Doc_IntlayerCMS_Path, Website_Doc_IntlayerVisualEditor, Website_Doc_IntlayerVisualEditor_Path, Website_Doc_Intlayer_with_Lynx_and_React, Website_Doc_Intlayer_with_Lynx_and_React_Path, Website_Doc_MCP, Website_Doc_MCP_Path, Website_Doc_Markdown, Website_Doc_Markdown_Path, Website_Doc_Path, Website_Doc_Root, Website_Doc_Root_Path, Website_Doc_Search, Website_Doc_Search_Path, Website_Doc_SelfHosting, Website_Doc_SelfHosting_Path, Website_Doc_Why, Website_Doc_Why_Path, Website_Domain, Website_FrequentQuestions, Website_FrequentQuestions_Path, Website_Home, Website_Home_Path, Website_I18nextFormatter, Website_I18nextFormatter_Path, Website_ICUFormatter, Website_ICUFormatter_Path, Website_IntlayerFormatter, Website_IntlayerFormatter_Path, Website_Markdown, Website_Markdown_Path, Website_MessageConverter, Website_MessageConverter_Path, Website_NotFound, Website_NotFound_Path, Website_Origin, Website_POFormatter, Website_POFormatter_Path, Website_Playground, Website_Playground_Path, Website_PrivacyPolicy, Website_PrivacyPolicy_Path, Website_ReleasesV6, Website_ReleasesV6_Path, Website_ReleasesV7, Website_ReleasesV7_Path, Website_ReleasesV8, Website_ReleasesV8_Path, Website_ReleasesV9_Path, Website_Scanner, Website_Scanner_Path, Website_TMS, Website_TMS_Path, Website_TermsOfService, Website_TermsOfService_Path, Website_Translate, Website_Translate_Path, Website_VueI18nFormatter, Website_VueI18nFormatter_Path, WellKnown_AgentSkillsIndex_Path, WellKnown_AgentSkills_Path, WellKnown_AiCatalog_Path, WellKnown_ApiCatalog_Path, WellKnown_McpServerCard_Path, WellKnown_OAuthAuthorizationServer_Path, WellKnown_OAuthProtectedResource_Path, getAppAdminAffiliateRoute, getAppAdminOrganizationAbsoluteRoute, getAppAdminOrganizationRoute, getAppAdminProjectAbsoluteRoute, getAppAdminProjectRoute, getAppAdminPromoCodeRoute, getAppAdminReviewerRoute, getAppAdminUserAbsoluteRoute, getAppAdminUserRoute, getAppOnboardingFlowAbsoluteRoute, getAppOnboardingFlowRoute, getAppReviewerMissionRoute, getAppReviewerProfileRoute };
|
|
327
|
+
export { App_Admin, App_Admin_Affiliate, App_Admin_Affiliate_Path, App_Admin_Dashboard, App_Admin_Dashboard_Path, App_Admin_Discussions, App_Admin_Discussions_Path, App_Admin_Management, App_Admin_Management_Path, App_Admin_Organizations, App_Admin_Organizations_Path, App_Admin_Path, App_Admin_Projects, App_Admin_Projects_Path, App_Admin_PromoCodes, App_Admin_PromoCodes_Path, App_Admin_Reviewers, App_Admin_Reviewers_Path, App_Admin_Users, App_Admin_Users_Path, App_Affiliation, App_Affiliation_Path, App_Auth_AskResetPassword, App_Auth_AskResetPassword_Path, App_Auth_ChangePassword, App_Auth_ChangePassword_Path, App_Auth_Demo_Path, App_Auth_Path, App_Auth_ResetPassword, App_Auth_ResetPassword_Path, App_Auth_SignIn, App_Auth_SignIn_Path, App_Auth_SignUp, App_Auth_SignUp_Path, App_Auth_TwoFactor, App_Auth_TwoFactor_Path, App_Dashboard, App_Dashboard_Analytics, App_Dashboard_Analytics_Path, App_Dashboard_Assets_Path, App_Dashboard_Dictionaries, App_Dashboard_Dictionaries_Path, App_Dashboard_Editor, App_Dashboard_Editor_Path, App_Dashboard_IDE, App_Dashboard_IDE_Path, App_Dashboard_Organization, App_Dashboard_Organization_Path, App_Dashboard_Profile, App_Dashboard_Profile_Path, App_Dashboard_Projects, App_Dashboard_Projects_Path, App_Dashboard_Scanner, App_Dashboard_Scanner_Path, App_Dashboard_Tags, App_Dashboard_Tags_Path, App_Dashboard_Translate, App_Dashboard_Translate_Path, App_Demo, App_Demo_Path, App_Home_Path, App_Init_Path, App_NotFound_Path, App_Onboarding, App_Onboarding_Path, App_Origin, App_Pricing, App_Pricing_Path, App_ReviewerMarketplace, App_ReviewerMarketplace_Dashboard, App_ReviewerMarketplace_Dashboard_Mission_Path, App_ReviewerMarketplace_Dashboard_Path, App_ReviewerMarketplace_Path, App_ReviewerMarketplace_Reviewer_Path, AuthMd_Path, Backend_Health, Backend_OAuth2_Token, Backend_Origin, Backend_Root, Doc_Blog_Path, Doc_Blog_Root_Path, Doc_Blog_Search_Path, Doc_Blog_What_is_i18n_Path, Doc_CLI_Fill_Path, Doc_CLI_Review_Path, Doc_CLI_Translate_Path, Doc_Chat_Path, Doc_Contributors_Path, Doc_Environment_Adonis_Path, Doc_Environment_Angular_Path, Doc_Environment_Astro_Path, Doc_Environment_CRA_Path, Doc_Environment_Express_Path, Doc_Environment_Fastify_Path, Doc_Environment_Hono_Path, Doc_Environment_Lit_Path, Doc_Environment_Lynx_Path, Doc_Environment_NestJS_Path, Doc_Environment_NextJS_14_Path, Doc_Environment_NextJS_15_Path, Doc_Environment_NextJS_16_Path, Doc_Environment_NextJS_Path, Doc_Environment_Nodejs_Path, Doc_Environment_NuxtAndVue_Path, Doc_Environment_ReactNativeAndExpo_Path, Doc_Environment_Tanstack_Path, Doc_Environment_ViteAndPreact_Path, Doc_Environment_ViteAndReact_Path, Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes_Path, Doc_Environment_ViteAndReact_ReactRouterV7_Path, Doc_Environment_ViteAndSolid_Path, Doc_Environment_ViteAndSvelte_Path, Doc_Environment_ViteAndVue_Path, Doc_FrequentQuestions_Path, Doc_IntlayerCMS_Path, Doc_IntlayerVisualEditor_Path, Doc_Intlayer_with_Lynx_and_React_Path, Doc_MCP_Path, Doc_Path, Doc_PrivacyPolicy_Path, Doc_ReleasesV6_Path, Doc_ReleasesV7_Path, Doc_ReleasesV8_Path, Doc_Root_Path, Doc_Search_Path, Doc_ShowcaseSubmit_Path, Doc_Showcase_Path, Doc_TermsOfService_Path, Doc_Why_Path, External_AI_Landing_Page, External_Discord, External_DockerHub_SelfHost, External_ExampleIntlayerWithExpress, External_ExampleIntlayerWithNextjs, External_ExampleIntlayerWithReactJS, External_ExampleIntlayerWithReactNative, External_ExampleIntlayerWithViteAndPreact, External_ExampleIntlayerWithViteAndReact, External_ExampleIntlayerWithViteAndSolid, External_ExampleIntlayerWithViteAndSvelte, External_ExampleIntlayerWithViteAndVue, External_Examples, External_Github, External_Github_i18n_benchmark, External_LinkedIn, External_ShowcaseApp, LlmsTxt_Path, Mcp_Origin, Mcp_Root, Mcp_Sse, Showcase_Origin, Showcase_Root, Showcase_Root_Path, Showcase_Submit, Showcase_Submit_Path, Website_Benchmark, Website_Benchmark_NextJS, Website_Benchmark_NextJS_Path, Website_Benchmark_Path, Website_Benchmark_Tanstack, Website_Benchmark_Tanstack_Path, Website_Blog, Website_Blog_Path, Website_Blog_Root, Website_Blog_Root_Path, Website_Blog_Search, Website_Blog_Search_Path, Website_Blog_What_is_i18n, Website_Blog_What_is_i18n_Path, Website_CMS, Website_CMS_Path, Website_Changelog, Website_Changelog_Path, Website_Contributors, Website_Contributors_Path, Website_Demo, Website_Demo_Path, Website_Doc, Website_Doc_CLI_Fill, Website_Doc_CLI_Fill_Path, Website_Doc_CLI_Review, Website_Doc_CLI_Review_Path, Website_Doc_CLI_Translate, Website_Doc_CLI_Translate_Path, Website_Doc_Chat, Website_Doc_Chat_Path, Website_Doc_Environment_Adonis, Website_Doc_Environment_Adonis_Path, Website_Doc_Environment_Angular, Website_Doc_Environment_Angular_Path, Website_Doc_Environment_Astro, Website_Doc_Environment_Astro_Path, Website_Doc_Environment_CRA, Website_Doc_Environment_CRA_Path, Website_Doc_Environment_Express, Website_Doc_Environment_Express_Path, Website_Doc_Environment_Fastify, Website_Doc_Environment_Fastify_Path, Website_Doc_Environment_Hono, Website_Doc_Environment_Hono_Path, Website_Doc_Environment_Htmx, Website_Doc_Environment_Htmx_Path, Website_Doc_Environment_Lit, Website_Doc_Environment_Lit_Path, Website_Doc_Environment_Lynx, Website_Doc_Environment_Lynx_Path, Website_Doc_Environment_NestJS, Website_Doc_Environment_NestJS_Path, Website_Doc_Environment_NextJS, Website_Doc_Environment_NextJS_14, Website_Doc_Environment_NextJS_14_Path, Website_Doc_Environment_NextJS_15, Website_Doc_Environment_NextJS_15_Path, Website_Doc_Environment_NextJS_16, Website_Doc_Environment_NextJS_16_Path, Website_Doc_Environment_NextJS_Path, Website_Doc_Environment_Nodejs, Website_Doc_Environment_Nodejs_Path, Website_Doc_Environment_NuxtAndVue, Website_Doc_Environment_NuxtAndVue_Path, Website_Doc_Environment_ReactNativeAndExpo, Website_Doc_Environment_ReactNativeAndExpo_Path, Website_Doc_Environment_Remix_3, Website_Doc_Environment_Remix_3_Path, Website_Doc_Environment_Tanstack, Website_Doc_Environment_Tanstack_Path, Website_Doc_Environment_ViteAndPreact, Website_Doc_Environment_ViteAndPreact_Path, Website_Doc_Environment_ViteAndReact, Website_Doc_Environment_ViteAndReact_Path, Website_Doc_Environment_ViteAndReact_ReactRouterV7, Website_Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes, Website_Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes_Path, Website_Doc_Environment_ViteAndReact_ReactRouterV7_Path, Website_Doc_Environment_ViteAndSolid, Website_Doc_Environment_ViteAndSolid_Path, Website_Doc_Environment_ViteAndSvelte, Website_Doc_Environment_ViteAndSvelte_Path, Website_Doc_Environment_ViteAndVue, Website_Doc_Environment_ViteAndVue_Path, Website_Doc_HTML, Website_Doc_HTML_Path, Website_Doc_IntlayerCMS, Website_Doc_IntlayerCMS_Path, Website_Doc_IntlayerVisualEditor, Website_Doc_IntlayerVisualEditor_Path, Website_Doc_Intlayer_with_Lynx_and_React, Website_Doc_Intlayer_with_Lynx_and_React_Path, Website_Doc_MCP, Website_Doc_MCP_Path, Website_Doc_Markdown, Website_Doc_Markdown_Path, Website_Doc_Path, Website_Doc_Root, Website_Doc_Root_Path, Website_Doc_Search, Website_Doc_Search_Path, Website_Doc_SelfHosting, Website_Doc_SelfHosting_Path, Website_Doc_Why, Website_Doc_Why_Path, Website_Domain, Website_FrequentQuestions, Website_FrequentQuestions_Path, Website_Home, Website_Home_Path, Website_I18nextFormatter, Website_I18nextFormatter_Path, Website_ICUFormatter, Website_ICUFormatter_Path, Website_IntlayerFormatter, Website_IntlayerFormatter_Path, Website_Markdown, Website_Markdown_Path, Website_MessageConverter, Website_MessageConverter_Path, Website_NotFound, Website_NotFound_Path, Website_Origin, Website_POFormatter, Website_POFormatter_Path, Website_Playground, Website_Playground_Path, Website_PrivacyPolicy, Website_PrivacyPolicy_Path, Website_ReleasesV6, Website_ReleasesV6_Path, Website_ReleasesV7, Website_ReleasesV7_Path, Website_ReleasesV8, Website_ReleasesV8_Path, Website_ReleasesV9_Path, Website_Scanner, Website_Scanner_Path, Website_TMS, Website_TMS_Path, Website_TermsOfService, Website_TermsOfService_Path, Website_Translate, Website_Translate_Path, Website_VueI18nFormatter, Website_VueI18nFormatter_Path, WellKnown_AgentSkillsIndex_Path, WellKnown_AgentSkills_Path, WellKnown_AiCatalog_Path, WellKnown_ApiCatalog_Path, WellKnown_McpServerCard_Path, WellKnown_OAuthAuthorizationServer_Path, WellKnown_OAuthProtectedResource_Path, getAppAdminAffiliateRoute, getAppAdminOrganizationAbsoluteRoute, getAppAdminOrganizationRoute, getAppAdminProjectAbsoluteRoute, getAppAdminProjectRoute, getAppAdminPromoCodeRoute, getAppAdminReviewerRoute, getAppAdminUserAbsoluteRoute, getAppAdminUserRoute, getAppOnboardingFlowAbsoluteRoute, getAppOnboardingFlowRoute, getAppReviewerMissionRoute, getAppReviewerProfileRoute };
|
|
326
328
|
//# sourceMappingURL=routes.mjs.map
|
package/dist/esm/routes.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.mjs","names":[],"sources":["../../src/routes.ts"],"sourcesContent":["// ============================================================\n// Origins\n// ============================================================\n// `VITE_CMS_URL` and `VITE_BACKEND_URL` are full URLs (`https://…`), so they\n// are the origins themselves — never a host to prefix a scheme onto.\n\n// `import.meta.env` is optional-chained: this module is also loaded by plain\n// Node (a `vite.config.ts` importing it, the CLI), where `env` is undefined.\nexport const App_Origin = ((import.meta as any).env?.VITE_CMS_URL ||\n 'https://app.intlayer.org') as 'https://app.intlayer.org';\nexport const Backend_Origin = ((import.meta as any).env?.VITE_BACKEND_URL ||\n 'https://back.intlayer.org') as 'https://back.intlayer.org';\nexport const Showcase_Origin = 'https://showcase.intlayer.org' as const;\nexport const Mcp_Origin = 'https://mcp.intlayer.org' as const;\n\n// ============================================================\n// Domains\n// ============================================================\nexport const Website_Domain = 'intlayer.org' as const;\nexport const Website_Origin = `https://${Website_Domain}` as const;\n\n// ============================================================\n// App paths — relative (app.intlayer.org)\n// ============================================================\nexport const App_Home_Path = '/' as const;\nexport const App_NotFound_Path = '/404' as const;\n\nexport const App_Dashboard_Editor_Path = '/editor' as const;\nexport const App_Dashboard_Translate_Path = '/translate' as const;\nexport const App_Dashboard_Dictionaries_Path = '/dictionary' as const;\nexport const App_Dashboard_Projects_Path = '/projects' as const;\nexport const App_Dashboard_Tags_Path = '/tags' as const;\nexport const App_Dashboard_Organization_Path = '/organization' as const;\nexport const App_Dashboard_Profile_Path = '/profile' as const;\nexport const App_Dashboard_IDE_Path = '/ide' as const;\nexport const App_Dashboard_Scanner_Path = '/scanner' as const;\nexport const App_Dashboard_Assets_Path = '/assets' as const;\nexport const App_Dashboard_Analytics_Path = '/analytics' as const;\n\nexport const App_Pricing_Path = '/pricing' as const;\nexport const App_Affiliation_Path = '/affiliation' as const;\n\nexport const App_Demo_Path = '/demo' as const;\nexport const App_Init_Path = '/init' as const;\n\nexport const App_ReviewerMarketplace_Path = '/find-reviewer' as const;\nexport const App_ReviewerMarketplace_Dashboard_Path =\n '/find-reviewer/dashboard' as const;\nexport const App_ReviewerMarketplace_Reviewer_Path =\n '/find-reviewer/$reviewerId' as const;\nexport const App_ReviewerMarketplace_Dashboard_Mission_Path =\n '/find-reviewer/dashboard/mission/$missionId' as const;\n\nexport const getAppReviewerProfileRoute = (reviewerId: string) =>\n `/find-reviewer/${reviewerId}` as const;\nexport const getAppReviewerMissionRoute = (missionId: string) =>\n `/find-reviewer/dashboard/mission/${missionId}` as const;\n\n/** Root of the authentication section, usable as a `Disallow` prefix. */\nexport const App_Auth_Path = '/auth' as const;\nexport const App_Auth_SignIn_Path = '/auth/login' as const;\nexport const App_Auth_SignUp_Path = '/auth/register' as const;\nexport const App_Auth_TwoFactor_Path = '/auth/2fa' as const;\nexport const App_Auth_Demo_Path = '/auth/demo' as const;\nexport const App_Auth_AskResetPassword_Path =\n '/auth/password/ask-reset' as const;\nexport const App_Auth_ResetPassword_Path = '/auth/password/reset' as const;\nexport const App_Auth_ChangePassword_Path = '/auth/password/change' as const;\n\nexport const App_Admin_Path = '/admin' as const;\nexport const App_Admin_Users_Path = '/admin/users' as const;\nexport const App_Admin_Organizations_Path = '/admin/organizations' as const;\nexport const App_Admin_Projects_Path = '/admin/projects' as const;\nexport const App_Admin_Dashboard_Path = '/admin/dashboard' as const;\nexport const App_Admin_Management_Path = '/admin/management' as const;\nexport const App_Admin_Discussions_Path = '/admin/discussions' as const;\nexport const App_Admin_Affiliate_Path = '/admin/affiliate' as const;\nexport const getAppAdminAffiliateRoute = (id: string) =>\n `${App_Admin_Affiliate_Path}/${id}` as const;\nexport const App_Admin_PromoCodes_Path = '/admin/promo-code' as const;\nexport const getAppAdminPromoCodeRoute = (id: string) =>\n `${App_Admin_PromoCodes_Path}/${id}` as const;\n\nexport const App_Admin_Reviewers_Path = '/admin/reviewers' as const;\nexport const getAppAdminReviewerRoute = (id: string) =>\n `${App_Admin_Reviewers_Path}/${id}` as const;\n\nexport const App_Onboarding_Path = '/onboarding' as const;\n\nexport const getAppAdminUserRoute = (id: string) =>\n `${App_Admin_Users_Path}/${id}` as const;\nexport const getAppAdminOrganizationRoute = (id: string) =>\n `${App_Admin_Organizations_Path}/${id}` as const;\nexport const getAppAdminProjectRoute = (id: string) =>\n `${App_Admin_Projects_Path}/${id}` as const;\nexport const getAppOnboardingFlowRoute = (step: string) =>\n `${App_Onboarding_Path}/${step}` as const;\n\n// ============================================================\n// App absolute URLs — https://app.intlayer.org\n// ============================================================\nexport const App_Dashboard = App_Origin;\nexport const App_Dashboard_Editor =\n `${App_Origin}${App_Dashboard_Editor_Path}` as const;\nexport const App_Dashboard_Translate =\n `${App_Origin}${App_Dashboard_Translate_Path}` as const;\nexport const App_Dashboard_Dictionaries =\n `${App_Origin}${App_Dashboard_Dictionaries_Path}` as const;\nexport const App_Dashboard_Projects =\n `${App_Origin}${App_Dashboard_Projects_Path}` as const;\nexport const App_Dashboard_Tags =\n `${App_Origin}${App_Dashboard_Tags_Path}` as const;\nexport const App_Dashboard_Organization =\n `${App_Origin}${App_Dashboard_Organization_Path}` as const;\nexport const App_Dashboard_Profile =\n `${App_Origin}${App_Dashboard_Profile_Path}` as const;\nexport const App_Dashboard_IDE =\n `${App_Origin}${App_Dashboard_IDE_Path}` as const;\nexport const App_Dashboard_Scanner =\n `${App_Origin}${App_Dashboard_Scanner_Path}` as const;\nexport const App_Dashboard_Analytics =\n `${App_Origin}${App_Dashboard_Analytics_Path}` as const;\n\nexport const App_Pricing = `${App_Origin}${App_Pricing_Path}` as const;\nexport const App_Affiliation = `${App_Origin}${App_Affiliation_Path}` as const;\nexport const App_Demo = `${App_Origin}${App_Demo_Path}` as const;\n\nexport const App_ReviewerMarketplace =\n `${App_Origin}${App_ReviewerMarketplace_Path}` as const;\nexport const App_ReviewerMarketplace_Dashboard =\n `${App_Origin}${App_ReviewerMarketplace_Dashboard_Path}` as const;\n\nexport const App_Auth_SignIn = `${App_Origin}${App_Auth_SignIn_Path}` as const;\nexport const App_Auth_SignUp = `${App_Origin}${App_Auth_SignUp_Path}` as const;\nexport const App_Auth_TwoFactor =\n `${App_Origin}${App_Auth_TwoFactor_Path}` as const;\nexport const App_Auth_AskResetPassword =\n `${App_Origin}${App_Auth_AskResetPassword_Path}` as const;\nexport const App_Auth_ResetPassword =\n `${App_Origin}${App_Auth_ResetPassword_Path}` as const;\nexport const App_Auth_ChangePassword =\n `${App_Origin}${App_Auth_ChangePassword_Path}` as const;\n\nexport const App_Admin = `${App_Origin}${App_Admin_Path}` as const;\nexport const App_Admin_Users = `${App_Origin}${App_Admin_Users_Path}` as const;\nexport const App_Admin_Organizations =\n `${App_Origin}${App_Admin_Organizations_Path}` as const;\nexport const App_Admin_Projects =\n `${App_Origin}${App_Admin_Projects_Path}` as const;\nexport const App_Admin_Dashboard =\n `${App_Origin}${App_Admin_Dashboard_Path}` as const;\nexport const App_Admin_Management =\n `${App_Origin}${App_Admin_Management_Path}` as const;\nexport const App_Admin_Discussions =\n `${App_Origin}${App_Admin_Discussions_Path}` as const;\nexport const App_Admin_Affiliate =\n `${App_Origin}${App_Admin_Affiliate_Path}` as const;\nexport const App_Admin_PromoCodes =\n `${App_Origin}${App_Admin_PromoCodes_Path}` as const;\nexport const App_Admin_Reviewers =\n `${App_Origin}${App_Admin_Reviewers_Path}` as const;\n\nexport const App_Onboarding = `${App_Origin}${App_Onboarding_Path}` as const;\n\nexport const getAppAdminUserAbsoluteRoute = (id: string) =>\n `${App_Origin}${App_Admin_Users_Path}/${id}` as const;\nexport const getAppAdminOrganizationAbsoluteRoute = (id: string) =>\n `${App_Origin}${App_Admin_Organizations_Path}/${id}` as const;\nexport const getAppAdminProjectAbsoluteRoute = (id: string) =>\n `${App_Origin}${App_Admin_Projects_Path}/${id}` as const;\nexport const getAppOnboardingFlowAbsoluteRoute = (\n step: string,\n plan: string,\n period?: string\n) =>\n period\n ? `${App_Origin}${App_Onboarding_Path}/${step}/${plan}/${period}`\n : (`${App_Origin}${App_Onboarding_Path}/${step}/${plan}` as const);\n\n// ============================================================\n// Website paths — relative (intlayer.org)\n// ============================================================\nexport const Website_Home_Path = '/' as const;\nexport const Website_CMS_Path = '/cms' as const;\nexport const Website_TMS_Path = '/tms' as const;\nexport const Website_Translate_Path = '/translate' as const;\nexport const Website_Markdown_Path = '/markdown' as const;\nexport const Website_Demo_Path = '/demo' as const;\nexport const Website_Playground_Path = '/playground' as const;\nexport const Website_NotFound_Path = '/404' as const;\nexport const Website_Changelog_Path = '/changelog' as const;\nexport const Website_Scanner_Path = '/i18n-seo-scanner' as const;\nexport const Website_MessageConverter_Path = '/i18n-message-converter' as const;\nexport const Website_IntlayerFormatter_Path =\n '/intlayer-message-formatter' as const;\nexport const Website_ICUFormatter_Path = '/icu-message-formatter' as const;\nexport const Website_I18nextFormatter_Path =\n '/i18next-message-formatter' as const;\nexport const Website_VueI18nFormatter_Path =\n '/vue-i18n-message-formatter' as const;\nexport const Website_POFormatter_Path = '/po-file-message-formatter' as const;\n\nexport const Website_Doc_Root_Path = '/doc' as const;\nexport const Website_Doc_Path = '/doc/get-started' as const;\nexport const Website_Doc_Why_Path = '/doc/why' as const;\nexport const Website_Doc_Search_Path = '/doc/search' as const;\nexport const Website_Doc_Chat_Path = '/doc/chat' as const;\nexport const Website_Doc_IntlayerVisualEditor_Path =\n '/doc/concept/editor' as const;\nexport const Website_Doc_IntlayerCMS_Path = '/doc/concept/cms' as const;\nexport const Website_Doc_SelfHosting_Path = '/doc/self-hosting' as const;\nexport const Website_Doc_Markdown_Path =\n '/doc/concept/content/markdown' as const;\nexport const Website_Doc_HTML_Path = '/doc/concept/content/html' as const;\n\nexport const Website_ReleasesV6_Path = '/doc/releases/v6' as const;\nexport const Website_ReleasesV7_Path = '/doc/releases/v7' as const;\nexport const Website_ReleasesV8_Path = '/doc/releases/v8' as const;\nexport const Website_ReleasesV9_Path = '/doc/releases/v9' as const;\nexport const Website_Doc_Environment_NextJS_Path =\n '/doc/environment/nextjs' as const;\nexport const Website_Doc_Environment_NextJS_16_Path =\n '/doc/environment/nextjs' as const;\nexport const Website_Doc_Environment_NextJS_15_Path =\n '/doc/environment/nextjs/15' as const;\nexport const Website_Doc_Environment_NextJS_14_Path =\n '/doc/environment/nextjs/14' as const;\nexport const Website_Doc_Environment_CRA_Path =\n '/doc/environment/create-react-app' as const;\nexport const Website_Doc_Environment_Astro_Path =\n '/doc/environment/astro' as const;\nexport const Website_Doc_Environment_ViteAndReact_Path =\n '/doc/environment/vite-and-react' as const;\nexport const Website_Doc_Environment_ViteAndReact_ReactRouterV7_Path =\n '/doc/environment/vite-and-react/react-router-v7' as const;\nexport const Website_Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes_Path =\n '/doc/environment/vite-and-react/react-router-v7-fs-routes' as const;\nexport const Website_Doc_Environment_Tanstack_Path =\n '/doc/environment/tanstack-start' as const;\nexport const Website_Doc_Environment_Lit_Path =\n '/doc/environment/vite-and-lit' as const;\nexport const Website_Doc_Environment_Nodejs_Path = '/doc/concept/cli' as const;\nexport const Website_Doc_Environment_Adonis_Path =\n '/doc/environment/adonisjs' as const;\nexport const Website_Doc_Environment_ViteAndVue_Path =\n '/doc/environment/vite-and-vue' as const;\nexport const Website_Doc_Environment_ViteAndSolid_Path =\n '/doc/environment/vite-and-solid' as const;\nexport const Website_Doc_Environment_ViteAndSvelte_Path =\n '/doc/environment/vite-and-svelte' as const;\nexport const Website_Doc_Environment_ViteAndPreact_Path =\n '/doc/environment/vite-and-preact' as const;\nexport const Website_Doc_Environment_NuxtAndVue_Path =\n '/doc/environment/nuxt-and-vue' as const;\nexport const Website_Doc_Intlayer_with_Lynx_and_React_Path =\n '/doc/environment/lynx-and-react' as const;\nexport const Website_Doc_Environment_Angular_Path =\n '/doc/environment/angular' as const;\nexport const Website_Doc_Environment_ReactNativeAndExpo_Path =\n '/doc/environment/react-native-and-expo' as const;\nexport const Website_Doc_Environment_Lynx_Path =\n '/doc/environment/lynx-and-react' as const;\nexport const Website_Doc_Environment_Express_Path =\n '/doc/environment/express' as const;\nexport const Website_Doc_Environment_NestJS_Path =\n '/doc/environment/nest' as const;\nexport const Website_Doc_Environment_Fastify_Path =\n '/doc/environment/fastify' as const;\nexport const Website_Doc_Environment_Hono_Path =\n '/doc/environment/hono' as const;\nexport const Website_Doc_Environment_Htmx_Path =\n '/doc/environment/htmx' as const;\n\nexport const Website_Doc_CLI_Fill_Path = '/doc/concept/cli/fill' as const;\nexport const Website_Doc_CLI_Translate_Path =\n '/doc/concept/cli/doc-translate' as const;\nexport const Website_Doc_CLI_Review_Path =\n '/doc/concept/cli/doc-review' as const;\n\nexport const Website_Benchmark_Path = '/doc/benchmark' as const;\nexport const Website_Benchmark_NextJS_Path = '/doc/benchmark/nextjs' as const;\nexport const Website_Benchmark_Tanstack_Path =\n '/doc/benchmark/tanstack' as const;\n\nexport const Website_Doc_MCP_Path = '/doc/mcp-server' as const;\n\nexport const Website_Blog_Root_Path = '/blog' as const;\nexport const Website_Blog_Path = '/blog' as const;\nexport const Website_Blog_Search_Path = '/blog' as const;\nexport const Website_Blog_What_is_i18n_Path =\n '/blog/what-is-internationalization' as const;\n\nexport const Website_FrequentQuestions_Path = '/frequent-questions' as const;\nexport const Website_PrivacyPolicy_Path = '/privacy-notice' as const;\nexport const Website_TermsOfService_Path = '/terms-of-service' as const;\nexport const Website_Contributors_Path = '/contributors' as const;\n\n// ============================================================\n// Website absolute URLs — https://intlayer.org\n// ============================================================\nexport const Website_Home = `${Website_Origin}${Website_Home_Path}` as const;\nexport const Website_CMS = `${Website_Origin}${Website_CMS_Path}` as const;\nexport const Website_TMS = `${Website_Origin}${Website_TMS_Path}` as const;\nexport const Website_Translate =\n `${Website_Origin}${Website_Translate_Path}` as const;\nexport const Website_Markdown =\n `${Website_Origin}${Website_Markdown_Path}` as const;\nexport const Website_Demo = `${Website_Origin}${Website_Demo_Path}` as const;\nexport const Website_Playground =\n `${Website_Origin}${Website_Playground_Path}` as const;\nexport const Website_NotFound =\n `${Website_Origin}${Website_NotFound_Path}` as const;\nexport const Website_Changelog =\n `${Website_Origin}${Website_Changelog_Path}` as const;\nexport const Website_Scanner =\n `${Website_Origin}${Website_Scanner_Path}` as const;\nexport const Website_MessageConverter =\n `${Website_Origin}${Website_MessageConverter_Path}` as const;\nexport const Website_IntlayerFormatter =\n `${Website_Origin}${Website_IntlayerFormatter_Path}` as const;\nexport const Website_ICUFormatter =\n `${Website_Origin}${Website_ICUFormatter_Path}` as const;\nexport const Website_I18nextFormatter =\n `${Website_Origin}${Website_I18nextFormatter_Path}` as const;\nexport const Website_VueI18nFormatter =\n `${Website_Origin}${Website_VueI18nFormatter_Path}` as const;\nexport const Website_POFormatter =\n `${Website_Origin}${Website_POFormatter_Path}` as const;\nexport const Website_Benchmark =\n `${Website_Origin}${Website_Benchmark_Path}` as const;\nexport const Website_Benchmark_NextJS =\n `${Website_Origin}${Website_Benchmark_NextJS_Path}` as const;\nexport const Website_Benchmark_Tanstack =\n `${Website_Origin}${Website_Benchmark_Tanstack_Path}` as const;\n\nexport const Website_Doc_Root =\n `${Website_Origin}${Website_Doc_Root_Path}` as const;\nexport const Website_Doc = `${Website_Origin}${Website_Doc_Path}` as const;\nexport const Website_Doc_Why =\n `${Website_Origin}${Website_Doc_Why_Path}` as const;\nexport const Website_Doc_Search =\n `${Website_Origin}${Website_Doc_Search_Path}` as const;\nexport const Website_Doc_Chat =\n `${Website_Origin}${Website_Doc_Chat_Path}` as const;\nexport const Website_Doc_IntlayerVisualEditor =\n `${Website_Origin}${Website_Doc_IntlayerVisualEditor_Path}` as const;\nexport const Website_Doc_IntlayerCMS =\n `${Website_Origin}${Website_Doc_IntlayerCMS_Path}` as const;\nexport const Website_Doc_SelfHosting =\n `${Website_Origin}${Website_Doc_SelfHosting_Path}` as const;\nexport const Website_Doc_Markdown =\n `${Website_Origin}${Website_Doc_Markdown_Path}` as const;\nexport const Website_Doc_HTML =\n `${Website_Origin}${Website_Doc_HTML_Path}` as const;\n\nexport const Website_ReleasesV6 =\n `${Website_Origin}${Website_ReleasesV6_Path}` as const;\nexport const Website_ReleasesV7 =\n `${Website_Origin}${Website_ReleasesV7_Path}` as const;\nexport const Website_ReleasesV8 =\n `${Website_Origin}${Website_ReleasesV8_Path}` as const;\nexport const Website_Doc_Environment_NextJS =\n `${Website_Origin}${Website_Doc_Environment_NextJS_Path}` as const;\nexport const Website_Doc_Environment_NextJS_16 =\n `${Website_Origin}${Website_Doc_Environment_NextJS_16_Path}` as const;\nexport const Website_Doc_Environment_NextJS_15 =\n `${Website_Origin}${Website_Doc_Environment_NextJS_15_Path}` as const;\nexport const Website_Doc_Environment_NextJS_14 =\n `${Website_Origin}${Website_Doc_Environment_NextJS_14_Path}` as const;\nexport const Website_Doc_Environment_CRA =\n `${Website_Origin}${Website_Doc_Environment_CRA_Path}` as const;\nexport const Website_Doc_Environment_Astro =\n `${Website_Origin}${Website_Doc_Environment_Astro_Path}` as const;\nexport const Website_Doc_Environment_ViteAndReact =\n `${Website_Origin}${Website_Doc_Environment_ViteAndReact_Path}` as const;\nexport const Website_Doc_Environment_ViteAndReact_ReactRouterV7 =\n `${Website_Origin}${Website_Doc_Environment_ViteAndReact_ReactRouterV7_Path}` as const;\nexport const Website_Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes =\n `${Website_Origin}${Website_Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes_Path}` as const;\nexport const Website_Doc_Environment_Tanstack =\n `${Website_Origin}${Website_Doc_Environment_Tanstack_Path}` as const;\nexport const Website_Doc_Environment_Lit =\n `${Website_Origin}${Website_Doc_Environment_Lit_Path}` as const;\nexport const Website_Doc_Environment_Nodejs =\n `${Website_Origin}${Website_Doc_Environment_Nodejs_Path}` as const;\nexport const Website_Doc_Environment_Adonis =\n `${Website_Origin}${Website_Doc_Environment_Adonis_Path}` as const;\nexport const Website_Doc_Environment_ViteAndVue =\n `${Website_Origin}${Website_Doc_Environment_ViteAndVue_Path}` as const;\nexport const Website_Doc_Environment_ViteAndSolid =\n `${Website_Origin}${Website_Doc_Environment_ViteAndSolid_Path}` as const;\nexport const Website_Doc_Environment_ViteAndSvelte =\n `${Website_Origin}${Website_Doc_Environment_ViteAndSvelte_Path}` as const;\nexport const Website_Doc_Environment_ViteAndPreact =\n `${Website_Origin}${Website_Doc_Environment_ViteAndPreact_Path}` as const;\nexport const Website_Doc_Environment_NuxtAndVue =\n `${Website_Origin}${Website_Doc_Environment_NuxtAndVue_Path}` as const;\nexport const Website_Doc_Intlayer_with_Lynx_and_React =\n `${Website_Origin}${Website_Doc_Intlayer_with_Lynx_and_React_Path}` as const;\nexport const Website_Doc_Environment_Angular =\n `${Website_Origin}${Website_Doc_Environment_Angular_Path}` as const;\nexport const Website_Doc_Environment_ReactNativeAndExpo =\n `${Website_Origin}${Website_Doc_Environment_ReactNativeAndExpo_Path}` as const;\nexport const Website_Doc_Environment_Lynx =\n `${Website_Origin}${Website_Doc_Environment_Lynx_Path}` as const;\nexport const Website_Doc_Environment_Express =\n `${Website_Origin}${Website_Doc_Environment_Express_Path}` as const;\nexport const Website_Doc_Environment_NestJS =\n `${Website_Origin}${Website_Doc_Environment_NestJS_Path}` as const;\nexport const Website_Doc_Environment_Fastify =\n `${Website_Origin}${Website_Doc_Environment_Fastify_Path}` as const;\nexport const Website_Doc_Environment_Hono =\n `${Website_Origin}${Website_Doc_Environment_Hono_Path}` as const;\nexport const Website_Doc_Environment_Htmx =\n `${Website_Origin}${Website_Doc_Environment_Htmx_Path}` as const;\n\nexport const Website_Doc_CLI_Fill =\n `${Website_Origin}${Website_Doc_CLI_Fill_Path}` as const;\nexport const Website_Doc_CLI_Translate =\n `${Website_Origin}${Website_Doc_CLI_Translate_Path}` as const;\nexport const Website_Doc_CLI_Review =\n `${Website_Origin}${Website_Doc_CLI_Review_Path}` as const;\n\nexport const Website_Doc_MCP =\n `${Website_Origin}${Website_Doc_MCP_Path}` as const;\n\nexport const Website_Blog_Root =\n `${Website_Origin}${Website_Blog_Root_Path}` as const;\nexport const Website_Blog = `${Website_Origin}${Website_Blog_Path}` as const;\nexport const Website_Blog_Search =\n `${Website_Origin}${Website_Blog_Search_Path}` as const;\nexport const Website_Blog_What_is_i18n =\n `${Website_Origin}${Website_Blog_What_is_i18n_Path}` as const;\n\nexport const Website_FrequentQuestions =\n `${Website_Origin}${Website_FrequentQuestions_Path}` as const;\nexport const Website_PrivacyPolicy =\n `${Website_Origin}${Website_PrivacyPolicy_Path}` as const;\nexport const Website_TermsOfService =\n `${Website_Origin}${Website_TermsOfService_Path}` as const;\nexport const Website_Contributors =\n `${Website_Origin}${Website_Contributors_Path}` as const;\n\n// ============================================================\n// Doc app paths — relative (served under intlayer.org/doc/*)\n// ============================================================\nexport const Doc_Root_Path = '/doc' as const;\nexport const Doc_Path = '/get-started' as const;\nexport const Doc_Why_Path = '/why' as const;\nexport const Doc_Search_Path = '/search' as const;\nexport const Doc_Chat_Path = '/chat' as const;\nexport const Doc_IntlayerVisualEditor_Path = '/concept/editor' as const;\nexport const Doc_IntlayerCMS_Path = '/concept/cms' as const;\n\nexport const Doc_ReleasesV6_Path = '/releases/v6' as const;\nexport const Doc_ReleasesV7_Path = '/releases/v7' as const;\nexport const Doc_ReleasesV8_Path = '/releases/v8' as const;\nexport const Doc_Environment_NextJS_Path = '/environment/nextjs' as const;\nexport const Doc_Environment_NextJS_16_Path = '/environment/nextjs' as const;\nexport const Doc_Environment_NextJS_15_Path = '/environment/nextjs/15' as const;\nexport const Doc_Environment_NextJS_14_Path = '/environment/nextjs/14' as const;\nexport const Doc_Environment_CRA_Path =\n '/environment/create-react-app' as const;\nexport const Doc_Environment_Astro_Path = '/environment/astro' as const;\nexport const Doc_Environment_ViteAndReact_Path =\n '/environment/vite-and-react' as const;\nexport const Doc_Environment_ViteAndReact_ReactRouterV7_Path =\n '/environment/vite-and-react/react-router-v7' as const;\nexport const Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes_Path =\n '/environment/vite-and-react/react-router-v7-fs-routes' as const;\nexport const Doc_Environment_Tanstack_Path =\n '/environment/tanstack-start' as const;\nexport const Doc_Environment_Lit_Path = '/environment/vite-and-lit' as const;\nexport const Doc_Environment_Nodejs_Path = '/concept/cli' as const;\nexport const Doc_Environment_Adonis_Path = '/environment/adonisjs' as const;\nexport const Doc_Environment_ViteAndVue_Path =\n '/environment/vite-and-vue' as const;\nexport const Doc_Environment_ViteAndSolid_Path =\n '/environment/vite-and-solid' as const;\nexport const Doc_Environment_ViteAndSvelte_Path =\n '/environment/vite-and-svelte' as const;\nexport const Doc_Environment_ViteAndPreact_Path =\n '/environment/vite-and-preact' as const;\nexport const Doc_Environment_NuxtAndVue_Path =\n '/environment/nuxt-and-vue' as const;\nexport const Doc_Intlayer_with_Lynx_and_React_Path =\n '/environment/lynx-and-react' as const;\nexport const Doc_Environment_Angular_Path = '/environment/angular' as const;\nexport const Doc_Environment_ReactNativeAndExpo_Path =\n '/environment/react-native-and-expo' as const;\nexport const Doc_Environment_Lynx_Path = '/environment/lynx-and-react' as const;\nexport const Doc_Environment_Express_Path = '/environment/express' as const;\nexport const Doc_Environment_NestJS_Path = '/environment/nest' as const;\nexport const Doc_Environment_Fastify_Path = '/environment/fastify' as const;\nexport const Doc_Environment_Hono_Path = '/environment/hono' as const;\n\nexport const Doc_CLI_Fill_Path = '/concept/cli/fill' as const;\nexport const Doc_CLI_Translate_Path = '/concept/cli/doc-translate' as const;\nexport const Doc_CLI_Review_Path = '/concept/cli/doc-review' as const;\n\nexport const Doc_MCP_Path = '/mcp-server' as const;\n\nexport const Doc_Blog_Root_Path = '/blog' as const;\nexport const Doc_Blog_Path = '/blog' as const;\nexport const Doc_Blog_Search_Path = '/blog' as const;\nexport const Doc_Blog_What_is_i18n_Path =\n '/blog/what-is-internationalization' as const;\n\nexport const Doc_FrequentQuestions_Path = '/frequent-questions' as const;\nexport const Doc_PrivacyPolicy_Path = '/privacy-notice' as const;\nexport const Doc_TermsOfService_Path = '/terms-of-service' as const;\nexport const Doc_Contributors_Path = '/contributors' as const;\nexport const Doc_Showcase_Path = '/' as const;\nexport const Doc_ShowcaseSubmit_Path = '/submit' as const;\n\n// ============================================================\n// Showcase paths — relative (showcase.intlayer.org)\n// ============================================================\nexport const Showcase_Root_Path = '/' as const;\nexport const Showcase_Submit_Path = '/submit' as const;\n\n// ============================================================\n// Showcase absolute URLs — https://showcase.intlayer.org\n// ============================================================\nexport const Showcase_Root = Showcase_Origin;\nexport const Showcase_Submit =\n `${Showcase_Origin}${Showcase_Submit_Path}` as const;\n\n// ============================================================\n// Backend absolute URLs — https://back.intlayer.org\n// ============================================================\nexport const Backend_Root = Backend_Origin;\nexport const Backend_Health = `${Backend_Origin}/health` as const;\nexport const Backend_OAuth2_Token = `${Backend_Origin}/oauth2/token` as const;\n\n// ============================================================\n// MCP absolute URLs — https://mcp.intlayer.org\n// ============================================================\nexport const Mcp_Root = Mcp_Origin;\nexport const Mcp_Sse = `${Mcp_Origin}/sse` as const;\n\n// ============================================================\n// Agent discovery paths — relative\n//\n// Well-known documents that let AI agents discover the site's APIs,\n// skills and authentication without scraping HTML.\n// ============================================================\nexport const WellKnown_ApiCatalog_Path = '/.well-known/api-catalog' as const;\nexport const WellKnown_AiCatalog_Path = '/.well-known/ai-catalog.json' as const;\nexport const WellKnown_OAuthProtectedResource_Path =\n '/.well-known/oauth-protected-resource' as const;\nexport const WellKnown_OAuthAuthorizationServer_Path =\n '/.well-known/oauth-authorization-server' as const;\nexport const WellKnown_McpServerCard_Path =\n '/.well-known/mcp/server-card.json' as const;\nexport const WellKnown_AgentSkills_Path = '/.well-known/agent-skills' as const;\nexport const WellKnown_AgentSkillsIndex_Path =\n `${WellKnown_AgentSkills_Path}/index.json` as const;\nexport const AuthMd_Path = '/auth.md' as const;\nexport const LlmsTxt_Path = '/llms.txt' as const;\n\n// ============================================================\n// External links\n// ============================================================\nexport const External_Github =\n 'https://github.com/aymericzip/intlayer' as const;\n\nexport const External_DockerHub_SelfHost =\n 'https://hub.docker.com/r/aymericzip/intlayer-selfhost' as const;\n\nexport const External_Github_i18n_benchmark =\n 'https://github.com/intlayer-org/benchmark-i18n' as const;\n\nexport const External_Discord = 'https://discord.gg/7uxamYVeCk' as const;\nexport const External_LinkedIn =\n 'https://www.linkedin.com/company/intlayerorg/' as const;\nexport const External_AI_Landing_Page = 'https://ai.intlayer.org' as const;\nexport const External_ShowcaseApp = Showcase_Origin;\nexport const External_Examples =\n 'https://github.com/aymericzip/intlayer/tree/main/examples' as const;\nexport const External_ExampleIntlayerWithNextjs =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/nextjs-15-app' as const;\nexport const External_ExampleIntlayerWithReactJS =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/react-app' as const;\nexport const External_ExampleIntlayerWithViteAndReact =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/vite-react-app' as const;\nexport const External_ExampleIntlayerWithViteAndVue =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/vite-vue-app' as const;\nexport const External_ExampleIntlayerWithViteAndSvelte =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/vite-svelte-app' as const;\nexport const External_ExampleIntlayerWithViteAndSolid =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/vite-solid-app' as const;\nexport const External_ExampleIntlayerWithViteAndPreact =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/vite-preact-app' as const;\nexport const External_ExampleIntlayerWithReactNative =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/react-native-app' as const;\nexport const External_ExampleIntlayerWithExpress =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/express-app' as const;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes.mjs","names":[],"sources":["../../src/routes.ts"],"sourcesContent":["// ============================================================\n// Origins\n// ============================================================\n// `VITE_CMS_URL` and `VITE_BACKEND_URL` are full URLs (`https://…`), so they\n// are the origins themselves — never a host to prefix a scheme onto.\n\n// `import.meta.env` is optional-chained: this module is also loaded by plain\n// Node (a `vite.config.ts` importing it, the CLI), where `env` is undefined.\nexport const App_Origin = ((import.meta as any).env?.VITE_CMS_URL ||\n 'https://app.intlayer.org') as 'https://app.intlayer.org';\nexport const Backend_Origin = ((import.meta as any).env?.VITE_BACKEND_URL ||\n 'https://back.intlayer.org') as 'https://back.intlayer.org';\nexport const Showcase_Origin = 'https://showcase.intlayer.org' as const;\nexport const Mcp_Origin = 'https://mcp.intlayer.org' as const;\n\n// ============================================================\n// Domains\n// ============================================================\nexport const Website_Domain = 'intlayer.org' as const;\nexport const Website_Origin = `https://${Website_Domain}` as const;\n\n// ============================================================\n// App paths — relative (app.intlayer.org)\n// ============================================================\nexport const App_Home_Path = '/' as const;\nexport const App_NotFound_Path = '/404' as const;\n\nexport const App_Dashboard_Editor_Path = '/editor' as const;\nexport const App_Dashboard_Translate_Path = '/translate' as const;\nexport const App_Dashboard_Dictionaries_Path = '/dictionary' as const;\nexport const App_Dashboard_Projects_Path = '/projects' as const;\nexport const App_Dashboard_Tags_Path = '/tags' as const;\nexport const App_Dashboard_Organization_Path = '/organization' as const;\nexport const App_Dashboard_Profile_Path = '/profile' as const;\nexport const App_Dashboard_IDE_Path = '/ide' as const;\nexport const App_Dashboard_Scanner_Path = '/scanner' as const;\nexport const App_Dashboard_Assets_Path = '/assets' as const;\nexport const App_Dashboard_Analytics_Path = '/analytics' as const;\n\nexport const App_Pricing_Path = '/pricing' as const;\nexport const App_Affiliation_Path = '/affiliation' as const;\n\nexport const App_Demo_Path = '/demo' as const;\nexport const App_Init_Path = '/init' as const;\n\nexport const App_ReviewerMarketplace_Path = '/find-reviewer' as const;\nexport const App_ReviewerMarketplace_Dashboard_Path =\n '/find-reviewer/dashboard' as const;\nexport const App_ReviewerMarketplace_Reviewer_Path =\n '/find-reviewer/$reviewerId' as const;\nexport const App_ReviewerMarketplace_Dashboard_Mission_Path =\n '/find-reviewer/dashboard/mission/$missionId' as const;\n\nexport const getAppReviewerProfileRoute = (reviewerId: string) =>\n `/find-reviewer/${reviewerId}` as const;\nexport const getAppReviewerMissionRoute = (missionId: string) =>\n `/find-reviewer/dashboard/mission/${missionId}` as const;\n\n/** Root of the authentication section, usable as a `Disallow` prefix. */\nexport const App_Auth_Path = '/auth' as const;\nexport const App_Auth_SignIn_Path = '/auth/login' as const;\nexport const App_Auth_SignUp_Path = '/auth/register' as const;\nexport const App_Auth_TwoFactor_Path = '/auth/2fa' as const;\nexport const App_Auth_Demo_Path = '/auth/demo' as const;\nexport const App_Auth_AskResetPassword_Path =\n '/auth/password/ask-reset' as const;\nexport const App_Auth_ResetPassword_Path = '/auth/password/reset' as const;\nexport const App_Auth_ChangePassword_Path = '/auth/password/change' as const;\n\nexport const App_Admin_Path = '/admin' as const;\nexport const App_Admin_Users_Path = '/admin/users' as const;\nexport const App_Admin_Organizations_Path = '/admin/organizations' as const;\nexport const App_Admin_Projects_Path = '/admin/projects' as const;\nexport const App_Admin_Dashboard_Path = '/admin/dashboard' as const;\nexport const App_Admin_Management_Path = '/admin/management' as const;\nexport const App_Admin_Discussions_Path = '/admin/discussions' as const;\nexport const App_Admin_Affiliate_Path = '/admin/affiliate' as const;\nexport const getAppAdminAffiliateRoute = (id: string) =>\n `${App_Admin_Affiliate_Path}/${id}` as const;\nexport const App_Admin_PromoCodes_Path = '/admin/promo-code' as const;\nexport const getAppAdminPromoCodeRoute = (id: string) =>\n `${App_Admin_PromoCodes_Path}/${id}` as const;\n\nexport const App_Admin_Reviewers_Path = '/admin/reviewers' as const;\nexport const getAppAdminReviewerRoute = (id: string) =>\n `${App_Admin_Reviewers_Path}/${id}` as const;\n\nexport const App_Onboarding_Path = '/onboarding' as const;\n\nexport const getAppAdminUserRoute = (id: string) =>\n `${App_Admin_Users_Path}/${id}` as const;\nexport const getAppAdminOrganizationRoute = (id: string) =>\n `${App_Admin_Organizations_Path}/${id}` as const;\nexport const getAppAdminProjectRoute = (id: string) =>\n `${App_Admin_Projects_Path}/${id}` as const;\nexport const getAppOnboardingFlowRoute = (step: string) =>\n `${App_Onboarding_Path}/${step}` as const;\n\n// ============================================================\n// App absolute URLs — https://app.intlayer.org\n// ============================================================\nexport const App_Dashboard = App_Origin;\nexport const App_Dashboard_Editor =\n `${App_Origin}${App_Dashboard_Editor_Path}` as const;\nexport const App_Dashboard_Translate =\n `${App_Origin}${App_Dashboard_Translate_Path}` as const;\nexport const App_Dashboard_Dictionaries =\n `${App_Origin}${App_Dashboard_Dictionaries_Path}` as const;\nexport const App_Dashboard_Projects =\n `${App_Origin}${App_Dashboard_Projects_Path}` as const;\nexport const App_Dashboard_Tags =\n `${App_Origin}${App_Dashboard_Tags_Path}` as const;\nexport const App_Dashboard_Organization =\n `${App_Origin}${App_Dashboard_Organization_Path}` as const;\nexport const App_Dashboard_Profile =\n `${App_Origin}${App_Dashboard_Profile_Path}` as const;\nexport const App_Dashboard_IDE =\n `${App_Origin}${App_Dashboard_IDE_Path}` as const;\nexport const App_Dashboard_Scanner =\n `${App_Origin}${App_Dashboard_Scanner_Path}` as const;\nexport const App_Dashboard_Analytics =\n `${App_Origin}${App_Dashboard_Analytics_Path}` as const;\n\nexport const App_Pricing = `${App_Origin}${App_Pricing_Path}` as const;\nexport const App_Affiliation = `${App_Origin}${App_Affiliation_Path}` as const;\nexport const App_Demo = `${App_Origin}${App_Demo_Path}` as const;\n\nexport const App_ReviewerMarketplace =\n `${App_Origin}${App_ReviewerMarketplace_Path}` as const;\nexport const App_ReviewerMarketplace_Dashboard =\n `${App_Origin}${App_ReviewerMarketplace_Dashboard_Path}` as const;\n\nexport const App_Auth_SignIn = `${App_Origin}${App_Auth_SignIn_Path}` as const;\nexport const App_Auth_SignUp = `${App_Origin}${App_Auth_SignUp_Path}` as const;\nexport const App_Auth_TwoFactor =\n `${App_Origin}${App_Auth_TwoFactor_Path}` as const;\nexport const App_Auth_AskResetPassword =\n `${App_Origin}${App_Auth_AskResetPassword_Path}` as const;\nexport const App_Auth_ResetPassword =\n `${App_Origin}${App_Auth_ResetPassword_Path}` as const;\nexport const App_Auth_ChangePassword =\n `${App_Origin}${App_Auth_ChangePassword_Path}` as const;\n\nexport const App_Admin = `${App_Origin}${App_Admin_Path}` as const;\nexport const App_Admin_Users = `${App_Origin}${App_Admin_Users_Path}` as const;\nexport const App_Admin_Organizations =\n `${App_Origin}${App_Admin_Organizations_Path}` as const;\nexport const App_Admin_Projects =\n `${App_Origin}${App_Admin_Projects_Path}` as const;\nexport const App_Admin_Dashboard =\n `${App_Origin}${App_Admin_Dashboard_Path}` as const;\nexport const App_Admin_Management =\n `${App_Origin}${App_Admin_Management_Path}` as const;\nexport const App_Admin_Discussions =\n `${App_Origin}${App_Admin_Discussions_Path}` as const;\nexport const App_Admin_Affiliate =\n `${App_Origin}${App_Admin_Affiliate_Path}` as const;\nexport const App_Admin_PromoCodes =\n `${App_Origin}${App_Admin_PromoCodes_Path}` as const;\nexport const App_Admin_Reviewers =\n `${App_Origin}${App_Admin_Reviewers_Path}` as const;\n\nexport const App_Onboarding = `${App_Origin}${App_Onboarding_Path}` as const;\n\nexport const getAppAdminUserAbsoluteRoute = (id: string) =>\n `${App_Origin}${App_Admin_Users_Path}/${id}` as const;\nexport const getAppAdminOrganizationAbsoluteRoute = (id: string) =>\n `${App_Origin}${App_Admin_Organizations_Path}/${id}` as const;\nexport const getAppAdminProjectAbsoluteRoute = (id: string) =>\n `${App_Origin}${App_Admin_Projects_Path}/${id}` as const;\nexport const getAppOnboardingFlowAbsoluteRoute = (\n step: string,\n plan: string,\n period?: string\n) =>\n period\n ? `${App_Origin}${App_Onboarding_Path}/${step}/${plan}/${period}`\n : (`${App_Origin}${App_Onboarding_Path}/${step}/${plan}` as const);\n\n// ============================================================\n// Website paths — relative (intlayer.org)\n// ============================================================\nexport const Website_Home_Path = '/' as const;\nexport const Website_CMS_Path = '/cms' as const;\nexport const Website_TMS_Path = '/tms' as const;\nexport const Website_Translate_Path = '/translate' as const;\nexport const Website_Markdown_Path = '/markdown' as const;\nexport const Website_Demo_Path = '/demo' as const;\nexport const Website_Playground_Path = '/playground' as const;\nexport const Website_NotFound_Path = '/404' as const;\nexport const Website_Changelog_Path = '/changelog' as const;\nexport const Website_Scanner_Path = '/i18n-seo-scanner' as const;\nexport const Website_MessageConverter_Path = '/i18n-message-converter' as const;\nexport const Website_IntlayerFormatter_Path =\n '/intlayer-message-formatter' as const;\nexport const Website_ICUFormatter_Path = '/icu-message-formatter' as const;\nexport const Website_I18nextFormatter_Path =\n '/i18next-message-formatter' as const;\nexport const Website_VueI18nFormatter_Path =\n '/vue-i18n-message-formatter' as const;\nexport const Website_POFormatter_Path = '/po-file-message-formatter' as const;\n\nexport const Website_Doc_Root_Path = '/doc' as const;\nexport const Website_Doc_Path = '/doc/get-started' as const;\nexport const Website_Doc_Why_Path = '/doc/why' as const;\nexport const Website_Doc_Search_Path = '/doc/search' as const;\nexport const Website_Doc_Chat_Path = '/doc/chat' as const;\nexport const Website_Doc_IntlayerVisualEditor_Path =\n '/doc/concept/editor' as const;\nexport const Website_Doc_IntlayerCMS_Path = '/doc/concept/cms' as const;\nexport const Website_Doc_SelfHosting_Path = '/doc/self-hosting' as const;\nexport const Website_Doc_Markdown_Path =\n '/doc/concept/content/markdown' as const;\nexport const Website_Doc_HTML_Path = '/doc/concept/content/html' as const;\n\nexport const Website_ReleasesV6_Path = '/doc/releases/v6' as const;\nexport const Website_ReleasesV7_Path = '/doc/releases/v7' as const;\nexport const Website_ReleasesV8_Path = '/doc/releases/v8' as const;\nexport const Website_ReleasesV9_Path = '/doc/releases/v9' as const;\nexport const Website_Doc_Environment_NextJS_Path =\n '/doc/environment/nextjs' as const;\nexport const Website_Doc_Environment_NextJS_16_Path =\n '/doc/environment/nextjs' as const;\nexport const Website_Doc_Environment_NextJS_15_Path =\n '/doc/environment/nextjs/15' as const;\nexport const Website_Doc_Environment_NextJS_14_Path =\n '/doc/environment/nextjs/14' as const;\nexport const Website_Doc_Environment_CRA_Path =\n '/doc/environment/create-react-app' as const;\nexport const Website_Doc_Environment_Astro_Path =\n '/doc/environment/astro' as const;\nexport const Website_Doc_Environment_ViteAndReact_Path =\n '/doc/environment/vite-and-react' as const;\nexport const Website_Doc_Environment_ViteAndReact_ReactRouterV7_Path =\n '/doc/environment/vite-and-react/react-router-v7' as const;\nexport const Website_Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes_Path =\n '/doc/environment/vite-and-react/react-router-v7-fs-routes' as const;\nexport const Website_Doc_Environment_Tanstack_Path =\n '/doc/environment/tanstack-start' as const;\nexport const Website_Doc_Environment_Lit_Path =\n '/doc/environment/vite-and-lit' as const;\nexport const Website_Doc_Environment_Nodejs_Path = '/doc/concept/cli' as const;\nexport const Website_Doc_Environment_Adonis_Path =\n '/doc/environment/adonisjs' as const;\nexport const Website_Doc_Environment_ViteAndVue_Path =\n '/doc/environment/vite-and-vue' as const;\nexport const Website_Doc_Environment_ViteAndSolid_Path =\n '/doc/environment/vite-and-solid' as const;\nexport const Website_Doc_Environment_ViteAndSvelte_Path =\n '/doc/environment/vite-and-svelte' as const;\nexport const Website_Doc_Environment_ViteAndPreact_Path =\n '/doc/environment/vite-and-preact' as const;\nexport const Website_Doc_Environment_NuxtAndVue_Path =\n '/doc/environment/nuxt-and-vue' as const;\nexport const Website_Doc_Intlayer_with_Lynx_and_React_Path =\n '/doc/environment/lynx-and-react' as const;\nexport const Website_Doc_Environment_Angular_Path =\n '/doc/environment/angular' as const;\nexport const Website_Doc_Environment_ReactNativeAndExpo_Path =\n '/doc/environment/react-native-and-expo' as const;\nexport const Website_Doc_Environment_Lynx_Path =\n '/doc/environment/lynx-and-react' as const;\nexport const Website_Doc_Environment_Express_Path =\n '/doc/environment/express' as const;\nexport const Website_Doc_Environment_NestJS_Path =\n '/doc/environment/nest' as const;\nexport const Website_Doc_Environment_Fastify_Path =\n '/doc/environment/fastify' as const;\nexport const Website_Doc_Environment_Hono_Path =\n '/doc/environment/hono' as const;\nexport const Website_Doc_Environment_Htmx_Path =\n '/doc/environment/htmx' as const;\nexport const Website_Doc_Environment_Remix_3_Path =\n '/doc/environment/remix-3' as const;\n\nexport const Website_Doc_CLI_Fill_Path = '/doc/concept/cli/fill' as const;\nexport const Website_Doc_CLI_Translate_Path =\n '/doc/concept/cli/doc-translate' as const;\nexport const Website_Doc_CLI_Review_Path =\n '/doc/concept/cli/doc-review' as const;\n\nexport const Website_Benchmark_Path = '/doc/benchmark' as const;\nexport const Website_Benchmark_NextJS_Path = '/doc/benchmark/nextjs' as const;\nexport const Website_Benchmark_Tanstack_Path =\n '/doc/benchmark/tanstack' as const;\n\nexport const Website_Doc_MCP_Path = '/doc/mcp-server' as const;\n\nexport const Website_Blog_Root_Path = '/blog' as const;\nexport const Website_Blog_Path = '/blog' as const;\nexport const Website_Blog_Search_Path = '/blog' as const;\nexport const Website_Blog_What_is_i18n_Path =\n '/blog/what-is-internationalization' as const;\n\nexport const Website_FrequentQuestions_Path = '/frequent-questions' as const;\nexport const Website_PrivacyPolicy_Path = '/privacy-notice' as const;\nexport const Website_TermsOfService_Path = '/terms-of-service' as const;\nexport const Website_Contributors_Path = '/contributors' as const;\n\n// ============================================================\n// Website absolute URLs — https://intlayer.org\n// ============================================================\nexport const Website_Home = `${Website_Origin}${Website_Home_Path}` as const;\nexport const Website_CMS = `${Website_Origin}${Website_CMS_Path}` as const;\nexport const Website_TMS = `${Website_Origin}${Website_TMS_Path}` as const;\nexport const Website_Translate =\n `${Website_Origin}${Website_Translate_Path}` as const;\nexport const Website_Markdown =\n `${Website_Origin}${Website_Markdown_Path}` as const;\nexport const Website_Demo = `${Website_Origin}${Website_Demo_Path}` as const;\nexport const Website_Playground =\n `${Website_Origin}${Website_Playground_Path}` as const;\nexport const Website_NotFound =\n `${Website_Origin}${Website_NotFound_Path}` as const;\nexport const Website_Changelog =\n `${Website_Origin}${Website_Changelog_Path}` as const;\nexport const Website_Scanner =\n `${Website_Origin}${Website_Scanner_Path}` as const;\nexport const Website_MessageConverter =\n `${Website_Origin}${Website_MessageConverter_Path}` as const;\nexport const Website_IntlayerFormatter =\n `${Website_Origin}${Website_IntlayerFormatter_Path}` as const;\nexport const Website_ICUFormatter =\n `${Website_Origin}${Website_ICUFormatter_Path}` as const;\nexport const Website_I18nextFormatter =\n `${Website_Origin}${Website_I18nextFormatter_Path}` as const;\nexport const Website_VueI18nFormatter =\n `${Website_Origin}${Website_VueI18nFormatter_Path}` as const;\nexport const Website_POFormatter =\n `${Website_Origin}${Website_POFormatter_Path}` as const;\nexport const Website_Benchmark =\n `${Website_Origin}${Website_Benchmark_Path}` as const;\nexport const Website_Benchmark_NextJS =\n `${Website_Origin}${Website_Benchmark_NextJS_Path}` as const;\nexport const Website_Benchmark_Tanstack =\n `${Website_Origin}${Website_Benchmark_Tanstack_Path}` as const;\n\nexport const Website_Doc_Root =\n `${Website_Origin}${Website_Doc_Root_Path}` as const;\nexport const Website_Doc = `${Website_Origin}${Website_Doc_Path}` as const;\nexport const Website_Doc_Why =\n `${Website_Origin}${Website_Doc_Why_Path}` as const;\nexport const Website_Doc_Search =\n `${Website_Origin}${Website_Doc_Search_Path}` as const;\nexport const Website_Doc_Chat =\n `${Website_Origin}${Website_Doc_Chat_Path}` as const;\nexport const Website_Doc_IntlayerVisualEditor =\n `${Website_Origin}${Website_Doc_IntlayerVisualEditor_Path}` as const;\nexport const Website_Doc_IntlayerCMS =\n `${Website_Origin}${Website_Doc_IntlayerCMS_Path}` as const;\nexport const Website_Doc_SelfHosting =\n `${Website_Origin}${Website_Doc_SelfHosting_Path}` as const;\nexport const Website_Doc_Markdown =\n `${Website_Origin}${Website_Doc_Markdown_Path}` as const;\nexport const Website_Doc_HTML =\n `${Website_Origin}${Website_Doc_HTML_Path}` as const;\n\nexport const Website_ReleasesV6 =\n `${Website_Origin}${Website_ReleasesV6_Path}` as const;\nexport const Website_ReleasesV7 =\n `${Website_Origin}${Website_ReleasesV7_Path}` as const;\nexport const Website_ReleasesV8 =\n `${Website_Origin}${Website_ReleasesV8_Path}` as const;\nexport const Website_Doc_Environment_NextJS =\n `${Website_Origin}${Website_Doc_Environment_NextJS_Path}` as const;\nexport const Website_Doc_Environment_NextJS_16 =\n `${Website_Origin}${Website_Doc_Environment_NextJS_16_Path}` as const;\nexport const Website_Doc_Environment_NextJS_15 =\n `${Website_Origin}${Website_Doc_Environment_NextJS_15_Path}` as const;\nexport const Website_Doc_Environment_NextJS_14 =\n `${Website_Origin}${Website_Doc_Environment_NextJS_14_Path}` as const;\nexport const Website_Doc_Environment_CRA =\n `${Website_Origin}${Website_Doc_Environment_CRA_Path}` as const;\nexport const Website_Doc_Environment_Astro =\n `${Website_Origin}${Website_Doc_Environment_Astro_Path}` as const;\nexport const Website_Doc_Environment_ViteAndReact =\n `${Website_Origin}${Website_Doc_Environment_ViteAndReact_Path}` as const;\nexport const Website_Doc_Environment_ViteAndReact_ReactRouterV7 =\n `${Website_Origin}${Website_Doc_Environment_ViteAndReact_ReactRouterV7_Path}` as const;\nexport const Website_Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes =\n `${Website_Origin}${Website_Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes_Path}` as const;\nexport const Website_Doc_Environment_Tanstack =\n `${Website_Origin}${Website_Doc_Environment_Tanstack_Path}` as const;\nexport const Website_Doc_Environment_Lit =\n `${Website_Origin}${Website_Doc_Environment_Lit_Path}` as const;\nexport const Website_Doc_Environment_Nodejs =\n `${Website_Origin}${Website_Doc_Environment_Nodejs_Path}` as const;\nexport const Website_Doc_Environment_Adonis =\n `${Website_Origin}${Website_Doc_Environment_Adonis_Path}` as const;\nexport const Website_Doc_Environment_ViteAndVue =\n `${Website_Origin}${Website_Doc_Environment_ViteAndVue_Path}` as const;\nexport const Website_Doc_Environment_ViteAndSolid =\n `${Website_Origin}${Website_Doc_Environment_ViteAndSolid_Path}` as const;\nexport const Website_Doc_Environment_ViteAndSvelte =\n `${Website_Origin}${Website_Doc_Environment_ViteAndSvelte_Path}` as const;\nexport const Website_Doc_Environment_ViteAndPreact =\n `${Website_Origin}${Website_Doc_Environment_ViteAndPreact_Path}` as const;\nexport const Website_Doc_Environment_NuxtAndVue =\n `${Website_Origin}${Website_Doc_Environment_NuxtAndVue_Path}` as const;\nexport const Website_Doc_Intlayer_with_Lynx_and_React =\n `${Website_Origin}${Website_Doc_Intlayer_with_Lynx_and_React_Path}` as const;\nexport const Website_Doc_Environment_Angular =\n `${Website_Origin}${Website_Doc_Environment_Angular_Path}` as const;\nexport const Website_Doc_Environment_ReactNativeAndExpo =\n `${Website_Origin}${Website_Doc_Environment_ReactNativeAndExpo_Path}` as const;\nexport const Website_Doc_Environment_Lynx =\n `${Website_Origin}${Website_Doc_Environment_Lynx_Path}` as const;\nexport const Website_Doc_Environment_Express =\n `${Website_Origin}${Website_Doc_Environment_Express_Path}` as const;\nexport const Website_Doc_Environment_NestJS =\n `${Website_Origin}${Website_Doc_Environment_NestJS_Path}` as const;\nexport const Website_Doc_Environment_Fastify =\n `${Website_Origin}${Website_Doc_Environment_Fastify_Path}` as const;\nexport const Website_Doc_Environment_Hono =\n `${Website_Origin}${Website_Doc_Environment_Hono_Path}` as const;\nexport const Website_Doc_Environment_Htmx =\n `${Website_Origin}${Website_Doc_Environment_Htmx_Path}` as const;\nexport const Website_Doc_Environment_Remix_3 =\n `${Website_Origin}${Website_Doc_Environment_Remix_3_Path}` as const;\n\nexport const Website_Doc_CLI_Fill =\n `${Website_Origin}${Website_Doc_CLI_Fill_Path}` as const;\nexport const Website_Doc_CLI_Translate =\n `${Website_Origin}${Website_Doc_CLI_Translate_Path}` as const;\nexport const Website_Doc_CLI_Review =\n `${Website_Origin}${Website_Doc_CLI_Review_Path}` as const;\n\nexport const Website_Doc_MCP =\n `${Website_Origin}${Website_Doc_MCP_Path}` as const;\n\nexport const Website_Blog_Root =\n `${Website_Origin}${Website_Blog_Root_Path}` as const;\nexport const Website_Blog = `${Website_Origin}${Website_Blog_Path}` as const;\nexport const Website_Blog_Search =\n `${Website_Origin}${Website_Blog_Search_Path}` as const;\nexport const Website_Blog_What_is_i18n =\n `${Website_Origin}${Website_Blog_What_is_i18n_Path}` as const;\n\nexport const Website_FrequentQuestions =\n `${Website_Origin}${Website_FrequentQuestions_Path}` as const;\nexport const Website_PrivacyPolicy =\n `${Website_Origin}${Website_PrivacyPolicy_Path}` as const;\nexport const Website_TermsOfService =\n `${Website_Origin}${Website_TermsOfService_Path}` as const;\nexport const Website_Contributors =\n `${Website_Origin}${Website_Contributors_Path}` as const;\n\n// ============================================================\n// Doc app paths — relative (served under intlayer.org/doc/*)\n// ============================================================\nexport const Doc_Root_Path = '/doc' as const;\nexport const Doc_Path = '/get-started' as const;\nexport const Doc_Why_Path = '/why' as const;\nexport const Doc_Search_Path = '/search' as const;\nexport const Doc_Chat_Path = '/chat' as const;\nexport const Doc_IntlayerVisualEditor_Path = '/concept/editor' as const;\nexport const Doc_IntlayerCMS_Path = '/concept/cms' as const;\n\nexport const Doc_ReleasesV6_Path = '/releases/v6' as const;\nexport const Doc_ReleasesV7_Path = '/releases/v7' as const;\nexport const Doc_ReleasesV8_Path = '/releases/v8' as const;\nexport const Doc_Environment_NextJS_Path = '/environment/nextjs' as const;\nexport const Doc_Environment_NextJS_16_Path = '/environment/nextjs' as const;\nexport const Doc_Environment_NextJS_15_Path = '/environment/nextjs/15' as const;\nexport const Doc_Environment_NextJS_14_Path = '/environment/nextjs/14' as const;\nexport const Doc_Environment_CRA_Path =\n '/environment/create-react-app' as const;\nexport const Doc_Environment_Astro_Path = '/environment/astro' as const;\nexport const Doc_Environment_ViteAndReact_Path =\n '/environment/vite-and-react' as const;\nexport const Doc_Environment_ViteAndReact_ReactRouterV7_Path =\n '/environment/vite-and-react/react-router-v7' as const;\nexport const Doc_Environment_ViteAndReact_ReactRouterV7_FSRoutes_Path =\n '/environment/vite-and-react/react-router-v7-fs-routes' as const;\nexport const Doc_Environment_Tanstack_Path =\n '/environment/tanstack-start' as const;\nexport const Doc_Environment_Lit_Path = '/environment/vite-and-lit' as const;\nexport const Doc_Environment_Nodejs_Path = '/concept/cli' as const;\nexport const Doc_Environment_Adonis_Path = '/environment/adonisjs' as const;\nexport const Doc_Environment_ViteAndVue_Path =\n '/environment/vite-and-vue' as const;\nexport const Doc_Environment_ViteAndSolid_Path =\n '/environment/vite-and-solid' as const;\nexport const Doc_Environment_ViteAndSvelte_Path =\n '/environment/vite-and-svelte' as const;\nexport const Doc_Environment_ViteAndPreact_Path =\n '/environment/vite-and-preact' as const;\nexport const Doc_Environment_NuxtAndVue_Path =\n '/environment/nuxt-and-vue' as const;\nexport const Doc_Intlayer_with_Lynx_and_React_Path =\n '/environment/lynx-and-react' as const;\nexport const Doc_Environment_Angular_Path = '/environment/angular' as const;\nexport const Doc_Environment_ReactNativeAndExpo_Path =\n '/environment/react-native-and-expo' as const;\nexport const Doc_Environment_Lynx_Path = '/environment/lynx-and-react' as const;\nexport const Doc_Environment_Express_Path = '/environment/express' as const;\nexport const Doc_Environment_NestJS_Path = '/environment/nest' as const;\nexport const Doc_Environment_Fastify_Path = '/environment/fastify' as const;\nexport const Doc_Environment_Hono_Path = '/environment/hono' as const;\n\nexport const Doc_CLI_Fill_Path = '/concept/cli/fill' as const;\nexport const Doc_CLI_Translate_Path = '/concept/cli/doc-translate' as const;\nexport const Doc_CLI_Review_Path = '/concept/cli/doc-review' as const;\n\nexport const Doc_MCP_Path = '/mcp-server' as const;\n\nexport const Doc_Blog_Root_Path = '/blog' as const;\nexport const Doc_Blog_Path = '/blog' as const;\nexport const Doc_Blog_Search_Path = '/blog' as const;\nexport const Doc_Blog_What_is_i18n_Path =\n '/blog/what-is-internationalization' as const;\n\nexport const Doc_FrequentQuestions_Path = '/frequent-questions' as const;\nexport const Doc_PrivacyPolicy_Path = '/privacy-notice' as const;\nexport const Doc_TermsOfService_Path = '/terms-of-service' as const;\nexport const Doc_Contributors_Path = '/contributors' as const;\nexport const Doc_Showcase_Path = '/' as const;\nexport const Doc_ShowcaseSubmit_Path = '/submit' as const;\n\n// ============================================================\n// Showcase paths — relative (showcase.intlayer.org)\n// ============================================================\nexport const Showcase_Root_Path = '/' as const;\nexport const Showcase_Submit_Path = '/submit' as const;\n\n// ============================================================\n// Showcase absolute URLs — https://showcase.intlayer.org\n// ============================================================\nexport const Showcase_Root = Showcase_Origin;\nexport const Showcase_Submit =\n `${Showcase_Origin}${Showcase_Submit_Path}` as const;\n\n// ============================================================\n// Backend absolute URLs — https://back.intlayer.org\n// ============================================================\nexport const Backend_Root = Backend_Origin;\nexport const Backend_Health = `${Backend_Origin}/health` as const;\nexport const Backend_OAuth2_Token = `${Backend_Origin}/oauth2/token` as const;\n\n// ============================================================\n// MCP absolute URLs — https://mcp.intlayer.org\n// ============================================================\nexport const Mcp_Root = Mcp_Origin;\nexport const Mcp_Sse = `${Mcp_Origin}/sse` as const;\n\n// ============================================================\n// Agent discovery paths — relative\n//\n// Well-known documents that let AI agents discover the site's APIs,\n// skills and authentication without scraping HTML.\n// ============================================================\nexport const WellKnown_ApiCatalog_Path = '/.well-known/api-catalog' as const;\nexport const WellKnown_AiCatalog_Path = '/.well-known/ai-catalog.json' as const;\nexport const WellKnown_OAuthProtectedResource_Path =\n '/.well-known/oauth-protected-resource' as const;\nexport const WellKnown_OAuthAuthorizationServer_Path =\n '/.well-known/oauth-authorization-server' as const;\nexport const WellKnown_McpServerCard_Path =\n '/.well-known/mcp/server-card.json' as const;\nexport const WellKnown_AgentSkills_Path = '/.well-known/agent-skills' as const;\nexport const WellKnown_AgentSkillsIndex_Path =\n `${WellKnown_AgentSkills_Path}/index.json` as const;\nexport const AuthMd_Path = '/auth.md' as const;\nexport const LlmsTxt_Path = '/llms.txt' as const;\n\n// ============================================================\n// External links\n// ============================================================\nexport const External_Github =\n 'https://github.com/aymericzip/intlayer' as const;\n\nexport const External_DockerHub_SelfHost =\n 'https://hub.docker.com/r/aymericzip/intlayer-selfhost' as const;\n\nexport const External_Github_i18n_benchmark =\n 'https://github.com/intlayer-org/benchmark-i18n' as const;\n\nexport const External_Discord = 'https://discord.gg/7uxamYVeCk' as const;\nexport const External_LinkedIn =\n 'https://www.linkedin.com/company/intlayerorg/' as const;\nexport const External_AI_Landing_Page = 'https://ai.intlayer.org' as const;\nexport const External_ShowcaseApp = Showcase_Origin;\nexport const External_Examples =\n 'https://github.com/aymericzip/intlayer/tree/main/examples' as const;\nexport const External_ExampleIntlayerWithNextjs =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/nextjs-15-app' as const;\nexport const External_ExampleIntlayerWithReactJS =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/react-app' as const;\nexport const External_ExampleIntlayerWithViteAndReact =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/vite-react-app' as const;\nexport const External_ExampleIntlayerWithViteAndVue =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/vite-vue-app' as const;\nexport const External_ExampleIntlayerWithViteAndSvelte =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/vite-svelte-app' as const;\nexport const External_ExampleIntlayerWithViteAndSolid =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/vite-solid-app' as const;\nexport const External_ExampleIntlayerWithViteAndPreact =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/vite-preact-app' as const;\nexport const External_ExampleIntlayerWithReactNative =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/react-native-app' as const;\nexport const External_ExampleIntlayerWithExpress =\n 'https://github.com/aymericzip/intlayer/tree/main/examples/express-app' as const;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkDownIframe.d.ts","names":[],"sources":["../../../../src/components/MarkDownRender/MarkDownIframe.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"MarkDownIframe.d.ts","names":[],"sources":["../../../../src/components/MarkDownRender/MarkDownIframe.tsx"],"mappings":";;qBA2Ka,gBAAgB,GAAG"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { MarkDownIframe } from "./MarkDownIframe.js";
|
|
2
|
+
import { getYoutubeEmbedUrl, getYoutubeVideoId, getYoutubeWatchUrl } from "./youtubeUrl.js";
|
|
2
3
|
import { MarkdownRenderer, ParsedMarkdown, baseMarkdownComponents, getIntlayerMarkdownOptions } from "./MarkDownRender.js";
|
|
3
|
-
export { MarkDownIframe, MarkdownRenderer, type ParsedMarkdown, baseMarkdownComponents, getIntlayerMarkdownOptions };
|
|
4
|
+
export { MarkDownIframe, MarkdownRenderer, type ParsedMarkdown, baseMarkdownComponents, getIntlayerMarkdownOptions, getYoutubeEmbedUrl, getYoutubeVideoId, getYoutubeWatchUrl };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/components/MarkDownRender/youtubeUrl.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Reads the video id out of a YouTube address (embed, watch, youtu.be, shorts, etc.).
|
|
4
|
+
*
|
|
5
|
+
* @returns The video id, or `null` when the address is not a YouTube URL.
|
|
6
|
+
*/
|
|
7
|
+
export declare const getYoutubeVideoId: (src: string | undefined) => string | null;
|
|
8
|
+
/**
|
|
9
|
+
* The address the YouTube player is loaded from for a given video.
|
|
10
|
+
*/
|
|
11
|
+
export declare const getYoutubeEmbedUrl: (videoId: string) => string;
|
|
12
|
+
/**
|
|
13
|
+
* The address of the video on youtube.com itself.
|
|
14
|
+
*/
|
|
15
|
+
export declare const getYoutubeWatchUrl: (videoId: string) => string;
|
|
16
|
+
//#endregion
|
|
17
|
+
//# sourceMappingURL=youtubeUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"youtubeUrl.d.ts","names":[],"sources":["../../../../src/components/MarkDownRender/youtubeUrl.ts"],"mappings":";;;;;;qBAKa,oBAAiB;;;;qBAajB,qBAAkB;;;;qBAMlB,qBAAkB"}
|
|
@@ -114,6 +114,7 @@ import { LogoWithText } from "./Logo/LogoWithText.js";
|
|
|
114
114
|
import { LogoWithTextBelow } from "./Logo/LogoWithTextBelow.js";
|
|
115
115
|
import "./Logo/index.js";
|
|
116
116
|
import { MarkDownIframe } from "./MarkDownRender/MarkDownIframe.js";
|
|
117
|
+
import { getYoutubeEmbedUrl, getYoutubeVideoId, getYoutubeWatchUrl } from "./MarkDownRender/youtubeUrl.js";
|
|
117
118
|
import "./MarkDownRender/index.js";
|
|
118
119
|
import { CreateEditorUploadFnOptions, UploadImageFn, createEditorUploadFn } from "./MarkdownEditor/imageUpload.js";
|
|
119
120
|
import { MarkdownEditor, MarkdownEditorProps } from "./MarkdownEditor/MarkdownEditor.js";
|
|
@@ -183,4 +184,4 @@ import { reducer, toast, useToast } from "./Toaster/useToast.js";
|
|
|
183
184
|
import "./Toaster/index.js";
|
|
184
185
|
import { WithResizer } from "./WithResizer/index.js";
|
|
185
186
|
import { MarkdownRenderer, ParsedMarkdown, baseMarkdownComponents, getIntlayerMarkdownOptions } from "./MarkDownRender/MarkDownRender.js";
|
|
186
|
-
export { Accordion, AccordionProps, AutoCompleteTextarea, AutoSizedTextArea, AutoSizedTextAreaProps, AutocompleteTextAreaProps, Avatar, AvatarProps, Badge, BadgeColor, BadgeProps, BadgeSize, BadgeVariant, BadgeVariantProps, BitbucketLogo, Breadcrumb, BreadcrumbLink, BreadcrumbProps, Browser, BrowserProps, Burger, Button, ButtonColor, ButtonProps, ButtonSize, ButtonTextAlign, ButtonVariant, Carousel, Checkbox, CheckboxColor, CheckboxProps, CheckboxSize, ClickOutsideDiv, ClickOutsideDivProps, Code, CodeBlock, CodeBlockProps, CodeCompAttributes, CodeDefault, CodeHighlighted, type CodeLanguage, CollapsibleTable, CollapsibleTableProps, Command, CommandRoot, Container, ContainerBackground, ContainerBorderColor, ContainerGap, ContainerPadding, ContainerProps, ContainerRoundedSize, ContainerSeparator, ContainerTransparency, ContentEditableTextArea, ContentEditableTextAreaHandle, ContentEditableTextAreaProps, ContentEditor, ContentEditorInput, ContentEditorInputProps, ContentEditorProps, ContentEditorTextArea, ContentEditorTextAreaProps, ContentSelector, CopyButton, CopyToClipboard, CopyToClipboardProps, type CreateEditorUploadFnOptions, DesktopNavbar, DesktopThemeSwitcher, Detail, DetailProps, DictionaryCreationForm, DictionaryEditor, DictionaryFieldEditor, DiscordLogo, DotPattern, DropDown, DropDownAlign, DropDownProps, DropDownType, DropDownYAlign, EditableFieldInput, EditableFieldTextArea, ExpandCollapse, ExpandCollapseProps, FacebookLogo, FileList, FileListProps, Flag, flags_d_exports as Flags, Footer, FooterLink, Form, AutoSizedTextAreaElement as FormAutoSizedTextArea, Button as FormButton, CheckboxElement as FormCheckbox, FormControl, FormDescription, EditableFieldInputElement as FormEditableFieldInput, EditableFieldTextAreaElement as FormEditableFieldTextArea, FormElement, FormField, InputElement as FormInput, InputPasswordElement as FormInputPassword, FormItem, FormLabelLayout as FormLabel, FormMessage, MultiSelectElement as FormMultiSelect, OTPElement as FormOTP, SearchInputElement as FormSearchInput, SelectElement as FormSelect, SwitchSelectorElement as FormSwitchSelector, TextAreaElement as FormTextArea, GitHubLogo, GitLabLogo, GoogleLogo, GridDistortionPattern, GridPattern, H1, H2, H3, H4, H5, H6, HTMLRenderer, HeadingProps, HeightResizer, HideShow, HideShowProps, Hr, IDE, IDEProps, InformationTag, Input, InputIndicator, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputPassword, InputProps, InputSize, InputVariant, InstagramLogo, KeyList, KeyPathBreadcrumb, KeyboardScreenAdapter, KeyboardShortcut, KeyboardShortcutProps, KeyboardShortcutType, Label, LabelProps, LanguageBackground, LanguageSection, Link, LinkColor, LinkGroup, LinkProps, LinkRoundedSize, LinkSize, LinkUnderlined, LinkVariant, LinkedInLogo, Loader, LoaderProps, LocalCardList, LocaleSwitcher, LocaleSwitcherContent, LocaleSwitcherContentProps, LocaleSwitcherContentProvider, LocaleSwitcherProps, Logo, LogoTextOnly, LogoWithText, LogoWithTextBelow, MarkDownIframe, MarkdownEditor, type MarkdownEditorProps, MarkdownRenderer, MaxHeightSmoother, MaxWidthSmoother, MobileNavbar, MobileThemeSwitcher, Modal, ModalSize, Modes, MultiSelect, Navbar, NodeEditor, NodeEditorProps, NumberItemsSelector, NumberItemsSelectorProps, OTPInput, OTPInputContext, OTPInputProps, Pagination, PaginationProps, PaginationSize, PaginationVariant, PanelProps, type ParsedMarkdown, Popover, PopoverProps, PopoverStatic, PopoverType, PopoverXAlign, PopoverYAlign, PressableSpan, ProductHuntLogo, Radio, RadioColor, RadioProps, RadioSize, RenderProps, RightDrawer, SaveForm, SearchInput, Select, SelectContent, SelectContentPosition, SelectLabel, SelectSeparator, ShowingResultsNumberItems, ShowingResultsNumberItemsProps, SlotProps, SmartTable, SocialNetworks, Spotlight, Step, Steps, SwitchSelector, SwitchSelectorBaseProps, SwitchSelectorChoice, SwitchSelectorChoices, SwitchSelectorColor, SwitchSelectorProps, SwitchSelectorSize, Tab, TabItemProps, TabProps, TabSelector, TabSelectorColor, TabSelectorItemProps, TabSelectorProps, Table, TableProps, Tag, TagBackground, TagBorder, TagColor, TagRoundedSize, TagSize, Td, TechLogo, type TechLogoName, techLogos_d_exports as TechLogos, Terminal, TerminalProps, TextArea, TextAreaProps, TextEditor, TextEditorContainer, TextEditorProps, Th, TiktokLogo, Toast, ToastAction, ToastActionElement, ToastClose, ToastDescription, ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster, Tr, TriggerProps, type UploadImageFn, VersionSwitcher, VersionSwitcherProps, VersionSwitcherProvider, VerticalSwitchSelector, VerticalSwitchSelectorProps, WithResizer, XLogo, YoutubeLogo, badgeVariants, baseMarkdownComponents, buttonVariants, checkIsExternalLink, checkboxVariants, choiceVariant, containerVariants, createEditorUploadFn, defaultChoices, drawerManager, getCapitals, getIntlayerHTMLOptions, getIntlayerMarkdownOptions, indicatorVariant, inputSlotVariants, inputVariants, isTextChildren, linkVariants, paginationVariants, radioVariants, reducer, shikiWrapperClassName, switchSelectorVariant, toast, toastVariants, traceKeys, useContentEditable, useCopyToClipboard, useForm, useFormField, useIsRightDrawerOpen, useLocaleSwitcherContent, usePasswordManagerBadge, usePopoverIds, usePrevious, useRightDrawer, useRightDrawerActions, useToast, useVersionSwitcher };
|
|
187
|
+
export { Accordion, AccordionProps, AutoCompleteTextarea, AutoSizedTextArea, AutoSizedTextAreaProps, AutocompleteTextAreaProps, Avatar, AvatarProps, Badge, BadgeColor, BadgeProps, BadgeSize, BadgeVariant, BadgeVariantProps, BitbucketLogo, Breadcrumb, BreadcrumbLink, BreadcrumbProps, Browser, BrowserProps, Burger, Button, ButtonColor, ButtonProps, ButtonSize, ButtonTextAlign, ButtonVariant, Carousel, Checkbox, CheckboxColor, CheckboxProps, CheckboxSize, ClickOutsideDiv, ClickOutsideDivProps, Code, CodeBlock, CodeBlockProps, CodeCompAttributes, CodeDefault, CodeHighlighted, type CodeLanguage, CollapsibleTable, CollapsibleTableProps, Command, CommandRoot, Container, ContainerBackground, ContainerBorderColor, ContainerGap, ContainerPadding, ContainerProps, ContainerRoundedSize, ContainerSeparator, ContainerTransparency, ContentEditableTextArea, ContentEditableTextAreaHandle, ContentEditableTextAreaProps, ContentEditor, ContentEditorInput, ContentEditorInputProps, ContentEditorProps, ContentEditorTextArea, ContentEditorTextAreaProps, ContentSelector, CopyButton, CopyToClipboard, CopyToClipboardProps, type CreateEditorUploadFnOptions, DesktopNavbar, DesktopThemeSwitcher, Detail, DetailProps, DictionaryCreationForm, DictionaryEditor, DictionaryFieldEditor, DiscordLogo, DotPattern, DropDown, DropDownAlign, DropDownProps, DropDownType, DropDownYAlign, EditableFieldInput, EditableFieldTextArea, ExpandCollapse, ExpandCollapseProps, FacebookLogo, FileList, FileListProps, Flag, flags_d_exports as Flags, Footer, FooterLink, Form, AutoSizedTextAreaElement as FormAutoSizedTextArea, Button as FormButton, CheckboxElement as FormCheckbox, FormControl, FormDescription, EditableFieldInputElement as FormEditableFieldInput, EditableFieldTextAreaElement as FormEditableFieldTextArea, FormElement, FormField, InputElement as FormInput, InputPasswordElement as FormInputPassword, FormItem, FormLabelLayout as FormLabel, FormMessage, MultiSelectElement as FormMultiSelect, OTPElement as FormOTP, SearchInputElement as FormSearchInput, SelectElement as FormSelect, SwitchSelectorElement as FormSwitchSelector, TextAreaElement as FormTextArea, GitHubLogo, GitLabLogo, GoogleLogo, GridDistortionPattern, GridPattern, H1, H2, H3, H4, H5, H6, HTMLRenderer, HeadingProps, HeightResizer, HideShow, HideShowProps, Hr, IDE, IDEProps, InformationTag, Input, InputIndicator, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputPassword, InputProps, InputSize, InputVariant, InstagramLogo, KeyList, KeyPathBreadcrumb, KeyboardScreenAdapter, KeyboardShortcut, KeyboardShortcutProps, KeyboardShortcutType, Label, LabelProps, LanguageBackground, LanguageSection, Link, LinkColor, LinkGroup, LinkProps, LinkRoundedSize, LinkSize, LinkUnderlined, LinkVariant, LinkedInLogo, Loader, LoaderProps, LocalCardList, LocaleSwitcher, LocaleSwitcherContent, LocaleSwitcherContentProps, LocaleSwitcherContentProvider, LocaleSwitcherProps, Logo, LogoTextOnly, LogoWithText, LogoWithTextBelow, MarkDownIframe, MarkdownEditor, type MarkdownEditorProps, MarkdownRenderer, MaxHeightSmoother, MaxWidthSmoother, MobileNavbar, MobileThemeSwitcher, Modal, ModalSize, Modes, MultiSelect, Navbar, NodeEditor, NodeEditorProps, NumberItemsSelector, NumberItemsSelectorProps, OTPInput, OTPInputContext, OTPInputProps, Pagination, PaginationProps, PaginationSize, PaginationVariant, PanelProps, type ParsedMarkdown, Popover, PopoverProps, PopoverStatic, PopoverType, PopoverXAlign, PopoverYAlign, PressableSpan, ProductHuntLogo, Radio, RadioColor, RadioProps, RadioSize, RenderProps, RightDrawer, SaveForm, SearchInput, Select, SelectContent, SelectContentPosition, SelectLabel, SelectSeparator, ShowingResultsNumberItems, ShowingResultsNumberItemsProps, SlotProps, SmartTable, SocialNetworks, Spotlight, Step, Steps, SwitchSelector, SwitchSelectorBaseProps, SwitchSelectorChoice, SwitchSelectorChoices, SwitchSelectorColor, SwitchSelectorProps, SwitchSelectorSize, Tab, TabItemProps, TabProps, TabSelector, TabSelectorColor, TabSelectorItemProps, TabSelectorProps, Table, TableProps, Tag, TagBackground, TagBorder, TagColor, TagRoundedSize, TagSize, Td, TechLogo, type TechLogoName, techLogos_d_exports as TechLogos, Terminal, TerminalProps, TextArea, TextAreaProps, TextEditor, TextEditorContainer, TextEditorProps, Th, TiktokLogo, Toast, ToastAction, ToastActionElement, ToastClose, ToastDescription, ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster, Tr, TriggerProps, type UploadImageFn, VersionSwitcher, VersionSwitcherProps, VersionSwitcherProvider, VerticalSwitchSelector, VerticalSwitchSelectorProps, WithResizer, XLogo, YoutubeLogo, badgeVariants, baseMarkdownComponents, buttonVariants, checkIsExternalLink, checkboxVariants, choiceVariant, containerVariants, createEditorUploadFn, defaultChoices, drawerManager, getCapitals, getIntlayerHTMLOptions, getIntlayerMarkdownOptions, getYoutubeEmbedUrl, getYoutubeVideoId, getYoutubeWatchUrl, indicatorVariant, inputSlotVariants, inputVariants, isTextChildren, linkVariants, paginationVariants, radioVariants, reducer, shikiWrapperClassName, switchSelectorVariant, toast, toastVariants, traceKeys, useContentEditable, useCopyToClipboard, useForm, useFormField, useIsRightDrawerOpen, useLocaleSwitcherContent, usePasswordManagerBadge, usePopoverIds, usePrevious, useRightDrawer, useRightDrawerActions, useToast, useVersionSwitcher };
|
package/dist/types/routes.d.ts
CHANGED
|
@@ -149,6 +149,7 @@ export declare const Website_Doc_Environment_NestJS_Path: '/doc/environment/nest
|
|
|
149
149
|
export declare const Website_Doc_Environment_Fastify_Path: '/doc/environment/fastify';
|
|
150
150
|
export declare const Website_Doc_Environment_Hono_Path: '/doc/environment/hono';
|
|
151
151
|
export declare const Website_Doc_Environment_Htmx_Path: '/doc/environment/htmx';
|
|
152
|
+
export declare const Website_Doc_Environment_Remix_3_Path: '/doc/environment/remix-3';
|
|
152
153
|
export declare const Website_Doc_CLI_Fill_Path: '/doc/concept/cli/fill';
|
|
153
154
|
export declare const Website_Doc_CLI_Translate_Path: '/doc/concept/cli/doc-translate';
|
|
154
155
|
export declare const Website_Doc_CLI_Review_Path: '/doc/concept/cli/doc-review';
|
|
@@ -223,6 +224,7 @@ export declare const Website_Doc_Environment_NestJS: "https://intlayer.org/doc/e
|
|
|
223
224
|
export declare const Website_Doc_Environment_Fastify: "https://intlayer.org/doc/environment/fastify";
|
|
224
225
|
export declare const Website_Doc_Environment_Hono: "https://intlayer.org/doc/environment/hono";
|
|
225
226
|
export declare const Website_Doc_Environment_Htmx: "https://intlayer.org/doc/environment/htmx";
|
|
227
|
+
export declare const Website_Doc_Environment_Remix_3: "https://intlayer.org/doc/environment/remix-3";
|
|
226
228
|
export declare const Website_Doc_CLI_Fill: "https://intlayer.org/doc/concept/cli/fill";
|
|
227
229
|
export declare const Website_Doc_CLI_Translate: "https://intlayer.org/doc/concept/cli/doc-translate";
|
|
228
230
|
export declare const Website_Doc_CLI_Review: "https://intlayer.org/doc/concept/cli/doc-review";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","names":[],"sources":["../../src/routes.ts"],"mappings":";qBAQa;qBAEA;qBAEA;qBACA;qBAKA;qBACA;qBAKA;qBACA;qBAEA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBAEA;qBACA;qBAEA;qBACA;qBAEA;qBAEA;qBAGA,6BAA0B;qBAE1B,6BAA0B;;qBAI1B;qBACA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBAEA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA,4BAAyB;qBAEzB;qBACA,4BAAyB;qBAGzB;qBACA,2BAAwB;qBAGxB;qBAEA,uBAAoB;qBAEpB,+BAA4B;qBAE5B,0BAAuB;qBAEvB,4BAAyB;qBAMzB;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAGA;qBACA;qBACA;qBAEA;qBAEA;qBAGA;qBACA;qBACA;qBAEA;qBAEA;qBAEA;qBAGA;qBACA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAGA;qBAEA,+BAA4B;qBAE5B,uCAAoC;qBAEpC,kCAA+B;qBAE/B,oCAAiC,cAChC,cACA;qBAUD;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBAEA;qBAEA;qBAEA;qBACA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBACA;qBAEA;qBAEA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAGA;qBACA;qBAEA;qBAGA;qBACA;qBACA;qBAGA;qBAEA;qBACA;qBACA;qBACA;qBAGA;qBACA;qBACA;qBACA;qBAKA;qBACA;qBACA;qBACA;qBAEA;qBAEA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAGA;qBAEA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAGA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAGA;qBAEA;qBAEA;qBAGA;qBAGA;qBAEA;qBACA;qBAEA;qBAGA;qBAEA;qBAEA;qBAEA;qBAMA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBACA;qBACA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBACA;qBAEA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBACA;qBAEA;qBAEA;qBACA;qBACA;qBACA;qBAGA;qBACA;qBACA;qBACA;qBACA;qBACA;qBAKA;qBACA;qBAKA;qBACA;qBAMA;qBACA;qBACA;qBAKA;qBACA;qBAQA;qBACA;qBACA;qBAEA;qBAEA;qBAEA;qBACA;qBAEA;qBACA;qBAKA;qBAGA;qBAGA;qBAGA;qBACA;qBAEA;qBACA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA"}
|
|
1
|
+
{"version":3,"file":"routes.d.ts","names":[],"sources":["../../src/routes.ts"],"mappings":";qBAQa;qBAEA;qBAEA;qBACA;qBAKA;qBACA;qBAKA;qBACA;qBAEA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBAEA;qBACA;qBAEA;qBACA;qBAEA;qBAEA;qBAGA,6BAA0B;qBAE1B,6BAA0B;;qBAI1B;qBACA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBAEA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA,4BAAyB;qBAEzB;qBACA,4BAAyB;qBAGzB;qBACA,2BAAwB;qBAGxB;qBAEA,uBAAoB;qBAEpB,+BAA4B;qBAE5B,0BAAuB;qBAEvB,4BAAyB;qBAMzB;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAGA;qBACA;qBACA;qBAEA;qBAEA;qBAGA;qBACA;qBACA;qBAEA;qBAEA;qBAEA;qBAGA;qBACA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAGA;qBAEA,+BAA4B;qBAE5B,uCAAoC;qBAEpC,kCAA+B;qBAE/B,oCAAiC,cAChC,cACA;qBAUD;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBAEA;qBAEA;qBAEA;qBACA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBACA;qBAEA;qBAEA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAGA;qBACA;qBAEA;qBAGA;qBACA;qBACA;qBAGA;qBAEA;qBACA;qBACA;qBACA;qBAGA;qBACA;qBACA;qBACA;qBAKA;qBACA;qBACA;qBACA;qBAEA;qBAEA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAGA;qBAEA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAGA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAGA;qBAEA;qBAEA;qBAGA;qBAGA;qBAEA;qBACA;qBAEA;qBAGA;qBAEA;qBAEA;qBAEA;qBAMA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBACA;qBACA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBACA;qBAEA;qBACA;qBACA;qBACA;qBACA;qBAEA;qBACA;qBACA;qBAEA;qBAEA;qBACA;qBACA;qBACA;qBAGA;qBACA;qBACA;qBACA;qBACA;qBACA;qBAKA;qBACA;qBAKA;qBACA;qBAMA;qBACA;qBACA;qBAKA;qBACA;qBAQA;qBACA;qBACA;qBAEA;qBAEA;qBAEA;qBACA;qBAEA;qBACA;qBAKA;qBAGA;qBAGA;qBAGA;qBACA;qBAEA;qBACA;qBACA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA;qBAEA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlayer/design-system",
|
|
3
|
-
"version": "9.5.
|
|
3
|
+
"version": "9.5.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Intlayer design system, including UI components used in the Intlayer editor, website, and visual editor/CMS.",
|
|
6
6
|
"keywords": [
|
|
@@ -455,15 +455,15 @@
|
|
|
455
455
|
"typecheck_": "tsc --noEmit --project tsconfig.types.json"
|
|
456
456
|
},
|
|
457
457
|
"dependencies": {
|
|
458
|
-
"@better-auth/passkey": "1.7.
|
|
459
|
-
"@better-auth/sso": "1.7.
|
|
460
|
-
"@intlayer/api": "9.5.
|
|
461
|
-
"@intlayer/config": "9.5.
|
|
462
|
-
"@intlayer/core": "9.5.
|
|
463
|
-
"@intlayer/dictionaries-entry": "9.5.
|
|
464
|
-
"@intlayer/editor-react": "9.5.
|
|
465
|
-
"@intlayer/engine": "9.5.
|
|
466
|
-
"@intlayer/types": "9.5.
|
|
458
|
+
"@better-auth/passkey": "1.7.4",
|
|
459
|
+
"@better-auth/sso": "1.7.4",
|
|
460
|
+
"@intlayer/api": "9.5.2",
|
|
461
|
+
"@intlayer/config": "9.5.2",
|
|
462
|
+
"@intlayer/core": "9.5.2",
|
|
463
|
+
"@intlayer/dictionaries-entry": "9.5.2",
|
|
464
|
+
"@intlayer/editor-react": "9.5.2",
|
|
465
|
+
"@intlayer/engine": "9.5.2",
|
|
466
|
+
"@intlayer/types": "9.5.2",
|
|
467
467
|
"@radix-ui/react-dialog": "1.1.23",
|
|
468
468
|
"@radix-ui/react-select": "2.3.7",
|
|
469
469
|
"@radix-ui/react-slot": "1.3.3",
|
|
@@ -471,7 +471,7 @@
|
|
|
471
471
|
"@tailwindcss/aspect-ratio": "0.4.2",
|
|
472
472
|
"@tanstack/query-async-storage-persister": "5.102.8",
|
|
473
473
|
"@tanstack/react-query-persist-client": "5.102.8",
|
|
474
|
-
"@tanstack/react-virtual": "3.14.
|
|
474
|
+
"@tanstack/react-virtual": "3.14.12",
|
|
475
475
|
"@tiptap/core": "3.31.3",
|
|
476
476
|
"@tiptap/extension-character-count": "3.31.3",
|
|
477
477
|
"@tiptap/extension-code-block": "3.31.3",
|
|
@@ -490,22 +490,22 @@
|
|
|
490
490
|
"@tiptap/react": "3.31.3",
|
|
491
491
|
"@tiptap/starter-kit": "3.31.3",
|
|
492
492
|
"@tiptap/suggestion": "3.31.3",
|
|
493
|
-
"better-auth": "1.7.
|
|
493
|
+
"better-auth": "1.7.4",
|
|
494
494
|
"class-variance-authority": "0.7.1",
|
|
495
495
|
"cmdk": "1.1.1",
|
|
496
496
|
"cnfast": "0.2.0",
|
|
497
497
|
"defu": "6.1.7",
|
|
498
498
|
"dompurify": "3.4.15",
|
|
499
499
|
"isomorphic-dompurify": "4.1.0",
|
|
500
|
-
"react-intlayer": "9.5.
|
|
500
|
+
"react-intlayer": "9.5.2",
|
|
501
501
|
"rollup-preserve-directives": "1.1.3",
|
|
502
502
|
"tiptap-extension-global-drag-handle": "^0.1.18",
|
|
503
503
|
"tiptap-markdown": "^0.9.0",
|
|
504
504
|
"tunnel-rat": "^0.1.2",
|
|
505
|
-
"zod": "4.
|
|
505
|
+
"zod": "4.6.2"
|
|
506
506
|
},
|
|
507
507
|
"devDependencies": {
|
|
508
|
-
"@intlayer/backend": "9.5.
|
|
508
|
+
"@intlayer/backend": "9.5.2",
|
|
509
509
|
"@shikijs/core": "4.4.3",
|
|
510
510
|
"@shikijs/engine-oniguruma": "4.4.3",
|
|
511
511
|
"@shikijs/transformers": "4.4.3",
|
|
@@ -526,27 +526,27 @@
|
|
|
526
526
|
"@testing-library/user-event": "14.6.7",
|
|
527
527
|
"@types/dompurify": "3.2.0",
|
|
528
528
|
"@types/espree": "11.1.0",
|
|
529
|
-
"@types/node": "
|
|
530
|
-
"@types/react": "19.
|
|
531
|
-
"@types/react-dom": "19.
|
|
529
|
+
"@types/node": "^22",
|
|
530
|
+
"@types/react": "19.3.0",
|
|
531
|
+
"@types/react-dom": "19.3.0",
|
|
532
532
|
"@utils/ts-config": "1.0.4",
|
|
533
533
|
"@utils/ts-config-types": "1.0.4",
|
|
534
534
|
"fast-glob": "3.3.3",
|
|
535
|
-
"intlayer": "9.5.
|
|
535
|
+
"intlayer": "9.5.2",
|
|
536
536
|
"rimraf": "6.1.3",
|
|
537
537
|
"shiki": "4.4.3",
|
|
538
538
|
"storybook": "10.6.0",
|
|
539
539
|
"tsdown": "0.23.0",
|
|
540
540
|
"typescript": "7.0.2",
|
|
541
|
-
"vite": "8.
|
|
542
|
-
"vite-intlayer": "9.5.
|
|
541
|
+
"vite": "8.3.0",
|
|
542
|
+
"vite-intlayer": "9.5.2",
|
|
543
543
|
"vite-plugin-dts": "5.1.0",
|
|
544
544
|
"vitest": "5.0.0"
|
|
545
545
|
},
|
|
546
546
|
"peerDependencies": {
|
|
547
547
|
"@better-fetch/fetch": "1.3.1",
|
|
548
548
|
"@hookform/resolvers": "5.9.1",
|
|
549
|
-
"@intlayer/backend": "9.5.
|
|
549
|
+
"@intlayer/backend": "9.5.2",
|
|
550
550
|
"@monaco-editor/react": "4.7.0",
|
|
551
551
|
"@shikijs/core": "4.4.3",
|
|
552
552
|
"@shikijs/engine-oniguruma": "4.4.3",
|
|
@@ -555,12 +555,12 @@
|
|
|
555
555
|
"@tanstack/react-query-devtools": "5.102.8",
|
|
556
556
|
"framer-motion": "13.2.0",
|
|
557
557
|
"fuse.js": "7.5.0",
|
|
558
|
-
"intlayer": "9.5.
|
|
559
|
-
"lucide-react": "1.
|
|
558
|
+
"intlayer": "9.5.2",
|
|
559
|
+
"lucide-react": "1.45.0",
|
|
560
560
|
"react": ">=16.0.0",
|
|
561
561
|
"react-dom": ">=16.0.0",
|
|
562
562
|
"react-hook-form": "7.87.0",
|
|
563
|
-
"react-intlayer": "9.5.
|
|
563
|
+
"react-intlayer": "9.5.2",
|
|
564
564
|
"shiki": "4.4.3",
|
|
565
565
|
"tailwindcss": "4.3.3"
|
|
566
566
|
},
|