@gitlab/ui 115.1.0 → 115.3.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.
Files changed (38) hide show
  1. package/bin/migrate_custom_utils_to_tw.bundled.mjs +1308 -1131
  2. package/dist/components/dashboards/dashboard_layout/dashboard_layout.js +102 -0
  3. package/dist/components/dashboards/dashboard_layout/validators.js +9 -0
  4. package/dist/components/index.js +105 -0
  5. package/dist/directives/index.js +8 -0
  6. package/dist/index.js +2 -112
  7. package/dist/tailwind.css +1 -1
  8. package/dist/tailwind.css.map +1 -1
  9. package/dist/tokens/docs/tokens-tailwind-docs.dark.json +1966 -1966
  10. package/dist/tokens/docs/tokens-tailwind-docs.json +1966 -1966
  11. package/dist/tokens/figma/deprecated.tokens.json +220 -220
  12. package/dist/tokens/figma/semantic.tokens.json +3 -3
  13. package/dist/tokens/json/tokens.dark.json +446 -446
  14. package/dist/tokens/json/tokens.json +446 -446
  15. package/dist/tokens/tokens_story.js +1 -1
  16. package/dist/tokens/tokens_table.js +2 -2
  17. package/dist/tokens/tokens_tailwind_table.js +2 -2
  18. package/package.json +10 -10
  19. package/src/components/dashboards/dashboard_layout/dashboard_layout.md +3 -0
  20. package/src/components/dashboards/dashboard_layout/dashboard_layout.vue +132 -0
  21. package/src/components/dashboards/dashboard_layout/validators.js +8 -0
  22. package/src/components/index.js +114 -0
  23. package/src/directives/index.js +8 -0
  24. package/src/index.js +2 -123
  25. package/src/tokens/build/docs/tokens-tailwind-docs.dark.json +1966 -1966
  26. package/src/tokens/build/docs/tokens-tailwind-docs.json +1966 -1966
  27. package/src/tokens/build/figma/deprecated.tokens.json +220 -220
  28. package/src/tokens/build/figma/semantic.tokens.json +3 -3
  29. package/src/tokens/build/json/tokens.dark.json +446 -446
  30. package/src/tokens/build/json/tokens.json +446 -446
  31. package/src/tokens/deprecated/deprecated.color.data_viz.tokens.json +55 -55
  32. package/src/tokens/deprecated/deprecated.color.theme.tokens.json +72 -72
  33. package/src/tokens/deprecated/deprecated.color.tokens.json +80 -80
  34. package/src/tokens/deprecated/deprecated.color.transparency.tokens.json +13 -13
  35. package/src/tokens/semantic/text.tokens.json +3 -3
  36. package/src/tokens/tokens_story.vue +1 -1
  37. package/src/tokens/tokens_table.vue +2 -2
  38. package/src/tokens/tokens_tailwind_table.vue +2 -2
@@ -54,7 +54,7 @@ var script = {
54
54
  const __vue_script__ = script;
55
55
 
56
56
  /* template */
57
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.containerClass},[_c('ul',{staticClass:"gl-m-0 gl-list-none gl-p-0"},_vm._l((_vm.tokens),function(token){return _c('li',{key:token.name,staticClass:"gl-flex gl-flex-wrap gl-items-center gl-justify-between gl-gap-3 gl-p-3",class:_vm.getClasses(token.$value),style:(_vm.getStyle(token.$value))},[_c('code',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],staticClass:"gl-text-inherit",attrs:{"title":token.comment}},[_vm._v("\n "+_vm._s(_vm.getTokenName(token))+"\n ")]),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-items-center gl-gap-3"},[(token.deprecated)?_c('gl-badge',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],attrs:{"title":token.comment,"variant":"danger"}},[_vm._v("\n Deprecated\n ")]):_vm._e(),_vm._v(" "),_c('code',{staticClass:"gl-text-inherit"},[_vm._v(_vm._s(token.$value))]),_vm._v(" "),(_vm.isHex(token.$value))?_c('gl-color-contrast',{attrs:{"foreground":token.$value,"background":_vm.darkBackground}}):_vm._e(),_vm._v(" "),(_vm.isHex(token.$value))?_c('gl-color-contrast',{attrs:{"foreground":token.$value,"background":_vm.lightBackground}}):_vm._e()],1)])}),0)])};
57
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.containerClass},[_c('ul',{staticClass:"gl-m-0 gl-list-none gl-p-0"},_vm._l((_vm.tokens),function(token){return _c('li',{key:token.name,staticClass:"gl-flex gl-flex-wrap gl-items-center gl-justify-between gl-gap-3 gl-p-3",class:_vm.getClasses(token.$value),style:(_vm.getStyle(token.$value))},[_c('code',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],staticClass:"gl-text-inherit",attrs:{"title":token.comment}},[_vm._v("\n "+_vm._s(_vm.getTokenName(token))+"\n ")]),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-items-center gl-gap-3"},[(token.$deprecated)?_c('gl-badge',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],attrs:{"title":token.comment,"variant":"danger"}},[_vm._v("\n Deprecated\n ")]):_vm._e(),_vm._v(" "),_c('code',{staticClass:"gl-text-inherit"},[_vm._v(_vm._s(token.$value))]),_vm._v(" "),(_vm.isHex(token.$value))?_c('gl-color-contrast',{attrs:{"foreground":token.$value,"background":_vm.darkBackground}}):_vm._e(),_vm._v(" "),(_vm.isHex(token.$value))?_c('gl-color-contrast',{attrs:{"foreground":token.$value,"background":_vm.lightBackground}}):_vm._e()],1)])}),0)])};
58
58
  var __vue_staticRenderFns__ = [];
59
59
 
60
60
  /* style */
@@ -104,7 +104,7 @@ var script = {
104
104
  type: token.$type,
105
105
  value: token.$value,
106
106
  valueLabel: this.getValueLabel(token),
107
- deprecated: token.deprecated ? 'deprecated' : '',
107
+ deprecated: token.$deprecated ? 'deprecated' : '',
108
108
  description: token.$description
109
109
  };
110
110
  },
@@ -189,7 +189,7 @@ var script = {
189
189
  if (token.filePath.match('contextual')) {
190
190
  figmaPrefix = '🔒/';
191
191
  }
192
- if (token.deprecated) {
192
+ if (token.$deprecated) {
193
193
  figmaPrefix = '⚠️ DEPRECATED/';
194
194
  }
195
195
  return `${figmaPrefix}${token.path.filter(Boolean).join('-')}`;
@@ -94,7 +94,7 @@ var script = {
94
94
  value: token.$value,
95
95
  valueLabel: this.getValueLabel(token),
96
96
  darkValueLabel: this.getDarkValueLabel(token),
97
- deprecated: token.deprecated ? 'deprecated' : '',
97
+ deprecated: token.$deprecated ? 'deprecated' : '',
98
98
  description: token.$description,
99
99
  className: this.formatContextToClass(token.context),
100
100
  cssValue: token.cssWithValue,
@@ -188,7 +188,7 @@ var script = {
188
188
  if (token.filePath.match('contextual')) {
189
189
  figmaPrefix = '🔒/';
190
190
  }
191
- if (token.deprecated) {
191
+ if (token.$deprecated) {
192
192
  figmaPrefix = '⚠️ DEPRECATED/';
193
193
  }
194
194
  return `${figmaPrefix}${token.path.filter(Boolean).join('-')}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitlab/ui",
3
- "version": "115.1.0",
3
+ "version": "115.3.0",
4
4
  "description": "GitLab UI Components",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -95,15 +95,15 @@
95
95
  "rollup-plugin-vue/@vue/component-compiler/postcss-modules-sync/generic-names/loader-utils": "1.4.2"
96
96
  },
97
97
  "devDependencies": {
98
- "@babel/core": "^7.27.7",
98
+ "@babel/core": "^7.28.0",
99
99
  "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
100
100
  "@babel/plugin-proposal-optional-chaining": "^7.21.0",
101
- "@babel/preset-env": "^7.27.2",
101
+ "@babel/preset-env": "^7.28.0",
102
102
  "@babel/preset-react": "^7.27.1",
103
103
  "@cypress/grep": "^4.1.0",
104
104
  "@gitlab/fonts": "^1.3.0",
105
105
  "@gitlab/svgs": "3.136.0",
106
- "@jest/test-sequencer": "30.0.2",
106
+ "@jest/test-sequencer": "30.0.4",
107
107
  "@rollup/plugin-commonjs": "^21.1.0",
108
108
  "@rollup/plugin-node-resolve": "^10.0.0",
109
109
  "@rollup/plugin-replace": "^3.1.0",
@@ -134,7 +134,7 @@
134
134
  "autoprefixer": "10.4.21",
135
135
  "axe-playwright": "^2.1.0",
136
136
  "babel-loader": "^9.2.1",
137
- "cypress": "14.5.0",
137
+ "cypress": "14.5.1",
138
138
  "cypress-real-events": "^1.14.0",
139
139
  "dompurify": "^3.1.2",
140
140
  "emoji-regex": "^10.4.0",
@@ -142,8 +142,8 @@
142
142
  "esbuild": "^0.18.0",
143
143
  "fuse.js": "^7.1.0",
144
144
  "gitlab-api-async-iterator": "^1.3.1",
145
- "glob": "10.4.5",
146
- "globby": "^11.1.0",
145
+ "glob": "11.0.3",
146
+ "globby": "^14.1.0",
147
147
  "identity-obj-proxy": "^3.0.0",
148
148
  "jest": "30.0.2",
149
149
  "jest-circus": "30.0.2",
@@ -154,8 +154,8 @@
154
154
  "module-alias": "^2.2.3",
155
155
  "npm-run-all": "^4.1.5",
156
156
  "pikaday": "^1.8.0",
157
- "playwright": "^1.53.1",
158
- "playwright-core": "^1.53.1",
157
+ "playwright": "^1.53.2",
158
+ "playwright-core": "^1.53.2",
159
159
  "postcss": "8.5.6",
160
160
  "postcss-loader": "8.1.1",
161
161
  "postcss-scss": "4.0.9",
@@ -173,7 +173,7 @@
173
173
  "start-server-and-test": "^1.15.4",
174
174
  "storybook": "^7.6.20",
175
175
  "storybook-dark-mode": "4.0.2",
176
- "style-dictionary": "^5.0.0",
176
+ "style-dictionary": "^5.0.1",
177
177
  "style-loader": "3.3.2",
178
178
  "tailwind-config-viewer": "2.0.4",
179
179
  "tailwindcss": "3.4.17",
@@ -0,0 +1,3 @@
1
+ The dashboard layout is used to provide a consistent UI within a dashboarding environment.
2
+ The layout component should be used to render a grid-style dashboard as outlined by our
3
+ [Pajamas documentation](https://design.gitlab.com/patterns/dashboards).
@@ -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>
@@ -0,0 +1,8 @@
1
+ export const dashboardConfigValidator = (config) => {
2
+ if (config.panels) {
3
+ if (!Array.isArray(config.panels)) return false;
4
+ if (!config.panels.every((panel) => panel.id && panel.gridAttributes)) return false;
5
+ }
6
+
7
+ return true;
8
+ };
@@ -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
- // Components
7
- export { default as GlTableLite } from './components/base/table_lite/table_lite.vue';
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';