emily-css 1.2.7 → 1.2.9

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/src/migrate.js CHANGED
@@ -224,11 +224,14 @@ const UTILITY_PREFIX_ALLOWLIST = new Set([
224
224
  'content',
225
225
  'self',
226
226
  'place',
227
+ 'box',
227
228
  'object',
228
229
  'overflow',
230
+ 'overscroll',
229
231
  'divide',
230
232
  'cursor',
231
233
  'select',
234
+ 'transition',
232
235
  'duration',
233
236
  'delay',
234
237
  'ease',
@@ -241,6 +244,9 @@ const UTILITY_PREFIX_ALLOWLIST = new Set([
241
244
  'basis',
242
245
  'grow',
243
246
  'shrink',
247
+ 'color-scheme',
248
+ 'field-sizing',
249
+ 'scrollbar',
244
250
  ]);
245
251
 
246
252
  function hasUtilityLikeSyntax(className) {
package/src/purge.js CHANGED
@@ -222,6 +222,9 @@ function printFileSummary(files, extensions) {
222
222
  function purgeCSS(css, scanDir, config) {
223
223
  const resolvedPurgeConfig = resolvePurgeConfig(config);
224
224
  const extensions = resolvedPurgeConfig.extensions || DEFAULT_EXTENSIONS;
225
+ const safelist = Array.isArray(resolvedPurgeConfig.safelist)
226
+ ? resolvedPurgeConfig.safelist
227
+ : [];
225
228
  const files = getFilesForPurge(scanDir, config, extensions);
226
229
 
227
230
  printFileSummary(files, extensions);
@@ -245,7 +248,12 @@ function purgeCSS(css, scanDir, config) {
245
248
  }
246
249
  }
247
250
 
251
+ safelist.forEach((className) => usedClasses.add(className));
252
+
248
253
  console.log(` Extracted ${usedClasses.size} unique class names`);
254
+ if (safelist.length > 0) {
255
+ console.log(` Safelisted ${safelist.length} class names`);
256
+ }
249
257
 
250
258
  const blocks = extractBlocks(css);
251
259
  const purgedBlocks = blocks
@@ -170,12 +170,21 @@ function resolvePurgeConfig(config = {}, options = {}) {
170
170
  }
171
171
 
172
172
  const sourceDir = purge.sourceDir || preset.sourceDir || '.';
173
+ const safelist = Array.isArray(purge.safelist)
174
+ ? unique(
175
+ purge.safelist
176
+ .filter((entry) => typeof entry === 'string')
177
+ .map((entry) => entry.trim())
178
+ .filter(Boolean),
179
+ )
180
+ : [];
173
181
 
174
182
  return {
175
183
  projectType,
176
184
  sourceDir,
177
185
  sourceGlobs,
178
186
  ignore: unique([...DEFAULT_PURGE_IGNORE, ...(purge.ignore || [])]),
187
+ safelist,
179
188
  extensions: Array.isArray(purge.extensions) && purge.extensions.length > 0
180
189
  ? purge.extensions
181
190
  : DEFAULT_EXTENSIONS,
@@ -188,4 +197,3 @@ module.exports = {
188
197
  detectProjectType,
189
198
  resolvePurgeConfig,
190
199
  };
191
-