blacklight 9.0.0 → 9.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 (170) hide show
  1. checksums.yaml +4 -4
  2. data/.env +3 -3
  3. data/.github/matrix.json +12 -18
  4. data/.github/workflows/lint.yml +1 -1
  5. data/.github/workflows/test.yml +4 -3
  6. data/.rubocop.yml +72 -7
  7. data/.rubocop_todo.yml +142 -268
  8. data/Gemfile +1 -1
  9. data/README.md +2 -9
  10. data/VERSION +1 -1
  11. data/app/assets/builds/blacklight.css +37 -23
  12. data/app/assets/images/blacklight/logo-dark.svg +184 -0
  13. data/app/assets/images/blacklight/logo.svg +184 -0
  14. data/app/assets/javascripts/blacklight/blacklight.esm.js +128 -45
  15. data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
  16. data/app/assets/javascripts/blacklight/blacklight.js +128 -45
  17. data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
  18. data/app/assets/stylesheets/blacklight/_balanced_list.scss +1 -1
  19. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +17 -0
  20. data/app/assets/stylesheets/blacklight/_constraints.scss +2 -2
  21. data/app/assets/stylesheets/blacklight/_facets.scss +14 -10
  22. data/app/assets/stylesheets/blacklight/_header.scss +0 -4
  23. data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +5 -9
  24. data/app/components/blacklight/facets/inclusive_constraint_component.html.erb +1 -1
  25. data/app/components/blacklight/icons/checkmark_component.rb +16 -0
  26. data/app/components/blacklight/icons/circle_half_component.rb +16 -0
  27. data/app/components/blacklight/icons/moon_stars_component.rb +17 -0
  28. data/app/components/blacklight/icons/sun_component.rb +16 -0
  29. data/app/components/blacklight/metadata_field_component.rb +1 -1
  30. data/app/components/blacklight/search_navbar_component.html.erb +1 -1
  31. data/app/components/blacklight/theme_switcher_component.html.erb +31 -0
  32. data/app/components/blacklight/theme_switcher_component.rb +6 -0
  33. data/app/components/blacklight/top_navbar_component.html.erb +1 -1
  34. data/app/controllers/concerns/blacklight/bookmarks.rb +8 -14
  35. data/app/controllers/concerns/blacklight/catalog.rb +9 -10
  36. data/app/controllers/concerns/blacklight/controller.rb +54 -11
  37. data/app/controllers/concerns/blacklight/guest_user.rb +51 -0
  38. data/app/controllers/concerns/blacklight/search_context.rb +1 -1
  39. data/app/controllers/concerns/blacklight/search_history.rb +3 -1
  40. data/app/controllers/concerns/blacklight/searchable.rb +18 -0
  41. data/app/helpers/blacklight/layout_helper_behavior.rb +7 -0
  42. data/app/javascript/blacklight-frontend/color_theme_switcher.js +85 -0
  43. data/app/javascript/blacklight-frontend/index.js +2 -0
  44. data/app/models/concerns/blacklight/document/dublin_core.rb +2 -2
  45. data/app/models/concerns/blacklight/document.rb +1 -1
  46. data/app/models/concerns/blacklight/user.rb +36 -0
  47. data/app/presenters/blacklight/field_presenter.rb +1 -1
  48. data/app/presenters/blacklight/rendering/microdata.rb +1 -0
  49. data/app/services/blacklight/bookmarks_search_builder.rb +4 -4
  50. data/app/services/blacklight/search_service.rb +46 -33
  51. data/app/values/blacklight/types.rb +1 -1
  52. data/app/views/catalog/_email_form.html.erb +3 -3
  53. data/app/views/catalog/_home_text.html.erb +1 -1
  54. data/app/views/catalog/_sms_form.html.erb +4 -4
  55. data/app/views/catalog/index.rss.builder +4 -4
  56. data/app/views/catalog/opensearch.json.jbuilder +3 -0
  57. data/app/views/catalog/opensearch.xml.builder +2 -2
  58. data/app/views/layouts/blacklight/base.html.erb +13 -1
  59. data/app/views/shared/_user_util_links.html.erb +18 -5
  60. data/blacklight.gemspec +3 -3
  61. data/config/locales/blacklight.ar.yml +5 -0
  62. data/config/locales/blacklight.ca.yml +5 -0
  63. data/config/locales/blacklight.de.yml +6 -2
  64. data/config/locales/blacklight.en.yml +5 -0
  65. data/config/locales/blacklight.es.yml +5 -0
  66. data/config/locales/blacklight.fr.yml +5 -0
  67. data/config/locales/blacklight.hu.yml +5 -0
  68. data/config/locales/blacklight.it.yml +6 -2
  69. data/config/locales/blacklight.nl.yml +5 -0
  70. data/config/locales/blacklight.pt-BR.yml +6 -2
  71. data/config/locales/blacklight.sq.yml +5 -0
  72. data/config/locales/blacklight.zh.yml +5 -0
  73. data/lib/blacklight/component.rb +1 -1
  74. data/lib/blacklight/configuration/action_config_map_entry.rb +31 -0
  75. data/lib/blacklight/configuration/display_field.rb +1 -0
  76. data/lib/blacklight/configuration/field.rb +6 -6
  77. data/lib/blacklight/configuration/fields.rb +1 -1
  78. data/lib/blacklight/configuration/sort_field.rb +2 -2
  79. data/lib/blacklight/configuration.rb +30 -19
  80. data/lib/blacklight/parameters.rb +1 -1
  81. data/lib/blacklight/search_builder.rb +58 -19
  82. data/lib/blacklight/search_state.rb +4 -0
  83. data/lib/blacklight/solr/request.rb +8 -1
  84. data/lib/blacklight/solr/response/group_response.rb +1 -1
  85. data/lib/blacklight/solr/response/spelling.rb +8 -8
  86. data/lib/blacklight/solr/response.rb +2 -21
  87. data/lib/blacklight/solr/search_builder_behavior.rb +3 -9
  88. data/lib/blacklight.rb +2 -2
  89. data/lib/generators/blacklight/assets/importmap_generator.rb +2 -2
  90. data/lib/generators/blacklight/assets_generator.rb +1 -1
  91. data/lib/generators/blacklight/controller_generator.rb +1 -1
  92. data/lib/generators/blacklight/document_generator.rb +1 -1
  93. data/lib/generators/blacklight/install_generator.rb +6 -4
  94. data/lib/generators/blacklight/models_generator.rb +1 -1
  95. data/lib/generators/blacklight/search_builder_generator.rb +1 -1
  96. data/lib/generators/blacklight/solr_generator.rb +1 -1
  97. data/lib/generators/blacklight/templates/catalog_controller.rb +20 -1
  98. data/lib/generators/blacklight/templates/solr/conf/schema.xml +264 -178
  99. data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +6 -14
  100. data/lib/generators/blacklight/test_support_generator.rb +1 -1
  101. data/lib/generators/blacklight/user_generator.rb +66 -5
  102. data/lib/railties/blacklight.rake +4 -4
  103. data/package.json +2 -2
  104. data/spec/components/blacklight/document/action_component_spec.rb +1 -1
  105. data/spec/components/blacklight/document/group_component_spec.rb +1 -1
  106. data/spec/components/blacklight/document_component_spec.rb +9 -9
  107. data/spec/components/blacklight/facet_component_spec.rb +2 -2
  108. data/spec/components/blacklight/facets/index_navigation_component_spec.rb +1 -2
  109. data/spec/components/blacklight/facets/list_component_spec.rb +1 -1
  110. data/spec/components/blacklight/facets/suggest_component_spec.rb +1 -2
  111. data/spec/components/blacklight/metadata_field_component_spec.rb +26 -0
  112. data/spec/components/blacklight/skip_link_component_spec.rb +2 -2
  113. data/spec/controllers/application_controller_spec.rb +71 -0
  114. data/spec/controllers/bookmarks_controller_spec.rb +18 -5
  115. data/spec/controllers/catalog_controller_spec.rb +7 -5
  116. data/spec/features/advanced_search_spec.rb +29 -16
  117. data/spec/features/alternate_controller_spec.rb +4 -4
  118. data/spec/features/axe_spec.rb +34 -22
  119. data/spec/features/bookmarks_spec.rb +13 -13
  120. data/spec/features/dark_mode_spec.rb +42 -0
  121. data/spec/features/did_you_mean_spec.rb +27 -27
  122. data/spec/features/facet_missing_spec.rb +3 -3
  123. data/spec/features/record_view_spec.rb +14 -14
  124. data/spec/features/search_context_spec.rb +8 -8
  125. data/spec/features/search_filters_spec.rb +16 -16
  126. data/spec/features/search_formats_spec.rb +2 -2
  127. data/spec/features/search_history_spec.rb +11 -11
  128. data/spec/features/search_pagination_spec.rb +17 -17
  129. data/spec/features/search_results_spec.rb +3 -3
  130. data/spec/features/search_sort_spec.rb +4 -4
  131. data/spec/features/search_spec.rb +20 -20
  132. data/spec/helpers/blacklight/url_helper_behavior_spec.rb +15 -15
  133. data/spec/helpers/blacklight_helper_spec.rb +1 -1
  134. data/spec/helpers/catalog_helper_spec.rb +7 -7
  135. data/spec/integration/generators/blacklight/user_generator_spec.rb +60 -0
  136. data/spec/lib/blacklight/search_state/pivot_filter_field_spec.rb +1 -1
  137. data/spec/models/blacklight/configurable_spec.rb +1 -1
  138. data/spec/models/blacklight/configuration_spec.rb +0 -19
  139. data/spec/models/blacklight/document/dublin_core_spec.rb +2 -2
  140. data/spec/models/blacklight/facet_paginator_spec.rb +1 -1
  141. data/spec/models/blacklight/search_builder_spec.rb +15 -3
  142. data/spec/models/blacklight/solr/repository_spec.rb +10 -2
  143. data/spec/models/blacklight/solr/search_builder_behavior_spec.rb +3 -5
  144. data/spec/models/blacklight/user_spec.rb +32 -5
  145. data/spec/models/bookmark_spec.rb +1 -1
  146. data/spec/models/record_mailer_spec.rb +8 -8
  147. data/spec/models/search_spec.rb +1 -1
  148. data/spec/models/solr_document_spec.rb +4 -0
  149. data/spec/presenters/blacklight/index_presenter_spec.rb +1 -0
  150. data/spec/presenters/blacklight/rendering/pipeline_spec.rb +1 -0
  151. data/spec/presenters/blacklight/show_presenter_spec.rb +1 -0
  152. data/spec/presenters/blacklight/thumbnail_presenter_spec.rb +1 -0
  153. data/spec/services/blacklight/search_service_spec.rb +7 -7
  154. data/spec/spec_helper.rb +3 -12
  155. data/spec/support/features/session_helpers.rb +13 -4
  156. data/spec/support/features/turbo_helpers.rb +13 -0
  157. data/spec/support/features.rb +2 -0
  158. data/spec/support/user_helpers.rb +24 -0
  159. data/spec/test_app_templates/lib/generators/test_app_generator.rb +1 -1
  160. data/spec/views/catalog/_document.html.erb_spec.rb +4 -4
  161. data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +2 -2
  162. data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +5 -5
  163. data/spec/views/catalog/index.html.erb_spec.rb +2 -2
  164. data/spec/views/catalog/show.html.erb_spec.rb +3 -4
  165. data/spec/views/shared/_user_util_links.html.erb_spec.rb +56 -0
  166. data/template.demo.rb +2 -1
  167. metadata +30 -22
  168. data/.hound.yml +0 -4
  169. data/.jshintrc +0 -22
  170. data/app/assets/images/blacklight/logo.png +0 -0
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: 9.0.0
4
+ version: 9.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Rochkind
@@ -14,10 +14,9 @@ authors:
14
14
  - Dan Funk
15
15
  - Naomi Dushay
16
16
  - Justin Coyne
17
- autorequire:
18
17
  bindir: exe
19
18
  cert_chain: []
20
- date: 2025-11-25 00:00:00.000000000 Z
19
+ date: 2026-09-04 00:00:00.000000000 Z
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
23
22
  name: rails
@@ -25,7 +24,7 @@ dependencies:
25
24
  requirements:
26
25
  - - ">="
27
26
  - !ruby/object:Gem::Version
28
- version: '7.0'
27
+ version: '7.2'
29
28
  - - "<"
30
29
  - !ruby/object:Gem::Version
31
30
  version: '9'
@@ -35,7 +34,7 @@ dependencies:
35
34
  requirements:
36
35
  - - ">="
37
36
  - !ruby/object:Gem::Version
38
- version: '7.0'
37
+ version: '7.2'
39
38
  - - "<"
40
39
  - !ruby/object:Gem::Version
41
40
  version: '9'
@@ -113,22 +112,16 @@ dependencies:
113
112
  name: view_component
114
113
  requirement: !ruby/object:Gem::Requirement
115
114
  requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: '3.0'
119
- - - "<"
115
+ - - "~>"
120
116
  - !ruby/object:Gem::Version
121
- version: '5.0'
117
+ version: '4.0'
122
118
  type: :runtime
123
119
  prerelease: false
124
120
  version_requirements: !ruby/object:Gem::Requirement
125
121
  requirements:
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- version: '3.0'
129
- - - "<"
122
+ - - "~>"
130
123
  - !ruby/object:Gem::Version
131
- version: '5.0'
124
+ version: '4.0'
132
125
  - !ruby/object:Gem::Dependency
133
126
  name: zeitwerk
134
127
  requirement: !ruby/object:Gem::Requirement
@@ -425,8 +418,6 @@ files:
425
418
  - ".github/workflows/release_8_x_scheduled.yml"
426
419
  - ".github/workflows/test.yml"
427
420
  - ".gitignore"
428
- - ".hound.yml"
429
- - ".jshintrc"
430
421
  - ".rspec"
431
422
  - ".rubocop.yml"
432
423
  - ".rubocop_todo.yml"
@@ -440,7 +431,8 @@ files:
440
431
  - VERSION
441
432
  - app/assets/builds/blacklight.css
442
433
  - app/assets/config/blacklight/manifest.js
443
- - app/assets/images/blacklight/logo.png
434
+ - app/assets/images/blacklight/logo-dark.svg
435
+ - app/assets/images/blacklight/logo.svg
444
436
  - app/assets/images/favicon.ico
445
437
  - app/assets/javascripts/blacklight/blacklight.esm.js
446
438
  - app/assets/javascripts/blacklight/blacklight.esm.js.map
@@ -533,10 +525,14 @@ files:
533
525
  - app/components/blacklight/header_component.rb
534
526
  - app/components/blacklight/hidden_search_state_component.rb
535
527
  - app/components/blacklight/icons/bookmark_icon_component.rb
528
+ - app/components/blacklight/icons/checkmark_component.rb
529
+ - app/components/blacklight/icons/circle_half_component.rb
536
530
  - app/components/blacklight/icons/icon_component.rb
537
531
  - app/components/blacklight/icons/list_component.rb
532
+ - app/components/blacklight/icons/moon_stars_component.rb
538
533
  - app/components/blacklight/icons/remove_component.rb
539
534
  - app/components/blacklight/icons/search_component.rb
535
+ - app/components/blacklight/icons/sun_component.rb
540
536
  - app/components/blacklight/metadata_field_component.html.erb
541
537
  - app/components/blacklight/metadata_field_component.rb
542
538
  - app/components/blacklight/metadata_field_layout_component.html.erb
@@ -583,6 +579,8 @@ files:
583
579
  - app/components/blacklight/system/flash_message_component.rb
584
580
  - app/components/blacklight/system/modal_component.html.erb
585
581
  - app/components/blacklight/system/modal_component.rb
582
+ - app/components/blacklight/theme_switcher_component.html.erb
583
+ - app/components/blacklight/theme_switcher_component.rb
586
584
  - app/components/blacklight/top_navbar_component.html.erb
587
585
  - app/components/blacklight/top_navbar_component.rb
588
586
  - app/controllers/bookmarks_controller.rb
@@ -590,6 +588,7 @@ files:
590
588
  - app/controllers/concerns/blacklight/bookmarks.rb
591
589
  - app/controllers/concerns/blacklight/catalog.rb
592
590
  - app/controllers/concerns/blacklight/controller.rb
591
+ - app/controllers/concerns/blacklight/guest_user.rb
593
592
  - app/controllers/concerns/blacklight/search_context.rb
594
593
  - app/controllers/concerns/blacklight/search_history.rb
595
594
  - app/controllers/concerns/blacklight/searchable.rb
@@ -610,6 +609,7 @@ files:
610
609
  - app/javascript/blacklight-frontend/bookmark_toggle.js
611
610
  - app/javascript/blacklight-frontend/button_focus.js
612
611
  - app/javascript/blacklight-frontend/checkbox_submit.js
612
+ - app/javascript/blacklight-frontend/color_theme_switcher.js
613
613
  - app/javascript/blacklight-frontend/core.js
614
614
  - app/javascript/blacklight-frontend/debounce.js
615
615
  - app/javascript/blacklight-frontend/facet_suggest.js
@@ -709,6 +709,7 @@ files:
709
709
  - app/views/catalog/index.html.erb
710
710
  - app/views/catalog/index.json.jbuilder
711
711
  - app/views/catalog/index.rss.builder
712
+ - app/views/catalog/opensearch.json.jbuilder
712
713
  - app/views/catalog/opensearch.xml.builder
713
714
  - app/views/catalog/send_email_record.erb
714
715
  - app/views/catalog/show.html.erb
@@ -761,6 +762,7 @@ files:
761
762
  - lib/blacklight/abstract_repository.rb
762
763
  - lib/blacklight/component.rb
763
764
  - lib/blacklight/configuration.rb
765
+ - lib/blacklight/configuration/action_config_map_entry.rb
764
766
  - lib/blacklight/configuration/context.rb
765
767
  - lib/blacklight/configuration/display_field.rb
766
768
  - lib/blacklight/configuration/facet_field.rb
@@ -893,6 +895,7 @@ files:
893
895
  - spec/features/bookmarks_spec.rb
894
896
  - spec/features/citation_spec.rb
895
897
  - spec/features/component_template_override_spec.rb
898
+ - spec/features/dark_mode_spec.rb
896
899
  - spec/features/did_you_mean_spec.rb
897
900
  - spec/features/facet_missing_spec.rb
898
901
  - spec/features/facets_spec.rb
@@ -919,6 +922,7 @@ files:
919
922
  - spec/helpers/catalog_helper_spec.rb
920
923
  - spec/i18n_spec.rb
921
924
  - spec/integration/generators/blacklight/solr_generator_spec.rb
925
+ - spec/integration/generators/blacklight/user_generator_spec.rb
922
926
  - spec/lib/blacklight/component_spec.rb
923
927
  - spec/lib/blacklight/configuration/facet_field_spec.rb
924
928
  - spec/lib/blacklight/configuration/field_spec.rb
@@ -983,7 +987,9 @@ files:
983
987
  - spec/support/features.rb
984
988
  - spec/support/features/search_helpers.rb
985
989
  - spec/support/features/session_helpers.rb
990
+ - spec/support/features/turbo_helpers.rb
986
991
  - spec/support/presenter_test_helpers.rb
992
+ - spec/support/user_helpers.rb
987
993
  - spec/support/view_component_test_helpers.rb
988
994
  - spec/test_app_templates/Gemfile.extra
989
995
  - spec/test_app_templates/lib/generators/test_app_generator.rb
@@ -1010,7 +1016,6 @@ homepage: http://projectblacklight.org/
1010
1016
  licenses:
1011
1017
  - Apache 2.0
1012
1018
  metadata: {}
1013
- post_install_message:
1014
1019
  rdoc_options: []
1015
1020
  require_paths:
1016
1021
  - lib
@@ -1018,15 +1023,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1018
1023
  requirements:
1019
1024
  - - ">="
1020
1025
  - !ruby/object:Gem::Version
1021
- version: '3.1'
1026
+ version: '3.3'
1022
1027
  required_rubygems_version: !ruby/object:Gem::Requirement
1023
1028
  requirements:
1024
1029
  - - ">="
1025
1030
  - !ruby/object:Gem::Version
1026
1031
  version: '0'
1027
1032
  requirements: []
1028
- rubygems_version: 3.5.22
1029
- signing_key:
1033
+ rubygems_version: 3.6.2
1030
1034
  specification_version: 4
1031
1035
  summary: Blacklight provides a discovery interface for any Solr (http://lucene.apache.org/solr)
1032
1036
  index.
@@ -1077,6 +1081,7 @@ test_files:
1077
1081
  - spec/features/bookmarks_spec.rb
1078
1082
  - spec/features/citation_spec.rb
1079
1083
  - spec/features/component_template_override_spec.rb
1084
+ - spec/features/dark_mode_spec.rb
1080
1085
  - spec/features/did_you_mean_spec.rb
1081
1086
  - spec/features/facet_missing_spec.rb
1082
1087
  - spec/features/facets_spec.rb
@@ -1103,6 +1108,7 @@ test_files:
1103
1108
  - spec/helpers/catalog_helper_spec.rb
1104
1109
  - spec/i18n_spec.rb
1105
1110
  - spec/integration/generators/blacklight/solr_generator_spec.rb
1111
+ - spec/integration/generators/blacklight/user_generator_spec.rb
1106
1112
  - spec/lib/blacklight/component_spec.rb
1107
1113
  - spec/lib/blacklight/configuration/facet_field_spec.rb
1108
1114
  - spec/lib/blacklight/configuration/field_spec.rb
@@ -1167,7 +1173,9 @@ test_files:
1167
1173
  - spec/support/features.rb
1168
1174
  - spec/support/features/search_helpers.rb
1169
1175
  - spec/support/features/session_helpers.rb
1176
+ - spec/support/features/turbo_helpers.rb
1170
1177
  - spec/support/presenter_test_helpers.rb
1178
+ - spec/support/user_helpers.rb
1171
1179
  - spec/support/view_component_test_helpers.rb
1172
1180
  - spec/test_app_templates/Gemfile.extra
1173
1181
  - spec/test_app_templates/lib/generators/test_app_generator.rb
data/.hound.yml DELETED
@@ -1,4 +0,0 @@
1
- ruby:
2
- config_file: .rubocop.yml
3
- javascript:
4
- config_file: .jshintrc
data/.jshintrc DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "asi": true,
3
- "browser": true,
4
- "jquery": true,
5
- "node": true,
6
- "esnext": true,
7
- "camelcase": true,
8
- "eqeqeq": true,
9
- "indent": 2,
10
- "latedef": true,
11
- "maxlen": 80,
12
- "newcap": true,
13
- "quotmark": "single",
14
- "strict": true,
15
- "undef": true,
16
- "unused": true,
17
- "eqnull": true,
18
- "predef": [
19
- "Blacklight",
20
- "Rails"
21
- ]
22
- }
Binary file