* use `~/.cache/tailwindcss` as default touch dir
When more tools catch up with the latest postcss dependency tracking,
then we probably don't even need this anymore. However, it is a good
practice to put (global) caches in ~/.cache and (global) configs in
~/.config
Fixes: #4569
* change test to verify @tailwind base slightly
Because of some changes in tailwind itself, the base selector contains a
ton of new --tw-* custom properties. Keeping this up to date might be a
bit of an annoying challenge. So instead we now check for the selector
to be present.
* add `tmp` package
* use a (simple) temporary file, instead of a full cache dir
* ensure postcss 7 is dropped from dev dependencies as well
Drop incorrect "help" text
* ensure we are cloning nodes
This is an issue in postcss 7 and fixed in postcss 8. However the compat build still suffers form this issue.
* 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.
* Remove watcher from context
* WIP
* WIP
* format
* abstract configDependencies
* abstract fileModifiedMap
* abstract candidateFiles
* abstract changedContent to each strategy
* little bit of cleanup
* formatting
Co-authored-by: Adam Wathan <adam.wathan@gmail.com>
* 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
* 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>
* WIP
* WIP
* Finish combining JIT and AOT plugins
Still lots of clean up that can be done in some of the more complex ones, but at least it's one file per plugin now.
* Remove unused import
* Fix AOT generation bugs
* Move corePlugins/index.js to corePlugins.js
* Convert JIT files to ESM
* Move tests
* Reorder core plugins to match JIT order
* Update AOT apply tests
* Unify utils
* Combine plugin lists to one single source of truth
* Finish resolving merge conflicts, fix tests
Co-authored-by: Adam Wathan <adam.wathan@gmail.com>