UNPKG

react-rounded-border

Version:

React rounded border is a simple package that can add a round border to elements in React

129 lines (128 loc) 4.63 kB
function _define_property(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _object_spread(target) { for(var i = 1; i < arguments.length; i++){ var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === "function") { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function(key) { _define_property(target, key, source[key]); }); } return target; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _object_spread_props(target, source) { source = source != null ? source : {}; if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _object_without_properties(source, excluded) { if (source == null) return {}; var target = _object_without_properties_loose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for(i = 0; i < sourceSymbolKeys.length; i++){ key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _object_without_properties_loose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for(i = 0; i < sourceKeys.length; i++){ key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import useRoundedBorder from './use-rounded-border'; export default function(_param) { var { padding = 0, paddingTop, paddingLeft, paddingBottom, paddingRight, minBorderRadius = 0, borderRadius = 0, fill = 'white', stroke = 'none', backgroundProps = {} } = _param, props = _object_without_properties(_param, [ "padding", "paddingTop", "paddingLeft", "paddingBottom", "paddingRight", "minBorderRadius", "borderRadius", "fill", "stroke", "backgroundProps" ]); const { containerRef, svgRef } = useRoundedBorder({ minBorderRadius, borderRadius, paddingBottom: paddingBottom !== null && paddingBottom !== void 0 ? paddingBottom : padding, paddingRight: paddingRight !== null && paddingRight !== void 0 ? paddingRight : padding, paddingLeft: paddingLeft !== null && paddingLeft !== void 0 ? paddingLeft : padding, paddingTop: paddingTop !== null && paddingTop !== void 0 ? paddingTop : padding, fill, stroke }); return /*#__PURE__*/ _jsxs("div", _object_spread_props(_object_spread({ ref: containerRef }, props), { style: _object_spread({ position: 'relative', zIndex: 10 }, props.style), children: [ /*#__PURE__*/ _jsx("svg", _object_spread_props(_object_spread({ ref: svgRef }, backgroundProps), { style: _object_spread({ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', zIndex: -1 }, backgroundProps === null || backgroundProps === void 0 ? void 0 : backgroundProps.style) })), props.children ] })); }