import React from 'react'; import { Box, space, BoxProps, color, themeColor } from '@blockstack/ui'; import css from '@styled-system/css'; import { Heading, Pre, THead, SmartLink, TData, Table, InlineCode, } from '@components/mdx/components'; import { Text } from '@components/typography'; import { border } from '@common/utils'; import { useRouter } from 'next/router'; const BaseHeading: React.FC = React.memo(props => ( )); export const H1: React.FC = props => ; export const H2: React.FC = props => ; export const H3: React.FC = props => ; export const H4: React.FC = props => ; export const H5: React.FC = props => ; export const H6: React.FC = props => ; export const Br: React.FC = props => ; export const Hr: React.FC = props => ( ); export const P: React.FC = props => ; export const Ol: React.FC = props => ( ); export const Ul: React.FC = props => ( ); export const Li: React.FC = props => ; const getAlertStyles = (className: string) => { if (className?.includes('alert-success')) { return {}; } if (className?.includes('alert-info')) { return {}; } if (className?.includes('alert-warning')) { return { bg: '#FEF0E3', borderColor: '#F7AA00', accent: '#F7AA00', }; } if (className?.includes('alert-danger')) { return { bg: '#FCEBEC', borderColor: themeColor('red'), accent: themeColor('red'), }; } return {}; }; export const BlockQuote: React.FC = ({ children, className, ...rest }) => { const { accent, ...styles } = getAlertStyles(className); return ( {children} ); }; const imgix = 'https://docs-stacks.imgix.net/'; const params = '?auto=compress,format'; const useImgix = (src: string) => { let _src = src; const router = useRouter(); if (!src.startsWith('http')) { const path = src.startsWith('/') ? '' : router.pathname.split('/')[1] + '/'; _src = `${imgix + path + src + params}`; } return _src; }; export const Img: React.FC = ({ src: _src, ...rest }) => { const src = useImgix(_src); const props = { src, ...rest, }; return ; }; const Code: React.FC = props => ; export const MDXComponents = { h1: H1, h2: H2, h3: H3, h4: H4, h5: H5, h6: H6, inlineCode: InlineCode, code: Code, pre: Pre, br: Br, hr: Hr, table: Table, th: THead, td: TData, a: SmartLink, p: P, ul: Ul, ol: Ol, li: Li, img: Img, blockquote: BlockQuote, };