@mantine/code-highlight 7.0.0 → 7.0.1-alpha.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.
- package/cjs/CodeHighlight.js +1 -0
- package/cjs/CodeHighlight.js.map +1 -1
- package/cjs/CodeHighlightTabs.js +1 -0
- package/cjs/CodeHighlightTabs.js.map +1 -1
- package/esm/{CodeHighlight.js → CodeHighlight.mjs} +6 -5
- package/esm/CodeHighlight.mjs.map +1 -0
- package/esm/{CodeHighlight.module.css.js → CodeHighlight.module.mjs} +1 -1
- package/esm/CodeHighlight.module.mjs.map +1 -0
- package/esm/{CodeHighlight.theme.module.css.js → CodeHighlight.theme.module.mjs} +1 -1
- package/esm/CodeHighlight.theme.module.mjs.map +1 -0
- package/esm/{CodeHighlightTabs.js → CodeHighlightTabs.mjs} +7 -6
- package/esm/CodeHighlightTabs.mjs.map +1 -0
- package/esm/{CopyIcon.js → CopyIcon.mjs} +1 -1
- package/esm/CopyIcon.mjs.map +1 -0
- package/esm/{ExpandIcon.js → ExpandIcon.mjs} +1 -1
- package/esm/ExpandIcon.mjs.map +1 -0
- package/esm/{FileIcon.js → FileIcon.mjs} +1 -1
- package/esm/FileIcon.mjs.map +1 -0
- package/esm/{InlineCodeHighlight.js → InlineCodeHighlight.mjs} +3 -3
- package/esm/InlineCodeHighlight.mjs.map +1 -0
- package/esm/index.mjs +4 -0
- package/esm/index.mjs.map +1 -0
- package/esm/{use-highlight.js → use-highlight.mjs} +1 -1
- package/esm/use-highlight.mjs.map +1 -0
- package/lib/index.d.mts +6 -0
- package/package.json +13 -7
- package/src/CodeHighlight.test.tsx +2 -0
- package/src/CodeHighlight.tsx +1 -0
- package/src/CodeHighlightTabs.test.tsx +2 -0
- package/src/CodeHighlightTabs.tsx +1 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/esm/CodeHighlight.js.map +0 -1
- package/esm/CodeHighlight.module.css.js.map +0 -1
- package/esm/CodeHighlight.theme.module.css.js.map +0 -1
- package/esm/CodeHighlightTabs.js.map +0 -1
- package/esm/CopyIcon.js.map +0 -1
- package/esm/ExpandIcon.js.map +0 -1
- package/esm/FileIcon.js.map +0 -1
- package/esm/InlineCodeHighlight.js.map +0 -1
- package/esm/index.js +0 -5
- package/esm/index.js.map +0 -1
- package/esm/use-highlight.js.map +0 -1
package/cjs/CodeHighlight.js
CHANGED
|
@@ -102,6 +102,7 @@ const CodeHighlight = core.factory((_props, ref) => {
|
|
|
102
102
|
return /* @__PURE__ */ React__default.createElement(core.Box, __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, getStyles("root")), { ref }), others), { dir: "ltr" }), withCopyButton && /* @__PURE__ */ React__default.createElement(core.CopyButton, { value: code.trim() }, ({ copied, copy }) => /* @__PURE__ */ React__default.createElement(core.Tooltip, { label: copied ? copiedLabel : copyLabel, fz: "sm", position: "left" }, /* @__PURE__ */ React__default.createElement(core.ActionIcon, __spreadValues({ onClick: copy, variant: "none" }, getStyles("copy")), /* @__PURE__ */ React__default.createElement(CopyIcon.CopyIcon, { copied })))), /* @__PURE__ */ React__default.createElement(core.ScrollArea, { type: "hover", dir: "ltr", offsetScrollbars: false }, /* @__PURE__ */ React__default.createElement("pre", __spreadValues({}, getStyles("pre")), /* @__PURE__ */ React__default.createElement("code", __spreadValues(__spreadValues({}, getStyles("code")), getCodeProps())))));
|
|
103
103
|
});
|
|
104
104
|
CodeHighlight.displayName = "@mantine/core/CodeHighlight";
|
|
105
|
+
CodeHighlight.classes = classes;
|
|
105
106
|
|
|
106
107
|
exports.CodeHighlight = CodeHighlight;
|
|
107
108
|
//# sourceMappingURL=CodeHighlight.js.map
|
package/cjs/CodeHighlight.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeHighlight.js","sources":["../src/CodeHighlight.tsx"],"sourcesContent":["import React from 'react';\nimport cx from 'clsx';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n CopyButton,\n Tooltip,\n ActionIcon,\n ScrollArea,\n Factory,\n} from '@mantine/core';\nimport { useHighlight } from './use-highlight';\nimport { CopyIcon } from './CopyIcon';\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 CodeHighlightStylesNames = 'root' | 'code' | 'pre' | 'copy';\n\nexport interface CodeHighlightProps\n extends BoxProps,\n StylesApiProps<CodeHighlightFactory>,\n ElementProps<'div'> {\n /** Code to highlight */\n code: string;\n\n /** Code language, `'tsx'` by default */\n language?: string;\n\n /** Determines whether copy button should be displayed, `true` by default */\n withCopyButton?: 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 /** Determines whether code should be highlighted only after component is mounted to the dom (disables code highlight on server), `false` by default */\n highlightOnClient?: boolean;\n}\n\nexport type CodeHighlightFactory = Factory<{\n props: CodeHighlightProps;\n ref: HTMLDivElement;\n stylesNames: CodeHighlightStylesNames;\n}>;\n\nconst defaultProps: Partial<CodeHighlightProps> = {\n copyLabel: 'Copy code',\n copiedLabel: 'Copied',\n language: 'tsx',\n withCopyButton: true,\n};\n\nexport const CodeHighlight = factory<CodeHighlightFactory>((_props, ref) => {\n const props = useProps('CodeHighlight', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n code,\n copiedLabel,\n copyLabel,\n language,\n withCopyButton,\n highlightOnClient,\n ...others\n } = props;\n\n const getStyles = useStyles<CodeHighlightFactory>({\n name: 'CodeHighlight',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n const getCodeProps = useHighlight({\n code,\n language: language!,\n highlightOnClient,\n });\n\n return (\n <Box {...getStyles('root')} ref={ref} {...others} dir=\"ltr\">\n {withCopyButton && (\n <CopyButton value={code.trim()}>\n {({ copied, copy }) => (\n <Tooltip label={copied ? copiedLabel : copyLabel} fz=\"sm\" position=\"left\">\n <ActionIcon onClick={copy} variant=\"none\" {...getStyles('copy')}>\n <CopyIcon copied={copied} />\n </ActionIcon>\n </Tooltip>\n )}\n </CopyButton>\n )}\n\n <ScrollArea type=\"hover\" dir=\"ltr\" offsetScrollbars={false}>\n <pre {...getStyles('pre')}>\n <code {...getStyles('code')} {...getCodeProps()} />\n </pre>\n </ScrollArea>\n </Box>\n );\n});\n\nCodeHighlight.displayName = '@mantine/core/CodeHighlight';\n"],"names":["_classes","cx","themeClasses","factory","useProps","useStyles","useHighlight","React","Box","CopyButton","Tooltip","ActionIcon","CopyIcon","ScrollArea"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CodeHighlight.js","sources":["../src/CodeHighlight.tsx"],"sourcesContent":["import React from 'react';\nimport cx from 'clsx';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n CopyButton,\n Tooltip,\n ActionIcon,\n ScrollArea,\n Factory,\n} from '@mantine/core';\nimport { useHighlight } from './use-highlight';\nimport { CopyIcon } from './CopyIcon';\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 CodeHighlightStylesNames = 'root' | 'code' | 'pre' | 'copy';\n\nexport interface CodeHighlightProps\n extends BoxProps,\n StylesApiProps<CodeHighlightFactory>,\n ElementProps<'div'> {\n /** Code to highlight */\n code: string;\n\n /** Code language, `'tsx'` by default */\n language?: string;\n\n /** Determines whether copy button should be displayed, `true` by default */\n withCopyButton?: 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 /** Determines whether code should be highlighted only after component is mounted to the dom (disables code highlight on server), `false` by default */\n highlightOnClient?: boolean;\n}\n\nexport type CodeHighlightFactory = Factory<{\n props: CodeHighlightProps;\n ref: HTMLDivElement;\n stylesNames: CodeHighlightStylesNames;\n}>;\n\nconst defaultProps: Partial<CodeHighlightProps> = {\n copyLabel: 'Copy code',\n copiedLabel: 'Copied',\n language: 'tsx',\n withCopyButton: true,\n};\n\nexport const CodeHighlight = factory<CodeHighlightFactory>((_props, ref) => {\n const props = useProps('CodeHighlight', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n code,\n copiedLabel,\n copyLabel,\n language,\n withCopyButton,\n highlightOnClient,\n ...others\n } = props;\n\n const getStyles = useStyles<CodeHighlightFactory>({\n name: 'CodeHighlight',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n const getCodeProps = useHighlight({\n code,\n language: language!,\n highlightOnClient,\n });\n\n return (\n <Box {...getStyles('root')} ref={ref} {...others} dir=\"ltr\">\n {withCopyButton && (\n <CopyButton value={code.trim()}>\n {({ copied, copy }) => (\n <Tooltip label={copied ? copiedLabel : copyLabel} fz=\"sm\" position=\"left\">\n <ActionIcon onClick={copy} variant=\"none\" {...getStyles('copy')}>\n <CopyIcon copied={copied} />\n </ActionIcon>\n </Tooltip>\n )}\n </CopyButton>\n )}\n\n <ScrollArea type=\"hover\" dir=\"ltr\" offsetScrollbars={false}>\n <pre {...getStyles('pre')}>\n <code {...getStyles('code')} {...getCodeProps()} />\n </pre>\n </ScrollArea>\n </Box>\n );\n});\n\nCodeHighlight.displayName = '@mantine/core/CodeHighlight';\nCodeHighlight.classes = classes;\n"],"names":["_classes","cx","themeClasses","factory","useProps","useStyles","useHighlight","React","Box","CopyButton","Tooltip","ActionIcon","CopyIcon","ScrollArea"],"mappings":"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"}
|
package/cjs/CodeHighlightTabs.js
CHANGED
|
@@ -192,6 +192,7 @@ const CodeHighlightTabs = core.factory((_props, ref) => {
|
|
|
192
192
|
));
|
|
193
193
|
});
|
|
194
194
|
CodeHighlightTabs.displayName = "@mantine/core/CodeHighlightTabs";
|
|
195
|
+
CodeHighlightTabs.classes = classes;
|
|
195
196
|
|
|
196
197
|
exports.CodeHighlightTabs = CodeHighlightTabs;
|
|
197
198
|
//# 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 | 'fileIcon';\n\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\n fileIcon={node.icon}\n getFileIcon={getFileIcon}\n fileName={node.fileName}\n {...getStyles('fileIcon')}\n />\n <span>{node.fileName}</span>\n </UnstyledButton>\n ));\n\n return (\n <Box {...getStyles('root')} mod={{ collapsed: !_expanded }} 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 aria-label={_expanded ? collapseCodeLabel : expandCodeLabel}\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\n onClick={copy}\n variant=\"none\"\n {...getStyles('control')}\n aria-label={copied ? copiedLabel : copyLabel}\n >\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 {expandCodeLabel}\n </UnstyledButton>\n </Box>\n );\n});\n\nCodeHighlightTabs.displayName = '@mantine/core/CodeHighlightTabs';\n"],"names":["_classes","cx","themeClasses","rem","createVarsResolver","factory","useProps","useStyles","useUncontrolled","hljs","React","UnstyledButton","FileIcon","Box","ScrollArea","Tooltip","ActionIcon","ExpandIcon","CopyButton","CopyIcon"],"mappings":"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"}
|
|
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 | 'fileIcon';\n\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\n fileIcon={node.icon}\n getFileIcon={getFileIcon}\n fileName={node.fileName}\n {...getStyles('fileIcon')}\n />\n <span>{node.fileName}</span>\n </UnstyledButton>\n ));\n\n return (\n <Box {...getStyles('root')} mod={{ collapsed: !_expanded }} 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 aria-label={_expanded ? collapseCodeLabel : expandCodeLabel}\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\n onClick={copy}\n variant=\"none\"\n {...getStyles('control')}\n aria-label={copied ? copiedLabel : copyLabel}\n >\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 {expandCodeLabel}\n </UnstyledButton>\n </Box>\n );\n});\n\nCodeHighlightTabs.displayName = '@mantine/core/CodeHighlightTabs';\nCodeHighlightTabs.classes = classes;\n"],"names":["_classes","cx","themeClasses","rem","createVarsResolver","factory","useProps","useStyles","useUncontrolled","hljs","React","UnstyledButton","FileIcon","Box","ScrollArea","Tooltip","ActionIcon","ExpandIcon","CopyButton","CopyIcon"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import cx from 'clsx';
|
|
3
3
|
import { factory, useProps, useStyles, Box, CopyButton, Tooltip, ActionIcon, ScrollArea } from '@mantine/core';
|
|
4
|
-
import { useHighlight } from './use-highlight.
|
|
5
|
-
import { CopyIcon } from './CopyIcon.
|
|
6
|
-
import _classes from './CodeHighlight.module.
|
|
7
|
-
import themeClasses from './CodeHighlight.theme.module.
|
|
4
|
+
import { useHighlight } from './use-highlight.mjs';
|
|
5
|
+
import { CopyIcon } from './CopyIcon.mjs';
|
|
6
|
+
import _classes from './CodeHighlight.module.mjs';
|
|
7
|
+
import themeClasses from './CodeHighlight.theme.module.mjs';
|
|
8
8
|
|
|
9
9
|
var __defProp = Object.defineProperty;
|
|
10
10
|
var __defProps = Object.defineProperties;
|
|
@@ -93,6 +93,7 @@ const CodeHighlight = factory((_props, ref) => {
|
|
|
93
93
|
return /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, getStyles("root")), { ref }), others), { dir: "ltr" }), withCopyButton && /* @__PURE__ */ React.createElement(CopyButton, { value: code.trim() }, ({ copied, copy }) => /* @__PURE__ */ React.createElement(Tooltip, { label: copied ? copiedLabel : copyLabel, fz: "sm", position: "left" }, /* @__PURE__ */ React.createElement(ActionIcon, __spreadValues({ onClick: copy, variant: "none" }, getStyles("copy")), /* @__PURE__ */ React.createElement(CopyIcon, { copied })))), /* @__PURE__ */ React.createElement(ScrollArea, { type: "hover", dir: "ltr", offsetScrollbars: false }, /* @__PURE__ */ React.createElement("pre", __spreadValues({}, getStyles("pre")), /* @__PURE__ */ React.createElement("code", __spreadValues(__spreadValues({}, getStyles("code")), getCodeProps())))));
|
|
94
94
|
});
|
|
95
95
|
CodeHighlight.displayName = "@mantine/core/CodeHighlight";
|
|
96
|
+
CodeHighlight.classes = classes;
|
|
96
97
|
|
|
97
98
|
export { CodeHighlight };
|
|
98
|
-
//# sourceMappingURL=CodeHighlight.
|
|
99
|
+
//# sourceMappingURL=CodeHighlight.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeHighlight.mjs","sources":["../src/CodeHighlight.tsx"],"sourcesContent":["import React from 'react';\nimport cx from 'clsx';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n CopyButton,\n Tooltip,\n ActionIcon,\n ScrollArea,\n Factory,\n} from '@mantine/core';\nimport { useHighlight } from './use-highlight';\nimport { CopyIcon } from './CopyIcon';\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 CodeHighlightStylesNames = 'root' | 'code' | 'pre' | 'copy';\n\nexport interface CodeHighlightProps\n extends BoxProps,\n StylesApiProps<CodeHighlightFactory>,\n ElementProps<'div'> {\n /** Code to highlight */\n code: string;\n\n /** Code language, `'tsx'` by default */\n language?: string;\n\n /** Determines whether copy button should be displayed, `true` by default */\n withCopyButton?: 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 /** Determines whether code should be highlighted only after component is mounted to the dom (disables code highlight on server), `false` by default */\n highlightOnClient?: boolean;\n}\n\nexport type CodeHighlightFactory = Factory<{\n props: CodeHighlightProps;\n ref: HTMLDivElement;\n stylesNames: CodeHighlightStylesNames;\n}>;\n\nconst defaultProps: Partial<CodeHighlightProps> = {\n copyLabel: 'Copy code',\n copiedLabel: 'Copied',\n language: 'tsx',\n withCopyButton: true,\n};\n\nexport const CodeHighlight = factory<CodeHighlightFactory>((_props, ref) => {\n const props = useProps('CodeHighlight', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n code,\n copiedLabel,\n copyLabel,\n language,\n withCopyButton,\n highlightOnClient,\n ...others\n } = props;\n\n const getStyles = useStyles<CodeHighlightFactory>({\n name: 'CodeHighlight',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n const getCodeProps = useHighlight({\n code,\n language: language!,\n highlightOnClient,\n });\n\n return (\n <Box {...getStyles('root')} ref={ref} {...others} dir=\"ltr\">\n {withCopyButton && (\n <CopyButton value={code.trim()}>\n {({ copied, copy }) => (\n <Tooltip label={copied ? copiedLabel : copyLabel} fz=\"sm\" position=\"left\">\n <ActionIcon onClick={copy} variant=\"none\" {...getStyles('copy')}>\n <CopyIcon copied={copied} />\n </ActionIcon>\n </Tooltip>\n )}\n </CopyButton>\n )}\n\n <ScrollArea type=\"hover\" dir=\"ltr\" offsetScrollbars={false}>\n <pre {...getStyles('pre')}>\n <code {...getStyles('code')} {...getCodeProps()} />\n </pre>\n </ScrollArea>\n </Box>\n );\n});\n\nCodeHighlight.displayName = '@mantine/core/CodeHighlight';\nCodeHighlight.classes = classes;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
var _classes = {"code":"m-5caae6d3","pre":"m-2c47c4fd","header":"m-e58679f3","controls":"m-be7e9c9c","copy":"m-5caae85b","control":"m-d498bab7","file":"m-5cac2e62","files":"m-38d99e51","codeWrapper":"m-9f507240","showCodeButton":"m-c9378bc2","root":"m-5cb1b9c8","fileIcon":"m-b46cddfb"};
|
|
2
2
|
|
|
3
3
|
export default _classes;
|
|
4
|
-
//# sourceMappingURL=CodeHighlight.module.
|
|
4
|
+
//# sourceMappingURL=CodeHighlight.module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeHighlight.module.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeHighlight.theme.module.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -3,11 +3,11 @@ import hljs from 'highlight.js';
|
|
|
3
3
|
import cx from 'clsx';
|
|
4
4
|
import { useUncontrolled } from '@mantine/hooks';
|
|
5
5
|
import { rem, createVarsResolver, factory, useProps, useStyles, UnstyledButton, Box, ScrollArea, Tooltip, ActionIcon, CopyButton } from '@mantine/core';
|
|
6
|
-
import { CopyIcon } from './CopyIcon.
|
|
7
|
-
import { FileIcon } from './FileIcon.
|
|
8
|
-
import { ExpandIcon } from './ExpandIcon.
|
|
9
|
-
import _classes from './CodeHighlight.module.
|
|
10
|
-
import themeClasses from './CodeHighlight.theme.module.
|
|
6
|
+
import { CopyIcon } from './CopyIcon.mjs';
|
|
7
|
+
import { FileIcon } from './FileIcon.mjs';
|
|
8
|
+
import { ExpandIcon } from './ExpandIcon.mjs';
|
|
9
|
+
import _classes from './CodeHighlight.module.mjs';
|
|
10
|
+
import themeClasses from './CodeHighlight.theme.module.mjs';
|
|
11
11
|
|
|
12
12
|
var __defProp = Object.defineProperty;
|
|
13
13
|
var __defProps = Object.defineProperties;
|
|
@@ -182,6 +182,7 @@ const CodeHighlightTabs = factory((_props, ref) => {
|
|
|
182
182
|
));
|
|
183
183
|
});
|
|
184
184
|
CodeHighlightTabs.displayName = "@mantine/core/CodeHighlightTabs";
|
|
185
|
+
CodeHighlightTabs.classes = classes;
|
|
185
186
|
|
|
186
187
|
export { CodeHighlightTabs };
|
|
187
|
-
//# sourceMappingURL=CodeHighlightTabs.
|
|
188
|
+
//# sourceMappingURL=CodeHighlightTabs.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeHighlightTabs.mjs","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 | 'fileIcon';\n\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\n fileIcon={node.icon}\n getFileIcon={getFileIcon}\n fileName={node.fileName}\n {...getStyles('fileIcon')}\n />\n <span>{node.fileName}</span>\n </UnstyledButton>\n ));\n\n return (\n <Box {...getStyles('root')} mod={{ collapsed: !_expanded }} 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 aria-label={_expanded ? collapseCodeLabel : expandCodeLabel}\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\n onClick={copy}\n variant=\"none\"\n {...getStyles('control')}\n aria-label={copied ? copiedLabel : copyLabel}\n >\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 {expandCodeLabel}\n </UnstyledButton>\n </Box>\n );\n});\n\nCodeHighlightTabs.displayName = '@mantine/core/CodeHighlightTabs';\nCodeHighlightTabs.classes = classes;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyIcon.mjs","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":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpandIcon.mjs","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":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileIcon.mjs","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 className?: string;\n style?: React.CSSProperties;\n}\n\nexport function FileIcon({ fileIcon, fileName, getFileIcon, className, style }: FileIconProps) {\n if (fileIcon) {\n return (\n <span className={className} style={style}>\n {fileIcon}\n </span>\n );\n }\n\n if (getFileIcon && fileName) {\n return (\n <span className={className} style={style}>\n {getFileIcon(fileName)}\n </span>\n );\n }\n\n return null;\n}\n"],"names":[],"mappings":";;AACO,SAAS,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;AAChF,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,uBAAuB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;AACvF,GAAG;AACH,EAAE,IAAI,WAAW,IAAI,QAAQ,EAAE;AAC/B,IAAI,uBAAuB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpG,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd;;;;"}
|
|
@@ -2,8 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import cx from 'clsx';
|
|
3
3
|
import { factory, useProps, useStyles, Box } from '@mantine/core';
|
|
4
4
|
import hljs from 'highlight.js';
|
|
5
|
-
import _classes from './CodeHighlight.module.
|
|
6
|
-
import themeClasses from './CodeHighlight.theme.module.
|
|
5
|
+
import _classes from './CodeHighlight.module.mjs';
|
|
6
|
+
import themeClasses from './CodeHighlight.theme.module.mjs';
|
|
7
7
|
|
|
8
8
|
var __defProp = Object.defineProperty;
|
|
9
9
|
var __defProps = Object.defineProperties;
|
|
@@ -68,4 +68,4 @@ const InlineCodeHighlight = factory((_props, ref) => {
|
|
|
68
68
|
InlineCodeHighlight.displayName = "@mantine/core/InlineCodeHighlight";
|
|
69
69
|
|
|
70
70
|
export { InlineCodeHighlight };
|
|
71
|
-
//# sourceMappingURL=InlineCodeHighlight.
|
|
71
|
+
//# sourceMappingURL=InlineCodeHighlight.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineCodeHighlight.mjs","sources":["../src/InlineCodeHighlight.tsx"],"sourcesContent":["import React from 'react';\nimport cx from 'clsx';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n Factory,\n} from '@mantine/core';\nimport hljs from 'highlight.js';\nimport _classes from './CodeHighlight.module.css';\nimport themeClasses from './CodeHighlight.theme.module.css';\n\nconst classes = { ..._classes, code: cx(_classes.code, themeClasses.theme) };\n\nexport type InlineCodeHighlightStylesNames = 'code';\n\nexport interface InlineCodeHighlightProps\n extends BoxProps,\n StylesApiProps<InlineCodeHighlightFactory>,\n ElementProps<'div'> {\n /** Code to highlight */\n code: string;\n\n /** Code language, `'tsx'` by default */\n language?: string;\n}\n\nexport type InlineCodeHighlightFactory = Factory<{\n props: InlineCodeHighlightProps;\n ref: HTMLElement;\n stylesNames: InlineCodeHighlightStylesNames;\n}>;\n\nconst defaultProps: Partial<InlineCodeHighlightProps> = {\n language: 'tsx',\n};\n\nexport const InlineCodeHighlight = factory<InlineCodeHighlightFactory>((_props, ref) => {\n const props = useProps('InlineCodeHighlight', defaultProps, _props);\n const { classNames, className, style, styles, unstyled, vars, code, language, ...others } = props;\n\n const getStyles = useStyles<InlineCodeHighlightFactory>({\n name: 'InlineCodeHighlight',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n rootSelector: 'code',\n });\n\n const highlighted = hljs.highlight(code.trim(), { language: language! }).value;\n\n return (\n <Box\n {...getStyles('code')}\n component=\"code\"\n ref={ref}\n {...others}\n dangerouslySetInnerHTML={{ __html: highlighted }}\n />\n );\n});\n\nInlineCodeHighlight.displayName = '@mantine/core/InlineCodeHighlight';\n"],"names":[],"mappings":"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"}
|
package/esm/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-highlight.mjs","sources":["../src/use-highlight.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport hljs from 'highlight.js';\n\ninterface UseHighlightInput {\n code: string;\n language: string;\n highlightOnClient: boolean | undefined;\n}\n\nexport function useHighlight({ code, language, highlightOnClient }: UseHighlightInput) {\n const getHighlightedCode = () => hljs.highlight(code.trim(), { language: language! }).value;\n const [highlighted, setHighlighted] = useState(!highlightOnClient);\n const [highlightedCode, setHighlightedCode] = useState(\n highlightOnClient ? code : getHighlightedCode()\n );\n\n const getCodeProps = () =>\n highlighted\n ? { dangerouslySetInnerHTML: { __html: highlightedCode } }\n : { children: code.trim() };\n\n useEffect(() => {\n if (highlightOnClient) {\n setHighlightedCode(getHighlightedCode());\n setHighlighted(true);\n }\n }, []);\n\n return getCodeProps;\n}\n"],"names":[],"mappings":";;;AAEO,SAAS,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE;AACpE,EAAE,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC;AACnF,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACrE,EAAE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ;AACxD,IAAI,iBAAiB,GAAG,IAAI,GAAG,kBAAkB,EAAE;AACnD,GAAG,CAAC;AACJ,EAAE,MAAM,YAAY,GAAG,MAAM,WAAW,GAAG,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AAChI,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,iBAAiB,EAAE;AAC3B,MAAM,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAC/C,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;AAC3B,KAAK;AACL,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAE,OAAO,YAAY,CAAC;AACtB;;;;"}
|
package/lib/index.d.mts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { CodeHighlightTabs } from './CodeHighlightTabs';
|
|
2
|
+
export { CodeHighlight } from './CodeHighlight';
|
|
3
|
+
export { InlineCodeHighlight } from './InlineCodeHighlight';
|
|
4
|
+
export type { CodeHighlightTabsFactory, CodeHighlightTabsStylesNames, CodeHighlightTabsProps, CodeHighlightTabsCode, CodeHighlightTabsCssVariables, } from './CodeHighlightTabs';
|
|
5
|
+
export type { CodeHighlightFactory, CodeHighlightProps, CodeHighlightStylesNames, } from './CodeHighlight';
|
|
6
|
+
export type { InlineCodeHighlightFactory, InlineCodeHighlightProps, InlineCodeHighlightStylesNames, } from './InlineCodeHighlight';
|
package/package.json
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantine/code-highlight",
|
|
3
3
|
"description": "Code highlight with Mantine theme",
|
|
4
|
-
"version": "7.0.0",
|
|
4
|
+
"version": "7.0.1-alpha.0",
|
|
5
|
+
"main": "./cjs/index.js",
|
|
5
6
|
"types": "./lib/index.d.ts",
|
|
6
|
-
"module": "./esm/index.
|
|
7
|
+
"module": "./esm/index.mjs",
|
|
7
8
|
"exports": {
|
|
8
9
|
".": {
|
|
9
|
-
"import":
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
"import": {
|
|
11
|
+
"types": "./lib/index.d.mts",
|
|
12
|
+
"default": "./esm/index.mjs"
|
|
13
|
+
},
|
|
14
|
+
"require": {
|
|
15
|
+
"types": "./lib/index.d.ts",
|
|
16
|
+
"default": "./cjs/index.js"
|
|
17
|
+
}
|
|
12
18
|
},
|
|
13
19
|
"./styles.css": "./esm/index.css"
|
|
14
20
|
},
|
|
@@ -38,8 +44,8 @@
|
|
|
38
44
|
"syntax-highlight"
|
|
39
45
|
],
|
|
40
46
|
"peerDependencies": {
|
|
41
|
-
"@mantine/core": "7.0.0",
|
|
42
|
-
"@mantine/hooks": "7.0.0",
|
|
47
|
+
"@mantine/core": "7.0.1-alpha.0",
|
|
48
|
+
"@mantine/hooks": "7.0.1-alpha.0",
|
|
43
49
|
"react": "^18.2.0",
|
|
44
50
|
"react-dom": "^18.2.0"
|
|
45
51
|
},
|
|
@@ -15,6 +15,8 @@ describe('@mantine/code-highlight/CodeHighlight', () => {
|
|
|
15
15
|
extend: true,
|
|
16
16
|
variant: true,
|
|
17
17
|
size: true,
|
|
18
|
+
classes: true,
|
|
19
|
+
id: true,
|
|
18
20
|
refType: HTMLDivElement,
|
|
19
21
|
displayName: '@mantine/core/CodeHighlight',
|
|
20
22
|
stylesApiSelectors: ['root', 'code', 'copy', 'pre'],
|
package/src/CodeHighlight.tsx
CHANGED