Skip to content

Commit 920617f

Browse files
Prepare generator for jsbundling + Tailwind V4 (#237)
Co-authored-by: Seth Horsley <[email protected]>
1 parent 1c755e4 commit 920617f

File tree

7 files changed

+41
-286
lines changed

7 files changed

+41
-286
lines changed

lib/generators/ruby_ui/component_generator.rb

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -99,27 +99,6 @@ def install_js_packages(js_packages)
9999
end
100100
end
101101

102-
def pin_motion
103-
say <<~TEXT
104-
WARNING: Installing motion from CDN because `bin/importmap pin motion` doesn't download the correct file.
105-
TEXT
106-
107-
inject_into_file Rails.root.join("config/importmap.rb"), <<~RUBY
108-
pin "motion", to: "https://cdn.jsdelivr.net/npm/[email protected]/+esm"\n
109-
RUBY
110-
end
111-
112-
def pin_tippy_js
113-
say <<~TEXT
114-
WARNING: Installing tippy.js from CDN because `bin/importmap pin tippy.js` doesn't download the correct file.
115-
TEXT
116-
117-
inject_into_file Rails.root.join("config/importmap.rb"), <<~RUBY
118-
pin "tippy.js", to: "https://cdn.jsdelivr.net/npm/[email protected]/+esm"
119-
pin "@popperjs/core", to: "https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/+esm"\n
120-
RUBY
121-
end
122-
123102
def dependencies
124103
@dependencies ||= YAML.load_file(File.join(__dir__, "dependencies.yml")).freeze
125104

lib/generators/ruby_ui/install/install_generator.rb

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,12 @@ def install_phlex_rails
1414
say "Checking for phlex-rails"
1515

1616
if gem_installed?("phlex-rails")
17-
if Gem::Specification.find_by_name("phlex-rails").version < "2.0.0.beta2"
18-
say "You need to upgrade to phlex-rails 2 to use RubyUI", :red
19-
exit
20-
else
21-
say "phlex-rails is already installed", :green
22-
end
17+
say "phlex-rails is already installed", :green
2318
else
2419
say "Adding phlex-rails to Gemfile"
25-
run %(bundle add phlex-rails --github="phlex-ruby/phlex-rails")
20+
run %(bundle add phlex-rails)
2621

27-
say "Running phlex-rails structure"
22+
say "Generating phlex-rails structure"
2823
run "bin/rails generate phlex:install"
2924
end
3025
end
@@ -52,31 +47,26 @@ def add_ruby_ui_module_to_components_base
5247
end
5348
end
5449

55-
def add_tailwind_config
56-
say "Adding RubyUI config to tailwind config"
50+
def add_tailwind_css
51+
say "Adding Tailwind css"
5752

58-
if using_tailwindcss_rails_gem?
59-
template "application.css.erb", Rails.root.join("app/assets/tailwind/application.css")
53+
css_path = if using_importmap?
54+
Rails.root.join("app/assets/tailwind/application.css")
6055
else
61-
template "application.tailwind.css.erb", Rails.root.join("app/assets/stylesheets/application.tailwind.css")
56+
Rails.root.join("app/assets/stylesheets/application.tailwind.css")
6257
end
58+
59+
template "tailwind.css.erb", css_path
6360
end
6461

65-
def install_tw_animate_css
62+
def install_tailwind_plugins
6663
say "Installing tw-animate-css plugin"
67-
6864
install_js_package("tw-animate-css")
69-
end
7065

71-
def install_tailwindcss_forms
7266
say "Installing @tailwindcss/forms plugin"
73-
7467
install_js_package("@tailwindcss/forms")
75-
end
7668

77-
def install_tailwindcss_typography
7869
say "Installing @tailwindcss/typography plugin"
79-
8070
install_js_package("@tailwindcss/typography")
8171
end
8272

lib/generators/ruby_ui/install/templates/application.tailwind.css.erb

Lines changed: 0 additions & 77 deletions
This file was deleted.

lib/generators/ruby_ui/install/templates/tailwind.config.js.js-package.erb

Lines changed: 0 additions & 77 deletions
This file was deleted.

lib/generators/ruby_ui/install/templates/tailwind.config.js.tailwindcss-rails.erb

Lines changed: 0 additions & 82 deletions
This file was deleted.

lib/generators/ruby_ui/install/templates/application.css.erb renamed to lib/generators/ruby_ui/install/templates/tailwind.css.erb

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
@import "tailwindcss";
2-
@import "../../../vendor/javascript/tw-animate-css.js";
32

43
@plugin "@tailwindcss/forms";
54
@plugin "@tailwindcss/typography";
65

6+
<% if using_importmap? %>
7+
@import "../../../vendor/javascript/tw-animate-css.js";
8+
<% else %>
9+
@import "tw-animate-css";
10+
<% end %>
11+
712
@custom-variant dark (&:is(.dark *));
813

914
:root {
@@ -131,6 +136,8 @@
131136
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
132137
--color-sidebar-border: var(--sidebar-border);
133138
--color-sidebar-ring: var(--sidebar-ring);
139+
140+
/* ruby_ui specific */
134141
--color-warning: var(--warning);
135142
--color-warning-foreground: var(--warning-foreground);
136143
--color-success: var(--success);
@@ -139,15 +146,9 @@
139146

140147
@layer base {
141148
* {
142-
@apply border-border;
149+
@apply border-border outline-ring/50;
143150
}
144-
145151
body {
146152
@apply bg-background text-foreground;
147-
font-feature-settings: "rlig" 1, "calt" 1;
148-
149-
/* docs specific */
150-
/* https://css-tricks.com/snippets/css/system-font-stack/ */
151-
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
152153
}
153154
}

lib/generators/ruby_ui/javascript_utils.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,27 @@ def using_importmap?
3131
def using_npm? = File.exist?(Rails.root.join("package-lock.json"))
3232

3333
def using_yarn? = File.exist?(Rails.root.join("yarn.lock"))
34+
35+
def pin_motion
36+
say <<~TEXT
37+
WARNING: Installing motion from CDN because `bin/importmap pin motion` doesn't download the correct file.
38+
TEXT
39+
40+
inject_into_file Rails.root.join("config/importmap.rb"), <<~RUBY
41+
pin "motion", to: "https://cdn.jsdelivr.net/npm/[email protected]/+esm"\n
42+
RUBY
43+
end
44+
45+
def pin_tippy_js
46+
say <<~TEXT
47+
WARNING: Installing tippy.js from CDN because `bin/importmap pin tippy.js` doesn't download the correct file.
48+
TEXT
49+
50+
inject_into_file Rails.root.join("config/importmap.rb"), <<~RUBY
51+
pin "tippy.js", to: "https://cdn.jsdelivr.net/npm/[email protected]/+esm"
52+
pin "@popperjs/core", to: "https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/+esm"\n
53+
RUBY
54+
end
3455
end
3556
end
3657
end

0 commit comments

Comments
 (0)