nice-ui
Version:
React design system, components, and utilities
31 lines (30 loc) • 1.44 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const nano_theme_1 = require("nano-theme");
const MarkdownFullWidthBlock_1 = require("../util/MarkdownFullWidthBlock");
const isFirstLevelBlockElement_1 = require("../util/isFirstLevelBlockElement");
const MarkdownBlock_1 = require("../util/MarkdownBlock");
const blockquoteClass = (0, nano_theme_1.rule)({
pad: '0 0 0 16px !important',
mar: '2px 0 2px 16px !important',
trs: 'border 0.2s',
[nano_theme_1.m1]: {
mar: '0 !important',
pad: '0 0 0 12px !important',
},
});
const renderBlockquote = (renderers, ast, idx, props, state) => {
const theme = (0, nano_theme_1.useTheme)();
const dynamicBlockquoteClass = (0, nano_theme_1.drule)({
bdl: `6px solid ${theme.g(0, 0.08)}`,
'&:hover': {
bdl: `6px solid ${theme.g(0, 0.16)}`,
},
});
const element = (React.createElement(MarkdownBlock_1.default, { idx: idx },
React.createElement("blockquote", { className: blockquoteClass + dynamicBlockquoteClass }, renderers.children(renderers, ast, idx, props, state))));
const doCenterAsTopLevelBlock = props.isFullWidth && (0, isFirstLevelBlockElement_1.default)(ast.nodes[idx], ast);
return doCenterAsTopLevelBlock ? React.createElement(MarkdownFullWidthBlock_1.default, null, element) : element;
};
exports.default = renderBlockquote;
;