ultra-icon
Version:
48 lines (45 loc) • 1.57 kB
JavaScript
import { jsx, css } from '@emotion/react';
import { forwardRef } from 'react';
import merge from './merge.js';
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
const iconStyles = (_props) => {
return css`
display: inline-flex;
align-items: center;
`;
};
const defaultProps = {
size: 18
};
const withWrapper = (Component) => {
const WrapperedComponent = forwardRef((p, ref) => {
const props = merge(defaultProps, p);
return /* @__PURE__ */ jsx("span", {
css: iconStyles(),
className: "ultra-icon"
}, /* @__PURE__ */ jsx(Component, __spreadProps(__spreadValues({}, props), {
ref
})));
});
WrapperedComponent.displayName = Component.displayName;
return WrapperedComponent;
};
export { withWrapper as default };