New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@teleporthq/teleport-plugin-css

Package Overview
Dependencies
Maintainers
5
Versions
133
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@teleporthq/teleport-plugin-css - npm Package Compare versions

Comparing version

to
0.15.0

61

__tests__/style-sheet.ts

@@ -1,10 +0,29 @@

import { staticNode } from '@teleporthq/teleport-uidl-builders'
import {
UIDLDesignTokens,
UIDLStyleSetDefinition,
UIDLStyleSetTokenReference,
} from '@teleporthq/teleport-types'
import { staticNode, dynamicNode } from '@teleporthq/teleport-uidl-builders'
import { createStyleSheetPlugin } from '../src/style-sheet'
import { setUpStructureWithHASTChunk } from './mocks'
describe('plugin-css-modules-style-sheet', () => {
it('should generate css modules when the styleSetDefinitions are presnet', async () => {
describe('plugin-css-style-sheet', () => {
it('should generate css when the styleSetDefinitions are presnet', async () => {
const plugin = createStyleSheetPlugin()
const structure = setUpStructureWithHASTChunk()
structure.uidl.styleSetDefinitions = {
const tokens: UIDLDesignTokens = {
'blue-500': {
type: 'static',
content: '#9999ff',
},
'blue-600': {
type: 'static',
content: '#6b7db3',
},
'red-500': {
type: 'static',
content: '#ff9999',
},
}
const styleSetDefinitions: Record<string, UIDLStyleSetDefinition> = {
'5ecfa1233b8e50f60ea2b64d': {

@@ -37,3 +56,4 @@ id: '5ecfa1233b8e50f60ea2b64d',

content: {
backgrouns: staticNode('purple'),
background: staticNode('purple'),
color: dynamicNode('token', 'red-500') as UIDLStyleSetTokenReference,
},

@@ -45,3 +65,3 @@ },

content: {
background: staticNode('yellow'),
background: dynamicNode('token', 'blue-500') as UIDLStyleSetTokenReference,
},

@@ -56,12 +76,31 @@ },

}
structure.uidl = {
...structure.uidl,
styleSetDefinitions,
designLanguage: {
tokens,
},
}
const { chunks } = await plugin(structure)
const cssFile = chunks.find((chunk) => chunk.fileType === 'css')
const { content } = cssFile
expect(cssFile).toBeDefined()
expect(cssFile.content).toContain('.primaryButton')
expect(cssFile.content).toContain('secondaryButton')
expect(cssFile.content).toContain('.conditionalButton:hover')
expect(cssFile.content).toContain('@media(max-width: 991px)')
expect(cssFile.content).not.toContain('5ecfa1233b8e50f60ea2b64b')
expect(content).toContain(`:root {
--red-500: #ff9999;
--blue-500: #9999ff;
--blue-600: #6b7db3;
}
`)
expect(content).toContain(`.conditionalButton:hover {
background: var(--blue-500);
}
`)
expect(content).toContain(`color: var(--red-500)`)
expect(content).toContain('.primaryButton')
expect(content).toContain('secondaryButton')
expect(content).toContain('.conditionalButton:hover')
expect(content).toContain('@media(max-width: 991px)')
expect(content).not.toContain('5ecfa1233b8e50f60ea2b64b')
})

@@ -68,0 +107,0 @@

22

dist/cjs/index.js

@@ -56,7 +56,3 @@ "use strict";

exports.createCSSPlugin = function (config) {
var _a = config || {}, _b = _a.chunkName, chunkName = _b === void 0 ? 'style-chunk' : _b, _c = _a.templateChunkName, templateChunkName = _c === void 0 ? 'template-chunk' : _c, _d = _a.componentDecoratorChunkName, componentDecoratorChunkName = _d === void 0 ? 'component-decorator' : _d, _e = _a.inlineStyleAttributeKey, inlineStyleAttributeKey = _e === void 0 ? 'style' : _e,
// @ts-ignore
_f = _a.classAttributeName,
// @ts-ignore
classAttributeName = _f === void 0 ? 'class' : _f, _g = _a.templateStyle, templateStyle = _g === void 0 ? 'html' : _g, _h = _a.declareDependency, declareDependency = _h === void 0 ? 'none' : _h, _j = _a.forceScoping, forceScoping = _j === void 0 ? false : _j;
var _a = config || {}, _b = _a.chunkName, chunkName = _b === void 0 ? 'style-chunk' : _b, _c = _a.templateChunkName, templateChunkName = _c === void 0 ? 'template-chunk' : _c, _d = _a.componentDecoratorChunkName, componentDecoratorChunkName = _d === void 0 ? 'component-decorator' : _d, _e = _a.inlineStyleAttributeKey, inlineStyleAttributeKey = _e === void 0 ? 'style' : _e, _f = _a.classAttributeName, classAttributeName = _f === void 0 ? 'class' : _f, _g = _a.templateStyle, templateStyle = _g === void 0 ? 'html' : _g, _h = _a.declareDependency, declareDependency = _h === void 0 ? 'none' : _h, _j = _a.forceScoping, forceScoping = _j === void 0 ? false : _j;
var cssPlugin = function (structure) { return __awaiter(void 0, void 0, void 0, function () {

@@ -93,7 +89,6 @@ var uidl, chunks, dependencies, options, projectStyleSet, node, templateChunk, componentDecoratorChunk, templateLookup, propsPrefix, jssStylesArray, isProjectStyleReferred, mediaStylesMap, cssFileName, decoratorAST, decoratorParam;

if (style) {
var _b = teleport_shared_1.UIDLUtils.splitDynamicAndStaticStyles(style), staticStyles = _b.staticStyles, dynamicStyles = _b.dynamicStyles;
var _b = teleport_shared_1.UIDLUtils.splitDynamicAndStaticStyles(style), staticStyles = _b.staticStyles, dynamicStyles = _b.dynamicStyles, tokenStyles = _b.tokenStyles;
var collectedStyles = __assign(__assign({}, teleport_plugin_common_1.StyleUtils.getContentOfStyleObject(staticStyles)), teleport_plugin_common_1.StyleUtils.getCSSVariablesContentFromTokenStyles(tokenStyles));
if (Object.keys(staticStyles).length > 0) {
jssStylesArray.push(teleport_plugin_common_1.StyleBuilders.createCSSClass(className,
// @ts-ignore
teleport_plugin_common_1.StyleUtils.getContentOfStyleObject(staticStyles)));
jssStylesArray.push(teleport_plugin_common_1.StyleBuilders.createCSSClass(className, collectedStyles));
appendClassName = true;

@@ -128,3 +123,4 @@ }

they need be directly applied in the node. */
var staticStyles = teleport_shared_1.UIDLUtils.splitDynamicAndStaticStyles(styleRef.content.styles).staticStyles;
var _c = teleport_shared_1.UIDLUtils.splitDynamicAndStaticStyles(styleRef.content.styles), staticStyles = _c.staticStyles, tokenStyles = _c.tokenStyles;
var collectedStyles = __assign(__assign({}, teleport_plugin_common_1.StyleUtils.getContentOfStyleObject(staticStyles)), teleport_plugin_common_1.StyleUtils.getCSSVariablesContentFromTokenStyles(tokenStyles));
if (staticStyles && Object.keys(staticStyles).length === 0) {

@@ -138,8 +134,6 @@ return;

var maxWidth = condition.maxWidth;
mediaStylesMap[maxWidth] = __assign(__assign({}, mediaStylesMap[maxWidth]), (_a = {}, _a[className] = teleport_plugin_common_1.StyleUtils.getContentOfStyleObject(staticStyles), _a));
mediaStylesMap[maxWidth] = __assign(__assign({}, mediaStylesMap[maxWidth]), (_a = {}, _a[className] = collectedStyles, _a));
}
if (condition.conditionType === 'element-state') {
jssStylesArray.push(teleport_plugin_common_1.StyleBuilders.createCSSClassWithSelector(className, "&:" + condition.content,
// @ts-ignore
teleport_plugin_common_1.StyleUtils.getContentOfStyleObject(staticStyles)));
jssStylesArray.push(teleport_plugin_common_1.StyleBuilders.createCSSClassWithSelector(className, "&:" + condition.content, collectedStyles));
}

@@ -146,0 +140,0 @@ appendClassName = true;

@@ -51,2 +51,3 @@ "use strict";

var teleport_plugin_common_1 = require("@teleporthq/teleport-plugin-common");
var teleport_shared_1 = require("@teleporthq/teleport-shared");
var teleport_types_1 = require("@teleporthq/teleport-types");

@@ -56,6 +57,7 @@ exports.createStyleSheetPlugin = function (config) {

var styleSheetPlugin = function (structure) { return __awaiter(void 0, void 0, void 0, function () {
var uidl, chunks, styleSetDefinitions, cssMap, mediaStylesMap;
return __generator(this, function (_a) {
var uidl, chunks, styleSetDefinitions, _a, designLanguage, _b, tokens, cssMap, mediaStylesMap;
return __generator(this, function (_c) {
uidl = structure.uidl, chunks = structure.chunks;
styleSetDefinitions = uidl.styleSetDefinitions;
styleSetDefinitions = uidl.styleSetDefinitions, _a = uidl.designLanguage, designLanguage = _a === void 0 ? {} : _a;
_b = designLanguage.tokens, tokens = _b === void 0 ? {} : _b;
if (!styleSetDefinitions || Object.keys(styleSetDefinitions).length === 0) {

@@ -66,7 +68,10 @@ return [2 /*return*/];

mediaStylesMap = {};
if (Object.keys(tokens).length > 0) {
cssMap.push(teleport_plugin_common_1.StyleBuilders.createCSSClassWithSelector('@global', ':root', teleport_plugin_common_1.StyleUtils.getTokensContentFromTokensObject(tokens)));
}
Object.values(styleSetDefinitions).forEach(function (style) {
var name = style.name, content = style.content, _a = style.conditions, conditions = _a === void 0 ? [] : _a;
cssMap.push(teleport_plugin_common_1.StyleBuilders.createCSSClass(name,
// @ts-ignore
teleport_plugin_common_1.StyleUtils.getContentOfStyleObject(content)));
var _b = teleport_shared_1.UIDLUtils.splitDynamicAndStaticStyles(content), staticStyles = _b.staticStyles, tokenStyles = _b.tokenStyles;
var collectedStyles = __assign(__assign({}, teleport_plugin_common_1.StyleUtils.getContentOfStyleObject(staticStyles)), teleport_plugin_common_1.StyleUtils.getCSSVariablesContentFromTokenStyles(tokenStyles));
cssMap.push(teleport_plugin_common_1.StyleBuilders.createCSSClass(name, collectedStyles));
if (conditions.length === 0) {

@@ -77,9 +82,9 @@ return;

var _a;
var _b = teleport_shared_1.UIDLUtils.splitDynamicAndStaticStyles(styleRef.content), staticValues = _b.staticStyles, tokenValues = _b.tokenStyles;
var collecedMediaStyles = __assign(__assign({}, teleport_plugin_common_1.StyleUtils.getContentOfStyleObject(staticValues)), teleport_plugin_common_1.StyleUtils.getCSSVariablesContentFromTokenStyles(tokenValues));
if (styleRef.type === 'element-state') {
cssMap.push(teleport_plugin_common_1.StyleBuilders.createCSSClassWithSelector(name, "&:" + styleRef.meta.state,
// @ts-ignore
teleport_plugin_common_1.StyleUtils.getContentOfStyleObject(styleRef.content)));
cssMap.push(teleport_plugin_common_1.StyleBuilders.createCSSClassWithSelector(name, "&:" + styleRef.meta.state, collecedMediaStyles));
}
if (styleRef.type === 'screen-size') {
mediaStylesMap[styleRef.meta.maxWidth] = __assign(__assign({}, mediaStylesMap[styleRef.meta.maxWidth]), (_a = {}, _a[name] = teleport_plugin_common_1.StyleUtils.getContentOfStyleObject(styleRef.content), _a));
mediaStylesMap[styleRef.meta.maxWidth] = __assign(__assign({}, mediaStylesMap[styleRef.meta.maxWidth]), (_a = {}, _a[name] = collecedMediaStyles, _a));
}

@@ -86,0 +91,0 @@ });

@@ -6,5 +6,3 @@ import { StringUtils, UIDLUtils } from '@teleporthq/teleport-shared';

export const createCSSPlugin = (config) => {
const { chunkName = 'style-chunk', templateChunkName = 'template-chunk', componentDecoratorChunkName = 'component-decorator', inlineStyleAttributeKey = 'style',
// @ts-ignore
classAttributeName = 'class', templateStyle = 'html', declareDependency = 'none', forceScoping = false, } = config || {};
const { chunkName = 'style-chunk', templateChunkName = 'template-chunk', componentDecoratorChunkName = 'component-decorator', inlineStyleAttributeKey = 'style', classAttributeName = 'class', templateStyle = 'html', declareDependency = 'none', forceScoping = false, } = config || {};
const cssPlugin = async (structure) => {

@@ -41,7 +39,9 @@ var _a;

if (style) {
const { staticStyles, dynamicStyles } = UIDLUtils.splitDynamicAndStaticStyles(style);
const { staticStyles, dynamicStyles, tokenStyles } = UIDLUtils.splitDynamicAndStaticStyles(style);
const collectedStyles = {
...StyleUtils.getContentOfStyleObject(staticStyles),
...StyleUtils.getCSSVariablesContentFromTokenStyles(tokenStyles),
};
if (Object.keys(staticStyles).length > 0) {
jssStylesArray.push(StyleBuilders.createCSSClass(className,
// @ts-ignore
StyleUtils.getContentOfStyleObject(staticStyles)));
jssStylesArray.push(StyleBuilders.createCSSClass(className, collectedStyles));
appendClassName = true;

@@ -73,3 +73,7 @@ }

they need be directly applied in the node. */
const { staticStyles } = UIDLUtils.splitDynamicAndStaticStyles(styleRef.content.styles);
const { staticStyles, tokenStyles } = UIDLUtils.splitDynamicAndStaticStyles(styleRef.content.styles);
const collectedStyles = {
...StyleUtils.getContentOfStyleObject(staticStyles),
...StyleUtils.getCSSVariablesContentFromTokenStyles(tokenStyles),
};
if (staticStyles && Object.keys(staticStyles).length === 0) {

@@ -85,9 +89,7 @@ return;

...mediaStylesMap[maxWidth],
[className]: StyleUtils.getContentOfStyleObject(staticStyles),
[className]: collectedStyles,
};
}
if (condition.conditionType === 'element-state') {
jssStylesArray.push(StyleBuilders.createCSSClassWithSelector(className, `&:${condition.content}`,
// @ts-ignore
StyleUtils.getContentOfStyleObject(staticStyles)));
jssStylesArray.push(StyleBuilders.createCSSClassWithSelector(className, `&:${condition.content}`, collectedStyles));
}

@@ -94,0 +96,0 @@ appendClassName = true;

import { StyleUtils, StyleBuilders } from '@teleporthq/teleport-plugin-common';
import { UIDLUtils } from '@teleporthq/teleport-shared';
import { ChunkType, FileType, } from '@teleporthq/teleport-types';

@@ -7,3 +8,4 @@ export const createStyleSheetPlugin = (config) => {

const { uidl, chunks } = structure;
const { styleSetDefinitions } = uidl;
const { styleSetDefinitions, designLanguage = {} } = uidl;
const { tokens = {} } = designLanguage;
if (!styleSetDefinitions || Object.keys(styleSetDefinitions).length === 0) {

@@ -14,7 +16,13 @@ return;

const mediaStylesMap = {};
if (Object.keys(tokens).length > 0) {
cssMap.push(StyleBuilders.createCSSClassWithSelector('@global', ':root', StyleUtils.getTokensContentFromTokensObject(tokens)));
}
Object.values(styleSetDefinitions).forEach((style) => {
const { name, content, conditions = [] } = style;
cssMap.push(StyleBuilders.createCSSClass(name,
// @ts-ignore
StyleUtils.getContentOfStyleObject(content)));
const { staticStyles, tokenStyles } = UIDLUtils.splitDynamicAndStaticStyles(content);
const collectedStyles = {
...StyleUtils.getContentOfStyleObject(staticStyles),
...StyleUtils.getCSSVariablesContentFromTokenStyles(tokenStyles),
};
cssMap.push(StyleBuilders.createCSSClass(name, collectedStyles));
if (conditions.length === 0) {

@@ -24,6 +32,9 @@ return;

conditions.forEach((styleRef) => {
const { staticStyles: staticValues, tokenStyles: tokenValues, } = UIDLUtils.splitDynamicAndStaticStyles(styleRef.content);
const collecedMediaStyles = {
...StyleUtils.getContentOfStyleObject(staticValues),
...StyleUtils.getCSSVariablesContentFromTokenStyles(tokenValues),
};
if (styleRef.type === 'element-state') {
cssMap.push(StyleBuilders.createCSSClassWithSelector(name, `&:${styleRef.meta.state}`,
// @ts-ignore
StyleUtils.getContentOfStyleObject(styleRef.content)));
cssMap.push(StyleBuilders.createCSSClassWithSelector(name, `&:${styleRef.meta.state}`, collecedMediaStyles));
}

@@ -33,3 +44,3 @@ if (styleRef.type === 'screen-size') {

...mediaStylesMap[styleRef.meta.maxWidth],
[name]: StyleUtils.getContentOfStyleObject(styleRef.content),
[name]: collecedMediaStyles,
};

@@ -36,0 +47,0 @@ }

{
"name": "@teleporthq/teleport-plugin-css",
"version": "0.14.0",
"version": "0.15.0",
"description": "A plugin for creating the styles into external css files",

@@ -30,7 +30,7 @@ "author": "teleportHQ",

"@babel/types": "^7.5.5",
"@teleporthq/teleport-plugin-common": "^0.14.0",
"@teleporthq/teleport-shared": "^0.14.0",
"@teleporthq/teleport-types": "^0.14.0"
"@teleporthq/teleport-plugin-common": "^0.15.0",
"@teleporthq/teleport-shared": "^0.15.0",
"@teleporthq/teleport-types": "^0.15.0"
},
"gitHead": "e99e1bf2597c20e7b90f2452dd43b3687abbe765"
"gitHead": "397f2e55be8419d8b060dfd96485297fc1169535"
}

@@ -34,3 +34,2 @@ import { StringUtils, UIDLUtils } from '@teleporthq/teleport-shared'

inlineStyleAttributeKey = 'style',
// @ts-ignore
classAttributeName = 'class',

@@ -86,12 +85,12 @@ templateStyle = 'html',

if (style) {
const { staticStyles, dynamicStyles } = UIDLUtils.splitDynamicAndStaticStyles(style)
const { staticStyles, dynamicStyles, tokenStyles } = UIDLUtils.splitDynamicAndStaticStyles(
style
)
const collectedStyles = {
...StyleUtils.getContentOfStyleObject(staticStyles),
...StyleUtils.getCSSVariablesContentFromTokenStyles(tokenStyles),
} as Record<string, string | number>
if (Object.keys(staticStyles).length > 0) {
jssStylesArray.push(
StyleBuilders.createCSSClass(
className,
// @ts-ignore
StyleUtils.getContentOfStyleObject(staticStyles)
)
)
jssStylesArray.push(StyleBuilders.createCSSClass(className, collectedStyles))

@@ -135,5 +134,9 @@ appendClassName = true

they need be directly applied in the node. */
const { staticStyles } = UIDLUtils.splitDynamicAndStaticStyles(
const { staticStyles, tokenStyles } = UIDLUtils.splitDynamicAndStaticStyles(
styleRef.content.styles
)
const collectedStyles = {
...StyleUtils.getContentOfStyleObject(staticStyles),
...StyleUtils.getCSSVariablesContentFromTokenStyles(tokenStyles),
} as Record<string, string | number>

@@ -151,3 +154,3 @@ if (staticStyles && Object.keys(staticStyles).length === 0) {

...mediaStylesMap[maxWidth],
[className]: StyleUtils.getContentOfStyleObject(staticStyles),
[className]: collectedStyles,
}

@@ -161,4 +164,3 @@ }

`&:${condition.content}`,
// @ts-ignore
StyleUtils.getContentOfStyleObject(staticStyles)
collectedStyles
)

@@ -165,0 +167,0 @@ )

import { StyleUtils, StyleBuilders } from '@teleporthq/teleport-plugin-common'
import { UIDLUtils } from '@teleporthq/teleport-shared'
import {

@@ -17,3 +18,4 @@ ComponentPlugin,

const { uidl, chunks } = structure
const { styleSetDefinitions } = uidl
const { styleSetDefinitions, designLanguage = {} } = uidl
const { tokens = {} } = designLanguage

@@ -27,12 +29,21 @@ if (!styleSetDefinitions || Object.keys(styleSetDefinitions).length === 0) {

Object.values(styleSetDefinitions).forEach((style) => {
const { name, content, conditions = [] } = style
if (Object.keys(tokens).length > 0) {
cssMap.push(
StyleBuilders.createCSSClass(
name,
// @ts-ignore
StyleUtils.getContentOfStyleObject(content)
StyleBuilders.createCSSClassWithSelector(
'@global',
':root',
StyleUtils.getTokensContentFromTokensObject(tokens)
)
)
}
Object.values(styleSetDefinitions).forEach((style) => {
const { name, content, conditions = [] } = style
const { staticStyles, tokenStyles } = UIDLUtils.splitDynamicAndStaticStyles(content)
const collectedStyles = {
...StyleUtils.getContentOfStyleObject(staticStyles),
...StyleUtils.getCSSVariablesContentFromTokenStyles(tokenStyles),
} as Record<string, string | number>
cssMap.push(StyleBuilders.createCSSClass(name, collectedStyles))
if (conditions.length === 0) {

@@ -42,2 +53,11 @@ return

conditions.forEach((styleRef) => {
const {
staticStyles: staticValues,
tokenStyles: tokenValues,
} = UIDLUtils.splitDynamicAndStaticStyles(styleRef.content)
const collecedMediaStyles = {
...StyleUtils.getContentOfStyleObject(staticValues),
...StyleUtils.getCSSVariablesContentFromTokenStyles(tokenValues),
} as Record<string, string | number>
if (styleRef.type === 'element-state') {

@@ -48,4 +68,3 @@ cssMap.push(

`&:${styleRef.meta.state}`,
// @ts-ignore
StyleUtils.getContentOfStyleObject(styleRef.content)
collecedMediaStyles
)

@@ -58,3 +77,3 @@ )

...mediaStylesMap[styleRef.meta.maxWidth],
[name]: StyleUtils.getContentOfStyleObject(styleRef.content),
[name]: collecedMediaStyles,
}

@@ -61,0 +80,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet