activeadmin-tom_select 4.1.0 → 4.1.2

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/commands/fix-tests.md +1 -1
  3. data/.github/workflows/ci.yml +13 -11
  4. data/.github/workflows/npm-publish.yml +3 -3
  5. data/.gitignore +1 -0
  6. data/.rubocop.yml +1 -1
  7. data/AGENTS.md +2 -2
  8. data/CHANGELOG.md +19 -1
  9. data/Gemfile.lock +85 -79
  10. data/README.md +20 -18
  11. data/activeadmin-tom_select.gemspec +3 -3
  12. data/docs/guide-update-your-app.md +198 -25
  13. data/docs/update-tom-select.md +322 -158
  14. data/gemfiles/rails_7.x_active_admin_4.x.gemfile.lock +11 -11
  15. data/gemfiles/rails_8.x_active_admin_4.x.gemfile.lock +66 -64
  16. data/lib/activeadmin/inputs/filters/searchable_select_input.rb +5 -12
  17. data/lib/activeadmin/inputs/filters/tom_select_input.rb +19 -0
  18. data/lib/activeadmin/inputs/searchable_select_input.rb +5 -11
  19. data/lib/activeadmin/inputs/tom_select_input.rb +16 -0
  20. data/lib/activeadmin/tom_select/engine.rb +3 -1
  21. data/lib/activeadmin/tom_select/option_collection.rb +1 -1
  22. data/lib/activeadmin/tom_select/resource_dsl_extension.rb +1 -1
  23. data/lib/activeadmin/tom_select/resource_extension.rb +1 -1
  24. data/lib/activeadmin/tom_select/select_input_extension.rb +39 -16
  25. data/lib/activeadmin/tom_select/version.rb +2 -2
  26. data/lib/activeadmin/tom_select.rb +3 -3
  27. data/lib/generators/active_admin/tom_select/install/install_generator.rb +5 -5
  28. data/npm-package/package-lock.json +2 -2
  29. data/npm-package/package.json +2 -2
  30. data/npm-package/src/index.js +1 -3
  31. data/npm-package/src/tom-select-tailwind.css +26 -20
  32. data/sonar-project.properties +14 -13
  33. data/spec/features/ajax_false_input_spec.rb +74 -0
  34. data/spec/features/end_to_end_spec.rb +33 -20
  35. data/spec/features/form_input_spec.rb +2 -2
  36. data/spec/features/inline_ajax_setting_spec.rb +1 -1
  37. data/spec/internal/Gemfile.lock +1 -1
  38. data/spec/internal/app/admin/articles.rb +28 -0
  39. data/spec/internal/app/admin/option_values.rb +6 -6
  40. data/spec/internal/app/admin/posts.rb +4 -4
  41. data/spec/internal/app/admin/test_ajax_false.rb +18 -0
  42. data/spec/internal/app/admin/variants.rb +2 -2
  43. data/spec/internal/app/assets/config/manifest.js +2 -1
  44. data/spec/internal/app/assets/stylesheets/active_admin.tailwind.css +1 -1
  45. data/spec/internal/app/assets/stylesheets/application.tailwind.css +0 -15
  46. data/spec/internal/app/javascript/active_admin.js +2 -4
  47. data/spec/internal/app/models/option_value.rb +8 -0
  48. data/spec/internal/db/schema.rb +3 -1
  49. data/spec/internal/db/seeds.rb +4 -7
  50. data/spec/internal/package-lock.json +3 -3
  51. data/spec/internal/package.json +1 -1
  52. data/spec/internal/yarn.lock +1 -1
  53. data/spec/support/reset_settings.rb +1 -1
  54. metadata +7 -2
@@ -1,184 +1,348 @@
1
- # Tom Select Migration Summary
1
+ # Tom Select Migration Guide for ActiveAdmin 4
2
2
 
3
3
  ## Overview
4
- We successfully migrated ActiveAdmin Searchable Select from Select2 (jQuery-based) to Tom Select (vanilla JS, TypeScript-ready) with Tailwind CSS 4 support.
4
+ This guide documents the complete migration from ActiveAdmin Searchable Select (Select2-based) to Tom Select (vanilla JS, no jQuery) with Tailwind CSS 4 support.
5
5
 
6
- ## Key Changes Made
6
+ ## Key Benefits of Migration
7
7
 
8
- ### 1. Package Dependencies
9
- **Removed:**
10
- - `jquery` peer dependency
11
- - `select2` peer dependency
8
+ 1. **No jQuery Dependency**: Tom Select is pure vanilla JavaScript, reducing bundle size
9
+ 2. **Modern JavaScript**: ES6+ modules, better performance
10
+ 3. **ActiveAdmin 4 Compatible**: Full support for latest ActiveAdmin
11
+ 4. **Smaller Bundle**: Removed jQuery and Select2 dependencies
12
12
 
13
- **Added:**
14
- - `tom-select: ^2.4.3` peer dependency
13
+ ## Installation Steps
15
14
 
16
- ### 2. JavaScript Changes
15
+ ### 1. Update Gemfile
17
16
 
18
- #### `/src/index.js`
19
- - Complete rewrite without jQuery dependency
20
- - Uses native `fetch()` for AJAX requests
21
- - Tom Select initialization with proper option mapping
22
- - Handles Select2 → Tom Select option conversion (id/text → valueField/labelField)
17
+ ```ruby
18
+ # Remove old gem
19
+ # gem 'rs-activeadmin-searchable_select', github: 'glebtv/activeadmin-searchable_select'
23
20
 
24
- #### Removed Legacy Files:
25
- - `/src/searchable_select/init.js` - Legacy compatibility file removed
26
- - `/spec/internal/inject-jquery.js` - jQuery injection hack removed
27
- - `/spec/internal/build_activeadmin_css.js` - Old CSS build hack removed
28
-
29
- ### 3. CSS/Styling Changes
21
+ # Add new gem (from RubyGems)
22
+ gem 'activeadmin-tom_select'
23
+ ```
30
24
 
31
- #### New Files Created:
32
- - `/src/tom-select-tailwind.css` - Complete Tom Select styles with Tailwind classes (consolidated single file)
25
+ ### 2. Update package.json
33
26
 
34
- #### Package Exports Updated:
35
27
  ```json
36
- "exports": {
37
- "./tom-select-tailwind": "./src/tom-select-tailwind.css"
28
+ {
29
+ "dependencies": {
30
+ // Remove these:
31
+ // "jquery": "^3.7.1",
32
+ // "select2": "^4.1.0-rc.0",
33
+ // "@rocket-sensei/activeadmin-searchable_select": "^4.0.1",
34
+
35
+ // Add these:
36
+ "tom-select": "^2.4.3",
37
+ "activeadmin-tom_select": "^4.1.0"
38
+ }
38
39
  }
39
40
  ```
40
41
 
41
- #### Removed Files:
42
- - `/src/searchable_select.css` - Consolidated into tom-select-tailwind.css
43
- - All legacy Select2 CSS imports
42
+ ### 3. Update JavaScript (app/js/active_admin.js)
43
+
44
+ ```javascript
45
+ // Import ActiveAdmin core first - includes all features and Rails UJS
46
+ import "@activeadmin/activeadmin";
47
+
48
+ // Import Tom Select
49
+ import TomSelect from 'tom-select';
50
+ window.TomSelect = TomSelect;
51
+
52
+ // Import and setup ActiveAdmin Tom Select
53
+ import { setupAutoInit, initSearchableSelects } from 'activeadmin-tom_select';
54
+ window.initSearchableSelects = initSearchableSelects;
55
+ setupAutoInit();
56
+
57
+ console.log('ActiveAdmin loaded with Tom Select');
58
+ ```
59
+
60
+ **Important**: Do NOT include jQuery - it's no longer needed!
61
+
62
+ ### 4. Configure CSS (app/assets/stylesheets/active_admin.tailwind.css)
63
+
64
+ **CRITICAL**: Use Tailwind's @import syntax instead of @tailwind directives when importing vendor CSS:
65
+
66
+ ```css
67
+ /* Use @import syntax for proper processing order */
68
+ @import "tailwindcss/base";
69
+ @import "tailwindcss/components";
70
+ @import "tailwindcss/utilities";
71
+
72
+ /* Import vendor CSS */
73
+ @import 'tom-select/dist/css/tom-select.css';
74
+ @import 'activeadmin-tom_select/src/tom-select-tailwind.css';
75
+
76
+ /* Your custom styles here */
77
+ ```
78
+
79
+ **Why @import instead of @tailwind?**
80
+ - Tailwind only processes imports at the top of the file
81
+ - Using @tailwind directives with vendor CSS imports can cause processing issues
82
+ - The @import syntax ensures proper CSS cascade order
83
+
84
+ ### 5. Update Build Configuration
85
+
86
+ #### esbuild.config.js
87
+ ```javascript
88
+ #!/usr/bin/env node
89
+ const esbuild = require('esbuild');
90
+ const path = require('path');
91
+
92
+ const config = {
93
+ entryPoints: [
94
+ 'app/js/active_admin.js'
95
+ ],
96
+ bundle: true,
97
+ sourcemap: true,
98
+ format: 'esm',
99
+ outdir: 'app/assets/builds',
100
+ publicPath: '/assets',
101
+ loader: {
102
+ '.js': 'js',
103
+ '.jsx': 'jsx',
104
+ },
105
+ define: {
106
+ 'global': 'window'
107
+ }
108
+ };
109
+
110
+ // Build logic here...
111
+ ```
112
+
113
+ #### tailwind-active_admin.config.js
114
+ ```javascript
115
+ const execSync = require("node:child_process").execSync;
116
+ const activeAdminPlugin = require('@activeadmin/activeadmin/plugin');
117
+
118
+ const activeAdminPath = execSync("bundle show activeadmin", {
119
+ encoding: "utf-8",
120
+ }).trim();
121
+
122
+ module.exports = {
123
+ content: [
124
+ `${activeAdminPath}/vendor/javascript/flowbite.js`,
125
+ `${activeAdminPath}/plugin.js`,
126
+ `${activeAdminPath}/app/views/**/*.{arb,erb,html,rb}`,
127
+ "./app/admin/**/*.{arb,erb,html,rb}",
128
+ "./app/views/active_admin/**/*.{arb,erb,html,rb}",
129
+ "./app/views/admin/**/*.{arb,erb,html,rb}",
130
+ "./app/js/**/*.{js,jsx}",
131
+ "./app/views/**/*.{erb,html}"
132
+ ],
133
+ darkMode: "selector",
134
+ plugins: [activeAdminPlugin],
135
+ safelist: [
136
+ // Tom Select classes
137
+ 'tom-select-input',
138
+ { pattern: /^ts-/ },
139
+ // Other ActiveAdmin dynamic classes
140
+ 'panel-collapsed',
141
+ 'status-tag',
142
+ // Add your custom classes here
143
+ ]
144
+ };
145
+ ```
146
+
147
+ ### 6. Create Rake Task for CSS Building (lib/tasks/active_admin.rake)
148
+
149
+ ```ruby
150
+ namespace :active_admin do
151
+ desc "Build Active Admin Tailwind stylesheets"
152
+ task build: :environment do
153
+ command = [
154
+ "npx", "tailwindcss",
155
+ "-i", Rails.root.join("app/assets/stylesheets/active_admin.tailwind.css").to_s,
156
+ "-o", Rails.root.join("app/assets/builds/active_admin.css").to_s,
157
+ "-c", Rails.root.join("tailwind-active_admin.config.js").to_s,
158
+ "-m"
159
+ ]
160
+
161
+ puts "Building Active Admin CSS..."
162
+ system(*command, exception: true)
163
+ end
164
+
165
+ desc "Watch Active Admin Tailwind stylesheets"
166
+ task watch: :environment do
167
+ command = [
168
+ "npx", "tailwindcss",
169
+ "--watch",
170
+ "-i", Rails.root.join("app/assets/stylesheets/active_admin.tailwind.css").to_s,
171
+ "-o", Rails.root.join("app/assets/builds/active_admin.css").to_s,
172
+ "-c", Rails.root.join("tailwind-active_admin.config.js").to_s,
173
+ "-m"
174
+ ]
175
+
176
+ puts "Watching Active Admin CSS..."
177
+ system(*command)
178
+ end
179
+ end
180
+
181
+ Rake::Task["assets:precompile"].enhance(["active_admin:build"]) if Rake::Task.task_defined?("assets:precompile")
182
+ ```
44
183
 
45
- ### 4. Build Process (Tailwind 3)
184
+ ### 7. Update package.json Scripts
46
185
 
47
- #### New Test App Structure:
186
+ ```json
187
+ {
188
+ "scripts": {
189
+ "build:js": "node esbuild.config.js",
190
+ "build:css": "bundle exec rake active_admin:build",
191
+ "build": "npm run build:js && npm run build:css",
192
+ "watch:js": "node esbuild.config.js --watch",
193
+ "watch:css": "bundle exec rake active_admin:watch",
194
+ "dev": "npm run watch:js & npm run watch:css"
195
+ }
196
+ }
48
197
  ```
49
- /spec/internal/
50
- ├── tailwind.config.js # Tailwind 3 config
51
- ├── app/assets/stylesheets/
52
- │ └── active_admin.tailwind.css # Main CSS entry with Tom Select styles
53
- ├── build-css.js # Node script for CSS build
54
- ├── esbuild.config.js # JavaScript build config
55
- └── package.json # Simplified scripts
198
+
199
+ ## Migration Cleanup
200
+
201
+ ### Files to Remove
202
+ - `inject-jquery.js` - No longer needed
203
+ - Any Select2-specific CSS files
204
+ - jQuery-specific initialization code
205
+
206
+ ### Update Initializers
207
+ ```ruby
208
+ # config/initializers/activeadmin_tom_select.rb (rename from activeadmin_searchable_select.rb)
209
+ require 'activeadmin-tom_select' if defined?(ActiveAdmin)
56
210
  ```
57
211
 
58
- #### Build Commands:
59
- - `npm run build:css` → Runs Tailwind CSS via `build-css.js`
60
- - `npm run build:js` Runs esbuild for JavaScript bundling
61
- - `npm run build` Builds both JS and CSS
212
+ ### Remove jQuery References
213
+ - Remove jQuery from package.json
214
+ - Remove inject-jquery.js from esbuild config
215
+ - Update any custom JavaScript to use vanilla JS instead of jQuery
216
+
217
+ ## Usage in ActiveAdmin
218
+
219
+ The usage remains the same - no changes needed in your admin files:
220
+
221
+ ```ruby
222
+ ActiveAdmin.register User do
223
+ # In forms
224
+ form do |f|
225
+ f.input :company, as: :searchable_select
226
+ f.input :role, as: :searchable_select,
227
+ ajax: { resource: Role }
228
+ end
229
+
230
+ # In filters
231
+ filter :company, as: :searchable_select
232
+ filter :created_by, as: :searchable_select,
233
+ ajax: { resource: User }
234
+ end
235
+ ```
62
236
 
63
- #### CSS Build Process Fix:
64
- - Integrated comprehensive ActiveAdmin styles from docs/tailwind-4 setup
65
- - Included all ActiveAdmin component styles (panels, data tables, filters, forms, etc.)
66
- - Tom Select styles are imported at the end of the CSS file
67
- - All styles are properly processed by Tailwind CSS and included in the final build
68
- - Fixed styling issues that were breaking ActiveAdmin UI components
237
+ ## CSS Class Changes for Custom Styling
69
238
 
70
- ### 5. Test Updates
239
+ If you have custom CSS, update these selectors:
71
240
 
72
- #### CSS Class Changes:
73
- | Select2 | Tom Select |
74
- |---------|------------|
75
- | `.select2-container` | `.ts-wrapper` or `.ts-control` |
241
+ | Old (Select2) | New (Tom Select) |
242
+ |--------------|------------------|
243
+ | `.select2-container` | `.ts-wrapper` |
76
244
  | `.select2-dropdown` | `.ts-dropdown` |
77
245
  | `.select2-results__option` | `.ts-dropdown .option` |
78
- | `.select2-selection` | `.ts-control .item` |
246
+ | `.select2-selection` | `.ts-control` |
79
247
  | `.select2-search__field` | `.ts-control input` |
80
248
 
81
- #### Helper Method Updates in Tests:
82
- - `expand_select_box`: Now clicks `.ts-control`
83
- - `enter_search_term`: Targets `.ts-control input`
84
- - `select_box_items`: Finds `.ts-dropdown .option`
85
- - `finished_all_ajax_requests`: No longer uses jQuery.active
86
-
87
- ### 6. Documentation Structure
88
-
89
- #### Example Files (with credits):
90
- `/docs/tailwind-4/` - Example Tailwind 4 setup files
91
- - Credit: https://gist.github.com/amkisko/af1b2f7dc4f0f941437ea16400277864
92
-
93
- ### 7. Migration Path for Users
94
-
95
- Users will need to:
96
- 1. Update their `Gemfile` to use the new version
97
- 2. Remove jQuery and Select2 dependencies
98
- 3. Add Tom Select dependency: `npm install tom-select@^2.4.3`
99
- 4. Update their CSS imports to use Tom Select styles
100
- 5. If using Tailwind, import our tom-select-tailwind styles
101
- 6. Update any custom JavaScript that referenced Select2 APIs
102
-
103
- ### 8. Breaking Changes
104
-
105
- 1. **No jQuery Required**: Apps no longer need jQuery for searchable selects
106
- 2. **CSS Classes Changed**: All Select2 classes replaced with Tom Select equivalents
107
- 3. **JavaScript API Different**: Tom Select has different initialization and options
108
- 4. **Legacy init.js Removed**: No backward compatibility layer
109
-
110
- ### 9. Benefits of Migration
111
-
112
- 1. **No jQuery Dependency**: Reduces bundle size significantly
113
- 2. **Modern JavaScript**: ES6+ modules, TypeScript support
114
- 3. **Better Performance**: Tom Select is lighter and faster
115
- 4. **Tailwind 4 Ready**: Native Tailwind utility classes
116
- 5. **Future-Proof**: Active development, modern architecture
117
-
118
- ### 10. Files to Commit
119
-
120
- **Modified:**
121
- - `/package.json` - Updated dependencies and exports
122
- - `/src/index.js` - Rewritten for Tom Select
123
- - `/spec/features/*.rb` - Updated test selectors
124
- - `/spec/internal/package.json` - Removed jQuery, added Tom Select
125
- - `/spec/internal/app/js/active_admin.js` - Tom Select import
126
-
127
- **Created:**
128
- - `/src/tom-select-tailwind.css`
129
- - `/src/searchable_select.css`
130
- - `/spec/internal/config/tailwind-active_admin.config.js`
131
- - `/spec/internal/app/assets/stylesheets/active_admin.tailwind.css`
132
- - `/spec/internal/lib/tasks/active_admin.rake`
133
-
134
- **Deleted:**
135
- - `/src/searchable_select/` directory
136
- - `/spec/internal/inject-jquery.js`
137
- - `/spec/internal/build_activeadmin_css.js`
138
- - `/spec/internal/tailwind-active_admin.config.js` (old location)
139
-
140
- ### 11. Testing Status
141
-
142
- ✅ **Tests Fixed and Working:**
143
- - All JavaScript initialization tests passing
144
- - Tom Select properly initializes in test environment
145
- - Clear button functionality working for all searchable selects
146
- - Assets properly served in test environment
147
-
148
- **Test Environment Setup:**
149
- - Assets must be built: `npm run build:js` and `bundle exec rake active_admin:build`
150
- - Assets copied to public directory for test environment:
151
- ```bash
152
- mkdir -p public/javascripts public/stylesheets
153
- cp app/assets/builds/active_admin.js public/javascripts/
154
- cp app/assets/builds/active_admin.css public/stylesheets/
155
- ```
156
- - Tests use Playwright driver for modern JavaScript support
157
-
158
- **Remaining Test Issues (4 failures):**
159
- - AJAX options not loading properly in some integration tests
160
- - Dropdown visibility detection needs adjustment for Tom Select
161
- - Search input focus/activation needs refinement
162
-
163
- ### 12. Key Implementation Details
164
-
165
- #### Clear Button Feature:
166
- - All searchable selects are clearable by default
167
- - Implemented via `data-clearable="true"` attribute
168
- - Tom Select's `clear_button` plugin automatically added
169
- - Clear button positioned at `right: 2rem` for better UX
170
- - Can be disabled by setting `clearable: false` in Ruby options
171
-
172
- #### JavaScript Module Export:
173
- - Main module exports both `setupAutoInit` and `initSearchableSelects`
174
- - Functions made globally available in test environment via `window` object
175
- - Auto-initialization on DOMContentLoaded, Turbo load, and has_many_add events
176
-
177
- ### 13. Next Steps
178
-
179
- 1. Complete test fixes for remaining failures (mostly done)
180
- 2. Update README.md with new installation instructions
181
- 3. Create migration guide at `/docs/guide-update-your-app.md`
182
- 4. Version bump to 5.0.0 (major version due to breaking changes)
183
- 5. Test with real ActiveAdmin applications
184
- 6. Consider adding TypeScript definitions for better IDE support
249
+ ## Troubleshooting
250
+
251
+ ### Issue: Tom Select not initializing
252
+ **Solution**: Ensure that:
253
+ - `window.TomSelect` is defined in browser console
254
+ - `setupAutoInit()` is called after importing
255
+ - No JavaScript errors in console
256
+
257
+ ### Issue: Styles not loading
258
+ **Solution**:
259
+ - Verify CSS imports are using @import syntax, not @tailwind
260
+ - Check that tom-select CSS is in node_modules
261
+ - Ensure Tailwind processes the CSS file
262
+
263
+ ### Issue: "elements.forEach is not a function" error
264
+ **Solution**: The `initSearchableSelects` function expects a NodeList or array, not a jQuery object. Use:
265
+ ```javascript
266
+ // Correct - vanilla JS
267
+ const elements = document.querySelectorAll('.searchable-select-input');
268
+
269
+ // Incorrect - jQuery object
270
+ const elements = $('.searchable-select-input');
271
+ ```
272
+
273
+ ### Issue: Build errors with missing files
274
+ **Solution**: Run `npm install` and `bundle install` to ensure all dependencies are installed
275
+
276
+ ## Performance Improvements
277
+
278
+ After migration, you should see:
279
+ - **Reduced bundle size**: ~200KB smaller without jQuery
280
+ - **Faster initialization**: Tom Select is more performant
281
+ - **Better memory usage**: No jQuery overhead
282
+ - **Cleaner code**: Pure ES6 modules
283
+
284
+ ## Complete Example Configuration
285
+
286
+ For a working example, here's the minimal setup:
287
+
288
+ **Gemfile:**
289
+ ```ruby
290
+ gem 'activeadmin', '~> 4.0.0.beta'
291
+ gem 'activeadmin-tom_select'
292
+ ```
293
+
294
+ **package.json:**
295
+ ```json
296
+ {
297
+ "dependencies": {
298
+ "@activeadmin/activeadmin": "^4.0.0-beta16",
299
+ "tom-select": "^2.4.3",
300
+ "activeadmin-tom_select": "^4.1.0"
301
+ }
302
+ }
303
+ ```
304
+
305
+ **app/js/active_admin.js:**
306
+ ```javascript
307
+ import "@activeadmin/activeadmin";
308
+ import TomSelect from 'tom-select';
309
+ import { setupAutoInit, initSearchableSelects } from 'activeadmin-tom_select';
310
+
311
+ window.TomSelect = TomSelect;
312
+ window.initSearchableSelects = initSearchableSelects;
313
+ setupAutoInit();
314
+ ```
315
+
316
+ **app/assets/stylesheets/active_admin.tailwind.css:**
317
+ ```css
318
+ @import "tailwindcss/base";
319
+ @import "tailwindcss/components";
320
+ @import "tailwindcss/utilities";
321
+ @import 'tom-select/dist/css/tom-select.css';
322
+ @import 'activeadmin-tom_select/src/tom-select-tailwind.css';
323
+ ```
324
+
325
+ ## Benefits Achieved
326
+
327
+ 1. **No jQuery Required**: Completely removed jQuery dependency
328
+ 2. **Modern JavaScript**: Using ES6 modules and vanilla JS
329
+ 3. **Smaller Bundle**: Reduced JavaScript bundle by ~200KB
330
+ 4. ✅ **Better Performance**: Faster initialization and runtime
331
+ 5. **Future-Proof**: Tom Select is actively maintained
332
+ 6. ✅ **ActiveAdmin 4 Ready**: Full compatibility with latest version
333
+
334
+ ## Migration Checklist
335
+
336
+ - [ ] Update Gemfile with `activeadmin-tom_select`
337
+ - [ ] Run `bundle install`
338
+ - [ ] Update package.json dependencies
339
+ - [ ] Run `npm install`
340
+ - [ ] Update JavaScript imports in active_admin.js
341
+ - [ ] Update CSS to use @import syntax
342
+ - [ ] Create/update rake tasks for CSS building
343
+ - [ ] Update build scripts in package.json
344
+ - [ ] Remove jQuery and Select2 dependencies
345
+ - [ ] Test all searchable selects in development
346
+ - [ ] Update any custom CSS selectors
347
+ - [ ] Remove old initialization files
348
+ - [ ] Deploy and test in production
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- activeadmin-tom_select (4.1.0)
4
+ activeadmin-tom_select (4.1.2)
5
5
  activeadmin (>= 3.0, < 5)
6
6
  ransack (>= 1.8, < 5)
7
7
 
@@ -148,7 +148,7 @@ GEM
148
148
  formtastic (5.0.0)
149
149
  actionpack (>= 6.0.0)
150
150
  formtastic_i18n (0.7.0)
151
- globalid (1.2.1)
151
+ globalid (1.3.0)
152
152
  activesupport (>= 6.1)
153
153
  has_scope (0.8.2)
154
154
  actionpack (>= 5.2)
@@ -165,7 +165,7 @@ GEM
165
165
  pp (>= 0.6.0)
166
166
  rdoc (>= 4.0.0)
167
167
  reline (>= 0.4.2)
168
- json (2.13.2)
168
+ json (2.15.0)
169
169
  kaminari (1.2.2)
170
170
  activesupport (>= 4.1.0)
171
171
  kaminari-actionview (= 1.2.2)
@@ -189,12 +189,12 @@ GEM
189
189
  net-imap
190
190
  net-pop
191
191
  net-smtp
192
- marcel (1.0.4)
192
+ marcel (1.1.0)
193
193
  matrix (0.4.3)
194
194
  mime-types (3.7.0)
195
195
  logger
196
196
  mime-types-data (~> 3.2025, >= 3.2025.0507)
197
- mime-types-data (3.2025.0909)
197
+ mime-types-data (3.2025.0924)
198
198
  mini_mime (1.1.5)
199
199
  minitest (5.25.5)
200
200
  mutex_m (0.3.0)
@@ -222,7 +222,7 @@ GEM
222
222
  prettyprint
223
223
  prettyprint (0.2.0)
224
224
  prism (1.5.1)
225
- propshaft (1.2.1)
225
+ propshaft (1.3.1)
226
226
  actionpack (>= 7.0.0)
227
227
  activesupport (>= 7.0.0)
228
228
  rack
@@ -272,9 +272,9 @@ GEM
272
272
  zeitwerk (~> 2.6)
273
273
  rainbow (3.1.1)
274
274
  rake (13.3.0)
275
- ransack (4.3.0)
276
- activerecord (>= 6.1.5)
277
- activesupport (>= 6.1.5)
275
+ ransack (4.4.0)
276
+ activerecord (>= 7.1)
277
+ activesupport (>= 7.1)
278
278
  i18n
279
279
  rdoc (6.14.2)
280
280
  erb
@@ -301,7 +301,7 @@ GEM
301
301
  rspec-expectations (~> 3.13)
302
302
  rspec-mocks (~> 3.13)
303
303
  rspec-support (~> 3.13)
304
- rspec-support (3.13.5)
304
+ rspec-support (3.13.6)
305
305
  rspec_junit_formatter (0.6.0)
306
306
  rspec-core (>= 2, < 4, != 2.12.0)
307
307
  rubocop (1.80.2)
@@ -329,7 +329,7 @@ GEM
329
329
  simplecov_json_formatter (~> 0.1)
330
330
  simplecov-html (0.13.2)
331
331
  simplecov_json_formatter (0.1.4)
332
- sqlite3 (2.7.3-x86_64-linux-gnu)
332
+ sqlite3 (2.7.4-x86_64-linux-gnu)
333
333
  stringio (3.1.7)
334
334
  thor (1.4.0)
335
335
  timeout (0.4.3)