* Generate plugin list file
Removes the importing of all plugins in src/util/resolveConfig to avoid importing CSS.
Import the built plugin list file instead.
* Use `process.cwd()` instead of `__dirname` to resolve path
Co-authored-by: Federico Ciardi <fed.ciardi@gmail.com>
* Import core plugin list in resolveConfig test
* Generate plugin list prebabelify and on install
* Move generation from install to postinstall
Co-authored-by: Federico Ciardi <fed.ciardi@gmail.com>
Co-authored-by: Federico Ciardi <fed.ciardi@gmail.com>
We always use `none` for other utilities where the values have string names like `sm`, but for `blur` I chose `blur-0` for some idiotic reason. Can't have that.
* fix --help output in tests
* add tests to ensure we can use `purge.safelist`
* implement the `purge.safelist` for strings
* proxy `purge.safelist` to `purge.options.safelist`
This allows us to have a similar API in `AOT` and `JIT` mode.
* only proxy `purge.safelist` to `purge.options.safelist` if
`purge.options.safelist` doesn't exists yet.
* Fix issue where disabled corePlugins can't be re-enabled
* Disable caretColor and content core plugins by default, enable in JIT
* Don't disable caretColor/content in default config stub, hard-code for AOT instead
But with ability to still opt-in through your own config. Somewhat messy, but goal is to keep the messes in the AOT path and keep the JIT path pure.
* Fix style
* Revert unnecessary changes
* Fix style
* Move border reset to borderColor plugin, support opacity
* Update JIT tests
* Don't use opacity variable for default border color when borderOpacity is disabled
* Fix tests
* resolve purge paths
* add test for purgecss pattern resolution
* resolve purgecss patterns relative to the config file if there is one
* account for raw content when transforming purgecss options
* append test name to postcss `from` option in purge tests
fixes tests hanging
* add test for relative purge path resolution in JIT mode
This will make sure that we tackle a few additional edge cases:
- When the `name` is the same as a reserved keyword, then it will be
used as a `name` as well. E.g.: 1s ease ease infinite; Will result in
a name of `ease` as well.
- We take care of trimming and multiple spaces.
- We don't generate 8k tests anymore, which means that these specific
tests only take a second instead of 10 seconds.
* implement matchUtilities2
* ensure animation names without keyframes are not prefixed
* remove matchBase
* call addUtilities for each group individually
* WIP: Write plugins using matchUtilities2
* MORE
* Fix arbitrary value support for fontSize
* Fixes, update fixtures
* Rebuild fixtures
* Don't generate `divide` class with no modifier
* Fixes, rebuild fixtures
* Rename matchUtilities2 to matchUtilities
* Delete bad tests
* Remove temp files GROSS
* Clean stuff up
* Support no return in matchUtilities
Co-authored-by: Adam Wathan <adam.wathan@gmail.com>