{"version":3,"file":"CodeHighlightControl.cjs","sources":["../../../src/CodeHighlight/CodeHighlightControl/CodeHighlightControl.tsx"],"sourcesContent":["import { JSX, splitProps } from 'solid-js';\nimport {\n  ActionIcon,\n  BoxProps,\n  polymorphicFactory,\n  PolymorphicFactory,\n  StylesApiProps,\n  Tooltip,\n  useProps,\n} from '@empoleon/core';\nimport { useCodeHighlightContext } from '../CodeHighlight.context';\n\nexport interface CodeHighlightControlProps\n  extends BoxProps,\n    StylesApiProps<CodeHighlightControlFactory> {\n  /** Control icon */\n  children?: JSX.Element;\n\n  /** Label displayed in the tooltip when the control is hovered */\n  tooltipLabel?: string;\n}\n\nexport type CodeHighlightControlFactory = PolymorphicFactory<{\n  props: CodeHighlightControlProps;\n  defaultRef: HTMLButtonElement;\n  defaultComponent: 'button';\n}>;\n\nconst defaultProps: Partial<CodeHighlightControlProps> = {};\n\nexport const CodeHighlightControl = polymorphicFactory<CodeHighlightControlFactory>(_props => {\n  const props = useProps('CodeHighlightControl', defaultProps, _props);\n  const [local, others] = splitProps(props, [\n    'children',\n    'vars',\n    'tooltipLabel',\n    'ref'\n  ]);\n  const ctx = useCodeHighlightContext();\n  const tooltipStyles = ctx.getStyles('controlTooltip');\n\n  const control = (\n    <ActionIcon\n      ref={local.ref}\n      {...ctx.getStyles('control')}\n      {...others}\n      variant=\"none\"\n      data-code-color-scheme={ctx.codeColorScheme}\n    >\n      {local.children}\n    </ActionIcon>\n  );\n\n  if (local.tooltipLabel) {\n    return (\n      <Tooltip\n        label={local.tooltipLabel}\n        fz=\"sm\"\n        position=\"bottom\"\n        classNames={{ tooltip: tooltipStyles.className }}\n        styles={{ tooltip: tooltipStyles.style }}\n        data-code-color-scheme={ctx.codeColorScheme}\n        transitionProps={{ duration: 0 }}\n        withinPortal={false}\n      >\n        {(props) => <span {...props}>{control}</span>}\n      </Tooltip>\n    );\n  }\n\n  return control;\n});\n\nCodeHighlightControl.displayName = '@empoleon/code-highlight/CodeHighlightControl';\n"],"names":["defaultProps","CodeHighlightControl","polymorphicFactory","_props","props","useProps","local","others","splitProps","ctx","useCodeHighlightContext","tooltipStyles","getStyles","control","ActionIcon","_$mergeProps","ref","r$","_ref$","variant","data-code-color-scheme","codeColorScheme","children","tooltipLabel","_$createComponent","Tooltip","label","fz","position","classNames","tooltip","className","styles","style","transitionProps","duration","withinPortal","_el$","displayName"],"mappings":";;;;;;;;AA4BA,MAAMA,eAAmD,EAAC;MAE7CC,oBAAA,GAAuBC,wBAAgDC,MAAA,IAAU;EAC5F,MAAMC,KAAA,GAAQC,aAAA,CAAS,sBAAA,EAAwBL,YAAA,EAAcG,MAAM,CAAA;AACnE,EAAA,MAAM,CAACG,KAAA,EAAOC,MAAM,CAAA,GAAIC,mBAAWJ,KAAA,EAAO,CACxC,UAAA,EACA,MAAA,EACA,cAAA,EACA,KAAA,CACD,CAAA;AACD,EAAA,MAAMK,MAAMC,6CAAA,EAAwB;AACpC,EAAA,MAAMC,aAAA,GAAgBF,GAAA,CAAIG,SAAA,CAAU,gBAAgB,CAAA;AAEpD,EAAA,MAAMC,8BACHC,eAAA,EAAAC,cAAA,CAAA;AAAAC,IAAAA,GAAAA,CAAAC,EAAA,EAAA;AAAA,MAAA,IAAAC,KAAA,GACMZ,KAAA,CAAMU,GAAA;MAAA,OAAAE,KAAA,KAAA,UAAA,GAAAA,KAAA,CAAAD,EAAA,IAANX,KAAA,CAAMU,GAAA,GAAAC,EAAA;AAAA,IAAA;AAAA,GAAA,EAAA,MACPR,GAAA,CAAIG,UAAU,SAAS,CAAA,EACvBL,MAAA,EAAA;IACJY,OAAA,EAAA,MAAA;AAAA,IAAA,KAAA,wBAAA,CAAAC,GAAA;MAAA,OACwBX,GAAA,CAAIY,eAAA;AAAA,IAAA,CAAA;AAAA,IAAA,IAAAC,QAAAA,GAAA;MAAA,OAE3BhB,MAAMgB,QAAA;AAAA,IAAA;GAAA,CAAA,CAPR;EAWH,IAAIhB,MAAMiB,YAAA,EAAc;IACtB,OAAAC,mBAAA,CACGC,YAAA,EAAA;AAAA,MAAA,IACCC;eAAOpB,KAAA,CAAMiB,YAAA;AAAA,MAAA,CAAA;MACbI,EAAA,EAAA,IAAA;MACAC,QAAA,EAAA,QAAA;AAAA,MAAA,IACAC,UAAAA,GAAA;QAAA,OAAY;UAAEC,OAAA,EAASnB,aAAA,CAAcoB;SAAU;AAAA,MAAA,CAAA;AAAA,MAAA,IAC/CC,MAAAA,GAAA;QAAA,OAAQ;UAAEF,OAAA,EAASnB,aAAA,CAAcsB;SAAM;AAAA,MAAA,CAAA;AAAA,MAAA,KAAA,wBAAA,CAAAb,GAAA;QAAA,OACfX,GAAA,CAAIY,eAAA;AAAA,MAAA,CAAA;AAC5Ba,MAAAA,eAAA,EAAiB;AAAEC,QAAAA,QAAA,EAAU;OAAE;AAC/BC,MAAAA,YAAA,EAAc,KAAA;AAAAd,MAAAA,QAAA,EAEZlB,MAAAA,IAAAA,CAAAA,MAAAA;QAAAA,IAAAA,IAAAA,GAAAA,MAAAA,EAAAA;QAAAA,UAAAA,CAAAA,IAAAA,EAAoBA,MAAAA,EAAAA,KAAAA,EAAAA,IAAAA,CAAAA;QAAAA,UAAAA,CAAAA,IAAAA,EAAQS,OAAA,CAAA;AAAA,QAAA,OAAAwB,IAAA;AAAA,MAAA,CAAA;AAAjB,KAAA,CAAA;AAGnB,EAAA;AAEA,EAAA,OAAOxB,OAAA;AACT,CAAC;AAEDZ,oBAAA,CAAqBqC,WAAA,GAAc,+CAAA;;;;"}