nice-ui
Version:
React design system, components, and utilities
59 lines (58 loc) • 2.45 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.NotchedOutline = void 0;
const React = require("react");
const nano_theme_1 = require("nano-theme");
const styles_1 = require("../../styles");
const context_1 = require("../../styles/context");
const blockClass = (0, nano_theme_1.drule)({
d: 'block',
pos: 'relative',
bdrad: '6px',
bxz: 'border-box',
mr: 0,
});
const legendClass = (0, nano_theme_1.drule)({
...styles_1.fonts.get('ui', 'mid', 2),
pad: '0 5px',
fz: '12px',
});
const NotchedOutline = ({ className = '', style, label, active, disabled, children, }) => {
const styles = (0, context_1.useStyles)();
const Comp = label ? 'fieldset' : 'div';
return (React.createElement(Comp, { className: className +
blockClass({
bd: disabled
? `1px dotted ${styles.g(0.8)}`
: active
? `1px solid ${styles.col.get('success', 'border-1')}`
: `1px solid ${styles.col.get('neutral', 'border-1')}`,
bxsh: active && !disabled ? `0 0 0 1px ${styles.col.get('success', 'border-3')}` : 'none',
pd: !label ? '5px 8px' : '0 8px 6px',
'& *': {
op: disabled ? 0.5 : 1,
},
'&:hover': {
bd: disabled
? `1px solid ${styles.g(0.8)}`
: active
? `1px solid ${styles.col.get('success', 'border-2')}`
: `1px solid ${styles.col.get('neutral', 'border-2')}`,
bxsh: active && !disabled ? `0 0 0 2px ${styles.col.get('success', 'border-2')}` : 'none',
'& *': {
op: 1,
},
},
}), style: style },
!!label && (React.createElement("legend", { className: legendClass({
bg: active ? styles.col.map('bg') : 'transparent',
col: disabled ? styles.g(0.6) : active ? styles.g(0.3) : styles.g(0.5),
'fieldset:hover &': {
col: disabled ? styles.g(0.6) : active ? styles.g(0.1) : styles.g(0.5),
},
}), style: {
padding: label ? undefined : 0,
} }, label || '\uFEFF')),
children));
};
exports.NotchedOutline = NotchedOutline;
;