From ca7812a355320e08c63c04c1a0a5cc97a0528783 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 19 Jan 2025 14:45:08 -0500 Subject: [PATCH 01/88] feat: support running the puma plugin in a bare puma process that is, not in `rails server`. Closes #458 --- CHANGELOG.md | 5 +++++ README.md | 2 +- lib/puma/plugin/tailwindcss.rb | 8 ++++++-- lib/tailwindcss/commands.rb | 10 ++++++---- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f07f0c4..00a78f83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ ## next / unreleased +## v3.3.0 / unreleased + +* Add support for running the puma plugin outside of `rails server`. (#458) @flavorjones + + ## v3.2.0 / 2025-01-10 * Improve the scaffold views by making positions, padding, and sizes more consistent, add titles to all pages, add hover states and semantic colors to buttons and links, and change border and focus colors on fields with errors. (#452) @patriciomacadden diff --git a/README.md b/README.md index 60b2f27e..e81a5474 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,7 @@ This gem ships with a Puma plugin. To use it, add this line to your `puma.rb` co plugin :tailwindcss if ENV.fetch("RAILS_ENV", "development") == "development" ``` -and then running `rails server` will run the Tailwind watch process in the background +and then running `rails server` (or just `puma`) will run the Tailwind watch process in the background. #### Run `rails tailwindcss:watch` diff --git a/lib/puma/plugin/tailwindcss.rb b/lib/puma/plugin/tailwindcss.rb index e614d62a..4624d7e8 100644 --- a/lib/puma/plugin/tailwindcss.rb +++ b/lib/puma/plugin/tailwindcss.rb @@ -1,4 +1,5 @@ require "puma/plugin" +require "tailwindcss/commands" Puma::Plugin.create do attr_reader :puma_pid, :tailwind_pid, :log_writer @@ -11,8 +12,11 @@ def start(launcher) # Using IO.popen(command, 'r+') will avoid watch_command read from $stdin. # If we use system(*command) instead, IRB and Debug can't read from $stdin # correctly bacause some keystrokes will be taken by watch_command. - IO.popen(Tailwindcss::Commands.watch_command, 'r+') do |io| - IO.copy_stream(io, $stdout) + begin + IO.popen(Tailwindcss::Commands.watch_command, 'r+') do |io| + IO.copy_stream(io, $stdout) + end + rescue Interrupt end end diff --git a/lib/tailwindcss/commands.rb b/lib/tailwindcss/commands.rb index 26c5178a..40d983a6 100644 --- a/lib/tailwindcss/commands.rb +++ b/lib/tailwindcss/commands.rb @@ -4,16 +4,18 @@ module Tailwindcss module Commands class << self def compile_command(debug: false, **kwargs) + rails_root = defined?(Rails) ? Rails.root : Pathname.new(Dir.pwd) + command = [ Tailwindcss::Ruby.executable(**kwargs), - "-i", Rails.root.join("app/assets/stylesheets/application.tailwind.css").to_s, - "-o", Rails.root.join("app/assets/builds/tailwind.css").to_s, - "-c", Rails.root.join("config/tailwind.config.js").to_s, + "-i", rails_root.join("app/assets/stylesheets/application.tailwind.css").to_s, + "-o", rails_root.join("app/assets/builds/tailwind.css").to_s, + "-c", rails_root.join("config/tailwind.config.js").to_s, ] command << "--minify" unless (debug || rails_css_compressor?) - postcss_path = Rails.root.join("config/postcss.config.js") + postcss_path = rails_root.join("config/postcss.config.js") command += ["--postcss", postcss_path.to_s] if File.exist?(postcss_path) command From 968ba5c1d6aa6ac4f91dd7d6f350b0d95fcaf4db Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 19 Jan 2025 15:11:00 -0500 Subject: [PATCH 02/88] version bump to v3.3.0 --- CHANGELOG.md | 4 ++-- lib/tailwindcss/version.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00a78f83..39f9bc25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ ## next / unreleased -## v3.3.0 / unreleased +## v3.3.0 / 2025-01-19 -* Add support for running the puma plugin outside of `rails server`. (#458) @flavorjones +* Add support for using the puma plugin in a standalone puma process (outside of `rails server`). (#458) @flavorjones ## v3.2.0 / 2025-01-10 diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index 9e5b6e3d..5c301936 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "3.2.0" + VERSION = "3.3.0" end From 4196564a4f77546a654828166195b6f7ed05991d Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 19 Jan 2025 15:13:45 -0500 Subject: [PATCH 03/88] dep: update gemfile.lock --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8c603c6d..42142bf2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - tailwindcss-rails (3.2.0) + tailwindcss-rails (3.3.0) railties (>= 7.0.0) tailwindcss-ruby From 573855951ca13ebf5348372858ae0505b8a4f2cb Mon Sep 17 00:00:00 2001 From: Patricio Mac Adden Date: Mon, 20 Jan 2025 12:14:05 -0300 Subject: [PATCH 04/88] improve partial: correct use of tags + attachment links styling --- .../tailwindcss/scaffold/templates/partial.html.erb.tt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt index 88dc3eda..ed89fc34 100644 --- a/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt @@ -1,16 +1,16 @@ -
+
<% attributes.reject(&:password_digest?).each do |attribute| -%> -

+

<%= attribute.human_name %>: <% if attribute.attachment? -%> - <%%= link_to <%= singular_name %>.<%= attribute.column_name %>.filename, <%= singular_name %>.<%= attribute.column_name %> if <%= singular_name %>.<%= attribute.column_name %>.attached? %> + <%%= link_to <%= singular_name %>.<%= attribute.column_name %>.filename, <%= singular_name %>.<%= attribute.column_name %>, class: "text-gray-700 underline hover:no-underline" if <%= singular_name %>.<%= attribute.column_name %>.attached? %> <% elsif attribute.attachments? -%> <%% <%= singular_name %>.<%= attribute.column_name %>.each do |<%= attribute.singular_name %>| %> -
<%%= link_to <%= attribute.singular_name %>.filename, <%= attribute.singular_name %> %>
+
<%%= link_to <%= attribute.singular_name %>.filename, <%= attribute.singular_name %>, class: "text-gray-700 underline hover:no-underline" %>
<%% end %> <% else -%> <%%= <%= singular_name %>.<%= attribute.column_name %> %> <% end -%> -

+
<% end -%>
From 731d5c42e018215d70461012b60bbcdf29f0fd2c Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Tue, 21 Jan 2025 12:29:35 -0500 Subject: [PATCH 05/88] dev: bundle update --- Gemfile.lock | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 42142bf2..cd3b9354 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -51,7 +51,7 @@ GEM benchmark (0.4.0) bigdecimal (3.1.9) builder (3.3.0) - concurrent-ruby (1.3.4) + concurrent-ruby (1.3.5) connection_pool (2.5.0) crass (1.0.6) date (3.4.1) @@ -62,10 +62,11 @@ GEM erubi (1.13.1) globalid (1.2.1) activesupport (>= 6.1) - i18n (1.14.6) + i18n (1.14.7) concurrent-ruby (~> 1.0) io-console (0.8.0) - irb (1.14.3) + irb (1.15.0) + pp (>= 0.6.0) rdoc (>= 4.0.0) reline (>= 0.4.2) logger (1.6.5) @@ -88,20 +89,24 @@ GEM net-protocol (0.2.2) timeout net-smtp (0.5.0) - nokogiri (1.18.1) + net-protocol + nokogiri (1.18.2) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.18.1-aarch64-linux-gnu) + nokogiri (1.18.2-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.1-arm-linux-gnu) + nokogiri (1.18.2-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.18.1-arm64-darwin) + nokogiri (1.18.2-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.1-x86_64-darwin) + nokogiri (1.18.2-x86_64-darwin) racc (~> 1.4) - nokogiri (1.18.1-x86_64-linux-gnu) + nokogiri (1.18.2-x86_64-linux-gnu) racc (~> 1.4) - psych (5.2.2) + pp (0.6.2) + prettyprint + prettyprint (0.2.0) + psych (5.2.3) date stringio racc (1.8.1) @@ -129,7 +134,7 @@ GEM thor (~> 1.0, >= 1.2.2) zeitwerk (~> 2.6) rake (13.2.1) - rdoc (6.10.0) + rdoc (6.11.0) psych (>= 4.0.0) reline (0.6.0) io-console (~> 0.5) From 2895fc97a87ed7b45bb7bf61664ba8ab9cab167a Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 23 Jan 2025 09:19:08 -0500 Subject: [PATCH 06/88] dep: bump tailwindcss-ruby to ~> 4.0 --- .github/workflows/ci.yml | 3 --- .github/workflows/upstream.yml | 2 -- Gemfile.lock | 13 ++++++------- tailwindcss-rails.gemspec | 2 +- test/integration/user_journey_test.sh | 1 - 5 files changed, 7 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3889c27c..07fb8285 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,10 +37,7 @@ jobs: fail-fast: false matrix: plat: ["ubuntu", "windows", "macos"] - tailwind: ["--version=~>3.4.14", "--version=~>4.0.0.alpha.27"] runs-on: ${{matrix.plat}}-latest - env: - TAILWINDCSSOPTS: ${{ matrix.tailwind }} steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml index 5c213e6e..e491a957 100644 --- a/.github/workflows/upstream.yml +++ b/.github/workflows/upstream.yml @@ -42,10 +42,8 @@ jobs: matrix: plat: ["ubuntu"] ref: ["7-2-stable", "8-0-stable", "main"] - tailwind: ["--version=~>3.4.14", "--version=~>4.0.0.alpha.27"] env: RAILSOPTS: --git=https://github.com/rails/rails --ref=${{ matrix.ref }} - TAILWINDCSSOPTS: ${{ matrix.tailwind }} steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 diff --git a/Gemfile.lock b/Gemfile.lock index cd3b9354..c671e3a8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,7 +3,7 @@ PATH specs: tailwindcss-rails (3.3.0) railties (>= 7.0.0) - tailwindcss-ruby + tailwindcss-ruby (~> 4.0) GEM remote: https://rubygems.org/ @@ -140,12 +140,11 @@ GEM io-console (~> 0.5) securerandom (0.4.1) stringio (3.1.2) - tailwindcss-ruby (3.4.17) - tailwindcss-ruby (3.4.17-aarch64-linux) - tailwindcss-ruby (3.4.17-arm-linux) - tailwindcss-ruby (3.4.17-arm64-darwin) - tailwindcss-ruby (3.4.17-x86_64-darwin) - tailwindcss-ruby (3.4.17-x86_64-linux) + tailwindcss-ruby (4.0.0) + tailwindcss-ruby (4.0.0-aarch64-linux-gnu) + tailwindcss-ruby (4.0.0-arm64-darwin) + tailwindcss-ruby (4.0.0-x86_64-darwin) + tailwindcss-ruby (4.0.0-x86_64-linux-gnu) thor (1.3.2) timeout (0.4.3) tzinfo (2.0.6) diff --git a/tailwindcss-rails.gemspec b/tailwindcss-rails.gemspec index 8d893029..0b31c4a8 100644 --- a/tailwindcss-rails.gemspec +++ b/tailwindcss-rails.gemspec @@ -19,5 +19,5 @@ Gem::Specification.new do |spec| spec.files = Dir["{app,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.md"] spec.add_dependency "railties", ">= 7.0.0" - spec.add_dependency "tailwindcss-ruby" + spec.add_dependency "tailwindcss-ruby", "~> 4.0" end diff --git a/test/integration/user_journey_test.sh b/test/integration/user_journey_test.sh index 14f4597a..b8f6d961 100755 --- a/test/integration/user_journey_test.sh +++ b/test/integration/user_journey_test.sh @@ -27,7 +27,6 @@ bundle add rails --skip-install ${RAILSOPTS:-} # use the tailwindcss-rails under test bundle add tailwindcss-rails --skip-install --path="../.." -bundle add tailwindcss-ruby --skip-install ${TAILWINDCSSOPTS:-} bundle install bundle show --paths bundle binstubs --all From 768594ad954c41d844c534d90507aca4b6a6dc00 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 23 Jan 2025 10:04:59 -0500 Subject: [PATCH 07/88] Remove tailwind.config.js from the generator Tailwind v4 doesn't need a config file. --- README.md | 6 +----- lib/install/application.tailwind.css | 14 +------------- lib/install/tailwind.config.js | 22 ---------------------- lib/install/tailwindcss.rb | 5 ----- lib/tailwindcss/commands.rb | 1 - test/integration/user_journey_test.sh | 21 +++++---------------- test/lib/tailwindcss/commands_test.rb | 1 - 7 files changed, 7 insertions(+), 63 deletions(-) delete mode 100644 lib/install/tailwind.config.js diff --git a/README.md b/README.md index e81a5474..5b2d11c6 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,9 @@ You can also use a local (npm-based) installation if you prefer, please go to ht ### Configuration and commands -#### Configuration file: `config/tailwind.config.js` - -You can customize the Tailwind build through the `config/tailwind.config.js` file, just like you would if Tailwind was running in a traditional node installation. All the first-party plugins are supported. - #### Input file: `app/assets/stylesheets/application.tailwind.css` -The installer will generate a Tailwind input file in `app/assets/stylesheets/application.tailwind.css`. This is where you import the plugins you want to use, and where you can setup your custom `@apply` rules. +The installer will generate a Tailwind input file in `app/assets/stylesheets/application.tailwind.css`. This is where you import the plugins you want to use and where you can setup your custom `@apply` rules. #### Output file: `app/assets/builds/tailwind.css` diff --git a/lib/install/application.tailwind.css b/lib/install/application.tailwind.css index 8666d2f3..f1d8c73c 100644 --- a/lib/install/application.tailwind.css +++ b/lib/install/application.tailwind.css @@ -1,13 +1 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -/* - -@layer components { - .btn-primary { - @apply py-2 px-4 bg-blue-200; - } -} - -*/ +@import "tailwindcss"; diff --git a/lib/install/tailwind.config.js b/lib/install/tailwind.config.js deleted file mode 100644 index c3deef14..00000000 --- a/lib/install/tailwind.config.js +++ /dev/null @@ -1,22 +0,0 @@ -const defaultTheme = require('tailwindcss/defaultTheme') - -module.exports = { - content: [ - './public/*.html', - './app/helpers/**/*.rb', - './app/javascript/**/*.js', - './app/views/**/*.{erb,haml,html,slim}' - ], - theme: { - extend: { - fontFamily: { - sans: ['Inter var', ...defaultTheme.fontFamily.sans], - }, - }, - }, - plugins: [ - // require('@tailwindcss/forms'), - // require('@tailwindcss/typography'), - // require('@tailwindcss/container-queries'), - ] -} diff --git a/lib/install/tailwindcss.rb b/lib/install/tailwindcss.rb index 2c2ba50c..b48cb398 100644 --- a/lib/install/tailwindcss.rb +++ b/lib/install/tailwindcss.rb @@ -28,11 +28,6 @@ append_to_file(".gitignore", %(\n/app/assets/builds/*\n!/app/assets/builds/.keep\n)) end -unless Rails.root.join("config/tailwind.config.js").exist? - say "Add default config/tailwindcss.config.js" - copy_file "#{__dir__}/tailwind.config.js", "config/tailwind.config.js" -end - unless Rails.root.join("app/assets/stylesheets/application.tailwind.css").exist? say "Add default app/assets/stylesheets/application.tailwind.css" copy_file "#{__dir__}/application.tailwind.css", "app/assets/stylesheets/application.tailwind.css" diff --git a/lib/tailwindcss/commands.rb b/lib/tailwindcss/commands.rb index 40d983a6..ce08bb38 100644 --- a/lib/tailwindcss/commands.rb +++ b/lib/tailwindcss/commands.rb @@ -10,7 +10,6 @@ def compile_command(debug: false, **kwargs) Tailwindcss::Ruby.executable(**kwargs), "-i", rails_root.join("app/assets/stylesheets/application.tailwind.css").to_s, "-o", rails_root.join("app/assets/builds/tailwind.css").to_s, - "-c", rails_root.join("config/tailwind.config.js").to_s, ] command << "--minify" unless (debug || rails_css_compressor?) diff --git a/test/integration/user_journey_test.sh b/test/integration/user_journey_test.sh index b8f6d961..985b72c4 100755 --- a/test/integration/user_journey_test.sh +++ b/test/integration/user_journey_test.sh @@ -9,7 +9,7 @@ set -eux rm -f Gemfile.lock bundle remove actionmailer bundle add rails --skip-install ${RAILSOPTS:-} -bundle install +bundle install --prefer-local # do our work a directory with spaces in the name (#176, #184) rm -rf "My Workspace" @@ -27,16 +27,10 @@ bundle add rails --skip-install ${RAILSOPTS:-} # use the tailwindcss-rails under test bundle add tailwindcss-rails --skip-install --path="../.." -bundle install +bundle install --prefer-local bundle show --paths bundle binstubs --all -if bundle show | fgrep tailwindcss-ruby | fgrep -q "(4." ; then - TAILWIND4=1 -else - TAILWIND4=0 -fi - # install tailwindcss bin/rails tailwindcss:install @@ -50,12 +44,9 @@ task :still_here do end EOF -if [[ $TAILWIND4 = 1 ]] ; then - cat > app/assets/stylesheets/application.tailwind.css <> app/assets/stylesheets/application.tailwind.css < Date: Thu, 23 Jan 2025 10:30:16 -0500 Subject: [PATCH 08/88] Remove remaining traces of the Inter font. Note: we will need to smooth this out in an upgrade step. --- README.md | 2 +- app/assets/stylesheets/inter-font.css | 194 -------------------------- lib/install/tailwindcss.rb | 4 +- lib/tailwindcss/engine.rb | 4 - 4 files changed, 3 insertions(+), 201 deletions(-) delete mode 100644 app/assets/stylesheets/inter-font.css diff --git a/README.md b/README.md index 5b2d11c6..c80bae4d 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ The installer will generate a Tailwind input file in `app/assets/stylesheets/app #### Output file: `app/assets/builds/tailwind.css` -When you run `rails tailwindcss:build`, the input file will be used to generate the output in `app/assets/builds/tailwind.css`. That's the output CSS that you'll include in your app (the installer automatically configures this, alongside the Inter font as well). +When you run `rails tailwindcss:build`, the input file will be used to generate the output in `app/assets/builds/tailwind.css`. That's the output CSS that you'll include in your app. #### Commands diff --git a/app/assets/stylesheets/inter-font.css b/app/assets/stylesheets/inter-font.css deleted file mode 100644 index ddeabaf5..00000000 --- a/app/assets/stylesheets/inter-font.css +++ /dev/null @@ -1,194 +0,0 @@ -/* - *= link_directory ../fonts - */ - -@font-face { - font-family: 'Inter var'; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url('Inter-italic.extra.var.woff2') format('woff2'); - unicode-range: U+E000,U+E002-E081,U+E093-E097,U+E0A5-E0E7,U+E0F3-E11D,U+E11E-E165,U+EE01,U+F6C3; - font-named-instance: 'Italic'; -} -/* alternates */ -@font-face { - font-family: 'Inter var'; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url('Inter-italic.alternates.var.woff2') format('woff2'); - unicode-range: U+E000,U+E002-E081,U+E093-E097,U+E0A5-E0E7,U+E0F3-E11D,U+E11E-E165,U+EE01,U+F6C3; - font-named-instance: 'Italic'; -} -/* symbols */ -@font-face { - font-family: 'Inter var'; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url('Inter-italic.symbols.var.woff2') format('woff2'); - unicode-range: U+20DD-20DF,U+2190-219A,U+21A9-21AB,U+21B0-21B2,U+21B3-21B6,U+21BA-21BC,U+21D0,U+21D2,U+21D4,U+21DE-21E0,U+21E4-21E6,U+21E7,U+21EA,U+2303,U+2305,U+2318,U+2325-2328,U+232B,U+2380,U+2387,U+238B,U+23CE-23D0,U+2460-2469,U+24B6-24D0,U+24EA,U+25A0-25A3,U+25B2-25B4,U+25B6-25B8,U+25BA-25BE,U+25C0-25C2,U+25C4-25C8,U+25CB,U+25CF,U+25EF,U+2600,U+2605-2607,U+263C,U+2661,U+2665,U+26A0,U+2713,U+2717,U+2756,U+2764,U+2780-2789,U+27F5-27FB,U+2B06,U+2B12-2B14,U+2B1C,U+E000,U+E12B-E164,U+1F130-1F14A,U+1F850,U+1F852; - font-named-instance: 'Italic'; -} - -/* extra */ -@font-face { - font-family: 'Inter var'; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url('Inter-italic.extra.var.woff2') format('woff2'); - unicode-range: U+E000,U+E002-E081,U+E093-E097,U+E0A5-E0E7,U+E0F3-E11D,U+E11E-E165,U+EE01,U+F6C3; - font-named-instance: 'Italic'; -} -/* alternates */ -@font-face { - font-family: 'Inter var'; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url('Inter-italic.alternates.var.woff2') format('woff2'); - unicode-range: U+E000,U+E002-E081,U+E093-E097,U+E0A5-E0E7,U+E0F3-E11D,U+E11E-E165,U+EE01,U+F6C3; - font-named-instance: 'Italic'; -} -/* symbols */ -@font-face { - font-family: 'Inter var'; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url('Inter-italic.symbols.var.woff2') format('woff2'); - unicode-range: U+20DD-20DF,U+2190-219A,U+21A9-21AB,U+21B0-21B2,U+21B3-21B6,U+21BA-21BC,U+21D0,U+21D2,U+21D4,U+21DE-21E0,U+21E4-21E6,U+21E7,U+21EA,U+2303,U+2305,U+2318,U+2325-2328,U+232B,U+2380,U+2387,U+238B,U+23CE-23D0,U+2460-2469,U+24B6-24D0,U+24EA,U+25A0-25A3,U+25B2-25B4,U+25B6-25B8,U+25BA-25BE,U+25C0-25C2,U+25C4-25C8,U+25CB,U+25CF,U+25EF,U+2600,U+2605-2607,U+263C,U+2661,U+2665,U+26A0,U+2713,U+2717,U+2756,U+2764,U+2780-2789,U+27F5-27FB,U+2B06,U+2B12-2B14,U+2B1C,U+E000,U+E12B-E164,U+1F130-1F14A,U+1F850,U+1F852; - font-named-instance: 'Italic'; -} -/* cyrillic */ -@font-face { - font-family: 'Inter var'; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url('Inter-italic.cyrillic.var.woff2') format('woff2'); - unicode-range: U+0400-049E,U+04A0-0500,U+052F,U+20B4,U+2116,U+2DFF,U+A69F; - font-named-instance: 'Italic'; -} -/* greek */ -@font-face { - font-family: 'Inter var'; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url('Inter-italic.greek.var.woff2') format('woff2'); - unicode-range: U+0370-0378,U+037A-0380,U+0384-038B,U+038C,U+038E-03A2,U+03A3-03E2,U+03F0-0400,U+1F00-1F16,U+1F18-1F1E,U+1F20-1F46,U+1F48-1F4E,U+1F50-1F58,U+1F59,U+1F5B,U+1F5D,U+1F5F-1F7E,U+1F80-1FB5,U+1FB6-1FC5,U+1FC6-1FD4,U+1FD6-1FDC,U+1FDD-1FF0,U+1FF2-1FF5,U+1FF6-1FFF; - font-named-instance: 'Italic'; -} -/* vietnamese */ -@font-face { - font-family: 'Inter var'; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url('Inter-italic.vietnamese.var.woff2') format('woff2'); - unicode-range: U+0102-0104,U+0110-0112,U+0128-012A,U+0168-016A,U+01A0-01A2,U+01AF-01B1,U+1EA0-1EFA,U+20AB; - font-named-instance: 'Italic'; -} -/* latin-ext */ -@font-face { - font-family: 'Inter var'; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url('Inter-italic.latin-ext.var.woff2') format('woff2'); - unicode-range: U+0100-0149,U+014A-01C4,U+01C5-0250,U+0259,U+1E00-1F00,U+2020,U+20A0-20AC,U+20AD-20C0,U+2113,U+2C7C,U+2C7F,U+A7FF; - font-named-instance: 'Italic'; -} -/* latin */ -@font-face { - font-family: 'Inter var'; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url('Inter-italic.latin.var.woff2') format('woff2'); - unicode-range: U+0000-007F,U+00A0-0100,U+0131,U+0152-0154,U+02BB-02BD,U+02C6,U+02DA,U+02DC,U+2000-200C,U+2010-2028,U+202F-2060,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+FEFF; - font-named-instance: 'Italic'; -} -/* extra */ -@font-face { - font-family: 'Inter var'; - font-style: normal; - font-weight: 100 900; - font-display: swap; - src: url('Inter-roman.extra.var.woff2') format('woff2'); - unicode-range: U+E000,U+E002-E081,U+E093-E097,U+E0A5-E0E7,U+E0F3-E11D,U+E11E-E165,U+EE01,U+F6C3; - font-named-instance: 'Regular'; -} -/* alternates */ -@font-face { - font-family: 'Inter var'; - font-style: normal; - font-weight: 100 900; - font-display: swap; - src: url('Inter-roman.alternates.var.woff2') format('woff2'); - unicode-range: U+E000,U+E002-E081,U+E093-E097,U+E0A5-E0E7,U+E0F3-E11D,U+E11E-E165,U+EE01,U+F6C3; - font-named-instance: 'Regular'; -} -/* symbols */ -@font-face { - font-family: 'Inter var'; - font-style: normal; - font-weight: 100 900; - font-display: swap; - src: url('Inter-roman.symbols.var.woff2') format('woff2'); - unicode-range: U+20DD-20DF,U+2190-219A,U+21A9-21AB,U+21B0-21B2,U+21B3-21B6,U+21BA-21BC,U+21D0,U+21D2,U+21D4,U+21DE-21E0,U+21E4-21E6,U+21E7,U+21EA,U+2303,U+2305,U+2318,U+2325-2328,U+232B,U+2380,U+2387,U+238B,U+23CE-23D0,U+2460-2469,U+24B6-24D0,U+24EA,U+25A0-25A3,U+25B2-25B4,U+25B6-25B8,U+25BA-25BE,U+25C0-25C2,U+25C4-25C8,U+25CB,U+25CF,U+25EF,U+2600,U+2605-2607,U+263C,U+2661,U+2665,U+26A0,U+2713,U+2717,U+2756,U+2764,U+2780-2789,U+27F5-27FB,U+2B06,U+2B12-2B14,U+2B1C,U+E000,U+E12B-E164,U+1F130-1F14A,U+1F850,U+1F852; - font-named-instance: 'Regular'; -} -/* cyrillic */ -@font-face { - font-family: 'Inter var'; - font-style: normal; - font-weight: 100 900; - font-display: swap; - src: url('Inter-roman.cyrillic.var.woff2') format('woff2'); - unicode-range: U+0400-049E,U+04A0-0500,U+052F,U+20B4,U+2116,U+2DFF,U+A69F; - font-named-instance: 'Regular'; -} -/* greek */ -@font-face { - font-family: 'Inter var'; - font-style: normal; - font-weight: 100 900; - font-display: swap; - src: url('Inter-roman.greek.var.woff2') format('woff2'); - unicode-range: U+0370-0378,U+037A-0380,U+0384-038B,U+038C,U+038E-03A2,U+03A3-03E2,U+03F0-0400,U+1F00-1F16,U+1F18-1F1E,U+1F20-1F46,U+1F48-1F4E,U+1F50-1F58,U+1F59,U+1F5B,U+1F5D,U+1F5F-1F7E,U+1F80-1FB5,U+1FB6-1FC5,U+1FC6-1FD4,U+1FD6-1FDC,U+1FDD-1FF0,U+1FF2-1FF5,U+1FF6-1FFF; - font-named-instance: 'Regular'; -} -/* vietnamese */ -@font-face { - font-family: 'Inter var'; - font-style: normal; - font-weight: 100 900; - font-display: swap; - src: url('Inter-roman.vietnamese.var.woff2') format('woff2'); - unicode-range: U+0102-0104,U+0110-0112,U+0128-012A,U+0168-016A,U+01A0-01A2,U+01AF-01B1,U+1EA0-1EFA,U+20AB; - font-named-instance: 'Regular'; -} -/* latin-ext */ -@font-face { - font-family: 'Inter var'; - font-style: normal; - font-weight: 100 900; - font-display: swap; - src: url('Inter-roman.latin-ext.var.woff2') format('woff2'); - unicode-range: U+0100-0149,U+014A-01C4,U+01C5-0250,U+0259,U+1E00-1F00,U+2020,U+20A0-20AC,U+20AD-20C0,U+2113,U+2C7C,U+2C7F,U+A7FF; - font-named-instance: 'Regular'; -} -/* latin */ -@font-face { - font-family: 'Inter var'; - font-style: normal; - font-weight: 100 900; - font-display: swap; - src: url('Inter-roman.latin.var.woff2') format('woff2'); - unicode-range: U+0000-007F,U+00A0-0100,U+0131,U+0152-0154,U+02BB-02BD,U+02C6,U+02DA,U+02DC,U+2000-200C,U+2010-2028,U+202F-2060,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+FEFF; - font-named-instance: 'Regular'; -} \ No newline at end of file diff --git a/lib/install/tailwindcss.rb b/lib/install/tailwindcss.rb index b48cb398..61fe3fac 100644 --- a/lib/install/tailwindcss.rb +++ b/lib/install/tailwindcss.rb @@ -4,7 +4,7 @@ if APPLICATION_LAYOUT_PATH.exist? say "Add Tailwindcss include tags and container element in application layout" insert_into_file APPLICATION_LAYOUT_PATH.to_s, <<~ERB.indent(4), before: /^\s*<%= stylesheet_link_tag/ - <%= stylesheet_link_tag "tailwind", "inter-font", "data-turbo-track": "reload" %> + <%= stylesheet_link_tag "tailwind", "data-turbo-track": "reload" %> ERB if File.open(APPLICATION_LAYOUT_PATH).read =~ /\n\s*<%= yield %>\n\s*<\/body>/ @@ -13,7 +13,7 @@ end else say "Default application.html.erb is missing!", :red - say %( Add <%= stylesheet_link_tag "tailwind", "inter-font", "data-turbo-track": "reload" %> within the tag in your custom layout.) + say %( Add <%= stylesheet_link_tag "tailwind", "data-turbo-track": "reload" %> within the tag in your custom layout.) end say "Build into app/assets/builds" diff --git a/lib/tailwindcss/engine.rb b/lib/tailwindcss/engine.rb index 4b9b9fdc..080416c4 100644 --- a/lib/tailwindcss/engine.rb +++ b/lib/tailwindcss/engine.rb @@ -2,10 +2,6 @@ module Tailwindcss class Engine < ::Rails::Engine - initializer "tailwindcss.assets" do - Rails.application.config.assets.precompile += %w( inter-font.css ) - end - initializer "tailwindcss.disable_generator_stylesheets" do Rails.application.config.generators.stylesheets = false end From 67a17e007acc608a37bdd21000544a0b114484c3 Mon Sep 17 00:00:00 2001 From: Eric Gusmao Date: Thu, 23 Jan 2025 12:48:55 -0300 Subject: [PATCH 09/88] Update generators utility classes to tailwind v4 --- .../templates/app/views/passwords/edit.html.erb | 4 ++-- .../templates/app/views/passwords/new.html.erb | 2 +- .../templates/app/views/sessions/new.html.erb | 4 ++-- .../tailwindcss/scaffold/templates/_form.html.erb.tt | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb b/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb index 707bbe5c..5c989810 100644 --- a/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb +++ b/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb @@ -7,11 +7,11 @@ <%%= form_with url: password_path(params[:token]), method: :put, class: "contents" do |form| %>
- <%%= form.password_field :password, required: true, autocomplete: "new-password", placeholder: "Enter new password", maxlength: 72, class: "block shadow rounded-md border border-gray-400 outline-none focus:outline-blue-600 px-3 py-2 mt-2 w-full" %> + <%%= form.password_field :password, required: true, autocomplete: "new-password", placeholder: "Enter new password", maxlength: 72, class: "block shadow-sm rounded-md border border-gray-400 outline-hidden focus:outline-blue-600 px-3 py-2 mt-2 w-full" %>
- <%%= form.password_field :password_confirmation, required: true, autocomplete: "new-password", placeholder: "Repeat new password", maxlength: 72, class: "block shadow rounded-md border border-gray-400 outline-none focus:outline-blue-600 px-3 py-2 mt-2 w-full" %> + <%%= form.password_field :password_confirmation, required: true, autocomplete: "new-password", placeholder: "Repeat new password", maxlength: 72, class: "block shadow-sm rounded-md border border-gray-400 outline-hidden focus:outline-blue-600 px-3 py-2 mt-2 w-full" %>
diff --git a/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb b/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb index 72c434de..e5862200 100644 --- a/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb +++ b/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb @@ -7,7 +7,7 @@ <%%= form_with url: passwords_path, class: "contents" do |form| %>
- <%%= form.email_field :email_address, required: true, autofocus: true, autocomplete: "username", placeholder: "Enter your email address", value: params[:email_address], class: "block shadow rounded-md border border-gray-400 outline-none focus:outline-blue-600 px-3 py-2 mt-2 w-full" %> + <%%= form.email_field :email_address, required: true, autofocus: true, autocomplete: "username", placeholder: "Enter your email address", value: params[:email_address], class: "block shadow-sm rounded-md border border-gray-400 outline-hidden focus:outline-blue-600 px-3 py-2 mt-2 w-full" %>
diff --git a/lib/generators/tailwindcss/authentication/templates/app/views/sessions/new.html.erb b/lib/generators/tailwindcss/authentication/templates/app/views/sessions/new.html.erb index 92d64b79..64c145c0 100644 --- a/lib/generators/tailwindcss/authentication/templates/app/views/sessions/new.html.erb +++ b/lib/generators/tailwindcss/authentication/templates/app/views/sessions/new.html.erb @@ -11,11 +11,11 @@ <%%= form_with url: session_url, class: "contents" do |form| %>
- <%%= form.email_field :email_address, required: true, autofocus: true, autocomplete: "username", placeholder: "Enter your email address", value: params[:email_address], class: "block shadow rounded-md border border-gray-400 focus:outline-blue-600 px-3 py-2 mt-2 w-full" %> + <%%= form.email_field :email_address, required: true, autofocus: true, autocomplete: "username", placeholder: "Enter your email address", value: params[:email_address], class: "block shadow-sm rounded-md border border-gray-400 focus:outline-blue-600 px-3 py-2 mt-2 w-full" %>
- <%%= form.password_field :password, required: true, autocomplete: "current-password", placeholder: "Enter your password", maxlength: 72, class: "block shadow rounded-md border border-gray-400 focus:outline-blue-600 px-3 py-2 mt-2 w-full" %> + <%%= form.password_field :password, required: true, autocomplete: "current-password", placeholder: "Enter your password", maxlength: 72, class: "block shadow-sm rounded-md border border-gray-400 focus:outline-blue-600 px-3 py-2 mt-2 w-full" %>
diff --git a/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt index 93490a15..9e392609 100644 --- a/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt @@ -15,23 +15,23 @@
<% if attribute.password_digest? -%> <%%= form.label :password %> - <%%= form.password_field :password, class: ["block shadow rounded-md border outline-none px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %> + <%%= form.password_field :password, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %>
<%%= form.label :password_confirmation %> - <%%= form.password_field :password_confirmation, class: ["block shadow rounded-md border outline-none px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password_confirmation].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password_confirmation].any?}] %> + <%%= form.password_field :password_confirmation, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password_confirmation].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password_confirmation].any?}] %> <% elsif attribute.attachments? -%> <%%= form.label :<%= attribute.column_name %> %> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true, class: ["block shadow rounded-md border outline-none px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %> <% else -%> <%%= form.label :<%= attribute.column_name %> %> <% if attribute.field_type == :textarea || attribute.field_type == :text_area -%> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, rows: 4, class: ["block shadow rounded-md border outline-none px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, rows: 4, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% elsif attribute.field_type == :checkbox || attribute.field_type == :check_box -%> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow rounded-md border outline-none mt-2 h-5 w-5", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border outline-hidden mt-2 h-5 w-5", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% else -%> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow rounded-md border outline-none px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% end -%> <% end -%>
From e507b0ee1b89f90b31f5d9f0b7cfd929c540d5ff Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 23 Jan 2025 12:26:15 -0500 Subject: [PATCH 10/88] prefactor: rename user_journey_test to user_install_test --- .github/workflows/ci.yml | 4 ++-- .github/workflows/upstream.yml | 6 +++--- CONTRIBUTING.md | 2 +- .../{user_journey_test.sh => user_install_test.sh} | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) rename test/integration/{user_journey_test.sh => user_install_test.sh} (96%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 07fb8285..b53627e4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: - name: Run tests run: bin/test - user-journey: + user-install: strategy: fail-fast: false matrix: @@ -44,5 +44,5 @@ jobs: with: ruby-version: "3.4" bundler: latest - - run: test/integration/user_journey_test.sh + - run: test/integration/user_install_test.sh shell: bash diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml index e491a957..e38eac50 100644 --- a/.github/workflows/upstream.yml +++ b/.github/workflows/upstream.yml @@ -34,8 +34,8 @@ jobs: - name: Run tests run: bin/test - user-journey: - name: "user-journey (rails ${{ matrix.ref }})" + user-install: + name: "user-install (rails ${{ matrix.ref }})" runs-on: ${{matrix.plat}}-latest strategy: fail-fast: false @@ -50,5 +50,5 @@ jobs: with: ruby-version: "3.3" bundler: latest - - run: test/integration/user_journey_test.sh + - run: test/integration/user_install_test.sh shell: bash diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a4040dfa..c2e8746f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,7 +9,7 @@ This doc is a brief introduction on modifying and maintaining this gem. The unit tests are run with `bundle exec rake test` -There is an additional integration test which runs in CI, `test/integration/user_journey_test.sh` which you may also want to run. +There is an additional integration test which runs in CI, `test/integration/user_install_test.sh` which you may also want to run. ### Testing in a Rails app diff --git a/test/integration/user_journey_test.sh b/test/integration/user_install_test.sh similarity index 96% rename from test/integration/user_journey_test.sh rename to test/integration/user_install_test.sh index 985b72c4..dd36af25 100755 --- a/test/integration/user_journey_test.sh +++ b/test/integration/user_install_test.sh @@ -18,8 +18,8 @@ pushd "My Workspace" # create a rails app bundle exec rails -v -bundle exec rails new test-app --skip-bundle -pushd test-app +bundle exec rails new test-install --skip-bundle +pushd test-install # make sure to use the same version of rails (e.g., install from git source if necessary) bundle remove rails --skip-install From 25010f3aecff8a2335e23749cd02143d29fa538c Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 23 Jan 2025 11:18:23 -0500 Subject: [PATCH 11/88] Introduce a 'tailwindcss:upgrade' task - rename install/tailwindcss.rb to install/install_tailwindcss.rb - new script install/upgrade_tailwindcss.rb which: - removes the "inter-font" CSS tag from the application layout - comments out references to 'defaultTheme' in tailwind.config.js - runs "npx @tailwindcss/upgrade@next" if npx is available - new integration test --- .github/workflows/ci.yml | 15 ++++ .github/workflows/upstream.yml | 19 +++++ ...{tailwindcss.rb => install_tailwindcss.rb} | 0 lib/install/upgrade_tailwindcss.rb | 42 +++++++++++ lib/tasks/install.rake | 2 +- lib/tasks/upgrade.rake | 6 ++ test/integration/user_upgrade_test.sh | 72 +++++++++++++++++++ 7 files changed, 155 insertions(+), 1 deletion(-) rename lib/install/{tailwindcss.rb => install_tailwindcss.rb} (100%) create mode 100644 lib/install/upgrade_tailwindcss.rb create mode 100644 lib/tasks/upgrade.rake create mode 100755 test/integration/user_upgrade_test.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b53627e4..3822e414 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,3 +46,18 @@ jobs: bundler: latest - run: test/integration/user_install_test.sh shell: bash + + user-upgrade: + strategy: + fail-fast: false + matrix: + plat: ["ubuntu", "macos"] # TODO: on windows the tailwind upgrader tests are failing + runs-on: ${{matrix.plat}}-latest + steps: + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.4" + bundler: latest + - run: test/integration/user_upgrade_test.sh + shell: bash diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml index e38eac50..e1b12dea 100644 --- a/.github/workflows/upstream.yml +++ b/.github/workflows/upstream.yml @@ -52,3 +52,22 @@ jobs: bundler: latest - run: test/integration/user_install_test.sh shell: bash + + user-upgrade: + name: "user-upgrade (rails ${{ matrix.ref }})" + runs-on: ${{matrix.plat}}-latest + strategy: + fail-fast: false + matrix: + plat: ["ubuntu"] + ref: ["7-2-stable", "8-0-stable", "main"] + env: + RAILSOPTS: --git=https://github.com/rails/rails --ref=${{ matrix.ref }} + steps: + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.3" + bundler: latest + - run: test/integration/user_upgrade_test.sh + shell: bash diff --git a/lib/install/tailwindcss.rb b/lib/install/install_tailwindcss.rb similarity index 100% rename from lib/install/tailwindcss.rb rename to lib/install/install_tailwindcss.rb diff --git a/lib/install/upgrade_tailwindcss.rb b/lib/install/upgrade_tailwindcss.rb new file mode 100644 index 00000000..24dd4551 --- /dev/null +++ b/lib/install/upgrade_tailwindcss.rb @@ -0,0 +1,42 @@ +TAILWIND_CONFIG_PATH = Rails.root.join("config/tailwind.config.js") +APPLICATION_LAYOUT_PATH = Rails.root.join("app/views/layouts/application.html.erb") + +if TAILWIND_CONFIG_PATH.exist? + if File.read(TAILWIND_CONFIG_PATH).match?(/defaultTheme/) + say "Removing references to 'defaultTheme' from #{TAILWIND_CONFIG_PATH}" + gsub_file TAILWIND_CONFIG_PATH.to_s, /^(.*defaultTheme)/, "// \\1" + end + + if system("npx --version") + say "Running the upstream Tailwind CSS upgrader" + command = Shellwords.join(["npx", "@tailwindcss/upgrade@next", "--force", "--config", TAILWIND_CONFIG_PATH.to_s]) + success = run(command, abort_on_failure: false) + unless success + say "The upgrade tool failed!", :red + say %( You probably need to update your configuration. Please read the error messages,) + say %( and check the Tailwind CSS upgrade guide at https://tailwindcss.com/docs/upgrade-guide.) + abort + end + else + say "Could not run the Tailwind upgrade tool. Please see https://tailwindcss.com/docs/upgrade-guide for manual instructions.", :red + abort + end +else + say "Default tailwind.config.js is missing!", :red + abort +end + +if APPLICATION_LAYOUT_PATH.exist? + if File.read(APPLICATION_LAYOUT_PATH).match?(/"inter-font"/) + say "Strip Inter font CSS from application layout" + gsub_file APPLICATION_LAYOUT_PATH.to_s, %r{, "inter-font"}, "" + else + say "Inter font CSS not detected.", :green + end +else + say "Default application.html.erb is missing!", :red + say %( Please check your layouts and remove any "inter-font" stylesheet links.) +end + +say "Compile initial Tailwind build" +run "rails tailwindcss:build" diff --git a/lib/tasks/install.rake b/lib/tasks/install.rake index 2a571cad..f94ec2a1 100644 --- a/lib/tasks/install.rake +++ b/lib/tasks/install.rake @@ -1,6 +1,6 @@ namespace :tailwindcss do desc "Install Tailwind CSS into the app" task :install do - system "#{RbConfig.ruby} ./bin/rails app:template LOCATION=#{File.expand_path("../install/tailwindcss.rb", __dir__)}" + system "#{RbConfig.ruby} ./bin/rails app:template LOCATION=#{File.expand_path("../install/install_tailwindcss.rb", __dir__)}" end end diff --git a/lib/tasks/upgrade.rake b/lib/tasks/upgrade.rake new file mode 100644 index 00000000..05047523 --- /dev/null +++ b/lib/tasks/upgrade.rake @@ -0,0 +1,6 @@ +namespace :tailwindcss do + desc "Upgrade app from Tailwind CSS v3 to v4" + task :upgrade do + system "#{RbConfig.ruby} ./bin/rails app:template LOCATION=#{File.expand_path("../install/upgrade_tailwindcss.rb", __dir__)}" + end +end diff --git a/test/integration/user_upgrade_test.sh b/test/integration/user_upgrade_test.sh new file mode 100755 index 00000000..d2cc9d8f --- /dev/null +++ b/test/integration/user_upgrade_test.sh @@ -0,0 +1,72 @@ +#! /usr/bin/env bash +# reproduce the documented user journey for installing and running tailwindcss-rails +# this is run in the CI pipeline, non-zero exit code indicates a failure + +set -o pipefail +set -eux + +# set up dependencies +rm -f Gemfile.lock +bundle remove actionmailer +bundle add rails --skip-install ${RAILSOPTS:-} +bundle install --prefer-local + +# do our work a directory with spaces in the name (#176, #184) +rm -rf "My Workspace" +mkdir "My Workspace" +pushd "My Workspace" + +# create a rails app +bundle exec rails -v +bundle exec rails new test-upgrade --skip-bundle +pushd test-upgrade + +# make sure to use the same version of rails (e.g., install from git source if necessary) +bundle remove rails --skip-install +bundle add rails --skip-install ${RAILSOPTS:-} + +# set up app with tailwindcss-rails v3 and tailwindcss-ruby v3 +bundle add tailwindcss-rails --skip-install --version 3.3.0 +bundle add tailwindcss-ruby --skip-install --version 3.4.17 +bundle install --prefer-local +bundle show --paths +bundle binstubs --all + +# install tailwindcss +bin/rails tailwindcss:install +grep -q inter-font app/views/layouts/application.html.erb + +if [[ $(rails -v) > "Rails 8.0.0.beta" ]] ; then + # install auth templates + bin/rails generate authentication + grep -q PasswordsController app/controllers/passwords_controller.rb +fi + +# install scaffold templates +bin/rails generate scaffold post title:string body:text published:boolean +grep -q "Show this post" app/views/posts/index.html.erb + +# upgrade time! +bundle remove tailwindcss-rails --skip-install +bundle remove tailwindcss-ruby --skip-install + +bundle add tailwindcss-rails --skip-install --path="../.." +bundle add tailwindcss-ruby --skip-install --version 4.0.0 + +bundle install --prefer-local +bundle show --paths +bundle binstubs --all + +bin/rails tailwindcss:upgrade + +# TEST: removal of inter-font CSS +if grep -q inter-font app/views/layouts/application.html.erb ; then + echo "FAIL: inter-font CSS not removed" + exit 1 +fi + +# generate CSS +bin/rails tailwindcss:build[verbose] +grep -q "py-2" app/assets/builds/tailwind.css + +echo "OK" From fef615c401e54cd9ae1a089c8f4c9381ab5e2bea Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 23 Jan 2025 14:06:58 -0500 Subject: [PATCH 12/88] If present, move config/postcss.config.js to root This is where the tailwind upgrade tool expects it to be, because that's the convention, apparently. --- lib/install/upgrade_tailwindcss.rb | 42 +++++++++++++++------------ test/integration/user_upgrade_test.sh | 15 ++++++++++ 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/lib/install/upgrade_tailwindcss.rb b/lib/install/upgrade_tailwindcss.rb index 24dd4551..b5389c73 100644 --- a/lib/install/upgrade_tailwindcss.rb +++ b/lib/install/upgrade_tailwindcss.rb @@ -1,28 +1,34 @@ TAILWIND_CONFIG_PATH = Rails.root.join("config/tailwind.config.js") APPLICATION_LAYOUT_PATH = Rails.root.join("app/views/layouts/application.html.erb") +POSTCSS_CONFIG_PATH = Rails.root.join("config/postcss.config.js") -if TAILWIND_CONFIG_PATH.exist? - if File.read(TAILWIND_CONFIG_PATH).match?(/defaultTheme/) - say "Removing references to 'defaultTheme' from #{TAILWIND_CONFIG_PATH}" - gsub_file TAILWIND_CONFIG_PATH.to_s, /^(.*defaultTheme)/, "// \\1" - end +unless TAILWIND_CONFIG_PATH.exist? + say "Default tailwind.config.js is missing!", :red + abort +end - if system("npx --version") - say "Running the upstream Tailwind CSS upgrader" - command = Shellwords.join(["npx", "@tailwindcss/upgrade@next", "--force", "--config", TAILWIND_CONFIG_PATH.to_s]) - success = run(command, abort_on_failure: false) - unless success - say "The upgrade tool failed!", :red - say %( You probably need to update your configuration. Please read the error messages,) - say %( and check the Tailwind CSS upgrade guide at https://tailwindcss.com/docs/upgrade-guide.) - abort - end - else - say "Could not run the Tailwind upgrade tool. Please see https://tailwindcss.com/docs/upgrade-guide for manual instructions.", :red +if File.read(TAILWIND_CONFIG_PATH).match?(/defaultTheme/) + say "Removing references to 'defaultTheme' from #{TAILWIND_CONFIG_PATH}" + gsub_file TAILWIND_CONFIG_PATH.to_s, /^(.*defaultTheme)/, "// \\1" +end + +if POSTCSS_CONFIG_PATH.exist? + say "Moving PostCSS configuration to application root directory" + FileUtils.mv(POSTCSS_CONFIG_PATH, Rails.root, verbose: true) || abort +end + +if system("npx --version") + say "Running the upstream Tailwind CSS upgrader" + command = Shellwords.join(["npx", "@tailwindcss/upgrade@next", "--force", "--config", TAILWIND_CONFIG_PATH.to_s]) + success = run(command, abort_on_failure: false) + unless success + say "The upgrade tool failed!", :red + say %( You probably need to update your configuration. Please read the error messages,) + say %( and check the Tailwind CSS upgrade guide at https://tailwindcss.com/docs/upgrade-guide.) abort end else - say "Default tailwind.config.js is missing!", :red + say "Could not run the Tailwind upgrade tool. Please see https://tailwindcss.com/docs/upgrade-guide for manual instructions.", :red abort end diff --git a/test/integration/user_upgrade_test.sh b/test/integration/user_upgrade_test.sh index d2cc9d8f..e4912818 100755 --- a/test/integration/user_upgrade_test.sh +++ b/test/integration/user_upgrade_test.sh @@ -57,6 +57,15 @@ bundle install --prefer-local bundle show --paths bundle binstubs --all +# create a postcss file +cat < config/postcss.config.js +module.exports = { + plugins: { + autoprefixer: {}, + }, +} +EOF + bin/rails tailwindcss:upgrade # TEST: removal of inter-font CSS @@ -65,6 +74,12 @@ if grep -q inter-font app/views/layouts/application.html.erb ; then exit 1 fi +# TEST: moving the postcss file +if [ ! -f postcss.config.js ] ; then + echo "FAIL: postcss.config.js not moved" + exit 1 +fi + # generate CSS bin/rails tailwindcss:build[verbose] grep -q "py-2" app/assets/builds/tailwind.css From 1edc8c00ecc0e81c8a0ef7a510bc5177cb27ff68 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 23 Jan 2025 14:34:27 -0500 Subject: [PATCH 13/88] doc: add upgrade notes to the README and start a CHANGELOG entry --- CHANGELOG.md | 25 ++++++++++++ README.md | 110 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 132 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39f9bc25..b05f8fe5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,30 @@ ## next / unreleased +## v4.0.0.rc1 / unreleased + +### Upgrade to Tailwind CSS v4 + +General changes: + +- Dependency on `tailwindcss-ruby` set to `~> 4.0`. +- The location of (optional) `postcss.config.js` has moved from the `config/` directory to the app root. + +Changes to the `tailwindcss:install` task: + +- The `tailwindcss:install` task no longer installs `config/tailwind.config.js`. +- The Inter font is no longer packaged with the gem. +- Some Tailwind class names are updated for v4. + +New task `tailwindcss:upgrade` upgrades many apps cleanly: + +- Cleans up some things in the generated `config/tailwind.config.js`. +- Runs the upstream upgrader (note: requires `npx` to run the one-time upgrade, but highly recommended). +- Removes references to the Inter font from the application layout. +- If present, moves `config/postcss.config.js` to the root directory. + +Thanks to @EricGusmao and @excid3 for their help and advice on this work. + + ## v3.3.0 / 2025-01-19 * Add support for using the puma plugin in a standalone puma process (outside of `rails server`). (#458) @flavorjones diff --git a/README.md b/README.md index c80bae4d..7ea37753 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,10 @@ - [Installation](#installation) * [Choosing a specific version of `tailwindcss`](#choosing-a-specific-version-of-tailwindcss) * [Using a local installation of `tailwindcss`](#using-a-local-installation-of-tailwindcss) +- [Upgrading your application from Tailwind v3 to v4](#upgrading-your-application-from-tailwind-v3-to-v4) + * [You don't _have_ to upgrade](#you-dont-_have_-to-upgrade) + * [Upgrade steps](#upgrade-steps) + * [Troubleshooting](#troubleshooting) - [Developing with Tailwindcss](#developing-with-tailwindcss) * [Configuration and commands](#configuration-and-commands) * [Building for production](#building-for-production) @@ -17,7 +21,7 @@ * [Live rebuild](#live-rebuild) * [Using with PostCSS](#using-with-postcss) * [Custom inputs or outputs](#custom-inputs-or-outputs) -- [Troubleshooting](#troubleshooting) +- [Troubleshooting](#troubleshooting-1) * [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) * [Running in a docker container exits prematurely](#running-in-a-docker-container-exits-prematurely) * [Conflict with sassc-rails](#conflict-with-sassc-rails) @@ -55,6 +59,106 @@ gem "tailwindcss-ruby", "3.4.13" You can also use a local (npm-based) installation if you prefer, please go to https://github.com/flavorjones/tailwindcss-ruby for more information. +## Upgrading your application from Tailwind v3 to v4 + +v4.x of this gem has been updated to work with Tailwind v4, including providing some help with upgrading your application. + +A full explanation of a Tailwind v4 upgrade is out of scope for this README, so we strongly urge you to read the [official Tailwind v4 upgrade guide](https://tailwindcss.com/docs/upgrade-guide) before embarking on an upgrade to an existing large app. + +This gem will help with some of the mechanics of the upgrade, however. + +### You don't _have_ to upgrade + +Keep in mind that you don't _need_ to upgrade. You can stay on Tailwind v3 for the foreseeable future if you prefer not to migrate now, or if your migration runs into problems. + +Just make sure you're pinning the version of **both** `tailwindcss-rails` and `tailwindcss-ruby`: + +``` ruby +# Gemfile +gem "tailwindcss-rails", "~> 3.3" +gem "tailwindcss-ruby", "~> 3.4" +``` + + +### Upgrade steps + +First, update to `tailwindcss-rails` v4.0.0 or higher. This will also ensure you're transitively depending on `tailwindcss-ruby` v4. + +``` html +# Gemfile +gem "tailwindcss-rails", "~> 4.0" +``` + +Then, run the `tailwindcss:upgrade` task. Among other things, this will try to run the official Tailwind upgrade utility. It requires `npx` in order to run, but it's a one-time operation and is *highly recommended* for a successful upgrade. + +Here's what the upgrade task does: + +- Cleans up some things in the generated `config/tailwind.config.js`. +- Runs the upstream upgrader (note: requires `npx` to run the one-time upgrade, but highly recommended). +- Removes references to the Inter font from the application layout. +- If present, moves `config/postcss.config.js` to the root directory. + +Here's what that upgrade looks like on a vanilla Rails app: + +``` sh +$ bin/rails tailwindcss:upgrade + apply /path/to/tailwindcss-rails/lib/install/upgrade_tailwindcss.rb + Removing references to 'defaultTheme' from /home/user/myapp/config/tailwind.config.js + gsub config/tailwind.config.js + Running the upstream Tailwind CSS upgrader + run npx @tailwindcss/upgrade@next --force --config /home/user/myapp/config/tailwind.config.js from "." +≈ tailwindcss v4.0.0 + +│ Searching for CSS files in the current directory and its subdirectories… + +│ ↳ Linked `./config/tailwind.config.js` to `./app/assets/stylesheets/application.tailwind.css` + +│ Migrating JavaScript configuration files… + +│ ↳ The configuration file at `./config/tailwind.config.js` could not be automatically migrated to the new CSS +│ configuration format, so your CSS has been updated to load your existing configuration file. + +│ Migrating templates… + +│ ↳ Migrated templates for configuration file: `./config/tailwind.config.js` + +│ Migrating stylesheets… + +│ ↳ Migrated stylesheet: `./app/assets/stylesheets/application.tailwind.css` + +│ ↳ No PostCSS config found, skipping migration. + +│ Updating dependencies… + +│ Could not detect a package manager. Please manually update `tailwindcss` to v4. + +│ Verify the changes and commit them to your repository. + + Strip Inter font CSS from application layout + gsub app/views/layouts/application.html.erb + Compile initial Tailwind build + run rails tailwindcss:build from "." +≈ tailwindcss v4.0.0 + +Done in 52ms + run bundle install --quiet +``` + +If this doesn't succeed, it's likely that you've customized your Tailwind configuration and you'll need to do some work to make sure your application upgrades. Please read the [official upgrade guide](https://tailwindcss.com/docs/upgrade-guide)! + + +### Troubleshooting + +You may want to check out [TailwindCSS v4 - upgrade experience report · rails/tailwindcss-rails · Discussion #450](https://github.com/rails/tailwindcss-rails/discussions/450) if you're having trouble upgrading. + +We know there are some cases we haven't addressed with the upgrade task: + +- If the user isn’t using PostCSS, some migrations (e.g., updating class names in the view files) may fail +- In setups without JavaScript tooling, the update process may fail to fully migrate `tailwind.config.js` because the tool assumes that the imported packages (e.g., tailwind plugins) are installed via a package manager, allowing them to be called. + +We'll try to improve the upgrade process over time, but for now you may need to do some manual work to upgrade. + + ## Developing with Tailwindcss ### Configuration and commands @@ -147,12 +251,12 @@ Running `bin/dev` invokes Foreman to start both the Tailwind watch process and t ### Using with PostCSS -If you want to use PostCSS as a preprocessor, create a custom `config/postcss.config.js` and that file will be loaded by tailwind automatically. +If you want to use PostCSS as a preprocessor, create a custom `postcss.config.js` in your project root directory, and that file will be loaded by tailwind automatically. For example, to enable nesting: ```js -// config/postcss.config.js +// postcss.config.js module.exports = { plugins: { 'postcss-import': {}, From dd85c1d798ae8b94f238c26b06c47ecf7d026a64 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 23 Jan 2025 14:56:40 -0500 Subject: [PATCH 14/88] version bump to v4.0.0.rc1 --- CHANGELOG.md | 2 +- lib/tailwindcss/version.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b05f8fe5..a013c4f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## next / unreleased -## v4.0.0.rc1 / unreleased +## v4.0.0.rc1 / 2025-01-23 ### Upgrade to Tailwind CSS v4 diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index 5c301936..18243054 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "3.3.0" + VERSION = "4.0.0.rc1" end From e57f34a3ac39fc652d537e8e5203b79ee4847e5a Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 23 Jan 2025 15:36:59 -0500 Subject: [PATCH 15/88] doc: merge CHANGELOG entry for v3.3.1 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a013c4f6..f978347c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,13 @@ New task `tailwindcss:upgrade` upgrades many apps cleanly: Thanks to @EricGusmao and @excid3 for their help and advice on this work. +## v3.3.1 / 2025-01-23 + +* Pin the dependency on `tailwindcss-ruby` to `~> 3.0` to prevent users from upgrading Tailwind while still on v3 of this gem. + + While it was useful during the Tailwind v4 beta period to allow users to float this dependency to try upgrading, we know (now that v4.0.0.rc1 of this gem is out) that not everything will work well if combining Tailwind v4 with `tailwindcss-rails` v3. Pinning this dependency should protect developers against unexpected issues. + + ## v3.3.0 / 2025-01-19 * Add support for using the puma plugin in a standalone puma process (outside of `rails server`). (#458) @flavorjones From 65dd6c5ef76e474bf73249a086437bafa58e49b4 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 23 Jan 2025 15:39:11 -0500 Subject: [PATCH 16/88] doc: update README with updated gemfile instructions because v3.3.1 pins tailwindcss-ruby to v3 [skip ci] --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7ea37753..303c7e21 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,14 @@ This gem will help with some of the mechanics of the upgrade, however. Keep in mind that you don't _need_ to upgrade. You can stay on Tailwind v3 for the foreseeable future if you prefer not to migrate now, or if your migration runs into problems. -Just make sure you're pinning the version of **both** `tailwindcss-rails` and `tailwindcss-ruby`: +Just make sure you're either pinned to v3.3.1 of this gem: + +``` ruby +# Gemfile +gem "tailwindcss-rails", "3.3.1" # which transitively pins tailwindcss-ruby to v3 +``` + +or if you're on an earlier version of this gem, make sure you're pinning the version of **both** `tailwindcss-rails` and `tailwindcss-ruby`: ``` ruby # Gemfile @@ -86,7 +93,7 @@ First, update to `tailwindcss-rails` v4.0.0 or higher. This will also ensure you ``` html # Gemfile -gem "tailwindcss-rails", "~> 4.0" +gem "tailwindcss-rails", "~> 4.0" # which transitively pins tailwindcss-ruby to v4 ``` Then, run the `tailwindcss:upgrade` task. Among other things, this will try to run the official Tailwind upgrade utility. It requires `npx` in order to run, but it's a one-time operation and is *highly recommended* for a successful upgrade. From 5b478e7c5b900534962c0a563060bd7a5228005e Mon Sep 17 00:00:00 2001 From: Patricio Mac Adden Date: Fri, 10 Jan 2025 18:23:04 -0300 Subject: [PATCH 17/88] Improve boolean fields --- .../tailwindcss/scaffold/templates/_form.html.erb.tt | 4 ++-- .../tailwindcss/scaffold/templates/partial.html.erb.tt | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt index 9e392609..43d06cb2 100644 --- a/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt @@ -12,7 +12,7 @@ <%% end %> <% attributes.each do |attribute| -%> -
+
"> <% if attribute.password_digest? -%> <%%= form.label :password %> <%%= form.password_field :password, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %> @@ -29,7 +29,7 @@ <% if attribute.field_type == :textarea || attribute.field_type == :text_area -%> <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, rows: 4, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% elsif attribute.field_type == :checkbox || attribute.field_type == :check_box -%> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border outline-hidden mt-2 h-5 w-5", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border outline-hidden order-first h-5 w-5", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% else -%> <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% end -%> diff --git a/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt index 88dc3eda..6062db24 100644 --- a/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt @@ -8,6 +8,8 @@ <%% <%= singular_name %>.<%= attribute.column_name %>.each do |<%= attribute.singular_name %>| %>
<%%= link_to <%= attribute.singular_name %>.filename, <%= attribute.singular_name %> %>
<%% end %> +<% elsif attribute.type == :boolean -%> + <%%= <%= singular_name %>.<%= attribute.column_name %>? ? "Yes" : "No" %> <% else -%> <%%= <%= singular_name %>.<%= attribute.column_name %> %> <% end -%> From b5aac18d225973427299ba1ef903249ad2161e42 Mon Sep 17 00:00:00 2001 From: Patricio Mac Adden Date: Thu, 23 Jan 2025 23:10:29 -0300 Subject: [PATCH 18/88] remove inter font before upgrading using the npx script --- lib/install/upgrade_tailwindcss.rb | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/install/upgrade_tailwindcss.rb b/lib/install/upgrade_tailwindcss.rb index b5389c73..53440aee 100644 --- a/lib/install/upgrade_tailwindcss.rb +++ b/lib/install/upgrade_tailwindcss.rb @@ -17,6 +17,18 @@ FileUtils.mv(POSTCSS_CONFIG_PATH, Rails.root, verbose: true) || abort end +if APPLICATION_LAYOUT_PATH.exist? + if File.read(APPLICATION_LAYOUT_PATH).match?(/"inter-font"/) + say "Strip Inter font CSS from application layout" + gsub_file APPLICATION_LAYOUT_PATH.to_s, %r{, "inter-font"}, "" + else + say "Inter font CSS not detected.", :green + end +else + say "Default application.html.erb is missing!", :red + say %( Please check your layouts and remove any "inter-font" stylesheet links.) +end + if system("npx --version") say "Running the upstream Tailwind CSS upgrader" command = Shellwords.join(["npx", "@tailwindcss/upgrade@next", "--force", "--config", TAILWIND_CONFIG_PATH.to_s]) @@ -32,17 +44,5 @@ abort end -if APPLICATION_LAYOUT_PATH.exist? - if File.read(APPLICATION_LAYOUT_PATH).match?(/"inter-font"/) - say "Strip Inter font CSS from application layout" - gsub_file APPLICATION_LAYOUT_PATH.to_s, %r{, "inter-font"}, "" - else - say "Inter font CSS not detected.", :green - end -else - say "Default application.html.erb is missing!", :red - say %( Please check your layouts and remove any "inter-font" stylesheet links.) -end - say "Compile initial Tailwind build" run "rails tailwindcss:build" From a9f3a0f90513b6927706be19afa4669d945e1fbf Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 24 Jan 2025 10:00:33 -0500 Subject: [PATCH 19/88] test: restore the ability to inject tailwindcss-ruby bundler opts so we can integration test from tailwindcss-ruby's downstream CI pipeline --- test/integration/user_install_test.sh | 3 ++- test/integration/user_upgrade_test.sh | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/test/integration/user_install_test.sh b/test/integration/user_install_test.sh index dd36af25..07ac8182 100755 --- a/test/integration/user_install_test.sh +++ b/test/integration/user_install_test.sh @@ -27,8 +27,9 @@ bundle add rails --skip-install ${RAILSOPTS:-} # use the tailwindcss-rails under test bundle add tailwindcss-rails --skip-install --path="../.." +bundle add tailwindcss-ruby --skip-install ${TAILWINDCSSOPTS:-} bundle install --prefer-local -bundle show --paths +bundle show --paths | fgrep tailwind bundle binstubs --all # install tailwindcss diff --git a/test/integration/user_upgrade_test.sh b/test/integration/user_upgrade_test.sh index e4912818..28621f8d 100755 --- a/test/integration/user_upgrade_test.sh +++ b/test/integration/user_upgrade_test.sh @@ -29,7 +29,7 @@ bundle add rails --skip-install ${RAILSOPTS:-} bundle add tailwindcss-rails --skip-install --version 3.3.0 bundle add tailwindcss-ruby --skip-install --version 3.4.17 bundle install --prefer-local -bundle show --paths +bundle show --paths | fgrep tailwind bundle binstubs --all # install tailwindcss @@ -51,10 +51,10 @@ bundle remove tailwindcss-rails --skip-install bundle remove tailwindcss-ruby --skip-install bundle add tailwindcss-rails --skip-install --path="../.." -bundle add tailwindcss-ruby --skip-install --version 4.0.0 +bundle add tailwindcss-ruby --skip-install ${TAILWINDCSSOPTS:---version 4.0.0} bundle install --prefer-local -bundle show --paths +bundle show --paths | fgrep tailwind bundle binstubs --all # create a postcss file From 7ae7a06ad89a6137e6d4a22d5cdfb55f4bc35d44 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 24 Jan 2025 12:20:49 -0500 Subject: [PATCH 20/88] fix: unnecessary stylesheet_link_tag for tailwind In Rails 8, propshaft detects `:app` and loads all the css files under app/assets/stylesheets, so we may not need this explicit tag for tailwind. On installation, omit the tailwind stylesheet link tag if `:app` is already being passed to stylesheet_link_tag in the layout. On upgrade, remove the tailwind stylesheet link tag if `:app` is already being passed to stylesheet_link_tag in the layout. --- lib/install/install_tailwindcss.rb | 11 +++++++---- lib/install/upgrade_tailwindcss.rb | 6 ++++++ test/integration/user_install_test.sh | 3 ++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/lib/install/install_tailwindcss.rb b/lib/install/install_tailwindcss.rb index 61fe3fac..8957bc0e 100644 --- a/lib/install/install_tailwindcss.rb +++ b/lib/install/install_tailwindcss.rb @@ -2,11 +2,14 @@ CENTERING_CONTAINER_INSERTION_POINT = /^\s*<%= yield %>/.freeze if APPLICATION_LAYOUT_PATH.exist? - say "Add Tailwindcss include tags and container element in application layout" - insert_into_file APPLICATION_LAYOUT_PATH.to_s, <<~ERB.indent(4), before: /^\s*<%= stylesheet_link_tag/ - <%= stylesheet_link_tag "tailwind", "data-turbo-track": "reload" %> - ERB + unless File.read(APPLICATION_LAYOUT_PATH).match?(/stylesheet_link_tag :app/) + say "Add Tailwindcss include tags in application layout" + insert_into_file APPLICATION_LAYOUT_PATH.to_s, <<~ERB.indent(4), before: /^\s*<%= stylesheet_link_tag/ + <%= stylesheet_link_tag "tailwind", "data-turbo-track": "reload" %> + ERB + end + say "Add Tailwindcss container element in application layout" if File.open(APPLICATION_LAYOUT_PATH).read =~ /\n\s*<%= yield %>\n\s*<\/body>/ insert_into_file APPLICATION_LAYOUT_PATH.to_s, %(
\n ), before: CENTERING_CONTAINER_INSERTION_POINT insert_into_file APPLICATION_LAYOUT_PATH.to_s, %(\n
), after: CENTERING_CONTAINER_INSERTION_POINT diff --git a/lib/install/upgrade_tailwindcss.rb b/lib/install/upgrade_tailwindcss.rb index 53440aee..631e05bc 100644 --- a/lib/install/upgrade_tailwindcss.rb +++ b/lib/install/upgrade_tailwindcss.rb @@ -18,6 +18,12 @@ end if APPLICATION_LAYOUT_PATH.exist? + if File.read(APPLICATION_LAYOUT_PATH).match?(/stylesheet_link_tag :app/) && + File.read(APPLICATION_LAYOUT_PATH).match?(/stylesheet_link_tag "tailwind"/) + say "Remove unnecessary stylesheet_link_tag from application layout" + gsub_file APPLICATION_LAYOUT_PATH.to_s, %r{^\s*<%= stylesheet_link_tag "tailwind".*%>$}, "" + end + if File.read(APPLICATION_LAYOUT_PATH).match?(/"inter-font"/) say "Strip Inter font CSS from application layout" gsub_file APPLICATION_LAYOUT_PATH.to_s, %r{, "inter-font"}, "" diff --git a/test/integration/user_install_test.sh b/test/integration/user_install_test.sh index 07ac8182..d670a106 100755 --- a/test/integration/user_install_test.sh +++ b/test/integration/user_install_test.sh @@ -36,7 +36,8 @@ bundle binstubs --all bin/rails tailwindcss:install # TEST: tailwind was installed correctly -grep -q tailwind app/views/layouts/application.html.erb +grep -q "
> Rakefile From 11438d61a5a204fd5422c20aaf9b3182151667a8 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 24 Jan 2025 10:11:17 -0500 Subject: [PATCH 21/88] doc: fixup blank lines in README [skip ci] --- README.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/README.md b/README.md index 303c7e21..5542c70a 100644 --- a/README.md +++ b/README.md @@ -115,32 +115,19 @@ $ bin/rails tailwindcss:upgrade Running the upstream Tailwind CSS upgrader run npx @tailwindcss/upgrade@next --force --config /home/user/myapp/config/tailwind.config.js from "." ≈ tailwindcss v4.0.0 - │ Searching for CSS files in the current directory and its subdirectories… - │ ↳ Linked `./config/tailwind.config.js` to `./app/assets/stylesheets/application.tailwind.css` - │ Migrating JavaScript configuration files… - │ ↳ The configuration file at `./config/tailwind.config.js` could not be automatically migrated to the new CSS │ configuration format, so your CSS has been updated to load your existing configuration file. - │ Migrating templates… - │ ↳ Migrated templates for configuration file: `./config/tailwind.config.js` - │ Migrating stylesheets… - │ ↳ Migrated stylesheet: `./app/assets/stylesheets/application.tailwind.css` - │ ↳ No PostCSS config found, skipping migration. - │ Updating dependencies… - │ Could not detect a package manager. Please manually update `tailwindcss` to v4. - │ Verify the changes and commit them to your repository. - Strip Inter font CSS from application layout gsub app/views/layouts/application.html.erb Compile initial Tailwind build From 31621ead59f92464c3b097c06011795f767a7ec8 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 24 Jan 2025 13:12:26 -0500 Subject: [PATCH 22/88] Move application.tailwind.css to a dir ignored by propshaft This file should not be included in the stylesheet link tags served to user agents. Fixes #470 --- README.md | 40 +++++++++++++-------------- lib/install/install_tailwindcss.rb | 7 +++-- lib/install/upgrade_tailwindcss.rb | 23 ++++++++++----- lib/tailwindcss/commands.rb | 2 +- lib/tailwindcss/engine.rb | 6 ++++ test/integration/user_install_test.sh | 4 +-- test/integration/user_upgrade_test.sh | 10 ++++--- 7 files changed, 54 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 5542c70a..17315ebe 100644 --- a/README.md +++ b/README.md @@ -101,9 +101,11 @@ Then, run the `tailwindcss:upgrade` task. Among other things, this will try to r Here's what the upgrade task does: - Cleans up some things in the generated `config/tailwind.config.js`. -- Runs the upstream upgrader (note: requires `npx` to run the one-time upgrade, but highly recommended). -- Removes references to the Inter font from the application layout. - If present, moves `config/postcss.config.js` to the root directory. +- If present, moves `app/assets/stylesheets/application.tailwind.css` to `app/assets/tailwind`. +- Removes unnecessary `stylesheet_link_tag "tailwindcss"` tags from the application layout. +- Removes references to the Inter font from the application layout. +- Runs the upstream upgrader (note: requires `npx` to run the one-time upgrade, but highly recommended). Here's what that upgrade looks like on a vanilla Rails app: @@ -112,29 +114,34 @@ $ bin/rails tailwindcss:upgrade apply /path/to/tailwindcss-rails/lib/install/upgrade_tailwindcss.rb Removing references to 'defaultTheme' from /home/user/myapp/config/tailwind.config.js gsub config/tailwind.config.js + Strip Inter font CSS from application layout + gsub app/views/layouts/application.html.erb + Remove unnecessary stylesheet_link_tag from application layout + gsub app/views/layouts/application.html.erb + Moving application.tailwind.css to /home/user/myapp/app/assets/tailwind + create app/assets/tailwind/application.tailwind.css + remove app/assets/stylesheets/application.tailwind.css +10.9.0 Running the upstream Tailwind CSS upgrader run npx @tailwindcss/upgrade@next --force --config /home/user/myapp/config/tailwind.config.js from "." ≈ tailwindcss v4.0.0 │ Searching for CSS files in the current directory and its subdirectories… -│ ↳ Linked `./config/tailwind.config.js` to `./app/assets/stylesheets/application.tailwind.css` +│ ↳ Linked `./config/tailwind.config.js` to `./app/assets/tailwind/application.tailwind.css` │ Migrating JavaScript configuration files… │ ↳ The configuration file at `./config/tailwind.config.js` could not be automatically migrated to the new CSS │ configuration format, so your CSS has been updated to load your existing configuration file. │ Migrating templates… │ ↳ Migrated templates for configuration file: `./config/tailwind.config.js` │ Migrating stylesheets… -│ ↳ Migrated stylesheet: `./app/assets/stylesheets/application.tailwind.css` +│ ↳ Migrated stylesheet: `./app/assets/tailwind/application.tailwind.css` │ ↳ No PostCSS config found, skipping migration. │ Updating dependencies… │ Could not detect a package manager. Please manually update `tailwindcss` to v4. │ Verify the changes and commit them to your repository. - Strip Inter font CSS from application layout - gsub app/views/layouts/application.html.erb Compile initial Tailwind build run rails tailwindcss:build from "." ≈ tailwindcss v4.0.0 - -Done in 52ms +Done in 56ms run bundle install --quiet ``` @@ -157,9 +164,11 @@ We'll try to improve the upgrade process over time, but for now you may need to ### Configuration and commands -#### Input file: `app/assets/stylesheets/application.tailwind.css` +#### Input file: `app/assets/tailwind/application.tailwind.css` + +The `tailwindcss:install` task will generate a Tailwind input file in `app/assets/tailwind/application.tailwind.css`. This is where you import the plugins you want to use and where you can setup your custom `@apply` rules. -The installer will generate a Tailwind input file in `app/assets/stylesheets/application.tailwind.css`. This is where you import the plugins you want to use and where you can setup your custom `@apply` rules. +⚠ The location of this file changed in v4, from `app/assets/stylesheets` to `app/assets/tailwind`. The `tailwindcss:upgrade` task will move it for you. #### Output file: `app/assets/builds/tailwind.css` @@ -335,17 +344,6 @@ The inline version also works:
Has the image as it's background
``` -### Conflict with pre-existing asset pipeline stylesheets - -If you get a warning `Unrecognized at-rule or error parsing at-rule ‘@tailwind’.` in the browser console after installation, you are incorrectly double-processing `application.tailwind.css`. This is a misconfiguration, even though the styles will be fully effective in many cases. - -The file `application.tailwind.css` is installed when running `rails tailwindcss:install` and is placed alongside the common `application.css` in `app/assets/stylesheets`. Because the `application.css` in a newly generated Rails app includes a `require_tree .` directive, the asset pipeline incorrectly processes `application.tailwind.css`, where it should be taken care of by `tailwindcss`. The asset pipeline ignores TailwindCSS's at-directives, and the browser can't process them. - -To fix the warning, you can either remove the `application.css`, if you don't plan to use the asset pipeline for stylesheets, and instead rely on TailwindCSS completely for styles. This is what this installer assumes. - -Or, if you do want to keep using the asset pipeline in parallel, make sure to remove the `require_tree .` line from the `application.css`. - - ## License Tailwind for Rails is released under the [MIT License](https://opensource.org/licenses/MIT). diff --git a/lib/install/install_tailwindcss.rb b/lib/install/install_tailwindcss.rb index 8957bc0e..e210d60b 100644 --- a/lib/install/install_tailwindcss.rb +++ b/lib/install/install_tailwindcss.rb @@ -1,5 +1,6 @@ APPLICATION_LAYOUT_PATH = Rails.root.join("app/views/layouts/application.html.erb") CENTERING_CONTAINER_INSERTION_POINT = /^\s*<%= yield %>/.freeze +TAILWIND_ASSET_PATH = Rails.root.join("app/assets/tailwind") if APPLICATION_LAYOUT_PATH.exist? unless File.read(APPLICATION_LAYOUT_PATH).match?(/stylesheet_link_tag :app/) @@ -31,9 +32,9 @@ append_to_file(".gitignore", %(\n/app/assets/builds/*\n!/app/assets/builds/.keep\n)) end -unless Rails.root.join("app/assets/stylesheets/application.tailwind.css").exist? - say "Add default app/assets/stylesheets/application.tailwind.css" - copy_file "#{__dir__}/application.tailwind.css", "app/assets/stylesheets/application.tailwind.css" +unless TAILWIND_ASSET_PATH.join("application.tailwind.css").exist? + say "Add default #{TAILWIND_ASSET_PATH}/application.tailwind.css" + copy_file "#{__dir__}/application.tailwind.css", TAILWIND_ASSET_PATH.join("application.tailwind.css") end if Rails.root.join("Procfile.dev").exist? diff --git a/lib/install/upgrade_tailwindcss.rb b/lib/install/upgrade_tailwindcss.rb index 631e05bc..84a1aa8c 100644 --- a/lib/install/upgrade_tailwindcss.rb +++ b/lib/install/upgrade_tailwindcss.rb @@ -1,6 +1,8 @@ TAILWIND_CONFIG_PATH = Rails.root.join("config/tailwind.config.js") APPLICATION_LAYOUT_PATH = Rails.root.join("app/views/layouts/application.html.erb") POSTCSS_CONFIG_PATH = Rails.root.join("config/postcss.config.js") +OLD_TAILWIND_ASSET_PATH = Rails.root.join("app/assets/stylesheets") +TAILWIND_ASSET_PATH = Rails.root.join("app/assets/tailwind") unless TAILWIND_CONFIG_PATH.exist? say "Default tailwind.config.js is missing!", :red @@ -14,27 +16,34 @@ if POSTCSS_CONFIG_PATH.exist? say "Moving PostCSS configuration to application root directory" - FileUtils.mv(POSTCSS_CONFIG_PATH, Rails.root, verbose: true) || abort + copy_file POSTCSS_CONFIG_PATH, Rails.root.join("postcss.config.js") + remove_file POSTCSS_CONFIG_PATH end if APPLICATION_LAYOUT_PATH.exist? - if File.read(APPLICATION_LAYOUT_PATH).match?(/stylesheet_link_tag :app/) && - File.read(APPLICATION_LAYOUT_PATH).match?(/stylesheet_link_tag "tailwind"/) - say "Remove unnecessary stylesheet_link_tag from application layout" - gsub_file APPLICATION_LAYOUT_PATH.to_s, %r{^\s*<%= stylesheet_link_tag "tailwind".*%>$}, "" - end - if File.read(APPLICATION_LAYOUT_PATH).match?(/"inter-font"/) say "Strip Inter font CSS from application layout" gsub_file APPLICATION_LAYOUT_PATH.to_s, %r{, "inter-font"}, "" else say "Inter font CSS not detected.", :green end + + if File.read(APPLICATION_LAYOUT_PATH).match?(/stylesheet_link_tag :app/) && + File.read(APPLICATION_LAYOUT_PATH).match?(/stylesheet_link_tag "tailwind"/) + say "Remove unnecessary stylesheet_link_tag from application layout" + gsub_file APPLICATION_LAYOUT_PATH.to_s, %r{^\s*<%= stylesheet_link_tag "tailwind".*%>$}, "" + end else say "Default application.html.erb is missing!", :red say %( Please check your layouts and remove any "inter-font" stylesheet links.) end +if OLD_TAILWIND_ASSET_PATH.join("application.tailwind.css").exist? + say "Moving application.tailwind.css to #{TAILWIND_ASSET_PATH}" + copy_file OLD_TAILWIND_ASSET_PATH.join("application.tailwind.css"), TAILWIND_ASSET_PATH.join("application.tailwind.css") + remove_file OLD_TAILWIND_ASSET_PATH.join("application.tailwind.css") +end + if system("npx --version") say "Running the upstream Tailwind CSS upgrader" command = Shellwords.join(["npx", "@tailwindcss/upgrade@next", "--force", "--config", TAILWIND_CONFIG_PATH.to_s]) diff --git a/lib/tailwindcss/commands.rb b/lib/tailwindcss/commands.rb index ce08bb38..11105dbc 100644 --- a/lib/tailwindcss/commands.rb +++ b/lib/tailwindcss/commands.rb @@ -8,7 +8,7 @@ def compile_command(debug: false, **kwargs) command = [ Tailwindcss::Ruby.executable(**kwargs), - "-i", rails_root.join("app/assets/stylesheets/application.tailwind.css").to_s, + "-i", rails_root.join("app/assets/tailwind/application.tailwind.css").to_s, "-o", rails_root.join("app/assets/builds/tailwind.css").to_s, ] diff --git a/lib/tailwindcss/engine.rb b/lib/tailwindcss/engine.rb index 080416c4..0c020bbc 100644 --- a/lib/tailwindcss/engine.rb +++ b/lib/tailwindcss/engine.rb @@ -6,6 +6,12 @@ class Engine < ::Rails::Engine Rails.application.config.generators.stylesheets = false end + initializer "tailwindcss.exclude_asset_path", after: "propshaft.append_assets_path" do + if Rails.application.config.assets.excluded_paths # the app may not be using Propshaft + Rails.application.config.assets.excluded_paths << Rails.root.join("app/assets/tailwind") + end + end + config.app_generators do |g| g.template_engine :tailwindcss end diff --git a/test/integration/user_install_test.sh b/test/integration/user_install_test.sh index d670a106..aaf00a67 100755 --- a/test/integration/user_install_test.sh +++ b/test/integration/user_install_test.sh @@ -37,7 +37,7 @@ bin/rails tailwindcss:install # TEST: tailwind was installed correctly grep -q "
> Rakefile @@ -46,7 +46,7 @@ task :still_here do end EOF -cat >> app/assets/stylesheets/application.tailwind.css <> app/assets/tailwind/application.tailwind.css < Date: Sun, 26 Jan 2025 11:46:24 -0300 Subject: [PATCH 23/88] update README for postcss configuration and dependencies --- README.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 5542c70a..92fa3893 100644 --- a/README.md +++ b/README.md @@ -251,13 +251,10 @@ For example, to enable nesting: ```js // postcss.config.js -module.exports = { +export default { plugins: { - 'postcss-import': {}, - 'tailwindcss/nesting': {}, - tailwindcss: {}, - autoprefixer: {}, - }, + "@tailwindcss/postcss": {}, + } } ``` @@ -269,10 +266,9 @@ module.exports = { "name": "my app", "private": true, "dependencies": { - "postcss-advanced-variables": "^4.0.0", - "postcss-import": "^16.0.1", - "postcss-mixins": "^9.0.4", - "tailwindcss": "^3.4.1" + "@tailwindcss/postcss": "^4.0.0", + "tailwindcss": "^4.0.0", + "postcss": "^8.5.1" } } ``` From ac3224f148007911cc1f6c381cee91588efc03e6 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 26 Jan 2025 14:40:56 -0500 Subject: [PATCH 24/88] doc: update README with some plugin info around the v4 upgrade [skip ci] --- README.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d1d9f3fc..99607137 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ - [Upgrading your application from Tailwind v3 to v4](#upgrading-your-application-from-tailwind-v3-to-v4) * [You don't _have_ to upgrade](#you-dont-_have_-to-upgrade) * [Upgrade steps](#upgrade-steps) + * [Plugins](#plugins) * [Troubleshooting](#troubleshooting) - [Developing with Tailwindcss](#developing-with-tailwindcss) * [Configuration and commands](#configuration-and-commands) @@ -28,7 +29,6 @@ * [Class names must be spelled out](#class-names-must-be-spelled-out) * [`ERROR: Cannot find the tailwindcss executable` for supported platform](#error-cannot-find-the-tailwindcss-executable-for-supported-platform) * [Using asset-pipeline assets](#using-asset-pipeline-assets) - * [Conflict with pre-existing asset pipeline stylesheets](#conflict-with-pre-existing-asset-pipeline-stylesheets) - [License](#license) @@ -67,6 +67,7 @@ A full explanation of a Tailwind v4 upgrade is out of scope for this README, so This gem will help with some of the mechanics of the upgrade, however. + ### You don't _have_ to upgrade Keep in mind that you don't _need_ to upgrade. You can stay on Tailwind v3 for the foreseeable future if you prefer not to migrate now, or if your migration runs into problems. @@ -107,7 +108,8 @@ Here's what the upgrade task does: - Removes references to the Inter font from the application layout. - Runs the upstream upgrader (note: requires `npx` to run the one-time upgrade, but highly recommended). -Here's what that upgrade looks like on a vanilla Rails app: +
+Here's what that upgrade looks like on a vanilla Rails app. ``` sh $ bin/rails tailwindcss:upgrade @@ -145,9 +147,18 @@ Done in 56ms run bundle install --quiet ``` +
+ If this doesn't succeed, it's likely that you've customized your Tailwind configuration and you'll need to do some work to make sure your application upgrades. Please read the [official upgrade guide](https://tailwindcss.com/docs/upgrade-guide)! +### Plugins + +In Tailwind CLI v3, some Tailwind plugins were included by default in the CLI tool. However, in v4 these default plugins have been removed. + +In order to use any plugins with v4, either by declaring them in your (optional) config file or using the [`@plugin` directive](https://tailwindcss.com/docs/functions-and-directives#plugin-directive), it's necessary to install them using a local javascript package manager. + + ### Troubleshooting You may want to check out [TailwindCSS v4 - upgrade experience report · rails/tailwindcss-rails · Discussion #450](https://github.com/rails/tailwindcss-rails/discussions/450) if you're having trouble upgrading. From 780846c6d3cf5b9ad30db7a49fc1cef3add47cd4 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 26 Jan 2025 14:42:21 -0500 Subject: [PATCH 25/88] version bump to v4.0.0.rc2 --- CHANGELOG.md | 18 ++++++++++++++++++ Gemfile.lock | 2 +- lib/tailwindcss/version.rb | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f978347c..06cfedf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ ## next / unreleased +## v4.0.0.rc2 / 2025-01-26 + +Everything in v4.0.0.rc1, plus ... + +General changes: + +- The location of `application.tailwind.css` has moved from `app/assets/stylesheets` to `app/assets/tailwind`. If Propshaft is being used, `app/assets/tailwind` will be excluded from its asset handling. + +Changes to the `tailwindcss:install` task: + +- The "tailwind" stylesheet link tag will only be added to the application layout if Propshaft isn't in use and already handling `app/assets/build/tailwind.css`. Previously it was always injected, resulting in the tag being rendered twice if Propshaft was in use. + +Changes to the `tailwindcss:upgrade` task: + +- The "tailwind" stylesheet link tag will be removed if Propshaft is in use and already handling `app/assets/build/tailwind.css`. +- The file `application.tailwind.css` will be moved from `app/assets/stylesheets` to `app/assets/tailwind`. + + ## v4.0.0.rc1 / 2025-01-23 ### Upgrade to Tailwind CSS v4 diff --git a/Gemfile.lock b/Gemfile.lock index c671e3a8..91f050ca 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - tailwindcss-rails (3.3.0) + tailwindcss-rails (4.0.0.rc2) railties (>= 7.0.0) tailwindcss-ruby (~> 4.0) diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index 18243054..98efde4f 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "4.0.0.rc1" + VERSION = "4.0.0.rc2" end From 25e3a3b499010255f7fc23601cd49a68036d29c7 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 26 Jan 2025 17:21:46 -0500 Subject: [PATCH 26/88] doc: remove plugins note from README See thread at https://github.com/rails/tailwindcss-rails/discussions/450#discussioncomment-11938025, the default plugins are still present. [skip ci] --- README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/README.md b/README.md index 99607137..623f3f30 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,6 @@ - [Upgrading your application from Tailwind v3 to v4](#upgrading-your-application-from-tailwind-v3-to-v4) * [You don't _have_ to upgrade](#you-dont-_have_-to-upgrade) * [Upgrade steps](#upgrade-steps) - * [Plugins](#plugins) * [Troubleshooting](#troubleshooting) - [Developing with Tailwindcss](#developing-with-tailwindcss) * [Configuration and commands](#configuration-and-commands) @@ -152,13 +151,6 @@ Done in 56ms If this doesn't succeed, it's likely that you've customized your Tailwind configuration and you'll need to do some work to make sure your application upgrades. Please read the [official upgrade guide](https://tailwindcss.com/docs/upgrade-guide)! -### Plugins - -In Tailwind CLI v3, some Tailwind plugins were included by default in the CLI tool. However, in v4 these default plugins have been removed. - -In order to use any plugins with v4, either by declaring them in your (optional) config file or using the [`@plugin` directive](https://tailwindcss.com/docs/functions-and-directives#plugin-directive), it's necessary to install them using a local javascript package manager. - - ### Troubleshooting You may want to check out [TailwindCSS v4 - upgrade experience report · rails/tailwindcss-rails · Discussion #450](https://github.com/rails/tailwindcss-rails/discussions/450) if you're having trouble upgrading. From f15ad412a754f77ef6b8f56cacd2c4973334076f Mon Sep 17 00:00:00 2001 From: Eric Gusmao Date: Mon, 27 Jan 2025 08:00:13 -0300 Subject: [PATCH 27/88] Remove assets/fonts --- .../fonts/Inter-italic.alternates.var.woff2 | Bin 33192 -> 0 bytes .../fonts/Inter-italic.cyrillic.var.woff2 | Bin 37348 -> 0 bytes app/assets/fonts/Inter-italic.extra.var.woff2 | Bin 33192 -> 0 bytes app/assets/fonts/Inter-italic.greek.var.woff2 | Bin 31332 -> 0 bytes .../fonts/Inter-italic.latin-ext.var.woff2 | Bin 66708 -> 0 bytes app/assets/fonts/Inter-italic.latin.var.woff2 | Bin 56108 -> 0 bytes app/assets/fonts/Inter-italic.symbols.var.woff2 | Bin 20652 -> 0 bytes .../fonts/Inter-italic.vietnamese.var.woff2 | Bin 9780 -> 0 bytes .../fonts/Inter-roman.alternates.var.woff2 | Bin 30660 -> 0 bytes app/assets/fonts/Inter-roman.cyrillic.var.woff2 | Bin 35208 -> 0 bytes app/assets/fonts/Inter-roman.extra.var.woff2 | Bin 30660 -> 0 bytes app/assets/fonts/Inter-roman.greek.var.woff2 | Bin 29580 -> 0 bytes .../fonts/Inter-roman.latin-ext.var.woff2 | Bin 62604 -> 0 bytes app/assets/fonts/Inter-roman.latin.var.woff2 | Bin 51896 -> 0 bytes app/assets/fonts/Inter-roman.symbols.var.woff2 | Bin 18340 -> 0 bytes .../fonts/Inter-roman.vietnamese.var.woff2 | Bin 9416 -> 0 bytes 16 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 app/assets/fonts/Inter-italic.alternates.var.woff2 delete mode 100644 app/assets/fonts/Inter-italic.cyrillic.var.woff2 delete mode 100644 app/assets/fonts/Inter-italic.extra.var.woff2 delete mode 100644 app/assets/fonts/Inter-italic.greek.var.woff2 delete mode 100644 app/assets/fonts/Inter-italic.latin-ext.var.woff2 delete mode 100644 app/assets/fonts/Inter-italic.latin.var.woff2 delete mode 100644 app/assets/fonts/Inter-italic.symbols.var.woff2 delete mode 100644 app/assets/fonts/Inter-italic.vietnamese.var.woff2 delete mode 100644 app/assets/fonts/Inter-roman.alternates.var.woff2 delete mode 100644 app/assets/fonts/Inter-roman.cyrillic.var.woff2 delete mode 100644 app/assets/fonts/Inter-roman.extra.var.woff2 delete mode 100644 app/assets/fonts/Inter-roman.greek.var.woff2 delete mode 100644 app/assets/fonts/Inter-roman.latin-ext.var.woff2 delete mode 100644 app/assets/fonts/Inter-roman.latin.var.woff2 delete mode 100644 app/assets/fonts/Inter-roman.symbols.var.woff2 delete mode 100644 app/assets/fonts/Inter-roman.vietnamese.var.woff2 diff --git a/app/assets/fonts/Inter-italic.alternates.var.woff2 b/app/assets/fonts/Inter-italic.alternates.var.woff2 deleted file mode 100644 index cbeb7846c3ecdfa4fb7b6c6fe0aa39f484ab8779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33192 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 diff --git a/app/assets/fonts/Inter-italic.cyrillic.var.woff2 b/app/assets/fonts/Inter-italic.cyrillic.var.woff2 deleted file mode 100644 index 90930a091a6f97cca5ba9b32f9c04c79dee5a6ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37348 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 diff --git a/app/assets/fonts/Inter-italic.extra.var.woff2 b/app/assets/fonts/Inter-italic.extra.var.woff2 deleted file mode 100644 index cbeb7846c3ecdfa4fb7b6c6fe0aa39f484ab8779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33192 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 diff --git a/app/assets/fonts/Inter-italic.greek.var.woff2 b/app/assets/fonts/Inter-italic.greek.var.woff2 deleted file mode 100644 index c0684d11dbb11a173d6e87f4c180d7633888f981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31332 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

rb2k<9Dke!%sFiPAi^fB-fhiI8IEjcPKMc< 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 diff --git a/app/assets/fonts/Inter-italic.latin-ext.var.woff2 b/app/assets/fonts/Inter-italic.latin-ext.var.woff2 deleted file mode 100644 index be543c4215fb3a36b02b252a51ad8095e8f4dee1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66708 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 W8mqJ4=Ig)hcL3V0Pd@*@48kl*_ALtl diff --git a/app/assets/fonts/Inter-italic.latin.var.woff2 b/app/assets/fonts/Inter-italic.latin.var.woff2 deleted file mode 100644 index 5066cfdf367228849468b79a9d0b91121f7215f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56108 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Μ3nT1$N*2S#`6Qu8t9luJz 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%0AOabCt z3Nc|>h1!DG7*v5v7Upb$SdsMj6_4QmjR$hz@OU1i2^DC|gr`kwRtDgG2J`H>YiGol zrG8`p;Q2_Kuy;8-NRjf*TAUv%YtD|?FX_mmXMRn5YOYq?oc^!qEfxqPkTI(QzQ?m1 zX~-Eaa=BvKrs8iOXOg|Enh@l3VKk1~ zp&QaD%$Yef&(HZ8nlm%Ect>4D@L6MZw(pkpKY{}I|ollq2)he~JtDs7%qBhj7I#uV}27RU# zwz{TmqfO~I_q?v@pP(5|gC|#gA8Y7Q!39&Q_D)7ad$q^)t39omCFqNm+HJEyMi9E)rCx^qok(!JhU zy6f+M9yLN z53xsy$6e1D&;NJ@c@217_geNg^JaT1yeGY{d4KQ$u`m0?`zU<|eRMv5AkoMOBo~>7 ztVebtZz5NaZ?6LjNc906@Bjcspr1195LmAGbzQIK(vp5X{G<7cVc$Hzd`RT=*Z1P1 zN#~i;StFMDDc);+bg@-G55)v_gcmoiYfimzJmR3h*n|o?+cB;R;o{Z2X4BDf>k4=L zNnPMj5*Zu&;p)p0v!(I}I}dD8U|2Wqntb0nZJ*~;$O2^)^oOunXdbF5yiyF<4fHmr zE7@GB0>26Dkfs%RTxs^kLX6|Q6)t&(VYWg?d6~sY@Km#->}|%J%>~{JcBqR9Wzu69 zhcB7IGxp8>?e+Tx&EBkaPyKzl#1*6H^os)q$Pfv64@ANMC*ZlYgi}B1o>#nqFU3li z82HAZ%UZVi!V{($o+uBSA#NN(sogcUUn~6nZS}@;La*1u^~+QcpAqAn9g?0Gp16r5 zS89;g|_VD6bWkF}ga=zRz zL>R%%xF<4P?`&ik0w{2~izm#AguZ=O0^6}G1M;}$n}(!3d;&LzqH`3{oL`c;!5a=0 zlR-cN#}MgxvrEMcG*BQTW)tu|Jn~h?455pdW8;zm%LW2;NAbyaa z29x1<%(2LFfQ+pZF(_6tVdb9 zJ@*rnDr^=PIhmK9c!aaU-@W|%VzuaEyuH}Q6|soZixNZ+9&;JRt0`pH(zMwpiY~?^ zEo))|3JPg`6kp7WHPP(rGQC8Y+Kn!hf=tWj(ZIew8$62MU+%eH8^EtE8T+lS1iJk7 zA!zgzkP77v)tK?uIq>WwX|qSeEvPqRLCfO>5Rl7r)Z~LAgdR7_;p+rqk)B4kC%C14 zY23kz%myC%d8Aikl@Wr~4Z#QGMrRI^Vns)g3CRah_2?L?pan42y6SfaLSN^~#_2HZ za`3*e0%{;+Xn|_<>}c_oN_&P{fn32iz*V3h$a>_QT&cqLJBP*7|}(uafvrO5`EOqM|i;fW2j6c zz**L-6_6}W>j}f)%n%Lf#fkA^S!sfVTNktGQo}j}VDq`9)1bUz+Lad20-H_0_3Cn$ z8vC9}7c^AL%Gp{1$pnh%x#dJUy4`Wsmuv@7fSEyChn|{2)8iybh1lUvn^n3HbfZ+M zr%A9JCNExq{G+ckB1_acoeC}ZF#@cKI|3YbCp?0xSy*v@R!^3;R?0R)b9Mzv-!sN> z7TKDsNZD-x;%)t!A?II)>%0l)9utax;iwczyA>taq;})XK-a*pZBn?vXRlC{c$)H( z5_C#R2xc z3A8hX?iaQWuqNg*{t2uf6a2enEFbL`(Os$v#488QteS9kPp}&^r666r%?0_1ZyTv5 z1oF5_Q4EA5Eat)!@2G%Ku|qJYHSX1Xy~hP6kQYb60xxu&duTYlV`ltT_&4tBxU9++ zb$6YbNbAw>D{U!bM*NFteWiMDe1YxpgvBV%O?fWbErKa-aJ^FuB;5S z3f}aP8d_sw$vt}7T~_j%s&#mbEbl@gdYdecPh#-q>GJP8$$bh9`c|OuZ-$6u;}3i( zH}hYl2-|-S!(k4=Is3rCr=jnP=qZc!;}Phev*(WQK+_!dAz`WV-RReZFBa#$XfdFshj1_S#n;wVz3F?BqF% z?6^|p!Zh719uKpSxdb;HKT97%Xuh9wiX{E~3>PvM;WTXunuw&a9^fvpuX2CKdGZv+ z_zn`(R#sAbAw?ohtR2M*(rj=~Vu5*jN5}x9`U_h_h%$}UqMro6pMQxzpIue()mr%F z!uhT3fg`vJ7)ihuZXfX)rK!vN(qbIOlx2Taq)PuM+F^1kxFm;ZOxMVCwVKFAiTsU$@~t zp@q{y6qmmBe$Er?%md@LPQYMPr%Ho_fulZCb+|u?F z1(F7cQT|5WS#lM3g_*f2mK*hV_UB06NsZUjK{tk-4(@Kv1`~O5Wnw&LO!;U*MT!WE z3kQ>E64m1HU1SbP6iTp-j3BL~VcV(1f_D+x@Sv+$w(Gi`kH_Ao;g1yxQt-wkX;gZM zPao4m)Ic>#m6p>>7yh3WjA319+>yOg;FarXBn55&MiL&KNXKN;Q9bICL@u%Tw*NY@ zLdr&B`#1;>!^iCbkT-A0awEJ}s}`YJrSlQ%m_R;Q%3f&G*sdx|yXS@Pjj`ti`qcF;A*NL=ZvsJc~x66(i|ApY|DSaKZpIu9DyX4j4wp+%>@;5uUF~Y6zRnr zBBD0Bb(uw#EKjAw=)8D%k|LVN-ku9Ei;>}062~aRC!I*g(xK)Ln8ASW7gIg#=xhc~ zo3MWti!h9)sac~=2Mv4vdf_?qeG==q<*_7sFsw$&<6JAl`Xf0qro(`++in87^RD)!F=!2ZIaUjXhC)Fw<{wiaHa0SvV(# zOwYJZF`=TT`#|!wOdvla0r~WU@D*hAa3I^e9VCNNN2-MAn4q}{*k@e^!o4Jxdei=K!u>$?GX}#PgA?~1psmTi14tuyohVEW)p47PM!`x zlbduOKUXrKN#0?Utc^z1uKlb?rK%uw>-sb#yv6YnRapLe=OhYe$6M?4`cVYqJmj2$@FX;h~jrUXv`1trJnuekVzxiM!I7a&u=IgT^aw>aeXty5 zmj)0ufxi2I=OvNkI4U8JOusttg4wiDc;>*nIl01&cy3`JzooSPTTcI<%b$##M4-Dy ztK=mN8(~uw7l{o1s%W3xx*eU~%&d32fBH0WzDOYVlLAMMTuSQtM}aZVZ(>E-{g1K# z%|?+TB}ze)HLWgWA+{8THb`YqsY1|AIj(1;wd{wa31~=n@JU0oy_J|!^n;t;Mn*Pl zjuiF;Z63?#p5qtfYb)*;iTvfD!=rMVor6eMA;g4W-lA3!N1Za{*t5 zZxP-X$k=K)Mci~$SPf5H(h=tLkk6_TQo$AozFBT`2zj) z-*UVy%be36ZoSyoVfRkwB7H3tUr|C0%&6X%K^woK3=L-)q(Uh15rRvUxXc%{b)n6d zj`|OuJSUjKCi(>+AOz=my^cB~?xD)awpg79OVdAkH7#VxK0@AiN0XP$qRT785ud?) zD8Lz=VUBW{a;;ZsJ+E04acqO{c|nD66|W5%Vf9IUuCC-WBRpwNDTblPAP$Ay!cwH` zK{;YbL2NgrBnOdEqvD5ez}eH=v^>(b-dG>)+`~w}Ru^QYQ15^dxmA9}XG#}= z<%&!dbx{=Mf~n^x@4PWBY8&>%xl#~=A3h#uWK(mMcFXS`H_~K9D*u{|mPRIXN6Dj{ zVSbV~>SD)O21y3xRw5qLIPVwAf6H&bdi*=vyGUgIBfIz3#gPBmnd$UYHg%duPLP4GPG`;yd>6E>yxr`ZhcDB@nrX?G zV_R>2H=n0e)HSM_wP=MYOWeK$SwTC=<@E+35$J2x$JAY9MeD+Q*V0JO*zoDRcBiA( z`L{X;FAmkTIT8!GR&<Og5PnDLu`oQ=C_Up z>QTW@yti!l*`GS;seul&?eKAb@132#2NXy6i4vDNHdsIS?1gu&N6u{ml(~=Ya;Tr0 z&N+pNx4N$3ZBz;Q`jlDr=xWWDc_vMY^+Lgp+}8WVx@9UzS6CvdJ)G;e1_T6$;NFih zq|lZPZu2GueLg&TYN1*%(Ly$-r7V}#5L;0Ci8_3D#%tL+qtKH_-^8CGa5yN!1_ph8 zxk|~2C(}i!b5-W?ex)9ZVfpCMWquz_io<(;@~PO!3CZR$0O#0JtL z707(goaG}nf<|qrV2~S*GRkGY_4^L@PcckKvhAP_2+4!VRFS=)&wrVL_`u$l5$%P0 z;8+ro{}r+qiP*E}FncsrxzDn08ic5bX~C)0C)TBCh=k>_X{H(Qj=Nv*L_ry59b&I5aYB zm-%k!4qF$Ju5_Gpjs1!_dep|7zN#g&(h40M$b3d@f?@exmV1Rtw~w|`5M>NmN35ip zG!Q3WJ>O6DAEW9}L4}TWI=a0Ya7s)}=Y?FlF^lw(Wc3C=Wtyg8PUc6Qso4f0i=BbN zG+D6XO%dfg2ek-1z-FVn+3DzG+1Z_18+ob+6?W|6!OMkSsmtsfSnB|L?%>4-*k!h| z-$cYNMYpr(Z(L9a>{-Y!5cQL|bsDr=ZUH15VJj)0Qa7T1@02GRf?uX{b3 zpF;yx6uK(+ta{MkN*tjeIElzfh#n&waU&MA>=}bi6%4s5G!I_N_S5hvOu5VA@ea*v z9boYkTV=oDU8OUhm&M#P+r3W{#gePVow8gYyvp|!+U>Iwtt?~>APZFY$iL1?+w0V= zM^zAb1G30(BQ5RhMy@gT`5B_s0wocm=-lV#tPw@+_?66})__^|uQ0w*DrKt06TqGK zb*eO_r9UsktNR0{+ zoQVS1ZFsaG)FSmW3uV)CjqW%f{I4w?NrodvXs{|EIFQl%*`nz9c8&ATo#YcN1yLh( zH9Dc#T3I%N_FRnyMwX*cr;meKX!ucs@O4Fvet;QndWPxY66cVLog~?*K}3uZ5qLnz zreRzCI7o>Ek4%6p@X$jzFcKG{VkdA0$0x%s8qo`}a-0#0kzwG0x0oCpdD)^&h@R)q z_4U2VMc|8z%m_gPY}kXftj8p%z8F$%Kb-?>6g+D{kPj6N36?{nk`aNr$>u7}!@-e< zlk6d6fDU27Vq%S5(JV0J#ReLzb9qy^&g0xW%QPtn&esas47AWG$ctgtg(2I$)v9Sm z4b{FJ9ieFq6CuUWrZ^9VexU+YjdPSRg~X8=VMO$J`*dUSoni#QnHe(9kRg;IO7WLO zc#}&Ihvh;hjZQZ{gR)=vo&osn3@BGX2}x`g0U=qC&n{7oT_;ztdjDxaa71_z*~kD@ z2%xYHcU9H*BYmp?*4z(me);QN(^krO;wyFFG;ks?;%WsFZ;Y#FDuhug(&jd5Fr4&y zs6beb{m_J-Tybkd8R7)RsG%cW@t?-famCz<=p{s$c^Q@r5d(obe^?;-Rq*ggJ>E4& z`PqeL_(KJK8X;rPC9J<5sK=YVe{{{_ogDR$asV5&ih9Wi#a4K@cB_Wk^WoQ+@=gGh z5fo>ExwYEOuqebTjV{Oom^rCmVBzS76)(9u4eC=Kw}qm!n=V;*Wae5yU*%i0tiugQ z-=NKBN`Q)4@kzHAQuq~R>nJe-w;lEWvGU5MVJ3!^B14U91~eB1W|VTr3GglIZUvPW z2;Zwzrky)O8AU#g46@C-1_Ij6brwbW*Q5t+chzz$uF#hVlP$sFeiE_4idx`qh^Fv^ zMEr0Wup4$;>teAd2{-z){{F*VYNluXoyH%8abA-<2Hb65A=CXg!}GK><_ zWwmzGMD>q$}) zFWjZTW(!PJ1CXZYoqbj7IYS(|1=a(;ugFCsL2oDY!vSi;iFd+gOO0q1D^%3VZu!@? znE$1_RbV?w-PYad*>p`5k_oiaR9L6q=tK4@qO_QxX-82#+0PeZ-%GT!Zn&05z9!LO zF`LWI3nJybqNT$0|H>!7C9iVqRe@f#Z&xIu@?{wuw&2gF3kB+S*A?XVIcYFtkrxI| z|3$)CfNt@ZGx`*$P<6_DFVL!Tk^NS-XPiFPA}ZvKpvc%xk+V$Ed7AcQUoAGdFlc^^ zqi9J2>Nm!_S|hE)O2T`PBNbC#77<+ZxT=jEo^)dvgCn%IMKi1)-P9`zWLKWmq5|UlpEo7lz}d>G7NSV6pO{cT&}Dc3P_tN5YU$tUdF?M3j04;* z);V=Sv>dt?;T|<5eTAttZbA2_&eIoJF_Zdp5rGxmXu{pnbsk*yA`od2tH>QbB2rY! zY)BVW0djh^)lR7av26>n3 z1GO4cbXeC7m~h*cZMEb`~K``Kn)O!NvmxTBJBlCIGD|_#MSvQ5fA2TFNxT*XxG@HS zQj#tiLM~xCaS=_LaNjF*ygBN2mI)&!Q=^h7%C~;m9$*u`)i#jG;=}+8J+euI8+5 zQx6S2M765I7D+3Q6l^m;=n}=Ccd|1woC#v_`7{(=0Wy;fMf-evO~#`Bw0C4E(y^1u zpOyMm>ZcxAJnZaOnj7nc4JC;k0pFr zn=fqD2k45jX~h1LD44Bndrb*B%UZPQGne7Ah2=FCS?+v9{DgXyL^ZsJ@0I&zvqh|$wQSR*2BIf-fJ=2xpT+io1W-*RRm2at+mQ>Y(o5q81WMQ8O9O7K1|s{!~KL` z7Lgd>qi_$=GCQDE8%1>lC?K6!r|}7v(#Efp^+vBJaxrZ33$+ zE=g>{N!MxG4vjEZn=}U!=rNv8JJ`75lnC`nQKY=MUy1tRM$gkC1q4U8_XU(GEop&o z+u+{A<7mBAn3!C(D_XH!o^hMmUn4+c?BFCCP1tsQaiuEWLM1ra>=C!{O2E)$dTWE` z=U`$H2{RLu;xPWuV*PMrYl!Q}-} zQH*0Ef&1Y>d+S13(jwFYUt0OhtIj+oEEzf&f?SX4b&@^A-eNyQFE6J=84XxAo4ka%$?c_f6T zMXi0nLN=GTg@s|wxxRbCEN)_HkLH;Uz#GuJ6UO9_CFpoj@pxLz$g1v~xS5qR1w>s{ zBC?mx>|upQNz?Mmrg7P4e2i#0FYId|&^xB-RArqpQ)lHD6@`VW zWwl-xDlSV06IH{7Y*1JDgfg_bX$VgmYSQzxD981P2xrcAtXHXPRK?>6M2{$P)~D5G z3EOVoq2aB!Y<8?3H(qo(;=e32&u-ADSC%DyPPxc)2n$t?UEUp0CF$ZB5$;8!xj`yc zFjC)`lNsrkq~2!}t6F|w_2!|Dv7EF*KQCp3QbgCikfl9R6ub(L4ruP92NFtQTZyV* zv5-^o^g>_FIA=$MO>sP>T4Zs0ga8v zXT_|b#hq(bm7z5kjG}o%`b|$#pggw5ST_6N-j@aT*r+__I0A%&aFEu#d@CG1p-o8Z zJPtovv|E=(IA@nhLv7}Jr)rFe2tAH-$f)kS0D=k2E=t2(X5<<=q@FhqwuF20Nl6cS zoIZmr3mVuZO|~>=V_aiCD#(FEDReZq>gl59rPhA!djlCs-DpW*rkQ0aB{ZodpvInW zI|P44dS5{2^KNP6+wZ}G1L>Kx@3MSt1*%-R$P<4a)EgBx2}zKOC0}shpOW9Kv@r*K_B!{>t`>OP0(kQ z-n^pXVM!e9vNpgc4aYF;4z;NvA>)YoL0pe9j8B7~k*kx5v<~Ty9Xn)Xv#cqJqB6NY zBwb4gjrr+5=3y6Eji%^@R!fvUdOEK3&NAym;}403@pfSHDE#xnWEX9k7ajhT_CZ%f z(`B+i*kSM?xSeR8I}hUws(GIMsYY5do^hHa1m&Hw(3W8{O2r5Cp*>QfZ8R|I+IlmW z5@Yik!bV+>k8{_SkfbKh*{lQUCsre-4wS?mE&7nH!GA-Lr!r@x+x79AH?m9Djgq11 zcU=kQs3GOOZjL5bTw`P-d?v8k%mVS~#?P$$J|%&Tj4djy%qGoGVf4fs>Z+Pf*c`Vz zqa~D~veUqGAPh?wPTA9YM$9!)v15FP)hO9=qA4n=DZ(Wjg`;-+T*+cB!EF&kig1v5HT_Jo4ux&dA;Do074kaJ_asW3 zp}3@A+bpZA9mArGswLL-eiN?#Ac1F?xFo2O)@lkJd)SSb(56YNB%hWx45uzi7PNR* zGivq|tQD?XDX%AZSvIta%RtuLRn6cZDyo!TePN|_pGu6| z?34RAUq_umX*u8OOkVCB?UdV%_@L25Q8ZziZOBe)+=oSKLZyZIPYc<%4VHCP;gh3u zWw=r4qidwRKj?%Sdqw@Ih27*e9XT2m=F>>sFecy*eSpdnOsf|4cOo1r$P32W{LOS@ z)%ujQn1VWzR)1y`$*lU4?>dTXh3E}2zz;@LG7ZbsaBzc|BHvB%a&1?Lmu{&?k|KgQ zpeues$X0wE$5XlR2Z6XnS-8>T1F=C2gnSR{KUk8>Bd$7M4uEr)DGnnt=AB{yq(}Jn zKD$KJJAMiJ$bwP-%J~2#K6dCnh`bCHZh@yrsqF@z8RO*GJz$=sx z-iJ7+mn{kiE3v8}UH4(48VIVg9IVNdl}bg{iF(<#?Tuy-E=k}wg6b99Rd4Wc`JJEx zU5UvbBG7=R;N%@lE3a3jRM#{_PKelG(sl=evK(F?R)bSZ*Xshf!VZ(qe;<>pEFNZS z<~qO?#PI&(GEAGJ++B@-Dp8e%(|~di+u-huE%HU!MVqp+^~_72pY$EB@w}XQ$}1pk z2_jn2{pK>xe;T15c9rgc<$^#&>{2y%XecVVWP1O^!Mcd=Zt<$;0f9BfqWpiZHf73T z`&Q?&?Kh@XwN_~x0VmqlYPKpH`MrKquW>C6+qIDze8$G1_5YJAGxlSeVe&j@3zMBc z1|$q?px(RXei;PQ5`0Ul?%fwD^dGNl>Da%Aq;BAw9o6 zyrS!Ul%O5V?rTo2s4rK*SY9sGTKf0Ch@ug$!h$%q4=VP`0pqDx5js6Q1z(GlU&UMwUSGjTM{bt%whv{?bG$ta3s>)5Vd+P3h~s6AP91q zjbbRiB2gkdm)^&3fHU9&hQ??R%8LduHlhD(xAWH+`X8|9F;UqIam$&YIgonwDU zqhemLZDbvdotCp$GjlMU=RjkJ^nQ7%l&0#Q75>R}LGv3FV7LVi+QRXXyHHvbdatQ; z%P>nK*+f<*cep_I1y?)l>c9lVV+U)NuODp{L(Yg`df0Q@9)6@mKPUuTkEd! zfiKiOIeuxaviZYK6VFbneW5!A0!-OA`vE~17Fbs$1>{juvG-<#^kf*4poQNFWYr&5%4eko+WuM7g z4ZV9!bv2=ZAu)YmXx_1W_AZKc60}2trd9o{S#yDan$Hnwjl^!v$*|o=L9j(6R(y3l z>Nz$LNTsYb_~vvp9_e`|FJlwV4A^b3yO2=79Z3u%MbleL`Rb@em%AU4Kis|ynksGo z|KZxrZs1bAD4(G9?n2H>$v)7&%-2Uhs)bTSoQDfg;9mjcj7TZqged6B`sLiq+KZ9Q zZ4SnubtY*CgGYZp={r@f%r*_9$E(8b_uK!q63-{39{iKPNB|HPfe#z@6 zYfn8;X*EBq++UBzDZjY^VPYD(j;ndow)^3z@EX07bw_ByZHPW z)(ofxdS>9k(*hF(>N8knHqBs<2mz=oPDAEA<4|$vQzC5i*`Cj}+nC;-CrsSrahnsn zIO0uB{CJJ)&cf@GCtbxMRGcE3Lv=R05M4sp&d;@PX}??MO)XCUhVh8qGUnW15*z>7 zj34!kTIiJ$R6{Mv^!L9qLPg(6M+pUEF}1{`=UJQo2OuxKPVEpbyZq7e13SEkHE&Vz zBlUNL$j`OQTqqog-hSzwAH=Yu*ClE39QqUiGDIH(01PnNWLeN3AVKX$Ira1{TjrLF zb-qAkYhoSXGbnLR$4ueOAo3S=kR&pLjR^)Sq3&LFEjETvuL=Ar8+FCN?-Em9z`)rn zY+oYnf;R>Xs$gSwDH1NZ#?Pluuc$vM^|G{n6ma92^d!I9Z zdn35lzdAmD12&q~$k^oH~9r2}sR8%QC z=o0{$smUPxxp%*Ad)kS_hKQF*5*_GNA1+eO%Oa2q$u|soG82i~%LJo-YzSpUvl$^O z!6;ElL!%VUWeQOxCiF@w{e1}{0zQz!Ae%or8*qV}Bm5)`j^V)Bp#VFBx^M%fygDYE z{i06HL{#AhEXyqF@ujuoGM!O-nEt3)radap$WfC_2Yc|3fKL6LXHV8sdga=I2hTB? zMPN-tMpzQJL7yoEG1!#C9d7l=!Rhyfki|I9+ZxaD6L=e0jKs{axs1OnzxN1o_INM9 zWYGGGE8wbSe>#i$MPr4Ha|Dy6+E7)k#`1tmXXB$z@Vj5rsUpSM4Dl8Qv_X3{Ml&$M zb9J#P)?(vIz?miEj+Isg%r<2{NAYrEkN?jmZLYl7iuDTnLX}Ds7j~W*?=wF=G$%NS6^#tOpv>Md1n0+4Rt~4Xj$In{oBr#CZ%CtQmZiS z5EL3Y&Z9IQxRMP?KOIx)Ritc)>Zbj2rg}Y$T?(zCM)7CI%UOs*5 z?)i82bvISIJtkgcr;lT4ZEaG#PLlAvVz7hXC7K%|6LNZ6V`2x6_1CkjJ0g^2vx&5w z_O5LGtAjhdu)i)Yk24jRrv}@FVT(_)k91Z@t?baN36=haGn-b; zB^ifxLO77X0Xmyq7N~g{e&klMi*T3yx_DG*UKIAZLQ0gyv)6ve@6FqKgDpd%I#^kh z*;xX4%B~)4_5!#)8Ga<%sPc_MwQ$9s|+TkCppiCITzt4hbEzAc#Zl0Ru%J zU12J3PSjY`*H*p%gT?rf_j7~&omcI~m3pDG@N$}`tL$0tGO8wxn^w$6#Z)F}p&O#>_n^hR=iN_@o8^LO3 za!<9;GK%NwcPqNbGN%?}*5y2xjUd@U?eQRC506bS+7NgE1Q4q13~L~le8UE>;&U8y{{%~T+mh3I~_Ibf@3w92U1t=P)<#=fF?*Y6{VUmzEK|qrL$3sE` zb6akoa+xc8S!_Yx4Y9Og7j&JLWF64|YP_aE&5N;mamYBoZ%Zay8>)1b-EwKJ<}>gR z_{1JN7Fj5YQ=|yQl}v@+U38`T`e?_RP{w7BEI6BEeFW&hE|dy_pyvE=cXUR4bBF2YN+hLl?la(;OTz(IProd)swF5ctJB;YBoti$@>g5W_bQ6 zgwka5XFcA2)6ZRC;kB_8(Dh-HULWG*vhT^&CDv4An_zz1sVO4$YFkPPLnEn2r|(fC zXyJ88dx!mm*Uk>xcVuR^{>C)DbwM$if5BsWS$zPR$LKdga$auATB6s`>j>6biv~H=za$4IopB)!| zLqYQ!(QplN3i+Q;_2sWuu?p$Mc zt~Y%D+E4;1`pL0-aCiRWzbnL|V5zufL_n+w`j%9RVqdhbGShlQYq8udO~^2$9fl1o zk*`?pJ8JdxtyM&4(TJLm!PhBnq?g-#d#CWI%b4$UB!$+2JFl${Ku5eT7#rl5Oacd_ zqNN#k`O1a`ZE&5STc`W3ur3O>s!W(}SHEz8HXqv=Na7+Lnlr(n?-2z-6ouP&bF!_b zYlfGl_WUID`LW#E?VYlQUdVX&1A6d1HdOg}c}%j_RLhOxecCL=Ct-}i`|;B!{9H|3 z7HcGCY9H)Jw~1|gHMAEU@Z#RK910oG)!$)2ZYNjK%VHw?pI|`CmY%h^GRw(yTDiIK z(nt^JIew;ha8H=ssdBqeLJ3K`yESI`1KT~4>8+1cT7P#=*$%xrWmlUNPZ%lD^z9QI zHaJb|VW%8W0O~>^MO;SAtW_|Q!7#D{4no5r6CmLD^*>qGI2g(KKc;O)F$ND^sY90- zGGx&Jt&zt-%-V@+T}5?6E)4YSR&_}{kGl@aylh)G;2KG>o5&BwcyX9T+ZiS6_&X0` zy-Yit`xet`;>*SCOGf<1b6;jrVknP^e|k*oKcHF?9iZbNp5u+PS(D%ZUC&FUv&x9*Rv1JP^a zu2oj9v-rcKR|>%%e+160Mms?G!0qS8Y^XL+1(e#9-@PQxu@`z!?w9L&V6?S; z$I4A~kl_IDa)j?tg?^r0>cc|AkjqsjN6o>gVDq*ejJ@4X&nQygy1cat;>eppu#w$- zMqYtixpOcxt6FXx-($2dLna{dYiHOasT_;S8`Sr+glw_zy50XmD_^noY!J%v9Nw14 zAon!&h_a7(Q=}kL!b}p^YK3{&tZbkK18wHf6S60Gjl$_&(JRdttaKn0S>p-GjEtyW zP99{;X8i3>)GkG?B^_O&(%1vC87S*};f3OG7(Q`rl}vEbU+iMOPT{%zaYgTPm3U`o zXHev}naWJkt=uW>qd}e*8pU^uZ;o+0M!nREi{;c3Oc-~FFCr?on%DG@I%CbdPkpr1 zbGt=$6HpO(|M<}`xP(SD;1Hxp6Yb5aw@t3A8QR!R7c|;-7bNYV@pkp*?pOx~Q*vc( zE4RZ8ZjE2ha!DYR!ScGM+A0#1XBpR>M&2`Xx<6!@s_>RcAz3rObxu-W1YOW4+mqX_ zNow~O4Ui)1DDD{JKG2?oCPRV*-!WtwTsKL}Qqkt@wZo_6wE`cG?REHBr9p@{z+z!l z`Pw6HffVUuPA3xEs+<<>fy~EA9+n9X!CY$}$%C+gZuH6&a!sf^WOdfT&x)8#E_ibo z`VWi6(&_$nq$t=dv6!MP1*1>_!boIqKoe~GqF33_^!rcG2&3Et=O0Su*F;SV7p=_u zer^BZKKtmAo-cGS<}G?X(V5S3SIyRDb>o)7mu2NWzS{zajieU|(%rg^qD3rd&Eufi zbVVbxPbe(69q6-a=Km>#pW;}CXStllU*mez^+%Rns})1_BkZ#!vK(T@7KFQ*5Zj#S zKewbZm17Pj?6yk=Q;oleEP*tc;O&{C4w3h8j)+ zNea@CT*JiGXmFthaMp}~P*c#?r$gnJ11+^LDZ!q7JBX8NX{PLmb^-bN4P7wBa7cn>NxBWmP(%MjyAmB^zjFK+QPNm2eF|*AviaqdT#Kw|e&2rl9 z194zvrl*|l95+F2iS+HYyJb6pGn}K3*V}dXug#COY}7N5n6*d-J9#9!Z&ALlK4gUg zc*cZ&?tikvaNW%WEy?3bo&4WwJOV0AL5yv)CgIDifFPigN z{hfUrgGDI|ht{>+JU_qIuuxsksb`uwzyCD1VhNsAZ92}0)wcA3Ha#ivZmEOsli(&+ zE}R3C(}_#ms3c1pEoDn0w5#f^Q?eyl*asi^g=AUBFZ(X6adh_QR<a z$YxEGGYN5dWlpD|`~_)A!&ZnnDD{YxkV&=M;)#6P6m_l-4WA6!Cmo5ABI2-r8O}Qi1)6~R7PUpS-+GV6q+GuB+}ozi*k1o zXJ5(g5-ugG{kby%;?4m>HY3w7SXAm`R5r(|%^P%0U#IIyg`bZMHJ^#<3T2@aERc<@ z1%?J=r`=|}{Xa3p^BoA$9*Oa6Av$=@f6Xj0@PgnMh@=_!&l&2HJ*}l7+YJJDJbqJb zkeX8#0YctT)tdHJLHQyEo{h?Qcj-WawTFRyu=93Qzm;wtn50LChe!K*?3b!Scq$sE z1|w{Ja})bU`GUM$bm+3RAD>}!*RsXob_w!69u z3%`?L^Nw@KC`rDJE%Ep!ZI6W0qOCnDu^TtAPAHiFI#iq^HN3U)Ac^3AzNZ>i3S48kFw89yAC{h1<+{ zb52UvQ=&*n(6*8$UYnwT`1nDY3YrteT*~UYBnCfa!ykWjt}u;BS2^_7?6c5jSsSSi|vsTiTPPbUeOoy_tMj#C%Xeiyf`bYhWk#ny)cCiq>3bD%_hh{=gt(vx$kMd|Pfty#f?-D|#@hOm*bQcK4*f zi@a%;*?IFxAN8ACCaS-**It3<6A0N}!jt1qdl-}<_u zJrcg>5a7ia0}zzoNj|YA^?*}y64$O)AV2YGP!TN98$e%)$Xh2WfG+{ly*finrX&y+ z=vWAX2Q>xSbVC*sXw8q|Fbn0`C;=f-hAiIQf!7qsfd`CMsz5^_Ll%l=${;&nR3TX! z?kPY*T*Z*<4U460hB%03nJR^4kLwVpwGLpZMiOY*G^8PRdc{M7ic7?FQh;u($Rrx1 z7Qk$4LONwZP6c3+7kJ{~9gre{SWt^#bH{QKBE$;d0%H%fV0{b1Lp;WSMKUx=1S~wL zc|c+!ObUQSjMHjSGQ&yF=H?cRM;W4F4Puen6JOgp9tDU*qFDx_(Stx_AX1%}@^FIx z>e_jmKZ(XL7NO`yQ}nVEL}RqG=JtvU;Eg^s;>HSL3~IA=7&#?@{wt5rtR~LDY=Gok zC_-5PvkeMT)F7RhLWNR5hZuZ%mui3l;A;d{@@PJ=Dk5L9Fl-P7#i5=Q8Vd-);azOg za%U0D|D#eiZ!_Qk1qu}Uj(P!Qf33q=%OC>)tfl}8v2iZL1EK~JsB#G7I)GuAamZ`n z1i*wclf|SUaFJsbe7ctpU1867}=0^1ma z7{jk`PvgJ?s6an8Ak4od`k}G(D$B1JM ve~Q)?zx4~9 diff --git a/app/assets/fonts/Inter-roman.cyrillic.var.woff2 b/app/assets/fonts/Inter-roman.cyrillic.var.woff2 deleted file mode 100644 index a9378e78a00d90f3160a57d5d643dcb611750700..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35208 zcmV({K+?Z=Pew8T0RR910EvhI5&!@I0SBl60Era<0|VCp00000000000000000000 z0000Qga;d)5FCVLKS)+VQi=jUO;$ltPzGQ>Q&d4zff@jsNH1&(ftzT7fJ-ofjwk^( z0we>99t(vM00bZfgc=7R8$b31W7inuE)YxP{Y?X|fIHsp@ci9GJUlWGY#abcdzYX5 zpObV9*`V40_3Hn6mLS9+A{j+AMwr&S5aWos%`Es?$hQEk28g~ zyCR1IUC5kXsvn>c2!Uw2#+qoe{O5C-UeR5kx20D}pD9-if;erb`=h<^IP&>7vNGa( z76I<`5Gm^k&jUZVKlkk}888;K-=T<6fK^yo`G@D<+aK)bmz5>oOomm6e2ZAjr^vtO zTju+XER@M&9uOFyw@r(^wb~h?fuKkLP|Vn z(jbGtB>14Y&o@8w_cpu<-(3M&F&I_HN>s^u-~XT5^zXo^sDw<6O>887lF)?qkQ{$M z-90TBlF;4$ZCSg>K>pgrbXm=^``ctEJ2BKu%p@5Vbube|oggZK5eFRc3Bw!yA#d-C z%wVDe+Rc+#QwRg=Z6f$w?qK~{dotBA)=05|x1Rzq2r6x2q5W zz#@8!cy<2ly(c}nrIqTRy01tUCEaP=zxR}T(vz)#0uL-e5MhKPjADeNI4>X^K}55a z#B|3vgyNs?l+vWjx!O%#(y9~s&OMQEKR)n`vKV3P25XL|$8WQMjAibaJElYb+Z(3y z`Pp{w-w$_<-rh7bvvb}4{(Jv^n49gN{=*v9pm7ZtFwn3@Od&$Ru#Fhk2oDI5dJ!TG zn9@`;n$nD2X{tFVS7Up)=Jzv8eVs`b)txXWO@ST&CmEA%4-4`@0jbYIpZ)R?^wN|! zJxN~Mzjhb`0u#ncI{p`^ih2+1&Hv}h*1y%Mr;wYiddHxwsf|3zQdNz z{MlCcyUY%=!`8pWlI_}AOJ(!??|IdA&eN0hEh~!Re1c{F1(MBod)4 z|9?5{+rA5eepqgQC7KW=4D2yvTtGpnK=SQUg+fCE8tgXH!UAp9$ce+sas zjcoT=($CQoJLjTG%t0U@3y|8zv?hcUcDq?^L)wM7SZ*SSIw@K+S2KbS02sX}WYYU% zukU+MliXP-C59^Tjr})$-Pix_foDc{CL>}c6)S15!3O6puKzA$S{>Tn?YB#<;zSt| zAq46ll#0y$y9Fe%ah_+=j0KJ{tpro9w7GoRXWd*bu`M+|rB8NtuFF zFe6xnU|)ihU?YT2m~fGzB$G^Xekr7tQG6vLgscfUN>QsO_W%;;Jzy(R8mw3pteNn$TUbzRnqdVhEbi7^Z76%T)_>TB6@-KU?drJtiG- ztWF|?(+TICcga;xJoCb9pZ$oxsST;r%mKHUWKuLDM-+p33LTT2?ueYt)_G-gS(#l? zysJuZL%H2oUJq5^w?9@qB?Ry?0kNPcKy^wO2RZ;C2?2-zf{geTN@YejOv`c0z7jRk zdf>>J3(pN;fC0#d2THn1{VgC61o^)uG6Tz?6#_VjlSH}5qf8aHw0U-E#}*Xee;7b8 z8h<)>U`y*)r*>d~03Zkk78Xzf1RH__GcJAxp-h+oD^^U{v7h#(sel1&GNrC?Es-9c?ju&6)}X)5r)U{M*m3sr#5 zj)ZX?^pJ$DYbwTM?YZPQ{S|_*m1)py(?Bi5uZgGtRWS(Wdee;ZeOTTh2T>87x;x2D$9`RJooYPeel_AsT16DN)Mr zIw;*XLYfizW`>PjFJq@Um9u262j<0Qu@(BD!n^8pAi>tbO+8HN3Hu_p!~njTX<1Z> z`97pULfJJVq|X+Wg&)po(tXNc5o>F*#L6aC4>Pw@)tcNU`<|^nJ<#}{M>(*R1}?N0 z*09Ljn>bP}Bi1k>s}Sq%*2q)>IipJj<<)pkPY++&>gS4IWRhpEbw_H`|5p080&L{I zwYP8TbTNb;Mlm`45_6Bplr$%vyJ^LJw3)Y6o%VF(LAv5lJ(HWx@T?c{Rt%r{a{fP4 z1*mdSplXdmT$bNQY1JlLhfXK4O>1PvSwqdaY?P;Ie!Mq-HNji2O!VG6lYREZRR8&I zy6^s)X;YCose#KrFAt++thzgtEsrU(?T%2k-wW>DmA$gEJ15z57kGDo+z*~(-uHq9 z2!hN4U`r0*#8xl%*a1&#XwVr5$Nj$yg^ev9b1gwIlo$lZL2{a_v{=6$%vP^)@3)?qB#L+PX8$O02HVQT^ z&|yVS7^8vMGLp&vq!<7YvAZYbR4`U-su`*V*df|6b|`sDZ*k(piRxhDVyon>Xz+L&!>MP__<~`PkwC&TI%Gzp z_O|qdG3|S7gbKMXm^QnGCNuT88Lx>+Ss-G`39u3D05+(!1spW@3h61u`Sp>*F1@h!ihVx}sX zdGu0^_3-qaaegr}xjDHdxiz^hxxKmLty>VxAOXzPomeffl~|Gou{tqn!FPEhg3>cr zyJXS}V;>p#6F|nmiRssRuAl&U9QgT|mjy6zkb(&i+=O@n7zjd@+Q9I7)hS_>L2*i} z%u4ue$zk12<-nk#P)Zn75nknFiRcPZPy#UT5@c=~yf8Yr^(V8R1&9aPK>=_WT!z&9 z9gHvd&x4*09RlOOv?YjKHP+sG|B$}lJ-KS|k!M%kdE|}t=EgT|Z~pb+#*csc^rtV0 z$C8gVKJh~H=82H~?thT~Jo2B{XHw50&nH`nRmv z`Rh;Jd@G8I)V4sHnG{J8}eip=+Kz#|KmwXi+Hf7pZ-V?5VDA9&F5vHh{yx&(N68{ZN}xXm^b^2*0=Q2A_zZAg2m0q= z{2K5-L)fhiAHyG@3uALXszn2Q76gW9w`IMCa4TfjpsF$QP+hOuT&PGF(krEyB&8LtArVWI+yFxi&B)uf zr>0*K>LZq=T0=9*rGf(-%*Og`?JI6BS)gX6oyEywyVnr~1I#TqFiF1dHe*{+DXB;n z;ksGY&4yVlWlLnzJLOaomwK%TG-ks@?9DoL20+)VNqYcd2}O9kGn+g51RODbysUJ< zgUv^+moyujlo)5?4W}O(q;YFyr-44i^^_=-l0mFCY0AGhh7Q zGc`%k1>5&0{QmRR%V$4ph`K`wSEWkiQAa&HBvaYn=Kei7nQ`jTLXj#v{i)EIs)%kh z=9G>mEyH5)#qo4k zs!>UPF=5JKM;&v-X=j{OoUdbraY18Yjte*Alrlvto|eXaXtf-i@Vr`n=g~%exiF3=V8o@CT% z{@2q=4Op|@R@-RX?sXg?tpUR1aRC40G>es6(A7QICRG!W&>(ctf|V> z)GS%AT8>r1Qkx{ZYCjGcmj=j))H%Z6KuD@IXry(6A^lUAn9>mGoVtgW_23f$Uc7X} zhYu&AgwlP(@Nw0i06}6Qh&ULg7lP0iMM;Ta_;8$zq?4}zh01_!(65OljgvuX>W?8H z4H+0o#*_Infq3G{O9EM#M^>`3m~3RD7}?3r5^|7}Wt$5l<8E%q$~2FxOY_RcG@oov z^Gltyfb2+lnzni(xHmy(P3{(T81-{gdK&Uwxb~{(lJWb zbgUdt$4TO&<6qE#2~4016Pd_DCNYUuI~hu7I%S}DD&$-`O?sr$WobG?{-!gPBIzvg zr?X{sI!Ah^b7f7sK$52mWo^1h-05Q3k}eT%x>UBN%VbKrT+XK}hEaAU- zVC5=TN#YvU2`$?OrJ=a^yw$z;2F=z#B-igmlwPs^S*@QPhUxV`udX?@aDX|l8tw~qwT(jv`Rln zyY!>9PCrTe^s}@{zYLo9E0n;i-+td)a_kR4`co;8{*tbb{(iwC{_uyK{N*pZ`FH+T za{Ze#LpJ1p{em`99c#skSFdD7q-{hW<>;=m&FndYo82>{N<4gdd zdtv14K$f7w6~dG9oY8OjZ6G8G>17 z@P1;LRA4zJV@N^zhGqQdTU3)aa}i7?)hPCi7FraRph(~?VIrcIhRngHh|)ZEU9dig zrM4uxL`BF1fcFwaxmn^rB+EolQH7!d7wMhsEgYvR=U4@qHDeu|Dp&HVT^)Ws1{J3| zF+H)QBd1R<{bKFvl*c$TXXhFZw$;H!Oi`QKbziunc71P4gmbczE#(ZAmyf{2^-NQ) zj&+_Gdp0fB{ILD0%k9CT+X=l=1P)oSFMD=0u?b>~u1k>~t2DZI%~Y0ZGSb}?eJ7Y= zn(Yk-T0L^hmKaY@>x51>j*G~u%1xE5sryDxIojT1dCJc-FQfLOcbskB+I~q2U&f@F zXz-CT;W?Oxf?6t-q0uwU!5c%HWZU{aQ#D!-+xwyKeey}pM=S5VT8XyGk*T0$5y+$B zB9wBRSjB>Bn9ah0Cz5dQJ}5uu8+xW#({qKDenvqM^1N%_^o?vh7UI2BFnmW7(s|}$ z;;S$dAL240RTrw&;iMX3OO0}{(1BtlpK^xp?=SIu=s01>bDn4uo-- zPLJ%xZNOA6qm5Or7m1_isKV^y6gezYZiEbVy_RLKix0}!=B0)6ePfGASChFE?6#@V zf#byEzja`$X$j_oz&oef_Z)zE^=N&MA$aYhbmt+l_Lb+xy(lP< z%0S!Mc9Kz*&2XMcsBt_!mB(5ej&>u~gXCnVr60ke;~^oWe?hwYPW%K8j%f;u`)TUc z$EtZ~0w}S#$e#xF=1hBd)uHM7)rein(0#O@W}X9e2X_SWy$9(}K88oEXRF}|K7C}e zpdIv3MLmR-p0m`%r*Eb0P6Lgc@~qdSaF$aY_}ng9hQO zED)j1-jmEO!7HCi*||PB3nklvdtu;zK5bZ>(OsT6g^2nHuI1Q!E%5{JP@_v71-g66 zV!g42bnu0C|4{GktAjmtc(6a^Y;0PC>AEkFaR9jiQuRtZtV^6anX$pinq7!$71$`V zd;$H!NtS#tPg#nBqx@t)W;Z+Dj(%0o5rr;TEo?fvvpB#(Mx3^pkr(pLnl+zXZslH0 zYlcHqBB&Pwozj^(PF88y4^jyu&pwVLNzIcH*PN_s@g$;nodE@8iOb)LwaWG6DBvWTZku(;Xs2nbJ{?ytqUH9!Uuu&I?PZaZ{r}v4M4xMDS%*Mwu{3RYzx9XV*7z zGNO>sl}=y=%bJk+P5iDyo}t`m9WheCiBdJS(VagL%B0T00y%E!dsF1;C`t8b`kf5M z6@+)~rj;8U7a641QOt}s%2s*{oTP0^`5O($K=Hx)F3txm5STBwvnou%QhNh$1MqSM znxr>|)omDJ0hZF|VlM*b+aBE^WgO0PSY@&<-}td$+|^7?`+tyK^wdc?U7$cYnRJPW z>AcI%9~$gyw_tFGfl=!xz{kEBzNpT+17VQVM!=y!urs3g=0}_Ywf1WM&o6LFRktuv zZ4l5)f0W#>jDb&B1-|-UA0>1;;9v>HgP5}5_so|!5Kl1Slrj=g+|Ld7WBzTR!D_KO zt#U`!OnV}kf2L#$wh>dza{OTKnpkJ}D6vAg$~grM%}BgHMEB|bdR*qYtG z=a{?;jdya;pXql$_C(%jx$<;RJ(dSE$t}Y<&~tCd0i6MotbJKoi$mzqi#7zAIw2Ey z0t&C6-lQDumF}k&qP>7qWk%X!KQvjt>w8wnsw@6d9Ly5Fx=81I=9?()3YX9FB z1fk8jmlHnX$Y|f#C)=aySG#R<;vwd#xPp5*qb5Pbc{0>nva2e+FYf5RO!Y!%p}T06 zM|O`ba}%;RzItA{5rhUD%!2VDDW48C+I z(1jlwoTq-6cPY9mQgHx*t`23!OnQ2m7tO*X^mEw@c@jlo@^Z>YNW06hMLW0}PU13{ z4*;%!8aI^3X}H$(Iznd^G+}d1lk6y~Fa3KMd zqRFlfLypJtFF@K$g~~U?f=v#*VSL9aSoa6vW<;?Ypl-Fx0hM7>NRHP7@9r@#6RQts z2m7w0tIg9%xrD{C9(yfz9>AmX7#%iwNv7rl9WzX$OT||2RR8ru;ac#6<=Y%`06|e~ z03V7XT<;mRhJVvpyMb8Y}*Zd zanS5^xo?h-dbY!LcH3}JKXM&b2i@(K%OD+4`6O>qXD9Y?E$W3F9Aqsuntn(HAd+-d z4Q)F*by*$s-OZyp{tS-~)SwkkcBL21K*38*t)xZXov4OY*{ij;U|-gt@c;^xi*}B} z4EixgdHbO~GsMPNwgP{39|{2d+r!Mg$Iw_$rY@ule6K-)SOyTpV?s>63|a+99K+!O zuFDe=LqGu(ko>m2vFg8OYRu2g3E?|1C*Z#nl`VH(t^U`l{?of>vd@ySs?@YWVS1%v zNs`M8Pw&XAx;G|S0HsPbyIVF!;-W$wPQya{(yf>Qc{m`q~nVs9y6b8(u zFV8sW$Tq~4&9{q0BB;$Go+9c8P5+IbS(q9YjVN3q{r)0JA_FAwzcL$$FZWAG@;tN4 z6X&bkCwW=0oe+<6jtUADu-Y8gjRFu3AaMn$4r9O=-W6`qtgOO8Qs@ve*{dUd)_GDK zC;;b+>bJschx*{fmtS355C4gB#V0P~a%2Fv4D@$)-|8NyP!Ju2Ob1b-rDX+w(>MY$ z8CWWu4US^qMj<&l)6SEOw-ZtwsHH%Q2JmNBvUODl4^UtYATStwf)$Jb+*&QkIuQOC zZ?JM8#R9$3$00PWZC z+}8N)%1ZuGKkYfEK#b@J?_A-1dJjka=rtKcsJ-*QdM{8tMQeWITU_@drlKb|Ij`() zV206mpO3^Hn{%8|;5tJzZCAtl47;kwGzow^RHb|MQeZ~_m?&ZBBo0pmg~9Dv;*pbx z+wG-%pfq53a>bZ#{cmrE)y3H#mgxAePmrG)yT`qyBiocUn9thzd>4hk!W}xQ@kZCTD{$# zlp0lXrxfG^TMPbXF5dh7=ncdB67t)?iJ?5R#YC25@O<*@SRtiWaw+TiIU4tje6h6d zM6-QXx>4XOchgh-+^?iSfwcGCsq zN~1f3ITjG#Hl(s}@;)k|wZYzUel8y@0R)g>30?q_~t2#$?k+t>)nZFQv$}V_}Fu;7)#*A+$5BcQOB5OCaSSJ z<6+Y+&2%9>K^b_i)16c4xH6|==_%;y^G~qTH}A4Du%WuGc9fD3QI=F?^2+I-($GCslhF0be$(ZGt>{U|`Nju7@;X;x4}fkv$oZ={(H}RR z=>AYA`psrLAb+jviEX+rbH}$=s3)iHDcDpfFFpd00_c{ z3<`kuVT|`44Wo+LR-RVfxDkDNScaFqp?1Osj5K$f74WmY_+Fyuz+EFD%rp4u>7h_i zkaay1J~YJCvTlWti>R8Z+{B^8rWXrOYG)v^f(<#z#XgZxJr9vzhLviXDGNyg-#{jo z$)X5A{?e?2ue5Glp}y>renJOCPj68a@Ckt3j-|QEf~ARPjZCRl@LX~$;th8RYkW;r zYCu$(WavhvUj@5k0*D56I6eK6mRdCuwqQ*}0H*@X@xs#eQeYNkLwM!<$?24D?>a*8 zx93!ziI$DNp&gvI;49bw1r$dxY?NuxqK!o?&0cL@6|KzhlXNR-cT{pJ|CC3mzjPBD6&FLK`F}&=D;dl76Pm@ z36O?Z(0M7S6$elVz^hj0gJJt*aaDjKzxuX!I`opPQlF;&-Cr3DLI%7$+eK8U-v3XG+9bH06)dUgt| z)gHrCFIG)U)6evPaeDAG!J~_ZJ`cB3ptSn?YE>}xN8-JKEZbq`YS=2E2t+cKzJ~o8 z?7U^tZ*|AP1J1zaRP9gCOC_|E|HDa*OM-*+7qH^!UonbnH3qN8<(W6SlZ<$}5~kO- zUj`Ql6GKNHQJ6oyrI$xUG*(8eF;dr{h~{yi4wtT6y>;uVLGkc+%3A> z^Zg+5ZK~%a`)LPp6&rRa-7L|pCv}VQMG7&d3l1nXP_ebTeb&n1<{NrK`pH+r9h;%o zRh~WmARQ5We+HdZvjtJI}bc_sFMz22SiBd*o1jdw{JJv-KpZL}gN? ze!Ed`e6_ebfk9N@tb-$p)4H0u+2}y3DWXZYkFfQ)k7d^_)3f zbay#}`FU}@_~NO=qKmZRbqS;HdO=Fu_3SzZ@Ert@7{GBdfB>MRRvICTcvDhZGs{W_ zWyLdZKhyN3Cd)2XTJ=u?hK!%f?`T@}MOjqn%8#S~^64rXDW7#W>m^-AFWo$RM8aot zp@t!{iOi5O$m&g?sAB_}!pW$vn<=O`=9hob{UmAuRa;p`N@*yqtQsc6PAXJN>c_ui zvN}KHo);9KZ|KM}LH`7&#QU_9YA!#5=k|3er8kcQVYD@ojRpuHV_U=67=QpWumli5 z#$;Nw*<`%3@HDjfQnf$>WgQUZsc-vTojc8y|G)3Qs^=nPnoYl~EfRAHr%1_bN}0VIKTRf3_6gLXT|q$JyJQ&lqP1^YDv zIL>~DDRON8&g9AdI12C}f(ccyvbz!p@Y4YD55dNwLLfIClwF?*1wl?tWdZ&@27Rs> zB10KXHGcT03DD=A_v=sg_#oS~7kx>HZNcZO$fYV3{f*oxh{ACziUBGKtw4%9U7QE( zBN{+WLq^r!y<=|Xjz|+shj8iDl$3@dxr9kB(((JvGnmyjg4DDszSha1ADMuXYwbPOe zj#~Its(0mtf=E9AX55lQCTH`0H}56Lf@D@cvN`PuZsEK>bVa>|!fjD?iTi17|G5`}OkU`TrUkoK(z_Fby(p=zg zG1~g%QrXHEDv!$Tj|43>!%YRn!>u)ZU>pJv2P)e8op9F{AbEKsD)AR7Zy)v^6MlP3G(C;<~D_K_DB0Yyj;3OVCDeA};fsIjnQD7W@YidE1# z5U>K%&j+ntV82Dto1ft3TcRb-vn?^W`6qpF#^tZAYvJ+D?J<$y0=U;5_qELVJV`Oy zRWb#!Am9=uL6*>ij*pjcNc(2w6Qlree9NV4Wx3gPXV1zZIrBx<8A)wj+3bg`ZZbfC zmErH;_2+}rBFO)tOYe|{;93>x<4~Kv(_FHC``O3=66Lf|nnS}@kZ|x9$;uHHL|Hg` zZOlyKe_*oomtSie^nB(^j62Ce?D)zm;fu7&lgcbu-WT@KFlZeL5UgxD7wrAb>DT^L z*=tUM8G;v3LHluzy{|Fgmwkhq9n7qjOb|{g#OiZ@%)(S-ou1!1JR%y zI1Ld-*z76|T9Hh%@#QEigEr3$Ck`Av{L1r(Uzt~a@5Oy{(Eb6&+)wUQU5|ZEJ+S$-Tq`=b!%L!rQvJC4c_Og*62y&-%-L| z9?Izo7~b4aOCi@y`ktoD9xoaw%Sjpkt8knx-b_KKLSsDBE9gO_L1&NV&o_tA2iqRq zu`QeU2N0tWM1g>*U;23t<1`0$`CIIIQ5n6N%e^p*Ua+r+oZz!o1MUxy+`ULqbn~L3 zyxgNm-^)IJ0I>qZePUo&0Z`}iL%}c4A9g|kKNY5>MHPbW8t{7Pgog(LUiTj_V238s z3OuG>o?ckK&^d=}J5hYl%PYw?4+UJ_mL8ci|2(&Jt#5gG4k&;E@}E`WFaUvD&pW(z z&q6oSBU6$p87^V`R#-4!N2@zE|Fp1?u~3+wO7iCC3mYCl$ta1<^3K$^Y zqCnvU0G%%ff2r;(oqV~0{rfE^i&s~omPF?iEt^xNqGGaPQ#SDZaazV(Ci)S28L9od^d@^bvCNEN~O`0?{c0XnCMmQjQT zUycXx6$OB=a7X(KYwz@Piykx3UtT`luHfqbu(Pa7OC)0a(fBu{T9)E$-T&aI&gZOg zwp0uD-iK|2b{r_)gS*#6OBjyQOdX;WmB2w1YI#-d7 zk)od^}1Mf*TgUn2oHu0c>vi4p2J0pjg(chx6h z&hO3!XIGGc)@F&qO?o}A+Z}sgVG`)TFmCi0fSflZG6~ol+IXei2UD2{?Es|pVGtim zA^4Ad@#U^z-(SoLWdZbL*Q4f;Y3Dy$5_Ub74j`K@!v|pL$FEk-uCo51c6|{H1hCqUClsV5bmBmbE zU{ZsPsBpK{7Jaa|jFn-Vx@t&;Lp4p07cy&d(%K!Mz4$waac(BoCH8Ra(^zWVa!&aR za4gxW?DSI(MfCx=jYYItMdTuee zSNac7Ac)k|&t=?d>LC@j*EB_#fzilv4*krMC1qd78DnMN{wy`Sm*Xe4w!x)6Gvgx6 z{9O42@|bO_JH^&@&ARMcxph7DwwE*D;E*%Nu1q)^e)k~xW|#U@EcJjKBX26H87yd{ za^MqQB0+BaFGF27ttKb!(x)2;7~;F;+_1guUT+)R%57-2AJg>>@^p8l*tWWl*^&uh zX9fLAJ107@LuCR5ywwPUkM-{oZff-}BXT>_>UXg>o8D=EtbUU){1m@W$ei{bb(r!q z*w&#THLYdR&aKt$fUS&d}u!K6{UQ!e0G&9R`)!(fZ7R^PtA(<#W{7 zSElewalbYNPqkB4|K_fr5OsO~siWno)7)R3z5qo=r$fzrEUo6{HD6*Sc!D6r=%Op_p?$8Nm@Y*^U0$qOm zSUG4t5n9*mzErB?CDkXQPfbY8;nIC6kTYa#XOFfAS>xb62jNT>0Zsvo++fOdhzk8) zZ7;L;Hk$_0vI#vAVPEyh2QdPSI0Udr`R5K6gi@1oEBA8_>lB?CWVFyG0ZazW-QnyL zjd%Iy?t9_zu0zs?39aoy90QR#O*;ex6Z+dS<<)T?!dyD&#jtS}2Q8L755`z(f*4Lp zRy3SG7(Jr#sFDYcY+*P4;7ZA3cXUGc*o{3rOpmm&X;_F}^pA0*gw8qY>=P-j{W$oh z!QsD)SOwX!OcY_M%(zr|juM;vzw;tlIrQ^_t1Uwy4Yc=L!^K9>Q>;hug9fp(YkGx( zNSUmtYAAE`|JQ7yiIJ7VJ=eIkKwB(rs&=+XM<$`xknF!~on%LIo+fal#oE8I{)==# zXOw5(0IG+%xy!Bu1#&0mahg#9W-a5TphYt|x0D|E|9uFK*G6?Hoxb)RrjUn#&V-G8 zjtF|iLm2l3Dp!@<#9x zFY2Ii>l6Yv2B~l>hRoS85gU$?ZNd$*d!0(`YoE3ZLSvjH} z5UnvSl4*^=s)CfTGyNY>fM|;oks?%&TCUqFiW)@jL%1Ph5ffM@iv^jRen!)sL=+?? z9mUsLl^^1AkJ2y?kvW~$7n2z{k=2jp&xe@M^)9{vj~5Wj2PW`W^}gM ze<0*u(mh;<5R;TTj=I1&G%?(vKh7>bVNCjV&;OgqraM&}tj9Jpg?3-xj6L~t9KkL> zKD#(T)hCt(R_^>y*SuGc_TB2T|43xiwQYMQ5I{AO-+$uD+K;gEX>jH{iva*HkTw-z z^I?lBtvM3bqbs{KSA`Agm(Q(=*;oX6SIPpq^S82r7z5HuVDi39mVlI*8HDdwjandh z>2Y32rT7SawyV%QPj*`AEa>x0o)?J^|1XaN$vY(Ui&@Q=N|Ew719~*#$@rYYa^?Z}XG-ruYTevvGx^arw=(`vc>n}qV_vIY#26Aln zgJ}!MXveFfA7D?)Sv6ej$E{o*4^S^2Y!FFFh^@7ZlQ-DlWbJE7`z3;4p|;zgoe065 zK-$Wlv8`K97hm7X0kg&<0L^R_tJU@9Ttxx9N4K=*K1ALJQvYiu^f$fd{n+}>)efDF z0jC*T&Icw6x!QtnjlQI-2FA9-8nnonJv0fFkc@y_u>pI{%m8WHt41ckO3O{@EFkH# zq=_w{2}kf_Gs?+^_rbpo08$Io%0NO2zQ}7{FTm{c7Hdho?Lv3B2i^rQqUGwxJP5?N zh)~=$Ut=g={^S!|4(F1rUVEE7|Zwuz*rRk5)>5R zqzt`=GgqRPy071u4As!v^qx`EI``(m2$Psu6DEtvGH2b+pfhx2M^y(G-HO|9$L!S| zSpGgJOYq%rXLu)^3m=6~!=EBd5a*CO$X!S`WG<3|q$9^r;iweUDO5SCR+XwsS5sBX zRx4Kfp!R=&s`?IfQ*~Q)w)%VZug+qPOB&4@-5Mhr(;7bl)iiZ9%`|N_4{3I4-rBNr z%bqQcTfDbSX@zK=)cQ^9C0YZmi;hNTpo`EK(3jEI(Szu5v;+;Iw=uS{wms5T(@xaBu6;v$7Ndr##qcq*?M~ahw_n@-m(Bs5Xq`r#*E;|1aM>}T zi_>k@<>)EtZPhc=W9gsJ|JxwRAkSdfP}k7akZa^+G+;Dt^oNmbr|-_oJK4sT#>b3f zjq8lx7%Q-L*mP_+_BM7J`w{!U$qo|>lR%Sp6Ryd9la*Z+yWa2GFf}#xFfB8!H(fOS zinGLJ;-+x(W>#iZX8)S|nF}l&EzViY;mz^gyOVY^_UzhYy{Ble`Ch)IrKOu?h-Hyw zwdHfmPgZ7DK2{W~9&2lBH|qfF6V{4-$bCBdaQp1{wc8xC`PG)V|E%3^J4ZV&yHL9X zyIi|+JBGc5{k(&=L#jiOL!|@5q0@ouFzPVv@WkP{!#js>j;fA&juwuNj$V#oj){&% zj)RVn<3CO)rwXS=r|V8PoyMIcPLR_(r|-^52Q&{v97sHH>cG2$NiH?6cCMMOWY-I> z?XCl^cUL?0|wXuun8SJ>?mfzTMh0Y*$GAV?+tx78?z zqjIPvak8Tdqwu_kjxIl7S^b#qCMY3RUR2a61u#GdKnJ2ol@}c#28X4il{hE{4A213 zfM8$}49DhJeFvxk1M~p&An4c9D`~^ms;QYL7Zjr6%%UiWN<8x~(zbW2A>xuG4o71)lzt27%8B@GT}G_Qh!w%;06D}VMRC?A&otvUz4$6GQSFM_ zdxM&&3c){N6!HYks8@r0&pWelJkOrx8=+ADl|!D-zik^nLnn~O=b4Ay@R5!Cv!K*A zxE^hqnKaupmqqE$ty@wu=QYH;bWR=(m>S7}#V{WNFf*88UGo zA$Iwa{2a)m%#85Tun{BE0IM3@J%~>P+R(ll&^7;h$-cI1$!s@dVHvOOBhs3-ef#%} zADOAt&gZElH$h#J$|t|q1A*J($Mt9P;9-!S$$jI3VPK-3CA^GVczDzVEIW^6qm> z?gpXNW2YJv{YG|^F)6ThK+LMQCQiVRZL?~JjLiey zhFP;siW~fP+k>`SU!o8lNe6KPh!`VP28h*=Ip#fr7i|}iHAB&IV{7*6x-)!xSJ$@9 zTXuAXLSFB%+x9M{l%@5!WL@^+ZBwK8NA-Qjx z;-dOJW^pWO?`T-;^o@? z8geF2HA-T_QC&<01zUid71^&#aGVlIf?m&nB#0=i6?DZ?%1`TvOkq z=q)fwIBH}WO;7TMh&eOMZ3*l#&|`y>Qh(bGuUNlnI}{C-asebxy#$o)l2&~{1OpQ6 z$+=7iDQtsr6RuZZyk&?ccS3Ify9)O*vjhR;HZOUhz-ED*#YYO+?e2 ztC5NniVzRN;#{2a!*Ez{SviwthkQOEF(&Q8BHNoF2ivib())fg&ajeY&!8uzNSM2P zTQ5~yK0R!o%RwBWUK)h6D2I=iBZ{7<5rIFUE7M$CF><3G&YQ|0lva0fwgV-x$;3q1 zz7KGzt>;p!`1o~b86o41$g~@BT?$uginX? z;G#=6oab4bZAi1>%n`&dhJ^U|)n>?~$(aUv&#WWulCEcI^*etzO_|mM?y;lv_*D7) zEFL<>)CW)T(4qjF&M`f9@GuhTGc@DyMb}Gu*?)7pptlqMYuB%P6T;r)F$P4V_>XWj z6u5bXvoE^Ruy9jdLi!Mf5^eHl^<>eo-{qT&@7zF5Tse=1Xr2) zCl1R{+mcY|>&_w|mrS|XN0xI9^`KWD?0!2rajRtG@3#LAC;bjaoj(1xiz4+?JsC?n zs$9urG=0zd9f7WS<-hEg2c!hN9s;N8A~{CRmG49tPl9jV^r*bx7MT zxtwl@>5F*jv(>Xs!4rLB3#+#>od1&Ed7l|8tV&agcPfTSwlMX$*_mWr$1|10Jp*8~ z)uR_4vE66*JajBA<+9yzg@pRkcsLw-Ergd|(<{fsiu-DMH99+C*$Gx0#k6Z57YqOg$t5mVamw&Gfa9kl>w+J0pX8UVFWFDy zLBYW`q#Wq6I@^xbg`4+=D<9h15@|2HD~&b)1E&(-@BrWuOPnG2Av;yKub&Gp$vCVN zhYLe#T3kIMqd;kU3Q|yNIH)6xLMEqKA;WFKFS!~(J%Eg<#3OMp*^{r4{OzYo@pS$K z4;`g_PTk}olNwJOK?p>0296F2`q1RKt==GHGSEg&{*`Ft2q1H25a>J6mwEuf(1AWI zf47kUEr_SsONohQv4;Hn%`|P01GyoXUm0V$W2ZP921>~B3HGDIrefI3^tHwU@03Q+ z!DB^wubEU01*$iQ{Zk?RM;}r`KN^*QX&dIP=f0P^hs@V1bXATj>$km9^A0@)^TT66!Yx zD;&P+t`t{7AHVGL=j&bP-q5vWV<=DviqATQ&id$6IgiubGvdi7Vy~ghamD^>=A6KCb(x!tw_6|rU|<8mQ>Fz#)LHQJZ-uPT++3}!6NEU1Ni zvDgAItTkB*(z!u|Y}N9OmM^CG^n?yOh}NIgsXbCvpT>$#o#I(MR?xvjb7d%{j309( zzOiRl)b%H~w!GZ8Ex%Ac4R5*F9oZ67)_tNBtB6i#`di5VK^#K2574oXe?db1#*LI+ zlE&4-HwvJShm>t9eTnWnhHmbacCz2izg+u#Pk#0Ar3dicmp#Oq3RL!BXwKS{qgt2j>~8Mu z^>CHNGvmo=fU>-9oBTvfoS!|z$#QI8{!@1#bP2i(sDI27S&M^p)$5!T4m(OOyk=-* zCd-*)A|Cni?Ey%;Z!SBvv&4chXOc7*+UQWOr)VOP)&A}|ajp2V`au_1F7gY^82`So zgmxXa!rt-Zxtu9hk(^7gQ>*D6@eF!bW(#dSG0%>aQ(U0D#0KXY@+=ldS8Z$3bsb9} zCxMu1x>UhWz9;N~04U1I$S&1V(Y8E$)~ew)9yAC*ebXIDD$mn5VwYYhKCmZ2j%?3jOQ$Ec$qi?O-XC~z zJNRxlwuSZQ1N{S5G&-86tlLrJJL;~kO*-8~{yHXfiJ{4ePB+Qp6Q&SzH2-P*Y!Qn> z;gbXZ&)zhVP8*0!FrZC<=v&-a8(?@)Ox zfkN-b4VX}nw}*ig!1dQr4ei0^G1q=vU{e@A;^skQpT(aCk(V10Oh3oy>$>Ox7a$0G zMXHk=NF-9Yma1`77*0!It5b{zV|F7d!A0!p%bpjO_Vs!Fzfk}n#QTT6^IJ*gXa7a;PY(mTuls_&p# z1^epENb-0zwp-<}1eS^B=|r=0Nu}(H$6|5NB@g-^?rb^%;AmWgs+MSR(`fX`vbTc{ zp>z(6pM8|}CS&JYEb%Qarw#YrMO36O)Lg%F7@yH<74nlV;$tpJi?1iiA+X0rG`&}) z(k>w$HU>7s9T8{dR=%4oetFK&v1+}esGO}Wb)9=64Z+-O!hsW&C6MAiK>5xUALdk*Z06;>(>+mW3#osCrWS3@-U(0c z8M#0@!mq*aF4N;T8HS4peE~0hv~3JSR;bZM0LD=GE7X7|BdsQIM|Y{T47%uDZA-^= z!y}`Xa2%S8`tPb3;_xt3S$jCl@!&mNdyk7aX!?F_^~N*R#d!s!eKgh4urEKeif=Hq zdO!N;OOId&OCDZw5ccSjsD}SBFLHMN2R`Ji!7Hkq4H5Zp@V9sl6{hD@vb%wDviDK^ z2HKG7a+zSQ6moW8g8ooY7oeemr5@|*e~tHlqs8z$hMqhyv;}3eF9ZXBwWpvJZNHr$ zvp@IMzWiQq%A28O?`HZ2*{_=T3!F!~13idn!wLX}| zY~rNZrfuQQEuR@U86P@gvm3Vwf&d-h3Al2BBJT0=J2= zo;>-Xv^5z+P0h6QOV&+YROenpqeqll(uCI=sFdpZoDq$_FHzJ0{#XQu!_wWh1kw+L zZ)KyMHdB@`0QVMZ-)}!4(Pr(JS;`gp#*VZ3Cu@c_#hkbKL{R4?Imw8Wo;_FQ;|3au z_A>wJ`|NKkI=*+-@UruPLg|p@346c2f%ys{H7*cp8lyPI7<&-oY9pvPLbwFq2n03< zuH+m^dovP=a{OpLM&5Vq;V@6wP~$VIDs?QPBAT&IS$KORbijb7;M=EQez6WaxEFcl zkECw0G?rhRx^>!$-I_hFX}B(3({#oZWrApY~}=xmSboHaGVQ7=@b7b?aA|buV)Z)ioreK z%1h;oU%K4E+|rk7&L6Q$vulj(ELLouA>^yP`19_X8cABcMxqx(tw&v;vRr~}ekTsU zN?en2i~1{*B^r{ETl$AInY@8tNgE3lP-B>Iph#Tl>dTOtR9YE|l{mY>lCo1s51tse zNfWi@{^1*u_JI7*tGf&H5QQ=1ujhAO*9|wudjiP<;~VQfU}4F?dwDyi8iTt{?R^C- zU@&S=IZU$-3+uu;THvP>5Vf)I1}eB!Gn>`^K@IxYAgly}aVuVW+c$&oR+rAw9$-lR zZbN4#$Xwte|3a}jC70I;=_V|dmr%12b~J`h3-o2BbZTX+ig9cYCysd6X+@W)>aDEiUjxpAnVm7v+df6E-46lO4DtI*{L)Kdjskun(DeZaJdMX<3$@ z)4`UerXUj0%5nw>k{B2IsK7Rp?rY~*%uPdj372wJOOiRN3NWA?v!_$4S3hQ!xn+PZ zuUuCxXR|0tdRPn<5pG?{PZ#oZ*NPKUv37S&;XGFI>FPx3i`VZlh;u%c{w z>WE08y%A+QP#DuM>!IzbD*V?Aqb#jQSE`ecy2DXAH+;UPJ~bdQ5dr{Uf)@*YwBN1N z>?n;3PF1x-0L&g)p+?*zwi(usi2yn$W5>#9yD> zO1U7!PcyQN*BK#5(ZE>i9Au&iqy(%71$CsICHaL~XeD=UDx-@#ZOMA~?K?@$5yvu1 zuC}Ko;dj;6wGd=!DD2m1k-&TM#pTkN_d)Fj4mkKsb;)}a-h|bM&PWOr83!-{*)4uw zVcRoHP9=bpm}qG^%33Kk3feJclt?(T7RlTkm)N&4H&yD>SJ{6N-kF2!qXS1iNerb> z-f^OBt6F+i=h~l0w{8(+2b+0lJhvNMm!=R@X$>W!dgV^WQZH}av`TbvBqq3^x{u;n zlXCMb@M(Ppf?NjCFmN~m1G?xc%C+}$VDnZ&Z=Ts+HYWEhF1YzS%EE)<$`D5gv7Ge+ z5>BBo+DyLd15A!O(zb+G*G?NcdR^I2`UIjJCQ5`5X^lJ^1ZkcS_$1a8?y}o+Aqn{jX zWW%rqa&m2c$tqh;$|Z^Uk71e&SwFNcZFUN523*$B!9te6d1d$9VabQ!e`4QYsu9i%Oob( zpCLyBDJ;=$ezYRmu|!d?U5X-lgah&Jv%t_urDRnqqt^D@D^7(FcB!^Okl1m-c4OLn zv&c7${3U;Iw$lz5W3XpL?-k_no=D%gVI&JU0)sWD^2hij&7Z&|5TzBwtD!bdY}!PQ zM5ECr$g_BT8(5HWIAluX+3)+6WZRmjI&d-Ap|^kc1(w(cFkOgONtFrLPkxU@H%Gg9 zKP>E6iZDaN(nyd~ms5H#s4n(V0q6$AfRz-lI#+ERDH+lEbBlV`^<)f4vLDyd7;yU_ z^cj+-k_&si8<#SlrRk!oV(JzIC&YPeOk>d5KXpol5#8d7`?ymrr^RiBalyk=9$?CD z6Eh`(WqO^o?DUO4ky|~?b0Wo@x&;H-dIAHRQOZyct0G)je)YT~_V`Hm1|j57GDqmX zor~*D^-l$ZIl1*MSNtvO#q1pB*#lA}{kM0~TAAce^c?Q$TK(Bi;oL~DySqKS;^wlA z$ZM+lY!0t)^1c3Ir7s-rWBTNOF<~hS!dlBJ51MJGh=ao@0=(@?d_}-P{!b`|P`hMm z<(nz{EfMIYa8HkB+IEO#c8?mW0tXNFQ>?OWn@zD2CEilU+5VDi;i4v9xqEBKTWwZo z4!GQS`>()xAN4x_oX%XeA~MWZi#lA5n=Ren_+PHZWlcupY06rC?&!#X09;Gpa8DRs z%Eo8!NGq5)Gqb=+t%4_c#?$}B&7~SoYJCf+8ze@=$PY?sDzq{?e+>s4N4F#vi;NDB!r54kD`QT67W-sbk^x@lTFns^T z{U7#fXZ<6YN`=wUgJBjuq+!(iWKD!G0l98IE?L1&d<%;uyc`Qhr>18zvRc?8V^Wo8 z6c>3On|{&^@0pD=y8}mD641A2ZPsjdyFIDcDXEUpK3%ooql**v`c_S`zAchBCq(5b zuKvlkb-`duZPEWp98V8-a49~rABnQKb41Llg&@QiX?IDII1;3w#vPSD!u2fiu_!l2 zcNs#*V39cv&nMER}LQ^O%Zz#>?^;5_bG)E5v}#UyBKn z=$-qg5u>&CTQ|}eil2f*W!ohtbk2>*ymjhO$XD_5UyIO1&paz0U^J~Zg07m!x3Exx zW;9W|0+vVgf!V8H5kaWX2|Y@c=Z)r0IsEvtvkT#pV;846Q_?=zv6sO&R%em%lznUl zR?)YWH!NI_A@_g$)5@eH?ltpmvXHNgTbAwu^lPsHi}{7xTphC!KDD{ZC=@denZs^%}AXVh9|iE1U(SQ185%|Oa+(@G|l_R-S# zJ$|8~ZxYsvW2OI8Pi@#aXom+7?Thh@%m)Khe(GkOkZu`_3v1Lom zpxU-9WnV2~8+>m2okPA^nlk1DES9%MvE7R+u;M;z1xHmqcOT z63Z$VWCC7ys(3v*HIy}wImlpHwCl70hIU(>2z@{9`Bb?-Sn9N}3$wjZsXJCLq6L*# z+%-5e4qFl!KC@#u=kO-H8|5Q_6y7511g>y#{VtVrB?(Tik z(qeM=BtDu#1yqoN(^@=13sx3$P-Ew!ZM%9mYH3F3?EjFOqhak!y6WL;5s4058{lHb z*@r1%0TL2aS`&}$u#8%%&0=wUtNch2TPcEhd-~=4=p5Yy#xw`)GKl|{!Evs*y&eQC zhc%5^UUm*XAVTb{H)ClCTWpIty&fFG>Ux2l|M_iL6RCMm@6MKZDk zkkjpmAG@5}OdAR18JpHUYIU9MM2TYu8Vcx! zR&u%~RZa3v;N5R+nWwKi#{-H{oXRKK*r}vLo@fBg=fYqS+=GR~qD;UUhbQ`#2DGle zT%LcbYoE8_mMm>vNi;c(GHS7b`u2;+#(W^)$>RFZ_rDbpUg0E$l_rqCH9}8{>izp* zKYMJ!bt|)N>6$8D4)UkW@Yh$bTQ8vflW^EMm}@Jmm-wb$7MO8Za@#i}S~0bB=(^i7 z-uFwbTlUR)&lE(Jtaz7--RVIKeZ2!e;;~TvnsNGNLa7-M&=cesMYc-S+85{4c*ULyOj>DUQC%P2}>`1Uj>6 zN@ev>>*&dlK~}|gHwq`T>yF7FF0G;sgL0^zR1P04b=u$STYj{&n*|+pu55Zb<&rAa zSz+UB!Nm<(M2qe^T$3&)J!s*y7N%4ub)0JpWT>+nrG zroX;I3j{k=HyMHH-fQWSgph!p9$A}+7gjm*PpG}3)rDKBc>3wSEN4*F3$&(|$f-Sx z+ar0&#R31Yit8`bZB+Y&K>4Y)QCt%Zjb0FtXhfi=4#Z&xeI_YO`jEulUaoz0szgpl zMz%ZyFq$_>Cm^8KM{b~UEb{R`6YU3V4T?I&P|2sV>lb8zl>_qM`F8!MH!WBYS_a!~ zwsxS-M_mKr2`1M|*odZ+lw34KFd}mNIs-&tV`Nr#8uN~)N4q1kJgemA3m!!fRCd3O z?4!RlZD?3BGmObhD(h<|2oWFlWc{>*P@`xwbi3FQ@=ATyOl8{i0K=|$svRng6N3lLc#kJ@$dXPm=eI6qi=2!yWC0_SlN@uVKz5^`0dlPeE3`BU@jVm>Kb(+##$Amcn<$XEph$Wu|*m2VNxX<(Y zhUs%_$Oy;s&&!lPL{UX>{fTsgWm>MaMJF78GD?S>98EaMz$<-LFy0pO^K2! zBwaBSdw+Lrh_%smkE9Mc)O%omh4MZekJjIjE;p-gW#)}q`rbj}>03WuJuLM3*kX3S zb5pw1rM>Z$Eh?yl$Ro5tKn3HINf@ST$0r<&>eY8!NLt=wsPU*q$3v@VKs;LC(Kg*w z(4DmL#;n(6A&$P%tOBT(_>B3kn|IPP>tAg~X_u|^2?G^m><$ITRdD9TjZX!I>Ee1Du>VPT0ra^jrYrOw0eSEpA0Xww@>W!^hFVZ1PzPEE&AE1f>%$G-a3DXB^qMwvCRkdWC)&Wj*J51m9}PyYix+6A|U|`r`d1x_W_48+9ehyNR4s49Sg#6gn-(2O*cQ$ zEUWNh&Kn<3Rs}eW5ut3!MwL(Y(V_auaE&yg0vNj*A1M|@GD?I@K2=V^74rFK=60kQir&?j6dUGPhj_#vnnT9~ALE_5NRtMLIWm#|xWk zYt{q;DWN}^iH73dflVC6hts(r4Q2*o{2OzqU@wk&E%=YdxsGW|6#Y=bMTJ`90y8{* z&N;&5FL1!HpyR*(LB0!#ENpPF9&`m2@Z*=cN)VvP3s@;T7Qv$7ic-VQVf_G$d?A@@ zhN?E<%bLKJ9r7z+f8XOp9ZQ27+OrL=J8dl>nVBb8d4YtFf+n;^zM^~?!A_G|P_h>N zUEUdZhofI+#+pr}8F1#?JER00szvhnMQG1xoI=Gd73#-y4-rgG0ZFAvFEQt%%}g?K ze0YQT#N}AEF^abDJvQG_^>Y4>9goD@yDPV2PwutFT)a8MrMX}h^yh3vJS@C)_-xmE5m@*7E(ZffsxW)I;|rj zHay}?^vwL+p0QFkn*v~%l|oU~DBqH3p8Ah!8M@0M#oaoiJaC+N9TUIu;(}Y2Mx@&y zH=gI9j7X%5bg7HFEUHoK^~8O+Llg&nuh&zJ)$Y%HZOL-|uaXsruuM=rfxdNzh#VXM zfsY@ONfw*V&epi!|7u?`QU9Vw4Jv)<509GZZ>BhzQ`!Y1I|=FL4P(;{aHupao;N#O zw=a^(jQGifg4{(1wNq)&8>27O?O5kaa1c8H%XXd`nHKgp3q zNDj!XOa2doV$8I9a?hS^wiWxh=#+{6VE-T+l_yWohdQm=qO4SBv@@@taq?#bF%?73 z#LJi5a358E9n?A;v9u|cXjBbCcXv29z27g9i}KilE~x9;Pen{3k+3ejP0AKqq%XM- zUvkPLOOOiKv|o`uj`5_j3hnd~dT2{`E%x5CIK{Q@hItK+MT_f}v++`8w0cL;qZpnW zRva8&oZpDdq%+gKGMnm7;FF4j2{NNI#}a_^>ITB8gy%TiEC-Avkn3atE#yz9ySqK> zQT%)+^9<`rnyEWSW)T-I%f!zhK%JD?GzY00h{&`igNEud3yD!A{*74&6T-rc35t~~ zeUmmK7=|ja7AU;H>7)G;U_}hz?a4iH-ueBuS$W+DAr`5DBV9(EW*!u(q8?*N_*MLR zhygweu$1mDANW4sJBA=rvClzTjo@LKi`v2QZt!lyadrZWjCB1uzs^iub7qyhFq$tt z47xKtyY#7fTj8&IAlI6FjAi-68VTpFAI>VgG-{=;Qp3p~qsGA&7F3#hmv&Oy(H%6o z$%lhL`T!#7nf!_({dy~^$|BE&FQhX%Qy%^3+#~hz#EA%m00Z^cF5`!DFWR5NYgRt~ zVtMj0uNQ@Nt(LTg@x(}n7j92H^ij}fvF!8-STa$8e5XramGst}l z^Kc`pSSGV0e==C-5tj;E|E<41lanWMpc6&l9wGWaOs@|9EwX}Q#7bcLc0M7AJ9G1D zn()~=_50_L3(o!0!4c;4sNeRVbhB6=C=(TAZnuEXFjd8;&AEUlpNo4_@SXA{pD9t3 z1IAEpvOl~0CZmHE%RX;5hhMnRfTYS$+IGy@BAC;XETdBaDHj^imoQ|7jWoTV%K+Cy zp0$>~Dz-3YH+g_FrMaZ42+aa&LGrN@&<{N$i!7iHUmkk z9AF=1J#V`XkLzlK{T$n#HqkMdr@#144XNnU1sp_C6`3AMwx`j$Z+K6?)1O=VkyQm) za7}c;eALZ?tbm19F0(NT`*l=eFy3_qZP8RwKDo#0ox#J!dxqnUl08-3MrvxaqaVFnL`3R;}K#~c8Fcwcy5(G zZeq}*6#Sxqt*~Q4@&1)JEu;C@R$E$J?m1H=@r76AMe}FmlKkp}%`#z}pk*?EbtW{h zU5BP?e_$uwm`}}+&?8#6MQC+A#&Jh2Jx+nOH6CxPaC;s(x>7Q{;^n9yl07cd{By=t zHdR*@>SnRCrtVr~MlLDx;KsW69^HVzve(n!V$MB#aF=g5LNy!CPZkRARw1;oq`Oi3 z*&MB^pBWA86fuCo6m(i?EBz^-G8)*+HYFI?3_Too+qkg!lb3nxiJ$*xnu$m9_t8sB zx;%Pb+BLSUt{`n}d1$9$3RH3WHJI}ZJf~ulMKX$~>hlG3k#^UT-#o6~NO49*ORoq9 z4y4R5IF^1sE`x!iV%#WjK{_^$?-T|YD^&RFa=*LmhdO3Q!OZMap~jBE>80)tTN1ru zE4h2UX4C^U=sym%k~vw%@Me;J!#0b>p6OtfIo0ToQ%CHvpM+vvh1NCbhGxg!Guau_ z=(mfmu6(#G{SHM;v>p>sMAAB2cKmkjfhB!AQu7AQ{+`xIW1I^bRzu1|fFA*|L}~S^F`LA)g$TgS?&c$k1|j*DOO)BEw12Tc|8l z-o3WK_&PhZ8?)9H&7BGK`XPi7R`3czew10!6gi}n^Oj>>EIULM5X?Y4iN9g>I_(nb z{3By7496&@lqCe?XjVbtC=-QjHCjWR-x#!5&Z-9c%7t7R)y)F0+qc>@e|I1$?)n8g zp_k`usMQqY6eCphNjzkM@JN7(NEM-hYP4~y36a}E%g0q7Z0!Hj3>^?gXIqCq_sy}7 zz2u{#wzE&JQhMJs*`(K3eR&?L?9ow_Vo8n5lRkf~plVWwR^;-q7YwTIq$gVbU6_Wk z!R3^TkksNkco?#IQ`u{36@kJr$*MYQjN+;(isqVs7L)0k+^@~w266&{aLpvdNJS>p zv?eymIyIs-9NvcaBK|duC(!Eg02flJ$3jZwun@&GWh85|xSSqf*}|zNQ0P%@%psW? z*s4%c=CH$Tc%SvvAU+04fW=m>eKqN!tXO=qBe$EFTKC=FI~_VbMr)t$%#O`q4W35n zoqYlq{18az$IM>aiGyoC{6PU9!BDVuEx~Y(ldySfvhpY=@1c1i2L+PoEPbVeQJT*a z0m5OTBZ=osGj>UnIBRE!l5td|-dM)K$vDNL--yE4Hbz;q5sFK0j31~70<$M^45~?s zMqE%i3#6U2RypLVzdq)I_$iC5}>d{RS1~O4@sduGe zWDdw@-B-dTv^zcxr3dv|7_AP{!4nxJL{Tb!+JKJ;%lK3Jz8r3*z>RRPzUji)iAhD- zaQ?)XS%hb9IMjRXWQGJ~P%hS?`7v;G%6`C5cM8yQyt1%ntzE|e)g>@2jj(+!Lgr#V~ZEfjq^cB1SzJ3+Fn`?!ftXk`H= z!ICqD<&A`l;SwV`z5nlL@fb(xl%Y*Ef7U_1LgjERUD*5`uYYxi;d4H8psU!EEu?Ze z=NRzFZNtB*uF+P?Wz`*tmtPoqlegGtSnuJQ9 z4#aJZq$o0^&@?5!-6_K>Ft(~f7!^JUdWnMsDpy}Oa8L=&&Q5D_(tgb7VogoqOj#gV zM$^h}QzWG~vIRqwU=gvwlP$`c!y`BhE7OdT{K)Fzjk2izsVyc?=NeW8JIj2^R=!}c zzRhtnD>RQ35BA>1f+_x~m_t!re&thD)z{}|3oF)KO?AA;>a%D`j0rO()pyf0OQUI4 z#X918i*;GiDrt!8SUQEP5d(9b{&uU&!(QzJM{4%vcurY|qvgH@(_f>eF^PS-`$go1 zVdxFIrc=U=PuI8^eBD}XdE(uqHFvOH&KVm8qhV2*^Rl&TiFX&@FP(rL2+Zj%;T-%= zx`#w;L<3=CdhD`SiyV645ryjYh59t3?P%D$SJx)=cf0gA4r|YpCcJxm)f`AT>2@Tp za-{w+&t%dJMLYM%d=pi23UXBbWtCp38-afEhN4w-id*b`O^b@8V zuodRnN}xNKOy){{m1>`ul`^P!8Y-<#Wj`_;?q7tG7ve7Sv}`_jVSZ}U%5^VvT>ukcmf9 zp&O1iGKVOgWQ`69aj3_j+w{e|#UtI$ypPuH2{Zo325`0Rv(g!~t0br9bxPT!I-#)! zq(eMTAfC0|rOrty7uHfYt4s*h=5p4|% z)fh^5YiQdEVla2T)+q1XNFFQi5&+_@1wA0m#xy>UFACss;R$Q(q=>)|EEqT~ zON!2%NQw;SCz&ji-p>i-2!ZE6Blb?(s7mClJ^m|^0bMb`_*%xid@?WKon+X9ae1d) z_yiLRn^Odhqj>G6MkbQHdaUqnQcB#+D8hye$c~Z1(6igd z*S}-cUKEI%W=T!>r>0(FO4a21$3^u7xM?{G&zpdeyS((kgyy-zbv-Y~I^5R56 zyjOE+a{+C`@AlF|hc0cx;>-py5njw>?%6ZSOGFn?P$28^BYH5t5el_h>&Z|x@-jk3%9)xQN7fnd4Om3pJeoGPVp=|kvA65$nLNyrr1-t zi0a-}lgbzNpoM(%QXZ3JbD+$ky5auPh^?Q(7X3fI6_1D@W=bU3__j! zmxV5fX+~zn^w;~)$^wCmJSUKdinWmu>&(+^%lphL3Co4-Vh4c>oMy4$*~PXvAQa>> z>Vq25gmy-xj|MBTxtlt>LJIb=6TmNy4|ra63}Q%tfB=87FYg(;5SDyuLskt)U9<+( zmEkHj32?365rR;%V`tx31`eCL4bnZMla-}q@e?CkR$nTZ0~S_ z)uUnNS}>oVBv>JBv9FV12ho8$E4OR^Nf=lhjn2a1`)^dC9Mhn0!ts`1_6gVnPd`L@ zB(5Aa%!h~$j>X31v(YhDv!3RR)$R-4DC-t1lKawOL0w)fiUAM2W|PQKMJG-2RiU}> z|54sHFEOA_50v=JZgDV#!k)Nn|LzJNIRSZ}!)yo)cpBc2n3`ew@;>@K`+RO(?D(ds zrCh{_fu*e11Uv2ZfBZ?%>EWQxF~Zol-3zKkOI(bfczgXye^XL={KMRuVCsu)%333h zZjUr|rkr^Tg3R0A_a%JcOE8&+R-eYTOQPzP;OgbGSlN|khTUf=!3tCI$Vk4SM5xJH z3l>WiMTIN=eHXfK(qaz%J!VmdZXQN{tn;}QhAP+u4cQ_mCe-k~94FGx9%9@HNu zI$Q#8d_{Ajg)BLoCO%bo?QRd?HSmI}W5*I>JRr{5Tu2&=@beS2xNRhrrfOi~1O#c2 zz5~rRs5Hg1wc3}40z**3> zIet|aGm>e8ebhy+Zb2CKr8B?nHaqV$FXzkA#B>EoUETFWG<4{mJ)YFWXv8!FYOlRM zvDCY6yoe}Nmo_#}i-8WAu9O$&rVlr?{Ne62R$Hn9%>0r^JE=nD(j*^ua=K>c86d}) z4K!ysW2+$_*i&LF+}bWjlp{K^5E!=_B{eletKUkhX=+`W8tbrbnPO2i?Lj}UZYYA6 zR->cbA#lvq4zexPy&lHB1OrBC4Thr-9>!eMt@#SI#lj^l;UUawI<$ht87_(UIvN_o z7QFJY^XTNF#p`M*si{%UPm1MT#N)^B_JC&O?T-D-To3ZEnL>56I)CSQ)?Ed5yFYeT z1EzCT=Zg6!iZv%4RzFr=QCa9@X!!8_H4nCV$U6<6eJ-3MB__X zh2JlIK+_lR>mpOkcN7rdofcfkK?#x~duiV{!GxEE<=6gXLsnuCe)(I%R5c-msOp~MkRC9m&v!`ML8 z-`Ey~f43B5^Vug=-D>^RaQK0~ae!A7!&fMr^jCK%-**LjD@hwux*esVj zH;PK9bDj74Ou3j-i2=R$LU8KC9u;4omp`_mmE(c;ymzi8>0Y_@)2L|F!f0|=>OGQ) z#2nK|2E4d?3KZzfJxz32Na>XXDAEw7DxcEbScGGxa?BJE^iRp!HW{;%68#10FFdb1 zll(fmWCLbrUM!$nVRcLOkIP1|v`oPfg064OKzxT?c(0Gj00;LVCt$pp?`xrs5HovT zp<_-e3^9nX0Z4@8Fs8k0%uBIjh`GdE<3>(*A_?IxxI<)DN0%kuq6kBs9)>Cz1bxxr z*MqO8jCEI0ZjKWpGxQMjO%btVu$Zc@rB{TbnvPOmueSsfcR=3SXWIegy2zn{Tf^D? z4FkX-lh*ejn6JCPF`L8SOf-Ye{WF5)uojL-dC%Rs9v#A|=Yt%k_lSHrK#%@c9ez2S z%ej^P^w0#0z6{2cBcfzr3Q{8^6qOc+Ql@cZeLIlMjPQ7@_mDkmWn@${Q)Z+`Nvv-n z`5g(@1PMg<$}WC52>*#}-&*Owe?=&+IbZPq+trLw+)xHC{;9;2_C?)QOuNBAKb*ZV zSvtB(30F7Z1$LR$M+~x%T0pD6SUC1m{-?wEhi2d>V#C!JzAdV8?@eE+yf_tWDMDVi zB#8?81w`X0y+8%fjn0T?h)&U0Ix^}e&2IJOJV)srDgeUPP(H2*HV9E5V5MlJT}6#) z>(rRYv2Y+Ow%5FU^FZN}6);fI6c_!4h%)b#2`}z)O&8Ul_0+hcg&~>`89`GGyt=`^ zW;K4}hLI1wC@*>(vbeeAfrAJwf=S8~mK1YM2>bpTkidMTK1M0Gsbw{d2UO95gnbvK zT`RzcG%sRyNub_sdaGlzDoPF4Trrf2e`%gEe3h@Eh!z$7fZv#%i?)^c)HNf~v?UJS zMl_s5i)w$EX+oHm8DnrLR3NRT8j6&G2-(xK0k7Iv1JQcPW5Aw8nk&fgs*+UE6bk>B@Z|jVMlRw%8T}rWWYtE{dTw@WT;fS|_*N@2Hy%{B+71?b# z!9iLc!! z@py6YY;n`}4NON4FSrp(F*D5VmxTxtUWTjggj^6p-e>35S|>tx`5Cvs%!O{c2%u)VKcm(G~A5i=xIC7}V@WF*s*|@q&R{QI3uQ z`Olxvww8Z$a)zrs_fEOtTl>B-`jh4Jzf^&wWPZYU40RF)GjdwDkjF0jl21lGYmEFyJr z6}OWm8-N-SSD87_=DvL+pf_ZE&VL0@*s=otd7>CznqV`Ab%E{KoK@XrV+Deq2Gq|S zgxT&vV&=ffU2F3tmYG3@#lvozCvo#lF3h2od60GtqQwBK-Gw0TL}vVB&lo0o75qPU zwmY4E-~hA0pAMU(6WpELcTXmo7z&P4dDAxuWSo2W+_aw6G`&g$K39Lr_Ow2#940oB zSQYVvd^R}7%BodfZRO(8-8{P417Gr279Jnj%5?oW_}!Hw5pyG6yjE@4XJ>NNB=q%_yAg)vE6Z-aOi0#w&zYH*%bxO3e!>OSr!jlF?KR?oUTsO-cWzq|^K?^h ztfR-^npl~F0Pc1Yl1bk(wy1H@V$b?otTGyoR>Ebz^_fhXbM+d0PiSxm9J1Gvvc5kG^y z9I>+QLqYe&ixo@Pm*U|_y)tq+=&@l0l^hk1k`hub#tlkeK)>=8<&WoHu_ieY%e~UV z5ND3EbR0OaTW)oIA~7LV>rU+2)xE2$(UB$$PXM-QA%0-rE@CdgO5s=555ZA0(7wMJ zSPf#5WhWdDGdE@WXw4?y-i>|*bFqUQ&HH-WY_Pt^4CqOkAq7;j*++=qTxS`JkH@wn zSkHC+x3o|tF3Ufz86>_@nwh+D6J}>NE6@qKq`*)H;tsL9%I1%wA;?-MpmgX_oW@x! z;>)O%UzTbOHHjy11cw%}I+{r4~>J#NO?f+qtM~L5Eu}nfp|KXGXBII=N7F3_jH1MPpB)ykhg^4|Ocg=THGsr{JuU8L)p*Q{->_dS`EYQO(9o|s7b z{@7Vcr}Aq0Cs9nVF^kdzgt*KJj{0)4UW)GF9e(O6)2Qg3W=U?hjT`Ckn)F>Hu_?hR zJ7kTo1`FM!H2#pGmp%wC_3%RuZjFjQD;Z3>(=;1{z89V)Q7}q09Ikkt8=^M-)^Z z(f5c^KbofgSR5$YJo1rl-~$P-63!r46S!Lx zK1uY3U3eurc{w!_4Z{GAY62EK-C+Cur#8%HLGEfR>co}ZJi6eqmP182KfO5MeA`lm z%Zi<4YQh z0JSXAe6D~3IGdSVd>6mGEIGQOe|L?z@r0X-N)@x=oQ*DsapX(KxFkm@!RDIjB<1r(;xEsH+2g@$$)`22Kc;ryU4+bh^sXQ=DKxj7NM48R0}tL!#7q% z#&w-|K39xR*I>Jl0W?%%yR(GW`J2|r*ZSJM$nuT??{~r}MY(Tho@Ig1nI?M5%ZgEz z(|YlIgR9pvzJ_)vr~;%8D0RGy;L{dLv67A%3L7+)zj09*4z9)Vi*_L}zFd`0p0Ci2 z^r9;7t!@jj9$Dr)17iUu3EB2Fb>{Bwww5NA(N4^F`pb(cDjZ(zuV>umj5p@wEN0Y^ z5}SAwrT^BntL)ssVRLTYb9T5XB7~5bB&^T#h72j*20>1q3k9^cXfKrQ9g@UM%XdJL zmv6FHN2h=LofjW?PfF7K_?BuZ&FCM4QQ^xFWZ1=CZ8J{aF@^?lR<^ zmzSQdOzFEerRP+}z9z`O;ns8>GSg>gzMHX~@|w5%R;p-tIccS!$)4{B(W+=hK8FJ8 zhgSyQ;Xmp7i2`*vBE7I2!ayUSr|^r}K+tHYDwB_9qvVqIQ{Y^Z+Poy^@$rW>(?qIBty4w2Ff>`{M7tzl!+(k5p5a2B616JkhV*8!$%rPG zT*&WyedB;UM1a2$6@eM2cyocl%04bJjNy7E z`1ofV%nV^$F z*^yXz98@YI$1UkZQ&Wr|8Wo-Nh_tW;3(DvCYE1iS@=GUYF!pqSas|+mI}oZ5kt32k zAzm0L*O05*r9w<6j<`@*Jl4Pgzg*lm)e@1YJS{so69;)yU<_|KplH>&w*+{>;W%fN zf9$nvxU{XD+426T&G45g1QJ1!77nTy0&)}inUP+LC%{KR`Nj?P*=<9Ziy(HTJGt^- zdflBi2yGaZCztj>iLENYLwe-eC+v@ni|;qj$&aunTq(1Po6RyVV2{x;W%g9xF0DWXY9ogv6E~xEVL$608j>AI6UvS+uLTD4jN{4 z0|5BtuCL#muk_7t9QDP-&kX>81_}TG0sc2EVO}kO73Jkof%J_?c0^UVjDf^NRwn2RmKVZGdiAdY++xw@Pn$Cpp2N zUsVV%=pdfy!9Y95{{w0TQVpQ5A9apeve9o;w^M-iW@;@Suq+Cm&T)+%u0fQ)q(R$o z!YYA0@UHLTnuc{j$pN)dhNkygr9j#?28h;%u#+L`CE$*wG95JXY}gEB^bieM2Qbx< z5!M9o#mazK=jdweSc}rQHwTA0;$s9F;eGaHAJy1#jvMFWmH{8^xYNsaYH(MSZ&Ob2 zJ5){~@YixLC4FOp)z1_41Uu^ zfPBHlld2M|E-sWB9Muh8 zt8t`j9cb%;I=WyG7oXDWY*9ai8NWb+Dg&oqXIl)s$>0NB`**csvoFq}EmEDA1z@gV z<0n)Zup)ynkH1mm7gqb>V#o7kaj-C1pK$m~4>i=57moP6F z0d&APFncFzJtu$tdLN<}CEMR2gE&epQoP=>0(cJ&@S!9BoTn&(l&H}*9UxE8UuVVw zgt)|nXbw~X%7oycO2QzBdI=Mmw23M&VJ5p-5lih5wK%yD5(yi35*?wQBzheD@`ip4 zi4mtbG2zaYn6b&R#DceUe`duYk0>lht~2tbNs+1m)=J%+D89?DN{1wMm6RRWm?U3T zFkLy)9WSBj*n$cbNR^YLr`R&YEKE@-Q(O+!CJ(B{n?$FN&n<^$95iMlE8UY_HTHk& zlr%ZAVP%m?yad_g(OjAWR*j@O9|qN5JWVz)!(tR7kh??>Ybg0P`CXsQ>@~ diff --git a/app/assets/fonts/Inter-roman.extra.var.woff2 b/app/assets/fonts/Inter-roman.extra.var.woff2 deleted file mode 100644 index f2ee9eeb144798031841f7197f340642cd1b253c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30660 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%0AOabCt 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 ve~Q)?zx4~9 diff --git a/app/assets/fonts/Inter-roman.greek.var.woff2 b/app/assets/fonts/Inter-roman.greek.var.woff2 deleted file mode 100644 index 8604c8a00017c69ba40cff1c9df08d3182642596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29580 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 V-l{^!gvQ#9HVFlf_v*i2oB>zyL6!gj diff --git a/app/assets/fonts/Inter-roman.latin.var.woff2 b/app/assets/fonts/Inter-roman.latin.var.woff2 deleted file mode 100644 index 9503ba17ff10471687d7af1b015737d90b0d94d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51896 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 From 0bb4443c9fce6dc6ad6c536e67f3980d38c10152 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Mon, 27 Jan 2025 08:08:44 -0500 Subject: [PATCH 28/88] Properly invoke the initializer to have Propshaft ignore tailwind Fixes #477, originally #470 was incompletely fixed. --- lib/tailwindcss/engine.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tailwindcss/engine.rb b/lib/tailwindcss/engine.rb index 0c020bbc..7b88c5f1 100644 --- a/lib/tailwindcss/engine.rb +++ b/lib/tailwindcss/engine.rb @@ -6,7 +6,7 @@ class Engine < ::Rails::Engine Rails.application.config.generators.stylesheets = false end - initializer "tailwindcss.exclude_asset_path", after: "propshaft.append_assets_path" do + initializer "tailwindcss.exclude_asset_path", before: "propshaft.append_assets_path" do if Rails.application.config.assets.excluded_paths # the app may not be using Propshaft Rails.application.config.assets.excluded_paths << Rails.root.join("app/assets/tailwind") end From 894f6136cf57106ed4d9797cebed8e7c1c2255c3 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Mon, 27 Jan 2025 08:18:45 -0500 Subject: [PATCH 29/88] version bump to v4.0.0.rc3 --- CHANGELOG.md | 10 ++++++++++ lib/tailwindcss/version.rb | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06cfedf3..2df7c487 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ ## next / unreleased +## v4.0.0.rc3 / 2025-01-27 + +Everything in v4.0.0.rc2, plus ... + +General changes: + +- Remove the Inter font assets from the gem. @EricGusmao +- If Propshaft is being used, `app/assets/tailwind` will be excluded from its asset handling. (This was incompletely fixed in RC2.) + + ## v4.0.0.rc2 / 2025-01-26 Everything in v4.0.0.rc1, plus ... diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index 98efde4f..d706a5b0 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "4.0.0.rc2" + VERSION = "4.0.0.rc3" end From c126c6bacb22c706e32347f2d4d221eb4f4e468d Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Mon, 27 Jan 2025 12:46:19 -0500 Subject: [PATCH 30/88] Rename application.tailwind.css to application.css Its location is app/assets/tailwind so we don't need to say "tailwind" again. Also update tests, simplify some code, update the README, consolidate the CHANGELOG. --- CHANGELOG.md | 43 ++++++------------- README.md | 16 +++---- ...plication.tailwind.css => application.css} | 0 lib/install/install_tailwindcss.rb | 8 ++-- lib/install/upgrade_tailwindcss.rb | 12 +++--- lib/tailwindcss/commands.rb | 2 +- test/integration/user_install_test.sh | 6 +-- test/integration/user_upgrade_test.sh | 2 +- 8 files changed, 36 insertions(+), 53 deletions(-) rename lib/install/{application.tailwind.css => application.css} (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2df7c487..56fc71bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,34 +1,12 @@ ## next / unreleased -## v4.0.0.rc3 / 2025-01-27 - -Everything in v4.0.0.rc2, plus ... - -General changes: - -- Remove the Inter font assets from the gem. @EricGusmao -- If Propshaft is being used, `app/assets/tailwind` will be excluded from its asset handling. (This was incompletely fixed in RC2.) - - -## v4.0.0.rc2 / 2025-01-26 - -Everything in v4.0.0.rc1, plus ... - -General changes: - -- The location of `application.tailwind.css` has moved from `app/assets/stylesheets` to `app/assets/tailwind`. If Propshaft is being used, `app/assets/tailwind` will be excluded from its asset handling. +## next rc / unreleased -Changes to the `tailwindcss:install` task: - -- The "tailwind" stylesheet link tag will only be added to the application layout if Propshaft isn't in use and already handling `app/assets/build/tailwind.css`. Previously it was always injected, resulting in the tag being rendered twice if Propshaft was in use. - -Changes to the `tailwindcss:upgrade` task: - -- The "tailwind" stylesheet link tag will be removed if Propshaft is in use and already handling `app/assets/build/tailwind.css`. -- The file `application.tailwind.css` will be moved from `app/assets/stylesheets` to `app/assets/tailwind`. +- The input file `app/assets/tailwind/application.tailwind.css` has been renamed to `app/assets/tailwind/application.css`. +Thanks to @brunoprietog for feedback and advice. -## v4.0.0.rc1 / 2025-01-23 +## v4.0.0.rc3 / 2025-01-27 ### Upgrade to Tailwind CSS v4 @@ -36,21 +14,26 @@ General changes: - Dependency on `tailwindcss-ruby` set to `~> 4.0`. - The location of (optional) `postcss.config.js` has moved from the `config/` directory to the app root. +- The location of `application.tailwind.css` has moved from `app/assets/stylesheets` to `app/assets/tailwind`. If Propshaft is being used, `app/assets/tailwind` will be excluded from its asset handling. +- The Inter font is no longer packaged with the gem. Changes to the `tailwindcss:install` task: - The `tailwindcss:install` task no longer installs `config/tailwind.config.js`. -- The Inter font is no longer packaged with the gem. -- Some Tailwind class names are updated for v4. +- The Inter font is no longer configured in the application layout. +- Some Tailwind class names in the ERB templates are updated for v4. +- The "tailwind" stylesheet link tag will only be added to the application layout if Propshaft isn't in use and already handling `app/assets/build/tailwind.css`. Previously it was always injected, resulting in the tag being rendered twice if Propshaft was in use. New task `tailwindcss:upgrade` upgrades many apps cleanly: - Cleans up some things in the generated `config/tailwind.config.js`. - Runs the upstream upgrader (note: requires `npx` to run the one-time upgrade, but highly recommended). -- Removes references to the Inter font from the application layout. +- Removes configuration for the Inter font from the application layout. - If present, moves `config/postcss.config.js` to the root directory. +- The "tailwind" stylesheet link tag will be removed if Propshaft is in use and already handling `app/assets/build/tailwind.css`. +- The input file `application.tailwind.css` will be moved from `app/assets/stylesheets` to `app/assets/tailwind`. -Thanks to @EricGusmao and @excid3 for their help and advice on this work. +Thanks to @EricGusmao, @patriciomacadden, and @excid3 for their feedback, contributions, and advice on the v4 release. ## v3.3.1 / 2025-01-23 diff --git a/README.md b/README.md index 623f3f30..f9e51fdd 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ Here's what the upgrade task does: - Cleans up some things in the generated `config/tailwind.config.js`. - If present, moves `config/postcss.config.js` to the root directory. -- If present, moves `app/assets/stylesheets/application.tailwind.css` to `app/assets/tailwind`. +- If present, moves `app/assets/stylesheets/application.tailwind.css` to `app/assets/tailwind/application.css`. - Removes unnecessary `stylesheet_link_tag "tailwindcss"` tags from the application layout. - Removes references to the Inter font from the application layout. - Runs the upstream upgrader (note: requires `npx` to run the one-time upgrade, but highly recommended). @@ -119,22 +119,22 @@ $ bin/rails tailwindcss:upgrade gsub app/views/layouts/application.html.erb Remove unnecessary stylesheet_link_tag from application layout gsub app/views/layouts/application.html.erb - Moving application.tailwind.css to /home/user/myapp/app/assets/tailwind - create app/assets/tailwind/application.tailwind.css + Moving /home/user/myapp/app/assets/stylesheets/application.tailwind.css to /home/user/myapp/app/assets/tailwind/application.css + create app/assets/tailwind/application.css remove app/assets/stylesheets/application.tailwind.css 10.9.0 Running the upstream Tailwind CSS upgrader run npx @tailwindcss/upgrade@next --force --config /home/user/myapp/config/tailwind.config.js from "." ≈ tailwindcss v4.0.0 │ Searching for CSS files in the current directory and its subdirectories… -│ ↳ Linked `./config/tailwind.config.js` to `./app/assets/tailwind/application.tailwind.css` +│ ↳ Linked `./config/tailwind.config.js` to `./app/assets/tailwind/application.css` │ Migrating JavaScript configuration files… │ ↳ The configuration file at `./config/tailwind.config.js` could not be automatically migrated to the new CSS │ configuration format, so your CSS has been updated to load your existing configuration file. │ Migrating templates… │ ↳ Migrated templates for configuration file: `./config/tailwind.config.js` │ Migrating stylesheets… -│ ↳ Migrated stylesheet: `./app/assets/tailwind/application.tailwind.css` +│ ↳ Migrated stylesheet: `./app/assets/tailwind/application.css` │ ↳ No PostCSS config found, skipping migration. │ Updating dependencies… │ Could not detect a package manager. Please manually update `tailwindcss` to v4. @@ -167,11 +167,11 @@ We'll try to improve the upgrade process over time, but for now you may need to ### Configuration and commands -#### Input file: `app/assets/tailwind/application.tailwind.css` +#### Input file: `app/assets/tailwind/application.css` -The `tailwindcss:install` task will generate a Tailwind input file in `app/assets/tailwind/application.tailwind.css`. This is where you import the plugins you want to use and where you can setup your custom `@apply` rules. +The `tailwindcss:install` task will generate a Tailwind input file in `app/assets/tailwind/application.css`. This is where you import the plugins you want to use and where you can setup your custom `@apply` rules. -⚠ The location of this file changed in v4, from `app/assets/stylesheets` to `app/assets/tailwind`. The `tailwindcss:upgrade` task will move it for you. +⚠ The location of this file changed in v4, from `app/assets/stylesheets/application.tailwind.css` to `app/assets/tailwind/application.css`. The `tailwindcss:upgrade` task will move it for you. #### Output file: `app/assets/builds/tailwind.css` diff --git a/lib/install/application.tailwind.css b/lib/install/application.css similarity index 100% rename from lib/install/application.tailwind.css rename to lib/install/application.css diff --git a/lib/install/install_tailwindcss.rb b/lib/install/install_tailwindcss.rb index e210d60b..3d471d07 100644 --- a/lib/install/install_tailwindcss.rb +++ b/lib/install/install_tailwindcss.rb @@ -1,6 +1,6 @@ APPLICATION_LAYOUT_PATH = Rails.root.join("app/views/layouts/application.html.erb") CENTERING_CONTAINER_INSERTION_POINT = /^\s*<%= yield %>/.freeze -TAILWIND_ASSET_PATH = Rails.root.join("app/assets/tailwind") +TAILWIND_ASSET_PATH = Rails.root.join("app/assets/tailwind/application.css") if APPLICATION_LAYOUT_PATH.exist? unless File.read(APPLICATION_LAYOUT_PATH).match?(/stylesheet_link_tag :app/) @@ -32,9 +32,9 @@ append_to_file(".gitignore", %(\n/app/assets/builds/*\n!/app/assets/builds/.keep\n)) end -unless TAILWIND_ASSET_PATH.join("application.tailwind.css").exist? - say "Add default #{TAILWIND_ASSET_PATH}/application.tailwind.css" - copy_file "#{__dir__}/application.tailwind.css", TAILWIND_ASSET_PATH.join("application.tailwind.css") +unless TAILWIND_ASSET_PATH.exist? + say "Add default #{TAILWIND_ASSET_PATH}" + copy_file "#{__dir__}/application.css", TAILWIND_ASSET_PATH end if Rails.root.join("Procfile.dev").exist? diff --git a/lib/install/upgrade_tailwindcss.rb b/lib/install/upgrade_tailwindcss.rb index 84a1aa8c..6266583a 100644 --- a/lib/install/upgrade_tailwindcss.rb +++ b/lib/install/upgrade_tailwindcss.rb @@ -1,8 +1,8 @@ TAILWIND_CONFIG_PATH = Rails.root.join("config/tailwind.config.js") APPLICATION_LAYOUT_PATH = Rails.root.join("app/views/layouts/application.html.erb") POSTCSS_CONFIG_PATH = Rails.root.join("config/postcss.config.js") -OLD_TAILWIND_ASSET_PATH = Rails.root.join("app/assets/stylesheets") -TAILWIND_ASSET_PATH = Rails.root.join("app/assets/tailwind") +OLD_TAILWIND_ASSET_PATH = Rails.root.join("app/assets/stylesheets/application.tailwind.css") +TAILWIND_ASSET_PATH = Rails.root.join("app/assets/tailwind/application.css") unless TAILWIND_CONFIG_PATH.exist? say "Default tailwind.config.js is missing!", :red @@ -38,10 +38,10 @@ say %( Please check your layouts and remove any "inter-font" stylesheet links.) end -if OLD_TAILWIND_ASSET_PATH.join("application.tailwind.css").exist? - say "Moving application.tailwind.css to #{TAILWIND_ASSET_PATH}" - copy_file OLD_TAILWIND_ASSET_PATH.join("application.tailwind.css"), TAILWIND_ASSET_PATH.join("application.tailwind.css") - remove_file OLD_TAILWIND_ASSET_PATH.join("application.tailwind.css") +if OLD_TAILWIND_ASSET_PATH.exist? + say "Moving #{OLD_TAILWIND_ASSET_PATH} to #{TAILWIND_ASSET_PATH}" + copy_file OLD_TAILWIND_ASSET_PATH, TAILWIND_ASSET_PATH + remove_file OLD_TAILWIND_ASSET_PATH end if system("npx --version") diff --git a/lib/tailwindcss/commands.rb b/lib/tailwindcss/commands.rb index 11105dbc..4c90849e 100644 --- a/lib/tailwindcss/commands.rb +++ b/lib/tailwindcss/commands.rb @@ -8,7 +8,7 @@ def compile_command(debug: false, **kwargs) command = [ Tailwindcss::Ruby.executable(**kwargs), - "-i", rails_root.join("app/assets/tailwind/application.tailwind.css").to_s, + "-i", rails_root.join("app/assets/tailwind/application.css").to_s, "-o", rails_root.join("app/assets/builds/tailwind.css").to_s, ] diff --git a/test/integration/user_install_test.sh b/test/integration/user_install_test.sh index aaf00a67..09b03b2f 100755 --- a/test/integration/user_install_test.sh +++ b/test/integration/user_install_test.sh @@ -37,7 +37,7 @@ bin/rails tailwindcss:install # TEST: tailwind was installed correctly grep -q "

> Rakefile @@ -46,7 +46,7 @@ task :still_here do end EOF -cat >> app/assets/tailwind/application.tailwind.css <> app/assets/tailwind/application.css < Date: Mon, 27 Jan 2025 10:30:38 -0300 Subject: [PATCH 31/88] doc: update README with v4 class name upgrade instructions Co-authored-by: Mike Dalessio --- README.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f9e51fdd..6634b074 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,9 @@ - [Upgrading your application from Tailwind v3 to v4](#upgrading-your-application-from-tailwind-v3-to-v4) * [You don't _have_ to upgrade](#you-dont-_have_-to-upgrade) * [Upgrade steps](#upgrade-steps) + * [Post Upgrade](#post-upgrade) * [Troubleshooting](#troubleshooting) + * [Updating CSS class names for v4](#updating-css-class-names-for-v4) - [Developing with Tailwindcss](#developing-with-tailwindcss) * [Configuration and commands](#configuration-and-commands) * [Building for production](#building-for-production) @@ -91,12 +93,41 @@ gem "tailwindcss-ruby", "~> 3.4" First, update to `tailwindcss-rails` v4.0.0 or higher. This will also ensure you're transitively depending on `tailwindcss-ruby` v4. -``` html + +```html # Gemfile gem "tailwindcss-rails", "~> 4.0" # which transitively pins tailwindcss-ruby to v4 ``` -Then, run the `tailwindcss:upgrade` task. Among other things, this will try to run the official Tailwind upgrade utility. It requires `npx` in order to run, but it's a one-time operation and is *highly recommended* for a successful upgrade. +If you want to migrate class names for v4 (optional), apply this [step](#upgrading-class-names-for-v4) and continue this guide. + +Add the following line to the `.gitignore` file: + +```gitignore +/node_modules +``` +(So the Tailwind update tool won’t dig through your node_modules files and infer incorrect migrations, because it complies with ``.gitignore`` constraints) + +Then create a ``package.json`` in the root of the project: + +```jsonc +{ + "name": "app_name", + "version": "1.0.0", + "dependencies": { + "tailwindcss": "^3.4.17", // Mandatory!! + // Install all plugins and modules that are referenced in tailwind.config.js + "@tailwindcss/aspect-ratio": "^0.4.2", + "@tailwindcss/container-queries": "^0.1.1", + "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/typography": "^0.5.16" + // And so on... + } +} +``` +**Run** ``npm install`` (or ``yarn install`` if using ``yarn``) + +Then, **run** the `tailwindcss:upgrade` task. Among other things, this will try to run the official Tailwind upgrade utility. It requires `npx` in order to run, but it's a one-time operation and is *highly recommended* for a successful upgrade. Here's what the upgrade task does: @@ -145,9 +176,13 @@ $ bin/rails tailwindcss:upgrade Done in 56ms run bundle install --quiet ``` - + +### Post Upgrade + + + If this doesn't succeed, it's likely that you've customized your Tailwind configuration and you'll need to do some work to make sure your application upgrades. Please read the [official upgrade guide](https://tailwindcss.com/docs/upgrade-guide)! @@ -157,12 +192,36 @@ You may want to check out [TailwindCSS v4 - upgrade experience report · rails/t We know there are some cases we haven't addressed with the upgrade task: -- If the user isn’t using PostCSS, some migrations (e.g., updating class names in the view files) may fail - In setups without JavaScript tooling, the update process may fail to fully migrate `tailwind.config.js` because the tool assumes that the imported packages (e.g., tailwind plugins) are installed via a package manager, allowing them to be called. We'll try to improve the upgrade process over time, but for now you may need to do some manual work to upgrade. +### Updating CSS class names for v4 + +Before running the upgrade task, go to ``config/tailwind.config.js`` update the ``content`` part to: + +```js + content: [ + '../public/*.html', + '../app/helpers/**/*.rb', + '../app/javascript/**/*.js', + '../app/views/**/*.{erb,haml,html,slim}' + ], +``` +(Just add an additional ``.`` to all the paths referenced) + +Run the upstream upgrader as instructed above. + +Then, once you've run that successfully: + +- **Delete** ``package.json``, ``node_modules/`` and ``package-lock.json`` (or ``yarn.lock``), plus remove ``/node_modules`` from ``.gitignore``. +- **Go** to your CSS file and remove the following line (if present): + ```css + @plugin '@tailwindcss/container-queries'; + ``` + + ## Developing with Tailwindcss ### Configuration and commands From 63b3788ef834d950678966f85d21a19845ec8c3f Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Mon, 27 Jan 2025 16:33:49 -0500 Subject: [PATCH 32/88] version bump to v4.0.0.rc4 --- CHANGELOG.md | 8 ++++---- Gemfile.lock | 5 ++--- README.md | 5 ----- lib/tailwindcss/version.rb | 2 +- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56fc71bb..7feef6d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,10 @@ -## next / unreleased +# `tailwindcss-rails` Changelog -## next rc / unreleased +## v4.0.0.rc4 / 2025-01-27 - The input file `app/assets/tailwind/application.tailwind.css` has been renamed to `app/assets/tailwind/application.css`. +- Updated README docs on using the upgrade tool to update class names. @EricGusmao -Thanks to @brunoprietog for feedback and advice. ## v4.0.0.rc3 / 2025-01-27 @@ -33,7 +33,7 @@ New task `tailwindcss:upgrade` upgrades many apps cleanly: - The "tailwind" stylesheet link tag will be removed if Propshaft is in use and already handling `app/assets/build/tailwind.css`. - The input file `application.tailwind.css` will be moved from `app/assets/stylesheets` to `app/assets/tailwind`. -Thanks to @EricGusmao, @patriciomacadden, and @excid3 for their feedback, contributions, and advice on the v4 release. +Thanks to @EricGusmao, @patriciomacadden, @excid3, and @brunoprietog for their feedback, contributions, and advice on v4 support. ## v3.3.1 / 2025-01-23 diff --git a/Gemfile.lock b/Gemfile.lock index 91f050ca..9c67e7d9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - tailwindcss-rails (4.0.0.rc2) + tailwindcss-rails (4.0.0.rc4) railties (>= 7.0.0) tailwindcss-ruby (~> 4.0) @@ -65,7 +65,7 @@ GEM i18n (1.14.7) concurrent-ruby (~> 1.0) io-console (0.8.0) - irb (1.15.0) + irb (1.15.1) pp (>= 0.6.0) rdoc (>= 4.0.0) reline (>= 0.4.2) @@ -89,7 +89,6 @@ GEM net-protocol (0.2.2) timeout net-smtp (0.5.0) - net-protocol nokogiri (1.18.2) mini_portile2 (~> 2.8.2) racc (~> 1.4) diff --git a/README.md b/README.md index 6634b074..37a42c8b 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,6 @@ - [Upgrading your application from Tailwind v3 to v4](#upgrading-your-application-from-tailwind-v3-to-v4) * [You don't _have_ to upgrade](#you-dont-_have_-to-upgrade) * [Upgrade steps](#upgrade-steps) - * [Post Upgrade](#post-upgrade) * [Troubleshooting](#troubleshooting) * [Updating CSS class names for v4](#updating-css-class-names-for-v4) - [Developing with Tailwindcss](#developing-with-tailwindcss) @@ -179,10 +178,6 @@ Done in 56ms -### Post Upgrade - - - If this doesn't succeed, it's likely that you've customized your Tailwind configuration and you'll need to do some work to make sure your application upgrades. Please read the [official upgrade guide](https://tailwindcss.com/docs/upgrade-guide)! diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index d706a5b0..2e2dda5d 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "4.0.0.rc3" + VERSION = "4.0.0.rc4" end From 51efc7fda245ad973788c66f7c7473c940ca1a7f Mon Sep 17 00:00:00 2001 From: Eric Gusmao Date: Tue, 28 Jan 2025 06:12:56 -0300 Subject: [PATCH 33/88] fix: update postcss config path to root directory --- lib/tailwindcss/commands.rb | 2 +- test/lib/tailwindcss/commands_test.rb | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/tailwindcss/commands.rb b/lib/tailwindcss/commands.rb index 4c90849e..fb90f4f6 100644 --- a/lib/tailwindcss/commands.rb +++ b/lib/tailwindcss/commands.rb @@ -14,7 +14,7 @@ def compile_command(debug: false, **kwargs) command << "--minify" unless (debug || rails_css_compressor?) - postcss_path = rails_root.join("config/postcss.config.js") + postcss_path = rails_root.join("postcss.config.js") command += ["--postcss", postcss_path.to_s] if File.exist?(postcss_path) command diff --git a/test/lib/tailwindcss/commands_test.rb b/test/lib/tailwindcss/commands_test.rb index 60c073ed..3c7e5302 100644 --- a/test/lib/tailwindcss/commands_test.rb +++ b/test/lib/tailwindcss/commands_test.rb @@ -57,8 +57,7 @@ def setup assert_equal(executable, actual.first) refute_includes(actual, "--postcss") - config_file = Rails.root.join("config/postcss.config.js") - FileUtils.mkdir_p(Rails.root.join("config")) + config_file = Rails.root.join("postcss.config.js") FileUtils.touch(config_file) actual = Tailwindcss::Commands.compile_command assert_kind_of(Array, actual) From 43eeffd9171e9b271605803c7cb613a3e6b5aee4 Mon Sep 17 00:00:00 2001 From: Patricio Mac Adden Date: Tue, 28 Jan 2025 22:55:31 -0300 Subject: [PATCH 34/88] Hide tailwindcss:authentication from rails g --- .../tailwindcss/authentication/authentication_generator.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/generators/tailwindcss/authentication/authentication_generator.rb b/lib/generators/tailwindcss/authentication/authentication_generator.rb index aa6fc23b..756f1d7b 100644 --- a/lib/generators/tailwindcss/authentication/authentication_generator.rb +++ b/lib/generators/tailwindcss/authentication/authentication_generator.rb @@ -3,6 +3,8 @@ module Tailwindcss module Generators class AuthenticationGenerator < Erb::Generators::AuthenticationGenerator + hide! + source_root File.expand_path("templates", __dir__) end end From 738ba683a602eb2cb545ffd3b3a3dc70957354dc Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 29 Jan 2025 15:53:33 -0500 Subject: [PATCH 35/88] version bump to v4.0.0.rc5 --- CHANGELOG.md | 13 ++++++++----- Gemfile.lock | 2 +- lib/tailwindcss/version.rb | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7feef6d0..15e86e1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,14 @@ # `tailwindcss-rails` Changelog -## v4.0.0.rc4 / 2025-01-27 +## v4.0.0.rc5 / 2025-01-29 + +General changes since rc4: -- The input file `app/assets/tailwind/application.tailwind.css` has been renamed to `app/assets/tailwind/application.css`. -- Updated README docs on using the upgrade tool to update class names. @EricGusmao +- Update the rake tasks to detect an (optional) postcss file in the root directory, after moving the file in #466. #482 @EricGusmao +- Hide the gem's Rails generators in the `rails g --help` output. #483 @patriciomacadden -## v4.0.0.rc3 / 2025-01-27 +## v4.0.0.rc4 / 2025-01-27 ### Upgrade to Tailwind CSS v4 @@ -14,8 +16,9 @@ General changes: - Dependency on `tailwindcss-ruby` set to `~> 4.0`. - The location of (optional) `postcss.config.js` has moved from the `config/` directory to the app root. -- The location of `application.tailwind.css` has moved from `app/assets/stylesheets` to `app/assets/tailwind`. If Propshaft is being used, `app/assets/tailwind` will be excluded from its asset handling. +- The input file `app/assets/tailwind/application.tailwind.css` has been renamed to `app/assets/tailwind/application.css`. If Propshaft is being used, `app/assets/tailwind` will be excluded from its asset handling. - The Inter font is no longer packaged with the gem. +- Updated README to contain verbose instructions on upgrading. Changes to the `tailwindcss:install` task: diff --git a/Gemfile.lock b/Gemfile.lock index 9c67e7d9..f12b59ae 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - tailwindcss-rails (4.0.0.rc4) + tailwindcss-rails (4.0.0.rc5) railties (>= 7.0.0) tailwindcss-ruby (~> 4.0) diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index 2e2dda5d..acb989e3 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "4.0.0.rc4" + VERSION = "4.0.0.rc5" end From e37ed78f5aced5f8aac1a5176659c6e66734672b Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 31 Jan 2025 10:47:10 -0500 Subject: [PATCH 36/88] doc: update README upgrade guide for css class names I think 787bf269 left these instructions split across sections, I've tried to clean that up. --- README.md | 76 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 37a42c8b..01e27675 100644 --- a/README.md +++ b/README.md @@ -72,11 +72,11 @@ This gem will help with some of the mechanics of the upgrade, however. Keep in mind that you don't _need_ to upgrade. You can stay on Tailwind v3 for the foreseeable future if you prefer not to migrate now, or if your migration runs into problems. -Just make sure you're either pinned to v3.3.1 of this gem: +Just make sure you're pinned to v3.3.1 of this gem: ``` ruby # Gemfile -gem "tailwindcss-rails", "3.3.1" # which transitively pins tailwindcss-ruby to v3 +gem "tailwindcss-rails", "~> 3.3.1" # which transitively pins tailwindcss-ruby to v3 ``` or if you're on an earlier version of this gem, make sure you're pinning the version of **both** `tailwindcss-rails` and `tailwindcss-ruby`: @@ -84,7 +84,7 @@ or if you're on an earlier version of this gem, make sure you're pinning the ver ``` ruby # Gemfile gem "tailwindcss-rails", "~> 3.3" -gem "tailwindcss-ruby", "~> 3.4" +gem "tailwindcss-ruby", "~> 3.4" # only necessary with tailwindcss-rails < 3.3.1 ``` @@ -98,33 +98,7 @@ First, update to `tailwindcss-rails` v4.0.0 or higher. This will also ensure you gem "tailwindcss-rails", "~> 4.0" # which transitively pins tailwindcss-ruby to v4 ``` -If you want to migrate class names for v4 (optional), apply this [step](#upgrading-class-names-for-v4) and continue this guide. - -Add the following line to the `.gitignore` file: - -```gitignore -/node_modules -``` -(So the Tailwind update tool won’t dig through your node_modules files and infer incorrect migrations, because it complies with ``.gitignore`` constraints) - -Then create a ``package.json`` in the root of the project: - -```jsonc -{ - "name": "app_name", - "version": "1.0.0", - "dependencies": { - "tailwindcss": "^3.4.17", // Mandatory!! - // Install all plugins and modules that are referenced in tailwind.config.js - "@tailwindcss/aspect-ratio": "^0.4.2", - "@tailwindcss/container-queries": "^0.1.1", - "@tailwindcss/forms": "^0.5.10", - "@tailwindcss/typography": "^0.5.16" - // And so on... - } -} -``` -**Run** ``npm install`` (or ``yarn install`` if using ``yarn``) +If you want to migrate CSS class names for v4 (this is an optional step!), jump to [Updating CSS class names for v4](#updating-css-class-names-for-v4) before continuing. Then, **run** the `tailwindcss:upgrade` task. Among other things, this will try to run the official Tailwind upgrade utility. It requires `npx` in order to run, but it's a one-time operation and is *highly recommended* for a successful upgrade. @@ -187,14 +161,42 @@ You may want to check out [TailwindCSS v4 - upgrade experience report · rails/t We know there are some cases we haven't addressed with the upgrade task: -- In setups without JavaScript tooling, the update process may fail to fully migrate `tailwind.config.js` because the tool assumes that the imported packages (e.g., tailwind plugins) are installed via a package manager, allowing them to be called. +- In setups without JavaScript tooling, the update process may fail to fully migrate `tailwind.config.js` because the tool assumes that the imported packages (e.g., tailwind plugins) are installed via a package manager, allowing them to be called. In this case, you should try following the instructions in [Updating CSS class names for v4](#updating-css-class-names-for-v4) which will install the needed javascript packages for the updater. We'll try to improve the upgrade process over time, but for now you may need to do some manual work to upgrade. ### Updating CSS class names for v4 -Before running the upgrade task, go to ``config/tailwind.config.js`` update the ``content`` part to: +With some additional manual work the upstream upgrade tool will update your application's CSS class names to v4 conventions. **This is an optional step that requires a Javascript toolchain!** + +**Add** the following line to the `.gitignore` file, to prevent the upstream upgrade tool from accessing node_modules files. + +```gitignore +/node_modules +``` + +**Create** a `package.json` in the root of the project: + +```jsonc +{ + "name": "app_name", + "version": "1.0.0", + "dependencies": { + "tailwindcss": "^3.4.17", // Mandatory!! + // Install all plugins and modules that are referenced in tailwind.config.js + "@tailwindcss/aspect-ratio": "^0.4.2", + "@tailwindcss/container-queries": "^0.1.1", + "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/typography": "^0.5.16" + // And so on... + } +} +``` + +**Run** `npm install` (or `yarn install` if using `yarn`) + +**Update** `config/tailwind.config.js` and temporarily change the `content` part to have an additional `.` on all paths so they are relative to the config file: ```js content: [ @@ -204,17 +206,19 @@ Before running the upgrade task, go to ``config/tailwind.config.js`` update the '../app/views/**/*.{erb,haml,html,slim}' ], ``` -(Just add an additional ``.`` to all the paths referenced) -Run the upstream upgrader as instructed above. +(Just add an additional `.` to all the paths referenced) + +**Run** the upstream upgrader as instructed above. -Then, once you've run that successfully: +Then, once you've run that successfully, clean up: -- **Delete** ``package.json``, ``node_modules/`` and ``package-lock.json`` (or ``yarn.lock``), plus remove ``/node_modules`` from ``.gitignore``. +- **Delete** `package.json`, `node_modules/` and `package-lock.json` (or `yarn.lock`), plus remove `/node_modules` from `.gitignore`. - **Go** to your CSS file and remove the following line (if present): ```css @plugin '@tailwindcss/container-queries'; ``` +- **Revert** the changes to `config/tailwind.config.js` so that paths are once again relative to the application root. ## Developing with Tailwindcss From 976ddab873cc58abd65f3a442f7b3aafd8ce7f21 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 31 Jan 2025 10:53:42 -0500 Subject: [PATCH 37/88] doc: emit a post-install message with a pointer to upgrade docs --- tailwindcss-rails.gemspec | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tailwindcss-rails.gemspec b/tailwindcss-rails.gemspec index 0b31c4a8..45c19c28 100644 --- a/tailwindcss-rails.gemspec +++ b/tailwindcss-rails.gemspec @@ -20,4 +20,18 @@ Gem::Specification.new do |spec| spec.add_dependency "railties", ">= 7.0.0" spec.add_dependency "tailwindcss-ruby", "~> 4.0" + + # TODO: remove this after a suitable period of time after the v4.0.0 release. + spec.post_install_message = <<~TEXT + == Upgrading to Tailwind CSS v4 == + + If you are upgrading to tailwindcss-rails 4.x, please read the upgrade guide at: + + https://github.com/rails/tailwindcss-rails/blob/main/README.md#upgrading-your-application-from-tailwind-v3-to-v4 + + If you're not ready to upgrade yet, please pin to version 3 in your Gemfile: + + gem "tailwindcss-rails", "~> 3.3.1" + + TEXT end From 0cc3f19b2b262e4cea2a35b83af6a0e0bf71d1eb Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 31 Jan 2025 12:45:58 -0500 Subject: [PATCH 38/88] doc: further improvements to the README Co-authored-by: Eric Gusmao --- README.md | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 01e27675..c8e67e3b 100644 --- a/README.md +++ b/README.md @@ -35,17 +35,17 @@ ## Installation -With Rails 7 you can generate a new application preconfigured with Tailwind by using `--css tailwind`. If you're adding Tailwind later, you need to: +With Rails 7 you can generate a new application preconfigured with Tailwind CSS by using `--css tailwind`. If you're adding Tailwind later, you need to: 1. Run `./bin/bundle add tailwindcss-rails` 2. Run `./bin/rails tailwindcss:install` -This gem depends on the `tailwindcss-ruby` gem to install a working tailwind executable. +This gem depends on the `tailwindcss-ruby` gem to install a working Tailwind CLI executable. ### Choosing a specific version of `tailwindcss` -The `tailwindcss-ruby` gem is declared as a floating dependency of this gem, so by default you will get the most recent stable version. However, you can select a specific version of tailwind by pinning that gem to the analogous version in your application's `Gemfile`. For example, +The `tailwindcss-ruby` gem is declared as a floating dependency of this gem, so by default you will get the most recent stable version. However, you can select a specific version of Tailwind CSS by pinning that gem to the analogous version in your application's `Gemfile`. For example, ``` ruby gem "tailwindcss-rails" @@ -63,35 +63,41 @@ You can also use a local (npm-based) installation if you prefer, please go to ht v4.x of this gem has been updated to work with Tailwind v4, including providing some help with upgrading your application. -A full explanation of a Tailwind v4 upgrade is out of scope for this README, so we strongly urge you to read the [official Tailwind v4 upgrade guide](https://tailwindcss.com/docs/upgrade-guide) before embarking on an upgrade to an existing large app. +A full explanation of a Tailwind CSS v4 upgrade is out of scope for this README, so we **strongly urge** you to read the [official Tailwind CSS v4 upgrade guide](https://tailwindcss.com/docs/upgrade-guide) before embarking on an upgrade to an existing large app. -This gem will help with some of the mechanics of the upgrade, however. +This gem will help with some of the mechanics of the upgrade: + +- update some generated files to handle breaking changes in v4 of this gem, +- update some local project files to meet some Tailwind CSS v4 conventions, +- attempt to run the [upstream v4 upgrade tool](https://tailwindcss.com/docs/upgrade-guide#using-the-upgrade-tool). ### You don't _have_ to upgrade -Keep in mind that you don't _need_ to upgrade. You can stay on Tailwind v3 for the foreseeable future if you prefer not to migrate now, or if your migration runs into problems. +Keep in mind that you don't _need_ to upgrade. You can stay on Tailwind CSS v3 for the foreseeable future if you prefer not to migrate now, or if your migration runs into problems. -Just make sure you're pinned to v3.3.1 of this gem: +If you don't want to upgrade, then pin your application to v3.3.1 of this gem: ``` ruby # Gemfile gem "tailwindcss-rails", "~> 3.3.1" # which transitively pins tailwindcss-ruby to v3 ``` -or if you're on an earlier version of this gem, make sure you're pinning the version of **both** `tailwindcss-rails` and `tailwindcss-ruby`: +If you're on an earlier version of this gem, `<= 3.3.0`, then make sure you're pinning the version of **both** `tailwindcss-rails` and `tailwindcss-ruby`: ``` ruby # Gemfile gem "tailwindcss-rails", "~> 3.3" -gem "tailwindcss-ruby", "~> 3.4" # only necessary with tailwindcss-rails < 3.3.1 +gem "tailwindcss-ruby", "~> 3.4" # only necessary with tailwindcss-rails <= 3.3.0 ``` ### Upgrade steps -First, update to `tailwindcss-rails` v4.0.0 or higher. This will also ensure you're transitively depending on `tailwindcss-ruby` v4. +> [!WARNING] +> In applications using Tailwind plugins without JavaScript tooling, these upgrade steps may fail to fully migrate `tailwind.config.js` because the upstream upgrade tool needs the Tailwind plugins to be installed and available through a JavaScript package manager. If you see errors from the upstream upgrade tool, you should try following the additional steps in [Updating CSS class names for v4](#updating-css-class-names-for-v4) which will help you install (temporarily!) the necessary packages and clean up afterwards. +First, update to `tailwindcss-rails` v4.0.0 or higher. This will also ensure you're transitively depending on `tailwindcss-ruby` v4. ```html # Gemfile @@ -100,9 +106,10 @@ gem "tailwindcss-rails", "~> 4.0" # which transitively pins tailwindcss-ruby to If you want to migrate CSS class names for v4 (this is an optional step!), jump to [Updating CSS class names for v4](#updating-css-class-names-for-v4) before continuing. -Then, **run** the `tailwindcss:upgrade` task. Among other things, this will try to run the official Tailwind upgrade utility. It requires `npx` in order to run, but it's a one-time operation and is *highly recommended* for a successful upgrade. +Then, run `bin/rails tailwindcss:upgrade`. Among other things, this will try to run the official Tailwind upgrade utility. It requires `npx` in order to run, but it's a one-time operation and is *highly recommended* for a successful upgrade. -Here's what the upgrade task does: +
+Here's a detailed list of what the upgrade task does. - Cleans up some things in the generated `config/tailwind.config.js`. - If present, moves `config/postcss.config.js` to the root directory. @@ -111,6 +118,8 @@ Here's what the upgrade task does: - Removes references to the Inter font from the application layout. - Runs the upstream upgrader (note: requires `npx` to run the one-time upgrade, but highly recommended). +
+
Here's what that upgrade looks like on a vanilla Rails app. @@ -152,7 +161,7 @@ Done in 56ms
-If this doesn't succeed, it's likely that you've customized your Tailwind configuration and you'll need to do some work to make sure your application upgrades. Please read the [official upgrade guide](https://tailwindcss.com/docs/upgrade-guide)! +If this doesn't succeed, it's likely that you've customized your Tailwind configuration and you'll need to do some work to make sure your application upgrades. Please read the [official upgrade guide](https://tailwindcss.com/docs/upgrade-guide) and try following the additional steps in [Updating CSS class names for v4](#updating-css-class-names-for-v4). ### Troubleshooting @@ -161,14 +170,17 @@ You may want to check out [TailwindCSS v4 - upgrade experience report · rails/t We know there are some cases we haven't addressed with the upgrade task: -- In setups without JavaScript tooling, the update process may fail to fully migrate `tailwind.config.js` because the tool assumes that the imported packages (e.g., tailwind plugins) are installed via a package manager, allowing them to be called. In this case, you should try following the instructions in [Updating CSS class names for v4](#updating-css-class-names-for-v4) which will install the needed javascript packages for the updater. +- In applications using Tailwind plugins without JavaScript tooling, these upgrade steps may fail to fully migrate `tailwind.config.js` because the upstream upgrade tool needs the Tailwind plugins to be installed and available through a JavaScript package manager. If you see errors from the upstream upgrade tool, you should try following the additional steps in [Updating CSS class names for v4](#updating-css-class-names-for-v4) which will help you install (temporarily!) the necessary packages and clean up afterwards. We'll try to improve the upgrade process over time, but for now you may need to do some manual work to upgrade. ### Updating CSS class names for v4 -With some additional manual work the upstream upgrade tool will update your application's CSS class names to v4 conventions. **This is an optional step that requires a Javascript toolchain!** +> [!NOTE] +> If you'd like to help automate these steps, please drop a note to the maintainers in [this discussion thread](https://github.com/rails/tailwindcss-rails/discussions/450). + +With some additional manual work the upstream upgrade tool will update your application's CSS class names to v4 conventions. **This is an optional step that requires a JavaScript toolchain.** **Add** the following line to the `.gitignore` file, to prevent the upstream upgrade tool from accessing node_modules files. @@ -315,7 +327,7 @@ Running `bin/dev` invokes Foreman to start both the Tailwind watch process and t ### Using with PostCSS -If you want to use PostCSS as a preprocessor, create a custom `postcss.config.js` in your project root directory, and that file will be loaded by tailwind automatically. +If you want to use PostCSS as a preprocessor, create a custom `postcss.config.js` in your project root directory, and that file will be loaded by Tailwind automatically. For example, to enable nesting: @@ -328,7 +340,7 @@ export default { } ``` -⚠ 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: +⚠ 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: ```json // package.json From 3d8710440e7c0cff25c0273fed3744bf9b4b8842 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sat, 1 Feb 2025 12:06:26 -0500 Subject: [PATCH 39/88] version bump to v4.0.0 --- CHANGELOG.md | 28 +++++++++++----------------- lib/tailwindcss/version.rb | 2 +- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15e86e1b..686bfe5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,40 +1,34 @@ # `tailwindcss-rails` Changelog -## v4.0.0.rc5 / 2025-01-29 - -General changes since rc4: - -- Update the rake tasks to detect an (optional) postcss file in the root directory, after moving the file in #466. #482 @EricGusmao -- Hide the gem's Rails generators in the `rails g --help` output. #483 @patriciomacadden - - -## v4.0.0.rc4 / 2025-01-27 +## v4.0.0 / 2025-02-01 ### Upgrade to Tailwind CSS v4 General changes: -- Dependency on `tailwindcss-ruby` set to `~> 4.0`. +- The dependency on `tailwindcss-ruby` is set to `~> 4.0`. - The location of (optional) `postcss.config.js` has moved from the `config/` directory to the app root. -- The input file `app/assets/tailwind/application.tailwind.css` has been renamed to `app/assets/tailwind/application.css`. If Propshaft is being used, `app/assets/tailwind` will be excluded from its asset handling. +- The input file `app/assets/tailwind/application.tailwind.css` has been renamed to `app/assets/tailwind/application.css`. +- If Propshaft is being used, `app/assets/tailwind` will be excluded from its asset handling. - The Inter font is no longer packaged with the gem. -- Updated README to contain verbose instructions on upgrading. +- Some Tailwind class names in the generated ERB templates are updated for v4. +- The README is updated to contain verbose instructions on upgrading. +- The gem's Rails generators are now hidden in the `rails g --help` output. #483 @patriciomacadden Changes to the `tailwindcss:install` task: -- The `tailwindcss:install` task no longer installs `config/tailwind.config.js`. +- The `tailwindcss:install` task no longer installs `config/tailwind.config.js`, as v4 recommends placing Tailwind configuration in the CSS file. - The Inter font is no longer configured in the application layout. -- Some Tailwind class names in the ERB templates are updated for v4. -- The "tailwind" stylesheet link tag will only be added to the application layout if Propshaft isn't in use and already handling `app/assets/build/tailwind.css`. Previously it was always injected, resulting in the tag being rendered twice if Propshaft was in use. +- The "tailwind" stylesheet link tag will only be added to the application layout if Propshaft isn't in use and therefore already handling `app/assets/build/tailwind.css`. Previously it was always injected, resulting in the tag being rendered twice if Propshaft was in use. New task `tailwindcss:upgrade` upgrades many apps cleanly: -- Cleans up some things in the generated `config/tailwind.config.js`. +- Cleans up `config/tailwind.config.js` and references it from the CSS file as recommended for v4 upgrades. - Runs the upstream upgrader (note: requires `npx` to run the one-time upgrade, but highly recommended). - Removes configuration for the Inter font from the application layout. - If present, moves `config/postcss.config.js` to the root directory. - The "tailwind" stylesheet link tag will be removed if Propshaft is in use and already handling `app/assets/build/tailwind.css`. -- The input file `application.tailwind.css` will be moved from `app/assets/stylesheets` to `app/assets/tailwind`. +- The input file `app/assets/tailwind/application.tailwind.css` will be moved to `app/assets/tailwind/application.css`. Thanks to @EricGusmao, @patriciomacadden, @excid3, and @brunoprietog for their feedback, contributions, and advice on v4 support. diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index acb989e3..144cea79 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "4.0.0.rc5" + VERSION = "4.0.0" end From 5a9dd5eb4a269261eef0f0f1f1b2ea47cd2dea71 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sat, 1 Feb 2025 12:12:55 -0500 Subject: [PATCH 40/88] Small change to CHANGELOG and bump Gemfile.lock --- CHANGELOG.md | 4 +++- Gemfile.lock | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 686bfe5d..4ad84a2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,6 @@ General changes: - The Inter font is no longer packaged with the gem. - Some Tailwind class names in the generated ERB templates are updated for v4. - The README is updated to contain verbose instructions on upgrading. -- The gem's Rails generators are now hidden in the `rails g --help` output. #483 @patriciomacadden Changes to the `tailwindcss:install` task: @@ -32,6 +31,9 @@ New task `tailwindcss:upgrade` upgrades many apps cleanly: Thanks to @EricGusmao, @patriciomacadden, @excid3, and @brunoprietog for their feedback, contributions, and advice on v4 support. +### Other changes + +- The gem's Rails generators are now hidden in the `rails g --help` output. #483 @patriciomacadden ## v3.3.1 / 2025-01-23 diff --git a/Gemfile.lock b/Gemfile.lock index f12b59ae..6a2c9e0e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - tailwindcss-rails (4.0.0.rc5) + tailwindcss-rails (4.0.0) railties (>= 7.0.0) tailwindcss-ruby (~> 4.0) From 161febcd7975b999747d785db40785d60797fb76 Mon Sep 17 00:00:00 2001 From: Syed Fazil Basheer <27231393+frayzil@users.noreply.github.com> Date: Sun, 2 Feb 2025 11:14:14 +0530 Subject: [PATCH 41/88] doc: Add to v3-v4 upgrade guide about custom css files --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index c8e67e3b..afaa2fff 100644 --- a/README.md +++ b/README.md @@ -221,6 +221,17 @@ With some additional manual work the upstream upgrade tool will update your appl (Just add an additional `.` to all the paths referenced) +**Update** references to any existing css files imported in the `app/assets/stylesheets/application.tailwind.css` +```diff + @import "tailwindcss/components"; + @import "tailwindcss/utilities"; + +-@import "pagy.css"; +-@import "new_case.css"; ++@import "../stylesheets/pagy.css"; ++@import "../stylesheets/new_case.css"; +``` + **Run** the upstream upgrader as instructed above. Then, once you've run that successfully, clean up: From 716406fad1985314f4aa3bfa94077a7497eb0ee6 Mon Sep 17 00:00:00 2001 From: Syed Fazil Basheer <27231393+frayzil@users.noreply.github.com> Date: Mon, 3 Feb 2025 12:27:20 +0530 Subject: [PATCH 42/88] doc: Concise docs for v3-v4 upgrade guide --- README.md | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index afaa2fff..61b4e02a 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,12 @@ First, update to `tailwindcss-rails` v4.0.0 or higher. This will also ensure you gem "tailwindcss-rails", "~> 4.0" # which transitively pins tailwindcss-ruby to v4 ``` +**Update** references to any existing css files imported in `application.tailwind.css` +```diff +-@import "pagy.css"; ++@import "../stylesheets/pagy.css"; +``` + If you want to migrate CSS class names for v4 (this is an optional step!), jump to [Updating CSS class names for v4](#updating-css-class-names-for-v4) before continuing. Then, run `bin/rails tailwindcss:upgrade`. Among other things, this will try to run the official Tailwind upgrade utility. It requires `npx` in order to run, but it's a one-time operation and is *highly recommended* for a successful upgrade. @@ -221,17 +227,6 @@ With some additional manual work the upstream upgrade tool will update your appl (Just add an additional `.` to all the paths referenced) -**Update** references to any existing css files imported in the `app/assets/stylesheets/application.tailwind.css` -```diff - @import "tailwindcss/components"; - @import "tailwindcss/utilities"; - --@import "pagy.css"; --@import "new_case.css"; -+@import "../stylesheets/pagy.css"; -+@import "../stylesheets/new_case.css"; -``` - **Run** the upstream upgrader as instructed above. Then, once you've run that successfully, clean up: @@ -243,7 +238,6 @@ Then, once you've run that successfully, clean up: ``` - **Revert** the changes to `config/tailwind.config.js` so that paths are once again relative to the application root. - ## Developing with Tailwindcss ### Configuration and commands From 6df40af0f17f49818020e255c18d5326d5588ea8 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Mon, 3 Feb 2025 08:34:28 -0500 Subject: [PATCH 43/88] doc: tweak README [skip ci] --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 61b4e02a..6a9f0d2c 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,8 @@ First, update to `tailwindcss-rails` v4.0.0 or higher. This will also ensure you gem "tailwindcss-rails", "~> 4.0" # which transitively pins tailwindcss-ruby to v4 ``` -**Update** references to any existing css files imported in `application.tailwind.css` +**Update** path references to any existing css files imported in `app/assets/stylesheets/application.tailwind.css` so that they will resolve when the file is moved to `app/assets/tailwind/application.css`. + ```diff -@import "pagy.css"; +@import "../stylesheets/pagy.css"; From 024438bfa64f4b659db7df4cd89b6e173421062b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Feb 2025 14:30:51 +0000 Subject: [PATCH 44/88] build(deps): bump tailwindcss-ruby from 4.0.0 to 4.0.3 Bumps [tailwindcss-ruby](https://github.com/flavorjones/tailwindcss-ruby) from 4.0.0 to 4.0.3. - [Release notes](https://github.com/flavorjones/tailwindcss-ruby/releases) - [Changelog](https://github.com/flavorjones/tailwindcss-ruby/blob/v4.x/CHANGELOG.md) - [Commits](https://github.com/flavorjones/tailwindcss-ruby/compare/v4.0.0...v4.0.3) --- updated-dependencies: - dependency-name: tailwindcss-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6a2c9e0e..4439ff52 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -139,11 +139,11 @@ GEM io-console (~> 0.5) securerandom (0.4.1) stringio (3.1.2) - tailwindcss-ruby (4.0.0) - tailwindcss-ruby (4.0.0-aarch64-linux-gnu) - tailwindcss-ruby (4.0.0-arm64-darwin) - tailwindcss-ruby (4.0.0-x86_64-darwin) - tailwindcss-ruby (4.0.0-x86_64-linux-gnu) + tailwindcss-ruby (4.0.3) + tailwindcss-ruby (4.0.3-aarch64-linux-gnu) + tailwindcss-ruby (4.0.3-arm64-darwin) + tailwindcss-ruby (4.0.3-x86_64-darwin) + tailwindcss-ruby (4.0.3-x86_64-linux-gnu) thor (1.3.2) timeout (0.4.3) tzinfo (2.0.6) From a2eb839750ef90af8355072ac15768a738553c6c Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Tue, 4 Feb 2025 09:41:10 -0500 Subject: [PATCH 45/88] show focus outlines Fixes #489 --- .../templates/app/views/passwords/edit.html.erb | 4 ++-- .../templates/app/views/passwords/new.html.erb | 2 +- .../tailwindcss/scaffold/templates/_form.html.erb.tt | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb b/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb index 5c989810..1296be6f 100644 --- a/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb +++ b/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb @@ -7,11 +7,11 @@ <%%= form_with url: password_path(params[:token]), method: :put, class: "contents" do |form| %>
- <%%= form.password_field :password, required: true, autocomplete: "new-password", placeholder: "Enter new password", maxlength: 72, class: "block shadow-sm rounded-md border border-gray-400 outline-hidden focus:outline-blue-600 px-3 py-2 mt-2 w-full" %> + <%%= form.password_field :password, required: true, autocomplete: "new-password", placeholder: "Enter new password", maxlength: 72, class: "block shadow-sm rounded-md border border-gray-400 focus:outline-solid focus:outline-blue-600 px-3 py-2 mt-2 w-full" %>
- <%%= form.password_field :password_confirmation, required: true, autocomplete: "new-password", placeholder: "Repeat new password", maxlength: 72, class: "block shadow-sm rounded-md border border-gray-400 outline-hidden focus:outline-blue-600 px-3 py-2 mt-2 w-full" %> + <%%= form.password_field :password_confirmation, required: true, autocomplete: "new-password", placeholder: "Repeat new password", maxlength: 72, class: "block shadow-sm rounded-md border border-gray-400 focus:outline-solid focus:outline-blue-600 px-3 py-2 mt-2 w-full" %>
diff --git a/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb b/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb index e5862200..c37333e6 100644 --- a/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb +++ b/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb @@ -7,7 +7,7 @@ <%%= form_with url: passwords_path, class: "contents" do |form| %>
- <%%= form.email_field :email_address, required: true, autofocus: true, autocomplete: "username", placeholder: "Enter your email address", value: params[:email_address], class: "block shadow-sm rounded-md border border-gray-400 outline-hidden focus:outline-blue-600 px-3 py-2 mt-2 w-full" %> + <%%= form.email_field :email_address, required: true, autofocus: true, autocomplete: "username", placeholder: "Enter your email address", value: params[:email_address], class: "block shadow-sm rounded-md border border-gray-400 focus:outline-solid focus:outline-blue-600 px-3 py-2 mt-2 w-full" %>
diff --git a/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt index 9e392609..f9515541 100644 --- a/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt @@ -15,23 +15,23 @@
<% if attribute.password_digest? -%> <%%= form.label :password %> - <%%= form.password_field :password, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %> + <%%= form.password_field :password, class: ["block shadow-sm rounded-md border focus:outline-solid px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %>
<%%= form.label :password_confirmation %> - <%%= form.password_field :password_confirmation, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password_confirmation].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password_confirmation].any?}] %> + <%%= form.password_field :password_confirmation, class: ["block shadow-sm rounded-md border focus:outline-solid px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password_confirmation].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password_confirmation].any?}] %> <% elsif attribute.attachments? -%> <%%= form.label :<%= attribute.column_name %> %> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true, class: ["block shadow-sm rounded-md border focus:outline-solid px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %> <% else -%> <%%= form.label :<%= attribute.column_name %> %> <% if attribute.field_type == :textarea || attribute.field_type == :text_area -%> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, rows: 4, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, rows: 4, class: ["block shadow-sm rounded-md border focus:outline-solid px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% elsif attribute.field_type == :checkbox || attribute.field_type == :check_box -%> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border outline-hidden mt-2 h-5 w-5", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border focus:outline-solid mt-2 h-5 w-5", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% else -%> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border outline-hidden px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border focus:outline-solid px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% end -%> <% end -%>
From b1fd8a581111ae061ae06d5180a3237a86281f0f Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 5 Feb 2025 13:41:09 -0500 Subject: [PATCH 46/88] Drop `focus:outline-solid` from form field CSS classes because I like the brighter focus highlight, especially if it's used to indicate fields with validation errors. --- .../tailwindcss/scaffold/templates/_form.html.erb.tt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt index f9515541..0858f34f 100644 --- a/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt @@ -15,23 +15,23 @@
<% if attribute.password_digest? -%> <%%= form.label :password %> - <%%= form.password_field :password, class: ["block shadow-sm rounded-md border focus:outline-solid px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %> + <%%= form.password_field :password, class: ["block shadow-sm rounded-md border px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %>
<%%= form.label :password_confirmation %> - <%%= form.password_field :password_confirmation, class: ["block shadow-sm rounded-md border focus:outline-solid px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password_confirmation].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password_confirmation].any?}] %> + <%%= form.password_field :password_confirmation, class: ["block shadow-sm rounded-md border px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password_confirmation].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password_confirmation].any?}] %> <% elsif attribute.attachments? -%> <%%= form.label :<%= attribute.column_name %> %> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true, class: ["block shadow-sm rounded-md border focus:outline-solid px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true, class: ["block shadow-sm rounded-md border px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %> <% else -%> <%%= form.label :<%= attribute.column_name %> %> <% if attribute.field_type == :textarea || attribute.field_type == :text_area -%> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, rows: 4, class: ["block shadow-sm rounded-md border focus:outline-solid px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, rows: 4, class: ["block shadow-sm rounded-md border px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% elsif attribute.field_type == :checkbox || attribute.field_type == :check_box -%> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border focus:outline-solid mt-2 h-5 w-5", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border mt-2 h-5 w-5", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% else -%> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border focus:outline-solid px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% end -%> <% end -%>
From e79c0c2445d31514952fd36b4f7a08eb2ca1d795 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 5 Feb 2025 13:44:08 -0500 Subject: [PATCH 47/88] doc: update CHANGELOG --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ad84a2a..d0b1737c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # `tailwindcss-rails` Changelog +## next / unreleased + +Style changes to templates: + +* Field outlines are no longer hidden, and the focus border is brighter. #489 @rubys + + ## v4.0.0 / 2025-02-01 ### Upgrade to Tailwind CSS v4 From 28b246dbeb2ff5bba2b4e9594124c5b2303a3ed1 Mon Sep 17 00:00:00 2001 From: Patricio Mac Adden Date: Fri, 7 Feb 2025 10:08:52 -0300 Subject: [PATCH 48/88] Remove inter font license from the README as the font is no longer packaged --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6a9f0d2c..649feb2b 100644 --- a/README.md +++ b/README.md @@ -422,4 +422,3 @@ The inline version also works: ## License Tailwind for Rails is released under the [MIT License](https://opensource.org/licenses/MIT). -The Inter font is released under the [SIL Open Font License, Version 1.1](https://github.com/rsms/inter/blob/master/LICENSE.txt). From 37d5093dc818b41839b03b34db9c2fcbd556fe77 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 9 Feb 2025 10:59:32 -0500 Subject: [PATCH 49/88] test: update the integration install test to use static variable In tailwindcss v4.0.5, tailwindlabs/tailwindcss#16211 is smarter about not including unused theme variables, but `static` is the documented way to opt into the older behavior. --- test/integration/user_install_test.sh | 5 +++-- test/integration/user_upgrade_test.sh | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/test/integration/user_install_test.sh b/test/integration/user_install_test.sh index 09b03b2f..df3aa8f2 100755 --- a/test/integration/user_install_test.sh +++ b/test/integration/user_install_test.sh @@ -7,7 +7,8 @@ set -eux # set up dependencies rm -f Gemfile.lock -bundle remove actionmailer +bundle remove actionmailer || true +bundle remove rails || true bundle add rails --skip-install ${RAILSOPTS:-} bundle install --prefer-local @@ -47,7 +48,7 @@ end EOF cat >> app/assets/tailwind/application.css < Date: Mon, 10 Feb 2025 14:15:01 +0000 Subject: [PATCH 50/88] build(deps): bump tailwindcss-ruby from 4.0.3 to 4.0.6 Bumps [tailwindcss-ruby](https://github.com/flavorjones/tailwindcss-ruby) from 4.0.3 to 4.0.6. - [Release notes](https://github.com/flavorjones/tailwindcss-ruby/releases) - [Changelog](https://github.com/flavorjones/tailwindcss-ruby/blob/v4.x/CHANGELOG.md) - [Commits](https://github.com/flavorjones/tailwindcss-ruby/compare/v4.0.3...v4.0.6) --- updated-dependencies: - dependency-name: tailwindcss-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4439ff52..1e88abcd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -139,11 +139,11 @@ GEM io-console (~> 0.5) securerandom (0.4.1) stringio (3.1.2) - tailwindcss-ruby (4.0.3) - tailwindcss-ruby (4.0.3-aarch64-linux-gnu) - tailwindcss-ruby (4.0.3-arm64-darwin) - tailwindcss-ruby (4.0.3-x86_64-darwin) - tailwindcss-ruby (4.0.3-x86_64-linux-gnu) + tailwindcss-ruby (4.0.6) + tailwindcss-ruby (4.0.6-aarch64-linux-gnu) + tailwindcss-ruby (4.0.6-arm64-darwin) + tailwindcss-ruby (4.0.6-x86_64-darwin) + tailwindcss-ruby (4.0.6-x86_64-linux-gnu) thor (1.3.2) timeout (0.4.3) tzinfo (2.0.6) From cdafb1b5d8eb6c207cd2321be35dab827b1df08c Mon Sep 17 00:00:00 2001 From: hachi8833 Date: Mon, 17 Feb 2025 13:07:16 +0900 Subject: [PATCH 51/88] Update Readme link for fingerprinting --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 649feb2b..7fa18145 100644 --- a/README.md +++ b/README.md @@ -397,7 +397,7 @@ See https://github.com/flavorjones/tailwindcss-ruby for help. ### Using asset-pipeline assets -In Rails, you want to use [assets from the asset pipeline to get fingerprinting](https://guides.rubyonrails.org/asset_pipeline.html#what-is-fingerprinting-and-why-should-i-care-questionmark). However, Tailwind isn't aware of those assets. +In Rails, you want to use [assets from the asset pipeline to get fingerprinting](https://guides.rubyonrails.org/asset_pipeline.html#fingerprinting-versioning-with-digest-based-urls). However, Tailwind isn't aware of those assets. To use assets from the pipeline, use `url(image.svg)`. [Since Sprockets v3.3.0](https://github.com/rails/sprockets-rails/pull/476) `url(image.svg)` is rewritten to `/path/to/assets/image-7801e7538c6f1cc57aa75a5876ab0cac.svg` so output CSS will have the correct path to those assets. From dc8251df17086995686e85fdb9bfa9fde731997a Mon Sep 17 00:00:00 2001 From: Patricio Mac Adden Date: Mon, 20 Jan 2025 22:50:44 -0300 Subject: [PATCH 52/88] index: show the actions to the right of the partial and add a division between objects --- .../scaffold/templates/index.html.erb.tt | 16 +++++++++++----- test/integration/user_install_test.sh | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt index 3d337f95..71b7ec23 100644 --- a/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt @@ -10,13 +10,19 @@ <%%= link_to "New <%= human_name.downcase %>", new_<%= singular_route_name %>_path, class: "rounded-md px-3.5 py-2.5 bg-blue-600 hover:bg-blue-500 text-white block font-medium" %>
-
+
<%% if @<%= plural_table_name %>.any? %> <%% @<%= plural_table_name %>.each do |<%= singular_table_name %>| %> - <%%= render <%= singular_table_name %> %> -

- <%%= link_to "Show this <%= human_name.downcase %>", <%= model_resource_name(singular_table_name) %>, class: "ml-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> -

+
+ <%%= render <%= singular_table_name %> %> +
+ <%%= link_to "Show", <%= model_resource_name(singular_table_name) %>, class: "rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> + <%%= link_to "Edit", edit_<%= singular_route_name %>_path(<%= singular_table_name %>), class: "rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> +
+ <%%= button_to "Destroy", <%= model_resource_name %>, method: :delete, class: "rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium" %> +
+
+
<%% end %> <%% else %>

No <%= human_name.downcase.pluralize %> found.

diff --git a/test/integration/user_install_test.sh b/test/integration/user_install_test.sh index df3aa8f2..6f4ca301 100755 --- a/test/integration/user_install_test.sh +++ b/test/integration/user_install_test.sh @@ -61,7 +61,7 @@ fi # TEST: presence of the generated file bin/rails generate scaffold post title:string body:text published:boolean -grep -q "Show this post" app/views/posts/index.html.erb +grep -q "Show" app/views/posts/index.html.erb # TEST: contents of the css file bin/rails tailwindcss:build[verbose] From ad98417f261dee5a6538489f2e48a083c60fcd7d Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 19 Feb 2025 10:41:30 -0500 Subject: [PATCH 53/88] Simplify index page edit button to use edit_helper --- lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt index 71b7ec23..7e9b26af 100644 --- a/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt @@ -17,7 +17,7 @@ <%%= render <%= singular_table_name %> %>
<%%= link_to "Show", <%= model_resource_name(singular_table_name) %>, class: "rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> - <%%= link_to "Edit", edit_<%= singular_route_name %>_path(<%= singular_table_name %>), class: "rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> + <%%= link_to "Edit", <%= edit_helper(singular_table_name, type: :path) %>, class: "rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %>
<%%= button_to "Destroy", <%= model_resource_name %>, method: :delete, class: "rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium" %>
From db51cda12e187d53c4ade34526b35451591b194a Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 19 Feb 2025 11:07:17 -0500 Subject: [PATCH 54/88] doc: update CHANGELOG [skip ci] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d0b1737c..7030e848 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ Style changes to templates: * Field outlines are no longer hidden, and the focus border is brighter. #489 @rubys +* Boolean fields are improved (checkbox labels aligned, "Yes"/"No" instead of "true"/"false"). #454 @patriciomacadden +* Attachment links are consistently spaced and styled. #460 @patriciomacadden +* Index page links to Show, Edit, and Destroy for each resource. #460 @patriciomacadden @flavorjones ## v4.0.0 / 2025-02-01 From bf0b18fd28c07da6391b6b1808ee800371561967 Mon Sep 17 00:00:00 2001 From: Patricio Mac Adden Date: Wed, 12 Feb 2025 11:25:52 -0300 Subject: [PATCH 55/88] Add turbo confirm prompt --- lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt | 2 +- lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt index 7e9b26af..83d2b1ec 100644 --- a/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt @@ -19,7 +19,7 @@ <%%= link_to "Show", <%= model_resource_name(singular_table_name) %>, class: "rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> <%%= link_to "Edit", <%= edit_helper(singular_table_name, type: :path) %>, class: "rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %>
- <%%= button_to "Destroy", <%= model_resource_name %>, method: :delete, class: "rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium" %> + <%%= button_to "Destroy", <%= model_resource_name %>, method: :delete, class: "rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium cursor-pointer", data: { turbo_confirm: "Are you sure?" } %>
diff --git a/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt index 3a49e9a0..b3057f99 100644 --- a/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt @@ -12,6 +12,6 @@ <%%= link_to "Edit this <%= human_name.downcase %>", <%= edit_helper(type: :path) %>, class: "mt-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> <%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper %>_path, class: "ml-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %>
- <%%= button_to "Destroy this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, method: :delete, class: "mt-2 rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium" %> + <%%= button_to "Destroy this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, method: :delete, class: "mt-2 rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium cursor-pointer", data: { turbo_confirm: "Are you sure?" } %>
From 215b54bf9a6d62634a7523f853639f108b9c6a34 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 19 Feb 2025 12:50:48 -0500 Subject: [PATCH 56/88] version bump to v4.1.0 --- CHANGELOG.md | 5 +++-- lib/tailwindcss/version.rb | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7030e848..e75b884b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,14 @@ # `tailwindcss-rails` Changelog -## next / unreleased +## v4.1.0 / 2025-02-19 -Style changes to templates: +### View template improvements * Field outlines are no longer hidden, and the focus border is brighter. #489 @rubys * Boolean fields are improved (checkbox labels aligned, "Yes"/"No" instead of "true"/"false"). #454 @patriciomacadden * Attachment links are consistently spaced and styled. #460 @patriciomacadden * Index page links to Show, Edit, and Destroy for each resource. #460 @patriciomacadden @flavorjones +* Turbo confirm prompt added to Destroy links. #498 @patriciomacadden ## v4.0.0 / 2025-02-01 diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index 144cea79..7a096603 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "4.0.0" + VERSION = "4.1.0" end From 2db5427ac6c086a74ad93752c1ee91990a6f7eda Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 19 Feb 2025 12:52:00 -0500 Subject: [PATCH 57/88] dep: bundle update --- Gemfile.lock | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1e88abcd..730f94fb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - tailwindcss-rails (4.0.0) + tailwindcss-rails (4.1.0) railties (>= 7.0.0) tailwindcss-ruby (~> 4.0) @@ -69,7 +69,7 @@ GEM pp (>= 0.6.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - logger (1.6.5) + logger (1.6.6) loofah (2.24.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -81,26 +81,27 @@ GEM mini_mime (1.1.5) mini_portile2 (2.8.8) minitest (5.25.4) - net-imap (0.5.5) + net-imap (0.5.6) date net-protocol net-pop (0.1.2) net-protocol net-protocol (0.2.2) timeout - net-smtp (0.5.0) - nokogiri (1.18.2) + net-smtp (0.5.1) + net-protocol + nokogiri (1.18.3) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.18.2-aarch64-linux-gnu) + nokogiri (1.18.3-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.2-arm-linux-gnu) + nokogiri (1.18.3-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.18.2-arm64-darwin) + nokogiri (1.18.3-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.2-x86_64-darwin) + nokogiri (1.18.3-x86_64-darwin) racc (~> 1.4) - nokogiri (1.18.2-x86_64-linux-gnu) + nokogiri (1.18.3-x86_64-linux-gnu) racc (~> 1.4) pp (0.6.2) prettyprint @@ -109,7 +110,7 @@ GEM date stringio racc (1.8.1) - rack (3.1.8) + rack (3.1.10) rack-session (2.1.0) base64 (>= 0.1.0) rack (>= 3.0.0) @@ -133,24 +134,24 @@ GEM thor (~> 1.0, >= 1.2.2) zeitwerk (~> 2.6) rake (13.2.1) - rdoc (6.11.0) + rdoc (6.12.0) psych (>= 4.0.0) reline (0.6.0) io-console (~> 0.5) securerandom (0.4.1) - stringio (3.1.2) - tailwindcss-ruby (4.0.6) - tailwindcss-ruby (4.0.6-aarch64-linux-gnu) - tailwindcss-ruby (4.0.6-arm64-darwin) - tailwindcss-ruby (4.0.6-x86_64-darwin) - tailwindcss-ruby (4.0.6-x86_64-linux-gnu) + stringio (3.1.3) + tailwindcss-ruby (4.0.7) + tailwindcss-ruby (4.0.7-aarch64-linux-gnu) + tailwindcss-ruby (4.0.7-arm64-darwin) + tailwindcss-ruby (4.0.7-x86_64-darwin) + tailwindcss-ruby (4.0.7-x86_64-linux-gnu) thor (1.3.2) timeout (0.4.3) tzinfo (2.0.6) concurrent-ruby (~> 1.0) uri (1.0.2) useragent (0.16.11) - zeitwerk (2.7.1) + zeitwerk (2.7.2) PLATFORMS aarch64-linux From 51f6aba9f37410e09f2b23b0dead3b61c3dc4278 Mon Sep 17 00:00:00 2001 From: Patricio Mac Adden Date: Thu, 20 Feb 2025 12:56:16 -0300 Subject: [PATCH 58/88] Improve views for mobile devices --- .../templates/app/views/passwords/edit.html.erb | 2 +- .../templates/app/views/passwords/new.html.erb | 2 +- .../templates/app/views/sessions/new.html.erb | 2 +- .../tailwindcss/scaffold/templates/_form.html.erb.tt | 2 +- .../tailwindcss/scaffold/templates/edit.html.erb.tt | 4 ++-- .../tailwindcss/scaffold/templates/index.html.erb.tt | 12 ++++++------ .../tailwindcss/scaffold/templates/new.html.erb.tt | 2 +- .../scaffold/templates/partial.html.erb.tt | 2 +- .../tailwindcss/scaffold/templates/show.html.erb.tt | 8 ++++---- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb b/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb index 1296be6f..7096a5bc 100644 --- a/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb +++ b/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb @@ -15,7 +15,7 @@
- <%%= form.submit "Save", class: "rounded-md px-3.5 py-2.5 bg-blue-600 hover:bg-blue-500 text-white inline-block font-medium cursor-pointer" %> + <%%= form.submit "Save", class: "w-full sm:w-auto text-center rounded-md px-3.5 py-2.5 bg-blue-600 hover:bg-blue-500 text-white inline-block font-medium cursor-pointer" %>
<%% end %>
diff --git a/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb b/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb index c37333e6..36dff837 100644 --- a/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb +++ b/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb @@ -11,7 +11,7 @@
- <%%= form.submit "Email reset instructions", class: "rounded-lg px-3.5 py-2.5 bg-blue-600 hover:bg-blue-500 text-white inline-block font-medium cursor-pointer" %> + <%%= form.submit "Email reset instructions", class: "w-full sm:w-auto text-center rounded-lg px-3.5 py-2.5 bg-blue-600 hover:bg-blue-500 text-white inline-block font-medium cursor-pointer" %>
<%% end %>
diff --git a/lib/generators/tailwindcss/authentication/templates/app/views/sessions/new.html.erb b/lib/generators/tailwindcss/authentication/templates/app/views/sessions/new.html.erb index 64c145c0..30fb0d91 100644 --- a/lib/generators/tailwindcss/authentication/templates/app/views/sessions/new.html.erb +++ b/lib/generators/tailwindcss/authentication/templates/app/views/sessions/new.html.erb @@ -20,7 +20,7 @@
- <%%= form.submit "Sign in", class: "rounded-md px-3.5 py-2.5 bg-blue-600 hover:bg-blue-500 text-white inline-block font-medium cursor-pointer" %> + <%%= form.submit "Sign in", class: "w-full sm:w-auto text-center rounded-md px-3.5 py-2.5 bg-blue-600 hover:bg-blue-500 text-white inline-block font-medium cursor-pointer" %>
diff --git a/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt index 0ddb9735..e50790ce 100644 --- a/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt @@ -38,6 +38,6 @@ <% end -%>
- <%%= form.submit class: "rounded-md px-3.5 py-2.5 bg-blue-600 hover:bg-blue-500 text-white inline-block font-medium cursor-pointer" %> + <%%= form.submit class: "w-full sm:w-auto rounded-md px-3.5 py-2.5 bg-blue-600 hover:bg-blue-500 text-white inline-block font-medium cursor-pointer" %>
<%% end %> diff --git a/lib/generators/tailwindcss/scaffold/templates/edit.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/edit.html.erb.tt index 74edd3de..08d92d3a 100644 --- a/lib/generators/tailwindcss/scaffold/templates/edit.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/edit.html.erb.tt @@ -5,6 +5,6 @@ <%%= render "form", <%= singular_table_name %>: @<%= singular_table_name %> %> - <%%= link_to "Show this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, class: "ml-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> - <%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %>, class: "ml-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> + <%%= link_to "Show this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, class: "w-full sm:w-auto text-center mt-2 sm:mt-0 sm:ml-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> + <%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %>, class: "w-full sm:w-auto text-center mt-2 sm:mt-0 sm:ml-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %>
diff --git a/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt index 83d2b1ec..848c97fb 100644 --- a/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt @@ -13,13 +13,13 @@
<%% if @<%= plural_table_name %>.any? %> <%% @<%= plural_table_name %>.each do |<%= singular_table_name %>| %> -
+
<%%= render <%= singular_table_name %> %> -
- <%%= link_to "Show", <%= model_resource_name(singular_table_name) %>, class: "rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> - <%%= link_to "Edit", <%= edit_helper(singular_table_name, type: :path) %>, class: "rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> -
- <%%= button_to "Destroy", <%= model_resource_name %>, method: :delete, class: "rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium cursor-pointer", data: { turbo_confirm: "Are you sure?" } %> +
+ <%%= link_to "Show", <%= model_resource_name(singular_table_name) %>, class: "w-full sm:w-auto text-center rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> + <%%= link_to "Edit", <%= edit_helper(singular_table_name, type: :path) %>, class: "w-full sm:w-auto text-center rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> +
+ <%%= button_to "Destroy", <%= model_resource_name %>, method: :delete, class: "w-full sm:w-auto rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium cursor-pointer", data: { turbo_confirm: "Are you sure?" } %>
diff --git a/lib/generators/tailwindcss/scaffold/templates/new.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/new.html.erb.tt index 0a10d967..32ad9b83 100644 --- a/lib/generators/tailwindcss/scaffold/templates/new.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/new.html.erb.tt @@ -5,5 +5,5 @@ <%%= render "form", <%= singular_table_name %>: @<%= singular_table_name %> %> - <%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %>, class: "ml-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> + <%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %>, class: "w-full sm:w-auto text-center mt-2 sm:mt-0 sm:ml-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %>
diff --git a/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt index 68a73fcd..433b7a33 100644 --- a/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt @@ -1,4 +1,4 @@ -
+
<% attributes.reject(&:password_digest?).each do |attribute| -%>
<%= attribute.human_name %>: diff --git a/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt index b3057f99..b6f153c2 100644 --- a/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt @@ -9,9 +9,9 @@ <%%= render @<%= singular_table_name %> %> - <%%= link_to "Edit this <%= human_name.downcase %>", <%= edit_helper(type: :path) %>, class: "mt-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> - <%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper %>_path, class: "ml-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> -
- <%%= button_to "Destroy this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, method: :delete, class: "mt-2 rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium cursor-pointer", data: { turbo_confirm: "Are you sure?" } %> + <%%= link_to "Edit this <%= human_name.downcase %>", <%= edit_helper(type: :path) %>, class: "w-full sm:w-auto text-center rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> + <%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper %>_path, class: "w-full sm:w-auto text-center mt-2 sm:mt-0 sm:ml-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> +
+ <%%= button_to "Destroy this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, method: :delete, class: "w-full rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium cursor-pointer", data: { turbo_confirm: "Are you sure?" } %>
From 3dab6d3a64c9ee8f86f7d3e49fdee14f2c2dcd2f Mon Sep 17 00:00:00 2001 From: Bogdan Gusiev Date: Sat, 22 Feb 2025 10:37:57 +0100 Subject: [PATCH 59/88] Explain plugins in readme --- README.md | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7fa18145..113c5130 100644 --- a/README.md +++ b/README.md @@ -195,7 +195,7 @@ With some additional manual work the upstream upgrade tool will update your appl /node_modules ``` -**Create** a `package.json` in the root of the project: +**Create** or **update** a `package.json` in the root of the project: ```jsonc { @@ -232,7 +232,9 @@ With some additional manual work the upstream upgrade tool will update your appl Then, once you've run that successfully, clean up: -- **Delete** `package.json`, `node_modules/` and `package-lock.json` (or `yarn.lock`), plus remove `/node_modules` from `.gitignore`. +- **Review** `package.json` to remove unnecessary modules. + - This includes modules added for the period of upgrade. + - If you don't need any modules besides `tailwindcss` itself, **delete** `package.json`, `node_modules/` and `package-lock.json` (or `yarn.lock`), plus remove `/node_modules` from `.gitignore`. - **Go** to your CSS file and remove the following line (if present): ```css @plugin '@tailwindcss/container-queries'; @@ -273,6 +275,30 @@ This gem also makes available a Puma plugin to manage a live rebuild process whe This gem also generates a `Procfile.dev` file which will run both the rails server and a live rebuild process (see "Live Rebuild" section below). +#### Install plugins + +Tailwind plugins can be installed using `package.json`. + +Using Yarn: + +``` sh +[ ! -f package.json ] && yarn init +yarn add daisyui # example +``` + +Using npm: + +``` sh +npm init +npm add daisyui # example +``` + +Than use `@plugin` annotation in `app/assets/tailwind/application.css`: + +``` css +@import "tailwindcss"; +@plugin "daisyui"; +``` ### Building for production From c1e52588114619180790869c571c38f1822bcbe2 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 23 Feb 2025 17:03:02 -0500 Subject: [PATCH 60/88] Bump the "tailwind plugins" section up to H3 and move it to after the basic build/rebuild commands unrelated, rename the upgrade-troubleshooting section to disambiguate from the generate-troubleshooting section. --- README.md | 58 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 113c5130..10c08036 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ - [Upgrading your application from Tailwind v3 to v4](#upgrading-your-application-from-tailwind-v3-to-v4) * [You don't _have_ to upgrade](#you-dont-_have_-to-upgrade) * [Upgrade steps](#upgrade-steps) - * [Troubleshooting](#troubleshooting) + * [Troubleshooting a v4 upgrade](#troubleshooting-a-v4-upgrade) * [Updating CSS class names for v4](#updating-css-class-names-for-v4) - [Developing with Tailwindcss](#developing-with-tailwindcss) * [Configuration and commands](#configuration-and-commands) @@ -20,9 +20,10 @@ * [Building for testing](#building-for-testing) * [Building unminified assets](#building-unminified-assets) * [Live rebuild](#live-rebuild) + * [Using Tailwind plugins](#using-tailwind-plugins) * [Using with PostCSS](#using-with-postcss) * [Custom inputs or outputs](#custom-inputs-or-outputs) -- [Troubleshooting](#troubleshooting-1) +- [Troubleshooting](#troubleshooting) * [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) * [Running in a docker container exits prematurely](#running-in-a-docker-container-exits-prematurely) * [Conflict with sassc-rails](#conflict-with-sassc-rails) @@ -171,7 +172,7 @@ Done in 56ms If this doesn't succeed, it's likely that you've customized your Tailwind configuration and you'll need to do some work to make sure your application upgrades. Please read the [official upgrade guide](https://tailwindcss.com/docs/upgrade-guide) and try following the additional steps in [Updating CSS class names for v4](#updating-css-class-names-for-v4). -### Troubleshooting +### Troubleshooting a v4 upgrade You may want to check out [TailwindCSS v4 - upgrade experience report · rails/tailwindcss-rails · Discussion #450](https://github.com/rails/tailwindcss-rails/discussions/450) if you're having trouble upgrading. @@ -275,31 +276,6 @@ This gem also makes available a Puma plugin to manage a live rebuild process whe This gem also generates a `Procfile.dev` file which will run both the rails server and a live rebuild process (see "Live Rebuild" section below). -#### Install plugins - -Tailwind plugins can be installed using `package.json`. - -Using Yarn: - -``` sh -[ ! -f package.json ] && yarn init -yarn add daisyui # example -``` - -Using npm: - -``` sh -npm init -npm add daisyui # example -``` - -Than use `@plugin` annotation in `app/assets/tailwind/application.css`: - -``` css -@import "tailwindcss"; -@plugin "daisyui"; -``` - ### Building for production The `tailwindcss:build` is automatically attached to `assets:precompile`, so before the asset pipeline digests the files, the Tailwind output will be generated. @@ -357,6 +333,32 @@ If you are running `rails tailwindcss:watch` in a docker container without a tty Running `bin/dev` invokes Foreman to start both the Tailwind watch process and the rails server in development mode based on your `Procfile.dev` file. +### Using Tailwind plugins + +If you want to use Tailwind plugins, they can be installed using `package.json`. + +Using Yarn: + +``` sh +[ ! -f package.json ] && yarn init +yarn add daisyui # example +``` + +Using npm: + +``` sh +npm init +npm add daisyui # example +``` + +Than use `@plugin` annotation in `app/assets/tailwind/application.css`: + +``` css +@import "tailwindcss"; +@plugin "daisyui"; +``` + + ### Using with PostCSS If you want to use PostCSS as a preprocessor, create a custom `postcss.config.js` in your project root directory, and that file will be loaded by Tailwind automatically. From 5ecd3a0ce0f0d109cdb22699096bc87ea811277d Mon Sep 17 00:00:00 2001 From: Roberto Date: Tue, 25 Feb 2025 14:28:10 -0300 Subject: [PATCH 61/88] Tailwindcss debug environment variable (#504) * Add TAILWINDCSS_DEBUG environment variable * Update README * ENV var should take precedence over command argument * prefer Hash.key? to !Hash[].nil? --------- Co-authored-by: Mike Dalessio --- README.md | 6 +++++- lib/tailwindcss/commands.rb | 1 + test/lib/tailwindcss/commands_test.rb | 26 ++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 10c08036..f7afe7a8 100644 --- a/README.md +++ b/README.md @@ -288,8 +288,12 @@ The `tailwindcss:build` task is automatically attached to the `test:prepare` Rak ### Building unminified assets -If you want unminified assets, you can pass a `debug` argument to the rake task, i.e. `rails tailwindcss:build[debug]` or `rails tailwindcss:watch[debug]`. +If you want unminified assets, you can: +- pass a `debug` argument to the rake task, i.e. `rails tailwindcss:build[debug]` or `rails tailwindcss:watch[debug]`. +- set an environment variable named `TAILWINDCSS_DEBUG` with a non-blank value + +If both values are set, the environment variable will take precedence over the rake task argument. ### Live rebuild diff --git a/lib/tailwindcss/commands.rb b/lib/tailwindcss/commands.rb index fb90f4f6..bef42fd2 100644 --- a/lib/tailwindcss/commands.rb +++ b/lib/tailwindcss/commands.rb @@ -4,6 +4,7 @@ module Tailwindcss module Commands class << self def compile_command(debug: false, **kwargs) + debug = ENV["TAILWINDCSS_DEBUG"].present? if ENV.key?("TAILWINDCSS_DEBUG") rails_root = defined?(Rails) ? Rails.root : Pathname.new(Dir.pwd) command = [ diff --git a/test/lib/tailwindcss/commands_test.rb b/test/lib/tailwindcss/commands_test.rb index 3c7e5302..d09481a4 100644 --- a/test/lib/tailwindcss/commands_test.rb +++ b/test/lib/tailwindcss/commands_test.rb @@ -33,6 +33,32 @@ def setup end end + test ".compile_command debug environment variable" do + begin + Rails.stub(:root, File) do # Rails.root won't work in this test suite + ENV["TAILWINDCSS_DEBUG"] = "" + actual = Tailwindcss::Commands.compile_command + assert_kind_of(Array, actual) + assert_includes(actual, "--minify") + + actual = Tailwindcss::Commands.compile_command(debug: true) + assert_kind_of(Array, actual) + assert_includes(actual, "--minify") + + ENV["TAILWINDCSS_DEBUG"] = "any non-blank value" + actual = Tailwindcss::Commands.compile_command + assert_kind_of(Array, actual) + refute_includes(actual, "--minify") + + actual = Tailwindcss::Commands.compile_command(debug: true) + assert_kind_of(Array, actual) + refute_includes(actual, "--minify") + end + ensure + ENV.delete('TAILWINDCSS_DEBUG') + end + end + test ".compile_command when Rails compression is on" do Rails.stub(:root, File) do # Rails.root won't work in this test suite Tailwindcss::Commands.stub(:rails_css_compressor?, true) do From 08486ae14237e7381f3f874e606df1ba432947dc Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Tue, 25 Feb 2025 12:28:28 -0500 Subject: [PATCH 62/88] doc: update CHANGELOG for #504 [skip ci] --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e75b884b..3d67e9b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # `tailwindcss-rails` Changelog +## next / unreleased + +### Features + +* Support for environment variable `TAILWINDCSS_DEBUG` to turn off CSS minification. #504 @r-sierra + + ## v4.1.0 / 2025-02-19 ### View template improvements From 0144d00624e2fd3b3058c90877c805b576b4a27a Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 2 Mar 2025 16:47:41 -0500 Subject: [PATCH 63/88] version bump to v4.2.0 --- CHANGELOG.md | 3 ++- lib/tailwindcss/version.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d67e9b9..9ad013b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,10 @@ # `tailwindcss-rails` Changelog -## next / unreleased +## v4.2.0 / 2025-03-02 ### Features +* Improve the view templates to display better on mobile devices. #503 @patriciomacadden * Support for environment variable `TAILWINDCSS_DEBUG` to turn off CSS minification. #504 @r-sierra diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index 7a096603..a172caa0 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "4.1.0" + VERSION = "4.2.0" end From e670d358212f73340c33b8e3c228394f7a4212e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 14:44:50 +0000 Subject: [PATCH 64/88] build(deps): bump tailwindcss-ruby from 4.0.7 to 4.0.9 Bumps [tailwindcss-ruby](https://github.com/flavorjones/tailwindcss-ruby) from 4.0.7 to 4.0.9. - [Release notes](https://github.com/flavorjones/tailwindcss-ruby/releases) - [Changelog](https://github.com/flavorjones/tailwindcss-ruby/blob/v4.x/CHANGELOG.md) - [Commits](https://github.com/flavorjones/tailwindcss-ruby/compare/v4.0.7...v4.0.9) --- updated-dependencies: - dependency-name: tailwindcss-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 730f94fb..054f9e8e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,11 +140,11 @@ GEM io-console (~> 0.5) securerandom (0.4.1) stringio (3.1.3) - tailwindcss-ruby (4.0.7) - tailwindcss-ruby (4.0.7-aarch64-linux-gnu) - tailwindcss-ruby (4.0.7-arm64-darwin) - tailwindcss-ruby (4.0.7-x86_64-darwin) - tailwindcss-ruby (4.0.7-x86_64-linux-gnu) + tailwindcss-ruby (4.0.9) + tailwindcss-ruby (4.0.9-aarch64-linux-gnu) + tailwindcss-ruby (4.0.9-arm64-darwin) + tailwindcss-ruby (4.0.9-x86_64-darwin) + tailwindcss-ruby (4.0.9-x86_64-linux-gnu) thor (1.3.2) timeout (0.4.3) tzinfo (2.0.6) From 3fc4b2e26b52325c7bd3437eaf1d1c696fe73f94 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 5 Mar 2025 10:10:09 -0500 Subject: [PATCH 65/88] dep: bundle update --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 054f9e8e..34457850 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - tailwindcss-rails (4.1.0) + tailwindcss-rails (4.2.0) railties (>= 7.0.0) tailwindcss-ruby (~> 4.0) @@ -110,7 +110,7 @@ GEM date stringio racc (1.8.1) - rack (3.1.10) + rack (3.1.11) rack-session (2.1.0) base64 (>= 0.1.0) rack (>= 3.0.0) @@ -139,7 +139,7 @@ GEM reline (0.6.0) io-console (~> 0.5) securerandom (0.4.1) - stringio (3.1.3) + stringio (3.1.5) tailwindcss-ruby (4.0.9) tailwindcss-ruby (4.0.9-aarch64-linux-gnu) tailwindcss-ruby (4.0.9-arm64-darwin) @@ -149,7 +149,7 @@ GEM timeout (0.4.3) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - uri (1.0.2) + uri (1.0.3) useragent (0.16.11) zeitwerk (2.7.2) From 14830b75a25271111e61b5d75d71e504527f5f83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 15:14:17 +0000 Subject: [PATCH 66/88] build(deps): bump tailwindcss-ruby from 4.0.9 to 4.0.12 Bumps [tailwindcss-ruby](https://github.com/flavorjones/tailwindcss-ruby) from 4.0.9 to 4.0.12. - [Release notes](https://github.com/flavorjones/tailwindcss-ruby/releases) - [Changelog](https://github.com/flavorjones/tailwindcss-ruby/blob/v4.x/CHANGELOG.md) - [Commits](https://github.com/flavorjones/tailwindcss-ruby/compare/v4.0.9...v4.0.12) --- updated-dependencies: - dependency-name: tailwindcss-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 34457850..1aa66c0f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,11 +140,11 @@ GEM io-console (~> 0.5) securerandom (0.4.1) stringio (3.1.5) - tailwindcss-ruby (4.0.9) - tailwindcss-ruby (4.0.9-aarch64-linux-gnu) - tailwindcss-ruby (4.0.9-arm64-darwin) - tailwindcss-ruby (4.0.9-x86_64-darwin) - tailwindcss-ruby (4.0.9-x86_64-linux-gnu) + tailwindcss-ruby (4.0.12) + tailwindcss-ruby (4.0.12-aarch64-linux-gnu) + tailwindcss-ruby (4.0.12-arm64-darwin) + tailwindcss-ruby (4.0.12-x86_64-darwin) + tailwindcss-ruby (4.0.12-x86_64-linux-gnu) thor (1.3.2) timeout (0.4.3) tzinfo (2.0.6) From 91a67e904d8b405305c5b59750e8ba0f3b9d39d5 Mon Sep 17 00:00:00 2001 From: Patricio Mac Adden Date: Mon, 17 Mar 2025 09:37:50 -0300 Subject: [PATCH 67/88] Fix hardcoded attribute in form --- lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt index e50790ce..1821201c 100644 --- a/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt @@ -23,7 +23,7 @@ <%%= form.password_field :password_confirmation, class: ["block shadow-sm rounded-md border px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password_confirmation].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password_confirmation].any?}] %> <% elsif attribute.attachments? -%> <%%= form.label :<%= attribute.column_name %> %> - <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true, class: ["block shadow-sm rounded-md border px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:password].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:password].any?}] %> + <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true, class: ["block shadow-sm rounded-md border px-3 py-2 mt-2 w-full", {"border-gray-400 focus:outline-blue-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].none?, "border-red-400 focus:outline-red-600": <%= model_resource_name %>.errors[:<%= attribute.column_name %>].any?}] %> <% else -%> <%%= form.label :<%= attribute.column_name %> %> <% if attribute.field_type == :textarea || attribute.field_type == :text_area -%> From 5034ada51e6e31736571e46399d85c97106a0e41 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Mar 2025 15:19:05 +0000 Subject: [PATCH 68/88] build(deps): bump tailwindcss-ruby from 4.0.12 to 4.0.14 Bumps [tailwindcss-ruby](https://github.com/flavorjones/tailwindcss-ruby) from 4.0.12 to 4.0.14. - [Release notes](https://github.com/flavorjones/tailwindcss-ruby/releases) - [Changelog](https://github.com/flavorjones/tailwindcss-ruby/blob/v4.x/CHANGELOG.md) - [Commits](https://github.com/flavorjones/tailwindcss-ruby/compare/v4.0.12...v4.0.14) --- updated-dependencies: - dependency-name: tailwindcss-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1aa66c0f..7480d3ef 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,11 +140,11 @@ GEM io-console (~> 0.5) securerandom (0.4.1) stringio (3.1.5) - tailwindcss-ruby (4.0.12) - tailwindcss-ruby (4.0.12-aarch64-linux-gnu) - tailwindcss-ruby (4.0.12-arm64-darwin) - tailwindcss-ruby (4.0.12-x86_64-darwin) - tailwindcss-ruby (4.0.12-x86_64-linux-gnu) + tailwindcss-ruby (4.0.14) + tailwindcss-ruby (4.0.14-aarch64-linux-gnu) + tailwindcss-ruby (4.0.14-arm64-darwin) + tailwindcss-ruby (4.0.14-x86_64-darwin) + tailwindcss-ruby (4.0.14-x86_64-linux-gnu) thor (1.3.2) timeout (0.4.3) tzinfo (2.0.6) From b70e705e07740be700d7465a3ce684b5188b7748 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Mar 2025 15:19:14 +0000 Subject: [PATCH 69/88] build(deps): bump railties from 8.0.1 to 8.0.2 Bumps [railties](https://github.com/rails/rails) from 8.0.1 to 8.0.2. - [Release notes](https://github.com/rails/rails/releases) - [Changelog](https://github.com/rails/rails/blob/v8.0.2/railties/CHANGELOG.md) - [Commits](https://github.com/rails/rails/compare/v8.0.1...v8.0.2) --- updated-dependencies: - dependency-name: railties dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1aa66c0f..3c305111 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -8,16 +8,16 @@ PATH GEM remote: https://rubygems.org/ specs: - actionmailer (8.0.1) - actionpack (= 8.0.1) - actionview (= 8.0.1) - activejob (= 8.0.1) - activesupport (= 8.0.1) + actionmailer (8.0.2) + actionpack (= 8.0.2) + actionview (= 8.0.2) + activejob (= 8.0.2) + activesupport (= 8.0.2) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (8.0.1) - actionview (= 8.0.1) - activesupport (= 8.0.1) + actionpack (8.0.2) + actionview (= 8.0.2) + activesupport (= 8.0.2) nokogiri (>= 1.8.5) rack (>= 2.2.4) rack-session (>= 1.0.1) @@ -25,16 +25,16 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actionview (8.0.1) - activesupport (= 8.0.1) + actionview (8.0.2) + activesupport (= 8.0.2) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (8.0.1) - activesupport (= 8.0.1) + activejob (8.0.2) + activesupport (= 8.0.2) globalid (>= 0.3.6) - activesupport (8.0.1) + activesupport (8.0.2) base64 benchmark (>= 0.3) bigdecimal @@ -80,7 +80,7 @@ GEM net-smtp mini_mime (1.1.5) mini_portile2 (2.8.8) - minitest (5.25.4) + minitest (5.25.5) net-imap (0.5.6) date net-protocol @@ -90,18 +90,18 @@ GEM timeout net-smtp (0.5.1) net-protocol - nokogiri (1.18.3) + nokogiri (1.18.4) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.18.3-aarch64-linux-gnu) + nokogiri (1.18.4-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.3-arm-linux-gnu) + nokogiri (1.18.4-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.18.3-arm64-darwin) + nokogiri (1.18.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.3-x86_64-darwin) + nokogiri (1.18.4-x86_64-darwin) racc (~> 1.4) - nokogiri (1.18.3-x86_64-linux-gnu) + nokogiri (1.18.4-x86_64-linux-gnu) racc (~> 1.4) pp (0.6.2) prettyprint @@ -110,7 +110,7 @@ GEM date stringio racc (1.8.1) - rack (3.1.11) + rack (3.1.12) rack-session (2.1.0) base64 (>= 0.1.0) rack (>= 3.0.0) @@ -125,9 +125,9 @@ GEM rails-html-sanitizer (1.6.2) loofah (~> 2.21) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) - railties (8.0.1) - actionpack (= 8.0.1) - activesupport (= 8.0.1) + railties (8.0.2) + actionpack (= 8.0.2) + activesupport (= 8.0.2) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) From bd57aab639c8ee5202ef7bf5b0fd437f3b05f2f7 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 19 Mar 2025 14:56:10 -0400 Subject: [PATCH 70/88] doc: update CHANGELOG [skip ci] --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ad013b2..719bc894 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # `tailwindcss-rails` Changelog +## next / unreleased + +### Fixed + +* Fix styles for form errors in some scaffold fields. #513 @patriciomacadden + + ## v4.2.0 / 2025-03-02 ### Features From 84a0d6bf869ade33e450c4b070e5fa7b5d3d7e8a Mon Sep 17 00:00:00 2001 From: Patricio Mac Adden Date: Wed, 19 Mar 2025 11:09:43 -0300 Subject: [PATCH 71/88] add accept_confirm if turbo is available so system tests don't fail. fixes #519 --- .../scaffold/scaffold_generator.rb | 1 + .../test_unit/scaffold/scaffold_generator.rb | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 lib/generators/test_unit/scaffold/scaffold_generator.rb diff --git a/lib/generators/tailwindcss/scaffold/scaffold_generator.rb b/lib/generators/tailwindcss/scaffold/scaffold_generator.rb index 39c2da1f..8748210d 100644 --- a/lib/generators/tailwindcss/scaffold/scaffold_generator.rb +++ b/lib/generators/tailwindcss/scaffold/scaffold_generator.rb @@ -1,5 +1,6 @@ require "rails/generators/erb/scaffold/scaffold_generator" require "rails/generators/resource_helpers" +require File.expand_path("../../test_unit/scaffold/scaffold_generator.rb", __dir__) module Tailwindcss module Generators diff --git a/lib/generators/test_unit/scaffold/scaffold_generator.rb b/lib/generators/test_unit/scaffold/scaffold_generator.rb new file mode 100644 index 00000000..b97d74e4 --- /dev/null +++ b/lib/generators/test_unit/scaffold/scaffold_generator.rb @@ -0,0 +1,19 @@ +require "rails/generators/test_unit/scaffold/scaffold_generator" + +module TestUnit # :nodoc: + module Generators # :nodoc: + class ScaffoldGenerator < Base # :nodoc: + def fix_system_test + if turbo_defined? + gsub_file File.join("test/system", class_path, "#{file_name.pluralize}_test.rb"), "click_on \"Destroy this #{human_name.downcase}\", match: :first", "accept_confirm { click_on \"Destroy this #{human_name.downcase}\", match: :first }" + end + end + + private + + def turbo_defined? + defined?(Turbo) + end + end + end +end From 0653d82770e5c3b5196b882117447213bddd1a03 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 19 Mar 2025 15:05:49 -0400 Subject: [PATCH 72/88] Make the system test gsub less finicky --- lib/generators/test_unit/scaffold/scaffold_generator.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/generators/test_unit/scaffold/scaffold_generator.rb b/lib/generators/test_unit/scaffold/scaffold_generator.rb index b97d74e4..ff809b32 100644 --- a/lib/generators/test_unit/scaffold/scaffold_generator.rb +++ b/lib/generators/test_unit/scaffold/scaffold_generator.rb @@ -5,7 +5,9 @@ module Generators # :nodoc: class ScaffoldGenerator < Base # :nodoc: def fix_system_test if turbo_defined? - gsub_file File.join("test/system", class_path, "#{file_name.pluralize}_test.rb"), "click_on \"Destroy this #{human_name.downcase}\", match: :first", "accept_confirm { click_on \"Destroy this #{human_name.downcase}\", match: :first }" + gsub_file File.join("test/system", class_path, "#{file_name.pluralize}_test.rb"), + /(click_on.*Destroy this.*)$/, + "accept_confirm { \\1 }" end end From 37c98c3e95d08c2ddb7f0766222b0840869ef820 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 19 Mar 2025 15:12:46 -0400 Subject: [PATCH 73/88] Add a simple integration test for the scaffolded system test --- test/integration/user_install_test.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/integration/user_install_test.sh b/test/integration/user_install_test.sh index 6f4ca301..bfd7a87c 100755 --- a/test/integration/user_install_test.sh +++ b/test/integration/user_install_test.sh @@ -63,6 +63,9 @@ fi bin/rails generate scaffold post title:string body:text published:boolean grep -q "Show" app/views/posts/index.html.erb +# TEST: the "accept_confirm" system test change was applied cleanly +grep -q "accept_confirm { click_on \"Destroy this post\"" test/system/posts_test.rb + # TEST: contents of the css file bin/rails tailwindcss:build[verbose] grep -q "py-2" app/assets/builds/tailwind.css From d08ca11298678a4b5128683ab9a3df19d23136d8 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 19 Mar 2025 15:20:33 -0400 Subject: [PATCH 74/88] version bump to v4.2.1 --- CHANGELOG.md | 3 ++- lib/tailwindcss/version.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 719bc894..47d080f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,11 @@ # `tailwindcss-rails` Changelog -## next / unreleased +## v4.2.1 / 2025-03-19 ### Fixed * Fix styles for form errors in some scaffold fields. #513 @patriciomacadden +* Update scaffold system tests to handle the "Destroy" confirmation prompt when Turbo is enabled. Fixes #519. #520 @patriciomacadden @flavorjones ## v4.2.0 / 2025-03-02 diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index a172caa0..86e02ae2 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "4.2.0" + VERSION = "4.2.1" end From 11e7c3d21739ce1188c080138375a4927d3fe5e6 Mon Sep 17 00:00:00 2001 From: Patricio Mac Adden Date: Fri, 28 Mar 2025 09:58:15 -0300 Subject: [PATCH 75/88] Simplify markup --- .../tailwindcss/scaffold/templates/index.html.erb.tt | 4 +--- .../tailwindcss/scaffold/templates/show.html.erb.tt | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt index 848c97fb..12a0db16 100644 --- a/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt @@ -18,9 +18,7 @@
<%%= link_to "Show", <%= model_resource_name(singular_table_name) %>, class: "w-full sm:w-auto text-center rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> <%%= link_to "Edit", <%= edit_helper(singular_table_name, type: :path) %>, class: "w-full sm:w-auto text-center rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> -
- <%%= button_to "Destroy", <%= model_resource_name %>, method: :delete, class: "w-full sm:w-auto rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium cursor-pointer", data: { turbo_confirm: "Are you sure?" } %> -
+ <%%= button_to "Destroy", <%= model_resource_name %>, method: :delete, class: "w-full sm:w-auto rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium cursor-pointer", data: { turbo_confirm: "Are you sure?" } %>
<%% end %> diff --git a/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt b/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt index b6f153c2..2b6687d2 100644 --- a/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt +++ b/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt @@ -11,7 +11,5 @@ <%%= link_to "Edit this <%= human_name.downcase %>", <%= edit_helper(type: :path) %>, class: "w-full sm:w-auto text-center rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> <%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper %>_path, class: "w-full sm:w-auto text-center mt-2 sm:mt-0 sm:ml-2 rounded-md px-3.5 py-2.5 bg-gray-100 hover:bg-gray-50 inline-block font-medium" %> -
- <%%= button_to "Destroy this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, method: :delete, class: "w-full rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium cursor-pointer", data: { turbo_confirm: "Are you sure?" } %> -
+ <%%= button_to "Destroy this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, method: :delete, form_class: "sm:inline-block mt-2 sm:mt-0 sm:ml-2", class: "w-full rounded-md px-3.5 py-2.5 text-white bg-red-600 hover:bg-red-500 font-medium cursor-pointer", data: { turbo_confirm: "Are you sure?" } %>
From f099ee65f73fefc070a4fa126bfdeb8c6fdcea08 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Mar 2025 15:02:14 +0000 Subject: [PATCH 76/88] build(deps): bump tailwindcss-ruby from 4.0.14 to 4.0.17 Bumps [tailwindcss-ruby](https://github.com/flavorjones/tailwindcss-ruby) from 4.0.14 to 4.0.17. - [Release notes](https://github.com/flavorjones/tailwindcss-ruby/releases) - [Changelog](https://github.com/flavorjones/tailwindcss-ruby/blob/main/CHANGELOG.md) - [Commits](https://github.com/flavorjones/tailwindcss-ruby/compare/v4.0.14...v4.0.17) --- updated-dependencies: - dependency-name: tailwindcss-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 459f089e..59dfd05d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,11 +140,11 @@ GEM io-console (~> 0.5) securerandom (0.4.1) stringio (3.1.5) - tailwindcss-ruby (4.0.14) - tailwindcss-ruby (4.0.14-aarch64-linux-gnu) - tailwindcss-ruby (4.0.14-arm64-darwin) - tailwindcss-ruby (4.0.14-x86_64-darwin) - tailwindcss-ruby (4.0.14-x86_64-linux-gnu) + tailwindcss-ruby (4.0.17) + tailwindcss-ruby (4.0.17-aarch64-linux-gnu) + tailwindcss-ruby (4.0.17-arm64-darwin) + tailwindcss-ruby (4.0.17-x86_64-darwin) + tailwindcss-ruby (4.0.17-x86_64-linux-gnu) thor (1.3.2) timeout (0.4.3) tzinfo (2.0.6) From b0d41eb5bbcee6c072457f2f06a0720b628ea5ed Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sat, 5 Apr 2025 11:11:08 -0400 Subject: [PATCH 77/88] ci: use the latest @tailwindcss/upgrade package --- README.md | 2 +- lib/install/upgrade_tailwindcss.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f7afe7a8..c9982de6 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,7 @@ $ bin/rails tailwindcss:upgrade remove app/assets/stylesheets/application.tailwind.css 10.9.0 Running the upstream Tailwind CSS upgrader - run npx @tailwindcss/upgrade@next --force --config /home/user/myapp/config/tailwind.config.js from "." + run npx @tailwindcss/upgrade --force --config /home/user/myapp/config/tailwind.config.js from "." ≈ tailwindcss v4.0.0 │ Searching for CSS files in the current directory and its subdirectories… │ ↳ Linked `./config/tailwind.config.js` to `./app/assets/tailwind/application.css` diff --git a/lib/install/upgrade_tailwindcss.rb b/lib/install/upgrade_tailwindcss.rb index 6266583a..004d9a82 100644 --- a/lib/install/upgrade_tailwindcss.rb +++ b/lib/install/upgrade_tailwindcss.rb @@ -46,7 +46,7 @@ if system("npx --version") say "Running the upstream Tailwind CSS upgrader" - command = Shellwords.join(["npx", "@tailwindcss/upgrade@next", "--force", "--config", TAILWIND_CONFIG_PATH.to_s]) + command = Shellwords.join(["npx", "@tailwindcss/upgrade", "--force", "--config", TAILWIND_CONFIG_PATH.to_s]) success = run(command, abort_on_failure: false) unless success say "The upgrade tool failed!", :red From fd2505954c9a077ae17cee3e55dadd0434272776 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sat, 5 Apr 2025 09:39:13 -0400 Subject: [PATCH 78/88] Improve the state of debugging when things go wrong - The "verbose" flag turns on additional debugging output from tailwindcss - Document the "watchman" problem - Document how to use the "verbose" flag when troubleshooting --- README.md | 35 ++++++++++++++++++++++++++++++++++- lib/tailwindcss/commands.rb | 6 ++++++ lib/tasks/build.rake | 16 ++++++++++++---- 3 files changed, 52 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c9982de6..7188adff 100644 --- a/README.md +++ b/README.md @@ -403,30 +403,63 @@ If you need to use a custom input or output file, you can run `bundle exec tailw ## Troubleshooting -Some common problems experienced by users ... +When having trouble with `tailwindcss:build` or `tailwindcss:watch`, the first thing you should do is collect some diagnostic information by setting the "verbose" flag, which will emit: + +1. the command being run (so you can try running `tailwindcss` yourself without the gem's help) +2. additional debugging output from `tailwindcss` by setting the env var `DEBUG=1` + +Here's what that looks like: + +``` sh +$ bin/rails tailwindcss:build[verbose] + +Running: /path/to/tailwindcss-ruby-4.0.17-x86_64-linux-gnu/exe/x86_64-linux-gnu/tailwindcss -i /home/flavorjones/code/oss/tailwindcss-rails/My Workspace/test-install/app/assets/tailwind/application.css -o /home/flavorjones/code/oss/tailwindcss-rails/My Workspace/test-install/app/assets/builds/tailwind.css --minify +≈ tailwindcss v4.0.17 + +Done in 37ms + +[38.22ms] [@tailwindcss/cli] (initial build) +[11.90ms] ↳ Setup compiler +[ 6.52ms] ↳ Scan for candidates +[10.39ms] ↳ Build CSS +[ 1.69ms] ↳ Optimize CSS +[ 5.80ms] ↳ Write output +``` + +### The `watch` command is hanging + +There is a [known issue](https://github.com/tailwindlabs/tailwindcss/issues/17246#issuecomment-2753067488) running `tailwindcss -w` (that's the CLI in watch mode) when the utility `watchman` is also installed. + +Please try uninstalling `watchman` and try running the watch task again. + ### Lost keystrokes or hanging when using terminal-based debugging tools (e.g. IRB, Pry, `ruby/debug`...etc.) with the Puma plugin 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. + ### Running in a docker container exits prematurely 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. 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`. + ### Conflict with sassc-rails Tailwind uses modern CSS features that are not recognized by the `sassc-rails` extension that was included by default in the Gemfile for Rails 6. In order to avoid any errors like `SassC::SyntaxError`, you must remove that gem from your Gemfile. + ### Class names must be spelled out For Tailwind to work, your class names need to be spelled out. If you need to make sure Tailwind generates class names that don't exist in your content files or that are programmatically composed, use the [safelist option](https://tailwindcss.com/docs/content-configuration#safelisting-classes). + ### `ERROR: Cannot find the tailwindcss executable` for supported platform See https://github.com/flavorjones/tailwindcss-ruby for help. + ### Using asset-pipeline assets In Rails, you want to use [assets from the asset pipeline to get fingerprinting](https://guides.rubyonrails.org/asset_pipeline.html#fingerprinting-versioning-with-digest-based-urls). However, Tailwind isn't aware of those assets. diff --git a/lib/tailwindcss/commands.rb b/lib/tailwindcss/commands.rb index bef42fd2..99ad30e0 100644 --- a/lib/tailwindcss/commands.rb +++ b/lib/tailwindcss/commands.rb @@ -29,6 +29,12 @@ def watch_command(always: false, poll: false, **kwargs) end end + def command_env(verbose:) + {}.tap do |env| + env["DEBUG"] = "1" if verbose + end + end + def rails_css_compressor? defined?(Rails) && Rails&.application&.config&.assets&.css_compressor.present? end diff --git a/lib/tasks/build.rake b/lib/tasks/build.rake index 3044ff05..603c8059 100644 --- a/lib/tasks/build.rake +++ b/lib/tasks/build.rake @@ -2,9 +2,13 @@ namespace :tailwindcss do desc "Build your Tailwind CSS" task build: :environment do |_, args| debug = args.extras.include?("debug") + verbose = args.extras.include?("verbose") + command = Tailwindcss::Commands.compile_command(debug: debug) - puts command.inspect if args.extras.include?("verbose") - system(*command, exception: true) + env = Tailwindcss::Commands.command_env(verbose: verbose) + puts "Running: #{Shellwords.join(command)}" if verbose + + system(env, *command, exception: true) end desc "Watch and build your Tailwind CSS on file changes" @@ -12,9 +16,13 @@ namespace :tailwindcss do debug = args.extras.include?("debug") poll = args.extras.include?("poll") always = args.extras.include?("always") + verbose = args.extras.include?("verbose") + command = Tailwindcss::Commands.watch_command(always: always, debug: debug, poll: poll) - puts command.inspect if args.extras.include?("verbose") - system(*command) + env = Tailwindcss::Commands.command_env(verbose: verbose) + puts "Running: #{Shellwords.join(command)}" if verbose + + system(env, *command) rescue Interrupt puts "Received interrupt, exiting tailwindcss:watch" if args.extras.include?("verbose") end From f722f192de0f4d66d137196fc34e3052e9a3ed6f Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sat, 5 Apr 2025 12:00:19 -0400 Subject: [PATCH 79/88] version bump to v4.2.2 --- CHANGELOG.md | 9 +++++++++ Gemfile.lock | 2 +- lib/tailwindcss/version.rb | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47d080f9..e0f90dac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # `tailwindcss-rails` Changelog +## v4.2.2 / 2025-04-05 + +### Improved + +* The "tailwindcss:upgrade" task now uses the latest version of the `@tailwindcss/upgrade` tool. #529 @flavorjones +* The "verbose" flag on Rails tasks now emits additional tailwind CLI debugging info (e.g., `bin/rails tailwindcss:build[verbose]`). #530 @flavorjones +* Simplified the scaffold templates, removing unnecessary `div` tags. @523 @patriciomacadden + + ## v4.2.1 / 2025-03-19 ### Fixed diff --git a/Gemfile.lock b/Gemfile.lock index 59dfd05d..08ddee5a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - tailwindcss-rails (4.2.0) + tailwindcss-rails (4.2.2) railties (>= 7.0.0) tailwindcss-ruby (~> 4.0) diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index 86e02ae2..8a0f50d8 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "4.2.1" + VERSION = "4.2.2" end From fa9e2caafb7d1258aef576889568600a06e53299 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Apr 2025 15:30:10 +0000 Subject: [PATCH 80/88] build(deps): bump tailwindcss-ruby from 4.0.17 to 4.1.4 Bumps [tailwindcss-ruby](https://github.com/flavorjones/tailwindcss-ruby) from 4.0.17 to 4.1.4. - [Release notes](https://github.com/flavorjones/tailwindcss-ruby/releases) - [Changelog](https://github.com/flavorjones/tailwindcss-ruby/blob/main/CHANGELOG.md) - [Commits](https://github.com/flavorjones/tailwindcss-ruby/compare/v4.0.17...v4.1.4) --- updated-dependencies: - dependency-name: tailwindcss-ruby dependency-version: 4.1.4 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 08ddee5a..ec551873 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,11 +140,11 @@ GEM io-console (~> 0.5) securerandom (0.4.1) stringio (3.1.5) - tailwindcss-ruby (4.0.17) - tailwindcss-ruby (4.0.17-aarch64-linux-gnu) - tailwindcss-ruby (4.0.17-arm64-darwin) - tailwindcss-ruby (4.0.17-x86_64-darwin) - tailwindcss-ruby (4.0.17-x86_64-linux-gnu) + tailwindcss-ruby (4.1.4) + tailwindcss-ruby (4.1.4-aarch64-linux-gnu) + tailwindcss-ruby (4.1.4-arm64-darwin) + tailwindcss-ruby (4.1.4-x86_64-darwin) + tailwindcss-ruby (4.1.4-x86_64-linux-gnu) thor (1.3.2) timeout (0.4.3) tzinfo (2.0.6) From 9c7179008b9c2db11a7908036b06f63dceeeb6db Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 2 May 2025 16:21:52 -0400 Subject: [PATCH 81/88] Pin the npm upgrade task to @tailwindcss/upgrade@4.1.4 because the 4.1.5 upgrade tool introduced a dependency on tailwind that I can't figure out how to resolve. Gah, this entire experience has been entirely frustrating as a downstream maintainer, FML --- README.md | 4 ++-- lib/install/upgrade_tailwindcss.rb | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7188adff..158b1750 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,7 @@ Then, run `bin/rails tailwindcss:upgrade`. Among other things, this will try to - If present, moves `app/assets/stylesheets/application.tailwind.css` to `app/assets/tailwind/application.css`. - Removes unnecessary `stylesheet_link_tag "tailwindcss"` tags from the application layout. - Removes references to the Inter font from the application layout. -- Runs the upstream upgrader (note: requires `npx` to run the one-time upgrade, but highly recommended). +- Runs v4.1.4 of the upstream upgrader (note: requires `npx` to run the one-time upgrade, but highly recommended). @@ -145,7 +145,7 @@ $ bin/rails tailwindcss:upgrade remove app/assets/stylesheets/application.tailwind.css 10.9.0 Running the upstream Tailwind CSS upgrader - run npx @tailwindcss/upgrade --force --config /home/user/myapp/config/tailwind.config.js from "." + run npx @tailwindcss/upgrade@4.1.4 --force --config /home/user/myapp/config/tailwind.config.js from "." ≈ tailwindcss v4.0.0 │ Searching for CSS files in the current directory and its subdirectories… │ ↳ Linked `./config/tailwind.config.js` to `./app/assets/tailwind/application.css` diff --git a/lib/install/upgrade_tailwindcss.rb b/lib/install/upgrade_tailwindcss.rb index 004d9a82..d6ecadab 100644 --- a/lib/install/upgrade_tailwindcss.rb +++ b/lib/install/upgrade_tailwindcss.rb @@ -45,8 +45,14 @@ end if system("npx --version") + # We're pinning to v4.1.4 because v4.1.5 of the upgrade tool introduces a dependency version check + # on tailwind and I haven't been able to figure out how to get that to work reliably and I am + # extremely frustrated with the whole thing. See #544 + # + # At some point we will probably need to unpin this at which point I am sincerely hoping that + # someone else will do it. say "Running the upstream Tailwind CSS upgrader" - command = Shellwords.join(["npx", "@tailwindcss/upgrade", "--force", "--config", TAILWIND_CONFIG_PATH.to_s]) + command = Shellwords.join(["npx", "@tailwindcss/upgrade@4.1.4", "--force", "--config", TAILWIND_CONFIG_PATH.to_s]) success = run(command, abort_on_failure: false) unless success say "The upgrade tool failed!", :red From 114fca5b4e235dd9cb14f54161f75032fd247681 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 2 May 2025 16:45:32 -0400 Subject: [PATCH 82/88] version bump to v4.2.3 --- CHANGELOG.md | 7 +++++++ lib/tailwindcss/version.rb | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0f90dac..d662d7a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # `tailwindcss-rails` Changelog +## v4.2.3 / 2025-05-02 + +### Improved + +* The "tailwindcss:upgrade" task now pins to v4.1.4 of the `@tailwindcss/upgrade` tool. #544 @flavorjones + + ## v4.2.2 / 2025-04-05 ### Improved diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index 8a0f50d8..7ab2db8d 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "4.2.2" + VERSION = "4.2.3" end From 3f6d06d0981435c5cdd37951925e31fe70c6870e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 May 2025 15:12:32 +0000 Subject: [PATCH 83/88] build(deps): bump tailwindcss-ruby from 4.1.4 to 4.1.5 Bumps [tailwindcss-ruby](https://github.com/flavorjones/tailwindcss-ruby) from 4.1.4 to 4.1.5. - [Release notes](https://github.com/flavorjones/tailwindcss-ruby/releases) - [Changelog](https://github.com/flavorjones/tailwindcss-ruby/blob/main/CHANGELOG.md) - [Commits](https://github.com/flavorjones/tailwindcss-ruby/compare/v4.1.4...v4.1.5) --- updated-dependencies: - dependency-name: tailwindcss-ruby dependency-version: 4.1.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ec551873..bb16d405 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,11 +140,11 @@ GEM io-console (~> 0.5) securerandom (0.4.1) stringio (3.1.5) - tailwindcss-ruby (4.1.4) - tailwindcss-ruby (4.1.4-aarch64-linux-gnu) - tailwindcss-ruby (4.1.4-arm64-darwin) - tailwindcss-ruby (4.1.4-x86_64-darwin) - tailwindcss-ruby (4.1.4-x86_64-linux-gnu) + tailwindcss-ruby (4.1.5) + tailwindcss-ruby (4.1.5-aarch64-linux-gnu) + tailwindcss-ruby (4.1.5-arm64-darwin) + tailwindcss-ruby (4.1.5-x86_64-darwin) + tailwindcss-ruby (4.1.5-x86_64-linux-gnu) thor (1.3.2) timeout (0.4.3) tzinfo (2.0.6) From 9d0a9f5e81aac890cbc6476f49515d9d45dc8abe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 May 2025 14:17:03 +0000 Subject: [PATCH 84/88] build(deps): bump tailwindcss-ruby from 4.1.5 to 4.1.6 Bumps [tailwindcss-ruby](https://github.com/flavorjones/tailwindcss-ruby) from 4.1.5 to 4.1.6. - [Release notes](https://github.com/flavorjones/tailwindcss-ruby/releases) - [Changelog](https://github.com/flavorjones/tailwindcss-ruby/blob/main/CHANGELOG.md) - [Commits](https://github.com/flavorjones/tailwindcss-ruby/compare/v4.1.5...v4.1.6) --- updated-dependencies: - dependency-name: tailwindcss-ruby dependency-version: 4.1.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index bb16d405..f84bada9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,11 +140,11 @@ GEM io-console (~> 0.5) securerandom (0.4.1) stringio (3.1.5) - tailwindcss-ruby (4.1.5) - tailwindcss-ruby (4.1.5-aarch64-linux-gnu) - tailwindcss-ruby (4.1.5-arm64-darwin) - tailwindcss-ruby (4.1.5-x86_64-darwin) - tailwindcss-ruby (4.1.5-x86_64-linux-gnu) + tailwindcss-ruby (4.1.6) + tailwindcss-ruby (4.1.6-aarch64-linux-gnu) + tailwindcss-ruby (4.1.6-arm64-darwin) + tailwindcss-ruby (4.1.6-x86_64-darwin) + tailwindcss-ruby (4.1.6-x86_64-linux-gnu) thor (1.3.2) timeout (0.4.3) tzinfo (2.0.6) From 401b00b61c78c7dd7dfe33142d9a6660b8f4546c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 May 2025 14:16:45 +0000 Subject: [PATCH 85/88] build(deps): bump tailwindcss-ruby from 4.1.6 to 4.1.7 Bumps [tailwindcss-ruby](https://github.com/flavorjones/tailwindcss-ruby) from 4.1.6 to 4.1.7. - [Release notes](https://github.com/flavorjones/tailwindcss-ruby/releases) - [Changelog](https://github.com/flavorjones/tailwindcss-ruby/blob/main/CHANGELOG.md) - [Commits](https://github.com/flavorjones/tailwindcss-ruby/compare/v4.1.6...v4.1.7) --- updated-dependencies: - dependency-name: tailwindcss-ruby dependency-version: 4.1.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f84bada9..9b0500db 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,11 +140,11 @@ GEM io-console (~> 0.5) securerandom (0.4.1) stringio (3.1.5) - tailwindcss-ruby (4.1.6) - tailwindcss-ruby (4.1.6-aarch64-linux-gnu) - tailwindcss-ruby (4.1.6-arm64-darwin) - tailwindcss-ruby (4.1.6-x86_64-darwin) - tailwindcss-ruby (4.1.6-x86_64-linux-gnu) + tailwindcss-ruby (4.1.7) + tailwindcss-ruby (4.1.7-aarch64-linux-gnu) + tailwindcss-ruby (4.1.7-arm64-darwin) + tailwindcss-ruby (4.1.7-x86_64-darwin) + tailwindcss-ruby (4.1.7-x86_64-linux-gnu) thor (1.3.2) timeout (0.4.3) tzinfo (2.0.6) From a66db017913c3097f8a4197408894c76d15a33d6 Mon Sep 17 00:00:00 2001 From: Sergey Moiseev Date: Thu, 12 Jun 2025 17:22:30 +0300 Subject: [PATCH 86/88] Implement Engines Support (#554) * Implement Engines Support * Correction in README.md * Remove engine test * Rename to engine.css * Initial test cleanup * Tests cleanup * Remove non-needed dup * Correction * Correct docs * doc: update README to indicate engine support is experimental --------- Co-authored-by: Mike Dalessio --- Gemfile.lock | 2 +- README.md | 82 ++++++++++++------------- lib/tailwindcss-rails.rb | 1 + lib/tailwindcss/engine.rb | 4 ++ lib/tailwindcss/engines.rb | 23 +++++++ test/lib/tailwindcss/engines_test.rb | 89 ++++++++++++++++++++++++++++ 6 files changed, 155 insertions(+), 46 deletions(-) create mode 100644 lib/tailwindcss/engines.rb create mode 100644 test/lib/tailwindcss/engines_test.rb diff --git a/Gemfile.lock b/Gemfile.lock index 9b0500db..3a61813b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - tailwindcss-rails (4.2.2) + tailwindcss-rails (4.2.3) railties (>= 7.0.0) tailwindcss-ruby (~> 4.0) diff --git a/README.md b/README.md index 158b1750..274fae80 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,9 @@ * [Using Tailwind plugins](#using-tailwind-plugins) * [Using with PostCSS](#using-with-postcss) * [Custom inputs or outputs](#custom-inputs-or-outputs) + * [Rails Engines support (Experimental)](#rails-engines-support-experimental) - [Troubleshooting](#troubleshooting) + * [The `watch` command is hanging](#the-watch-command-is-hanging) * [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) * [Running in a docker container exits prematurely](#running-in-a-docker-container-exits-prematurely) * [Conflict with sassc-rails](#conflict-with-sassc-rails) @@ -43,12 +45,11 @@ With Rails 7 you can generate a new application preconfigured with Tailwind CSS This gem depends on the `tailwindcss-ruby` gem to install a working Tailwind CLI executable. - ### Choosing a specific version of `tailwindcss` The `tailwindcss-ruby` gem is declared as a floating dependency of this gem, so by default you will get the most recent stable version. However, you can select a specific version of Tailwind CSS by pinning that gem to the analogous version in your application's `Gemfile`. For example, -``` ruby +```ruby gem "tailwindcss-rails" # pin to tailwindcss version 3.4.13 @@ -59,7 +60,6 @@ gem "tailwindcss-ruby", "3.4.13" You can also use a local (npm-based) installation if you prefer, please go to https://github.com/flavorjones/tailwindcss-ruby for more information. - ## Upgrading your application from Tailwind v3 to v4 v4.x of this gem has been updated to work with Tailwind v4, including providing some help with upgrading your application. @@ -72,27 +72,25 @@ This gem will help with some of the mechanics of the upgrade: - update some local project files to meet some Tailwind CSS v4 conventions, - attempt to run the [upstream v4 upgrade tool](https://tailwindcss.com/docs/upgrade-guide#using-the-upgrade-tool). - ### You don't _have_ to upgrade Keep in mind that you don't _need_ to upgrade. You can stay on Tailwind CSS v3 for the foreseeable future if you prefer not to migrate now, or if your migration runs into problems. If you don't want to upgrade, then pin your application to v3.3.1 of this gem: -``` ruby +```ruby # Gemfile gem "tailwindcss-rails", "~> 3.3.1" # which transitively pins tailwindcss-ruby to v3 ``` If you're on an earlier version of this gem, `<= 3.3.0`, then make sure you're pinning the version of **both** `tailwindcss-rails` and `tailwindcss-ruby`: -``` ruby +```ruby # Gemfile gem "tailwindcss-rails", "~> 3.3" gem "tailwindcss-ruby", "~> 3.4" # only necessary with tailwindcss-rails <= 3.3.0 ``` - ### Upgrade steps > [!WARNING] @@ -100,8 +98,8 @@ gem "tailwindcss-ruby", "~> 3.4" # only necessary with tailwindcss-rails <= 3.3. First, update to `tailwindcss-rails` v4.0.0 or higher. This will also ensure you're transitively depending on `tailwindcss-ruby` v4. -```html -# Gemfile +```ruby +# Gemfile gem "tailwindcss-rails", "~> 4.0" # which transitively pins tailwindcss-ruby to v4 ``` @@ -114,7 +112,7 @@ gem "tailwindcss-rails", "~> 4.0" # which transitively pins tailwindcss-ruby to If you want to migrate CSS class names for v4 (this is an optional step!), jump to [Updating CSS class names for v4](#updating-css-class-names-for-v4) before continuing. -Then, run `bin/rails tailwindcss:upgrade`. Among other things, this will try to run the official Tailwind upgrade utility. It requires `npx` in order to run, but it's a one-time operation and is *highly recommended* for a successful upgrade. +Then, run `bin/rails tailwindcss:upgrade`. Among other things, this will try to run the official Tailwind upgrade utility. It requires `npx` in order to run, but it's a one-time operation and is _highly recommended_ for a successful upgrade.
Here's a detailed list of what the upgrade task does. @@ -131,7 +129,7 @@ Then, run `bin/rails tailwindcss:upgrade`. Among other things, this will try to
Here's what that upgrade looks like on a vanilla Rails app. -``` sh +```sh $ bin/rails tailwindcss:upgrade apply /path/to/tailwindcss-rails/lib/install/upgrade_tailwindcss.rb Removing references to 'defaultTheme' from /home/user/myapp/config/tailwind.config.js @@ -166,12 +164,11 @@ $ bin/rails tailwindcss:upgrade Done in 56ms run bundle install --quiet ``` -
+
If this doesn't succeed, it's likely that you've customized your Tailwind configuration and you'll need to do some work to make sure your application upgrades. Please read the [official upgrade guide](https://tailwindcss.com/docs/upgrade-guide) and try following the additional steps in [Updating CSS class names for v4](#updating-css-class-names-for-v4). - ### Troubleshooting a v4 upgrade You may want to check out [TailwindCSS v4 - upgrade experience report · rails/tailwindcss-rails · Discussion #450](https://github.com/rails/tailwindcss-rails/discussions/450) if you're having trouble upgrading. @@ -182,7 +179,6 @@ We know there are some cases we haven't addressed with the upgrade task: We'll try to improve the upgrade process over time, but for now you may need to do some manual work to upgrade. - ### Updating CSS class names for v4 > [!NOTE] @@ -208,9 +204,9 @@ With some additional manual work the upstream upgrade tool will update your appl "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/container-queries": "^0.1.1", "@tailwindcss/forms": "^0.5.10", - "@tailwindcss/typography": "^0.5.16" + "@tailwindcss/typography": "^0.5.16", // And so on... - } + }, } ``` @@ -280,12 +276,10 @@ This gem also generates a `Procfile.dev` file which will run both the rails serv The `tailwindcss:build` is automatically attached to `assets:precompile`, so before the asset pipeline digests the files, the Tailwind output will be generated. - ### Building for testing The `tailwindcss:build` task is automatically attached to the `test:prepare` Rake task. This task runs before test commands. If you run `bin/rails test` in your CI environment, your Tailwind output will be generated before tests run. - ### Building unminified assets If you want unminified assets, you can: @@ -303,7 +297,6 @@ While you're developing your application, you want to run Tailwind in "watch" mo - or run `rails tailwindcss:watch` as a separate process, - or run `bin/dev` which uses [Foreman](https://github.com/ddollar/foreman) - #### Puma plugin This gem ships with a Puma plugin. To use it, add this line to your `puma.rb` configuration: @@ -314,7 +307,6 @@ plugin :tailwindcss if ENV.fetch("RAILS_ENV", "development") == "development" and then running `rails server` (or just `puma`) will run the Tailwind watch process in the background. - #### Run `rails tailwindcss:watch` This is a flexible command, which can be run with a few different options. @@ -331,38 +323,35 @@ If you are running `rails tailwindcss:watch` as a process in a Docker container, 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`. - #### Foreman Running `bin/dev` invokes Foreman to start both the Tailwind watch process and the rails server in development mode based on your `Procfile.dev` file. - ### Using Tailwind plugins If you want to use Tailwind plugins, they can be installed using `package.json`. Using Yarn: -``` sh +```sh [ ! -f package.json ] && yarn init yarn add daisyui # example ``` Using npm: -``` sh +```sh npm init npm add daisyui # example ``` Than use `@plugin` annotation in `app/assets/tailwind/application.css`: -``` css +```css @import "tailwindcss"; @plugin "daisyui"; ``` - ### Using with PostCSS If you want to use PostCSS as a preprocessor, create a custom `postcss.config.js` in your project root directory, and that file will be loaded by Tailwind automatically. @@ -374,8 +363,8 @@ For example, to enable nesting: export default { plugins: { "@tailwindcss/postcss": {}, - } -} + }, +}; ``` ⚠ 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: @@ -395,11 +384,18 @@ export default { Then you can use yarn or npm to install the dependencies. - ### Custom inputs or outputs If you need to use a custom input or output file, you can run `bundle exec tailwindcss` to access the platform-specific executable, and give it your own build options. +### Rails Engines support (Experimental) + +_This feature is experimental and may change in the future. If you have feedback, please join the [discussion](https://github.com/rails/tailwindcss-rails/discussions/355)._ + +If you have Rails Engines in your application that use Tailwind CSS and provide an `app/assets/tailwind//engine.css` file, entry point files will be created for each of them in `app/assets/builds/tailwind/.css` so they can be included in your host application's Tailwind CSS by adding `@import "../builds/tailwind/"` to your `app/assets/tailwind/application.css` file. + +> [!IMPORTANT] +> You must `@import` the engine CSS files in your `app/assets/tailwind/application.css` for the engine to be included in the build. By default, no engine CSS files are imported, and you must opt-in to using the file in your build. ## Troubleshooting @@ -410,7 +406,7 @@ When having trouble with `tailwindcss:build` or `tailwindcss:watch`, the first t Here's what that looks like: -``` sh +```sh $ bin/rails tailwindcss:build[verbose] Running: /path/to/tailwindcss-ruby-4.0.17-x86_64-linux-gnu/exe/x86_64-linux-gnu/tailwindcss -i /home/flavorjones/code/oss/tailwindcss-rails/My Workspace/test-install/app/assets/tailwind/application.css -o /home/flavorjones/code/oss/tailwindcss-rails/My Workspace/test-install/app/assets/builds/tailwind.css --minify @@ -432,34 +428,28 @@ There is a [known issue](https://github.com/tailwindlabs/tailwindcss/issues/1724 Please try uninstalling `watchman` and try running the watch task again. - ### Lost keystrokes or hanging when using terminal-based debugging tools (e.g. IRB, Pry, `ruby/debug`...etc.) with the Puma plugin 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. - ### Running in a docker container exits prematurely 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. 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`. - ### Conflict with sassc-rails Tailwind uses modern CSS features that are not recognized by the `sassc-rails` extension that was included by default in the Gemfile for Rails 6. In order to avoid any errors like `SassC::SyntaxError`, you must remove that gem from your Gemfile. - ### Class names must be spelled out For Tailwind to work, your class names need to be spelled out. If you need to make sure Tailwind generates class names that don't exist in your content files or that are programmatically composed, use the [safelist option](https://tailwindcss.com/docs/content-configuration#safelisting-classes). - ### `ERROR: Cannot find the tailwindcss executable` for supported platform See https://github.com/flavorjones/tailwindcss-ruby for help. - ### Using asset-pipeline assets In Rails, you want to use [assets from the asset pipeline to get fingerprinting](https://guides.rubyonrails.org/asset_pipeline.html#fingerprinting-versioning-with-digest-based-urls). However, Tailwind isn't aware of those assets. @@ -468,20 +458,22 @@ To use assets from the pipeline, use `url(image.svg)`. [Since Sprockets v3.3.0]( ```js module.exports = { - theme: { - extend: { - backgroundImage: { - 'image': "url('image.svg')" - } - } - } -} + theme: { + extend: { + backgroundImage: { + image: "url('image.svg')", + }, + }, + }, +}; ``` The inline version also works: ```html -
Has the image as it's background
+
+ Has the image as it's background +
``` ## License diff --git a/lib/tailwindcss-rails.rb b/lib/tailwindcss-rails.rb index 2b86ff1c..bdfb592d 100644 --- a/lib/tailwindcss-rails.rb +++ b/lib/tailwindcss-rails.rb @@ -2,5 +2,6 @@ module Tailwindcss end require_relative "tailwindcss/version" +require_relative "tailwindcss/engines" require_relative "tailwindcss/engine" require_relative "tailwindcss/commands" diff --git a/lib/tailwindcss/engine.rb b/lib/tailwindcss/engine.rb index 7b88c5f1..001004f8 100644 --- a/lib/tailwindcss/engine.rb +++ b/lib/tailwindcss/engine.rb @@ -15,5 +15,9 @@ class Engine < ::Rails::Engine config.app_generators do |g| g.template_engine :tailwindcss end + + config.after_initialize do + Tailwindcss::Engines.bundle + end end end diff --git a/lib/tailwindcss/engines.rb b/lib/tailwindcss/engines.rb new file mode 100644 index 00000000..d1d6bf63 --- /dev/null +++ b/lib/tailwindcss/engines.rb @@ -0,0 +1,23 @@ +module Tailwindcss + module Engines + class << self + def bundle + FileUtils.mkdir_p(Rails.root.join("app/assets/builds/tailwind")) + Rails::Engine.subclasses.select do |engine| + engine.root.join("app/assets/tailwind/#{engine.engine_name}/engine.css").exist? + end.each do |engine| + file_path = Rails.root.join("app/assets/builds/tailwind/#{engine.engine_name}.css") + FileUtils.rm(file_path) if File.exist?(file_path) + template = <<~TEMPLATE + /* DO NOT MODIFY THIS FILE, it was auto-generated by tailwindcss-rails */ + + @import "#{engine.root.join("app/assets/tailwind/#{engine.engine_name}/engine.css")}"; + TEMPLATE + File.open(file_path, 'w') do |file| + file.puts template + end + end + end + end + end +end diff --git a/test/lib/tailwindcss/engines_test.rb b/test/lib/tailwindcss/engines_test.rb new file mode 100644 index 00000000..f4c1b0d2 --- /dev/null +++ b/test/lib/tailwindcss/engines_test.rb @@ -0,0 +1,89 @@ +require "test_helper" +require "minitest/mock" + +class Tailwindcss::EnginesTest < ActiveSupport::TestCase + def setup + super + @tmpdir_path = Pathname.new(TAILWINDCSS_TEST_APP_ROOT) + @builds_dir = @tmpdir_path.join("app/assets/builds/tailwind") + end + + test "bundle creates the builds directory" do + Rails.stub(:root, @tmpdir_path) do + Tailwindcss::Engines.bundle + assert Dir.exist?(@builds_dir), "Expected directory #{@builds_dir} to be created" + end + end + + test "bundle generates CSS files for engine's tailwind assets" do + Rails.stub(:root, @tmpdir_path) do + setup_mock_engine("mock_engine", @tmpdir_path) + + Tailwindcss::Engines.bundle + + css_file_path = @builds_dir.join("mock_engine.css") + assert File.exist?(css_file_path), "Expected file #{css_file_path} to be created" + + content = File.read(css_file_path) + assert_match(/DO NOT MODIFY THIS FILE/, content) + assert_match(/@import ".*\/app\/assets\/tailwind\/mock_engine\/engine.css"/, content) + end + end + + test "bundle removes existing files before generating new ones" do + Rails.stub(:root, @tmpdir_path) do + setup_mock_engine("mock_engine", @tmpdir_path) + + FileUtils.mkdir_p(@builds_dir) + css_file_path = @builds_dir.join("mock_engine.css") + File.write(css_file_path, "OLD CONTENT") + + Tailwindcss::Engines.bundle + + content = File.read(css_file_path) + assert_no_match(/OLD CONTENT/, content) + assert_match(/DO NOT MODIFY THIS FILE/, content) + end + end + + test "bundle only processes engines with tailwind assets" do + Rails.stub(:root, @tmpdir_path) do + setup_mock_engine("engine_with_assets", @tmpdir_path) + + Class.new(Rails::Engine) do + define_singleton_method(:engine_name) { "engine_without_assets" } + define_singleton_method(:root) { Pathname.new(Dir.mktmpdir) } + end + + Tailwindcss::Engines.bundle + + assert File.exist?(@builds_dir.join("engine_with_assets.css")), "Expected CSS file for engine with assets" + refute File.exist?(@builds_dir.join("engine_without_assets.css")), "Expected no CSS file for engine without assets" + end + end + + test "bundle handles multiple engines" do + Rails.stub(:root, @tmpdir_path) do + setup_mock_engine("engine1", @tmpdir_path) + setup_mock_engine("engine2", @tmpdir_path) + + Tailwindcss::Engines.bundle + + assert File.exist?(@builds_dir.join("engine1.css")), "Expected CSS file for engine1" + assert File.exist?(@builds_dir.join("engine2.css")), "Expected CSS file for engine2" + end + end + + private + + def setup_mock_engine(name, root_path) + tailwind_dir = root_path.join("app/assets/tailwind/#{name}") + FileUtils.mkdir_p(tailwind_dir) + File.write(tailwind_dir.join("engine.css"), "/* Test CSS */") + + Class.new(Rails::Engine) do + define_singleton_method(:engine_name) { name } + define_singleton_method(:root) { root_path } + end + end +end From ae58bb0a5e42c10b7937b4a3a933f242c686f83e Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 12 Jun 2025 10:25:38 -0400 Subject: [PATCH 87/88] version bump to v4.3.0.rc1 --- CHANGELOG.md | 7 +++++++ lib/tailwindcss/version.rb | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d662d7a9..2c11a6fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # `tailwindcss-rails` Changelog +## v4.3.0.rc1 + +### Improved + +* Experimental support for Rails engines. Feedback is welcome at #355. #554 @bopm + + ## v4.2.3 / 2025-05-02 ### Improved diff --git a/lib/tailwindcss/version.rb b/lib/tailwindcss/version.rb index 7ab2db8d..b4acf0d9 100644 --- a/lib/tailwindcss/version.rb +++ b/lib/tailwindcss/version.rb @@ -1,3 +1,3 @@ module Tailwindcss - VERSION = "4.2.3" + VERSION = "4.3.0.rc1" end From 7e0b4d669af33e9d0e830ef08fd22ea34159bca6 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 12 Jun 2025 10:36:42 -0400 Subject: [PATCH 88/88] dev: update Gemfile.lock with new version --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3a61813b..1defe8d7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - tailwindcss-rails (4.2.3) + tailwindcss-rails (4.3.0.rc1) railties (>= 7.0.0) tailwindcss-ruby (~> 4.0)