@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.
Files changed (53) hide show
  1. package/dist/createPrimitiveTokens.d.ts +31 -0
  2. package/dist/createPrimitiveTokens.d.ts.map +1 -0
  3. package/dist/createPrimitiveTokens.js +103 -0
  4. package/dist/createPrimitiveTokens.js.map +1 -0
  5. package/dist/define.d.ts +104 -0
  6. package/dist/define.d.ts.map +1 -0
  7. package/dist/define.js +158 -0
  8. package/dist/define.js.map +1 -0
  9. package/dist/define.test.d.ts +2 -0
  10. package/dist/define.test.d.ts.map +1 -0
  11. package/dist/define.test.js +246 -0
  12. package/dist/define.test.js.map +1 -0
  13. package/dist/index.d.ts +2 -8
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -8
  16. package/dist/index.js.map +1 -1
  17. package/package.json +15 -16
  18. package/dist/arborPreset.d.ts +0 -1356
  19. package/dist/arborPreset.d.ts.map +0 -1
  20. package/dist/arborPreset.js +0 -513
  21. package/dist/arborPreset.js.map +0 -1
  22. package/dist/arborPreset.test.d.ts +0 -2
  23. package/dist/arborPreset.test.d.ts.map +0 -1
  24. package/dist/arborPreset.test.js +0 -42
  25. package/dist/arborPreset.test.js.map +0 -1
  26. package/dist/commonFunctions.d.ts +0 -13
  27. package/dist/commonFunctions.d.ts.map +0 -1
  28. package/dist/commonFunctions.js +0 -19
  29. package/dist/commonFunctions.js.map +0 -1
  30. package/dist/config.d.ts +0 -43
  31. package/dist/config.d.ts.map +0 -1
  32. package/dist/config.js +0 -18
  33. package/dist/config.js.map +0 -1
  34. package/dist/createArborPreset.d.ts +0 -55
  35. package/dist/createArborPreset.d.ts.map +0 -1
  36. package/dist/createArborPreset.js +0 -124
  37. package/dist/createArborPreset.js.map +0 -1
  38. package/dist/functions.d.ts +0 -12
  39. package/dist/functions.d.ts.map +0 -1
  40. package/dist/functions.js +0 -52
  41. package/dist/functions.js.map +0 -1
  42. package/dist/functions.test.d.ts +0 -2
  43. package/dist/functions.test.d.ts.map +0 -1
  44. package/dist/functions.test.js +0 -25
  45. package/dist/functions.test.js.map +0 -1
  46. package/dist/mixins.d.ts +0 -1210
  47. package/dist/mixins.d.ts.map +0 -1
  48. package/dist/mixins.js +0 -219
  49. package/dist/mixins.js.map +0 -1
  50. package/dist/mixins.test.d.ts +0 -2
  51. package/dist/mixins.test.d.ts.map +0 -1
  52. package/dist/mixins.test.js +0 -38
  53. 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":"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"}
@@ -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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"}
@@ -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":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=define.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.test.d.ts","sourceRoot":"","sources":["../src/define.test.ts"],"names":[],"mappings":""}