activeadmin-tom_select 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.
Files changed (196) hide show
  1. checksums.yaml +7 -0
  2. data/.actrc +20 -0
  3. data/.claude/commands/fix-tests.md +203 -0
  4. data/.github/workflows/ci.yml +174 -0
  5. data/.github/workflows/npm-publish.yml +50 -0
  6. data/.gitignore +35 -0
  7. data/.npmignore +58 -0
  8. data/.rspec +1 -0
  9. data/.rubocop.yml +75 -0
  10. data/.yardopts +2 -0
  11. data/AGENTS.md +39 -0
  12. data/Appraisals +9 -0
  13. data/CHANGELOG.md +64 -0
  14. data/CLAUDE.md +157 -0
  15. data/Gemfile +12 -0
  16. data/Gemfile.lock +368 -0
  17. data/LICENSE.txt +25 -0
  18. data/README.md +483 -0
  19. data/Rakefile +4 -0
  20. data/activeadmin-tom_select.gemspec +43 -0
  21. data/bin/rspec +17 -0
  22. data/config/database.yml +16 -0
  23. data/docs/activeadmin-4-detailed-reference.md +932 -0
  24. data/docs/activeadmin-4-gem-migration-guide.md +313 -0
  25. data/docs/combustion.md +213 -0
  26. data/docs/fail.png +0 -0
  27. data/docs/guide-update-your-app.md +283 -0
  28. data/docs/normal.png +0 -0
  29. data/docs/propshaft-readme.md +320 -0
  30. data/docs/propshaft-upgrade.md +484 -0
  31. data/docs/setup-activeadmin-app.md +552 -0
  32. data/docs/setup-activeadmin-gem.md +535 -0
  33. data/docs/tailwind/blog-page.md +341 -0
  34. data/docs/tailwind/upgrade-guide-enhanced.md +438 -0
  35. data/docs/tailwind/upgrade-guide.md +416 -0
  36. data/docs/tailwind-4/active_admin.rake +38 -0
  37. data/docs/tailwind-4/active_admin.tailwind.css +415 -0
  38. data/docs/tailwind-4/tailwind-active_admin.config.js +18 -0
  39. data/docs/test-app-change.md +154 -0
  40. data/docs/test-environment-fixes.md +58 -0
  41. data/docs/update-tom-select.md +184 -0
  42. data/docs/upload-system.md +225 -0
  43. data/gemfiles/rails_7.x_active_admin_4.x.gemfile +10 -0
  44. data/gemfiles/rails_7.x_active_admin_4.x.gemfile.lock +377 -0
  45. data/gemfiles/rails_8.x_active_admin_4.x.gemfile +10 -0
  46. data/gemfiles/rails_8.x_active_admin_4.x.gemfile.lock +372 -0
  47. data/lefthook.yml +17 -0
  48. data/lib/activeadmin/inputs/filters/searchable_select_input.rb +19 -0
  49. data/lib/activeadmin/inputs/searchable_select_input.rb +16 -0
  50. data/lib/activeadmin/tom_select/engine.rb +17 -0
  51. data/lib/activeadmin/tom_select/option_collection.rb +128 -0
  52. data/lib/activeadmin/tom_select/resource_dsl_extension.rb +56 -0
  53. data/lib/activeadmin/tom_select/resource_extension.rb +10 -0
  54. data/lib/activeadmin/tom_select/select_input_extension.rb +168 -0
  55. data/lib/activeadmin/tom_select/version.rb +5 -0
  56. data/lib/activeadmin/tom_select.rb +20 -0
  57. data/lib/activeadmin-tom_select.rb +5 -0
  58. data/lib/generators/active_admin/tom_select/install/install_generator.rb +180 -0
  59. data/npm-package/package-lock.json +51 -0
  60. data/npm-package/package.json +43 -0
  61. data/npm-package/src/index.js +153 -0
  62. data/npm-package/src/tom-select-tailwind.css +392 -0
  63. data/sonar-project.properties +25 -0
  64. data/spec/features/ajax_params_spec.rb +31 -0
  65. data/spec/features/asset_pipeline_diagnostic_spec.rb +155 -0
  66. data/spec/features/end_to_end_spec.rb +273 -0
  67. data/spec/features/filter_input_spec.rb +144 -0
  68. data/spec/features/form_input_spec.rb +122 -0
  69. data/spec/features/inline_ajax_setting_spec.rb +26 -0
  70. data/spec/features/input_errors_spec.rb +76 -0
  71. data/spec/features/input_html_options_spec.rb +30 -0
  72. data/spec/features/options_dsl_spec.rb +230 -0
  73. data/spec/features/production_build_spec.rb +108 -0
  74. data/spec/internal/.node-version +1 -0
  75. data/spec/internal/Gemfile +43 -0
  76. data/spec/internal/Gemfile.lock +333 -0
  77. data/spec/internal/Procfile.dev +3 -0
  78. data/spec/internal/README.md +24 -0
  79. data/spec/internal/Rakefile +6 -0
  80. data/spec/internal/app/admin/categories.rb +26 -0
  81. data/spec/internal/app/admin/dashboard.rb +29 -0
  82. data/spec/internal/app/admin/option_types.rb +19 -0
  83. data/spec/internal/app/admin/option_values.rb +30 -0
  84. data/spec/internal/app/admin/posts.rb +27 -0
  85. data/spec/internal/app/admin/products.rb +22 -0
  86. data/spec/internal/app/admin/rgb_colors.rb +25 -0
  87. data/spec/internal/app/admin/tag_names.rb +21 -0
  88. data/spec/internal/app/admin/test_ajax_params_category.rb +10 -0
  89. data/spec/internal/app/admin/test_ajax_params_post.rb +20 -0
  90. data/spec/internal/app/admin/test_form_post_class.rb +7 -0
  91. data/spec/internal/app/admin/test_form_post_custom.rb +11 -0
  92. data/spec/internal/app/admin/test_form_post_resource.rb +11 -0
  93. data/spec/internal/app/admin/test_form_post_resource_custom.rb +12 -0
  94. data/spec/internal/app/admin/test_inline_ajax_post.rb +9 -0
  95. data/spec/internal/app/admin/test_input_html_post.rb +11 -0
  96. data/spec/internal/app/admin/test_posts_display_text.rb +9 -0
  97. data/spec/internal/app/admin/test_posts_filter.rb +9 -0
  98. data/spec/internal/app/admin/test_posts_named.rb +9 -0
  99. data/spec/internal/app/admin/test_posts_pagination.rb +9 -0
  100. data/spec/internal/app/admin/test_posts_payload_lambda.rb +11 -0
  101. data/spec/internal/app/admin/test_posts_payload_proc.rb +9 -0
  102. data/spec/internal/app/admin/test_posts_scope_lambda.rb +8 -0
  103. data/spec/internal/app/admin/test_posts_scope_params.rb +8 -0
  104. data/spec/internal/app/admin/test_posts_scope_user.rb +8 -0
  105. data/spec/internal/app/admin/test_posts_text_attr.rb +5 -0
  106. data/spec/internal/app/admin/users.rb +23 -0
  107. data/spec/internal/app/admin/variants.rb +31 -0
  108. data/spec/internal/app/assets/config/manifest.js +2 -0
  109. data/spec/internal/app/assets/images/.keep +0 -0
  110. data/spec/internal/app/assets/stylesheets/active_admin.tailwind.css +16 -0
  111. data/spec/internal/app/assets/stylesheets/application.tailwind.css +15 -0
  112. data/spec/internal/app/controllers/application_controller.rb +9 -0
  113. data/spec/internal/app/controllers/concerns/.keep +0 -0
  114. data/spec/internal/app/helpers/application_helper.rb +2 -0
  115. data/spec/internal/app/javascript/active_admin.js +19 -0
  116. data/spec/internal/app/javascript/application.js +2 -0
  117. data/spec/internal/app/jobs/application_job.rb +7 -0
  118. data/spec/internal/app/mailers/application_mailer.rb +4 -0
  119. data/spec/internal/app/models/admin_user.rb +9 -0
  120. data/spec/internal/app/models/application_record.rb +3 -0
  121. data/spec/internal/app/models/article.rb +12 -0
  122. data/spec/internal/app/models/category.rb +12 -0
  123. data/spec/internal/app/models/color.rb +9 -0
  124. data/spec/internal/app/models/concerns/.keep +0 -0
  125. data/spec/internal/app/models/internal/tag_name.rb +14 -0
  126. data/spec/internal/app/models/internal_tag_name.rb +11 -0
  127. data/spec/internal/app/models/option_type.rb +12 -0
  128. data/spec/internal/app/models/option_value.rb +4 -0
  129. data/spec/internal/app/models/post.rb +15 -0
  130. data/spec/internal/app/models/product.rb +12 -0
  131. data/spec/internal/app/models/rgb_color.rb +16 -0
  132. data/spec/internal/app/models/tag.rb +12 -0
  133. data/spec/internal/app/models/tagging.rb +12 -0
  134. data/spec/internal/app/models/user.rb +12 -0
  135. data/spec/internal/app/models/variant.rb +12 -0
  136. data/spec/internal/app/views/layouts/application.html.erb +28 -0
  137. data/spec/internal/app/views/layouts/mailer.html.erb +13 -0
  138. data/spec/internal/app/views/layouts/mailer.text.erb +1 -0
  139. data/spec/internal/app/views/pwa/manifest.json.erb +22 -0
  140. data/spec/internal/app/views/pwa/service-worker.js +26 -0
  141. data/spec/internal/bin/bundle +117 -0
  142. data/spec/internal/bin/dev +11 -0
  143. data/spec/internal/bin/rackup +27 -0
  144. data/spec/internal/bin/rails +4 -0
  145. data/spec/internal/bin/rake +4 -0
  146. data/spec/internal/bin/setup +37 -0
  147. data/spec/internal/config/application.rb +50 -0
  148. data/spec/internal/config/boot.rb +3 -0
  149. data/spec/internal/config/credentials.yml.enc +1 -0
  150. data/spec/internal/config/database.yml +32 -0
  151. data/spec/internal/config/environment.rb +5 -0
  152. data/spec/internal/config/environments/development.rb +63 -0
  153. data/spec/internal/config/environments/production.rb +86 -0
  154. data/spec/internal/config/environments/test.rb +50 -0
  155. data/spec/internal/config/initializers/active_admin.rb +54 -0
  156. data/spec/internal/config/initializers/assets.rb +8 -0
  157. data/spec/internal/config/initializers/content_security_policy.rb +25 -0
  158. data/spec/internal/config/initializers/devise.rb +315 -0
  159. data/spec/internal/config/initializers/filter_parameter_logging.rb +8 -0
  160. data/spec/internal/config/initializers/inflections.rb +16 -0
  161. data/spec/internal/config/initializers/searchable_select.rb +6 -0
  162. data/spec/internal/config/locales/devise.en.yml +65 -0
  163. data/spec/internal/config/locales/en.yml +31 -0
  164. data/spec/internal/config/master.key +1 -0
  165. data/spec/internal/config/puma.rb +38 -0
  166. data/spec/internal/config/routes.rb +17 -0
  167. data/spec/internal/config.ru +6 -0
  168. data/spec/internal/db/schema.rb +174 -0
  169. data/spec/internal/db/seeds.rb +167 -0
  170. data/spec/internal/esbuild.config.js +34 -0
  171. data/spec/internal/lib/tasks/.keep +0 -0
  172. data/spec/internal/lib/tasks/active_admin.rake +55 -0
  173. data/spec/internal/log/.keep +0 -0
  174. data/spec/internal/package-lock.json +1954 -0
  175. data/spec/internal/package.json +21 -0
  176. data/spec/internal/public/400.html +114 -0
  177. data/spec/internal/public/404.html +114 -0
  178. data/spec/internal/public/406-unsupported-browser.html +114 -0
  179. data/spec/internal/public/422.html +114 -0
  180. data/spec/internal/public/500.html +114 -0
  181. data/spec/internal/public/icon.png +0 -0
  182. data/spec/internal/public/icon.svg +3 -0
  183. data/spec/internal/public/robots.txt +1 -0
  184. data/spec/internal/script/.keep +0 -0
  185. data/spec/internal/storage/.keep +0 -0
  186. data/spec/internal/tailwind.config.js +23 -0
  187. data/spec/internal/vendor/.keep +0 -0
  188. data/spec/internal/yarn.lock +824 -0
  189. data/spec/rails_helper.rb +62 -0
  190. data/spec/spec_helper.rb +138 -0
  191. data/spec/support/active_admin_helpers.rb +17 -0
  192. data/spec/support/capybara.rb +8 -0
  193. data/spec/support/models.rb +11 -0
  194. data/spec/support/pluck_polyfill.rb +12 -0
  195. data/spec/support/reset_settings.rb +5 -0
  196. metadata +497 -0
data/CHANGELOG.md ADDED
@@ -0,0 +1,64 @@
1
+ # CHANGELOG
2
+
3
+ ### Version 5.0.0 (Draft - Unreleased)
4
+
5
+ [Compare changes](https://github.com/glebtv/activeadmin-searchable_select/compare/1-8-stable...master)
6
+
7
+ #### 🚀 Major Breaking Change: Migration from Select2 to Tom Select
8
+
9
+ This release represents a complete overhaul of the underlying select library, moving from jQuery-based Select2 to the modern, vanilla JavaScript Tom Select library.
10
+
11
+ #### ✨ New Features
12
+ - **Tom Select Integration**: Replaced Select2 with Tom Select v2.4.3 for better performance and smaller bundle size
13
+ - **jQuery-Free**: Completely removed jQuery dependency, reducing bundle size significantly
14
+ - **Tailwind CSS Support**: Added full Tailwind CSS 3 support with custom styled components
15
+ - **Modern JavaScript**: Rewritten with ES6+ modules and native browser APIs
16
+ - **TypeScript Ready**: Tom Select provides TypeScript definitions out of the box
17
+ - **Improved Performance**: Faster initialization and better memory management
18
+
19
+ #### 💔 Breaking Changes
20
+ - **No jQuery Required**: Applications no longer need jQuery for searchable selects
21
+ - **CSS Class Changes**: All Select2 classes replaced with Tom Select equivalents:
22
+ - `.select2-container` → `.ts-wrapper` or `.ts-control`
23
+ - `.select2-dropdown` → `.ts-dropdown`
24
+ - `.select2-results__option` → `.ts-dropdown .option`
25
+ - `.select2-selection` → `.ts-control .item`
26
+ - `.select2-search__field` → `.ts-control input`
27
+ - **JavaScript API Changes**: Tom Select has different initialization and options
28
+ - **Removed Legacy Files**: `searchable_select/init.js` no longer exists
29
+
30
+ #### 🔧 Technical Improvements
31
+ - **Build Process**: Simplified build process using Tailwind CSS 3 and esbuild
32
+ - **CSS Architecture**: Consolidated all styles into a single `tom-select-tailwind.css` file
33
+ - **Test Updates**: Updated all test selectors to work with Tom Select
34
+ - **Package Exports**: Updated npm package exports for Tom Select styles
35
+ - **Documentation**: Added comprehensive migration guide at `/docs/update-tom-select.md`
36
+
37
+ #### 📦 Dependencies
38
+ - **Removed**:
39
+ - `jquery` (peer dependency)
40
+ - `select2` (peer dependency)
41
+ - **Added**:
42
+ - `tom-select@^2.4.3` (peer dependency)
43
+ - `tailwindcss@^3.4.0` (dev dependency for test app)
44
+
45
+ #### 🔄 Migration Path
46
+ Users upgrading to v5.0.0 will need to:
47
+ 1. Remove jQuery and Select2 dependencies
48
+ 2. Add Tom Select: `npm install tom-select@^2.4.3`
49
+ 3. Update CSS imports to use Tom Select styles
50
+ 4. Update any custom JavaScript that referenced Select2 APIs
51
+ 5. See `/docs/update-tom-select.md` for detailed migration instructions
52
+
53
+ #### Previous Changes (v0.5.0 Draft)
54
+ - Forked from original repository to @rocket-sensei organization
55
+ - Updated package name to `@rocket-sensei/activeadmin-searchable_select` for NPM publishing
56
+ - Added GitHub Actions workflow for automated NPM publishing on release
57
+ - Fixed all RuboCop linting violations for improved code quality
58
+ - Updated CI configuration for better test stability
59
+
60
+ ### Previous Releases
61
+
62
+ See
63
+ [1-8-stable branch](https://github.com/codevise/activeadmin-searchable_select/blob/1-8-stable/CHANGELOG.md)
64
+ for previous changes.
data/CLAUDE.md ADDED
@@ -0,0 +1,157 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Project Overview
6
+
7
+ ActiveAdmin Searchable Select is a Ruby gem that adds searchable select boxes (via Select2) to ActiveAdmin forms and filters. It extends the ActiveAdmin resource DSL to allow defining JSON endpoints for asynchronous option fetching.
8
+
9
+ ## Development Commands
10
+
11
+ ### Testing
12
+ ```bash
13
+ # Run full test suite
14
+ bundle exec rspec
15
+
16
+ # Run tests against specific Rails/ActiveAdmin versions
17
+ appraisal install
18
+ appraisal rspec
19
+
20
+ # Run a specific test file
21
+ bundle exec rspec spec/features/end_to_end_spec.rb
22
+
23
+ # Run tests matching a pattern
24
+ bundle exec rspec -e "searchable select"
25
+ ```
26
+
27
+ ### Code Quality
28
+ ```bash
29
+ # Run Rubocop for style checking
30
+ bundle exec rubocop
31
+
32
+ # Auto-fix Rubocop violations (when safe)
33
+ bundle exec rubocop -a
34
+ ```
35
+
36
+ ### Gem Management
37
+ ```bash
38
+ # Install dependencies
39
+ bundle install
40
+
41
+ # Build gem
42
+ bundle exec rake build
43
+
44
+ # Release new version (via Semmy)
45
+ bundle exec rake release
46
+ ```
47
+
48
+ ### NPM Package
49
+ ```bash
50
+ # Install npm dependencies
51
+ npm install
52
+
53
+ # Prepare source files for npm publishing
54
+ npm run prepublishOnly
55
+ ```
56
+
57
+ ## Architecture
58
+
59
+ ### Core Components
60
+
61
+ 1. **Input Extensions** (`lib/activeadmin/inputs/`)
62
+ - `SearchableSelectInput`: Main form input class that renders searchable select fields
63
+ - `filters/SearchableSelectInput`: Filter-specific variant for ActiveAdmin index pages
64
+
65
+ 2. **Resource DSL Extension** (`lib/activeadmin/searchable_select/resource_dsl_extension.rb`)
66
+ - Adds `searchable_select_options` method to ActiveAdmin resources
67
+ - Defines collection actions that serve JSON endpoints for option fetching
68
+
69
+ 3. **Option Collection** (`lib/activeadmin/searchable_select/option_collection.rb`)
70
+ - Handles scope filtering via Ransack
71
+ - Manages pagination and result formatting
72
+ - Supports custom text attributes and display text lambdas
73
+
74
+ 4. **JavaScript Integration** (`app/assets/javascripts/active_admin/`)
75
+ - Initializes Select2 on searchable select inputs
76
+ - Handles AJAX configuration for remote data fetching
77
+ - Manages selected option rendering
78
+
79
+ ### Request Flow for AJAX Options
80
+
81
+ 1. User types in searchable select input
82
+ 2. JavaScript sends AJAX request to `all_options_[resource]_path`
83
+ 3. Collection action (defined by `searchable_select_options`) processes request
84
+ 4. `OptionCollection` applies Ransack filtering and pagination
85
+ 5. JSON response returned with results and pagination metadata
86
+ 6. Select2 renders options in dropdown
87
+
88
+ ### Key Design Patterns
89
+
90
+ - **Ransack Integration**: All filtering leverages Ransack's query interface
91
+ - **Lazy Loading**: Options can be fetched asynchronously to handle large datasets
92
+ - **Scope Flexibility**: Scopes can be static collections or dynamic lambdas
93
+ - **Multiple Endpoints**: Single resource can define multiple option collections
94
+ - **Test Mode**: `inline_ajax_options` setting renders all options statically for testing
95
+
96
+ ## Testing Approach
97
+
98
+ Tests use RSpec with Capybara for feature specs. The `spec/internal` directory contains a full Rails 8 application for testing.
99
+
100
+ ### Running the Test App
101
+
102
+ ```bash
103
+ # Start the test app for manual testing/demo
104
+ cd spec/internal
105
+ bundle exec rackup
106
+
107
+ # Or from project root
108
+ cd spec/internal && bundle exec rackup
109
+
110
+ # The app will be available at http://localhost:9292
111
+ # Default admin credentials: admin@example.com / password
112
+ ```
113
+
114
+ ### Test App Structure
115
+
116
+ The test app is a full Rails 8 application with:
117
+ - ActiveAdmin configured with Tailwind CSS
118
+ - Tom Select integrated for searchable select functionality
119
+ - Sample models (User, Category, Post, Color) with seed data
120
+ - Various admin resources demonstrating different searchable select configurations
121
+
122
+ ### Building Assets in Test App
123
+
124
+ ```bash
125
+ cd spec/internal
126
+
127
+ # Build CSS (Tailwind)
128
+ bundle exec rake active_admin:build
129
+
130
+ # Build JavaScript
131
+ npm run build:js
132
+
133
+ # Watch for changes during development
134
+ bundle exec rake active_admin:watch # CSS
135
+ npm run watch:js # JavaScript
136
+ ```
137
+
138
+ ### Key Test Helpers
139
+
140
+ - `ActiveAdminHelpers`: Provides DSL for interacting with ActiveAdmin pages
141
+ - `inline_ajax_options` mode: Renders all options inline during feature tests
142
+ - Database cleaner ensures test isolation
143
+ - ABSOLUTELY NO GIT PUSH WITH --no-verify FLAG
144
+ - ABSOLUTELY NO GIT PUSH WITH --no-verify FLAG
145
+
146
+ ## Recent Updates (2025)
147
+
148
+ ### Tom Select Migration
149
+ - Migrated from Select2 to Tom Select for better performance and smaller bundle size
150
+ - Tom Select is now bundled with the gem (no external CDN dependency)
151
+ - Full Tailwind CSS styling support for Tom Select components
152
+
153
+ ### Rails 8 Test App
154
+ - Replaced Combustion-based test app with full Rails 8 application
155
+ - Proper asset pipeline with esbuild and cssbundling-rails
156
+ - Tailwind CSS v3 integration with ActiveAdmin's Tailwind plugin
157
+ - Complete test environment for manual testing and development
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Use ActiveAdmin 4.x beta
4
+ gem 'activeadmin', '4.0.0.beta16'
5
+
6
+ gemspec name: 'activeadmin-tom_select'
7
+
8
+ gem 'devise', '~> 4.9', group: :test
9
+
10
+ gem 'propshaft', '~> 1.2', group: :test
11
+
12
+ gem 'rails', '~> 8.0', group: :test
data/Gemfile.lock ADDED
@@ -0,0 +1,368 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ activeadmin-tom_select (4.1.0)
5
+ activeadmin (>= 3.0, < 5)
6
+ ransack (>= 1.8, < 5)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actioncable (8.0.2.1)
12
+ actionpack (= 8.0.2.1)
13
+ activesupport (= 8.0.2.1)
14
+ nio4r (~> 2.0)
15
+ websocket-driver (>= 0.6.1)
16
+ zeitwerk (~> 2.6)
17
+ actionmailbox (8.0.2.1)
18
+ actionpack (= 8.0.2.1)
19
+ activejob (= 8.0.2.1)
20
+ activerecord (= 8.0.2.1)
21
+ activestorage (= 8.0.2.1)
22
+ activesupport (= 8.0.2.1)
23
+ mail (>= 2.8.0)
24
+ actionmailer (8.0.2.1)
25
+ actionpack (= 8.0.2.1)
26
+ actionview (= 8.0.2.1)
27
+ activejob (= 8.0.2.1)
28
+ activesupport (= 8.0.2.1)
29
+ mail (>= 2.8.0)
30
+ rails-dom-testing (~> 2.2)
31
+ actionpack (8.0.2.1)
32
+ actionview (= 8.0.2.1)
33
+ activesupport (= 8.0.2.1)
34
+ nokogiri (>= 1.8.5)
35
+ rack (>= 2.2.4)
36
+ rack-session (>= 1.0.1)
37
+ rack-test (>= 0.6.3)
38
+ rails-dom-testing (~> 2.2)
39
+ rails-html-sanitizer (~> 1.6)
40
+ useragent (~> 0.16)
41
+ actiontext (8.0.2.1)
42
+ actionpack (= 8.0.2.1)
43
+ activerecord (= 8.0.2.1)
44
+ activestorage (= 8.0.2.1)
45
+ activesupport (= 8.0.2.1)
46
+ globalid (>= 0.6.0)
47
+ nokogiri (>= 1.8.5)
48
+ actionview (8.0.2.1)
49
+ activesupport (= 8.0.2.1)
50
+ builder (~> 3.1)
51
+ erubi (~> 1.11)
52
+ rails-dom-testing (~> 2.2)
53
+ rails-html-sanitizer (~> 1.6)
54
+ activeadmin (4.0.0.beta16)
55
+ arbre (~> 2.0)
56
+ csv
57
+ formtastic (>= 5.0)
58
+ formtastic_i18n (>= 0.7)
59
+ inherited_resources (~> 2.0)
60
+ kaminari (>= 1.2.1)
61
+ railties (>= 7.0)
62
+ ransack (>= 4.0)
63
+ activejob (8.0.2.1)
64
+ activesupport (= 8.0.2.1)
65
+ globalid (>= 0.3.6)
66
+ activemodel (8.0.2.1)
67
+ activesupport (= 8.0.2.1)
68
+ activerecord (8.0.2.1)
69
+ activemodel (= 8.0.2.1)
70
+ activesupport (= 8.0.2.1)
71
+ timeout (>= 0.4.0)
72
+ activestorage (8.0.2.1)
73
+ actionpack (= 8.0.2.1)
74
+ activejob (= 8.0.2.1)
75
+ activerecord (= 8.0.2.1)
76
+ activesupport (= 8.0.2.1)
77
+ marcel (~> 1.0)
78
+ activesupport (8.0.2.1)
79
+ base64
80
+ benchmark (>= 0.3)
81
+ bigdecimal
82
+ concurrent-ruby (~> 1.0, >= 1.3.1)
83
+ connection_pool (>= 2.2.5)
84
+ drb
85
+ i18n (>= 1.6, < 2)
86
+ logger (>= 1.4.2)
87
+ minitest (>= 5.1)
88
+ securerandom (>= 0.3)
89
+ tzinfo (~> 2.0, >= 2.0.5)
90
+ uri (>= 0.13.1)
91
+ addressable (2.8.7)
92
+ public_suffix (>= 2.0.2, < 7.0)
93
+ appraisal (2.5.0)
94
+ bundler
95
+ rake
96
+ thor (>= 0.14.0)
97
+ arbre (2.2.0)
98
+ activesupport (>= 7.0)
99
+ ast (2.4.3)
100
+ base64 (0.3.0)
101
+ bcrypt (3.1.20)
102
+ benchmark (0.4.1)
103
+ bigdecimal (3.2.3)
104
+ builder (3.3.0)
105
+ capybara (3.40.0)
106
+ addressable
107
+ matrix
108
+ mini_mime (>= 0.1.3)
109
+ nokogiri (~> 1.11)
110
+ rack (>= 1.6.0)
111
+ rack-test (>= 0.6.3)
112
+ regexp_parser (>= 1.5, < 3.0)
113
+ xpath (~> 3.2)
114
+ capybara-playwright-driver (0.5.7)
115
+ addressable
116
+ capybara
117
+ playwright-ruby-client (>= 1.16.0)
118
+ combustion (1.5.0)
119
+ activesupport (>= 3.0.0)
120
+ railties (>= 3.0.0)
121
+ thor (>= 0.14.6)
122
+ concurrent-ruby (1.3.5)
123
+ connection_pool (2.5.4)
124
+ crass (1.0.6)
125
+ csv (3.3.5)
126
+ database_cleaner-active_record (2.2.2)
127
+ activerecord (>= 5.a)
128
+ database_cleaner-core (~> 2.0)
129
+ database_cleaner-core (2.0.1)
130
+ date (3.4.1)
131
+ devise (4.9.4)
132
+ bcrypt (~> 3.0)
133
+ orm_adapter (~> 0.1)
134
+ railties (>= 4.1.0)
135
+ responders
136
+ warden (~> 1.2.3)
137
+ diff-lcs (1.6.2)
138
+ docile (1.4.1)
139
+ drb (2.2.3)
140
+ erb (5.0.2)
141
+ erubi (1.13.1)
142
+ formtastic (5.0.0)
143
+ actionpack (>= 6.0.0)
144
+ formtastic_i18n (0.7.0)
145
+ globalid (1.2.1)
146
+ activesupport (>= 6.1)
147
+ has_scope (0.8.2)
148
+ actionpack (>= 5.2)
149
+ activesupport (>= 5.2)
150
+ i18n (1.14.7)
151
+ concurrent-ruby (~> 1.0)
152
+ inherited_resources (2.1.0)
153
+ actionpack (>= 7.0)
154
+ has_scope (>= 0.6)
155
+ railties (>= 7.0)
156
+ responders (>= 2)
157
+ io-console (0.8.1)
158
+ irb (1.15.2)
159
+ pp (>= 0.6.0)
160
+ rdoc (>= 4.0.0)
161
+ reline (>= 0.4.2)
162
+ json (2.13.2)
163
+ kaminari (1.2.2)
164
+ activesupport (>= 4.1.0)
165
+ kaminari-actionview (= 1.2.2)
166
+ kaminari-activerecord (= 1.2.2)
167
+ kaminari-core (= 1.2.2)
168
+ kaminari-actionview (1.2.2)
169
+ actionview
170
+ kaminari-core (= 1.2.2)
171
+ kaminari-activerecord (1.2.2)
172
+ activerecord
173
+ kaminari-core (= 1.2.2)
174
+ kaminari-core (1.2.2)
175
+ logger (1.7.0)
176
+ loofah (2.24.1)
177
+ crass (~> 1.0.2)
178
+ nokogiri (>= 1.12.0)
179
+ mail (2.8.1)
180
+ mini_mime (>= 0.1.1)
181
+ net-imap
182
+ net-pop
183
+ net-smtp
184
+ marcel (1.0.4)
185
+ matrix (0.4.3)
186
+ mime-types (3.7.0)
187
+ logger
188
+ mime-types-data (~> 3.2025, >= 3.2025.0507)
189
+ mime-types-data (3.2025.0909)
190
+ mini_mime (1.1.5)
191
+ minitest (5.25.5)
192
+ net-imap (0.5.10)
193
+ date
194
+ net-protocol
195
+ net-pop (0.1.2)
196
+ net-protocol
197
+ net-protocol (0.2.2)
198
+ timeout
199
+ net-smtp (0.5.1)
200
+ net-protocol
201
+ nio4r (2.7.4)
202
+ nokogiri (1.18.9-x86_64-linux-gnu)
203
+ racc (~> 1.4)
204
+ orm_adapter (0.5.0)
205
+ parallel (1.27.0)
206
+ parser (3.3.9.0)
207
+ ast (~> 2.4.1)
208
+ racc
209
+ playwright-ruby-client (1.55.0)
210
+ concurrent-ruby (>= 1.1.6)
211
+ mime-types (>= 3.0)
212
+ pp (0.6.2)
213
+ prettyprint
214
+ prettyprint (0.2.0)
215
+ prism (1.4.0)
216
+ propshaft (1.2.1)
217
+ actionpack (>= 7.0.0)
218
+ activesupport (>= 7.0.0)
219
+ rack
220
+ psych (5.2.6)
221
+ date
222
+ stringio
223
+ public_suffix (6.0.2)
224
+ puma (6.6.1)
225
+ nio4r (~> 2.0)
226
+ racc (1.8.1)
227
+ rack (3.2.1)
228
+ rack-session (2.1.1)
229
+ base64 (>= 0.1.0)
230
+ rack (>= 3.0.0)
231
+ rack-test (2.2.0)
232
+ rack (>= 1.3)
233
+ rackup (2.2.1)
234
+ rack (>= 3)
235
+ rails (8.0.2.1)
236
+ actioncable (= 8.0.2.1)
237
+ actionmailbox (= 8.0.2.1)
238
+ actionmailer (= 8.0.2.1)
239
+ actionpack (= 8.0.2.1)
240
+ actiontext (= 8.0.2.1)
241
+ actionview (= 8.0.2.1)
242
+ activejob (= 8.0.2.1)
243
+ activemodel (= 8.0.2.1)
244
+ activerecord (= 8.0.2.1)
245
+ activestorage (= 8.0.2.1)
246
+ activesupport (= 8.0.2.1)
247
+ bundler (>= 1.15.0)
248
+ railties (= 8.0.2.1)
249
+ rails-dom-testing (2.3.0)
250
+ activesupport (>= 5.0.0)
251
+ minitest
252
+ nokogiri (>= 1.6)
253
+ rails-html-sanitizer (1.6.2)
254
+ loofah (~> 2.21)
255
+ 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)
256
+ railties (8.0.2.1)
257
+ actionpack (= 8.0.2.1)
258
+ activesupport (= 8.0.2.1)
259
+ irb (~> 1.13)
260
+ rackup (>= 1.0.0)
261
+ rake (>= 12.2)
262
+ thor (~> 1.0, >= 1.2.2)
263
+ zeitwerk (~> 2.6)
264
+ rainbow (2.2.2)
265
+ rake
266
+ rake (13.3.0)
267
+ ransack (4.3.0)
268
+ activerecord (>= 6.1.5)
269
+ activesupport (>= 6.1.5)
270
+ i18n
271
+ rdoc (6.14.2)
272
+ erb
273
+ psych (>= 4.0.0)
274
+ regexp_parser (2.11.2)
275
+ reline (0.6.2)
276
+ io-console (~> 0.5)
277
+ responders (3.1.1)
278
+ actionpack (>= 5.2)
279
+ railties (>= 5.2)
280
+ rexml (3.4.4)
281
+ rspec-core (3.13.5)
282
+ rspec-support (~> 3.13.0)
283
+ rspec-expectations (3.13.5)
284
+ diff-lcs (>= 1.2.0, < 2.0)
285
+ rspec-support (~> 3.13.0)
286
+ rspec-mocks (3.13.5)
287
+ diff-lcs (>= 1.2.0, < 2.0)
288
+ rspec-support (~> 3.13.0)
289
+ rspec-rails (6.1.5)
290
+ actionpack (>= 6.1)
291
+ activesupport (>= 6.1)
292
+ railties (>= 6.1)
293
+ rspec-core (~> 3.13)
294
+ rspec-expectations (~> 3.13)
295
+ rspec-mocks (~> 3.13)
296
+ rspec-support (~> 3.13)
297
+ rspec-support (3.13.5)
298
+ rspec_junit_formatter (0.6.0)
299
+ rspec-core (>= 2, < 4, != 2.12.0)
300
+ rubocop (1.50.2)
301
+ json (~> 2.3)
302
+ parallel (~> 1.10)
303
+ parser (>= 3.2.0.0)
304
+ rainbow (>= 2.2.2, < 4.0)
305
+ regexp_parser (>= 1.8, < 3.0)
306
+ rexml (>= 3.2.5, < 4.0)
307
+ rubocop-ast (>= 1.28.0, < 2.0)
308
+ ruby-progressbar (~> 1.7)
309
+ unicode-display_width (>= 2.4.0, < 3.0)
310
+ rubocop-ast (1.46.0)
311
+ parser (>= 3.3.7.2)
312
+ prism (~> 1.4)
313
+ rubocop-rspec (3.0.0)
314
+ rubocop (~> 1.40)
315
+ ruby-progressbar (1.13.0)
316
+ securerandom (0.4.1)
317
+ simplecov (0.22.0)
318
+ docile (~> 1.1)
319
+ simplecov-html (~> 0.11)
320
+ simplecov_json_formatter (~> 0.1)
321
+ simplecov-html (0.13.2)
322
+ simplecov_json_formatter (0.1.4)
323
+ sqlite3 (2.7.3-x86_64-linux-gnu)
324
+ stringio (3.1.7)
325
+ thor (1.4.0)
326
+ timeout (0.4.3)
327
+ tzinfo (2.0.6)
328
+ concurrent-ruby (~> 1.0)
329
+ unicode-display_width (2.6.0)
330
+ uri (1.0.3)
331
+ useragent (0.16.11)
332
+ warden (1.2.9)
333
+ rack (>= 2.0.9)
334
+ websocket-driver (0.8.0)
335
+ base64
336
+ websocket-extensions (>= 0.1.0)
337
+ websocket-extensions (0.1.5)
338
+ xpath (3.2.0)
339
+ nokogiri (~> 1.8)
340
+ zeitwerk (2.7.3)
341
+
342
+ PLATFORMS
343
+ x86_64-linux
344
+
345
+ DEPENDENCIES
346
+ activeadmin (= 4.0.0.beta16)
347
+ activeadmin-tom_select!
348
+ appraisal (~> 2.2)
349
+ bundler (>= 1.5, < 3)
350
+ capybara (~> 3.39)
351
+ capybara-playwright-driver (~> 0.5)
352
+ combustion (~> 1.5)
353
+ database_cleaner-active_record (~> 2.1)
354
+ devise (~> 4.9)
355
+ propshaft (~> 1.2)
356
+ puma (~> 6.0)
357
+ rails (~> 8.0)
358
+ rake
359
+ rspec-rails (~> 6.0)
360
+ rspec_junit_formatter
361
+ rubocop (~> 1.50)
362
+ rubocop-ast (~> 1.46.0)
363
+ rubocop-rspec (~> 3.0)
364
+ simplecov
365
+ sqlite3 (~> 2.1)
366
+
367
+ BUNDLED WITH
368
+ 2.4.10
data/LICENSE.txt ADDED
@@ -0,0 +1,25 @@
1
+
2
+ Copyright for portions of `codevise/activeadmin-searchable_select`
3
+ held by Mark Fariburn, Praxitar Ltd, 2014 as part of
4
+ `mfairburn/activeadmin-select2` which this project is based on. All
5
+ other copyright for `codevise/activeadmin-searchable_select` held by
6
+ Codevise Solutions Ltd, 2017.
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining
9
+ a copy of this software and associated documentation files (the
10
+ "Software"), to deal in the Software without restriction, including
11
+ without limitation the rights to use, copy, modify, merge, publish,
12
+ distribute, sublicense, and/or sell copies of the Software, and to
13
+ permit persons to whom the Software is furnished to do so, subject to
14
+ the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be
17
+ included in all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
23
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
24
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
25
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.