@mantine/code-highlight 7.0.0-alpha.7 → 7.0.0-alpha.9
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/cjs/CodeHighlight.js +31 -103
- package/cjs/CodeHighlight.js.map +1 -1
- package/cjs/CodeHighlight.module.css.js +0 -1
- package/cjs/CodeHighlight.module.css.js.map +1 -1
- package/cjs/CodeHighlight.theme.module.css.js +0 -1
- package/cjs/CodeHighlight.theme.module.css.js.map +1 -1
- package/cjs/CodeHighlightTabs.js +60 -167
- package/cjs/CodeHighlightTabs.js.map +1 -1
- package/cjs/CopyIcon.js +9 -55
- package/cjs/CopyIcon.js.map +1 -1
- package/cjs/ExpandIcon.js +15 -68
- package/cjs/ExpandIcon.js.map +1 -1
- package/cjs/FileIcon.js +7 -8
- package/cjs/FileIcon.js.map +1 -1
- package/cjs/InlineCodeHighlight.js +19 -55
- package/cjs/InlineCodeHighlight.js.map +1 -1
- package/cjs/src/mantine-code-highlight/src/CodeHighlight.js +55 -0
- package/cjs/src/mantine-code-highlight/src/CodeHighlight.js.map +1 -0
- package/cjs/src/mantine-code-highlight/src/CodeHighlight.module.css.js +8 -0
- package/cjs/src/mantine-code-highlight/src/CodeHighlight.module.css.js.map +1 -0
- package/cjs/src/mantine-code-highlight/src/CodeHighlight.theme.module.css.js +8 -0
- package/cjs/src/mantine-code-highlight/src/CodeHighlight.theme.module.css.js.map +1 -0
- package/cjs/src/mantine-code-highlight/src/CodeHighlightTabs.js +90 -0
- package/cjs/src/mantine-code-highlight/src/CodeHighlightTabs.js.map +1 -0
- package/cjs/src/mantine-code-highlight/src/CopyIcon.js +25 -0
- package/cjs/src/mantine-code-highlight/src/CopyIcon.js.map +1 -0
- package/cjs/src/mantine-code-highlight/src/ExpandIcon.js +31 -0
- package/cjs/src/mantine-code-highlight/src/ExpandIcon.js.map +1 -0
- package/cjs/src/mantine-code-highlight/src/FileIcon.js +22 -0
- package/cjs/src/mantine-code-highlight/src/FileIcon.js.map +1 -0
- package/cjs/src/mantine-code-highlight/src/InlineCodeHighlight.js +43 -0
- package/cjs/src/mantine-code-highlight/src/InlineCodeHighlight.js.map +1 -0
- package/cjs/src/mantine-code-highlight/src/index.js +14 -0
- package/cjs/src/mantine-code-highlight/src/index.js.map +1 -0
- package/cjs/src/mantine-code-highlight/src/use-highlight.js +29 -0
- package/cjs/src/mantine-code-highlight/src/use-highlight.js.map +1 -0
- package/cjs/use-highlight.js +13 -12
- package/cjs/use-highlight.js.map +1 -1
- package/esm/CodeHighlight.js +31 -103
- package/esm/CodeHighlight.js.map +1 -1
- package/esm/CodeHighlight.module.css.js +0 -1
- package/esm/CodeHighlight.module.css.js.map +1 -1
- package/esm/CodeHighlight.theme.module.css.js +0 -1
- package/esm/CodeHighlight.theme.module.css.js.map +1 -1
- package/esm/CodeHighlightTabs.js +60 -167
- package/esm/CodeHighlightTabs.js.map +1 -1
- package/esm/CopyIcon.js +9 -55
- package/esm/CopyIcon.js.map +1 -1
- package/esm/ExpandIcon.js +15 -68
- package/esm/ExpandIcon.js.map +1 -1
- package/esm/FileIcon.js +7 -8
- package/esm/FileIcon.js.map +1 -1
- package/esm/InlineCodeHighlight.js +19 -55
- package/esm/InlineCodeHighlight.js.map +1 -1
- package/esm/src/mantine-code-highlight/src/CodeHighlight.js +46 -0
- package/esm/src/mantine-code-highlight/src/CodeHighlight.js.map +1 -0
- package/esm/src/mantine-code-highlight/src/CodeHighlight.module.css.js +4 -0
- package/esm/src/mantine-code-highlight/src/CodeHighlight.module.css.js.map +1 -0
- package/esm/src/mantine-code-highlight/src/CodeHighlight.theme.module.css.js +4 -0
- package/esm/src/mantine-code-highlight/src/CodeHighlight.theme.module.css.js.map +1 -0
- package/esm/src/mantine-code-highlight/src/CodeHighlightTabs.js +80 -0
- package/esm/src/mantine-code-highlight/src/CodeHighlightTabs.js.map +1 -0
- package/esm/src/mantine-code-highlight/src/CopyIcon.js +17 -0
- package/esm/src/mantine-code-highlight/src/CopyIcon.js.map +1 -0
- package/esm/src/mantine-code-highlight/src/ExpandIcon.js +23 -0
- package/esm/src/mantine-code-highlight/src/ExpandIcon.js.map +1 -0
- package/esm/src/mantine-code-highlight/src/FileIcon.js +14 -0
- package/esm/src/mantine-code-highlight/src/FileIcon.js.map +1 -0
- package/esm/src/mantine-code-highlight/src/InlineCodeHighlight.js +33 -0
- package/esm/src/mantine-code-highlight/src/InlineCodeHighlight.js.map +1 -0
- package/esm/src/mantine-code-highlight/src/index.js +4 -0
- package/esm/src/mantine-code-highlight/src/index.js.map +1 -0
- package/esm/src/mantine-code-highlight/src/use-highlight.js +21 -0
- package/esm/src/mantine-code-highlight/src/use-highlight.js.map +1 -0
- package/esm/use-highlight.js +13 -12
- package/esm/use-highlight.js.map +1 -1
- package/package.json +16 -8
- package/tsconfig.build.tsbuildinfo +1 -1
- package/styles.css +0 -327
package/esm/CodeHighlightTabs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { __rest } from 'tslib';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import hljs from 'highlight.js';
|
|
4
4
|
import cx from 'clsx';
|
|
@@ -10,178 +10,71 @@ import { ExpandIcon } from './ExpandIcon.js';
|
|
|
10
10
|
import _classes from './CodeHighlight.module.css.js';
|
|
11
11
|
import themeClasses from './CodeHighlight.theme.module.css.js';
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
var __defProps = Object.defineProperties;
|
|
15
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
16
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
17
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
18
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
19
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
20
|
-
var __spreadValues = (a, b) => {
|
|
21
|
-
for (var prop in b || (b = {}))
|
|
22
|
-
if (__hasOwnProp.call(b, prop))
|
|
23
|
-
__defNormalProp(a, prop, b[prop]);
|
|
24
|
-
if (__getOwnPropSymbols)
|
|
25
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
26
|
-
if (__propIsEnum.call(b, prop))
|
|
27
|
-
__defNormalProp(a, prop, b[prop]);
|
|
28
|
-
}
|
|
29
|
-
return a;
|
|
30
|
-
};
|
|
31
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
32
|
-
var __objRest = (source, exclude) => {
|
|
33
|
-
var target = {};
|
|
34
|
-
for (var prop in source)
|
|
35
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
36
|
-
target[prop] = source[prop];
|
|
37
|
-
if (source != null && __getOwnPropSymbols)
|
|
38
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
39
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
40
|
-
target[prop] = source[prop];
|
|
41
|
-
}
|
|
42
|
-
return target;
|
|
43
|
-
};
|
|
44
|
-
const classes = __spreadProps(__spreadValues({}, _classes), { root: cx(_classes.root, themeClasses.theme) });
|
|
13
|
+
const classes = Object.assign(Object.assign({}, _classes), { root: cx(_classes.root, themeClasses.theme) });
|
|
45
14
|
const defaultProps = {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
15
|
+
withHeader: true,
|
|
16
|
+
copyLabel: 'Copy code',
|
|
17
|
+
copiedLabel: 'Copied',
|
|
18
|
+
maxCollapsedHeight: rem('8rem'),
|
|
19
|
+
expandCodeLabel: 'Expand code',
|
|
20
|
+
collapseCodeLabel: 'Collapse code',
|
|
52
21
|
};
|
|
53
22
|
const varsResolver = createVarsResolver((_, { maxCollapsedHeight }) => ({
|
|
54
|
-
|
|
23
|
+
root: { '--ch-max-collapsed-height': rem(maxCollapsedHeight) },
|
|
55
24
|
}));
|
|
56
25
|
const CodeHighlightTabs = factory((_props, ref) => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
"
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
props,
|
|
108
|
-
classes,
|
|
109
|
-
className,
|
|
110
|
-
style,
|
|
111
|
-
classNames,
|
|
112
|
-
styles,
|
|
113
|
-
unstyled,
|
|
114
|
-
vars,
|
|
115
|
-
varsResolver
|
|
116
|
-
});
|
|
117
|
-
const [value, setValue] = useUncontrolled({
|
|
118
|
-
defaultValue: defaultActiveTab,
|
|
119
|
-
value: activeTab,
|
|
120
|
-
finalValue: 0,
|
|
121
|
-
onChange: onTabChange
|
|
122
|
-
});
|
|
123
|
-
const [_expanded, setExpanded] = useUncontrolled({
|
|
124
|
-
defaultValue: defaultExpanded,
|
|
125
|
-
value: expanded,
|
|
126
|
-
finalValue: true,
|
|
127
|
-
onChange: onExpandedChange
|
|
128
|
-
});
|
|
129
|
-
const nodes = Array.isArray(code) ? code : [code];
|
|
130
|
-
const currentCode = nodes[value];
|
|
131
|
-
const highlighted = hljs.highlight(currentCode.code.trim(), {
|
|
132
|
-
language: currentCode.language
|
|
133
|
-
}).value;
|
|
134
|
-
const files = nodes.map((node, index) => /* @__PURE__ */ React.createElement(UnstyledButton, __spreadProps(__spreadValues({}, getStyles("file")), {
|
|
135
|
-
key: node.fileName,
|
|
136
|
-
mod: { active: index === value },
|
|
137
|
-
onClick: () => setValue(index)
|
|
138
|
-
}), /* @__PURE__ */ React.createElement(FileIcon, {
|
|
139
|
-
fileIcon: node.icon,
|
|
140
|
-
getFileIcon,
|
|
141
|
-
fileName: node.fileName
|
|
142
|
-
}), /* @__PURE__ */ React.createElement("span", null, node.fileName)));
|
|
143
|
-
return /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, getStyles("root")), {
|
|
144
|
-
ref
|
|
145
|
-
}), others), {
|
|
146
|
-
dir: "ltr"
|
|
147
|
-
}), withHeader && /* @__PURE__ */ React.createElement("div", __spreadValues({}, getStyles("header")), /* @__PURE__ */ React.createElement(ScrollArea, {
|
|
148
|
-
type: "never",
|
|
149
|
-
dir: "ltr",
|
|
150
|
-
offsetScrollbars: false
|
|
151
|
-
}, /* @__PURE__ */ React.createElement("div", __spreadValues({}, getStyles("files")), files)), /* @__PURE__ */ React.createElement("div", __spreadValues({}, getStyles("controls")), withExpandButton && /* @__PURE__ */ React.createElement(Tooltip, {
|
|
152
|
-
label: _expanded ? collapseCodeLabel : expandCodeLabel,
|
|
153
|
-
fz: "sm",
|
|
154
|
-
position: "left"
|
|
155
|
-
}, /* @__PURE__ */ React.createElement(ActionIcon, __spreadValues({
|
|
156
|
-
onClick: () => setExpanded(!_expanded),
|
|
157
|
-
variant: "none"
|
|
158
|
-
}, getStyles("control")), /* @__PURE__ */ React.createElement(ExpandIcon, {
|
|
159
|
-
expanded: _expanded
|
|
160
|
-
}))), /* @__PURE__ */ React.createElement(CopyButton, {
|
|
161
|
-
value: currentCode.code.trim()
|
|
162
|
-
}, ({ copied, copy }) => /* @__PURE__ */ React.createElement(Tooltip, {
|
|
163
|
-
label: copied ? copiedLabel : copyLabel,
|
|
164
|
-
fz: "sm",
|
|
165
|
-
position: "left"
|
|
166
|
-
}, /* @__PURE__ */ React.createElement(ActionIcon, __spreadValues({
|
|
167
|
-
onClick: copy,
|
|
168
|
-
variant: "none"
|
|
169
|
-
}, getStyles("control")), /* @__PURE__ */ React.createElement(CopyIcon, {
|
|
170
|
-
copied
|
|
171
|
-
})))))), /* @__PURE__ */ React.createElement(ScrollArea, {
|
|
172
|
-
type: "auto",
|
|
173
|
-
dir: "ltr",
|
|
174
|
-
offsetScrollbars: false
|
|
175
|
-
}, /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues({}, getStyles("codeWrapper")), {
|
|
176
|
-
mod: { expanded: _expanded }
|
|
177
|
-
}), /* @__PURE__ */ React.createElement("pre", __spreadValues({}, getStyles("pre")), /* @__PURE__ */ React.createElement("code", __spreadProps(__spreadValues({}, getStyles("code")), {
|
|
178
|
-
dangerouslySetInnerHTML: { __html: highlighted }
|
|
179
|
-
}))))), /* @__PURE__ */ React.createElement(UnstyledButton, __spreadProps(__spreadValues({}, getStyles("showCodeButton")), {
|
|
180
|
-
mod: { hidden: _expanded },
|
|
181
|
-
onClick: () => setExpanded(true)
|
|
182
|
-
}), "Expand code"));
|
|
26
|
+
const props = useProps('CodeHighlightTabs', defaultProps, _props);
|
|
27
|
+
const { classNames, className, style, styles, unstyled, vars, children, code, defaultActiveTab, activeTab, onTabChange, withHeader, copiedLabel, copyLabel, getFileIcon, maxCollapsedHeight, expanded, defaultExpanded, onExpandedChange, expandCodeLabel, collapseCodeLabel, withExpandButton } = props, others = __rest(props, ["classNames", "className", "style", "styles", "unstyled", "vars", "children", "code", "defaultActiveTab", "activeTab", "onTabChange", "withHeader", "copiedLabel", "copyLabel", "getFileIcon", "maxCollapsedHeight", "expanded", "defaultExpanded", "onExpandedChange", "expandCodeLabel", "collapseCodeLabel", "withExpandButton"]);
|
|
28
|
+
const getStyles = useStyles({
|
|
29
|
+
name: 'CodeHighlightTabs',
|
|
30
|
+
props,
|
|
31
|
+
classes,
|
|
32
|
+
className,
|
|
33
|
+
style,
|
|
34
|
+
classNames,
|
|
35
|
+
styles,
|
|
36
|
+
unstyled,
|
|
37
|
+
vars,
|
|
38
|
+
varsResolver,
|
|
39
|
+
});
|
|
40
|
+
const [value, setValue] = useUncontrolled({
|
|
41
|
+
defaultValue: defaultActiveTab,
|
|
42
|
+
value: activeTab,
|
|
43
|
+
finalValue: 0,
|
|
44
|
+
onChange: onTabChange,
|
|
45
|
+
});
|
|
46
|
+
const [_expanded, setExpanded] = useUncontrolled({
|
|
47
|
+
defaultValue: defaultExpanded,
|
|
48
|
+
value: expanded,
|
|
49
|
+
finalValue: true,
|
|
50
|
+
onChange: onExpandedChange,
|
|
51
|
+
});
|
|
52
|
+
const nodes = Array.isArray(code) ? code : [code];
|
|
53
|
+
const currentCode = nodes[value];
|
|
54
|
+
const highlighted = hljs.highlight(currentCode.code.trim(), {
|
|
55
|
+
language: currentCode.language,
|
|
56
|
+
}).value;
|
|
57
|
+
const files = nodes.map((node, index) => (React.createElement(UnstyledButton, Object.assign({}, getStyles('file'), { key: node.fileName, mod: { active: index === value }, onClick: () => setValue(index) }),
|
|
58
|
+
React.createElement(FileIcon, { fileIcon: node.icon, getFileIcon: getFileIcon, fileName: node.fileName }),
|
|
59
|
+
React.createElement("span", null, node.fileName))));
|
|
60
|
+
return (React.createElement(Box, Object.assign({}, getStyles('root'), { ref: ref }, others, { dir: "ltr" }),
|
|
61
|
+
withHeader && (React.createElement("div", Object.assign({}, getStyles('header')),
|
|
62
|
+
React.createElement(ScrollArea, { type: "never", dir: "ltr", offsetScrollbars: false },
|
|
63
|
+
React.createElement("div", Object.assign({}, getStyles('files')), files)),
|
|
64
|
+
React.createElement("div", Object.assign({}, getStyles('controls')),
|
|
65
|
+
withExpandButton && (React.createElement(Tooltip, { label: _expanded ? collapseCodeLabel : expandCodeLabel, fz: "sm", position: "left" },
|
|
66
|
+
React.createElement(ActionIcon, Object.assign({ onClick: () => setExpanded(!_expanded), variant: "none" }, getStyles('control')),
|
|
67
|
+
React.createElement(ExpandIcon, { expanded: _expanded })))),
|
|
68
|
+
React.createElement(CopyButton, { value: currentCode.code.trim() }, ({ copied, copy }) => (React.createElement(Tooltip, { label: copied ? copiedLabel : copyLabel, fz: "sm", position: "left" },
|
|
69
|
+
React.createElement(ActionIcon, Object.assign({ onClick: copy, variant: "none" }, getStyles('control')),
|
|
70
|
+
React.createElement(CopyIcon, { copied: copied })))))))),
|
|
71
|
+
React.createElement(ScrollArea, { type: "auto", dir: "ltr", offsetScrollbars: false },
|
|
72
|
+
React.createElement(Box, Object.assign({}, getStyles('codeWrapper'), { mod: { expanded: _expanded } }),
|
|
73
|
+
React.createElement("pre", Object.assign({}, getStyles('pre')),
|
|
74
|
+
React.createElement("code", Object.assign({}, getStyles('code'), { dangerouslySetInnerHTML: { __html: highlighted } }))))),
|
|
75
|
+
React.createElement(UnstyledButton, Object.assign({}, getStyles('showCodeButton'), { mod: { hidden: _expanded }, onClick: () => setExpanded(true) }), "Expand code")));
|
|
183
76
|
});
|
|
184
|
-
CodeHighlightTabs.displayName =
|
|
77
|
+
CodeHighlightTabs.displayName = '@mantine/core/CodeHighlightTabs';
|
|
185
78
|
|
|
186
79
|
export { CodeHighlightTabs };
|
|
187
80
|
//# sourceMappingURL=CodeHighlightTabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeHighlightTabs.js","sources":["../src/CodeHighlightTabs.tsx"],"sourcesContent":["import React from 'react';\nimport hljs from 'highlight.js';\nimport cx from 'clsx';\nimport { useUncontrolled } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n CopyButton,\n Tooltip,\n ActionIcon,\n UnstyledButton,\n ScrollArea,\n createVarsResolver,\n rem,\n Factory,\n} from '@mantine/core';\nimport { CopyIcon } from './CopyIcon';\nimport { FileIcon } from './FileIcon';\nimport { ExpandIcon } from './ExpandIcon';\nimport _classes from './CodeHighlight.module.css';\nimport themeClasses from './CodeHighlight.theme.module.css';\n\nconst classes = { ..._classes, root: cx(_classes.root, themeClasses.theme) };\n\nexport type CodeHighlightTabsStylesNames =\n | 'root'\n | 'code'\n | 'codeWrapper'\n | 'showCodeButton'\n | 'pre'\n | 'controls'\n | 'control'\n | 'header'\n | 'file'\n | 'files';\n\nexport type CodeHighlightTabsVariant = string;\nexport type CodeHighlightTabsCssVariables = {\n root: '--ch-max-collapsed-height';\n};\n\nexport interface CodeHighlightTabsCode {\n language?: string;\n code: string;\n fileName?: string;\n icon?: React.ReactNode;\n}\n\nexport interface CodeHighlightTabsProps\n extends BoxProps,\n StylesApiProps<CodeHighlightTabsFactory>,\n ElementProps<'div'> {\n /** Code to highlight with meta data (file name and icon) */\n code: CodeHighlightTabsCode | CodeHighlightTabsCode[];\n\n /** Default active tab index */\n defaultActiveTab?: number;\n\n /** Index of controlled active tab state */\n activeTab?: number;\n\n /** Called when tab changes */\n onTabChange?(tab: number): void;\n\n /** Determines whether header with file names and copy button should be rendered, `true` by default */\n withHeader?: boolean;\n\n /** Copy tooltip label, `'Copy code'` by default */\n copyLabel?: string;\n\n /** Copied tooltip label, `'Copied'` by default */\n copiedLabel?: string;\n\n /** Function that returns icon based on file name */\n getFileIcon?(fileName: string): React.ReactNode;\n\n /** `max-height` of code in collapsed state */\n maxCollapsedHeight?: React.CSSProperties['maxHeight'];\n\n /** Controlled expanded state */\n expanded?: boolean;\n\n /** Uncontrolled expanded state initial value */\n defaultExpanded?: boolean;\n\n /** Called when expanded state changes */\n onExpandedChange?(expanded: boolean): void;\n\n /** Expand button label and tooltip, `'Expand code'` by default */\n expandCodeLabel?: string;\n\n /** Collapse button label and tooltip, `'Collapse code'` by default */\n collapseCodeLabel?: string;\n\n /** Determines whether to show the expand button, `false` by default */\n withExpandButton?: boolean;\n}\n\nexport type CodeHighlightTabsFactory = Factory<{\n props: CodeHighlightTabsProps;\n ref: HTMLDivElement;\n stylesNames: CodeHighlightTabsStylesNames;\n}>;\n\nconst defaultProps: Partial<CodeHighlightTabsProps> = {\n withHeader: true,\n copyLabel: 'Copy code',\n copiedLabel: 'Copied',\n maxCollapsedHeight: rem('8rem'),\n expandCodeLabel: 'Expand code',\n collapseCodeLabel: 'Collapse code',\n};\n\nconst varsResolver = createVarsResolver<CodeHighlightTabsFactory>((_, { maxCollapsedHeight }) => ({\n root: { '--ch-max-collapsed-height': rem(maxCollapsedHeight) },\n}));\n\nexport const CodeHighlightTabs = factory<CodeHighlightTabsFactory>((_props, ref) => {\n const props = useProps('CodeHighlightTabs', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n code,\n defaultActiveTab,\n activeTab,\n onTabChange,\n withHeader,\n copiedLabel,\n copyLabel,\n getFileIcon,\n maxCollapsedHeight,\n expanded,\n defaultExpanded,\n onExpandedChange,\n expandCodeLabel,\n collapseCodeLabel,\n withExpandButton,\n ...others\n } = props;\n\n const getStyles = useStyles<CodeHighlightTabsFactory>({\n name: 'CodeHighlightTabs',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const [value, setValue] = useUncontrolled({\n defaultValue: defaultActiveTab,\n value: activeTab,\n finalValue: 0,\n onChange: onTabChange,\n });\n\n const [_expanded, setExpanded] = useUncontrolled({\n defaultValue: defaultExpanded,\n value: expanded,\n finalValue: true,\n onChange: onExpandedChange,\n });\n\n const nodes = Array.isArray(code) ? code : [code];\n const currentCode = nodes[value];\n\n const highlighted = hljs.highlight(currentCode.code.trim(), {\n language: currentCode.language!,\n }).value;\n\n const files = nodes.map((node, index) => (\n <UnstyledButton\n {...getStyles('file')}\n key={node.fileName}\n mod={{ active: index === value }}\n onClick={() => setValue(index)}\n >\n <FileIcon fileIcon={node.icon} getFileIcon={getFileIcon} fileName={node.fileName} />\n <span>{node.fileName}</span>\n </UnstyledButton>\n ));\n\n return (\n <Box {...getStyles('root')} ref={ref} {...others} dir=\"ltr\">\n {withHeader && (\n <div {...getStyles('header')}>\n <ScrollArea type=\"never\" dir=\"ltr\" offsetScrollbars={false}>\n <div {...getStyles('files')}>{files}</div>\n </ScrollArea>\n <div {...getStyles('controls')}>\n {withExpandButton && (\n <Tooltip\n label={_expanded ? collapseCodeLabel : expandCodeLabel}\n fz=\"sm\"\n position=\"left\"\n >\n <ActionIcon\n onClick={() => setExpanded(!_expanded)}\n variant=\"none\"\n {...getStyles('control')}\n >\n <ExpandIcon expanded={_expanded} />\n </ActionIcon>\n </Tooltip>\n )}\n\n <CopyButton value={currentCode.code.trim()}>\n {({ copied, copy }) => (\n <Tooltip label={copied ? copiedLabel : copyLabel} fz=\"sm\" position=\"left\">\n <ActionIcon onClick={copy} variant=\"none\" {...getStyles('control')}>\n <CopyIcon copied={copied} />\n </ActionIcon>\n </Tooltip>\n )}\n </CopyButton>\n </div>\n </div>\n )}\n\n <ScrollArea type=\"auto\" dir=\"ltr\" offsetScrollbars={false}>\n <Box {...getStyles('codeWrapper')} mod={{ expanded: _expanded }}>\n <pre {...getStyles('pre')}>\n <code {...getStyles('code')} dangerouslySetInnerHTML={{ __html: highlighted }} />\n </pre>\n </Box>\n </ScrollArea>\n <UnstyledButton\n {...getStyles('showCodeButton')}\n mod={{ hidden: _expanded }}\n onClick={() => setExpanded(true)}\n >\n Expand code\n </UnstyledButton>\n </Box>\n );\n});\n\nCodeHighlightTabs.displayName = '@mantine/core/CodeHighlightTabs';\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAuBF,MAAM,OAAO,GAAG,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7G,MAAM,YAAY,GAAG;AACrB,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,SAAS,EAAE,WAAW;AACxB,EAAE,WAAW,EAAE,QAAQ;AACvB,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC;AACjC,EAAE,eAAe,EAAE,aAAa;AAChC,EAAE,iBAAiB,EAAE,eAAe;AACpC,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,kBAAkB,EAAE,MAAM;AACxE,EAAE,IAAI,EAAE,EAAE,2BAA2B,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAAE;AAChE,CAAC,CAAC,CAAC,CAAC;AACQ,MAAC,iBAAiB,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;AAC1D,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,mBAAmB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AACpE,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;AACpB,IAAI,UAAU;AACd,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,gBAAgB;AACpB,IAAI,SAAS;AACb,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,WAAW;AACf,IAAI,SAAS;AACb,IAAI,WAAW;AACf,IAAI,kBAAkB;AACtB,IAAI,QAAQ;AACZ,IAAI,eAAe;AACnB,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,IAAI,iBAAiB;AACrB,IAAI,gBAAgB;AACpB,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,YAAY;AAChB,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,kBAAkB;AACtB,IAAI,WAAW;AACf,IAAI,aAAa;AACjB,IAAI,YAAY;AAChB,IAAI,aAAa;AACjB,IAAI,WAAW;AACf,IAAI,aAAa;AACjB,IAAI,oBAAoB;AACxB,IAAI,UAAU;AACd,IAAI,iBAAiB;AACrB,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AACrB,IAAI,mBAAmB;AACvB,IAAI,kBAAkB;AACtB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC;AAC9B,IAAI,IAAI,EAAE,mBAAmB;AAC7B,IAAI,KAAK;AACT,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,YAAY;AAChB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,eAAe,CAAC;AAC5C,IAAI,YAAY,EAAE,gBAAgB;AAClC,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,QAAQ,EAAE,WAAW;AACzB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,eAAe,CAAC;AACnD,IAAI,YAAY,EAAE,eAAe;AACjC,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,QAAQ,EAAE,gBAAgB;AAC9B,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACpD,EAAE,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AACnC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AAC9D,IAAI,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAClC,GAAG,CAAC,CAAC,KAAK,CAAC;AACX,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE;AACpJ,IAAI,GAAG,EAAE,IAAI,CAAC,QAAQ;AACtB,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,KAAK,KAAK,EAAE;AACpC,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC,KAAK,CAAC;AAClC,GAAG,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AACpD,IAAI,QAAQ,EAAE,IAAI,CAAC,IAAI;AACvB,IAAI,WAAW;AACf,IAAI,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC3B,GAAG,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzE,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE;AACpI,IAAI,GAAG;AACP,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE;AACf,IAAI,GAAG,EAAE,KAAK;AACd,GAAG,CAAC,EAAE,UAAU,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;AACxJ,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,gBAAgB,EAAE,KAAK;AAC3B,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,gBAAgB,oBAAoB,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE;AACxP,IAAI,KAAK,EAAE,SAAS,GAAG,iBAAiB,GAAG,eAAe;AAC1D,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,QAAQ,EAAE,MAAM;AACpB,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC;AACpE,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC,CAAC,SAAS,CAAC;AAC1C,IAAI,OAAO,EAAE,MAAM;AACnB,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;AAC5E,IAAI,QAAQ,EAAE,SAAS;AACvB,GAAG,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;AACxD,IAAI,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE;AAClC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE;AACxE,IAAI,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;AAC3C,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,QAAQ,EAAE,MAAM;AACpB,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC;AACpE,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,OAAO,EAAE,MAAM;AACnB,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC1E,IAAI,MAAM;AACV,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;AAC3D,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,gBAAgB,EAAE,KAAK;AAC3B,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE;AAC1G,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAChC,GAAG,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE;AACxL,IAAI,uBAAuB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;AACpD,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE;AAC7H,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;AAC9B,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC;AACpC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;AACtB,CAAC,EAAE;AACH,iBAAiB,CAAC,WAAW,GAAG,iCAAiC;;"}
|
|
1
|
+
{"version":3,"file":"CodeHighlightTabs.js","sources":["../src/CodeHighlightTabs.tsx"],"sourcesContent":["import React from 'react';\nimport hljs from 'highlight.js';\nimport cx from 'clsx';\nimport { useUncontrolled } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n CopyButton,\n Tooltip,\n ActionIcon,\n UnstyledButton,\n ScrollArea,\n createVarsResolver,\n rem,\n Factory,\n} from '@mantine/core';\nimport { CopyIcon } from './CopyIcon';\nimport { FileIcon } from './FileIcon';\nimport { ExpandIcon } from './ExpandIcon';\nimport _classes from './CodeHighlight.module.css';\nimport themeClasses from './CodeHighlight.theme.module.css';\n\nconst classes = { ..._classes, root: cx(_classes.root, themeClasses.theme) };\n\nexport type CodeHighlightTabsStylesNames =\n | 'root'\n | 'code'\n | 'codeWrapper'\n | 'showCodeButton'\n | 'pre'\n | 'controls'\n | 'control'\n | 'header'\n | 'file'\n | 'files';\n\nexport type CodeHighlightTabsVariant = string;\nexport type CodeHighlightTabsCssVariables = {\n root: '--ch-max-collapsed-height';\n};\n\nexport interface CodeHighlightTabsCode {\n language?: string;\n code: string;\n fileName?: string;\n icon?: React.ReactNode;\n}\n\nexport interface CodeHighlightTabsProps\n extends BoxProps,\n StylesApiProps<CodeHighlightTabsFactory>,\n ElementProps<'div'> {\n /** Code to highlight with meta data (file name and icon) */\n code: CodeHighlightTabsCode | CodeHighlightTabsCode[];\n\n /** Default active tab index */\n defaultActiveTab?: number;\n\n /** Index of controlled active tab state */\n activeTab?: number;\n\n /** Called when tab changes */\n onTabChange?(tab: number): void;\n\n /** Determines whether header with file names and copy button should be rendered, `true` by default */\n withHeader?: boolean;\n\n /** Copy tooltip label, `'Copy code'` by default */\n copyLabel?: string;\n\n /** Copied tooltip label, `'Copied'` by default */\n copiedLabel?: string;\n\n /** Function that returns icon based on file name */\n getFileIcon?(fileName: string): React.ReactNode;\n\n /** `max-height` of code in collapsed state */\n maxCollapsedHeight?: React.CSSProperties['maxHeight'];\n\n /** Controlled expanded state */\n expanded?: boolean;\n\n /** Uncontrolled expanded state initial value */\n defaultExpanded?: boolean;\n\n /** Called when expanded state changes */\n onExpandedChange?(expanded: boolean): void;\n\n /** Expand button label and tooltip, `'Expand code'` by default */\n expandCodeLabel?: string;\n\n /** Collapse button label and tooltip, `'Collapse code'` by default */\n collapseCodeLabel?: string;\n\n /** Determines whether to show the expand button, `false` by default */\n withExpandButton?: boolean;\n}\n\nexport type CodeHighlightTabsFactory = Factory<{\n props: CodeHighlightTabsProps;\n ref: HTMLDivElement;\n stylesNames: CodeHighlightTabsStylesNames;\n}>;\n\nconst defaultProps: Partial<CodeHighlightTabsProps> = {\n withHeader: true,\n copyLabel: 'Copy code',\n copiedLabel: 'Copied',\n maxCollapsedHeight: rem('8rem'),\n expandCodeLabel: 'Expand code',\n collapseCodeLabel: 'Collapse code',\n};\n\nconst varsResolver = createVarsResolver<CodeHighlightTabsFactory>((_, { maxCollapsedHeight }) => ({\n root: { '--ch-max-collapsed-height': rem(maxCollapsedHeight) },\n}));\n\nexport const CodeHighlightTabs = factory<CodeHighlightTabsFactory>((_props, ref) => {\n const props = useProps('CodeHighlightTabs', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n code,\n defaultActiveTab,\n activeTab,\n onTabChange,\n withHeader,\n copiedLabel,\n copyLabel,\n getFileIcon,\n maxCollapsedHeight,\n expanded,\n defaultExpanded,\n onExpandedChange,\n expandCodeLabel,\n collapseCodeLabel,\n withExpandButton,\n ...others\n } = props;\n\n const getStyles = useStyles<CodeHighlightTabsFactory>({\n name: 'CodeHighlightTabs',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const [value, setValue] = useUncontrolled({\n defaultValue: defaultActiveTab,\n value: activeTab,\n finalValue: 0,\n onChange: onTabChange,\n });\n\n const [_expanded, setExpanded] = useUncontrolled({\n defaultValue: defaultExpanded,\n value: expanded,\n finalValue: true,\n onChange: onExpandedChange,\n });\n\n const nodes = Array.isArray(code) ? code : [code];\n const currentCode = nodes[value];\n\n const highlighted = hljs.highlight(currentCode.code.trim(), {\n language: currentCode.language!,\n }).value;\n\n const files = nodes.map((node, index) => (\n <UnstyledButton\n {...getStyles('file')}\n key={node.fileName}\n mod={{ active: index === value }}\n onClick={() => setValue(index)}\n >\n <FileIcon fileIcon={node.icon} getFileIcon={getFileIcon} fileName={node.fileName} />\n <span>{node.fileName}</span>\n </UnstyledButton>\n ));\n\n return (\n <Box {...getStyles('root')} ref={ref} {...others} dir=\"ltr\">\n {withHeader && (\n <div {...getStyles('header')}>\n <ScrollArea type=\"never\" dir=\"ltr\" offsetScrollbars={false}>\n <div {...getStyles('files')}>{files}</div>\n </ScrollArea>\n <div {...getStyles('controls')}>\n {withExpandButton && (\n <Tooltip\n label={_expanded ? collapseCodeLabel : expandCodeLabel}\n fz=\"sm\"\n position=\"left\"\n >\n <ActionIcon\n onClick={() => setExpanded(!_expanded)}\n variant=\"none\"\n {...getStyles('control')}\n >\n <ExpandIcon expanded={_expanded} />\n </ActionIcon>\n </Tooltip>\n )}\n\n <CopyButton value={currentCode.code.trim()}>\n {({ copied, copy }) => (\n <Tooltip label={copied ? copiedLabel : copyLabel} fz=\"sm\" position=\"left\">\n <ActionIcon onClick={copy} variant=\"none\" {...getStyles('control')}>\n <CopyIcon copied={copied} />\n </ActionIcon>\n </Tooltip>\n )}\n </CopyButton>\n </div>\n </div>\n )}\n\n <ScrollArea type=\"auto\" dir=\"ltr\" offsetScrollbars={false}>\n <Box {...getStyles('codeWrapper')} mod={{ expanded: _expanded }}>\n <pre {...getStyles('pre')}>\n <code {...getStyles('code')} dangerouslySetInnerHTML={{ __html: highlighted }} />\n </pre>\n </Box>\n </ScrollArea>\n <UnstyledButton\n {...getStyles('showCodeButton')}\n mod={{ hidden: _expanded }}\n onClick={() => setExpanded(true)}\n >\n Expand code\n </UnstyledButton>\n </Box>\n );\n});\n\nCodeHighlightTabs.displayName = '@mantine/core/CodeHighlightTabs';\n"],"names":[],"mappings":"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"}
|
package/esm/CopyIcon.js
CHANGED
|
@@ -1,63 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
import { __rest } from 'tslib';
|
|
2
2
|
import { rem } from '@mantine/core';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
|
|
5
|
-
var __defProp = Object.defineProperty;
|
|
6
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
-
var __spreadValues = (a, b) => {
|
|
11
|
-
for (var prop in b || (b = {}))
|
|
12
|
-
if (__hasOwnProp.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
if (__getOwnPropSymbols)
|
|
15
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop))
|
|
17
|
-
__defNormalProp(a, prop, b[prop]);
|
|
18
|
-
}
|
|
19
|
-
return a;
|
|
20
|
-
};
|
|
21
|
-
var __objRest = (source, exclude) => {
|
|
22
|
-
var target = {};
|
|
23
|
-
for (var prop in source)
|
|
24
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
25
|
-
target[prop] = source[prop];
|
|
26
|
-
if (source != null && __getOwnPropSymbols)
|
|
27
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
28
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
29
|
-
target[prop] = source[prop];
|
|
30
|
-
}
|
|
31
|
-
return target;
|
|
32
|
-
};
|
|
33
5
|
function CopyIcon(_a) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
fill: "none",
|
|
42
|
-
strokeLinecap: "round",
|
|
43
|
-
strokeLinejoin: "round"
|
|
44
|
-
}, others), copied ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("path", {
|
|
45
|
-
stroke: "none",
|
|
46
|
-
d: "M0 0h24v24H0z",
|
|
47
|
-
fill: "none"
|
|
48
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
49
|
-
d: "M5 12l5 5l10 -10"
|
|
50
|
-
})) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("path", {
|
|
51
|
-
stroke: "none",
|
|
52
|
-
d: "M0 0h24v24H0z",
|
|
53
|
-
fill: "none"
|
|
54
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
55
|
-
d: "M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"
|
|
56
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
57
|
-
d: "M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"
|
|
58
|
-
})));
|
|
6
|
+
var { copied, style } = _a, others = __rest(_a, ["copied", "style"]);
|
|
7
|
+
return (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", style: Object.assign({ width: rem(18), height: rem(18) }, style), viewBox: "0 0 24 24", strokeWidth: "2", stroke: "currentColor", fill: "none", strokeLinecap: "round", strokeLinejoin: "round" }, others), copied ? (React.createElement(React.Fragment, null,
|
|
8
|
+
React.createElement("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
|
|
9
|
+
React.createElement("path", { d: "M5 12l5 5l10 -10" }))) : (React.createElement(React.Fragment, null,
|
|
10
|
+
React.createElement("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
|
|
11
|
+
React.createElement("path", { d: "M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z" }),
|
|
12
|
+
React.createElement("path", { d: "M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2" })))));
|
|
59
13
|
}
|
|
60
|
-
CopyIcon.displayName =
|
|
14
|
+
CopyIcon.displayName = '@mantine/code-highlight/CopyIcon';
|
|
61
15
|
|
|
62
16
|
export { CopyIcon };
|
|
63
17
|
//# sourceMappingURL=CopyIcon.js.map
|
package/esm/CopyIcon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyIcon.js","sources":["../src/CopyIcon.tsx"],"sourcesContent":["import { rem } from '@mantine/core';\nimport React from 'react';\n\ninterface CopyIconProps extends React.ComponentPropsWithoutRef<'svg'> {\n copied: boolean;\n}\n\nexport function CopyIcon({ copied, style, ...others }: CopyIconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ width: rem(18), height: rem(18), ...style }}\n viewBox=\"0 0 24 24\"\n strokeWidth=\"2\"\n stroke=\"currentColor\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...others}\n >\n {copied ? (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n <path d=\"M5 12l5 5l10 -10\"></path>\n </>\n ) : (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n <path d=\"M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z\"></path>\n <path d=\"M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2\"></path>\n </>\n )}\n </svg>\n );\n}\n\nCopyIcon.displayName = '@mantine/code-highlight/CopyIcon';\n"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"CopyIcon.js","sources":["../src/CopyIcon.tsx"],"sourcesContent":["import { rem } from '@mantine/core';\nimport React from 'react';\n\ninterface CopyIconProps extends React.ComponentPropsWithoutRef<'svg'> {\n copied: boolean;\n}\n\nexport function CopyIcon({ copied, style, ...others }: CopyIconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ width: rem(18), height: rem(18), ...style }}\n viewBox=\"0 0 24 24\"\n strokeWidth=\"2\"\n stroke=\"currentColor\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...others}\n >\n {copied ? (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n <path d=\"M5 12l5 5l10 -10\"></path>\n </>\n ) : (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n <path d=\"M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z\"></path>\n <path d=\"M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2\"></path>\n </>\n )}\n </svg>\n );\n}\n\nCopyIcon.displayName = '@mantine/code-highlight/CopyIcon';\n"],"names":[],"mappings":";;;;SAOgB,QAAQ,CAAC,EAA2C;QAA3C,EAAE,MAAM,EAAE,KAAK,OAA4B,EAAvB,MAAM,cAA1B,mBAA4B,CAAF;IACjD,QACE,2CACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,kBAAI,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAK,KAAK,GAClD,OAAO,EAAC,WAAW,EACnB,WAAW,EAAC,GAAG,EACf,MAAM,EAAC,cAAc,EACrB,IAAI,EAAC,MAAM,EACX,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,IAClB,MAAM,GAET,MAAM,IACL;QACE,8BAAM,MAAM,EAAC,MAAM,EAAC,CAAC,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,GAAQ;QACzD,8BAAM,CAAC,EAAC,kBAAkB,GAAQ,CACjC,KAEH;QACE,8BAAM,MAAM,EAAC,MAAM,EAAC,CAAC,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,GAAQ;QACzD,8BAAM,CAAC,EAAC,8EAA8E,GAAQ;QAC9F,8BAAM,CAAC,EAAC,8DAA8D,GAAQ,CAC7E,CACJ,CACG,EACN;AACJ,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,kCAAkC;;;;"}
|
package/esm/ExpandIcon.js
CHANGED
|
@@ -1,75 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import { __rest } from 'tslib';
|
|
2
2
|
import { rem } from '@mantine/core';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
|
|
5
|
-
var __defProp = Object.defineProperty;
|
|
6
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
-
var __spreadValues = (a, b) => {
|
|
11
|
-
for (var prop in b || (b = {}))
|
|
12
|
-
if (__hasOwnProp.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
if (__getOwnPropSymbols)
|
|
15
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop))
|
|
17
|
-
__defNormalProp(a, prop, b[prop]);
|
|
18
|
-
}
|
|
19
|
-
return a;
|
|
20
|
-
};
|
|
21
|
-
var __objRest = (source, exclude) => {
|
|
22
|
-
var target = {};
|
|
23
|
-
for (var prop in source)
|
|
24
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
25
|
-
target[prop] = source[prop];
|
|
26
|
-
if (source != null && __getOwnPropSymbols)
|
|
27
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
28
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
29
|
-
target[prop] = source[prop];
|
|
30
|
-
}
|
|
31
|
-
return target;
|
|
32
|
-
};
|
|
33
5
|
function ExpandIcon(_a) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
49
|
-
d: "M12 13v-8l-3 3m6 0l-3 -3"
|
|
50
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
51
|
-
d: "M9 17l1 0"
|
|
52
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
53
|
-
d: "M14 17l1 0"
|
|
54
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
55
|
-
d: "M19 17l1 0"
|
|
56
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
57
|
-
d: "M4 17l1 0"
|
|
58
|
-
})) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("path", {
|
|
59
|
-
stroke: "none",
|
|
60
|
-
d: "M0 0h24v24H0z",
|
|
61
|
-
fill: "none"
|
|
62
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
63
|
-
d: "M12 11v8l3 -3m-6 0l3 3"
|
|
64
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
65
|
-
d: "M9 7l1 0"
|
|
66
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
67
|
-
d: "M14 7l1 0"
|
|
68
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
69
|
-
d: "M19 7l1 0"
|
|
70
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
71
|
-
d: "M4 7l1 0"
|
|
72
|
-
})));
|
|
6
|
+
var { expanded, style } = _a, others = __rest(_a, ["expanded", "style"]);
|
|
7
|
+
return (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", style: Object.assign({ width: rem(18), height: rem(18) }, style), viewBox: "0 0 24 24", strokeWidth: "2", stroke: "currentColor", fill: "none", strokeLinecap: "round", strokeLinejoin: "round" }, others), expanded ? (React.createElement(React.Fragment, null,
|
|
8
|
+
React.createElement("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
|
|
9
|
+
React.createElement("path", { d: "M12 13v-8l-3 3m6 0l-3 -3" }),
|
|
10
|
+
React.createElement("path", { d: "M9 17l1 0" }),
|
|
11
|
+
React.createElement("path", { d: "M14 17l1 0" }),
|
|
12
|
+
React.createElement("path", { d: "M19 17l1 0" }),
|
|
13
|
+
React.createElement("path", { d: "M4 17l1 0" }))) : (React.createElement(React.Fragment, null,
|
|
14
|
+
React.createElement("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
|
|
15
|
+
React.createElement("path", { d: "M12 11v8l3 -3m-6 0l3 3" }),
|
|
16
|
+
React.createElement("path", { d: "M9 7l1 0" }),
|
|
17
|
+
React.createElement("path", { d: "M14 7l1 0" }),
|
|
18
|
+
React.createElement("path", { d: "M19 7l1 0" }),
|
|
19
|
+
React.createElement("path", { d: "M4 7l1 0" })))));
|
|
73
20
|
}
|
|
74
21
|
|
|
75
22
|
export { ExpandIcon };
|
package/esm/ExpandIcon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpandIcon.js","sources":["../src/ExpandIcon.tsx"],"sourcesContent":["import { rem } from '@mantine/core';\nimport React from 'react';\n\ninterface ExpandIconProps extends React.ComponentPropsWithoutRef<'svg'> {\n expanded: boolean;\n}\n\nexport function ExpandIcon({ expanded, style, ...others }: ExpandIconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ width: rem(18), height: rem(18), ...style }}\n viewBox=\"0 0 24 24\"\n strokeWidth=\"2\"\n stroke=\"currentColor\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...others}\n >\n {expanded ? (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M12 13v-8l-3 3m6 0l-3 -3\" />\n <path d=\"M9 17l1 0\" />\n <path d=\"M14 17l1 0\" />\n <path d=\"M19 17l1 0\" />\n <path d=\"M4 17l1 0\" />\n </>\n ) : (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M12 11v8l3 -3m-6 0l3 3\" />\n <path d=\"M9 7l1 0\" />\n <path d=\"M14 7l1 0\" />\n <path d=\"M19 7l1 0\" />\n <path d=\"M4 7l1 0\" />\n </>\n )}\n </svg>\n );\n}\n"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"ExpandIcon.js","sources":["../src/ExpandIcon.tsx"],"sourcesContent":["import { rem } from '@mantine/core';\nimport React from 'react';\n\ninterface ExpandIconProps extends React.ComponentPropsWithoutRef<'svg'> {\n expanded: boolean;\n}\n\nexport function ExpandIcon({ expanded, style, ...others }: ExpandIconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ width: rem(18), height: rem(18), ...style }}\n viewBox=\"0 0 24 24\"\n strokeWidth=\"2\"\n stroke=\"currentColor\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...others}\n >\n {expanded ? (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M12 13v-8l-3 3m6 0l-3 -3\" />\n <path d=\"M9 17l1 0\" />\n <path d=\"M14 17l1 0\" />\n <path d=\"M19 17l1 0\" />\n <path d=\"M4 17l1 0\" />\n </>\n ) : (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M12 11v8l3 -3m-6 0l3 3\" />\n <path d=\"M9 7l1 0\" />\n <path d=\"M14 7l1 0\" />\n <path d=\"M19 7l1 0\" />\n <path d=\"M4 7l1 0\" />\n </>\n )}\n </svg>\n );\n}\n"],"names":[],"mappings":";;;;SAOgB,UAAU,CAAC,EAA+C;QAA/C,EAAE,QAAQ,EAAE,KAAK,OAA8B,EAAzB,MAAM,cAA5B,qBAA8B,CAAF;IACrD,QACE,2CACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,kBAAI,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAK,KAAK,GAClD,OAAO,EAAC,WAAW,EACnB,WAAW,EAAC,GAAG,EACf,MAAM,EAAC,cAAc,EACrB,IAAI,EAAC,MAAM,EACX,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,IAClB,MAAM,GAET,QAAQ,IACP;QACE,8BAAM,MAAM,EAAC,MAAM,EAAC,CAAC,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,GAAG;QACpD,8BAAM,CAAC,EAAC,0BAA0B,GAAG;QACrC,8BAAM,CAAC,EAAC,WAAW,GAAG;QACtB,8BAAM,CAAC,EAAC,YAAY,GAAG;QACvB,8BAAM,CAAC,EAAC,YAAY,GAAG;QACvB,8BAAM,CAAC,EAAC,WAAW,GAAG,CACrB,KAEH;QACE,8BAAM,MAAM,EAAC,MAAM,EAAC,CAAC,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,GAAG;QACpD,8BAAM,CAAC,EAAC,wBAAwB,GAAG;QACnC,8BAAM,CAAC,EAAC,UAAU,GAAG;QACrB,8BAAM,CAAC,EAAC,WAAW,GAAG;QACtB,8BAAM,CAAC,EAAC,WAAW,GAAG;QACtB,8BAAM,CAAC,EAAC,UAAU,GAAG,CACpB,CACJ,CACG,EACN;AACJ;;;;"}
|
package/esm/FileIcon.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
'use client';
|
|
2
1
|
import React from 'react';
|
|
3
2
|
|
|
4
3
|
function FileIcon({ fileIcon, fileName, getFileIcon }) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
if (fileIcon) {
|
|
5
|
+
return React.createElement(React.Fragment, null, fileIcon);
|
|
6
|
+
}
|
|
7
|
+
if (getFileIcon && fileName) {
|
|
8
|
+
return React.createElement(React.Fragment, null, getFileIcon(fileName));
|
|
9
|
+
}
|
|
10
|
+
return null;
|
|
12
11
|
}
|
|
13
12
|
|
|
14
13
|
export { FileIcon };
|
package/esm/FileIcon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileIcon.js","sources":["../src/FileIcon.tsx"],"sourcesContent":["import React from 'react';\n\ninterface FileIconProps {\n fileName: string | undefined;\n getFileIcon?: ((fileName: string) => React.ReactNode) | undefined;\n fileIcon: React.ReactNode | undefined;\n}\n\nexport function FileIcon({ fileIcon, fileName, getFileIcon }: FileIconProps) {\n if (fileIcon) {\n return <>{fileIcon}</>;\n }\n\n if (getFileIcon && fileName) {\n return <>{getFileIcon(fileName)}</>;\n }\n\n return null;\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FileIcon.js","sources":["../src/FileIcon.tsx"],"sourcesContent":["import React from 'react';\n\ninterface FileIconProps {\n fileName: string | undefined;\n getFileIcon?: ((fileName: string) => React.ReactNode) | undefined;\n fileIcon: React.ReactNode | undefined;\n}\n\nexport function FileIcon({ fileIcon, fileName, getFileIcon }: FileIconProps) {\n if (fileIcon) {\n return <>{fileIcon}</>;\n }\n\n if (getFileIcon && fileName) {\n return <>{getFileIcon(fileName)}</>;\n }\n\n return null;\n}\n"],"names":[],"mappings":";;SAQgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAiB;IACzE,IAAI,QAAQ,EAAE;QACZ,OAAO,0CAAG,QAAQ,CAAI,CAAC;KACxB;IAED,IAAI,WAAW,IAAI,QAAQ,EAAE;QAC3B,OAAO,0CAAG,WAAW,CAAC,QAAQ,CAAC,CAAI,CAAC;KACrC;IAED,OAAO,IAAI,CAAC;AACd;;;;"}
|