@yahoo/uds 3.134.0 → 3.134.1

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 (55) hide show
  1. package/dist/cli/dist/lib/args.cjs +7 -3
  2. package/dist/cli/dist/lib/args.js +7 -3
  3. package/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +1 -1
  4. package/dist/components/client/Menu/Menu.ItemCheckbox.d.ts +1 -1
  5. package/dist/styles/styler.d.cts +26 -26
  6. package/dist/styles/styler.d.ts +26 -26
  7. package/dist/tailwind/dist/commands/css.cjs +1 -0
  8. package/dist/tailwind/dist/commands/css.d.cts.map +1 -1
  9. package/dist/tailwind/dist/commands/css.d.ts.map +1 -1
  10. package/dist/tailwind/dist/commands/css.helpers.cjs +8 -1
  11. package/dist/tailwind/dist/commands/css.helpers.js +8 -1
  12. package/dist/tailwind/dist/commands/css.helpers.js.map +1 -1
  13. package/dist/tailwind/dist/commands/css.js +1 -0
  14. package/dist/tailwind/dist/commands/css.js.map +1 -1
  15. package/dist/tailwind/dist/css/generate.cjs +7 -4
  16. package/dist/tailwind/dist/css/generate.d.cts.map +1 -1
  17. package/dist/tailwind/dist/css/generate.d.ts.map +1 -1
  18. package/dist/tailwind/dist/css/generate.js +7 -4
  19. package/dist/tailwind/dist/css/generate.js.map +1 -1
  20. package/dist/tailwind/dist/css/nodeUtils.cjs +19 -8
  21. package/dist/tailwind/dist/css/nodeUtils.js +19 -8
  22. package/dist/tailwind/dist/css/nodeUtils.js.map +1 -1
  23. package/dist/tailwind/dist/css/perf.cjs +92 -0
  24. package/dist/tailwind/dist/css/perf.js +89 -0
  25. package/dist/tailwind/dist/css/perf.js.map +1 -0
  26. package/dist/tailwind/dist/css/purgeWorker.cjs +47 -0
  27. package/dist/tailwind/dist/css/purgeWorker.d.cts +2 -0
  28. package/dist/tailwind/dist/css/purgeWorker.d.ts +2 -0
  29. package/dist/tailwind/dist/css/purgeWorker.js +48 -0
  30. package/dist/tailwind/dist/css/purgeWorker.js.map +1 -0
  31. package/dist/tailwind/dist/css/runner.cjs +158 -145
  32. package/dist/tailwind/dist/css/runner.js +158 -145
  33. package/dist/tailwind/dist/css/runner.js.map +1 -1
  34. package/dist/tailwind/dist/css/workerPool.cjs +89 -0
  35. package/dist/tailwind/dist/css/workerPool.js +90 -0
  36. package/dist/tailwind/dist/css/workerPool.js.map +1 -0
  37. package/dist/tailwind/dist/purger/optimized/ast/expressions.cjs +95 -15
  38. package/dist/tailwind/dist/purger/optimized/ast/expressions.js +95 -15
  39. package/dist/tailwind/dist/purger/optimized/ast/expressions.js.map +1 -1
  40. package/dist/tailwind/dist/purger/optimized/purgeFromCode.cjs +38 -14
  41. package/dist/tailwind/dist/purger/optimized/purgeFromCode.d.cts.map +1 -1
  42. package/dist/tailwind/dist/purger/optimized/purgeFromCode.d.ts.map +1 -1
  43. package/dist/tailwind/dist/purger/optimized/purgeFromCode.js +39 -15
  44. package/dist/tailwind/dist/purger/optimized/purgeFromCode.js.map +1 -1
  45. package/dist/tailwind/dist/purger/optimized/types.d.cts +10 -0
  46. package/dist/tailwind/dist/purger/optimized/types.d.cts.map +1 -1
  47. package/dist/tailwind/dist/purger/optimized/types.d.ts +10 -0
  48. package/dist/tailwind/dist/purger/optimized/types.d.ts.map +1 -1
  49. package/dist/uds/generated/componentData.cjs +557 -557
  50. package/dist/uds/generated/componentData.js +557 -557
  51. package/generated/componentData.json +915 -915
  52. package/package.json +1 -1
  53. package/dist/tailwind/dist/purger/optimized/ast/jsx.cjs +0 -16
  54. package/dist/tailwind/dist/purger/optimized/ast/jsx.js +0 -17
  55. package/dist/tailwind/dist/purger/optimized/ast/jsx.js.map +0 -1
@@ -4,6 +4,7 @@ const require_colors = require("../cli/dist/lib/colors.cjs");
4
4
  const require_print = require("../cli/dist/lib/print.cjs");
5
5
  const require_spinner = require("../cli/dist/lib/spinner.cjs");
6
6
  const require_logger = require("../cli/dist/lib/logger.cjs");
7
+ const require_perf = require("./perf.cjs");
7
8
  const require_entryPoints = require("../utils/entryPoints.cjs");
8
9
  const require_nodeUtils = require("./nodeUtils.cjs");
9
10
  const require_index = require("../config/dist/index.cjs");
@@ -12,6 +13,7 @@ const require_runner_helpers = require("./runner.helpers.cjs");
12
13
  const require_utils = require("./utils.cjs");
13
14
  const require_generate_helpers = require("./generate.helpers.cjs");
14
15
  const require_generate = require("./generate.cjs");
16
+ const require_workerPool = require("./workerPool.cjs");
15
17
  let node_fs = require("node:fs");
16
18
  node_fs = require_runtime.__toESM(node_fs, 1);
17
19
  //#region src/css/runner.ts
@@ -249,170 +251,181 @@ const runThemeMode = async (options, context) => {
249
251
  if (themeConfig.config && appConfig === require_index.defaultTokensConfig) log.warn(`App config not found: ${themeConfig.config}, using defaults`);
250
252
  const packageDirs = [];
251
253
  const generateThemeModeCSS = async (opts) => {
254
+ require_perf.clearTimings();
255
+ require_perf.captureMemory("start");
252
256
  const genStartTime = performance.now();
253
257
  const genLog = opts?.isWatch ? require_logger.createLogger({ silent: true }) : log;
254
258
  const scopedCssOutputs = [];
255
- genLog.spinStart("Scanning app code...");
256
- const appScanResult = await require_nodeUtils.scanDirectoriesForSafelist(entryDirs, colorModes, context.variants, context.autoVariants, context.componentData, appVariantDefaults, runtimeConfigValues);
257
- genLog.spinStop("✅", require_runner_helpers.getScanSummaryMessage({
258
- label: "app",
259
- filesScanned: appScanResult.filesScanned,
260
- filesWithComponents: appScanResult.filesWithComponents,
261
- componentCount: appScanResult.components.length,
262
- mode: "app"
263
- }));
264
- if (options.verbose) printVerboseScanFiles(genLog, workspaceDir, appScanResult.filePaths);
265
- genLog.spinStart("Generating main CSS...");
266
- const inheritedClasses = [...appScanResult.safelist];
267
- const inheritedComponents = new Set(appScanResult.components);
268
- const scopedPackageTargets = [];
269
- const processInheritedPackage = async (packageName) => {
270
- genLog.spinStart(`Processing package: ${packageName}...`);
271
- const packageDir = require_nodeUtils.findPackageSourceDir(packageName);
272
- if (!packageDir) {
273
- genLog.spinStop("⚠️", `Package not found: ${packageName}`);
274
- return;
275
- }
276
- if (!packageDirs.includes(packageDir)) packageDirs.push(packageDir);
277
- const packageScanResult = await require_nodeUtils.scanDirectoryForSafelist(packageDir, colorModes, context.variants, context.autoVariants, context.componentData, appVariantDefaults, runtimeConfigValues, true);
278
- inheritedClasses.push(...packageScanResult.safelist);
279
- packageScanResult.components.forEach((comp) => inheritedComponents.add(comp));
259
+ const pool = await require_workerPool.createWorkerPool({
260
+ variants: context.variants,
261
+ autoVariants: context.autoVariants,
262
+ componentData: context.componentData
263
+ }, options.workers);
264
+ try {
265
+ genLog.spinStart(`Scanning app and packages... (${pool.workerCount} worker${pool.workerCount === 1 ? "" : "s"})`);
266
+ const scopedPackageTargets = [];
267
+ const processInheritedPackage = async (packageName) => {
268
+ const packageDir = require_nodeUtils.findPackageSourceDir(packageName);
269
+ if (!packageDir) return {
270
+ packageName,
271
+ status: "not-found"
272
+ };
273
+ if (!packageDirs.includes(packageDir)) packageDirs.push(packageDir);
274
+ return {
275
+ packageName,
276
+ status: "ok",
277
+ scanResult: await require_nodeUtils.scanDirectoryForSafelist(packageDir, colorModes, context.variants, context.autoVariants, context.componentData, appVariantDefaults, runtimeConfigValues, true, pool)
278
+ };
279
+ };
280
+ const processScopedPackage = async (packageName, scopedPackageValue) => {
281
+ const scopedPackageConfig = normalizeScopedPackageConfig(scopedPackageValue);
282
+ const packageRoot = require_nodeUtils.findPackageRoot(packageName);
283
+ const packageDir = require_nodeUtils.findPackageSourceDir(packageName);
284
+ if (!packageRoot || !packageDir) return;
285
+ const scopeClass = require_nodeUtils.getPackageUdsScope(packageName);
286
+ if (!scopeClass) return;
287
+ const entryDirs = resolveScopedEntryDirs(packageRoot, packageDir, scopedPackageConfig.entry);
288
+ entryDirs.forEach((entryDir) => {
289
+ if (!packageDirs.includes(entryDir)) packageDirs.push(entryDir);
290
+ });
291
+ scopedPackageTargets.push({
292
+ packageName,
293
+ packageRoot,
294
+ packageDir,
295
+ entryDirs,
296
+ scopeClass,
297
+ config: scopedPackageConfig
298
+ });
299
+ };
300
+ const [appScanResult, inheritedResults] = await Promise.all([
301
+ require_perf.measureAsync("scan", () => require_nodeUtils.scanDirectoriesForSafelist(entryDirs, colorModes, context.variants, context.autoVariants, context.componentData, appVariantDefaults, runtimeConfigValues, false, pool)),
302
+ Promise.all((themeConfig.inherit ?? []).map((packageName) => require_perf.measureAsync(`scan:inherit:${packageName}`, () => processInheritedPackage(packageName)))),
303
+ Promise.all(Object.entries(themeConfig.scoped ?? {}).map(([packageName, scopedPackageConfig]) => processScopedPackage(packageName, scopedPackageConfig)))
304
+ ]);
280
305
  genLog.spinStop("✅", require_runner_helpers.getScanSummaryMessage({
281
- label: packageName,
282
- filesScanned: packageScanResult.filesScanned,
283
- filesWithComponents: packageScanResult.filesWithComponents,
284
- componentCount: packageScanResult.components.length,
285
- mode: "inherit"
306
+ label: "app",
307
+ filesScanned: appScanResult.filesScanned,
308
+ filesWithComponents: appScanResult.filesWithComponents,
309
+ componentCount: appScanResult.components.length,
310
+ mode: "app"
286
311
  }));
287
- if (options.verbose) printVerboseScanFiles(genLog, workspaceDir, packageScanResult.filePaths);
288
- };
289
- const processScopedPackage = async (packageName, scopedPackageValue) => {
290
- genLog.spinStart(`Processing scoped package: ${packageName}...`);
291
- const scopedPackageConfig = normalizeScopedPackageConfig(scopedPackageValue);
292
- const packageRoot = require_nodeUtils.findPackageRoot(packageName);
293
- const packageDir = require_nodeUtils.findPackageSourceDir(packageName);
294
- if (!packageRoot || !packageDir) {
295
- genLog.spinStop("⚠️", `Scoped package not found: ${packageName}`);
296
- return;
312
+ if (options.verbose) printVerboseScanFiles(genLog, workspaceDir, appScanResult.filePaths);
313
+ for (const result of inheritedResults) if (result.status === "not-found") genLog.spinStop("⚠️", `Package not found: ${result.packageName}`);
314
+ else {
315
+ genLog.spinStop("✅", require_runner_helpers.getScanSummaryMessage({
316
+ label: result.packageName,
317
+ filesScanned: result.scanResult.filesScanned,
318
+ filesWithComponents: result.scanResult.filesWithComponents,
319
+ componentCount: result.scanResult.components.length,
320
+ mode: "inherit"
321
+ }));
322
+ if (options.verbose) printVerboseScanFiles(genLog, workspaceDir, result.scanResult.filePaths);
297
323
  }
298
- const scopeClass = require_nodeUtils.getPackageUdsScope(packageName);
299
- if (!scopeClass) {
300
- genLog.spinStop("⚠️", `Scoped package missing package.json uds.scope: ${packageName}`);
301
- return;
324
+ const inheritedClasses = [...appScanResult.safelist];
325
+ const inheritedComponents = new Set(appScanResult.components);
326
+ for (const result of inheritedResults) if (result.status === "ok") {
327
+ inheritedClasses.push(...result.scanResult.safelist);
328
+ result.scanResult.components.forEach((comp) => inheritedComponents.add(comp));
302
329
  }
303
- const entryDirs = resolveScopedEntryDirs(packageRoot, packageDir, scopedPackageConfig.entry);
304
- entryDirs.forEach((entryDir) => {
305
- if (!packageDirs.includes(entryDir)) packageDirs.push(entryDir);
306
- });
307
- scopedPackageTargets.push({
308
- packageName,
309
- packageRoot,
310
- packageDir,
311
- entryDirs,
312
- scopeClass,
313
- config: scopedPackageConfig
314
- });
315
- };
316
- await (themeConfig.inherit ?? []).reduce(async (promise, packageName) => {
317
- await promise;
318
- await processInheritedPackage(packageName);
319
- }, Promise.resolve());
320
- await Object.entries(themeConfig.scoped ?? {}).reduce(async (promise, [packageName, scopedPackageConfig]) => {
321
- await promise;
322
- await processScopedPackage(packageName, scopedPackageConfig);
323
- }, Promise.resolve());
324
- const mainSafelist = require_safelist.deduplicateSafelist([
325
- ...inheritedClasses,
326
- ...require_safelist.getThemeAndScaleClasses(colorModes),
327
- ...require_safelist.getInternalSafelistClasses()
328
- ]);
329
- const allMotionComponents = [...inheritedComponents];
330
- const mainCssResult = await require_generate.generateCSS([...themeConfig.css?.safelist ?? [], ...mainSafelist], appConfig, {
331
- scope: options.scope,
332
- contentDir: entryDirs,
333
- cssOptions: themeConfig.css,
334
- safeVarPrefixes: [
335
- ...require_utils.getMotionVarPrefixes(context.componentData, allMotionComponents),
336
- ...require_utils.getConfigurableCssVariables(),
337
- ...require_generate_helpers.getPruneVarSafelist(themeConfig.css)
338
- ]
339
- });
340
- ensureOutputDirectory(outputPath);
341
- node_fs.default.writeFileSync(outputPath, mainCssResult.css);
342
- for (const scopedPackageTarget of scopedPackageTargets) {
343
- const packageConfig = await require_nodeUtils.loadConfigFile(isAbsolutePath(scopedPackageTarget.config.config) ? scopedPackageTarget.config.config : joinPath(scopedPackageTarget.packageRoot, scopedPackageTarget.config.config)) ?? require_index.defaultTokensConfig;
344
- const packageVariantDefaults = require_utils.extractVariantDefaults(packageConfig);
345
- const packageRuntimeConfigValues = require_utils.extractRuntimeConfigValues(packageConfig);
346
- const packageScanResult = await require_nodeUtils.scanDirectoriesForSafelist(scopedPackageTarget.entryDirs, colorModes, context.variants, context.autoVariants, context.componentData, packageVariantDefaults, packageRuntimeConfigValues, true);
347
- genLog.spinStop("✅", require_runner_helpers.getScanSummaryMessage({
348
- label: scopedPackageTarget.packageName,
349
- filesScanned: packageScanResult.filesScanned,
350
- filesWithComponents: packageScanResult.filesWithComponents,
351
- componentCount: packageScanResult.components.length,
352
- mode: "scoped"
353
- }));
354
- if (options.verbose) printVerboseScanFiles(genLog, workspaceDir, packageScanResult.filePaths);
355
- const packageSafelist = require_safelist.deduplicateSafelist([
356
- ...packageScanResult.safelist,
330
+ genLog.spinStart("Generating main CSS...");
331
+ const mainSafelist = require_safelist.deduplicateSafelist([
332
+ ...inheritedClasses,
357
333
  ...require_safelist.getThemeAndScaleClasses(colorModes),
358
334
  ...require_safelist.getInternalSafelistClasses()
359
335
  ]);
360
- const scopedCssResult = await require_generate.generateCSS([...themeConfig.css?.safelist ?? [], ...packageSafelist], packageConfig, {
361
- scope: scopedPackageTarget.scopeClass,
362
- contentDir: scopedPackageTarget.entryDirs,
336
+ const allMotionComponents = [...inheritedComponents];
337
+ require_perf.captureMemory("before-gen");
338
+ const mainCssResult = await require_perf.measureAsync("gen", () => require_generate.generateCSS([...themeConfig.css?.safelist ?? [], ...mainSafelist], appConfig, {
339
+ scope: options.scope,
340
+ contentDir: entryDirs,
363
341
  cssOptions: themeConfig.css,
364
- referenceCss: themeConfig.css?.optimization?.deduplicateScopedCss === false ? void 0 : mainCssResult.css,
365
342
  safeVarPrefixes: [
366
- ...require_utils.getMotionVarPrefixes(context.componentData, [...packageScanResult.components]),
343
+ ...require_utils.getMotionVarPrefixes(context.componentData, allMotionComponents),
367
344
  ...require_utils.getConfigurableCssVariables(),
368
345
  ...require_generate_helpers.getPruneVarSafelist(themeConfig.css)
369
346
  ]
370
- });
371
- const scopedOutputPath = resolveOutputPath(workspaceDir, getScopedPackageOutputPath(scopedPackageTarget.packageName, scopedPackageTarget.config.outFile));
372
- ensureOutputDirectory(scopedOutputPath);
373
- node_fs.default.writeFileSync(scopedOutputPath, scopedCssResult.css);
374
- scopedCssOutputs.push({
375
- label: scopedPackageTarget.packageName,
376
- outputPath: scopedOutputPath,
377
- sizeGzipBytes: scopedCssResult.sizeGzipBytes,
378
- optimizationStats: scopedCssResult.optimizationStats
379
- });
380
- }
381
- const mainCssSummary = require_runner_helpers.getMainCssSummaryMessage({
382
- sizeGzipBytes: mainCssResult.sizeGzipBytes,
383
- optimizationStats: mainCssResult.optimizationStats,
384
- formatBytes: require_utils.formatBytes
385
- });
386
- genLog.spinStop("✅", mainCssSummary.summaryLine);
387
- mainCssSummary.detailLines.forEach((detailLine) => {
388
- genLog.print(detailLine);
389
- });
390
- scopedCssOutputs.forEach((scopedCssOutput) => {
391
- const scopedCssSummary = require_runner_helpers.getScopedCssSummaryMessage(scopedCssOutput.label, {
392
- sizeGzipBytes: scopedCssOutput.sizeGzipBytes,
393
- optimizationStats: scopedCssOutput.optimizationStats,
347
+ }));
348
+ require_perf.captureMemory("after-gen");
349
+ ensureOutputDirectory(outputPath);
350
+ node_fs.default.writeFileSync(outputPath, mainCssResult.css);
351
+ for (const scopedPackageTarget of scopedPackageTargets) {
352
+ const packageConfig = await require_nodeUtils.loadConfigFile(isAbsolutePath(scopedPackageTarget.config.config) ? scopedPackageTarget.config.config : joinPath(scopedPackageTarget.packageRoot, scopedPackageTarget.config.config)) ?? require_index.defaultTokensConfig;
353
+ const packageVariantDefaults = require_utils.extractVariantDefaults(packageConfig);
354
+ const packageRuntimeConfigValues = require_utils.extractRuntimeConfigValues(packageConfig);
355
+ const packageScanResult = await require_nodeUtils.scanDirectoriesForSafelist(scopedPackageTarget.entryDirs, colorModes, context.variants, context.autoVariants, context.componentData, packageVariantDefaults, packageRuntimeConfigValues, true, pool);
356
+ genLog.spinStop("✅", require_runner_helpers.getScanSummaryMessage({
357
+ label: scopedPackageTarget.packageName,
358
+ filesScanned: packageScanResult.filesScanned,
359
+ filesWithComponents: packageScanResult.filesWithComponents,
360
+ componentCount: packageScanResult.components.length,
361
+ mode: "scoped"
362
+ }));
363
+ if (options.verbose) printVerboseScanFiles(genLog, workspaceDir, packageScanResult.filePaths);
364
+ const packageSafelist = require_safelist.deduplicateSafelist([
365
+ ...packageScanResult.safelist,
366
+ ...require_safelist.getThemeAndScaleClasses(colorModes),
367
+ ...require_safelist.getInternalSafelistClasses()
368
+ ]);
369
+ const scopedCssResult = await require_generate.generateCSS([...themeConfig.css?.safelist ?? [], ...packageSafelist], packageConfig, {
370
+ scope: scopedPackageTarget.scopeClass,
371
+ contentDir: scopedPackageTarget.entryDirs,
372
+ cssOptions: themeConfig.css,
373
+ referenceCss: themeConfig.css?.optimization?.deduplicateScopedCss === false ? void 0 : mainCssResult.css,
374
+ safeVarPrefixes: [
375
+ ...require_utils.getMotionVarPrefixes(context.componentData, [...packageScanResult.components]),
376
+ ...require_utils.getConfigurableCssVariables(),
377
+ ...require_generate_helpers.getPruneVarSafelist(themeConfig.css)
378
+ ]
379
+ });
380
+ const scopedOutputPath = resolveOutputPath(workspaceDir, getScopedPackageOutputPath(scopedPackageTarget.packageName, scopedPackageTarget.config.outFile));
381
+ ensureOutputDirectory(scopedOutputPath);
382
+ node_fs.default.writeFileSync(scopedOutputPath, scopedCssResult.css);
383
+ scopedCssOutputs.push({
384
+ label: scopedPackageTarget.packageName,
385
+ outputPath: scopedOutputPath,
386
+ sizeGzipBytes: scopedCssResult.sizeGzipBytes,
387
+ optimizationStats: scopedCssResult.optimizationStats
388
+ });
389
+ }
390
+ const mainCssSummary = require_runner_helpers.getMainCssSummaryMessage({
391
+ sizeGzipBytes: mainCssResult.sizeGzipBytes,
392
+ optimizationStats: mainCssResult.optimizationStats,
394
393
  formatBytes: require_utils.formatBytes
395
394
  });
396
- genLog.spinStop("✅", scopedCssSummary.summaryLine);
397
- scopedCssSummary.detailLines.forEach((detailLine) => {
395
+ genLog.spinStop("✅", mainCssSummary.summaryLine);
396
+ mainCssSummary.detailLines.forEach((detailLine) => {
398
397
  genLog.print(detailLine);
399
398
  });
400
- });
401
- const duration = Math.round(performance.now() - genStartTime);
402
- const outputFileSection = require_runner_helpers.getOutputFileSection(workspaceDir, [outputPath, ...scopedCssOutputs.map((scopedCssOutput) => scopedCssOutput.outputPath)]);
403
- genLog.newline();
404
- genLog.print(outputFileSection.label);
405
- outputFileSection.paths.forEach((filePath) => {
406
- genLog.listItem(filePath);
407
- });
408
- genLog.newline();
409
- genLog.print(`${require_colors.magenta("Total time:")} ${require_runner_helpers.formatCssDuration(duration)}`);
410
- return {
411
- duration,
412
- outputPath,
413
- outputPaths: outputFileSection.paths,
414
- packageDirs
415
- };
399
+ scopedCssOutputs.forEach((scopedCssOutput) => {
400
+ const scopedCssSummary = require_runner_helpers.getScopedCssSummaryMessage(scopedCssOutput.label, {
401
+ sizeGzipBytes: scopedCssOutput.sizeGzipBytes,
402
+ optimizationStats: scopedCssOutput.optimizationStats,
403
+ formatBytes: require_utils.formatBytes
404
+ });
405
+ genLog.spinStop("✅", scopedCssSummary.summaryLine);
406
+ scopedCssSummary.detailLines.forEach((detailLine) => {
407
+ genLog.print(detailLine);
408
+ });
409
+ });
410
+ const duration = Math.round(performance.now() - genStartTime);
411
+ const outputFileSection = require_runner_helpers.getOutputFileSection(workspaceDir, [outputPath, ...scopedCssOutputs.map((scopedCssOutput) => scopedCssOutput.outputPath)]);
412
+ genLog.newline();
413
+ genLog.print(outputFileSection.label);
414
+ outputFileSection.paths.forEach((filePath) => {
415
+ genLog.listItem(filePath);
416
+ });
417
+ genLog.newline();
418
+ genLog.print(`${require_colors.magenta("Total time:")} ${require_runner_helpers.formatCssDuration(duration)}`);
419
+ require_perf.printPerfSummary(duration);
420
+ return {
421
+ duration,
422
+ outputPath,
423
+ outputPaths: outputFileSection.paths,
424
+ packageDirs
425
+ };
426
+ } finally {
427
+ await pool.destroy();
428
+ }
416
429
  };
417
430
  await generateThemeModeCSS();
418
431
  if (options.watch) {