import { Component, NodeTypes } from 'myst-util-to-react'; import { InformationCircleIcon, ExclamationIcon as OExclamationIcon, SpeakerphoneIcon, PencilAltIcon, ArrowCircleRightIcon, } from '@heroicons/react/outline'; import { ExclamationIcon as SExclamationIcon, ExclamationCircleIcon as SExclamationCircleIcon, XCircleIcon, LightBulbIcon, LightningBoltIcon, } from '@heroicons/react/solid'; import classNames from 'classnames'; // import { AdmonitionKind } from 'mystjs'; // TODO: get this from myst-spec? enum AdmonitionKind { admonition = 'admonition', attention = 'attention', caution = 'caution', danger = 'danger', error = 'error', important = 'important', hint = 'hint', note = 'note', seealso = 'seealso', tip = 'tip', warning = 'warning', } export const AdmonitionTitle: Component = (node, children) => { return children; }; export const Admonition: Component = (node, children) => { const [title, ...rest] = children as any[]; // TODO: react to classes as well! const isAdmonition = !node.kind || node.kind === AdmonitionKind.admonition; const isAttention = node.kind === AdmonitionKind.attention; const isCaution = node.kind === AdmonitionKind.caution; const isDanger = node.kind === AdmonitionKind.danger; const isError = node.kind === AdmonitionKind.error; const isImportant = node.kind === AdmonitionKind.important; const isHint = node.kind === AdmonitionKind.hint; const isNote = node.kind === AdmonitionKind.note; const isSeealso = node.kind === AdmonitionKind.seealso; const isTip = node.kind === AdmonitionKind.tip; const isWarning = node.kind === AdmonitionKind.warning; const iconClass = 'h-8 w-8 inline-block pl-2 mr-2 -translate-y-[1px]'; return ( ); }; export const admonitionRenderers: NodeTypes = { admonition: Admonition, admonitionTitle: AdmonitionTitle, };