@gitlab/ui 115.2.0 → 115.4.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/bin/migrate_custom_utils_to_tw.bundled.mjs +1308 -1131
- package/dist/components/dashboards/dashboard_layout/dashboard_layout.js +102 -0
- package/dist/components/dashboards/dashboard_layout/validators.js +9 -0
- package/dist/components/dashboards/dashboard_panel/dashboard_panel.js +9 -1
- package/dist/components/index.js +105 -0
- package/dist/directives/index.js +8 -0
- package/dist/index.js +2 -112
- package/dist/tailwind.css +1 -1
- package/dist/tailwind.css.map +1 -1
- package/package.json +11 -11
- package/src/components/dashboards/dashboard_layout/dashboard_layout.md +3 -0
- package/src/components/dashboards/dashboard_layout/dashboard_layout.vue +132 -0
- package/src/components/dashboards/dashboard_layout/validators.js +8 -0
- package/src/components/dashboards/dashboard_panel/dashboard_panel.vue +11 -4
- package/src/components/index.js +114 -0
- package/src/directives/index.js +8 -0
- package/src/index.js +2 -123
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import GridLayout from './grid_layout/grid_layout.vue';
|
|
3
|
+
import { dashboardConfigValidator } from './validators';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The `DashboardLayout` component provides an easy way to render dashboards using a configuration, aligning with our [Pajamas guidelines](https://design.gitlab.com/patterns/dashboards).
|
|
7
|
+
*
|
|
8
|
+
* Please refer to the [documentation](https://docs.gitlab.com/development/fe_guide/dashboard_layout_framework) for more information.
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
export default {
|
|
12
|
+
name: 'GlDashboardLayout',
|
|
13
|
+
components: {
|
|
14
|
+
GridLayout,
|
|
15
|
+
},
|
|
16
|
+
props: {
|
|
17
|
+
/**
|
|
18
|
+
* The dashboard configuration object.
|
|
19
|
+
*
|
|
20
|
+
* @typedef {Object} Dashboard
|
|
21
|
+
* @property {string} title - The dashboard title to render. Expected if no #title or #header slot is provided.
|
|
22
|
+
* @property {string} description - Optional: The dashboard description to render.
|
|
23
|
+
* @property {Array<Object>} panels - Optional: The dashboard panels. The entire object is passed to the #panel slot.
|
|
24
|
+
* @property {string} panels[].id - Each panel must have a unique ID.
|
|
25
|
+
* @property {string} panels[].title - The panel title to render.
|
|
26
|
+
* @property {Object} panels[].gridAttributes - Layout settings for the panel.
|
|
27
|
+
* @property {number} panels[].gridAttributes.width - Width of the panel in grid units.
|
|
28
|
+
* @property {number} panels[].gridAttributes.height - Height of the panel in grid units.
|
|
29
|
+
* @property {number} panels[].gridAttributes.xPos - X position of the panel in the grid, expressed in grid units, starts from 0.
|
|
30
|
+
* @property {number} panels[].gridAttributes.yPos - Y position of the panel in the grid, expressed in grid units, starts from 0.
|
|
31
|
+
*
|
|
32
|
+
* @type {Dashboard}
|
|
33
|
+
*/
|
|
34
|
+
config: {
|
|
35
|
+
type: Object,
|
|
36
|
+
required: true,
|
|
37
|
+
validator: dashboardConfigValidator,
|
|
38
|
+
},
|
|
39
|
+
/**
|
|
40
|
+
* Set to `false` to enable user-driven modification of the grid layout.
|
|
41
|
+
*/
|
|
42
|
+
isStaticGrid: {
|
|
43
|
+
type: Boolean,
|
|
44
|
+
required: false,
|
|
45
|
+
default: true,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
computed: {
|
|
49
|
+
dashboardHasPanels() {
|
|
50
|
+
return this.config.panels?.length > 0;
|
|
51
|
+
},
|
|
52
|
+
dashboardHasDescription() {
|
|
53
|
+
return this.$scopedSlots.description || Boolean(this.config.description);
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
methods: {
|
|
57
|
+
emitChanges(newConfig) {
|
|
58
|
+
this.$emit('changed', newConfig);
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
</script>
|
|
63
|
+
<template>
|
|
64
|
+
<div>
|
|
65
|
+
<section class="gl-my-4 gl-flex gl-items-center">
|
|
66
|
+
<!-- @slot Used to render custom dashboard header state. Replaces the default rendering. -->
|
|
67
|
+
<slot name="header">
|
|
68
|
+
<div class="gl-flex gl-w-full gl-flex-col">
|
|
69
|
+
<!-- Dashboard title -->
|
|
70
|
+
<div class="gl-flex gl-items-center">
|
|
71
|
+
<!-- @slot Used to render custom dashboard titles. Replaces the default rendering. -->
|
|
72
|
+
<slot name="title">
|
|
73
|
+
<h2 data-testid="title" class="gl-my-0">{{ config.title }}</h2>
|
|
74
|
+
</slot>
|
|
75
|
+
</div>
|
|
76
|
+
<!-- Dashboard description -->
|
|
77
|
+
<div v-if="dashboardHasDescription" class="gl-mt-3 gl-flex">
|
|
78
|
+
<!-- @slot Used to render custom dashboard descriptions. Replaces the default rendering. -->
|
|
79
|
+
<slot name="description">
|
|
80
|
+
<p data-testid="description" class="gl-mb-0">
|
|
81
|
+
{{ config.description }}
|
|
82
|
+
</p>
|
|
83
|
+
</slot>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
</slot>
|
|
87
|
+
<div v-if="$scopedSlots.actions" data-testid="actions-container">
|
|
88
|
+
<!-- @slot Place dashboard actions inside this slot. -->
|
|
89
|
+
<slot name="actions"></slot>
|
|
90
|
+
</div>
|
|
91
|
+
</section>
|
|
92
|
+
<div class="gl-flex">
|
|
93
|
+
<div class="gl-flex gl-grow gl-flex-col">
|
|
94
|
+
<!-- @slot For dashboard-level alerts. -->
|
|
95
|
+
<slot name="alert"></slot>
|
|
96
|
+
|
|
97
|
+
<!-- Dashboard filters -->
|
|
98
|
+
<section
|
|
99
|
+
v-if="$scopedSlots.filters"
|
|
100
|
+
class="gl-flex gl-flex-row gl-flex-wrap gl-gap-5 gl-pb-3 gl-pt-4"
|
|
101
|
+
data-testid="filters-container"
|
|
102
|
+
>
|
|
103
|
+
<!-- @slot Place dashboard filters inside this slot. -->
|
|
104
|
+
<slot name="filters"></slot>
|
|
105
|
+
</section>
|
|
106
|
+
|
|
107
|
+
<!-- Dashboard grid -->
|
|
108
|
+
<!--
|
|
109
|
+
Gridstack guttering wraps around each panel in the grid.
|
|
110
|
+
We want the grid to be flush against the edge, so we remove the excess margin using -gl-mx-3.
|
|
111
|
+
-->
|
|
112
|
+
<grid-layout
|
|
113
|
+
v-if="dashboardHasPanels"
|
|
114
|
+
:value="config"
|
|
115
|
+
:is-static="isStaticGrid"
|
|
116
|
+
class="-gl-mx-3"
|
|
117
|
+
@input="emitChanges"
|
|
118
|
+
>
|
|
119
|
+
<template #panel="{ panel }">
|
|
120
|
+
<!-- @slot The contents to render inside each dashboard panel. -->
|
|
121
|
+
<slot name="panel" v-bind="{ panel }"></slot>
|
|
122
|
+
</template>
|
|
123
|
+
</grid-layout>
|
|
124
|
+
|
|
125
|
+
<!-- @slot Shown when a dashboard has no panels. -->
|
|
126
|
+
<slot v-else name="empty-state"></slot>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
<!-- @slot Optional: The dashboard footer content. -->
|
|
130
|
+
<slot name="footer"></slot>
|
|
131
|
+
</div>
|
|
132
|
+
</template>
|
|
@@ -26,6 +26,11 @@ export default {
|
|
|
26
26
|
required: false,
|
|
27
27
|
default: '',
|
|
28
28
|
},
|
|
29
|
+
bodyContentClass: {
|
|
30
|
+
type: String,
|
|
31
|
+
required: false,
|
|
32
|
+
default: '',
|
|
33
|
+
},
|
|
29
34
|
borderColorClass: {
|
|
30
35
|
type: String,
|
|
31
36
|
required: false,
|
|
@@ -95,6 +100,11 @@ export default {
|
|
|
95
100
|
containerClasses() {
|
|
96
101
|
return `${this.containerClass} ${this.borderClass}`;
|
|
97
102
|
},
|
|
103
|
+
bodyClasses() {
|
|
104
|
+
return this.loading
|
|
105
|
+
? 'gl-flex gl-flex-wrap gl-content-center gl-text-center'
|
|
106
|
+
: `gl-grow gl-overflow-y-auto gl-overflow-x-hidden ${this.bodyContentClass}`;
|
|
107
|
+
},
|
|
98
108
|
hasTitleIcon() {
|
|
99
109
|
return Boolean(this.titleIcon);
|
|
100
110
|
},
|
|
@@ -188,10 +198,7 @@ export default {
|
|
|
188
198
|
</template>
|
|
189
199
|
</gl-disclosure-dropdown>
|
|
190
200
|
</div>
|
|
191
|
-
<div
|
|
192
|
-
class="gl-grow gl-overflow-y-auto gl-overflow-x-hidden"
|
|
193
|
-
:class="{ 'gl-flex gl-flex-wrap gl-content-center gl-text-center': loading }"
|
|
194
|
-
>
|
|
201
|
+
<div :class="bodyClasses">
|
|
195
202
|
<template v-if="loading">
|
|
196
203
|
<gl-loading-icon size="lg" class="gl-min-h-8 gl-w-full" />
|
|
197
204
|
<div
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// Base components
|
|
2
|
+
export { default as GlTableLite } from './base/table_lite/table_lite.vue';
|
|
3
|
+
export { default as GlDropdownForm } from './base/dropdown/dropdown_form.vue';
|
|
4
|
+
export { default as GlKeysetPagination } from './base/keyset_pagination/keyset_pagination.vue';
|
|
5
|
+
export { default as GlInputGroupText } from './base/form/input_group_text/input_group_text.vue';
|
|
6
|
+
export { default as GlFormCombobox } from './base/form/form_combobox/form_combobox.vue';
|
|
7
|
+
export { default as GlTokenSelector } from './base/token_selector/token_selector.vue';
|
|
8
|
+
export { default as GlNav } from './base/nav/nav.vue';
|
|
9
|
+
export { default as GlNavItem } from './base/nav/nav_item.vue';
|
|
10
|
+
export { default as GlFormCheckboxTree } from './base/form/form_checkbox_tree/form_checkbox_tree.vue';
|
|
11
|
+
export { default as GlMarkdown } from './base/markdown/markdown.vue';
|
|
12
|
+
export { default as GlIntersectionObserver } from './utilities/intersection_observer/intersection_observer.vue';
|
|
13
|
+
export { default as GlLink, default as GlDeprecatedLink } from './base/link/link.vue';
|
|
14
|
+
export { default as GlIcon } from './base/icon/icon.vue';
|
|
15
|
+
export { default as GlAnimatedChevronRightDownIcon } from './base/animated_icon/animated_chevron_right_down_icon.vue';
|
|
16
|
+
export { default as GlAnimatedChevronLgRightDownIcon } from './base/animated_icon/animated_chevron_lg_right_down_icon.vue';
|
|
17
|
+
export { default as GlAnimatedChevronDownUpIcon } from './base/animated_icon/animated_chevron_down_up_icon.vue';
|
|
18
|
+
export { default as GlAnimatedChevronLgDownUpIcon } from './base/animated_icon/animated_chevron_lg_down_up_icon.vue';
|
|
19
|
+
export { default as GlAnimatedDuoChatIcon } from './base/animated_icon/animated_duo_chat_icon.vue';
|
|
20
|
+
export { default as GlAnimatedLoaderIcon } from './base/animated_icon/animated_loader_icon.vue';
|
|
21
|
+
export { default as GlAnimatedNotificationIcon } from './base/animated_icon/animated_notifications_icon.vue';
|
|
22
|
+
export { default as GlAnimatedSidebarIcon } from './base/animated_icon/animated_sidebar_icon.vue';
|
|
23
|
+
export { default as GlAnimatedSmileIcon } from './base/animated_icon/animated_smile_icon.vue';
|
|
24
|
+
export { default as GlAnimatedSortIcon } from './base/animated_icon/animated_sort_icon.vue';
|
|
25
|
+
export { default as GlAnimatedStarIcon } from './base/animated_icon/animated_star_icon.vue';
|
|
26
|
+
export { default as GlAnimatedTodoIcon } from './base/animated_icon/animated_todo_icon.vue';
|
|
27
|
+
export { default as GlAnimatedUploadIcon } from './base/animated_icon/animated_upload_icon.vue';
|
|
28
|
+
export { default as GlLoadingIcon } from './base/loading_icon/loading_icon.vue';
|
|
29
|
+
export { default as GlModal } from './base/modal/modal.vue';
|
|
30
|
+
export { default as GlPagination } from './base/pagination/pagination.vue';
|
|
31
|
+
export { default as GlPopover } from './base/popover/popover.vue';
|
|
32
|
+
export { default as GlProgressBar } from './base/progress_bar/progress_bar.vue';
|
|
33
|
+
export { default as GlToken } from './base/token/token.vue';
|
|
34
|
+
export { default as GlBadge } from './base/badge/badge.vue';
|
|
35
|
+
export { default as GlBanner } from './base/banner/banner.vue';
|
|
36
|
+
export { default as GlButton } from './base/button/button.vue';
|
|
37
|
+
export { default as GlTooltip } from './base/tooltip/tooltip.vue';
|
|
38
|
+
export { default as GlToast } from './base/toast/toast';
|
|
39
|
+
export { default as GlDashboardSkeleton } from './regions/dashboard_skeleton/dashboard_skeleton.vue';
|
|
40
|
+
export { default as GlEmptyState } from './regions/empty_state/empty_state.vue';
|
|
41
|
+
export { default as GlForm } from './base/form/form.vue';
|
|
42
|
+
export { default as GlFormCharacterCount } from './base/form/form_character_count/form_character_count.vue';
|
|
43
|
+
export { default as GlFormDate } from './base/form/form_date/form_date.vue';
|
|
44
|
+
export { default as GlFormInput } from './base/form/form_input/form_input.vue';
|
|
45
|
+
export { default as GlFormInputGroup } from './base/form/form_input_group/form_input_group.vue';
|
|
46
|
+
export { default as GlFormRadio } from './base/form/form_radio/form_radio.vue';
|
|
47
|
+
export { default as GlFormRadioGroup } from './base/form/form_radio_group/form_radio_group.vue';
|
|
48
|
+
export { default as GlFormSelect } from './base/form/form_select/form_select.vue';
|
|
49
|
+
export { default as GlFormTextarea } from './base/form/form_textarea/form_textarea.vue';
|
|
50
|
+
export { default as GlFormGroup } from './base/form/form_group/form_group.vue';
|
|
51
|
+
export { default as GlFormFields } from './base/form/form_fields/form_fields.vue';
|
|
52
|
+
export { default as GlSearchBoxByType } from './base/search_box_by_type/search_box_by_type.vue';
|
|
53
|
+
export { default as GlSearchBoxByClick } from './base/search_box_by_click/search_box_by_click.vue';
|
|
54
|
+
export { default as GlDropdownItem } from './base/dropdown/dropdown_item.vue';
|
|
55
|
+
export { default as GlDropdownSectionHeader } from './base/dropdown/dropdown_section_header.vue';
|
|
56
|
+
export { default as GlDropdownDivider } from './base/dropdown/dropdown_divider.vue';
|
|
57
|
+
export { default as GlDropdownText } from './base/dropdown/dropdown_text.vue';
|
|
58
|
+
export { default as GlDropdown } from './base/dropdown/dropdown.vue';
|
|
59
|
+
// new components aiming to replace GlDropdown - start
|
|
60
|
+
export { default as GlCollapsibleListbox } from './base/new_dropdowns/listbox/listbox.vue';
|
|
61
|
+
export { default as GlListboxItem } from './base/new_dropdowns/listbox/listbox_item.vue';
|
|
62
|
+
export { default as GlDisclosureDropdown } from './base/new_dropdowns/disclosure/disclosure_dropdown.vue';
|
|
63
|
+
export { default as GlDisclosureDropdownItem } from './base/new_dropdowns/disclosure/disclosure_dropdown_item.vue';
|
|
64
|
+
export { default as GlDisclosureDropdownGroup } from './base/new_dropdowns/disclosure/disclosure_dropdown_group.vue';
|
|
65
|
+
// new components aiming to replace GlDropdown - end
|
|
66
|
+
export { default as GlPath } from './base/path/path.vue';
|
|
67
|
+
export { default as GlTable } from './base/table/table.vue';
|
|
68
|
+
export { default as GlBreadcrumb } from './base/breadcrumb/breadcrumb.vue';
|
|
69
|
+
export { default as GlScrollableTabs } from './base/tabs/tabs/scrollable_tabs.vue';
|
|
70
|
+
export { default as GlTabs } from './base/tabs/tabs/tabs.vue';
|
|
71
|
+
export { default as GlTab } from './base/tabs/tab/tab.vue';
|
|
72
|
+
export { default as GlButtonGroup } from './base/button_group/button_group.vue';
|
|
73
|
+
export { default as GlFormCheckbox } from './base/form/form_checkbox/form_checkbox.vue';
|
|
74
|
+
export { default as GlFormCheckboxGroup } from './base/form/form_checkbox/form_checkbox_group.vue';
|
|
75
|
+
export { default as GlAvatar } from './base/avatar/avatar.vue';
|
|
76
|
+
export { default as GlAvatarsInline } from './base/avatars_inline/avatars_inline.vue';
|
|
77
|
+
export { default as GlAvatarLabeled } from './base/avatar_labeled/avatar_labeled.vue';
|
|
78
|
+
export { default as GlAvatarLink } from './base/avatar_link/avatar_link.vue';
|
|
79
|
+
export { default as GlLabel } from './base/label/label.vue';
|
|
80
|
+
export { default as GlDatepicker } from './base/datepicker/datepicker.vue';
|
|
81
|
+
export { default as GlDaterangePicker } from './base/daterange_picker/daterange_picker.vue';
|
|
82
|
+
export { default as GlToggle } from './base/toggle/toggle.vue';
|
|
83
|
+
export { default as GlSorting } from './base/sorting/sorting.vue';
|
|
84
|
+
export { default as GlInfiniteScroll } from './base/infinite_scroll/infinite_scroll.vue';
|
|
85
|
+
export { default as GlAlert } from './base/alert/alert.vue';
|
|
86
|
+
export { default as GlSegmentedControl } from './base/segmented_control/segmented_control.vue';
|
|
87
|
+
export { default as GlSkeletonLoader } from './base/skeleton_loader/skeleton_loader.vue';
|
|
88
|
+
export { default as GlDrawer } from './base/drawer/drawer.vue';
|
|
89
|
+
export { default as GlCard } from './base/card/card.vue';
|
|
90
|
+
export { default as GlFilteredSearchSuggestion } from './base/filtered_search/filtered_search_suggestion.vue';
|
|
91
|
+
export { default as GlFilteredSearchSuggestionList } from './base/filtered_search/filtered_search_suggestion_list.vue';
|
|
92
|
+
export { default as GlFilteredSearchTerm } from './base/filtered_search/filtered_search_term.vue';
|
|
93
|
+
export { default as GlFilteredSearchToken } from './base/filtered_search/filtered_search_token.vue';
|
|
94
|
+
export { default as GlFilteredSearchTokenSegment } from './base/filtered_search/filtered_search_token_segment.vue';
|
|
95
|
+
export { default as GlFilteredSearch } from './base/filtered_search/filtered_search.vue';
|
|
96
|
+
export { default as GlBroadcastMessage } from './base/broadcast_message/broadcast_message.vue';
|
|
97
|
+
export { default as GlCollapse } from './base/collapse/collapse.vue';
|
|
98
|
+
export { default as GlAccordion } from './base/accordion/accordion.vue';
|
|
99
|
+
export { default as GlAccordionItem } from './base/accordion/accordion_item.vue';
|
|
100
|
+
|
|
101
|
+
// Dashboards
|
|
102
|
+
export { default as GlDashboardLayout } from './dashboards/dashboard_layout/dashboard_layout.vue';
|
|
103
|
+
export { default as GlDashboardPanel } from './dashboards/dashboard_panel/dashboard_panel.vue';
|
|
104
|
+
|
|
105
|
+
// Experimental
|
|
106
|
+
export { default as GlExperimentBadge } from './experimental/experiment_badge/experiment_badge.vue';
|
|
107
|
+
|
|
108
|
+
// Utilities
|
|
109
|
+
export { default as GlAnimatedNumber } from './utilities/animated_number/animated_number.vue';
|
|
110
|
+
export { default as GlFriendlyWrap } from './utilities/friendly_wrap/friendly_wrap.vue';
|
|
111
|
+
export { default as GlIntersperse } from './utilities/intersperse/intersperse.vue';
|
|
112
|
+
export { default as GlSprintf } from './utilities/sprintf/sprintf.vue';
|
|
113
|
+
export { default as GlTruncate } from './utilities/truncate/truncate.vue';
|
|
114
|
+
export { default as GlTruncateText } from './utilities/truncate_text/truncate_text.vue';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { GlModalDirective } from './modal';
|
|
2
|
+
export { GlTooltipDirective } from './tooltip/tooltip';
|
|
3
|
+
export { setGlTooltipDefaultContainer } from './tooltip/container';
|
|
4
|
+
export { GlResizeObserverDirective } from './resize_observer/resize_observer';
|
|
5
|
+
export { SafeLinkDirective as GlSafeLinkDirective } from './safe_link/safe_link';
|
|
6
|
+
export { SafeHtmlDirective as GlSafeHtmlDirective } from './safe_html/safe_html';
|
|
7
|
+
export { OutsideDirective as GlOutsideDirective } from './outside/outside';
|
|
8
|
+
export { HoverLoadDirective as GlHoverLoadDirective } from './hover_load/hover_load';
|
package/src/index.js
CHANGED
|
@@ -3,126 +3,5 @@
|
|
|
3
3
|
// The line above serves as a token for rollup-plugin-replace to inject styles in production
|
|
4
4
|
// builds. We do this to avoid having the stylesheet included multiple times in Storybook.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
export { default as GlDropdownForm } from './components/base/dropdown/dropdown_form.vue';
|
|
9
|
-
export { default as GlKeysetPagination } from './components/base/keyset_pagination/keyset_pagination.vue';
|
|
10
|
-
export { default as GlInputGroupText } from './components/base/form/input_group_text/input_group_text.vue';
|
|
11
|
-
export { default as GlFormCombobox } from './components/base/form/form_combobox/form_combobox.vue';
|
|
12
|
-
export { default as GlTokenSelector } from './components/base/token_selector/token_selector.vue';
|
|
13
|
-
export { default as GlNav } from './components/base/nav/nav.vue';
|
|
14
|
-
export { default as GlNavItem } from './components/base/nav/nav_item.vue';
|
|
15
|
-
export { default as GlFormCheckboxTree } from './components/base/form/form_checkbox_tree/form_checkbox_tree.vue';
|
|
16
|
-
export { default as GlMarkdown } from './components/base/markdown/markdown.vue';
|
|
17
|
-
export { default as GlIntersectionObserver } from './components/utilities/intersection_observer/intersection_observer.vue';
|
|
18
|
-
export { default as GlLink, default as GlDeprecatedLink } from './components/base/link/link.vue';
|
|
19
|
-
export { default as GlIcon } from './components/base/icon/icon.vue';
|
|
20
|
-
export { default as GlAnimatedChevronRightDownIcon } from './components/base/animated_icon/animated_chevron_right_down_icon.vue';
|
|
21
|
-
export { default as GlAnimatedChevronLgRightDownIcon } from './components/base/animated_icon/animated_chevron_lg_right_down_icon.vue';
|
|
22
|
-
export { default as GlAnimatedChevronDownUpIcon } from './components/base/animated_icon/animated_chevron_down_up_icon.vue';
|
|
23
|
-
export { default as GlAnimatedChevronLgDownUpIcon } from './components/base/animated_icon/animated_chevron_lg_down_up_icon.vue';
|
|
24
|
-
export { default as GlAnimatedDuoChatIcon } from './components/base/animated_icon/animated_duo_chat_icon.vue';
|
|
25
|
-
export { default as GlAnimatedLoaderIcon } from './components/base/animated_icon/animated_loader_icon.vue';
|
|
26
|
-
export { default as GlAnimatedNotificationIcon } from './components/base/animated_icon/animated_notifications_icon.vue';
|
|
27
|
-
export { default as GlAnimatedSidebarIcon } from './components/base/animated_icon/animated_sidebar_icon.vue';
|
|
28
|
-
export { default as GlAnimatedSmileIcon } from './components/base/animated_icon/animated_smile_icon.vue';
|
|
29
|
-
export { default as GlAnimatedSortIcon } from './components/base/animated_icon/animated_sort_icon.vue';
|
|
30
|
-
export { default as GlAnimatedStarIcon } from './components/base/animated_icon/animated_star_icon.vue';
|
|
31
|
-
export { default as GlAnimatedTodoIcon } from './components/base/animated_icon/animated_todo_icon.vue';
|
|
32
|
-
export { default as GlAnimatedUploadIcon } from './components/base/animated_icon/animated_upload_icon.vue';
|
|
33
|
-
export { default as GlLoadingIcon } from './components/base/loading_icon/loading_icon.vue';
|
|
34
|
-
export { default as GlModal } from './components/base/modal/modal.vue';
|
|
35
|
-
export { default as GlPagination } from './components/base/pagination/pagination.vue';
|
|
36
|
-
export { default as GlPopover } from './components/base/popover/popover.vue';
|
|
37
|
-
export { default as GlProgressBar } from './components/base/progress_bar/progress_bar.vue';
|
|
38
|
-
export { default as GlToken } from './components/base/token/token.vue';
|
|
39
|
-
export { default as GlBadge } from './components/base/badge/badge.vue';
|
|
40
|
-
export { default as GlBanner } from './components/base/banner/banner.vue';
|
|
41
|
-
export { default as GlButton } from './components/base/button/button.vue';
|
|
42
|
-
export { default as GlTooltip } from './components/base/tooltip/tooltip.vue';
|
|
43
|
-
export { default as GlToast } from './components/base/toast/toast';
|
|
44
|
-
export { default as GlDashboardSkeleton } from './components/regions/dashboard_skeleton/dashboard_skeleton.vue';
|
|
45
|
-
export { default as GlEmptyState } from './components/regions/empty_state/empty_state.vue';
|
|
46
|
-
export { default as GlForm } from './components/base/form/form.vue';
|
|
47
|
-
export { default as GlFormCharacterCount } from './components/base/form/form_character_count/form_character_count.vue';
|
|
48
|
-
export { default as GlFormDate } from './components/base/form/form_date/form_date.vue';
|
|
49
|
-
export { default as GlFormInput } from './components/base/form/form_input/form_input.vue';
|
|
50
|
-
export { default as GlFormInputGroup } from './components/base/form/form_input_group/form_input_group.vue';
|
|
51
|
-
export { default as GlFormRadio } from './components/base/form/form_radio/form_radio.vue';
|
|
52
|
-
export { default as GlFormRadioGroup } from './components/base/form/form_radio_group/form_radio_group.vue';
|
|
53
|
-
export { default as GlFormSelect } from './components/base/form/form_select/form_select.vue';
|
|
54
|
-
export { default as GlFormTextarea } from './components/base/form/form_textarea/form_textarea.vue';
|
|
55
|
-
export { default as GlFormGroup } from './components/base/form/form_group/form_group.vue';
|
|
56
|
-
export { default as GlFormFields } from './components/base/form/form_fields/form_fields.vue';
|
|
57
|
-
export { default as GlSearchBoxByType } from './components/base/search_box_by_type/search_box_by_type.vue';
|
|
58
|
-
export { default as GlSearchBoxByClick } from './components/base/search_box_by_click/search_box_by_click.vue';
|
|
59
|
-
export { default as GlDropdownItem } from './components/base/dropdown/dropdown_item.vue';
|
|
60
|
-
export { default as GlDropdownSectionHeader } from './components/base/dropdown/dropdown_section_header.vue';
|
|
61
|
-
export { default as GlDropdownDivider } from './components/base/dropdown/dropdown_divider.vue';
|
|
62
|
-
export { default as GlDropdownText } from './components/base/dropdown/dropdown_text.vue';
|
|
63
|
-
export { default as GlDropdown } from './components/base/dropdown/dropdown.vue';
|
|
64
|
-
// new components aiming to replace GlDropdown - start
|
|
65
|
-
export { default as GlCollapsibleListbox } from './components/base/new_dropdowns/listbox/listbox.vue';
|
|
66
|
-
export { default as GlListboxItem } from './components/base/new_dropdowns/listbox/listbox_item.vue';
|
|
67
|
-
export { default as GlDisclosureDropdown } from './components/base/new_dropdowns/disclosure/disclosure_dropdown.vue';
|
|
68
|
-
export { default as GlDisclosureDropdownItem } from './components/base/new_dropdowns/disclosure/disclosure_dropdown_item.vue';
|
|
69
|
-
export { default as GlDisclosureDropdownGroup } from './components/base/new_dropdowns/disclosure/disclosure_dropdown_group.vue';
|
|
70
|
-
// new components aiming to replace GlDropdown - end
|
|
71
|
-
export { default as GlPath } from './components/base/path/path.vue';
|
|
72
|
-
export { default as GlTable } from './components/base/table/table.vue';
|
|
73
|
-
export { default as GlBreadcrumb } from './components/base/breadcrumb/breadcrumb.vue';
|
|
74
|
-
export { default as GlScrollableTabs } from './components/base/tabs/tabs/scrollable_tabs.vue';
|
|
75
|
-
export { default as GlTabs } from './components/base/tabs/tabs/tabs.vue';
|
|
76
|
-
export { default as GlTab } from './components/base/tabs/tab/tab.vue';
|
|
77
|
-
export { default as GlButtonGroup } from './components/base/button_group/button_group.vue';
|
|
78
|
-
export { default as GlFormCheckbox } from './components/base/form/form_checkbox/form_checkbox.vue';
|
|
79
|
-
export { default as GlFormCheckboxGroup } from './components/base/form/form_checkbox/form_checkbox_group.vue';
|
|
80
|
-
export { default as GlAvatar } from './components/base/avatar/avatar.vue';
|
|
81
|
-
export { default as GlAvatarsInline } from './components/base/avatars_inline/avatars_inline.vue';
|
|
82
|
-
export { default as GlAvatarLabeled } from './components/base/avatar_labeled/avatar_labeled.vue';
|
|
83
|
-
export { default as GlAvatarLink } from './components/base/avatar_link/avatar_link.vue';
|
|
84
|
-
export { default as GlLabel } from './components/base/label/label.vue';
|
|
85
|
-
export { default as GlDatepicker } from './components/base/datepicker/datepicker.vue';
|
|
86
|
-
export { default as GlDaterangePicker } from './components/base/daterange_picker/daterange_picker.vue';
|
|
87
|
-
export { default as GlToggle } from './components/base/toggle/toggle.vue';
|
|
88
|
-
export { default as GlSorting } from './components/base/sorting/sorting.vue';
|
|
89
|
-
export { default as GlInfiniteScroll } from './components/base/infinite_scroll/infinite_scroll.vue';
|
|
90
|
-
export { default as GlAlert } from './components/base/alert/alert.vue';
|
|
91
|
-
export { default as GlSegmentedControl } from './components/base/segmented_control/segmented_control.vue';
|
|
92
|
-
export { default as GlSkeletonLoader } from './components/base/skeleton_loader/skeleton_loader.vue';
|
|
93
|
-
export { default as GlDrawer } from './components/base/drawer/drawer.vue';
|
|
94
|
-
export { default as GlCard } from './components/base/card/card.vue';
|
|
95
|
-
export { default as GlFilteredSearchSuggestion } from './components/base/filtered_search/filtered_search_suggestion.vue';
|
|
96
|
-
export { default as GlFilteredSearchSuggestionList } from './components/base/filtered_search/filtered_search_suggestion_list.vue';
|
|
97
|
-
export { default as GlFilteredSearchTerm } from './components/base/filtered_search/filtered_search_term.vue';
|
|
98
|
-
export { default as GlFilteredSearchToken } from './components/base/filtered_search/filtered_search_token.vue';
|
|
99
|
-
export { default as GlFilteredSearchTokenSegment } from './components/base/filtered_search/filtered_search_token_segment.vue';
|
|
100
|
-
export { default as GlFilteredSearch } from './components/base/filtered_search/filtered_search.vue';
|
|
101
|
-
export { default as GlBroadcastMessage } from './components/base/broadcast_message/broadcast_message.vue';
|
|
102
|
-
export { default as GlCollapse } from './components/base/collapse/collapse.vue';
|
|
103
|
-
export { default as GlAccordion } from './components/base/accordion/accordion.vue';
|
|
104
|
-
export { default as GlAccordionItem } from './components/base/accordion/accordion_item.vue';
|
|
105
|
-
|
|
106
|
-
// Dashboards
|
|
107
|
-
export { default as GlDashboardPanel } from './components/dashboards/dashboard_panel/dashboard_panel.vue';
|
|
108
|
-
|
|
109
|
-
// Experimental
|
|
110
|
-
export { default as GlExperimentBadge } from './components/experimental/experiment_badge/experiment_badge.vue';
|
|
111
|
-
|
|
112
|
-
// Utilities
|
|
113
|
-
export { default as GlAnimatedNumber } from './components/utilities/animated_number/animated_number.vue';
|
|
114
|
-
export { default as GlFriendlyWrap } from './components/utilities/friendly_wrap/friendly_wrap.vue';
|
|
115
|
-
export { default as GlIntersperse } from './components/utilities/intersperse/intersperse.vue';
|
|
116
|
-
export { default as GlSprintf } from './components/utilities/sprintf/sprintf.vue';
|
|
117
|
-
export { default as GlTruncate } from './components/utilities/truncate/truncate.vue';
|
|
118
|
-
export { default as GlTruncateText } from './components/utilities/truncate_text/truncate_text.vue';
|
|
119
|
-
|
|
120
|
-
// Directives
|
|
121
|
-
export { GlModalDirective } from './directives/modal';
|
|
122
|
-
export { GlTooltipDirective } from './directives/tooltip/tooltip';
|
|
123
|
-
export { setGlTooltipDefaultContainer } from './directives/tooltip/container';
|
|
124
|
-
export { GlResizeObserverDirective } from './directives/resize_observer/resize_observer';
|
|
125
|
-
export { SafeLinkDirective as GlSafeLinkDirective } from './directives/safe_link/safe_link';
|
|
126
|
-
export { SafeHtmlDirective as GlSafeHtmlDirective } from './directives/safe_html/safe_html';
|
|
127
|
-
export { OutsideDirective as GlOutsideDirective } from './directives/outside/outside';
|
|
128
|
-
export { HoverLoadDirective as GlHoverLoadDirective } from './directives/hover_load/hover_load';
|
|
6
|
+
export * from './components';
|
|
7
|
+
export * from './directives';
|