@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbor-css/postcss",
3
- "version": "0.0.59",
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/tokens": "0.0.59",
27
- "@arbor-css/globals": "0.0.59",
28
- "@arbor-css/core": "0.0.59"
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",
@@ -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
@@ -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
@@ -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"}
@@ -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
@@ -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
@@ -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"}