@arbor-css/functions 0.0.60 → 0.0.62
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/common.d.ts +17 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +40 -0
- package/dist/common.js.map +1 -0
- package/dist/functions.d.ts +51 -0
- package/dist/functions.d.ts.map +1 -0
- package/dist/functions.js +40 -0
- package/dist/functions.js.map +1 -0
- package/dist/index.d.ts +3 -53
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -71
- package/dist/index.js.map +1 -1
- package/dist/mixins.d.ts +66 -0
- package/dist/mixins.d.ts.map +1 -0
- package/dist/mixins.js +66 -0
- package/dist/mixins.js.map +1 -0
- package/package.json +3 -3
package/dist/common.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CalcInterpolation } from '@arbor-css/calc';
|
|
2
|
+
import { TokenType } from '@arbor-css/tokens';
|
|
3
|
+
export type CssProperty = `--${string}`;
|
|
4
|
+
export type FunctionParamWithMeta = {
|
|
5
|
+
name: CssProperty;
|
|
6
|
+
type?: TokenType;
|
|
7
|
+
fallback?: string;
|
|
8
|
+
};
|
|
9
|
+
export type FunctionParam = CssProperty | FunctionParamWithMeta;
|
|
10
|
+
export type FunctionParams = readonly FunctionParam[];
|
|
11
|
+
export type ParamsAsInterpolations<TParams extends FunctionParams> = {
|
|
12
|
+
[K in keyof TParams]: CalcInterpolation;
|
|
13
|
+
};
|
|
14
|
+
export declare function isFunctionParamWithMeta(param: CssProperty | FunctionParamWithMeta): param is FunctionParamWithMeta;
|
|
15
|
+
export declare function paramsAsString<TParams extends FunctionParams>(params: TParams, keepEmpty?: boolean): string;
|
|
16
|
+
export declare function paramsAsInterpolations<TParams extends FunctionParams>(params: TParams): ParamsAsInterpolations<TParams>;
|
|
17
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAW,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,KAAK,MAAM,EAAE,CAAC;AACxC,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,qBAAqB,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,SAAS,aAAa,EAAE,CAAC;AACtD,MAAM,MAAM,sBAAsB,CAAC,OAAO,SAAS,cAAc,IAAI;KACnE,CAAC,IAAI,MAAM,OAAO,GAAG,iBAAiB;CACvC,CAAC;AAEF,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,WAAW,GAAG,qBAAqB,GACxC,KAAK,IAAI,qBAAqB,CAEhC;AAED,wBAAgB,cAAc,CAAC,OAAO,SAAS,cAAc,EAC5D,MAAM,EAAE,OAAO,EACf,SAAS,CAAC,EAAE,OAAO,GACjB,MAAM,CAeR;AAED,wBAAgB,sBAAsB,CAAC,OAAO,SAAS,cAAc,EACpE,MAAM,EAAE,OAAO,GACb,sBAAsB,CAAC,OAAO,CAAC,CAiBjC"}
|
package/dist/common.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { $ } from '@arbor-css/calc';
|
|
2
|
+
import { isToken } from '@arbor-css/tokens';
|
|
3
|
+
export function isFunctionParamWithMeta(param) {
|
|
4
|
+
return typeof param === 'object' && 'name' in param;
|
|
5
|
+
}
|
|
6
|
+
export function paramsAsString(params, keepEmpty) {
|
|
7
|
+
if (!params.length) {
|
|
8
|
+
return keepEmpty ? '()' : '';
|
|
9
|
+
}
|
|
10
|
+
const list = params
|
|
11
|
+
.map((p) => {
|
|
12
|
+
if (isToken(p)) {
|
|
13
|
+
const type = p.type ?? '*';
|
|
14
|
+
const typeAnnotation = type === '*' ? '' : ` <${type}>`;
|
|
15
|
+
return `var(${p.name}${typeAnnotation})`;
|
|
16
|
+
}
|
|
17
|
+
return p;
|
|
18
|
+
})
|
|
19
|
+
.join(', ');
|
|
20
|
+
return `(${list})`;
|
|
21
|
+
}
|
|
22
|
+
export function paramsAsInterpolations(params) {
|
|
23
|
+
return params.map((p) => {
|
|
24
|
+
if (isToken(p)) {
|
|
25
|
+
return $.token(p);
|
|
26
|
+
}
|
|
27
|
+
if (isFunctionParamWithMeta(p)) {
|
|
28
|
+
const name = p.name;
|
|
29
|
+
if (p.fallback) {
|
|
30
|
+
return $.val(`var(${name}, ${p.fallback})`);
|
|
31
|
+
}
|
|
32
|
+
return $.val(`var(${name})`);
|
|
33
|
+
}
|
|
34
|
+
if (p.startsWith('--')) {
|
|
35
|
+
return $.val(`var(${p})`);
|
|
36
|
+
}
|
|
37
|
+
return $.val(p);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAqB,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAa,MAAM,mBAAmB,CAAC;AAcvD,MAAM,UAAU,uBAAuB,CACtC,KAA0C;IAE1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,cAAc,CAC7B,MAAe,EACf,SAAmB;IAEnB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,GAAG,MAAM;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;YAC3B,MAAM,cAAc,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;YACxD,OAAO,OAAO,CAAC,CAAC,IAAI,GAAG,cAAc,GAAwB,CAAC;QAC/D,CAAC;QACD,OAAO,CAAC,CAAC;IACV,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,IAAI,IAAI,GAAG,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,MAAe;IAEf,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACpB,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAoC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Css, type Equation } from '@arbor-css/calc';
|
|
2
|
+
import { FunctionParams, ParamsAsInterpolations } from './common.js';
|
|
3
|
+
export declare const DEFAULT_FUNCTION_NAME_PREFIX = "--fn-";
|
|
4
|
+
export type ParameterSchema = {
|
|
5
|
+
name: string;
|
|
6
|
+
/**
|
|
7
|
+
* The CSS type for this parameter. Defaults to '*' (any).
|
|
8
|
+
* Used in the @function parameter list as <type>.
|
|
9
|
+
*/
|
|
10
|
+
type?: string;
|
|
11
|
+
};
|
|
12
|
+
declare const FUNCTION_BRAND = "@@FUNCTION@@";
|
|
13
|
+
export type CreateFunctionParameters<TParams extends FunctionParams> = {
|
|
14
|
+
description?: string;
|
|
15
|
+
parameters: TParams;
|
|
16
|
+
definition: (css: Css, ...params: ParamsAsInterpolations<TParams>) => Equation;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Creates a CSS custom function definition with runtime compute capability.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* const spacing = createFunction('spacing-scale', {
|
|
23
|
+
* description: 'Scales a base spacing value by a multiplier',
|
|
24
|
+
* parameters: [
|
|
25
|
+
* '--base',
|
|
26
|
+
* '--scale',
|
|
27
|
+
* ],
|
|
28
|
+
* definition: (css, base, scale) => css`calc(${base} * ${scale})`,
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* spacing.definition // @function --spacing-scale(--base <length>, --scale <number>) { result: (var(--base) * var(--scale)); }
|
|
32
|
+
* spacing.compute({ base: '8px', scale: 2 }) // 'calc(var(--base) * 2)' or '16px'
|
|
33
|
+
*/
|
|
34
|
+
export type CreateFunction = (name: string, parameters: CreateFunctionParameters<any>) => ArborFunction<any>;
|
|
35
|
+
export declare function createFunctionFactory({ namePrefix, }?: {
|
|
36
|
+
namePrefix?: string;
|
|
37
|
+
}): <TParams extends FunctionParams>(name: string, { description, parameters, definition }: CreateFunctionParameters<TParams>) => ArborFunction<TParams>;
|
|
38
|
+
export type ArborFunction<TParams extends FunctionParams = FunctionParams> = {
|
|
39
|
+
[FUNCTION_BRAND]: true;
|
|
40
|
+
name: string;
|
|
41
|
+
description?: string;
|
|
42
|
+
parameters: TParams;
|
|
43
|
+
equation: Equation;
|
|
44
|
+
definition: string;
|
|
45
|
+
inline: (...params: ParamsAsInterpolations<TParams>) => Equation;
|
|
46
|
+
compute: (params: Record<string, string | number>) => string;
|
|
47
|
+
};
|
|
48
|
+
export type PresetFunctions = Record<string, ArborFunction>;
|
|
49
|
+
export declare function isFunction(value: unknown): value is ArborFunction<FunctionParams>;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,GAAG,EACH,KAAK,QAAQ,EAGb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,cAAc,EAEd,sBAAsB,EAGtB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,4BAA4B,UAAU,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,QAAA,MAAM,cAAc,iBAAiB,CAAC;AAEtC,MAAM,MAAM,wBAAwB,CAAC,OAAO,SAAS,cAAc,IAAI;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,CACX,GAAG,EAAE,GAAG,EACR,GAAG,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,KACtC,QAAQ,CAAC;CACd,CAAC;AACF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,cAAc,GAAG,CAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,wBAAwB,CAAC,GAAG,CAAC,KACrC,aAAa,CAAC,GAAG,CAAC,CAAC;AAExB,wBAAgB,qBAAqB,CAAC,EACrC,UAAyC,GACzC,GAAE;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;CACf,IAG0B,OAAO,SAAS,cAAc,QACtD,MAAM,2CAC6B,wBAAwB,CAAC,OAAO,CAAC,KACxE,aAAa,CAAC,OAAO,CAAC,CAiCzB;AAED,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IAAI;IAC5E,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;IACjE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;CAC7D,CAAC;AACF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE5D,wBAAgB,UAAU,CACzB,KAAK,EAAE,OAAO,GACZ,KAAK,IAAI,aAAa,CAAC,cAAc,CAAC,CAExC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { computeEquation, css, printComputationResult, printEquation, } from '@arbor-css/calc';
|
|
2
|
+
import { isFunctionParamWithMeta, paramsAsInterpolations, paramsAsString, } from './common.js';
|
|
3
|
+
export const DEFAULT_FUNCTION_NAME_PREFIX = '--fn-';
|
|
4
|
+
const FUNCTION_BRAND = '@@FUNCTION@@';
|
|
5
|
+
export function createFunctionFactory({ namePrefix = DEFAULT_FUNCTION_NAME_PREFIX, } = {}) {
|
|
6
|
+
const functionPrefix = namePrefix;
|
|
7
|
+
return function createFunction(name, { description, parameters, definition }) {
|
|
8
|
+
const cssName = `${functionPrefix}${name}`;
|
|
9
|
+
const paramsList = paramsAsString(parameters, true);
|
|
10
|
+
const equation = definition(css, ...paramsAsInterpolations(parameters));
|
|
11
|
+
const body = printEquation(equation);
|
|
12
|
+
const cssDefinition = `@function ${cssName}${paramsList} { result: ${body}; }`;
|
|
13
|
+
return {
|
|
14
|
+
[FUNCTION_BRAND]: true,
|
|
15
|
+
name: cssName,
|
|
16
|
+
description,
|
|
17
|
+
parameters,
|
|
18
|
+
equation,
|
|
19
|
+
definition: cssDefinition,
|
|
20
|
+
inline: (...params) => definition(css, ...params),
|
|
21
|
+
compute(params) {
|
|
22
|
+
const propertyValues = {};
|
|
23
|
+
for (let index = 0; index < parameters.length; index++) {
|
|
24
|
+
const parameter = parameters[index];
|
|
25
|
+
const cssParameterName = isFunctionParamWithMeta(parameter) ? parameter.name : parameter;
|
|
26
|
+
propertyValues[cssParameterName] = String(params[cssParameterName]);
|
|
27
|
+
}
|
|
28
|
+
const result = computeEquation(equation, {
|
|
29
|
+
propertyValues,
|
|
30
|
+
skipBaking: false,
|
|
31
|
+
});
|
|
32
|
+
return printComputationResult(result);
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function isFunction(value) {
|
|
38
|
+
return typeof value === 'object' && value !== null && FUNCTION_BRAND in value;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EACf,GAAG,EAGH,sBAAsB,EACtB,aAAa,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEN,uBAAuB,EAEvB,sBAAsB,EACtB,cAAc,GACd,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,4BAA4B,GAAG,OAAO,CAAC;AAWpD,MAAM,cAAc,GAAG,cAAc,CAAC;AA+BtC,MAAM,UAAU,qBAAqB,CAAC,EACrC,UAAU,GAAG,4BAA4B,MAGtC,EAAE;IACL,MAAM,cAAc,GAAG,UAAU,CAAC;IAElC,OAAO,SAAS,cAAc,CAC7B,IAAY,EACZ,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAqC;QAE1E,MAAM,OAAO,GAAG,GAAG,cAAc,GAAG,IAAI,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,aAAa,OAAO,GAAG,UAAU,cAAc,IAAI,KAAK,CAAC;QAE/E,OAAO;YACN,CAAC,cAAc,CAAC,EAAE,IAAa;YAC/B,IAAI,EAAE,OAAO;YACb,WAAW;YACX,UAAU;YACV,QAAQ;YACR,UAAU,EAAE,aAAa;YACzB,MAAM,EAAE,CAAC,GAAG,MAAuC,EAAE,EAAE,CACtD,UAAU,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;YAC3B,OAAO,CAAC,MAAuC;gBAC9C,MAAM,cAAc,GAA2B,EAAE,CAAC;gBAClD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;oBACxD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;oBACpC,MAAM,gBAAgB,GACrB,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;oBACjE,cAAc,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE;oBACxC,cAAc;oBACd,UAAU,EAAE,KAAK;iBACjB,CAAC,CAAC;gBACH,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;SACD,CAAC;IACH,CAA0B,CAAC;AAC5B,CAAC;AAcD,MAAM,UAAU,UAAU,CACzB,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,cAAc,IAAI,KAAK,CAAC;AAC/E,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,54 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
name: string;
|
|
5
|
-
/**
|
|
6
|
-
* The CSS type for this parameter. Defaults to '*' (any).
|
|
7
|
-
* Used in the @function parameter list as <type>.
|
|
8
|
-
*/
|
|
9
|
-
type?: string;
|
|
10
|
-
};
|
|
11
|
-
declare const FUNCTION_BRAND = "@@FUNCTION@@";
|
|
12
|
-
type CssProperty = `--${string}`;
|
|
13
|
-
type FunctionParams = readonly CssProperty[];
|
|
14
|
-
type ParamsAsInterpolations<TParams extends FunctionParams> = {
|
|
15
|
-
[K in keyof TParams]: CalcInterpolation;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Creates a CSS custom function definition with runtime compute capability.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* const spacing = createFunction('spacing-scale', {
|
|
22
|
-
* description: 'Scales a base spacing value by a multiplier',
|
|
23
|
-
* parameters: [
|
|
24
|
-
* createToken('base', { name: 'base', type: 'length' }),
|
|
25
|
-
* createToken('scale', { name: 'scale', type: 'number' }),
|
|
26
|
-
* ],
|
|
27
|
-
* definition: (base, scale) => $.multiply(base, scale),
|
|
28
|
-
* });
|
|
29
|
-
*
|
|
30
|
-
* spacing.definition // @function --spacing-scale(--base <length>, --scale <number>) { result: (var(--base) * var(--scale)); }
|
|
31
|
-
* spacing.compute({ base: '8px', scale: 2 }) // 'calc(var(--base) * 2)' or '16px'
|
|
32
|
-
*/
|
|
33
|
-
export declare function createFunctionFactory({ tokenPrefix, }?: {
|
|
34
|
-
tokenPrefix?: string;
|
|
35
|
-
}): <TParams extends FunctionParams>(name: string, { description, parameters, definition, }: {
|
|
36
|
-
description?: string;
|
|
37
|
-
parameters: TParams;
|
|
38
|
-
definition: (css: Css & CalcOperations, ...params: CalcInterpolation[]) => Equation;
|
|
39
|
-
}) => ArborFunction<TParams>;
|
|
40
|
-
export type CreateFunction = ReturnType<typeof createFunctionFactory>;
|
|
41
|
-
export type ArborFunction<TParams extends FunctionParams = FunctionParams> = {
|
|
42
|
-
[FUNCTION_BRAND]: true;
|
|
43
|
-
name: string;
|
|
44
|
-
description?: string;
|
|
45
|
-
parameters: TParams;
|
|
46
|
-
equation: Equation;
|
|
47
|
-
definition: string;
|
|
48
|
-
inline: (...params: ParamsAsInterpolations<TParams>) => Equation;
|
|
49
|
-
compute: (params: Record<string, string | number>) => string;
|
|
50
|
-
};
|
|
51
|
-
export type PresetFunctions = Record<string, ArborFunction<any>>;
|
|
52
|
-
export declare function isFunction(value: unknown): value is ArborFunction;
|
|
53
|
-
export {};
|
|
1
|
+
export * from './common.js';
|
|
2
|
+
export * from './functions.js';
|
|
3
|
+
export * from './mixins.js';
|
|
54
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,72 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
const FUNCTION_BRAND = '@@FUNCTION@@';
|
|
5
|
-
/**
|
|
6
|
-
* Creates a CSS custom function definition with runtime compute capability.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* const spacing = createFunction('spacing-scale', {
|
|
10
|
-
* description: 'Scales a base spacing value by a multiplier',
|
|
11
|
-
* parameters: [
|
|
12
|
-
* createToken('base', { name: 'base', type: 'length' }),
|
|
13
|
-
* createToken('scale', { name: 'scale', type: 'number' }),
|
|
14
|
-
* ],
|
|
15
|
-
* definition: (base, scale) => $.multiply(base, scale),
|
|
16
|
-
* });
|
|
17
|
-
*
|
|
18
|
-
* spacing.definition // @function --spacing-scale(--base <length>, --scale <number>) { result: (var(--base) * var(--scale)); }
|
|
19
|
-
* spacing.compute({ base: '8px', scale: 2 }) // 'calc(var(--base) * 2)' or '16px'
|
|
20
|
-
*/
|
|
21
|
-
export function createFunctionFactory({ tokenPrefix = DEFAULT_TOKEN_PREFIX, } = {}) {
|
|
22
|
-
const functionPrefix = `${tokenPrefix}fn-`;
|
|
23
|
-
return function createFunction(name, { description, parameters, definition, }) {
|
|
24
|
-
const cssName = `${functionPrefix}${name}`;
|
|
25
|
-
const definitionTools = Object.assign(css, $);
|
|
26
|
-
const parameterNames = parameters.map((parameter) => isToken(parameter) ? parameter.name : parameter);
|
|
27
|
-
const paramsList = parameters
|
|
28
|
-
.map((p) => {
|
|
29
|
-
if (isToken(p)) {
|
|
30
|
-
const type = p.type ?? '*';
|
|
31
|
-
const typeAnnotation = type === '*' ? '' : ` <${type}>`;
|
|
32
|
-
return `${p.name}${typeAnnotation}`;
|
|
33
|
-
}
|
|
34
|
-
return p;
|
|
35
|
-
})
|
|
36
|
-
.join(', ');
|
|
37
|
-
const equation = definition(definitionTools, ...parameterNames.map((parameter) => $.val(`var(${parameter})`)));
|
|
38
|
-
const body = printEquation(equation);
|
|
39
|
-
const cssDefinition = `@function ${cssName}(${paramsList}) { result: ${body}; }`;
|
|
40
|
-
return {
|
|
41
|
-
[FUNCTION_BRAND]: true,
|
|
42
|
-
name: cssName,
|
|
43
|
-
description,
|
|
44
|
-
parameters,
|
|
45
|
-
equation,
|
|
46
|
-
definition: cssDefinition,
|
|
47
|
-
inline: (...params) => definition(definitionTools, ...params),
|
|
48
|
-
compute(params) {
|
|
49
|
-
const propertyValues = {};
|
|
50
|
-
for (let index = 0; index < parameters.length; index++) {
|
|
51
|
-
const parameter = parameters[index];
|
|
52
|
-
const cssParameterName = parameterNames[index];
|
|
53
|
-
const logicalName = isToken(parameter) && cssParameterName.startsWith(tokenPrefix) ?
|
|
54
|
-
cssParameterName.slice(tokenPrefix.length)
|
|
55
|
-
: cssParameterName.replace(/^--/, '');
|
|
56
|
-
if (logicalName in params) {
|
|
57
|
-
propertyValues[cssParameterName] = String(params[logicalName]);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
const result = computeEquation(equation, {
|
|
61
|
-
propertyValues,
|
|
62
|
-
skipBaking: false,
|
|
63
|
-
});
|
|
64
|
-
return printComputationResult(result);
|
|
65
|
-
},
|
|
66
|
-
};
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
export function isFunction(value) {
|
|
70
|
-
return typeof value === 'object' && value !== null && FUNCTION_BRAND in value;
|
|
71
|
-
}
|
|
1
|
+
export * from './common.js';
|
|
2
|
+
export * from './functions.js';
|
|
3
|
+
export * from './mixins.js';
|
|
72
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
package/dist/mixins.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { CalcInterpolation, Css, type Equation } from '@arbor-css/calc';
|
|
2
|
+
import { CreateToken, SimpleTokensAsTokenDefinitions, SimpleTokenSchema, TokenSchema } from '@arbor-css/tokens';
|
|
3
|
+
import { FunctionParams, ParamsAsInterpolations } from './common.js';
|
|
4
|
+
export declare const DEFAULT_MIXIN_NAME_PREFIX = "--mx-";
|
|
5
|
+
declare const MIXIN_BRAND = "@@MIXIN@@";
|
|
6
|
+
export type ArborMixinDeclaration = {
|
|
7
|
+
prop: string;
|
|
8
|
+
value: Equation;
|
|
9
|
+
};
|
|
10
|
+
type MixinValue = CalcInterpolation | Equation;
|
|
11
|
+
type MixinBodyObject = Record<string, MixinValue>;
|
|
12
|
+
type MixinBodyList = readonly {
|
|
13
|
+
prop: string;
|
|
14
|
+
value: MixinValue;
|
|
15
|
+
}[];
|
|
16
|
+
export interface CreateMixinParameters<TParams extends FunctionParams, TTokens extends SimpleTokenSchema = SimpleTokenSchema> {
|
|
17
|
+
description?: string;
|
|
18
|
+
parameters?: TParams;
|
|
19
|
+
definition: (css: Css, inputs: {
|
|
20
|
+
parameters: ParamsAsInterpolations<TParams>;
|
|
21
|
+
tokens: SimpleTokensAsTokenDefinitions<TTokens>;
|
|
22
|
+
}) => MixinBodyObject | MixinBodyList;
|
|
23
|
+
contributeTokens?: TTokens;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Creates a CSS mixin that can be applied via the `@apply` at-rule in CSS,
|
|
27
|
+
* with support for dynamic values via CSS custom properties.
|
|
28
|
+
* The mixin's definition is provided as a function that receives CSS
|
|
29
|
+
* and calculation utilities, allowing for complex logic and computations
|
|
30
|
+
* in the mixin body.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* const shadowMixin = createMixin('shadow', {
|
|
34
|
+
* description: 'Applies a shadow with configurable color and size',
|
|
35
|
+
* parameters: [
|
|
36
|
+
* '--default-ring-color',
|
|
37
|
+
* ],
|
|
38
|
+
* definition: (css, defaultRingColor) => ({
|
|
39
|
+
* '--shadow': css`0 0 0 0 transparent`,
|
|
40
|
+
* '--ring': css`0 0 0 0 var(${defaultRingColor}, transparent)`,
|
|
41
|
+
* 'box-shadow': css`var(--ring), var(--shadow)`,
|
|
42
|
+
* }),
|
|
43
|
+
*/
|
|
44
|
+
export type CreateMixin = <TParams extends FunctionParams, TTokens extends SimpleTokenSchema>(name: string, parameters: CreateMixinParameters<TParams, TTokens>) => ArborMixin<TParams, SimpleTokensAsTokenDefinitions<TTokens>>;
|
|
45
|
+
export declare function createMixinFactory({ namePrefix, createToken, }: {
|
|
46
|
+
namePrefix?: string;
|
|
47
|
+
createToken: CreateToken;
|
|
48
|
+
}): <TParams extends FunctionParams, TTokens extends SimpleTokenSchema>(name: string, { description, definition, parameters, contributeTokens: contributeTokensInput, }: CreateMixinParameters<TParams, TTokens>) => ArborMixin<TParams, SimpleTokensAsTokenDefinitions<TTokens>>;
|
|
49
|
+
export type ArborMixin<TParams extends FunctionParams = FunctionParams, TTokens extends TokenSchema = TokenSchema> = {
|
|
50
|
+
[MIXIN_BRAND]: true;
|
|
51
|
+
name: string;
|
|
52
|
+
description?: string;
|
|
53
|
+
declarations: ArborMixinDeclaration[];
|
|
54
|
+
definition: string;
|
|
55
|
+
inline: () => ArborMixinDeclaration[];
|
|
56
|
+
parameters: TParams;
|
|
57
|
+
contributeTokens: TTokens;
|
|
58
|
+
};
|
|
59
|
+
export type PresetMixins = Record<string, ArborMixin>;
|
|
60
|
+
export declare function isMixin(value: unknown): value is ArborMixin;
|
|
61
|
+
export type MixinTokens<TMixins extends PresetMixins> = {
|
|
62
|
+
[K in keyof TMixins]: TMixins[K] extends ArborMixin<any, infer TTokens> ? TTokens : never;
|
|
63
|
+
};
|
|
64
|
+
export declare function extractMixinTokens<TMixins extends PresetMixins>(mixins: TMixins): MixinTokens<TMixins>;
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=mixins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixins.d.ts","sourceRoot":"","sources":["../src/mixins.ts"],"names":[],"mappings":"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"}
|
package/dist/mixins.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { css, isCalcEquation, printEquation, } from '@arbor-css/calc';
|
|
2
|
+
import { convertSimpleTokenSchema, } from '@arbor-css/tokens';
|
|
3
|
+
import { paramsAsInterpolations, paramsAsString, } from './common.js';
|
|
4
|
+
export const DEFAULT_MIXIN_NAME_PREFIX = '--mx-';
|
|
5
|
+
const MIXIN_BRAND = '@@MIXIN@@';
|
|
6
|
+
function toEquation(value) {
|
|
7
|
+
if (isCalcEquation(value)) {
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
return css `
|
|
11
|
+
${value}
|
|
12
|
+
`;
|
|
13
|
+
}
|
|
14
|
+
function normalizeDeclarations(body) {
|
|
15
|
+
if (Array.isArray(body)) {
|
|
16
|
+
return body.map((decl) => ({
|
|
17
|
+
prop: decl.prop,
|
|
18
|
+
value: toEquation(decl.value),
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
return Object.entries(body).map(([prop, value]) => ({
|
|
22
|
+
prop,
|
|
23
|
+
value: toEquation(value),
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
export function createMixinFactory({ namePrefix = DEFAULT_MIXIN_NAME_PREFIX, createToken, }) {
|
|
27
|
+
const mixinPrefix = namePrefix;
|
|
28
|
+
return function createMixin(name, { description, definition, parameters = [], contributeTokens: contributeTokensInput = {}, }) {
|
|
29
|
+
const cssName = `${mixinPrefix}${name}`;
|
|
30
|
+
const contributeTokens = convertSimpleTokenSchema(contributeTokensInput, name, createToken);
|
|
31
|
+
const declarations = normalizeDeclarations(definition(css, {
|
|
32
|
+
parameters: paramsAsInterpolations(parameters),
|
|
33
|
+
tokens: contributeTokens,
|
|
34
|
+
}));
|
|
35
|
+
const body = declarations
|
|
36
|
+
.map((decl) => `${decl.prop}: ${printEquation(decl.value)};`)
|
|
37
|
+
.join(' ');
|
|
38
|
+
return {
|
|
39
|
+
[MIXIN_BRAND]: true,
|
|
40
|
+
name: cssName,
|
|
41
|
+
description,
|
|
42
|
+
declarations,
|
|
43
|
+
definition: `@mixin ${cssName}${paramsAsString(parameters)} { ${body} }`,
|
|
44
|
+
inline: () => declarations.map((decl) => ({
|
|
45
|
+
prop: decl.prop,
|
|
46
|
+
value: decl.value,
|
|
47
|
+
})),
|
|
48
|
+
parameters,
|
|
49
|
+
contributeTokens,
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function isMixin(value) {
|
|
54
|
+
return typeof value === 'object' && value !== null && MIXIN_BRAND in value;
|
|
55
|
+
}
|
|
56
|
+
export function extractMixinTokens(mixins) {
|
|
57
|
+
const tokens = {};
|
|
58
|
+
for (const key in mixins) {
|
|
59
|
+
const mixin = mixins[key];
|
|
60
|
+
if (isMixin(mixin)) {
|
|
61
|
+
tokens[key] = mixin.contributeTokens;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return tokens;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=mixins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixins.js","sourceRoot":"","sources":["../src/mixins.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbor-css/functions",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.62",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"vite": "^8.0.13"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@arbor-css/calc": "0.0.
|
|
30
|
-
"@arbor-css/tokens": "0.0.
|
|
29
|
+
"@arbor-css/calc": "0.0.62",
|
|
30
|
+
"@arbor-css/tokens": "0.0.62"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
33
|
"build": "tsc",
|