@magicgol/polyjuice 0.52.2 → 0.54.0

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicgol/polyjuice",
3
- "version": "0.52.2",
3
+ "version": "0.54.0",
4
4
  "scripts": {
5
5
  "serve": "vue-cli-service serve",
6
6
  "build": "vue-cli-service build",
@@ -1,15 +1,24 @@
1
1
  <template>
2
2
  <div
3
- class="d-flex text-truncate justify-content-between align-items-center rounded px-3"
3
+ class="d-flex text-truncate justify-content-between align-items-center px-3 position-relative"
4
4
  v-bind:class="classes"
5
5
  >
6
+ <div
7
+ v-if="progressBar"
8
+ class="position-absolute h-100"
9
+ style="top: 0; left: 0; border-radius: 16px"
10
+ :class="progressBarClass"
11
+ :style="{ width: progressBar + '%' }"
12
+ ></div>
6
13
  <div
7
14
  class="flex-fill text-truncate"
15
+ style="z-index: 1"
8
16
  ><slot></slot></div>
9
17
  <!-- ACTIONS -->
10
18
  <div
11
19
  v-if="actionsSlotVisibility"
12
20
  class="pl-3"
21
+ style="z-index: 1"
13
22
  >
14
23
  <slot name="actions"></slot>
15
24
  </div>
@@ -21,6 +30,18 @@
21
30
  export default {
22
31
  name: 'mg-h-card',
23
32
 
33
+ props: {
34
+ progressBar: {
35
+ type: Number,
36
+ default: null
37
+ },
38
+
39
+ progressBarClass: {
40
+ type: String,
41
+ default: null,
42
+ },
43
+ },
44
+
24
45
  computed: {
25
46
  classes() {
26
47
  return {
@@ -37,6 +58,7 @@ export default {
37
58
  <style lang="scss">
38
59
  .mg-h-card {
39
60
  background: #fff;
61
+ border-radius: 16px;
40
62
  box-shadow: 0 8px 12px 0 rgba(0, 0, 0, 0.25);
41
63
  height: 3.75rem;
42
64
  }
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="rounded overflow-hidden"
3
+ class="overflow-hidden"
4
4
  :class="classes"
5
5
  @click="onClick"
6
6
  >
@@ -85,6 +85,7 @@ export default {
85
85
 
86
86
  .mg-v-card {
87
87
  background: white;
88
+ border-radius: 16px;
88
89
  box-shadow: 0 8px 15px 0 rgba(0, 0, 0, 0.3);
89
90
 
90
91
  &--highlighted {
@@ -0,0 +1,36 @@
1
+ import MgVDelimiter from './VDelimiter.vue';
2
+
3
+ // More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export
4
+ export default {
5
+ title: 'Content/Delimiter/VDelimiter',
6
+ component: MgVDelimiter,
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: { MgVDelimiter },
28
+ template: `<mg-v-delimiter v-bind="$props"><template v-if="${'default' in args}" v-slot>${args.default}</template></mg-v-delimiter>`,
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
+ default: 'this is the list head',
35
+ color: '#f00'
36
+ };
@@ -0,0 +1,37 @@
1
+ <template>
2
+ <div
3
+ class="d-flex"
4
+ :class="classes"
5
+ >
6
+ <div
7
+ class="mr-3"
8
+ style="border: 2px solid; border-radius: 5px;"
9
+ :style="{borderColor: color, backgroundColor: color}"
10
+ ></div>
11
+ <slot></slot>
12
+ </div>
13
+ </template>
14
+
15
+ <script>
16
+ export default {
17
+ name: 'mg-v-delimiter',
18
+
19
+ props: {
20
+ color: {
21
+ type: String,
22
+ validator: value => {
23
+ const regex = new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/);
24
+ return regex.test(value);
25
+ },
26
+ },
27
+ },
28
+
29
+ computed: {
30
+ classes() {
31
+ return {
32
+ 'mg-v-delimiter': true,
33
+ };
34
+ }
35
+ },
36
+ };
37
+ </script>
@@ -64,7 +64,6 @@ export default {
64
64
  appearance: none;
65
65
  background: map-get($palette, 'club');
66
66
  border-radius: 15px;
67
- box-shadow: 0 5px 22px rgba(0, 0, 0, 0.3);
68
67
  cursor: pointer;
69
68
  font-family: 'Ubuntu', sans-serif;
70
69
  font-size: 1rem;
@@ -61,7 +61,6 @@ export default {
61
61
  appearance: none;
62
62
  background: map-get($palette, 'club');
63
63
  border-radius: 15px;
64
- box-shadow: 0 5px 22px rgba(0, 0, 0, 0.3);
65
64
  box-sizing: border-box;
66
65
  border: 0;
67
66
  cursor: pointer;
@@ -1,6 +1,8 @@
1
1
  <template>
2
2
  <mg-h-card
3
3
  :class="classes"
4
+ :progress-bar="progressBar"
5
+ :progress-bar-class="progressBarClass"
4
6
  >
5
7
  <template v-slot:default>
6
8
  <mg-h-footballer
@@ -15,8 +17,8 @@
15
17
  </template>
16
18
 
17
19
  <script>
18
- import MgHFootballer from "../horizontal-footballer/HFootballer";
19
- import MgHCard from "../../../content/card/horizontal-card/HCard";
20
+ import MgHFootballer from '../horizontal-footballer/HFootballer';
21
+ import MgHCard from '../../../content/card/horizontal-card/HCard';
20
22
 
21
23
  export default {
22
24
  name: 'mg-h-footballer-card',
@@ -42,18 +44,29 @@ export default {
42
44
  type: Boolean,
43
45
  default: false
44
46
  }
45
- }
47
+ },
48
+ progressBar: {
49
+ type: Number,
50
+ default: null
51
+ },
46
52
  },
47
53
 
48
54
  computed: {
49
- classes() {
55
+ classes () {
50
56
  return {
51
57
  'mg-h-footballer-card': true,
52
58
  'mg-h-footballer-card--pressed': this.pressed === true,
53
59
  };
54
60
  },
55
- actionsSlotVisibility() {
61
+ actionsSlotVisibility () {
56
62
  return 'actions' in this.$slots && !!this.$slots.actions;
63
+ },
64
+ progressBarClass () {
65
+ if (!this.progressBar) {
66
+ return null;
67
+ }
68
+
69
+ return this.progressBar >= 50 ? 'mg-h-footballer-card--theme-success' : 'mg-h-footballer-card--theme-error';
57
70
  }
58
71
  },
59
72
 
@@ -65,10 +78,21 @@ export default {
65
78
  </script>
66
79
 
67
80
  <style lang="scss">
81
+ @import '../../../../assets/palette';
82
+
68
83
  .mg-h-footballer-card {
69
84
  &--pressed {
70
85
  background: #daf0d9 !important;
71
86
  box-shadow: inset 0 4px 9px rgba(0, 0, 0, 0.1) !important;
72
87
  }
88
+
89
+ &--theme {
90
+ &-success {
91
+ background-color: rgba(map-get($palette, 'success'), 0.2);
92
+ }
93
+ &-error {
94
+ background-color: rgba(map-get($palette, 'error'), 0.2);
95
+ }
96
+ }
73
97
  }
74
98
  </style>