@gitlab/ui 101.15.0 → 101.16.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/CHANGELOG.md +7 -0
- package/dist/components/base/animated_icon/animated_loader_icon.js +45 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.js +5 -3
- package/dist/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.js +3 -3
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.js +1 -0
- package/package.json +1 -1
- package/src/components/base/animated_icon/animated_icon.scss +21 -0
- package/src/components/base/animated_icon/animated_loader_icon.vue +44 -0
- package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.scss +6 -33
- package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.vue +4 -6
- package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.vue +3 -3
- package/src/index.js +1 -0
package/dist/index.js
CHANGED
|
@@ -16,6 +16,7 @@ export { default as GlDeprecatedLink, default as GlLink } from './components/bas
|
|
|
16
16
|
export { default as GlIcon } from './components/base/icon/icon';
|
|
17
17
|
export { default as GlAnimatedChevronRightDownIcon } from './components/base/animated_icon/animated_chevron_right_down_icon';
|
|
18
18
|
export { default as GlAnimatedDuoChatIcon } from './components/base/animated_icon/animated_duo_chat_icon';
|
|
19
|
+
export { default as GlAnimatedLoaderIcon } from './components/base/animated_icon/animated_loader_icon';
|
|
19
20
|
export { default as GlAnimatedNotificationIcon } from './components/base/animated_icon/animated_notifications_icon';
|
|
20
21
|
export { default as GlAnimatedSidebarIcon } from './components/base/animated_icon/animated_sidebar_icon';
|
|
21
22
|
export { default as GlAnimatedSmileIcon } from './components/base/animated_icon/animated_smile_icon';
|
package/package.json
CHANGED
|
@@ -103,6 +103,27 @@
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
/* * * * * * * * * * * * * * * * *
|
|
106
|
+
* animated_loader_icon.vue
|
|
107
|
+
* * * * * * * * * * * * * * * * */
|
|
108
|
+
.gl-animated-icon-on .gl-animated-loader-shape {
|
|
109
|
+
animation: gl-animated-loader-on 1.8s $gl-easing-default infinite;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.gl-animated-icon-on .gl-animated-loader-shape-1 {
|
|
113
|
+
animation-delay: 0.15s;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.gl-animated-icon-on .gl-animated-loader-shape-2 {
|
|
117
|
+
animation-delay: 0.3s;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
@keyframes gl-animated-loader-on {
|
|
121
|
+
30% { translate: 0 -30%; }
|
|
122
|
+
60% { translate: 0 2%; }
|
|
123
|
+
65% { translate: 0 0; }
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* * * * * * * * * * * * * * * * *
|
|
106
127
|
* animated_notifications_icon.vue
|
|
107
128
|
* * * * * * * * * * * * * * * * */
|
|
108
129
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import GlBaseAnimatedIcon from './base_animated_icon.vue';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
name: 'GlAnimatedLoaderIcon',
|
|
6
|
+
extends: GlBaseAnimatedIcon,
|
|
7
|
+
};
|
|
8
|
+
</script>
|
|
9
|
+
<template>
|
|
10
|
+
<svg
|
|
11
|
+
:class="iconStateClass"
|
|
12
|
+
:aria-label="ariaLabel"
|
|
13
|
+
width="16"
|
|
14
|
+
height="16"
|
|
15
|
+
viewBox="0 0 16 16"
|
|
16
|
+
fill="none"
|
|
17
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
18
|
+
>
|
|
19
|
+
<circle
|
|
20
|
+
class="gl-animated-loader-shape gl-animated-loader-shape-1"
|
|
21
|
+
cx="8"
|
|
22
|
+
cy="8"
|
|
23
|
+
r="2"
|
|
24
|
+
fill="currentColor"
|
|
25
|
+
stroke-width="0"
|
|
26
|
+
/>
|
|
27
|
+
<circle
|
|
28
|
+
class="gl-animated-loader-shape gl-animated-loader-shape-2"
|
|
29
|
+
cx="14"
|
|
30
|
+
cy="8"
|
|
31
|
+
r="2"
|
|
32
|
+
fill="currentColor"
|
|
33
|
+
stroke-width="0"
|
|
34
|
+
/>
|
|
35
|
+
<circle
|
|
36
|
+
class="gl-animated-loader-shape gl-animated-loader-shape-3"
|
|
37
|
+
cx="2"
|
|
38
|
+
cy="8"
|
|
39
|
+
r="2"
|
|
40
|
+
fill="currentColor"
|
|
41
|
+
stroke-width="0"
|
|
42
|
+
/>
|
|
43
|
+
</svg>
|
|
44
|
+
</template>
|
package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.scss
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
@apply gl-text-gray-500;
|
|
4
4
|
|
|
5
5
|
.transition {
|
|
6
|
-
transition
|
|
6
|
+
@include gl-prefers-reduced-motion-transition;
|
|
7
|
+
transition: width 200ms $gl-easing-out-cubic;
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
.text-enter {
|
|
@@ -11,7 +12,8 @@
|
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
.text-enter-active {
|
|
14
|
-
|
|
15
|
+
@include gl-prefers-reduced-motion-transition;
|
|
16
|
+
transition: opacity 400ms $gl-easing-out-cubic; // we intentionally overlap this transition with .text-leave-active by 200ms
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
.text-enter-to {
|
|
@@ -23,40 +25,11 @@
|
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
.text-leave-active {
|
|
26
|
-
transition
|
|
28
|
+
@include gl-prefers-reduced-motion-transition;
|
|
29
|
+
transition: opacity 200ms $gl-easing-out-cubic;
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
.text-leave-to {
|
|
30
33
|
@apply gl-opacity-0;
|
|
31
34
|
}
|
|
32
|
-
|
|
33
|
-
&__dot {
|
|
34
|
-
display: inline-block;
|
|
35
|
-
width: 0.3rem;
|
|
36
|
-
height: 0.3rem;
|
|
37
|
-
background-color: $gray-200;
|
|
38
|
-
border-radius: 100%;
|
|
39
|
-
animation: DuoChatLoading 1400ms ease-in-out infinite;
|
|
40
|
-
animation-fill-mode: both;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
&__dot--1 {
|
|
44
|
-
animation-delay: -0.3s;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
&__dot--2 {
|
|
48
|
-
animation-delay: -0.15s;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
@keyframes DuoChatLoading {
|
|
53
|
-
0%,
|
|
54
|
-
80%,
|
|
55
|
-
100% {
|
|
56
|
-
transform: scale(0);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
40% {
|
|
60
|
-
transform: scale(1);
|
|
61
|
-
}
|
|
62
35
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import { translate } from '../../../../../../utils/i18n';
|
|
3
3
|
import GlSprintf from '../../../../../utilities/sprintf/sprintf.vue';
|
|
4
|
+
import GlAnimatedLoaderIcon from '../../../../../base/animated_icon/animated_loader_icon.vue';
|
|
4
5
|
import { LOADING_TRANSITION_DURATION } from '../../constants';
|
|
5
6
|
|
|
6
7
|
export const i18n = {
|
|
@@ -21,6 +22,7 @@ export default {
|
|
|
21
22
|
name: 'GlDuoChatLoader',
|
|
22
23
|
components: {
|
|
23
24
|
GlSprintf,
|
|
25
|
+
GlAnimatedLoaderIcon,
|
|
24
26
|
},
|
|
25
27
|
i18n,
|
|
26
28
|
props: {
|
|
@@ -70,12 +72,8 @@ export default {
|
|
|
70
72
|
</script>
|
|
71
73
|
|
|
72
74
|
<template>
|
|
73
|
-
<div class="duo-chat-loader gl-mt-5 gl-flex gl-items-center">
|
|
74
|
-
<
|
|
75
|
-
<div class="duo-chat-loader__dot duo-chat-loader__dot--1"></div>
|
|
76
|
-
<div class="duo-chat-loader__dot duo-chat-loader__dot--2"></div>
|
|
77
|
-
<div class="duo-chat-loader__dot duo-chat-loader__dot--3"></div>
|
|
78
|
-
</div>
|
|
75
|
+
<div class="duo-chat-loader gl-mt-5 gl-flex gl-items-center gl-gap-3">
|
|
76
|
+
<gl-animated-loader-icon :is-on="true" />
|
|
79
77
|
<div>
|
|
80
78
|
<gl-sprintf :message="$options.i18n.LOADER_LOADING_MESSAGE">
|
|
81
79
|
<template #tool>
|
package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.vue
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import throttle from 'lodash/throttle';
|
|
3
3
|
import GlIcon from '../../../../../base/icon/icon.vue';
|
|
4
|
-
import
|
|
4
|
+
import GlAnimatedLoaderIcon from '../../../../../base/animated_icon/animated_loader_icon.vue';
|
|
5
5
|
import { GlTooltipDirective } from '../../../../../../directives/tooltip';
|
|
6
6
|
import GlDuoChatContextItemSelections from '../duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.vue';
|
|
7
7
|
import GlDuoUserFeedback from '../../../user_feedback/user_feedback.vue';
|
|
@@ -59,7 +59,7 @@ export default {
|
|
|
59
59
|
GlFormGroup,
|
|
60
60
|
GlFormTextarea,
|
|
61
61
|
GlIcon,
|
|
62
|
-
|
|
62
|
+
GlAnimatedLoaderIcon,
|
|
63
63
|
},
|
|
64
64
|
directives: {
|
|
65
65
|
SafeHtml,
|
|
@@ -315,7 +315,7 @@ export default {
|
|
|
315
315
|
<documentation-sources v-if="sources" :sources="sources" />
|
|
316
316
|
|
|
317
317
|
<div class="duo-chat-message-feedback gl-mt-4 gl-flex gl-items-end">
|
|
318
|
-
<gl-
|
|
318
|
+
<gl-animated-loader-icon v-if="isChunkAndNotCancelled" :is-on="true" />
|
|
319
319
|
<gl-duo-user-feedback
|
|
320
320
|
v-if="isNotChunkOrCancelled"
|
|
321
321
|
:feedback-received="hasFeedback"
|
package/src/index.js
CHANGED
|
@@ -23,6 +23,7 @@ export { default as GlLink, default as GlDeprecatedLink } from './components/bas
|
|
|
23
23
|
export { default as GlIcon } from './components/base/icon/icon.vue';
|
|
24
24
|
export { default as GlAnimatedChevronRightDownIcon } from './components/base/animated_icon/animated_chevron_right_down_icon.vue';
|
|
25
25
|
export { default as GlAnimatedDuoChatIcon } from './components/base/animated_icon/animated_duo_chat_icon.vue';
|
|
26
|
+
export { default as GlAnimatedLoaderIcon } from './components/base/animated_icon/animated_loader_icon.vue';
|
|
26
27
|
export { default as GlAnimatedNotificationIcon } from './components/base/animated_icon/animated_notifications_icon.vue';
|
|
27
28
|
export { default as GlAnimatedSidebarIcon } from './components/base/animated_icon/animated_sidebar_icon.vue';
|
|
28
29
|
export { default as GlAnimatedSmileIcon } from './components/base/animated_icon/animated_smile_icon.vue';
|