UNPKG

@nex-ui/styled

Version:

Styled API for creating atomic, theme-aware component styling.

33 lines (29 loc) 1.3 kB
'use strict'; 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;