tailwindcss-rails 4.3.0 → 4.4.0
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.
- checksums.yaml +4 -4
- data/README.md +21 -42
- data/lib/generators/test_unit/scaffold/scaffold_generator.rb +3 -4
- data/lib/puma/plugin/tailwindcss.rb +6 -2
- data/lib/tailwindcss/commands.rb +1 -2
- data/lib/tailwindcss/engines.rb +1 -1
- data/lib/tailwindcss/version.rb +1 -1
- data/lib/tasks/build.rake +1 -2
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 37b4470776d372044cf70aff35b3dbdb1296d445d683aef89ef13e8f4c7aa510
         | 
| 4 | 
            +
              data.tar.gz: a782697028ed250f6aa001c46316afa71d0900371f818604804df436f9f79b58
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 929e43dae3a11d929bfb104e66dc7b9fc4b3788e50202adc9f31a40d306a51c105a5d15e279713ca82a857d97383ab08d035ebc4d64c101f1a714e7c49898a70
         | 
| 7 | 
            +
              data.tar.gz: bca8090e90b84f01260fd3c23c6b3c28cbfca8311fcbb65fc22aa9141283ff532723f00a8cd2a0988d3b181f2863ee74025abc581ffaf50a67ac273bab587403
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,6 +1,10 @@ | |
| 1 1 | 
             
            # Tailwind CSS for Rails
         | 
| 2 2 |  | 
| 3 | 
            -
            [Tailwind CSS](https://tailwindcss.com) is a utility-first CSS framework packed with classes like flex | 
| 3 | 
            +
            [Tailwind CSS](https://tailwindcss.com) is a utility-first CSS framework packed with classes like `flex`, `pt-4`, `text-center` and `rotate-90` that can be composed to build any design, directly in your markup.
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            > [!NOTE]
         | 
| 6 | 
            +
            > This document is specific to Tailwind v4, corresponding to v4 of this gem. If you are looking for documentation for v3, please visit to the [tailwindcss-rails v3
         | 
| 7 | 
            +
            README](https://github.com/rails/tailwindcss-rails/tree/v3-stable?tab=readme-ov-file).
         | 
| 4 8 |  | 
| 5 9 | 
             
            <!-- regenerate TOC with `rake format:toc` -->
         | 
| 6 10 |  | 
| @@ -14,7 +18,7 @@ | |
| 14 18 | 
             
              * [Upgrade steps](#upgrade-steps)
         | 
| 15 19 | 
             
              * [Troubleshooting a v4 upgrade](#troubleshooting-a-v4-upgrade)
         | 
| 16 20 | 
             
              * [Updating CSS class names for v4](#updating-css-class-names-for-v4)
         | 
| 17 | 
            -
            - [Developing with  | 
| 21 | 
            +
            - [Developing with TailwindCSS](#developing-with-tailwindcss)
         | 
| 18 22 | 
             
              * [Configuration and commands](#configuration-and-commands)
         | 
| 19 23 | 
             
              * [Building for production](#building-for-production)
         | 
| 20 24 | 
             
              * [Building for testing](#building-for-testing)
         | 
| @@ -26,6 +30,7 @@ | |
| 26 30 | 
             
              * [Rails Engines support (Experimental)](#rails-engines-support-experimental)
         | 
| 27 31 | 
             
            - [Troubleshooting](#troubleshooting)
         | 
| 28 32 | 
             
              * [The `watch` command is hanging](#the-watch-command-is-hanging)
         | 
| 33 | 
            +
              * [The `build` command (or `bin/rails assets:precompile`) is hanging inside a docker container](#the-build-command-or-binrails-assetsprecompile-is-hanging-inside-a-docker-container)
         | 
| 29 34 | 
             
              * [Lost keystrokes or hanging when using terminal-based debugging tools (e.g. IRB, Pry, `ruby/debug`...etc.) with the Puma plugin](#lost-keystrokes-or-hanging-when-using-terminal-based-debugging-tools-eg-irb-pry-rubydebugetc-with-the-puma-plugin)
         | 
| 30 35 | 
             
              * [Running in a docker container exits prematurely](#running-in-a-docker-container-exits-prematurely)
         | 
| 31 36 | 
             
              * [Conflict with sassc-rails](#conflict-with-sassc-rails)
         | 
| @@ -43,7 +48,7 @@ With Rails 7 you can generate a new application preconfigured with Tailwind CSS | |
| 43 48 | 
             
            1. Run `./bin/bundle add tailwindcss-rails`
         | 
| 44 49 | 
             
            2. Run `./bin/rails tailwindcss:install`
         | 
| 45 50 |  | 
| 46 | 
            -
            This gem depends on the `tailwindcss-ruby` gem to install a working  | 
| 51 | 
            +
            This gem depends on the `tailwindcss-ruby` gem to install a working TailwindCSS CLI executable.
         | 
| 47 52 |  | 
| 48 53 | 
             
            ### Choosing a specific version of `tailwindcss`
         | 
| 49 54 |  | 
| @@ -238,7 +243,7 @@ Then, once you've run that successfully, clean up: | |
| 238 243 | 
             
              ```
         | 
| 239 244 | 
             
            - **Revert** the changes to `config/tailwind.config.js` so that paths are once again relative to the application root.
         | 
| 240 245 |  | 
| 241 | 
            -
            ## Developing with  | 
| 246 | 
            +
            ## Developing with TailwindCSS
         | 
| 242 247 |  | 
| 243 248 | 
             
            ### Configuration and commands
         | 
| 244 249 |  | 
| @@ -261,12 +266,13 @@ Synopsis: | |
| 261 266 | 
             
            - `bin/rails tailwindcss:install` - installs the configuration file, output file, and `Procfile.dev`
         | 
| 262 267 | 
             
            - `bin/rails tailwindcss:build` - generate the output file
         | 
| 263 268 | 
             
              - `bin/rails tailwindcss:build[debug]` - generate unminimized output
         | 
| 269 | 
            +
              - `bin/rails tailwindcss:build[verbose]` - emit the commands being run
         | 
| 264 270 | 
             
            - `bin/rails tailwindcss:watch` - start live rebuilds, generating output on file changes
         | 
| 265 271 | 
             
              - `bin/rails tailwindcss:watch[debug]` - generate unminimized output
         | 
| 266 | 
            -
              - `bin/rails tailwindcss:watch[poll]` - for systems without file system events
         | 
| 267 272 | 
             
              - `bin/rails tailwindcss:watch[always]` - for systems without TTY (e.g., some docker containers)
         | 
| 273 | 
            +
              - `bin/rails tailwindcss:watch[verbose]` - emit the commands being run
         | 
| 268 274 |  | 
| 269 | 
            -
            Note that you can combine task options, e.g. `rails tailwindcss:watch[debug, | 
| 275 | 
            +
            Note that you can combine task options, e.g. `rails tailwindcss:watch[debug,always]`.
         | 
| 270 276 |  | 
| 271 277 | 
             
            This gem also makes available a Puma plugin to manage a live rebuild process when you run `rails server` (see "Live Rebuild" section below).
         | 
| 272 278 |  | 
| @@ -311,14 +317,6 @@ and then running `rails server` (or just `puma`) will run the Tailwind watch pro | |
| 311 317 |  | 
| 312 318 | 
             
            This is a flexible command, which can be run with a few different options.
         | 
| 313 319 |  | 
| 314 | 
            -
            If you are running `rails tailwindcss:watch` on a system that doesn't fully support file system events, pass a `poll` argument to the task to instruct tailwindcss to instead use polling:
         | 
| 315 | 
            -
             | 
| 316 | 
            -
            ```
         | 
| 317 | 
            -
            rails tailwindcss:watch[poll]
         | 
| 318 | 
            -
            ```
         | 
| 319 | 
            -
             | 
| 320 | 
            -
            (If you use `bin/dev` then you should modify your `Procfile.dev` to use the `poll` option.)
         | 
| 321 | 
            -
             | 
| 322 320 | 
             
            If you are running `rails tailwindcss:watch` as a process in a Docker container, set `tty: true` in `docker-compose.yml` for the appropriate container to keep the watch process running.
         | 
| 323 321 |  | 
| 324 322 | 
             
            If you are running `rails tailwindcss:watch` in a docker container without a tty, pass the `always` argument to the task to instruct tailwindcss to keep the watcher alive even when `stdin` is closed: `rails tailwindcss:watch[always]`. If you use `bin/dev` then you should modify your `Procfile.dev`.
         | 
| @@ -354,35 +352,12 @@ Than use `@plugin` annotation in `app/assets/tailwind/application.css`: | |
| 354 352 |  | 
| 355 353 | 
             
            ### Using with PostCSS
         | 
| 356 354 |  | 
| 357 | 
            -
             | 
| 358 | 
            -
             | 
| 359 | 
            -
             | 
| 360 | 
            -
             | 
| 361 | 
            -
            ```js
         | 
| 362 | 
            -
            // postcss.config.js
         | 
| 363 | 
            -
            export default {
         | 
| 364 | 
            -
              plugins: {
         | 
| 365 | 
            -
                "@tailwindcss/postcss": {},
         | 
| 366 | 
            -
              },
         | 
| 367 | 
            -
            };
         | 
| 368 | 
            -
            ```
         | 
| 369 | 
            -
             | 
| 370 | 
            -
            ⚠ Note that PostCSS is a JavaScript tool with its own prerequisites! By default `tailwindcss-rails` does not require any JavaScript tooling, so in order to use PostCSS, a `package.json` with dependencies for your plugins and a package manager like `yarn` or `npm` is required, for example:
         | 
| 371 | 
            -
             | 
| 372 | 
            -
            ```json
         | 
| 373 | 
            -
            // package.json
         | 
| 374 | 
            -
            {
         | 
| 375 | 
            -
              "name": "my app",
         | 
| 376 | 
            -
              "private": true,
         | 
| 377 | 
            -
              "dependencies": {
         | 
| 378 | 
            -
                "@tailwindcss/postcss": "^4.0.0",
         | 
| 379 | 
            -
                "tailwindcss": "^4.0.0",
         | 
| 380 | 
            -
                "postcss": "^8.5.1"
         | 
| 381 | 
            -
              }
         | 
| 382 | 
            -
            }
         | 
| 383 | 
            -
            ```
         | 
| 355 | 
            +
            > [!NOTE]
         | 
| 356 | 
            +
            > Starting with Tailwind v4, the upstream CLI tool no longer supports PostCSS, and the `--postcss` option has
         | 
| 357 | 
            +
            been removed. If you want to leverage PostCSS with Tailwind 3, please reference the [tailwindcss-rails v3
         | 
| 358 | 
            +
            README](https://github.com/rails/tailwindcss-rails/tree/v3-stable?tab=readme-ov-file#using-with-postcss).
         | 
| 384 359 |  | 
| 385 | 
            -
             | 
| 360 | 
            +
            To leverage PostCSS with Tailwind 4, please reference [The official Tailwind 4 PostCSS docs](https://tailwindcss.com/docs/installation/using-postcss), and leverage [cssbundling-rails](https://github.com/rails/cssbundling-rails).
         | 
| 386 361 |  | 
| 387 362 | 
             
            ### Custom inputs or outputs
         | 
| 388 363 |  | 
| @@ -428,6 +403,10 @@ There is a [known issue](https://github.com/tailwindlabs/tailwindcss/issues/1724 | |
| 428 403 |  | 
| 429 404 | 
             
            Please try uninstalling `watchman` and try running the watch task again.
         | 
| 430 405 |  | 
| 406 | 
            +
            ### The `build` command (or `bin/rails assets:precompile`) is hanging inside a docker container
         | 
| 407 | 
            +
             | 
| 408 | 
            +
            Without a `WORKDIR`, tailwind may search the entire filesystem for files with CSS class names. So, please make sure your Dockerfile uses a `WORKDIR`.
         | 
| 409 | 
            +
             | 
| 431 410 | 
             
            ### Lost keystrokes or hanging when using terminal-based debugging tools (e.g. IRB, Pry, `ruby/debug`...etc.) with the Puma plugin
         | 
| 432 411 |  | 
| 433 412 | 
             
            We've addressed the issue and you can avoid the problem by upgrading `tailwindcss-rails` to [v2.4.1](https://github.com/rails/tailwindcss-rails/releases/tag/v2.4.1) or later versions.
         | 
| @@ -4,10 +4,9 @@ module TestUnit # :nodoc: | |
| 4 4 | 
             
              module Generators # :nodoc:
         | 
| 5 5 | 
             
                class ScaffoldGenerator < Base # :nodoc:
         | 
| 6 6 | 
             
                  def fix_system_test
         | 
| 7 | 
            -
                     | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
                                "accept_confirm { \\1 }"
         | 
| 7 | 
            +
                    system_test_file = File.join("test/system", class_path, "#{file_name.pluralize}_test.rb")
         | 
| 8 | 
            +
                    if turbo_defined? && options[:system_tests] && File.exist?(system_test_file)
         | 
| 9 | 
            +
                      gsub_file(system_test_file, /(click_on.*Destroy this.*)$/, "accept_confirm { \\1 }")
         | 
| 11 10 | 
             
                    end
         | 
| 12 11 | 
             
                  end
         | 
| 13 12 |  | 
| @@ -13,14 +13,18 @@ Puma::Plugin.create do | |
| 13 13 | 
             
                  # If we use system(*command) instead, IRB and Debug can't read from $stdin
         | 
| 14 14 | 
             
                  # correctly bacause some keystrokes will be taken by watch_command.
         | 
| 15 15 | 
             
                  begin
         | 
| 16 | 
            -
                    IO.popen( | 
| 16 | 
            +
                    IO.popen(['bin/rails', 'tailwindcss:watch'], 'r+') do |io|
         | 
| 17 17 | 
             
                      IO.copy_stream(io, $stdout)
         | 
| 18 18 | 
             
                    end
         | 
| 19 19 | 
             
                  rescue Interrupt
         | 
| 20 20 | 
             
                  end
         | 
| 21 21 | 
             
                end
         | 
| 22 22 |  | 
| 23 | 
            -
                 | 
| 23 | 
            +
                if Gem::Version.new(Puma::Const::PUMA_VERSION) >= Gem::Version.new("7")
         | 
| 24 | 
            +
                  launcher.events.after_stopped { stop_tailwind }
         | 
| 25 | 
            +
                else
         | 
| 26 | 
            +
                  launcher.events.on_stopped { stop_tailwind }
         | 
| 27 | 
            +
                end
         | 
| 24 28 |  | 
| 25 29 | 
             
                in_background do
         | 
| 26 30 | 
             
                  monitor_tailwind
         | 
    
        data/lib/tailwindcss/commands.rb
    CHANGED
    
    | @@ -21,11 +21,10 @@ module Tailwindcss | |
| 21 21 | 
             
                    command
         | 
| 22 22 | 
             
                  end
         | 
| 23 23 |  | 
| 24 | 
            -
                  def watch_command(always: false,  | 
| 24 | 
            +
                  def watch_command(always: false, **kwargs)
         | 
| 25 25 | 
             
                    compile_command(**kwargs).tap do |command|
         | 
| 26 26 | 
             
                      command << "-w"
         | 
| 27 27 | 
             
                      command << "always" if always
         | 
| 28 | 
            -
                      command << "-p" if poll
         | 
| 29 28 | 
             
                    end
         | 
| 30 29 | 
             
                  end
         | 
| 31 30 |  | 
    
        data/lib/tailwindcss/engines.rb
    CHANGED
    
    
    
        data/lib/tailwindcss/version.rb
    CHANGED
    
    
    
        data/lib/tasks/build.rake
    CHANGED
    
    | @@ -14,11 +14,10 @@ namespace :tailwindcss do | |
| 14 14 | 
             
              desc "Watch and build your Tailwind CSS on file changes"
         | 
| 15 15 | 
             
              task watch: [:environment, :engines] do |_, args|
         | 
| 16 16 | 
             
                debug = args.extras.include?("debug")
         | 
| 17 | 
            -
                poll = args.extras.include?("poll")
         | 
| 18 17 | 
             
                always = args.extras.include?("always")
         | 
| 19 18 | 
             
                verbose = args.extras.include?("verbose")
         | 
| 20 19 |  | 
| 21 | 
            -
                command = Tailwindcss::Commands.watch_command(always: always, debug: debug | 
| 20 | 
            +
                command = Tailwindcss::Commands.watch_command(always: always, debug: debug)
         | 
| 22 21 | 
             
                env = Tailwindcss::Commands.command_env(verbose: verbose)
         | 
| 23 22 | 
             
                puts "Running: #{Shellwords.join(command)}" if verbose
         | 
| 24 23 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: tailwindcss-rails
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 4. | 
| 4 | 
            +
              version: 4.4.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - David Heinemeier Hansson
         | 
| @@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 111 111 | 
             
                - !ruby/object:Gem::Version
         | 
| 112 112 | 
             
                  version: 3.2.0
         | 
| 113 113 | 
             
            requirements: []
         | 
| 114 | 
            -
            rubygems_version: 3.6. | 
| 114 | 
            +
            rubygems_version: 3.6.9
         | 
| 115 115 | 
             
            specification_version: 4
         | 
| 116 116 | 
             
            summary: Integrate Tailwind CSS with the asset pipeline in Rails.
         | 
| 117 117 | 
             
            test_files: []
         |