@pandacss/config 0.34.3 → 0.36.0

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.
@@ -86,7 +86,8 @@ var artifactConfigDeps = {
86
86
  "types-jsx": jsx,
87
87
  "types-entry": [],
88
88
  "types-gen": [],
89
- "types-gen-system": []
89
+ "types-gen-system": [],
90
+ themes: ["themes"].concat(tokens)
90
91
  };
91
92
  var artifactMatchers = Object.entries(artifactConfigDeps).map(([key, paths]) => {
92
93
  if (!paths.length)
@@ -1,4 +1,5 @@
1
1
  // src/merge-config.ts
2
+ import { assign, isObject, mergeWith, traverse } from "@pandacss/shared";
2
3
  import { mergeAndConcat } from "merge-anything";
3
4
 
4
5
  // src/merge-hooks.ts
@@ -16,38 +17,65 @@ var mergeHooks = (plugins) => {
16
17
  const mergedHooks = Object.fromEntries(
17
18
  Object.entries(hooksFns).map(([key, entries]) => {
18
19
  const fns = entries.map(([name, fn]) => tryCatch(name, fn));
19
- if (key === "cssgen:done") {
20
- return [key, reducers["cssgen:done"](fns)];
21
- }
22
- if (key === "codegen:prepare") {
23
- return [key, reducers["codegen:prepare"](fns)];
20
+ const reducer = key in reducers ? reducers[key] : void 0;
21
+ if (reducer) {
22
+ return [key, reducer(fns)];
24
23
  }
25
24
  return [key, syncHooks.includes(key) ? callAll(...fns) : callAllAsync(...fns)];
26
25
  })
27
26
  );
28
27
  return mergedHooks;
29
28
  };
29
+ var createReducer = (reducer) => reducer;
30
30
  var reducers = {
31
- "cssgen:done": (fns) => (args) => {
31
+ "config:resolved": createReducer((fns) => async (_args) => {
32
+ const args = Object.assign({}, _args);
33
+ const original = _args.config;
34
+ let config = args.config;
35
+ for (const hookFn of fns) {
36
+ const result = await hookFn(Object.assign(args, { config, original }));
37
+ if (result !== void 0) {
38
+ config = result;
39
+ }
40
+ }
41
+ return config;
42
+ }),
43
+ "parser:before": createReducer((fns) => (_args) => {
44
+ const args = Object.assign({}, _args);
45
+ const original = _args.content;
46
+ let content = args.content;
47
+ for (const hookFn of fns) {
48
+ const result = hookFn(Object.assign(args, { content, original }));
49
+ if (result !== void 0) {
50
+ content = result;
51
+ }
52
+ }
53
+ return content;
54
+ }),
55
+ "cssgen:done": createReducer((fns) => (_args) => {
56
+ const args = Object.assign({}, _args);
57
+ const original = _args.content;
32
58
  let content = args.content;
33
59
  for (const hookFn of fns) {
34
- const result = hookFn({ ...args, content, original: args.content });
60
+ const result = hookFn(Object.assign(args, { content, original }));
35
61
  if (result !== void 0) {
36
62
  content = result;
37
63
  }
38
64
  }
39
65
  return content;
40
- },
41
- "codegen:prepare": (fns) => (args) => {
66
+ }),
67
+ "codegen:prepare": createReducer((fns) => async (_args) => {
68
+ const args = Object.assign({}, _args);
69
+ const original = _args.artifacts;
42
70
  let artifacts = args.artifacts;
43
71
  for (const hookFn of fns) {
44
- const result = hookFn({ ...args, artifacts, original: args.artifacts });
72
+ const result = await hookFn(Object.assign(args, { artifacts, original }));
45
73
  if (result) {
46
74
  artifacts = result;
47
75
  }
48
76
  }
49
77
  return artifacts;
50
- }
78
+ })
51
79
  };
52
80
  var syncHooks = ["context:created", "parser:before", "parser:after", "cssgen:done"];
53
81
  var callAllAsync = (...fns) => async (...a) => {
@@ -69,51 +97,6 @@ var tryCatch = (name, fn) => {
69
97
  };
70
98
  };
71
99
 
72
- // src/utils.ts
73
- import { traverse } from "@pandacss/shared";
74
- var isObject = (v) => Object.prototype.toString.call(v) === "[object Object]";
75
- function mergeWith(target, ...sources) {
76
- const customizer = sources.pop();
77
- for (const source of sources) {
78
- for (const key in source) {
79
- const merged = customizer(target[key], source[key]);
80
- if (merged === void 0) {
81
- if (isObject(target[key]) && isObject(source[key])) {
82
- target[key] = mergeWith({}, target[key], source[key], customizer);
83
- } else {
84
- target[key] = source[key];
85
- }
86
- } else {
87
- target[key] = merged;
88
- }
89
- }
90
- }
91
- return target;
92
- }
93
- function assign(target, ...sources) {
94
- for (const source of sources) {
95
- for (const key in source) {
96
- if (!target?.hasOwnProperty?.(key)) {
97
- target[key] = source[key];
98
- }
99
- }
100
- }
101
- return target;
102
- }
103
- var omit = (obj, paths) => {
104
- const result = { ...obj };
105
- traverse(obj, ({ path, parent, key }) => {
106
- if (paths.includes(path)) {
107
- delete parent[key];
108
- }
109
- });
110
- return result;
111
- };
112
- var utils = {
113
- omit,
114
- traverse
115
- };
116
-
117
100
  // src/merge-config.ts
118
101
  function getExtends(items) {
119
102
  return items.reduce((merged, { extend }) => {
@@ -154,6 +137,7 @@ var compact = (obj) => {
154
137
  return acc;
155
138
  }, {});
156
139
  };
140
+ var tokenKeys = ["description", "extensions", "type", "value"];
157
141
  function mergeConfigs(configs) {
158
142
  const [userConfig] = configs;
159
143
  const pluginHooks = userConfig.plugins ?? [];
@@ -167,15 +151,33 @@ function mergeConfigs(configs) {
167
151
  patterns: mergeExtensions(configs.map((config) => config.patterns ?? {})),
168
152
  utilities: mergeExtensions(configs.map((config) => config.utilities ?? {})),
169
153
  globalCss: mergeExtensions(configs.map((config) => config.globalCss ?? {})),
154
+ globalVars: mergeExtensions(configs.map((config) => config.globalVars ?? {})),
170
155
  staticCss: mergeExtensions(configs.map((config) => config.staticCss ?? {})),
156
+ themes: mergeExtensions(configs.map((config) => config.themes ?? {})),
171
157
  hooks: mergeHooks(pluginHooks)
172
158
  },
173
159
  ...configs
174
160
  );
175
- return compact(mergedResult);
161
+ const withoutEmpty = compact(mergedResult);
162
+ if (withoutEmpty.theme?.tokens) {
163
+ traverse(withoutEmpty.theme.tokens, (args) => args, {
164
+ stop(args) {
165
+ if (isObject(args.value) && "value" in args.value) {
166
+ const keys = Object.keys(args.value);
167
+ if (keys.filter((k) => !tokenKeys.includes(k)).length) {
168
+ const { type: _type, description: _description, extensions: _extensions, value, DEFAULT } = args.value;
169
+ args.value.DEFAULT = { value: DEFAULT?.value ?? value };
170
+ delete args.value.value;
171
+ }
172
+ return true;
173
+ }
174
+ return false;
175
+ }
176
+ });
177
+ }
178
+ return withoutEmpty;
176
179
  }
177
180
 
178
181
  export {
179
- utils,
180
182
  mergeConfigs
181
183
  };
@@ -120,7 +120,8 @@ var artifactConfigDeps = {
120
120
  "types-jsx": jsx,
121
121
  "types-entry": [],
122
122
  "types-gen": [],
123
- "types-gen-system": []
123
+ "types-gen-system": [],
124
+ themes: ["themes"].concat(tokens)
124
125
  };
125
126
  var artifactMatchers = Object.entries(artifactConfigDeps).map(([key, paths]) => {
126
127
  if (!paths.length)
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  diffConfigs
3
- } from "./chunk-XG53JPBE.mjs";
3
+ } from "./chunk-D3CL3VYD.mjs";
4
4
  export {
5
5
  diffConfigs
6
6
  };
package/dist/index.d.mts CHANGED
@@ -42,7 +42,7 @@ type ExtendableConfig = Extendable<Config>;
42
42
  /**
43
43
  * Recursively merge all presets into a single config
44
44
  */
45
- declare function getResolvedConfig(config: ExtendableConfig, cwd: string): Promise<Config>;
45
+ declare function getResolvedConfig(config: ExtendableConfig, cwd: string): Promise<_pandacss_types.UserConfig>;
46
46
 
47
47
  /**
48
48
  * Find, load and resolve the final config (including presets)
package/dist/index.d.ts CHANGED
@@ -42,7 +42,7 @@ type ExtendableConfig = Extendable<Config>;
42
42
  /**
43
43
  * Recursively merge all presets into a single config
44
44
  */
45
- declare function getResolvedConfig(config: ExtendableConfig, cwd: string): Promise<Config>;
45
+ declare function getResolvedConfig(config: ExtendableConfig, cwd: string): Promise<_pandacss_types.UserConfig>;
46
46
 
47
47
  /**
48
48
  * Find, load and resolve the final config (including presets)
package/dist/index.js CHANGED
@@ -190,7 +190,8 @@ var artifactConfigDeps = {
190
190
  "types-jsx": jsx,
191
191
  "types-entry": [],
192
192
  "types-gen": [],
193
- "types-gen-system": []
193
+ "types-gen-system": [],
194
+ themes: ["themes"].concat(tokens)
194
195
  };
195
196
  var artifactMatchers = Object.entries(artifactConfigDeps).map(([key, paths]) => {
196
197
  if (!paths.length)
@@ -381,6 +382,7 @@ function getConfigDependencies(filePath, tsOptions = { pathMappings: [] }, compi
381
382
  }
382
383
 
383
384
  // src/merge-config.ts
385
+ var import_shared4 = require("@pandacss/shared");
384
386
  var import_merge_anything = require("merge-anything");
385
387
 
386
388
  // src/merge-hooks.ts
@@ -398,38 +400,65 @@ var mergeHooks = (plugins) => {
398
400
  const mergedHooks = Object.fromEntries(
399
401
  Object.entries(hooksFns).map(([key, entries]) => {
400
402
  const fns = entries.map(([name, fn]) => tryCatch(name, fn));
401
- if (key === "cssgen:done") {
402
- return [key, reducers["cssgen:done"](fns)];
403
- }
404
- if (key === "codegen:prepare") {
405
- return [key, reducers["codegen:prepare"](fns)];
403
+ const reducer = key in reducers ? reducers[key] : void 0;
404
+ if (reducer) {
405
+ return [key, reducer(fns)];
406
406
  }
407
407
  return [key, syncHooks.includes(key) ? callAll(...fns) : callAllAsync(...fns)];
408
408
  })
409
409
  );
410
410
  return mergedHooks;
411
411
  };
412
+ var createReducer = (reducer) => reducer;
412
413
  var reducers = {
413
- "cssgen:done": (fns) => (args) => {
414
+ "config:resolved": createReducer((fns) => async (_args) => {
415
+ const args = Object.assign({}, _args);
416
+ const original = _args.config;
417
+ let config = args.config;
418
+ for (const hookFn of fns) {
419
+ const result = await hookFn(Object.assign(args, { config, original }));
420
+ if (result !== void 0) {
421
+ config = result;
422
+ }
423
+ }
424
+ return config;
425
+ }),
426
+ "parser:before": createReducer((fns) => (_args) => {
427
+ const args = Object.assign({}, _args);
428
+ const original = _args.content;
429
+ let content = args.content;
430
+ for (const hookFn of fns) {
431
+ const result = hookFn(Object.assign(args, { content, original }));
432
+ if (result !== void 0) {
433
+ content = result;
434
+ }
435
+ }
436
+ return content;
437
+ }),
438
+ "cssgen:done": createReducer((fns) => (_args) => {
439
+ const args = Object.assign({}, _args);
440
+ const original = _args.content;
414
441
  let content = args.content;
415
442
  for (const hookFn of fns) {
416
- const result = hookFn({ ...args, content, original: args.content });
443
+ const result = hookFn(Object.assign(args, { content, original }));
417
444
  if (result !== void 0) {
418
445
  content = result;
419
446
  }
420
447
  }
421
448
  return content;
422
- },
423
- "codegen:prepare": (fns) => (args) => {
449
+ }),
450
+ "codegen:prepare": createReducer((fns) => async (_args) => {
451
+ const args = Object.assign({}, _args);
452
+ const original = _args.artifacts;
424
453
  let artifacts = args.artifacts;
425
454
  for (const hookFn of fns) {
426
- const result = hookFn({ ...args, artifacts, original: args.artifacts });
455
+ const result = await hookFn(Object.assign(args, { artifacts, original }));
427
456
  if (result) {
428
457
  artifacts = result;
429
458
  }
430
459
  }
431
460
  return artifacts;
432
- }
461
+ })
433
462
  };
434
463
  var syncHooks = ["context:created", "parser:before", "parser:after", "cssgen:done"];
435
464
  var callAllAsync = (...fns) => async (...a) => {
@@ -451,57 +480,12 @@ var tryCatch = (name, fn) => {
451
480
  };
452
481
  };
453
482
 
454
- // src/utils.ts
455
- var import_shared4 = require("@pandacss/shared");
456
- var isObject = (v) => Object.prototype.toString.call(v) === "[object Object]";
457
- function mergeWith(target, ...sources) {
458
- const customizer = sources.pop();
459
- for (const source of sources) {
460
- for (const key in source) {
461
- const merged = customizer(target[key], source[key]);
462
- if (merged === void 0) {
463
- if (isObject(target[key]) && isObject(source[key])) {
464
- target[key] = mergeWith({}, target[key], source[key], customizer);
465
- } else {
466
- target[key] = source[key];
467
- }
468
- } else {
469
- target[key] = merged;
470
- }
471
- }
472
- }
473
- return target;
474
- }
475
- function assign(target, ...sources) {
476
- for (const source of sources) {
477
- for (const key in source) {
478
- if (!target?.hasOwnProperty?.(key)) {
479
- target[key] = source[key];
480
- }
481
- }
482
- }
483
- return target;
484
- }
485
- var omit = (obj, paths) => {
486
- const result = { ...obj };
487
- (0, import_shared4.traverse)(obj, ({ path: path2, parent, key }) => {
488
- if (paths.includes(path2)) {
489
- delete parent[key];
490
- }
491
- });
492
- return result;
493
- };
494
- var utils = {
495
- omit,
496
- traverse: import_shared4.traverse
497
- };
498
-
499
483
  // src/merge-config.ts
500
484
  function getExtends(items) {
501
485
  return items.reduce((merged, { extend }) => {
502
486
  if (!extend)
503
487
  return merged;
504
- return mergeWith(merged, extend, (originalValue, newValue) => {
488
+ return (0, import_shared4.mergeWith)(merged, extend, (originalValue, newValue) => {
505
489
  if (newValue === void 0) {
506
490
  return originalValue ?? [];
507
491
  }
@@ -517,13 +501,13 @@ function getExtends(items) {
517
501
  }
518
502
  function mergeRecords(records) {
519
503
  return {
520
- ...records.reduce((acc, record) => assign(acc, record), {}),
504
+ ...records.reduce((acc, record) => (0, import_shared4.assign)(acc, record), {}),
521
505
  extend: getExtends(records)
522
506
  };
523
507
  }
524
508
  function mergeExtensions(records) {
525
509
  const { extend = [], ...restProps } = mergeRecords(records);
526
- return mergeWith(restProps, extend, (obj, extensions) => {
510
+ return (0, import_shared4.mergeWith)(restProps, extend, (obj, extensions) => {
527
511
  return (0, import_merge_anything.mergeAndConcat)({}, obj, ...extensions);
528
512
  });
529
513
  }
@@ -536,25 +520,45 @@ var compact = (obj) => {
536
520
  return acc;
537
521
  }, {});
538
522
  };
523
+ var tokenKeys = ["description", "extensions", "type", "value"];
539
524
  function mergeConfigs(configs2) {
540
525
  const [userConfig] = configs2;
541
526
  const pluginHooks = userConfig.plugins ?? [];
542
527
  if (userConfig.hooks) {
543
528
  pluginHooks.push({ name: "__panda.config__", hooks: userConfig.hooks });
544
529
  }
545
- const mergedResult = assign(
530
+ const mergedResult = (0, import_shared4.assign)(
546
531
  {
547
532
  conditions: mergeExtensions(configs2.map((config) => config.conditions ?? {})),
548
533
  theme: mergeExtensions(configs2.map((config) => config.theme ?? {})),
549
534
  patterns: mergeExtensions(configs2.map((config) => config.patterns ?? {})),
550
535
  utilities: mergeExtensions(configs2.map((config) => config.utilities ?? {})),
551
536
  globalCss: mergeExtensions(configs2.map((config) => config.globalCss ?? {})),
537
+ globalVars: mergeExtensions(configs2.map((config) => config.globalVars ?? {})),
552
538
  staticCss: mergeExtensions(configs2.map((config) => config.staticCss ?? {})),
539
+ themes: mergeExtensions(configs2.map((config) => config.themes ?? {})),
553
540
  hooks: mergeHooks(pluginHooks)
554
541
  },
555
542
  ...configs2
556
543
  );
557
- return compact(mergedResult);
544
+ const withoutEmpty = compact(mergedResult);
545
+ if (withoutEmpty.theme?.tokens) {
546
+ (0, import_shared4.traverse)(withoutEmpty.theme.tokens, (args) => args, {
547
+ stop(args) {
548
+ if ((0, import_shared4.isObject)(args.value) && "value" in args.value) {
549
+ const keys = Object.keys(args.value);
550
+ if (keys.filter((k) => !tokenKeys.includes(k)).length) {
551
+ const { type: _type, description: _description, extensions: _extensions, value, DEFAULT } = args.value;
552
+ args.value.DEFAULT = { value: DEFAULT?.value ?? value };
553
+ delete args.value.value;
554
+ }
555
+ return true;
556
+ }
557
+ return false;
558
+ }
559
+ });
560
+ }
561
+ return withoutEmpty;
558
562
  }
559
563
 
560
564
  // src/get-resolved-config.ts
@@ -862,6 +866,10 @@ ${Array.from(warnings).map((err) => "- " + err).join("\n")}
862
866
  };
863
867
 
864
868
  // src/resolve-config.ts
869
+ var hookUtils = {
870
+ omit: import_shared9.omit,
871
+ traverse: import_shared9.traverse
872
+ };
865
873
  async function resolveConfig(result, cwd) {
866
874
  const presets = /* @__PURE__ */ new Set();
867
875
  if (!result.config.eject) {
@@ -890,7 +898,7 @@ async function resolveConfig(result, cwd) {
890
898
  config: loadConfigResult.config,
891
899
  path: loadConfigResult.path,
892
900
  dependencies: loadConfigResult.dependencies,
893
- utils
901
+ utils: hookUtils
894
902
  });
895
903
  if (result2) {
896
904
  loadConfigResult.config = result2;
package/dist/index.mjs CHANGED
@@ -1,10 +1,9 @@
1
1
  import {
2
- mergeConfigs,
3
- utils
4
- } from "./chunk-MT2A5AKG.mjs";
2
+ mergeConfigs
3
+ } from "./chunk-IMFODN4N.mjs";
5
4
  import {
6
5
  diffConfigs
7
- } from "./chunk-XG53JPBE.mjs";
6
+ } from "./chunk-D3CL3VYD.mjs";
8
7
  import {
9
8
  resolveTsPathPattern
10
9
  } from "./chunk-RPIVZP2I.mjs";
@@ -215,7 +214,7 @@ async function getResolvedConfig(config, cwd) {
215
214
 
216
215
  // src/resolve-config.ts
217
216
  import { logger as logger3 } from "@pandacss/logger";
218
- import { parseJson, stringifyJson } from "@pandacss/shared";
217
+ import { omit, parseJson, stringifyJson, traverse } from "@pandacss/shared";
219
218
 
220
219
  // src/bundled-preset.ts
221
220
  import { preset as presetBase } from "@pandacss/preset-base";
@@ -499,6 +498,10 @@ ${Array.from(warnings).map((err) => "- " + err).join("\n")}
499
498
  };
500
499
 
501
500
  // src/resolve-config.ts
501
+ var hookUtils = {
502
+ omit,
503
+ traverse
504
+ };
502
505
  async function resolveConfig(result, cwd) {
503
506
  const presets = /* @__PURE__ */ new Set();
504
507
  if (!result.config.eject) {
@@ -527,7 +530,7 @@ async function resolveConfig(result, cwd) {
527
530
  config: loadConfigResult.config,
528
531
  path: loadConfigResult.path,
529
532
  dependencies: loadConfigResult.dependencies,
530
- utils
533
+ utils: hookUtils
531
534
  });
532
535
  if (result2) {
533
536
  loadConfigResult.config = result2;
@@ -1,4 +1,4 @@
1
- import { Config } from '@pandacss/types';
1
+ import { UserConfig, Config } from '@pandacss/types';
2
2
 
3
3
  type Extendable<T> = T & {
4
4
  extend?: T;
@@ -7,6 +7,6 @@ type ExtendableConfig = Extendable<Config>;
7
7
  /**
8
8
  * Merge all configs into a single config
9
9
  */
10
- declare function mergeConfigs(configs: ExtendableConfig[]): any;
10
+ declare function mergeConfigs(configs: ExtendableConfig[]): UserConfig;
11
11
 
12
12
  export { mergeConfigs };
@@ -1,4 +1,4 @@
1
- import { Config } from '@pandacss/types';
1
+ import { UserConfig, Config } from '@pandacss/types';
2
2
 
3
3
  type Extendable<T> = T & {
4
4
  extend?: T;
@@ -7,6 +7,6 @@ type ExtendableConfig = Extendable<Config>;
7
7
  /**
8
8
  * Merge all configs into a single config
9
9
  */
10
- declare function mergeConfigs(configs: ExtendableConfig[]): any;
10
+ declare function mergeConfigs(configs: ExtendableConfig[]): UserConfig;
11
11
 
12
12
  export { mergeConfigs };
@@ -23,6 +23,7 @@ __export(merge_config_exports, {
23
23
  mergeConfigs: () => mergeConfigs
24
24
  });
25
25
  module.exports = __toCommonJS(merge_config_exports);
26
+ var import_shared = require("@pandacss/shared");
26
27
  var import_merge_anything = require("merge-anything");
27
28
 
28
29
  // src/merge-hooks.ts
@@ -40,38 +41,65 @@ var mergeHooks = (plugins) => {
40
41
  const mergedHooks = Object.fromEntries(
41
42
  Object.entries(hooksFns).map(([key, entries]) => {
42
43
  const fns = entries.map(([name, fn]) => tryCatch(name, fn));
43
- if (key === "cssgen:done") {
44
- return [key, reducers["cssgen:done"](fns)];
45
- }
46
- if (key === "codegen:prepare") {
47
- return [key, reducers["codegen:prepare"](fns)];
44
+ const reducer = key in reducers ? reducers[key] : void 0;
45
+ if (reducer) {
46
+ return [key, reducer(fns)];
48
47
  }
49
48
  return [key, syncHooks.includes(key) ? callAll(...fns) : callAllAsync(...fns)];
50
49
  })
51
50
  );
52
51
  return mergedHooks;
53
52
  };
53
+ var createReducer = (reducer) => reducer;
54
54
  var reducers = {
55
- "cssgen:done": (fns) => (args) => {
55
+ "config:resolved": createReducer((fns) => async (_args) => {
56
+ const args = Object.assign({}, _args);
57
+ const original = _args.config;
58
+ let config = args.config;
59
+ for (const hookFn of fns) {
60
+ const result = await hookFn(Object.assign(args, { config, original }));
61
+ if (result !== void 0) {
62
+ config = result;
63
+ }
64
+ }
65
+ return config;
66
+ }),
67
+ "parser:before": createReducer((fns) => (_args) => {
68
+ const args = Object.assign({}, _args);
69
+ const original = _args.content;
56
70
  let content = args.content;
57
71
  for (const hookFn of fns) {
58
- const result = hookFn({ ...args, content, original: args.content });
72
+ const result = hookFn(Object.assign(args, { content, original }));
59
73
  if (result !== void 0) {
60
74
  content = result;
61
75
  }
62
76
  }
63
77
  return content;
64
- },
65
- "codegen:prepare": (fns) => (args) => {
78
+ }),
79
+ "cssgen:done": createReducer((fns) => (_args) => {
80
+ const args = Object.assign({}, _args);
81
+ const original = _args.content;
82
+ let content = args.content;
83
+ for (const hookFn of fns) {
84
+ const result = hookFn(Object.assign(args, { content, original }));
85
+ if (result !== void 0) {
86
+ content = result;
87
+ }
88
+ }
89
+ return content;
90
+ }),
91
+ "codegen:prepare": createReducer((fns) => async (_args) => {
92
+ const args = Object.assign({}, _args);
93
+ const original = _args.artifacts;
66
94
  let artifacts = args.artifacts;
67
95
  for (const hookFn of fns) {
68
- const result = hookFn({ ...args, artifacts, original: args.artifacts });
96
+ const result = await hookFn(Object.assign(args, { artifacts, original }));
69
97
  if (result) {
70
98
  artifacts = result;
71
99
  }
72
100
  }
73
101
  return artifacts;
74
- }
102
+ })
75
103
  };
76
104
  var syncHooks = ["context:created", "parser:before", "parser:after", "cssgen:done"];
77
105
  var callAllAsync = (...fns) => async (...a) => {
@@ -93,44 +121,12 @@ var tryCatch = (name, fn) => {
93
121
  };
94
122
  };
95
123
 
96
- // src/utils.ts
97
- var import_shared = require("@pandacss/shared");
98
- var isObject = (v) => Object.prototype.toString.call(v) === "[object Object]";
99
- function mergeWith(target, ...sources) {
100
- const customizer = sources.pop();
101
- for (const source of sources) {
102
- for (const key in source) {
103
- const merged = customizer(target[key], source[key]);
104
- if (merged === void 0) {
105
- if (isObject(target[key]) && isObject(source[key])) {
106
- target[key] = mergeWith({}, target[key], source[key], customizer);
107
- } else {
108
- target[key] = source[key];
109
- }
110
- } else {
111
- target[key] = merged;
112
- }
113
- }
114
- }
115
- return target;
116
- }
117
- function assign(target, ...sources) {
118
- for (const source of sources) {
119
- for (const key in source) {
120
- if (!target?.hasOwnProperty?.(key)) {
121
- target[key] = source[key];
122
- }
123
- }
124
- }
125
- return target;
126
- }
127
-
128
124
  // src/merge-config.ts
129
125
  function getExtends(items) {
130
126
  return items.reduce((merged, { extend }) => {
131
127
  if (!extend)
132
128
  return merged;
133
- return mergeWith(merged, extend, (originalValue, newValue) => {
129
+ return (0, import_shared.mergeWith)(merged, extend, (originalValue, newValue) => {
134
130
  if (newValue === void 0) {
135
131
  return originalValue ?? [];
136
132
  }
@@ -146,13 +142,13 @@ function getExtends(items) {
146
142
  }
147
143
  function mergeRecords(records) {
148
144
  return {
149
- ...records.reduce((acc, record) => assign(acc, record), {}),
145
+ ...records.reduce((acc, record) => (0, import_shared.assign)(acc, record), {}),
150
146
  extend: getExtends(records)
151
147
  };
152
148
  }
153
149
  function mergeExtensions(records) {
154
150
  const { extend = [], ...restProps } = mergeRecords(records);
155
- return mergeWith(restProps, extend, (obj, extensions) => {
151
+ return (0, import_shared.mergeWith)(restProps, extend, (obj, extensions) => {
156
152
  return (0, import_merge_anything.mergeAndConcat)({}, obj, ...extensions);
157
153
  });
158
154
  }
@@ -165,25 +161,45 @@ var compact = (obj) => {
165
161
  return acc;
166
162
  }, {});
167
163
  };
164
+ var tokenKeys = ["description", "extensions", "type", "value"];
168
165
  function mergeConfigs(configs) {
169
166
  const [userConfig] = configs;
170
167
  const pluginHooks = userConfig.plugins ?? [];
171
168
  if (userConfig.hooks) {
172
169
  pluginHooks.push({ name: "__panda.config__", hooks: userConfig.hooks });
173
170
  }
174
- const mergedResult = assign(
171
+ const mergedResult = (0, import_shared.assign)(
175
172
  {
176
173
  conditions: mergeExtensions(configs.map((config) => config.conditions ?? {})),
177
174
  theme: mergeExtensions(configs.map((config) => config.theme ?? {})),
178
175
  patterns: mergeExtensions(configs.map((config) => config.patterns ?? {})),
179
176
  utilities: mergeExtensions(configs.map((config) => config.utilities ?? {})),
180
177
  globalCss: mergeExtensions(configs.map((config) => config.globalCss ?? {})),
178
+ globalVars: mergeExtensions(configs.map((config) => config.globalVars ?? {})),
181
179
  staticCss: mergeExtensions(configs.map((config) => config.staticCss ?? {})),
180
+ themes: mergeExtensions(configs.map((config) => config.themes ?? {})),
182
181
  hooks: mergeHooks(pluginHooks)
183
182
  },
184
183
  ...configs
185
184
  );
186
- return compact(mergedResult);
185
+ const withoutEmpty = compact(mergedResult);
186
+ if (withoutEmpty.theme?.tokens) {
187
+ (0, import_shared.traverse)(withoutEmpty.theme.tokens, (args) => args, {
188
+ stop(args) {
189
+ if ((0, import_shared.isObject)(args.value) && "value" in args.value) {
190
+ const keys = Object.keys(args.value);
191
+ if (keys.filter((k) => !tokenKeys.includes(k)).length) {
192
+ const { type: _type, description: _description, extensions: _extensions, value, DEFAULT } = args.value;
193
+ args.value.DEFAULT = { value: DEFAULT?.value ?? value };
194
+ delete args.value.value;
195
+ }
196
+ return true;
197
+ }
198
+ return false;
199
+ }
200
+ });
201
+ }
202
+ return withoutEmpty;
187
203
  }
188
204
  // Annotate the CommonJS export names for ESM import in node:
189
205
  0 && (module.exports = {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  mergeConfigs
3
- } from "./chunk-MT2A5AKG.mjs";
3
+ } from "./chunk-IMFODN4N.mjs";
4
4
  export {
5
5
  mergeConfigs
6
6
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pandacss/config",
3
- "version": "0.34.3",
3
+ "version": "0.36.0",
4
4
  "description": "Find and load panda config",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -53,6 +53,15 @@
53
53
  "default": "./dist/resolve-ts-path-pattern.mjs"
54
54
  }
55
55
  },
56
+ "./utils": {
57
+ "source": "./src/utils.ts",
58
+ "types": "./dist/utils.d.ts",
59
+ "require": "./dist/utils.js",
60
+ "import": {
61
+ "types": "./dist/utils.d.mts",
62
+ "default": "./dist/utils.mjs"
63
+ }
64
+ },
56
65
  "./package.json": "./package.json"
57
66
  },
58
67
  "files": [
@@ -64,11 +73,11 @@
64
73
  "merge-anything": "5.1.7",
65
74
  "microdiff": "1.3.2",
66
75
  "typescript": "5.3.3",
67
- "@pandacss/logger": "0.34.3",
68
- "@pandacss/preset-base": "0.34.3",
69
- "@pandacss/preset-panda": "0.34.3",
70
- "@pandacss/shared": "0.34.3",
71
- "@pandacss/types": "0.34.3"
76
+ "@pandacss/logger": "0.36.0",
77
+ "@pandacss/preset-base": "0.36.0",
78
+ "@pandacss/preset-panda": "0.36.0",
79
+ "@pandacss/shared": "0.36.0",
80
+ "@pandacss/types": "0.36.0"
72
81
  },
73
82
  "devDependencies": {
74
83
  "pkg-types": "1.0.3"