barbican-reset 3.17.0 → 3.19.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.
- package/README.md +1 -1
- package/components/BrAlert.vue +1 -1
- package/components/BrButton.vue +2 -2
- package/components/BrCardTitle.vue +1 -1
- package/components/BrFormCheckbox.vue +1 -1
- package/components/BrFormFieldsetNew.vue +15 -0
- package/components/BrFormInput.vue +16 -8
- package/components/BrFormLabel.vue +1 -3
- package/components/BrFormRadio.vue +4 -1
- package/components/BrFormToggle.vue +32 -0
- package/components/BrNavCard.vue +24 -13
- package/components/BrNavCardWrap.vue +5 -0
- package/components/BrOverlay.vue +33 -0
- package/components/SeeInside.vue +1 -1
- package/icons/back_arrow.vue +1 -8
- package/icons/close.vue +7 -0
- package/icons/index.js +4 -8
- package/icons/qr_code.vue +5 -0
- package/icons/stream/index.js +0 -2
- package/index.js +10 -1
- package/package.json +1 -1
- package/scss/_br-button.scss +9 -2
- package/scss/{_br-checkbox.scss → _br-form-checkbox.scss} +3 -4
- package/scss/_br-form-fieldset.scss +71 -0
- package/scss/_br-form-toggle.scss +71 -0
- package/scss/_br-nav-card-wrap.scss +11 -0
- package/scss/_br-navlink.scss +4 -2
- package/scss/_br-overlay.scss +26 -0
- package/scss/_input.scss +6 -7
- package/scss/card/_login.scss +5 -6
- package/scss/card/_membership-new.scss +45 -0
- package/scss/card/_membership.scss +42 -41
- package/scss/card/_navcard.scss +49 -41
- package/scss/card/index.scss +1 -0
- package/scss/index.scss +8 -3
- package/scss/lists.scss +0 -16
- package/scss/mixins/_br-card.scss +3 -0
- package/scss/mixins/_focus.scss +15 -0
- package/scss/mixins/buttons/_custom.scss +4 -25
- package/scss/mixins/buttons/_outline.scss +4 -4
- package/scss/mixins/buttons/custom/_exit-overlay.scss +31 -0
- package/scss/mixins/buttons/custom/_renew-membership.scss +27 -0
- package/scss/mixins/input/_checkbox.scss +2 -2
- package/scss/mixins/input/_generic.scss +4 -2
- package/scss/mixins/input/_radio.scss +87 -3
- package/scss/typography.scss +6 -0
- package/icons/arrow.vue +0 -5
- package/icons/arrow_back.vue +0 -12
- package/icons/arrow_forward.vue +0 -10
- package/icons/stream/close.vue +0 -7
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 | - | - |
|
package/components/BrAlert.vue
CHANGED
package/components/BrButton.vue
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
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')"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div role="group" :aria-labelledby="id" class="fieldset">
|
|
3
|
+
<div class="wrap-legend">
|
|
4
|
+
<div :id="id" class="legend">{{ label }}</div>
|
|
5
|
+
</div>
|
|
6
|
+
<slot />
|
|
7
|
+
</div>
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<script setup>
|
|
11
|
+
const props = defineProps({
|
|
12
|
+
label: String,
|
|
13
|
+
id: String,
|
|
14
|
+
})
|
|
15
|
+
</script>
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
<label :for="generateID">
|
|
3
|
+
|
|
4
|
+
<input
|
|
5
|
+
:autocomplete="generateAutoComplete"
|
|
6
|
+
:data-test="generateDataTest"
|
|
7
|
+
:type="generateType"
|
|
8
|
+
:id="generateID"
|
|
9
|
+
v-model="model"
|
|
10
|
+
v-bind="$attrs" />
|
|
11
|
+
|
|
12
|
+
<span class="label-text">
|
|
13
|
+
<slot />
|
|
14
|
+
</span>
|
|
15
|
+
|
|
16
|
+
</label>
|
|
17
|
+
|
|
10
18
|
</template>
|
|
11
19
|
|
|
12
20
|
<script setup>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="br-radio">
|
|
2
|
+
<div :class="['br-radio', slots.default ? 'has-label-text' : 'no-label-text']">
|
|
3
3
|
<BrFormInput v-bind="$attrs" type="radio">
|
|
4
4
|
<slot />
|
|
5
5
|
</BrFormInput>
|
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
<script setup>
|
|
10
10
|
import BrFormInput from '#components/BrFormInput.vue'
|
|
11
|
+
import { useSlots } from 'vue';
|
|
12
|
+
|
|
13
|
+
const slots = useSlots()
|
|
11
14
|
|
|
12
15
|
defineOptions({
|
|
13
16
|
inheritAttrs: false,
|
|
@@ -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>
|
package/components/BrNavCard.vue
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<a v-if="to.
|
|
3
|
-
<br-card class="navcard
|
|
4
|
-
<div class="wrap-navcard-content">
|
|
5
|
-
<div class="wrap-navcard-icon">
|
|
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
6
|
<slot name="icon" />
|
|
7
7
|
</div>
|
|
8
8
|
<div>
|
|
9
|
-
<br-card-title>
|
|
9
|
+
<br-card-title v-if="$slots.title">
|
|
10
10
|
<slot name="title" />
|
|
11
11
|
</br-card-title>
|
|
12
|
-
<br-card-text>
|
|
13
|
-
<slot name="
|
|
12
|
+
<br-card-text v-if="$slots.text">
|
|
13
|
+
<slot name="text" />
|
|
14
14
|
</br-card-text>
|
|
15
15
|
</div>
|
|
16
16
|
</div>
|
|
17
17
|
</br-card>
|
|
18
18
|
</a>
|
|
19
|
-
|
|
19
|
+
<router-link v-else class="link-navcard" :to="{ name: to }">
|
|
20
20
|
<br-card class="navcard">
|
|
21
|
-
<div class="wrap-navcard-content">
|
|
22
|
-
<div class="wrap-navcard-icon">
|
|
21
|
+
<div :class="['wrap-navcard-content', { 'has-icon' : $slots.icon }]">
|
|
22
|
+
<div v-if="$slots.icon" class="wrap-navcard-icon">
|
|
23
23
|
<slot name="icon" />
|
|
24
24
|
</div>
|
|
25
25
|
<div>
|
|
26
|
-
<br-card-title>
|
|
26
|
+
<br-card-title v-if="$slots.title">
|
|
27
27
|
<slot name="title" />
|
|
28
28
|
</br-card-title>
|
|
29
|
-
<br-card-text>
|
|
30
|
-
<slot name="
|
|
29
|
+
<br-card-text v-if="$slots.text">
|
|
30
|
+
<slot name="text" />
|
|
31
31
|
</br-card-text>
|
|
32
32
|
</div>
|
|
33
33
|
</div>
|
|
@@ -36,10 +36,21 @@
|
|
|
36
36
|
</template>
|
|
37
37
|
|
|
38
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
|
+
|
|
39
49
|
const props = defineProps({
|
|
40
50
|
to: {
|
|
41
51
|
type: String,
|
|
42
52
|
required: true,
|
|
43
53
|
},
|
|
54
|
+
class: String
|
|
44
55
|
})
|
|
45
56
|
</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
|
+
|
package/components/SeeInside.vue
CHANGED
package/icons/back_arrow.vue
CHANGED
|
@@ -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>
|
package/icons/close.vue
ADDED
|
@@ -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,23 +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";
|
|
10
|
-
|
|
11
|
-
import PersonIcon from "#icons/person.vue";
|
|
8
|
+
import QrCode from "#icons/qr_code.vue";
|
|
12
9
|
|
|
13
10
|
export {
|
|
14
|
-
ArrowBack,
|
|
15
|
-
ArrowIcon,
|
|
16
|
-
ArrowForward,
|
|
17
11
|
BackArrow,
|
|
18
12
|
BarbicanLogo,
|
|
19
13
|
CartIcon,
|
|
20
14
|
CityOfLondonLogo,
|
|
21
15
|
CityOfLondonLockup,
|
|
16
|
+
CloseIcon,
|
|
22
17
|
InformationIcon,
|
|
18
|
+
QrCode,
|
|
23
19
|
};
|
|
@@ -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>
|
package/icons/stream/index.js
CHANGED
|
@@ -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
|
@@ -25,6 +25,7 @@ import BrFormDate from '#components/BrFormDate.vue'
|
|
|
25
25
|
import BrFormEdit from '#components/BrFormEdit.vue'
|
|
26
26
|
import BrFormEmail from '#components/BrFormEmail.vue'
|
|
27
27
|
import BrFormFieldset from '#components/BrFormFieldset.vue'
|
|
28
|
+
import BrFormFieldsetNew from '#components/BrFormFieldsetNew.vue'
|
|
28
29
|
import BrFormInput from '#components/BrFormInput.vue'
|
|
29
30
|
import BrFormPassword from '#components/BrFormPassword.vue'
|
|
30
31
|
import BrFormRadio from '#components/BrFormRadio.vue'
|
|
@@ -32,12 +33,16 @@ import BrFormRadioGroup from '#components/BrFormRadioGroup.vue'
|
|
|
32
33
|
import BrFormRow from '#components/BrFormRow.vue'
|
|
33
34
|
import BrFormTel from '#components/BrFormTel.vue'
|
|
34
35
|
import BrFormTextarea from '#components/BrFormTextarea.vue'
|
|
36
|
+
import BrFormToggle from '#components/BrFormToggle.vue'
|
|
35
37
|
import BrFormUpdate from '#components/BrFormUpdate.vue'
|
|
36
38
|
import BrFormVisible from '#components/BrFormVisible.vue'
|
|
37
39
|
|
|
38
|
-
import BrLoader from '#components/BrLoader.vue'
|
|
39
40
|
import BrNavCard from '#components/BrNavCard.vue'
|
|
41
|
+
import BrNavCardWrap from '#components/BrNavCardWrap.vue'
|
|
40
42
|
import BrNavLink from '#components/BrNavLink.vue'
|
|
43
|
+
import BrOverlay from '#components/BrOverlay.vue'
|
|
44
|
+
|
|
45
|
+
import BrLoader from '#components/BrLoader.vue'
|
|
41
46
|
import BrSkiplink from '#components/BrSkiplink.vue'
|
|
42
47
|
import BrStatusBars from '#components/BrStatusBars.vue'
|
|
43
48
|
import BrWrap from '#components/BrWrap.vue'
|
|
@@ -71,6 +76,7 @@ export {
|
|
|
71
76
|
BrFormEdit,
|
|
72
77
|
BrFormEmail,
|
|
73
78
|
BrFormFieldset,
|
|
79
|
+
BrFormFieldsetNew,
|
|
74
80
|
BrFormInput,
|
|
75
81
|
BrFormPassword,
|
|
76
82
|
BrFormRadio,
|
|
@@ -78,11 +84,14 @@ export {
|
|
|
78
84
|
BrFormRow,
|
|
79
85
|
BrFormTel,
|
|
80
86
|
BrFormTextarea,
|
|
87
|
+
BrFormToggle,
|
|
81
88
|
BrFormUpdate,
|
|
82
89
|
BrFormVisible,
|
|
83
90
|
BrLoader,
|
|
84
91
|
BrNavCard,
|
|
92
|
+
BrNavCardWrap,
|
|
85
93
|
BrNavLink,
|
|
94
|
+
BrOverlay,
|
|
86
95
|
BrSkiplink,
|
|
87
96
|
BrStatusBars,
|
|
88
97
|
BrWrap,
|
package/package.json
CHANGED
package/scss/_br-button.scss
CHANGED
|
@@ -113,8 +113,15 @@
|
|
|
113
113
|
/// Membership card button.
|
|
114
114
|
/// Used for membership renewals.
|
|
115
115
|
/// @group Buttons
|
|
116
|
-
.btn.btn-membership
|
|
117
|
-
@include btn-membership
|
|
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
|
-
|
|
6
|
+
/// @deprecated custom-checkbox class. br-form-checkbox is more descriptive
|
|
7
7
|
|
|
8
|
-
.br-checkbox
|
|
9
|
-
|
|
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/breakpoints" as *;
|
|
2
|
+
|
|
3
|
+
fieldset, .fieldset {
|
|
4
|
+
padding: var(--padding-lg) var(--padding-lg) var(--padding-md);
|
|
5
|
+
border-color: var(--color-black-25-lighten);
|
|
6
|
+
border-radius: var(--border-radius-sm);
|
|
7
|
+
border-width: var(--border-width-sm);
|
|
8
|
+
margin: var(--margin-lg) 0 0;
|
|
9
|
+
border-style: solid;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.fieldset .legend {
|
|
13
|
+
background-color: white;
|
|
14
|
+
display: inline-block;
|
|
15
|
+
padding: 4px;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.fieldset .wrap-legend {
|
|
19
|
+
margin-top: calc(var(--margin-xxl) * -1);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@include small-up {
|
|
23
|
+
.fieldset.table {
|
|
24
|
+
grid-template-columns: auto repeat(2, 5rem);
|
|
25
|
+
border-radius: 0;
|
|
26
|
+
display: grid;
|
|
27
|
+
padding: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.fieldset .wrap-legend {
|
|
31
|
+
margin-top: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.fieldset.table .legend {
|
|
35
|
+
padding: var(--padding-md);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.fieldset.table .br-radio {
|
|
39
|
+
border-left-color: var(--color-black-25-lighten);
|
|
40
|
+
border-left-width: var(--border-width-sm);
|
|
41
|
+
border-left-style: solid;
|
|
42
|
+
justify-content: center;
|
|
43
|
+
align-items: center;
|
|
44
|
+
display: flex;
|
|
45
|
+
margin: 0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.fieldset.table .br-radio label {
|
|
49
|
+
padding: var(--padding-sm);
|
|
50
|
+
border-radius: 50%;
|
|
51
|
+
border-width: 0;
|
|
52
|
+
|
|
53
|
+
&:has(input:focus) {
|
|
54
|
+
outline-width: var(--border-width-sm);
|
|
55
|
+
outline-style: dashed;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&:has(input:checked):has(input:focus) {
|
|
59
|
+
outline-width: var(--border-width-sm);
|
|
60
|
+
outline-style: dashed;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.fieldset.table .br-radio input[type=radio] {
|
|
65
|
+
margin-top: 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.fieldset.table .br-radio label .label-text {
|
|
69
|
+
display: none;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -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
|
+
}
|
package/scss/_br-navlink.scss
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
.br-navlink {
|
|
2
|
-
border-color: var(--color-black-
|
|
2
|
+
border-color: var(--color-black-25-lighten);
|
|
3
3
|
border-bottom-width: var(--border-width-sm);
|
|
4
4
|
border-right-width: var(--border-width-sm);
|
|
5
5
|
border-left-width: var(--border-width-sm);
|
|
@@ -10,9 +10,11 @@
|
|
|
10
10
|
background-color: white;
|
|
11
11
|
text-decoration: none;
|
|
12
12
|
border-top-width: 0;
|
|
13
|
+
align-items: center;
|
|
13
14
|
border-style: solid;
|
|
15
|
+
gap: var(--gap-xs);
|
|
14
16
|
font-weight: bold;
|
|
15
|
-
display:
|
|
17
|
+
display: flex;
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
.br-navlink:first-child {
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
@use "./mixins/core" as *;
|
|
2
|
+
|
|
3
|
+
.br-overlay-wrap {
|
|
4
|
+
@include inset;
|
|
5
|
+
|
|
6
|
+
& {
|
|
7
|
+
background-color: var(--color-brand-generic-5-lighten);
|
|
8
|
+
color: var(--color-black-60-lighten);
|
|
9
|
+
padding: var(--padding-xxl);
|
|
10
|
+
align-items: center;
|
|
11
|
+
overflow: scroll;
|
|
12
|
+
position: fixed;
|
|
13
|
+
display: flex;
|
|
14
|
+
height: 100%;
|
|
15
|
+
width: 100%;
|
|
16
|
+
z-index: 5;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.br-overlay-content {
|
|
21
|
+
justify-content: center;
|
|
22
|
+
position: relative;
|
|
23
|
+
display: flex;
|
|
24
|
+
width: 100%;
|
|
25
|
+
z-index: 2;
|
|
26
|
+
}
|
package/scss/_input.scss
CHANGED
|
@@ -5,19 +5,18 @@ input::placeholder {
|
|
|
5
5
|
color: var(--color-black-25-lighten);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
input[type=
|
|
9
|
-
input[type=
|
|
10
|
-
margin
|
|
11
|
-
margin-right: var(--margin-sm);
|
|
8
|
+
input[type=checkbox],
|
|
9
|
+
input[type=radio] {
|
|
10
|
+
margin: 0;
|
|
12
11
|
}
|
|
13
12
|
|
|
14
|
-
input[type=
|
|
15
|
-
input[type=
|
|
13
|
+
input[type=button],
|
|
14
|
+
input[type=submit] {
|
|
16
15
|
border-radius: var(--border-radius-lg);
|
|
17
16
|
appearance: none;
|
|
18
17
|
}
|
|
19
18
|
|
|
20
|
-
input[type=
|
|
19
|
+
input[type=number] {
|
|
21
20
|
@include focus {
|
|
22
21
|
@include input-focus-defaults;
|
|
23
22
|
}
|