@skbkontur/markdown 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/index.d.ts +7 -0
  2. package/index.js +6 -0
  3. package/package.json +1 -1
  4. package/src/Markdown/Files/Files.logic.d.ts +13 -0
  5. package/src/Markdown/Files/Files.logic.js +123 -0
  6. package/src/Markdown/Markdown.creevey.d.ts +1 -0
  7. package/src/Markdown/Markdown.creevey.js +169 -0
  8. package/src/Markdown/Markdown.d.ts +24 -0
  9. package/src/Markdown/Markdown.js +148 -0
  10. package/src/Markdown/Markdown.styled.d.ts +1271 -0
  11. package/src/Markdown/Markdown.styled.js +76 -0
  12. package/src/Markdown/MarkdownActions.d.ts +20 -0
  13. package/src/Markdown/MarkdownActions.js +64 -0
  14. package/src/Markdown/MarkdownEditor.d.ts +16 -0
  15. package/src/Markdown/MarkdownEditor.js +42 -0
  16. package/src/Markdown/MarkdownFormat.d.ts +18 -0
  17. package/src/Markdown/MarkdownFormat.js +19 -0
  18. package/src/Markdown/MarkdownHelpItems.d.ts +30 -0
  19. package/src/Markdown/MarkdownHelpItems.js +243 -0
  20. package/src/Markdown/MarkdownHelpers/MarkdownButton.d.ts +10 -0
  21. package/src/Markdown/MarkdownHelpers/MarkdownButton.js +10 -0
  22. package/src/Markdown/MarkdownHelpers/MarkdownCombination.d.ts +8 -0
  23. package/src/Markdown/MarkdownHelpers/MarkdownCombination.js +15 -0
  24. package/src/Markdown/MarkdownHelpers/MarkdownFormatButton.d.ts +8 -0
  25. package/src/Markdown/MarkdownHelpers/MarkdownFormatButton.js +11 -0
  26. package/src/Markdown/MarkdownHelpers/markdownHelpers.d.ts +10 -0
  27. package/src/Markdown/MarkdownHelpers/markdownHelpers.js +107 -0
  28. package/src/Markdown/MarkdownHelpers/markdownMentionHelpers.d.ts +7 -0
  29. package/src/Markdown/MarkdownHelpers/markdownMentionHelpers.js +44 -0
  30. package/src/Markdown/MarkdownHelpers/markdownTextareaHelpers.d.ts +11 -0
  31. package/src/Markdown/MarkdownHelpers/markdownTextareaHelpers.js +98 -0
  32. package/src/Markdown/MarkdownMention.d.ts +11 -0
  33. package/src/Markdown/MarkdownMention.js +88 -0
  34. package/src/Markdown/constants.d.ts +3 -0
  35. package/src/Markdown/constants.js +3 -0
  36. package/src/Markdown/types.d.ts +39 -0
  37. package/src/Markdown/types.js +5 -0
  38. package/src/Markdown/utils/guid.d.ts +6 -0
  39. package/src/Markdown/utils/guid.js +23 -0
  40. package/src/Markdown/utils/htmlToMd.d.ts +2 -0
  41. package/src/Markdown/utils/htmlToMd.js +5 -0
  42. package/src/Markdown/utils/isMacintosh.d.ts +1 -0
  43. package/src/Markdown/utils/isMacintosh.js +3 -0
  44. package/src/Markdown/utils/requestStatus.d.ts +6 -0
  45. package/src/Markdown/utils/requestStatus.js +7 -0
  46. package/src/Markdown/utils/saveFile.d.ts +1 -0
  47. package/src/Markdown/utils/saveFile.js +9 -0
  48. package/src/MarkdownIcons/AttachLink.d.ts +2 -0
  49. package/src/MarkdownIcons/AttachLink.js +5 -0
  50. package/src/MarkdownIcons/AttachPaperclip.d.ts +2 -0
  51. package/src/MarkdownIcons/AttachPaperclip.js +3 -0
  52. package/src/MarkdownIcons/CheckedList.d.ts +2 -0
  53. package/src/MarkdownIcons/CheckedList.js +8 -0
  54. package/src/MarkdownIcons/Collapse.d.ts +2 -0
  55. package/src/MarkdownIcons/Collapse.js +4 -0
  56. package/src/MarkdownIcons/Expand.d.ts +2 -0
  57. package/src/MarkdownIcons/Expand.js +4 -0
  58. package/src/MarkdownIcons/EyeOpen.d.ts +2 -0
  59. package/src/MarkdownIcons/EyeOpen.js +4 -0
  60. package/src/MarkdownIcons/List.d.ts +2 -0
  61. package/src/MarkdownIcons/List.js +8 -0
  62. package/src/MarkdownIcons/MarkdownIcons.styled.d.ts +1 -0
  63. package/src/MarkdownIcons/MarkdownIcons.styled.js +7 -0
  64. package/src/MarkdownIcons/NumberedList.d.ts +2 -0
  65. package/src/MarkdownIcons/NumberedList.js +6 -0
  66. package/src/MarkdownIcons/Table.d.ts +2 -0
  67. package/src/MarkdownIcons/Table.js +3 -0
  68. package/src/MarkdownIcons/ToolPencil.d.ts +2 -0
  69. package/src/MarkdownIcons/ToolPencil.js +3 -0
  70. package/src/MarkdownViewer/Helpers/MarkdownImage.d.ts +6 -0
  71. package/src/MarkdownViewer/Helpers/MarkdownImage.js +7 -0
  72. package/src/MarkdownViewer/Helpers/MarkdownLink.d.ts +3 -0
  73. package/src/MarkdownViewer/Helpers/MarkdownLink.js +5 -0
  74. package/src/MarkdownViewer/MarkdownViewer.d.ts +12 -0
  75. package/src/MarkdownViewer/MarkdownViewer.js +70 -0
  76. package/src/MarkdownViewer/MarkdownViewer.styles.d.ts +9 -0
  77. package/src/MarkdownViewer/MarkdownViewer.styles.js +16 -0
  78. package/src/MarkdownViewer/index.d.ts +1 -0
  79. package/src/MarkdownViewer/index.js +1 -0
  80. package/src/MarkdownViewer/types.d.ts +7 -0
  81. package/src/MarkdownViewer/types.js +1 -0
  82. package/src/styles/styled-components.d.ts +5 -0
  83. package/src/styles/styled-components.js +4 -0
  84. package/src/styles/theme.d.ts +15 -0
  85. package/src/styles/theme.js +17 -0
  86. package/src/styles/types.d.ts +9 -0
  87. package/src/styles/types.js +1 -0
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export var NumberedList = function () { return (React.createElement("svg", { width: "15", height: "14", viewBox: "0 0 15 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
3
+ React.createElement("path", { d: "M2.71209 0.0472114C2.88778 0.129501 3.00001 0.305997 3.00001 0.500006V5.50001C3.00001 5.77615 2.77615 6.00001 2.50001 6.00001C2.22387 6.00001 2.00001 5.77615 2.00001 5.50001V1.56753L1.3201 2.13412C1.10797 2.3109 0.792684 2.28224 0.615902 2.0701C0.43912 1.85796 0.467782 1.54268 0.67992 1.3659L2.17992 0.115895C2.32896 -0.00830596 2.5364 -0.0350785 2.71209 0.0472114Z", fill: "currentColor" }),
4
+ React.createElement("path", { d: "M6.50001 2.00001C6.22387 2.00001 6.00001 2.22386 6.00001 2.50001C6.00001 2.77615 6.22387 3.00001 6.50001 3.00001H14.5C14.7762 3.00001 15 2.77615 15 2.50001C15 2.22386 14.7762 2.00001 14.5 2.00001H6.50001Z", fill: "currentColor" }),
5
+ React.createElement("path", { d: "M6.50001 10C6.22387 10 6.00001 10.2239 6.00001 10.5C6.00001 10.7761 6.22387 11 6.50001 11H14.5C14.7762 11 15 10.7761 15 10.5C15 10.2239 14.7762 10 14.5 10H6.50001Z", fill: "currentColor" }),
6
+ React.createElement("path", { d: "M1.55634 9.49196C1.68544 9.27177 1.8093 9.15912 1.92143 9.09655C2.03381 9.03383 2.17464 8.99896 2.37504 9.00003C2.5843 9.00114 2.77363 9.07222 2.9049 9.19165C3.02784 9.30349 3.13038 9.48457 3.13038 9.77831V9.93822C3.07661 10.3953 2.72366 10.6219 2.06126 11.0281C1.4712 11.3899 0.625013 11.9159 0.625013 13.0738V13.5C0.625013 13.7761 0.84887 14 1.12501 14H3.75001C4.02615 14 4.25001 13.7761 4.25001 13.5C4.25001 13.2239 4.02615 13 3.75001 13H1.62713C1.65634 12.5028 1.98696 12.2467 2.58403 11.8806C2.61887 11.8592 2.65517 11.8373 2.69263 11.8146C3.23939 11.484 4.03302 11.0042 4.1281 10.0123C4.12962 9.9964 4.13038 9.98047 4.13038 9.96454V9.77831C4.13038 9.22236 3.92303 8.76599 3.57784 8.45195C3.241 8.14551 2.80398 8.0023 2.38036 8.00004C2.05843 7.99833 1.73598 8.05487 1.43413 8.22331C1.13202 8.39189 0.890698 8.65015 0.693683 8.98618C0.554014 9.22439 0.633903 9.53073 0.87212 9.6704C1.11034 9.81007 1.41667 9.73018 1.55634 9.49196Z", fill: "currentColor" }))); };
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const Table: () => JSX.Element;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export var Table = function () { return (React.createElement("svg", { width: "14", height: "10", viewBox: "0 0 14 9", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
3
+ React.createElement("path", { d: "M1 5V9H7M1 5V1H4H7M1 5H13M13 5V1H7M13 5V9H7M7 1V9", stroke: "currentColor", strokeLinecap: "round" }))); };
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const ToolPencil: () => JSX.Element;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export var ToolPencil = function () { return (React.createElement("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
3
+ React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12.4755 0.43885C11.8897 -0.146935 10.94 -0.146934 10.3542 0.438852L0.43934 10.3537C0.158035 10.635 0 11.0165 0 11.4144V13.5001C0 13.7763 0.223858 14.0001 0.5 14.0001H2.58579C2.98361 14.0001 3.36514 13.8421 3.64645 13.5608L13.5613 3.64595C14.1471 3.06017 14.1471 2.11042 13.5613 1.52463L12.4755 0.43885ZM11.0613 1.14596C11.2566 0.950696 11.5731 0.950696 11.7684 1.14596L12.8542 2.23174C13.0495 2.427 13.0495 2.74358 12.8542 2.93885L11.75 4.04305L9.9571 2.25016L11.0613 1.14596ZM9.25 2.95726L1.14645 11.0608C1.05268 11.1546 1 11.2818 1 11.4144V13.0001H2.58579C2.71839 13.0001 2.84557 12.9475 2.93934 12.8537L11.0429 4.75015L9.25 2.95726Z", fill: "currentColor" }))); };
@@ -0,0 +1,6 @@
1
+ import { FC } from 'react';
2
+ interface Props {
3
+ src: string;
4
+ }
5
+ export declare const MarkdownImage: FC<Props>;
6
+ export {};
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { ImgHref } from '../MarkdownViewer.styles';
3
+ export var MarkdownImage = function (_a) {
4
+ var src = _a.src;
5
+ return (React.createElement(ImgHref, { href: src, target: "_blank", rel: "noopener noreferrer" },
6
+ React.createElement("img", { src: src, alt: "" })));
7
+ };
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { MarkdownLinkProps } from '../types';
3
+ export declare const MarkdownLink: ({ href, children, target }: MarkdownLinkProps) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export var MarkdownLink = function (_a) {
3
+ var href = _a.href, children = _a.children, target = _a.target;
4
+ return (React.createElement("a", { href: href, target: target !== null && target !== void 0 ? target : '_blank', rel: "noopener noreferrer" }, children));
5
+ };
@@ -0,0 +1,12 @@
1
+ import { FC } from 'react';
2
+ export interface MarkdownViewerProps {
3
+ /** Метод апи для скачивания файлов */
4
+ downloadFileApi?: (id: string) => Promise<File>;
5
+ /** Url апи для файлов */
6
+ fileApiUrl?: string;
7
+ /** Url для профиля сотрудника */
8
+ profileUrl?: string;
9
+ /** MD-текст */
10
+ source?: string;
11
+ }
12
+ export declare const MarkdownViewer: FC<MarkdownViewerProps>;
@@ -0,0 +1,70 @@
1
+ import { Button, Checkbox } from '@skbkontur/react-ui';
2
+ import React from 'react';
3
+ import ReactMarkdown from 'react-markdown';
4
+ import rehypeRaw from 'rehype-raw';
5
+ import rehypeSanitize from 'rehype-sanitize';
6
+ import remarkBreaks from 'remark-breaks';
7
+ import gfm from 'remark-gfm';
8
+ import { MarkdownImage } from './Helpers/MarkdownImage';
9
+ import { MarkdownLink } from './Helpers/MarkdownLink';
10
+ import { BlockQuote, FileButtonWrapper, getListStyle, ListItem, Paragraph, VisuallyHidden, Wrapper, } from './MarkdownViewer.styles';
11
+ import { useFileLogic } from '../Markdown/Files/Files.logic';
12
+ import { AttachPaperclip } from '../MarkdownIcons/AttachPaperclip';
13
+ import { ThemeProvider } from '../styles/styled-components';
14
+ import { DEFAULT_MARKDOWN_THEME, MarkdownThemeConsumer } from '../styles/theme';
15
+ export var MarkdownViewer = function (_a) {
16
+ var source = _a.source, _b = _a.fileApiUrl, fileApiUrl = _b === void 0 ? '' : _b, _c = _a.profileUrl, profileUrl = _c === void 0 ? '' : _c, downloadFileApi = _a.downloadFileApi;
17
+ var downloadFile = useFileLogic(undefined, downloadFileApi).downloadFile;
18
+ if (!source) {
19
+ return null;
20
+ }
21
+ return (React.createElement(MarkdownThemeConsumer, null, function (theme) { return (React.createElement(ThemeProvider, { theme: theme !== null && theme !== void 0 ? theme : DEFAULT_MARKDOWN_THEME },
22
+ React.createElement(Wrapper, { "aria-label": "\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442" },
23
+ React.createElement(ReactMarkdown, { components: getCustomComponents(), remarkPlugins: [gfm, remarkBreaks], rehypePlugins: [rehypeRaw, rehypeSanitize], linkTarget: "_blank" }, source)))); }));
24
+ function getCustomComponents() {
25
+ return {
26
+ a: renderLink,
27
+ li: renderListItem,
28
+ input: renderInput,
29
+ ul: renderList,
30
+ ol: renderOrderedList,
31
+ blockquote: function (props) { return React.createElement(BlockQuote, null, props.children); },
32
+ p: function (props) { return React.createElement(Paragraph, null, props.children); },
33
+ img: function (props) { var _a; return React.createElement(MarkdownImage, { src: (_a = props.src) !== null && _a !== void 0 ? _a : '' }); },
34
+ };
35
+ }
36
+ function renderListItem(props) {
37
+ var children = props.children;
38
+ if (props.ordered)
39
+ return React.createElement("li", null, children);
40
+ return checkIfChecklistItem(props) ? getCheckListItem(children) : React.createElement("li", null, children);
41
+ }
42
+ function renderLink(props) {
43
+ var _a = props.href, href = _a === void 0 ? '' : _a, children = props.children;
44
+ if (fileApiUrl && href.startsWith(fileApiUrl)) {
45
+ var id_1 = href.replace(fileApiUrl, '');
46
+ return (React.createElement(FileButtonWrapper, null,
47
+ React.createElement(Button, { use: "link", icon: React.createElement(AttachPaperclip, null), onClick: function () { return downloadFile(id_1); } },
48
+ children,
49
+ React.createElement(VisuallyHidden, null,
50
+ "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0444\u0430\u0439\u043B $",
51
+ children))));
52
+ }
53
+ return href.startsWith('@') ? (React.createElement(MarkdownLink, { href: profileUrl + href.replace('@', '/') }, children)) : (React.createElement(MarkdownLink, { href: href }, children));
54
+ }
55
+ function checkIfChecklistItem(props) {
56
+ return props.checked !== null || props.className === 'task-list-item';
57
+ }
58
+ function getCheckListItem(children) {
59
+ return React.createElement(ListItem, null, children);
60
+ }
61
+ function renderInput(props) {
62
+ return React.createElement(Checkbox, { checked: props.checked }, props.children);
63
+ }
64
+ function renderList(props) {
65
+ return React.createElement("ul", { style: getListStyle(!!props.depth) }, props.children);
66
+ }
67
+ function renderOrderedList(props) {
68
+ return React.createElement("ol", { style: getListStyle(!!(props === null || props === void 0 ? void 0 : props.depth)) }, props.children);
69
+ }
70
+ };
@@ -0,0 +1,9 @@
1
+ import { CSSProperties } from 'react';
2
+ export declare const Wrapper: import("styled-components").StyledComponent<"div", import("../..").MarkdownTheme, {}, never>;
3
+ export declare const ListItem: import("styled-components").StyledComponent<"li", import("../..").MarkdownTheme, {}, never>;
4
+ export declare const Paragraph: import("styled-components").StyledComponent<"p", import("../..").MarkdownTheme, {}, never>;
5
+ export declare const BlockQuote: import("styled-components").StyledComponent<"blockquote", import("../..").MarkdownTheme, {}, never>;
6
+ export declare const FileButtonWrapper: import("styled-components").StyledComponent<"div", import("../..").MarkdownTheme, {}, never>;
7
+ export declare const ImgHref: import("styled-components").StyledComponent<"a", import("../..").MarkdownTheme, {}, never>;
8
+ export declare function getListStyle(depth: boolean): CSSProperties;
9
+ export declare const VisuallyHidden: import("styled-components").StyledComponent<"span", import("../..").MarkdownTheme, {}, never>;
@@ -0,0 +1,16 @@
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ import styled from '../styles/styled-components';
6
+ export var Wrapper = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n overflow-wrap: break-word;\n word-wrap: break-word;\n\n word-break: break-word;\n\n p,\n table,\n blockquote {\n margin-bottom: 16px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ul,\n ol,\n li {\n p {\n margin: 0;\n }\n }\n\n h1,\n h2,\n h3,\n h4,\n h5 {\n margin-bottom: 8px;\n }\n\n img {\n max-width: 100%;\n }\n\n button {\n text-align: left;\n color: ", ";\n }\n\n table {\n background: transparent;\n }\n"], ["\n overflow-wrap: break-word;\n word-wrap: break-word;\n\n word-break: break-word;\n\n p,\n table,\n blockquote {\n margin-bottom: 16px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ul,\n ol,\n li {\n p {\n margin: 0;\n }\n }\n\n h1,\n h2,\n h3,\n h4,\n h5 {\n margin-bottom: 8px;\n }\n\n img {\n max-width: 100%;\n }\n\n button {\n text-align: left;\n color: ", ";\n }\n\n table {\n background: transparent;\n }\n"])), function (p) { var _a, _b; return (_b = (_a = p.theme) === null || _a === void 0 ? void 0 : _a.colors) === null || _b === void 0 ? void 0 : _b.link; });
7
+ export var ListItem = styled.li(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n list-style: none;\n margin-inline-start: -20px;\n"], ["\n list-style: none;\n margin-inline-start: -20px;\n"])));
8
+ export var Paragraph = styled.p(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n margin: 0;\n"], ["\n margin: 0;\n"])));
9
+ export var BlockQuote = styled.blockquote(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n margin: 0;\n padding-left: 8px;\n border-left: 4px solid ", ";\n"], ["\n margin: 0;\n padding-left: 8px;\n border-left: 4px solid ", ";\n"])), function (p) { var _a, _b; return (_b = (_a = p.theme) === null || _a === void 0 ? void 0 : _a.colors) === null || _b === void 0 ? void 0 : _b.grayDefault; });
10
+ export var FileButtonWrapper = styled.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n display: flex;\n"], ["\n display: flex;\n"])));
11
+ export var ImgHref = styled.a(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n text-decoration: none !important;\n border: none !important;\n"], ["\n text-decoration: none !important;\n border: none !important;\n"])));
12
+ export function getListStyle(depth) {
13
+ return depth ? { marginTop: 4 } : { marginBottom: 16 };
14
+ }
15
+ export var VisuallyHidden = styled.span(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n"], ["\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n"])));
16
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
@@ -0,0 +1 @@
1
+ export { MarkdownViewer } from './MarkdownViewer';
@@ -0,0 +1 @@
1
+ export { MarkdownViewer } from './MarkdownViewer';
@@ -0,0 +1,7 @@
1
+ import { AnchorHTMLAttributes, InputHTMLAttributes, PropsWithChildren } from 'react';
2
+ import { LiProps, SpecialComponents } from 'react-markdown/lib/ast-to-react';
3
+ import { NormalComponents } from 'react-markdown/lib/complex-types';
4
+ export type MarkdownLinkProps = PropsWithChildren<AnchorHTMLAttributes<HTMLAnchorElement>>;
5
+ export type MarkdownInputProps = PropsWithChildren<InputHTMLAttributes<HTMLInputElement>>;
6
+ export type MarkdownLiProps = PropsWithChildren<LiProps>;
7
+ export type CustomComponentsProps = Partial<Omit<NormalComponents, keyof SpecialComponents> & SpecialComponents> | undefined;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import * as styledComponents from 'styled-components';
2
+ import { MarkdownTheme } from './theme';
3
+ declare const styled: styledComponents.ThemedStyledInterface<MarkdownTheme>, css: styledComponents.ThemedCssFunction<MarkdownTheme>, ThemeProvider: styledComponents.BaseThemeProviderComponent<MarkdownTheme, MarkdownTheme>, createGlobalStyle: <P extends object = {}>(first: TemplateStringsArray | styledComponents.CSSObject | styledComponents.InterpolationFunction<styledComponents.ThemedStyledProps<P, MarkdownTheme>>, ...interpolations: styledComponents.Interpolation<styledComponents.ThemedStyledProps<P, MarkdownTheme>>[]) => styledComponents.GlobalStyleComponent<P, MarkdownTheme>, useTheme: () => MarkdownTheme;
4
+ export { css, ThemeProvider, useTheme, createGlobalStyle };
5
+ export default styled;
@@ -0,0 +1,4 @@
1
+ import * as styledComponents from 'styled-components';
2
+ var _a = styledComponents, styled = _a.default, css = _a.css, ThemeProvider = _a.ThemeProvider, createGlobalStyle = _a.createGlobalStyle, useTheme = _a.useTheme;
3
+ export { css, ThemeProvider, useTheme, createGlobalStyle };
4
+ export default styled;
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import { THEME_2022 } from '@skbkontur/react-ui';
3
+ import { ColorScheme, ThemeMode } from './types';
4
+ export interface MarkdownTheme {
5
+ colors: ColorScheme;
6
+ elementsFontSize: string;
7
+ elementsLineHeight: string;
8
+ themeMode: ThemeMode;
9
+ droppablePlaceholderBgImage?: string;
10
+ reactUiTheme?: typeof THEME_2022;
11
+ }
12
+ export declare const DEFAULT_MARKDOWN_THEME: MarkdownTheme;
13
+ export declare const MarkdownThemeContext: import("react").Context<MarkdownTheme>;
14
+ export declare const MarkdownThemeProvider: import("react").Provider<MarkdownTheme>;
15
+ export declare const MarkdownThemeConsumer: import("react").Consumer<MarkdownTheme>;
@@ -0,0 +1,17 @@
1
+ import { createContext } from 'react';
2
+ export var DEFAULT_MARKDOWN_THEME = {
3
+ colors: {
4
+ white: '#fff',
5
+ brand: '#e76f57',
6
+ grayDefault: '#858585',
7
+ disabledButton: '#adadad',
8
+ panelBg: '#d6d6d6',
9
+ link: '#51adff',
10
+ },
11
+ elementsFontSize: '16px',
12
+ elementsLineHeight: '24px',
13
+ themeMode: 'light',
14
+ };
15
+ export var MarkdownThemeContext = createContext(DEFAULT_MARKDOWN_THEME);
16
+ export var MarkdownThemeProvider = MarkdownThemeContext.Provider;
17
+ export var MarkdownThemeConsumer = MarkdownThemeContext.Consumer;
@@ -0,0 +1,9 @@
1
+ export interface ColorScheme {
2
+ brand: string;
3
+ disabledButton: string;
4
+ grayDefault: string;
5
+ link: string;
6
+ panelBg: string;
7
+ white: string;
8
+ }
9
+ export type ThemeMode = 'dark' | 'light';
@@ -0,0 +1 @@
1
+ export {};