@magicgol/polyjuice 0.9.0 → 0.10.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/.storybook/preview-head.html +3 -3
- package/package.json +5 -5
- package/src/assets/palette.scss +2 -0
- package/src/components/image/profile-image/ProfileImage.stories.js +47 -0
- package/src/components/image/profile-image/ProfileImage.vue +134 -0
- package/src/components/typography/h1/HeadingOne.stories.js +34 -0
- package/src/components/typography/h1/HeadingOne.vue +25 -0
- package/src/documentation/Community.stories.mdx +16 -0
- package/src/main.js +12 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.
|
|
2
|
-
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.
|
|
1
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
|
|
2
|
+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
|
|
3
3
|
|
|
4
|
-
<link href="https://fonts.googleapis.com/css?family=Ubuntu:500" rel="stylesheet" />
|
|
4
|
+
<link href="https://fonts.googleapis.com/css?family=Ubuntu:500,600" rel="stylesheet" />
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@magicgol/polyjuice",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"serve": "vue-cli-service serve",
|
|
6
6
|
"build": "vue-cli-service build",
|
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@babel/core": "^7.17.9",
|
|
22
|
-
"@storybook/addon-actions": "^6.
|
|
23
|
-
"@storybook/addon-essentials": "^6.
|
|
24
|
-
"@storybook/addon-links": "^6.
|
|
22
|
+
"@storybook/addon-actions": "^6.5.6",
|
|
23
|
+
"@storybook/addon-essentials": "^6.5.6",
|
|
24
|
+
"@storybook/addon-links": "^6.5.6",
|
|
25
25
|
"@storybook/preset-scss": "^1.0.3",
|
|
26
|
-
"@storybook/vue": "^6.
|
|
26
|
+
"@storybook/vue": "^6.5.6",
|
|
27
27
|
"@vue/cli-plugin-babel": "~4.5.15",
|
|
28
28
|
"@vue/cli-plugin-eslint": "~4.5.15",
|
|
29
29
|
"@vue/cli-service": "~4.5.15",
|
package/src/assets/palette.scss
CHANGED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import MgProfileImage from './ProfileImage.vue';
|
|
2
|
+
|
|
3
|
+
// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Image/Profile',
|
|
6
|
+
component: MgProfileImage,
|
|
7
|
+
// More on argTypes: https://storybook.js.org/docs/vue/api/argtypes
|
|
8
|
+
argTypes: {
|
|
9
|
+
size: {
|
|
10
|
+
control: { type: 'select' },
|
|
11
|
+
options: ['large', 'normal'],
|
|
12
|
+
defaultValue: 'normal'
|
|
13
|
+
},
|
|
14
|
+
online: {
|
|
15
|
+
control: { type: 'select' },
|
|
16
|
+
options: [true, false],
|
|
17
|
+
defaultValue: false
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// More on component templates: https://storybook.js.org/docs/vue/writing-stories/introduction#using-args
|
|
23
|
+
const Template = (args, { argTypes }) => ({
|
|
24
|
+
props: Object.keys(argTypes),
|
|
25
|
+
components: { MgProfileImage },
|
|
26
|
+
template: `<mg-profile-image v-bind="$props"></mg-profile-image>`,
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export const Default = Template.bind({});
|
|
30
|
+
// More on args: https://storybook.js.org/docs/vue/writing-stories/args
|
|
31
|
+
Default.args = {
|
|
32
|
+
// active: false,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const Large = Template.bind({});
|
|
36
|
+
// More on args: https://storybook.js.org/docs/vue/writing-stories/args
|
|
37
|
+
Large.args = {
|
|
38
|
+
name: 'VdF',
|
|
39
|
+
size: 'large',
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export const Online = Template.bind({});
|
|
43
|
+
// More on args: https://storybook.js.org/docs/vue/writing-stories/args
|
|
44
|
+
Online.args = {
|
|
45
|
+
online: true,
|
|
46
|
+
name: 'VdF'
|
|
47
|
+
};
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
class="position-relative"
|
|
4
|
+
v-bind:class="classes"
|
|
5
|
+
>
|
|
6
|
+
<!-- INITIALS LAYER -->
|
|
7
|
+
<div
|
|
8
|
+
class="mg-acronym d-flex align-items-center position-absolute w-100 h-100"
|
|
9
|
+
>
|
|
10
|
+
<div
|
|
11
|
+
class="px-1 w-100 text-center flex-fill text-truncate text-white"
|
|
12
|
+
>{{ name }}</div>
|
|
13
|
+
</div>
|
|
14
|
+
<!-- end of INITIALS LAYER -->
|
|
15
|
+
<!-- PROFILE IMAGE LAYER -->
|
|
16
|
+
<div
|
|
17
|
+
class="mg-image position-absolute w-100 h-100"
|
|
18
|
+
style="background-position: center; background-size: cover"
|
|
19
|
+
v-if="imageUrl"
|
|
20
|
+
v-bind:style="{ backgroundImage: 'url(' + imageUrl + ')' }"
|
|
21
|
+
></div>
|
|
22
|
+
<!-- end of PROFILE IMAGE LAYER -->
|
|
23
|
+
<!-- ONLINE BADGE -->
|
|
24
|
+
<div
|
|
25
|
+
class="mg-live-badge position-absolute w-100"
|
|
26
|
+
>
|
|
27
|
+
<div class="w-100"></div>
|
|
28
|
+
</div>
|
|
29
|
+
<!-- end of ONLINE BADGE -->
|
|
30
|
+
</div>
|
|
31
|
+
</template>
|
|
32
|
+
|
|
33
|
+
<script>
|
|
34
|
+
export default {
|
|
35
|
+
name: 'mg-profile-image',
|
|
36
|
+
|
|
37
|
+
props: {
|
|
38
|
+
name: {
|
|
39
|
+
type: String
|
|
40
|
+
},
|
|
41
|
+
imageUrl: {
|
|
42
|
+
type: String
|
|
43
|
+
},
|
|
44
|
+
size: {
|
|
45
|
+
type: String,
|
|
46
|
+
default: 'normal',
|
|
47
|
+
validator: function (value) {
|
|
48
|
+
return ['large', 'normal'].indexOf(value) !== -1;
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
online: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: false
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
computed: {
|
|
58
|
+
classes() {
|
|
59
|
+
return {
|
|
60
|
+
'mg-profile-image': true,
|
|
61
|
+
'mg-profile-image--normal': this.size === 'normal',
|
|
62
|
+
'mg-profile-image--large': this.size === 'large',
|
|
63
|
+
'mg-profile-image--online': this.online === true,
|
|
64
|
+
'mg-profile-image--offline': this.online === false,
|
|
65
|
+
};
|
|
66
|
+
},
|
|
67
|
+
acronym() {
|
|
68
|
+
return '';
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
</script>
|
|
73
|
+
|
|
74
|
+
<style lang="scss">
|
|
75
|
+
@import '../../../assets/palette';
|
|
76
|
+
|
|
77
|
+
.mg-profile-image {
|
|
78
|
+
border-radius: 50%;
|
|
79
|
+
font-family: 'Ubuntu', sans-serif;
|
|
80
|
+
font-weight: 600;
|
|
81
|
+
|
|
82
|
+
&--normal {
|
|
83
|
+
height: 2.5rem;
|
|
84
|
+
font-size: 1rem;
|
|
85
|
+
width: 2.5rem;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&--large {
|
|
89
|
+
height: 5rem;
|
|
90
|
+
font-size: 2rem;
|
|
91
|
+
width: 5rem;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.mg-acronym {
|
|
95
|
+
background-color: #5770bc;
|
|
96
|
+
border-radius: 50%;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.mg-image {
|
|
100
|
+
border-radius: 50%;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
> div {
|
|
104
|
+
z-index: 100;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.mg-live-badge {
|
|
108
|
+
border-radius: 50%;
|
|
109
|
+
border: 3px solid white;
|
|
110
|
+
margin-bottom: -3px;
|
|
111
|
+
margin-right: -3px;
|
|
112
|
+
max-width: calc(20% + 6px);
|
|
113
|
+
min-width: 0.8125rem;
|
|
114
|
+
right: 0;
|
|
115
|
+
bottom: 0;
|
|
116
|
+
|
|
117
|
+
div {
|
|
118
|
+
padding-top: 100%;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
&--online {
|
|
123
|
+
.mg-live-badge {
|
|
124
|
+
background-color: map-get($palette, 'online');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
&--offline {
|
|
129
|
+
.mg-live-badge {
|
|
130
|
+
background-color: map-get($palette, 'offline');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
</style>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import MgHeadingOne from './HeadingOne.vue';
|
|
2
|
+
|
|
3
|
+
// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Typography/H1/H1',
|
|
6
|
+
component: MgHeadingOne,
|
|
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 => ({
|
|
26
|
+
components: { MgHeadingOne },
|
|
27
|
+
template: `<mg-heading-one><template v-if="${'default' in args}" v-slot>${args.default}</template></mg-heading-one>`,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
export const Default = Template.bind({});
|
|
31
|
+
// More on args: https://storybook.js.org/docs/vue/writing-stories/args
|
|
32
|
+
Default.args = {
|
|
33
|
+
default: 'heading one'
|
|
34
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div v-bind:class="classes"><slot></slot></div>
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script>
|
|
6
|
+
export default {
|
|
7
|
+
name: 'mg-heading-one',
|
|
8
|
+
|
|
9
|
+
computed: {
|
|
10
|
+
classes() {
|
|
11
|
+
return {
|
|
12
|
+
'mg-h1': true,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<style lang="scss">
|
|
20
|
+
.mg-h1 {
|
|
21
|
+
font-family: 'Ubuntu', sans-serif;
|
|
22
|
+
font-size: 1.25rem;
|
|
23
|
+
font-weight: 500;
|
|
24
|
+
}
|
|
25
|
+
</style>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {ColorItem, ColorPalette, Meta} from '@storybook/addon-docs';
|
|
2
|
+
|
|
3
|
+
<Meta title="Colors/Alert" />
|
|
4
|
+
|
|
5
|
+
<ColorPalette>
|
|
6
|
+
<ColorItem
|
|
7
|
+
title="Live"
|
|
8
|
+
subtitle="Used for online people"
|
|
9
|
+
colors={{'Jade': '#00b669'}}
|
|
10
|
+
/>
|
|
11
|
+
<ColorItem
|
|
12
|
+
title="Offline"
|
|
13
|
+
subtitle="Used for offline people"
|
|
14
|
+
colors={{'Clementine': '#ea7203'}}
|
|
15
|
+
/>
|
|
16
|
+
</ColorPalette>
|
package/src/main.js
CHANGED
|
@@ -20,13 +20,24 @@ new Vue({
|
|
|
20
20
|
|
|
21
21
|
export MgHCard from './components/card/horizontal-card/HCard';
|
|
22
22
|
export MgVCard from './components/card/vertical-card/VCard';
|
|
23
|
+
|
|
23
24
|
export MgPrimaryClubButton from './components/club/button/primary-club-button/PrimaryClubButton';
|
|
24
25
|
export MgSecondaryClubButton from './components/club/button/secondary-club-button/SecondaryClubButton';
|
|
26
|
+
|
|
25
27
|
export MgPrimaryButton from './components/form/button/primary-button/PrimaryButton';
|
|
26
28
|
export MgSecondaryButton from './components/form/button/secondary-button/SecondaryButton';
|
|
27
29
|
export MgTertiaryButton from './components/form/button/tertiary-button/TertiaryButton';
|
|
28
30
|
export MgToggleButton from './components/form/button/toggle-button/ToggleButton';
|
|
31
|
+
export MgCheckbox from './components/form/checkbox/checkbox/Checkbox';
|
|
32
|
+
export MgSwitch from './components/form/checkbox/switch/Switch';
|
|
33
|
+
|
|
34
|
+
export MgProfileImage from './components/image/profile-image/ProfileImage';
|
|
35
|
+
|
|
29
36
|
export MgMagicCoinButton from './components/magic-coin/button/MagicCoinButton';
|
|
30
37
|
export MgCredits from './components/magic-coin/credits/Credits';
|
|
31
|
-
|
|
38
|
+
|
|
39
|
+
export MgSoccerBallLoader from './components/loader/soccer-ball/SoccerBall';
|
|
40
|
+
|
|
32
41
|
export MgTabButton from './components/navigation/tab-button/TabButton';
|
|
42
|
+
|
|
43
|
+
export MgHeadingOne from './components/typography/h1/HeadingOne';
|