arclight 0.0.1 → 1.4.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 (202) hide show
  1. checksums.yaml +5 -5
  2. data/.all-contributorsrc +450 -0
  3. data/.codeclimate.yml +5 -0
  4. data/.eslintrc +22 -0
  5. data/.github/workflows/ruby.yml +44 -0
  6. data/.gitignore +7 -0
  7. data/.rspec +0 -1
  8. data/.rubocop.yml +362 -0
  9. data/.rubocop_todo.yml +122 -0
  10. data/.solr_wrapper +5 -0
  11. data/CONTRIBUTING.md +43 -0
  12. data/CONTRIBUTORS.md +79 -0
  13. data/Gemfile +41 -0
  14. data/LICENSE.txt +1 -0
  15. data/README.md +100 -12
  16. data/Rakefile +13 -3
  17. data/app/assets/images/arclight/logo.png +0 -0
  18. data/app/assets/images/blacklight/bookmark.svg +1 -0
  19. data/app/assets/images/blacklight/collection.svg +5 -0
  20. data/app/assets/images/blacklight/compact.svg +1 -0
  21. data/app/assets/images/blacklight/container.svg +5 -0
  22. data/app/assets/images/blacklight/ead.svg +1 -0
  23. data/app/assets/images/blacklight/file.svg +5 -0
  24. data/app/assets/images/blacklight/folder.svg +1 -0
  25. data/app/assets/images/blacklight/list.svg +1 -0
  26. data/app/assets/images/blacklight/minus.svg +1 -0
  27. data/app/assets/images/blacklight/online.svg +5 -0
  28. data/app/assets/images/blacklight/pdf.svg +1 -0
  29. data/app/assets/images/blacklight/plus.svg +1 -0
  30. data/app/assets/images/blacklight/repository.svg +1 -0
  31. data/app/assets/javascripts/arclight/arclight.js +4 -0
  32. data/app/assets/javascripts/arclight/oembed_controller.js +58 -0
  33. data/app/assets/javascripts/arclight/truncate_controller.js +27 -0
  34. data/app/assets/stylesheets/arclight/application.scss +14 -0
  35. data/app/assets/stylesheets/arclight/build.scss +4 -0
  36. data/app/assets/stylesheets/arclight/modules/collection_search.scss +3 -0
  37. data/app/assets/stylesheets/arclight/modules/hierarchy_and_online_contents.scss +155 -0
  38. data/app/assets/stylesheets/arclight/modules/highlights.scss +11 -0
  39. data/app/assets/stylesheets/arclight/modules/icons.scss +20 -0
  40. data/app/assets/stylesheets/arclight/modules/layout.scss +220 -0
  41. data/app/assets/stylesheets/arclight/modules/mastheads.scss +57 -0
  42. data/app/assets/stylesheets/arclight/modules/repositories.scss +25 -0
  43. data/app/assets/stylesheets/arclight/modules/repository_card.scss +9 -0
  44. data/app/assets/stylesheets/arclight/modules/search_form.scss +9 -0
  45. data/app/assets/stylesheets/arclight/modules/search_results.scss +250 -0
  46. data/app/assets/stylesheets/arclight/modules/show_collection.scss +38 -0
  47. data/app/assets/stylesheets/arclight/modules/truncator.scss +58 -0
  48. data/app/assets/stylesheets/arclight/responsive.scss +13 -0
  49. data/app/assets/stylesheets/arclight/variables.scss +25 -0
  50. data/app/components/arclight/access_component.html.erb +14 -0
  51. data/app/components/arclight/access_component.rb +25 -0
  52. data/app/components/arclight/bookmark_component.html.erb +25 -0
  53. data/app/components/arclight/bookmark_component.rb +9 -0
  54. data/app/components/arclight/breadcrumb_component.rb +40 -0
  55. data/app/components/arclight/breadcrumbs_hierarchy_component.html.erb +34 -0
  56. data/app/components/arclight/breadcrumbs_hierarchy_component.rb +25 -0
  57. data/app/components/arclight/collection_context_component.html.erb +12 -0
  58. data/app/components/arclight/collection_context_component.rb +27 -0
  59. data/app/components/arclight/collection_info_component.html.erb +28 -0
  60. data/app/components/arclight/collection_info_component.rb +26 -0
  61. data/app/components/arclight/collection_sidebar_component.html.erb +15 -0
  62. data/app/components/arclight/collection_sidebar_component.rb +39 -0
  63. data/app/components/arclight/constraints_component.html.erb +7 -0
  64. data/app/components/arclight/constraints_component.rb +17 -0
  65. data/app/components/arclight/document_collection_context_component.html.erb +29 -0
  66. data/app/components/arclight/document_collection_context_component.rb +28 -0
  67. data/app/components/arclight/document_collection_hierarchy_component.html.erb +50 -0
  68. data/app/components/arclight/document_collection_hierarchy_component.rb +62 -0
  69. data/app/components/arclight/document_component.html.erb +39 -0
  70. data/app/components/arclight/document_component.rb +49 -0
  71. data/app/components/arclight/document_components_hierarchy_component.html.erb +32 -0
  72. data/app/components/arclight/document_components_hierarchy_component.rb +28 -0
  73. data/app/components/arclight/document_download_component.html.erb +24 -0
  74. data/app/components/arclight/document_download_component.rb +71 -0
  75. data/app/components/arclight/embed_component.html.erb +10 -0
  76. data/app/components/arclight/embed_component.rb +43 -0
  77. data/app/components/arclight/group_component.html.erb +34 -0
  78. data/app/components/arclight/group_component.rb +23 -0
  79. data/app/components/arclight/header_component.html.erb +5 -0
  80. data/app/components/arclight/header_component.rb +10 -0
  81. data/app/components/arclight/index_metadata_field_component.html.erb +16 -0
  82. data/app/components/arclight/index_metadata_field_component.rb +20 -0
  83. data/app/components/arclight/masthead_component.html.erb +15 -0
  84. data/app/components/arclight/masthead_component.rb +10 -0
  85. data/app/components/arclight/metadata_section_component.html.erb +13 -0
  86. data/app/components/arclight/metadata_section_component.rb +22 -0
  87. data/app/components/arclight/oembed_viewer_component.html.erb +5 -0
  88. data/app/components/arclight/oembed_viewer_component.rb +16 -0
  89. data/app/components/arclight/online_content_filter_component.html.erb +15 -0
  90. data/app/components/arclight/online_content_filter_component.rb +19 -0
  91. data/app/components/arclight/online_status_indicator_component.rb +19 -0
  92. data/app/components/arclight/repository_breadcrumb_component.html.erb +10 -0
  93. data/app/components/arclight/repository_breadcrumb_component.rb +17 -0
  94. data/app/components/arclight/repository_location_component.html.erb +20 -0
  95. data/app/components/arclight/repository_location_component.rb +10 -0
  96. data/app/components/arclight/search_bar_component.html.erb +27 -0
  97. data/app/components/arclight/search_bar_component.rb +32 -0
  98. data/app/components/arclight/search_result_breadcrumbs_component.html.erb +6 -0
  99. data/app/components/arclight/search_result_breadcrumbs_component.rb +37 -0
  100. data/app/components/arclight/search_result_component.html.erb +20 -0
  101. data/app/components/arclight/search_result_component.rb +18 -0
  102. data/app/components/arclight/search_result_title_component.html.erb +15 -0
  103. data/app/components/arclight/search_result_title_component.rb +15 -0
  104. data/app/components/arclight/sidebar_component.html.erb +9 -0
  105. data/app/components/arclight/sidebar_component.rb +19 -0
  106. data/app/components/arclight/upper_metadata_layout_component.rb +10 -0
  107. data/app/components/blacklight/icons/bookmark_component.rb +12 -0
  108. data/app/components/blacklight/icons/collection_component.rb +14 -0
  109. data/app/components/blacklight/icons/compact_component.rb +12 -0
  110. data/app/components/blacklight/icons/container_component.rb +14 -0
  111. data/app/components/blacklight/icons/ead_component.rb +12 -0
  112. data/app/components/blacklight/icons/file_component.rb +14 -0
  113. data/app/components/blacklight/icons/folder_component.rb +12 -0
  114. data/app/components/blacklight/icons/online_component.rb +15 -0
  115. data/app/components/blacklight/icons/pdf_component.rb +12 -0
  116. data/app/components/blacklight/icons/repository_component.rb +12 -0
  117. data/app/controllers/arclight/repositories_controller.rb +40 -0
  118. data/app/helpers/arclight/ead_format_helpers.rb +309 -0
  119. data/app/helpers/arclight/field_config_helpers.rb +26 -0
  120. data/app/helpers/arclight_helper.rb +108 -0
  121. data/app/models/arclight/document_downloads.rb +122 -0
  122. data/app/models/arclight/parent.rb +24 -0
  123. data/app/models/arclight/parents.rb +39 -0
  124. data/app/models/arclight/requests/aeon_external_request.rb +42 -0
  125. data/app/models/arclight/requests/aeon_web_ead.rb +52 -0
  126. data/app/models/arclight/requests/google_form.rb +49 -0
  127. data/app/models/concerns/arclight/catalog.rb +44 -0
  128. data/app/models/concerns/arclight/search_behavior.rb +47 -0
  129. data/app/models/concerns/arclight/solr_document.rb +159 -0
  130. data/app/presenters/arclight/index_presenter.rb +10 -0
  131. data/app/presenters/arclight/show_presenter.rb +54 -0
  132. data/app/views/arclight/.keep +0 -0
  133. data/app/views/arclight/_requests.html.erb +7 -0
  134. data/app/views/arclight/repositories/_repository.html.erb +43 -0
  135. data/app/views/arclight/repositories/index.html.erb +9 -0
  136. data/app/views/arclight/repositories/show.html.erb +37 -0
  137. data/app/views/arclight/requests/_aeon_external_request_endpoint.html.erb +8 -0
  138. data/app/views/arclight/requests/_aeon_web_ead.html.erb +6 -0
  139. data/app/views/arclight/requests/_google_form.html.erb +10 -0
  140. data/app/views/catalog/_document_list.html.erb +8 -0
  141. data/app/views/catalog/_group.html.erb +4 -0
  142. data/app/views/catalog/_group_toggle.html.erb +10 -0
  143. data/app/views/catalog/_search_results_header.html.erb +3 -0
  144. data/app/views/catalog/hierarchy.html.erb +19 -0
  145. data/app/views/catalog/index.html.erb +17 -0
  146. data/app/views/shared/_breadcrumbs.html.erb +3 -0
  147. data/app/views/shared/_main_menu_links.html.erb +6 -0
  148. data/arclight.gemspec +29 -11
  149. data/bin/rails +13 -0
  150. data/config/breadcrumbs.rb +24 -0
  151. data/config/i18n-tasks.yml +134 -0
  152. data/config/importmap.rb +3 -0
  153. data/config/locales/arclight.en.yml +100 -0
  154. data/config/repositories.yml +0 -0
  155. data/config/routes.rb +6 -0
  156. data/docker-compose.yml +16 -0
  157. data/lib/arclight/digital_object.rb +27 -0
  158. data/lib/arclight/engine.rb +47 -0
  159. data/lib/arclight/exceptions.rb +19 -0
  160. data/lib/arclight/hash_absolute_xpath.rb +62 -0
  161. data/lib/arclight/level_label.rb +46 -0
  162. data/lib/arclight/missing_id_strategy.rb +21 -0
  163. data/lib/arclight/normalized_date.rb +49 -0
  164. data/lib/arclight/normalized_id.rb +30 -0
  165. data/lib/arclight/normalized_title.rb +33 -0
  166. data/lib/arclight/repository.rb +116 -0
  167. data/lib/arclight/routes/hierarchy.rb +19 -0
  168. data/lib/arclight/routes.rb +8 -0
  169. data/lib/arclight/traject/ead2_component_config.rb +334 -0
  170. data/lib/arclight/traject/ead2_config.rb +315 -0
  171. data/lib/arclight/traject/nokogiri_namespaceless_reader.rb +22 -0
  172. data/lib/arclight/version.rb +3 -1
  173. data/lib/arclight/year_range.rb +111 -0
  174. data/lib/arclight.rb +11 -1
  175. data/lib/generators/arclight/install_generator.rb +126 -0
  176. data/lib/generators/arclight/templates/arclight.scss +5 -0
  177. data/lib/generators/arclight/templates/catalog_controller.rb +422 -0
  178. data/lib/generators/arclight/templates/config/downloads.yml +25 -0
  179. data/lib/generators/arclight/templates/config/locales/arclight.en.yml +61 -0
  180. data/lib/generators/arclight/templates/config/repositories.yml +53 -0
  181. data/lib/generators/arclight/update_generator.rb +22 -0
  182. data/lib/tasks/index.rake +84 -0
  183. data/package.json +30 -0
  184. data/solr/conf/_rest_managed.json +3 -0
  185. data/solr/conf/admin-extra.html +31 -0
  186. data/solr/conf/elevate.xml +36 -0
  187. data/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  188. data/solr/conf/protwords.txt +21 -0
  189. data/solr/conf/schema.xml +400 -0
  190. data/solr/conf/solrconfig.xml +328 -0
  191. data/solr/conf/spellings.txt +2 -0
  192. data/solr/conf/stopwords.txt +58 -0
  193. data/solr/conf/stopwords_en.txt +58 -0
  194. data/solr/conf/synonyms.txt +31 -0
  195. data/solr/conf/xslt/example.xsl +132 -0
  196. data/solr/conf/xslt/example_atom.xsl +67 -0
  197. data/solr/conf/xslt/example_rss.xsl +66 -0
  198. data/solr/conf/xslt/luke.xsl +337 -0
  199. data/tasks/arclight.rake +72 -0
  200. data/template.rb +10 -0
  201. metadata +432 -20
  202. data/.travis.yml +0 -5
@@ -0,0 +1,220 @@
1
+ .al-search-breadcrumb,
2
+ .al-show-breadcrumb {
3
+ font-size: $font-size-sm;
4
+ margin-bottom: $spacer;
5
+ }
6
+
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
+ }
53
+ }
54
+ }
55
+
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;
61
+ }
62
+ }
63
+
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
+ }
133
+ }
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;
213
+ }
214
+
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;
220
+ }
@@ -0,0 +1,57 @@
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;
6
+
7
+ .search-query-form {
8
+ max-width: 100% !important; // work around blacklight styles
9
+ display: flex;
10
+ gap: 0.5rem;
11
+
12
+ // wrap collection dropdown onto its own line on smaller screens
13
+ @include media-breakpoint-down(md) {
14
+ flex-wrap: wrap;
15
+ }
16
+
17
+ .input-group {
18
+ width: unset;
19
+ flex: auto;
20
+ }
21
+
22
+ .within-collection-dropdown {
23
+ flex: none;
24
+ }
25
+ }
26
+ }
27
+
28
+ .al-masthead {
29
+ --al-mastead-active-link-color: var(--bs-gray-700);
30
+ --al-masthead-title-size: #{$h2-font-size};
31
+
32
+ .h1 {
33
+ display: block;
34
+ font-size: var(--al-masthead-title-size);
35
+ margin: 0;
36
+ padding: ($spacer * 1.5) ($spacer * 0.5);
37
+ }
38
+
39
+ .navbar-nav {
40
+ flex-direction: row;
41
+ font-weight: 700;
42
+
43
+ .active a {
44
+ color: var(--al-mastead-active-link-color);
45
+ }
46
+ }
47
+
48
+ @media (max-width: 767px) {
49
+ .nav-links {
50
+ justify-content: center !important;
51
+ }
52
+
53
+ h1 {
54
+ text-align: center;
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,25 @@
1
+ .blacklight-repositories-show {
2
+ .al-repository-show-header {
3
+ margin-bottom: ($spacer * 0.5);
4
+ margin-top: ($spacer * 2);
5
+ }
6
+
7
+ .al-repository-collections{
8
+ font-size: $font-size-sm;
9
+
10
+ &::after {
11
+ content: '\bb';
12
+ }
13
+ }
14
+
15
+ .al-document-title-bar {
16
+ border-top: $default-border-styling;
17
+ margin-bottom: $spacer;
18
+ padding-top: ($spacer * 0.5);
19
+
20
+ .al-document-abstract-or-scope,
21
+ .al-collection-id {
22
+ font-size: $font-size-sm;
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,9 @@
1
+ .al-repository {
2
+ border: $default-border-styling;
3
+ }
4
+
5
+ @include media-breakpoint-up(sm) {
6
+ .al-repository-description {
7
+ border-left: $default-border-styling;
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ // Original style comes from https://github.com/twbs/bootstrap/blob/v5.3.2/scss/_dropdown.scss#L184
2
+ // via https://github.com/projectblacklight/blacklight/blob/v8.1.0/app/assets/stylesheets/blacklight/_search_form.scss#L25
3
+ .input-group > .search-autocomplete-wrapper {
4
+ ul {
5
+ li {
6
+ white-space: normal;
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,250 @@
1
+ :root {
2
+ --al-content-icon-color: #{$secondary};
3
+ }
4
+
5
+ .documents-list {
6
+ margin-bottom: $spacer;
7
+
8
+ // Result item header
9
+ .al-document-title-bar {
10
+ background-color: $gray-200;
11
+ border: $default-border-styling;
12
+ font-size: $font-size-sm;
13
+ margin: 0 (-$result-item-body-padding - 1px) 0.5rem;
14
+ padding: 3px $result-item-body-padding;
15
+ }
16
+
17
+ // Result item body
18
+ article.document {
19
+ border-bottom: $default-border-styling;
20
+ margin-top: 0;
21
+ padding: $spacer 0;
22
+
23
+ &:first-child {
24
+ padding-top: 0;
25
+ }
26
+
27
+ .document-title-heading {
28
+ font-size: $h5-font-size;
29
+ .al-document-extent {
30
+ @include extent-badge;
31
+ }
32
+ }
33
+
34
+ .breadcrumb-links,
35
+ .al-document-creator,
36
+ .al-document-extent,
37
+ .al-document-abstract-or-scope {
38
+ font-size: $font-size-sm;
39
+ }
40
+
41
+ .al-document-abstract-or-scope {
42
+ margin-bottom: $spacer * 0.5;
43
+ max-width: 45em;
44
+ }
45
+ }
46
+ }
47
+
48
+ article.document {
49
+ .blacklight-icons svg {
50
+ fill: var(--al-content-icon-color);
51
+ }
52
+ div.breadcrumb-links,
53
+ dd.al-document-abstract-or-scope,
54
+ dd.al-document-creator {
55
+ margin-top: ($spacer * 0.5);
56
+ }
57
+
58
+ form.bookmark-toggle.col-auto {
59
+ padding-right: 0;
60
+ }
61
+ }
62
+
63
+ .al-grouped-results {
64
+ .breadcrumb-links {
65
+ font-size: $font-size-sm;
66
+ }
67
+
68
+ .al-document-abstract-or-scope {
69
+ margin-bottom: 0;
70
+ margin-top: $spacer * 0.75;
71
+ max-width: 45em;
72
+ }
73
+ .al-grouped-repository {
74
+ font-size: $font-size-sm;
75
+ margin-bottom: $spacer * 0.75;
76
+ }
77
+ .al-grouped-title-bar {
78
+ background-color: $gray-200;
79
+ padding: $result-item-body-padding;
80
+
81
+ h3 {
82
+ display: inline;
83
+ font-size: $h4-font-size;
84
+ }
85
+ }
86
+ .grouped-documents {
87
+ margin: $result-item-body-padding 0;
88
+ h4 {
89
+ font-size: $h5-font-size;
90
+ }
91
+
92
+ .al-grouped-more {
93
+ border-bottom: $default-border-styling;
94
+ margin-bottom: $spacer;
95
+ padding: ($spacer * 0.5) 0;
96
+ }
97
+
98
+ .document {
99
+ border-bottom: $default-border-styling;
100
+ margin-top: 0;
101
+ padding: $spacer 0;
102
+
103
+ &:last-child {
104
+ border-bottom: 0;
105
+ }
106
+ }
107
+ }
108
+
109
+ .al-document-extent {
110
+ @include extent-badge;
111
+ background-color: $gray-100;
112
+ border-color: $gray-400;
113
+ color: $gray-700;
114
+ }
115
+ }
116
+
117
+ .al-data-range-histogram {
118
+ margin-bottom: $spacer;
119
+ }
120
+
121
+ .blacklight-catalog-index #appliedParams {
122
+ margin-bottom: ($spacer * 3) !important;
123
+ }
124
+
125
+ // Compact Search Results
126
+ .documents-compact {
127
+ margin-bottom: $spacer;
128
+
129
+ h3 {
130
+ font-size: $h5-font-size;
131
+ }
132
+
133
+ .document {
134
+ border-bottom: $default-border-styling;
135
+ display: flex;
136
+ padding: $spacer 0;
137
+
138
+ &:first-child {
139
+ padding-top: 0;
140
+ }
141
+ .breadcrumb-links,
142
+ .al-repository-footer {
143
+ font-size: $font-size-sm;
144
+ }
145
+ }
146
+ }
147
+
148
+ .index-document-functions {
149
+ display: flex;
150
+ justify-content: flex-end !important;
151
+ }
152
+
153
+ .al-document-container.text-muted {
154
+ color: $gray-600 !important;
155
+ font-size: 16px;
156
+ float: right;
157
+ }
158
+
159
+ .col-no-left-padding {
160
+ padding-left: 0 !important;
161
+ }
162
+
163
+ .col-no-right-padding {
164
+ padding-right: 0 !important;
165
+ }
166
+
167
+ .breadcrumb-links a {
168
+ text-decoration-style: dotted;
169
+ color: $body-color;
170
+
171
+ &:hover,
172
+ &:active {
173
+ text-decoration-style: solid;
174
+ }
175
+ }
176
+
177
+ .breadcrumb-links .col {
178
+ flex-basis: auto;
179
+ }
180
+
181
+ .btn-outline-secondary svg {
182
+ fill: $gray-600;
183
+ }
184
+
185
+ .btn-outline-secondary:not(:disabled):not(.disabled).active svg,
186
+ .btn-outline-secondary:hover svg {
187
+ fill: $white;
188
+ }
189
+
190
+ .sort-pagination {
191
+ flex-wrap: wrap;
192
+ }
193
+
194
+ .search-widgets {
195
+ width: 100%;
196
+ align-items: center;
197
+ flex-wrap: wrap;
198
+ justify-content: flex-end;
199
+ }
200
+
201
+ .result-type-group {
202
+ order: -1;
203
+ flex-grow: 1;
204
+ &.btn-group > .btn {
205
+ flex-grow: 0;
206
+ }
207
+ }
208
+ @include media-breakpoint-down(md) {
209
+ .result-type-group {
210
+ margin-bottom: 0.5rem;
211
+ width: 100%;
212
+ }
213
+
214
+ .search-widgets {
215
+ justify-content: flex-start;
216
+ }
217
+ }
218
+
219
+ .show-document {
220
+ .al-contents {
221
+ .breadcrumb-links {
222
+ display: none;
223
+ }
224
+
225
+ .sort-pagination {
226
+ margin-bottom: 0;
227
+ }
228
+
229
+ article {
230
+ padding-left: 1rem;
231
+ padding-right: 1rem;
232
+ }
233
+
234
+ article:first-child {
235
+ padding-top: 1rem;
236
+ }
237
+
238
+ article:nth-child(odd) {
239
+ background-color: $gray-100;
240
+ }
241
+
242
+ .index_title {
243
+ font-size: 1rem;
244
+ }
245
+
246
+ .bookmark-toggle {
247
+ display: none;
248
+ }
249
+ }
250
+ }
@@ -0,0 +1,38 @@
1
+ // Collection context
2
+ .al-show-sub-heading {
3
+ font-size: $h6-font-size;
4
+ text-transform: uppercase;
5
+ }
6
+
7
+ .al-collection-actions-menu {
8
+ float: right;
9
+ }
10
+
11
+ // Access
12
+ #access-and-use {
13
+ dl dd {
14
+ line-height: 1.4;
15
+ margin-bottom: $spacer;
16
+ }
17
+
18
+ img {
19
+ margin-bottom: $headings-margin-bottom;
20
+ margin-right: $spacer;
21
+ max-height: 150px;
22
+ max-width: 150px;
23
+ }
24
+
25
+ .al-in-person-repository-name,
26
+ .al-in-person-repository-location {
27
+ font-size: $font-size-sm;
28
+ line-height: 1.25;
29
+ }
30
+
31
+ .al-repository-contact-city_state_zip_country {
32
+ margin-bottom: ($spacer * 0.5);
33
+ }
34
+ }
35
+
36
+ .al-digital-object.breadcrumb-item {
37
+ margin-bottom: ($spacer * 0.5);
38
+ }
@@ -0,0 +1,58 @@
1
+ .truncator {
2
+ // content is clamped to 3 lines unless expanded
3
+ .content {
4
+ overflow: hidden;
5
+ display: -webkit-box;
6
+ text-overflow: ellipsis;
7
+ -webkit-box-orient: vertical;
8
+ -webkit-line-clamp: 3;
9
+ }
10
+
11
+ &.expanded .content {
12
+ display: initial;
13
+ }
14
+
15
+ // safari truncation fix
16
+ .content > * {
17
+ margin: 0;
18
+ }
19
+
20
+ // expand/collapse toggle is only shown if content is truncated
21
+ button {
22
+ display: none;
23
+ }
24
+
25
+ &.truncated button {
26
+ display: inline-block;
27
+ }
28
+
29
+ // "view more"/"view less" text swaps when content is expanded
30
+ .view-more {
31
+ color: shade-color($link-color, 20%);
32
+ display: inline;
33
+ }
34
+
35
+ .view-less {
36
+ color: shade-color($link-color, 20%);
37
+ display: none;
38
+ }
39
+
40
+ &.expanded {
41
+ .view-more {
42
+ display: none;
43
+ }
44
+
45
+ .view-less {
46
+ display: inline;
47
+ }
48
+ }
49
+
50
+ // icon rotates when content is expanded
51
+ .icon::before {
52
+ content: "▶";
53
+ }
54
+
55
+ &.expanded .icon::before {
56
+ content: "▼";
57
+ }
58
+ }
@@ -0,0 +1,13 @@
1
+ .my-w-25 {
2
+ width: 25% !important;
3
+ }
4
+
5
+ .my-w-75 {
6
+ width: 75% !important;
7
+ }
8
+
9
+ .w-md-100 {
10
+ @media (max-width: 767px) {
11
+ width: 100% !important;
12
+ }
13
+ }
@@ -0,0 +1,25 @@
1
+ // Colors
2
+ $online-icon-color: $green !default;
3
+ $background-highlight: #ffffaa !default;
4
+ $default-border-color: $border-color !default;
5
+ $light-icon-color: #f5f5f5 !default;
6
+ $dark-icon-color: $secondary !default;
7
+
8
+ // Spacing
9
+ $result-item-body-padding: 12px !default;
10
+
11
+ // Mixins
12
+ $default-border-styling: 1px solid $default-border-color !default;
13
+
14
+ @mixin extent-badge {
15
+ background-color: $gray-200;
16
+ border: $default-border-styling;
17
+ border-radius: $border-radius-lg;
18
+ color: $dark;
19
+ font-size: $font-size-sm;
20
+ line-height: 1.2;
21
+ margin: 0;
22
+ padding: ($spacer * .25) ($spacer * .5);
23
+ text-align: left;
24
+ white-space: normal;
25
+ }
@@ -0,0 +1,14 @@
1
+
2
+ <% access_content = capture do %>
3
+ <%= render Arclight::MetadataSectionComponent.with_collection(section_names,
4
+ metadata_attr: { layout: Arclight::UpperMetadataLayoutComponent },
5
+ presenter: presenter) %>
6
+ <% end %>
7
+
8
+ <% if access_content.present? %>
9
+ <div id="<%= t('arclight.views.show.sections.access_field').parameterize %>">
10
+ <h2 class="al-show-sub-heading"><%= t 'arclight.views.show.sections.access_field' %></h2>
11
+
12
+ <%= access_content%>
13
+ </div>
14
+ <% end %>