barbican-reset 1.6.7 → 1.7.1

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 (72) hide show
  1. package/animations/confirm.js +62 -0
  2. package/animations/index.js +8 -0
  3. package/components/br_confirm_done.vue +29 -0
  4. package/components/br_confirm_email.vue +25 -0
  5. package/components/br_container.vue +2 -2
  6. package/components/br_footer/lower.vue +11 -0
  7. package/components/br_footer/upper.vue +17 -0
  8. package/components/br_form_row.vue +1 -1
  9. package/components/{loader.vue → br_loader.vue} +0 -0
  10. package/components/br_wrap.vue +24 -0
  11. package/components/event_summary.vue +1 -1
  12. package/components/footer_logos.vue +1 -0
  13. package/helpers/mixins/_basket.scss +0 -6
  14. package/helpers/mixins/_br-alert.scss +99 -0
  15. package/helpers/mixins/_br-footer.scss +27 -0
  16. package/helpers/mixins/_br-form-row.scss +29 -0
  17. package/helpers/mixins/_buttons.scss +33 -15
  18. package/helpers/mixins/_card.scss +46 -8
  19. package/helpers/mixins/_content.scss +3 -3
  20. package/helpers/mixins/_table.scss +51 -0
  21. package/helpers/mixins/index.scss +4 -8
  22. package/helpers/mixins/input/_generic.scss +1 -0
  23. package/helpers/mixins/table/_basket.scss +33 -0
  24. package/{scss → helpers/mixins}/table/_details.scss +2 -2
  25. package/{scss → helpers/mixins}/table/_etickets.scss +3 -3
  26. package/{scss → helpers/mixins}/table/_gifts.scss +2 -2
  27. package/helpers/mixins/table/_membership.scss +8 -0
  28. package/{scss → helpers/mixins}/table/_orders.scss +3 -13
  29. package/{scss → helpers/mixins}/table/_preferences.scss +2 -2
  30. package/helpers/mixins/table/_resale.scss +31 -0
  31. package/{scss → helpers/mixins}/table/_section.scss +1 -1
  32. package/{scss → helpers/mixins}/table/_tickets.scss +2 -2
  33. package/helpers/variables/_alerts.scss +7 -0
  34. package/helpers/variables/_layout.scss +3 -6
  35. package/helpers/variables/_typography.scss +0 -4
  36. package/helpers/variables/colors/_borders.scss +3 -0
  37. package/helpers/variables/colors/_brand.scss +2 -0
  38. package/helpers/variables/colors/index.scss +1 -2
  39. package/helpers/variables/index.scss +1 -0
  40. package/icons/confirm/done.vue +23 -0
  41. package/icons/confirm/email.vue +7 -0
  42. package/icons/confirm/index.js +7 -0
  43. package/index.js +14 -9
  44. package/package.json +2 -1
  45. package/scss/_atomic.scss +24 -15
  46. package/scss/_br-alert.scss +49 -0
  47. package/scss/_br-footer.scss +8 -0
  48. package/scss/{_form-group.scss → _br-form-row.scss} +2 -21
  49. package/scss/{_loading-animation.scss → _br-loader.scss} +3 -3
  50. package/scss/_br-wrap.scss +18 -0
  51. package/scss/_btn.scss +10 -0
  52. package/scss/_close-icon.scss +1 -1
  53. package/scss/_custom-checkbox.scss +12 -0
  54. package/scss/_fonts.scss +11 -9
  55. package/scss/_header.scss +1 -1
  56. package/scss/_input.scss +1 -1
  57. package/scss/_list.scss +1 -1
  58. package/scss/_table.scss +25 -0
  59. package/scss/card/_confirm.scss +17 -10
  60. package/scss/card/index.scss +6 -21
  61. package/scss/index.scss +8 -5
  62. package/components/footer_lower.vue +0 -20
  63. package/components/footer_upper.vue +0 -51
  64. package/components/wrap.vue +0 -56
  65. package/helpers/variables/colors/_layout.scss +0 -40
  66. package/icons/password/index.js +0 -7
  67. package/icons/password/request.vue +0 -16
  68. package/icons/password/reset.vue +0 -33
  69. package/scss/_alert.scss +0 -132
  70. package/scss/table/_basket.scss +0 -31
  71. package/scss/table/_membership.scss +0 -6
  72. package/scss/table/index.scss +0 -19
@@ -0,0 +1,62 @@
1
+ import gsap from 'gsap'
2
+ import { DrawSVGPlugin } from 'gsap/DrawSVGPlugin'
3
+
4
+ gsap.registerPlugin(DrawSVGPlugin);
5
+
6
+ const fadeIn = {
7
+ duration: 0.3,
8
+ opacity: 0,
9
+ delay: 0.3,
10
+ };
11
+
12
+ const explode = {
13
+ ease: "power1.out",
14
+ opacity: 0,
15
+ scale: 1.5,
16
+ };
17
+
18
+ const defaults = {
19
+ duration: 0.6,
20
+ ease: "power1.in",
21
+ transformOrigin: "center"
22
+ }
23
+
24
+ export const animateEmail = () => {
25
+ const query = target => document.querySelector(`.card[email] ${target}`);
26
+ const title = query(".card-title");
27
+ const outline = query(".outline");
28
+ const arrow = query(".arrow");
29
+ const fold = query(".fold");
30
+ const tl = gsap.timeline({ defaults });
31
+
32
+ const clone = title.cloneNode(true);
33
+ clone.classList.add("clone");
34
+ title.after(clone);
35
+
36
+ tl.set(arrow, { opacity: 0 })
37
+ .from(title, fadeIn)
38
+ .set(clone, { opacity: 0.4 })
39
+ .from(outline, { drawSVG: "0%" }, "start")
40
+ .from(fold, { drawSVG: "0%", duration: 0.3 }, "start")
41
+ .to(clone, explode, "start")
42
+ .set(arrow, { opacity: 1 })
43
+ .from(arrow, { x: -6, ease: "power1.out" });
44
+ }
45
+
46
+ export const animateDone = () => {
47
+ const query = target => document.querySelector(`.card[done] ${target}`);
48
+ const title = query(".card-title");
49
+ const outline = query(".outline");
50
+ const tick = query(".tick");
51
+ const tl = gsap.timeline({ defaults });
52
+
53
+ const clone = title.cloneNode(true);
54
+ clone.classList.add("clone");
55
+ title.after(clone);
56
+
57
+ tl.from(title, fadeIn)
58
+ .set(clone, { opacity: 0.4 })
59
+ .from(outline, { drawSVG: "0%" }, "start")
60
+ .from(tick, { drawSVG: "0%", duration: 0.3 }, "start+=0.3")
61
+ .to(clone, explode, "start");
62
+ }
@@ -0,0 +1,8 @@
1
+ import { animateEmail, animateDone } from './confirm'
2
+
3
+ export default {
4
+ methods: {
5
+ animateEmail,
6
+ animateDone,
7
+ },
8
+ };
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <b-card confirm done>
3
+ <done-icon />
4
+ <b-card-title>Done</b-card-title>
5
+ <b-card-text v-if="$slots.default">
6
+ <slot />
7
+ </b-card-text>
8
+ </b-card>
9
+ </template>
10
+
11
+ <script>
12
+ import Animations from 'barbican-reset/animations'
13
+ import { DoneIcon } from 'barbican-reset/icons/confirm'
14
+
15
+ export default {
16
+ mixins: [Animations],
17
+ components: {
18
+ DoneIcon,
19
+ },
20
+ props: {
21
+ type: {
22
+ type: String
23
+ },
24
+ },
25
+ mounted() {
26
+ this.animateDone();
27
+ },
28
+ };
29
+ </script>
@@ -0,0 +1,25 @@
1
+ <template>
2
+ <b-card confirm email>
3
+ <email-icon />
4
+ <b-card-title v-if="$slots.title">
5
+ <slot name="title" />
6
+ </b-card-title>
7
+ <b-card-text v-if="$slots.default">
8
+ <slot />
9
+ </b-card-text>
10
+ </b-card>
11
+ </template>
12
+
13
+ <script>
14
+ import Animations from 'barbican-reset/animations'
15
+ import { EmailIcon } from 'barbican-reset/icons/confirm'
16
+ export default {
17
+ mixins: [Animations],
18
+ components: {
19
+ EmailIcon
20
+ },
21
+ mounted() {
22
+ this.animateEmail();
23
+ },
24
+ };
25
+ </script>
@@ -70,7 +70,7 @@ export default {
70
70
  }
71
71
 
72
72
  .inner {
73
- max-width: $layout-width-wide;
73
+ max-width: $layout-width-lg;
74
74
  margin: 0 auto;
75
75
 
76
76
  &:not(.footer) {
@@ -89,7 +89,7 @@ export default {
89
89
  }
90
90
 
91
91
  &.thin {
92
- max-width: $layout-width-thin;
92
+ max-width: $layout-width-sm;
93
93
  }
94
94
 
95
95
  &.masthead {
@@ -0,0 +1,11 @@
1
+ <template>
2
+ <div class="br-footer-lower">
3
+ <slot />
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'BrFooterLower'
10
+ }
11
+ </script>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <div :class="[`br-footer-upper`, { splash }]">
3
+ <slot />
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'BrFooterUpper',
10
+ props: {
11
+ splash: {
12
+ type: Boolean,
13
+ default: false
14
+ }
15
+ }
16
+ }
17
+ </script>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="br-form-group">
2
+ <div class="br-form-row">
3
3
  <label v-if="label" :for="id">
4
4
  <strong>{{ label }}</strong> <span v-if="label && required">(required)</span><span v-if="label && optional">(optional)</span>
5
5
  </label>
File without changes
@@ -0,0 +1,24 @@
1
+ <template>
2
+ <div :class="['br_wrap',{ title },{ videos },{ thin }]">
3
+ <slot></slot>
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ props: {
10
+ title: {
11
+ type: Boolean,
12
+ default: false,
13
+ },
14
+ thin: {
15
+ type: Boolean,
16
+ default: false,
17
+ },
18
+ videos: {
19
+ type: Boolean,
20
+ default: false,
21
+ }
22
+ },
23
+ }
24
+ </script>
@@ -43,7 +43,7 @@ export default {
43
43
  @mixin subtitle {
44
44
  @include title;
45
45
  font-size: $h5-font-size;
46
- color: $c-text-secondary;
46
+ color: $c-grey-steel;
47
47
  font-weight: normal;
48
48
 
49
49
  @include media-breakpoint-up(md) {
@@ -5,6 +5,7 @@
5
5
  </template>
6
6
 
7
7
  <script>
8
+ // dont think we need this any longer
8
9
  export default {
9
10
  name: 'FooterLogos'
10
11
  }
@@ -26,10 +26,4 @@
26
26
  @include summary-sm {
27
27
  grid-auto-flow: row;
28
28
  }
29
- }
30
-
31
- @mixin table-row($gap: 0.75rem) {
32
- border-bottom: 1px solid $c-grey-pearl;
33
- padding-bottom: $gap;
34
- padding-top: $gap;
35
29
  }
@@ -0,0 +1,99 @@
1
+
2
+ @mixin br-alert-wrap--setup {
3
+ border-radius: $border-radius-lg;
4
+ border-width: $border-width;
5
+ padding: 0.75rem 0.875rem;
6
+ border-style: solid;
7
+ }
8
+
9
+ @mixin br-alert-wrap--colors($main, $fade, $light) {
10
+ background-color: $fade;
11
+ border-color: $light;
12
+ color: $main;
13
+ }
14
+
15
+ @mixin br-alert-wrap--toggle {
16
+ justify-content: space-between;
17
+ align-items: center;
18
+ display: flex;
19
+ gap: 0.625rem;
20
+
21
+ &.inline {
22
+ display: inline-flex;
23
+ }
24
+ }
25
+
26
+ @mixin br-alert-link($main, $fade) {
27
+ @include focus {
28
+ @include single-box($main);
29
+ background-color: $main;
30
+ color: $fade;
31
+ }
32
+ }
33
+
34
+ @mixin br-alert-exit($main, $fade) {
35
+ path.cross {
36
+ fill: $main;
37
+ }
38
+ path.tint {
39
+ fill: $fade;
40
+ }
41
+
42
+ @include focus {
43
+ outline-color: $main;
44
+
45
+ path.cross {
46
+ fill: $fade;
47
+ }
48
+ path.tint {
49
+ fill: $main;
50
+ }
51
+ }
52
+ }
53
+
54
+ @mixin br-alert--center {
55
+ text-align: center;
56
+
57
+ .wrap {
58
+ justify-content: center;
59
+ }
60
+ }
61
+
62
+ @mixin br-alert--title {
63
+ margin-bottom: 0.25rem;
64
+ font-weight: 700;
65
+ }
66
+
67
+ @mixin br-alert--flex {
68
+ justify-content: space-between;
69
+ display: flex;
70
+ }
71
+
72
+ @mixin br-alert--setup {
73
+ @include media-breakpoint-down(xs) {
74
+ font-size: $font-size-sm;
75
+ }
76
+
77
+ .title {
78
+ @include br-alert--title;
79
+ }
80
+
81
+ .flex {
82
+ @include br-alert--flex;
83
+ }
84
+
85
+ .btn.btn-exit {
86
+
87
+ &.error {
88
+ @include br-alert-exit($error_focus...);
89
+ }
90
+
91
+ &.success {
92
+ @include br-alert-exit($success_focus...);
93
+ }
94
+
95
+ &.neutral {
96
+ @include br-alert-exit($neutral_focus...);
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,27 @@
1
+
2
+ @mixin br-footer-upper {
3
+ padding-top: 3.75rem;
4
+ display: grid;
5
+ gap: 1rem;
6
+
7
+ @include media-breakpoint-up(md) {
8
+ grid-template-columns: 11rem auto;
9
+ }
10
+
11
+ &:not(.splash) {
12
+ padding-bottom: 3.75rem;
13
+ }
14
+
15
+ nav a {
16
+ @include focus {
17
+ @include single-box($white);
18
+ background-color: $white;
19
+ color: $black;
20
+ }
21
+ }
22
+ }
23
+
24
+ @mixin br-footer-lower {
25
+ padding-bottom: 1.875rem;
26
+ padding-top: 1.875rem;
27
+ }
@@ -0,0 +1,29 @@
1
+
2
+ @mixin br-form-row {
3
+ &:not(:last-of-type) {
4
+ margin-bottom: 1rem;
5
+ }
6
+
7
+ @include media-breakpoint-up(sm) {
8
+ grid-template-columns: 33fr 67fr;
9
+ gap: $gap-account;
10
+ display: grid;
11
+ }
12
+
13
+ > label {
14
+ @include media-breakpoint-up(sm) {
15
+ margin-top: 1rem;
16
+ }
17
+ }
18
+
19
+ label {
20
+ @include media-breakpoint-down(sm) {
21
+ margin-bottom: 0.5rem;
22
+ }
23
+ }
24
+
25
+ input {
26
+ width: 100%;
27
+ margin: 0;
28
+ }
29
+ }
@@ -8,10 +8,10 @@
8
8
  font-weight: 700;
9
9
  transition: none;
10
10
  line-height: 1;
11
- padding: 1em;
11
+ padding: 1em;
12
12
  }
13
13
 
14
- @mixin button-display($display:'ib',$gap:1rem) {
14
+ @mixin button-display($display:'ib',$gap:1em) {
15
15
  @if $display == 'ib' {
16
16
  vertical-align: middle;
17
17
  display: inline-block;
@@ -32,16 +32,18 @@
32
32
  $background: $c-brand-orange,
33
33
  $color: $white,
34
34
  $border: 1px,
35
- $padding: 1rem,
36
- $line: false,
37
- $display: false) {
35
+ $padding: 1em,
36
+ $line-height: false,
37
+ $display: false,
38
+ $font-size: false) {
38
39
  border: $border solid $background;
39
40
  background-color: $background;
40
41
  padding: $padding;
41
42
  color: $color;
42
43
 
43
44
  @if $display { @include button-display($display, $padding * 0.625); }
44
- @if $line { line-height: $line; }
45
+ @if $line-height { line-height: $line-height; }
46
+ @if $font-size { font-size: $font-size; }
45
47
 
46
48
  path {
47
49
  fill: $color;
@@ -63,16 +65,18 @@
63
65
  $color: $c-brand-orange,
64
66
  $background: $white,
65
67
  $border: 1px,
66
- $padding: 1rem,
67
- $line: false,
68
- $display: false) {
68
+ $padding: 1em,
69
+ $line-height: false,
70
+ $display: false,
71
+ $font-size: false) {
69
72
  background-color: $background;
70
73
  border: $border solid $color;
71
74
  padding: $padding;
72
75
  color: $color;
73
76
 
74
77
  @if $display { @include button-display($display, $padding * 0.625); }
75
- @if $line { line-height: $line; }
78
+ @if $line-height { line-height: $line-height; }
79
+ @if $font-size { font-size: $font-size; }
76
80
 
77
81
  path {
78
82
  fill: $color;
@@ -95,7 +99,7 @@
95
99
  $color: inherit,
96
100
  $background: transparent,
97
101
  $padding: 0,
98
- $line: false) {
102
+ $line-height: false) {
99
103
  background-color: $background;
100
104
  text-decoration: underline;
101
105
  font-weight: inherit;
@@ -103,7 +107,7 @@
103
107
  border-radius: 0;
104
108
  color: $color;
105
109
 
106
- @if $line { line-height: $line; }
110
+ @if $line-height { line-height: $line-height; }
107
111
  }
108
112
 
109
113
  @mixin btn-primary {
@@ -116,10 +120,24 @@
116
120
  }
117
121
  }
118
122
 
123
+ @mixin btn-returns {
124
+ @include button-solid(
125
+ $padding: 0.75em,
126
+ $font-size: $font-size-sm
127
+ );
128
+ }
129
+
119
130
  @mixin btn-outline-primary {
120
131
  @include button-outline;
121
132
  }
122
133
 
134
+ @mixin btn-resale {
135
+ @include button-outline(
136
+ $padding: 0.625em,
137
+ $font-size: $font-size-sm
138
+ );
139
+ }
140
+
123
141
  @mixin btn-secondary {
124
142
  @include button-solid($c-grey-night);
125
143
  }
@@ -171,8 +189,8 @@
171
189
  @mixin btn-remove {
172
190
  @include button-solid(
173
191
  $background: $c-grey-night,
174
- $padding: 0.625rem,
175
- $line: 1.375);
192
+ $padding: 0.625em,
193
+ $line-height: 1.375);
176
194
  }
177
195
 
178
196
  @mixin btn-link {
@@ -186,7 +204,7 @@
186
204
 
187
205
  @mixin btn-video-help {
188
206
  @include button-link(
189
- $padding: 1.25rem,
207
+ $padding: 1.25em,
190
208
  $background: $c-grey-alpine);
191
209
  font-weight: 700;
192
210
  text-align: left;
@@ -1,15 +1,53 @@
1
1
 
2
+ @mixin card {
3
+ border: 1px solid $c-grey-pearl;
4
+ border-radius: $border-radius-lg;
5
+ background-color: white;
6
+
7
+ &:not(:first-child) {
8
+ margin-top: 1.25rem;
9
+ }
10
+ }
11
+
12
+ @mixin card-header {
13
+ border-bottom: 1px solid $c-grey-pearl;
14
+ padding: 1.5rem 1.75rem 1.25rem;
15
+ background-color: transparent;
16
+ }
17
+
18
+ @mixin card-subtitle {
19
+ color: $c-grey-steel !important;
20
+ font-size: $font-size-sm;
21
+ font-weight: 400;
22
+ margin: 0;
23
+ }
24
+
25
+ @mixin card-body {
26
+ padding: 1.75rem 1.75rem 1.5rem;
27
+ // padding: 1.5rem;
28
+ }
29
+
30
+ @mixin card-footer {
31
+ padding: 1rem;
32
+
33
+ @include media-breakpoint-up(md) {
34
+ border-top: 1px solid $c-grey-concrete;
35
+ }
36
+ }
37
+
38
+ @mixin card-img {
39
+ border: 1px solid $c-grey-concrete;
40
+ margin-bottom: 1rem;
41
+ max-width: 100%;
42
+ }
43
+
2
44
  @mixin form-card {
3
45
  .card-header {
4
- padding: 1.5rem 1.75rem 1.25rem;
46
+ @include card-header;
47
+ // padding: 1.5rem 1.75rem 1.25rem;
5
48
  }
6
49
  .card-body {
7
- padding: 1.75rem 1.75rem 1.5rem;
50
+ @include card-body;
51
+ // padding: 1.75rem 1.75rem 1.5rem;
8
52
  }
9
- }
10
-
11
- @mixin clone($top:5.875) {
12
- margin-top: -#{$top}rem;
13
- margin-bottom: 0;
14
- opacity: 0;
15
53
  }
@@ -8,8 +8,8 @@
8
8
  }
9
9
 
10
10
  @mixin content_masthead__inner {
11
- max-width: $layout-width-wide;
12
- padding: $space--large * 2 0;
11
+ max-width: $layout-width-lg;
12
+ padding: 3.75rem 0;
13
13
  margin: 0 auto;
14
14
 
15
15
  h1 {
@@ -23,7 +23,7 @@
23
23
  }
24
24
 
25
25
  @mixin content-main-content__inner {
26
- max-width: $layout-width-wide;
26
+ max-width: $layout-width-lg;
27
27
  padding: 1.5rem 0;
28
28
  margin: 0 auto;
29
29
 
@@ -0,0 +1,51 @@
1
+
2
+ @mixin table-row($gap: 0.75rem) {
3
+ border-bottom: 1px solid $c-grey-pearl;
4
+ padding-bottom: $gap;
5
+ padding-top: $gap;
6
+ }
7
+
8
+ @mixin table-link {
9
+ @include focus {
10
+ @include single-box($c-grey-night);
11
+ background-color: $c-grey-night;
12
+ color: $white;
13
+ }
14
+ }
15
+
16
+ @mixin default-table-style {
17
+ th, td {
18
+ @include media-breakpoint-up(md) {
19
+ &:not(:last-of-type) {
20
+ border-right: 1px solid $c-grey-pearl;
21
+ }
22
+
23
+ &:last-of-type {
24
+ text-align: right;
25
+ }
26
+ }
27
+ }
28
+ }
29
+
30
+ $columns-orders: 10rem 8rem auto 8rem;
31
+ $columns-details--header: auto 10rem 8rem;
32
+ $columns-details--checkbox: 2.75rem auto 10rem 8rem;
33
+ $columns-etickets: 8rem auto 8rem;
34
+ $columns-gifts: 3fr 5fr 5fr 2fr 2fr;
35
+ $columns-membership: auto 10rem 10rem 8rem;
36
+ $columns-preferences: auto repeat(2, 5rem);
37
+ $columns-tickets: 2fr 5fr 5fr 2fr;
38
+
39
+ @import "table/basket";
40
+ @import "table/details";
41
+ @import "table/etickets";
42
+ @import "table/gifts";
43
+ @import "table/membership";
44
+ @import "table/orders";
45
+ @import "table/preferences";
46
+ @import "table/resale";
47
+ @import "table/section";
48
+ @import "table/tickets";
49
+
50
+
51
+
@@ -8,6 +8,9 @@
8
8
  top: $val;
9
9
  }
10
10
 
11
+ @import "br-alert";
12
+ @import "br-form-row";
13
+ @import "br-footer";
11
14
  @import "account/orders";
12
15
  @import "basket";
13
16
  @import "buttons";
@@ -19,11 +22,4 @@
19
22
  @import "font";
20
23
  @import "loading";
21
24
  @import "input";
22
-
23
- @mixin table_link {
24
- @include focus {
25
- @include single-box($c-grey-night);
26
- background-color: $c-grey-night;
27
- color: $white;
28
- }
29
- }
25
+ @import "table";
@@ -47,6 +47,7 @@
47
47
  border-radius: $border-radius-lg;
48
48
  background-color: $white;
49
49
  font-weight: 400;
50
+ display: block;
50
51
 
51
52
  @if $state != disabled {
52
53
  color: $c-grey-night;