barbican-reset 1.0.1 → 1.0.5
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.
- package/helpers/mixins/_content.scss +0 -7
- package/helpers/mixins/_core.scss +59 -0
- package/helpers/mixins/index.scss +0 -1
- package/helpers/variables/colors/_layout.scss +3 -3
- package/helpers/variables/layout/index.scss +3 -6
- package/index.js +5 -7
- package/package.json +1 -1
- package/scss/.DS_Store +0 -0
- package/scss/_atomic.scss +0 -4
- package/scss/_checkbox-group.scss +38 -31
- package/scss/_checkbox.scss +32 -25
- package/scss/_input.scss +10 -0
- package/scss/_radio-group.scss +87 -0
- package/scss/index.scss +2 -1
- package/vue/.DS_Store +0 -0
- package/vue/Banner/banner.scss +8 -0
- package/vue/Banner/index.vue +9 -0
- package/vue/Card/card.scss +24 -0
- package/vue/{card.vue → Card/index.vue} +2 -27
- package/vue/Container/container.scss +20 -0
- package/vue/Container/index.vue +25 -0
- package/vue/Notification/external.scss +9 -5
- package/vue/form_row.vue +15 -3
- package/helpers/mixins/_buttons.scss +0 -187
- package/scss/_btn.scss +0 -36
- package/vue/block.vue +0 -30
- package/vue/container.vue +0 -84
- package/vue/event_summary.vue +0 -109
|
@@ -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
|
}
|
|
@@ -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-
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
15
|
-
$gap-instance: 1.5rem;
|
|
12
|
+
$border-radius-lg: 0.375rem;
|
|
16
13
|
|
|
17
14
|
// Account Area
|
|
18
15
|
$gap-account: 2rem;
|
package/index.js
CHANGED
|
@@ -2,17 +2,16 @@ 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'
|
|
16
15
|
|
|
17
16
|
export {
|
|
18
17
|
LoadingAnimation,
|
|
@@ -23,11 +22,10 @@ export {
|
|
|
23
22
|
Wrap,
|
|
24
23
|
Card,
|
|
25
24
|
Carousel,
|
|
25
|
+
Banner,
|
|
26
26
|
AccountCard,
|
|
27
27
|
AccountTitle,
|
|
28
28
|
Placeholder,
|
|
29
29
|
LoginForm,
|
|
30
|
-
FormRow
|
|
31
|
-
EventSummary,
|
|
32
|
-
Block
|
|
30
|
+
FormRow
|
|
33
31
|
};
|
package/package.json
CHANGED
package/scss/.DS_Store
ADDED
|
Binary file
|
package/scss/_atomic.scss
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
29
|
-
|
|
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
|
-
|
|
42
|
+
&:checked ~ label {
|
|
32
43
|
@include focus_colors;
|
|
33
|
-
@include
|
|
44
|
+
@include single-box($c-status-neutral, 0.0625rem);
|
|
34
45
|
}
|
|
35
46
|
}
|
|
36
|
-
|
|
37
|
-
&:checked
|
|
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:
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
}
|
package/scss/_checkbox.scss
CHANGED
|
@@ -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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
|
38
|
+
@include single-box($c-status-neutral, 0.0625rem);
|
|
30
39
|
}
|
|
31
40
|
}
|
|
32
41
|
|
|
33
|
-
&:checked
|
|
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:
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
}
|
package/scss/_input.scss
ADDED
|
@@ -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,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>
|
|
@@ -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
|
|
18
|
-
|
|
17
|
+
.error {
|
|
18
|
+
.btn-link, a {
|
|
19
|
+
@include status_focus($c-status-error, $c-status-error-fade);
|
|
20
|
+
}
|
|
19
21
|
}
|
|
20
22
|
|
|
21
|
-
.success
|
|
22
|
-
|
|
23
|
+
.success {
|
|
24
|
+
.btn-link, a {
|
|
25
|
+
@include status_focus($c-status-success, $c-status-success-fade);
|
|
26
|
+
}
|
|
23
27
|
}
|
package/vue/form_row.vue
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div :class="$style.container">
|
|
3
|
-
<label v-if="label" :for="id">
|
|
3
|
+
<label v-if="label" :for="id">
|
|
4
|
+
<strong>{{ label }}</strong> <span v-if="label && required">(required)</span><span v-if="label && optional">(optional)</span>
|
|
5
|
+
</label>
|
|
4
6
|
<div :class="styleContent">
|
|
5
7
|
<slot />
|
|
6
8
|
</div>
|
|
@@ -17,6 +19,12 @@
|
|
|
17
19
|
id: {
|
|
18
20
|
type: String
|
|
19
21
|
},
|
|
22
|
+
required: {
|
|
23
|
+
type: Boolean
|
|
24
|
+
},
|
|
25
|
+
optional: {
|
|
26
|
+
type: Boolean
|
|
27
|
+
}
|
|
20
28
|
},
|
|
21
29
|
computed: {
|
|
22
30
|
styleContent() {
|
|
@@ -29,9 +37,9 @@
|
|
|
29
37
|
<style lang="scss" module>
|
|
30
38
|
|
|
31
39
|
.container {
|
|
40
|
+
gap: $gap-account;
|
|
32
41
|
display: grid;
|
|
33
|
-
|
|
34
|
-
|
|
42
|
+
|
|
35
43
|
&:not(:last-of-type) {
|
|
36
44
|
margin-bottom: 1rem;
|
|
37
45
|
}
|
|
@@ -41,6 +49,10 @@
|
|
|
41
49
|
align-items: center;
|
|
42
50
|
}
|
|
43
51
|
|
|
52
|
+
label {
|
|
53
|
+
font-weight: normal;
|
|
54
|
+
}
|
|
55
|
+
|
|
44
56
|
input {
|
|
45
57
|
margin: 0;
|
|
46
58
|
}
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
////
|
|
2
|
-
/// @group buttons
|
|
3
|
-
////
|
|
4
|
-
|
|
5
|
-
/// Set button colours.
|
|
6
|
-
/// @param {color} $text - Text colour
|
|
7
|
-
/// @param {color} $bg - Background colour
|
|
8
|
-
/// @param {color} $border [null] - Border colour
|
|
9
|
-
/// @param {color} $text-hover [$text] - Text hover colour
|
|
10
|
-
/// @param {color} $bg-hover [darken($bg, 10%)] - Background hover colour
|
|
11
|
-
/// @output `color`, `background-color` plus `:active`, `:visited`, `:hover` & `:focus` pseudo-classes.
|
|
12
|
-
|
|
13
|
-
@mixin button_setup($gap: 1em) {
|
|
14
|
-
-webkit-font-smoothing: antialiased;
|
|
15
|
-
-moz-osx-font-smoothing: grayscale;
|
|
16
|
-
border-radius: $border-radius-lg;
|
|
17
|
-
padding: $gap ($gap * 1.5);
|
|
18
|
-
text-decoration: none;
|
|
19
|
-
display: inline-flex;
|
|
20
|
-
place-items: center;
|
|
21
|
-
text-align: center;
|
|
22
|
-
gap: $gap * 0.75;
|
|
23
|
-
font-weight: 700;
|
|
24
|
-
transition: none;
|
|
25
|
-
cursor: pointer;
|
|
26
|
-
line-height: 1;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@mixin button_solid(
|
|
30
|
-
$background: $c-brand-orange,
|
|
31
|
-
$color: $white,
|
|
32
|
-
$gap: 1em) {
|
|
33
|
-
@include button_setup($gap);
|
|
34
|
-
border: 1px solid $background;
|
|
35
|
-
background-color: $background;
|
|
36
|
-
color: $color;
|
|
37
|
-
|
|
38
|
-
@include focus {
|
|
39
|
-
@include double-box($color, $background);
|
|
40
|
-
border: 1px solid $background;
|
|
41
|
-
background-color: $background;
|
|
42
|
-
color: $color;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
@mixin button_outline(
|
|
47
|
-
$background: $c-brand-orange,
|
|
48
|
-
$color: $white,
|
|
49
|
-
$gap: 1em) {
|
|
50
|
-
@include button_setup($gap);
|
|
51
|
-
border: 1px solid $background;
|
|
52
|
-
background-color: $color;
|
|
53
|
-
color: $background;
|
|
54
|
-
|
|
55
|
-
@include focus {
|
|
56
|
-
border: 1px solid $background;
|
|
57
|
-
background-color: $background;
|
|
58
|
-
color: $color;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
@mixin btn-colors(
|
|
63
|
-
$text,
|
|
64
|
-
$bg,
|
|
65
|
-
$border: null,
|
|
66
|
-
$text-hover: $text,
|
|
67
|
-
$bg-hover: darken($bg, 7%),
|
|
68
|
-
$border-hover: $border
|
|
69
|
-
) {
|
|
70
|
-
@if ($border != null) {
|
|
71
|
-
border-color: $border;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
path {
|
|
75
|
-
fill: $text;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
&,
|
|
79
|
-
&:active,
|
|
80
|
-
&:visited {
|
|
81
|
-
background-color: $bg;
|
|
82
|
-
color: $text;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
&:hover,
|
|
86
|
-
&:focus {
|
|
87
|
-
background-color: $bg-hover;
|
|
88
|
-
border-color: $border-hover;
|
|
89
|
-
color: $text-hover;
|
|
90
|
-
box-shadow: none;
|
|
91
|
-
outline: none;
|
|
92
|
-
|
|
93
|
-
path {
|
|
94
|
-
fill: $text-hover;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/// Base button styles.
|
|
100
|
-
@mixin btn-base {
|
|
101
|
-
@include btn-colors($c-list-btn-default...);
|
|
102
|
-
@include font-smoothing(on);
|
|
103
|
-
transition: background 0.15s ease-out;
|
|
104
|
-
border-radius: $border-radius;
|
|
105
|
-
line-height: $line-height-lg;
|
|
106
|
-
font-size: $font-size-base;
|
|
107
|
-
display: inline-block;
|
|
108
|
-
font-family: inherit;
|
|
109
|
-
border-style: solid;
|
|
110
|
-
padding: 0.75em 1em;
|
|
111
|
-
text-align: center;
|
|
112
|
-
overflow: visible;
|
|
113
|
-
font-weight: bold;
|
|
114
|
-
border-width: 0;
|
|
115
|
-
cursor: pointer;
|
|
116
|
-
margin: 0;
|
|
117
|
-
|
|
118
|
-
svg {
|
|
119
|
-
vertical-align: middle;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
&,
|
|
123
|
-
&:hover,
|
|
124
|
-
&:active,
|
|
125
|
-
&:focus,
|
|
126
|
-
&:visited {
|
|
127
|
-
text-decoration: none;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// Style variants
|
|
132
|
-
// (use in addition to btn-base)
|
|
133
|
-
|
|
134
|
-
/// Add a visible border to a button.
|
|
135
|
-
/// @param {string} $border-width [1px] - Border width in px
|
|
136
|
-
/// @param {string} $padding-v [12px] - Vertical padding in px
|
|
137
|
-
/// @param {string} $padding-h [16px] - Horizontal padding in px
|
|
138
|
-
|
|
139
|
-
@mixin btn-border($border-width: 1px, $padding-v: 12px, $padding-h: 16px) {
|
|
140
|
-
padding: $padding-v - $border-width $padding-h - $border-width;
|
|
141
|
-
border-width: $border-width;
|
|
142
|
-
transition: none;
|
|
143
|
-
|
|
144
|
-
&:focus {
|
|
145
|
-
box-shadow: none;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
@mixin btn-primary {
|
|
150
|
-
@include button_solid;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
@mixin btn-outline-primary {
|
|
154
|
-
@include button_outline;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
@mixin btn-secondary {
|
|
158
|
-
@include button_solid($c-grey-night);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
@mixin btn-outline-secondary {
|
|
162
|
-
@include button_outline($c-grey-night);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
@mixin btn-cinema {
|
|
166
|
-
@include button_solid($c-brand-cinema);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
@mixin btn-power {
|
|
170
|
-
@include button_solid($c-power-blue);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
@mixin btn-info {
|
|
174
|
-
@include button_solid($c-status-neutral);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
@mixin btn-outline-cinema {
|
|
178
|
-
@include button_outline($c-brand-cinema);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
@mixin btn-expand {
|
|
182
|
-
display: block;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
@mixin btn-slim {
|
|
186
|
-
padding: 0.5rem 0.75rem;
|
|
187
|
-
}
|
package/scss/_btn.scss
DELETED
|
@@ -1,36 +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-info {
|
|
15
|
-
// solid blue
|
|
16
|
-
@include btn-info;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
&.btn-secondary {
|
|
20
|
-
// solid grey
|
|
21
|
-
@include btn-secondary;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
&.btn-outline-secondary {
|
|
25
|
-
// grey outline, fill on focus
|
|
26
|
-
@include btn-outline-secondary;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// button modifyers
|
|
30
|
-
&.expand {
|
|
31
|
-
@include btn-expand;
|
|
32
|
-
}
|
|
33
|
-
&.slim {
|
|
34
|
-
@include btn-slim;
|
|
35
|
-
}
|
|
36
|
-
}
|
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>
|
package/vue/event_summary.vue
DELETED
|
@@ -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>
|