blacklight 8.3.0 → 8.5.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 (142) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +10 -6
  3. data/.rubocop.yml +3 -0
  4. data/.rubocop_todo.yml +22 -55
  5. data/Gemfile +2 -10
  6. data/README.md +2 -2
  7. data/VERSION +1 -1
  8. data/app/assets/javascripts/blacklight/blacklight.esm.js +13 -7
  9. data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
  10. data/app/assets/javascripts/blacklight/blacklight.js +13 -7
  11. data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
  12. data/app/assets/stylesheets/blacklight/_balanced_list.scss +1 -1
  13. data/app/assets/stylesheets/blacklight/_bookmark.scss +30 -0
  14. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +0 -4
  15. data/app/assets/stylesheets/blacklight/_constraints.scss +15 -9
  16. data/app/assets/stylesheets/blacklight/_controls.scss +0 -1
  17. data/app/assets/stylesheets/blacklight/_facets.scss +33 -37
  18. data/app/assets/stylesheets/blacklight/_header.scss +2 -35
  19. data/app/assets/stylesheets/blacklight/_icons.scss +3 -2
  20. data/app/assets/stylesheets/blacklight/_layout.scss +3 -0
  21. data/app/assets/stylesheets/blacklight/_mixins.scss +4 -4
  22. data/app/assets/stylesheets/blacklight/_search_form.scss +3 -8
  23. data/app/assets/stylesheets/blacklight/_search_history.scss +5 -5
  24. data/app/assets/stylesheets/blacklight/_search_results.scss +5 -2
  25. data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +16 -10
  26. data/app/components/blacklight/advanced_search_form_component.html.erb +1 -1
  27. data/app/components/blacklight/advanced_search_form_component.rb +6 -0
  28. data/app/components/blacklight/constraint_layout_component.html.erb +2 -9
  29. data/app/components/blacklight/constraint_layout_component.rb +8 -0
  30. data/app/components/blacklight/constraints_component.rb +3 -3
  31. data/app/components/blacklight/document/action_component.rb +2 -1
  32. data/app/components/blacklight/document/bookmark_component.html.erb +2 -1
  33. data/app/components/blacklight/document/bookmark_component.rb +6 -0
  34. data/app/components/blacklight/document/page_header_component.html.erb +7 -0
  35. data/app/components/blacklight/document/page_header_component.rb +85 -0
  36. data/app/components/blacklight/document_component.rb +1 -1
  37. data/app/components/blacklight/facet_component.rb +1 -1
  38. data/app/components/blacklight/facet_field_checkboxes_component.html.erb +1 -1
  39. data/app/components/blacklight/facet_field_checkboxes_component.rb +1 -1
  40. data/app/components/blacklight/facet_field_inclusive_constraint_component.html.erb +1 -1
  41. data/app/components/blacklight/facet_field_list_component.html.erb +1 -1
  42. data/app/components/blacklight/facet_item_component.rb +1 -1
  43. data/app/components/blacklight/icons/bookmark_icon_component.rb +17 -0
  44. data/app/components/blacklight/icons/icon_component.rb +9 -4
  45. data/app/components/blacklight/icons/remove_component.rb +16 -0
  46. data/app/components/blacklight/metadata_field_component.html.erb +1 -1
  47. data/app/components/blacklight/metadata_field_component.rb +5 -0
  48. data/app/components/blacklight/response/facet_group_component.rb +1 -1
  49. data/app/components/blacklight/response/pagination_component.html.erb +1 -1
  50. data/app/components/blacklight/response/sort_component.html.erb +1 -6
  51. data/app/components/blacklight/response/sort_component.rb +15 -0
  52. data/app/components/blacklight/search/per_page_component.html.erb +2 -0
  53. data/app/components/blacklight/search/per_page_component.rb +50 -0
  54. data/app/components/blacklight/search_bar_component.html.erb +1 -1
  55. data/app/components/blacklight/search_context/server_item_pagination_component.html.erb +5 -4
  56. data/app/components/blacklight/search_context/server_item_pagination_component.rb +1 -1
  57. data/app/components/blacklight/skip_link_component.html.erb +7 -0
  58. data/app/components/blacklight/skip_link_component.rb +17 -0
  59. data/app/components/blacklight/system/dropdown_button_component.rb +18 -0
  60. data/app/components/blacklight/system/dropdown_component.rb +3 -6
  61. data/app/components/blacklight/system/flash_message_component.html.erb +1 -1
  62. data/app/components/blacklight/top_navbar_component.html.erb +2 -2
  63. data/app/components/blacklight/top_navbar_component.rb +4 -0
  64. data/app/helpers/blacklight/catalog_helper_behavior.rb +2 -0
  65. data/app/helpers/blacklight/component_helper_behavior.rb +4 -4
  66. data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -0
  67. data/app/helpers/blacklight/document_helper_behavior.rb +14 -0
  68. data/app/javascript/blacklight/checkbox_submit.js +7 -1
  69. data/app/javascript/blacklight/core.js +5 -5
  70. data/app/models/concerns/blacklight/document/semantic_fields.rb +1 -1
  71. data/app/presenters/blacklight/facet_checkbox_item_presenter.rb +11 -0
  72. data/app/presenters/blacklight/facet_field_presenter.rb +9 -1
  73. data/app/services/blacklight/search_service.rb +9 -1
  74. data/app/views/catalog/_per_page_widget.html.erb +1 -10
  75. data/app/views/catalog/_search_results.html.erb +1 -1
  76. data/app/views/catalog/_show_main_content.html.erb +1 -1
  77. data/app/views/catalog/_show_sidebar.html.erb +1 -0
  78. data/app/views/catalog/show.html.erb +3 -3
  79. data/app/views/catalog/suggest.html.erb +1 -1
  80. data/app/views/kaminari/blacklight/_page.html.erb +14 -8
  81. data/app/views/kaminari/blacklight/_paginator.html.erb +2 -1
  82. data/app/views/layouts/blacklight/base.html.erb +3 -5
  83. data/blacklight.gemspec +6 -2
  84. data/{docker-compose.yml → compose.yaml} +1 -1
  85. data/config/locales/blacklight.ar.yml +3 -0
  86. data/config/locales/blacklight.de.yml +3 -0
  87. data/config/locales/blacklight.en.yml +216 -229
  88. data/config/locales/blacklight.es.yml +3 -0
  89. data/config/locales/blacklight.fr.yml +3 -0
  90. data/config/locales/blacklight.hu.yml +3 -0
  91. data/config/locales/blacklight.it.yml +3 -0
  92. data/config/locales/blacklight.nl.yml +3 -0
  93. data/config/locales/blacklight.pt-BR.yml +3 -0
  94. data/config/locales/blacklight.sq.yml +3 -0
  95. data/config/locales/blacklight.zh.yml +3 -0
  96. data/lib/blacklight/abstract_repository.rb +6 -0
  97. data/lib/blacklight/component.rb +10 -47
  98. data/lib/blacklight/configuration.rb +32 -19
  99. data/lib/blacklight/engine.rb +6 -0
  100. data/lib/blacklight/parameters.rb +1 -1
  101. data/lib/blacklight/solr/repository.rb +11 -4
  102. data/lib/blacklight/solr/response/params.rb +1 -1
  103. data/lib/blacklight/solr/response.rb +0 -12
  104. data/lib/blacklight/solr/search_builder_behavior.rb +1 -1
  105. data/lib/blacklight/solr.rb +0 -6
  106. data/lib/blacklight.rb +4 -14
  107. data/lib/generators/blacklight/assets/propshaft_generator.rb +2 -2
  108. data/lib/generators/blacklight/models_generator.rb +1 -1
  109. data/lib/generators/blacklight/user_generator.rb +2 -0
  110. data/package.json +3 -2
  111. data/rollup.config.js +6 -12
  112. data/spec/components/blacklight/document/action_component_spec.rb +1 -1
  113. data/spec/components/blacklight/document/page_header_component_spec.rb +92 -0
  114. data/spec/components/blacklight/document_component_spec.rb +20 -0
  115. data/spec/components/blacklight/icons/icon_component_spec.rb +42 -0
  116. data/spec/components/blacklight/search_context/server_item_pagination_component_spec.rb +13 -2
  117. data/spec/controllers/blacklight/catalog_spec.rb +1 -1
  118. data/spec/controllers/catalog_controller_spec.rb +5 -5
  119. data/spec/features/advanced_search_spec.rb +16 -2
  120. data/spec/features/bookmarks_spec.rb +15 -0
  121. data/spec/features/search_context_spec.rb +2 -1
  122. data/spec/helpers/blacklight/facets_helper_behavior_spec.rb +2 -2
  123. data/spec/lib/blacklight/component_spec.rb +32 -27
  124. data/spec/lib/blacklight/nested_open_struct_with_hash_access_spec.rb +1 -1
  125. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +1 -1
  126. data/spec/models/blacklight/configuration_spec.rb +12 -12
  127. data/spec/models/blacklight/solr/document_spec.rb +2 -2
  128. data/spec/models/blacklight/solr/repository_spec.rb +31 -13
  129. data/spec/models/blacklight/solr/response/facets_spec.rb +2 -2
  130. data/spec/models/blacklight/solr/response/group_spec.rb +1 -1
  131. data/spec/models/blacklight/solr/response_spec.rb +2 -2
  132. data/spec/models/blacklight/solr/search_builder_behavior_spec.rb +1 -1
  133. data/spec/models/bookmark_spec.rb +1 -1
  134. data/spec/presenters/blacklight/document_presenter_spec.rb +2 -2
  135. data/spec/presenters/blacklight/facet_checkbox_item_presenter_spec.rb +42 -0
  136. data/spec/presenters/blacklight/facet_field_presenter_spec.rb +14 -0
  137. data/spec/requests/load_suggestions_spec.rb +5 -5
  138. data/spec/services/blacklight/search_service_spec.rb +2 -2
  139. data/spec/spec_helper.rb +5 -2
  140. data/spec/test_app_templates/lib/generators/test_app_generator.rb +1 -1
  141. data/tasks/blacklight.rake +6 -6
  142. metadata +86 -8
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.3.0
4
+ version: 8.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Rochkind
@@ -17,7 +17,7 @@ authors:
17
17
  autorequire:
18
18
  bindir: exe
19
19
  cert_chain: []
20
- date: 2024-06-07 00:00:00.000000000 Z
20
+ date: 2024-10-23 00:00:00.000000000 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  name: rails
@@ -115,7 +115,7 @@ dependencies:
115
115
  requirements:
116
116
  - - ">="
117
117
  - !ruby/object:Gem::Version
118
- version: '2.66'
118
+ version: '2.74'
119
119
  - - "<"
120
120
  - !ruby/object:Gem::Version
121
121
  version: '4'
@@ -125,10 +125,24 @@ dependencies:
125
125
  requirements:
126
126
  - - ">="
127
127
  - !ruby/object:Gem::Version
128
- version: '2.66'
128
+ version: '2.74'
129
129
  - - "<"
130
130
  - !ruby/object:Gem::Version
131
131
  version: '4'
132
+ - !ruby/object:Gem::Dependency
133
+ name: zeitwerk
134
+ requirement: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ type: :runtime
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
132
146
  - !ruby/object:Gem::Dependency
133
147
  name: rsolr
134
148
  requirement: !ruby/object:Gem::Requirement
@@ -153,16 +167,22 @@ dependencies:
153
167
  name: rspec-rails
154
168
  requirement: !ruby/object:Gem::Requirement
155
169
  requirements:
156
- - - "~>"
170
+ - - ">="
157
171
  - !ruby/object:Gem::Version
158
172
  version: '6.1'
173
+ - - "<"
174
+ - !ruby/object:Gem::Version
175
+ version: '8'
159
176
  type: :development
160
177
  prerelease: false
161
178
  version_requirements: !ruby/object:Gem::Requirement
162
179
  requirements:
163
- - - "~>"
180
+ - - ">="
164
181
  - !ruby/object:Gem::Version
165
182
  version: '6.1'
183
+ - - "<"
184
+ - !ruby/object:Gem::Version
185
+ version: '8'
166
186
  - !ruby/object:Gem::Dependency
167
187
  name: rspec-collection_matchers
168
188
  requirement: !ruby/object:Gem::Requirement
@@ -303,6 +323,48 @@ dependencies:
303
323
  - - ">="
304
324
  - !ruby/object:Gem::Version
305
325
  version: '0'
326
+ - !ruby/object:Gem::Dependency
327
+ name: rubocop-capybara
328
+ requirement: !ruby/object:Gem::Requirement
329
+ requirements:
330
+ - - ">="
331
+ - !ruby/object:Gem::Version
332
+ version: '0'
333
+ type: :development
334
+ prerelease: false
335
+ version_requirements: !ruby/object:Gem::Requirement
336
+ requirements:
337
+ - - ">="
338
+ - !ruby/object:Gem::Version
339
+ version: '0'
340
+ - !ruby/object:Gem::Dependency
341
+ name: rubocop-rspec_rails
342
+ requirement: !ruby/object:Gem::Requirement
343
+ requirements:
344
+ - - ">="
345
+ - !ruby/object:Gem::Version
346
+ version: '0'
347
+ type: :development
348
+ prerelease: false
349
+ version_requirements: !ruby/object:Gem::Requirement
350
+ requirements:
351
+ - - ">="
352
+ - !ruby/object:Gem::Version
353
+ version: '0'
354
+ - !ruby/object:Gem::Dependency
355
+ name: rubocop-factory_bot
356
+ requirement: !ruby/object:Gem::Requirement
357
+ requirements:
358
+ - - ">="
359
+ - !ruby/object:Gem::Version
360
+ version: '0'
361
+ type: :development
362
+ prerelease: false
363
+ version_requirements: !ruby/object:Gem::Requirement
364
+ requirements:
365
+ - - ">="
366
+ - !ruby/object:Gem::Version
367
+ version: '0'
306
368
  - !ruby/object:Gem::Dependency
307
369
  name: i18n-tasks
308
370
  requirement: !ruby/object:Gem::Requirement
@@ -409,6 +471,8 @@ files:
409
471
  - app/components/blacklight/document/group_component.rb
410
472
  - app/components/blacklight/document/more_like_this_component.html.erb
411
473
  - app/components/blacklight/document/more_like_this_component.rb
474
+ - app/components/blacklight/document/page_header_component.html.erb
475
+ - app/components/blacklight/document/page_header_component.rb
412
476
  - app/components/blacklight/document/show_tools_component.html.erb
413
477
  - app/components/blacklight/document/show_tools_component.rb
414
478
  - app/components/blacklight/document/sidebar_component.html.erb
@@ -440,9 +504,11 @@ files:
440
504
  - app/components/blacklight/header_component.html.erb
441
505
  - app/components/blacklight/header_component.rb
442
506
  - app/components/blacklight/hidden_search_state_component.rb
507
+ - app/components/blacklight/icons/bookmark_icon_component.rb
443
508
  - app/components/blacklight/icons/icon_component.rb
444
509
  - app/components/blacklight/icons/legacy_icon_component.rb
445
510
  - app/components/blacklight/icons/list_component.rb
511
+ - app/components/blacklight/icons/remove_component.rb
446
512
  - app/components/blacklight/icons/search_component.rb
447
513
  - app/components/blacklight/metadata_field_component.html.erb
448
514
  - app/components/blacklight/metadata_field_component.rb
@@ -461,6 +527,8 @@ files:
461
527
  - app/components/blacklight/response/view_type_button_component.rb
462
528
  - app/components/blacklight/response/view_type_component.html.erb
463
529
  - app/components/blacklight/response/view_type_component.rb
530
+ - app/components/blacklight/search/per_page_component.html.erb
531
+ - app/components/blacklight/search/per_page_component.rb
464
532
  - app/components/blacklight/search/sidebar_component.html.erb
465
533
  - app/components/blacklight/search/sidebar_component.rb
466
534
  - app/components/blacklight/search_bar_component.html.erb
@@ -475,7 +543,10 @@ files:
475
543
  - app/components/blacklight/search_history_constraint_layout_component.rb
476
544
  - app/components/blacklight/search_navbar_component.html.erb
477
545
  - app/components/blacklight/search_navbar_component.rb
546
+ - app/components/blacklight/skip_link_component.html.erb
547
+ - app/components/blacklight/skip_link_component.rb
478
548
  - app/components/blacklight/start_over_button_component.rb
549
+ - app/components/blacklight/system/dropdown_button_component.rb
479
550
  - app/components/blacklight/system/dropdown_component.html.erb
480
551
  - app/components/blacklight/system/dropdown_component.rb
481
552
  - app/components/blacklight/system/flash_message_component.html.erb
@@ -536,6 +607,7 @@ files:
536
607
  - app/models/solr_document.rb
537
608
  - app/presenters/blacklight/clause_presenter.rb
538
609
  - app/presenters/blacklight/document_presenter.rb
610
+ - app/presenters/blacklight/facet_checkbox_item_presenter.rb
539
611
  - app/presenters/blacklight/facet_field_presenter.rb
540
612
  - app/presenters/blacklight/facet_grouped_item_presenter.rb
541
613
  - app/presenters/blacklight/facet_item_pivot_presenter.rb
@@ -646,6 +718,7 @@ files:
646
718
  - app/views/shared/_sitelinks_search_box.html.erb
647
719
  - app/views/shared/_user_util_links.html.erb
648
720
  - blacklight.gemspec
721
+ - compose.yaml
649
722
  - config/i18n-tasks.yml
650
723
  - config/importmap.rb
651
724
  - config/locales/blacklight.ar.yml
@@ -664,7 +737,6 @@ files:
664
737
  - db/migrate/20140202020201_create_searches.rb
665
738
  - db/migrate/20140202020202_create_bookmarks.rb
666
739
  - db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb
667
- - docker-compose.yml
668
740
  - lib/blacklight.rb
669
741
  - lib/blacklight/abstract_repository.rb
670
742
  - lib/blacklight/component.rb
@@ -757,6 +829,7 @@ files:
757
829
  - spec/components/blacklight/constraints_component_spec.rb
758
830
  - spec/components/blacklight/document/action_component_spec.rb
759
831
  - spec/components/blacklight/document/group_component_spec.rb
832
+ - spec/components/blacklight/document/page_header_component_spec.rb
760
833
  - spec/components/blacklight/document/sidebar_component_spec.rb
761
834
  - spec/components/blacklight/document_component_spec.rb
762
835
  - spec/components/blacklight/document_metadata_component_spec.rb
@@ -767,6 +840,7 @@ files:
767
840
  - spec/components/blacklight/facet_item_pivot_component_spec.rb
768
841
  - spec/components/blacklight/header_component_spec.rb
769
842
  - spec/components/blacklight/hidden_search_state_component_spec.rb
843
+ - spec/components/blacklight/icons/icon_component_spec.rb
770
844
  - spec/components/blacklight/metadata_field_component_spec.rb
771
845
  - spec/components/blacklight/response/pagination_component_spec.rb
772
846
  - spec/components/blacklight/response/spellcheck_component_spec.rb
@@ -858,6 +932,7 @@ files:
858
932
  - spec/models/solr_document_spec.rb
859
933
  - spec/presenters/blacklight/clause_presenter_spec.rb
860
934
  - spec/presenters/blacklight/document_presenter_spec.rb
935
+ - spec/presenters/blacklight/facet_checkbox_item_presenter_spec.rb
861
936
  - spec/presenters/blacklight/facet_field_presenter_spec.rb
862
937
  - spec/presenters/blacklight/facet_grouped_item_presenter_spec.rb
863
938
  - spec/presenters/blacklight/facet_item_presenter_spec.rb
@@ -925,7 +1000,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
925
1000
  - !ruby/object:Gem::Version
926
1001
  version: '0'
927
1002
  requirements: []
928
- rubygems_version: 3.5.10
1003
+ rubygems_version: 3.5.9
929
1004
  signing_key:
930
1005
  specification_version: 4
931
1006
  summary: Blacklight provides a discovery interface for any Solr (http://lucene.apache.org/solr)
@@ -936,6 +1011,7 @@ test_files:
936
1011
  - spec/components/blacklight/constraints_component_spec.rb
937
1012
  - spec/components/blacklight/document/action_component_spec.rb
938
1013
  - spec/components/blacklight/document/group_component_spec.rb
1014
+ - spec/components/blacklight/document/page_header_component_spec.rb
939
1015
  - spec/components/blacklight/document/sidebar_component_spec.rb
940
1016
  - spec/components/blacklight/document_component_spec.rb
941
1017
  - spec/components/blacklight/document_metadata_component_spec.rb
@@ -946,6 +1022,7 @@ test_files:
946
1022
  - spec/components/blacklight/facet_item_pivot_component_spec.rb
947
1023
  - spec/components/blacklight/header_component_spec.rb
948
1024
  - spec/components/blacklight/hidden_search_state_component_spec.rb
1025
+ - spec/components/blacklight/icons/icon_component_spec.rb
949
1026
  - spec/components/blacklight/metadata_field_component_spec.rb
950
1027
  - spec/components/blacklight/response/pagination_component_spec.rb
951
1028
  - spec/components/blacklight/response/spellcheck_component_spec.rb
@@ -1037,6 +1114,7 @@ test_files:
1037
1114
  - spec/models/solr_document_spec.rb
1038
1115
  - spec/presenters/blacklight/clause_presenter_spec.rb
1039
1116
  - spec/presenters/blacklight/document_presenter_spec.rb
1117
+ - spec/presenters/blacklight/facet_checkbox_item_presenter_spec.rb
1040
1118
  - spec/presenters/blacklight/facet_field_presenter_spec.rb
1041
1119
  - spec/presenters/blacklight/facet_grouped_item_presenter_spec.rb
1042
1120
  - spec/presenters/blacklight/facet_item_presenter_spec.rb