@nex-ui/styled
Version:
Styled API for creating atomic, theme-aware component styling.
33 lines (29 loc) • 1.3 kB
JavaScript
;
var jsxRuntime = require('react/jsx-runtime');
var utils = require('@emotion/utils');
var useInsertionEffectWithFallbacks = require('@emotion/use-insertion-effect-with-fallbacks');
/* istanbul ignore file */ // fork from http://github.com/emotion-js/emotion/blob/main/packages/react/src/emotion-element.tsx
const isBrowser = typeof document !== 'undefined';
const Insertion = ({ cache, serialized, isStringTag })=>{
utils.registerStyles(cache, serialized, isStringTag);
const rules = useInsertionEffectWithFallbacks.useInsertionEffectAlwaysWithSyncFallback(()=>utils.insertStyles(cache, serialized, isStringTag));
if (!isBrowser && rules !== undefined) {
let serializedNames = serialized.name;
let { next } = serialized;
while(next !== undefined){
serializedNames += ` ${next.name}`;
// eslint-disable-next-line prefer-destructuring
next = next.next;
}
return /*#__PURE__*/ jsxRuntime.jsx("style", {
[`data-emotion`]: `${cache.key} ${serializedNames}`,
dangerouslySetInnerHTML: {
__html: rules
},
nonce: cache.sheet.nonce
});
}
return null;
};
Insertion.displayName = 'Insertion';
exports.Insertion = Insertion;