barbican-reset 3.16.0 → 3.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +1 -1
  2. package/components/BrAlert.vue +1 -1
  3. package/components/BrButton.vue +2 -2
  4. package/components/BrCardTitle.vue +1 -1
  5. package/components/BrFormCheckbox.vue +1 -1
  6. package/components/BrFormLabel.vue +1 -3
  7. package/components/BrFormToggle.vue +32 -0
  8. package/components/BrNavCard.vue +56 -0
  9. package/components/BrNavCardWrap.vue +5 -0
  10. package/components/BrNavLink.vue +21 -0
  11. package/components/BrOverlay.vue +33 -0
  12. package/components/EventSummary.vue +2 -2
  13. package/components/SeeInside.vue +1 -1
  14. package/icons/account/contact.vue +3 -0
  15. package/icons/account/index.js +13 -10
  16. package/icons/account/membership.vue +1 -10
  17. package/icons/account/orders.vue +1 -15
  18. package/icons/account/payment.vue +1 -10
  19. package/icons/account/personal.vue +1 -10
  20. package/icons/account/ticket.vue +3 -0
  21. package/icons/back_arrow.vue +1 -8
  22. package/icons/close.vue +7 -0
  23. package/icons/index.js +4 -6
  24. package/icons/person.vue +3 -0
  25. package/icons/qr_code.vue +5 -0
  26. package/icons/stream/index.js +0 -2
  27. package/index.js +11 -0
  28. package/package.json +1 -1
  29. package/scss/_br-button.scss +9 -2
  30. package/scss/{_br-checkbox.scss → _br-form-checkbox.scss} +3 -4
  31. package/scss/_br-form-toggle.scss +71 -0
  32. package/scss/_br-nav-card-wrap.scss +11 -0
  33. package/scss/_br-navlink.scss +51 -0
  34. package/scss/_br-overlay.scss +26 -0
  35. package/scss/_br-wrap.scss +9 -9
  36. package/scss/_card-deck.scss +1 -1
  37. package/scss/card/_login.scss +5 -6
  38. package/scss/card/_membership-new.scss +45 -0
  39. package/scss/card/_membership.scss +42 -41
  40. package/scss/card/_navcard.scss +133 -0
  41. package/scss/card/index.scss +2 -1
  42. package/scss/index.scss +17 -9
  43. package/scss/mixins/_br-card.scss +7 -2
  44. package/scss/mixins/_br-footer.scss +2 -2
  45. package/scss/mixins/_br-form-row.scss +1 -1
  46. package/scss/mixins/_focus.scss +15 -0
  47. package/scss/mixins/buttons/_custom.scss +21 -40
  48. package/scss/mixins/buttons/_outline.scss +4 -4
  49. package/scss/mixins/buttons/_setup.scss +10 -7
  50. package/scss/mixins/buttons/custom/_exit-overlay.scss +31 -0
  51. package/scss/mixins/buttons/custom/_renew-membership.scss +27 -0
  52. package/scss/mixins/input/_checkbox.scss +2 -2
  53. package/scss/mixins/input/_generic.scss +4 -2
  54. package/scss/reset.scss +1 -1
  55. package/scss/typography.scss +6 -0
  56. package/icons/account/support.vue +0 -13
  57. package/icons/account/video.vue +0 -12
  58. package/icons/arrow.vue +0 -5
  59. package/icons/arrow_back.vue +0 -12
  60. package/icons/arrow_forward.vue +0 -10
  61. package/icons/power/alleyne.vue +0 -3
  62. package/icons/power/banff.vue +0 -3
  63. package/icons/power/council.vue +0 -13
  64. package/icons/power/index.js +0 -5
  65. package/icons/snippets/barbican.vue +0 -12
  66. package/icons/snippets/contributor.vue +0 -6
  67. package/icons/snippets/index.js +0 -6
  68. package/icons/snippets/other.vue +0 -5
  69. package/icons/snippets/pin.vue +0 -5
  70. package/icons/stream/close.vue +0 -7
  71. package/scss/__vars/_alerts.scss +0 -6
  72. package/scss/__vars/_columns.scss +0 -9
  73. package/scss/__vars/_layout.scss +0 -15
  74. package/scss/__vars/_typography.scss +0 -11
  75. package/scss/__vars/colors/_brand.scss +0 -13
  76. package/scss/__vars/colors/_docs.scss +0 -11
  77. package/scss/__vars/colors/_grey.scss +0 -10
  78. package/scss/__vars/colors/_status.scss +0 -9
  79. package/scss/card/_account.scss +0 -19
package/README.md CHANGED
@@ -51,7 +51,7 @@ You can reference any of the following components:
51
51
  | -------------------- | ------------------- | -------------------- | ---------------- | ------------- |
52
52
  | `<br-alert>` | BrAlert.vue | .br-alert | br-alert--setup | - |
53
53
  | `<br-anchor>` | BrAnchor.vue | .btn | setup-button | - |
54
- | `<br-button>` | BrButton.vue | .br-checkbox | br-checkbox | - |
54
+ | `<br-button>` | BrButton.vue | .br-form-checkbox | br-form-checkbox | - |
55
55
  | `<br-confirm-done>` | BrConfirmDone.vue | - | - | - |
56
56
  | `<br-confirm-email>` | BrConfirmEmail.vue | - | - | - |
57
57
  | `<br-container>` | BrContainer.vue | .br-container--outer | - | - |
@@ -19,7 +19,7 @@
19
19
 
20
20
  `
21
21
  <script>
22
- import CloseIcon from "#icons/stream/close.vue";
22
+ import CloseIcon from "#icons/close.vue";
23
23
  import BrButton from "#components/BrButton.vue";
24
24
 
25
25
  export default {
@@ -1,6 +1,6 @@
1
- <template>
2
- <!-- https://dockyard.com/blog/2020/03/02/accessible-loading-indicatorswith-no-extra-elements -->
1
+ <!-- https://dockyard.com/blog/2020/03/02/accessible-loading-indicatorswith-no-extra-elements -->
3
2
 
3
+ <template>
4
4
  <button
5
5
  :class="printClassNames"
6
6
  @click="$emit('click')"
@@ -1,3 +1,3 @@
1
1
  <template>
2
- <h4 class="card-title"><slot /></h4>
2
+ <div class="card-title"><slot /></div>
3
3
  </template>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="br-checkbox">
2
+ <div class="br-form-checkbox">
3
3
  <BrFormInput v-bind="$attrs" type="checkbox">
4
4
  <slot />
5
5
  </BrFormInput>
@@ -1,8 +1,6 @@
1
1
  <template>
2
2
  <component :is="!disabled ? 'label' : 'div'" :for="!disabled ? id : null" class="br-form-label">
3
- <strong>
4
- <slot />
5
- </strong>
3
+ <slot />
6
4
  <span v-if="required"> (required)</span>
7
5
  <span v-if="optional"> (optional)</span>
8
6
  </component>
@@ -0,0 +1,32 @@
1
+ <template>
2
+ <div :class="generateClasses">
3
+ <BrFormLabel>
4
+ <span>
5
+ <slot />
6
+ </span>
7
+ <BrFormInput v-bind="$attrs" type="checkbox" />
8
+ </BrFormLabel>
9
+ </div>
10
+ </template>
11
+
12
+ <script setup>
13
+ import { computed } from 'vue'
14
+ import BrFormLabel from '#components/BrFormLabel.vue'
15
+ import BrFormInput from '#components/BrFormInput.vue'
16
+
17
+ defineOptions({
18
+ inheritAttrs: false,
19
+ })
20
+
21
+ const props = defineProps({
22
+ class: String
23
+ })
24
+
25
+ const generateClasses = computed(() => {
26
+ let result = ['br-form-toggle']
27
+
28
+ if (props.class) result.push(props.class)
29
+
30
+ return result
31
+ })
32
+ </script>
@@ -0,0 +1,56 @@
1
+ <template>
2
+ <a v-if="to.startsWith('http')" :href="to" :class="generateClasses">
3
+ <br-card class="navcard">
4
+ <div :class="['wrap-navcard-content', { 'has-icon' : $slots.icon }]">
5
+ <div v-if="$slots.icon" class="wrap-navcard-icon">
6
+ <slot name="icon" />
7
+ </div>
8
+ <div>
9
+ <br-card-title v-if="$slots.title">
10
+ <slot name="title" />
11
+ </br-card-title>
12
+ <br-card-text v-if="$slots.text">
13
+ <slot name="text" />
14
+ </br-card-text>
15
+ </div>
16
+ </div>
17
+ </br-card>
18
+ </a>
19
+ <router-link v-else class="link-navcard" :to="{ name: to }">
20
+ <br-card class="navcard">
21
+ <div :class="['wrap-navcard-content', { 'has-icon' : $slots.icon }]">
22
+ <div v-if="$slots.icon" class="wrap-navcard-icon">
23
+ <slot name="icon" />
24
+ </div>
25
+ <div>
26
+ <br-card-title v-if="$slots.title">
27
+ <slot name="title" />
28
+ </br-card-title>
29
+ <br-card-text v-if="$slots.text">
30
+ <slot name="text" />
31
+ </br-card-text>
32
+ </div>
33
+ </div>
34
+ </br-card>
35
+ </router-link>
36
+ </template>
37
+
38
+ <script setup>
39
+ import { computed } from 'vue';
40
+
41
+ const generateClasses = computed(() => {
42
+ let result = ['link-navcard']
43
+
44
+ if (props.class) result.push(props.class)
45
+
46
+ return result
47
+ })
48
+
49
+ const props = defineProps({
50
+ to: {
51
+ type: String,
52
+ required: true,
53
+ },
54
+ class: String
55
+ })
56
+ </script>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <div class="br-nav-card-wrap">
3
+ <slot />
4
+ </div>
5
+ </template>
@@ -0,0 +1,21 @@
1
+ <template>
2
+ <div v-if="$route.matched.some(({ name }) => name === to)" class="br-navlink">
3
+ {{ title }}
4
+ </div>
5
+ <a v-else-if="to.slice(0, 4) == 'http'" :href="to" class="br-navlink">
6
+ {{ title }}
7
+ </a>
8
+ <router-link v-else :to="{ name: to }" class="br-navlink">
9
+ {{ title }}
10
+ </router-link>
11
+ </template>
12
+
13
+ <script setup>
14
+ const props = defineProps({
15
+ title: String,
16
+ to: {
17
+ type: String,
18
+ required: true
19
+ },
20
+ })
21
+ </script>
@@ -0,0 +1,33 @@
1
+ <template>
2
+ <div class="br-overlay-wrap">
3
+ <div class="br-overlay-content">
4
+ <slot />
5
+ </div>
6
+ <br-button variant="exit-overlay" @click="emit('closeOverlay')">
7
+ <close-icon class="close-icon" />
8
+ </br-button>
9
+ </div>
10
+ </template>
11
+
12
+ <script setup>
13
+ import { onMounted, onUnmounted } from 'vue';
14
+ import BrButton from "#components/BrButton.vue";
15
+ import CloseIcon from "#icons/close.vue";
16
+
17
+ const emit = defineEmits(["closeOverlay"]);
18
+
19
+ function listenForKeys({ key }) {
20
+ if (key == 'Escape') {
21
+ emit('closeOverlay')
22
+ }
23
+ }
24
+
25
+ onMounted(() => {
26
+ document.addEventListener('keydown', listenForKeys)
27
+ })
28
+
29
+ onUnmounted(() => {
30
+ document.removeEventListener('keydown', listenForKeys)
31
+ })
32
+ </script>
33
+
@@ -111,7 +111,7 @@ export default {
111
111
  grid-template-columns: 20rem auto;
112
112
  grid-template-rows: auto auto auto;
113
113
 
114
- column-gap: var(--gap-lg);
114
+ column-gap: var(--gap-xl);
115
115
  }
116
116
  &.in_basket {
117
117
  grid-template-columns: 16rem auto;
@@ -125,7 +125,7 @@ export default {
125
125
  border-radius: var(--border-radius-lg);
126
126
  max-width: 100%;
127
127
  width: 100%;
128
- margin-bottom: var(--gap-lg);
128
+ margin-bottom: var(--gap-xl);
129
129
 
130
130
  @include medium-up {
131
131
  margin-bottom: 0;
@@ -44,7 +44,7 @@
44
44
 
45
45
  <script>
46
46
  import BrButton from '#components/BrButton.vue'
47
- import CloseIcon from '#icons/stream/close.vue'
47
+ import CloseIcon from '#icons/close.vue'
48
48
 
49
49
  export default {
50
50
  components: {
@@ -0,0 +1,3 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="35" height="35" viewBox="0 0 20 20"><path d="M4,12h8v-2H4v2ZM4,9h12v-2H4v2ZM4,6h12v-2H4v2ZM0,20V2C0,1.45.2.98.59.59s.86-.59,1.41-.59h16c.55,0,1.02.2,1.41.59s.59.86.59,1.41v12c0,.55-.2,1.02-.59,1.41-.39.39-.86.59-1.41.59H4L0,20ZM3.15,14h14.85V2H2v13.13l1.15-1.13ZM2,14V2v12Z" fill="currentColor"/></svg>
3
+ </template>
@@ -1,17 +1,20 @@
1
- import PersonalIcon from "#icons/account/personal.vue";
1
+ import ContactIcon from "#icons/account/contact.vue";
2
+ import DetailsIcon from "#icons/person.vue";
3
+ import EditIcon from "#icons/account/edit.vue";
2
4
  import MembershipIcon from "#icons/account/membership.vue";
3
- import VideoIcon from "#icons/account/video.vue";
4
- import PaymentIcon from "#icons/account/payment.vue";
5
5
  import OrdersIcon from "#icons/account/orders.vue";
6
- import SupportIcon from "#icons/account/support.vue";
7
- import EditIcon from "#icons/account/edit.vue";
6
+ import PaymentIcon from "#icons/account/payment.vue";
7
+ import TicketIcon from "#icons/account/ticket.vue";
8
+
9
+ import PersonalIcon from "#icons/account/personal.vue";
8
10
 
9
11
  export {
10
- PersonalIcon,
12
+ ContactIcon,
13
+ DetailsIcon,
14
+ EditIcon,
11
15
  MembershipIcon,
12
- VideoIcon,
13
- PaymentIcon,
14
16
  OrdersIcon,
15
- SupportIcon,
16
- EditIcon,
17
+ PaymentIcon,
18
+ TicketIcon,
19
+ PersonalIcon,
17
20
  };
@@ -1,12 +1,3 @@
1
1
  <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- height="72"
5
- viewBox="0 0 24 24"
6
- width="72"
7
- >
8
- <path
9
- d="M20 2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h4v5l4-2 4 2v-5h4c1.11 0 2-.89 2-2V4c0-1.11-.89-2-2-2zm0 13H4v-2h16v2zm0-5H4V4h16v6z"
10
- />
11
- </svg>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="35" height="35" version="1.1" viewBox="0 0 20 20"><path d="M2,20c-.55,0-1.02-.2-1.41-.59s-.59-.86-.59-1.41V7c0-.55.2-1.02.59-1.41s.86-.59,1.41-.59h5v-3c0-.55.2-1.02.59-1.41s.86-.59,1.41-.59h2c.55,0,1.02.2,1.41.59s.59.86.59,1.41v3h5c.55,0,1.02.2,1.41.59s.59.86.59,1.41v11c0,.55-.2,1.02-.59,1.41s-.86.59-1.41.59H2ZM2,18h16V7h-5c0,.55-.2,1.02-.59,1.41s-.86.59-1.41.59h-2c-.55,0-1.02-.2-1.41-.59s-.59-.86-.59-1.41H2v11ZM4,16h6v-.45c0-.28-.08-.55-.24-.79s-.38-.43-.66-.56c-.33-.15-.67-.26-1.01-.34s-.7-.11-1.09-.11-.75.04-1.09.11-.68.19-1.01.34c-.28.13-.5.32-.66.56s-.24.5-.24.79v.45ZM12,14.5h4v-1.5h-4v1.5ZM7,13c.42,0,.77-.15,1.06-.44s.44-.65.44-1.06-.15-.77-.44-1.06-.65-.44-1.06-.44-.77.15-1.06.44-.44.65-.44,1.06.15.77.44,1.06.65.44,1.06.44ZM12,11.5h4v-1.5h-4v1.5ZM9,7h2V2h-2v5Z" fill="currentColor"/></svg>
12
3
  </template>
@@ -1,17 +1,3 @@
1
1
  <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- enable-background="new 0 0 24 24"
5
- viewBox="0 0 24 24"
6
- height="72"
7
- width="72"
8
- >
9
- <path
10
- d="M19.5,3.5L18,2l-1.5,1.5L15,2l-1.5,1.5L12,2l-1.5,1.5L9,2L7.5,3.5L6,2v14H3v3c0,1.66,1.34,3,3,3h12c1.66,0,3-1.34,3-3V2 L19.5,3.5z M19,19c0,0.55-0.45,1-1,1s-1-0.45-1-1v-3H8V5h11V19z"
11
- />
12
- <rect height="2" width="6" x="9" y="7" />
13
- <rect height="2" width="2" x="16" y="7" />
14
- <rect height="2" width="6" x="9" y="10" />
15
- <rect height="2" width="2" x="16" y="10" />
16
- </svg>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="31.5" height="35" viewBox="0 0 18 20"><path d="M3,20c-.83,0-1.54-.29-2.13-.88-.58-.58-.88-1.29-.88-2.13v-3h3V0l1.5,1.5,1.5-1.5,1.5,1.5,1.5-1.5,1.5,1.5,1.5-1.5,1.5,1.5,1.5-1.5,1.5,1.5,1.5-1.5v17c0,.83-.29,1.54-.88,2.13-.58.58-1.29.88-2.13.88H3ZM15,18c.28,0,.52-.1.71-.29s.29-.43.29-.71V3H5v11h9v3c0,.28.1.52.29.71s.43.29.71.29ZM6,7v-2h6v2h-6ZM6,10v-2h6v2h-6ZM14,7c-.28,0-.52-.1-.71-.29s-.29-.43-.29-.71.1-.52.29-.71.43-.29.71-.29.52.1.71.29.29.43.29.71-.1.52-.29.71-.43.29-.71.29ZM14,10c-.28,0-.52-.1-.71-.29s-.29-.43-.29-.71.1-.52.29-.71.43-.29.71-.29.52.1.71.29.29.43.29.71-.1.52-.29.71-.43.29-.71.29ZM3,18h9v-2H2v1c0,.28.1.52.29.71s.43.29.71.29ZM2,18v-2,2Z" fill="currentColor"/></svg>
17
3
  </template>
@@ -1,12 +1,3 @@
1
1
  <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- height="72"
5
- viewBox="0 0 24 24"
6
- width="72"
7
- >
8
- <path
9
- d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"
10
- />
11
- </svg>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="35" height="28" viewBox="0 0 20 16"><path d="M20,2v12c0,.55-.2,1.02-.59,1.41s-.86.59-1.41.59H2c-.55,0-1.02-.2-1.41-.59s-.59-.86-.59-1.41V2C0,1.45.2.98.59.59s.86-.59,1.41-.59h16c.55,0,1.02.2,1.41.59s.59.86.59,1.41ZM2,4h16v-2H2v2ZM2,8v6h16v-6H2ZM2,14V2v12Z" fill="currentColor"/></svg>
12
3
  </template>
@@ -1,12 +1,3 @@
1
1
  <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- height="72"
5
- viewBox="0 0 24 24"
6
- width="72"
7
- >
8
- <path
9
- d="M9 11.75c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zm6 0c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.29.02-.58.05-.86 2.36-1.05 4.23-2.98 5.21-5.37C11.07 8.33 14.05 10 17.42 10c.78 0 1.53-.09 2.25-.26.21.71.33 1.47.33 2.26 0 4.41-3.59 8-8 8z"
10
- />
11
- </svg>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="35" height="35" viewBox="0 0 35 35"><path d="M12.25,17.06c-1.21,0-2.19.98-2.19,2.19s.98,2.19,2.19,2.19,2.19-.98,2.19-2.19-.98-2.19-2.19-2.19ZM22.75,17.06c-1.21,0-2.19.98-2.19,2.19s.98,2.19,2.19,2.19,2.19-.98,2.19-2.19-.98-2.19-2.19-2.19ZM17.5,0C7.84,0,0,7.84,0,17.5s7.84,17.5,17.5,17.5,17.5-7.84,17.5-17.5S27.16,0,17.5,0ZM17.5,31.5c-7.72,0-14-6.28-14-14,0-.51.03-1.01.09-1.5,4.13-1.84,7.4-5.22,9.12-9.4,3.17,4.48,8.38,7.4,14.28,7.4,1.37,0,2.68-.16,3.94-.46.37,1.24.58,2.57.58,3.96,0,7.72-6.28,14-14,14Z" fill="currentColor" /></svg>
12
3
  </template>
@@ -0,0 +1,3 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="35" height="28" viewBox="0 0 20 16"><path d="M7.2,12l2.8-2.1,2.75,2.1-1.05-3.4,2.8-2.2h-3.4l-1.1-3.4-1.1,3.4h-3.4l2.75,2.2-1.05,3.4ZM2,16c-.55,0-1.02-.2-1.41-.59s-.59-.86-.59-1.41v-3.38c0-.18.06-.34.18-.48s.27-.22.45-.25c.4-.13.73-.38.99-.73s.39-.74.39-1.18-.13-.83-.39-1.18-.59-.59-.99-.73c-.18-.03-.33-.12-.45-.25s-.18-.29-.18-.48v-3.38C0,1.45.2.98.59.59s.86-.59,1.41-.59h16c.55,0,1.02.2,1.41.59s.59.86.59,1.41v3.38c0,.18-.06.34-.18.48s-.27.22-.45.25c-.4.13-.73.38-.99.73s-.39.74-.39,1.18.13.83.39,1.18.59.59.99.73c.18.03.33.12.45.25s.18.29.18.48v3.38c0,.55-.2,1.02-.59,1.41s-.86.59-1.41.59H2ZM2,14h16v-2.55c-.62-.37-1.1-.85-1.46-1.46s-.54-1.27-.54-1.99.18-1.38.54-1.99.85-1.1,1.46-1.46v-2.55H2v2.55c.62.37,1.1.85,1.46,1.46s.54,1.27.54,1.99-.18,1.38-.54,1.99-.85,1.1-1.46,1.46v2.55Z" fill="currentColor"/></svg>
3
+ </template>
@@ -1,10 +1,3 @@
1
1
  <template>
2
- <svg
3
- width="16"
4
- height="16"
5
- viewBox="0 0 16 16"
6
- xmlns="http://www.w3.org/2000/svg"
7
- >
8
- <path d="M16 7H3.83L9.42 1.41L8 0L0 8L8 16L9.41 14.59L3.83 9H16V7Z" />
9
- </svg>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 16 16"><path d="M16,7H3.83L9.42,1.41l-1.42-1.41L0,8l8,8,1.41-1.41-5.58-5.59h12.17v-2Z" fill="currentColor" /></svg>
10
3
  </template>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <svg width="28" height="28" viewBox="0 0 20 20">
3
+ <path class="tint" fill="#ffffff" d="M10,1c-4.9,0-9,4.1-9,9s4.1,9,9,9s9-4.1,9-9S14.9,1,10,1z"/>
4
+ <path class="cross" fill="currentColor" d="M10,0C4.5,0,0,4.5,0,10s4.5,10,10,10s10-4.5,10-10S15.5,0,10,0z M10,18c-4.4,0-8-3.6-8-8s3.6-8,8-8 s8,3.6,8,8S14.4,18,10,18z M12.6,6L10,8.6L7.4,6L6,7.4L8.6,10L6,12.6L7.4,14l2.6-2.6l2.6,2.6l1.4-1.4L11.4,10L14,7.4L12.6,6z"/>
5
+ </svg>
6
+ </template>
7
+
package/icons/index.js CHANGED
@@ -1,21 +1,19 @@
1
- import ArrowBack from "#icons/arrow_back.vue";
2
- import ArrowIcon from "#icons/arrow.vue";
3
- import ArrowForward from "#icons/arrow_forward.vue";
4
1
  import BackArrow from "#icons/back_arrow.vue";
5
2
  import BarbicanLogo from "#icons/barbican.vue";
6
3
  import CartIcon from "#icons/cart.vue";
7
4
  import CityOfLondonLogo from "#icons/city_of_london.vue";
8
5
  import CityOfLondonLockup from "#icons/city_of_london_lockup.vue";
6
+ import CloseIcon from "#icons/close.vue";
9
7
  import InformationIcon from "#icons/information.vue";
8
+ import QrCode from "#icons/qr_code.vue";
10
9
 
11
10
  export {
12
- ArrowBack,
13
- ArrowIcon,
14
- ArrowForward,
15
11
  BackArrow,
16
12
  BarbicanLogo,
17
13
  CartIcon,
18
14
  CityOfLondonLogo,
19
15
  CityOfLondonLockup,
16
+ CloseIcon,
20
17
  InformationIcon,
18
+ QrCode,
21
19
  };
@@ -0,0 +1,3 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="35" height="35" version="1.1" viewBox="0 0 16 16"><path d="M8,8c-1.1,0-2.04-.39-2.83-1.18-.78-.78-1.18-1.73-1.18-2.83s.39-2.04,1.18-2.83,1.73-1.18,2.83-1.18,2.04.39,2.83,1.18,1.18,1.73,1.18,2.83-.39,2.04-1.18,2.83c-.78.78-1.73,1.18-2.83,1.18ZM0,16v-2.8c0-.57.15-1.09.44-1.56s.68-.84,1.16-1.09c1.03-.52,2.08-.9,3.15-1.16s2.15-.39,3.25-.39,2.18.13,3.25.39,2.12.65,3.15,1.16c.48.25.87.61,1.16,1.09s.44,1,.44,1.56v2.8H0Z" fill="currentColor"/></svg>
3
+ </template>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="M55.3902 99.7024V88.6243H66.4683V99.7024H55.3902ZM44.3122 88.6243V60.9292H55.3902V88.6243H44.3122ZM88.6243 72.0073V49.8512H99.7024V72.0073H88.6243ZM77.5463 49.8512V38.7731H88.6243V49.8512H77.5463ZM11.078 60.9292V49.8512H22.1561V60.9292H11.078ZM0 49.8512V38.7731H11.078V49.8512H0ZM49.8512 11.078V0H60.9292V11.078H49.8512ZM8.30853 24.9256H24.9256V8.30853H8.30853V24.9256ZM0 33.2341V0H33.2341V33.2341H0ZM8.30853 91.3938H24.9256V74.7768H8.30853V91.3938ZM0 99.7024V66.4683H33.2341V99.7024H0ZM74.7768 24.9256H91.3938V8.30853H74.7768V24.9256ZM66.4683 33.2341V0H99.7024V33.2341H66.4683ZM77.5463 99.7024V83.0853H66.4683V72.0073H88.6243V88.6243H99.7024V99.7024H77.5463ZM55.3902 60.9292V49.8512H77.5463V60.9292H55.3902ZM33.2341 60.9292V49.8512H22.1561V38.7731H55.3902V49.8512H44.3122V60.9292H33.2341ZM38.7731 33.2341V11.078H49.8512V22.1561H60.9292V33.2341H38.7731ZM12.4628 20.7713V12.4628H20.7713V20.7713H12.4628ZM12.4628 87.2396V78.931H20.7713V87.2396H12.4628ZM78.931 20.7713V12.4628H87.2396V20.7713H78.931Z" fill="currentColor" />
4
+ </svg>
5
+ </template>
@@ -4,11 +4,9 @@ import ChatIcon from "#icons/stream/chat.vue";
4
4
  import CogIcon from "#icons/stream/cog.vue";
5
5
  import VolumeIcon from "#icons/stream/volume.vue";
6
6
  import LiveIcon from "#icons/stream/live.vue";
7
- import CloseIcon from "#icons/stream/close.vue";
8
7
 
9
8
  export {
10
9
  AirplayIcon,
11
- CloseIcon,
12
10
  CastIcon,
13
11
  ChatIcon,
14
12
  CogIcon,
package/index.js CHANGED
@@ -32,9 +32,15 @@ import BrFormRadioGroup from '#components/BrFormRadioGroup.vue'
32
32
  import BrFormRow from '#components/BrFormRow.vue'
33
33
  import BrFormTel from '#components/BrFormTel.vue'
34
34
  import BrFormTextarea from '#components/BrFormTextarea.vue'
35
+ import BrFormToggle from '#components/BrFormToggle.vue'
35
36
  import BrFormUpdate from '#components/BrFormUpdate.vue'
36
37
  import BrFormVisible from '#components/BrFormVisible.vue'
37
38
 
39
+ import BrNavCard from '#components/BrNavCard.vue'
40
+ import BrNavCardWrap from '#components/BrNavCardWrap.vue'
41
+ import BrNavLink from '#components/BrNavLink.vue'
42
+ import BrOverlay from '#components/BrOverlay.vue'
43
+
38
44
  import BrLoader from '#components/BrLoader.vue'
39
45
  import BrSkiplink from '#components/BrSkiplink.vue'
40
46
  import BrStatusBars from '#components/BrStatusBars.vue'
@@ -76,9 +82,14 @@ export {
76
82
  BrFormRow,
77
83
  BrFormTel,
78
84
  BrFormTextarea,
85
+ BrFormToggle,
79
86
  BrFormUpdate,
80
87
  BrFormVisible,
81
88
  BrLoader,
89
+ BrNavCard,
90
+ BrNavCardWrap,
91
+ BrNavLink,
92
+ BrOverlay,
82
93
  BrSkiplink,
83
94
  BrStatusBars,
84
95
  BrWrap,
package/package.json CHANGED
@@ -137,5 +137,5 @@
137
137
  "style:patterns": "cd patterns && gulp build:css",
138
138
  "build:patterns": "cd patterns && rm -rf html && pug views --out html"
139
139
  },
140
- "version": "3.16.0"
140
+ "version": "3.18.0"
141
141
  }
@@ -113,8 +113,15 @@
113
113
  /// Membership card button.
114
114
  /// Used for membership renewals.
115
115
  /// @group Buttons
116
- .btn.btn-membership-card {
117
- @include btn-membership-card;
116
+ .btn.btn-renew-membership {
117
+ @include btn-renew-membership;
118
+ }
119
+
120
+ /// Overlay exit button.
121
+ /// Used for closing the overlay.
122
+ /// @group Buttons
123
+ .btn.btn-exit-overlay {
124
+ @include btn-exit-overlay;
118
125
  }
119
126
 
120
127
  .btn {
@@ -3,11 +3,10 @@
3
3
  @use "mixins/input" as *;
4
4
  @use "mixins/focus" as *;
5
5
 
6
- // deprecate custom-checkbox class. br-checkbox is more descriptive
6
+ /// @deprecated custom-checkbox class. br-form-checkbox is more descriptive
7
7
 
8
- .br-checkbox,
9
- .custom-checkbox {
10
- @include br-checkbox; // formerly checkbox-input
8
+ .br-form-checkbox {
9
+ @include br-form-checkbox; // formerly checkbox-input
11
10
 
12
11
  input[table][type='checkbox'] {
13
12
  @include inset;
@@ -0,0 +1,71 @@
1
+ @use "mixins/input/generic" as *;
2
+ @use "mixins/breakpoints" as *;
3
+
4
+ .br-form-toggle label {
5
+ @include generic-input-label;
6
+
7
+ @include small-up {
8
+ max-width: var(--width-layout-xs);
9
+ }
10
+
11
+ & {
12
+ grid-template-columns: auto 3.25rem;
13
+ padding-left: var(--padding-md);
14
+ display: inline-grid;
15
+ align-items: center;
16
+ font-weight: normal;
17
+ height: initial;
18
+ cursor: pointer;
19
+ width: 100%;
20
+ gap: 0.5em;
21
+ }
22
+ }
23
+
24
+ .br-form-toggle input[type=checkbox] {
25
+ background-color: var(--color-black-50-lighten);
26
+ transition-property: background-color;
27
+ transition-duration: 200ms;
28
+ border-radius: 1.125em;
29
+ position: relative;
30
+ appearance: none;
31
+ height: 1.875rem;
32
+ cursor: inherit;
33
+ width: 3.25rem;
34
+ color: white;
35
+ padding: 0;
36
+ margin: 0;
37
+
38
+ &:focus {
39
+ outline-color: var(--color-black-50-lighten);
40
+ outline-offset: var(--border-width-lg);
41
+ outline-width: var(--border-width-lg);
42
+ outline-style: solid;
43
+ }
44
+ }
45
+
46
+ .br-form-toggle input[type=checkbox]:before {
47
+ transition-property: transform;
48
+ transition-duration: 200ms;
49
+ background-color: white;
50
+ border-radius: 50%;
51
+ position: absolute;
52
+ height: 1.65em;
53
+ bottom: 0.3em;
54
+ width: 1.65em;
55
+ left: 0.3em;
56
+ content: '';
57
+ }
58
+
59
+ .br-form-toggle input[type=checkbox]:checked:before {
60
+ -webkit-transform: translateX(1.65em);
61
+ -ms-transform: translateX(1.65em);
62
+ transform: translateX(1.65em);
63
+ }
64
+
65
+ .br-form-toggle input[type=checkbox]:checked {
66
+ background-color: var(--color-status-success);
67
+
68
+ &:focus {
69
+ outline-color: var(--color-status-success);
70
+ }
71
+ }
@@ -0,0 +1,11 @@
1
+ @use "mixins/breakpoints" as *;
2
+
3
+ .br-nav-card-wrap {
4
+ gap: var(--gap-md);
5
+ display: grid;
6
+
7
+ @include medium-up {
8
+ grid-template-columns: repeat(2, 1fr);
9
+ gap: var(--gap-lg);
10
+ }
11
+ }
@@ -0,0 +1,51 @@
1
+ .br-navlink {
2
+ border-color: var(--color-black-25-lighten);
3
+ border-bottom-width: var(--border-width-sm);
4
+ border-right-width: var(--border-width-sm);
5
+ border-left-width: var(--border-width-sm);
6
+ padding-bottom: var(--padding-md);
7
+ padding-right: var(--padding-lg);
8
+ padding-left: var(--padding-lg);
9
+ padding-top: var(--padding-md);
10
+ background-color: white;
11
+ text-decoration: none;
12
+ border-top-width: 0;
13
+ align-items: center;
14
+ border-style: solid;
15
+ gap: var(--gap-xs);
16
+ font-weight: bold;
17
+ display: flex;
18
+ }
19
+
20
+ .br-navlink:first-child {
21
+ border-top-right-radius: var(--border-radius-lg);
22
+ border-top-left-radius: var(--border-radius-lg);
23
+ border-top-width: var(--border-width-sm);
24
+ }
25
+
26
+ .br-navlink:last-child {
27
+ border-bottom-right-radius: var(--border-radius-lg);
28
+ border-bottom-left-radius: var(--border-radius-lg);
29
+ }
30
+
31
+ a.br-navlink:hover,
32
+ a.br-navlink:focus {
33
+ background-color: var(--color-brand-generic-15-lighten);
34
+ outline-color: var(--color-brand-generic-90-darken);
35
+ outline-offset: calc(var(--border-width-sm) * -1);
36
+ color: var(--color-brand-generic-90-darken);
37
+ outline-width: var(--border-width-lg);
38
+ text-decoration: underline;
39
+ outline-style: solid;
40
+ }
41
+
42
+ div.br-navlink {
43
+ background-color: var(--color-brand-generic);
44
+ border-color: var(--color-brand-generic);
45
+ outline-offset: calc(var(--border-width-sm) * -1);
46
+ outline-color: var(--color-brand-generic);
47
+ outline-width: var(--border-width-lg);
48
+ outline-style: solid;
49
+ color: white;
50
+ cursor: default;
51
+ }