@magicgol/polyjuice 0.1.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/.gitlab-ci.yml +18 -0
- package/.nvmrc +1 -0
- package/.storybook/main.js +12 -0
- package/.storybook/preview-head.html +4 -0
- package/.storybook/preview.js +15 -0
- package/README.md +24 -0
- package/babel.config.js +5 -0
- package/lerna.json +6 -0
- package/package.json +59 -0
- package/public/favicon.ico +0 -0
- package/public/index.html +38 -0
- package/src/App.vue +28 -0
- package/src/assets/global.css +4 -0
- package/src/assets/logo.png +0 -0
- package/src/assets/palette.scss +3 -0
- package/src/components/form/primary-button/PrimaryButton.stories.js +61 -0
- package/src/components/form/primary-button/PrimaryButton.vue +55 -0
- package/src/components/form/primary-button/primary-button.scss +27 -0
- package/src/components/form/secondary-button/SecondaryButton.stories.js +42 -0
- package/src/components/form/secondary-button/SecondaryButton.vue +38 -0
- package/src/components/form/secondary-button/secondary-button.scss +16 -0
- package/src/components/form/tertiary-button/TertiaryButton.stories.js +42 -0
- package/src/components/form/tertiary-button/TertiaryButton.vue +38 -0
- package/src/components/form/tertiary-button/tertiary-button.scss +14 -0
- package/src/main.js +8 -0
package/.gitlab-ci.yml
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# Sets the docker image for the job
|
2
|
+
image: node:latest
|
3
|
+
|
4
|
+
# Sets the stages for the pipeline
|
5
|
+
stages:
|
6
|
+
- test
|
7
|
+
|
8
|
+
# Installs the dependencies
|
9
|
+
before_script:
|
10
|
+
- npm install
|
11
|
+
|
12
|
+
#👇Adds Chromatic as a job
|
13
|
+
chromatic_publish:
|
14
|
+
stage: test
|
15
|
+
script:
|
16
|
+
- npx chromatic --project-token=$CHROMATIC_PROJECT_TOKEN
|
17
|
+
only:
|
18
|
+
- master
|
package/.nvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
v16.0.0
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
|
2
|
+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
|
3
|
+
|
4
|
+
<link href="https://fonts.googleapis.com/css?family=Ubuntu:500" rel="stylesheet" />
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { INITIAL_VIEWPORTS } from '@storybook/addon-viewport'
|
2
|
+
|
3
|
+
export const parameters = {
|
4
|
+
actions: { argTypesRegex: "^on[A-Z].*" },
|
5
|
+
controls: {
|
6
|
+
matchers: {
|
7
|
+
color: /(background|color)$/i,
|
8
|
+
date: /Date$/,
|
9
|
+
},
|
10
|
+
},
|
11
|
+
viewport: {
|
12
|
+
viewports: INITIAL_VIEWPORTS,
|
13
|
+
defaultViewport: 'responsive',
|
14
|
+
},
|
15
|
+
}
|
package/README.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# polyjuice
|
2
|
+
|
3
|
+
## Project setup
|
4
|
+
```
|
5
|
+
npm install
|
6
|
+
```
|
7
|
+
|
8
|
+
### Compiles and hot-reloads for development
|
9
|
+
```
|
10
|
+
npm run serve
|
11
|
+
```
|
12
|
+
|
13
|
+
### Compiles and minifies for production
|
14
|
+
```
|
15
|
+
npm run build
|
16
|
+
```
|
17
|
+
|
18
|
+
### Lints and fixes files
|
19
|
+
```
|
20
|
+
npm run lint
|
21
|
+
```
|
22
|
+
|
23
|
+
### Customize configuration
|
24
|
+
See [Configuration Reference](https://cli.vuejs.org/config/).
|
package/babel.config.js
ADDED
package/lerna.json
ADDED
package/package.json
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
{
|
2
|
+
"name": "@magicgol/polyjuice",
|
3
|
+
"version": "0.1.0",
|
4
|
+
"scripts": {
|
5
|
+
"serve": "vue-cli-service serve",
|
6
|
+
"build": "vue-cli-service build",
|
7
|
+
"lint": "vue-cli-service lint",
|
8
|
+
"storybook": "start-storybook -p 6006",
|
9
|
+
"build-storybook": "build-storybook",
|
10
|
+
"chromatic": "npx chromatic --project-token=process.env.CHROMATIC_PROJECT_TOKEN"
|
11
|
+
},
|
12
|
+
"dependencies": {
|
13
|
+
"core-js": "^3.6.5",
|
14
|
+
"vue": "^2.6.11"
|
15
|
+
},
|
16
|
+
"devDependencies": {
|
17
|
+
"@babel/core": "^7.17.9",
|
18
|
+
"@storybook/addon-actions": "^6.4.22",
|
19
|
+
"@storybook/addon-essentials": "^6.4.22",
|
20
|
+
"@storybook/addon-links": "^6.4.22",
|
21
|
+
"@storybook/preset-scss": "^1.0.3",
|
22
|
+
"@storybook/vue": "^6.4.22",
|
23
|
+
"@vue/cli-plugin-babel": "~4.5.15",
|
24
|
+
"@vue/cli-plugin-eslint": "~4.5.15",
|
25
|
+
"@vue/cli-service": "~4.5.15",
|
26
|
+
"babel-eslint": "^10.1.0",
|
27
|
+
"babel-loader": "^8.2.4",
|
28
|
+
"babel-preset-vue": "^2.0.2",
|
29
|
+
"chromatic": "^6.5.4",
|
30
|
+
"css-loader": "^5.2.7",
|
31
|
+
"eslint": "^6.7.2",
|
32
|
+
"eslint-plugin-vue": "^6.2.2",
|
33
|
+
"lerna": "^4.0.0",
|
34
|
+
"sass": "^1.50.0",
|
35
|
+
"sass-loader": "^10.1.1",
|
36
|
+
"style-loader": "^2.0.0",
|
37
|
+
"vue-loader": "^15.9.8",
|
38
|
+
"vue-template-compiler": "^2.6.14"
|
39
|
+
},
|
40
|
+
"eslintConfig": {
|
41
|
+
"root": true,
|
42
|
+
"env": {
|
43
|
+
"node": true
|
44
|
+
},
|
45
|
+
"extends": [
|
46
|
+
"plugin:vue/essential",
|
47
|
+
"eslint:recommended"
|
48
|
+
],
|
49
|
+
"parserOptions": {
|
50
|
+
"parser": "babel-eslint"
|
51
|
+
},
|
52
|
+
"rules": {}
|
53
|
+
},
|
54
|
+
"browserslist": [
|
55
|
+
"> 1%",
|
56
|
+
"last 2 versions",
|
57
|
+
"not dead"
|
58
|
+
]
|
59
|
+
}
|
Binary file
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="">
|
3
|
+
<head>
|
4
|
+
<link
|
5
|
+
rel="stylesheet"
|
6
|
+
href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css"
|
7
|
+
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
|
8
|
+
crossorigin="anonymous"
|
9
|
+
>
|
10
|
+
<script
|
11
|
+
src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js"
|
12
|
+
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
|
13
|
+
crossorigin="anonymous"
|
14
|
+
></script>
|
15
|
+
<meta charset="utf-8">
|
16
|
+
<meta
|
17
|
+
http-equiv="X-UA-Compatible"
|
18
|
+
content="IE=edge"
|
19
|
+
>
|
20
|
+
<meta
|
21
|
+
name="viewport"
|
22
|
+
content="width=device-width,initial-scale=1.0"
|
23
|
+
>
|
24
|
+
<link
|
25
|
+
rel="icon"
|
26
|
+
href="<%= BASE_URL %>favicon.ico"
|
27
|
+
>
|
28
|
+
<title><%= htmlWebpackPlugin.options.title %></title>
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<noscript>
|
32
|
+
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
|
33
|
+
Please enable it to continue.</strong>
|
34
|
+
</noscript>
|
35
|
+
<div id="app"></div>
|
36
|
+
<!-- built files will be auto injected -->
|
37
|
+
</body>
|
38
|
+
</html>
|
package/src/App.vue
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
<template>
|
2
|
+
<div id="app">
|
3
|
+
<img alt="Vue logo" src="./assets/logo.png">
|
4
|
+
<HelloWorld msg="Welcome to Your Vue.js App"/>
|
5
|
+
</div>
|
6
|
+
</template>
|
7
|
+
|
8
|
+
<script>
|
9
|
+
import HelloWorld from './components/HelloWorld.vue'
|
10
|
+
|
11
|
+
export default {
|
12
|
+
name: 'App',
|
13
|
+
components: {
|
14
|
+
HelloWorld
|
15
|
+
}
|
16
|
+
}
|
17
|
+
</script>
|
18
|
+
|
19
|
+
<style>
|
20
|
+
#app {
|
21
|
+
font-family: Avenir, Helvetica, Arial, sans-serif;
|
22
|
+
-webkit-font-smoothing: antialiased;
|
23
|
+
-moz-osx-font-smoothing: grayscale;
|
24
|
+
text-align: center;
|
25
|
+
color: #2c3e50;
|
26
|
+
margin-top: 60px;
|
27
|
+
}
|
28
|
+
</style>
|
Binary file
|
@@ -0,0 +1,61 @@
|
|
1
|
+
import MgPrimaryButton from './PrimaryButton.vue';
|
2
|
+
|
3
|
+
// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export
|
4
|
+
export default {
|
5
|
+
title: 'Form/Button/Primary Button',
|
6
|
+
component: MgPrimaryButton,
|
7
|
+
// More on argTypes: https://storybook.js.org/docs/vue/api/argtypes
|
8
|
+
argTypes: {
|
9
|
+
type: {
|
10
|
+
control: { type: 'select' },
|
11
|
+
options: ['submit', 'button'],
|
12
|
+
defaultValue: 'button'
|
13
|
+
},
|
14
|
+
size: {
|
15
|
+
control: { type: 'select' },
|
16
|
+
options: ['normal', 'large'],
|
17
|
+
defaultValue: 'normal'
|
18
|
+
},
|
19
|
+
default: {
|
20
|
+
description: "The default Vue slot",
|
21
|
+
control: {
|
22
|
+
type: 'text',
|
23
|
+
},
|
24
|
+
table: {
|
25
|
+
category: 'Slots',
|
26
|
+
type: {
|
27
|
+
summary: 'html',
|
28
|
+
},
|
29
|
+
}
|
30
|
+
}
|
31
|
+
},
|
32
|
+
};
|
33
|
+
|
34
|
+
// More on component templates: https://storybook.js.org/docs/vue/writing-stories/introduction#using-args
|
35
|
+
const Template = (args, { argTypes }) => ({
|
36
|
+
props: Object.keys(argTypes),
|
37
|
+
components: { MgPrimaryButton },
|
38
|
+
template: `<mg-primary-button @onClick="onClick" v-bind="$props"><template v-if="${'default' in args}" v-slot>${args.default}</template></mg-primary-button>`,
|
39
|
+
});
|
40
|
+
|
41
|
+
export const Default = Template.bind({});
|
42
|
+
// More on args: https://storybook.js.org/docs/vue/writing-stories/args
|
43
|
+
Default.args = {
|
44
|
+
disabled: false,
|
45
|
+
type: 'button',
|
46
|
+
default: 'primary button'
|
47
|
+
};
|
48
|
+
|
49
|
+
export const Disabled = Template.bind({});
|
50
|
+
Disabled.args = {
|
51
|
+
disabled: true,
|
52
|
+
type: 'button',
|
53
|
+
default: 'primary button'
|
54
|
+
};
|
55
|
+
|
56
|
+
export const Large = Template.bind({});
|
57
|
+
Large.args = {
|
58
|
+
size: 'large',
|
59
|
+
type: 'button',
|
60
|
+
default: 'primary button'
|
61
|
+
};
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<template>
|
2
|
+
<button
|
3
|
+
class="d-block w-100 rounded text-white text-uppercase"
|
4
|
+
:class="classes"
|
5
|
+
:type="type"
|
6
|
+
:disabled="disabled"
|
7
|
+
@click="onClick"
|
8
|
+
><slot></slot></button>
|
9
|
+
</template>
|
10
|
+
|
11
|
+
<script>
|
12
|
+
import './primary-button.scss';
|
13
|
+
|
14
|
+
export default {
|
15
|
+
name: 'mg-primary-button',
|
16
|
+
|
17
|
+
props: {
|
18
|
+
disabled: {
|
19
|
+
type: Boolean,
|
20
|
+
default: false,
|
21
|
+
},
|
22
|
+
type: {
|
23
|
+
type: String,
|
24
|
+
default: 'button',
|
25
|
+
validator: function (value) {
|
26
|
+
return ['button', 'submit'].indexOf(value) !== -1;
|
27
|
+
},
|
28
|
+
},
|
29
|
+
size: {
|
30
|
+
type: String,
|
31
|
+
default: 'normal',
|
32
|
+
validator: function (value) {
|
33
|
+
return ['large', 'normal'].indexOf(value) !== -1;
|
34
|
+
},
|
35
|
+
}
|
36
|
+
},
|
37
|
+
|
38
|
+
computed: {
|
39
|
+
classes() {
|
40
|
+
return {
|
41
|
+
'mg-primary-button': true,
|
42
|
+
'mg-primary-button-size-normal': this.size === 'normal',
|
43
|
+
'mg-primary-button-size-large': this.size === 'large',
|
44
|
+
'mg-primary-button--disabled': this.disabled,
|
45
|
+
};
|
46
|
+
}
|
47
|
+
},
|
48
|
+
|
49
|
+
methods: {
|
50
|
+
onClick() {
|
51
|
+
this.$emit('onClick');
|
52
|
+
},
|
53
|
+
},
|
54
|
+
};
|
55
|
+
</script>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
@import '../../../assets/palette';
|
2
|
+
|
3
|
+
.mg-primary-button {
|
4
|
+
appearance: none;
|
5
|
+
background-color: map-get($palette, 'brand');
|
6
|
+
border: 1px solid map-get($palette, 'brand');
|
7
|
+
cursor: pointer;
|
8
|
+
font-family: 'Ubuntu', sans-serif;
|
9
|
+
font-weight: 500;
|
10
|
+
|
11
|
+
&-size {
|
12
|
+
&-normal {
|
13
|
+
font-size: 0.8215rem;
|
14
|
+
padding: 0.5rem;
|
15
|
+
}
|
16
|
+
&-large {
|
17
|
+
box-shadow: 0 8px 22px 0 rgba(0, 0, 0, 0.3);
|
18
|
+
font-size: 1rem;
|
19
|
+
padding: 1rem;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
&--disabled {
|
24
|
+
opacity: 0.6 !important;
|
25
|
+
cursor: not-allowed !important;
|
26
|
+
}
|
27
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import MgSecondaryButton from './SecondaryButton.vue';
|
2
|
+
|
3
|
+
// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export
|
4
|
+
export default {
|
5
|
+
title: 'Form/Button/Secondary Button',
|
6
|
+
component: MgSecondaryButton,
|
7
|
+
// More on argTypes: https://storybook.js.org/docs/vue/api/argtypes
|
8
|
+
argTypes: {
|
9
|
+
default: {
|
10
|
+
description: "The default Vue slot",
|
11
|
+
control: {
|
12
|
+
type: 'text',
|
13
|
+
},
|
14
|
+
table: {
|
15
|
+
category: 'Slots',
|
16
|
+
type: {
|
17
|
+
summary: 'html',
|
18
|
+
},
|
19
|
+
}
|
20
|
+
}
|
21
|
+
},
|
22
|
+
};
|
23
|
+
|
24
|
+
// More on component templates: https://storybook.js.org/docs/vue/writing-stories/introduction#using-args
|
25
|
+
const Template = (args, { argTypes }) => ({
|
26
|
+
props: Object.keys(argTypes),
|
27
|
+
components: { MgSecondaryButton },
|
28
|
+
template: `<mg-secondary-button @onClick="onClick" v-bind="$props"><template v-if="${'default' in args}" v-slot>${args.default}</template></mg-secondary-button>`,
|
29
|
+
});
|
30
|
+
|
31
|
+
export const Default = Template.bind({});
|
32
|
+
// More on args: https://storybook.js.org/docs/vue/writing-stories/args
|
33
|
+
Default.args = {
|
34
|
+
disabled: false,
|
35
|
+
default: 'secondary button'
|
36
|
+
};
|
37
|
+
|
38
|
+
export const Disabled = Template.bind({});
|
39
|
+
Disabled.args = {
|
40
|
+
disabled: true,
|
41
|
+
default: 'secondary button'
|
42
|
+
};
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<template>
|
2
|
+
<button
|
3
|
+
class="d-block bg-white w-100 p-2 rounded text-uppercase text-center text-decoration-none"
|
4
|
+
:class="classes"
|
5
|
+
:disabled="disabled"
|
6
|
+
@click="onClick"
|
7
|
+
><slot></slot></button>
|
8
|
+
</template>
|
9
|
+
|
10
|
+
<script>
|
11
|
+
import './secondary-button.scss';
|
12
|
+
|
13
|
+
export default {
|
14
|
+
name: 'mg-secondary-button',
|
15
|
+
|
16
|
+
props: {
|
17
|
+
disabled: {
|
18
|
+
type: Boolean,
|
19
|
+
default: false,
|
20
|
+
},
|
21
|
+
},
|
22
|
+
|
23
|
+
computed: {
|
24
|
+
classes() {
|
25
|
+
return {
|
26
|
+
'mg-secondary-button': true,
|
27
|
+
'mg-secondary-button--disabled': this.disabled,
|
28
|
+
};
|
29
|
+
}
|
30
|
+
},
|
31
|
+
|
32
|
+
methods: {
|
33
|
+
onClick() {
|
34
|
+
this.$emit('onClick');
|
35
|
+
},
|
36
|
+
},
|
37
|
+
};
|
38
|
+
</script>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
@import '../../../assets/palette';
|
2
|
+
|
3
|
+
.mg-secondary-button {
|
4
|
+
appearance: none;
|
5
|
+
border: 1px solid map-get($palette, 'brand');
|
6
|
+
color: map-get($palette, 'brand');
|
7
|
+
cursor: pointer;
|
8
|
+
font-family: 'Ubuntu', sans-serif;
|
9
|
+
font-size: 0.8215rem;
|
10
|
+
font-weight: 500;
|
11
|
+
|
12
|
+
&--disabled {
|
13
|
+
opacity: 0.6 !important;
|
14
|
+
cursor: not-allowed !important;
|
15
|
+
}
|
16
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import MgTertiaryButton from './TertiaryButton.vue';
|
2
|
+
|
3
|
+
// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export
|
4
|
+
export default {
|
5
|
+
title: 'Form/Button/Tertiary Button',
|
6
|
+
component: MgTertiaryButton,
|
7
|
+
// More on argTypes: https://storybook.js.org/docs/vue/api/argtypes
|
8
|
+
argTypes: {
|
9
|
+
default: {
|
10
|
+
description: "The default Vue slot",
|
11
|
+
control: {
|
12
|
+
type: 'text',
|
13
|
+
},
|
14
|
+
table: {
|
15
|
+
category: 'Slots',
|
16
|
+
type: {
|
17
|
+
summary: 'html',
|
18
|
+
},
|
19
|
+
}
|
20
|
+
}
|
21
|
+
},
|
22
|
+
};
|
23
|
+
|
24
|
+
// More on component templates: https://storybook.js.org/docs/vue/writing-stories/introduction#using-args
|
25
|
+
const Template = (args, { argTypes }) => ({
|
26
|
+
props: Object.keys(argTypes),
|
27
|
+
components: { MgTertiaryButton },
|
28
|
+
template: `<mg-tertiary-button @onClick="onClick" v-bind="$props"><template v-if="${'default' in args}" v-slot>${args.default}</template></mg-tertiary-button>`,
|
29
|
+
});
|
30
|
+
|
31
|
+
export const Default = Template.bind({});
|
32
|
+
// More on args: https://storybook.js.org/docs/vue/writing-stories/args
|
33
|
+
Default.args = {
|
34
|
+
disabled: false,
|
35
|
+
default: 'tertiary button'
|
36
|
+
};
|
37
|
+
|
38
|
+
export const Disabled = Template.bind({});
|
39
|
+
Disabled.args = {
|
40
|
+
disabled: true,
|
41
|
+
default: 'tertiary button'
|
42
|
+
};
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<template>
|
2
|
+
<button
|
3
|
+
class="bg-transparent border-0 text-uppercase"
|
4
|
+
:class="classes"
|
5
|
+
:disabled="disabled"
|
6
|
+
@click="onClick"
|
7
|
+
><slot></slot></button>
|
8
|
+
</template>
|
9
|
+
|
10
|
+
<script>
|
11
|
+
import './tertiary-button.scss';
|
12
|
+
|
13
|
+
export default {
|
14
|
+
name: 'mg-tertiary-button',
|
15
|
+
|
16
|
+
props: {
|
17
|
+
disabled: {
|
18
|
+
type: Boolean,
|
19
|
+
default: false,
|
20
|
+
},
|
21
|
+
},
|
22
|
+
|
23
|
+
computed: {
|
24
|
+
classes() {
|
25
|
+
return {
|
26
|
+
'mg-tertiary-button': true,
|
27
|
+
'mg-tertiary-button--disabled': this.disabled,
|
28
|
+
};
|
29
|
+
}
|
30
|
+
},
|
31
|
+
|
32
|
+
methods: {
|
33
|
+
onClick() {
|
34
|
+
this.$emit('onClick');
|
35
|
+
},
|
36
|
+
},
|
37
|
+
};
|
38
|
+
</script>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
@import '../../../assets/palette';
|
2
|
+
|
3
|
+
.mg-tertiary-button {
|
4
|
+
color: map-get($palette, 'brand');
|
5
|
+
cursor: pointer;
|
6
|
+
font-family: 'Ubuntu', sans-serif;
|
7
|
+
font-size: 0.75rem;
|
8
|
+
font-weight: 500;
|
9
|
+
|
10
|
+
&--disabled {
|
11
|
+
opacity: 0.6 !important;
|
12
|
+
cursor: not-allowed !important;
|
13
|
+
}
|
14
|
+
}
|