@intlayer/design-system 3.5.4 → 3.5.5
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/.vite/manifest.json +112 -45
- package/dist/CopyButton-Cxu3goRg.cjs +59 -0
- package/dist/CopyButton-Cxu3goRg.cjs.map +1 -0
- package/dist/CopyButton-DlcDlf6U.js +60 -0
- package/dist/CopyButton-DlcDlf6U.js.map +1 -0
- package/dist/components/Auth/SignUpForm/signUpForm.content.d.ts +11 -11
- package/dist/components/Auth/useAuth/useSession.cjs +1 -0
- package/dist/components/Auth/useAuth/useSession.cjs.map +1 -1
- package/dist/components/Auth/useAuth/useSession.mjs +1 -0
- package/dist/components/Auth/useAuth/useSession.mjs.map +1 -1
- package/dist/components/Breadcrumb/breadcrumb.content.cjs +26 -0
- package/dist/components/Breadcrumb/breadcrumb.content.cjs.map +1 -0
- package/dist/components/Breadcrumb/breadcrumb.content.d.ts +8 -0
- package/dist/components/Breadcrumb/breadcrumb.content.d.ts.map +1 -0
- package/dist/components/Breadcrumb/breadcrumb.content.mjs +26 -0
- package/dist/components/Breadcrumb/breadcrumb.content.mjs.map +1 -0
- package/dist/components/Breadcrumb/index.cjs +103 -34
- package/dist/components/Breadcrumb/index.cjs.map +1 -1
- package/dist/components/Breadcrumb/index.d.ts +6 -2
- package/dist/components/Breadcrumb/index.d.ts.map +1 -1
- package/dist/components/Breadcrumb/index.mjs +103 -34
- package/dist/components/Breadcrumb/index.mjs.map +1 -1
- package/dist/components/Button/Button.cjs +7 -8
- package/dist/components/Button/Button.cjs.map +1 -1
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/Button/Button.mjs +7 -8
- package/dist/components/Button/Button.mjs.map +1 -1
- package/dist/components/Container/index.cjs +2 -2
- package/dist/components/Container/index.cjs.map +1 -1
- package/dist/components/Container/index.mjs +2 -2
- package/dist/components/Container/index.mjs.map +1 -1
- package/dist/components/DictionaryEditor/index.cjs +4 -0
- package/dist/components/DictionaryEditor/index.cjs.map +1 -1
- package/dist/components/DictionaryEditor/index.mjs +4 -0
- package/dist/components/DictionaryEditor/index.mjs.map +1 -1
- package/dist/components/DictionaryEditor/useEditedContentStore.cjs +3 -0
- package/dist/components/DictionaryEditor/useEditedContentStore.cjs.map +1 -1
- package/dist/components/DictionaryEditor/useEditedContentStore.d.ts +2 -2
- package/dist/components/DictionaryEditor/useEditedContentStore.d.ts.map +1 -1
- package/dist/components/DictionaryEditor/useEditedContentStore.mjs +3 -0
- package/dist/components/DictionaryEditor/useEditedContentStore.mjs.map +1 -1
- package/dist/components/DictionaryEditor/useEditionPanelStore.cjs.map +1 -1
- package/dist/components/DictionaryEditor/useEditionPanelStore.d.ts +1 -1
- package/dist/components/DictionaryEditor/useEditionPanelStore.d.ts.map +1 -1
- package/dist/components/DictionaryEditor/useEditionPanelStore.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs +7 -5
- package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts +1 -0
- package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs +7 -5
- package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs +6 -3
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts +1 -0
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +6 -3
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/JSONEditor.cjs +20 -18
- package/dist/components/DictionaryFieldEditor/JSONEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/JSONEditor.d.ts +1 -0
- package/dist/components/DictionaryFieldEditor/JSONEditor.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/JSONEditor.mjs +20 -18
- package/dist/components/DictionaryFieldEditor/JSONEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.cjs +10 -2
- package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.d.ts +2 -0
- package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs +10 -2
- package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NodeEditor.cjs +10 -14
- package/dist/components/DictionaryFieldEditor/NodeEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NodeEditor.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/NodeEditor.mjs +10 -14
- package/dist/components/DictionaryFieldEditor/NodeEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +60 -17
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +63 -20
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs +32 -0
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +4 -0
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs +32 -0
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
- package/dist/components/DropDown/index.cjs.map +1 -1
- package/dist/components/DropDown/index.d.ts +18 -1
- package/dist/components/DropDown/index.d.ts.map +1 -1
- package/dist/components/DropDown/index.mjs.map +1 -1
- package/dist/components/Headers/index.cjs +1 -1
- package/dist/components/Headers/index.cjs.map +1 -1
- package/dist/components/Headers/index.mjs +1 -1
- package/dist/components/Headers/index.mjs.map +1 -1
- package/dist/components/IDE/CodeRender copy.cjs +141 -0
- package/dist/components/IDE/CodeRender copy.cjs.map +1 -0
- package/dist/components/IDE/CodeRender copy.d.ts +14 -0
- package/dist/components/IDE/CodeRender copy.d.ts.map +1 -0
- package/dist/components/IDE/CodeRender copy.mjs +141 -0
- package/dist/components/IDE/CodeRender copy.mjs.map +1 -0
- package/dist/components/IDE/CodeRender.cjs +39 -625
- package/dist/components/IDE/CodeRender.cjs.map +1 -1
- package/dist/components/IDE/CodeRender.d.ts +4 -5
- package/dist/components/IDE/CodeRender.d.ts.map +1 -1
- package/dist/components/IDE/CodeRender.mjs +40 -604
- package/dist/components/IDE/CodeRender.mjs.map +1 -1
- package/dist/components/IDE/CopyButton.cjs +40 -0
- package/dist/components/IDE/CopyButton.cjs.map +1 -0
- package/dist/components/IDE/CopyButton.content.cjs +26 -0
- package/dist/components/IDE/CopyButton.content.cjs.map +1 -0
- package/dist/components/IDE/CopyButton.content.d.ts +8 -0
- package/dist/components/IDE/CopyButton.content.d.ts.map +1 -0
- package/dist/components/IDE/CopyButton.content.mjs +26 -0
- package/dist/components/IDE/CopyButton.content.mjs.map +1 -0
- package/dist/components/IDE/CopyButton.d.ts +7 -0
- package/dist/components/IDE/CopyButton.d.ts.map +1 -0
- package/dist/components/IDE/CopyButton.mjs +40 -0
- package/dist/components/IDE/CopyButton.mjs.map +1 -0
- package/dist/components/IDE/IDE.cjs +1 -1
- package/dist/components/IDE/IDE.cjs.map +1 -1
- package/dist/components/IDE/IDE.mjs +1 -1
- package/dist/components/IDE/IDE.mjs.map +1 -1
- package/dist/components/IDE/MarkDownRender.cjs +10 -2
- package/dist/components/IDE/MarkDownRender.cjs.map +1 -1
- package/dist/components/IDE/MarkDownRender.d.ts.map +1 -1
- package/dist/components/IDE/MarkDownRender.mjs +10 -2
- package/dist/components/IDE/MarkDownRender.mjs.map +1 -1
- package/dist/components/IDE/MonacoCode.cjs +129 -0
- package/dist/components/IDE/MonacoCode.cjs.map +1 -0
- package/dist/components/IDE/MonacoCode.d.ts +14 -0
- package/dist/components/IDE/MonacoCode.d.ts.map +1 -0
- package/dist/components/IDE/MonacoCode.mjs +129 -0
- package/dist/components/IDE/MonacoCode.mjs.map +1 -0
- package/dist/components/Link/Link.cjs +50 -31
- package/dist/components/Link/Link.cjs.map +1 -1
- package/dist/components/Link/Link.d.ts +3 -0
- package/dist/components/Link/Link.d.ts.map +1 -1
- package/dist/components/Link/Link.mjs +51 -32
- package/dist/components/Link/Link.mjs.map +1 -1
- package/dist/components/Link/index.cjs +1 -0
- package/dist/components/Link/index.cjs.map +1 -1
- package/dist/components/Link/index.mjs +3 -2
- package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs +118 -34
- package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs.map +1 -1
- package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts +2 -0
- package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts.map +1 -1
- package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +119 -35
- package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
- package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.cjs +63 -1
- package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.cjs.map +1 -1
- package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts +6 -0
- package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts.map +1 -1
- package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs +63 -1
- package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs.map +1 -1
- package/dist/components/MarkDownRender/index.cjs +4 -2
- package/dist/components/MarkDownRender/index.cjs.map +1 -1
- package/dist/components/MarkDownRender/index.d.ts +3 -1
- package/dist/components/MarkDownRender/index.d.ts.map +1 -1
- package/dist/components/MarkDownRender/index.mjs +4 -2
- package/dist/components/MarkDownRender/index.mjs.map +1 -1
- package/dist/components/Modal/Modal.cjs +8 -10
- package/dist/components/Modal/Modal.cjs.map +1 -1
- package/dist/components/Modal/Modal.d.ts.map +1 -1
- package/dist/components/Modal/Modal.mjs +8 -10
- package/dist/components/Modal/Modal.mjs.map +1 -1
- package/dist/components/Navbar/DesktopNavbar.cjs +1 -1
- package/dist/components/Navbar/DesktopNavbar.cjs.map +1 -1
- package/dist/components/Navbar/DesktopNavbar.mjs +1 -1
- package/dist/components/Navbar/DesktopNavbar.mjs.map +1 -1
- package/dist/components/index.cjs +5 -0
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.mjs +6 -1
- package/dist/components/index.mjs.map +1 -1
- package/dist/design-system.css +235 -0
- package/dist/hooks/index.cjs +6 -0
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.mjs +7 -1
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/hooks/intlayerAPIHooks.cjs +8 -2
- package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
- package/dist/hooks/intlayerAPIHooks.d.ts +4 -0
- package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
- package/dist/hooks/intlayerAPIHooks.mjs +8 -2
- package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
- package/dist/hooks/useAsync/index.cjs +3 -0
- package/dist/hooks/useAsync/index.cjs.map +1 -1
- package/dist/hooks/useAsync/index.d.ts +1 -0
- package/dist/hooks/useAsync/index.d.ts.map +1 -1
- package/dist/hooks/useAsync/index.mjs +4 -1
- package/dist/hooks/useAsync/index.mjs.map +1 -1
- package/dist/hooks/useAsync/useAsync.cjs +2 -9
- package/dist/hooks/useAsync/useAsync.cjs.map +1 -1
- package/dist/hooks/useAsync/useAsync.d.ts.map +1 -1
- package/dist/hooks/useAsync/useAsync.mjs +3 -10
- package/dist/hooks/useAsync/useAsync.mjs.map +1 -1
- package/dist/hooks/useAsync/useAsyncStateStore.cjs +123 -69
- package/dist/hooks/useAsync/useAsyncStateStore.cjs.map +1 -1
- package/dist/hooks/useAsync/useAsyncStateStore.d.ts +35 -11
- package/dist/hooks/useAsync/useAsyncStateStore.d.ts.map +1 -1
- package/dist/hooks/useAsync/useAsyncStateStore.mjs +123 -69
- package/dist/hooks/useAsync/useAsyncStateStore.mjs.map +1 -1
- package/dist/hooks/useIntlayerAPI.d.ts +3 -0
- package/dist/hooks/useIntlayerAPI.d.ts.map +1 -1
- package/dist/hooks/useIsDarkMode.cjs +15 -0
- package/dist/hooks/useIsDarkMode.cjs.map +1 -0
- package/dist/hooks/useIsDarkMode.d.ts +2 -0
- package/dist/hooks/useIsDarkMode.d.ts.map +1 -0
- package/dist/hooks/useIsDarkMode.mjs +15 -0
- package/dist/hooks/useIsDarkMode.mjs.map +1 -0
- package/dist/libs/intlayer-api/ai.cjs +24 -0
- package/dist/libs/intlayer-api/ai.cjs.map +1 -0
- package/dist/libs/intlayer-api/ai.d.ts +10 -0
- package/dist/libs/intlayer-api/ai.d.ts.map +1 -0
- package/dist/libs/intlayer-api/ai.mjs +24 -0
- package/dist/libs/intlayer-api/ai.mjs.map +1 -0
- package/dist/libs/intlayer-api/index.cjs +3 -1
- package/dist/libs/intlayer-api/index.cjs.map +1 -1
- package/dist/libs/intlayer-api/index.d.ts +6 -0
- package/dist/libs/intlayer-api/index.d.ts.map +1 -1
- package/dist/libs/intlayer-api/index.mjs +3 -1
- package/dist/libs/intlayer-api/index.mjs.map +1 -1
- package/dist/tailwind.css +1 -1
- package/package.json +19 -16
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { j as jsxRuntimeExports } from "../../jsx-runtime-DaNGiM0W.js";
|
|
3
|
+
import { Editor } from "@monaco-editor/react";
|
|
4
|
+
import { useRef, useState, useMemo } from "react";
|
|
5
|
+
import { cn } from "../../utils/cn.mjs";
|
|
6
|
+
import { Loader } from "../Loader/index.mjs";
|
|
7
|
+
import { CopyButton } from "./CopyButton.mjs";
|
|
8
|
+
const MonacoCode = ({
|
|
9
|
+
children,
|
|
10
|
+
language,
|
|
11
|
+
isDarkMode,
|
|
12
|
+
showLineNumbers,
|
|
13
|
+
showCopyButton = true,
|
|
14
|
+
isReadOnly = false,
|
|
15
|
+
onChange
|
|
16
|
+
}) => {
|
|
17
|
+
const containerRef = useRef(null);
|
|
18
|
+
const ideRef = useRef(null);
|
|
19
|
+
const [editorSize, setEditorSize] = useState({ height: 0, width: 0 });
|
|
20
|
+
const theme = useMemo(
|
|
21
|
+
() => isDarkMode ? "vs-dark-transparent" : "hc-light-theme",
|
|
22
|
+
[isDarkMode]
|
|
23
|
+
);
|
|
24
|
+
const handleMountIde = (editor, monaco) => {
|
|
25
|
+
ideRef.current = editor;
|
|
26
|
+
const contentHeight = (editor.getContentHeight() ?? 0) + 25;
|
|
27
|
+
monaco.editor.defineTheme("vs-dark-transparent", {
|
|
28
|
+
base: "vs-dark",
|
|
29
|
+
inherit: true,
|
|
30
|
+
rules: [],
|
|
31
|
+
colors: {
|
|
32
|
+
"editor.background": "#00000000"
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
monaco.editor.defineTheme("hc-light-theme", {
|
|
36
|
+
base: "vs",
|
|
37
|
+
inherit: true,
|
|
38
|
+
rules: [],
|
|
39
|
+
colors: {
|
|
40
|
+
"editor.background": "#00000000"
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
monaco.editor.setTheme(theme);
|
|
44
|
+
monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({
|
|
45
|
+
noSemanticValidation: true,
|
|
46
|
+
// Disables type checking
|
|
47
|
+
noSyntaxValidation: true
|
|
48
|
+
// Disables syntax errors
|
|
49
|
+
});
|
|
50
|
+
monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
|
|
51
|
+
noSemanticValidation: true,
|
|
52
|
+
noSyntaxValidation: true
|
|
53
|
+
});
|
|
54
|
+
monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
|
|
55
|
+
noLib: true,
|
|
56
|
+
allowNonTsExtensions: true
|
|
57
|
+
});
|
|
58
|
+
monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
|
|
59
|
+
noLib: true,
|
|
60
|
+
allowNonTsExtensions: true
|
|
61
|
+
});
|
|
62
|
+
setEditorSize({
|
|
63
|
+
height: contentHeight,
|
|
64
|
+
width: containerRef.current?.clientWidth ?? 0
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
const isShowLineNumbers = showLineNumbers ?? children.split("\n").length > 1;
|
|
68
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
69
|
+
"div",
|
|
70
|
+
{
|
|
71
|
+
className: cn(
|
|
72
|
+
"relative h-full w-full text-sm",
|
|
73
|
+
showLineNumbers && "ml-0"
|
|
74
|
+
),
|
|
75
|
+
children: [
|
|
76
|
+
showCopyButton && /* @__PURE__ */ jsxRuntimeExports.jsx(CopyButton, { content: children }),
|
|
77
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
78
|
+
"div",
|
|
79
|
+
{
|
|
80
|
+
className: "grid size-full grid-cols-[0px] overflow-auto",
|
|
81
|
+
ref: containerRef,
|
|
82
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
83
|
+
Editor,
|
|
84
|
+
{
|
|
85
|
+
...editorSize,
|
|
86
|
+
defaultLanguage: "typescript",
|
|
87
|
+
language,
|
|
88
|
+
loading: /* @__PURE__ */ jsxRuntimeExports.jsx(Loader, {}),
|
|
89
|
+
defaultValue: String(children).replace(/\n$/, ""),
|
|
90
|
+
onMount: handleMountIde,
|
|
91
|
+
onChange,
|
|
92
|
+
options: {
|
|
93
|
+
readOnly: isReadOnly,
|
|
94
|
+
cursorStyle: "line",
|
|
95
|
+
minimap: { enabled: false },
|
|
96
|
+
scrollbar: {
|
|
97
|
+
vertical: "hidden",
|
|
98
|
+
verticalScrollbarSize: 0,
|
|
99
|
+
alwaysConsumeMouseWheel: false
|
|
100
|
+
},
|
|
101
|
+
folding: false,
|
|
102
|
+
// Disable code folding
|
|
103
|
+
renderValidationDecorations: "off",
|
|
104
|
+
// Disable error/warning decorations
|
|
105
|
+
quickSuggestions: false,
|
|
106
|
+
// Disable IntelliSense
|
|
107
|
+
parameterHints: { enabled: false },
|
|
108
|
+
// Disable parameter hints
|
|
109
|
+
suggestOnTriggerCharacters: false,
|
|
110
|
+
// Disable suggestions on typing
|
|
111
|
+
mouseWheelScrollSensitivity: 0,
|
|
112
|
+
fastScrollSensitivity: 0,
|
|
113
|
+
scrollBeyondLastLine: false,
|
|
114
|
+
lineNumbers: isShowLineNumbers ? "on" : "off"
|
|
115
|
+
},
|
|
116
|
+
theme,
|
|
117
|
+
className: "my-2 rounded-md"
|
|
118
|
+
}
|
|
119
|
+
)
|
|
120
|
+
}
|
|
121
|
+
)
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
);
|
|
125
|
+
};
|
|
126
|
+
export {
|
|
127
|
+
MonacoCode
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=MonacoCode.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonacoCode.mjs","sources":["../../../src/components/IDE/MonacoCode.tsx"],"sourcesContent":["'use client';\n\nimport { Editor, OnChange, OnMount } from '@monaco-editor/react';\nimport { type FC, useState, useRef, useMemo } from 'react';\nimport { cn } from '../../utils/cn';\nimport { Loader } from '../Loader';\nimport { CopyButton } from './CopyButton';\n\ntype CodeCompProps = {\n children: string;\n language: string;\n isDarkMode?: boolean;\n showLineNumbers?: boolean;\n showCopyButton?: boolean;\n isReadOnly?: boolean;\n onChange?: OnChange;\n};\n\nexport const MonacoCode: FC<CodeCompProps> = ({\n children,\n language,\n isDarkMode,\n showLineNumbers,\n showCopyButton = true,\n isReadOnly = false,\n onChange,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const ideRef = useRef(null);\n const [editorSize, setEditorSize] = useState<{\n height: number;\n width: number;\n }>({ height: 0, width: 0 });\n\n const theme = useMemo(\n () => (isDarkMode ? 'vs-dark-transparent' : 'hc-light-theme'),\n [isDarkMode]\n );\n\n const handleMountIde: OnMount = (editor, monaco) => {\n // first time you set the height based on content Height\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ideRef.current = editor as any;\n const contentHeight = (editor.getContentHeight() ?? 0) + 25;\n\n monaco.editor.defineTheme('vs-dark-transparent', {\n base: 'vs-dark',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': '#00000000',\n },\n });\n monaco.editor.defineTheme('hc-light-theme', {\n base: 'vs',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': '#00000000',\n },\n });\n\n monaco.editor.setTheme(theme);\n\n // Disable TypeScript diagnostics\n monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true, // Disables type checking\n noSyntaxValidation: true, // Disables syntax errors\n });\n\n // Disable JavaScript diagnostics\n monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true,\n noSyntaxValidation: true,\n });\n\n // Disable unnecessary language features (e.g., suggestions, quick fixes)\n monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n noLib: true,\n allowNonTsExtensions: true,\n });\n\n monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n noLib: true,\n allowNonTsExtensions: true,\n });\n\n setEditorSize({\n height: contentHeight,\n width: containerRef.current?.clientWidth ?? 0,\n });\n };\n\n const isShowLineNumbers = showLineNumbers ?? children.split('\\n').length > 1;\n\n return (\n <div\n className={cn(\n 'relative h-full w-full text-sm',\n showLineNumbers && 'ml-0'\n )}\n >\n {showCopyButton && <CopyButton content={children} />}\n <div\n className=\"grid size-full grid-cols-[0px] overflow-auto\"\n ref={containerRef}\n >\n <Editor\n {...editorSize}\n defaultLanguage=\"typescript\"\n language={language}\n loading={<Loader />}\n defaultValue={String(children).replace(/\\n$/, '')}\n onMount={handleMountIde}\n onChange={onChange}\n options={{\n readOnly: isReadOnly,\n cursorStyle: 'line',\n minimap: { enabled: false },\n scrollbar: {\n vertical: 'hidden',\n verticalScrollbarSize: 0,\n alwaysConsumeMouseWheel: false,\n },\n folding: false, // Disable code folding\n renderValidationDecorations: 'off', // Disable error/warning decorations\n quickSuggestions: false, // Disable IntelliSense\n parameterHints: { enabled: false }, // Disable parameter hints\n suggestOnTriggerCharacters: false, // Disable suggestions on typing\n\n mouseWheelScrollSensitivity: 0,\n fastScrollSensitivity: 0,\n scrollBeyondLastLine: false,\n lineNumbers: isShowLineNumbers ? 'on' : 'off',\n }}\n theme={theme}\n className=\"my-2 rounded-md\"\n />\n </div>\n </div>\n );\n};\n"],"names":["jsxs","jsx"],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("../../jsx-runtime-XHKiWCTo.cjs");
|
|
4
|
+
const client = require("@intlayer/config/client");
|
|
5
|
+
const core = require("@intlayer/core");
|
|
4
6
|
const classVarianceAuthority = require("class-variance-authority");
|
|
5
7
|
const lucideReact = require("lucide-react");
|
|
6
8
|
const require$$0 = require("react");
|
|
@@ -13,7 +15,7 @@ const linkVariants = classVarianceAuthority.cva(
|
|
|
13
15
|
"invisible-link": "h-auto justify-start text-wrap border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent dark:bg-transparent hover:dark:bg-transparent",
|
|
14
16
|
button: "rounded-lg text-text-opposite dark:text-text-opposite-dark min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50",
|
|
15
17
|
"button-outlined": "rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0 min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50",
|
|
16
|
-
hoverable: "rounded-lg border-none bg-opacity-0 transition hover:bg-opacity-10 aria-[current
|
|
18
|
+
hoverable: "block rounded-lg border-none bg-opacity-0 transition hover:bg-opacity-10 aria-[current]:bg-opacity-5 dark:border-none dark:bg-opacity-0 dark:hover:bg-opacity-10"
|
|
17
19
|
},
|
|
18
20
|
color: {
|
|
19
21
|
primary: "border-primary bg-primary text-primary hover:bg-primary-500 dark:border-primary-dark dark:bg-primary-dark dark:text-primary-dark hover:dark:bg-primary-300",
|
|
@@ -38,9 +40,18 @@ const linkVariants = classVarianceAuthority.cva(
|
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
);
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
const checkIsExternalLink = ({
|
|
44
|
+
href,
|
|
45
|
+
children,
|
|
46
|
+
isExternalLink: isExternalLinkProp
|
|
47
|
+
}) => {
|
|
48
|
+
const isChildrenString = typeof children === "string";
|
|
49
|
+
const isValidHref = typeof href === "string" && href.trim() !== "";
|
|
50
|
+
const isExternalLink = isExternalLinkProp === true || isChildrenString && typeof isExternalLinkProp === "undefined" && isValidHref && /^https?:\/\//.test(href);
|
|
51
|
+
return isExternalLink;
|
|
52
|
+
};
|
|
53
|
+
const Link = require$$0.forwardRef((props, ref) => {
|
|
54
|
+
const {
|
|
44
55
|
variant = "default",
|
|
45
56
|
color = "primary",
|
|
46
57
|
children,
|
|
@@ -48,34 +59,42 @@ const Link = require$$0.forwardRef(
|
|
|
48
59
|
className,
|
|
49
60
|
isActive,
|
|
50
61
|
underlined,
|
|
62
|
+
locale,
|
|
51
63
|
isExternalLink: isExternalLinkProp,
|
|
52
|
-
href,
|
|
53
|
-
...
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
64
|
+
href: hrefProp,
|
|
65
|
+
...otherProps
|
|
66
|
+
} = props;
|
|
67
|
+
const { internationalization } = client.getConfiguration();
|
|
68
|
+
const isExternalLink = checkIsExternalLink(props);
|
|
69
|
+
const rel = isExternalLink ? "noopener noreferrer nofollow" : void 0;
|
|
70
|
+
const target = isExternalLink ? "_blank" : "_self";
|
|
71
|
+
const hrefLang = locale ? locale === internationalization.defaultLocale ? "x-default" : locale : void 0;
|
|
72
|
+
const href = locale && hrefProp && !isExternalLink ? core.getLocalizedUrl(hrefProp, locale) : hrefProp;
|
|
73
|
+
return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(
|
|
74
|
+
"a",
|
|
75
|
+
{
|
|
76
|
+
href,
|
|
77
|
+
ref,
|
|
78
|
+
hrefLang,
|
|
79
|
+
"aria-label": label,
|
|
80
|
+
rel,
|
|
81
|
+
target,
|
|
82
|
+
"aria-current": isActive ? "page" : void 0,
|
|
83
|
+
className: linkVariants({
|
|
84
|
+
variant,
|
|
85
|
+
color,
|
|
86
|
+
underlined,
|
|
87
|
+
className
|
|
88
|
+
}),
|
|
89
|
+
...otherProps,
|
|
90
|
+
children: [
|
|
91
|
+
children,
|
|
92
|
+
isExternalLink && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(lucideReact.ExternalLink, { className: "ml-2 inline-block size-4" })
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
);
|
|
96
|
+
});
|
|
79
97
|
Link.displayName = "Link";
|
|
80
98
|
exports.Link = Link;
|
|
99
|
+
exports.checkIsExternalLink = checkIsExternalLink;
|
|
81
100
|
//# sourceMappingURL=Link.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.cjs","sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink } from 'lucide-react';\nimport {\n forwardRef,\n type DetailedHTMLProps,\n type AnchorHTMLAttributes,\n} from 'react';\n\nconst linkVariants = cva(\n 'gap-3 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default:\n 'h-auto justify-start text-wrap border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent hover:underline dark:bg-transparent hover:dark:bg-transparent',\n 'invisible-link':\n 'h-auto justify-start text-wrap border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent dark:bg-transparent hover:dark:bg-transparent',\n\n button:\n 'rounded-lg text-text-opposite dark:text-text-opposite-dark min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n 'button-outlined':\n 'rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0 min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n hoverable:\n 'rounded-lg border-none bg-opacity-0 transition hover:bg-opacity-10 aria-[current
|
|
1
|
+
{"version":3,"file":"Link.cjs","sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { getConfiguration, Locales } from '@intlayer/config/client';\nimport { getLocalizedUrl } from '@intlayer/core';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink } from 'lucide-react';\nimport {\n forwardRef,\n type DetailedHTMLProps,\n type AnchorHTMLAttributes,\n} from 'react';\n\nconst linkVariants = cva(\n 'gap-3 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default:\n 'h-auto justify-start text-wrap border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent hover:underline dark:bg-transparent hover:dark:bg-transparent',\n 'invisible-link':\n 'h-auto justify-start text-wrap border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent dark:bg-transparent hover:dark:bg-transparent',\n\n button:\n 'rounded-lg text-text-opposite dark:text-text-opposite-dark min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n 'button-outlined':\n 'rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0 min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n hoverable:\n 'block rounded-lg border-none bg-opacity-0 transition hover:bg-opacity-10 aria-[current]:bg-opacity-5 dark:border-none dark:bg-opacity-0 dark:hover:bg-opacity-10',\n },\n color: {\n primary:\n 'border-primary bg-primary text-primary hover:bg-primary-500 dark:border-primary-dark dark:bg-primary-dark dark:text-primary-dark hover:dark:bg-primary-300',\n secondary:\n 'border-secondary bg-secondary text-secondary hover:bg-secondary-300 dark:border-secondary-dark dark:bg-secondary-dark dark:text-secondary-dark hover:dark:bg-secondary-100',\n destructive:\n 'border-destructive bg-destructive text-destructive hover:bg-destructive-500 dark:border-destructive-dark dark:bg-destructive-dark hover:dark:bg-destructive-200',\n neutral:\n 'border-neutral bg-neutral text-neutral hover:bg-neutral-600 dark:border-neutral-dark dark:bg-neutral-dark dark:text-neutral-dark hover:dark:bg-neutral-400',\n light: 'border-white bg-white text-white hover:bg-neutral-500',\n dark: 'border-neutral-800 bg-neutral-800 text-neutral-800 hover:bg-neutral-900 dark:hover:bg-neutral-700',\n text: 'border-text bg-text text-text hover:opacity-80 dark:border-text-dark dark:bg-text-dark dark:text-text-dark',\n custom: '',\n },\n underlined: {\n default: '',\n true: 'underline',\n false: 'no-underline',\n },\n },\n\n defaultVariants: {\n variant: 'default',\n color: 'primary',\n underlined: 'default',\n },\n }\n);\n\nexport type LinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n> &\n VariantProps<typeof linkVariants> & {\n label: string;\n isExternalLink?: boolean;\n isActive?: boolean;\n locale?: Locales;\n };\n\nexport const checkIsExternalLink = ({\n href,\n children,\n isExternalLink: isExternalLinkProp,\n}: LinkProps): boolean => {\n const isChildrenString = typeof children === 'string';\n const isValidHref = typeof href === 'string' && href.trim() !== '';\n const isExternalLink =\n isExternalLinkProp === true ||\n (isChildrenString &&\n typeof isExternalLinkProp === 'undefined' &&\n isValidHref &&\n /^https?:\\/\\//.test(href));\n\n return isExternalLink;\n};\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>((props, ref) => {\n const {\n variant = 'default',\n color = 'primary',\n children,\n label,\n className,\n isActive,\n underlined,\n locale,\n isExternalLink: isExternalLinkProp,\n href: hrefProp,\n ...otherProps\n } = props;\n const { internationalization } = getConfiguration();\n\n const isExternalLink = checkIsExternalLink(props);\n\n const rel = isExternalLink ? 'noopener noreferrer nofollow' : undefined;\n\n const target = isExternalLink ? '_blank' : '_self';\n\n const hrefLang = locale\n ? locale === internationalization.defaultLocale\n ? 'x-default'\n : locale\n : undefined;\n\n const href =\n locale && hrefProp && !isExternalLink\n ? getLocalizedUrl(hrefProp, locale)\n : hrefProp;\n\n return (\n <a\n href={href}\n ref={ref}\n hrefLang={hrefLang}\n aria-label={label}\n rel={rel}\n target={target}\n aria-current={isActive ? 'page' : undefined}\n className={linkVariants({\n variant,\n color,\n underlined,\n className,\n })}\n {...otherProps}\n >\n {children}\n {isExternalLink && <ExternalLink className=\"ml-2 inline-block size-4\" />}\n </a>\n );\n});\n\nLink.displayName = 'Link';\n"],"names":["cva","forwardRef","getConfiguration","getLocalizedUrl","jsxs","jsx","ExternalLink"],"mappings":";;;;;;;;AAUA,MAAM,eAAeA,uBAAA;AAAA,EACnB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,kBACE;AAAA,QAEF,QACE;AAAA,QACF,mBACE;AAAA,QACF,WACE;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,QACL,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,MACV;AAAA,MACA,YAAY;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IAEX;AAAA,IAEA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,OAAO;AAAA,MACP,YAAY;AAAA,IAAA;AAAA,EACd;AAEJ;AAaO,MAAM,sBAAsB,CAAC;AAAA,EAClC;AAAA,EACA;AAAA,EACA,gBAAgB;AAClB,MAA0B;AAClB,QAAA,mBAAmB,OAAO,aAAa;AAC7C,QAAM,cAAc,OAAO,SAAS,YAAY,KAAK,WAAW;AAC1D,QAAA,iBACJ,uBAAuB,QACtB,oBACC,OAAO,uBAAuB,eAC9B,eACA,eAAe,KAAK,IAAI;AAErB,SAAA;AACT;AAEO,MAAM,OAAOC,WAAA,WAAyC,CAAC,OAAO,QAAQ;AACrE,QAAA;AAAA,IACJ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,GAAG;AAAA,EAAA,IACD;AACE,QAAA,EAAE,qBAAqB,IAAIC,wBAAiB;AAE5C,QAAA,iBAAiB,oBAAoB,KAAK;AAE1C,QAAA,MAAM,iBAAiB,iCAAiC;AAExD,QAAA,SAAS,iBAAiB,WAAW;AAE3C,QAAM,WAAW,SACb,WAAW,qBAAqB,gBAC9B,cACA,SACF;AAEE,QAAA,OACJ,UAAU,YAAY,CAAC,iBACnBC,qBAAgB,UAAU,MAAM,IAChC;AAGJ,SAAAC,2BAAA,kBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,gBAAc,WAAW,SAAS;AAAA,MAClC,WAAW,aAAa;AAAA,QACtB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,MACA,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA;AAAA,QACA,kBAAkBC,2BAAAA,kBAAAA,IAACC,YAAAA,cAAa,EAAA,WAAU,2BAA2B,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACxE;AAEJ,CAAC;AAED,KAAK,cAAc;;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Locales } from '@intlayer/config/client';
|
|
1
2
|
import { VariantProps } from 'class-variance-authority';
|
|
2
3
|
import { DetailedHTMLProps, AnchorHTMLAttributes } from 'react';
|
|
3
4
|
declare const linkVariants: (props?: ({
|
|
@@ -9,7 +10,9 @@ export type LinkProps = DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement
|
|
|
9
10
|
label: string;
|
|
10
11
|
isExternalLink?: boolean;
|
|
11
12
|
isActive?: boolean;
|
|
13
|
+
locale?: Locales;
|
|
12
14
|
};
|
|
15
|
+
export declare const checkIsExternalLink: ({ href, children, isExternalLink: isExternalLinkProp, }: LinkProps) => boolean;
|
|
13
16
|
export declare const Link: import('react').ForwardRefExoticComponent<Omit<LinkProps, "ref"> & import('react').RefAttributes<HTMLAnchorElement>>;
|
|
14
17
|
export {};
|
|
15
18
|
//# sourceMappingURL=Link.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/components/Link/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,OAAO,CAAC;AAEf,QAAA,MAAM,YAAY;;;;8EA4CjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,iBAAiB,CACvC,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,iBAAiB,CAClB,GACC,YAAY,CAAC,OAAO,YAAY,CAAC,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/components/Link/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,OAAO,CAAC;AAEf,QAAA,MAAM,YAAY;;;;8EA4CjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,iBAAiB,CACvC,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,iBAAiB,CAClB,GACC,YAAY,CAAC,OAAO,YAAY,CAAC,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEJ,eAAO,MAAM,mBAAmB,4DAI7B,SAAS,KAAG,OAWd,CAAC;AAEF,eAAO,MAAM,IAAI,sHAsDf,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "../../jsx-runtime-DaNGiM0W.js";
|
|
2
|
+
import { getConfiguration } from "@intlayer/config/client";
|
|
3
|
+
import { getLocalizedUrl } from "@intlayer/core";
|
|
2
4
|
import { cva } from "class-variance-authority";
|
|
3
5
|
import { ExternalLink } from "lucide-react";
|
|
4
6
|
import { forwardRef } from "react";
|
|
@@ -11,7 +13,7 @@ const linkVariants = cva(
|
|
|
11
13
|
"invisible-link": "h-auto justify-start text-wrap border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent dark:bg-transparent hover:dark:bg-transparent",
|
|
12
14
|
button: "rounded-lg text-text-opposite dark:text-text-opposite-dark min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50",
|
|
13
15
|
"button-outlined": "rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0 min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50",
|
|
14
|
-
hoverable: "rounded-lg border-none bg-opacity-0 transition hover:bg-opacity-10 aria-[current
|
|
16
|
+
hoverable: "block rounded-lg border-none bg-opacity-0 transition hover:bg-opacity-10 aria-[current]:bg-opacity-5 dark:border-none dark:bg-opacity-0 dark:hover:bg-opacity-10"
|
|
15
17
|
},
|
|
16
18
|
color: {
|
|
17
19
|
primary: "border-primary bg-primary text-primary hover:bg-primary-500 dark:border-primary-dark dark:bg-primary-dark dark:text-primary-dark hover:dark:bg-primary-300",
|
|
@@ -36,9 +38,18 @@ const linkVariants = cva(
|
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
);
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
const checkIsExternalLink = ({
|
|
42
|
+
href,
|
|
43
|
+
children,
|
|
44
|
+
isExternalLink: isExternalLinkProp
|
|
45
|
+
}) => {
|
|
46
|
+
const isChildrenString = typeof children === "string";
|
|
47
|
+
const isValidHref = typeof href === "string" && href.trim() !== "";
|
|
48
|
+
const isExternalLink = isExternalLinkProp === true || isChildrenString && typeof isExternalLinkProp === "undefined" && isValidHref && /^https?:\/\//.test(href);
|
|
49
|
+
return isExternalLink;
|
|
50
|
+
};
|
|
51
|
+
const Link = forwardRef((props, ref) => {
|
|
52
|
+
const {
|
|
42
53
|
variant = "default",
|
|
43
54
|
color = "primary",
|
|
44
55
|
children,
|
|
@@ -46,36 +57,44 @@ const Link = forwardRef(
|
|
|
46
57
|
className,
|
|
47
58
|
isActive,
|
|
48
59
|
underlined,
|
|
60
|
+
locale,
|
|
49
61
|
isExternalLink: isExternalLinkProp,
|
|
50
|
-
href,
|
|
51
|
-
...
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
62
|
+
href: hrefProp,
|
|
63
|
+
...otherProps
|
|
64
|
+
} = props;
|
|
65
|
+
const { internationalization } = getConfiguration();
|
|
66
|
+
const isExternalLink = checkIsExternalLink(props);
|
|
67
|
+
const rel = isExternalLink ? "noopener noreferrer nofollow" : void 0;
|
|
68
|
+
const target = isExternalLink ? "_blank" : "_self";
|
|
69
|
+
const hrefLang = locale ? locale === internationalization.defaultLocale ? "x-default" : locale : void 0;
|
|
70
|
+
const href = locale && hrefProp && !isExternalLink ? getLocalizedUrl(hrefProp, locale) : hrefProp;
|
|
71
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
72
|
+
"a",
|
|
73
|
+
{
|
|
74
|
+
href,
|
|
75
|
+
ref,
|
|
76
|
+
hrefLang,
|
|
77
|
+
"aria-label": label,
|
|
78
|
+
rel,
|
|
79
|
+
target,
|
|
80
|
+
"aria-current": isActive ? "page" : void 0,
|
|
81
|
+
className: linkVariants({
|
|
82
|
+
variant,
|
|
83
|
+
color,
|
|
84
|
+
underlined,
|
|
85
|
+
className
|
|
86
|
+
}),
|
|
87
|
+
...otherProps,
|
|
88
|
+
children: [
|
|
89
|
+
children,
|
|
90
|
+
isExternalLink && /* @__PURE__ */ jsxRuntimeExports.jsx(ExternalLink, { className: "ml-2 inline-block size-4" })
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
});
|
|
77
95
|
Link.displayName = "Link";
|
|
78
96
|
export {
|
|
79
|
-
Link
|
|
97
|
+
Link,
|
|
98
|
+
checkIsExternalLink
|
|
80
99
|
};
|
|
81
100
|
//# sourceMappingURL=Link.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.mjs","sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink } from 'lucide-react';\nimport {\n forwardRef,\n type DetailedHTMLProps,\n type AnchorHTMLAttributes,\n} from 'react';\n\nconst linkVariants = cva(\n 'gap-3 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default:\n 'h-auto justify-start text-wrap border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent hover:underline dark:bg-transparent hover:dark:bg-transparent',\n 'invisible-link':\n 'h-auto justify-start text-wrap border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent dark:bg-transparent hover:dark:bg-transparent',\n\n button:\n 'rounded-lg text-text-opposite dark:text-text-opposite-dark min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n 'button-outlined':\n 'rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0 min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n hoverable:\n 'rounded-lg border-none bg-opacity-0 transition hover:bg-opacity-10 aria-[current
|
|
1
|
+
{"version":3,"file":"Link.mjs","sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { getConfiguration, Locales } from '@intlayer/config/client';\nimport { getLocalizedUrl } from '@intlayer/core';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink } from 'lucide-react';\nimport {\n forwardRef,\n type DetailedHTMLProps,\n type AnchorHTMLAttributes,\n} from 'react';\n\nconst linkVariants = cva(\n 'gap-3 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default:\n 'h-auto justify-start text-wrap border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent hover:underline dark:bg-transparent hover:dark:bg-transparent',\n 'invisible-link':\n 'h-auto justify-start text-wrap border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent dark:bg-transparent hover:dark:bg-transparent',\n\n button:\n 'rounded-lg text-text-opposite dark:text-text-opposite-dark min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n 'button-outlined':\n 'rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0 min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n hoverable:\n 'block rounded-lg border-none bg-opacity-0 transition hover:bg-opacity-10 aria-[current]:bg-opacity-5 dark:border-none dark:bg-opacity-0 dark:hover:bg-opacity-10',\n },\n color: {\n primary:\n 'border-primary bg-primary text-primary hover:bg-primary-500 dark:border-primary-dark dark:bg-primary-dark dark:text-primary-dark hover:dark:bg-primary-300',\n secondary:\n 'border-secondary bg-secondary text-secondary hover:bg-secondary-300 dark:border-secondary-dark dark:bg-secondary-dark dark:text-secondary-dark hover:dark:bg-secondary-100',\n destructive:\n 'border-destructive bg-destructive text-destructive hover:bg-destructive-500 dark:border-destructive-dark dark:bg-destructive-dark hover:dark:bg-destructive-200',\n neutral:\n 'border-neutral bg-neutral text-neutral hover:bg-neutral-600 dark:border-neutral-dark dark:bg-neutral-dark dark:text-neutral-dark hover:dark:bg-neutral-400',\n light: 'border-white bg-white text-white hover:bg-neutral-500',\n dark: 'border-neutral-800 bg-neutral-800 text-neutral-800 hover:bg-neutral-900 dark:hover:bg-neutral-700',\n text: 'border-text bg-text text-text hover:opacity-80 dark:border-text-dark dark:bg-text-dark dark:text-text-dark',\n custom: '',\n },\n underlined: {\n default: '',\n true: 'underline',\n false: 'no-underline',\n },\n },\n\n defaultVariants: {\n variant: 'default',\n color: 'primary',\n underlined: 'default',\n },\n }\n);\n\nexport type LinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n> &\n VariantProps<typeof linkVariants> & {\n label: string;\n isExternalLink?: boolean;\n isActive?: boolean;\n locale?: Locales;\n };\n\nexport const checkIsExternalLink = ({\n href,\n children,\n isExternalLink: isExternalLinkProp,\n}: LinkProps): boolean => {\n const isChildrenString = typeof children === 'string';\n const isValidHref = typeof href === 'string' && href.trim() !== '';\n const isExternalLink =\n isExternalLinkProp === true ||\n (isChildrenString &&\n typeof isExternalLinkProp === 'undefined' &&\n isValidHref &&\n /^https?:\\/\\//.test(href));\n\n return isExternalLink;\n};\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>((props, ref) => {\n const {\n variant = 'default',\n color = 'primary',\n children,\n label,\n className,\n isActive,\n underlined,\n locale,\n isExternalLink: isExternalLinkProp,\n href: hrefProp,\n ...otherProps\n } = props;\n const { internationalization } = getConfiguration();\n\n const isExternalLink = checkIsExternalLink(props);\n\n const rel = isExternalLink ? 'noopener noreferrer nofollow' : undefined;\n\n const target = isExternalLink ? '_blank' : '_self';\n\n const hrefLang = locale\n ? locale === internationalization.defaultLocale\n ? 'x-default'\n : locale\n : undefined;\n\n const href =\n locale && hrefProp && !isExternalLink\n ? getLocalizedUrl(hrefProp, locale)\n : hrefProp;\n\n return (\n <a\n href={href}\n ref={ref}\n hrefLang={hrefLang}\n aria-label={label}\n rel={rel}\n target={target}\n aria-current={isActive ? 'page' : undefined}\n className={linkVariants({\n variant,\n color,\n underlined,\n className,\n })}\n {...otherProps}\n >\n {children}\n {isExternalLink && <ExternalLink className=\"ml-2 inline-block size-4\" />}\n </a>\n );\n});\n\nLink.displayName = 'Link';\n"],"names":["jsxs","jsx"],"mappings":";;;;;;AAUA,MAAM,eAAe;AAAA,EACnB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,kBACE;AAAA,QAEF,QACE;AAAA,QACF,mBACE;AAAA,QACF,WACE;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,QACL,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,MACV;AAAA,MACA,YAAY;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IAEX;AAAA,IAEA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,OAAO;AAAA,MACP,YAAY;AAAA,IAAA;AAAA,EACd;AAEJ;AAaO,MAAM,sBAAsB,CAAC;AAAA,EAClC;AAAA,EACA;AAAA,EACA,gBAAgB;AAClB,MAA0B;AAClB,QAAA,mBAAmB,OAAO,aAAa;AAC7C,QAAM,cAAc,OAAO,SAAS,YAAY,KAAK,WAAW;AAC1D,QAAA,iBACJ,uBAAuB,QACtB,oBACC,OAAO,uBAAuB,eAC9B,eACA,eAAe,KAAK,IAAI;AAErB,SAAA;AACT;AAEO,MAAM,OAAO,WAAyC,CAAC,OAAO,QAAQ;AACrE,QAAA;AAAA,IACJ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,GAAG;AAAA,EAAA,IACD;AACE,QAAA,EAAE,qBAAqB,IAAI,iBAAiB;AAE5C,QAAA,iBAAiB,oBAAoB,KAAK;AAE1C,QAAA,MAAM,iBAAiB,iCAAiC;AAExD,QAAA,SAAS,iBAAiB,WAAW;AAE3C,QAAM,WAAW,SACb,WAAW,qBAAqB,gBAC9B,cACA,SACF;AAEE,QAAA,OACJ,UAAU,YAAY,CAAC,iBACnB,gBAAgB,UAAU,MAAM,IAChC;AAGJ,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,gBAAc,WAAW,SAAS;AAAA,MAClC,WAAW,aAAa;AAAA,QACtB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,MACA,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA;AAAA,QACA,kBAAkBC,kCAAAA,IAAC,cAAa,EAAA,WAAU,2BAA2B,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACxE;AAEJ,CAAC;AAED,KAAK,cAAc;"}
|
|
@@ -2,4 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const components_Link_Link = require("./Link.cjs");
|
|
4
4
|
exports.Link = components_Link_Link.Link;
|
|
5
|
+
exports.checkIsExternalLink = components_Link_Link.checkIsExternalLink;
|
|
5
6
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|