@zuzjs/ui 0.3.7 → 0.3.8

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/dist/bin.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/bin.js ADDED
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env node
2
+ import fs, { readdirSync, statSync } from "fs";
3
+ import { program } from "commander";
4
+ import chokidar from 'chokidar';
5
+ import path from "path";
6
+ import CSS from "./funs/css.js";
7
+ import pc from "picocolors";
8
+ program
9
+ .option(`-d, --debug`)
10
+ .option(`-v, --version`)
11
+ .option(`-root, --root <char>`);
12
+ program.parse();
13
+ const options = program.opts();
14
+ const getAllFiles = (dir, extn, files, result, regex) => {
15
+ files = files || readdirSync(dir);
16
+ result = result || [];
17
+ regex = regex || new RegExp(`\\${extn}$`);
18
+ for (let i = 0; i < files.length; i++) {
19
+ let file = path.join(dir, files[i]);
20
+ if (statSync(file).isDirectory()) {
21
+ try {
22
+ result = getAllFiles(file, extn, readdirSync(file), result, regex);
23
+ }
24
+ catch (error) {
25
+ continue;
26
+ }
27
+ }
28
+ else {
29
+ if (regex.test(file)) {
30
+ result.push(file);
31
+ }
32
+ }
33
+ }
34
+ return result;
35
+ };
36
+ const rebuild = (f) => {
37
+ const raw = fs.readFileSync(f, `utf8`);
38
+ const list = [];
39
+ const processMatch = (matches, type) => {
40
+ if (matches && matches.length > 0) {
41
+ matches.map((m) => {
42
+ let v2;
43
+ if (type == `as`) {
44
+ const [x, v1] = m.split(/as\s*=/);
45
+ v2 = v1.trim().slice(1, -1);
46
+ }
47
+ else if (type == `css`) {
48
+ const v1 = m.split(/css\s*\(/)[1].slice(0, -1);
49
+ v2 = v1.trim().slice(1, -1);
50
+ }
51
+ list.push(v2);
52
+ // console.log(type, v2)
53
+ // const _ = v2!.match(/\w+:\$?\w+|\$?\w+/g)
54
+ // if(_){
55
+ // _.map((n:string) => !list.includes(n) && list.push(n))
56
+ // }
57
+ });
58
+ }
59
+ };
60
+ /**
61
+ * match as={?}
62
+ */
63
+ processMatch(raw.match(/as\s*=\s*\{([^{}]|{([^{}]|{[^{}]*})*})*\}/g), `as`);
64
+ /**
65
+ * match css()
66
+ */
67
+ processMatch(raw.match(/css\(\s*`([^`]*?([$&]{[^}]*})?[^`]*)*`\s*\)/g), `css`);
68
+ return list;
69
+ };
70
+ const rebuildAll = () => {
71
+ console.log(pc.gray(`○ Building Zuz CSS`));
72
+ const files = getAllFiles(process.cwd(), `.jsx`);
73
+ if (files.length > 0) {
74
+ const as = [];
75
+ files.map(f => {
76
+ const filter = null;
77
+ if (filter && f.endsWith(filter)) {
78
+ const r = rebuild(f);
79
+ if (r && r.length > 0)
80
+ as.push(r);
81
+ }
82
+ else {
83
+ const r = rebuild(f);
84
+ if (r && r.length > 0)
85
+ as.push(r);
86
+ }
87
+ });
88
+ const { sheet } = new CSS().Build(as);
89
+ // console.log(cache)
90
+ if (!fs.existsSync(path.join(process.cwd(), `src`, `app`, `css`))) {
91
+ fs.mkdirSync(path.join(process.cwd(), `src`, `app`, `css`));
92
+ }
93
+ // console.log(sheet)
94
+ fs.writeFileSync(path.join(process.cwd(), `src`, `app`, `css`, `zuz.scss`), sheet, {
95
+ encoding: `utf8`,
96
+ flag: `w+`
97
+ });
98
+ console.log(pc.green(`✓ Zuz CSS Generated`));
99
+ }
100
+ };
101
+ const watcher = chokidar.watch([
102
+ `${path.resolve(`./`)}/**/*.jsx`
103
+ ], {
104
+ ignored: (p) => p.includes(`/dist`) || p.includes('node_modules'),
105
+ persistent: true
106
+ });
107
+ watcher.on(`change`, rebuildAll);
@@ -0,0 +1,3 @@
1
+ import { UIProps } from "../types/interfaces";
2
+ declare const Box: (props: UIProps<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default Box;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { css, cleanProps } from "../funs";
3
+ const Box = (props) => {
4
+ const { cx } = css.Build(props.as);
5
+ return _jsx("div", { ref: props.ref, className: cx.join(` `), ...cleanProps(props), children: props.children });
6
+ };
7
+ export default Box;
@@ -0,0 +1,3 @@
1
+ import { UIProps } from "../types/interfaces";
2
+ declare const Button: (props: UIProps<HTMLButtonElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default Button;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { css, cleanProps } from "../funs";
3
+ const Button = (props) => {
4
+ const { as, ref, children } = props;
5
+ const { cx } = css.Build(as);
6
+ return _jsx("button", { ref: ref, className: cx.join(` `), ...cleanProps(props), children: children });
7
+ };
8
+ export default Button;
@@ -0,0 +1,3 @@
1
+ import { UIProps } from "../types/interfaces";
2
+ declare const CheckBox: (props: UIProps<HTMLInputElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default CheckBox;
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { cleanProps, css } from "../funs";
5
+ const CheckBox = (props) => {
6
+ const { cx } = css.Build(props.as);
7
+ const [checked, setChecked] = useState(props.checked || false);
8
+ return _jsx("label", { ...({
9
+ className: `zuz-checkbox${checked ? ` is-checked` : ``} rel${cx.length > 0 ? ` ` + cx.join(` `) : ``}`
10
+ }), children: _jsx("input", { type: 'checkbox', ref: props.ref, onChange: e => {
11
+ setChecked(e.target.checked);
12
+ }, className: `abs`, ...cleanProps(props) }) });
13
+ };
14
+ export default CheckBox;
@@ -0,0 +1,4 @@
1
+ import { UIProps } from "../types/interfaces";
2
+ import { SpinnerProps } from "./spinner";
3
+ declare const Cover: (props: UIProps<HTMLDivElement>, spinner?: SpinnerProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default Cover;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { css, cleanProps } from "../funs";
3
+ import Spinner from "./spinner";
4
+ const Cover = (props, spinner) => {
5
+ const { cx } = css.Build(props.as);
6
+ return _jsx("div", { ref: props.ref, className: `zuz-cover abs fill ${cx.join(` `)}`.trim(), ...cleanProps(props), children: _jsx(Spinner, { ...(spinner || {}) }) });
7
+ };
8
+ export default Cover;
@@ -0,0 +1,4 @@
1
+ import { UIProps } from "../types/interfaces";
2
+ import { SpinnerProps } from "./spinner";
3
+ declare const Form: (props: UIProps<HTMLDivElement>, spinner?: SpinnerProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default Form;
@@ -0,0 +1,105 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useRef, useState } from "react";
4
+ import { css, cleanProps } from "../funs";
5
+ import Cover from "./cover";
6
+ import { FORMVALIDATION } from "../types/enums";
7
+ const Form = (props, spinner) => {
8
+ const { as, ref, at, onSubmit, onSuccess, onError, children } = props;
9
+ const [loading, setLoading] = useState(false);
10
+ const { cx } = css.Build(as);
11
+ const _ref = useRef(ref || null);
12
+ const _nodes = (query) => _ref.current.querySelectorAll(query);
13
+ const _init = () => {
14
+ const _submit = _nodes(`[type=submit]`);
15
+ if (!_submit || _submit.length == 0) {
16
+ console.error(`You should add at least 1 button with type=\`SUBMIT\``);
17
+ }
18
+ else {
19
+ _submit.forEach(el => {
20
+ el.addEventListener(`click`, _onSubmit);
21
+ });
22
+ }
23
+ };
24
+ const _validate = (el) => {
25
+ if (el.required && el.value == ``)
26
+ return false;
27
+ if (el.getAttribute(`with`)) {
28
+ switch (el.getAttribute(`with`).toUpperCase()) {
29
+ case FORMVALIDATION.Email:
30
+ console.log(`Add FORMVALIDATION.Email`);
31
+ return false;
32
+ break;
33
+ case FORMVALIDATION.Uri:
34
+ console.log(`Add FORMVALIDATION.Uri`);
35
+ return false;
36
+ break;
37
+ case FORMVALIDATION.Password:
38
+ console.log(`Add FORMVALIDATION.Password`);
39
+ return false;
40
+ break;
41
+ case FORMVALIDATION.MatchField:
42
+ console.log(`Add FORMVALIDATION.MatchField`);
43
+ return false;
44
+ break;
45
+ default:
46
+ return true;
47
+ }
48
+ }
49
+ return true;
50
+ };
51
+ const _buildFormData = () => {
52
+ const data = {};
53
+ let _error = null;
54
+ Array.from(_nodes(`[name]`))
55
+ .forEach((el) => {
56
+ let valid = true;
57
+ if (el.required || el.with)
58
+ valid = _validate(el);
59
+ data[el.name] = {
60
+ valid: valid,
61
+ value: el.value
62
+ };
63
+ if (!valid) {
64
+ if (_error == null)
65
+ _error = el;
66
+ el.classList.add(`input-with-error`);
67
+ }
68
+ else
69
+ el.classList.remove(`input-with-error`);
70
+ });
71
+ if (_error)
72
+ _error.focus();
73
+ // ref.querySelectorAll(`[name]`)
74
+ // Array.from(form.elements).forEach((element: any) => {
75
+ // if (!element.name) return;
76
+ // /**
77
+ // * Validation
78
+ // */
79
+ // if ( element.required ) {
80
+ // }
81
+ // })
82
+ // return formData
83
+ return data;
84
+ };
85
+ const _onSubmit = () => {
86
+ const data = _buildFormData();
87
+ // console.log(data)
88
+ if (props.onSubmit) {
89
+ if (data) {
90
+ if (props.onPost)
91
+ props.onPost(data);
92
+ else
93
+ props.onGet(data);
94
+ }
95
+ }
96
+ else {
97
+ console.warn(`onSubmit missing for this form.`);
98
+ }
99
+ };
100
+ useEffect(() => {
101
+ _init();
102
+ }, []);
103
+ return _jsxs("div", { ref: _ref, className: `rel ${cx.join(` `)}`.trim(), ...cleanProps(props, [`withData`, `at`, `onSubmit`, `onSuccess`, `onError`]), children: [loading && _jsx(Cover, { ...(spinner || {}) }), children] });
104
+ };
105
+ export default Form;
@@ -0,0 +1,3 @@
1
+ import { UIProps } from "../types/interfaces";
2
+ declare const Heading: (props: UIProps<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default Heading;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { css, cleanProps } from "../funs";
3
+ const Heading = (props) => {
4
+ const { children, ref, h, html } = props;
5
+ let Tag = `h${h || 1}`;
6
+ const HeadingTag = Tag;
7
+ const { cx } = css.Build(props.as);
8
+ return _jsx(HeadingTag, { ref: ref, className: cx.join(` `), ...cleanProps(props), children: props.html ? _jsx("span", { ...({ dangerouslySetInnerHTML: { __html: html } }) }) : children });
9
+ };
10
+ export default Heading;
@@ -0,0 +1,3 @@
1
+ import { UIProps } from "../types/interfaces";
2
+ declare const Icon: (props: UIProps<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default Icon;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { css, cleanProps } from "../funs";
3
+ const Icon = (props) => {
4
+ const { cx } = css.Build(props.as);
5
+ return _jsx("div", { ref: props.ref, className: `icon-${props.name}${cx.length > 0 ? ` ` + cx.join(` `) : ``}`, ...cleanProps(props), children: props.children });
6
+ };
7
+ export default Icon;
@@ -0,0 +1,7 @@
1
+ import { UIProps } from "../types/interfaces";
2
+ import { FORMVALIDATION } from "../types/enums";
3
+ export interface InputProps extends UIProps<HTMLInputElement> {
4
+ required?: FORMVALIDATION;
5
+ }
6
+ declare const Input: (props: InputProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default Input;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { css, cleanProps } from "../funs";
3
+ const Input = (props) => {
4
+ const { cx } = css.Build(props.as);
5
+ // console.log(`inputing...`)
6
+ return _jsx("input", { ref: props.ref, className: cx.join(` `), ...cleanProps(props) });
7
+ };
8
+ export default Input;
@@ -0,0 +1,13 @@
1
+ import { UIProps } from "../types/interfaces";
2
+ import { SPINNER } from "../types/enums";
3
+ export interface SpinnerProps extends UIProps<HTMLDivElement> {
4
+ type?: SPINNER;
5
+ size?: number;
6
+ width?: number;
7
+ color?: string;
8
+ background?: string;
9
+ foreground?: string;
10
+ speed?: number;
11
+ }
12
+ declare const Spinner: (props: SpinnerProps) => import("react/jsx-runtime").JSX.Element;
13
+ export default Spinner;
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { css, cleanProps, hexToRgba } from "../funs";
3
+ import { SPINNER } from "../types/enums";
4
+ const Spinner = (props) => {
5
+ const { as, ref, type, width, speed, size, color, background, foreground } = props;
6
+ const { cx } = css.Build(as);
7
+ const defaultColor = `#000000`;
8
+ const buildSimple = () => {
9
+ const c = hexToRgba(color || defaultColor);
10
+ const bg = hexToRgba(color || defaultColor, .3);
11
+ const pops = {
12
+ width: size || 50,
13
+ height: size || 50,
14
+ border: `${width || 3}px solid ${bg}`,
15
+ borderRadius: `50%`,
16
+ borderTopColor: c,
17
+ animationDuration: `${speed || .6}s`,
18
+ animationTimingFunction: `linear`
19
+ };
20
+ return pops;
21
+ };
22
+ const build = () => {
23
+ let _ = {};
24
+ switch (type || SPINNER.Simple) {
25
+ case SPINNER.Simple:
26
+ _ = buildSimple();
27
+ break;
28
+ }
29
+ return _;
30
+ };
31
+ const getChild = () => {
32
+ switch (type || SPINNER.Simple) {
33
+ case SPINNER.Simple:
34
+ break;
35
+ }
36
+ return null;
37
+ };
38
+ return _jsx("div", { ref: ref, className: `zuz-spinner${type ? `-${type.toLowerCase()}` : ``} ${cx.join(` `)}`.trim(), style: build(), ...cleanProps(props), children: getChild() });
39
+ };
40
+ export default Spinner;
@@ -0,0 +1,268 @@
1
+ import { dynamicObject } from "../types/index.js";
2
+ declare class CSS {
3
+ unit: any;
4
+ PROPS: {
5
+ [x: string]: any;
6
+ alignContent: string;
7
+ alignItems: string;
8
+ alignSelf: string;
9
+ animation: string;
10
+ animationDelay: string;
11
+ animationDirection: string;
12
+ animationDuration: string;
13
+ animationFillMode: string;
14
+ animationIterationCount: string;
15
+ animationName: string;
16
+ animationPlayState: string;
17
+ animationTimingFunction: string;
18
+ background: string;
19
+ backgroundColor: string;
20
+ backgroundImage: string;
21
+ backgroundOrigin: string;
22
+ backgroundPosition: string;
23
+ backgroundRepeat: string;
24
+ backgroundSize: string;
25
+ backfaceVisibility: string;
26
+ backgroundAttachment: string;
27
+ backgroundBlendMode: string;
28
+ backgroundClip: string;
29
+ border: string;
30
+ borderBottom: string;
31
+ borderBottomColor: string;
32
+ borderBottomStyle: string;
33
+ borderBottomWidth: string;
34
+ borderCollapse: string;
35
+ borderColor: string;
36
+ borderImage: string;
37
+ borderImageOutset: string;
38
+ borderImageRepeat: string;
39
+ borderImageSlice: string;
40
+ borderImageSource: string;
41
+ borderImageWidth: string;
42
+ borderLeft: string;
43
+ borderLeftColor: string;
44
+ borderLeftStyle: string;
45
+ borderLeftWidth: string;
46
+ borderRight: string;
47
+ borderRightColor: string;
48
+ borderRightStyle: string;
49
+ borderRightWidth: string;
50
+ borderSpacing: string;
51
+ borderStyle: string;
52
+ borderTop: string;
53
+ borderTopColor: string;
54
+ borderTopStyle: string;
55
+ borderTopWidth: string;
56
+ borderWidth: string;
57
+ borderRadius: string;
58
+ borderTopLeftRadius: string;
59
+ borderTopRightRadius: string;
60
+ borderBottomLeftRadius: string;
61
+ borderBottomRightRadius: string;
62
+ bottom: string;
63
+ boxDecorationBreak: string;
64
+ boxShadow: string;
65
+ boxSizing: string;
66
+ captionSide: string;
67
+ caretColor: string;
68
+ "@charset": string;
69
+ clear: string;
70
+ clip: string;
71
+ clipPath: string;
72
+ color: string;
73
+ columnCount: string;
74
+ columnFill: string;
75
+ columnGap: string;
76
+ colGap: string;
77
+ columnRule: string;
78
+ columnRuleColor: string;
79
+ columnRuleStyle: string;
80
+ columnRuleWidth: string;
81
+ columnSpan: string;
82
+ columnWidth: string;
83
+ columns: string;
84
+ content: string;
85
+ counterIncrement: string;
86
+ counterReset: string;
87
+ cursor: string;
88
+ pointer: string;
89
+ direction: string;
90
+ display: string;
91
+ emptyCells: string;
92
+ filter: string;
93
+ flex: string;
94
+ flexBasis: string;
95
+ flexDirection: string;
96
+ flexFlow: string;
97
+ flexGrow: string;
98
+ flexShrink: string;
99
+ flexWrap: string;
100
+ float: string;
101
+ font: string;
102
+ fontFamily: string;
103
+ fontKerning: string;
104
+ fontSize: string;
105
+ fontSizeAdjust: string;
106
+ fontStretch: string;
107
+ fontStyle: string;
108
+ fontVariant: string;
109
+ bold: string;
110
+ fontWeight: string;
111
+ gap: string;
112
+ grid: string;
113
+ gridArea: string;
114
+ gridAutoColumns: string;
115
+ gridAutoFlow: string;
116
+ gridAutoRows: string;
117
+ gridColumn: string;
118
+ gridColumnEnd: string;
119
+ gridColumnGap: string;
120
+ gridColumnStart: string;
121
+ gridGap: string;
122
+ gridRow: string;
123
+ gridRowEnd: string;
124
+ gridRowGap: string;
125
+ gridRowStart: string;
126
+ gridTemplate: string;
127
+ gridTemplateAreas: string;
128
+ gridTemplateColumns: string;
129
+ gridTemplateRows: string;
130
+ hangingPunctuation: string;
131
+ hyphens: string;
132
+ isolation: string;
133
+ justifyContent: string;
134
+ left: string;
135
+ letterSpacing: string;
136
+ lineHeight: string;
137
+ listStyle: string;
138
+ listStyleImage: string;
139
+ listStylePosition: string;
140
+ listStyleType: string;
141
+ aspectRatio: string;
142
+ margin: string;
143
+ marginBottom: string;
144
+ marginLeft: string;
145
+ marginRight: string;
146
+ marginTop: string;
147
+ height: string;
148
+ minHeight: string;
149
+ maxHeight: string;
150
+ width: string;
151
+ minWidth: string;
152
+ maxWidth: string;
153
+ mixBlendMode: string;
154
+ objectFit: string;
155
+ objectPosition: string;
156
+ opacity: string;
157
+ order: string;
158
+ outline: string;
159
+ outlineColor: string;
160
+ outlineOffset: string;
161
+ outlineStyle: string;
162
+ outlineWidth: string;
163
+ overflow: string;
164
+ overflowX: string;
165
+ overflowY: string;
166
+ padding: string;
167
+ paddingBottom: string;
168
+ paddingLeft: string;
169
+ paddingRight: string;
170
+ paddingTop: string;
171
+ pageBreakAfter: string;
172
+ pageBreakBefore: string;
173
+ pageBreakInside: string;
174
+ perspective: string;
175
+ perspectiveOrigin: string;
176
+ pointerEvents: string;
177
+ position: string;
178
+ quotes: string;
179
+ resize: string;
180
+ right: string;
181
+ scrollBehavior: string;
182
+ tabSize: string;
183
+ tableLayout: string;
184
+ align: string;
185
+ textAlign: string;
186
+ textAlignLast: string;
187
+ textDecoration: string;
188
+ textDecorationColor: string;
189
+ textDecorationLine: string;
190
+ textDecorationStyle: string;
191
+ textIndent: string;
192
+ textJustify: string;
193
+ textOverflow: string;
194
+ textShadow: string;
195
+ textTransform: string;
196
+ top: string;
197
+ transform: string;
198
+ "transform(2D)": string;
199
+ "transformOrigin(twoValue syntax)": string;
200
+ transformStyle: string;
201
+ transition: string;
202
+ transitionDelay: string;
203
+ transitionDuration: string;
204
+ transitionProperty: string;
205
+ transitionTimingFunction: string;
206
+ unicodeBidi: string;
207
+ userSelect: string;
208
+ verticalAlign: string;
209
+ visibility: string;
210
+ whiteSpace: string;
211
+ wordBreak: string;
212
+ wordSpacing: string;
213
+ textWrap: string;
214
+ wordWrap: string;
215
+ writingMode: string;
216
+ zIndex: string;
217
+ backdropFilter: string;
218
+ };
219
+ DIRECT: {
220
+ [x: string]: any;
221
+ fill: string;
222
+ abc: string;
223
+ };
224
+ IGNORE: string[];
225
+ chars: string;
226
+ hashids: any;
227
+ cx: string[];
228
+ cache: {
229
+ [x: string]: any;
230
+ };
231
+ pseudoRegExp: RegExp;
232
+ pseudoList: string[];
233
+ baseRegex: RegExp;
234
+ pseudoCounter: {
235
+ [key: string]: number;
236
+ };
237
+ pseudoPattern: string;
238
+ pseudoReg: RegExp;
239
+ propCounter: dynamicObject;
240
+ keysWithoutCommaToSpace: string[];
241
+ constructor(options?: {
242
+ [x: string]: any;
243
+ } | undefined);
244
+ getStyleSheet(cache: {
245
+ [key: string]: any;
246
+ }, indentLevel?: number, pseudo?: boolean): string;
247
+ makeColor(): void;
248
+ makeUnit(k: string, v: any): any;
249
+ makeValue(k: string, v: any): string;
250
+ makeID(k: string, v: string, _out: string): string;
251
+ makeIDFromObject(key: string, obj: {
252
+ [key: string]: any;
253
+ }): string;
254
+ parseRawLine(line: string): {
255
+ [key: string]: {};
256
+ };
257
+ makeCSS(line: string): void;
258
+ cleanPseudo(cache: {
259
+ [key: string]: any;
260
+ }): {
261
+ [key: string]: any;
262
+ };
263
+ Build(css: string[][]): {
264
+ cx: string[];
265
+ sheet: string;
266
+ };
267
+ }
268
+ export default CSS;