diff --git a/client/package.json b/client/package.json index e136da7..4a39c02 100644 --- a/client/package.json +++ b/client/package.json @@ -14,6 +14,8 @@ "format": "prettier --write \"src/**/*.{ts,tsx}\" \".storybook/**/*.{ts,tsx}\"" }, "dependencies": { + "@monaco-editor/react": "^4.7.0", + "highlight.js": "^11.11.1", "i18next": "^26.0.4", "lucide-react": "^1.7.0", "moment": "^2.30.1", diff --git a/client/src/lib/hljs.ts b/client/src/lib/hljs.ts new file mode 100644 index 0000000..d8a1cde --- /dev/null +++ b/client/src/lib/hljs.ts @@ -0,0 +1,12 @@ +import hljs from 'highlight.js/lib/core'; +import javascript from 'highlight.js/lib/languages/javascript'; +import json from 'highlight.js/lib/languages/json'; + +hljs.registerLanguage('javascript', javascript); +hljs.registerLanguage('json', json); + +export default hljs; + +export function escapeHtml(str: string): string { + return str.replace(/&/g, '&').replace(//g, '>'); +} diff --git a/client/src/pages/Page.module.css b/client/src/pages/Page.module.css index d495478..370d20e 100644 --- a/client/src/pages/Page.module.css +++ b/client/src/pages/Page.module.css @@ -196,6 +196,10 @@ max-width: 540px; } +.formCardFull { + max-width: none; +} + .formFields { display: flex; flex-direction: column; diff --git a/client/src/pages/credential/CreateCredentialPage.tsx b/client/src/pages/credential/CreateCredentialPage.tsx index 2e56606..4d6a2e6 100644 --- a/client/src/pages/credential/CreateCredentialPage.tsx +++ b/client/src/pages/credential/CreateCredentialPage.tsx @@ -2,7 +2,7 @@ import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { credentials } from '../../api'; -import { Breadcrumbs, Button, Card, Input, Textarea } from '../../ui'; +import { Breadcrumbs, Button, Card, Input, CodeEditor } from '../../ui'; import styles from '../Page.module.css'; export function CreateCredentialPage() { @@ -58,7 +58,7 @@ export function CreateCredentialPage() { {error &&
{error}
}