@slimr/css 2.1.72 → 2.1.76
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.
- package/cjs/addCss.js +1 -1
- package/cjs/addCss.js.map +1 -1
- package/cjs/addCss.ts +11 -11
- package/cjs/createClass.d.ts +1 -1
- package/cjs/createClass.js +30 -30
- package/cjs/createClass.js.map +1 -1
- package/cjs/createClass.ts +106 -106
- package/cjs/index.d.ts +4 -4
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/index.ts +4 -4
- package/cjs/shorthandProps.d.ts +1 -1
- package/cjs/shorthandProps.js +31 -31
- package/cjs/shorthandProps.js.map +1 -1
- package/cjs/shorthandProps.ts +100 -100
- package/esm/addCss.js +2 -2
- package/esm/addCss.js.map +1 -1
- package/esm/addCss.ts +11 -11
- package/esm/createClass.d.ts +1 -1
- package/esm/createClass.js +33 -33
- package/esm/createClass.js.map +1 -1
- package/esm/createClass.ts +106 -106
- package/esm/index.d.ts +4 -4
- package/esm/index.js +4 -4
- package/esm/index.js.map +1 -1
- package/esm/index.ts +4 -4
- package/esm/shorthandProps.d.ts +1 -1
- package/esm/shorthandProps.js +31 -31
- package/esm/shorthandProps.js.map +1 -1
- package/esm/shorthandProps.ts +100 -100
- package/package.json +2 -2
- package/src/addCss.ts +11 -11
- package/src/createClass.ts +106 -106
- package/src/index.ts +4 -4
- package/src/shorthandProps.ts +100 -100
- package/tsconfig.json +5 -5
package/cjs/shorthandProps.ts
CHANGED
|
@@ -2,117 +2,117 @@
|
|
|
2
2
|
* All the shorthand props that can be used in the css prop
|
|
3
3
|
*/
|
|
4
4
|
export interface ShorthandProps {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
5
|
+
/** shorthand for css:align-items */
|
|
6
|
+
ai?: string
|
|
7
|
+
/** shorthand for css:border */
|
|
8
|
+
b?: string | number
|
|
9
|
+
/** shorthand for css:border-radius */
|
|
10
|
+
br?: string | number
|
|
11
|
+
/** shorthand for css:background */
|
|
12
|
+
bg?: string
|
|
13
|
+
/** shorthand for css:color */
|
|
14
|
+
c?: string
|
|
15
|
+
/** shorthand for css:display */
|
|
16
|
+
d?: string
|
|
17
|
+
/** shorthand for css:flex */
|
|
18
|
+
f?: string
|
|
19
|
+
/** shorthand for css:flex-direction */
|
|
20
|
+
fd?: string
|
|
21
|
+
/** shorthand for css:height */
|
|
22
|
+
h?: number | string
|
|
23
|
+
/** shorthand for css:inset */
|
|
24
|
+
i?: number | string
|
|
25
|
+
/** shorthand for css:justify-content */
|
|
26
|
+
jc?: string
|
|
27
|
+
/** shorthand for css:margin */
|
|
28
|
+
m?: number | string
|
|
29
|
+
/** shorthand for css:margin-left */
|
|
30
|
+
ml?: number | string
|
|
31
|
+
/** shorthand for css:margin-right */
|
|
32
|
+
mr?: number | string
|
|
33
|
+
/** shorthand for css:margin-top */
|
|
34
|
+
mt?: number | string
|
|
35
|
+
/** shorthand for css:margin-bottom */
|
|
36
|
+
mb?: number | string
|
|
37
|
+
/** shorthand for css:margin-top & margin-bottom */
|
|
38
|
+
my?: number | string
|
|
39
|
+
/** shorthand for css:margin-left & margin-right */
|
|
40
|
+
mx?: number | string
|
|
41
|
+
/** shorthand for css:max-width */
|
|
42
|
+
maxW?: number | string
|
|
43
|
+
/** shorthand for css:min-width */
|
|
44
|
+
minW?: number | string
|
|
45
|
+
/** shorthand for css:padding */
|
|
46
|
+
p?: number | string
|
|
47
|
+
/** shorthand for css:padding-left */
|
|
48
|
+
pl?: number | string
|
|
49
|
+
/** shorthand for css:padding-right */
|
|
50
|
+
pr?: number | string
|
|
51
|
+
/** shorthand for css:padding-top */
|
|
52
|
+
pt?: number | string
|
|
53
|
+
/** shorthand for css:padding-bottom */
|
|
54
|
+
pb?: number | string
|
|
55
|
+
/** shorthand for css:padding-top & padding-bottom */
|
|
56
|
+
py?: number | string
|
|
57
|
+
/** shorthand for css:padding-left & padding-right */
|
|
58
|
+
px?: number | string
|
|
59
|
+
/** shorthand for css:position */
|
|
60
|
+
pos?: number | string
|
|
61
|
+
/** shorthand for css:text-align */
|
|
62
|
+
ta?: string
|
|
63
|
+
/** shorthand for css:width */
|
|
64
|
+
w?: number | string
|
|
65
|
+
/** shorthand for css:z-index */
|
|
66
|
+
z?: number | string
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
70
|
* Expand short-hand css props to full
|
|
71
71
|
*/
|
|
72
72
|
export function expandShorthands(css: string) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
73
|
+
css = `\n${css}` // inject a newline to make the regex easier
|
|
74
|
+
// Handle 'mx', 'my', 'px', 'py'
|
|
75
|
+
css = css
|
|
76
|
+
.replace(/([mp])x:([^;]*)/g, "$1l:$2;\n$1r:$2")
|
|
77
|
+
.replace(/([mp])y:([^;]*);/g, "$1t:$2;\n$1b:$2")
|
|
78
|
+
Object.entries(shorthandPropsMap).forEach(([k, v]) => {
|
|
79
|
+
css = css.replace(new RegExp(`([ \n\t;])${k}:`, "g"), `$1${v}:`)
|
|
80
|
+
})
|
|
81
|
+
return css.trim()
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
85
|
* Map shorthand props to their full css prop
|
|
86
86
|
*/
|
|
87
87
|
export const shorthandPropsMap: Record<
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
keyof Omit<ShorthandProps, "mx" | "my" | "px" | "py">,
|
|
89
|
+
string
|
|
90
90
|
> = {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
91
|
+
ai: "align-items",
|
|
92
|
+
b: "border",
|
|
93
|
+
br: "border-radius",
|
|
94
|
+
bg: "background",
|
|
95
|
+
c: "color",
|
|
96
|
+
d: "display",
|
|
97
|
+
f: "flex",
|
|
98
|
+
fd: "flex-direction",
|
|
99
|
+
i: "inset",
|
|
100
|
+
h: "height",
|
|
101
|
+
jc: "justify-content",
|
|
102
|
+
m: "margin",
|
|
103
|
+
ml: "margin-left",
|
|
104
|
+
mr: "margin-right",
|
|
105
|
+
mt: "margin-top",
|
|
106
|
+
mb: "margin-bottom",
|
|
107
|
+
maxW: "max-width",
|
|
108
|
+
minW: "min-width",
|
|
109
|
+
p: "padding",
|
|
110
|
+
pl: "padding-left",
|
|
111
|
+
pr: "padding-right",
|
|
112
|
+
pt: "padding-top",
|
|
113
|
+
pb: "padding-bottom",
|
|
114
|
+
pos: "position",
|
|
115
|
+
ta: "text-align",
|
|
116
|
+
w: "width",
|
|
117
|
+
z: "z-index",
|
|
118
118
|
}
|
package/esm/addCss.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { appendStyle } from
|
|
1
|
+
import { appendStyle } from "@slimr/util";
|
|
2
2
|
/**
|
|
3
3
|
* Injects css to the page head
|
|
4
4
|
*
|
|
@@ -23,7 +23,7 @@ export function addCss(css) {
|
|
|
23
23
|
if (addCss.que.size) {
|
|
24
24
|
appendStyle({
|
|
25
25
|
id: `u${addCss.count++}`,
|
|
26
|
-
innerHTML: [...addCss.que].join(
|
|
26
|
+
innerHTML: [...addCss.que].join("\n"),
|
|
27
27
|
});
|
|
28
28
|
addCss.que.clear();
|
|
29
29
|
}
|
package/esm/addCss.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addCss.js","sourceRoot":"","sources":["../src/addCss.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"addCss.js","sourceRoot":"","sources":["../src/addCss.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,MAAM,CAAC,GAAW;IACjC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACnB,UAAU,CAAC,GAAG,EAAE;QACf,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACrB,WAAW,CAAC;gBACX,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE;gBACxB,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aACrC,CAAC,CAAA;YACF,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;QACnB,CAAC;IACF,CAAC,EAAE,CAAC,CAAC,CAAA;AACN,CAAC;AACD,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;AAC9B,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA"}
|
package/esm/addCss.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {appendStyle} from
|
|
1
|
+
import { appendStyle } from "@slimr/util"
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Injects css to the page head
|
|
@@ -19,16 +19,16 @@ import {appendStyle} from '@slimr/util'
|
|
|
19
19
|
* // ...and the queue will be executed next javascript tick
|
|
20
20
|
*/
|
|
21
21
|
export function addCss(css: string) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
addCss.que.add(css)
|
|
23
|
+
setTimeout(() => {
|
|
24
|
+
if (addCss.que.size) {
|
|
25
|
+
appendStyle({
|
|
26
|
+
id: `u${addCss.count++}`,
|
|
27
|
+
innerHTML: [...addCss.que].join("\n"),
|
|
28
|
+
})
|
|
29
|
+
addCss.que.clear()
|
|
30
|
+
}
|
|
31
|
+
}, 0)
|
|
32
32
|
}
|
|
33
33
|
addCss.que = new Set<string>()
|
|
34
34
|
addCss.count = 0
|
package/esm/createClass.d.ts
CHANGED
package/esm/createClass.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t2s } from
|
|
2
|
-
import { addCss } from
|
|
3
|
-
import { expandShorthands } from
|
|
1
|
+
import { t2s } from "@slimr/util";
|
|
2
|
+
import { addCss } from "./addCss.js";
|
|
3
|
+
import { expandShorthands } from "./shorthandProps.js";
|
|
4
4
|
/**
|
|
5
5
|
* Joins class names and omits falsey props
|
|
6
6
|
*
|
|
@@ -16,7 +16,7 @@ import { expandShorthands } from './shorthandProps.js';
|
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
18
|
export function classJoin(...classes) {
|
|
19
|
-
return classes.filter(c => c && typeof c ===
|
|
19
|
+
return classes.filter((c) => c && typeof c === "string").join(" ");
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Upserts and returns a unique css class for a given css string
|
|
@@ -42,10 +42,10 @@ export function classJoin(...classes) {
|
|
|
42
42
|
export function createClass(...p) {
|
|
43
43
|
let css = t2s(...p);
|
|
44
44
|
if (!css)
|
|
45
|
-
return
|
|
45
|
+
return "";
|
|
46
46
|
let className = createClass.history.get(css);
|
|
47
47
|
if (!className) {
|
|
48
|
-
className =
|
|
48
|
+
className = `s${createClass.count++}`;
|
|
49
49
|
createClass.history.set(css, className);
|
|
50
50
|
css = deleteComments(css);
|
|
51
51
|
css = expandShorthands(css);
|
|
@@ -57,28 +57,28 @@ export function createClass(...p) {
|
|
|
57
57
|
qs.reverse();
|
|
58
58
|
css = `.${className}{\n${css}\n}\n`;
|
|
59
59
|
css += qs
|
|
60
|
-
.map(q => {
|
|
61
|
-
if (q.query.startsWith(
|
|
60
|
+
.map((q) => {
|
|
61
|
+
if (q.query.startsWith("&")) {
|
|
62
62
|
return `.${className}${q.query.slice(1)}{\n${q.innerBody}\n}`;
|
|
63
63
|
}
|
|
64
|
-
if (q.query.startsWith(
|
|
64
|
+
if (q.query.startsWith("@keyframes")) {
|
|
65
65
|
return q.outerBody;
|
|
66
66
|
}
|
|
67
67
|
return `${q.query}{\n.${className}{${q.innerBody}\n}\n}`;
|
|
68
68
|
})
|
|
69
|
-
.join(
|
|
70
|
-
css = trimByLine(css)
|
|
69
|
+
.join("\n");
|
|
70
|
+
css = `${trimByLine(css)}\n\n`;
|
|
71
71
|
addCss(css);
|
|
72
72
|
}
|
|
73
73
|
return className;
|
|
74
74
|
}
|
|
75
75
|
/** Breakpoints like chakra */
|
|
76
|
-
createClass.breakPoints = [
|
|
76
|
+
createClass.breakPoints = ["30em", "48em", "62em", "80em", "96em"];
|
|
77
77
|
createClass.count = 0;
|
|
78
78
|
createClass.history = new Map();
|
|
79
79
|
/** delete css comments **/
|
|
80
80
|
function deleteComments(css) {
|
|
81
|
-
return css.replace(/{\/\*[\s\S]*?(?=\*\/})\*\/}/gm,
|
|
81
|
+
return css.replace(/{\/\*[\s\S]*?(?=\*\/})\*\/}/gm, "");
|
|
82
82
|
}
|
|
83
83
|
/**
|
|
84
84
|
* Expands array values into media queries
|
|
@@ -86,53 +86,53 @@ function deleteComments(css) {
|
|
|
86
86
|
* Inspired by https://chakra-ui.com/docs/styled-system/responsive-styles
|
|
87
87
|
*/
|
|
88
88
|
function expandArrayValues(css) {
|
|
89
|
-
if (!css.includes(
|
|
89
|
+
if (!css.includes("["))
|
|
90
90
|
return css;
|
|
91
91
|
return css
|
|
92
|
-
.split(
|
|
93
|
-
.map(l => {
|
|
92
|
+
.split("\n")
|
|
93
|
+
.map((l) => {
|
|
94
94
|
// eslint-disable-next-line no-useless-escape
|
|
95
|
-
const [, prop, valArrayStr] = [...l.matchAll(/([A-Za-z
|
|
95
|
+
const [, prop, valArrayStr] = [...l.matchAll(/([A-Za-z-]*):[ ]*\[([^\]]+)\]/g)]?.[0] ?? [];
|
|
96
96
|
if (valArrayStr) {
|
|
97
97
|
return (valArrayStr
|
|
98
98
|
// Replace commas inside css functions with a magic char (§) to prevent
|
|
99
99
|
// erroneous splitting
|
|
100
|
-
.replace(/\([^),]*,/g, m => m.replace(/,/g,
|
|
101
|
-
.replace(/\([^),]*,/g, m => m.replace(/,/g,
|
|
102
|
-
.replace(/\([^),]*,/g, m => m.replace(/,/g,
|
|
103
|
-
.split(
|
|
100
|
+
.replace(/\([^),]*,/g, (m) => m.replace(/,/g, "§"))
|
|
101
|
+
.replace(/\([^),]*,/g, (m) => m.replace(/,/g, "§"))
|
|
102
|
+
.replace(/\([^),]*,/g, (m) => m.replace(/,/g, "§"))
|
|
103
|
+
.split(",")
|
|
104
104
|
.map((val, i) => {
|
|
105
105
|
val = val.trim();
|
|
106
|
-
if (!val || val ===
|
|
107
|
-
return
|
|
108
|
-
val = val.replace(/§/g,
|
|
106
|
+
if (!val || val === "null" || val === "undefined")
|
|
107
|
+
return "";
|
|
108
|
+
val = val.replace(/§/g, ",");
|
|
109
109
|
if (i === 0) {
|
|
110
110
|
return `${prop}: ${val};`;
|
|
111
111
|
}
|
|
112
112
|
return `@media (min-width: ${createClass.breakPoints[i - 1]}) { ${prop}: ${val}; }`;
|
|
113
113
|
})
|
|
114
|
-
.join(
|
|
114
|
+
.join("\n"));
|
|
115
115
|
}
|
|
116
116
|
return l;
|
|
117
117
|
})
|
|
118
|
-
.join(
|
|
118
|
+
.join("\n");
|
|
119
119
|
}
|
|
120
120
|
/** Find @keyframes, @media, @container queries in css **/
|
|
121
121
|
function findQueries(css) {
|
|
122
122
|
const queries = [];
|
|
123
123
|
for (const m of css.matchAll(/[@&]/gm)) {
|
|
124
|
-
let query =
|
|
124
|
+
let query = "";
|
|
125
125
|
let bodyStart = 0;
|
|
126
126
|
let openCount = 0;
|
|
127
127
|
for (let i = m.index; i < css.length; i++) {
|
|
128
|
-
if (css[i] ===
|
|
128
|
+
if (css[i] === "{") {
|
|
129
129
|
if (openCount === 0) {
|
|
130
130
|
query = css.slice(m.index, i).trim();
|
|
131
131
|
bodyStart = i + 1;
|
|
132
132
|
}
|
|
133
133
|
openCount++;
|
|
134
134
|
}
|
|
135
|
-
else if (css[i] ===
|
|
135
|
+
else if (css[i] === "}") {
|
|
136
136
|
openCount--;
|
|
137
137
|
if (openCount === 0) {
|
|
138
138
|
queries.push({
|
|
@@ -154,9 +154,9 @@ function findQueries(css) {
|
|
|
154
154
|
/** Trims whitespace for every line */
|
|
155
155
|
function trimByLine(css) {
|
|
156
156
|
return css
|
|
157
|
-
.split(
|
|
158
|
-
.map(l => l.trim())
|
|
159
|
-
.filter(l => l)
|
|
160
|
-
.join(
|
|
157
|
+
.split("\n")
|
|
158
|
+
.map((l) => l.trim())
|
|
159
|
+
.filter((l) => l)
|
|
160
|
+
.join("\n");
|
|
161
161
|
}
|
|
162
162
|
//# sourceMappingURL=createClass.js.map
|
package/esm/createClass.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createClass.js","sourceRoot":"","sources":["../src/createClass.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"createClass.js","sourceRoot":"","sources":["../src/createClass.ts"],"names":[],"mappings":"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"}
|