UNPKG

@nex-ui/styled

Version:

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

30 lines (27 loc) 1.19 kB
import { jsx } from 'react/jsx-runtime'; import { registerStyles, insertStyles } from '@emotion/utils'; import { useInsertionEffectAlwaysWithSyncFallback } from '@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 })=>{ registerStyles(cache, serialized, isStringTag); const rules = useInsertionEffectAlwaysWithSyncFallback(()=>insertStyles(cache, serialized, isStringTag)); if (!isBrowser && rules !== undefined) { let serializedNames = serialized.name; let { next } = serialized; while(next !== undefined){ serializedNames += ` ${next.name}`; next = next.next; } return /*#__PURE__*/ jsx("style", { [`data-emotion`]: `${cache.key} ${serializedNames}`, dangerouslySetInnerHTML: { __html: rules }, nonce: cache.sheet.nonce }); } return null; }; Insertion.displayName = 'Insertion'; export { Insertion };