@barocss/server 0.0.3 → 0.5.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.
- package/dist/index.cjs +6 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.es.js +35 -13
- package/package.json +10 -5
- package/dist/index.cjs.js +0 -1
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@barocss/kit");class l{constructor(s={}){this.context=a.createContext(s)}parseClass(s){return a.parseClassToAst(s,this.context)}generateCss(s){const r=a.generateCssRules(s,this.context),t=new Set(r.flatMap(({rootCssList:e})=>e).filter(Boolean)),c=r.map(({css:e})=>e).filter(Boolean),o=this.colorVarsBlock([...t,...c].join(`
|
|
2
|
+
`));return[...o?[o]:[],...t,...c].join(`
|
|
3
|
+
`)}colorVarsBlock(s){const r=e=>[...e.matchAll(/var\((--[\w-]*color-[\w-]+)/g)].map(n=>n[1]),t=r(s);if(t.length===0)return"";const c=new Map;for(const e of this.context.themeToCssVars().matchAll(/^\s*(--[\w-]+):\s*(.+);$/gm))c.set(e[1],e[2]);const o=new Map;for(;t.length;){const e=t.pop(),n=c.get(e);n===void 0||o.has(e)||(o.set(e,n),t.push(...r(n)))}return o.size===0?"":`:root,:host {
|
|
4
|
+
`+[...o].map(([e,n])=>` ${e}: ${n};`).join(`
|
|
5
|
+
`)+`
|
|
6
|
+
}`}generateCssForClasses(s){return s.map(t=>({className:t,css:this.generateCss(t)}))}}exports.ServerRuntime=l;
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,11 @@ export declare class ServerRuntime {
|
|
|
16
16
|
* Generate CSS for a class name
|
|
17
17
|
*/
|
|
18
18
|
generateCss(className: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* #228: theme colours are emitted as var(--color-*). Define only the ones this output references
|
|
21
|
+
* (the full theme block is large), including --color-* vars those definitions reference in turn.
|
|
22
|
+
*/
|
|
23
|
+
private colorVarsBlock;
|
|
19
24
|
/**
|
|
20
25
|
* Parse multiple classes and return their CSS
|
|
21
26
|
*/
|
package/dist/index.es.js
CHANGED
|
@@ -1,30 +1,52 @@
|
|
|
1
|
-
import { createContext as
|
|
2
|
-
class
|
|
3
|
-
constructor(
|
|
4
|
-
this.context =
|
|
1
|
+
import { createContext as c, parseClassToAst as l, generateCssRules as i } from "@barocss/kit";
|
|
2
|
+
class p {
|
|
3
|
+
constructor(e = {}) {
|
|
4
|
+
this.context = c(e);
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* Parse a class name and return its AST
|
|
8
8
|
*/
|
|
9
|
-
parseClass(
|
|
10
|
-
return
|
|
9
|
+
parseClass(e) {
|
|
10
|
+
return l(e, this.context);
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Generate CSS for a class name
|
|
14
14
|
*/
|
|
15
|
-
generateCss(
|
|
16
|
-
|
|
15
|
+
generateCss(e) {
|
|
16
|
+
const r = i(e, this.context), t = new Set(r.flatMap(({ rootCssList: s }) => s).filter(Boolean)), a = r.map(({ css: s }) => s).filter(Boolean), o = this.colorVarsBlock([...t, ...a].join(`
|
|
17
|
+
`));
|
|
18
|
+
return [...o ? [o] : [], ...t, ...a].join(`
|
|
19
|
+
`);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* #228: theme colours are emitted as var(--color-*). Define only the ones this output references
|
|
23
|
+
* (the full theme block is large), including --color-* vars those definitions reference in turn.
|
|
24
|
+
*/
|
|
25
|
+
colorVarsBlock(e) {
|
|
26
|
+
const r = (s) => [...s.matchAll(/var\((--[\w-]*color-[\w-]+)/g)].map((n) => n[1]), t = r(e);
|
|
27
|
+
if (t.length === 0) return "";
|
|
28
|
+
const a = /* @__PURE__ */ new Map();
|
|
29
|
+
for (const s of this.context.themeToCssVars().matchAll(/^\s*(--[\w-]+):\s*(.+);$/gm)) a.set(s[1], s[2]);
|
|
30
|
+
const o = /* @__PURE__ */ new Map();
|
|
31
|
+
for (; t.length; ) {
|
|
32
|
+
const s = t.pop(), n = a.get(s);
|
|
33
|
+
n === void 0 || o.has(s) || (o.set(s, n), t.push(...r(n)));
|
|
34
|
+
}
|
|
35
|
+
return o.size === 0 ? "" : `:root,:host {
|
|
36
|
+
` + [...o].map(([s, n]) => ` ${s}: ${n};`).join(`
|
|
37
|
+
`) + `
|
|
38
|
+
}`;
|
|
17
39
|
}
|
|
18
40
|
/**
|
|
19
41
|
* Parse multiple classes and return their CSS
|
|
20
42
|
*/
|
|
21
|
-
generateCssForClasses(
|
|
22
|
-
return
|
|
23
|
-
className:
|
|
24
|
-
css: this.generateCss(
|
|
43
|
+
generateCssForClasses(e) {
|
|
44
|
+
return e.map((t) => ({
|
|
45
|
+
className: t,
|
|
46
|
+
css: this.generateCss(t)
|
|
25
47
|
}));
|
|
26
48
|
}
|
|
27
49
|
}
|
|
28
50
|
export {
|
|
29
|
-
|
|
51
|
+
p as ServerRuntime
|
|
30
52
|
};
|
package/package.json
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@barocss/server",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "git+https://github.com/barocss/barocss.git",
|
|
7
|
+
"directory": "packages/barocss-server"
|
|
8
|
+
},
|
|
4
9
|
"type": "module",
|
|
5
|
-
"main": "./dist/index.cjs
|
|
10
|
+
"main": "./dist/index.cjs",
|
|
6
11
|
"types": "./dist/index.d.ts",
|
|
7
12
|
"exports": {
|
|
8
13
|
".": {
|
|
9
14
|
"types": "./dist/index.d.ts",
|
|
10
15
|
"import": "./dist/index.es.js",
|
|
11
|
-
"require": "./dist/index.cjs
|
|
16
|
+
"require": "./dist/index.cjs"
|
|
12
17
|
}
|
|
13
18
|
},
|
|
14
19
|
"files": [
|
|
@@ -21,7 +26,7 @@
|
|
|
21
26
|
},
|
|
22
27
|
"dependencies": {
|
|
23
28
|
"jsdom": "^26.1.0",
|
|
24
|
-
"@barocss/kit": "0.0
|
|
29
|
+
"@barocss/kit": "0.5.0"
|
|
25
30
|
},
|
|
26
31
|
"devDependencies": {
|
|
27
32
|
"vite": "^7.1.3",
|
|
@@ -32,7 +37,7 @@
|
|
|
32
37
|
"build": "vite build",
|
|
33
38
|
"build:library": "pnpm run build",
|
|
34
39
|
"test:watch": "vitest",
|
|
35
|
-
"
|
|
40
|
+
"test": "vitest run",
|
|
36
41
|
"type-check": "tsc --noEmit",
|
|
37
42
|
"lint": "eslint src/**/*.ts"
|
|
38
43
|
},
|
package/dist/index.cjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@barocss/kit");class n{constructor(e={}){this.context=s.createContext(e)}parseClass(e){return s.parseClassToAst(e,this.context)}generateCss(e){return s.generateCssRules(e,this.context)[0].css}generateCssForClasses(e){return e.map(t=>({className:t,css:this.generateCss(t)}))}}exports.ServerRuntime=n;
|