@maas/vue-equipment 0.11.3 → 0.11.5

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.
Files changed (29) hide show
  1. package/dist/nuxt/module.json +1 -1
  2. package/dist/plugins/MagicModal/src/components/MagicModal.vue +38 -47
  3. package/dist/plugins/MagicPlayer/src/components/MagicPlayerControls.vue +2 -2
  4. package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue +1 -1
  5. package/dist/plugins/MagicToast/src/components/MagicToast.vue +36 -44
  6. package/dist/plugins/MagicToast/src/components/MagicToastComponent.vue +3 -2
  7. package/dist/utils/css/animations/clip-in.css +8 -0
  8. package/dist/utils/css/animations/clip-out.css +8 -0
  9. package/dist/utils/css/animations/fade-down-in.css +10 -0
  10. package/dist/utils/css/animations/fade-down-out.css +10 -0
  11. package/dist/utils/css/animations/fade-in.css +9 -0
  12. package/dist/utils/css/animations/fade-out.css +8 -0
  13. package/dist/utils/css/animations/fade-up-in.css +9 -0
  14. package/dist/utils/css/animations/fade-up-out.css +10 -0
  15. package/dist/utils/css/animations/flip-in.css +8 -0
  16. package/dist/utils/css/animations/flip-out.css +8 -0
  17. package/dist/utils/css/animations/slide-btt-in.css +8 -0
  18. package/dist/utils/css/animations/slide-btt-out.css +9 -0
  19. package/dist/utils/css/animations/slide-ltr-in.css +8 -0
  20. package/dist/utils/css/animations/slide-ltr-out.css +8 -0
  21. package/dist/utils/css/animations/slide-rtl-in.css +8 -0
  22. package/dist/utils/css/animations/slide-rtl-out.css +8 -0
  23. package/dist/utils/css/animations/slide-ttb-in.css +8 -0
  24. package/dist/utils/css/animations/slide-ttb-out.css +8 -0
  25. package/dist/utils/css/animations/zoom-in.css +10 -0
  26. package/dist/utils/css/animations/zoom-out.css +10 -0
  27. package/dist/utils/css/animations.css +21 -0
  28. package/dist/utils/css/transitions.css +79 -0
  29. package/package.json +5 -1
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@maas/vue-equipment",
3
3
  "configKey": "vueEquipment",
4
- "version": "0.11.2"
4
+ "version": "0.11.4"
5
5
  }
@@ -159,7 +159,10 @@ watch(isActive, async (value) => {
159
159
  })
160
160
  </script>
161
161
 
162
- <style lang="postcss">
162
+ <style>
163
+ @import '@maas/vue-equipment/utils/css/animations/fade-in.css';
164
+ @import '@maas/vue-equipment/utils/css/animations/fade-out.css';
165
+
163
166
  :root {
164
167
  --magic-modal-z-index: 999;
165
168
  --magic-modal-backdrop-color: rgba(0, 0, 0, 0.5);
@@ -169,6 +172,28 @@ watch(isActive, async (value) => {
169
172
  --magic-modal-content-overflow-y: auto;
170
173
  }
171
174
 
175
+ @keyframes magic-modal-content-enter {
176
+ 0% {
177
+ opacity: 0;
178
+ transform: translateY(2rem);
179
+ }
180
+ 100% {
181
+ opacity: 1;
182
+ transform: translateY(0);
183
+ }
184
+ }
185
+
186
+ @keyframes magic-modal-content-leave {
187
+ 0% {
188
+ opacity: 1;
189
+ transform: scale(1);
190
+ }
191
+ 100% {
192
+ opacity: 0;
193
+ transform: scale(1.02);
194
+ }
195
+ }
196
+
172
197
  .magic-modal {
173
198
  position: fixed;
174
199
  inset: 0;
@@ -209,64 +234,30 @@ watch(isActive, async (value) => {
209
234
  }
210
235
 
211
236
  /* Content */
212
- .magic-modal--content-enter-active,
213
- .magic-modal--content-leave-active {
214
- transition: all 300ms ease-out;
215
- }
216
-
217
- .magic-modal--content-enter-from {
218
- opacity: 0;
219
- transform: translateY(2rem);
220
- }
221
-
222
- .magic-modal--content-enter-to {
223
- opacity: 1;
224
- transform: translateY(0);
237
+ .magic-modal--content-enter-active {
238
+ animation: magic-modal-content-enter 300ms ease;
225
239
  }
226
240
 
227
- .magic-modal--content-leave-from {
228
- opacity: 1;
229
- transform: scale(1);
230
- }
231
-
232
- .magic-modal--content-leave-to {
233
- opacity: 0;
234
- transform: scale(1.02);
241
+ .magic-modal--content-leave-active {
242
+ animation: magic-modal-content-leave 300ms ease;
235
243
  }
236
244
 
237
245
  @media (prefers-reduced-motion) {
238
- .magic-modal--content-enter-active,
239
- .magic-modal--content-leave-active {
240
- transition: opacity 300ms ease-out;
246
+ .magic-modal--content-enter-active {
247
+ animation: fade-in 300ms ease;
241
248
  }
242
249
 
243
- .magic-modal--content-enter-from,
244
- .magic-modal--content-enter-to,
245
- .magic-modal--content-leave-from,
246
- .magic-modal--content-leave-to {
247
- transform: none;
250
+ .magic-modal--content-leave-active {
251
+ animation: fade-out 300ms ease;
248
252
  }
249
253
  }
250
254
 
251
255
  /* Backdrop */
252
- .magic-modal--backdrop-enter-active,
253
- .magic-modal--backdrop-leave-active {
254
- transition: opacity 300ms ease-out;
256
+ .magic-modal--backdrop-enter-active {
257
+ animation: fade-in 300ms ease;
255
258
  }
256
259
 
257
- .magic-modal--backdrop-enter-from {
258
- opacity: 0;
259
- }
260
-
261
- .magic-modal--backdrop-enter-to {
262
- opacity: 1;
263
- }
264
-
265
- .magic-modal--backdrop-leave-from {
266
- opacity: 1;
267
- }
268
-
269
- .magic-modal--backdrop-leave-to {
270
- opacity: 0;
260
+ .magic-modal--backdrop-leave-active {
261
+ animation: fade-out 300ms ease;
271
262
  }
272
263
  </style>
@@ -137,7 +137,7 @@ defineExpose({
137
137
  --magic-player-controls-overlay-background-color: rgba(0, 0, 0, 0.3);
138
138
  --magic-player-controls-overlay-color: rgba(255, 255, 255, 1);
139
139
  --magic-player-controls-transition-duration: 300ms;
140
- --magic-player-controls-transition-timing-function: ease-out: ;
140
+ --magic-player-controls-transition-timing-function: ease: ;
141
141
  }
142
142
 
143
143
  @media (max-width: 640px) {
@@ -160,7 +160,7 @@ defineExpose({
160
160
  color: var(--magic-player-controls-overlay-color);
161
161
  transition-duration: 300ms;
162
162
  transition-property: opacity;
163
- transition-timing-function: ease-out;
163
+ transition-timing-function: ease;
164
164
  display: flex;
165
165
  align-items: center;
166
166
  justify-content: center;
@@ -111,7 +111,7 @@ const {
111
111
  top: 50%;
112
112
  left: 50%;
113
113
  transform: translate(-50%, -50%) scale(0);
114
- transition: transform 300ms ease-out;
114
+ transition: transform 300ms ease;
115
115
  z-index: 10;
116
116
  background-color: var(--magic-player-thumb-bg-color);
117
117
  border-radius: 50rem;
@@ -112,21 +112,27 @@ watch(
112
112
  </script>
113
113
 
114
114
  <style lang="css">
115
+ @import '@maas/vue-equipment/utils/css/animations/fade-out.css';
116
+ @import '@maas/vue-equipment/utils/css/animations/slide-ltr-in.css';
117
+ @import '@maas/vue-equipment/utils/css/animations/slide-rtl-in.css';
118
+ @import '@maas/vue-equipment/utils/css/animations/slide-ttb-in.css';
119
+ @import '@maas/vue-equipment/utils/css/animations/slide-btt-in.css';
120
+
115
121
  :root {
116
- --magic-toast-enter-x: 0;
117
- --magic-toast-enter-y: 0;
122
+ --magic-toast-enter-animation: unset;
123
+ --magic-toast-leave-animation: fade-out 300ms ease;
118
124
  --magic-toast-scale: 0.1;
119
125
  --magic-toast-transform-x: 0;
120
126
  --magic-toast-transform-y: 0;
121
- --magic-toast-transition: transform 300ms ease-out;
127
+ --magic-toast-transition: transform 300ms ease;
122
128
  --magic-toast-z-index: 999;
123
129
  --magic-toast-gap: 0.75rem;
124
130
  --magic-toast-padding-x: 1rem;
125
131
  --magic-toast-padding-y: 1rem;
126
132
 
127
133
  --mt-multiplier: 1;
128
- --mt-transform-x: -50%;
129
- --mt-transform-y: -50%;
134
+ --mt-align-items: flex-start;
135
+ --mt-justify-content: center;
130
136
  }
131
137
 
132
138
  .magic-toast {
@@ -150,12 +156,9 @@ watch(
150
156
  max-height: 100%;
151
157
  width: 100%;
152
158
  height: 100%;
153
- & .magic-toast-component {
154
- left: 50%;
155
- top: 50%;
156
- transform: translateX(var(--mt-transform-x, -50%))
157
- translateY(var(--mt-transform-y, -50%));
158
- }
159
+ display: flex;
160
+ align-items: var(--mt-align-items);
161
+ justify-content: var(--mt-justify-content);
159
162
  }
160
163
 
161
164
  .magic-toast__inner * {
@@ -166,11 +169,11 @@ watch(
166
169
  .magic-toast.-top-center,
167
170
  .magic-toast.-top-right {
168
171
  --magic-toast-transform-y: 10;
169
- --magic-toast-enter-y: -100%;
172
+ --magic-toast-enter-animation: slide-ttb-in 300ms ease;
170
173
  --mt-multiplier: 1;
171
- & .magic-toast-component {
172
- top: var(--magic-toast-padding-y, 1rem);
173
- --mt-transform-y: 0;
174
+ & .magic-toast__inner {
175
+ padding-top: var(--magic-toast-padding-y, 1rem);
176
+ --mt-align-items: flex-start;
174
177
  }
175
178
  }
176
179
 
@@ -178,60 +181,49 @@ watch(
178
181
  .magic-toast.-bottom-center,
179
182
  .magic-toast.-bottom-right {
180
183
  --magic-toast-transform-y: 10;
181
- --magic-toast-enter-y: 100%;
184
+ --magic-toast-enter-animation: slide-btt-in 300ms ease;
182
185
  --mt-multiplier: -1;
183
- & .magic-toast-component {
184
- top: unset;
185
- bottom: var(--magic-toast-padding-y, 1rem);
186
- --mt-transform-y: 0;
186
+ & .magic-toast__inner {
187
+ padding-bottom: var(--magic-toast-padding-y, 1rem);
188
+ --mt-align-items: flex-end;
187
189
  }
188
190
  }
189
191
 
190
192
  .magic-toast.-top-left,
191
193
  .magic-toast.-bottom-left {
192
- & .magic-toast-component {
193
- left: var(--magic-toast-padding-x, 1rem);
194
- --mt-transform-x: 0;
194
+ & .magic-toast__inner {
195
+ padding-left: var(--magic-toast-padding-x, 1rem);
196
+ --mt-justify-content: flex-start;
195
197
  }
196
198
  }
197
199
 
198
200
  .magic-toast.-top-right,
199
201
  .magic-toast.-bottom-right {
200
- & .magic-toast-component {
201
- left: unset;
202
- right: var(--magic-toast-padding-x, 1rem);
203
- --mt-transform-x: 0;
202
+ & .magic-toast__inner {
203
+ padding-right: var(--magic-toast-padding-x, 1rem);
204
+ --mt-justify-content: flex-end;
204
205
  }
205
206
  }
206
207
 
207
208
  .magic-toast.-from-left {
208
- --magic-toast-enter-x: -100%;
209
- --magic-toast-enter-y: 0;
209
+ --magic-toast-enter-animation: slide-ltr-in 300ms ease;
210
210
  --magic-toast-transform-y: 0;
211
- --magic-toast-transform-x: -30;
211
+ --magic-toast-transform-x: 30;
212
+ --mt-multiplier: 1;
212
213
  }
213
214
 
214
215
  .magic-toast.-from-right {
215
- --magic-toast-enter-x: 100%;
216
- --magic-toast-enter-y: 0;
216
+ --magic-toast-enter-animation: slide-rtl-in 300ms ease;
217
217
  --magic-toast-transform-y: 0;
218
218
  --magic-toast-transform-x: 30;
219
+ --mt-multiplier: -1;
219
220
  }
220
221
 
221
- .magic-toast--list-enter-active * {
222
- transition: all 300ms ease-out;
223
- }
224
-
225
- .magic-toast--list-enter-from * {
226
- transform: translateY(var(--magic-toast-enter-y, 0))
227
- translateX(var(--magic-toast-enter-x, 0));
222
+ .magic-toast--list-enter-active {
223
+ animation: var(--magic-toast-enter-animation);
228
224
  }
229
225
 
230
226
  .magic-toast--list-leave-active {
231
- transition: all 150ms ease-out;
232
- }
233
-
234
- .magic-toast--list-leave-to {
235
- opacity: 0;
227
+ animation: var(--magic-toast-leave-animation);
236
228
  }
237
229
  </style>
@@ -78,7 +78,7 @@ watchEffect(() => {
78
78
  position: relative;
79
79
  width: 100%;
80
80
  height: 100%;
81
- transition: var(--magic-toast-transition, transform 300ms ease-out);
81
+ transition: var(--magic-toast-transition, transform 300ms ease);
82
82
  transform: matrix(
83
83
  var(--mt-matrix-scale),
84
84
  0,
@@ -91,11 +91,12 @@ watchEffect(() => {
91
91
 
92
92
  .magic-toast-component.expanded {
93
93
  --mt-matrix-scale: 1;
94
- --mt-matrix-transform-y: calc(((var(--mt-offset)) * var(--mt-multiplier)));
94
+ --mt-matrix-transform-y: calc(var(--mt-offset) * var(--mt-multiplier));
95
95
  --mt-matrix-transform-x: 0;
96
96
  &:not(:last-child) {
97
97
  & .magic-toast-component__inner {
98
98
  padding-bottom: calc(var(--magic-toast-gap) * var(--mt-index));
99
+ padding-top: calc(var(--magic-toast-gap) * var(--mt-index));
99
100
  }
100
101
  }
101
102
  }
@@ -0,0 +1,8 @@
1
+ @keyframes clip-in {
2
+ 0% {
3
+ clip-path: inset(0 0 100% 0);
4
+ }
5
+ 100% {
6
+ clip-path: inset(0 0 0 0);
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ @keyframes clip-out {
2
+ 0% {
3
+ clip-path: inset(0 0 0 0);
4
+ }
5
+ 100% {
6
+ clip-path: inset(0 0 100% 0);
7
+ }
8
+ }
@@ -0,0 +1,10 @@
1
+ @keyframes fade-down-in {
2
+ 0% {
3
+ opacity: 0;
4
+ transform: translateY(-1rem);
5
+ }
6
+ 100% {
7
+ opacity: 1;
8
+ transform: translateY(0);
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ @keyframes fade-down-out {
2
+ 0% {
3
+ opacity: 1;
4
+ transform: translateY(0);
5
+ }
6
+ 100% {
7
+ opacity: 0;
8
+ transform: translateY(-1rem);
9
+ }
10
+ }
@@ -0,0 +1,9 @@
1
+
2
+ @keyframes fade-in {
3
+ 0% {
4
+ opacity: 0;
5
+ }
6
+ 100% {
7
+ opacity: 1;
8
+ }
9
+ }
@@ -0,0 +1,8 @@
1
+ @keyframes fade-out {
2
+ 0% {
3
+ opacity: 1;
4
+ }
5
+ 100% {
6
+ opacity: 0;
7
+ }
8
+ }
@@ -0,0 +1,9 @@
1
+ @keyframes fade-up-in {
2
+ 0% {
3
+ opacity: 0;
4
+ transform: translateY(1rem);
5
+ }
6
+ 100% {
7
+ transform: translateY(0);
8
+ }
9
+ }
@@ -0,0 +1,10 @@
1
+ @keyframes fade-up-out {
2
+ 0% {
3
+ opacity: 1;
4
+ transform: translateY(0);
5
+ }
6
+ 100% {
7
+ opacity: 0;
8
+ transform: translateY(1rem);
9
+ }
10
+ }
@@ -0,0 +1,8 @@
1
+ @keyframes flip-in {
2
+ 0% {
3
+ transform: rotateY(90deg);
4
+ }
5
+ 100% {
6
+ transform: rotateY(0);
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ @keyframes flip-out {
2
+ 0% {
3
+ transform: rotateY(0);
4
+ }
5
+ 100% {
6
+ transform: rotateY(90deg);
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ @keyframes slide-btt-in {
2
+ 0% {
3
+ transform: translateY(100%);
4
+ }
5
+ 100% {
6
+ transform: translateY(0);
7
+ }
8
+ }
@@ -0,0 +1,9 @@
1
+
2
+ @keyframes slide-btt-out {
3
+ 0% {
4
+ transform: translateY(0);
5
+ }
6
+ 100% {
7
+ transform: translateY(100%);
8
+ }
9
+ }
@@ -0,0 +1,8 @@
1
+ @keyframes slide-ltr-in {
2
+ 0% {
3
+ transform: translateX(-100%);
4
+ }
5
+ 100% {
6
+ transform: translateX(0);
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ @keyframes slide-ltr-out {
2
+ 0% {
3
+ transform: translateX(0);
4
+ }
5
+ 100% {
6
+ transform: translateX(-100%);
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ @keyframes slide-rtl-in {
2
+ 0% {
3
+ transform: translateX(100%);
4
+ }
5
+ 100% {
6
+ transform: translateX(0);
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ @keyframes slide-rtl-out {
2
+ 0% {
3
+ transform: translateX(0);
4
+ }
5
+ 100% {
6
+ transform: translateX(100%);
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ @keyframes slide-ttb-in {
2
+ 0% {
3
+ transform: translateY(-100%);
4
+ }
5
+ 100% {
6
+ transform: translateY(0);
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ @keyframes slide-ttb-out {
2
+ 0% {
3
+ transform: translateY(0);
4
+ }
5
+ 100% {
6
+ transform: translateY(-100%);
7
+ }
8
+ }
@@ -0,0 +1,10 @@
1
+ @keyframes zoom-in {
2
+ 0% {
3
+ opacity: 0;
4
+ transform: scale(0.95);
5
+ }
6
+ 100% {
7
+ opacity: 1;
8
+ transform: scale(1);
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ @keyframes zoom-out {
2
+ 0% {
3
+ opacity: 1;
4
+ transform: scale(1);
5
+ }
6
+ 100% {
7
+ opacity: 0;
8
+ transform: scale(0.95);
9
+ }
10
+ }
@@ -0,0 +1,21 @@
1
+ @import './animations/clip-in.css';
2
+ @import './animations/clip-out.css';
3
+ @import './animations/fade-down-in.css';
4
+ @import './animations/fade-down-out.css';
5
+ @import './animations/fade-in.css';
6
+ @import './animations/fade-out.css';
7
+ @import './animations/fade-up-in.css';
8
+ @import './animations/fade-up-out.css';
9
+ @import './animations/flip-in.css';
10
+ @import './animations/flip-out.css';
11
+ @import './animations/slide-btt-in.css';
12
+ @import './animations/slide-btt-out.css';
13
+ @import './animations/slide-ltr-in.css';
14
+ @import './animations/slide-ltr-out.css';
15
+ @import './animations/slide-rtl-in.css';
16
+ @import './animations/slide-rtl-out.css';
17
+ @import './animations/slide-ttb-in.css';
18
+ @import './animations/slide-ttb-out.css';
19
+ @import './animations/zoom-in.css';
20
+ @import './animations/zoom-out.css';
21
+
@@ -0,0 +1,79 @@
1
+ .fade-enter-active {
2
+ animation: fade-in 300ms ease;
3
+ }
4
+
5
+ .fade-leave-active {
6
+ animation: fade-out 300ms ease;
7
+ }
8
+
9
+ .fade-up-enter-active {
10
+ animation: fade-up-in 300ms ease;
11
+ }
12
+
13
+ .fade-up-leave-active {
14
+ animation: fade-up-out 300ms ease;
15
+ }
16
+
17
+ .slide-btt-enter-active {
18
+ animation: slide-btt-in 300ms ease;
19
+ }
20
+
21
+ .slide-btt-leave-active {
22
+ animation: slide-btt-out 300ms ease;
23
+ }
24
+
25
+ .slide-ttb-enter-active {
26
+ animation: slide-ttb-in 300ms ease;
27
+ }
28
+
29
+ .slide-ttb-leave-active {
30
+ animation: slide-ttb-out 300ms ease;
31
+ }
32
+
33
+ .slide-rtl-enter-active {
34
+ animation: slide-rtl-in 300ms ease;
35
+ }
36
+
37
+ .slide-rtl-leave-active {
38
+ animation: slide-rtl-out 300ms ease;
39
+ }
40
+
41
+ .slide-ltr-enter-active {
42
+ animation: slide-ltr-in 300ms ease;
43
+ }
44
+
45
+ .slide-ltr-leave-active {
46
+ animation: slide-ltr-out 300ms ease;
47
+ }
48
+
49
+ .scroll-up-enter-active {
50
+ animation: scroll-up-in 300ms ease;
51
+ }
52
+
53
+ .scroll-up-leave-active {
54
+ animation: scroll-up-out 300ms ease;
55
+ }
56
+
57
+ .scroll-down-enter-active {
58
+ animation: scroll-down-in 300ms ease;
59
+ }
60
+
61
+ .scroll-down-leave-active {
62
+ animation: scroll-down-out 300ms ease;
63
+ }
64
+
65
+ .zoom-enter-active {
66
+ animation: zoom-in 300ms ease;
67
+ }
68
+
69
+ .zoom-leave-active {
70
+ animation: zoom-out 300ms ease;
71
+ }
72
+
73
+ .clip-enter-active {
74
+ animation: clip-in 0.6s cubic-bezier(0.83, 0, 0.17, 1) forwards;
75
+ }
76
+
77
+ .clip-leave-active {
78
+ animation: clip-out 0.6s cubic-bezier(0.83, 0, 0.17, 1) forwards;
79
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maas/vue-equipment",
3
3
  "description": "A magic collection of Vue composables, plugins, components and directives",
4
- "version": "0.11.3",
4
+ "version": "0.11.5",
5
5
  "author": "Robin Scholz <https://github.com/robinscholz>, Christoph Jeworutzki <https://github.com/ChristophJeworutzki>",
6
6
  "devDependencies": {
7
7
  "@antfu/ni": "^0.21.5",
@@ -50,6 +50,10 @@
50
50
  "types": "./dist/utils/index.d.ts",
51
51
  "require": "./dist/utils/index.js",
52
52
  "import": "./dist/utils/index.mjs"
53
+ },
54
+ "./utils/css/*.css": {
55
+ "import": "./dist/utils/css/*.css",
56
+ "require": "./dist/utils/css/*.css"
53
57
  }
54
58
  },
55
59
  "files": [