It appears you have a well-structured Git repository with various files, including SVG icons and HTML documents. Here's a brief overview:

This commit is contained in:
2025-06-11 09:05:15 +02:00
parent 36c2466e53
commit 6d6aa954dd
15556 changed files with 1076330 additions and 1 deletions

View File

@@ -0,0 +1,211 @@
'use strict';
/**
* @author Ben Briggs
* @license MIT
* @module cssnano:preset:default
* @overview
*
* This default preset for cssnano only includes transforms that make no
* assumptions about your CSS other than what is passed in. In previous
* iterations of cssnano, assumptions were made about your CSS which caused
* output to look different in certain use cases, but not others. These
* transforms have been moved from the defaults to other presets, to make
* this preset require only minimal configuration.
*/
const cssDeclarationSorter = require('css-declaration-sorter');
const postcssDiscardComments = require('postcss-discard-comments');
const postcssReduceInitial = require('postcss-reduce-initial');
const postcssMinifyGradients = require('postcss-minify-gradients');
const postcssSvgo = require('postcss-svgo');
const postcssReduceTransforms = require('postcss-reduce-transforms');
const postcssConvertValues = require('postcss-convert-values');
const postcssCalc = require('postcss-calc');
const postcssColormin = require('postcss-colormin');
const postcssOrderedValues = require('postcss-ordered-values');
const postcssMinifySelectors = require('postcss-minify-selectors');
const postcssMinifyParams = require('postcss-minify-params');
const postcssNormalizeCharset = require('postcss-normalize-charset');
const postcssMinifyFontValues = require('postcss-minify-font-values');
const postcssNormalizeUrl = require('postcss-normalize-url');
const postcssMergeLonghand = require('postcss-merge-longhand');
const postcssDiscardDuplicates = require('postcss-discard-duplicates');
const postcssDiscardOverridden = require('postcss-discard-overridden');
const postcssNormalizeRepeatStyle = require('postcss-normalize-repeat-style');
const postcssMergeRules = require('postcss-merge-rules');
const postcssDiscardEmpty = require('postcss-discard-empty');
const postcssUniqueSelectors = require('postcss-unique-selectors');
const postcssNormalizeString = require('postcss-normalize-string');
const postcssNormalizePositions = require('postcss-normalize-positions');
const postcssNormalizeWhitespace = require('postcss-normalize-whitespace');
const postcssNormalizeUnicode = require('postcss-normalize-unicode');
const postcssNormalizeDisplayValues = require('postcss-normalize-display-values');
const postcssNormalizeTimingFunctions = require('postcss-normalize-timing-functions');
const { rawCache } = require('cssnano-utils');
/**
* @template {object | void} [OptionsExtends=void]
* @typedef {false | OptionsExtends & {exclude?: true}} SimpleOptions
*/
/**
* @typedef {object} Options
* @property {SimpleOptions<Parameters<typeof cssDeclarationSorter>[0]>} [cssDeclarationSorter]
* @property {SimpleOptions<import('postcss-discard-comments').Options>} [discardComments]
* @property {SimpleOptions<import('postcss-reduce-initial').Options>} [reduceInitial]
* @property {SimpleOptions} [minifyGradients]
* @property {SimpleOptions<import('postcss-svgo').Options>} [svgo]
* @property {SimpleOptions} [reduceTransforms]
* @property {SimpleOptions<import('postcss-convert-values').Options>} [convertValues]
* @property {SimpleOptions<import('postcss-calc').PostCssCalcOptions>} [calc]
* @property {SimpleOptions<import('postcss-colormin').Options>} [colormin]
* @property {SimpleOptions} [orderedValues]
* @property {SimpleOptions<import('postcss-minify-selectors').Options>} [minifySelectors]
* @property {SimpleOptions<import('postcss-minify-params').Options>} [minifyParams]
* @property {SimpleOptions<import('postcss-normalize-charset').Options>} [normalizeCharset]
* @property {SimpleOptions<import('postcss-minify-font-values').Options>} [minifyFontValues]
* @property {SimpleOptions} [normalizeUrl]
* @property {SimpleOptions} [mergeLonghand]
* @property {SimpleOptions} [discardDuplicates]
* @property {SimpleOptions} [discardOverridden]
* @property {SimpleOptions} [normalizeRepeatStyle]
* @property {SimpleOptions<import('postcss-merge-rules').Options>} [mergeRules]
* @property {SimpleOptions} [discardEmpty]
* @property {SimpleOptions} [uniqueSelectors]
* @property {SimpleOptions<import('postcss-normalize-string').Options>} [normalizeString]
* @property {SimpleOptions} [normalizePositions]
* @property {SimpleOptions} [normalizeWhitespace]
* @property {SimpleOptions<import('postcss-normalize-unicode').Options>} [normalizeUnicode]
* @property {SimpleOptions} [normalizeDisplayValues]
* @property {SimpleOptions} [normalizeTimingFunctions]
* @property {SimpleOptions} [rawCache]
*/
/**
* @typedef {{ overrideBrowserslist?: string | string[] }} AutoprefixerOptions
* @typedef {Pick<import('browserslist').Options, 'stats' | 'path' | 'env'>} BrowserslistOptions
*/
/**
* @param {[import('postcss').PluginCreator<any>, keyof Options][]} plugins
* @param {Parameters<typeof defaultPreset>[0]} opts
* @returns {ReturnType<typeof defaultPreset>["plugins"]}
*/
function configurePlugins(plugins, opts = {}) {
const { overrideBrowserslist, stats, env, path } = opts;
// Shared Autoprefixer + Browserslist options
const sharedProps = {
overrideBrowserslist,
stats,
env,
path,
};
/**
* @type {Options}
*/
const defaults = {
colormin: {
...sharedProps,
},
convertValues: {
length: false,
...sharedProps,
},
mergeRules: {
...sharedProps,
},
minifyParams: {
...sharedProps,
},
normalizeCharset: {
add: false,
},
normalizeUnicode: {
...sharedProps,
},
reduceInitial: {
...sharedProps,
},
cssDeclarationSorter: {
keepOverrides: true,
},
minifySelectors: {
sort: true,
},
svgo: {
plugins: [
{
name: 'preset-default',
params: {
overrides: {
removeViewBox: false,
removeTitle: false,
},
},
},
],
},
};
// Merge option properties for each plugin
return plugins.map(([plugin, opt]) => {
const defaultProps = defaults[opt] ?? {};
const presetProps = opts[opt] ?? {};
return [
plugin,
presetProps !== false
? { ...defaultProps, ...presetProps }
: { exclude: true },
];
});
}
/**
* Safe defaults for cssnano which require minimal configuration
*
* @param {Options & AutoprefixerOptions & BrowserslistOptions} opts
* @returns {{ plugins: [import('postcss').PluginCreator<any>, Options[keyof Options]][] }}
*/
function defaultPreset(opts = {}) {
return {
plugins: configurePlugins(
[
[postcssDiscardComments, 'discardComments'],
[postcssMinifyGradients, 'minifyGradients'],
[postcssReduceInitial, 'reduceInitial'],
[postcssSvgo, 'svgo'],
[postcssNormalizeDisplayValues, 'normalizeDisplayValues'],
[postcssReduceTransforms, 'reduceTransforms'],
[postcssColormin, 'colormin'],
[postcssNormalizeTimingFunctions, 'normalizeTimingFunctions'],
[postcssCalc, 'calc'],
[postcssConvertValues, 'convertValues'],
[postcssOrderedValues, 'orderedValues'],
[postcssMinifySelectors, 'minifySelectors'],
[postcssMinifyParams, 'minifyParams'],
[postcssNormalizeCharset, 'normalizeCharset'],
[postcssDiscardOverridden, 'discardOverridden'],
[postcssNormalizeString, 'normalizeString'],
[postcssNormalizeUnicode, 'normalizeUnicode'],
[postcssMinifyFontValues, 'minifyFontValues'],
[postcssNormalizeUrl, 'normalizeUrl'],
[postcssNormalizeRepeatStyle, 'normalizeRepeatStyle'],
[postcssNormalizePositions, 'normalizePositions'],
[postcssNormalizeWhitespace, 'normalizeWhitespace'],
[postcssMergeLonghand, 'mergeLonghand'],
[postcssDiscardDuplicates, 'discardDuplicates'],
[postcssMergeRules, 'mergeRules'],
[postcssDiscardEmpty, 'discardEmpty'],
[postcssUniqueSelectors, 'uniqueSelectors'],
[cssDeclarationSorter, 'cssDeclarationSorter'],
[rawCache, 'rawCache'],
],
opts
),
};
}
module.exports = defaultPreset;