barbican-reset 1.3.6 → 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.
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div :class="styleContainer">
2
+ <div :class="styleContainer" :data-test="testData">
3
3
  <div :class="styleWrap">
4
4
  <span :class="styleSpan">
5
5
  <div :class="$style.title" v-if="title.length > 0 && !toggle">{{ title }}</div>
@@ -56,6 +56,13 @@ export default {
56
56
  }
57
57
  },
58
58
  computed: {
59
+ testData() {
60
+ if (this.error) {
61
+ return 'alert-error';
62
+ } else if (this.success) {
63
+ return 'alert-success';
64
+ } return 'alert-neutral';
65
+ },
59
66
  styleContainer() {
60
67
  let style = this.$style;
61
68
  let output = [style.container];
@@ -1,5 +1,8 @@
1
1
  <template>
2
2
  <div :class="styleComponent">
3
+ <div v-if="type === 'live'" :class="$style.icon">
4
+ <div class="btn btn-secondary">live</div>
5
+ </div>
3
6
  <img :class="$style.image" :src="image">
4
7
  <div v-if="expired" :class="$style.title">
5
8
  <h4>Expired</h4>
@@ -22,7 +25,11 @@ export default {
22
25
  hero: {
23
26
  type: Boolean,
24
27
  default: false,
25
- }
28
+ },
29
+ type: {
30
+ type: String,
31
+ default: 'live',
32
+ },
26
33
  },
27
34
  computed: {
28
35
  styleComponent() {
@@ -42,24 +49,35 @@ export default {
42
49
  position: relative;
43
50
  overflow: hidden;
44
51
  color: $white;
52
+ }
45
53
 
46
- .image {
47
- position: absolute;
48
- height: auto;
49
- width: 100%;
50
- inset: 0;
51
- }
54
+ .icon {
55
+ position: absolute;
56
+ right: 1rem;
57
+ top: 1rem;
58
+ }
52
59
 
53
- .title {
54
- background-color: rgba($c-grey-midnight, 0.85);
55
- place-items: center;
56
- position: absolute;
57
- display: grid;
58
- inset: 0;
59
- }
60
+ .image {
61
+ position: absolute;
62
+ height: auto;
63
+ width: 100%;
64
+ inset: 0;
65
+ }
66
+
67
+ .title {
68
+ background-color: rgba($c-grey-midnight, 0.85);
69
+ place-items: center;
70
+ position: absolute;
71
+ display: grid;
72
+ inset: 0;
60
73
  }
61
74
 
62
75
  .component.hero {
76
+ .icon {
77
+ right: 1.5rem;
78
+ top: 1.5rem;
79
+ }
80
+
63
81
  .title {
64
82
  h4 {
65
83
  font-size: $h2-font-size;
@@ -0,0 +1,37 @@
1
+ <template>
2
+ <div>
3
+ <svg :class="$style.logo" role="presentation">
4
+ <slot />
5
+ </svg>
6
+ <div :class="$style.label">{{ label }}</div>
7
+ </div>
8
+ </template>
9
+
10
+ <script>
11
+ export default {
12
+ name: 'PaymentLogo',
13
+ props: {
14
+ label: {
15
+ type: String,
16
+ default: 'visa'
17
+ }
18
+ }
19
+ }
20
+ </script>
21
+
22
+ <style lang="scss" module>
23
+
24
+ .label {
25
+ @include hide-text;
26
+ text-transform: uppercase;
27
+ height: 0;
28
+ width: 0;
29
+ }
30
+
31
+ .logo {
32
+ display: block;
33
+ height: 2.5rem;
34
+ width: 4rem;
35
+ }
36
+
37
+ </style>
@@ -17,15 +17,17 @@ export default {
17
17
  margin-left: auto;
18
18
  max-width: 20rem;
19
19
 
20
+ @include media-breakpoint-down(md) {
21
+ .card + .card {
22
+ margin-top: 1.25rem;
23
+ }
24
+ }
25
+
20
26
  @include media-breakpoint-up(md) {
21
27
  grid-template-columns: repeat(3, 1fr);
22
28
  column-gap: 1.25rem;
23
29
  max-width: 60rem;
24
30
  display: grid;
25
-
26
- .card {
27
- margin-bottom: 0;
28
- }
29
31
  }
30
32
  }
31
33
 
@@ -0,0 +1,42 @@
1
+ <template>
2
+
3
+ <div>
4
+
5
+ <fluid-iframe v-if="type === 'jwplayer'" :src="url" />
6
+
7
+ <div v-if="type === 'brightcove'" v-html="markup" :class="$style.brightcove"></div>
8
+
9
+ <h2 v-html="title" class="margin-bottom-1"></h2>
10
+
11
+ <p v-html="lead_description"></p>
12
+
13
+ <p v-html="long_description"></p>
14
+
15
+ <p>Until {{ formatDateTime(expires) }}</p>
16
+
17
+ </div>
18
+
19
+ </template>
20
+
21
+ <script>
22
+ import { FluidIframe } from 'barbican-reset'
23
+ export default {
24
+ props: ['type','url','markup','title','lead_description','long_description','expires'],
25
+ components: { FluidIframe },
26
+ methods: {
27
+ formatDateTime(date) {
28
+ return this.$moment(date).format("LT ddd D MMM YYYY");
29
+ }
30
+ }
31
+ }
32
+ </script>
33
+
34
+ <style lang="scss" module>
35
+
36
+ .brightcove {
37
+ border-radius: $border-radius-lg;
38
+ margin-bottom: 2rem;
39
+ overflow: hidden;
40
+ }
41
+
42
+ </style>
@@ -202,6 +202,15 @@
202
202
  $color: $white,
203
203
  $background: transparent
204
204
  );
205
+
206
+ @include focus {
207
+ &.member {
208
+ color: $c-member;
209
+ }
210
+ &.member-plus {
211
+ color: $c-member-dark;
212
+ }
213
+ }
205
214
  }
206
215
 
207
216
  @mixin btn-video-login {
@@ -218,6 +227,28 @@
218
227
  fill: $white;
219
228
  }
220
229
 
230
+ @mixin btn-carousel {
231
+ @include button-solid($c-grey-night);
232
+ @include single-box($white);
233
+ border-radius: 50%;
234
+ font-size: 0;
235
+ fill: $white;
236
+
237
+ @include media-breakpoint-down(lg) {
238
+ padding: 0.75rem;
239
+ }
240
+
241
+ &:disabled {
242
+ background-color: $c-grey-pearl;
243
+ border-color: $c-grey-pearl;
244
+ opacity: 1;
245
+ }
246
+
247
+ label {
248
+ visibility: hidden;
249
+ }
250
+ }
251
+
221
252
  @mixin btn-invisible {
222
253
  &, &:focus {
223
254
  background: transparent;
@@ -1,5 +1,5 @@
1
1
  // paths more explicit for gulp-sass
2
2
  @import "colors/index.scss";
3
- @import "layout/index.scss";
3
+ @import "layout.scss";
4
4
  @import "breakpoints.scss";
5
5
  @import "typography.scss";
package/icons/arrow.vue CHANGED
@@ -1,9 +1,5 @@
1
1
  <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- viewBox="0 0 83.2 80.9"
5
- height="12"
6
- width="12">
2
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 83.2 80.9" height="12" width="12">
7
3
  <path fill="white" d="M42.8.4L31.9 11.2l23.7 22.2H0V48h55.6l-24 21.6 11.2 11.3 40.4-40.7z"></path>
8
4
  </svg>
9
5
  </template>
@@ -0,0 +1,11 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
3
+ <path d="M17.51 3.87L15.73 2.1 5.84 12l9.9 9.9 1.77-1.77L9.38 12l8.13-8.13z"/>
4
+ </svg>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'ArrowBack'
10
+ }
11
+ </script>
@@ -0,0 +1,11 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
3
+ <polygon points="6.23,20.23 8,22 18,12 8,2 6.23,3.77 14.46,12"/>
4
+ </svg>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'ArrowForward'
10
+ }
11
+ </script>
package/icons/index.js CHANGED
@@ -4,6 +4,8 @@ import CityOfLondonLockup from './city_of_london_lockup'
4
4
  import ArrowIcon from './arrow'
5
5
  import BackArrow from './back_arrow'
6
6
  import CartIcon from './cart'
7
+ import ArrowBack from './arrow_back'
8
+ import ArrowForward from './arrow_forward'
7
9
 
8
10
  export {
9
11
  BarbicanLogo,
@@ -11,5 +13,7 @@ export {
11
13
  CityOfLondonLockup,
12
14
  ArrowIcon,
13
15
  BackArrow,
14
- CartIcon
16
+ CartIcon,
17
+ ArrowBack,
18
+ ArrowForward
15
19
  };
package/index.js CHANGED
@@ -1,7 +1,5 @@
1
1
 
2
- import Card from './components/card'
3
2
  import Container from './components/container'
4
- import Block from './components/block'
5
3
  import EventSummary from './components/event_summary'
6
4
  import AccountTitle from './components/account_title'
7
5
  import Wrap from './components/wrap'
@@ -22,6 +20,8 @@ import FooterLogos from './components/footer_logos'
22
20
  import FooterLower from './components/footer_lower'
23
21
  import FluidIframe from './components/fluid_iframe'
24
22
  import HelpRow from './components/help_row'
23
+ import VideoContent from './components/video_content'
24
+ import PaymentLogo from './components/payment_logo'
25
25
 
26
26
  export {
27
27
  Loader,
@@ -32,14 +32,12 @@ export {
32
32
  TypeText,
33
33
  Container,
34
34
  Wrap,
35
- Card,
36
35
  AccountTitle,
37
36
  Placeholder,
38
37
  FormSection,
39
38
  FormUpdate,
40
39
  FormGroup,
41
40
  RadioGroup,
42
- Block,
43
41
  EventSummary,
44
42
  FooterUpper,
45
43
  FooterLogos,
@@ -47,4 +45,6 @@ export {
47
45
  FluidIframe,
48
46
  HelpRow,
49
47
  CardDisplay,
48
+ VideoContent,
49
+ PaymentLogo
50
50
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "barbican-reset",
3
- "version": "1.3.6",
3
+ "version": "1.4.0",
4
4
  "description": "A collection of useful scss imports and js scripts, that provide consistent styling and functionality across barbican projects.",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/scss/_atomic.scss CHANGED
@@ -16,22 +16,22 @@ $aligns: "left", "center", "right";
16
16
  }
17
17
  }
18
18
 
19
- .margin-0 {
20
- margin: 0;
19
+ .border-radius-lg {
20
+ border-radius: $border-radius-lg;
21
21
  }
22
22
 
23
- .margin-top-05 {
24
- margin-top: 0.5rem;
25
- }
26
-
27
- .width-100 {
28
- width: 100%;
23
+ .color-orange {
24
+ color: $c-brand-orange;
29
25
  }
30
26
 
31
27
  .font-weight-700 {
32
28
  font-weight: 700;
33
29
  }
34
30
 
31
+ .font-weight-400 {
32
+ font-weight: 400;
33
+ }
34
+
35
35
  .font-size-lg {
36
36
  font-size: $font-size-lg;
37
37
  }
@@ -40,12 +40,24 @@ $aligns: "left", "center", "right";
40
40
  font-size: $h3-font-size;
41
41
  }
42
42
 
43
- .c-brand-orange {
44
- color: $c-brand-orange;
45
- }
46
-
47
43
  .list-style-none {
48
44
  list-style-type: none;
49
45
  padding: 0;
50
46
  margin: 0;
47
+ }
48
+
49
+ .margin-0 {
50
+ margin: 0;
51
+ }
52
+
53
+ .margin-top-05 {
54
+ margin-top: 0.5rem;
55
+ }
56
+
57
+ .overflow-hidden {
58
+ overflow: hidden;
59
+ }
60
+
61
+ .width-100 {
62
+ width: 100%;
51
63
  }
package/scss/_btn.scss CHANGED
@@ -68,6 +68,10 @@
68
68
  @include btn-cta;
69
69
  }
70
70
 
71
+ &.btn-carousel {
72
+ @include btn-carousel;
73
+ }
74
+
71
75
  &.btn-invisible {
72
76
  @include btn-invisible;
73
77
  }
@@ -10,8 +10,8 @@
10
10
  }
11
11
 
12
12
  .card {
13
- margin-bottom: 0;
14
13
  max-width: 20rem;
14
+ margin-top: 0;
15
15
  }
16
16
 
17
17
  .card-title {
@@ -3,7 +3,7 @@
3
3
  margin-top: $gap-account;
4
4
  margin-bottom: 0;
5
5
 
6
- .card-body {
6
+ > .card-body {
7
7
  padding: $gap-account;
8
8
  }
9
9
 
@@ -0,0 +1,5 @@
1
+
2
+ .card[block] {
3
+ box-shadow: 0 0 0.625rem rgba($black, 0.1);
4
+ border: none;
5
+ }
@@ -0,0 +1,45 @@
1
+
2
+ $angle: 120deg;
3
+
4
+ .card[membership] {
5
+ box-shadow: 0 0 0.375rem rgba($c-grey-steel, 0.5);
6
+ background: $c-grey-night;
7
+ width: calc(100% - 1rem);
8
+ display: inline-block;
9
+ margin: 0.5rem;
10
+ color: $white;
11
+ border: none;
12
+
13
+ @include media-breakpoint-up(sm) {
14
+ width: 23rem;
15
+ }
16
+
17
+ > .card-body {
18
+ align-items: flex-start;
19
+ row-gap: 0.75rem;
20
+ display: grid;
21
+
22
+ @include media-breakpoint-up(sm) {
23
+ row-gap: 2rem;
24
+ }
25
+ }
26
+
27
+ &.member {
28
+ background-color: $c-member;
29
+ }
30
+
31
+ &.member-plus {
32
+ background-color: $c-member-dark;
33
+ background-image: linear-gradient($angle, $c-member-dark 20%, $c-member 100%);
34
+ }
35
+
36
+ &.patron, &.premier-patron {
37
+ background-color: $c-patron;
38
+ background-image: linear-gradient($angle, $c-patron 60%, $c-patron-light 75%, $c-patron 90%);
39
+ }
40
+
41
+ &.principle-patron, &.directors-circle {
42
+ background-color: $c-principle;
43
+ background-image: linear-gradient($angle, $c-principle 60%, $c-principle-light 75%, $c-principle 90%);
44
+ }
45
+ }
@@ -3,6 +3,10 @@
3
3
  border: 1px solid $c-grey-pearl;
4
4
  overflow: hidden;
5
5
 
6
+ + .card {
7
+ margin-top: 0;
8
+ }
9
+
6
10
  img {
7
11
  max-width: 100%;
8
12
  }
@@ -2,7 +2,6 @@
2
2
  $border: 1px solid $c-grey-pearl;
3
3
 
4
4
  .card[video-help] {
5
- margin-bottom: 0;
6
5
  overflow: hidden;
7
6
  border: $border;
8
7
 
@@ -17,6 +16,10 @@ $border: 1px solid $c-grey-pearl;
17
16
  border-bottom: 0;
18
17
  }
19
18
 
19
+ + .card {
20
+ margin-top: 0;
21
+ }
22
+
20
23
  .card-header {
21
24
  border-radius: 0;
22
25
  border-bottom: 0;
@@ -5,15 +5,16 @@
5
5
  @import "account.scss";
6
6
  @import "video-help.scss";
7
7
  @import "related.scss";
8
+ @import "block.scss";
9
+ @import "membership.scss";
8
10
 
9
11
  .card {
10
12
  border: 1px solid $c-grey-pearl;
11
13
  border-radius: $border-radius-lg;
12
- margin-bottom: 1.25rem;
14
+ }
13
15
 
14
- &:last-child {
15
- margin-bottom: 0;
16
- }
16
+ .card + .card {
17
+ margin-top: 1.25rem;
17
18
  }
18
19
 
19
20
  .card-header {
@@ -28,4 +28,9 @@ table.basket tr {
28
28
  width: 100%;
29
29
  }
30
30
  }
31
- }
31
+ }
32
+
33
+ table.basket .promo-form {
34
+ @include basket-row-grid;
35
+ margin-top: 0.5rem;
36
+ }
@@ -4,6 +4,7 @@ table.details {
4
4
 
5
5
  thead {
6
6
  background-color: $c-grey-alpine;
7
+ margin-bottom: 1rem;
7
8
  font-weight: 700;
8
9
  display: block;
9
10
 
@@ -29,16 +30,10 @@ table.details {
29
30
  }
30
31
 
31
32
  tbody tr {
32
- border-bottom: 1px solid $c-grey-pearl;
33
- border-right: 1px solid $c-grey-pearl;
34
- border-left: 1px solid $c-grey-pearl;
35
-
36
- @include media-breakpoint-down($mq) {
37
- border-top: 1px solid $c-grey-pearl;
33
+ border: 1px solid $c-grey-pearl;
38
34
 
39
- &:not(:last-of-type) {
40
- margin-bottom: 1rem;
41
- }
35
+ &:not(:last-of-type) {
36
+ margin-bottom: 1rem;
42
37
  }
43
38
  }
44
39
 
@@ -13,12 +13,16 @@ table.etickets {
13
13
  }
14
14
  }
15
15
 
16
- tr {
16
+ thead tr, tbody tr.active {
17
17
  border: 1px solid $c-grey-pearl;
18
18
  display: grid;
19
19
 
20
+ &:not(:last-of-type) {
21
+ margin-bottom: 1rem;
22
+ }
23
+
20
24
  @include media-breakpoint-up($mq) {
21
- grid-template-columns: 9rem auto 9rem;
25
+ grid-template-columns: 10rem auto 8rem;
22
26
  }
23
27
 
24
28
  @include media-breakpoint-down($mq) {
@@ -47,8 +51,4 @@ table.etickets {
47
51
  display: none;
48
52
  }
49
53
  }
50
-
51
- tbody > div:not(:last-of-type) {
52
- margin-bottom: 1rem;
53
- }
54
54
  }
@@ -0,0 +1,6 @@
1
+
2
+ table.details.membership tr {
3
+ @include media-breakpoint-up(md) {
4
+ grid-template-columns: auto 10rem 10rem 8rem;
5
+ }
6
+ }
@@ -13,12 +13,16 @@ table.orders {
13
13
  }
14
14
  }
15
15
 
16
- tr {
16
+ thead tr, tbody tr.active {
17
17
  border: 1px solid $c-grey-pearl;
18
18
  display: grid;
19
19
 
20
+ &:not(:last-of-type) {
21
+ margin-bottom: 1rem;
22
+ }
23
+
20
24
  @include media-breakpoint-up($mq) {
21
- grid-template-columns: 9rem 8rem auto 7rem;
25
+ grid-template-columns: 10rem 8rem auto 8rem;
22
26
  }
23
27
 
24
28
  @include media-breakpoint-down($mq) {
@@ -47,8 +51,4 @@ table.orders {
47
51
  display: none;
48
52
  }
49
53
  }
50
-
51
- tbody > div:not(:last-of-type) {
52
- margin-bottom: 1rem;
53
- }
54
54
  }
@@ -6,6 +6,7 @@
6
6
  @import "details.scss";
7
7
  @import "preferences.scss";
8
8
  @import "etickets.scss";
9
+ @import "membership.scss";
9
10
 
10
11
  table {
11
12
  border-spacing: 0;
@@ -1,19 +0,0 @@
1
- <template>
2
- <div :class="$style.outer">
3
- <div :class="$style.inner">
4
- <slot />
5
- </div>
6
- </div>
7
- </template>
8
-
9
- <style lang="scss" module>
10
-
11
- .outer {
12
- @include content_masthead;
13
- }
14
-
15
- .inner {
16
- @include content_masthead__inner;
17
- }
18
-
19
- </style>
@@ -1,30 +0,0 @@
1
- <template>
2
- <div :class="styleContainer">
3
- <slot />
4
- </div>
5
- </template>
6
-
7
- <script>
8
- export default {
9
- computed: {
10
- styleContainer() {
11
- return this.$style.container;
12
- }
13
- }
14
- }
15
- </script>
16
-
17
- <style lang="scss" module>
18
-
19
- @import "../helpers/mixins";
20
-
21
- .container {
22
- @include card-container;
23
- box-shadow: 0 0 0.625rem rgba($black, 0.1);
24
-
25
- &:not(:last-of-type) {
26
- margin-bottom: $gap-basket;
27
- }
28
- }
29
-
30
- </style>
@@ -1,59 +0,0 @@
1
- <template>
2
- <div :class="styleContainer">
3
- <slot />
4
- </div>
5
- </template>
6
-
7
- <script>
8
- export default {
9
- props: {
10
- wrap: {
11
- type: Boolean,
12
- default: false,
13
- },
14
- account: {
15
- type: Boolean,
16
- default: false,
17
- }
18
- },
19
- computed: {
20
- styleContainer() {
21
- let styles = [this.$style.container];
22
- if (this.wrap) {
23
- styles.push(this.$style.wrap);
24
- }
25
- if (this.account) {
26
- styles.push(this.$style.account);
27
- }
28
- return styles;
29
- }
30
- }
31
- }
32
- </script>
33
-
34
- <style lang="scss" module>
35
-
36
- @import "../helpers/mixins";
37
-
38
- .container {
39
- @include card-container;
40
- border: 1px solid $c-grey-pearl;
41
- align-content: start;
42
- display: grid;
43
- gap: 1.25rem;
44
- }
45
-
46
- .container.wrap {
47
- background-color: $gray-100;
48
- }
49
-
50
- .container.account {
51
- padding: $gap-account;
52
- display: block;
53
-
54
- &:not(:last-of-type) {
55
- margin-bottom: $gap-account;
56
- }
57
- }
58
-
59
- </style>