@mirweb/mir-web-components 2.2.15 → 2.3.1

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,115 @@
1
+ <template>
2
+ <div class="loader" :style="{ margin: wrapperMargin }">
3
+ <div class="spinner" :style="{ width: spinnerSize, height: spinnerSize }">
4
+ <svg class="spinner__circle" viewBox="25 25 50 50">
5
+ <circle
6
+ class="spinner__svg"
7
+ cx="50"
8
+ cy="50"
9
+ r="20"
10
+ fill="none"
11
+ stroke-width="2"
12
+ stroke-miterlimit="10"
13
+ />
14
+ </svg>
15
+ </div>
16
+ </div>
17
+ </template>
18
+
19
+ <script setup lang="ts">
20
+ import { computed } from "vue";
21
+
22
+ const props = defineProps({
23
+ size: {
24
+ type: String,
25
+ default: "100px",
26
+ },
27
+ margin: {
28
+ type: String,
29
+ default: "300px auto",
30
+ },
31
+ });
32
+
33
+ const spinnerSize = computed(() => props.size);
34
+ const wrapperMargin = computed(() => props.margin);
35
+ </script>
36
+
37
+ <style lang="scss" scoped>
38
+ @use "../../../assets/scss/variables.scss" as *;
39
+
40
+ .loader {
41
+ max-width: 984px;
42
+ margin: auto;
43
+ }
44
+
45
+ .spinner {
46
+ position: relative;
47
+ margin: 0 auto;
48
+ border-radius: 50%;
49
+ &:before {
50
+ content: "";
51
+ display: block;
52
+ padding-top: 100%;
53
+ }
54
+
55
+ &__circle {
56
+ animation: rotate 2s linear infinite;
57
+ height: 100%;
58
+ transform-origin: center center;
59
+ width: 100%;
60
+ position: absolute;
61
+ top: 0;
62
+ bottom: 0;
63
+ left: 0;
64
+ right: 0;
65
+ margin: auto;
66
+ }
67
+
68
+ &__svg {
69
+ stroke-dasharray: 1, 200;
70
+ stroke-dashoffset: 0;
71
+ animation:
72
+ dash 1.5s ease-in-out infinite,
73
+ color 6s ease-in-out infinite;
74
+ stroke-linecap: round;
75
+ }
76
+ }
77
+
78
+ @keyframes rotate {
79
+ 100% {
80
+ transform: rotate(360deg);
81
+ }
82
+ }
83
+
84
+ @keyframes dash {
85
+ 0% {
86
+ stroke-dasharray: 1, 200;
87
+ stroke-dashoffset: 0;
88
+ }
89
+ 50% {
90
+ stroke-dasharray: 89, 200;
91
+ stroke-dashoffset: -35px;
92
+ }
93
+ 100% {
94
+ stroke-dasharray: 89, 200;
95
+ stroke-dashoffset: -124px;
96
+ }
97
+ }
98
+
99
+ @keyframes color {
100
+ 100%,
101
+ 0% {
102
+ stroke: $blue-500;
103
+ }
104
+ 40% {
105
+ stroke: $blue-600;
106
+ }
107
+ 66% {
108
+ stroke: $blue-700;
109
+ }
110
+ 80%,
111
+ 90% {
112
+ stroke: $blue-800;
113
+ }
114
+ }
115
+ </style>
@@ -113,7 +113,6 @@ export type Props = {
113
113
  flipHorizontal?: boolean;
114
114
  flipVertical?: boolean;
115
115
  bgColor?: BgColor;
116
- linkText?: string;
117
116
  linkType?: string;
118
117
  };
119
118
 
@@ -123,7 +122,6 @@ const props = withDefaults(defineProps<Props>(), {
123
122
  flipHorizontal: false,
124
123
  flipVertical: false,
125
124
  bgColor: "white",
126
- linkText: "",
127
125
  linkType: "link",
128
126
  });
129
127
 
@@ -5,6 +5,7 @@ export { default as AtomDropdown } from "./atoms/dropdown/dropdown.vue";
5
5
  export { default as AtomImage } from "./atoms/image/image.vue";
6
6
  export { default as AtomLabel } from "./atoms/label/label.vue";
7
7
  export { default as AtomLink } from "./atoms/link/link.vue";
8
+ export { default as AtomLoader } from "./atoms/loader/loader.vue";
8
9
  export { default as AtomRadioButton } from "./atoms/radio-button/radio-button.vue";
9
10
  export { default as AtomSelect } from "./atoms/select/select.vue";
10
11
  export { default as AtomSelectMultiple } from "./atoms/select-multiple/select-multiple.vue";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mirweb/mir-web-components",
3
3
  "private": false,
4
- "version": "2.2.15",
4
+ "version": "2.3.1",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"