tailwindcss/integrations
Robin Malfait d2865c3e58
Remove layer(utilities) if imports contain @utility (#14738)
We have a migration that adds the `layer(…)` next to the `@import`
depending on the order of original values. For example:
```css
@import "tailwindcss/utilities":
@import "./foo.css":
@import "tailwindcss/components":
```

Will be turned into:
```css
@import "tailwindcss":
@import "./foo.css" layer(utilities):
```

Because it used to exist between `utilities` and `components`. Without
this it would be _after_ `components`.

This results in an issue if an import has (deeply) nested `@utility`
at-rules after migrations. This is because if this is generated:
```css
/* ./src/index.css */
@import "tailwindcss";
@import "./foo.css" layer(utilities);

/* ./src/foo.css */
@utility foo {
  color: red;
}
```

Once we interpret this (and thus flatten it), the final CSS would look
like:
```css
@layer utilities {
  @utility foo {
    color: red;
  }
}
```

This means that `@utility` is not top-level and an error would occur.

This fixes that by removing the `layer(…)` from the import if the
imported file (or any of its children) contains an `@utility`. This is
to ensure that once everything is imported and flattened, that all
`@utility` at-rules are top-level.
2024-10-21 23:46:24 +02:00
..
cli Ensure changes to the input CSS file result in a full rebuild (#14744) 2024-10-21 20:29:33 +00:00
postcss Improve @tailwindcss/postcss performance for initial builds (#14565) 2024-10-03 16:21:54 +02:00
upgrade Remove layer(utilities) if imports contain @utility (#14738) 2024-10-21 23:46:24 +02:00
vite Add integration tests for multi-root builds (#14564) 2024-10-01 17:00:20 +02:00
package.json Add integration test setup and tests for the Vite integration (#14089) 2024-08-02 11:50:49 +02:00
utils.ts Add simple JS config migration (#14639) 2024-10-11 15:27:53 +02:00