tailwind-to-style 1.0.8 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +29 -22
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -5710,7 +5710,6 @@ const breakpoints = {
5710
5710
 
5711
5711
  function tws(classNames, convertToJson) {
5712
5712
  const cssString = generateTailwindCssString().replace(/\s\s+/g, " ");
5713
-
5714
5713
  const cssObject = convertCssToObject(cssString);
5715
5714
 
5716
5715
  const classes = classNames.split(" ");
@@ -5739,34 +5738,42 @@ function tws(classNames, convertToJson) {
5739
5738
  return cssResult;
5740
5739
  }
5741
5740
 
5742
- function twsx(obj, parentSelector) {
5741
+ function twsx(styles, parentSelector = "") {
5743
5742
  let cssString = "";
5744
5743
 
5745
- for (const key in obj) {
5746
- const newSelector = parentSelector
5747
- ? key.startsWith(".") || key.startsWith(":")
5748
- ? `${parentSelector}${key}`
5749
- : `${parentSelector} ${key}`
5744
+ for (const key in styles) {
5745
+ const value = styles[key];
5746
+
5747
+ let newSelector = key.includes("&")
5748
+ ? key.replace(/&/g, parentSelector)
5749
+ : parentSelector
5750
+ ? `${parentSelector} ${key}`
5750
5751
  : key;
5751
5752
 
5752
- if (Array.isArray(obj[key])) {
5753
- const [baseStyle, nestedStyles] = obj[key];
5754
- cssString += `${newSelector} { ${tws(baseStyle)} } `;
5753
+ if (Array.isArray(value)) {
5754
+ const [baseStyles, nestedRules] = value;
5755
5755
 
5756
- if (typeof nestedStyles === "object") {
5757
- cssString += twsx(nestedStyles, newSelector);
5758
- }
5759
- } else if (typeof obj[key] === "object" && key !== "breakpoint") {
5760
- cssString += twsx(obj[key], newSelector);
5761
- } else if (key === "breakpoint") {
5762
- const mediaQueries = obj[key];
5763
- for (const mediaKey in mediaQueries) {
5764
- if (breakpoints[mediaKey]) {
5765
- cssString += `${breakpoints[mediaKey]} { ${parentSelector} { ${tws(
5766
- mediaQueries[mediaKey]
5767
- )} } } `;
5756
+ if (breakpoints[key]) {
5757
+ newSelector = newSelector.replace(new RegExp(`\\b${key}\\b`, "g"), "");
5758
+ cssString += `${breakpoints[key]} { ${newSelector} { ${tws(
5759
+ baseStyles
5760
+ )}} ${twsx(nestedRules, newSelector)}}`;
5761
+ } else {
5762
+ cssString += `${newSelector} { ${tws(baseStyles)} } `;
5763
+
5764
+ if (typeof nestedRules === "object") {
5765
+ cssString += twsx(nestedRules, newSelector);
5768
5766
  }
5769
5767
  }
5768
+ } else if (typeof value === "object" && !breakpoints[key]) {
5769
+ cssString += twsx(value, newSelector);
5770
+ } else if (breakpoints[key]) {
5771
+ newSelector = newSelector.replace(new RegExp(`\\b${key}\\b`, "g"), "");
5772
+ cssString += `
5773
+ ${breakpoints[key]} { ${newSelector} { ${tws(value)} }}
5774
+ `;
5775
+ } else {
5776
+ cssString += `${newSelector} { ${tws(value)} } `;
5770
5777
  }
5771
5778
  }
5772
5779
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tailwind-to-style",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
4
4
  "description": "Convert tailwind classes to inline style",
5
5
  "main": "index.js",
6
6
  "scripts": {