@mantine/code-highlight 8.0.0-alpha.3 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/cjs/CodeHighlight/CodeHighlightControl/CodeHighlightControl.cjs +0 -1
  2. package/cjs/CodeHighlight/CodeHighlightControl/CodeHighlightControl.cjs.map +1 -1
  3. package/esm/CodeHighlight/CodeHighlightControl/CodeHighlightControl.mjs +0 -1
  4. package/esm/CodeHighlight/CodeHighlightControl/CodeHighlightControl.mjs.map +1 -1
  5. package/lib/CodeHighlight/CodeHighlightControl/CodeHighlightControl.d.ts +1 -1
  6. package/package.json +3 -3
  7. package/cjs/CodeHighlight.cjs +0 -65
  8. package/cjs/CodeHighlight.cjs.map +0 -1
  9. package/cjs/CodeHighlight.theme.module.css.cjs +0 -7
  10. package/cjs/CodeHighlight.theme.module.css.cjs.map +0 -1
  11. package/cjs/CodeHighlightTabs.cjs +0 -172
  12. package/cjs/CodeHighlightTabs.cjs.map +0 -1
  13. package/cjs/CopyIcon.cjs +0 -34
  14. package/cjs/CopyIcon.cjs.map +0 -1
  15. package/cjs/ExpandIcon.cjs +0 -40
  16. package/cjs/ExpandIcon.cjs.map +0 -1
  17. package/cjs/FileIcon.cjs +0 -17
  18. package/cjs/FileIcon.cjs.map +0 -1
  19. package/cjs/InlineCodeHighlight.cjs +0 -49
  20. package/cjs/InlineCodeHighlight.cjs.map +0 -1
  21. package/cjs/use-highlight.cjs +0 -32
  22. package/cjs/use-highlight.cjs.map +0 -1
  23. package/esm/CodeHighlight.mjs +0 -59
  24. package/esm/CodeHighlight.mjs.map +0 -1
  25. package/esm/CodeHighlight.theme.module.css.mjs +0 -5
  26. package/esm/CodeHighlight.theme.module.css.mjs.map +0 -1
  27. package/esm/CodeHighlightTabs.mjs +0 -165
  28. package/esm/CodeHighlightTabs.mjs.map +0 -1
  29. package/esm/CopyIcon.mjs +0 -32
  30. package/esm/CopyIcon.mjs.map +0 -1
  31. package/esm/ExpandIcon.mjs +0 -38
  32. package/esm/ExpandIcon.mjs.map +0 -1
  33. package/esm/FileIcon.mjs +0 -15
  34. package/esm/FileIcon.mjs.map +0 -1
  35. package/esm/InlineCodeHighlight.mjs +0 -42
  36. package/esm/InlineCodeHighlight.mjs.map +0 -1
  37. package/esm/use-highlight.mjs +0 -26
  38. package/esm/use-highlight.mjs.map +0 -1
  39. package/lib/CodeHighlight.d.ts +0 -26
  40. package/lib/CodeHighlightTabs.d.ts +0 -55
  41. package/lib/CopyIcon.d.ts +0 -8
  42. package/lib/ExpandIcon.d.ts +0 -5
  43. package/lib/FileIcon.d.ts +0 -9
  44. package/lib/InlineCodeHighlight.d.ts +0 -18
  45. package/lib/use-highlight.d.ts +0 -15
@@ -1,26 +0,0 @@
1
- 'use client';
2
- import { useState, useEffect } from 'react';
3
- import hljs from 'highlight.js';
4
-
5
- function useHighlight({ code, language, highlightOnClient }) {
6
- const lang = hljs.getLanguage(language) ? language : "plaintext";
7
- const getHighlightedCode = () => hljs.highlight(code.trim(), { language: lang }).value;
8
- const [highlighted, setHighlighted] = useState(!highlightOnClient);
9
- const [highlightedCode, setHighlightedCode] = useState(
10
- highlightOnClient ? code : getHighlightedCode()
11
- );
12
- const getCodeProps = () => highlighted ? { dangerouslySetInnerHTML: { __html: highlightedCode } } : { children: code.trim() };
13
- useEffect(() => {
14
- if (highlightOnClient) {
15
- setHighlightedCode(getHighlightedCode());
16
- setHighlighted(true);
17
- }
18
- }, []);
19
- useEffect(() => {
20
- setHighlightedCode(getHighlightedCode());
21
- }, [code]);
22
- return getCodeProps;
23
- }
24
-
25
- export { useHighlight };
26
- //# sourceMappingURL=use-highlight.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-highlight.mjs","sources":["../src/use-highlight.ts"],"sourcesContent":["import { useEffect, useState } 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 lang = hljs.getLanguage(language) ? language : 'plaintext';\n const getHighlightedCode = () => hljs.highlight(code.trim(), { language: lang }).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 useEffect(() => {\n setHighlightedCode(getHighlightedCode());\n }, [code]);\n\n return getCodeProps;\n}\n"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import { BoxProps, ElementProps, Factory, StylesApiProps } from '@mantine/core';
2
- export type CodeHighlightStylesNames = 'root' | 'code' | 'pre' | 'copy';
3
- export interface CodeHighlightProps extends BoxProps, StylesApiProps<CodeHighlightFactory>, ElementProps<'div'> {
4
- /** Code to highlight */
5
- code: string;
6
- /** Code language, `'tsx'` by default */
7
- language?: string;
8
- /** Determines whether copy button should be displayed, `true` by default */
9
- withCopyButton?: boolean;
10
- /** Copy tooltip label, `'Copy code'` by default */
11
- copyLabel?: string;
12
- /** Copied tooltip label, `'Copied'` by default */
13
- copiedLabel?: string;
14
- /** Determines whether code should be highlighted only after component is mounted to the dom (disables code highlight on server), `false` by default */
15
- highlightOnClient?: boolean;
16
- }
17
- export type CodeHighlightFactory = Factory<{
18
- props: CodeHighlightProps;
19
- ref: HTMLDivElement;
20
- stylesNames: CodeHighlightStylesNames;
21
- }>;
22
- export declare const CodeHighlight: import("@mantine/core").MantineComponent<{
23
- props: CodeHighlightProps;
24
- ref: HTMLDivElement;
25
- stylesNames: CodeHighlightStylesNames;
26
- }>;
@@ -1,55 +0,0 @@
1
- import { BoxProps, ElementProps, Factory, StylesApiProps } from '@mantine/core';
2
- export type CodeHighlightTabsStylesNames = 'root' | 'code' | 'codeWrapper' | 'showCodeButton' | 'pre' | 'controls' | 'control' | 'header' | 'file' | 'files' | 'fileIcon';
3
- export type CodeHighlightTabsCssVariables = {
4
- root: '--ch-max-collapsed-height';
5
- };
6
- export interface CodeHighlightTabsCode {
7
- language?: string;
8
- code: string;
9
- fileName?: string;
10
- icon?: React.ReactNode;
11
- }
12
- export interface CodeHighlightTabsProps extends BoxProps, StylesApiProps<CodeHighlightTabsFactory>, ElementProps<'div'> {
13
- /** Code to highlight with meta data (file name and icon) */
14
- code: CodeHighlightTabsCode | CodeHighlightTabsCode[];
15
- /** Default active tab index */
16
- defaultActiveTab?: number;
17
- /** Index of controlled active tab state */
18
- activeTab?: number;
19
- /** Called when tab changes */
20
- onTabChange?: (tab: number) => void;
21
- /** Determines whether header with file names and copy button should be rendered, `true` by default */
22
- withHeader?: boolean;
23
- /** Copy tooltip label, `'Copy code'` by default */
24
- copyLabel?: string;
25
- /** Copied tooltip label, `'Copied'` by default */
26
- copiedLabel?: string;
27
- /** Function that returns icon based on file name */
28
- getFileIcon?: (fileName: string) => React.ReactNode;
29
- /** `max-height` of code in collapsed state */
30
- maxCollapsedHeight?: React.CSSProperties['maxHeight'];
31
- /** Controlled expanded state */
32
- expanded?: boolean;
33
- /** Uncontrolled expanded state initial value */
34
- defaultExpanded?: boolean;
35
- /** Called when expanded state changes */
36
- onExpandedChange?: (expanded: boolean) => void;
37
- /** Expand button label and tooltip, `'Expand code'` by default */
38
- expandCodeLabel?: string;
39
- /** Collapse button label and tooltip, `'Collapse code'` by default */
40
- collapseCodeLabel?: string;
41
- /** Determines whether to show the expand button, `false` by default */
42
- withExpandButton?: boolean;
43
- /** Determines whether copy button should be displayed, `true` by default */
44
- withCopyButton?: boolean;
45
- }
46
- export type CodeHighlightTabsFactory = Factory<{
47
- props: CodeHighlightTabsProps;
48
- ref: HTMLDivElement;
49
- stylesNames: CodeHighlightTabsStylesNames;
50
- }>;
51
- export declare const CodeHighlightTabs: import("@mantine/core").MantineComponent<{
52
- props: CodeHighlightTabsProps;
53
- ref: HTMLDivElement;
54
- stylesNames: CodeHighlightTabsStylesNames;
55
- }>;
package/lib/CopyIcon.d.ts DELETED
@@ -1,8 +0,0 @@
1
- interface CopyIconProps extends React.ComponentPropsWithoutRef<'svg'> {
2
- copied: boolean;
3
- }
4
- export declare function CopyIcon({ copied, style, ...others }: CopyIconProps): import("react/jsx-runtime").JSX.Element;
5
- export declare namespace CopyIcon {
6
- var displayName: string;
7
- }
8
- export {};
@@ -1,5 +0,0 @@
1
- interface ExpandIconProps extends React.ComponentPropsWithoutRef<'svg'> {
2
- expanded: boolean;
3
- }
4
- export declare function ExpandIcon({ expanded, style, ...others }: ExpandIconProps): import("react/jsx-runtime").JSX.Element;
5
- export {};
package/lib/FileIcon.d.ts DELETED
@@ -1,9 +0,0 @@
1
- interface FileIconProps {
2
- fileName: string | undefined;
3
- getFileIcon?: ((fileName: string) => React.ReactNode) | undefined;
4
- fileIcon: React.ReactNode | undefined;
5
- className?: string;
6
- style?: React.CSSProperties;
7
- }
8
- export declare function FileIcon({ fileIcon, fileName, getFileIcon, className, style }: FileIconProps): import("react/jsx-runtime").JSX.Element | null;
9
- export {};
@@ -1,18 +0,0 @@
1
- import { BoxProps, ElementProps, Factory, StylesApiProps } from '@mantine/core';
2
- export type InlineCodeHighlightStylesNames = 'code';
3
- export interface InlineCodeHighlightProps extends BoxProps, StylesApiProps<InlineCodeHighlightFactory>, ElementProps<'div'> {
4
- /** Code to highlight */
5
- code: string;
6
- /** Code language, `'tsx'` by default */
7
- language?: string;
8
- }
9
- export type InlineCodeHighlightFactory = Factory<{
10
- props: InlineCodeHighlightProps;
11
- ref: HTMLElement;
12
- stylesNames: InlineCodeHighlightStylesNames;
13
- }>;
14
- export declare const InlineCodeHighlight: import("@mantine/core").MantineComponent<{
15
- props: InlineCodeHighlightProps;
16
- ref: HTMLElement;
17
- stylesNames: InlineCodeHighlightStylesNames;
18
- }>;
@@ -1,15 +0,0 @@
1
- interface UseHighlightInput {
2
- code: string;
3
- language: string;
4
- highlightOnClient: boolean | undefined;
5
- }
6
- export declare function useHighlight({ code, language, highlightOnClient }: UseHighlightInput): () => {
7
- dangerouslySetInnerHTML: {
8
- __html: string;
9
- };
10
- children?: undefined;
11
- } | {
12
- children: string;
13
- dangerouslySetInnerHTML?: undefined;
14
- };
15
- export {};