barbican-reset 1.0.4 → 1.0.8

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.
@@ -42,11 +42,4 @@
42
42
  &:focus {
43
43
  background-color: $background;
44
44
  }
45
- }
46
-
47
- @mixin card-container {
48
- border-radius: $border-radius-lg;
49
- background-color: $white;
50
- padding: $gap-power;
51
- overflow: hidden;
52
45
  }
@@ -22,4 +22,63 @@
22
22
  @mixin set-appearance($value: none) {
23
23
  -webkit-appearance: $value;
24
24
  -moz-appearance: $value;
25
+ }
26
+
27
+ @mixin button(
28
+ $background: $c-brand-orange,
29
+ $focus: $c-brand-orange-dark,
30
+ $gap: 1em) {
31
+
32
+ $color: $white;
33
+ -webkit-font-smoothing: antialiased;
34
+ -moz-osx-font-smoothing: grayscale;
35
+ border-radius: $border-radius-lg;
36
+ background-color: $background;
37
+ padding: $gap ($gap * 1.5);
38
+ text-decoration: none;
39
+ place-items: center;
40
+ text-align: center;
41
+ font-weight: 700;
42
+ transition: none;
43
+ gap: $gap * 0.75;
44
+ cursor: pointer;
45
+ line-height: 1;
46
+ display: flex;
47
+ color: $color;
48
+
49
+ @include focus {
50
+ @include double-box($color, $focus);
51
+ background-color: $focus;
52
+ color: $color;
53
+ }
54
+ }
55
+
56
+ @mixin button_outline(
57
+ $background: $c-brand-orange,
58
+ $focus: $c-brand-orange-dark,
59
+ $gap: 1em) {
60
+
61
+ $color: $white;
62
+ -webkit-font-smoothing: antialiased;
63
+ -moz-osx-font-smoothing: grayscale;
64
+ border-radius: $border-radius-lg;
65
+ border: 1px solid $background;
66
+ padding: $gap ($gap * 1.5);
67
+ background-color: $color;
68
+ text-decoration: none;
69
+ place-items: center;
70
+ text-align: center;
71
+ color: $background;
72
+ font-weight: 700;
73
+ transition: none;
74
+ gap: $gap * 0.75;
75
+ cursor: pointer;
76
+ line-height: 1;
77
+ display: flex;
78
+
79
+ @include focus {
80
+ border: 1px solid $focus;
81
+ background-color: $focus;
82
+ color: $color;
83
+ }
25
84
  }
@@ -1,6 +1,5 @@
1
1
  // paths more explicit for gulp-sass
2
2
  @import "~bourbon/core/bourbon.scss";
3
- @import "buttons.scss";
4
3
  @import "content.scss";
5
4
  @import "core.scss";
6
5
  @import "focus.scss";
@@ -4,12 +4,12 @@ $c-list-btn-default: $white, $c-grey-night, $white;
4
4
  $c-list-btn-primary: $white, $c-brand-orange, null, null, $c-brand-orange-dark;
5
5
  $c-list-btn-primary-alt: $white, $c-status-neutral;
6
6
  $c-list-btn-secondary: $c-brand-orange, $white, $c-brand-orange, $c-brand-orange-dark, $c-brand-orange-light, $c-brand-orange-dark;
7
- $c-list-secondary_outline: $c-brand-orange, $white, $c-brand-orange, $white, $c-brand-orange;
7
+ $c-list-btn-secondary-alt: $c-brand-orange, $white, $c-brand-orange, $white, $c-brand-orange;
8
8
  $c-list-btn-outline: $c-grey-night, $c-grey-alpine, $c-grey-night, $c-grey-alpine, $c-grey-night;
9
9
  $c-list-btn-light: $c-grey-night, $white;
10
10
 
11
- $c-list-btn-cinema: $white, $c-brand-cinema, null, null, $c-brand-cinema-dark;
12
- $c-list-btn-outline-cinema: $c-brand-cinema, $white, $c-brand-cinema, $c-brand-cinema-dark, $c-status-success-fade, $c-brand-cinema-dark;
11
+ $c-list-btn-primary-cinema: $white, $c-brand-cinema, null, null, $c-brand-cinema-dark;
12
+ $c-list-btn-secondary-cinema: $c-brand-cinema, $white, $c-brand-cinema, $c-brand-cinema-dark, $c-status-success-fade, $c-brand-cinema-dark;
13
13
 
14
14
  $c-list-btn-primary-power: $white, $c-power-blue, null, null, $c-power-blue-dark;
15
15
 
@@ -6,13 +6,10 @@ $constrained_content_width--wide: 1200px;
6
6
  $space: 0.625rem;
7
7
  // Default large amount of space.
8
8
  $space--large: $space * 3;
9
- $border-radius-lg: 0.375rem;
10
-
11
- // Basket layout
12
- $gap-basket: 0.625rem;
9
+ // Default gap value for use in CSS grid.
10
+ $grid-gap: $space;
13
11
 
14
- // Seat Selection
15
- $gap-instance: 1.5rem;
12
+ $border-radius-lg: 0.375rem;
16
13
 
17
14
  // Account Area
18
15
  $gap-account: 2rem;
package/icons/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import BarbicanLogo from '../vue/Icons/Barbican'
2
2
  import CityOfLondonLogo from '../vue/Icons/CityOfLondon'
3
3
  import ArrowIcon from '../vue/Icons/ArrowIcon'
4
- import BackArrow from '../vue/Icons/back_arrow.vue'
5
- import CartIcon from '../vue/Icons/cart.vue'
4
+ import BackArrow from '../vue/Icons/back_arrow'
5
+ import WheelchairIcon from '../vue/Icons/wheelchair'
6
6
 
7
7
  export {
8
8
  BarbicanLogo,
9
9
  CityOfLondonLogo,
10
10
  ArrowIcon,
11
11
  BackArrow,
12
- CartIcon
12
+ WheelchairIcon
13
13
  };
package/index.js CHANGED
@@ -2,17 +2,17 @@ import LoadingAnimation from './vue/LoadingAnimation'
2
2
  import Notification from './vue/Notification'
3
3
  import RelatedTitle from './vue/RelatedTitle'
4
4
  import TypeText from './vue/TypeText'
5
+ import Container from './vue/Container'
5
6
  import Wrap from './vue/Wrap'
7
+ import Card from './vue/Card'
6
8
  import Carousel from './vue/Carousel'
9
+ import Banner from './vue/Banner'
7
10
  import AccountCard from './vue/Account/Card'
8
11
  import AccountTitle from './vue/Account/Title'
9
12
  import Placeholder from './vue/Placeholder'
10
13
  import LoginForm from './vue/Login/Form'
11
14
  import FormRow from './vue/form_row'
12
- import Container from './vue/container'
13
- import EventSummary from './vue/event_summary'
14
- import Card from './vue/card'
15
- import Block from './vue/block'
15
+ import TableRow from './vue/table_row'
16
16
 
17
17
  export {
18
18
  LoadingAnimation,
@@ -23,11 +23,11 @@ export {
23
23
  Wrap,
24
24
  Card,
25
25
  Carousel,
26
+ Banner,
26
27
  AccountCard,
27
28
  AccountTitle,
28
29
  Placeholder,
29
30
  LoginForm,
30
31
  FormRow,
31
- EventSummary,
32
- Block
32
+ TableRow
33
33
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "barbican-reset",
3
- "version": "1.0.4",
3
+ "version": "1.0.8",
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/.DS_Store ADDED
Binary file
@@ -1,11 +1,12 @@
1
1
 
2
2
  .checkbox-group {
3
- row-gap: 0.5rem;
4
- display: grid;
5
3
 
6
4
  .custom-control {
7
5
  position: relative;
8
- display: grid;
6
+
7
+ &:not(:last-of-type) {
8
+ margin-bottom: 0.5rem;
9
+ }
9
10
 
10
11
  input[type=checkbox] {
11
12
  $size: 0.875rem;
@@ -14,37 +15,47 @@
14
15
  height: $size;
15
16
  margin: auto;
16
17
  width: $size;
17
- bottom: 0;
18
- top: 0;
19
18
  right: auto;
19
+ z-index: 3;
20
20
  left: 1rem;
21
+ bottom: 0;
22
+ top: 0;
21
23
 
22
24
  @mixin focus_colors {
23
- border: 1px solid $c-status-neutral-light;
24
25
  background-color: $c-status-neutral-fade;
26
+ border: 1px solid $c-status-neutral;
25
27
  color: $c-status-neutral;
26
28
  }
27
29
 
28
- @include focus {
29
- z-index: 3;
30
+ &:hover, &[data-focus-visible-added] {
31
+ &:focus {
32
+ box-shadow: none;
33
+ outline: none;
34
+ }
35
+
36
+ ~ label {
37
+ @include single-box($c-grey-steel, 0.0625rem);
38
+ border: 1px solid $c-grey-steel;
39
+ background-color: $c-grey-alpine;
40
+ }
30
41
 
31
- + label {
42
+ &:checked ~ label {
32
43
  @include focus_colors;
33
- @include double-box($white, $c-status-neutral-light, 0.5rem);
44
+ @include single-box($c-status-neutral, 0.0625rem);
34
45
  }
35
46
  }
36
-
37
- &:checked + label {
47
+
48
+ &:checked ~ label {
38
49
  @include focus_colors;
39
50
  }
40
51
  }
41
52
 
42
53
  label {
54
+ padding: 0.875rem 0.75rem 0.625rem 2.5rem;
55
+ border: 1px solid $c-grey-concrete;
43
56
  border-radius: $border-radius-lg;
44
- padding: 14px 12px 10px 40px;
45
- border: 1px solid #b8b8b8;
46
57
  background-color: $white;
47
- color: #4d4d4d;
58
+ color: $c-grey-night;
48
59
  cursor: pointer;
49
60
  }
50
61
  }
@@ -53,25 +64,21 @@
53
64
  @each $status, $color in $statees {
54
65
  @if $status != 'neutral' {
55
66
  .checkbox-group.#{$status} {
56
- .custom-control {
57
- input[type=checkbox] {
58
- @include focus {
59
- z-index: 3;
60
-
61
- + label {
62
- @include double-box($white, map-get($color, light), 0.5rem);
63
- border: 1px solid map-get($color, light);
64
- background-color: map-get($color, fade);
65
- color: map-get($color, base);
66
- }
67
- }
68
-
69
- &:checked + label {
70
- border: 1px solid map-get($color, light);
67
+ input[type=checkbox] {
68
+ &:hover, &[data-focus-visible-added] {
69
+ &:checked ~ label {
70
+ @include single-box(map-get($color, base), 0.0625rem);
71
+ border: 1px solid map-get($color, base);
71
72
  background-color: map-get($color, fade);
72
73
  color: map-get($color, base);
73
74
  }
74
- }
75
+ }
76
+
77
+ &:checked ~ label {
78
+ border: 1px solid map-get($color, base);
79
+ background-color: map-get($color, fade);
80
+ color: map-get($color, base);
81
+ }
75
82
  }
76
83
  }
77
84
  }
@@ -10,37 +10,46 @@
10
10
  height: $size;
11
11
  margin: auto;
12
12
  width: $size;
13
- bottom: 0;
14
- top: 0;
15
13
  right: auto;
14
+ z-index: 3;
16
15
  left: 1rem;
16
+ bottom: 0;
17
+ top: 0;
17
18
 
18
19
  @mixin focus_colors {
19
- border: 1px solid $c-status-neutral-light;
20
20
  background-color: $c-status-neutral-fade;
21
+ border: 1px solid $c-status-neutral;
21
22
  color: $c-status-neutral;
22
23
  }
23
24
 
24
- @include focus {
25
- z-index: 3;
26
-
27
- + label {
25
+ &:hover, &[data-focus-visible-added] {
26
+ &:focus {
27
+ box-shadow: none;
28
+ outline: none;
29
+ }
30
+
31
+ ~ label {
32
+ @include single-box($c-grey-steel, 0.0625rem);
33
+ border: 1px solid $c-grey-steel;
34
+ background-color: $c-grey-alpine;
35
+ }
36
+ &:checked ~ label {
28
37
  @include focus_colors;
29
- @include double-box($white, $c-status-neutral-light, 0.5rem);
38
+ @include single-box($c-status-neutral, 0.0625rem);
30
39
  }
31
40
  }
32
41
 
33
- &:checked + label {
42
+ &:checked ~ label {
34
43
  @include focus_colors;
35
44
  }
36
45
  }
37
46
 
38
47
  label {
48
+ padding: 0.875rem 0.75rem 0.625rem 2.5rem;
49
+ border: 1px solid $c-grey-concrete;
39
50
  border-radius: $border-radius-lg;
40
- padding: 14px 12px 10px 40px;
41
- border: 1px solid #b8b8b8;
42
51
  background-color: $white;
43
- color: #4d4d4d;
52
+ color: $c-grey-night;
44
53
  cursor: pointer;
45
54
  }
46
55
  }
@@ -49,23 +58,21 @@
49
58
  @if $status != 'neutral' {
50
59
  .checkbox.#{$status} {
51
60
  input[type=checkbox] {
52
- @include focus {
53
- z-index: 3;
54
-
55
- + label {
56
- @include double-box($white, map-get($color, light), 0.5rem);
57
- border: 1px solid map-get($color, light);
61
+ &:hover, &[data-focus-visible-added] {
62
+ &:checked ~ label {
63
+ @include single-box(map-get($color, base), 0.0625rem);
64
+ border: 1px solid map-get($color, base);
58
65
  background-color: map-get($color, fade);
59
66
  color: map-get($color, base);
60
67
  }
61
68
  }
69
+
70
+ &:checked ~ label {
71
+ border: 1px solid map-get($color, base);
72
+ background-color: map-get($color, fade);
73
+ color: map-get($color, base);
74
+ }
62
75
  }
63
-
64
- &:checked + label {
65
- border: 1px solid map-get($color, light);
66
- background-color: map-get($color, fade);
67
- color: map-get($color, base);
68
- }
69
- }
76
+ }
70
77
  }
71
78
  }
@@ -0,0 +1,10 @@
1
+
2
+ .form-control {
3
+ &:hover, &:focus, &[data-focus-visible-added] {
4
+ outline: none;
5
+
6
+ @include single-box($c-grey-steel, 0.0625rem);
7
+ border: 1px solid $c-grey-steel;
8
+ background-color: $c-grey-alpine;
9
+ }
10
+ }
@@ -0,0 +1,87 @@
1
+
2
+ $margin-radio: 0.25rem;
3
+
4
+ .radio-group {
5
+ margin: -$margin-radio;
6
+ }
7
+
8
+ .custom-radio {
9
+ display: inline-block;
10
+ margin: $margin-radio;
11
+ position: relative;
12
+ padding: 0;
13
+
14
+ input[type=radio] {
15
+ $size: 0.875rem;
16
+ position: absolute;
17
+ cursor: pointer;
18
+ height: $size;
19
+ margin: auto;
20
+ width: $size;
21
+ right: auto;
22
+ z-index: 3;
23
+ left: 1rem;
24
+ bottom: 0;
25
+ top: 0;
26
+
27
+ @mixin focus_colors {
28
+ background-color: $c-status-neutral-fade;
29
+ border: 1px solid $c-status-neutral;
30
+ color: $c-status-neutral;
31
+ }
32
+
33
+ &:hover, &[data-focus-visible-added] {
34
+ &:focus {
35
+ box-shadow: none;
36
+ outline: none;
37
+ }
38
+
39
+ ~ label {
40
+ @include single-box($c-grey-steel, 0.0625rem);
41
+ border: 1px solid $c-grey-steel;
42
+ background-color: $c-grey-alpine;
43
+ }
44
+
45
+ &:checked ~ label {
46
+ @include focus_colors;
47
+ @include single-box($c-status-neutral, 0.0625rem);
48
+ }
49
+ }
50
+
51
+ &:checked ~ label {
52
+ @include focus_colors;
53
+ }
54
+ }
55
+
56
+ label {
57
+ padding: 0.75rem 0.75rem 0.625rem 2.75rem;
58
+ border: 1px solid $c-grey-concrete;
59
+ border-radius: $border-radius-lg;
60
+ background-color: $white;
61
+ color: $c-grey-night;
62
+ cursor: pointer;
63
+ }
64
+ }
65
+
66
+ @each $status, $color in $statees {
67
+ @if $status != 'neutral' {
68
+ .radio-group.#{$status} {
69
+ input[type=radio] {
70
+ &:hover, &[data-focus-visible-added] {
71
+ &:checked ~ label {
72
+ @include single-box(map-get($color, base), 0.0625rem);
73
+ border: 1px solid map-get($color, base);
74
+ background-color: map-get($color, fade);
75
+ color: map-get($color, base);
76
+ }
77
+ }
78
+
79
+ &:checked ~ label {
80
+ border: 1px solid map-get($color, base);
81
+ background-color: map-get($color, fade);
82
+ color: map-get($color, base);
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }
package/scss/index.scss CHANGED
@@ -11,9 +11,10 @@
11
11
  @import "close-icon.scss";
12
12
 
13
13
  // bootstrap component styles
14
- @import "btn.scss";
15
14
  @import "checkbox.scss";
16
15
  @import "checkbox-group.scss";
16
+ @import "radio-group.scss";
17
+ @import "input.scss";
17
18
 
18
19
  // atomic helper styles
19
20
  @import "atomic.scss";
package/vue/.DS_Store CHANGED
Binary file
@@ -0,0 +1,8 @@
1
+
2
+ .outer {
3
+ @include content_masthead;
4
+ }
5
+
6
+ .inner {
7
+ @include content_masthead__inner;
8
+ }
@@ -0,0 +1,9 @@
1
+ <template>
2
+ <div :class="$style.outer">
3
+ <div :class="$style.inner">
4
+ <slot />
5
+ </div>
6
+ </div>
7
+ </template>
8
+
9
+ <style src="./banner.scss" lang="scss" module></style>
@@ -0,0 +1,24 @@
1
+
2
+ .container {
3
+ border-radius: $border-radius-lg;
4
+ border: 1px solid $c-grey-pearl;
5
+ background-color: $white;
6
+ align-content: start;
7
+ overflow: hidden;
8
+ padding: 1.25rem;
9
+ display: grid;
10
+ gap: 1.25rem;
11
+ }
12
+
13
+ .container.wrap {
14
+ background-color: $gray-100;
15
+ }
16
+
17
+ .container.account {
18
+ padding: $gap-account;
19
+ display: block;
20
+
21
+ &:not(:last-of-type) {
22
+ margin-bottom: $gap-account;
23
+ }
24
+ }
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div :class="styleContainer">
3
- <slot />
3
+ <slot></slot>
4
4
  </div>
5
5
  </template>
6
6
 
@@ -31,29 +31,4 @@ export default {
31
31
  }
32
32
  </script>
33
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>
34
+ <style src="./card.scss" lang="scss" module></style>
@@ -0,0 +1,20 @@
1
+
2
+ .outer {
3
+ padding-right: 5%;
4
+ padding-left: 5%;
5
+ }
6
+
7
+ .outer_splash {
8
+ padding-right: 10%;
9
+ padding-left: 10%;
10
+ }
11
+
12
+ .inner {
13
+ max-width: $constrained_content_width--wide;
14
+ padding: 1.5rem 0;
15
+ margin: 0 auto;
16
+
17
+ @include media-breakpoint-up(sm) {
18
+ padding: 2.5rem 0;
19
+ }
20
+ }
@@ -0,0 +1,25 @@
1
+ <template>
2
+ <div :class="styleOuter">
3
+ <div :class="$style.inner">
4
+ <slot />
5
+ </div>
6
+ </div>
7
+ </template>
8
+
9
+ <script>
10
+ export default {
11
+ props: {
12
+ splash : {
13
+ type: Boolean,
14
+ default: false
15
+ }
16
+ },
17
+ computed: {
18
+ styleOuter() {
19
+ return this.splash ? this.$style.outer_splash : this.$style.outer;
20
+ }
21
+ }
22
+ }
23
+ </script>
24
+
25
+ <style src="./container.scss" lang="scss" module></style>
@@ -0,0 +1,12 @@
1
+ <template>
2
+ <svg width="14" height="20" viewBox="0 0 14 20" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="M7 4C8.10457 4 9 3.10457 9 2C9 0.89543 8.10457 0 7 0C5.89543 0 5 0.89543 5 2C5 3.10457 5.89543 4 7 4Z" fill="black"/>
4
+ <path d="M14 11V9.00001C12.46 9.02001 10.91 8.25001 9.93 7.17001L8.64 5.74001C8.47 5.55001 8.26 5.40001 8.03 5.29001C8.02 5.29001 8.02 5.28001 8.01 5.28001H8C7.65 5.08001 7.25 4.98001 6.81 5.02001C5.76 5.11001 5 6.04001 5 7.09001V13C5 14.1 5.9 15 7 15H12V20H14V14.5C14 13.4 13.1 12.5 12 12.5H9V9.05001C10.29 10.12 12.25 10.99 14 11ZM5 18C3.34 18 2 16.66 2 15C2 13.69 2.84 12.59 4 12.17V10.1C1.72 10.56 0 12.58 0 15C0 17.76 2.24 20 5 20C7.42 20 9.44 18.28 9.9 16H7.83C7.42 17.16 6.31 18 5 18Z" fill="black"/>
5
+ </svg>
6
+ </template>
7
+
8
+ <script>
9
+ export default {
10
+ name: 'WheelchairIcon'
11
+ }
12
+ </script>
@@ -10,14 +10,18 @@
10
10
  }
11
11
  }
12
12
 
13
- .btn-link {
13
+ .btn-link, a {
14
14
  @include status_focus;
15
15
  }
16
16
 
17
- .error .btn-link {
18
- @include status_focus($c-status-error, $c-status-error-fade);
17
+ .error {
18
+ .btn-link, a {
19
+ @include status_focus($c-status-error, $c-status-error-fade);
20
+ }
19
21
  }
20
22
 
21
- .success .btn-link {
22
- @include status_focus($c-status-success, $c-status-success-fade);
23
+ .success {
24
+ .btn-link, a {
25
+ @include status_focus($c-status-success, $c-status-success-fade);
26
+ }
23
27
  }
@@ -2,6 +2,7 @@
2
2
  <div :class="styleContainer">
3
3
  <div :class="styleWrap">
4
4
  <span>
5
+ <div :class="$style.title" v-if="title.length > 0 && !toggle">{{ title }}</div>
5
6
  <slot />
6
7
  </span>
7
8
  <button v-if="toggle" :class="$style.button" @click="() => $emit('close')">
@@ -42,6 +43,10 @@ export default {
42
43
  margin: {
43
44
  type: String,
44
45
  default: null
46
+ },
47
+ title: {
48
+ type: String,
49
+ default: ''
45
50
  }
46
51
  },
47
52
  computed: {
@@ -50,7 +50,7 @@ $error-colors: $c-status-error, $c-status-error-fade;
50
50
  .wrap {
51
51
  background-color: $c-status-neutral-fade;
52
52
  border-color: $c-status-neutral-light;
53
- border-radius: $border-radius-lg;
53
+ border-radius: $border-radius;
54
54
  border-width: $border-width;
55
55
  color: $c-status-neutral;
56
56
  border-style: solid;
@@ -118,4 +118,9 @@ $error-colors: $c-status-error, $c-status-error-fade;
118
118
  &.success {
119
119
  @include icon($success-colors...);
120
120
  }
121
+ }
122
+
123
+ .title {
124
+ margin-bottom: 0.25rem;
125
+ font-weight: 700;
121
126
  }
package/vue/form_row.vue CHANGED
@@ -37,9 +37,7 @@
37
37
  <style lang="scss" module>
38
38
 
39
39
  .container {
40
- gap: $gap-account;
41
- display: grid;
42
-
40
+
43
41
  &:not(:last-of-type) {
44
42
  margin-bottom: 1rem;
45
43
  }
@@ -47,10 +45,16 @@
47
45
  @include media-breakpoint-up(sm) {
48
46
  grid-template-columns: 33fr 67fr;
49
47
  align-items: center;
48
+ gap: $gap-account;
49
+ display: grid;
50
50
  }
51
51
 
52
52
  label {
53
53
  font-weight: normal;
54
+
55
+ @include media-breakpoint-down(sm) {
56
+ margin-bottom: 0.5rem;
57
+ }
54
58
  }
55
59
 
56
60
  input {
@@ -64,4 +68,4 @@
64
68
  }
65
69
  }
66
70
 
67
- </style>
71
+ </style>
@@ -0,0 +1,94 @@
1
+ <template>
2
+ <div :class="styleRow" :style="`grid-template-columns: ${columns};`">
3
+ <slot></slot>
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'TableRow',
10
+ props: {
11
+ header: {
12
+ type: Boolean,
13
+ default: false
14
+ },
15
+ columns: {
16
+ type: String
17
+ },
18
+ mobile: {
19
+ type: Boolean,
20
+ default: false,
21
+ }
22
+ },
23
+ computed: {
24
+ styleRow() {
25
+ if (this.header) {
26
+ if (this.mobile) {
27
+ return this.$style.mobile_header_row;
28
+ } else {
29
+ return this.$style.header_row;
30
+ }
31
+ } else {
32
+ if (this.mobile) {
33
+ return this.$style.mobile_row;
34
+ } else {
35
+ return this.$style.row;
36
+ }
37
+ }
38
+ }
39
+ }
40
+ }
41
+ </script>
42
+
43
+ <style lang="scss" module>
44
+
45
+ .row {
46
+ border: 1px solid $input-border-color;
47
+ grid-auto-flow: column;
48
+ margin-top: 0.625rem;
49
+ display: grid;
50
+
51
+ > div {
52
+ padding: 0.5rem 0.75rem;
53
+
54
+ &:not(:last-of-type) {
55
+ border-right: 1px solid $input-border-color;
56
+ }
57
+
58
+ > label {
59
+ font-size: $font-size-lg;
60
+ font-weight: 700;
61
+ display: none;
62
+ }
63
+ }
64
+ }
65
+
66
+ .mobile_row {
67
+ composes: row;
68
+
69
+ @include media-breakpoint-down(md) {
70
+ border-radius: $border-radius-lg;
71
+ display: block;
72
+
73
+ > div:not(:last-of-type) {
74
+ border-right: none;
75
+ }
76
+ }
77
+ }
78
+
79
+ .header_row {
80
+ composes: row;
81
+ background-color: $c-grey-alpine;
82
+ font-weight: 700;
83
+ margin-top: 0;
84
+ }
85
+
86
+ .mobile_header_row {
87
+ composes: header_row;
88
+
89
+ @include media-breakpoint-down(md) {
90
+ display: none;
91
+ }
92
+ }
93
+
94
+ </style>
@@ -1,120 +0,0 @@
1
-
2
- @mixin button_setup(
3
- $pad: 1em,
4
- $line: 1,
5
- $flex: false) {
6
- -webkit-font-smoothing: antialiased;
7
- -moz-osx-font-smoothing: grayscale;
8
- border-radius: $border-radius-lg;
9
- text-decoration: none;
10
- line-height: $line;
11
- text-align: center;
12
- font-weight: 700;
13
- transition: none;
14
- cursor: pointer;
15
- padding: $pad;
16
-
17
- @if $flex {
18
- display: inline-flex;
19
- align-items: center;
20
- gap: $pad * 0.625;
21
- } @else {
22
- vertical-align: middle;
23
- display: inline-block;
24
-
25
- > * {
26
- vertical-align: middle;
27
- display: inline-block;
28
- }
29
- }
30
- }
31
-
32
- @mixin button_solid(
33
- $background: $c-brand-orange,
34
- $color: $white,
35
- $border: 1px,
36
- $pad: 1em,
37
- $line: 1,
38
- $flex: false) {
39
- @include button_setup($pad, $line, $flex);
40
- border: $border solid $background;
41
- background-color: $background;
42
- color: $color;
43
-
44
- @include focus {
45
- @include double-box($color, $background);
46
- border: $border solid $background;
47
- background-color: $background;
48
- color: $color;
49
- }
50
- }
51
-
52
- @mixin button_outline(
53
- $color: $c-brand-orange,
54
- $background: $white,
55
- $pad: 1em,
56
- $border: 1px,
57
- $line: 1,
58
- $flex: false) {
59
- @include button_setup($pad, $line, $flex);
60
- border: $border solid $color;
61
- background-color: $background;
62
- color: $color;
63
-
64
- @include focus {
65
- border: $border solid $color;
66
- background-color: $color;
67
- color: $background;
68
- }
69
- }
70
-
71
- @mixin btn-primary {
72
- @include button_solid;
73
- }
74
-
75
- @mixin btn-outline-primary {
76
- @include button_outline;
77
- }
78
-
79
- @mixin btn-outline-header {
80
- @include button_outline(
81
- $color: $white,
82
- $background: $c-brand-orange,
83
- $border: 0.125rem,
84
- $flex: true);
85
- }
86
-
87
- @mixin btn-secondary {
88
- @include button_solid($c-grey-night);
89
- }
90
-
91
- @mixin btn-outline-secondary {
92
- @include button_outline($c-grey-night);
93
- }
94
-
95
- @mixin btn-cinema {
96
- @include button_solid($c-brand-cinema);
97
- }
98
-
99
- @mixin btn-power {
100
- @include button_solid($c-power-blue);
101
- }
102
-
103
- @mixin btn-info {
104
- @include button_solid($c-status-neutral);
105
- }
106
-
107
- @mixin btn-outline-cinema {
108
- @include button_outline($c-brand-cinema);
109
- }
110
-
111
- @mixin btn-remove {
112
- @include button_solid(
113
- $background: $c-grey-night,
114
- $pad: 0.625rem,
115
- $line: 1.375);
116
- }
117
-
118
- @mixin btn-expand {
119
- display: block;
120
- }
package/scss/_btn.scss DELETED
@@ -1,49 +0,0 @@
1
- .btn {
2
- @include button_setup;
3
-
4
- &.btn-primary {
5
- // solid orange
6
- @include btn-primary;
7
- }
8
-
9
- &.btn-outline-primary {
10
- // orange outline, fill on focus
11
- @include btn-outline-primary;
12
- }
13
-
14
- &.btn-outline-header {
15
- // orange outline, fill on focus
16
- @include btn-outline-header;
17
- }
18
-
19
- &.btn-info {
20
- // solid blue
21
- @include btn-info;
22
- }
23
-
24
- &.btn-secondary {
25
- // solid grey
26
- @include btn-secondary;
27
- }
28
-
29
- &.btn-outline-secondary {
30
- // grey outline, fill on focus
31
- @include btn-outline-secondary;
32
- }
33
-
34
- &.btn-remove {
35
- // solid grey, slim
36
- @include btn-remove;
37
- }
38
-
39
- // modifyers
40
- &.expand {
41
- @include btn-expand;
42
- }
43
- }
44
-
45
- input[type="number"] {
46
- @include focus {
47
- @include double-box($white, $c-grey-steel);
48
- }
49
- }
@@ -1,5 +0,0 @@
1
- <template>
2
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="-89 91 20 19">
3
- <path d="M-69 91.7c-.1-.3-.3-.5-.5-.6s-.5-.2-.8-.1l-3 1c-.4.1-.7.4-.7.9l-.2 1.7-13.8 1.5c-.3.1-.6.2-.7.4-.2.2-.2.5-.2.8l.9 4.7c.1.6.4.9 1 .9h12.1l.2 1.4h-11.6c-.3 0-.5.1-.7.3s-.3.4-.3.7c0 .3.1.5.3.7s.4.3.7.3h12.9c.3 0 .6-.2.8-.4.2-.2.3-.5.2-.8l-.6-3 .8-8.3 2.5-.8c.6-.2.8-.7.7-1.3zm-4.4 16.7c0-.4-.2-.8-.5-1.1-.3-.3-.7-.5-1.1-.5-.4 0-.8.2-1.1.5-.3.3-.5.7-.5 1.1 0 .4.2.8.5 1.1.3.3.7.5 1.1.5.4 0 .8-.2 1.1-.5.3-.3.5-.7.5-1.1zm-9.5 0c0-.4-.2-.8-.5-1.1-.3-.3-.7-.5-1.1-.5-.4 0-.8.2-1.1.5-.3.3-.5.7-.5 1.1 0 .4.2.8.5 1.1.3.3.7.5 1.1.5.4 0 .8-.2 1.1-.5.4-.3.5-.7.5-1.1z"></path>
4
- </svg>
5
- </template>
package/vue/block.vue DELETED
@@ -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>
package/vue/container.vue DELETED
@@ -1,84 +0,0 @@
1
- <template>
2
- <div :class="styleOuter">
3
- <div :class="styleInner">
4
- <slot />
5
- </div>
6
- </div>
7
- </template>
8
-
9
- <script>
10
- export default {
11
- props: {
12
- splash: {
13
- type: Boolean,
14
- default: false
15
- },
16
- masthead: {
17
- type: Boolean,
18
- default: false
19
- }
20
- },
21
- computed: {
22
- styleOuter() {
23
- if (this.splash) {
24
- return this.$style.outer_splash;
25
- }
26
- if (this.masthead) {
27
- return this.$style.outer_masthead;
28
- }
29
- return this.$style.outer;
30
- },
31
- styleInner() {
32
- if (this.masthead) {
33
- return this.$style.inner_masthead;
34
- }
35
- return this.$style.inner;
36
- }
37
- }
38
- }
39
- </script>
40
-
41
- <style lang="scss" module>
42
-
43
- .outer {
44
- padding-right: 5%;
45
- padding-left: 5%;
46
- }
47
-
48
- .outer_splash {
49
- padding-right: 10%;
50
- padding-left: 10%;
51
- }
52
-
53
- .outer_masthead {
54
- composes: outer;
55
- box-shadow: 0 0.375rem 0.375rem rgba($black, 0.1);
56
- background-color: $white;
57
- }
58
-
59
- .inner {
60
- max-width: $constrained_content_width--wide;
61
- padding-bottom: 1.5rem;
62
- padding-top: 1.5rem;
63
- margin: 0 auto;
64
-
65
- @include media-breakpoint-up(sm) {
66
- padding-bottom: 2.5rem;
67
- padding-top: 2.5rem;
68
- }
69
- }
70
-
71
- .inner_masthead {
72
- composes: inner;
73
-
74
- @include media-breakpoint-up(sm) {
75
- padding-bottom: 3rem;
76
- padding-top: 3rem;
77
- }
78
-
79
- h1 {
80
- margin: 0;
81
- }
82
- }
83
-
84
- </style>
@@ -1,109 +0,0 @@
1
- <template>
2
- <div :class="$style.container">
3
- <img :class="styleImage" v-bind:src="data.image" alt="" />
4
- <div>
5
- <div :class="$style.title">{{ data.title }}</div>
6
- <div :class="$style.date_time">{{ data.date_formatted }}</div>
7
- <div :class="$style.venue">{{ data.venue }}</div>
8
- <router-link v-if="data.socially_distanced" :to="{ name: 'chooseSeats', params: { instanceIdShort: data.id_short } }" class="btn btn-outline-primary margin-top-1">
9
- Update seat selection
10
- </router-link>
11
- </div>
12
- </div>
13
- </template>
14
-
15
- <script type="text/javascript">
16
- export default {
17
- name: "EventSummary",
18
- props: {
19
- data: {
20
- type: Object,
21
- required: true
22
- },
23
- basket: {
24
- type: Boolean,
25
- default: false
26
- }
27
- },
28
- computed: {
29
- styleImage() {
30
- return this.basket ? this.$style.basket_image : this.$style.seats_image;
31
- }
32
- }
33
- };
34
- </script>
35
-
36
- <style lang="scss" module>
37
-
38
- @mixin title {
39
- letter-spacing: $headings-letter-spacing;
40
- line-height: $line-height-sm;
41
- }
42
-
43
- @mixin subtitle {
44
- @include title;
45
- font-size: $h5-font-size;
46
- color: $c-text-secondary;
47
- font-weight: normal;
48
-
49
- @include media-breakpoint-up(md) {
50
- font-size: $h4-font-size;
51
- }
52
- }
53
-
54
- .container {
55
- @include media-breakpoint-up(md) {
56
- align-items: flex-start;
57
- display: flex;
58
- }
59
- }
60
-
61
- .image {
62
- border: 1px solid $c-border-faint;
63
- border-radius: $border-radius-lg;
64
- max-width: 24rem;
65
- width: 100%;
66
-
67
- @include media-breakpoint-down(md) {
68
- margin-bottom: $gap-instance;
69
- }
70
-
71
- @include media-breakpoint-up(md) {
72
- margin-right: $gap-instance;
73
- width: 50%;
74
- }
75
- }
76
-
77
- .seats_image {
78
- composes: image;
79
-
80
- @include media-breakpoint-up(md) {
81
- max-width: 20rem;
82
- }
83
- }
84
-
85
- .basket_image {
86
- composes: image;
87
-
88
- @include media-breakpoint-up(md) {
89
- max-width: 16rem;
90
- }
91
- }
92
-
93
- .title {
94
- @include title;
95
- font-weight: $headings-font-weight;
96
- font-size: $h2-font-size;
97
- margin-bottom: 0.75rem;
98
- }
99
-
100
- .date_time {
101
- @include subtitle;
102
- margin-bottom: 0.25rem;
103
- }
104
-
105
- .venue {
106
- @include subtitle;
107
- }
108
-
109
- </style>