arclight 0.5.0 → 1.0.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (218) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc +11 -4
  3. data/.github/workflows/ruby.yml +24 -11
  4. data/.rspec +0 -1
  5. data/.rubocop.yml +286 -2
  6. data/.rubocop_todo.yml +18 -195
  7. data/CONTRIBUTING.md +5 -5
  8. data/Gemfile +12 -12
  9. data/README.md +18 -12
  10. data/app/assets/javascripts/arclight/arclight.js +4 -8
  11. data/app/assets/javascripts/arclight/oembed_controller.js +64 -0
  12. data/app/assets/javascripts/arclight/truncate_controller.js +27 -0
  13. data/app/assets/stylesheets/arclight/application.scss +1 -5
  14. data/app/assets/stylesheets/arclight/modules/hierarchy_and_online_contents.scss +104 -130
  15. data/app/assets/stylesheets/arclight/modules/icons.scss +14 -3
  16. data/app/assets/stylesheets/arclight/modules/layout.scss +120 -100
  17. data/app/assets/stylesheets/arclight/modules/mastheads.scss +15 -57
  18. data/app/assets/stylesheets/arclight/modules/repositories.scss +2 -2
  19. data/app/assets/stylesheets/arclight/modules/repository_card.scss +4 -48
  20. data/app/assets/stylesheets/arclight/modules/search_results.scss +86 -35
  21. data/app/assets/stylesheets/arclight/modules/show_collection.scss +5 -32
  22. data/app/assets/stylesheets/arclight/modules/truncator.scss +56 -0
  23. data/app/assets/stylesheets/arclight/variables.scss +7 -4
  24. data/app/components/arclight/access_component.html.erb +14 -0
  25. data/app/components/arclight/access_component.rb +25 -0
  26. data/app/components/arclight/bookmark_component.html.erb +25 -0
  27. data/app/components/arclight/bookmark_component.rb +9 -0
  28. data/app/components/arclight/breadcrumb_component.rb +40 -0
  29. data/app/components/arclight/breadcrumbs_hierarchy_component.html.erb +34 -0
  30. data/app/components/arclight/breadcrumbs_hierarchy_component.rb +25 -0
  31. data/app/components/arclight/collection_context_component.html.erb +12 -0
  32. data/app/components/arclight/collection_context_component.rb +27 -0
  33. data/app/components/arclight/collection_info_component.html.erb +28 -0
  34. data/app/components/arclight/collection_info_component.rb +26 -0
  35. data/app/components/arclight/collection_sidebar_component.html.erb +15 -0
  36. data/app/components/arclight/collection_sidebar_component.rb +41 -0
  37. data/app/{views/catalog/_search_results_repository.html.erb → components/arclight/constraints_component.html.erb} +2 -1
  38. data/app/components/arclight/constraints_component.rb +17 -0
  39. data/app/components/arclight/document_collection_context_component.html.erb +29 -0
  40. data/app/components/arclight/document_collection_context_component.rb +28 -0
  41. data/app/components/arclight/document_collection_hierarchy_component.html.erb +46 -0
  42. data/app/components/arclight/document_collection_hierarchy_component.rb +62 -0
  43. data/app/components/arclight/document_component.html.erb +39 -0
  44. data/app/components/arclight/document_component.rb +49 -0
  45. data/app/components/arclight/document_components_hierarchy_component.html.erb +32 -0
  46. data/app/components/arclight/document_components_hierarchy_component.rb +28 -0
  47. data/app/components/arclight/document_download_component.html.erb +24 -0
  48. data/app/components/arclight/document_download_component.rb +71 -0
  49. data/app/components/arclight/embed_component.html.erb +10 -0
  50. data/app/components/arclight/embed_component.rb +43 -0
  51. data/app/components/arclight/group_component.html.erb +30 -0
  52. data/app/components/arclight/group_component.rb +23 -0
  53. data/app/components/arclight/header_component.html.erb +5 -0
  54. data/app/components/arclight/header_component.rb +10 -0
  55. data/app/components/arclight/index_metadata_field_component.html.erb +17 -0
  56. data/app/components/arclight/index_metadata_field_component.rb +20 -0
  57. data/app/components/arclight/masthead_component.html.erb +15 -0
  58. data/app/components/arclight/masthead_component.rb +10 -0
  59. data/app/components/arclight/metadata_section_component.html.erb +13 -0
  60. data/app/components/arclight/metadata_section_component.rb +22 -0
  61. data/app/components/arclight/oembed_viewer_component.html.erb +5 -0
  62. data/app/components/arclight/oembed_viewer_component.rb +16 -0
  63. data/app/components/arclight/online_content_filter_component.html.erb +15 -0
  64. data/app/components/arclight/online_content_filter_component.rb +19 -0
  65. data/app/components/arclight/online_status_indicator_component.rb +19 -0
  66. data/app/components/arclight/repository_breadcrumb_component.html.erb +10 -0
  67. data/app/components/arclight/repository_breadcrumb_component.rb +17 -0
  68. data/app/components/arclight/repository_location_component.html.erb +20 -0
  69. data/app/components/arclight/repository_location_component.rb +10 -0
  70. data/app/components/arclight/search_bar_component.html.erb +25 -0
  71. data/app/components/arclight/search_bar_component.rb +32 -0
  72. data/app/components/arclight/search_result_breadcrumbs_component.html.erb +3 -0
  73. data/app/components/arclight/search_result_breadcrumbs_component.rb +37 -0
  74. data/app/components/arclight/search_result_component.html.erb +20 -0
  75. data/app/components/arclight/search_result_component.rb +18 -0
  76. data/app/components/arclight/search_result_title_component.html.erb +13 -0
  77. data/app/components/arclight/search_result_title_component.rb +15 -0
  78. data/app/components/arclight/sidebar_component.html.erb +9 -0
  79. data/app/components/arclight/sidebar_component.rb +19 -0
  80. data/app/components/arclight/upper_metadata_layout_component.rb +10 -0
  81. data/app/components/blacklight/icons/bookmark_component.rb +12 -0
  82. data/app/components/blacklight/icons/collection_component.rb +14 -0
  83. data/app/components/blacklight/icons/compact_component.rb +12 -0
  84. data/app/components/blacklight/icons/container_component.rb +14 -0
  85. data/app/components/blacklight/icons/ead_component.rb +12 -0
  86. data/app/components/blacklight/icons/file_component.rb +14 -0
  87. data/app/components/blacklight/icons/folder_component.rb +12 -0
  88. data/app/components/blacklight/icons/online_component.rb +15 -0
  89. data/app/components/blacklight/icons/pdf_component.rb +12 -0
  90. data/app/components/blacklight/icons/repository_component.rb +12 -0
  91. data/app/controllers/arclight/repositories_controller.rb +4 -4
  92. data/app/{controllers/concerns → helpers}/arclight/ead_format_helpers.rb +4 -7
  93. data/app/helpers/arclight/field_config_helpers.rb +26 -0
  94. data/app/helpers/arclight_helper.rb +15 -253
  95. data/app/models/arclight/document_downloads.rb +12 -15
  96. data/app/models/arclight/parent.rb +5 -0
  97. data/app/models/arclight/parents.rb +2 -1
  98. data/app/models/arclight/requests/aeon_external_request.rb +1 -1
  99. data/app/models/arclight/requests/aeon_web_ead.rb +8 -3
  100. data/app/models/arclight/requests/google_form.rb +8 -3
  101. data/app/models/concerns/arclight/catalog.rb +25 -15
  102. data/app/models/concerns/arclight/search_behavior.rb +12 -26
  103. data/app/models/concerns/arclight/solr_document.rb +70 -73
  104. data/app/presenters/arclight/show_presenter.rb +34 -7
  105. data/app/views/arclight/_requests.html.erb +2 -2
  106. data/app/views/arclight/repositories/_repository.html.erb +21 -40
  107. data/app/views/arclight/repositories/index.html.erb +3 -1
  108. data/app/views/arclight/repositories/show.html.erb +4 -6
  109. data/app/views/arclight/requests/_aeon_external_request_endpoint.html.erb +4 -5
  110. data/app/views/arclight/requests/_aeon_web_ead.html.erb +2 -3
  111. data/app/views/arclight/requests/_google_form.html.erb +4 -6
  112. data/app/views/catalog/_group.html.erb +1 -18
  113. data/app/views/catalog/_group_toggle.html.erb +1 -1
  114. data/app/views/catalog/_search_results_header.html.erb +3 -0
  115. data/app/views/catalog/hierarchy.html.erb +19 -0
  116. data/app/views/catalog/index.html.erb +16 -7
  117. data/app/views/shared/_breadcrumbs.html.erb +2 -14
  118. data/app/views/shared/_main_menu_links.html.erb +1 -1
  119. data/arclight.gemspec +7 -6
  120. data/config/breadcrumbs.rb +24 -0
  121. data/config/i18n-tasks.yml +9 -8
  122. data/config/importmap.rb +3 -0
  123. data/config/locales/arclight.en.yml +31 -30
  124. data/config/routes.rb +1 -1
  125. data/docker-compose.yml +16 -0
  126. data/lib/arclight/digital_object.rb +2 -1
  127. data/lib/arclight/engine.rb +18 -31
  128. data/lib/arclight/exceptions.rb +1 -0
  129. data/lib/arclight/hash_absolute_xpath.rb +2 -1
  130. data/lib/arclight/normalized_id.rb +2 -0
  131. data/lib/arclight/normalized_title.rb +2 -0
  132. data/lib/arclight/repository.rb +43 -54
  133. data/lib/arclight/routes/hierarchy.rb +19 -0
  134. data/lib/arclight/routes.rb +8 -0
  135. data/lib/arclight/traject/ead2_component_config.rb +292 -0
  136. data/lib/arclight/traject/ead2_config.rb +66 -287
  137. data/lib/arclight/version.rb +1 -1
  138. data/lib/arclight/year_range.rb +4 -3
  139. data/lib/arclight.rb +6 -1
  140. data/lib/generators/arclight/install_generator.rb +57 -21
  141. data/lib/generators/arclight/templates/arclight.scss +5 -3
  142. data/lib/generators/arclight/templates/catalog_controller.rb +150 -169
  143. data/lib/generators/arclight/templates/config/locales/arclight.en.yml +53 -0
  144. data/lib/generators/arclight/templates/config/repositories.yml +20 -27
  145. data/lib/tasks/index.rake +14 -17
  146. data/package.json +11 -13
  147. data/solr/conf/schema.xml +40 -36
  148. data/solr/conf/solrconfig.xml +33 -31
  149. data/tasks/arclight.rake +8 -7
  150. data/template.rb +0 -1
  151. metadata +113 -106
  152. data/.babelrc +0 -3
  153. data/app/assets/javascripts/arclight/collection_navigation.js +0 -100
  154. data/app/assets/javascripts/arclight/collection_scrollspy.js +0 -6
  155. data/app/assets/javascripts/arclight/context_navigation.js +0 -351
  156. data/app/assets/javascripts/arclight/oembed_viewer.js +0 -46
  157. data/app/assets/javascripts/arclight/truncator.js.erb +0 -29
  158. data/app/assets/stylesheets/arclight/bootstrap_overrides.scss +0 -26
  159. data/app/assets/stylesheets/arclight/modules/context_navigation.scss +0 -75
  160. data/app/controllers/concerns/arclight/field_config_helpers.rb +0 -102
  161. data/app/factories/blacklight_field_configuration_factory.rb +0 -30
  162. data/app/views/arclight/repositories/_in_person_repository.html.erb +0 -19
  163. data/app/views/arclight/repositories/_repository_contact.html.erb +0 -9
  164. data/app/views/arclight/viewers/_oembed.html.erb +0 -8
  165. data/app/views/catalog/_access_contents.html.erb +0 -15
  166. data/app/views/catalog/_arclight_abstract_or_scope.html.erb +0 -5
  167. data/app/views/catalog/_arclight_bookmark_control.html.erb +0 -38
  168. data/app/views/catalog/_arclight_document_header_icon.html.erb +0 -1
  169. data/app/views/catalog/_arclight_document_index_header.html.erb +0 -13
  170. data/app/views/catalog/_arclight_document_index_header_hierarchy_default.html.erb +0 -0
  171. data/app/views/catalog/_arclight_document_index_header_online_contents_default.html.erb +0 -0
  172. data/app/views/catalog/_arclight_index_compact_default.html.erb +0 -22
  173. data/app/views/catalog/_arclight_index_default.html.erb +0 -45
  174. data/app/views/catalog/_arclight_index_group_document_compact_default.html.erb +0 -19
  175. data/app/views/catalog/_arclight_index_group_document_default.html.erb +0 -18
  176. data/app/views/catalog/_arclight_online_content_indicator.html.erb +0 -3
  177. data/app/views/catalog/_arclight_rangelimit.html.erb +0 -24
  178. data/app/views/catalog/_arclight_viewer_default.html.erb +0 -1
  179. data/app/views/catalog/_collection_contents.html.erb +0 -4
  180. data/app/views/catalog/_collection_context.html.erb +0 -15
  181. data/app/views/catalog/_collection_context_nav.html.erb +0 -12
  182. data/app/views/catalog/_collection_online_contents.html.erb +0 -17
  183. data/app/views/catalog/_component_context.html.erb +0 -5
  184. data/app/views/catalog/_containers.html.erb +0 -3
  185. data/app/views/catalog/_context_card.html.erb +0 -27
  186. data/app/views/catalog/_context_sidebar.html.erb +0 -8
  187. data/app/views/catalog/_custom_metadata.html.erb +0 -16
  188. data/app/views/catalog/_document_downloads.html.erb +0 -14
  189. data/app/views/catalog/_group_header_compact_default.html.erb +0 -15
  190. data/app/views/catalog/_group_header_default.html.erb +0 -20
  191. data/app/views/catalog/_home.html.erb +0 -1
  192. data/app/views/catalog/_index_breadcrumb_default.html.erb +0 -6
  193. data/app/views/catalog/_index_collection_context_default.html.erb +0 -53
  194. data/app/views/catalog/_index_default.html.erb +0 -17
  195. data/app/views/catalog/_index_header.html.erb +0 -7
  196. data/app/views/catalog/_index_header_online_contents_default.html.erb +0 -1
  197. data/app/views/catalog/_index_online_contents_default.html.erb +0 -6
  198. data/app/views/catalog/_online_content_label.html.erb +0 -5
  199. data/app/views/catalog/_search_form.html.erb +0 -38
  200. data/app/views/catalog/_search_results.html.erb +0 -28
  201. data/app/views/catalog/_show_actions_box_default.html.erb +0 -27
  202. data/app/views/catalog/_show_breadcrumbs_default.html.erb +0 -6
  203. data/app/views/catalog/_show_collection.html.erb +0 -66
  204. data/app/views/catalog/_show_default.html.erb +0 -70
  205. data/app/views/catalog/_show_upper_metadata_collection.html.erb +0 -1
  206. data/app/views/catalog/_show_upper_metadata_default.html.erb +0 -14
  207. data/app/views/catalog/_sort_and_per_page.html.erb +0 -8
  208. data/app/views/catalog/_within_collection_dropdown.html.erb +0 -26
  209. data/app/views/layouts/catalog_result.html.erb +0 -7
  210. data/app/views/shared/_context_sidebar.html.erb +0 -8
  211. data/app/views/shared/_header_navbar.html.erb +0 -61
  212. data/app/views/shared/_show_breadcrumbs.html.erb +0 -27
  213. data/lib/arclight/viewer.rb +0 -45
  214. data/lib/arclight/viewers/oembed.rb +0 -57
  215. data/solr/conf/scripts.conf +0 -24
  216. data/vendor/assets/javascripts/responsiveTruncator.js +0 -69
  217. data/vendor/assets/javascripts/stickyfill.js +0 -480
  218. /data/app/assets/images/{blacklight → arclight}/logo.png +0 -0
@@ -1,112 +1,86 @@
1
- .documents-online_contents {
2
- .document-title-heading {
3
- font-size: $h5-font-size;
1
+ //< !-- ! Font Awesome Pro 6.2.0 by @fontawesome - https: //fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. -->
2
+ $hierarchy-view-expand-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path fill='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' 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>") !default;
3
+ $hierarchy-view-collapse-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path fill='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' 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>") !default;
4
+
5
+ // Collapse +/- indicators
6
+ .al-toggle-view-children {
7
+ background-image: escape-svg($hierarchy-view-expand-icon);
8
+ background-repeat: no-repeat;
9
+ background-position: center;
10
+ background-size: 100%;
11
+ display: inline-block;
12
+ flex-shrink: 0;
13
+ height: 1.25rem;
14
+ margin-left: -1.25rem;
15
+ margin-right: 0.25 * $spacer;
16
+ margin-top: 0.1 * $spacer;
17
+ vertical-align: middle;
18
+ width: 1rem;
19
+
20
+ &:not(.collapsed) {
21
+ background-image: escape-svg($hierarchy-view-collapse-icon);
4
22
  }
23
+ }
5
24
 
6
- .document-title-containers {
7
- &:after {
8
- padding-right: 3px;
9
- }
10
- }
25
+ .al-hierarchy-highlight > .documentHeader {
26
+ background: $mark-bg;
27
+ }
11
28
 
12
- .al-hierarchy-children-status {
13
- font-size: $h6-font-size;
14
- margin-top: 6px;
15
- text-align: left;
16
- }
29
+ #collection-context {
30
+ ul {
31
+ list-style: none;
17
32
 
18
- .bookmark-toggle,
19
- .al-request-form {
20
- font-size: $font-size-sm;
21
- }
33
+ padding-left: 1.5rem;
22
34
 
23
- // Headings and text
24
- .al-document-abstract-or-scope {
25
- font-size: 0.85rem;
26
- line-height: 1.5;
27
- max-width: 45em;
35
+ ul {
36
+ padding-left: 1rem;
37
+ }
28
38
  }
29
39
 
30
- .al-hierarchy-sub-heading {
31
- color: $gray-600;
32
- font-size: $font-size-sm;
33
- font-weight: normal;
34
- text-transform: uppercase;
40
+ .documentHeader {
41
+ display: flex;
42
+ margin-bottom: 0.5 * $spacer;
35
43
  }
36
44
 
37
- // Series level
38
- .blacklight-series .document-title-heading,
39
- .blacklight-subseries .document-title-heading,
40
- .blacklight-file .document-title-heading,
41
- .blacklight-binder .document-title-heading,
42
- .blacklight-other .document-title-heading {
43
- font-size: $h5-font-size;
44
- font-weight: 400;
45
- margin-bottom: ($spacer / 2);
45
+ .al-document-container {
46
+ display: none;
46
47
  }
47
48
 
48
- .blacklight-series,
49
- .blacklight-file {
50
- // Additional for levels below series
51
- .blacklight-subseries .document-title-heading,
52
- .blacklight-file .document-title-heading,
53
- .blacklight-binder .document-title-heading,
54
- .blacklight-other .document-title-heading {
55
- font-size: $h6-font-size;
56
-
57
- .documentHeader {
58
- margin-top: $spacer;
59
- }
49
+ turbo-frame[loading]:not([complete]) {
50
+ &::after {
51
+ @extend .placeholder !optional;
52
+ animation: placeholder-glow 2s ease-in-out infinite;
53
+ content: 'Loading...';
54
+ display: inline-block;
55
+ margin-left: 1.5rem;
60
56
  }
57
+ }
58
+ }
61
59
 
62
- // Icongraphy for each level
63
- .blacklight-subseries .document-title-heading,
64
- .al-hierarchy-level-1 .blacklight-file .document-title-heading,
65
- .al-hierarchy-level-1 .blacklight-binder .document-title-heading,
66
- .al-hierarchy-level-1 .blacklight-other .document-title-heading {
67
- padding-left: 10px;
68
-
69
- &:before {
70
- color: $gray-600;
71
- content: "\027E9";
72
- padding-right: 3px;
73
- }
74
- }
60
+ #contents {
61
+ .documents {
62
+ list-style: none;
63
+ padding-left: 0;
75
64
 
76
- .al-hierarchy-level-2 .document-title-heading,
77
- .al-hierarchy-level-2 .blacklight-file .document-title-heading {
78
- &:before {
79
- content: "\027E9 \027E9";
80
- }
65
+ li {
66
+ padding: 0.25 * $spacer 0.5 * $spacer;
81
67
  }
82
68
 
83
- .al-hierarchy-level-3 .document-title-heading,
84
- .al-hierarchy-level-3 .blacklight-file .document-title-heading {
85
- &:before {
86
- content: "\027E9 \027E9 \027E9";
87
- }
69
+ li:nth-of-type(odd) {
70
+ background-color: $table-striped-bg;
88
71
  }
89
72
  }
90
- }
91
73
 
92
- .al-hierarchy-highlight > .documentHeader {
93
- background: $mark-bg;
94
- }
95
-
96
- // Placeholder styling
97
- .al-hierarchy-placeholder {
98
- margin-top: $spacer;
99
-
100
- h3 {
101
- background-color: $gray-200;
102
- border-radius: 5px;
103
- height: $h3-font-size;
74
+ .documentHeader {
75
+ display: flex;
76
+ gap: 2rem;
77
+ justify-content: space-between;
78
+ margin-bottom: 0.5 * $spacer;
104
79
  }
105
80
 
106
- p {
107
- background-color: $gray-200;
108
- border-radius: 5px;
109
- height: $font-size-base;
81
+ .al-document-container {
82
+ flex-basis: 25%;
83
+ text-align: right;
110
84
  }
111
85
  }
112
86
 
@@ -118,60 +92,60 @@
118
92
  margin-bottom: $spacer;
119
93
  }
120
94
 
121
- // Component show page, Collection context section
122
- #collection-context {
123
- h1 {
124
- font-size: $h5-font-size;
95
+ .alert {
96
+ .blacklight-icons svg {
97
+ height: 1.5rem;
98
+ width: 1.5rem;
125
99
  }
100
+ }
126
101
 
127
- ul {
128
- list-style: none;
129
- flex-grow: 1;
102
+ .title-container {
103
+ border-bottom: $border-width solid $border-color;
104
+ padding-bottom: $spacer * .5;
105
+ margin-bottom: $spacer * .75;
106
+ display: grid;
107
+ gap: 0.5rem;
108
+ grid-template-areas:
109
+ "title bookmark-toggle"
110
+ "request request"
111
+ "sidebar-toggle sidebar-toggle"
112
+ "online-contents online-contents";
113
+ justify-content: space-between; // This will push the bookmark control to the right when the title is short
114
+ align-items: start;
115
+
116
+ @include media-breakpoint-up(lg) {
117
+ grid-template-areas:
118
+ "title request bookmark-toggle"
119
+ "sidebar-toggle sidebar-toggle sidebar-toggle"
120
+ "online-contents online-contents online-contents";
130
121
  }
131
122
 
132
- .documents-online_contents {
133
- .documentHeader {
134
- margin-top: 1.5rem;
135
- }
123
+ h1 {
124
+ grid-area: title;
125
+ margin-bottom: 0;
136
126
  }
137
127
 
138
- // Top-level context
139
- .al-hierarchy-level-0 .document-title-heading {
140
- font-size: $h5-font-size;
141
- margin-bottom: ($spacer / 2);
128
+ .al-request {
129
+ grid-area: request;
142
130
  }
143
131
 
144
- // All subsequent levels
145
- @for $i from 1 through 12 {
146
- .al-hierarchy-level-#{$i} .document-title-heading {
147
- font-size: $h6-font-size;
148
- }
132
+ .bookmark-toggle {
133
+ grid-area: bookmark-toggle;
134
+ margin-left: 0 !important;
149
135
  }
150
136
 
151
- .prev-siblings li, li.al-collection-context {
152
- visibility: visible;
153
- opacity: 1;
154
- transition: visibility 0s, height 0.5s, opacity 0.5s linear;
155
-
156
- &.collapsed {
157
- visibility: hidden;
158
- height: 0;
159
- opacity: 0;
160
- }
137
+ .sidebar-toggle {
138
+ grid-area: sidebar-toggle;
139
+ max-width: fit-content;
161
140
  }
162
- }
163
141
 
164
- // Indentation styling for all level hierarchies
165
- @mixin hierarchy-levels {
166
- @for $i from 1 through 12 {
167
- .al-hierarchy-level-#{$i} {
168
- margin-left: 20px;
169
- // provides for n indention
170
- &.extra-indent {
171
- margin-left: ($i * 20) + px;
172
- }
142
+ .online-contents {
143
+ grid-area: online-contents;
144
+ margin-bottom: 1rem;
145
+
146
+ h2 {
147
+ font-size: 1rem;
148
+ text-transform: uppercase;
173
149
  }
174
150
  }
175
151
  }
176
-
177
- @include hierarchy-levels;
@@ -1,4 +1,15 @@
1
- .blacklight-icons svg {
2
- height: 1rem;
3
- width: 1rem;
1
+
2
+ .toggle-bookmark, .breadcrumb-item, .document, .al-online-content-icon {
3
+ .blacklight-icons svg {
4
+ height: 1rem;
5
+ width: 1rem;
6
+ }
7
+ }
8
+
9
+ .al-online-content-icon .blacklight-icons svg {
10
+ fill: $online-icon-color;
11
+ }
12
+
13
+ .btn > .bi:first-child {
14
+ @extend .me-1
4
15
  }
@@ -4,30 +4,102 @@
4
4
  margin-bottom: $spacer;
5
5
  }
6
6
 
7
- .al-show-breadcrumb .breadcrumb {
8
- background-color: transparent;
9
- margin-bottom: 0;
10
- padding: 0;
7
+ .al-show-breadcrumb {
8
+ border-bottom: $border-width solid $border-color;
9
+ padding-bottom: $spacer;
10
+ margin-bottom: $spacer * .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
+ }
11
29
 
12
- .breadcrumb-item + .breadcrumb-item {
13
- padding-top: 2px;
30
+ .breadcrumb-item-3 {
31
+ display: inline-block;
32
+ }
14
33
 
15
- &::before {
16
- content: '';
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
+ }
17
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
+ }
53
+ }
54
+ }
55
+
56
+ .breadcrumb-item-1, .breadcrumb-item-4 { // breadcrumb-item-3 can have multiple on one line
57
+ flex: 1 0 100%;
58
+ color: $gray-600;
59
+ }
60
+ }
61
+
62
+ // offcanvas sidebar is scrollable for smaller screens
63
+ #sidebar {
64
+ overflow-y: scroll;
65
+
66
+ @include media-breakpoint-up(lg) {
67
+ overflow: hidden;
68
+ }
69
+ }
70
+
71
+ .collection-sidebar {
72
+ padding-right: 1rem;
73
+ border-right: $border-width solid $border-color;
74
+
75
+ h2 {
76
+ font-size: 1.6rem;
77
+ }
78
+
79
+ h3 {
80
+ font-size: 1.1rem;
81
+ }
82
+ }
83
+
84
+ .sidebar-section {
85
+ border-bottom: $border-width solid $border-color;
86
+ margin-bottom: $spacer;
87
+ padding-bottom: $spacer * 1.33;
88
+ margin-left: $spacer;
89
+
90
+ &:last-child {
91
+ border-bottom: none;
18
92
  }
19
93
  }
20
94
 
21
95
  .breadcrumb-home-link {
22
- margin-bottom: ($spacer / 4);
96
+ margin-bottom: ($spacer * 0.25);
23
97
  }
24
98
 
25
99
  .al-show-actions-box {
26
100
  border: $default-border-styling;
27
101
  background-color: $gray-200;
28
102
  font-size: $font-size-sm;
29
- height: 100%;
30
- margin-bottom: $spacer * 2;
31
103
  padding: ($spacer * .5) $spacer ($spacer * .75);
32
104
 
33
105
  @media (max-width: 767px) {
@@ -43,97 +115,53 @@
43
115
  align-items: center;
44
116
  }
45
117
 
46
- &-downloads {
47
- padding-top: $spacer * .25;
48
- white-space: nowrap;
49
-
50
- &-container {
51
- margin-top: $spacer * .5;
118
+ &-info {
119
+ .dropdown {
120
+ // prevent dropdown from being cut off by parent container
121
+ position: static;
122
+ }
123
+ .dropdown-toggle:after {
124
+ margin-left: 0;
52
125
  }
53
126
 
54
- &-file {
55
- &.blacklight-icons {
56
- margin-right: $spacer * .5;
57
-
58
- svg {
59
- fill: $secondary;
60
- }
127
+ table {
128
+ td {
129
+ text-align: right;
61
130
  }
62
131
  }
63
132
  }
64
- }
65
133
 
66
- .al-show-breadcrumb h1 {
67
- font-size: 1.5rem;
68
-
69
- &.media .col {
70
- padding-top: $spacer * .25;
134
+ svg.bi {
135
+ vertical-align: text-bottom;
136
+ color: $light-icon-color;
71
137
  }
72
- }
73
-
74
- .breadcrumb-item {
75
- flex: 1 0 100%;
76
-
77
- &.al-bc-item {
78
- &::before {
79
- content: '»' !important;
80
- }
138
+
139
+ .dropdown-item svg.bi {
140
+ color: $dark-icon-color;
81
141
  }
82
142
  }
83
143
 
84
- // Show page breadcrumbs
85
- @for $i from 1 to 20 {
86
- .breadcrumb-item.breadcrumb-item-#{$i}.media {
87
- padding-left: 0;
88
-
89
- @media (max-width: 767px) {
90
- &::before {
91
- padding-right: 0;
92
- }
93
- }
94
-
95
- @media (min-width: 768px) {
96
- padding-left: ($i - 1) * 10px;
97
- }
144
+ .bookmark-toggle {
145
+ display: inline;
146
+ margin-left: 1em;
147
+
148
+ .toggle-bookmark {
149
+ display: inline;
150
+ margin-bottom: 0;
151
+ white-space: nowrap;
98
152
  }
99
153
  }
100
154
 
101
- // Show page metadata.
102
- // Indent to match terminal show page breadcrumb.
103
- @for $i from 1 to 20 {
104
- .al-metadata-section.breadcrumb-item-#{$i} {
105
- padding-left: 0;
155
+ .show-document {
156
+ @extend .ps-lg-4;
106
157
 
107
- @media (min-width: 768px) {
108
- padding-left: ($i * 10) + 10px;
109
- }
110
- }
111
- }
112
-
113
- // Collapse +/- indicators
114
- .al-toggle-view-children {
115
- &::after {
116
- content: image-url('blacklight/plus.svg');
117
- }
118
- &:not(.collapsed)::after {
119
- content: image-url('blacklight/minus.svg');
158
+ .title-container .bookmark-toggle {
159
+ @extend .card;
160
+ @extend .bg-light;
161
+ @extend .p-2;
120
162
  }
121
163
  }
122
164
 
123
- .al-toggle-children-container {
124
- margin-left: -1.5rem;
125
- }
126
-
127
- .bookmark-toggle .toggle-bookmark {
128
- display: inline;
129
- margin-bottom: 0;
130
- white-space: nowrap;
131
- }
132
-
133
- .bookmark-toggle {
134
- display: inline;
135
- }
136
-
137
165
  .al-hierarchy-side-content {
138
166
  .al-request-form {
139
167
  display: inline;
@@ -141,21 +169,6 @@
141
169
  }
142
170
  }
143
171
 
144
- .al-request-button {
145
- &.btn-link {
146
- font-weight: 600;
147
- line-height: 1;
148
- }
149
- @media (min-width: 1200px) {
150
- margin-right: ($spacer / 2);
151
- }
152
-
153
- &:before {
154
- content: "\0229F";
155
- }
156
- }
157
-
158
-
159
172
  dl dd {
160
173
  overflow-wrap: break-word;
161
174
  }
@@ -189,3 +202,10 @@ dl.deflist dt {
189
202
  .text-underline {
190
203
  text-decoration: underline;
191
204
  }
205
+
206
+ #contents {
207
+ border-bottom: $border-width solid $border-color;
208
+ border-top: $border-width solid $border-color;
209
+ margin: $spacer 0;
210
+ padding: $spacer 0;
211
+ }
@@ -1,62 +1,22 @@
1
- .al-homepage-masthead.jumbotron {
2
- border-bottom: $default-border-styling;
3
- padding: ($spacer * 2) $spacer $spacer;
4
-
5
- .navbar-nav {
6
- flex-direction: row;
7
- font-weight: 700;
8
- margin-bottom: ($spacer * 1);
9
- }
10
-
11
- h1 {
12
- font-size: 2.25rem;
13
- margin-bottom: ($spacer * 2);
14
- }
15
-
1
+ .navbar-search {
16
2
  .search-query-form {
17
- margin-bottom: $spacer;
18
- max-width: 100%;
19
- }
20
-
21
- .navbar {
22
- padding-bottom: 0;
3
+ max-width: 100% !important; // work around blacklight styles
4
+ display: flex;
5
+ gap: .5rem;
23
6
 
24
- a {
25
- font-weight: $font-weight-bold;
7
+ // wrap collection dropdown onto its own line on smaller screens
8
+ @include media-breakpoint-down(md) {
9
+ flex-wrap: wrap;
26
10
  }
27
- }
28
11
 
29
- @media (max-width: 767px) {
30
- .masthead-center {
31
- text-align: center;
32
- }
33
- h2 {
34
- display: inline-block;
12
+ .input-group {
13
+ width: unset;
14
+ flex: auto;
35
15
  }
36
- .nav-links {
37
- justify-content: center !important;
38
- }
39
- }
40
- }
41
-
42
-
43
- .navbar-search {
44
- // Undo some of Blacklight's extending of column classes.
45
- .search-query-form {
46
- flex-basis: auto !important;
47
- max-width: 100% !important;
48
- }
49
- }
50
-
51
- .within-collection-dropdown {
52
- min-width: 0;
53
16
 
54
- @include media-breakpoint-up(sm) {
55
- width: 50% !important;
56
- }
57
-
58
- @include media-breakpoint-up(lg) {
59
- min-width: 0;
17
+ .within-collection-dropdown {
18
+ flex: none;
19
+ }
60
20
  }
61
21
  }
62
22
 
@@ -65,7 +25,7 @@
65
25
  display: block;
66
26
  font-size: $h2-font-size;
67
27
  margin: 0;
68
- padding: ($spacer * 1.5) ($spacer / 2);
28
+ padding: ($spacer * 1.5) ($spacer * 0.5);
69
29
  }
70
30
 
71
31
  .navbar-nav {
@@ -80,7 +40,7 @@
80
40
  + .navbar-search {
81
41
  border-bottom: $default-border-styling;
82
42
  border-top: $default-border-styling;
83
- margin-bottom: ($spacer / 2);
43
+ margin-bottom: ($spacer * 0.5);
84
44
 
85
45
  a {
86
46
  font-weight: $font-weight-bold;
@@ -104,9 +64,7 @@
104
64
  .nav-links {
105
65
  justify-content: center !important;
106
66
  }
107
- }
108
67
 
109
- @media (max-width: 992px) {
110
68
  h1,
111
69
  + .navbar-search {
112
70
  text-align: center;
@@ -1,6 +1,6 @@
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
5
  }
6
6
 
@@ -15,7 +15,7 @@
15
15
  .al-document-title-bar {
16
16
  border-top: $default-border-styling;
17
17
  margin-bottom: $spacer;
18
- padding-top: ($spacer / 2);
18
+ padding-top: ($spacer * 0.5);
19
19
 
20
20
  .al-document-abstract-or-scope,
21
21
  .al-collection-id {