tailwindcss-rails 4.3.0.rc2 → 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: []
         
     |