@magicgol/polyjuice 0.52.2 → 0.54.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/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>