@gitlab/ui 92.3.1 → 92.5.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 +20 -0
- package/dist/components/base/animated_icon/animated_chevron_right_down_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_duo_chat_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_notifications_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_sidebar_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_smile_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_sort_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_star_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_todo_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_upload_icon.js +45 -0
- package/dist/components/base/animated_icon/base_animated_icon.js +64 -0
- package/dist/components/experimental/duo/workflow/components/duo_workflow_panel/duo_workflow_panel.js +9 -11
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/tailwind.css.map +1 -1
- package/dist/utility_classes.css +1 -1
- package/dist/utility_classes.css.map +1 -1
- package/package.json +5 -5
- package/src/components/base/animated_icon/animated_chevron_right_down_icon.vue +28 -0
- package/src/components/base/animated_icon/animated_duo_chat_icon.vue +39 -0
- package/src/components/base/animated_icon/animated_icon.md +4 -0
- package/src/components/base/animated_icon/animated_icon.scss +456 -0
- package/src/components/base/animated_icon/animated_notifications_icon.vue +49 -0
- package/src/components/base/animated_icon/animated_sidebar_icon.vue +35 -0
- package/src/components/base/animated_icon/animated_smile_icon.vue +37 -0
- package/src/components/base/animated_icon/animated_sort_icon.vue +84 -0
- package/src/components/base/animated_icon/animated_star_icon.vue +27 -0
- package/src/components/base/animated_icon/animated_todo_icon.vue +49 -0
- package/src/components/base/animated_icon/animated_upload_icon.vue +41 -0
- package/src/components/base/animated_icon/base_animated_icon.vue +39 -0
- package/src/components/experimental/duo/workflow/components/duo_workflow_panel/duo_workflow_panel.md +7 -3
- package/src/components/experimental/duo/workflow/components/duo_workflow_panel/duo_workflow_panel.vue +9 -9
- package/src/scss/components.scss +1 -0
- package/src/scss/utilities.scss +18 -0
- package/src/scss/utility-mixins/animation.scss +9 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import GlBaseAnimatedIcon from './base_animated_icon.vue';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
name: 'GlAnimatedSortIcon',
|
|
6
|
+
extends: GlBaseAnimatedIcon,
|
|
7
|
+
};
|
|
8
|
+
</script>
|
|
9
|
+
<template>
|
|
10
|
+
<svg
|
|
11
|
+
:class="iconStateClass"
|
|
12
|
+
class="gl-animated-sort-icon"
|
|
13
|
+
:aria-label="ariaLabel"
|
|
14
|
+
width="16"
|
|
15
|
+
height="16"
|
|
16
|
+
viewBox="0 0 16 16"
|
|
17
|
+
fill="none"
|
|
18
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
19
|
+
>
|
|
20
|
+
<path
|
|
21
|
+
class="gl-animated-sort-arrow-left"
|
|
22
|
+
d="M3 1.06065L0.75 3.31065"
|
|
23
|
+
stroke="currentColor"
|
|
24
|
+
stroke-width="1.5"
|
|
25
|
+
stroke-linecap="round"
|
|
26
|
+
/>
|
|
27
|
+
<path
|
|
28
|
+
class="gl-animated-sort-arrow-right"
|
|
29
|
+
d="M5.25 3.31065L3 1.06065"
|
|
30
|
+
stroke="currentColor"
|
|
31
|
+
stroke-width="1.5"
|
|
32
|
+
stroke-linecap="round"
|
|
33
|
+
/>
|
|
34
|
+
<path
|
|
35
|
+
class="gl-animated-sort-long-line-on"
|
|
36
|
+
d="M8.75 2.75L15.25 2.75"
|
|
37
|
+
stroke="currentColor"
|
|
38
|
+
stroke-width="1.5"
|
|
39
|
+
stroke-linecap="round"
|
|
40
|
+
/>
|
|
41
|
+
<path
|
|
42
|
+
class="gl-animated-sort-medium-line-on"
|
|
43
|
+
d="M8.75 6L13.25 6"
|
|
44
|
+
stroke="currentColor"
|
|
45
|
+
stroke-width="1.5"
|
|
46
|
+
stroke-linecap="round"
|
|
47
|
+
/>
|
|
48
|
+
<path
|
|
49
|
+
class="gl-animated-sort-short-line-on"
|
|
50
|
+
d="M8.75 9.25L10.25 9.25"
|
|
51
|
+
stroke="currentColor"
|
|
52
|
+
stroke-width="1.5"
|
|
53
|
+
stroke-linecap="round"
|
|
54
|
+
/>
|
|
55
|
+
<path
|
|
56
|
+
class="gl-animated-sort-long-line-off"
|
|
57
|
+
d="M8.75 13.25L15.25 13.25"
|
|
58
|
+
stroke="currentColor"
|
|
59
|
+
stroke-width="1.5"
|
|
60
|
+
stroke-linecap="round"
|
|
61
|
+
/>
|
|
62
|
+
<path
|
|
63
|
+
class="gl-animated-sort-medium-line-off"
|
|
64
|
+
d="M8.75 10L13.25 10"
|
|
65
|
+
stroke="currentColor"
|
|
66
|
+
stroke-width="1.5"
|
|
67
|
+
stroke-linecap="round"
|
|
68
|
+
/>
|
|
69
|
+
<path
|
|
70
|
+
class="gl-animated-sort-short-line-off"
|
|
71
|
+
d="M8.75 6.75L10.25 6.75"
|
|
72
|
+
stroke="currentColor"
|
|
73
|
+
stroke-width="1.5"
|
|
74
|
+
stroke-linecap="round"
|
|
75
|
+
/>
|
|
76
|
+
<path
|
|
77
|
+
class="gl-animated-sort-line"
|
|
78
|
+
d="M3 13.2506L3 4.0006"
|
|
79
|
+
stroke="currentColor"
|
|
80
|
+
stroke-width="1.5"
|
|
81
|
+
stroke-linecap="round"
|
|
82
|
+
/>
|
|
83
|
+
</svg>
|
|
84
|
+
</template>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import GlBaseAnimatedIcon from './base_animated_icon.vue';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
name: 'GlAnimatedStarIcon',
|
|
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
|
+
<path
|
|
20
|
+
class="gl-animated-star-shape"
|
|
21
|
+
d="M6.56177 5.79259L8 2.33467L9.43822 5.79259C9.58223 6.13883 9.90785 6.37539 10.2816 6.40536L14.0147 6.70464L11.1705 9.14103C10.8857 9.38498 10.7613 9.76775 10.8484 10.1325L11.7173 13.7754L8.52125 11.8232C8.20124 11.6278 7.79876 11.6278 7.47875 11.8232L4.28269 13.7754L5.15165 10.1325C5.23865 9.76776 5.11428 9.38498 4.82949 9.14103L1.98526 6.70464L5.71837 6.40536C6.09216 6.37539 6.41777 6.13882 6.56177 5.79259Z"
|
|
22
|
+
fill="transparent"
|
|
23
|
+
stroke="currentColor"
|
|
24
|
+
stroke-width="1.5"
|
|
25
|
+
/>
|
|
26
|
+
</svg>
|
|
27
|
+
</template>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import GlBaseAnimatedIcon from './base_animated_icon.vue';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
name: 'GlAnimatedTodoIcon',
|
|
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
|
+
<path
|
|
20
|
+
class="gl-animated-todo-box"
|
|
21
|
+
d="M14.25 6.75L14.25 13C14.25 13.6904 13.6904 14.25 13 14.25L3 14.25C2.30964 14.25 1.75 13.6904 1.75 13L1.75 3C1.75 2.30964 2.30964 1.75 3 1.75L13.25 1.75"
|
|
22
|
+
stroke="currentColor"
|
|
23
|
+
stroke-width="1.5"
|
|
24
|
+
stroke-linecap="round"
|
|
25
|
+
/>
|
|
26
|
+
<path
|
|
27
|
+
class="gl-animated-todo-plus-line"
|
|
28
|
+
d="M10.75 3L15.25 3"
|
|
29
|
+
stroke="currentColor"
|
|
30
|
+
stroke-width="1.5"
|
|
31
|
+
stroke-linecap="round"
|
|
32
|
+
/>
|
|
33
|
+
<path
|
|
34
|
+
class="gl-animated-todo-plus-line"
|
|
35
|
+
d="M13 5.25L13 0.75"
|
|
36
|
+
stroke="currentColor"
|
|
37
|
+
stroke-width="1.5"
|
|
38
|
+
stroke-linecap="round"
|
|
39
|
+
/>
|
|
40
|
+
<path
|
|
41
|
+
class="gl-animated-todo-check"
|
|
42
|
+
d="M6.75 7.76299L9.15312 10.2469L15.25 4.15"
|
|
43
|
+
stroke="currentColor"
|
|
44
|
+
stroke-width="1.5"
|
|
45
|
+
stroke-linecap="round"
|
|
46
|
+
stroke-linejoin="round"
|
|
47
|
+
/>
|
|
48
|
+
</svg>
|
|
49
|
+
</template>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import GlBaseAnimatedIcon from './base_animated_icon.vue';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
name: 'GlAnimatedUploadIcon',
|
|
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
|
+
<path
|
|
20
|
+
class="gl-animated-upload-base"
|
|
21
|
+
d="M14.25 9.75V13C14.25 13.6904 13.6904 14.25 13 14.25L3 14.25C2.30964 14.25 1.75 13.6904 1.75 13L1.75 9.75"
|
|
22
|
+
stroke="currentColor"
|
|
23
|
+
stroke-width="1.5"
|
|
24
|
+
stroke-linecap="round"
|
|
25
|
+
/>
|
|
26
|
+
<path
|
|
27
|
+
class="gl-animated-upload-line"
|
|
28
|
+
d="M8 11.25V2.5"
|
|
29
|
+
stroke="currentColor"
|
|
30
|
+
stroke-width="1.5"
|
|
31
|
+
stroke-linecap="round"
|
|
32
|
+
/>
|
|
33
|
+
<path
|
|
34
|
+
class="gl-animated-upload-arrow"
|
|
35
|
+
d="M11.25 5.31066L8 2.06066L4.75 5.31066"
|
|
36
|
+
stroke="currentColor"
|
|
37
|
+
stroke-width="1.5"
|
|
38
|
+
stroke-linecap="round"
|
|
39
|
+
/>
|
|
40
|
+
</svg>
|
|
41
|
+
</template>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
export default {
|
|
3
|
+
name: 'GlBaseAnimatedIcon',
|
|
4
|
+
props: {
|
|
5
|
+
/**
|
|
6
|
+
* Accessible icon name used by screen readers and other assistive technologies.
|
|
7
|
+
* Provide when icon is not merely decorative
|
|
8
|
+
*/
|
|
9
|
+
ariaLabel: {
|
|
10
|
+
type: String,
|
|
11
|
+
required: false,
|
|
12
|
+
default: undefined,
|
|
13
|
+
},
|
|
14
|
+
isOn: {
|
|
15
|
+
type: Boolean,
|
|
16
|
+
required: false,
|
|
17
|
+
default: false,
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
computed: {
|
|
21
|
+
iconStateClass() {
|
|
22
|
+
return this.isOn
|
|
23
|
+
? 'gl-animated-icon gl-animated-icon-on'
|
|
24
|
+
: 'gl-animated-icon gl-animated-icon-off';
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
</script>
|
|
29
|
+
<template>
|
|
30
|
+
<svg
|
|
31
|
+
:class="iconStateClass"
|
|
32
|
+
:aria-label="ariaLabel"
|
|
33
|
+
width="16"
|
|
34
|
+
height="16"
|
|
35
|
+
viewBox="0 0 16 16"
|
|
36
|
+
fill="none"
|
|
37
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
38
|
+
/>
|
|
39
|
+
</template>
|
package/src/components/experimental/duo/workflow/components/duo_workflow_panel/duo_workflow_panel.md
CHANGED
|
@@ -5,13 +5,17 @@ and WebUI.
|
|
|
5
5
|
|
|
6
6
|
To use this component, import it and fill out the available slots:
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
- `title`: the main title for the panel
|
|
9
|
+
- `subtitle`: the small text adjacent to the title
|
|
10
|
+
- `content`: the content of the panel, hidden away when the collapse is toggled
|
|
11
11
|
|
|
12
12
|
Also provide an icon via the `headerIcon` prop. This icon is displayed adjacent
|
|
13
13
|
to the title.
|
|
14
14
|
|
|
15
|
+
You can pass `expanded` prop set to `false` if you need a section to be
|
|
16
|
+
collapsed by default. You can also listen to `toggle-panel` event to know
|
|
17
|
+
when the expanded state changed.
|
|
18
|
+
|
|
15
19
|
Translations for the title of the single button can be provided either via the
|
|
16
20
|
props `expandButtonTitle` and `collapseTitleButton` or via the translation
|
|
17
21
|
configuration:
|
|
@@ -34,9 +34,14 @@ export default {
|
|
|
34
34
|
required: false,
|
|
35
35
|
default: translate('GlDuoWorkflowPanel.collapseButtonTitle', 'Collapse'),
|
|
36
36
|
},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Whether the panel is expanded or not
|
|
39
|
+
*/
|
|
40
|
+
expanded: {
|
|
41
|
+
type: Boolean,
|
|
42
|
+
required: false,
|
|
43
|
+
default: true,
|
|
44
|
+
},
|
|
40
45
|
},
|
|
41
46
|
computed: {
|
|
42
47
|
buttonIcon() {
|
|
@@ -46,11 +51,6 @@ export default {
|
|
|
46
51
|
return this.expanded ? this.collapsePanelButtonTitle : this.expandPanelButtonTitle;
|
|
47
52
|
},
|
|
48
53
|
},
|
|
49
|
-
methods: {
|
|
50
|
-
toggleExpanded() {
|
|
51
|
-
this.expanded = !this.expanded;
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
54
|
};
|
|
55
55
|
</script>
|
|
56
56
|
<template>
|
|
@@ -74,7 +74,7 @@ export default {
|
|
|
74
74
|
:icon="buttonIcon"
|
|
75
75
|
:title="buttonTitle"
|
|
76
76
|
:aria-label="buttonTitle"
|
|
77
|
-
@click="
|
|
77
|
+
@click="$emit('toggle-panel')"
|
|
78
78
|
/>
|
|
79
79
|
</div>
|
|
80
80
|
<gl-collapse :visible="expanded">
|
package/src/scss/components.scss
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
@import '../components/base/avatar_labeled/avatar_labeled';
|
|
20
20
|
@import '../components/base/avatar_link/avatar_link';
|
|
21
21
|
@import '../components/base/avatars_inline/avatars_inline';
|
|
22
|
+
@import '../components/base/animated_icon/animated_icon';
|
|
22
23
|
@import '../components/base/badge/badge';
|
|
23
24
|
@import '../components/base/breadcrumb/breadcrumb';
|
|
24
25
|
@import '../components/base/banner/banner';
|
package/src/scss/utilities.scss
CHANGED
|
@@ -76,12 +76,30 @@ $gl-animate-skeleton-loader-max-width: 64 * $grid-size;
|
|
|
76
76
|
.gl-prefers-reduced-motion-transition {
|
|
77
77
|
@media (prefers-reduced-motion) {
|
|
78
78
|
transition-duration: .01ms !important;
|
|
79
|
+
transition-delay: 0ms !important;
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
|
|
82
83
|
.gl-prefers-reduced-motion-transition\! {
|
|
83
84
|
@media (prefers-reduced-motion) {
|
|
84
85
|
transition-duration: .01ms !important;
|
|
86
|
+
transition-delay: 0ms !important;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.gl-prefers-reduced-motion-animation {
|
|
91
|
+
@media (prefers-reduced-motion) {
|
|
92
|
+
animation-duration: .01ms !important;
|
|
93
|
+
animation-iteration-count: 1 !important;
|
|
94
|
+
animation-delay: 0ms !important;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.gl-prefers-reduced-motion-animation\! {
|
|
99
|
+
@media (prefers-reduced-motion) {
|
|
100
|
+
animation-duration: .01ms !important;
|
|
101
|
+
animation-iteration-count: 1 !important;
|
|
102
|
+
animation-delay: 0ms !important;
|
|
85
103
|
}
|
|
86
104
|
}
|
|
87
105
|
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
@mixin gl-prefers-reduced-motion-transition {
|
|
2
2
|
@media (prefers-reduced-motion) {
|
|
3
3
|
transition-duration: .01ms !important;
|
|
4
|
+
transition-delay: 0ms !important;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@mixin gl-prefers-reduced-motion-animation {
|
|
9
|
+
@media (prefers-reduced-motion) {
|
|
10
|
+
animation-duration: .01ms !important;
|
|
11
|
+
animation-iteration-count: 1 !important;
|
|
12
|
+
animation-delay: 0ms !important;
|
|
4
13
|
}
|
|
5
14
|
}
|
|
6
15
|
|