{"version":3,"file":"CodeHighlight.mjs","sources":["../../src/CodeHighlight/CodeHighlight.tsx"],"sourcesContent":["import { JSX, splitProps } from 'solid-js';\nimport cx from 'clsx';\nimport {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getRadius,\n  getThemeColor,\n  EmpoleonColor,\n  EmpoleonRadius,\n  rem,\n  ScrollArea,\n  StylesApiProps,\n  UnstyledButton,\n  useComputedColorScheme,\n  useProps,\n  useStyles,\n} from '@empoleon/core';\nimport { useUncontrolled } from '@empoleon/hooks';\nimport { useHighlight } from '../CodeHighlightProvider/CodeHighlightProvider';\nimport { CodeHighlightContextProvider } from './CodeHighlight.context';\nimport { CodeHighlightControl } from './CodeHighlightControl/CodeHighlightControl';\nimport { CopyCodeButton } from './CopyCodeButton/CopyCodeButton';\nimport { ExpandCodeButton } from './ExpandCodeButton/ExpandCodeButton';\nimport classes from '../CodeHighlight.module.css';\n\nexport type CodeHighlightStylesNames =\n  | 'codeHighlight'\n  | 'pre'\n  | 'code'\n  | 'control'\n  | 'controlTooltip'\n  | 'controls'\n  | 'scrollarea'\n  | 'showCodeButton';\n\nexport type CodeHighlightCssVariables = {\n  codeHighlight: '--ch-max-height' | '--ch-background' | '--ch-radius';\n};\n\nexport interface CodeHighlightSettings {\n  /** Label for copy button in default state, `'Copy'` by default */\n  copyLabel?: string;\n\n  /** Label for copy button in copied state, `'Copied'` by default */\n  copiedLabel?: string;\n\n  /** Uncontrolled expanded default state */\n  defaultExpanded?: boolean;\n\n  /** Controlled expanded state */\n  expanded?: boolean;\n\n  /** Called when expanded state changes */\n  onExpandedChange?: (expanded: boolean) => void;\n\n  /** Max height of collapsed state, `180px` by default */\n  maxCollapsedHeight?: number | string;\n\n  /** Determines whether the copy button should be displayed, `true` by default  */\n  withCopyButton?: boolean;\n\n  /** Determines whether the expand/collapse button should be displayed, `false` by default */\n  withExpandButton?: boolean;\n\n  /** Label for expand button, `'Expand code'` by default */\n  expandCodeLabel?: string;\n\n  /** Label for collapse button, `'Collapse code'` by default */\n  collapseCodeLabel?: string;\n\n  /** Controls background color of the code. By default, the value depends on color scheme. */\n  background?: EmpoleonColor;\n\n  /** Key of `theme.radius` or any valid CSS value to set border-radius, `0` by default */\n  radius?: EmpoleonRadius;\n\n  /** Determines whether the code block should have a border, `false` by default */\n  withBorder?: boolean;\n\n  /** Extra controls to display in the controls list */\n  controls?: JSX.Element[];\n\n  /** Set to change contrast of controls and other elements if you prefer to use dark code color scheme in light mode or light code color scheme in dark mode */\n  codeColorScheme?: 'dark' | 'light';\n}\n\nexport interface CodeHighlightProps\n  extends CodeHighlightSettings,\n    BoxProps,\n    StylesApiProps<CodeHighlightFactory>,\n    ElementProps<'div'> {\n  __withOffset?: boolean;\n  __staticSelector?: string;\n\n  /** If set, the code will be rendered as inline element without `<pre>`, `false` by default */\n  __inline?: boolean;\n\n  /** Code to highlight */\n  code: string;\n\n  /** Language of the code, used for syntax highlighting */\n  language?: string;\n}\n\nexport type CodeHighlightFactory = Factory<{\n  props: CodeHighlightProps;\n  ref: HTMLDivElement;\n  stylesNames: CodeHighlightStylesNames;\n  vars: CodeHighlightCssVariables;\n  staticComponents: {\n    Control: typeof CodeHighlightControl;\n  };\n}>;\n\nconst defaultProps: Partial<CodeHighlightProps> = {\n  withCopyButton: true,\n  expandCodeLabel: 'Expand code',\n};\n\nconst varsResolver = createVarsResolver<CodeHighlightFactory>(\n  (theme, { maxCollapsedHeight, background, radius }) => ({\n    codeHighlight: {\n      '--ch-max-height': rem(maxCollapsedHeight),\n      '--ch-background': background ? getThemeColor(background, theme) : undefined,\n      '--ch-radius': typeof radius !== 'undefined' ? getRadius(radius) : undefined,\n    },\n  })\n);\n\nexport const CodeHighlight = factory<CodeHighlightFactory>(_props => {\n  const props = useProps('CodeHighlight', defaultProps, _props);\n  const [local, others] = splitProps(props, [\n    'classNames',\n    'className',\n    'style',\n    'styles',\n    'unstyled',\n    'vars',\n    'code',\n    'copiedLabel',\n    'copyLabel',\n    'defaultExpanded',\n    'expanded',\n    'onExpandedChange',\n    'maxCollapsedHeight',\n    'withCopyButton',\n    'withExpandButton',\n    'expandCodeLabel',\n    'collapseCodeLabel',\n    'radius',\n    'background',\n    'withBorder',\n    'controls',\n    'language',\n    'codeColorScheme',\n    '__withOffset',\n    '__inline',\n    '__staticSelector',\n    'ref'\n  ]);\n\n  const getStyles = useStyles<CodeHighlightFactory>({\n    name: local.__staticSelector || 'CodeHighlight',\n    classes,\n    props,\n    className: local.className,\n    style: local.style,\n    classNames: local.classNames,\n    styles: local.styles,\n    unstyled: local.unstyled,\n    vars: local.vars,\n    varsResolver,\n    rootSelector: 'codeHighlight',\n  });\n\n  const [_expanded, setExpanded] = useUncontrolled({\n    value: () => local.expanded,\n    defaultValue: local.defaultExpanded!,\n    finalValue: true,\n    onChange: local.onExpandedChange,\n  });\n\n  const shouldDisplayControls =\n    (local.controls && local.controls.length > 0) || local.withExpandButton || local.withCopyButton;\n\n  const colorScheme = useComputedColorScheme();\n  const highlight = useHighlight();\n  const highlightedCode = highlight({ code: local.code.trim(), language: local.language, colorScheme });\n\n  const codeContent = highlightedCode.isHighlighted\n    ? { dangerouslySetInnerHTML: { __html: highlightedCode.highlightedCode } }\n    : { children: local.code.trim() };\n\n  const safeOthers = Object.fromEntries(\n    Object.entries(others).filter(([key]) =>\n      !key.startsWith('on') || key === 'onClick' // Keep only onClick if needed\n    )\n  );\n\n\n  if (local.__inline) {\n    return (\n      <Box\n        component=\"code\"\n        ref={local.ref as any}\n        {...safeOthers}\n        {...highlightedCode.codeElementProps}\n        {...getStyles('codeHighlight', {\n          className: cx(highlightedCode.codeElementProps?.className, local.className),\n          style: [{ ...highlightedCode.codeElementProps?.style }, local.style],\n        })}\n        data-with-border={local.withBorder || undefined}\n        {...codeContent}\n      />\n    );\n  }\n\n  return (\n    <CodeHighlightContextProvider value={{ getStyles, codeColorScheme: local.codeColorScheme }}>\n      <Box\n        ref={local.ref}\n        {...getStyles('codeHighlight')}\n        {...others}\n        dir=\"ltr\"\n        data-code-color-scheme={local.codeColorScheme}\n        data-with-border={local.withBorder || undefined}\n      >\n        {shouldDisplayControls && (\n          <div {...getStyles('controls')} data-with-offset={local.__withOffset || undefined}>\n            {local.controls}\n\n            {local.withExpandButton && (\n              <ExpandCodeButton\n                expanded={_expanded()}\n                onExpand={setExpanded}\n                expandCodeLabel={local.expandCodeLabel}\n                collapseCodeLabel={local.collapseCodeLabel}\n              />\n            )}\n            {local.withCopyButton && (\n              <CopyCodeButton code={local.code} copiedLabel={local.copiedLabel} copyLabel={local.copyLabel} />\n            )}\n          </div>\n        )}\n\n        <ScrollArea\n          type=\"hover\"\n          scrollbarSize={4}\n          dir=\"ltr\"\n          offsetScrollbars={false}\n          data-collapsed={!_expanded || undefined}\n          {...getStyles('scrollarea')}\n        >\n          <pre {...getStyles('pre')} data-with-offset={local.__withOffset || undefined}>\n            <code\n              {...highlightedCode.codeElementProps}\n              {...getStyles('code', {\n                className: highlightedCode.codeElementProps?.className,\n                style: highlightedCode.codeElementProps?.style,\n              })}\n              {...codeContent}\n            />\n          </pre>\n        </ScrollArea>\n\n        <UnstyledButton\n          {...getStyles('showCodeButton')}\n          mod={{ hidden: _expanded }}\n          onClick={() => setExpanded(true)}\n          data-code-color-scheme={local.codeColorScheme}\n        >\n          {local.expandCodeLabel}\n        </UnstyledButton>\n      </Box>\n    </CodeHighlightContextProvider>\n  );\n});\n\nCodeHighlight.displayName = '@empoleon/code-highlight/CodeHighlight';\nCodeHighlight.classes = classes;\nCodeHighlight.Control = CodeHighlightControl;\n"],"names":["defaultProps","withCopyButton","expandCodeLabel","varsResolver","createVarsResolver","theme","_ref","maxCollapsedHeight","background","radius","codeHighlight","rem","getThemeColor","getRadius","CodeHighlight","factory","_props","props","useProps","local","others","splitProps","getStyles","useStyles","name","__staticSelector","classes","className","style","classNames","styles","unstyled","vars","rootSelector","_expanded","setExpanded","useUncontrolled","value","expanded","defaultValue","defaultExpanded","finalValue","onChange","onExpandedChange","shouldDisplayControls","controls","length","withExpandButton","colorScheme","useComputedColorScheme","highlight","useHighlight","highlightedCode","code","trim","language","codeContent","isHighlighted","dangerouslySetInnerHTML","__html","children","safeOthers","Object","fromEntries","entries","filter","_ref2","key","startsWith","__inline","_$createComponent","Box","_$mergeProps","component","ref","r$","_ref$","codeElementProps","cx","data-with-border","withBorder","CodeHighlightContextProvider","codeColorScheme","_ref$2","dir","data-code-color-scheme","_$memo","_el$3","_tmpl$2","_$spread","data-with-offset","__withOffset","_$insert","_c$","ExpandCodeButton","onExpand","collapseCodeLabel","_c$2","CopyCodeButton","copiedLabel","copyLabel","ScrollArea","type","scrollbarSize","offsetScrollbars","_el$","_tmpl$","_el$2","firstChild","UnstyledButton","mod","hidden","onClick","displayName","Control","CodeHighlightControl"],"mappings":"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"}