activeadmin-tom_select 4.1.2 → 4.2.0.beta2

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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +2 -2
  3. data/CHANGELOG.md +12 -0
  4. data/Gemfile +1 -1
  5. data/Gemfile.lock +146 -102
  6. data/README.md +1 -1
  7. data/activeadmin-tom_select.gemspec +1 -0
  8. data/docs/activeadmin-4-asset-setup.md +171 -0
  9. data/docs/activeadmin-tailwind-4.md +125 -0
  10. data/docs/guide-update-your-app.md +89 -356
  11. data/docs/setup-activeadmin-app.md +69 -492
  12. data/docs/setup-activeadmin-gem.md +83 -449
  13. data/gemfiles/rails_7.x_active_admin_4.x.gemfile +2 -1
  14. data/gemfiles/rails_7.x_active_admin_4.x.gemfile.lock +158 -116
  15. data/gemfiles/rails_8.x_active_admin_4.x.gemfile +2 -1
  16. data/gemfiles/rails_8.x_active_admin_4.x.gemfile.lock +145 -101
  17. data/lib/activeadmin/tom_select/option_collection.rb +4 -6
  18. data/lib/activeadmin/tom_select/select_input_extension.rb +15 -7
  19. data/lib/activeadmin/tom_select/version.rb +1 -1
  20. data/npm-package/package.json +1 -1
  21. data/spec/features/end_to_end_spec.rb +2 -2
  22. data/spec/features/input_errors_spec.rb +1 -3
  23. data/spec/features/options_dsl_spec.rb +6 -6
  24. data/spec/internal/Gemfile +1 -0
  25. data/spec/internal/Gemfile.lock +152 -107
  26. data/spec/internal/app/assets/stylesheets/active_admin.tailwind.css +8 -5
  27. data/spec/internal/bin/tailwindcss +27 -0
  28. data/spec/internal/lib/tasks/active_admin.rake +9 -4
  29. data/spec/internal/package-lock.json +15 -1371
  30. data/spec/internal/package.json +1 -2
  31. data/{docs/tailwind-4/tailwind-active_admin.config.js → spec/internal/tailwind-active_admin.config.mjs} +9 -4
  32. data/spec/internal/yarn.lock +128 -728
  33. metadata +21 -23
  34. data/docs/activeadmin-4-detailed-reference.md +0 -932
  35. data/docs/activeadmin-4-gem-migration-guide.md +0 -313
  36. data/docs/combustion.md +0 -213
  37. data/docs/fail.png +0 -0
  38. data/docs/normal.png +0 -0
  39. data/docs/propshaft-readme.md +0 -320
  40. data/docs/propshaft-upgrade.md +0 -484
  41. data/docs/tailwind/blog-page.md +0 -341
  42. data/docs/tailwind/upgrade-guide-enhanced.md +0 -438
  43. data/docs/tailwind/upgrade-guide.md +0 -416
  44. data/docs/tailwind-4/active_admin.rake +0 -38
  45. data/docs/tailwind-4/active_admin.tailwind.css +0 -415
  46. data/docs/test-app-change.md +0 -154
  47. data/docs/test-environment-fixes.md +0 -58
  48. data/docs/update-tom-select.md +0 -348
@@ -0,0 +1,171 @@
1
+ # ActiveAdmin 4 Asset Setup (Tailwind CSS v4)
2
+
3
+ ## Overview
4
+ This guide documents the current, working setup for ActiveAdmin 4.0.0.beta19 with Tailwind CSS v4 and Tom Select (no jQuery).
5
+
6
+ ## Requirements
7
+ - ActiveAdmin 4.0.0.beta19
8
+ - Tailwind CSS v4 via `tailwindcss-rails` (ships `bin/tailwindcss`)
9
+ - ESBuild (or other JS bundler) for ActiveAdmin JS + Tom Select
10
+
11
+ ## 1. Gemfile
12
+
13
+ ```ruby
14
+ # ActiveAdmin 4 beta
15
+ gem "activeadmin", "4.0.0.beta19"
16
+
17
+ gem "activeadmin-tom_select"
18
+
19
+ # Tailwind CSS v4 (bundled CLI)
20
+ gem "tailwindcss-rails", "~> 4.4.0"
21
+ ```
22
+
23
+ ## 2. package.json
24
+
25
+ ```json
26
+ {
27
+ "dependencies": {
28
+ "@activeadmin/activeadmin": "^4.0.0-beta19",
29
+ "tom-select": "^2.4.3",
30
+ "activeadmin-tom_select": "^4.1.0"
31
+ },
32
+ "devDependencies": {
33
+ "esbuild": "^0.27.2"
34
+ },
35
+ "scripts": {
36
+ "build:js": "node esbuild-active_admin.config.js",
37
+ "build:css": "bundle exec rake active_admin:build",
38
+ "build": "npm run build:js && npm run build:css",
39
+ "watch:js": "node esbuild-active_admin.config.js --watch",
40
+ "watch:css": "bundle exec rake active_admin:watch",
41
+ "dev": "npm run watch:js & npm run watch:css"
42
+ }
43
+ }
44
+ ```
45
+
46
+ ## 3. JavaScript Entry (app/javascript/active_admin.js)
47
+
48
+ ```javascript
49
+ import "@activeadmin/activeadmin";
50
+
51
+ import TomSelect from "tom-select";
52
+ window.TomSelect = TomSelect;
53
+
54
+ import { setupAutoInit, initSearchableSelects } from "activeadmin-tom_select";
55
+ window.initSearchableSelects = initSearchableSelects;
56
+ setupAutoInit();
57
+ ```
58
+
59
+ ## 4. Tailwind Input (app/assets/stylesheets/active_admin.tailwind.css)
60
+
61
+ ```css
62
+ @import "tailwindcss";
63
+ @config "../../../tailwind-active_admin.config.mjs";
64
+
65
+ @import "activeadmin-tom_select/css";
66
+ ```
67
+
68
+ ## 5. Tailwind Config (tailwind-active_admin.config.mjs)
69
+
70
+ ```javascript
71
+ import { execSync } from "child_process";
72
+ import activeAdminPlugin from "@activeadmin/activeadmin/plugin";
73
+
74
+ const activeAdminPath = execSync("bundle show activeadmin", {
75
+ encoding: "utf-8"
76
+ }).trim();
77
+
78
+ export default {
79
+ content: [
80
+ `${activeAdminPath}/vendor/javascript/flowbite.js`,
81
+ `${activeAdminPath}/plugin.js`,
82
+ `${activeAdminPath}/app/views/**/*.{arb,erb,html,rb}`,
83
+ "./app/admin/**/*.{arb,erb,html,rb}",
84
+ "./app/views/active_admin/**/*.{arb,erb,html,rb}",
85
+ "./app/views/admin/**/*.{arb,erb,html,rb}",
86
+ "./app/views/layouts/active_admin*.{erb,html}",
87
+ "./app/javascript/**/*.js"
88
+ ],
89
+ darkMode: "selector",
90
+ plugins: [activeAdminPlugin]
91
+ };
92
+ ```
93
+
94
+ ## 6. Tailwind Build Tasks (lib/tasks/active_admin.rake)
95
+
96
+ ```ruby
97
+ namespace :active_admin do
98
+ desc "Build Active Admin Tailwind stylesheets"
99
+ task build: :environment do
100
+ command = [
101
+ Rails.root.join("bin/tailwindcss").to_s,
102
+ "-i", Rails.root.join("app/assets/stylesheets/active_admin.tailwind.css").to_s,
103
+ "-o", Rails.root.join("app/assets/builds/active_admin.css").to_s,
104
+ "-m"
105
+ ]
106
+
107
+ system(*command, exception: true)
108
+ end
109
+
110
+ desc "Watch Active Admin Tailwind stylesheets"
111
+ task watch: :environment do
112
+ command = [
113
+ Rails.root.join("bin/tailwindcss").to_s,
114
+ "--watch",
115
+ "-i", Rails.root.join("app/assets/stylesheets/active_admin.tailwind.css").to_s,
116
+ "-o", Rails.root.join("app/assets/builds/active_admin.css").to_s,
117
+ "-m"
118
+ ]
119
+
120
+ system(*command, exception: true)
121
+ end
122
+ end
123
+
124
+ Rake::Task["assets:precompile"].enhance(["active_admin:build"])
125
+ Rake::Task["test:prepare"].enhance(["active_admin:build"]) if Rake::Task.task_defined?("test:prepare")
126
+ Rake::Task["spec:prepare"].enhance(["active_admin:build"]) if Rake::Task.task_defined?("spec:prepare")
127
+ Rake::Task["db:test:prepare"].enhance(["active_admin:build"]) if Rake::Task.task_defined?("db:test:prepare")
128
+ ```
129
+
130
+ ## 7. Tailwind CLI Binstub
131
+
132
+ ```bash
133
+ bundle binstubs tailwindcss-ruby --force
134
+ ```
135
+
136
+ ## 8. Upgrade Notes (ActiveAdmin 4.0.0.beta19)
137
+
138
+ From ActiveAdmin's upgrade guide:
139
+ - `_site_header.html.erb` container class changed from `sticky` to `fixed`.
140
+ - `active_admin.html.erb` adds the `pt-16` utility class.
141
+ - Tailwind v4 uses `@import "tailwindcss"` and `@config` (no `@tailwind` directives).
142
+ - The Tailwind config file is ESM. Use `tailwind-active_admin.config.mjs`.
143
+ - jQuery/jQuery UI removed; `columns` and `tabs` components removed.
144
+ - Replace `default_main_content` with `render "show_default"`.
145
+ - Replace `as: :datepicker` with `as: :date_picker`.
146
+ - Replace `active_admin_comments` with `active_admin_comments_for(resource)`.
147
+ - Replace `attributes_table` with `attributes_table_for(resource)` in sidebars.
148
+
149
+ ## Troubleshooting
150
+
151
+ ### CSS not building
152
+ - Ensure `tailwindcss-rails` is pinned to `~> 4.4.0`.
153
+ - Run `bundle binstubs tailwindcss-ruby --force`.
154
+ - Confirm `bin/tailwindcss` exists.
155
+
156
+ ### ActiveAdmin styles not loading
157
+ - Verify `app/assets/builds/active_admin.css` exists.
158
+ - Check that `active_admin.tailwind.css` imports `activeadmin-tom_select/css`.
159
+
160
+ ### Tom Select not initializing
161
+ - Verify `window.TomSelect` in the console.
162
+ - Ensure `setupAutoInit()` is called.
163
+
164
+ ## Migration Checklist
165
+
166
+ - [ ] Update ActiveAdmin to 4.0.0.beta19
167
+ - [ ] Use Tailwind v4 `@import` + `@config`
168
+ - [ ] Add `tailwindcss-rails` (~> 4.4.0) and binstub
169
+ - [ ] Create `tailwind-active_admin.config.mjs` (ESM)
170
+ - [ ] Update rake tasks to use `bin/tailwindcss` (no `-c`)
171
+ - [ ] Rebuild assets and verify UI
@@ -0,0 +1,125 @@
1
+ # ActiveAdmin + Tailwind CSS v4 Guide
2
+
3
+ This guide consolidates the ActiveAdmin 4.0.0.beta19 upgrade notes with a working Tailwind v4 build setup. Use it as a template when updating other ActiveAdmin extension gems.
4
+
5
+ ## What Changed in ActiveAdmin 4.0.0.beta19 (from UPGRADING.md)
6
+
7
+ ### Template Updates
8
+ - `_site_header.html.erb` container class changed from `sticky` to `fixed`.
9
+ - `active_admin.html.erb` now includes the `pt-16` utility class.
10
+
11
+ ### Tailwind v4 Updates
12
+ Replace the old Tailwind directives with the new v4 import and config:
13
+
14
+ ```diff
15
+ -@tailwind base;
16
+ -@tailwind components;
17
+ -@tailwind utilities;
18
+ +@import "tailwindcss";
19
+ +
20
+ +@config "../../../tailwind-active_admin.config.mjs";
21
+ ```
22
+
23
+ Update your CSS build command:
24
+
25
+ ```diff
26
+ -"build:css": "tailwindcss -i ./app/assets/stylesheets/active_admin.css -o ./app/assets/builds/active_admin.css --minify -c tailwind-active_admin.config.js"
27
+ +"build:css": "npx @tailwindcss/cli -i ./app/assets/stylesheets/active_admin.css -o ./app/assets/builds/active_admin.css --minify"
28
+ ```
29
+
30
+ If you use `tailwindcss-rails`, prefer the bundled `bin/tailwindcss` and the `@config` directive instead of passing `-c`.
31
+
32
+ ### ESM Config Warning
33
+ Tailwind config now uses ESM. To avoid the warning:
34
+ - Rename `tailwind-active_admin.config.js` to `tailwind-active_admin.config.mjs`, or
35
+ - Add `"type": "module"` to `package.json`.
36
+
37
+ ### Breaking Changes Summary
38
+ - jQuery and jQuery UI removed.
39
+ - `columns` component removed (use Tailwind grid).
40
+ - `tabs` component removed.
41
+ - Replace `default_main_content` with `render "show_default"`.
42
+ - Replace `as: :datepicker` with `as: :date_picker`.
43
+ - Replace `active_admin_comments` with `active_admin_comments_for(resource)`.
44
+ - Replace `attributes_table` with `attributes_table_for(resource)` in sidebars.
45
+ - Removed `IndexAsBlog`, `IndexAsBlock`, `IndexAsGrid`.
46
+ - Batch action form DSL replaced with partial support.
47
+ - Deeply nested submenus removed (only one level supported).
48
+ - Removed `Panel#header_action` and `index_column`.
49
+
50
+ ## Recommended Build Setup (tailwindcss-rails)
51
+
52
+ ### 1. Gemfile
53
+
54
+ ```ruby
55
+ gem "activeadmin", "4.0.0.beta19"
56
+ gem "tailwindcss-rails", "~> 4.4.0"
57
+ ```
58
+
59
+ ### 2. Tailwind Input
60
+
61
+ ```css
62
+ /* app/assets/stylesheets/active_admin.tailwind.css */
63
+ @import "tailwindcss";
64
+ @config "../../../tailwind-active_admin.config.mjs";
65
+ ```
66
+
67
+ ### 3. Tailwind Config
68
+
69
+ ```javascript
70
+ // tailwind-active_admin.config.mjs
71
+ import { execSync } from "child_process";
72
+ import activeAdminPlugin from "@activeadmin/activeadmin/plugin";
73
+
74
+ const activeAdminPath = execSync("bundle show activeadmin", {
75
+ encoding: "utf-8"
76
+ }).trim();
77
+
78
+ export default {
79
+ content: [
80
+ `${activeAdminPath}/vendor/javascript/flowbite.js`,
81
+ `${activeAdminPath}/plugin.js`,
82
+ `${activeAdminPath}/app/views/**/*.{arb,erb,html,rb}`,
83
+ "./app/admin/**/*.{arb,erb,html,rb}",
84
+ "./app/views/active_admin/**/*.{arb,erb,html,rb}",
85
+ "./app/views/admin/**/*.{arb,erb,html,rb}",
86
+ "./app/views/layouts/active_admin*.{erb,html}",
87
+ "./app/javascript/**/*.js"
88
+ ],
89
+ darkMode: "selector",
90
+ plugins: [activeAdminPlugin]
91
+ };
92
+ ```
93
+
94
+ ### 4. Build Tasks
95
+
96
+ ```ruby
97
+ # lib/tasks/active_admin.rake
98
+ namespace :active_admin do
99
+ desc "Build Active Admin Tailwind stylesheets"
100
+ task build: :environment do
101
+ command = [
102
+ Rails.root.join("bin/tailwindcss").to_s,
103
+ "-i", Rails.root.join("app/assets/stylesheets/active_admin.tailwind.css").to_s,
104
+ "-o", Rails.root.join("app/assets/builds/active_admin.css").to_s,
105
+ "-m"
106
+ ]
107
+
108
+ system(*command, exception: true)
109
+ end
110
+ end
111
+ ```
112
+
113
+ ### 5. Tailwind CLI Binstub
114
+
115
+ ```bash
116
+ bundle binstubs tailwindcss-ruby --force
117
+ ```
118
+
119
+ ## Notes for Extension Gems
120
+
121
+ When updating other ActiveAdmin extension gems:
122
+ - Keep all JS/CSS inside the gem or npm package; do not copy large files into host apps.
123
+ - Add only a thin import to the host app (`import "your_gem"`).
124
+ - Use Tailwind v4 `@import` + `@config` and ESM config files.
125
+ - Avoid jQuery-based plugins or require them explicitly.