blacklight 8.12.3 → 9.0.0.beta1

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 (201) hide show
  1. checksums.yaml +4 -4
  2. data/.env +3 -3
  3. data/.github/pull_request_template.md +7 -0
  4. data/.github/workflows/ruby.yml +98 -0
  5. data/.rubocop.yml +2 -2
  6. data/.rubocop_todo.yml +0 -9
  7. data/.solr_wrapper.yml +0 -2
  8. data/README.md +30 -8
  9. data/VERSION +1 -1
  10. data/app/assets/builds/blacklight.css +448 -0
  11. data/app/assets/javascripts/blacklight/blacklight.esm.js +8 -51
  12. data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
  13. data/app/assets/javascripts/blacklight/blacklight.js +8 -51
  14. data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
  15. data/app/assets/stylesheets/blacklight/_balanced_list.scss +1 -4
  16. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +1 -3
  17. data/app/assets/stylesheets/blacklight/_bookmark.scss +44 -41
  18. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +0 -29
  19. data/app/assets/stylesheets/blacklight/_constraints.scss +15 -24
  20. data/app/assets/stylesheets/blacklight/_controls.scss +2 -18
  21. data/app/assets/stylesheets/blacklight/_facets.scss +15 -82
  22. data/app/assets/stylesheets/blacklight/_group.scss +2 -5
  23. data/app/assets/stylesheets/blacklight/_header.scss +4 -11
  24. data/app/assets/stylesheets/blacklight/_icons.scss +0 -8
  25. data/app/assets/stylesheets/blacklight/_modal.scss +9 -10
  26. data/app/assets/stylesheets/blacklight/_pagination.scss +3 -5
  27. data/app/assets/stylesheets/blacklight/_search_form.scss +0 -1
  28. data/app/assets/stylesheets/blacklight/_search_history.scss +0 -4
  29. data/app/assets/stylesheets/blacklight/_search_results.scss +1 -15
  30. data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +9 -17
  31. data/app/assets/stylesheets/blacklight/build.scss +4 -0
  32. data/app/components/blacklight/advanced_search_form_component.rb +1 -1
  33. data/app/components/blacklight/constraint_component.rb +1 -1
  34. data/app/components/blacklight/constraint_layout_component.html.erb +2 -2
  35. data/app/components/blacklight/constraints_component.html.erb +2 -2
  36. data/app/components/blacklight/constraints_component.rb +1 -1
  37. data/app/components/blacklight/document/action_component.rb +3 -1
  38. data/app/components/blacklight/document/bookmark_component.html.erb +3 -3
  39. data/app/components/blacklight/document/bookmark_component.rb +0 -1
  40. data/app/components/blacklight/document/group_component.html.erb +1 -1
  41. data/app/components/blacklight/document/page_header_component.rb +3 -3
  42. data/app/components/blacklight/document/sidebar_component.rb +5 -5
  43. data/app/components/blacklight/document_component.rb +14 -20
  44. data/app/components/blacklight/document_title_component.rb +3 -2
  45. data/app/components/blacklight/facet_field_component.html.erb +5 -5
  46. data/app/components/blacklight/facet_field_list_component.rb +4 -22
  47. data/app/components/blacklight/facet_field_pagination_component.html.erb +2 -2
  48. data/app/components/blacklight/facet_item_component.rb +2 -2
  49. data/app/components/blacklight/facet_item_pivot_component.rb +2 -2
  50. data/app/components/blacklight/header_component.rb +2 -2
  51. data/app/components/blacklight/response/facet_group_component.html.erb +3 -18
  52. data/app/components/blacklight/response/facet_group_component.rb +7 -23
  53. data/app/components/blacklight/response/facet_toggle_button_component.html.erb +16 -0
  54. data/app/components/blacklight/response/facet_toggle_button_component.rb +14 -0
  55. data/app/components/blacklight/response/pagination_component.html.erb +1 -1
  56. data/app/components/blacklight/response/pagination_component.rb +2 -1
  57. data/app/components/blacklight/response/sort_component.rb +1 -0
  58. data/app/components/blacklight/response/view_type_button_component.html.erb +1 -1
  59. data/app/components/blacklight/response/view_type_component.html.erb +1 -1
  60. data/app/components/blacklight/search/facet_suggest_input.html.erb +7 -10
  61. data/app/components/blacklight/search/facet_suggest_input.rb +0 -4
  62. data/app/components/blacklight/search/per_page_component.html.erb +1 -1
  63. data/app/components/blacklight/search/per_page_component.rb +1 -0
  64. data/app/components/blacklight/search/sidebar_component.html.erb +1 -1
  65. data/app/components/blacklight/search/sidebar_component.rb +1 -1
  66. data/app/components/blacklight/search_bar_component.html.erb +3 -3
  67. data/app/components/blacklight/search_bar_component.rb +2 -2
  68. data/app/components/blacklight/search_button_component.rb +2 -2
  69. data/app/components/blacklight/search_context/server_applied_params_component.html.erb +2 -2
  70. data/app/components/blacklight/search_context/server_applied_params_component.rb +9 -0
  71. data/app/components/blacklight/skip_link_component.html.erb +1 -1
  72. data/app/components/blacklight/skip_link_component.rb +2 -1
  73. data/app/components/blacklight/system/dropdown_component.html.erb +1 -1
  74. data/app/components/blacklight/system/dropdown_component.rb +1 -1
  75. data/app/components/blacklight/top_navbar_component.html.erb +1 -1
  76. data/app/controllers/concerns/blacklight/catalog.rb +3 -2
  77. data/app/controllers/concerns/blacklight/search_context.rb +1 -13
  78. data/app/helpers/blacklight/blacklight_helper_behavior.rb +0 -6
  79. data/app/helpers/blacklight/catalog_helper_behavior.rb +0 -10
  80. data/app/helpers/blacklight/configuration_helper_behavior.rb +0 -12
  81. data/app/helpers/blacklight/document_helper_behavior.rb +0 -26
  82. data/app/helpers/blacklight/icon_helper_behavior.rb +1 -9
  83. data/app/helpers/blacklight/layout_helper_behavior.rb +2 -2
  84. data/app/helpers/blacklight/render_partials_helper_behavior.rb +0 -14
  85. data/app/helpers/blacklight/url_helper_behavior.rb +1 -1
  86. data/app/javascript/{blacklight → blacklight-frontend}/bookmark_toggle.js +1 -1
  87. data/app/javascript/{blacklight → blacklight-frontend}/core.js +2 -10
  88. data/app/javascript/{blacklight → blacklight-frontend}/debounce.js +1 -1
  89. data/app/javascript/blacklight-frontend/facet_suggest.js +26 -0
  90. data/app/javascript/blacklight-frontend/index.js +18 -0
  91. data/app/javascript/{blacklight → blacklight-frontend}/modal.js +2 -14
  92. data/app/javascript/{blacklight → blacklight-frontend}/search_context.js +2 -3
  93. data/app/models/concerns/blacklight/document.rb +0 -11
  94. data/app/models/concerns/blacklight/user.rb +1 -1
  95. data/app/presenters/blacklight/facet_field_presenter.rb +2 -2
  96. data/app/presenters/blacklight/json_presenter.rb +3 -1
  97. data/app/services/blacklight/search_params_yaml_coder.rb +0 -2
  98. data/app/views/bookmarks/_clear_bookmarks_widget.html.erb +0 -2
  99. data/app/views/bookmarks/index.html.erb +1 -1
  100. data/app/views/catalog/_document.atom.builder +1 -1
  101. data/app/views/catalog/_document.html.erb +1 -1
  102. data/app/views/catalog/_results_pagination.html.erb +2 -5
  103. data/app/views/catalog/_search_results.html.erb +3 -3
  104. data/app/views/catalog/_search_results_header.html.erb +1 -1
  105. data/app/views/catalog/_show_main_content.html.erb +1 -1
  106. data/app/views/catalog/_sort_and_per_page.html.erb +1 -1
  107. data/app/views/catalog/_sort_widget.html.erb +1 -0
  108. data/app/views/catalog/facet.html.erb +9 -9
  109. data/app/views/catalog/show.html.erb +2 -3
  110. data/app/views/kaminari/blacklight/_paginator.html.erb +1 -2
  111. data/app/views/layouts/blacklight/base.html.erb +3 -7
  112. data/app/views/search_history/index.html.erb +0 -2
  113. data/blacklight.gemspec +4 -4
  114. data/config/importmap.rb +1 -1
  115. data/config/locales/blacklight.ar.yml +4 -4
  116. data/config/locales/blacklight.ca.yml +124 -124
  117. data/config/locales/blacklight.de.yml +2 -2
  118. data/config/locales/blacklight.en.yml +14 -14
  119. data/config/locales/blacklight.es.yml +4 -4
  120. data/config/locales/blacklight.fr.yml +4 -4
  121. data/config/locales/blacklight.hu.yml +4 -4
  122. data/config/locales/blacklight.it.yml +3 -3
  123. data/config/locales/blacklight.nl.yml +3 -3
  124. data/config/locales/blacklight.pt-BR.yml +3 -3
  125. data/config/locales/blacklight.sq.yml +4 -4
  126. data/config/locales/blacklight.zh.yml +4 -4
  127. data/lib/blacklight/component.rb +1 -4
  128. data/lib/blacklight/configuration/display_field.rb +1 -1
  129. data/lib/blacklight/configuration/fields.rb +3 -3
  130. data/lib/blacklight/configuration/view_config.rb +0 -2
  131. data/lib/blacklight/configuration.rb +5 -11
  132. data/lib/blacklight/engine.rb +0 -6
  133. data/lib/blacklight/open_struct_with_hash_access.rb +4 -4
  134. data/lib/blacklight/search_builder.rb +4 -4
  135. data/lib/blacklight/search_state/filter_field.rb +2 -2
  136. data/lib/blacklight/search_state/pivot_filter_field.rb +1 -1
  137. data/lib/blacklight/solr/request.rb +1 -7
  138. data/lib/blacklight/solr/response/group_response.rb +2 -2
  139. data/lib/blacklight.rb +1 -1
  140. data/lib/generators/blacklight/assets/importmap_generator.rb +8 -24
  141. data/lib/generators/blacklight/assets/propshaft_generator.rb +1 -1
  142. data/lib/generators/blacklight/assets_generator.rb +3 -3
  143. data/lib/generators/blacklight/controller_generator.rb +3 -3
  144. data/lib/generators/blacklight/templates/.solr_wrapper.yml +0 -2
  145. data/lib/generators/blacklight/user_generator.rb +9 -10
  146. data/package.json +14 -4
  147. data/rollup.config.js +1 -1
  148. data/spec/components/blacklight/document/action_component_spec.rb +1 -5
  149. data/spec/components/blacklight/document/sidebar_component_spec.rb +5 -20
  150. data/spec/components/blacklight/document_component_spec.rb +9 -14
  151. data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +2 -2
  152. data/spec/components/blacklight/facet_field_list_component_spec.rb +2 -2
  153. data/spec/components/blacklight/search/facet_suggest_input_spec.rb +3 -27
  154. data/spec/components/blacklight/search_bar_component_spec.rb +1 -1
  155. data/spec/controllers/blacklight/catalog_spec.rb +1 -1
  156. data/spec/controllers/catalog_controller_spec.rb +1 -1
  157. data/spec/features/axe_spec.rb +6 -11
  158. data/spec/features/bookmarks_spec.rb +48 -11
  159. data/spec/features/facets_spec.rb +22 -90
  160. data/spec/features/search_context_spec.rb +1 -2
  161. data/spec/features/search_filters_spec.rb +6 -6
  162. data/spec/helpers/blacklight/configuration_helper_behavior_spec.rb +0 -9
  163. data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +1 -1
  164. data/spec/lib/blacklight/parameters_spec.rb +1 -12
  165. data/spec/lib/blacklight/search_state/filter_field_spec.rb +0 -18
  166. data/spec/models/blacklight/solr/request_spec.rb +7 -0
  167. data/spec/services/blacklight/search_service_spec.rb +1 -1
  168. data/spec/support/presenter_test_helpers.rb +1 -1
  169. data/spec/views/catalog/_facet_layout.html.erb_spec.rb +3 -3
  170. data/spec/views/catalog/facet.html.erb_spec.rb +0 -8
  171. data/spec/views/catalog/index.atom.builder_spec.rb +0 -2
  172. data/spec/views/catalog/index.html.erb_spec.rb +6 -3
  173. data/spec/views/catalog/show.html.erb_spec.rb +1 -0
  174. data/tasks/blacklight.rake +8 -5
  175. metadata +30 -61
  176. data/.github/matrix.json +0 -92
  177. data/.github/workflows/build.yml +0 -16
  178. data/.github/workflows/lint.yml +0 -25
  179. data/.github/workflows/main.yml +0 -24
  180. data/.github/workflows/test.yml +0 -58
  181. data/app/assets/stylesheets/blacklight/_autocomplete.scss +0 -25
  182. data/app/assets/stylesheets/blacklight/_mixins.scss +0 -20
  183. data/app/components/blacklight/icons/legacy_icon_component.rb +0 -30
  184. data/app/javascript/blacklight/facet_suggest.js +0 -48
  185. data/app/javascript/blacklight/index.js +0 -18
  186. data/app/views/catalog/_constraints.html.erb +0 -1
  187. data/app/views/catalog/_facets.html.erb +0 -5
  188. data/app/views/catalog/_search_form.html.erb +0 -7
  189. data/app/views/catalog/_search_header.html.erb +0 -1
  190. data/app/views/catalog/_show_sidebar.html.erb +0 -3
  191. data/app/views/catalog/_show_tools.html.erb +0 -2
  192. data/app/views/catalog/_start_over.html.erb +0 -1
  193. data/app/views/shared/_header_navbar.html.erb +0 -1
  194. data/lib/generators/blacklight/assets/sprockets_generator.rb +0 -68
  195. data/spec/components/blacklight/system/dropdown_component_spec.rb +0 -26
  196. data/spec/views/catalog/_search_header.erb_spec.rb +0 -14
  197. data/spec/views/catalog/_show_sidebar.erb_spec.rb +0 -24
  198. data/spec/views/catalog/_show_tools.html.erb_spec.rb +0 -37
  199. /data/app/javascript/{blacklight → blacklight-frontend}/button_focus.js +0 -0
  200. /data/app/javascript/{blacklight → blacklight-frontend}/checkbox_submit.js +0 -0
  201. /data/app/javascript/{blacklight → blacklight-frontend}/modalForm.js +0 -0
@@ -4,14 +4,11 @@ RSpec.describe 'catalog/facet.html.erb' do
4
4
  let(:display_facet) { double }
5
5
  let(:blacklight_config) { Blacklight::Configuration.new }
6
6
  let(:component) { instance_double(Blacklight::FacetComponent) }
7
- let(:facet_suggest_input) { instance_double(Blacklight::Search::FacetSuggestInput) }
8
7
 
9
8
  before do
10
9
  allow(Blacklight::FacetComponent).to receive(:new).and_return(component)
11
- allow(Blacklight::Search::FacetSuggestInput).to receive(:new).and_return(facet_suggest_input)
12
10
  allow(view).to receive(:render).and_call_original
13
11
  allow(view).to receive(:render).with(component)
14
- allow(view).to receive(:render).with(facet_suggest_input)
15
12
 
16
13
  blacklight_config.add_facet_field 'xyz', label: "Facet title"
17
14
  allow(view).to receive(:blacklight_config).and_return(blacklight_config)
@@ -25,11 +22,6 @@ RSpec.describe 'catalog/facet.html.erb' do
25
22
  expect(rendered).to have_css 'h1', text: "Facet title"
26
23
  end
27
24
 
28
- it "renders the facet suggest input" do
29
- render
30
- expect(view).to have_received(:render).with(facet_suggest_input)
31
- end
32
-
33
25
  it "renders facet pagination" do
34
26
  render
35
27
  expect(rendered).to have_content 'pagination'
@@ -93,8 +93,6 @@ RSpec.describe "catalog/index" do
93
93
  context 'with a custom template' do
94
94
  before do
95
95
  my_template = Class.new(ViewComponent::Base) do
96
- def initialize(**); end
97
-
98
96
  def call
99
97
  'whatever content'.html_safe
100
98
  end
@@ -19,14 +19,17 @@ RSpec.describe "catalog/index.html.erb" do
19
19
  describe "with search parameters" do
20
20
  before do
21
21
  stub_template "catalog/_results_pagination.html.erb" => ""
22
- stub_template "catalog/_search_header.html.erb" => "header_content"
23
22
  allow(view).to receive_messages(has_search_parameters?: true, blacklight_config: Blacklight::Configuration.new)
24
- @response = instance_double(Blacklight::Solr::Response, empty?: true, total: 11, start: 1, limit_value: 10)
23
+ allow(controller).to receive_messages(blacklight_config: Blacklight::Configuration.new)
24
+
25
+ @response = response
25
26
  end
26
27
 
28
+ let(:response) { Blacklight::Solr::Response.new({ response: { numFound: 30 } }, start: 10, rows: 10) }
29
+
27
30
  it "renders the search_header partial" do
28
31
  render
29
- expect(rendered).to match /header_content/
32
+ expect(rendered).to match /sortAndPerPage/
30
33
  end
31
34
  end
32
35
  end
@@ -7,6 +7,7 @@ RSpec.describe "catalog/show.html.erb" do
7
7
 
8
8
  before do
9
9
  allow(presenter).to receive(:html_title).and_return('Heading')
10
+ allow(document).to receive(:more_like_this).and_return([])
10
11
  allow(view).to receive_messages(has_user_authentication_provider?: false)
11
12
  allow(view).to receive_messages(render_document_sidebar_partial: "Sidebar")
12
13
  allow(view).to receive_messages(current_search_session: nil, search_session: {})
@@ -3,7 +3,7 @@
3
3
  require 'engine_cart/rake_task'
4
4
 
5
5
  require 'rspec/core/rake_task'
6
- RSpec::Core::RakeTask.new(:spec) do |t|
6
+ RSpec::Core::RakeTask.new(spec: 'blacklight:build_host_assets') do |t|
7
7
  t.pattern = 'spec/**/*_spec.rb'
8
8
  end
9
9
 
@@ -46,15 +46,18 @@ desc "Run test suite"
46
46
  task ci: ['build:npm'] do
47
47
  with_solr do
48
48
  Rake::Task['blacklight:internal:seed'].invoke
49
- within_test_app do
50
- # Precompiles the assets
51
- system "bin/rake spec:prepare"
52
- end
53
49
  Rake::Task['blacklight:coverage'].invoke
54
50
  end
55
51
  end
56
52
 
57
53
  namespace :blacklight do
54
+ task :build_host_assets do
55
+ within_test_app do
56
+ # Precompiles the assets
57
+ `bin/rails spec:prepare`
58
+ end
59
+ end
60
+
58
61
  desc "Run tests with coverage"
59
62
  task :coverage do
60
63
  ENV['COVERAGE'] = 'true'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blacklight
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.12.3
4
+ version: 9.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Rochkind
@@ -16,7 +16,7 @@ authors:
16
16
  - Justin Coyne
17
17
  bindir: exe
18
18
  cert_chain: []
19
- date: 1980-01-02 00:00:00.000000000 Z
19
+ date: 2025-02-06 00:00:00.000000000 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: rails
@@ -24,7 +24,7 @@ dependencies:
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '6.1'
27
+ version: '7.0'
28
28
  - - "<"
29
29
  - !ruby/object:Gem::Version
30
30
  version: '9'
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ">="
36
36
  - !ruby/object:Gem::Version
37
- version: '6.1'
37
+ version: '7.0'
38
38
  - - "<"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '9'
@@ -112,22 +112,16 @@ dependencies:
112
112
  name: view_component
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '2.74'
118
- - - "<"
115
+ - - "~>"
119
116
  - !ruby/object:Gem::Version
120
- version: '5'
117
+ version: '3.9'
121
118
  type: :runtime
122
119
  prerelease: false
123
120
  version_requirements: !ruby/object:Gem::Requirement
124
121
  requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- version: '2.74'
128
- - - "<"
122
+ - - "~>"
129
123
  - !ruby/object:Gem::Version
130
- version: '5'
124
+ version: '3.9'
131
125
  - !ruby/object:Gem::Dependency
132
126
  name: zeitwerk
133
127
  requirement: !ruby/object:Gem::Requirement
@@ -166,22 +160,16 @@ dependencies:
166
160
  name: rspec-rails
167
161
  requirement: !ruby/object:Gem::Requirement
168
162
  requirements:
169
- - - ">="
170
- - !ruby/object:Gem::Version
171
- version: '6.1'
172
- - - "<"
163
+ - - "~>"
173
164
  - !ruby/object:Gem::Version
174
- version: '8'
165
+ version: '7.0'
175
166
  type: :development
176
167
  prerelease: false
177
168
  version_requirements: !ruby/object:Gem::Requirement
178
169
  requirements:
179
- - - ">="
180
- - !ruby/object:Gem::Version
181
- version: '6.1'
182
- - - "<"
170
+ - - "~>"
183
171
  - !ruby/object:Gem::Version
184
- version: '8'
172
+ version: '7.0'
185
173
  - !ruby/object:Gem::Dependency
186
174
  name: rspec-collection_matchers
187
175
  requirement: !ruby/object:Gem::Requirement
@@ -421,11 +409,8 @@ files:
421
409
  - ".docker/app/entrypoint.sh"
422
410
  - ".dockerignore"
423
411
  - ".env"
424
- - ".github/matrix.json"
425
- - ".github/workflows/build.yml"
426
- - ".github/workflows/lint.yml"
427
- - ".github/workflows/main.yml"
428
- - ".github/workflows/test.yml"
412
+ - ".github/pull_request_template.md"
413
+ - ".github/workflows/ruby.yml"
429
414
  - ".gitignore"
430
415
  - ".hound.yml"
431
416
  - ".jshintrc"
@@ -440,6 +425,7 @@ files:
440
425
  - README.md
441
426
  - Rakefile
442
427
  - VERSION
428
+ - app/assets/builds/blacklight.css
443
429
  - app/assets/config/blacklight/manifest.js
444
430
  - app/assets/images/blacklight/logo.png
445
431
  - app/assets/images/favicon.ico
@@ -447,7 +433,6 @@ files:
447
433
  - app/assets/javascripts/blacklight/blacklight.esm.js.map
448
434
  - app/assets/javascripts/blacklight/blacklight.js
449
435
  - app/assets/javascripts/blacklight/blacklight.js.map
450
- - app/assets/stylesheets/blacklight/_autocomplete.scss
451
436
  - app/assets/stylesheets/blacklight/_balanced_list.scss
452
437
  - app/assets/stylesheets/blacklight/_blacklight_base.scss
453
438
  - app/assets/stylesheets/blacklight/_bookmark.scss
@@ -459,7 +444,6 @@ files:
459
444
  - app/assets/stylesheets/blacklight/_header.scss
460
445
  - app/assets/stylesheets/blacklight/_icons.scss
461
446
  - app/assets/stylesheets/blacklight/_layout.scss
462
- - app/assets/stylesheets/blacklight/_mixins.scss
463
447
  - app/assets/stylesheets/blacklight/_modal.scss
464
448
  - app/assets/stylesheets/blacklight/_pagination.scss
465
449
  - app/assets/stylesheets/blacklight/_search_form.scss
@@ -467,6 +451,7 @@ files:
467
451
  - app/assets/stylesheets/blacklight/_search_results.scss
468
452
  - app/assets/stylesheets/blacklight/blacklight.scss
469
453
  - app/assets/stylesheets/blacklight/blacklight_defaults.scss
454
+ - app/assets/stylesheets/blacklight/build.scss
470
455
  - app/builders/blacklight/action_builder.rb
471
456
  - app/components/blacklight/advanced_search_form_component.html.erb
472
457
  - app/components/blacklight/advanced_search_form_component.rb
@@ -523,7 +508,6 @@ files:
523
508
  - app/components/blacklight/hidden_search_state_component.rb
524
509
  - app/components/blacklight/icons/bookmark_icon_component.rb
525
510
  - app/components/blacklight/icons/icon_component.rb
526
- - app/components/blacklight/icons/legacy_icon_component.rb
527
511
  - app/components/blacklight/icons/list_component.rb
528
512
  - app/components/blacklight/icons/remove_component.rb
529
513
  - app/components/blacklight/icons/search_component.rb
@@ -534,6 +518,8 @@ files:
534
518
  - app/components/blacklight/metadata_field_plain_text_layout_component.rb
535
519
  - app/components/blacklight/response/facet_group_component.html.erb
536
520
  - app/components/blacklight/response/facet_group_component.rb
521
+ - app/components/blacklight/response/facet_toggle_button_component.html.erb
522
+ - app/components/blacklight/response/facet_toggle_button_component.rb
537
523
  - app/components/blacklight/response/pagination_component.html.erb
538
524
  - app/components/blacklight/response/pagination_component.rb
539
525
  - app/components/blacklight/response/sort_component.html.erb
@@ -597,16 +583,16 @@ files:
597
583
  - app/helpers/blacklight/url_helper_behavior.rb
598
584
  - app/helpers/blacklight_helper.rb
599
585
  - app/helpers/catalog_helper.rb
600
- - app/javascript/blacklight/bookmark_toggle.js
601
- - app/javascript/blacklight/button_focus.js
602
- - app/javascript/blacklight/checkbox_submit.js
603
- - app/javascript/blacklight/core.js
604
- - app/javascript/blacklight/debounce.js
605
- - app/javascript/blacklight/facet_suggest.js
606
- - app/javascript/blacklight/index.js
607
- - app/javascript/blacklight/modal.js
608
- - app/javascript/blacklight/modalForm.js
609
- - app/javascript/blacklight/search_context.js
586
+ - app/javascript/blacklight-frontend/bookmark_toggle.js
587
+ - app/javascript/blacklight-frontend/button_focus.js
588
+ - app/javascript/blacklight-frontend/checkbox_submit.js
589
+ - app/javascript/blacklight-frontend/core.js
590
+ - app/javascript/blacklight-frontend/debounce.js
591
+ - app/javascript/blacklight-frontend/facet_suggest.js
592
+ - app/javascript/blacklight-frontend/index.js
593
+ - app/javascript/blacklight-frontend/modal.js
594
+ - app/javascript/blacklight-frontend/modalForm.js
595
+ - app/javascript/blacklight-frontend/search_context.js
610
596
  - app/models/blacklight/facet_paginator.rb
611
597
  - app/models/blacklight/icon.rb
612
598
  - app/models/blacklight/suggest_search.rb
@@ -663,7 +649,6 @@ files:
663
649
  - app/views/catalog/_advanced_search_help.html.erb
664
650
  - app/views/catalog/_bookmark_control.html.erb
665
651
  - app/views/catalog/_citation.html.erb
666
- - app/views/catalog/_constraints.html.erb
667
652
  - app/views/catalog/_did_you_mean.html.erb
668
653
  - app/views/catalog/_document.atom.builder
669
654
  - app/views/catalog/_document.html.erb
@@ -674,7 +659,6 @@ files:
674
659
  - app/views/catalog/_facet_layout.html.erb
675
660
  - app/views/catalog/_facet_pagination.html.erb
676
661
  - app/views/catalog/_facet_pivot.html.erb
677
- - app/views/catalog/_facets.html.erb
678
662
  - app/views/catalog/_field.json.jbuilder
679
663
  - app/views/catalog/_group.html.erb
680
664
  - app/views/catalog/_home.html.erb
@@ -683,19 +667,14 @@ files:
683
667
  - app/views/catalog/_paginate_compact.html.erb
684
668
  - app/views/catalog/_per_page_widget.html.erb
685
669
  - app/views/catalog/_results_pagination.html.erb
686
- - app/views/catalog/_search_form.html.erb
687
- - app/views/catalog/_search_header.html.erb
688
670
  - app/views/catalog/_search_results.html.erb
689
671
  - app/views/catalog/_search_results_header.html.erb
690
672
  - app/views/catalog/_search_sidebar.html.erb
691
673
  - app/views/catalog/_show_main_content.html.erb
692
674
  - app/views/catalog/_show_more_like_this.html.erb
693
- - app/views/catalog/_show_sidebar.html.erb
694
- - app/views/catalog/_show_tools.html.erb
695
675
  - app/views/catalog/_sms_form.html.erb
696
676
  - app/views/catalog/_sort_and_per_page.html.erb
697
677
  - app/views/catalog/_sort_widget.html.erb
698
- - app/views/catalog/_start_over.html.erb
699
678
  - app/views/catalog/_view_type_group.html.erb
700
679
  - app/views/catalog/_zero_results.html.erb
701
680
  - app/views/catalog/advanced_search.html.erb
@@ -736,7 +715,6 @@ files:
736
715
  - app/views/shared/_flash_messages.html.erb
737
716
  - app/views/shared/_flash_msg.html.erb
738
717
  - app/views/shared/_footer.html.erb
739
- - app/views/shared/_header_navbar.html.erb
740
718
  - app/views/shared/_modal.html.erb
741
719
  - app/views/shared/_sitelinks_search_box.html.erb
742
720
  - app/views/shared/_user_util_links.html.erb
@@ -809,7 +787,6 @@ files:
809
787
  - lib/blacklight/version.rb
810
788
  - lib/generators/blacklight/assets/importmap_generator.rb
811
789
  - lib/generators/blacklight/assets/propshaft_generator.rb
812
- - lib/generators/blacklight/assets/sprockets_generator.rb
813
790
  - lib/generators/blacklight/assets_generator.rb
814
791
  - lib/generators/blacklight/controller_generator.rb
815
792
  - lib/generators/blacklight/document_generator.rb
@@ -874,7 +851,6 @@ files:
874
851
  - spec/components/blacklight/search_context/server_item_pagination_component_spec.rb
875
852
  - spec/components/blacklight/skip_link_component_spec.rb
876
853
  - spec/components/blacklight/start_over_button_component_spec.rb
877
- - spec/components/blacklight/system/dropdown_component_spec.rb
878
854
  - spec/components/blacklight/system/flash_message_component_spec.rb
879
855
  - spec/controllers/alternate_controller_spec.rb
880
856
  - spec/controllers/application_controller_spec.rb
@@ -988,9 +964,6 @@ files:
988
964
  - spec/views/catalog/_facet_index_navigation.html.erb_spec.rb
989
965
  - spec/views/catalog/_facet_layout.html.erb_spec.rb
990
966
  - spec/views/catalog/_paginate_compact.html.erb_spec.rb
991
- - spec/views/catalog/_search_header.erb_spec.rb
992
- - spec/views/catalog/_show_sidebar.erb_spec.rb
993
- - spec/views/catalog/_show_tools.html.erb_spec.rb
994
967
  - spec/views/catalog/_sort_and_per_page.html.erb_spec.rb
995
968
  - spec/views/catalog/_sort_widget.html.erb_spec.rb
996
969
  - spec/views/catalog/_view_type_group.html.erb_spec.rb
@@ -1018,14 +991,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1018
991
  requirements:
1019
992
  - - ">="
1020
993
  - !ruby/object:Gem::Version
1021
- version: '2.7'
994
+ version: '3.1'
1022
995
  required_rubygems_version: !ruby/object:Gem::Requirement
1023
996
  requirements:
1024
997
  - - ">="
1025
998
  - !ruby/object:Gem::Version
1026
999
  version: '0'
1027
1000
  requirements: []
1028
- rubygems_version: 3.6.9
1001
+ rubygems_version: 3.6.2
1029
1002
  specification_version: 4
1030
1003
  summary: Blacklight provides a discovery interface for any Solr (http://lucene.apache.org/solr)
1031
1004
  index.
@@ -1057,7 +1030,6 @@ test_files:
1057
1030
  - spec/components/blacklight/search_context/server_item_pagination_component_spec.rb
1058
1031
  - spec/components/blacklight/skip_link_component_spec.rb
1059
1032
  - spec/components/blacklight/start_over_button_component_spec.rb
1060
- - spec/components/blacklight/system/dropdown_component_spec.rb
1061
1033
  - spec/components/blacklight/system/flash_message_component_spec.rb
1062
1034
  - spec/controllers/alternate_controller_spec.rb
1063
1035
  - spec/controllers/application_controller_spec.rb
@@ -1171,9 +1143,6 @@ test_files:
1171
1143
  - spec/views/catalog/_facet_index_navigation.html.erb_spec.rb
1172
1144
  - spec/views/catalog/_facet_layout.html.erb_spec.rb
1173
1145
  - spec/views/catalog/_paginate_compact.html.erb_spec.rb
1174
- - spec/views/catalog/_search_header.erb_spec.rb
1175
- - spec/views/catalog/_show_sidebar.erb_spec.rb
1176
- - spec/views/catalog/_show_tools.html.erb_spec.rb
1177
1146
  - spec/views/catalog/_sort_and_per_page.html.erb_spec.rb
1178
1147
  - spec/views/catalog/_sort_widget.html.erb_spec.rb
1179
1148
  - spec/views/catalog/_view_type_group.html.erb_spec.rb
data/.github/matrix.json DELETED
@@ -1,92 +0,0 @@
1
- {
2
- "ruby": [
3
- "3.3"
4
- ],
5
- "rails_version": [
6
- "7.1.5.1",
7
- "7.2.2.1"
8
- ],
9
- "bootstrap_version": [
10
- null
11
- ],
12
- "view_component_version": [
13
- "~> 3.12"
14
- ],
15
- "api": [
16
- null
17
- ],
18
- "additional_engine_cart_rails_options": [
19
- ""
20
- ],
21
- "additional_name": [
22
- ""
23
- ],
24
- "include": [
25
- {
26
- "ruby": "3.3",
27
- "rails_version": "8.0.1",
28
- "additional_engine_cart_rails_options": "--css=bootstrap"
29
- },
30
- {
31
- "ruby": "3.3",
32
- "rails_version": "8.0.1",
33
- "additional_engine_cart_rails_options": "--css=bootstrap --js=esbuild",
34
- "additional_name": "| esbuild"
35
- },
36
- {
37
- "ruby": "3.3",
38
- "rails_version": "8.0.1",
39
- "view_component_version": "~> 4.0",
40
- "additional_engine_cart_rails_options": "--css=bootstrap",
41
- "additional_name": "| ViewComponent 4"
42
- },
43
- {
44
- "ruby": "3.3",
45
- "rails_version": "8.0.1",
46
- "view_component_version": "~> 4.0",
47
- "additional_engine_cart_rails_options": "--css=bootstrap --js=esbuild",
48
- "additional_name": "| esbuild, ViewComponent 4"
49
- },
50
- {
51
- "ruby": "3.2",
52
- "rails_version": "7.1.5.1",
53
- "solr_version": "8.11.2",
54
- "additional_name": "Solr 8.11.2"
55
- },
56
- {
57
- "ruby": "3.1",
58
- "rails_version": "7.1.5.1"
59
- },
60
- {
61
- "ruby": "3.1",
62
- "rails_version": "7.1.5.1",
63
- "view_component_version": "~> 2.74",
64
- "additional_name": "| ViewComponent 2"
65
- },
66
- {
67
- "ruby": "3.1",
68
- "rails_version": "7.1.5.1",
69
- "additional_name": "| Propshaft",
70
- "additional_engine_cart_rails_options": "-a propshaft --css=bootstrap"
71
- },
72
- {
73
- "ruby": "3.1",
74
- "rails_version": "7.1.5.1",
75
- "bootstrap_version": "~> 4.0",
76
- "additional_name": "| Bootstrap 4"
77
- },
78
- {
79
- "ruby": "3.3",
80
- "rails_version": "7.1.5.1",
81
- "api": "true",
82
- "additional_engine_cart_rails_options": "--api --skip-yarn",
83
- "additional_name": "| API"
84
- },
85
- {
86
- "ruby": "3.3",
87
- "rails_version": "7.2.2.1",
88
- "additional_engine_cart_rails_options": "-a propshaft --css=bootstrap --js=esbuild",
89
- "additional_name": "| Propshaft, esbuild"
90
- }
91
- ]
92
- }
@@ -1,16 +0,0 @@
1
- on:
2
- workflow_call:
3
- inputs:
4
- ref:
5
- required: false
6
- type: string
7
- default: ''
8
- jobs:
9
- build:
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: actions/checkout@v4
13
- with:
14
- ref: ${{ inputs.ref }}
15
- - name: Build docker image
16
- run: docker compose build app
@@ -1,25 +0,0 @@
1
- on:
2
- workflow_call:
3
- inputs:
4
- ref:
5
- required: false
6
- type: string
7
- default: ''
8
- jobs:
9
- lint:
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: actions/checkout@v4
13
- with:
14
- ref: ${{ inputs.ref }}
15
- - name: Set up Ruby
16
- uses: ruby/setup-ruby@v1
17
- with:
18
- ruby-version: 3.2
19
- bundler: "latest"
20
- - name: Change permissions
21
- run: "chmod -f -R o-w /opt/hostedtoolcache/Ruby/3.2.5/x64/lib/ruby/gems/3.2.0/gems | :"
22
- - name: Install dependencies
23
- run: bundle install
24
- - name: Run linter
25
- run: bundle exec rake rubocop
@@ -1,24 +0,0 @@
1
- # This workflow uses actions that are not certified by GitHub.
2
- # They are provided by a third-party and are governed by
3
- # separate terms of service, privacy policy, and support
4
- # documentation.
5
- # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
- # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
-
8
- name: CI
9
-
10
- on:
11
- push:
12
- branches:
13
- - main
14
- - "release-*"
15
- pull_request:
16
- jobs:
17
- lint:
18
- uses: ./.github/workflows/lint.yml
19
- test:
20
- uses: ./.github/workflows/test.yml
21
- with:
22
- ruby: '["3.3"]'
23
- docker_build:
24
- uses: ./.github/workflows/build.yml
@@ -1,58 +0,0 @@
1
- on:
2
- workflow_call:
3
- inputs:
4
- ref:
5
- required: false
6
- type: string
7
- default: ''
8
- description: The branch or reference to run the workflow against
9
- ruby:
10
- required: false
11
- type: string
12
- default: ''
13
- description: Deprecated - use matrix.json instead
14
- jobs:
15
- set_matrix:
16
- runs-on: ubuntu-latest
17
- outputs:
18
- matrix: ${{ steps.matrix.outputs.matrix }}
19
- steps:
20
- - name: Checkout repository
21
- uses: actions/checkout@v3
22
- with:
23
- ref: ${{ inputs.ref }}
24
- - name: Echo ./.github/matrix.json
25
- id: matrix
26
- run: |
27
- echo "matrix<<EOF" >> $GITHUB_OUTPUT
28
- cat ./.github/matrix.json >> $GITHUB_OUTPUT
29
- echo "EOF" >> $GITHUB_OUTPUT
30
- test:
31
- needs: set_matrix
32
- runs-on: ubuntu-latest
33
- name: ruby ${{ matrix.ruby }} | rails ${{ matrix.rails_version }} ${{ matrix.additional_name }}
34
- strategy:
35
- fail-fast: false
36
- matrix: ${{fromJson(needs.set_matrix.outputs.matrix)}}
37
- env:
38
- RAILS_VERSION: ${{ matrix.rails_version }}
39
- SOLR_VERSION: ${{ matrix.solr_version || 'latest' }}
40
- VIEW_COMPONENT_VERSION: ${{ matrix.view_component_version }}
41
- BOOTSTRAP_VERSION: ${{ matrix.bootstrap_version }}
42
- BLACKLIGHT_API_TEST: ${{ matrix.api }}
43
- ENGINE_CART_RAILS_OPTIONS: "--skip-git --skip-listen --skip-spring --skip-keeps --skip-kamal --skip-solid --skip-coffee --skip-test ${{ matrix.additional_engine_cart_rails_options }}"
44
- steps:
45
- - uses: actions/checkout@v4
46
- with:
47
- ref: ${{ inputs.ref }}
48
- - name: Set up Ruby
49
- uses: ruby/setup-ruby@v1
50
- with:
51
- bundler: "latest"
52
- ruby-version: ${{ matrix.ruby }}
53
- - name: Change permissions
54
- run: "chmod -f -R o-w /opt/hostedtoolcache/Ruby/3.2.5/x64/lib/ruby/gems/3.2.0/gems | :"
55
- - name: Install dependencies
56
- run: bundle install
57
- - name: Run tests
58
- run: bundle exec rake ci
@@ -1,25 +0,0 @@
1
- auto-complete [aria-selected="true"],
2
- auto-complete [role="option"]:hover {
3
- background-color: $dropdown-link-hover-bg;
4
- }
5
- auto-complete {
6
- position: relative;
7
- flex-grow: 3;
8
-
9
- ul {
10
- list-style-type: none;
11
- position: absolute;
12
- background-color: $dropdown-bg;
13
- padding-left: 0;
14
- border: 1px solid $dropdown-border-color;
15
- border-radius: $dropdown-border-radius;
16
- }
17
-
18
- [role="option"]{
19
- padding: 0.25rem 1.5rem;
20
- }
21
- }
22
-
23
- .no-js #autocomplete-popup {
24
- display: none;
25
- }
@@ -1,20 +0,0 @@
1
- // define a visually-hidden class that applies to a given breakpoint and below
2
- // https://getbootstrap.com/docs/5.3/helpers/visually-hidden/
3
- @if mixin-exists(visually-hidden) {
4
- @each $breakpoint in map-keys($grid-breakpoints) {
5
- .visually-hidden-#{$breakpoint} {
6
- @include media-breakpoint-down($breakpoint) {
7
- @include visually-hidden;
8
- }
9
- }
10
- }
11
- } @else if mixin-exists(sr-only) {
12
- // Bootstrap 4 version
13
- @each $breakpoint in map-keys($grid-breakpoints) {
14
- .visually-hidden-#{$breakpoint} {
15
- @include media-breakpoint-down($breakpoint) {
16
- @include sr-only;
17
- }
18
- }
19
- }
20
- }
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Blacklight
4
- module Icons
5
- class LegacyIconComponent < ::ViewComponent::Base
6
- def initialize(name:, classes: '', aria_hidden: false, label: true, role: 'img', additional_options: {})
7
- @name = name
8
- @classes = classes
9
- @aria_hidden = aria_hidden
10
- @icon = Blacklight::Icon.new(name, classes: classes, label: label, role: role, additional_options: additional_options)
11
- end
12
-
13
- def call
14
- tag.span(svg&.html_safe || default_icon, # rubocop:disable Rails/OutputSafety
15
- class: "blacklight-icons blacklight-icon-#{@name} #{@classes}".strip,
16
- 'aria-hidden': (true if @aria_hidden))
17
- end
18
-
19
- def svg
20
- Rails.cache.fetch([:blacklight_icon_svg, @name]) do
21
- @icon.svg if @icon.present?
22
- end
23
- end
24
-
25
- def default_icon
26
- @icon.icon_label
27
- end
28
- end
29
- end
30
- end