@arbor-css/preset 0.0.74 → 0.0.75
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/createPrimitiveTokens.d.ts +31 -0
- package/dist/createPrimitiveTokens.d.ts.map +1 -0
- package/dist/createPrimitiveTokens.js +103 -0
- package/dist/createPrimitiveTokens.js.map +1 -0
- package/dist/define.d.ts +104 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/define.js +158 -0
- package/dist/define.js.map +1 -0
- package/dist/define.test.d.ts +2 -0
- package/dist/define.test.d.ts.map +1 -0
- package/dist/define.test.js +246 -0
- package/dist/define.test.js.map +1 -0
- package/dist/index.d.ts +2 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -8
- package/dist/index.js.map +1 -1
- package/package.json +15 -16
- package/dist/arborPreset.d.ts +0 -1356
- package/dist/arborPreset.d.ts.map +0 -1
- package/dist/arborPreset.js +0 -513
- package/dist/arborPreset.js.map +0 -1
- package/dist/arborPreset.test.d.ts +0 -2
- package/dist/arborPreset.test.d.ts.map +0 -1
- package/dist/arborPreset.test.js +0 -42
- package/dist/arborPreset.test.js.map +0 -1
- package/dist/commonFunctions.d.ts +0 -13
- package/dist/commonFunctions.d.ts.map +0 -1
- package/dist/commonFunctions.js +0 -19
- package/dist/commonFunctions.js.map +0 -1
- package/dist/config.d.ts +0 -43
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -18
- package/dist/config.js.map +0 -1
- package/dist/createArborPreset.d.ts +0 -55
- package/dist/createArborPreset.d.ts.map +0 -1
- package/dist/createArborPreset.js +0 -124
- package/dist/createArborPreset.js.map +0 -1
- package/dist/functions.d.ts +0 -12
- package/dist/functions.d.ts.map +0 -1
- package/dist/functions.js +0 -52
- package/dist/functions.js.map +0 -1
- package/dist/functions.test.d.ts +0 -2
- package/dist/functions.test.d.ts.map +0 -1
- package/dist/functions.test.js +0 -25
- package/dist/functions.test.js.map +0 -1
- package/dist/mixins.d.ts +0 -1210
- package/dist/mixins.d.ts.map +0 -1
- package/dist/mixins.js +0 -219
- package/dist/mixins.js.map +0 -1
- package/dist/mixins.test.d.ts +0 -2
- package/dist/mixins.test.d.ts.map +0 -1
- package/dist/mixins.test.js +0 -38
- package/dist/mixins.test.js.map +0 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ColorRangeItem, type CompiledColors } from '@arbor-css/colors';
|
|
2
|
+
import { type CompiledShadows } from '@arbor-css/shadows';
|
|
3
|
+
import { type CompiledSpacing } from '@arbor-css/spacing';
|
|
4
|
+
import { Token, type CreateToken } from '@arbor-css/tokens';
|
|
5
|
+
import { type CompiledTypography } from '@arbor-css/typography';
|
|
6
|
+
export interface CreatePrimitiveTokensConfig<TCompiledColors extends CompiledColors<any, any>, TCompiledTypography extends CompiledTypography<any>, TCompiledSpacing extends CompiledSpacing<any>, TCompiledShadows extends CompiledShadows<any>, TEasingFunctions extends Record<string, string>, TDurations extends Record<string, string>> {
|
|
7
|
+
color?: TCompiledColors;
|
|
8
|
+
typography?: TCompiledTypography;
|
|
9
|
+
spacing?: TCompiledSpacing;
|
|
10
|
+
shadow?: TCompiledShadows;
|
|
11
|
+
easing?: TEasingFunctions;
|
|
12
|
+
duration?: TDurations;
|
|
13
|
+
createToken: CreateToken;
|
|
14
|
+
}
|
|
15
|
+
type LiteralsToTokens<T extends Record<string, any>> = {
|
|
16
|
+
[K in keyof T]: T[K] extends string | number ? Token : T[K] extends Record<string, any> ? LiteralsToTokens<T[K]> : never;
|
|
17
|
+
};
|
|
18
|
+
export interface PrimitivesColorScheme {
|
|
19
|
+
[Color: string]: ColorRangeItem[];
|
|
20
|
+
}
|
|
21
|
+
export type PrimitiveTokens<TCompiledColors extends CompiledColors<any, any>, TTypography extends CompiledTypography, TSpacing extends CompiledSpacing, TShadows extends CompiledShadows, TEasingFunctions extends Record<string, string>, TDurations extends Record<string, string>> = {
|
|
22
|
+
color: LiteralsToTokens<TCompiledColors[keyof TCompiledColors]['colors']>;
|
|
23
|
+
typography: LiteralsToTokens<TTypography['levels']>;
|
|
24
|
+
spacing: LiteralsToTokens<TSpacing['levels']>;
|
|
25
|
+
shadow: LiteralsToTokens<TShadows['levels']>;
|
|
26
|
+
easing: LiteralsToTokens<TEasingFunctions>;
|
|
27
|
+
duration: LiteralsToTokens<TDurations>;
|
|
28
|
+
};
|
|
29
|
+
export declare function createPrimitiveTokens<TCompiledColors extends CompiledColors<any, any>, TCompiledTypography extends CompiledTypography<any>, TCompiledSpacing extends CompiledSpacing<any>, TCompiledShadows extends CompiledShadows<any>, TEasingFunctions extends Record<string, string>, TDurations extends Record<string, string>>(config: CreatePrimitiveTokensConfig<TCompiledColors, TCompiledTypography, TCompiledSpacing, TCompiledShadows, TEasingFunctions, TDurations>): PrimitiveTokens<TCompiledColors, TCompiledTypography, TCompiledSpacing, TCompiledShadows, TEasingFunctions, TDurations>;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=createPrimitiveTokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPrimitiveTokens.d.ts","sourceRoot":"","sources":["../src/createPrimitiveTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAEN,KAAK,eAAe,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,2BAA2B,CAC3C,eAAe,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAChD,mBAAmB,SAAS,kBAAkB,CAAC,GAAG,CAAC,EACnD,gBAAgB,SAAS,eAAe,CAAC,GAAG,CAAC,EAC7C,gBAAgB,SAAS,eAAe,CAAC,GAAG,CAAC,EAC7C,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/C,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAEzC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;CACzB;AAED,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;KACrD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,KAAK,GAClD,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACzD,KAAK;CACP,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACrC,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;CAClC;AAED,MAAM,MAAM,eAAe,CAC1B,eAAe,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAChD,WAAW,SAAS,kBAAkB,EACtC,QAAQ,SAAS,eAAe,EAChC,QAAQ,SAAS,eAAe,EAChC,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/C,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IACtC;IACH,KAAK,EAAE,gBAAgB,CAAC,eAAe,CAAC,MAAM,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1E,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,MAAM,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAC3C,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;CACvC,CAAC;AAEF,wBAAgB,qBAAqB,CACpC,eAAe,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAChD,mBAAmB,SAAS,kBAAkB,CAAC,GAAG,CAAC,EACnD,gBAAgB,SAAS,eAAe,CAAC,GAAG,CAAC,EAC7C,gBAAgB,SAAS,eAAe,CAAC,GAAG,CAAC,EAC7C,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/C,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAEzC,MAAM,EAAE,2BAA2B,CAClC,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,CACV,GACC,eAAe,CACjB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,CACV,CAuIA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { isCompiledShadowLevel, } from '@arbor-css/shadows';
|
|
2
|
+
import { isTypographyLevel, } from '@arbor-css/typography';
|
|
3
|
+
import { convertStructure } from './util/convertStructure.js';
|
|
4
|
+
export function createPrimitiveTokens(config) {
|
|
5
|
+
const { color, typography, spacing, shadow, easing, duration, createToken } = config;
|
|
6
|
+
const arbitraryScheme = color ? (Object.values(color)[0] ?? undefined) : undefined;
|
|
7
|
+
const $colorProps = arbitraryScheme ?
|
|
8
|
+
convertStructure(arbitraryScheme.colors, (item) => typeof item === 'string', (_, path) => createToken(path.join('-'), {
|
|
9
|
+
tag: 'color',
|
|
10
|
+
type: 'color',
|
|
11
|
+
purpose: 'color',
|
|
12
|
+
group: path.slice(0, -1).join('-'),
|
|
13
|
+
}))
|
|
14
|
+
: {};
|
|
15
|
+
const $typographyProps = typography ?
|
|
16
|
+
convertStructure(typography.levels, isTypographyLevel, (_, path) => ({
|
|
17
|
+
size: createToken(`${path.join('-')}-size`, {
|
|
18
|
+
type: 'length',
|
|
19
|
+
purpose: 'font-size',
|
|
20
|
+
group: path.join('-'),
|
|
21
|
+
tag: 'typography',
|
|
22
|
+
}),
|
|
23
|
+
weight: createToken(`${path.join('-')}-weight`, {
|
|
24
|
+
type: '*',
|
|
25
|
+
purpose: 'font-weight',
|
|
26
|
+
group: path.join('-'),
|
|
27
|
+
tag: 'typography',
|
|
28
|
+
}),
|
|
29
|
+
lineHeight: createToken(`${path.join('-')}-line-height`, {
|
|
30
|
+
type: '*',
|
|
31
|
+
purpose: 'line-height',
|
|
32
|
+
group: path.join('-'),
|
|
33
|
+
tag: 'typography',
|
|
34
|
+
}),
|
|
35
|
+
}))
|
|
36
|
+
: {};
|
|
37
|
+
const $spacingProps = spacing ?
|
|
38
|
+
convertStructure(spacing.levels, (value) => typeof value === 'string' || typeof value === 'number', (_, path) => createToken(`${path.join('-')}`, {
|
|
39
|
+
type: 'length',
|
|
40
|
+
purpose: 'spacing',
|
|
41
|
+
tag: 'spacing',
|
|
42
|
+
}))
|
|
43
|
+
: {};
|
|
44
|
+
const $shadowProps = shadow ?
|
|
45
|
+
convertStructure(shadow.levels, isCompiledShadowLevel, (_, path) => ({
|
|
46
|
+
x: createToken(`${path.join('-')}-x`, {
|
|
47
|
+
type: 'length',
|
|
48
|
+
purpose: 'shadow-x',
|
|
49
|
+
group: path.join('-'),
|
|
50
|
+
tag: 'shadow',
|
|
51
|
+
}),
|
|
52
|
+
y: createToken(`${path.join('-')}-y`, {
|
|
53
|
+
type: 'length',
|
|
54
|
+
purpose: 'shadow-y',
|
|
55
|
+
group: path.join('-'),
|
|
56
|
+
tag: 'shadow',
|
|
57
|
+
}),
|
|
58
|
+
blur: createToken(`${path.join('-')}-blur`, {
|
|
59
|
+
type: 'length',
|
|
60
|
+
purpose: 'shadow-blur',
|
|
61
|
+
group: path.join('-'),
|
|
62
|
+
tag: 'shadow',
|
|
63
|
+
}),
|
|
64
|
+
spread: createToken(`${path.join('-')}-spread`, {
|
|
65
|
+
type: 'length',
|
|
66
|
+
purpose: 'shadow-spread',
|
|
67
|
+
group: path.join('-'),
|
|
68
|
+
tag: 'shadow',
|
|
69
|
+
}),
|
|
70
|
+
color: createToken(`${path.join('-')}-color`, {
|
|
71
|
+
type: 'color',
|
|
72
|
+
purpose: 'shadow-color',
|
|
73
|
+
group: path.join('-'),
|
|
74
|
+
tag: 'shadow',
|
|
75
|
+
}),
|
|
76
|
+
}))
|
|
77
|
+
: {};
|
|
78
|
+
const $easingProps = easing ?
|
|
79
|
+
convertStructure(easing, (value) => typeof value === 'string', (_, path) => createToken(`${path.join('-')}`, {
|
|
80
|
+
type: 'string',
|
|
81
|
+
purpose: 'easing-function',
|
|
82
|
+
group: path.join('-'),
|
|
83
|
+
tag: 'easing',
|
|
84
|
+
}))
|
|
85
|
+
: {};
|
|
86
|
+
const $durationProps = duration ?
|
|
87
|
+
convertStructure(duration, (value) => typeof value === 'string', (_, path) => createToken(`${path.join('-')}`, {
|
|
88
|
+
type: 'string',
|
|
89
|
+
purpose: 'duration',
|
|
90
|
+
group: path.join('-'),
|
|
91
|
+
tag: 'duration',
|
|
92
|
+
}))
|
|
93
|
+
: {};
|
|
94
|
+
return {
|
|
95
|
+
color: $colorProps,
|
|
96
|
+
typography: $typographyProps,
|
|
97
|
+
spacing: $spacingProps,
|
|
98
|
+
shadow: $shadowProps,
|
|
99
|
+
easing: $easingProps,
|
|
100
|
+
duration: $durationProps,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=createPrimitiveTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPrimitiveTokens.js","sourceRoot":"","sources":["../src/createPrimitiveTokens.ts"],"names":[],"mappings":"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"}
|
package/dist/define.d.ts
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { CompiledColors } from '@arbor-css/colors';
|
|
2
|
+
import { CreateFunction, CreateMixin, MixinTokens, PresetFunctions, PresetMixins } from '@arbor-css/functions';
|
|
3
|
+
import { GlobalContext, GlobalContextConfig, SystemTokens } from '@arbor-css/globals';
|
|
4
|
+
import { ModeInstance, ModeValues, PartialModeInstance } from '@arbor-css/modes';
|
|
5
|
+
import { CompiledShadows } from '@arbor-css/shadows';
|
|
6
|
+
import { CompiledSpacing } from '@arbor-css/spacing';
|
|
7
|
+
import { SimpleTokensAsTokenDefinitions, SimpleTokenSchema } from '@arbor-css/tokens';
|
|
8
|
+
import { CompiledTypography } from '@arbor-css/typography';
|
|
9
|
+
import { DeepPartial } from '@arbor-css/util';
|
|
10
|
+
import { PrimitiveTokens } from './createPrimitiveTokens.js';
|
|
11
|
+
/**
|
|
12
|
+
* Taking an input array of presets, reduces to the combined
|
|
13
|
+
* token set by merging their token types together
|
|
14
|
+
*/
|
|
15
|
+
export type ExtendedConfigPrimitiveTokens<TExtends extends AnyArborPreset[]> = TExtends[number] extends (ArborPreset<any, infer TColors, infer TTypography, infer TSpacing, infer TShadows, infer TEasingFunctions, infer TDurations, any, any>) ? PrimitiveTokens<TColors, TTypography, TSpacing, TShadows, TEasingFunctions, TDurations> : {};
|
|
16
|
+
type EmptyPreset = ArborPreset<{}, CompiledColors<any, any>, CompiledTypography<any>, CompiledSpacing<any>, CompiledShadows<any>, {}, {}, {}, {}>;
|
|
17
|
+
export type ExtendedConfigModeSchema<TExtends extends AnyArborPreset[]> = TExtends[number] extends (ArborPreset<infer TModeSchema, any, any, any, any, any, any, any, any>) ? TModeSchema : {};
|
|
18
|
+
/**
|
|
19
|
+
* Collected tokens of the entire preset.
|
|
20
|
+
*/
|
|
21
|
+
export type PresetTokens<TModeSchema extends SimpleTokenSchema, TColors extends CompiledColors<any, any>, TTypography extends CompiledTypography<any>, TSpacing extends CompiledSpacing<any>, TEasingFunctions extends Record<string, string>, TDurations extends Record<string, string>, TShadows extends CompiledShadows<any>, TMixins extends PresetMixins, TExtends extends AnyArborPreset[] = []> = {
|
|
22
|
+
mode: SimpleTokensAsTokenDefinitions<TModeSchema>;
|
|
23
|
+
primitives: ExtendedConfigPrimitiveTokens<TExtends> & PrimitiveTokens<TColors, TTypography, TSpacing, TShadows, TEasingFunctions, TDurations>;
|
|
24
|
+
system: SystemTokens;
|
|
25
|
+
mixins: MixinTokens<TMixins>;
|
|
26
|
+
};
|
|
27
|
+
export declare const INTERNALS: unique symbol;
|
|
28
|
+
export interface ArborPreset<TModeSchema extends SimpleTokenSchema = SimpleTokenSchema, TCompiledColors extends CompiledColors = CompiledColors, TTypography extends CompiledTypography = CompiledTypography, TSpacing extends CompiledSpacing = CompiledSpacing, TShadows extends CompiledShadows = CompiledShadows, TEasingFunctions extends Record<string, string> = Record<string, string>, TDurations extends Record<string, string> = Record<string, string>, TFunctions extends PresetFunctions = PresetFunctions, TMixins extends PresetMixins = PresetMixins> {
|
|
29
|
+
functions: TFunctions;
|
|
30
|
+
mixins: TMixins;
|
|
31
|
+
/** Easy access to your mode schema */
|
|
32
|
+
modeSchema: TModeSchema;
|
|
33
|
+
/** All tokens in this preset. */
|
|
34
|
+
$: PresetTokens<TModeSchema, TCompiledColors, TTypography, TSpacing, TEasingFunctions, TDurations, TShadows, TMixins>;
|
|
35
|
+
context: GlobalContext;
|
|
36
|
+
extends: AnyArborPreset[];
|
|
37
|
+
/**
|
|
38
|
+
* Produces a copy of this preset with different global configuration
|
|
39
|
+
* values.
|
|
40
|
+
*/
|
|
41
|
+
withConfig(options: GlobalContextConfig): ArborPreset<TModeSchema, TCompiledColors, TTypography, TSpacing, TShadows, TEasingFunctions, TDurations, TFunctions, TMixins>;
|
|
42
|
+
/**
|
|
43
|
+
* Define the base mode values for your preset. You must provide a
|
|
44
|
+
* base value for every token in the mode schema.
|
|
45
|
+
*/
|
|
46
|
+
baseMode(mode: ModeValues<TModeSchema>): ModeInstance<TModeSchema>;
|
|
47
|
+
/**
|
|
48
|
+
* Add a 'bundled' mode to this preset. Bundled modes are included in the
|
|
49
|
+
* generated CSS stylesheet when this preset is passed to generateStylesheet.
|
|
50
|
+
*/
|
|
51
|
+
bundleMode(name: string, mode: DeepPartial<ModeValues<TModeSchema>>): PartialModeInstance<TModeSchema>;
|
|
52
|
+
/**
|
|
53
|
+
* Create a free-standing mode from your mode schema with full typing
|
|
54
|
+
* support. A mode created with this method isn't bundled into the
|
|
55
|
+
* generated CSS stylesheet when this preset is passed to generateStylesheet.
|
|
56
|
+
* You can use this to create a mode with CSS that's loaded lazily.
|
|
57
|
+
*/
|
|
58
|
+
createMode(name: string, mode: DeepPartial<ModeValues<TModeSchema>>): PartialModeInstance<TModeSchema>;
|
|
59
|
+
meta: {
|
|
60
|
+
name: string;
|
|
61
|
+
/**
|
|
62
|
+
* The initial configuration for this preset.
|
|
63
|
+
*/
|
|
64
|
+
init: DefinePresetConfig<any, any, any, any, any, any, any, any, any, any>;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export interface DefinePresetConfigPrimitives<TColors extends CompiledColors<any, any>, TTypography extends CompiledTypography<any>, TSpacing extends CompiledSpacing<any>, TShadows extends CompiledShadows<any>, TEasingFunctions extends Record<string, string>, TDurations extends Record<string, string>> {
|
|
68
|
+
color?: TColors;
|
|
69
|
+
typography?: TTypography;
|
|
70
|
+
spacing?: TSpacing;
|
|
71
|
+
shadow?: TShadows;
|
|
72
|
+
easing?: TEasingFunctions;
|
|
73
|
+
duration?: TDurations;
|
|
74
|
+
}
|
|
75
|
+
export interface DefinePresetConfig<TModeSchema extends SimpleTokenSchema, TColors extends CompiledColors<any, any>, TTypography extends CompiledTypography<any>, TSpacing extends CompiledSpacing<any>, TShadows extends CompiledShadows<any>, TEasingFunctions extends Record<string, string>, TDurations extends Record<string, string>, TFunctions extends PresetFunctions, TMixins extends PresetMixins, TExtends extends AnyArborPreset[]> {
|
|
76
|
+
name: string;
|
|
77
|
+
modeSchema: TModeSchema;
|
|
78
|
+
primitives?: (context: GlobalContext) => DefinePresetConfigPrimitives<TColors, TTypography, TSpacing, TShadows, TEasingFunctions, TDurations>;
|
|
79
|
+
defaultScheme?: keyof TColors;
|
|
80
|
+
mixins?: (create: CreateMixin, $: PresetTokens<TModeSchema, TColors, TTypography, TSpacing, TEasingFunctions, TDurations, TShadows, {}>) => TMixins;
|
|
81
|
+
functions?: (create: CreateFunction, $: PresetTokens<TModeSchema, TColors, TTypography, TSpacing, TEasingFunctions, TDurations, TShadows, TMixins>) => TFunctions;
|
|
82
|
+
extends?: TExtends;
|
|
83
|
+
config?: GlobalContextConfig;
|
|
84
|
+
}
|
|
85
|
+
export declare function definePreset<TModeSchema extends SimpleTokenSchema, TCompiledColors extends CompiledColors<any, any>, TTypography extends CompiledTypography<any>, TSpacing extends CompiledSpacing<any>, TShadows extends CompiledShadows<any>, TEasingFunctions extends Record<string, string>, TDurations extends Record<string, string>, TFunctions extends PresetFunctions, TMixins extends PresetMixins, TExtends extends AnyArborPreset[] = [EmptyPreset]>({ functions: createFunctions, mixins: createMixins, config, ...presetOptions }: DefinePresetConfig<TModeSchema, TCompiledColors, TTypography, TSpacing, TShadows, TEasingFunctions, TDurations, TFunctions, TMixins, TExtends>): ArborPreset<ExtendedConfigModeSchema<TExtends> & TModeSchema, TCompiledColors, TTypography, TSpacing, TShadows, TEasingFunctions, TDurations, TFunctions, TMixins>;
|
|
86
|
+
export interface PresetInternals {
|
|
87
|
+
modes: {
|
|
88
|
+
base: ModeInstance<any>;
|
|
89
|
+
[name: string]: PartialModeInstance<any>;
|
|
90
|
+
};
|
|
91
|
+
defaultScheme: string;
|
|
92
|
+
primitiveValues: {
|
|
93
|
+
color: CompiledColors<any, any>;
|
|
94
|
+
typography: CompiledTypography<any>;
|
|
95
|
+
spacing: CompiledSpacing<any>;
|
|
96
|
+
shadow: CompiledShadows<any>;
|
|
97
|
+
easing: Record<string, string>;
|
|
98
|
+
duration: Record<string, string>;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export declare function getInternals(preset: AnyArborPreset): PresetInternals;
|
|
102
|
+
export type AnyArborPreset = ArborPreset<any, any, any, any, any, any, any, PresetFunctions, PresetMixins>;
|
|
103
|
+
export {};
|
|
104
|
+
//# sourceMappingURL=define.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
|
package/dist/define.js
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { extractMixinTokens, } from '@arbor-css/functions';
|
|
2
|
+
import { createGlobalContext, } from '@arbor-css/globals';
|
|
3
|
+
import { createModeInstance, } from '@arbor-css/modes';
|
|
4
|
+
import { convertSimpleTokenSchema, } from '@arbor-css/tokens';
|
|
5
|
+
import { deepMerge } from '@arbor-css/util';
|
|
6
|
+
import { createPrimitiveTokens, } from './createPrimitiveTokens.js';
|
|
7
|
+
export const INTERNALS = Symbol('ARBOR_INTERNALS');
|
|
8
|
+
const emptyPreset = {
|
|
9
|
+
functions: {},
|
|
10
|
+
mixins: {},
|
|
11
|
+
modeSchema: {},
|
|
12
|
+
$: {
|
|
13
|
+
mode: {},
|
|
14
|
+
mixins: {},
|
|
15
|
+
primitives: {
|
|
16
|
+
color: {},
|
|
17
|
+
duration: {},
|
|
18
|
+
easing: {},
|
|
19
|
+
shadow: {},
|
|
20
|
+
spacing: {},
|
|
21
|
+
typography: {},
|
|
22
|
+
},
|
|
23
|
+
system: {
|
|
24
|
+
global: {},
|
|
25
|
+
meta: {},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
context: {},
|
|
29
|
+
extends: [],
|
|
30
|
+
withConfig() {
|
|
31
|
+
return this;
|
|
32
|
+
},
|
|
33
|
+
meta: {
|
|
34
|
+
name: 'empty',
|
|
35
|
+
init: {},
|
|
36
|
+
},
|
|
37
|
+
baseMode() {
|
|
38
|
+
return {};
|
|
39
|
+
},
|
|
40
|
+
bundleMode() {
|
|
41
|
+
return {};
|
|
42
|
+
},
|
|
43
|
+
createMode() {
|
|
44
|
+
return {};
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
export function definePreset({ functions: createFunctions, mixins: createMixins, config, ...presetOptions }) {
|
|
48
|
+
function withConfig(options) {
|
|
49
|
+
const context = createGlobalContext(options);
|
|
50
|
+
const extended = presetOptions.extends ?? [];
|
|
51
|
+
const composedPresets = extended.reduce((acc, preset) => {
|
|
52
|
+
// recursively apply config to lower presets in the extends chain
|
|
53
|
+
const presetWithConfig = preset.withConfig(options);
|
|
54
|
+
return {
|
|
55
|
+
...acc,
|
|
56
|
+
context,
|
|
57
|
+
extends: [...acc.extends, presetWithConfig],
|
|
58
|
+
// merge everything together. higher presets override duplicates.
|
|
59
|
+
$: deepMerge(acc.$ || {}, presetWithConfig.$),
|
|
60
|
+
modeSchema: deepMerge(acc.modeSchema || {}, presetWithConfig.modeSchema),
|
|
61
|
+
functions: {
|
|
62
|
+
...acc.functions,
|
|
63
|
+
...presetWithConfig.functions,
|
|
64
|
+
},
|
|
65
|
+
mixins: {
|
|
66
|
+
...acc.mixins,
|
|
67
|
+
...presetWithConfig.mixins,
|
|
68
|
+
},
|
|
69
|
+
withConfig: () => {
|
|
70
|
+
// no-op
|
|
71
|
+
return acc;
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}, emptyPreset);
|
|
75
|
+
const composedPrimitiveValues = extended.reduce((acc, preset) => {
|
|
76
|
+
return deepMerge(acc || {}, preset.meta.init.primitives || {});
|
|
77
|
+
}, {});
|
|
78
|
+
const resolvedPrimitives = presetOptions.primitives ? presetOptions.primitives(context) : {};
|
|
79
|
+
const $tokensWithoutMixins = {
|
|
80
|
+
...composedPresets.$,
|
|
81
|
+
system: context.$systemTokens,
|
|
82
|
+
primitives: presetOptions.primitives ?
|
|
83
|
+
deepMerge(composedPresets.$?.primitives || {}, createPrimitiveTokens({
|
|
84
|
+
createToken: context.createPrimitiveToken,
|
|
85
|
+
...resolvedPrimitives,
|
|
86
|
+
}))
|
|
87
|
+
: composedPresets.$?.primitives || {},
|
|
88
|
+
mode: deepMerge(composedPresets.$.mode || {}, convertSimpleTokenSchema(presetOptions.modeSchema, '', context.createModeToken)),
|
|
89
|
+
};
|
|
90
|
+
const mixins = createMixins ?
|
|
91
|
+
createMixins(context.createMixin, $tokensWithoutMixins)
|
|
92
|
+
: {};
|
|
93
|
+
const $tokens = {
|
|
94
|
+
...$tokensWithoutMixins,
|
|
95
|
+
mixins: {
|
|
96
|
+
...$tokensWithoutMixins.mixins,
|
|
97
|
+
...extractMixinTokens(mixins),
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
const functions = createFunctions ?
|
|
101
|
+
createFunctions(context.createFunction, $tokens)
|
|
102
|
+
: {};
|
|
103
|
+
const internals = {
|
|
104
|
+
modes: {
|
|
105
|
+
base: {},
|
|
106
|
+
},
|
|
107
|
+
defaultScheme: presetOptions.defaultScheme ?? 'light',
|
|
108
|
+
primitiveValues: deepMerge(composedPrimitiveValues, resolvedPrimitives),
|
|
109
|
+
};
|
|
110
|
+
const modeSchema = deepMerge(composedPresets.modeSchema, presetOptions.modeSchema);
|
|
111
|
+
return {
|
|
112
|
+
...composedPresets,
|
|
113
|
+
context,
|
|
114
|
+
// attach internals with private access via symbol
|
|
115
|
+
[INTERNALS]: internals,
|
|
116
|
+
meta: {
|
|
117
|
+
name: presetOptions.name,
|
|
118
|
+
init: presetOptions,
|
|
119
|
+
},
|
|
120
|
+
$: $tokens,
|
|
121
|
+
// add mixins and functions to composed bases
|
|
122
|
+
functions: {
|
|
123
|
+
...composedPresets.functions,
|
|
124
|
+
...functions,
|
|
125
|
+
},
|
|
126
|
+
mixins: {
|
|
127
|
+
...composedPresets.mixins,
|
|
128
|
+
...mixins,
|
|
129
|
+
},
|
|
130
|
+
modeSchema,
|
|
131
|
+
withConfig,
|
|
132
|
+
baseMode(mode) {
|
|
133
|
+
return (internals.modes.base = createModeInstance(modeSchema, mode, {
|
|
134
|
+
name: 'base',
|
|
135
|
+
}));
|
|
136
|
+
},
|
|
137
|
+
bundleMode(name, mode) {
|
|
138
|
+
return (internals.modes[name] = createModeInstance(modeSchema, mode, {
|
|
139
|
+
name,
|
|
140
|
+
}));
|
|
141
|
+
},
|
|
142
|
+
createMode(name, mode) {
|
|
143
|
+
return createModeInstance(modeSchema, mode, {
|
|
144
|
+
name,
|
|
145
|
+
});
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
return withConfig(config ?? {});
|
|
150
|
+
}
|
|
151
|
+
export function getInternals(preset) {
|
|
152
|
+
const internals = preset[INTERNALS];
|
|
153
|
+
if (!internals) {
|
|
154
|
+
throw new Error('Preset internals not found. Are you sure this is an Arbor preset?');
|
|
155
|
+
}
|
|
156
|
+
return internals;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=define.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AACA,OAAO,EAGN,kBAAkB,GAIlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,mBAAmB,GAInB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,kBAAkB,GAIlB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACN,wBAAwB,GAGxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAe,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACN,qBAAqB,GAErB,MAAM,4BAA4B,CAAC;AA8EpC,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AA2JnD,MAAM,WAAW,GAAgB;IAChC,SAAS,EAAE,EAAS;IACpB,MAAM,EAAE,EAAS;IACjB,UAAU,EAAE,EAAS;IACrB,CAAC,EAAE;QACF,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;QACV,UAAU,EAAE;YACX,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;SACP;QACR,MAAM,EAAE;YACP,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,EAAE;SACD;KACR;IACD,OAAO,EAAE,EAAS;IAClB,OAAO,EAAE,EAAE;IACX,UAAU;QACT,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,EAAE;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,EAAS;KACf;IACD,QAAQ;QACP,OAAO,EAAS,CAAC;IAClB,CAAC;IACD,UAAU;QACT,OAAO,EAAS,CAAC;IAClB,CAAC;IACD,UAAU;QACT,OAAO,EAAS,CAAC;IAClB,CAAC;CACD,CAAC;AAEF,MAAM,UAAU,YAAY,CAW1B,EACD,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,YAAY,EACpB,MAAM,EACN,GAAG,aAAa,EAYhB;IAWA,SAAS,UAAU,CAClB,OAA4B;QAY5B,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC;QAC7C,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACvE,iEAAiE;YACjE,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACpD,OAAO;gBACN,GAAG,GAAG;gBACN,OAAO;gBACP,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAC3C,iEAAiE;gBACjE,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBAC7C,UAAU,EAAE,SAAS,CACpB,GAAG,CAAC,UAAU,IAAI,EAAE,EACpB,gBAAgB,CAAC,UAAU,CAC3B;gBACD,SAAS,EAAE;oBACV,GAAG,GAAG,CAAC,SAAS;oBAChB,GAAG,gBAAgB,CAAC,SAAS;iBAC7B;gBACD,MAAM,EAAE;oBACP,GAAG,GAAG,CAAC,MAAM;oBACb,GAAG,gBAAgB,CAAC,MAAM;iBAC1B;gBACD,UAAU,EAAE,GAAG,EAAE;oBAChB,QAAQ;oBACR,OAAO,GAAU,CAAC;gBACnB,CAAC;aACD,CAAC;QACH,CAAC,EAAE,WAAW,CAAC,CAAC;QAEhB,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAC/D,OAAO,SAAS,CAAC,GAAG,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,MAAM,kBAAkB,GACvB,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEnE,MAAM,oBAAoB,GAAG;YAC5B,GAAG,eAAe,CAAC,CAAC;YACpB,MAAM,EAAE,OAAO,CAAC,aAAa;YAC7B,UAAU,EACT,aAAa,CAAC,UAAU,CAAC,CAAC;gBACzB,SAAS,CACR,eAAe,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,EACnC,qBAAqB,CAAC;oBACrB,WAAW,EAAE,OAAO,CAAC,oBAAoB;oBACzC,GAAG,kBAAkB;iBACrB,CAAQ,CACT;gBACF,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE;YACtC,IAAI,EAAE,SAAS,CACd,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAC5B,wBAAwB,CACvB,aAAa,CAAC,UAAU,EACxB,EAAE,EACF,OAAO,CAAC,eAAe,CACvB,CACD;SACD,CAAC;QAEF,MAAM,MAAM,GACX,YAAY,CAAC,CAAC;YACb,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,oBAA2B,CAAC;YAC/D,CAAC,CAAE,EAAc,CAAC;QAEnB,MAAM,OAAO,GAAyD;YACrE,GAAG,oBAAoB;YACvB,MAAM,EAAE;gBACP,GAAG,oBAAoB,CAAC,MAAM;gBAC9B,GAAG,kBAAkB,CAAC,MAAM,CAAC;aAC7B;SACD,CAAC;QAEF,MAAM,SAAS,GACd,eAAe,CAAC,CAAC;YAChB,eAAe,CAAC,OAAO,CAAC,cAAc,EAAE,OAAc,CAAC;YACxD,CAAC,CAAE,EAAiB,CAAC;QAEtB,MAAM,SAAS,GAAG;YACjB,KAAK,EAAE;gBACN,IAAI,EAAE,EAAS;aACf;YACD,aAAa,EAAE,aAAa,CAAC,aAAa,IAAI,OAAO;YACrD,eAAe,EAAE,SAAS,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;SACpD,CAAC;QAErB,MAAM,UAAU,GAAG,SAAS,CAC3B,eAAe,CAAC,UAAU,EAC1B,aAAa,CAAC,UAAU,CACxB,CAAC;QAEF,OAAO;YACN,GAAG,eAAe;YAElB,OAAO;YACP,kDAAkD;YAClD,CAAC,SAAS,CAAC,EAAE,SAAS;YAEtB,IAAI,EAAE;gBACL,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,IAAI,EAAE,aAAa;aACnB;YACD,CAAC,EAAE,OAAO;YACV,6CAA6C;YAC7C,SAAS,EAAE;gBACV,GAAG,eAAe,CAAC,SAAS;gBAC5B,GAAG,SAAS;aACZ;YACD,MAAM,EAAE;gBACP,GAAG,eAAe,CAAC,MAAM;gBACzB,GAAG,MAAM;aACT;YACD,UAAU;YAEV,UAAU;YAEV,QAAQ,CAAC,IAA6B;gBACrC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,kBAAkB,CAAC,UAAU,EAAE,IAAI,EAAE;oBACnE,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAC,CAAC;YACL,CAAC;YAED,UAAU,CAAC,IAAY,EAAE,IAA0C;gBAClE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CACjD,UAAU,EACV,IAAW,EACX;oBACC,IAAI;iBACJ,CACD,CAAC,CAAC;YACJ,CAAC;YAED,UAAU,CAAC,IAAY,EAAE,IAA0C;gBAClE,OAAO,kBAAkB,CAAC,UAAU,EAAE,IAAW,EAAE;oBAClD,IAAI;iBACJ,CAAC,CAAC;YACJ,CAAC;SACM,CAAC;IACV,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,IAAI,EAAE,CAAQ,CAAC;AACxC,CAAC;AAkBD,MAAM,UAAU,YAAY,CAAC,MAAsB;IAClD,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACd,mEAAmE,CACnE,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.test.d.ts","sourceRoot":"","sources":["../src/define.test.ts"],"names":[],"mappings":""}
|