spotlight-frontend 4.7.1 → 5.0.0-alpha2

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 (34) hide show
  1. package/README.md +30 -12
  2. package/app/assets/javascripts/spotlight/application.js +0 -1
  3. package/app/assets/javascripts/spotlight/spotlight.esm.js +3621 -3847
  4. package/app/assets/javascripts/spotlight/spotlight.esm.js.map +1 -1
  5. package/app/assets/javascripts/spotlight/spotlight.js +3620 -3852
  6. package/app/assets/javascripts/spotlight/spotlight.js.map +1 -1
  7. package/app/assets/stylesheets/spotlight/_accessibility.scss +0 -9
  8. package/app/assets/stylesheets/spotlight/_autocomplete.scss +49 -0
  9. package/app/assets/stylesheets/spotlight/_blacklight_configuration.scss +0 -1
  10. package/app/assets/stylesheets/spotlight/_blacklight_overrides.scss +1 -6
  11. package/app/assets/stylesheets/spotlight/_browse.scss +2 -2
  12. package/app/assets/stylesheets/spotlight/_catalog.scss +40 -41
  13. package/app/assets/stylesheets/spotlight/_curation.scss +1 -1
  14. package/app/assets/stylesheets/spotlight/_exhibit_admin.scss +7 -0
  15. package/app/assets/stylesheets/spotlight/_exhibits_index.scss +8 -5
  16. package/app/assets/stylesheets/spotlight/_featured_browse_categories_block.scss +3 -3
  17. package/app/assets/stylesheets/spotlight/_header.scss +13 -0
  18. package/app/assets/stylesheets/spotlight/_mixins.scss +3 -4
  19. package/app/assets/stylesheets/spotlight/_nestable.scss +2 -12
  20. package/app/assets/stylesheets/spotlight/_pages.scss +11 -9
  21. package/app/assets/stylesheets/spotlight/_report_a_problem.scss +1 -3
  22. package/app/assets/stylesheets/spotlight/_sir-trevor_overrides.scss +2 -2
  23. package/app/assets/stylesheets/spotlight/_spotlight.scss +2 -1
  24. package/app/assets/stylesheets/spotlight/_tag_selector.scss +34 -0
  25. package/app/assets/stylesheets/spotlight/_variables.scss +0 -8
  26. package/package.json +15 -2
  27. package/vendor/assets/javascripts/tiny-slider.js +3 -0
  28. package/app/assets/stylesheets/spotlight/#_accessibility.scss# +0 -12
  29. package/vendor/assets/javascripts/bootstrap-tagsinput.js +0 -530
  30. package/vendor/assets/javascripts/jquery.serializejson.js +0 -234
  31. package/vendor/assets/javascripts/nestable.js +0 -645
  32. package/vendor/assets/javascripts/sir-trevor.js +0 -23508
  33. package/vendor/assets/javascripts/typeahead.bundle.min.js +0 -7
  34. package/vendor/assets/stylesheets/bootstrap-tagsinput.css +0 -46
@@ -6,12 +6,3 @@
6
6
  outline: $input-focus-border-color auto 5px;
7
7
  }
8
8
  }
9
-
10
- // CSS for accessibility dashboard
11
- .alt-text-status .bi-exclamation-triangle-fill {
12
- fill: $warning;
13
- }
14
-
15
- .alt-text-status .bi-check-circle-fill {
16
- fill: $success;
17
- }
@@ -0,0 +1,49 @@
1
+ auto-complete {
2
+ width: 100%;
3
+ z-index: $zindex-dropdown !important; /* get typeahead to float on top of e.g. leaflet */
4
+ ul {
5
+ list-style-type: none;
6
+ z-index: $zindex-dropdown !important;
7
+ margin-top: 2px;
8
+ max-height: 360px;
9
+ overflow-y: auto;
10
+ padding: 8px 0;
11
+ background-color: #fff;
12
+ border: 1px solid #ccc;
13
+ border: 1px solid rgba(0, 0, 0, 0.2);
14
+ border-radius: 8px;
15
+ box-shadow: 0 5px 10px rgba(0,0,0,.2);
16
+ }
17
+
18
+ [role="option"]{
19
+ font-size: 18px;
20
+ line-height: 24px;
21
+ padding: 3px 1rem 3px 1rem;
22
+ margin-bottom: 1em;
23
+ }
24
+ }
25
+
26
+ auto-complete [aria-selected="true"],
27
+ auto-complete [role="option"]:hover {
28
+ color: #fff;
29
+ background-color: #0097cf;
30
+ }
31
+
32
+ .autocomplete-item {
33
+ display: flex;
34
+
35
+ p {
36
+ margin: 0;
37
+ }
38
+ .document-thumbnail {
39
+ margin-right: 1rem;
40
+ min-width: 60px;
41
+ padding: 0;
42
+ width: 60px;
43
+
44
+ img {
45
+ max-width: 60px;
46
+ max-height: 60px;
47
+ }
48
+ }
49
+ }
@@ -15,7 +15,6 @@
15
15
  padding: 0.75rem 0.75rem 0.75rem 40px;
16
16
  margin: 0;
17
17
  margin-top: -1px;
18
- height: 100%;
19
18
  }
20
19
 
21
20
  .dd3-handle:before {
@@ -1,15 +1,10 @@
1
- .submit-search-text {
2
- @extend .sr-only !optional;
3
- @extend .visually-hidden !optional;
4
- }
5
-
6
1
  .search-query-form {
7
2
  z-index: 1;
8
3
 
9
4
  .input-group {
10
5
  width: 100%;
11
6
  }
12
-
7
+
13
8
  .search-btn {
14
9
  max-height: 2.375rem;
15
10
  }
@@ -54,8 +54,8 @@ $image-overlay-max-height: 300px;
54
54
  }
55
55
 
56
56
  .image-overlay {
57
- border: 2px solid $gray-600;
58
- border-radius: $border-radius-lg;
57
+ border: var(--bs-border-width) solid var(--bs-border-color-translucent);
58
+ border-radius: var(--bs-border-radius);
59
59
  max-height: 240px;
60
60
  min-height: 140px;
61
61
  overflow: hidden;
@@ -4,7 +4,6 @@
4
4
  .thumbnail-column {
5
5
  box-sizing: content-box;
6
6
  min-width: 60px;
7
-
8
7
  }
9
8
 
10
9
  .document-thumbnail {
@@ -20,7 +19,9 @@
20
19
  object-fit: cover;
21
20
  }
22
21
 
23
- .document-counter {display: none;}
22
+ .document-counter {
23
+ display: none;
24
+ }
24
25
 
25
26
  .index_title {
26
27
  margin-top: 0;
@@ -43,8 +44,7 @@
43
44
  text-align: center;
44
45
  li {
45
46
  @extend .badge;
46
- @extend .badge-secondary !optional;
47
- @extend .bg-secondary !optional;
47
+ @extend .bg-secondary;
48
48
  a {
49
49
  color: #fff;
50
50
  }
@@ -52,14 +52,27 @@
52
52
  }
53
53
  }
54
54
 
55
- .document, tr.doc-row, li.dd-item, .autocomplete-item {
55
+ .document,
56
+ tr.doc-row,
57
+ li.dd-item,
58
+ .autocomplete-item {
56
59
  &.blacklight-private {
57
- .index_title, h1, .card-title, .autocomplete-title {
60
+ .index_title,
61
+ h1,
62
+ .card-title,
63
+ .autocomplete-title {
58
64
  @include private-label;
59
65
  }
60
66
  }
61
67
  }
62
68
 
69
+ // Don't show the private label until Blacklight reports success
70
+ tr.doc-row:has(input.toggle-visibility:disabled:not(:checked)) {
71
+ .index_title::after {
72
+ display: none;
73
+ }
74
+ }
75
+
63
76
  .blacklight-catalog-admin {
64
77
  .add-items-nav {
65
78
  margin-bottom: $spacer;
@@ -71,33 +84,20 @@
71
84
  }
72
85
 
73
86
  form.edit_solr_document {
74
- .bootstrap-tagsinput {
75
- @extend .clearfix;
76
- cursor: text;
77
- }
78
87
  .bg-warning.form-text {
79
88
  font-size: 0.9em;
80
89
  padding: 3px 6px;
81
90
  }
82
91
  }
83
92
 
84
- .bootstrap-tagsinput {
85
- display: block;
86
- .twitter-typeahead {
87
- width: auto;
88
- }
89
-
90
- .tt-input {
91
- vertical-align: baseline !important;
92
- }
93
- }
94
-
95
- .blacklight-catalog-edit, .blacklight-catalog-show {
93
+ .blacklight-catalog-edit,
94
+ .blacklight-catalog-show {
96
95
  .img-thumbnail {
97
96
  @extend .col-md-6;
98
97
  }
99
98
 
100
- .tags, .dl-horizontal {
99
+ .tags,
100
+ .dl-horizontal {
101
101
  @extend .col-md-6;
102
102
  }
103
103
 
@@ -120,7 +120,8 @@ form.edit_solr_document {
120
120
  width: 60%;
121
121
  margin-left: -1 * $spacer * 0.1;
122
122
 
123
- .btn, .btn-group {
123
+ .btn,
124
+ .btn-group {
124
125
  margin-left: $spacer * 0.1;
125
126
  margin-top: $spacer * 0.25;
126
127
  }
@@ -141,28 +142,26 @@ form.edit_solr_document {
141
142
  .document {
142
143
  .blacklight-exhibit_tags a {
143
144
  @extend .badge;
144
- @extend .badge-secondary !optional;
145
- @extend .bg-secondary !optional;
145
+ @extend .bg-secondary;
146
146
 
147
147
  &:not(:last-child) {
148
- @extend .mr-2 !optional;
149
- @extend .me-2 !optional;
148
+ @extend .me-2;
150
149
  }
151
150
  }
152
151
  }
153
152
 
154
153
  .visibility-toggle {
155
- .no-js & {
156
- input[type="submit"] {
157
- display: inline
158
- }
159
-
160
- div.toggle-visibility {
161
- display: none
162
- }
163
- }
164
-
165
- input[type="submit"] {
166
- display: none;
167
- }
154
+ .no-js & {
155
+ input[type="submit"] {
156
+ display: inline;
157
+ }
158
+
159
+ div.toggle-visibility {
160
+ display: none;
161
+ }
162
+ }
163
+
164
+ input[type="submit"] {
165
+ display: none;
166
+ }
168
167
  }
@@ -21,7 +21,7 @@
21
21
  }
22
22
  input[type='submit'] {
23
23
  @extend .btn;
24
- @extend .btn-secondary;
24
+ @extend .btn-primary;
25
25
  @extend .btn-sm;
26
26
  }
27
27
  display: none;
@@ -83,3 +83,10 @@
83
83
  margin-bottom: $spacer;
84
84
  }
85
85
  }
86
+
87
+ // In various admin views we use leaflet maps and autocomplete. They both set
88
+ // the same z-index value, so we need to override the leaflet z-index to make
89
+ // sure the leaflet controls don't appear over the autocomplete dropdown.
90
+ .leaflet-top, .leaflet-bottom {
91
+ z-index: 950;
92
+ }
@@ -1,9 +1,6 @@
1
1
  $exhibit-card-overlay-padding: $card-img-overlay-padding * 0.5 !default;
2
- $exhibit-card-overlay-opacity: 0.85 !default;
3
- $exhibit-card-bg: $card-bg !default;
4
2
 
5
3
  .exhibit-card {
6
- background: $exhibit-card-bg;
7
4
  overflow-y: hidden;
8
5
  padding-bottom: 3rem;
9
6
 
@@ -36,7 +33,13 @@ $exhibit-card-bg: $card-bg !default;
36
33
  }
37
34
 
38
35
  .card-img-overlay {
39
- background: rgba($exhibit-card-bg, $exhibit-card-overlay-opacity);
36
+ --exhibit-card-overlay-opacity: .7;
37
+ --exhibit-card-overlay-rgb: 255, 255, 255;
38
+ --exhibit-card-overlay-bg: rgba(
39
+ var(--exhibit-card-overlay-rgb),
40
+ var(--exhibit-card-overlay-opacity)
41
+ );
42
+ background: var(--exhibit-card-overlay-bg);
40
43
  border-bottom-left-radius: calc(0.25rem - 1px);
41
44
  border-bottom-right-radius: calc(0.25rem - 1px);
42
45
  display: flex;
@@ -82,7 +85,7 @@ $exhibit-card-bg: $card-bg !default;
82
85
  outline: $input-focus-border-color auto 5px;
83
86
 
84
87
  // Use WebKit focus styles if available
85
- @supports (-webkit-appearance:none) {
88
+ @supports (-webkit-appearance: none) {
86
89
  outline-color: -webkit-focus-ring-color;
87
90
  }
88
91
 
@@ -56,8 +56,8 @@ $xl-sidebar-five-tile-width: ($container-xl-sidebar * 0.2) - $tile-margin;
56
56
  background-size: cover;
57
57
  background-position: center;
58
58
  background-repeat: no-repeat;
59
- border: 2px solid $featured-browse-category-border-color;
60
- border-radius: $border-radius-lg;
59
+ border: var(--bs-border-width) solid var(--bs-border-color-translucent);
60
+ border-radius: var(--bs-border-radius);
61
61
  position: relative;
62
62
 
63
63
  .category-caption {
@@ -69,7 +69,7 @@ $xl-sidebar-five-tile-width: ($container-xl-sidebar * 0.2) - $tile-margin;
69
69
  width: 100%;
70
70
  padding: 5%;
71
71
  background: linear-gradient(0deg, rgba(46, 45, 41, 0.7) 45%, rgba(46, 45, 41, 0) 100%);
72
- border-radius: $border-radius-lg;
72
+ border-radius: var(--bs-border-radius);
73
73
  display: flex;
74
74
  flex-direction: column;
75
75
  justify-content: flex-end;
@@ -143,3 +143,16 @@
143
143
  width: 1px;
144
144
  }
145
145
  }
146
+
147
+ .link-unstyled {
148
+ &,
149
+ &:visited,
150
+ &:hover,
151
+ &:active,
152
+ &:focus,
153
+ &:active:hover {
154
+ color: inherit;
155
+ text-decoration: none;
156
+ font-weight: inherit;
157
+ }
158
+ }
@@ -1,5 +1,5 @@
1
1
  @mixin edit-in-place-highlighting() {
2
- background: #F7F7D0;
2
+ background: #f7f7d0;
3
3
  cursor: text;
4
4
  }
5
5
 
@@ -10,9 +10,8 @@
10
10
  @mixin private-label() {
11
11
  &:after {
12
12
  @extend .badge;
13
- @extend .badge-warning !optional;
14
- @extend .bg-warning !optional;
15
- content: 'Private';
13
+ @extend .bg-warning;
14
+ content: "Private";
16
15
  margin-left: 3px;
17
16
  color: black;
18
17
  }
@@ -26,8 +26,8 @@ tr.dd-item {
26
26
  position: relative;
27
27
  }
28
28
 
29
- .dd-list { display: block; position: relative; margin: 0; padding: 0; list-style: none; }
30
- .dd-list .dd-list { padding-left: 30px; }
29
+ .dd-list { display: block; position: relative; margin: 0; padding: 0 0 5px 0; list-style: none; }
30
+ .dd-list .dd-list { margin-left: 15px; padding-left: 15px; padding-bottom: 0; } // Having this mix of padding and margin improves the experience of dragging left to remove an item from a nested list.
31
31
  .dd-collapsed .dd-list { display: none; }
32
32
 
33
33
  .dd-item,
@@ -55,19 +55,10 @@ tr.dd-item {
55
55
  background-position: 0 0, 30px 30px;
56
56
  }
57
57
 
58
- .dd-dragel { position: absolute; pointer-events: none; z-index: 9999; }
59
- .dd-dragel > .dd-item .dd-handle { margin-top: 0; }
60
- .dd-dragel .dd-handle {
61
- box-shadow: 2px 4px 6px 0 rgba(0,0,0,.1);
62
- }
63
-
64
58
  /**
65
59
  * Nestable Extras
66
60
  */
67
61
 
68
- .nestable-lists { display: block; clear: both; padding: 30px 0; width: 100%; border: 0; border-top: 2px solid #ddd; border-bottom: 2px solid #ddd; }
69
-
70
-
71
62
  .dd-hover > .dd-handle { background: #2ea8e5 !important; }
72
63
 
73
64
  /**
@@ -93,7 +84,6 @@ tr.dd-item {
93
84
  .dd3-content.page-admin {
94
85
  position: relative;
95
86
  }
96
- .dd-dragel > .dd3-item > .dd3-content { margin: 0; }
97
87
 
98
88
  .dd3-item > button { margin-left: 30px; }
99
89
 
@@ -12,8 +12,7 @@
12
12
  }
13
13
 
14
14
  .primary-actions {
15
- @extend .float-right !optional;
16
- @extend .float-end !optional;
15
+ @extend .float-end;
17
16
  }
18
17
 
19
18
  #nested-pages {
@@ -71,7 +70,7 @@
71
70
 
72
71
  li {
73
72
  margin-bottom: 1rem;
74
- margin-top: $spacer * .5;
73
+ margin-top: $spacer * 0.5;
75
74
  word-break: break-word;
76
75
  .name {
77
76
  font-weight: bold;
@@ -82,7 +81,7 @@
82
81
  ol.sidenav {
83
82
  li {
84
83
  color: $gray-900;
85
- margin-top: $spacer * .5;
84
+ margin-top: $spacer * 0.5;
86
85
  }
87
86
 
88
87
  ol.subsection {
@@ -117,7 +116,9 @@
117
116
  }
118
117
 
119
118
  .item-grid-block {
120
- h3 { margin-top: 0; }
119
+ h3 {
120
+ margin-top: 0;
121
+ }
121
122
 
122
123
  .text-col {
123
124
  float: none;
@@ -180,7 +181,8 @@
180
181
  }
181
182
  }
182
183
 
183
- .preview-btn, .preview-exit-btn {
184
+ .preview-btn,
185
+ .preview-exit-btn {
184
186
  float: left;
185
187
  width: 100px;
186
188
  }
@@ -200,7 +202,8 @@
200
202
  h2 {
201
203
  margin-top: 0;
202
204
  }
203
- p, ol > li {
205
+ p,
206
+ ol > li {
204
207
  padding: $spacer * 0.5;
205
208
  }
206
209
  ol > li:last-child {
@@ -221,7 +224,6 @@
221
224
  }
222
225
 
223
226
  .items-block {
224
-
225
227
  .text-col {
226
228
  float: none;
227
229
  width: auto;
@@ -279,5 +281,5 @@
279
281
 
280
282
  .zpr-link {
281
283
  @extend .btn-sm;
282
- margin-top: $spacer * .75;
284
+ margin-top: $spacer * 0.75;
283
285
  }
@@ -1,10 +1,8 @@
1
1
  #report-problem-form {
2
- display: none;
3
2
  border-bottom: 1px solid $gray-600;
4
3
 
5
4
  h2 {
6
- @extend .sr-only !optional;
7
- @extend .visually-hidden !optional;
5
+ @extend .visually-hidden;
8
6
  }
9
7
  }
10
8
 
@@ -75,8 +75,8 @@
75
75
 
76
76
  .st-block-controls__button {
77
77
  @extend .btn;
78
- @extend .btn-secondary;
79
- @extend .btn-outline-secondary;
78
+ @extend .btn-primary;
79
+ @extend .btn-outline-primary;
80
80
 
81
81
  border: 1px solid $gray-700;
82
82
 
@@ -30,11 +30,12 @@
30
30
  @import "report_a_problem";
31
31
  @import "exhibits_index";
32
32
  @import "collapse_toggle";
33
+ @import "tag_selector";
33
34
  @import "translations";
34
35
  @import "utilities";
35
36
  @import "view_larger";
36
37
  @import "accessibility";
37
-
38
+ @import "autocomplete";
38
39
 
39
40
 
40
41
  // Styles below keep footer at bottom of viewport
@@ -0,0 +1,34 @@
1
+ .tag-selector {
2
+ .tag-selection-search-bar input {
3
+ border: none;
4
+ outline: none;
5
+ }
6
+
7
+ .tag-selector-input {
8
+ display: none;
9
+ }
10
+
11
+ .dropdown-content {
12
+ overflow-y: auto;
13
+ max-height: 180px;
14
+ label {
15
+ padding: 5px 10px;
16
+ cursor: pointer;
17
+
18
+ &:hover,
19
+ &.active {
20
+ background-color: $light;
21
+ }
22
+ }
23
+ }
24
+ }
25
+
26
+ .no-js .tag-selector {
27
+ .tag-selector-input {
28
+ display: block;
29
+ }
30
+
31
+ .tag-selection-wrapper {
32
+ display: none;
33
+ }
34
+ }
@@ -4,14 +4,6 @@ $footer-height: 7.5rem !default;
4
4
  $masthead-bg: $card-bg !default;
5
5
  $masthead-height: 11.25rem !default;
6
6
  $masthead-image-blur: 1px !default;
7
-
8
- $exhibit-card-height: 350px !default;
9
- $exhibit-card-bg: $card-bg !default;
10
- $exhibit-card-border: $card-border-color !default;
11
- $exhibit-card-gutter: 30px !default;
12
- $exhibit-card-image-size: 269px !default;
13
- $exhibit-card-shadow: inset 2px 2px 5px -2px $exhibit-card-border !default;
14
-
15
7
  $navbar-transparent-border: $gray-500 !default;
16
8
  $navbar-transparent-page-bg: rgba(0, 0, 0, 0.5) !default;
17
9
 
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "spotlight-frontend",
3
- "version": "4.7.1",
3
+ "version": "5.0.0-alpha2",
4
4
  "description": "Exhibits plugin for blacklight",
5
5
  "main": "app/assets/javascripts/spotlight",
6
6
  "type": "module",
7
+ "module": "app/assets/javascripts/spotlight/spotlight.esm.js",
7
8
  "scripts": {
8
9
  "prepare": "rollup --config rollup.config.js --sourcemap && ESM=true rollup --config rollup.config.js --sourcemap"
9
10
  },
@@ -12,7 +13,8 @@
12
13
  "url": "git+https://github.com/projectblacklight/spotlight.git"
13
14
  },
14
15
  "files": [
15
- "app/assets", "vendor/assets"
16
+ "app/assets",
17
+ "vendor/assets"
16
18
  ],
17
19
  "author": "",
18
20
  "license": "Apache-2.0",
@@ -21,6 +23,7 @@
21
23
  },
22
24
  "homepage": "https://github.com/projectblacklight/spotlight#readme",
23
25
  "devDependencies": {
26
+ "@rollup/plugin-commonjs": "^26.0.1",
24
27
  "rollup": "^4.0.0",
25
28
  "rollup-plugin-includepaths": "^0.2.4"
26
29
  },
@@ -29,5 +32,15 @@
29
32
  "not IE 11"
30
33
  ],
31
34
  "dependencies": {
35
+ "blacklight-frontend": "^8.4.0",
36
+ "bootstrap": ">=4.3.1 <6.0.0",
37
+ "clipboard": "^2.0.11",
38
+ "jquery": "^3.7.1",
39
+ "jquery-serializejson": "^3.2.1",
40
+ "leaflet": "^1.9.4",
41
+ "leaflet-iiif": "^3.0.0",
42
+ "openseadragon-rails": "^1.0.1",
43
+ "sir-trevor": "^0.8.2",
44
+ "sortablejs": "^1.15.3"
32
45
  }
33
46
  }
@@ -1,4 +1,5 @@
1
1
  // Includes an unreleased RTL support pull request: https://github.com/ganlanyuan/tiny-slider/pull/658
2
+ // Includes "export default tns" at the end of the file for spotlight/user/browse_group_categories.js
2
3
  var tns = (function (){
3
4
  var win = window;
4
5
 
@@ -3216,3 +3217,5 @@ var tns = function(options) {
3216
3217
 
3217
3218
  return tns;
3218
3219
  })();
3220
+
3221
+ export default tns;
@@ -1,12 +0,0 @@
1
- // Global accessibility overrides
2
-
3
- // Increase visibility of Firefox focus indicator
4
- @-moz-document url-prefix() {
5
- :focus {
6
- outline: $input-focus-border-color auto 5px;
7
- }
8
- }
9
-
10
- .btn:focus-visible {
11
- outline: $input-focus-border-color auto 5px;
12
- }