tailwindcss-rails 4.0.0.rc5 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +70 -49
- data/lib/generators/tailwindcss/authentication/templates/app/views/passwords/edit.html.erb +2 -2
- data/lib/generators/tailwindcss/authentication/templates/app/views/passwords/new.html.erb +1 -1
- data/lib/generators/tailwindcss/scaffold/templates/_form.html.erb.tt +7 -7
- data/lib/generators/tailwindcss/scaffold/templates/index.html.erb.tt +11 -5
- data/lib/generators/tailwindcss/scaffold/templates/partial.html.erb.tt +7 -5
- data/lib/generators/tailwindcss/scaffold/templates/show.html.erb.tt +1 -1
- data/lib/tailwindcss/version.rb +1 -1
- metadata +15 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8dfb2a9007c58419791262f3e6161df3aefbec1bb74f513c87404c01135751c2
|
4
|
+
data.tar.gz: 9339a008fff18d68721d9958fbea1d98b80825fb18f502d7394092e77a3c3d9c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86735d4c0a54258a459a0a9aab3ad5e53d738e1cf195bc6ee0b9554505c53417749e481212f17d0f5462516f0b84f8f6846606706cff315e4f9ba7923039615b
|
7
|
+
data.tar.gz: c299cf5e88698b34a0b1c64bad13d752af44a681628b85752bbfe7f098c8a6c31bb111ae49b566084c444eda92efc7df45f60d5a2ef6eb2e6068857facb06e40
|
data/README.md
CHANGED
@@ -35,17 +35,17 @@
|
|
35
35
|
|
36
36
|
## Installation
|
37
37
|
|
38
|
-
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:
|
38
|
+
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:
|
39
39
|
|
40
40
|
1. Run `./bin/bundle add tailwindcss-rails`
|
41
41
|
2. Run `./bin/rails tailwindcss:install`
|
42
42
|
|
43
|
-
This gem depends on the `tailwindcss-ruby` gem to install a working
|
43
|
+
This gem depends on the `tailwindcss-ruby` gem to install a working Tailwind CLI executable.
|
44
44
|
|
45
45
|
|
46
46
|
### Choosing a specific version of `tailwindcss`
|
47
47
|
|
48
|
-
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
|
48
|
+
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,
|
49
49
|
|
50
50
|
``` ruby
|
51
51
|
gem "tailwindcss-rails"
|
@@ -63,72 +63,60 @@ You can also use a local (npm-based) installation if you prefer, please go to ht
|
|
63
63
|
|
64
64
|
v4.x of this gem has been updated to work with Tailwind v4, including providing some help with upgrading your application.
|
65
65
|
|
66
|
-
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.
|
66
|
+
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.
|
67
67
|
|
68
|
-
This gem will help with some of the mechanics of the upgrade
|
68
|
+
This gem will help with some of the mechanics of the upgrade:
|
69
|
+
|
70
|
+
- update some generated files to handle breaking changes in v4 of this gem,
|
71
|
+
- update some local project files to meet some Tailwind CSS v4 conventions,
|
72
|
+
- attempt to run the [upstream v4 upgrade tool](https://tailwindcss.com/docs/upgrade-guide#using-the-upgrade-tool).
|
69
73
|
|
70
74
|
|
71
75
|
### You don't _have_ to upgrade
|
72
76
|
|
73
|
-
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.
|
77
|
+
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.
|
74
78
|
|
75
|
-
|
79
|
+
If you don't want to upgrade, then pin your application to v3.3.1 of this gem:
|
76
80
|
|
77
81
|
``` ruby
|
78
82
|
# Gemfile
|
79
|
-
gem "tailwindcss-rails", "3.3.1" # which transitively pins tailwindcss-ruby to v3
|
83
|
+
gem "tailwindcss-rails", "~> 3.3.1" # which transitively pins tailwindcss-ruby to v3
|
80
84
|
```
|
81
85
|
|
82
|
-
|
86
|
+
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`:
|
83
87
|
|
84
88
|
``` ruby
|
85
89
|
# Gemfile
|
86
90
|
gem "tailwindcss-rails", "~> 3.3"
|
87
|
-
gem "tailwindcss-ruby", "~> 3.4"
|
91
|
+
gem "tailwindcss-ruby", "~> 3.4" # only necessary with tailwindcss-rails <= 3.3.0
|
88
92
|
```
|
89
93
|
|
90
94
|
|
91
95
|
### Upgrade steps
|
92
96
|
|
93
|
-
|
97
|
+
> [!WARNING]
|
98
|
+
> 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.
|
94
99
|
|
100
|
+
First, update to `tailwindcss-rails` v4.0.0 or higher. This will also ensure you're transitively depending on `tailwindcss-ruby` v4.
|
95
101
|
|
96
102
|
```html
|
97
103
|
# Gemfile
|
98
104
|
gem "tailwindcss-rails", "~> 4.0" # which transitively pins tailwindcss-ruby to v4
|
99
105
|
```
|
100
106
|
|
101
|
-
|
102
|
-
|
103
|
-
Add the following line to the `.gitignore` file:
|
107
|
+
**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`.
|
104
108
|
|
105
|
-
```
|
106
|
-
|
109
|
+
```diff
|
110
|
+
-@import "pagy.css";
|
111
|
+
+@import "../stylesheets/pagy.css";
|
107
112
|
```
|
108
|
-
(So the Tailwind update tool won’t dig through your node_modules files and infer incorrect migrations, because it complies with ``.gitignore`` constraints)
|
109
|
-
|
110
|
-
Then create a ``package.json`` in the root of the project:
|
111
113
|
|
112
|
-
|
113
|
-
{
|
114
|
-
"name": "app_name",
|
115
|
-
"version": "1.0.0",
|
116
|
-
"dependencies": {
|
117
|
-
"tailwindcss": "^3.4.17", // Mandatory!!
|
118
|
-
// Install all plugins and modules that are referenced in tailwind.config.js
|
119
|
-
"@tailwindcss/aspect-ratio": "^0.4.2",
|
120
|
-
"@tailwindcss/container-queries": "^0.1.1",
|
121
|
-
"@tailwindcss/forms": "^0.5.10",
|
122
|
-
"@tailwindcss/typography": "^0.5.16"
|
123
|
-
// And so on...
|
124
|
-
}
|
125
|
-
}
|
126
|
-
```
|
127
|
-
**Run** ``npm install`` (or ``yarn install`` if using ``yarn``)
|
114
|
+
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.
|
128
115
|
|
129
|
-
Then,
|
116
|
+
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.
|
130
117
|
|
131
|
-
|
118
|
+
<details>
|
119
|
+
<summary>Here's a detailed list of what the upgrade task does.</summary>
|
132
120
|
|
133
121
|
- Cleans up some things in the generated `config/tailwind.config.js`.
|
134
122
|
- If present, moves `config/postcss.config.js` to the root directory.
|
@@ -137,6 +125,8 @@ Here's what the upgrade task does:
|
|
137
125
|
- Removes references to the Inter font from the application layout.
|
138
126
|
- Runs the upstream upgrader (note: requires `npx` to run the one-time upgrade, but highly recommended).
|
139
127
|
|
128
|
+
</details>
|
129
|
+
|
140
130
|
<details>
|
141
131
|
<summary>Here's what that upgrade looks like on a vanilla Rails app.</summary>
|
142
132
|
|
@@ -178,7 +168,7 @@ Done in 56ms
|
|
178
168
|
</details>
|
179
169
|
|
180
170
|
|
181
|
-
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)
|
171
|
+
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).
|
182
172
|
|
183
173
|
|
184
174
|
### Troubleshooting
|
@@ -187,14 +177,45 @@ You may want to check out [TailwindCSS v4 - upgrade experience report · rails/t
|
|
187
177
|
|
188
178
|
We know there are some cases we haven't addressed with the upgrade task:
|
189
179
|
|
190
|
-
- In
|
180
|
+
- 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.
|
191
181
|
|
192
182
|
We'll try to improve the upgrade process over time, but for now you may need to do some manual work to upgrade.
|
193
183
|
|
194
184
|
|
195
185
|
### Updating CSS class names for v4
|
196
186
|
|
197
|
-
|
187
|
+
> [!NOTE]
|
188
|
+
> 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).
|
189
|
+
|
190
|
+
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.**
|
191
|
+
|
192
|
+
**Add** the following line to the `.gitignore` file, to prevent the upstream upgrade tool from accessing node_modules files.
|
193
|
+
|
194
|
+
```gitignore
|
195
|
+
/node_modules
|
196
|
+
```
|
197
|
+
|
198
|
+
**Create** a `package.json` in the root of the project:
|
199
|
+
|
200
|
+
```jsonc
|
201
|
+
{
|
202
|
+
"name": "app_name",
|
203
|
+
"version": "1.0.0",
|
204
|
+
"dependencies": {
|
205
|
+
"tailwindcss": "^3.4.17", // Mandatory!!
|
206
|
+
// Install all plugins and modules that are referenced in tailwind.config.js
|
207
|
+
"@tailwindcss/aspect-ratio": "^0.4.2",
|
208
|
+
"@tailwindcss/container-queries": "^0.1.1",
|
209
|
+
"@tailwindcss/forms": "^0.5.10",
|
210
|
+
"@tailwindcss/typography": "^0.5.16"
|
211
|
+
// And so on...
|
212
|
+
}
|
213
|
+
}
|
214
|
+
```
|
215
|
+
|
216
|
+
**Run** `npm install` (or `yarn install` if using `yarn`)
|
217
|
+
|
218
|
+
**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:
|
198
219
|
|
199
220
|
```js
|
200
221
|
content: [
|
@@ -204,18 +225,19 @@ Before running the upgrade task, go to ``config/tailwind.config.js`` update the
|
|
204
225
|
'../app/views/**/*.{erb,haml,html,slim}'
|
205
226
|
],
|
206
227
|
```
|
207
|
-
(Just add an additional ``.`` to all the paths referenced)
|
208
228
|
|
209
|
-
|
229
|
+
(Just add an additional `.` to all the paths referenced)
|
230
|
+
|
231
|
+
**Run** the upstream upgrader as instructed above.
|
210
232
|
|
211
|
-
Then, once you've run that successfully:
|
233
|
+
Then, once you've run that successfully, clean up:
|
212
234
|
|
213
|
-
- **Delete**
|
235
|
+
- **Delete** `package.json`, `node_modules/` and `package-lock.json` (or `yarn.lock`), plus remove `/node_modules` from `.gitignore`.
|
214
236
|
- **Go** to your CSS file and remove the following line (if present):
|
215
237
|
```css
|
216
238
|
@plugin '@tailwindcss/container-queries';
|
217
239
|
```
|
218
|
-
|
240
|
+
- **Revert** the changes to `config/tailwind.config.js` so that paths are once again relative to the application root.
|
219
241
|
|
220
242
|
## Developing with Tailwindcss
|
221
243
|
|
@@ -311,7 +333,7 @@ Running `bin/dev` invokes Foreman to start both the Tailwind watch process and t
|
|
311
333
|
|
312
334
|
### Using with PostCSS
|
313
335
|
|
314
|
-
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
|
336
|
+
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.
|
315
337
|
|
316
338
|
For example, to enable nesting:
|
317
339
|
|
@@ -324,7 +346,7 @@ export default {
|
|
324
346
|
}
|
325
347
|
```
|
326
348
|
|
327
|
-
⚠ Note that PostCSS is a
|
349
|
+
⚠ 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:
|
328
350
|
|
329
351
|
```json
|
330
352
|
// package.json
|
@@ -375,7 +397,7 @@ See https://github.com/flavorjones/tailwindcss-ruby for help.
|
|
375
397
|
|
376
398
|
### Using asset-pipeline assets
|
377
399
|
|
378
|
-
In Rails, you want to use [assets from the asset pipeline to get fingerprinting](https://guides.rubyonrails.org/asset_pipeline.html#
|
400
|
+
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.
|
379
401
|
|
380
402
|
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.
|
381
403
|
|
@@ -400,4 +422,3 @@ The inline version also works:
|
|
400
422
|
## License
|
401
423
|
|
402
424
|
Tailwind for Rails is released under the [MIT License](https://opensource.org/licenses/MIT).
|
403
|
-
The Inter font is released under the [SIL Open Font License, Version 1.1](https://github.com/rsms/inter/blob/master/LICENSE.txt).
|
@@ -7,11 +7,11 @@
|
|
7
7
|
|
8
8
|
<%%= form_with url: password_path(params[:token]), method: :put, class: "contents" do |form| %>
|
9
9
|
<div class="my-5">
|
10
|
-
<%%= 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-
|
10
|
+
<%%= 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" %>
|
11
11
|
</div>
|
12
12
|
|
13
13
|
<div class="my-5">
|
14
|
-
<%%= 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-
|
14
|
+
<%%= 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" %>
|
15
15
|
</div>
|
16
16
|
|
17
17
|
<div class="inline">
|
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
<%%= form_with url: passwords_path, class: "contents" do |form| %>
|
9
9
|
<div class="my-5">
|
10
|
-
<%%= 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-
|
10
|
+
<%%= 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" %>
|
11
11
|
</div>
|
12
12
|
|
13
13
|
<div class="inline">
|
@@ -12,26 +12,26 @@
|
|
12
12
|
<%% end %>
|
13
13
|
|
14
14
|
<% attributes.each do |attribute| -%>
|
15
|
-
<div class="my-5">
|
15
|
+
<div class="my-5<%= " flex items-center gap-2" if attribute.field_type == :checkbox || attribute.field_type == :check_box %>">
|
16
16
|
<% if attribute.password_digest? -%>
|
17
17
|
<%%= form.label :password %>
|
18
|
-
<%%= form.password_field :password, class: ["block shadow-sm rounded-md border
|
18
|
+
<%%= 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?}] %>
|
19
19
|
</div>
|
20
20
|
|
21
21
|
<div class="my-5">
|
22
22
|
<%%= form.label :password_confirmation %>
|
23
|
-
<%%= form.password_field :password_confirmation, class: ["block shadow-sm rounded-md border
|
23
|
+
<%%= 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?}] %>
|
24
24
|
<% elsif attribute.attachments? -%>
|
25
25
|
<%%= form.label :<%= attribute.column_name %> %>
|
26
|
-
<%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true, class: ["block shadow-sm rounded-md border
|
26
|
+
<%%= 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?}] %>
|
27
27
|
<% else -%>
|
28
28
|
<%%= form.label :<%= attribute.column_name %> %>
|
29
29
|
<% if attribute.field_type == :textarea || attribute.field_type == :text_area -%>
|
30
|
-
<%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, rows: 4, class: ["block shadow-sm rounded-md border
|
30
|
+
<%%= 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?}] %>
|
31
31
|
<% elsif attribute.field_type == :checkbox || attribute.field_type == :check_box -%>
|
32
|
-
<%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border
|
32
|
+
<%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border 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?}] %>
|
33
33
|
<% else -%>
|
34
|
-
<%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: ["block shadow-sm rounded-md border
|
34
|
+
<%%= 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?}] %>
|
35
35
|
<% end -%>
|
36
36
|
<% end -%>
|
37
37
|
</div>
|
@@ -10,13 +10,19 @@
|
|
10
10
|
<%%= 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" %>
|
11
11
|
</div>
|
12
12
|
|
13
|
-
<div id="<%= plural_table_name %>" class="min-w-full">
|
13
|
+
<div id="<%= plural_table_name %>" class="min-w-full divide-y divide-gray-200 space-y-5">
|
14
14
|
<%% if @<%= plural_table_name %>.any? %>
|
15
15
|
<%% @<%= plural_table_name %>.each do |<%= singular_table_name %>| %>
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
<div class="flex justify-between items-center">
|
17
|
+
<%%= render <%= singular_table_name %> %>
|
18
|
+
<div class="space-x-2">
|
19
|
+
<%%= 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" %>
|
20
|
+
<%%= 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" %>
|
21
|
+
<div class="inline-block">
|
22
|
+
<%%= 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?" } %>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</div>
|
20
26
|
<%% end %>
|
21
27
|
<%% else %>
|
22
28
|
<p class="text-center my-10">No <%= human_name.downcase.pluralize %> found.</p>
|
@@ -1,16 +1,18 @@
|
|
1
|
-
<div id="<%%= dom_id <%= singular_name %> %>">
|
1
|
+
<div id="<%%= dom_id <%= singular_name %> %>" class="my-5 space-y-5">
|
2
2
|
<% attributes.reject(&:password_digest?).each do |attribute| -%>
|
3
|
-
<
|
3
|
+
<div>
|
4
4
|
<strong class="block font-medium mb-1"><%= attribute.human_name %>:</strong>
|
5
5
|
<% if attribute.attachment? -%>
|
6
|
-
<%%= link_to <%= singular_name %>.<%= attribute.column_name %>.filename, <%= singular_name %>.<%= attribute.column_name
|
6
|
+
<%%= 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? %>
|
7
7
|
<% elsif attribute.attachments? -%>
|
8
8
|
<%% <%= singular_name %>.<%= attribute.column_name %>.each do |<%= attribute.singular_name %>| %>
|
9
|
-
<div><%%= link_to <%= attribute.singular_name %>.filename, <%= attribute.singular_name
|
9
|
+
<div><%%= link_to <%= attribute.singular_name %>.filename, <%= attribute.singular_name %>, class: "text-gray-700 underline hover:no-underline" %></div>
|
10
10
|
<%% end %>
|
11
|
+
<% elsif attribute.type == :boolean -%>
|
12
|
+
<%%= <%= singular_name %>.<%= attribute.column_name %>? ? "Yes" : "No" %>
|
11
13
|
<% else -%>
|
12
14
|
<%%= <%= singular_name %>.<%= attribute.column_name %> %>
|
13
15
|
<% end -%>
|
14
|
-
</
|
16
|
+
</div>
|
15
17
|
<% end -%>
|
16
18
|
</div>
|
@@ -12,6 +12,6 @@
|
|
12
12
|
<%%= 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" %>
|
13
13
|
<%%= 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" %>
|
14
14
|
<div class="inline-block ml-2">
|
15
|
-
<%%= 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" %>
|
15
|
+
<%%= 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?" } %>
|
16
16
|
</div>
|
17
17
|
</div>
|
data/lib/tailwindcss/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tailwindcss-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date: 2025-
|
10
|
+
date: 2025-02-19 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: railties
|
@@ -38,7 +37,6 @@ dependencies:
|
|
38
37
|
- - "~>"
|
39
38
|
- !ruby/object:Gem::Version
|
40
39
|
version: '4.0'
|
41
|
-
description:
|
42
40
|
email: david@loudthinking.com
|
43
41
|
executables: []
|
44
42
|
extensions: []
|
@@ -86,7 +84,17 @@ licenses:
|
|
86
84
|
metadata:
|
87
85
|
homepage_uri: https://github.com/rails/tailwindcss-rails
|
88
86
|
rubygems_mfa_required: 'true'
|
89
|
-
post_install_message:
|
87
|
+
post_install_message: |+
|
88
|
+
== Upgrading to Tailwind CSS v4 ==
|
89
|
+
|
90
|
+
If you are upgrading to tailwindcss-rails 4.x, please read the upgrade guide at:
|
91
|
+
|
92
|
+
https://github.com/rails/tailwindcss-rails/blob/main/README.md#upgrading-your-application-from-tailwind-v3-to-v4
|
93
|
+
|
94
|
+
If you're not ready to upgrade yet, please pin to version 3 in your Gemfile:
|
95
|
+
|
96
|
+
gem "tailwindcss-rails", "~> 3.3.1"
|
97
|
+
|
90
98
|
rdoc_options: []
|
91
99
|
require_paths:
|
92
100
|
- lib
|
@@ -101,8 +109,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
109
|
- !ruby/object:Gem::Version
|
102
110
|
version: 3.2.0
|
103
111
|
requirements: []
|
104
|
-
rubygems_version: 3.
|
105
|
-
signing_key:
|
112
|
+
rubygems_version: 3.6.2
|
106
113
|
specification_version: 4
|
107
114
|
summary: Integrate Tailwind CSS with the asset pipeline in Rails.
|
108
115
|
test_files: []
|
116
|
+
...
|