barbican-reset 1.5.4 → 1.5.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.
- package/components/br_button/components.js +3 -1
- package/components/br_button/dot_typing.vue +43 -0
- package/components/br_button/remove_ticket.vue +1 -1
- package/components/br_button.vue +12 -8
- package/components/related_card.vue +6 -5
- package/components/skip_link.vue +1 -0
- package/helpers/mixins/_buttons.scss +20 -25
- package/helpers/mixins/_focus.scss +2 -1
- package/helpers/mixins/input/_status.scss +9 -11
- package/icons/city_of_london_lockup.vue +1 -0
- package/package.json +1 -1
- package/scss/_atomic.scss +4 -0
- package/scss/_btn.scss +0 -4
- package/scss/_checkbox-group.scss +10 -12
- package/scss/_input.scss +9 -6
- package/scss/_radio-group.scss +4 -3
- package/scss/card/_related.scss +10 -0
- package/scss/card/_slim.scss +11 -0
- package/scss/card/index.scss +1 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
|
|
3
|
+
<!-- https://codepen.io/nzbin/pen/GGrXbp -->
|
|
4
|
+
|
|
5
|
+
<div>
|
|
6
|
+
|
|
7
|
+
<svg ref="a" version="1.1" xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
|
|
8
|
+
<path d="M12,7c0,2.8-2.2,5-5,5S2,9.8,2,7s2.2-5,5-5S12,4.2,12,7z"/>
|
|
9
|
+
</svg>
|
|
10
|
+
|
|
11
|
+
<svg ref="b" version="1.1" xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
|
|
12
|
+
<path d="M12,7c0,2.8-2.2,5-5,5S2,9.8,2,7s2.2-5,5-5S12,4.2,12,7z"/>
|
|
13
|
+
</svg>
|
|
14
|
+
|
|
15
|
+
<svg ref="c" version="1.1" xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
|
|
16
|
+
<path d="M12,7c0,2.8-2.2,5-5,5S2,9.8,2,7s2.2-5,5-5S12,4.2,12,7z"/>
|
|
17
|
+
</svg>
|
|
18
|
+
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
</template>
|
|
22
|
+
|
|
23
|
+
<script>
|
|
24
|
+
import { gsap } from 'gsap'
|
|
25
|
+
export default {
|
|
26
|
+
name: 'DotTyping',
|
|
27
|
+
mounted() {
|
|
28
|
+
const tl = gsap.timeline({ repeat: 9 });
|
|
29
|
+
const a = this.$refs.a;
|
|
30
|
+
const b = this.$refs.b;
|
|
31
|
+
const c = this.$refs.c;
|
|
32
|
+
const dots = [a,b,c];
|
|
33
|
+
const speed = 0.3;
|
|
34
|
+
|
|
35
|
+
tl.to(dots,{
|
|
36
|
+
stagger: speed,
|
|
37
|
+
keyframes: [
|
|
38
|
+
{ y: -8, duration: speed },
|
|
39
|
+
{ y: 0, duration: speed }
|
|
40
|
+
]});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
</script>
|
package/components/br_button.vue
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<slot name="default" />
|
|
18
18
|
</template>
|
|
19
19
|
<template v-else>
|
|
20
|
-
{{ state }}
|
|
20
|
+
{{ titleCase(state) }}
|
|
21
21
|
</template>
|
|
22
22
|
</template>
|
|
23
23
|
|
|
@@ -25,9 +25,7 @@
|
|
|
25
25
|
<template v-if="$slots.loading">
|
|
26
26
|
<slot name="loading" />
|
|
27
27
|
</template>
|
|
28
|
-
<
|
|
29
|
-
{{ state }}
|
|
30
|
-
</template>
|
|
28
|
+
<dot-typing v-else />
|
|
31
29
|
</template>
|
|
32
30
|
|
|
33
31
|
<template v-else-if="state === 'loaded'">
|
|
@@ -35,7 +33,7 @@
|
|
|
35
33
|
<slot name="loaded" />
|
|
36
34
|
</template>
|
|
37
35
|
<template v-else>
|
|
38
|
-
{{ state }}
|
|
36
|
+
{{ titleCase(state) }}
|
|
39
37
|
</template>
|
|
40
38
|
</template>
|
|
41
39
|
|
|
@@ -44,7 +42,7 @@
|
|
|
44
42
|
<slot name="error" />
|
|
45
43
|
</template>
|
|
46
44
|
<template v-else>
|
|
47
|
-
{{ state }}
|
|
45
|
+
{{ titleCase(state) }}
|
|
48
46
|
</template>
|
|
49
47
|
</template>
|
|
50
48
|
|
|
@@ -55,7 +53,7 @@
|
|
|
55
53
|
|
|
56
54
|
<script>
|
|
57
55
|
import { BButton } from 'bootstrap-vue'
|
|
58
|
-
import { RemoveTicket } from './br_button/components'
|
|
56
|
+
import { RemoveTicket, DotTyping } from './br_button/components'
|
|
59
57
|
|
|
60
58
|
export default {
|
|
61
59
|
name: "BrButton",
|
|
@@ -72,6 +70,11 @@ export default {
|
|
|
72
70
|
default: "button"
|
|
73
71
|
}
|
|
74
72
|
},
|
|
73
|
+
methods: {
|
|
74
|
+
titleCase(str) {
|
|
75
|
+
return str.toLowerCase().split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
|
|
76
|
+
}
|
|
77
|
+
},
|
|
75
78
|
computed: {
|
|
76
79
|
loading() {
|
|
77
80
|
return this.state === "loading" ? "true" : "false";
|
|
@@ -79,7 +82,8 @@ export default {
|
|
|
79
82
|
},
|
|
80
83
|
components: {
|
|
81
84
|
BButton,
|
|
82
|
-
RemoveTicket
|
|
85
|
+
RemoveTicket,
|
|
86
|
+
DotTyping
|
|
83
87
|
}
|
|
84
88
|
}
|
|
85
89
|
</script>
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
<b-card related no-body>
|
|
3
3
|
<b-img v-if="content.image" :src="content.image" />
|
|
4
4
|
<b-card-body>
|
|
5
|
-
<b-
|
|
6
|
-
<b-
|
|
7
|
-
<b-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
<b-card-title>
|
|
6
|
+
<b-link v-if="content.title" v-html="content.title" :href="content.link" target="_blank" />
|
|
7
|
+
<b-link v-else :href="content.link" target="_blank">More Info</b-link>
|
|
8
|
+
</b-card-title>
|
|
9
|
+
<b-card-sub-title v-if="content.start_date" v-html="handleDate(content.start_date)" />
|
|
10
|
+
<b-card-text v-html="limitLength(content.description)" />
|
|
10
11
|
</b-card-body>
|
|
11
12
|
</b-card>
|
|
12
13
|
</template>
|
package/components/skip_link.vue
CHANGED
|
@@ -43,6 +43,10 @@
|
|
|
43
43
|
@if $display { @include button-display($display, $padding * 0.625); }
|
|
44
44
|
@if $line { line-height: $line; }
|
|
45
45
|
|
|
46
|
+
path {
|
|
47
|
+
fill: $color;
|
|
48
|
+
}
|
|
49
|
+
|
|
46
50
|
@include focus {
|
|
47
51
|
@include double-box($color, $background);
|
|
48
52
|
border: $border solid $background;
|
|
@@ -70,13 +74,18 @@
|
|
|
70
74
|
@if $display { @include button-display($display, $padding * 0.625); }
|
|
71
75
|
@if $line { line-height: $line; }
|
|
72
76
|
|
|
77
|
+
path {
|
|
78
|
+
fill: $color;
|
|
79
|
+
}
|
|
80
|
+
|
|
73
81
|
@include focus {
|
|
74
82
|
border: $border solid $color;
|
|
75
83
|
background-color: $color;
|
|
76
84
|
color: $background;
|
|
85
|
+
box-shadow: none;
|
|
77
86
|
outline: none;
|
|
78
87
|
|
|
79
|
-
|
|
88
|
+
path {
|
|
80
89
|
fill: $background;
|
|
81
90
|
}
|
|
82
91
|
}
|
|
@@ -95,10 +104,6 @@
|
|
|
95
104
|
color: $color;
|
|
96
105
|
|
|
97
106
|
@if $line { line-height: $line; }
|
|
98
|
-
|
|
99
|
-
@include focus {
|
|
100
|
-
@content;
|
|
101
|
-
}
|
|
102
107
|
}
|
|
103
108
|
|
|
104
109
|
@mixin btn-outline-header {
|
|
@@ -162,7 +167,8 @@
|
|
|
162
167
|
}
|
|
163
168
|
|
|
164
169
|
@mixin btn-link {
|
|
165
|
-
@include button-link
|
|
170
|
+
@include button-link;
|
|
171
|
+
@include focus {
|
|
166
172
|
@include single-box($c-grey-night);
|
|
167
173
|
background-color: $c-grey-night;
|
|
168
174
|
color: $white;
|
|
@@ -172,17 +178,20 @@
|
|
|
172
178
|
@mixin btn-video-help {
|
|
173
179
|
@include button-link(
|
|
174
180
|
$padding: 1.25rem,
|
|
175
|
-
$background: $c-grey-alpine)
|
|
176
|
-
background-color: $c-grey-steel;
|
|
177
|
-
color: $white;
|
|
178
|
-
}
|
|
181
|
+
$background: $c-grey-alpine);
|
|
179
182
|
font-weight: 700;
|
|
180
183
|
text-align: left;
|
|
181
184
|
width: 100%;
|
|
185
|
+
|
|
186
|
+
@include focus {
|
|
187
|
+
background-color: $c-grey-steel;
|
|
188
|
+
color: $white;
|
|
189
|
+
}
|
|
182
190
|
}
|
|
183
191
|
|
|
184
192
|
@mixin btn-exit {
|
|
185
|
-
@include button-link
|
|
193
|
+
@include button-link;
|
|
194
|
+
@include focus {
|
|
186
195
|
@include single-box($c-grey-night);
|
|
187
196
|
background-color: $white;
|
|
188
197
|
border-radius: 50%;
|
|
@@ -269,20 +278,6 @@
|
|
|
269
278
|
}
|
|
270
279
|
}
|
|
271
280
|
|
|
272
|
-
@mixin btn-invisible {
|
|
273
|
-
&, &:focus {
|
|
274
|
-
background: transparent;
|
|
275
|
-
line-height: 1;
|
|
276
|
-
padding: 0;
|
|
277
|
-
|
|
278
|
-
@include focus {
|
|
279
|
-
background: transparent;
|
|
280
|
-
line-height: 1;
|
|
281
|
-
padding: 0;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
|
|
286
281
|
@mixin btn-expand {
|
|
287
282
|
display: block;
|
|
288
283
|
}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
@mixin status-input($
|
|
2
|
-
|
|
3
|
-
@include focus {
|
|
4
|
-
&:checked ~ label {
|
|
5
|
-
@include single-box(map-get($color, base), 0.0625rem);
|
|
6
|
-
border: 1px solid map-get($color, base);
|
|
7
|
-
background-color: map-get($color, fade);
|
|
8
|
-
color: map-get($color, base);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
1
|
+
@mixin status-input($color) {
|
|
2
|
+
@include focus {
|
|
12
3
|
&:checked ~ label {
|
|
4
|
+
@include single-box(map-get($color, base), 0.0625rem);
|
|
13
5
|
border: 1px solid map-get($color, base);
|
|
14
6
|
background-color: map-get($color, fade);
|
|
15
7
|
color: map-get($color, base);
|
|
16
8
|
}
|
|
17
9
|
}
|
|
10
|
+
|
|
11
|
+
&:checked ~ label {
|
|
12
|
+
border: 1px solid map-get($color, base);
|
|
13
|
+
background-color: map-get($color, fade);
|
|
14
|
+
color: map-get($color, base);
|
|
15
|
+
}
|
|
18
16
|
}
|
package/package.json
CHANGED
package/scss/_atomic.scss
CHANGED
package/scss/_btn.scss
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
|
|
2
|
-
.checkbox
|
|
3
|
-
|
|
4
|
-
.custom-control {
|
|
5
|
-
@include checkbox-input;
|
|
2
|
+
.custom-checkbox {
|
|
3
|
+
@include checkbox-input;
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
5
|
+
&:not(:last-of-type) {
|
|
6
|
+
margin-bottom: 0.5rem;
|
|
7
|
+
}
|
|
11
8
|
}
|
|
12
9
|
|
|
13
10
|
@each $status, $color in $statees {
|
|
14
11
|
@if $status != 'neutral' {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
[#{$status}] input[type=radio],
|
|
13
|
+
input[type=radio][#{$status}] {
|
|
14
|
+
@include status-input($color);
|
|
15
|
+
}
|
|
18
16
|
}
|
|
19
|
-
}
|
|
17
|
+
}
|
package/scss/_input.scss
CHANGED
|
@@ -9,12 +9,6 @@ input::placeholder {
|
|
|
9
9
|
color: $c-grey-concrete;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
input[type=number], input[type=text] {
|
|
13
|
-
@include focus {
|
|
14
|
-
@include input-focus;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
12
|
input[type=checkbox],
|
|
19
13
|
input[type=radio] {
|
|
20
14
|
margin-bottom: 0.5rem;
|
|
@@ -27,6 +21,15 @@ input[type=submit] {
|
|
|
27
21
|
appearance: none;
|
|
28
22
|
}
|
|
29
23
|
|
|
24
|
+
input[type=number] {
|
|
25
|
+
@include focus {
|
|
26
|
+
@include input-focus;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
30
|
#{$all-text-inputs} {
|
|
31
31
|
@include all-text-inputs;
|
|
32
|
+
@include focus {
|
|
33
|
+
@include input-focus;
|
|
34
|
+
}
|
|
32
35
|
}
|
package/scss/_radio-group.scss
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
2
|
+
[role=radiogroup] {
|
|
3
3
|
@include radio-group;
|
|
4
4
|
}
|
|
5
5
|
|
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
|
|
10
10
|
@each $status, $color in $statees {
|
|
11
11
|
@if $status != 'neutral' {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
[#{$status}] input[type=radio],
|
|
13
|
+
input[type=radio][#{$status}] {
|
|
14
|
+
@include status-input($color);
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
}
|
package/scss/card/_related.scss
CHANGED
|
@@ -13,11 +13,21 @@
|
|
|
13
13
|
|
|
14
14
|
.card-title {
|
|
15
15
|
font-size: $font-size-lg;
|
|
16
|
+
margin-bottom: 0.75rem;
|
|
17
|
+
|
|
18
|
+
a {
|
|
19
|
+
@include btn-link;
|
|
20
|
+
}
|
|
16
21
|
}
|
|
17
22
|
|
|
23
|
+
.card-subtitle[date],
|
|
18
24
|
.card-text:not(:last-child) {
|
|
19
25
|
margin-bottom: 0.5rem;
|
|
20
26
|
}
|
|
27
|
+
|
|
28
|
+
* + .card-text[date] {
|
|
29
|
+
margin-top: 0.75rem;
|
|
30
|
+
}
|
|
21
31
|
}
|
|
22
32
|
|
|
23
33
|
.card[related][hero=true] {
|