Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import { createElement } from 'react';
import { create } from 'nano-css';
import {addon as addonCache} from 'nano-css/addon/cache'
import {addon as addonStable} from 'nano-css/addon/stable'
import {addon as addonNesting} from 'nano-css/addon/nesting'
import {addon as addonAtoms} from 'nano-css/addon/atoms'
import {addon as addonKeyframes} from 'nano-css/addon/keyframes'
import {addon as addonRule} from 'nano-css/addon/rule'
import {addon as addonSheet} from 'nano-css/addon/sheet'
import {addon as addonJsx} from 'nano-css/addon/jsx'
const nano = create({
pfx: `css-in-js-playground-`,
h: createElement
});
addonCache(nano);
addonStable(nano);
addonNesting(nano);
addonAtoms(nano);
addonKeyframes(nano);
addonRule(nano);
addonSheet(nano);
addonJsx(nano);
export default nano;
import '../src/patch';
import React from 'react';
import {storiesOf} from '@storybook/react';
import {action} from '@storybook/addon-actions';
import {linkTo} from '@storybook/addon-links';
import {create} from 'nano-css';
import {addon as addonRule} from 'nano-css/addon/rule';
const nano = create();
addonRule(nano);
const {rule} = nano;
const classNameRed = rule({
color: 'red'
});
storiesOf('classnames', module)
.add('className', () => <div>test</div>)
.add('class', () => <div class="{classNameRed}">test</div>)
.add('object', () => <div class="{{[classNameRed]:">test</div>)
.add('object, negative', () => <div class="{{[classNameRed]:">test</div>)
.add('long', () => <div class="{[null,">long</div>)
import { create } from 'nano-css';
import { addon as addonCache } from 'nano-css/addon/cache';
import { addon as addonNesting } from 'nano-css/addon/nesting';
import { addon as addonRule } from 'nano-css/addon/rule';
import { addon as addonSheet } from 'nano-css/addon/sheet';
const nano = create({
pfx: ''
});
addonCache(nano);
addonNesting(nano);
addonRule(nano);
addonSheet(nano);
const { rule, sheet } = nano;
export {
rule,
sheet
};
import { addon as addonStyled } from 'nano-css/addon/styled';
import { CssLikeObject } from 'nano-css/types/common';
import { IStyledComponentProps, IStylesOptions, IStylesProps } from './types/common';
interface INanoExtended extends NanoRenderer {
styled: (
tag: string,
) => (
styles: CssLikeObject,
dynamicTemplate?: (props: IStyledComponentProps) => CssLikeObject,
block?: string,
) => React.FunctionComponent;
}
const nano = create({ h: React.createElement });
addonRule(nano);
addonAtoms(nano);
addonKeyframes(nano);
addonJSX(nano);
addonStyle(nano);
addonStyled(nano);
addonNesting(nano);
const { keyframes, styled } = nano as INanoExtended;
export const px = (val: string | number): string => (typeof val === 'number' ? `${val}px` : val);
export function getMergedStyles(styles: IStylesProps | undefined): IStylesOptions {
return {
altColor: '#ccc',