barbican-reset 2.42.0 → 2.43.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.
@@ -0,0 +1,36 @@
1
+ <template>
2
+ <br-button
3
+ :variant="variant"
4
+ :aria-controls="controls"
5
+ :aria-expanded="expanded"
6
+ @click="toggleCollapse">
7
+ <slot></slot>
8
+ </br-button>
9
+ </template>
10
+
11
+ <script>
12
+ import BrButton from '../BrButton'
13
+
14
+ export default {
15
+ components: {
16
+ BrButton
17
+ },
18
+ props: ['controls', 'variant'],
19
+ data() {
20
+ return {
21
+ expanded: 'false',
22
+ }
23
+ },
24
+ methods: {
25
+ toggleCollapse() {
26
+ let isExpanded = this.expanded == 'true'
27
+
28
+ this.expanded = isExpanded ? 'false' : 'true'
29
+
30
+ let content = document.getElementById(this.controls)
31
+
32
+ content.classList.toggle('expanded')
33
+ },
34
+ },
35
+ }
36
+ </script>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <div data-collapsible :id="id">
3
+ <slot></slot>
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ props: ['id'],
10
+ }
11
+ </script>
12
+
13
+ <style lang="scss" scoped>
14
+ [data-collapsible]:not(.expanded) {
15
+ display: none;
16
+ }
17
+ </style>
@@ -0,0 +1,22 @@
1
+ <template>
2
+ <div>
3
+ <br-collapse-button variant="link" :controls="collapse">
4
+ test
5
+ </br-collapse-button>
6
+ <br-collapse-content :id="collapse">
7
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi nostrum
8
+ sit alias. Distinctio, corporis. Dolore soluta ut hic a libero officiis,
9
+ quaerat minima itaque quas distinctio exercitationem vero nostrum magni.
10
+ </br-collapse-content>
11
+ </div>
12
+ </template>
13
+
14
+ <script>
15
+ export default {
16
+ data() {
17
+ return {
18
+ collapse: 'test',
19
+ }
20
+ },
21
+ }
22
+ </script>
@@ -0,0 +1,35 @@
1
+ <template>
2
+ <div class="br-checkbox">
3
+ <!-- @TODO: remove success prop and style scss from br-checkbox inheritence? -->
4
+ <input
5
+ @change="(event) => emitInputData(event, 'checkbox')"
6
+ :data-test="dataTest"
7
+ :disabled="disabled"
8
+ :checked="isDefault"
9
+ :success="success"
10
+ :id="generateID"
11
+ type="checkbox"
12
+ :table="table"
13
+ :value="value"
14
+ />
15
+ <label v-if="$slots.default" :for="generateID" ref="label"><slot /></label>
16
+ </div>
17
+ </template>
18
+
19
+ <script>
20
+ import mixins from "../../mixins/inputs";
21
+
22
+ export default {
23
+ mixins: [mixins],
24
+ props: [
25
+ "dataTest",
26
+ "disabled",
27
+ "success",
28
+ "default",
29
+ "toggle",
30
+ "table",
31
+ "value",
32
+ "id",
33
+ ],
34
+ };
35
+ </script>
@@ -0,0 +1,27 @@
1
+ <template>
2
+ <div>
3
+ <br-form-checkbox
4
+ @change="({ value }) => (newsletterOptIn = value)"
5
+ data-test="requires-companion-option"
6
+ :default="newsletterOptIn"
7
+ id="newsletter-signup"
8
+ :disabled="false"
9
+ :toggle="true"
10
+ :table="false"
11
+ :value="true"
12
+ success>
13
+ Keep me up to date with news, events and offers from the Barbican
14
+ </br-form-checkbox>
15
+ {{ newsletterOptIn }}
16
+ </div>
17
+ </template>
18
+
19
+ <script>
20
+ export default {
21
+ data() {
22
+ return {
23
+ newsletterOptIn: false,
24
+ }
25
+ },
26
+ }
27
+ </script>
@@ -0,0 +1,30 @@
1
+ <template>
2
+ <div role="group" :id="id">
3
+ <br-form-checkbox
4
+ v-for="({ value, text }, index) in options"
5
+ @change="emitCheckboxGroupData"
6
+ :value="value"
7
+ :key="index"
8
+ :name="name">
9
+ {{ text }}
10
+ </br-form-checkbox>
11
+ </div>
12
+ </template>
13
+
14
+ <script>
15
+ import mixins from "../../mixins/inputs";
16
+ import BrFormCheckbox from "../BrFormCheckbox/Component"
17
+
18
+ export default {
19
+ mixins: [mixins],
20
+ props: ['options', 'name', 'id', 'model'],
21
+ components: {
22
+ BrFormCheckbox,
23
+ },
24
+ data() {
25
+ return {
26
+ store: this.model,
27
+ }
28
+ },
29
+ }
30
+ </script>
@@ -0,0 +1,39 @@
1
+ <template>
2
+ <div>
3
+ <br-form-checkbox
4
+ @change="({ value }) => (boolean = value)"
5
+ data-test="checkbox-test-data"
6
+ id="checkbox-id"
7
+ :disabled="false"
8
+ :table="false"
9
+ :value="true"
10
+ success>
11
+ Lorem ipsum dolor sit amet.
12
+ </br-form-checkbox>
13
+ <br-form-checkbox-group
14
+ @change="(value) => (model = value)"
15
+ data-test="checkbox-test-data"
16
+ class="checkbox-class"
17
+ name="checkbox-name"
18
+ id="checkbox-id"
19
+ :options="options"
20
+ :model="model" />
21
+ {{ boolean ? 'true' : 'false' }}
22
+ {{ model.length ? model : 'nothing' }}
23
+ </div>
24
+ </template>
25
+
26
+ <script>
27
+ export default {
28
+ data() {
29
+ return {
30
+ boolean: false,
31
+ model: [],
32
+ options: [
33
+ { text: 'Orange text', value: 'orange' },
34
+ { text: 'Apple text', value: 'apple' },
35
+ ],
36
+ }
37
+ },
38
+ }
39
+ </script>
@@ -0,0 +1,15 @@
1
+ <template>
2
+ <fieldset :id="generateID">
3
+ <legend class="col-form-label">{{ label }}</legend>
4
+ <slot></slot>
5
+ </fieldset>
6
+ </template>
7
+
8
+ <script>
9
+ import mixins from "../../mixins/inputs";
10
+
11
+ export default {
12
+ props: ["label", "id"],
13
+ mixins: [mixins],
14
+ };
15
+ </script>
@@ -0,0 +1,26 @@
1
+ <template>
2
+ <br-form-group
3
+ label="I want to get the latest Barbican news and events."
4
+ data-test="working">
5
+ <br-form-radio-group
6
+ @change="({ value }) => (contactMeSelection = value)"
7
+ data-test="global-opt-in"
8
+ name="contact-me-options"
9
+ :options="yesNoOptions"
10
+ id="contact-me" />
11
+ </br-form-group>
12
+ </template>
13
+
14
+ <script>
15
+ export default {
16
+ data() {
17
+ return {
18
+ contactMeSelection: true,
19
+ yesNoOptions: [
20
+ { text: 'Yes', value: true },
21
+ { text: 'No', value: false },
22
+ ],
23
+ }
24
+ },
25
+ }
26
+ </script>
@@ -0,0 +1,35 @@
1
+ <template>
2
+ <input
3
+ :autocomplete="autocomplete"
4
+ @input="emitInputData"
5
+ :data-test="dataTest"
6
+ :required="required"
7
+ :disabled="disabled"
8
+ :id="generateID"
9
+ :value="value"
10
+ :type="type"
11
+ :name="name"
12
+ :min="min"
13
+ :max="max" />
14
+ <label v-if="$slots.default" :for="generateID" ref="label"><slot /></label>
15
+ </template>
16
+
17
+ <script>
18
+ import mixins from '../../mixins/inputs'
19
+
20
+ export default {
21
+ mixins: [mixins],
22
+ props: [
23
+ 'autocomplete',
24
+ 'dataTest',
25
+ 'required',
26
+ 'disabled',
27
+ 'value',
28
+ 'name',
29
+ 'type',
30
+ 'min',
31
+ 'max',
32
+ 'id',
33
+ ],
34
+ }
35
+ </script>
@@ -0,0 +1,64 @@
1
+ <template>
2
+ <div>
3
+ <br-form-row>
4
+ <br-form-radio
5
+ @change="({ value }) => (radio = value)"
6
+ name="radio"
7
+ value="true">
8
+ true
9
+ </br-form-radio>
10
+ <br-form-radio
11
+ @change="({ value }) => (radio = value)"
12
+ name="radio"
13
+ value="false">
14
+ false
15
+ </br-form-radio>
16
+ </br-form-row>
17
+ <br-form-row>
18
+ <br-form-input
19
+ @change="({ value }) => (gift.sendDate = value)"
20
+ :min="minimumSendDate"
21
+ :max="maximumSendDate"
22
+ data-test="send-date"
23
+ type="date" />
24
+ <br-form-input
25
+ @change="({ value }) => (email = value)"
26
+ data-test="login-form-email"
27
+ autocomplete="username"
28
+ value="disabled"
29
+ class="custom"
30
+ type="email"
31
+ name="email"
32
+ :disabled="false"
33
+ :required="true" />
34
+ </br-form-row>
35
+ <br-form-row>
36
+ {{ email }}
37
+ {{ radio }}
38
+ </br-form-row>
39
+ </div>
40
+ </template>
41
+
42
+ <script>
43
+ import { DateTime } from 'luxon'
44
+
45
+ export default {
46
+ computed: {
47
+ minimumSendDate() {
48
+ return DateTime.now().toISODate()
49
+ },
50
+ maximumSendDate() {
51
+ return DateTime.now().plus({ years: 1 }).toISODate()
52
+ },
53
+ },
54
+ data() {
55
+ return {
56
+ radio: 'radio',
57
+ email: 'email',
58
+ gift: {
59
+ sendDate: '',
60
+ },
61
+ }
62
+ },
63
+ }
64
+ </script>
@@ -0,0 +1,23 @@
1
+ <template>
2
+ <div class="custom-radio">
3
+ <input
4
+ @input="(event) => emitInputData(event, 'radio')"
5
+ :data-test="dataTest"
6
+ :disabled="disabled"
7
+ :checked="isDefault"
8
+ :id="generateID"
9
+ :value="value"
10
+ type="radio"
11
+ :name="name" />
12
+ <label v-if="$slots.default" :for="generateID" ref="label"><slot /></label>
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ import mixins from '../../mixins/inputs'
18
+
19
+ export default {
20
+ mixins: [mixins],
21
+ props: ['id', 'name', 'value', 'disabled', 'default', 'dataTest'],
22
+ }
23
+ </script>
@@ -0,0 +1,33 @@
1
+ <template>
2
+ <div v-for="(group, index) in radios" :key="index">
3
+ <div>{{ group.default }}</div>
4
+ <br-form-radio
5
+ v-for="(option, index) in group.options"
6
+ @change="({ value }) => (group.default = value)"
7
+ :default="group.default"
8
+ data-test="here it is"
9
+ :name="group.name"
10
+ :value="option"
11
+ :key="index">
12
+ {{ option }}
13
+ </br-form-radio>
14
+ </div>
15
+ </template>
16
+
17
+ <script>
18
+ export default {
19
+ data() {
20
+ return {
21
+ radios: [
22
+ { name: 'testA', default: true, options: [true, false] },
23
+ { name: 'testB', default: 16, options: [32, 46, 75] },
24
+ {
25
+ name: 'testC',
26
+ default: 'sentence',
27
+ options: ['paul', 'gareth', 'andrew'],
28
+ },
29
+ ],
30
+ }
31
+ },
32
+ }
33
+ </script>
@@ -0,0 +1,18 @@
1
+ <template>
2
+ <div role="radiogroup" :id="id">
3
+ <br-form-radio
4
+ v-for="({ value, text }, index) in options"
5
+ @change="(event) => $emit('change', event)"
6
+ :value="value"
7
+ :key="index"
8
+ :name="name">
9
+ {{ text }}
10
+ </br-form-radio>
11
+ </div>
12
+ </template>
13
+
14
+ <script>
15
+ export default {
16
+ props: ['options', 'name', 'id'],
17
+ }
18
+ </script>
@@ -0,0 +1,22 @@
1
+ <template>
2
+ <br-form-radio-group
3
+ @change="({ value }) => (contactMeSelection = value)"
4
+ data-test="global-opt-in"
5
+ name="contact-me-options"
6
+ :options="yesNoOptions"
7
+ id="radio-slots" />
8
+ </template>
9
+
10
+ <script>
11
+ export default {
12
+ data() {
13
+ return {
14
+ contactMeSelection: true,
15
+ yesNoOptions: [
16
+ { text: 'Yes', value: true },
17
+ { text: 'No', value: false },
18
+ ],
19
+ }
20
+ },
21
+ }
22
+ </script>
@@ -0,0 +1,23 @@
1
+ <template>
2
+ <textarea
3
+ @input="(event) => emitInputData(event, 'textarea')"
4
+ class="br-textarea form-control"
5
+ :placeholder="placeholder"
6
+ wrap="soft"
7
+ :id="id"></textarea>
8
+ </template>
9
+
10
+ <script>
11
+ import mixins from '../../mixins/inputs'
12
+
13
+ export default {
14
+ mixins: [mixins],
15
+ props: ['id', 'value', 'disabled', 'placeholder'],
16
+ }
17
+ </script>
18
+
19
+ <style lang="scss" scoped>
20
+ .br-textarea {
21
+ resize: none;
22
+ }
23
+ </style>
@@ -0,0 +1,22 @@
1
+ <template>
2
+ <div style="padding: 100px">
3
+ <br-form-textarea
4
+ @change="({ value }) => (gift.message = value)"
5
+ placeholder="placeholder"
6
+ data-test="data-test"
7
+ rows="6" />
8
+ {{ gift.message }}
9
+ </div>
10
+ </template>
11
+
12
+ <script>
13
+ export default {
14
+ data() {
15
+ return {
16
+ gift: {
17
+ message: '',
18
+ },
19
+ }
20
+ },
21
+ }
22
+ </script>
package/index.js CHANGED
@@ -5,14 +5,23 @@ import BrCard from "./components/BrCard";
5
5
  import BrCardText from "./components/BrCardText";
6
6
  import BrCardTitle from "./components/BrCardTitle";
7
7
  import BrCardSubTitle from "./components/BrCardSubTitle";
8
+ import BrCollapseButton from './components/BrCollapse/Button';
9
+ import BrCollapseContent from './components/BrCollapse/Content';
8
10
  import BrConfirmDone from "./components/BrConfirmDone";
9
11
  import BrConfirmEmail from "./components/BrConfirmEmail";
10
12
  import BrContainer from "./components/BrContainer";
11
13
  import BrFooterLower from "./components/BrFooterLower";
12
14
  import BrFooterUpper from "./components/BrFooterUpper";
13
15
  import BrFormBlock from "./components/BrFormBlock";
16
+ import BrFormCheckbox from "./components/BrFormCheckbox/Component";
17
+ import BrFormCheckboxGroup from "./components/BrFormCheckboxGroup/Component";
18
+ import BrFormGroup from './components/BrFormGroup/Component';
19
+ import BrFormInput from './components/BrFormInput/Component';
14
20
  import BrFormPassword from "./components/BrFormPassword";
21
+ import BrFormRadio from './components/BrFormRadio/Component';
22
+ import BrFormRadioGroup from './components/BrFormRadioGroup/Component';
15
23
  import BrFormRow from "./components/BrFormRow";
24
+ import BrFormTextarea from './components/BrFormTextarea/Component';
16
25
  import BrFormUpdate from "./components/BrFormUpdate";
17
26
  import BrLoader from "./components/BrLoader";
18
27
  import BrSkiplink from "./components/BrSkiplink";
@@ -32,14 +41,23 @@ export {
32
41
  BrCardSubTitle,
33
42
  BrCardText,
34
43
  BrCardTitle,
44
+ BrCollapseButton,
45
+ BrCollapseContent,
35
46
  BrConfirmDone,
36
47
  BrConfirmEmail,
37
48
  BrContainer,
38
49
  BrFooterLower,
39
50
  BrFooterUpper,
40
51
  BrFormBlock,
52
+ BrFormCheckbox,
53
+ BrFormCheckboxGroup,
54
+ BrFormGroup,
55
+ BrFormInput,
41
56
  BrFormPassword,
57
+ BrFormRadio,
58
+ BrFormRadioGroup,
42
59
  BrFormRow,
60
+ BrFormTextarea,
43
61
  BrFormUpdate,
44
62
  BrLoader,
45
63
  BrSkiplink,
@@ -0,0 +1,32 @@
1
+ export default {
2
+ computed: {
3
+ generateID() {
4
+ let random = "random_" + Math.ceil(Math.random() * 1000000);
5
+
6
+ return this.id ? this.id : random;
7
+ },
8
+ isDefault() {
9
+ return this.default == this.value;
10
+ },
11
+ },
12
+ methods: {
13
+ emitInputData({ target }, name = "input") {
14
+ let { value, checked } = target;
15
+
16
+ value = this.toggle ? checked : value;
17
+
18
+ let content = this.name ? this.name : name;
19
+
20
+ console.log({ content, value });
21
+
22
+ this.$emit("change", { content, value });
23
+ },
24
+ emitCheckboxGroupData({ value }) {
25
+ this.store.includes(value)
26
+ ? (this.store = this.store.filter((item) => item !== value))
27
+ : this.store.push(value);
28
+
29
+ this.$emit("change", this.store);
30
+ },
31
+ },
32
+ };
package/package.json CHANGED
@@ -79,6 +79,7 @@
79
79
  "dist/**/*",
80
80
  "fonts/*",
81
81
  "icons/**/*",
82
+ "mixins/**/*",
82
83
  "patterns/**/*",
83
84
  "logos/*",
84
85
  "scss/**/*",
@@ -99,5 +100,5 @@
99
100
  "build:patterns": "cd patterns && rm -rf html && pug views --out html"
100
101
  },
101
102
  "style": "dist/css/barbican-reset.css",
102
- "version": "2.42.0"
103
+ "version": "2.43.0"
103
104
  }