@arbor-css/postcss 0.0.59 → 0.0.60
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/package.json +4 -4
- package/dist/tokenMap.d.ts +0 -20
- package/dist/tokenMap.d.ts.map +0 -1
- package/dist/tokenMap.js +0 -58
- package/dist/tokenMap.js.map +0 -1
- package/dist/transform.d.ts +0 -15
- package/dist/transform.d.ts.map +0 -1
- package/dist/transform.js +0 -64
- package/dist/transform.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbor-css/postcss",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.60",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"jiti": "^2.4.2",
|
|
25
25
|
"postcss": "^8.5.4",
|
|
26
|
-
"@arbor-css/
|
|
27
|
-
"@arbor-css/globals": "0.0.
|
|
28
|
-
"@arbor-css/
|
|
26
|
+
"@arbor-css/core": "0.0.60",
|
|
27
|
+
"@arbor-css/globals": "0.0.60",
|
|
28
|
+
"@arbor-css/tokens": "0.0.60"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"typescript": "^6.0.3",
|
package/dist/tokenMap.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { ArborPreset } from '@arbor-css/core';
|
|
2
|
-
import { type Token } from '@arbor-css/tokens';
|
|
3
|
-
export interface TokenMapEntry {
|
|
4
|
-
/** The CSS var() expression, e.g. `var(--$-color-main-mid)` */
|
|
5
|
-
cssVar: string;
|
|
6
|
-
/** Raw CSS custom property name, e.g. `--$-color-main-mid` */
|
|
7
|
-
name: string;
|
|
8
|
-
/** Token purpose (color, spacing, etc.) */
|
|
9
|
-
purpose: Token['purpose'];
|
|
10
|
-
}
|
|
11
|
-
/** Flat map from dot-path string to token info */
|
|
12
|
-
export type TokenMap = Map<string, TokenMapEntry>;
|
|
13
|
-
/**
|
|
14
|
-
* Builds a flat Map<dotPath, TokenMapEntry> from a preset.
|
|
15
|
-
*
|
|
16
|
-
* Mode tokens are registered under their plain path (e.g. "color.main.mid").
|
|
17
|
-
* Primitive tokens are registered under "primitives.x.y" (e.g. "primitives.spacing.md").
|
|
18
|
-
*/
|
|
19
|
-
export declare function buildTokenMap(preset: ArborPreset<any, any>): TokenMap;
|
|
20
|
-
//# sourceMappingURL=tokenMap.d.ts.map
|
package/dist/tokenMap.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tokenMap.d.ts","sourceRoot":"","sources":["../src/tokenMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAsB,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAW,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC7B,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;CAC1B;AAED,kDAAkD;AAClD,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,CA+BrE"}
|
package/dist/tokenMap.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { $systemProps, flattenToPropsList } from '@arbor-css/core';
|
|
2
|
-
import { isToken } from '@arbor-css/tokens';
|
|
3
|
-
/**
|
|
4
|
-
* Builds a flat Map<dotPath, TokenMapEntry> from a preset.
|
|
5
|
-
*
|
|
6
|
-
* Mode tokens are registered under their plain path (e.g. "color.main.mid").
|
|
7
|
-
* Primitive tokens are registered under "primitives.x.y" (e.g. "primitives.spacing.md").
|
|
8
|
-
*/
|
|
9
|
-
export function buildTokenMap(preset) {
|
|
10
|
-
const map = new Map();
|
|
11
|
-
// Mode tokens from base mode schema
|
|
12
|
-
const modeTokens = preset?.modes?.base?.schema?.$tokens;
|
|
13
|
-
if (modeTokens) {
|
|
14
|
-
walkTokenTree(modeTokens, '', map);
|
|
15
|
-
}
|
|
16
|
-
// Primitive tokens — prefix with "primitives."
|
|
17
|
-
const primitiveTokens = preset?.primitives?.$tokens;
|
|
18
|
-
if (primitiveTokens) {
|
|
19
|
-
walkTokenTree(primitiveTokens, 'primitives', map);
|
|
20
|
-
}
|
|
21
|
-
// System tokens from $systemProps - "final" tokens are also made available
|
|
22
|
-
// for cross-property references: e.g. "$.system.color.fg" references the "final"
|
|
23
|
-
// token for the foreground color, and can be used to set the value of another
|
|
24
|
-
// property like border-color.
|
|
25
|
-
const systemFinalProps = flattenToPropsList($systemProps).filter((prop) => prop.name.endsWith('final'));
|
|
26
|
-
for (const prop of systemFinalProps) {
|
|
27
|
-
map.set(`system.${prop.name}`, {
|
|
28
|
-
cssVar: prop.var,
|
|
29
|
-
name: prop.name,
|
|
30
|
-
purpose: prop.purpose,
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
return map;
|
|
34
|
-
}
|
|
35
|
-
function walkTokenTree(node, prefix, map) {
|
|
36
|
-
if (typeof node !== 'object' || node === null)
|
|
37
|
-
return;
|
|
38
|
-
for (const key of Object.keys(node)) {
|
|
39
|
-
const value = node[key];
|
|
40
|
-
const currentPath = prefix ? `${prefix}.${key}` : key;
|
|
41
|
-
if (isToken(value)) {
|
|
42
|
-
const entry = {
|
|
43
|
-
cssVar: value.var,
|
|
44
|
-
name: value.name,
|
|
45
|
-
purpose: value.purpose,
|
|
46
|
-
};
|
|
47
|
-
map.set(currentPath, entry);
|
|
48
|
-
// $root tokens are also accessible at the parent path (without the .$root segment)
|
|
49
|
-
if (key === '$root' && prefix) {
|
|
50
|
-
map.set(prefix, entry);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
else if (typeof value === 'object' && value !== null) {
|
|
54
|
-
walkTokenTree(value, currentPath, map);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=tokenMap.js.map
|
package/dist/tokenMap.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tokenMap.js","sourceRoot":"","sources":["../src/tokenMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAe,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,OAAO,EAAc,MAAM,mBAAmB,CAAC;AAcxD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAA6B;IAC1D,MAAM,GAAG,GAAa,IAAI,GAAG,EAAE,CAAC;IAEhC,oCAAoC;IACpC,MAAM,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;IACxD,IAAI,UAAU,EAAE,CAAC;QAChB,aAAa,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,+CAA+C;IAC/C,MAAM,eAAe,GAAG,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;IACpD,IAAI,eAAe,EAAE,CAAC;QACrB,aAAa,CAAC,eAAe,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,2EAA2E;IAC3E,iFAAiF;IACjF,8EAA8E;IAC9E,8BAA8B;IAC9B,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACzE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC3B,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACrC,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;SACrB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,IAAS,EAAE,MAAc,EAAE,GAAa;IAC9D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAEtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAEtD,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,KAAK,GAAkB;gBAC5B,MAAM,EAAE,KAAK,CAAC,GAAG;gBACjB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC;YACF,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAE5B,mFAAmF;YACnF,IAAI,GAAG,KAAK,OAAO,IAAI,MAAM,EAAE,CAAC;gBAC/B,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACxB,CAAC;QACF,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACxD,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;AACF,CAAC"}
|
package/dist/transform.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AnyArborPreset } from '@arbor-css/core';
|
|
2
|
-
/**
|
|
3
|
-
* Transforms CSS source by:
|
|
4
|
-
* 1. Replacing `@import 'arbor:css'` with the generated Arbor stylesheet.
|
|
5
|
-
* 2. For color-related properties, injecting Arbor system prop declarations
|
|
6
|
-
* (mirroring the behavior of the `classes` package utility rules).
|
|
7
|
-
*
|
|
8
|
-
* @param cssSource - Raw CSS source string
|
|
9
|
-
* @param preset - Loaded Arbor preset for `@import 'arbor:css'` expansion
|
|
10
|
-
*/
|
|
11
|
-
export declare function transform(cssSource: string, preset: AnyArborPreset): TransformResult;
|
|
12
|
-
export interface TransformResult {
|
|
13
|
-
css: string;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=transform.d.ts.map
|
package/dist/transform.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAsB,MAAM,iBAAiB,CAAC;AAMrE;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,GACpB,eAAe,CAoDjB;AAED,MAAM,WAAW,eAAe;IAC/B,GAAG,EAAE,MAAM,CAAC;CACZ"}
|
package/dist/transform.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { generateStylesheet } from '@arbor-css/core';
|
|
2
|
-
import postcss from 'postcss';
|
|
3
|
-
import { getColorPropEntries } from './colorSystemProps.js';
|
|
4
|
-
const ARBOR_IMPORT_RE = /^['"]arbor:css['"]$/;
|
|
5
|
-
/**
|
|
6
|
-
* Transforms CSS source by:
|
|
7
|
-
* 1. Replacing `@import 'arbor:css'` with the generated Arbor stylesheet.
|
|
8
|
-
* 2. For color-related properties, injecting Arbor system prop declarations
|
|
9
|
-
* (mirroring the behavior of the `classes` package utility rules).
|
|
10
|
-
*
|
|
11
|
-
* @param cssSource - Raw CSS source string
|
|
12
|
-
* @param preset - Loaded Arbor preset for `@import 'arbor:css'` expansion
|
|
13
|
-
*/
|
|
14
|
-
export function transform(cssSource, preset) {
|
|
15
|
-
const root = postcss.parse(cssSource);
|
|
16
|
-
const colorPropEntries = getColorPropEntries(preset);
|
|
17
|
-
// Replace @import 'arbor:css' with the full generated stylesheet
|
|
18
|
-
if (preset) {
|
|
19
|
-
root.walkAtRules('import', (rule) => {
|
|
20
|
-
if (!ARBOR_IMPORT_RE.test(rule.params.trim()))
|
|
21
|
-
return;
|
|
22
|
-
const generated = generateStylesheet(preset);
|
|
23
|
-
const generatedRoot = postcss.parse(generated);
|
|
24
|
-
rule.replaceWith(...generatedRoot.nodes);
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
// inject color system prop assignments to matching css properties
|
|
28
|
-
root.walkDecls((decl) => {
|
|
29
|
-
const systemAssignmentEntry = colorPropEntries[decl.prop];
|
|
30
|
-
if (systemAssignmentEntry) {
|
|
31
|
-
// Inject system color props before this declaration
|
|
32
|
-
decl.cloneBefore({
|
|
33
|
-
prop: systemAssignmentEntry.applied,
|
|
34
|
-
value: decl.value,
|
|
35
|
-
raws: {},
|
|
36
|
-
});
|
|
37
|
-
decl.cloneBefore({
|
|
38
|
-
prop: systemAssignmentEntry.final,
|
|
39
|
-
value: `var(${systemAssignmentEntry.applied})`,
|
|
40
|
-
raws: {},
|
|
41
|
-
});
|
|
42
|
-
decl.cloneBefore({
|
|
43
|
-
prop: systemAssignmentEntry.opacity,
|
|
44
|
-
value: '1',
|
|
45
|
-
raws: {},
|
|
46
|
-
});
|
|
47
|
-
for (const extra of systemAssignmentEntry.extras ?? []) {
|
|
48
|
-
decl.cloneBefore({
|
|
49
|
-
prop: extra.prop,
|
|
50
|
-
value: extra.value === 'applied' ?
|
|
51
|
-
`var(${systemAssignmentEntry.applied})`
|
|
52
|
-
: extra.value,
|
|
53
|
-
raws: {},
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
// Point the actual CSS property at the system final var for runtime flexibility
|
|
57
|
-
decl.value = `var(${systemAssignmentEntry.final})`;
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
return {
|
|
61
|
-
css: root.toResult().css,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=transform.js.map
|
package/dist/transform.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACxB,SAAiB,EACjB,MAAsB;IAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAErD,iEAAiE;IACjE,IAAI,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;YACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAAE,OAAO;YACtD,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAa,CAAC,CAAC;YACpD,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;QACvB,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,qBAAqB,EAAE,CAAC;YAC3B,oDAAoD;YACpD,IAAI,CAAC,WAAW,CAAC;gBAChB,IAAI,EAAE,qBAAqB,CAAC,OAAO;gBACnC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,EAAE;aACR,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC;gBAChB,IAAI,EAAE,qBAAqB,CAAC,KAAK;gBACjC,KAAK,EAAE,OAAO,qBAAqB,CAAC,OAAO,GAAG;gBAC9C,IAAI,EAAE,EAAE;aACR,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC;gBAChB,IAAI,EAAE,qBAAqB,CAAC,OAAO;gBACnC,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,EAAE;aACR,CAAC,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,qBAAqB,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBACxD,IAAI,CAAC,WAAW,CAAC;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EACJ,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;wBAC1B,OAAO,qBAAqB,CAAC,OAAO,GAAG;wBACxC,CAAC,CAAC,KAAK,CAAC,KAAK;oBACd,IAAI,EAAE,EAAE;iBACR,CAAC,CAAC;YACJ,CAAC;YACD,gFAAgF;YAChF,IAAI,CAAC,KAAK,GAAG,OAAO,qBAAqB,CAAC,KAAK,GAAG,CAAC;QACpD,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO;QACN,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG;KACxB,CAAC;AACH,CAAC"}
|