arclight 0.1.0 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. checksums.yaml +5 -5
  2. data/.all-contributorsrc +450 -0
  3. data/.codeclimate.yml +5 -0
  4. data/.eslintrc +14 -4
  5. data/.github/workflows/ruby.yml +51 -0
  6. data/.gitignore +2 -0
  7. data/.rspec +0 -1
  8. data/.rubocop.yml +503 -48
  9. data/.rubocop_todo.yml +122 -0
  10. data/.solr_wrapper +2 -1
  11. data/CONTRIBUTING.md +5 -5
  12. data/CONTRIBUTORS.md +79 -0
  13. data/Gemfile +15 -10
  14. data/README.md +47 -32
  15. data/Rakefile +0 -1
  16. data/app/assets/images/blacklight/bookmark.svg +1 -0
  17. data/app/assets/images/blacklight/collection.svg +5 -0
  18. data/app/assets/images/blacklight/compact.svg +1 -25
  19. data/app/assets/images/blacklight/container.svg +5 -0
  20. data/app/assets/images/blacklight/ead.svg +1 -0
  21. data/app/assets/images/blacklight/file.svg +5 -0
  22. data/app/assets/images/blacklight/folder.svg +1 -0
  23. data/app/assets/images/blacklight/list.svg +1 -0
  24. data/app/assets/images/blacklight/minus.svg +1 -0
  25. data/app/assets/images/blacklight/online.svg +5 -0
  26. data/app/assets/images/blacklight/pdf.svg +1 -0
  27. data/app/assets/images/blacklight/plus.svg +1 -0
  28. data/app/assets/images/blacklight/repository.svg +1 -0
  29. data/app/assets/javascripts/arclight/arclight.js +4 -9
  30. data/app/assets/javascripts/arclight/oembed_controller.js +58 -0
  31. data/app/assets/javascripts/arclight/truncate_controller.js +27 -0
  32. data/app/assets/stylesheets/arclight/application.scss +4 -3
  33. data/app/assets/stylesheets/arclight/build.scss +4 -0
  34. data/app/assets/stylesheets/arclight/modules/hierarchy_and_online_contents.scss +117 -136
  35. data/app/assets/stylesheets/arclight/modules/highlights.scss +3 -2
  36. data/app/assets/stylesheets/arclight/modules/icons.scss +20 -0
  37. data/app/assets/stylesheets/arclight/modules/layout.scss +203 -16
  38. data/app/assets/stylesheets/arclight/modules/mastheads.scss +27 -45
  39. data/app/assets/stylesheets/arclight/modules/repositories.scss +3 -7
  40. data/app/assets/stylesheets/arclight/modules/repository_card.scss +5 -50
  41. data/app/assets/stylesheets/arclight/modules/search_form.scss +9 -0
  42. data/app/assets/stylesheets/arclight/modules/search_results.scss +200 -25
  43. data/app/assets/stylesheets/arclight/modules/show_collection.scss +21 -61
  44. data/app/assets/stylesheets/arclight/modules/truncator.scss +58 -0
  45. data/app/assets/stylesheets/arclight/responsive.scss +13 -0
  46. data/app/assets/stylesheets/arclight/variables.scss +25 -2
  47. data/app/components/arclight/access_component.html.erb +14 -0
  48. data/app/components/arclight/access_component.rb +25 -0
  49. data/app/components/arclight/bookmark_component.html.erb +25 -0
  50. data/app/components/arclight/bookmark_component.rb +9 -0
  51. data/app/components/arclight/breadcrumb_component.rb +50 -0
  52. data/app/components/arclight/breadcrumbs_hierarchy_component.html.erb +34 -0
  53. data/app/components/arclight/breadcrumbs_hierarchy_component.rb +25 -0
  54. data/app/components/arclight/collection_context_component.html.erb +12 -0
  55. data/app/components/arclight/collection_context_component.rb +27 -0
  56. data/app/components/arclight/collection_info_component.html.erb +28 -0
  57. data/app/components/arclight/collection_info_component.rb +26 -0
  58. data/app/components/arclight/collection_sidebar_component.html.erb +15 -0
  59. data/app/components/arclight/collection_sidebar_component.rb +39 -0
  60. data/app/{views/catalog/_search_results_repository.html.erb → components/arclight/constraints_component.html.erb} +2 -1
  61. data/app/components/arclight/constraints_component.rb +17 -0
  62. data/app/components/arclight/document_collection_context_component.html.erb +29 -0
  63. data/app/components/arclight/document_collection_context_component.rb +28 -0
  64. data/app/components/arclight/document_collection_hierarchy_component.html.erb +50 -0
  65. data/app/components/arclight/document_collection_hierarchy_component.rb +62 -0
  66. data/app/components/arclight/document_component.html.erb +39 -0
  67. data/app/components/arclight/document_component.rb +49 -0
  68. data/app/components/arclight/document_components_hierarchy_component.html.erb +20 -0
  69. data/app/components/arclight/document_components_hierarchy_component.rb +34 -0
  70. data/app/components/arclight/document_download_component.html.erb +24 -0
  71. data/app/components/arclight/document_download_component.rb +71 -0
  72. data/app/components/arclight/embed_component.html.erb +10 -0
  73. data/app/components/arclight/embed_component.rb +43 -0
  74. data/app/components/arclight/expand_hierarchy_button_component.html.erb +5 -0
  75. data/app/components/arclight/expand_hierarchy_button_component.rb +16 -0
  76. data/app/components/arclight/group_component.html.erb +34 -0
  77. data/app/components/arclight/group_component.rb +23 -0
  78. data/app/components/arclight/header_component.html.erb +5 -0
  79. data/app/components/arclight/header_component.rb +10 -0
  80. data/app/components/arclight/index_metadata_field_component.html.erb +16 -0
  81. data/app/components/arclight/index_metadata_field_component.rb +20 -0
  82. data/app/components/arclight/masthead_component.html.erb +17 -0
  83. data/app/components/arclight/masthead_component.rb +10 -0
  84. data/app/components/arclight/metadata_section_component.html.erb +13 -0
  85. data/app/components/arclight/metadata_section_component.rb +22 -0
  86. data/app/components/arclight/oembed_viewer_component.html.erb +5 -0
  87. data/app/components/arclight/oembed_viewer_component.rb +16 -0
  88. data/app/components/arclight/online_content_filter_component.html.erb +15 -0
  89. data/app/components/arclight/online_content_filter_component.rb +17 -0
  90. data/app/components/arclight/online_status_indicator_component.rb +19 -0
  91. data/app/components/arclight/repository_breadcrumb_component.html.erb +10 -0
  92. data/app/components/arclight/repository_breadcrumb_component.rb +17 -0
  93. data/app/components/arclight/repository_location_component.html.erb +20 -0
  94. data/app/components/arclight/repository_location_component.rb +10 -0
  95. data/app/components/arclight/search_bar_component.html.erb +27 -0
  96. data/app/components/arclight/search_bar_component.rb +32 -0
  97. data/app/components/arclight/search_result_breadcrumbs_component.html.erb +6 -0
  98. data/app/components/arclight/search_result_breadcrumbs_component.rb +37 -0
  99. data/app/components/arclight/search_result_component.html.erb +20 -0
  100. data/app/components/arclight/search_result_component.rb +18 -0
  101. data/app/components/arclight/search_result_title_component.html.erb +15 -0
  102. data/app/components/arclight/search_result_title_component.rb +15 -0
  103. data/app/components/arclight/sidebar_component.html.erb +9 -0
  104. data/app/components/arclight/sidebar_component.rb +19 -0
  105. data/app/components/arclight/upper_metadata_layout_component.rb +10 -0
  106. data/app/components/blacklight/icons/bookmark_component.rb +12 -0
  107. data/app/components/blacklight/icons/collection_component.rb +14 -0
  108. data/app/components/blacklight/icons/compact_component.rb +12 -0
  109. data/app/components/blacklight/icons/container_component.rb +14 -0
  110. data/app/components/blacklight/icons/ead_component.rb +12 -0
  111. data/app/components/blacklight/icons/file_component.rb +14 -0
  112. data/app/components/blacklight/icons/folder_component.rb +12 -0
  113. data/app/components/blacklight/icons/online_component.rb +15 -0
  114. data/app/components/blacklight/icons/pdf_component.rb +12 -0
  115. data/app/components/blacklight/icons/repository_component.rb +12 -0
  116. data/app/controllers/arclight/repositories_controller.rb +4 -4
  117. data/app/helpers/arclight/ead_format_helpers.rb +309 -0
  118. data/app/helpers/arclight/field_config_helpers.rb +26 -0
  119. data/app/helpers/arclight_helper.rb +55 -120
  120. data/app/models/arclight/document_downloads.rb +122 -0
  121. data/app/models/arclight/parent.rb +9 -9
  122. data/app/models/arclight/parents.rb +9 -4
  123. data/app/models/arclight/requests/aeon_external_request.rb +42 -0
  124. data/app/models/arclight/requests/aeon_web_ead.rb +52 -0
  125. data/app/models/arclight/requests/google_form.rb +8 -3
  126. data/app/models/concerns/arclight/catalog.rb +33 -11
  127. data/app/models/concerns/arclight/search_behavior.rb +22 -21
  128. data/app/models/concerns/arclight/solr_document.rb +88 -59
  129. data/app/presenters/arclight/show_presenter.rb +34 -7
  130. data/app/views/arclight/_requests.html.erb +7 -0
  131. data/app/views/arclight/repositories/_repository.html.erb +22 -41
  132. data/app/views/arclight/repositories/index.html.erb +5 -0
  133. data/app/views/arclight/repositories/show.html.erb +7 -8
  134. data/app/views/arclight/requests/_aeon_external_request_endpoint.html.erb +8 -0
  135. data/app/views/arclight/requests/_aeon_web_ead.html.erb +6 -0
  136. data/app/views/arclight/requests/_google_form.html.erb +4 -5
  137. data/app/views/catalog/_document_list.html.erb +8 -0
  138. data/app/views/catalog/_group.html.erb +4 -0
  139. data/app/views/catalog/_group_toggle.html.erb +10 -0
  140. data/app/views/catalog/_search_results_header.html.erb +3 -0
  141. data/app/views/catalog/hierarchy.html.erb +19 -0
  142. data/app/views/catalog/index.html.erb +16 -7
  143. data/app/views/shared/_breadcrumbs.html.erb +3 -15
  144. data/app/views/shared/_main_menu_links.html.erb +1 -1
  145. data/arclight.gemspec +22 -17
  146. data/config/breadcrumbs.rb +24 -0
  147. data/config/i18n-tasks.yml +134 -0
  148. data/config/importmap.rb +3 -0
  149. data/config/locales/arclight.en.yml +90 -55
  150. data/config/routes.rb +1 -1
  151. data/docker-compose.yml +16 -0
  152. data/lib/arclight/digital_object.rb +2 -1
  153. data/lib/arclight/engine.rb +23 -31
  154. data/lib/arclight/exceptions.rb +1 -0
  155. data/lib/arclight/hash_absolute_xpath.rb +62 -0
  156. data/lib/arclight/level_label.rb +46 -0
  157. data/lib/arclight/missing_id_strategy.rb +21 -0
  158. data/lib/arclight/normalized_date.rb +24 -20
  159. data/lib/arclight/normalized_id.rb +7 -2
  160. data/lib/arclight/normalized_title.rb +3 -0
  161. data/lib/arclight/repository.rb +72 -47
  162. data/lib/arclight/routes/hierarchy.rb +19 -0
  163. data/lib/arclight/routes.rb +8 -0
  164. data/lib/arclight/traject/ead2_component_config.rb +335 -0
  165. data/lib/arclight/traject/ead2_config.rb +316 -0
  166. data/lib/arclight/traject/nokogiri_namespaceless_reader.rb +22 -0
  167. data/lib/arclight/version.rb +1 -1
  168. data/lib/arclight/year_range.rb +13 -4
  169. data/lib/arclight.rb +6 -1
  170. data/lib/generators/arclight/install_generator.rb +110 -10
  171. data/lib/generators/arclight/templates/arclight.scss +6 -3
  172. data/lib/generators/arclight/templates/catalog_controller.rb +249 -173
  173. data/lib/generators/arclight/templates/config/downloads.yml +12 -0
  174. data/lib/generators/arclight/templates/config/locales/arclight.en.yml +61 -0
  175. data/lib/generators/arclight/templates/config/repositories.yml +42 -31
  176. data/lib/generators/arclight/update_generator.rb +1 -1
  177. data/lib/tasks/index.rake +25 -28
  178. data/package.json +15 -9
  179. data/solr/conf/schema.xml +101 -332
  180. data/solr/conf/solrconfig.xml +99 -164
  181. data/tasks/arclight.rake +22 -11
  182. data/template.rb +6 -11
  183. metadata +230 -105
  184. data/.travis.yml +0 -33
  185. data/app/assets/javascripts/arclight/collection_context.js +0 -18
  186. data/app/assets/javascripts/arclight/collection_navigation.js +0 -114
  187. data/app/assets/javascripts/arclight/collection_scrollspy.js +0 -6
  188. data/app/assets/javascripts/arclight/component_ancestors.js +0 -56
  189. data/app/assets/javascripts/arclight/oembed_viewer.js +0 -39
  190. data/app/assets/javascripts/arclight/truncator.js.erb +0 -23
  191. data/app/assets/stylesheets/arclight/bootstrap_overrides.scss +0 -3
  192. data/app/assets/stylesheets/arclight/modules/sidebar.scss +0 -16
  193. data/app/controllers/concerns/arclight/field_config_helpers.rb +0 -86
  194. data/app/factories/blacklight_field_configuration_factory.rb +0 -29
  195. data/app/views/arclight/repositories/_in_person_repository.html.erb +0 -19
  196. data/app/views/arclight/viewers/_oembed.html.erb +0 -7
  197. data/app/views/catalog/_arclight_document_index_header.html.erb +0 -13
  198. data/app/views/catalog/_arclight_document_index_header_online_contents_default.html.erb +0 -0
  199. data/app/views/catalog/_arclight_document_show_header.html.erb +0 -15
  200. data/app/views/catalog/_arclight_document_show_header_collection.html.erb +0 -12
  201. data/app/views/catalog/_arclight_index_compact_default.html.erb +0 -15
  202. data/app/views/catalog/_arclight_online_content_indicator.html.erb +0 -5
  203. data/app/views/catalog/_arclight_rangelimit.html.erb +0 -24
  204. data/app/views/catalog/_arclight_viewer_default.html.erb +0 -1
  205. data/app/views/catalog/_collection_contents.html.erb +0 -12
  206. data/app/views/catalog/_collection_count.html.erb +0 -7
  207. data/app/views/catalog/_collection_downloads.html.erb +0 -17
  208. data/app/views/catalog/_collection_online_contents.html.erb +0 -17
  209. data/app/views/catalog/_collection_overview.html.erb +0 -7
  210. data/app/views/catalog/_component_overview.html.erb +0 -46
  211. data/app/views/catalog/_context_card.html.erb +0 -27
  212. data/app/views/catalog/_context_sidebar.html.erb +0 -8
  213. data/app/views/catalog/_custom_metadata.html.erb +0 -16
  214. data/app/views/catalog/_home.html.erb +0 -1
  215. data/app/views/catalog/_index_breadcrumb_default.html.erb +0 -3
  216. data/app/views/catalog/_index_default.html.erb +0 -17
  217. data/app/views/catalog/_index_header.html.erb +0 -7
  218. data/app/views/catalog/_index_header_hierarchy_default.html.erb +0 -42
  219. data/app/views/catalog/_index_header_online_contents_default.html.erb +0 -1
  220. data/app/views/catalog/_index_hierarchy_default.html.erb +0 -28
  221. data/app/views/catalog/_index_online_contents_default.html.erb +0 -6
  222. data/app/views/catalog/_results_histogram.html.erb +0 -10
  223. data/app/views/catalog/_search_results.html.erb +0 -31
  224. data/app/views/catalog/_search_within_form.html.erb +0 -16
  225. data/app/views/catalog/_show_breadcrumbs_default.html.erb +0 -7
  226. data/app/views/catalog/_show_collection.html.erb +0 -40
  227. data/app/views/catalog/_show_component_sidebar.html.erb +0 -12
  228. data/app/views/catalog/_show_default.html.erb +0 -32
  229. data/app/views/catalog/_show_header.html.erb +0 -5
  230. data/app/views/catalog/_show_sidebar.html.erb +0 -30
  231. data/app/views/layouts/catalog_result.html.erb +0 -7
  232. data/app/views/shared/_context_sidebar.html.erb +0 -8
  233. data/app/views/shared/_header_navbar.html.erb +0 -54
  234. data/lib/arclight/custom_component.rb +0 -98
  235. data/lib/arclight/custom_document.rb +0 -93
  236. data/lib/arclight/indexer.rb +0 -9
  237. data/lib/arclight/shared_indexing_behavior.rb +0 -97
  238. data/lib/arclight/shared_terminology_behavior.rb +0 -65
  239. data/lib/arclight/solr_ead_indexer_ext.rb +0 -159
  240. data/lib/arclight/viewer.rb +0 -45
  241. data/lib/arclight/viewers/oembed.rb +0 -56
  242. data/lib/generators/arclight/templates/arclight.js +0 -2
  243. data/solr/conf/scripts.conf +0 -24
  244. data/vendor/assets/javascripts/responsiveTruncator.js +0 -69
  245. data/vendor/assets/javascripts/stickyfill.js +0 -480
  246. /data/app/assets/images/{blacklight → arclight}/logo.png +0 -0
  247. /data/{app/views/catalog/_arclight_document_index_header_hierarchy_default.html.erb → config/repositories.yml} +0 -0
@@ -1,174 +1,155 @@
1
- .documents-hierarchy,
2
- .documents-online_contents {
3
- .document-title-heading {
4
- font-size: $font-size-h5;
5
- }
6
-
7
- .document-title-containers {
8
- &:after {
9
- padding-right: 3px;
10
- }
11
- }
1
+ :root {
2
+ --al-toggle-icon-color: #{$navbar-light-color};
3
+ /* Font Awesome Free 6.5.2 by @fontawesome - https: //fontawesome.com License - https://fontawesome.com/license/free (CC BY 4.0 License) Copyright 2024 Fonticons, Inc. */
4
+ --al-hierarchy-view-expand-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 475 512'><path stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' stroke='rgb(0, 0, 0)' fill='rgb(0, 0, 0)' d='M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z'/></svg>");
5
+ --al-hierarchy-view-collapse-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 475 512'><path stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' stroke='rgb(0, 0, 0)' fill='rgb(0, 0, 0)' d='M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 200H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z'/></svg>");
6
+ }
12
7
 
13
- .al-toggle-view-all {
14
- color: $gray-light;
8
+ // Collapse +/- indicators
9
+ .al-toggle-view-children {
10
+ background-color: var(--al-toggle-icon-color);
11
+ flex-shrink: 0;
12
+ height: 1.25rem;
13
+ margin-left: -1.25rem;
14
+ margin-right: 0.25 * $spacer;
15
+ margin-top: 0.1 * $spacer;
16
+ mask: var(--al-hierarchy-view-expand-icon);
17
+ width: 1.1rem;
15
18
 
16
- &:before {
17
- color: $gray-light;
18
- content: "\2022";
19
- padding-right: 3px;
20
- }
19
+ &:not(.collapsed) {
20
+ mask: var(--al-hierarchy-view-collapse-icon);
21
21
  }
22
+ }
22
23
 
23
- .al-hierarchy-children-status {
24
- text-align: right;
25
- }
24
+ .al-hierarchy-highlight > .documentHeader {
25
+ background: $mark-bg;
26
+ }
26
27
 
27
- // Component title + children badge
28
- .documentHeader {
29
- border-bottom: $border-width dashed #ccc;
30
- margin-bottom: ($spacer / 2);
31
- margin-top: ($spacer * 2);
32
- }
28
+ #collection-context {
29
+ ul {
30
+ list-style: none;
33
31
 
34
- // Headings and text
35
- .al-document-abstract-or-scope {
36
- font-size: 0.85rem;
37
- line-height: 1.25;
38
- }
32
+ padding-left: 1.5rem;
39
33
 
40
- .al-hierarchy-sub-heading {
41
- color: $gray-light;
42
- font-size: $font-size-xs;
43
- font-weight: normal;
44
- text-transform: uppercase;
34
+ ul {
35
+ padding-left: 1rem;
36
+ }
45
37
  }
46
38
 
47
- // Series level
48
- .blacklight-series .document-title-heading,
49
- .blacklight-file .document-title-heading,
50
- .blacklight-otherlevel .document-title-heading {
51
- font-size: $font-size-h5;
52
- font-weight: 400;
53
- margin-bottom: ($spacer / 2);
54
-
55
- > a {
56
- color: $gray-dark;
39
+ .documentHeader {
40
+ display: flex;
41
+ margin-bottom: 0.5 * $spacer;
42
+ }
43
+
44
+ .al-document-container {
45
+ display: none;
46
+ }
47
+
48
+ turbo-frame[busy] {
49
+ &::before {
50
+ animation: placeholder-glow 2s ease-in-out infinite;
51
+ background-color: currentcolor;
52
+ content: "Loading...";
53
+ cursor: wait;
54
+ display: inline-block;
55
+ min-height: 1em;
56
+ opacity: 0.5;
57
+ vertical-align: middle;
58
+ display: inline-block;
59
+ margin-left: 1.5rem;
57
60
  }
58
61
  }
62
+ }
59
63
 
60
- .blacklight-series,
61
- .blacklight-file {
62
- // Additional for levels below series
63
- .blacklight-subseries .document-title-heading,
64
- .blacklight-file .document-title-heading,
65
- .blacklight-otherlevel .document-title-heading {
66
- font-size: $font-size-h6;
67
-
68
- .documentHeader {
69
- margin-top: $spacer;
70
- }
71
- }
64
+ #contents {
65
+ .documents {
66
+ list-style: none;
67
+ padding-left: 0;
72
68
 
73
- // Icongraphy for each level
74
- .blacklight-subseries .document-title-heading,
75
- .al-hierarchy-level-1 .blacklight-file .document-title-heading,
76
- .al-hierarchy-level-1 .blacklight-otherlevel .document-title-heading {
77
- border-left: ($border-width * 2) solid #999;
78
- padding-left: 10px;
69
+ li {
70
+ padding: 0.25 * $spacer 0.5 * $spacer;
79
71
  }
80
72
 
81
- .al-hierarchy-level-2 .document-title-heading,
82
- .al-hierarchy-level-2 .blacklight-file .document-title-heading {
83
- border-left: 0;
84
- padding-left: 0;
85
-
86
- &:before {
87
- color: $gray-light;
88
- content: "\a6";
89
- padding-right: 6px;
90
- }
73
+ li:nth-of-type(odd) {
74
+ background-color: $table-striped-bg;
91
75
  }
76
+ }
92
77
 
93
- .al-hierarchy-level-3 .document-title-heading,
94
- .al-hierarchy-level-3 .blacklight-file .document-title-heading {
95
- &:before {
96
- content: "\205D";
97
- }
98
- }
78
+ .documentHeader {
79
+ display: flex;
80
+ gap: 2rem;
81
+ justify-content: space-between;
82
+ margin-bottom: 0.5 * $spacer;
99
83
  }
100
- }
101
84
 
102
- .al-hierarchy-highlight {
103
- background: $state-warning-bg;
85
+ .al-document-container {
86
+ flex-basis: 25%;
87
+ text-align: right;
88
+ }
104
89
  }
105
90
 
106
- // Placeholder styling
107
- .al-hierarchy-placeholder {
108
- margin-top: $spacer;
91
+ // Scope content
92
+ .al-document-abstract-or-scope {
93
+ font-size: 0.85rem;
94
+ line-height: 1.5;
95
+ max-width: 45em;
96
+ margin-bottom: $spacer;
97
+ }
109
98
 
110
- h3 {
111
- background-color: $gray-lighter;
112
- border-radius: 5px;
113
- height: $font-size-h3;
99
+ .alert {
100
+ .blacklight-icons svg {
101
+ height: 1.5rem;
102
+ width: 1.5rem;
114
103
  }
104
+ }
115
105
 
116
- p {
117
- background-color: $gray-lighter;
118
- border-radius: 5px;
119
- height: $font-size-base;
106
+ .title-container {
107
+ border-bottom: $border-width solid $border-color;
108
+ padding-bottom: $spacer * 0.5;
109
+ margin-bottom: $spacer * 0.75;
110
+ display: grid;
111
+ gap: 0.5rem;
112
+ grid-template-areas:
113
+ "title bookmark-toggle"
114
+ "request request"
115
+ "sidebar-toggle sidebar-toggle"
116
+ "online-contents online-contents";
117
+ justify-content: space-between; // This will push the bookmark control to the right when the title is short
118
+ align-items: start;
119
+
120
+ @include media-breakpoint-up(lg) {
121
+ grid-template-areas:
122
+ "title request bookmark-toggle"
123
+ "sidebar-toggle sidebar-toggle sidebar-toggle"
124
+ "online-contents online-contents online-contents";
120
125
  }
121
- }
122
126
 
123
- // Component show page, Collection context section
124
- #collection-context {
125
127
  h1 {
126
- font-size: $font-size-h5;
128
+ grid-area: title;
129
+ margin-bottom: 0;
127
130
  }
128
131
 
129
- .documents-hierarchy,
130
- .documents-online_contents {
131
- .documentHeader {
132
- margin-top: 1.5rem;
133
- }
132
+ .al-request {
133
+ grid-area: request;
134
134
  }
135
135
 
136
- // Top-level context
137
- .al-hierarchy-level-0 .document-title-heading {
138
- // background-color: red;
139
- font-size: $font-size-h5;
140
- font-weight: 400;
141
- margin-bottom: ($spacer / 2);
142
-
143
- > a {
144
- color: $gray-dark;
145
- }
136
+ .bookmark-toggle {
137
+ grid-area: bookmark-toggle;
138
+ margin-left: 0 !important;
146
139
  }
147
140
 
148
- // All subsequent levels
149
- @for $i from 1 through 12 {
150
- .al-hierarchy-level-#{$i} .document-title-heading {
151
- font-size: $font-size-h6;
152
- font-weight: 400;
153
-
154
- > a {
155
- color: $gray-dark;
156
- }
157
- }
141
+ .sidebar-toggle {
142
+ grid-area: sidebar-toggle;
143
+ max-width: fit-content;
158
144
  }
159
- }
160
145
 
161
- // Indentation styling for all level hierarchies
162
- @mixin hierarchy-levels {
163
- @for $i from 1 through 12 {
164
- .al-hierarchy-level-#{$i} {
165
- margin-left: 10px;
166
- // provides for n indention
167
- &.extra-indent {
168
- margin-left: ($i * 10) + px;
169
- }
146
+ .online-contents {
147
+ grid-area: online-contents;
148
+ margin-bottom: 1rem;
149
+
150
+ h2 {
151
+ font-size: 1rem;
152
+ text-transform: uppercase;
170
153
  }
171
154
  }
172
155
  }
173
-
174
- @include hierarchy-levels;
@@ -1,10 +1,11 @@
1
1
  .al-document-highlight {
2
2
  padding-top: 10px;
3
3
  padding-left: 10px;
4
- font-size: $font-size-xs;
4
+ font-size: $font-size-sm;
5
5
  font-style: italic;
6
+ margin-bottom: $spacer;
6
7
  em {
7
- background-color: yellow;
8
+ background-color: $background-highlight;
8
9
  font-weight: bold;
9
10
  }
10
11
  }
@@ -0,0 +1,20 @@
1
+ :root {
2
+ --al-online-icon-color: #{$online-icon-color};
3
+ }
4
+ .toggle-bookmark,
5
+ .breadcrumb-item,
6
+ .document,
7
+ .al-online-content-icon {
8
+ .blacklight-icons svg {
9
+ height: 1rem;
10
+ width: 1rem;
11
+ }
12
+ }
13
+
14
+ .al-online-content-icon .blacklight-icons svg {
15
+ fill: var(--al-online-icon-color);
16
+ }
17
+
18
+ .btn > .bi:first-child {
19
+ margin-inline-end: 0.25rem !important;
20
+ }
@@ -4,30 +4,217 @@
4
4
  margin-bottom: $spacer;
5
5
  }
6
6
 
7
- // Collapse arrow indicators
8
- .al-toggle-view-more,
9
- .al-toggle-view-all {
10
- &[aria-expanded="true"] {
11
- &::after {
12
- content: '\25BC';
13
- margin-left: 6px;
7
+ .al-show-breadcrumb {
8
+ border-bottom: $border-width solid $border-color;
9
+ padding-bottom: $spacer;
10
+ margin-bottom: $spacer * 0.75;
11
+ width: 100%;
12
+
13
+ $bent-arrow: "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='15'><path fill-rule='evenodd' d='M1.5 1.5A.5.5 0 0 0 1 2v4.8a2.5 2.5 0 0 0 2.5 2.5h9.793l-3.347 3.346a.5.5 0 0 0 .708.708l4.2-4.2a.5.5 0 0 0 0-.708l-4-4a.5.5 0 0 0-.708.708L13.293 8.3H3.5A1.5 1.5 0 0 1 2 6.8V2a.5.5 0 0 0-.5-.5z'></path></svg>";
14
+
15
+ .breadcrumb {
16
+ margin: 0;
17
+
18
+ .breadcrumb-item .breadcrumb {
19
+ padding-left: 0.5rem;
20
+ }
21
+
22
+ .breadcrumb-item-1 > .breadcrumb {
23
+ padding-left: 1rem;
24
+ }
25
+
26
+ .breadcrumb-item-2 > .breadcrumb {
27
+ display: block;
28
+ }
29
+
30
+ .breadcrumb-item-3 {
31
+ display: inline-block;
32
+ }
33
+
34
+ .breadcrumb-item-3:first-of-type {
35
+ // This is if the series is a parent of this item.
36
+ &::before {
37
+ content: escape-svg(url($bent-arrow));
38
+ }
39
+ }
40
+
41
+ // last item doesn't get its own line unles s
42
+ .breadcrumb-item-4 {
43
+ display: inline-block;
44
+ }
45
+ }
46
+
47
+ .breadcrumb-item-4 {
48
+ &:first-child > .breadcrumb-text:first-child {
49
+ // This is if we're on a series (no svg node like on a collection). We still want the bent arrow to show.
50
+ &::before {
51
+ content: escape-svg(url($bent-arrow));
52
+ }
14
53
  }
15
54
  }
16
55
 
17
- &::after {
18
- content: '\25B6';
19
- margin-left: 6px;
56
+ .breadcrumb-item-1,
57
+ .breadcrumb-item-4 {
58
+ // breadcrumb-item-3 can have multiple on one line
59
+ flex: 1 0 100%;
60
+ color: $gray-600;
20
61
  }
21
62
  }
22
63
 
23
- .al-document-title-bar {
24
- .toggle-bookmark {
25
- @media (min-width: 576px) and (max-width: 991px) {
26
- padding-right: $spacer;
64
+ // offcanvas sidebar is scrollable for smaller screens
65
+ #sidebar {
66
+ overflow-y: scroll;
67
+
68
+ @include media-breakpoint-up(lg) {
69
+ overflow: hidden;
70
+ }
71
+ }
72
+
73
+ .collection-sidebar {
74
+ padding-right: 1rem;
75
+ border-right: $border-width solid $border-color;
76
+
77
+ h2 {
78
+ font-size: 1.6rem;
79
+ }
80
+
81
+ h3 {
82
+ font-size: 1.1rem;
83
+ }
84
+ }
85
+
86
+ .sidebar-section {
87
+ border-bottom: $border-width solid $border-color;
88
+ margin-bottom: $spacer;
89
+ padding-bottom: $spacer * 1.33;
90
+ margin-left: $spacer;
91
+
92
+ &:last-child {
93
+ border-bottom: none;
94
+ }
95
+ }
96
+
97
+ .breadcrumb-home-link {
98
+ margin-bottom: ($spacer * 0.25);
99
+ }
100
+
101
+ .al-show-actions-box {
102
+ border: $default-border-styling;
103
+ background-color: $gray-200;
104
+ font-size: $font-size-sm;
105
+ padding: ($spacer * 0.5) $spacer ($spacer * 0.75);
106
+
107
+ @media (max-width: 767px) {
108
+ margin-top: $spacer;
109
+ }
110
+
111
+ .al-collection-id {
112
+ margin-bottom: $spacer * 0.75;
113
+ }
114
+
115
+ &-options {
116
+ display: flex;
117
+ align-items: center;
118
+ }
119
+
120
+ &-info {
121
+ .dropdown {
122
+ // prevent dropdown from being cut off by parent container
123
+ position: static;
124
+ }
125
+ .dropdown-toggle:after {
126
+ margin-left: 0;
127
+ }
128
+
129
+ table {
130
+ td {
131
+ text-align: right;
132
+ }
27
133
  }
28
134
  }
135
+
136
+ svg.bi {
137
+ vertical-align: text-bottom;
138
+ color: $light-icon-color;
139
+ }
140
+
141
+ .dropdown-item svg.bi {
142
+ color: $dark-icon-color;
143
+ }
144
+ }
145
+
146
+ .bookmark-toggle {
147
+ display: inline;
148
+ margin-left: 1em;
149
+
150
+ .toggle-bookmark {
151
+ display: inline;
152
+ margin-bottom: 0;
153
+ white-space: nowrap;
154
+ }
155
+ }
156
+
157
+ .show-document {
158
+ .title-container .bookmark-toggle {
159
+ border: var(--bs-card-border-width) solid var(--bs-card-border-color);
160
+ background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity));
161
+ padding: 0.5rem;
162
+ }
163
+ }
164
+
165
+ @media (min-width: 992px) {
166
+ .show-document {
167
+ padding-left: 1.5rem !important;
168
+ }
169
+ }
170
+
171
+ .al-hierarchy-side-content {
172
+ .al-request-form {
173
+ display: inline;
174
+ float: right;
175
+ }
176
+ }
177
+
178
+ dl dd {
179
+ overflow-wrap: break-word;
180
+ }
181
+
182
+ dl.deflist dt {
183
+ text-align: left;
184
+ }
185
+
186
+ .chronlist-head,
187
+ .list-head,
188
+ .index-head,
189
+ .table-head {
190
+ caption-side: top;
191
+ font-size: 1.25rem;
192
+ font-weight: 500;
193
+ margin-bottom: 1rem;
194
+ }
195
+
196
+ .chronlist th,
197
+ .chronlist-item-date {
198
+ font-weight: 500;
199
+ }
200
+
201
+ .chronlist-item-date {
202
+ width: 15ch;
203
+ }
204
+
205
+ .chronlist-item-event {
206
+ div:not(:last-child) {
207
+ margin-bottom: 0.75rem;
208
+ }
209
+ }
210
+
211
+ .text-underline {
212
+ text-decoration: underline;
29
213
  }
30
214
 
31
- .bookmark-toggle .toggle-bookmark {
32
- margin-bottom: 0;
215
+ #contents {
216
+ border-bottom: $border-width solid $border-color;
217
+ border-top: $border-width solid $border-color;
218
+ margin: $spacer 0;
219
+ padding: $spacer 0;
33
220
  }
@@ -1,60 +1,42 @@
1
- .al-homepage-masthead.jumbotron {
2
- border-bottom: $result-item-border-styling;
3
- padding: ($spacer * 2) $spacer $spacer;
4
-
5
- h1 {
6
- font-size: 2.25rem;
7
- margin-bottom: ($spacer * 2);
8
- }
1
+ .navbar-search {
2
+ border-bottom: $default-border-styling;
3
+ border-top: $default-border-styling;
4
+ margin-bottom: ($spacer * 0.5);
5
+ z-index: 10;
9
6
 
10
7
  .search-query-form {
11
- margin-bottom: $spacer;
12
- max-width: 100%;
13
- }
8
+ max-width: 100% !important; // work around blacklight styles
9
+ display: flex;
10
+ gap: 0.5rem;
14
11
 
15
- .navbar {
16
- padding-bottom: 0;
17
-
18
- a {
19
- font-weight: $font-weight-bold;
12
+ // wrap collection dropdown onto its own line on smaller screens
13
+ @include media-breakpoint-down(md) {
14
+ flex-wrap: wrap;
20
15
  }
21
- }
22
- }
23
-
24
- .al-masthead {
25
- h1 {
26
- font-size: $font-size-h2;
27
- margin: 0;
28
- padding: ($spacer * 1.5) ($spacer / 2);
29
- }
30
16
 
31
- + .navbar-search {
32
- border-bottom: $result-item-border-styling;
33
- border-top: $result-item-border-styling;
34
- margin-bottom: ($spacer / 2);
35
-
36
- a {
37
- font-weight: $font-weight-bold;
17
+ .input-group {
18
+ width: unset;
19
+ flex: auto;
38
20
  }
39
21
 
40
- .active a {
41
- color: $gray;
22
+ .within-collection-dropdown {
23
+ flex: none;
42
24
  }
25
+ }
26
+ }
43
27
 
44
- .navbar-toggler {
45
- background-color: $white;
46
- border: $result-item-border-styling;
47
- }
28
+ .al-masthead {
29
+ --al-mastead-active-link-color: var(--bs-gray-700);
30
+ --al-masthead-title-size: #{$h2-font-size};
31
+ --bs-nav-link-font-weight: 700;
48
32
 
49
- .navbar-toggler-icon {
50
- background-image: $navbar-light-toggler-bg;
51
- }
33
+ .h1 {
34
+ font-size: var(--al-masthead-title-size);
52
35
  }
53
36
 
54
- @media (max-width: 992px) {
55
- h1,
56
- + .navbar-search {
57
- text-align: center;
37
+ .navbar-nav {
38
+ .active a {
39
+ color: var(--al-mastead-active-link-color);
58
40
  }
59
41
  }
60
42
  }
@@ -1,11 +1,7 @@
1
1
  .blacklight-repositories-show {
2
2
  .al-repository-show-header {
3
- margin-bottom: ($spacer / 2);
3
+ margin-bottom: ($spacer * 0.5);
4
4
  margin-top: ($spacer * 2);
5
-
6
- h3 {
7
- font-size: $font-size-h4;
8
- }
9
5
  }
10
6
 
11
7
  .al-repository-collections{
@@ -17,9 +13,9 @@
17
13
  }
18
14
 
19
15
  .al-document-title-bar {
20
- border-top: $result-item-border-styling;
16
+ border-top: $default-border-styling;
21
17
  margin-bottom: $spacer;
22
- padding-top: ($spacer / 2);
18
+ padding-top: ($spacer * 0.5);
23
19
 
24
20
  .al-document-abstract-or-scope,
25
21
  .al-collection-id {