@compositive/foundation
Version:
Compositive framework foundation package.
38 lines (35 loc) • 1.3 kB
JavaScript
import { __decorate } from 'tslib';
import { Memoized } from '@compositive/commons-memoize';
import { isObjectWithProperties, isOptional, isNumber } from '@compositive/commons-predicates';
import { Spec } from '@compositive/commons-spec';
import { Style } from '@compositive/primitives';
import '../../styling/resolveThemedStyleProperties.js';
import '../../styling/ThemedStyle.js';
import 'react';
const isRoundedCornersAttributes = isObjectWithProperties({
radius: isOptional(isNumber),
topLeft: isOptional(isNumber),
topRight: isOptional(isNumber),
bottomLeft: isOptional(isNumber),
bottomRight: isOptional(isNumber),
});
class RoundedCorners extends Spec(isRoundedCornersAttributes) {
constructor(radiusOrAttribs, previousSpec) {
super(typeof radiusOrAttribs === "number"
? { radius: radiusOrAttribs }
: radiusOrAttribs, previousSpec);
this.type = "corners";
}
process(parts, chain) {
return [parts.addInnerStyles(this._getStyle()), chain];
}
// FIXME: Use the other attributes
_getStyle() {
return new Style({ borderRadius: this.radius });
}
}
__decorate([
Memoized()
], RoundedCorners.prototype, "_getStyle", null);
export { RoundedCorners };
//# sourceMappingURL=RoundedCorners.js.map