@gitlab/ui 58.4.0 → 58.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/components/base/filtered_search/filtered_search_token_segment.js +1 -1
  3. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +9 -1
  4. package/dist/components/base/new_dropdowns/listbox/listbox.js +17 -12
  5. package/dist/components/charts/chart/chart.js +5 -1
  6. package/dist/index.css +1 -1
  7. package/dist/index.css.map +1 -1
  8. package/package.json +8 -4
  9. package/src/components/base/alert/alert.stories.js +2 -1
  10. package/src/components/base/avatar/avatar.stories.js +1 -1
  11. package/src/components/base/avatar_labeled/avatar_labeled.stories.js +3 -1
  12. package/src/components/base/avatar_link/avatar_link.stories.js +3 -1
  13. package/src/components/base/avatars_inline/avatars_inline.stories.js +4 -1
  14. package/src/components/base/badge/badge.stories.js +1 -1
  15. package/src/components/base/banner/banner.stories.js +2 -1
  16. package/src/components/base/breadcrumb/breadcrumb.stories.js +1 -1
  17. package/src/components/base/broadcast_message/broadcast_message.stories.js +1 -1
  18. package/src/components/base/button/button.stories.js +7 -9
  19. package/src/components/base/button_group/button_group.stories.js +4 -1
  20. package/src/components/base/collapse/collapse.stories.js +3 -1
  21. package/src/components/base/datepicker/datepicker.stories.js +2 -1
  22. package/src/components/base/drawer/drawer.stories.js +3 -1
  23. package/src/components/base/dropdown/dropdown.stories.js +10 -12
  24. package/src/components/base/dropdown/dropdown_item.stories.js +1 -1
  25. package/src/components/base/filtered_search/filtered_search.stories.js +15 -13
  26. package/src/components/base/filtered_search/filtered_search_suggestion.stories.js +1 -1
  27. package/src/components/base/filtered_search/filtered_search_suggestion_list.stories.js +2 -1
  28. package/src/components/base/filtered_search/filtered_search_token.stories.js +1 -1
  29. package/src/components/base/filtered_search/filtered_search_token_segment.stories.js +1 -1
  30. package/src/components/base/filtered_search/filtered_search_token_segment.vue +1 -0
  31. package/src/components/base/form/form.stories.js +7 -9
  32. package/src/components/base/form/form_checkbox/form_checkbox.stories.js +2 -1
  33. package/src/components/base/form/form_group/form_group.stories.js +3 -1
  34. package/src/components/base/form/form_input/form_input.stories.js +1 -1
  35. package/src/components/base/form/form_input_group/form_input_group.stories.js +2 -1
  36. package/src/components/base/form/form_radio/form_radio.stories.js +1 -1
  37. package/src/components/base/form/form_radio_group/form_radio_group.stories.js +2 -1
  38. package/src/components/base/form/form_select/form_select.stories.js +2 -2
  39. package/src/components/base/form/form_textarea/form_textarea.stories.js +1 -1
  40. package/src/components/base/icon/icon.stories.js +1 -1
  41. package/src/components/base/infinite_scroll/infinite_scroll.stories.js +2 -1
  42. package/src/components/base/label/label.stories.js +1 -1
  43. package/src/components/base/link/link.stories.js +1 -1
  44. package/src/components/base/loading_icon/loading_icon.stories.js +1 -1
  45. package/src/components/base/modal/modal.stories.js +3 -1
  46. package/src/components/base/nav/nav.stories.js +6 -8
  47. package/src/components/base/navbar/navbar.stories.js +1 -1
  48. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.scss +10 -0
  49. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.stories.js +9 -11
  50. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.spec.js +33 -0
  51. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.vue +8 -2
  52. package/src/components/base/new_dropdowns/listbox/listbox.stories.js +7 -9
  53. package/src/components/base/new_dropdowns/listbox/listbox.vue +24 -21
  54. package/src/components/base/paginated_list/paginated_list.stories.js +2 -1
  55. package/src/components/base/pagination/pagination.stories.js +7 -10
  56. package/src/components/base/path/path.stories.js +2 -1
  57. package/src/components/base/popover/popover.stories.js +2 -1
  58. package/src/components/base/progress_bar/progress_bar.stories.js +1 -1
  59. package/src/components/base/search_box_by_click/search_box_by_click.stories.js +1 -1
  60. package/src/components/base/search_box_by_type/search_box_by_type.stories.js +1 -1
  61. package/src/components/base/segmented_control/segmented_control.stories.js +1 -1
  62. package/src/components/base/skeleton_loader/skeleton_loader.stories.js +1 -1
  63. package/src/components/base/skeleton_loading/skeleton_loading.stories.js +1 -1
  64. package/src/components/base/sorting/sorting.stories.js +2 -1
  65. package/src/components/base/sorting/sorting_item.stories.js +2 -1
  66. package/src/components/base/table/table.stories.js +2 -1
  67. package/src/components/base/tabs/tabs/tabs.stories.js +5 -2
  68. package/src/components/base/toast/toast.stories.js +2 -1
  69. package/src/components/base/toggle/toggle.stories.js +1 -1
  70. package/src/components/base/token/token.stories.js +2 -1
  71. package/src/components/base/tooltip/tooltip.stories.js +3 -1
  72. package/src/components/charts/chart/chart.stories.js +3 -2
  73. package/src/components/charts/chart/chart.vue +5 -1
  74. package/src/components/regions/dashboard_skeleton/dashboard_skeleton.stories.js +1 -1
  75. package/src/components/regions/empty_state/empty_state.stories.js +2 -1
  76. package/src/components/utilities/friendly_wrap/friendly_wrap.stories.js +1 -1
  77. package/src/components/utilities/intersection_observer/intersection_observer.stories.js +1 -1
  78. package/src/components/utilities/intersperse/intersperse.stories.js +1 -1
  79. package/src/components/utilities/sprintf/sprintf.stories.js +3 -1
  80. package/src/components/utilities/truncate/truncate.spec.js +16 -1
  81. package/src/components/utilities/truncate/truncate.stories.js +1 -1
  82. package/src/components/utilities/truncate/truncate.vue +0 -3
  83. package/src/directives/hover_load/hover_load.stories.js +1 -1
  84. package/src/directives/outside/outside.stories.js +1 -1
  85. package/src/directives/resize_observer/resize_observer.stories.js +1 -1
  86. package/src/directives/safe_html/safe_html.stories.js +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitlab/ui",
3
- "version": "58.4.0",
3
+ "version": "58.5.0",
4
4
  "description": "GitLab UI Components",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -29,7 +29,8 @@
29
29
  "clean": "rm -r dist storybook scss_to_js/scss_variables.* src/scss/utilities.scss",
30
30
  "cy:run": "cypress run --browser firefox",
31
31
  "start": "yarn storybook",
32
- "storybook": "yarn storybook-prep && start-storybook --ci --host localhost --port 9001 -c .storybook",
32
+ "storybook": "yarn storybook-prep && node ./bin/run_storybook.js --ci --host localhost --port 9001 -c .storybook",
33
+ "storybook-vue3": "yarn storybook-prep && VUE_VERSION=3 node ./bin/run_storybook.js --ci --host localhost --port 9001 -c .storybook",
33
34
  "storybook-prep": "run-s generate-utilities build-scss-variables copy-fonts",
34
35
  "storybook-static": "yarn storybook-prep && build-storybook -c .storybook -o storybook",
35
36
  "pretest:unit": "yarn build-scss-variables",
@@ -78,6 +79,7 @@
78
79
  },
79
80
  "resolutions": {
80
81
  "@storybook/vue/webpack": "^5.9.0",
82
+ "@storybook/vue3/vue-loader": "^17.0.0",
81
83
  "chokidar": "^3.5.2",
82
84
  "sane": "^5.0.1"
83
85
  },
@@ -88,7 +90,7 @@
88
90
  "@gitlab/eslint-plugin": "18.2.0",
89
91
  "@gitlab/fonts": "^1.2.0",
90
92
  "@gitlab/stylelint-config": "4.1.0",
91
- "@gitlab/svgs": "3.26.0",
93
+ "@gitlab/svgs": "3.31.0",
92
94
  "@rollup/plugin-commonjs": "^11.1.0",
93
95
  "@rollup/plugin-node-resolve": "^7.1.3",
94
96
  "@rollup/plugin-replace": "^2.3.2",
@@ -102,6 +104,7 @@
102
104
  "@storybook/manager-webpack5": "^6.5.16",
103
105
  "@storybook/theming": "6.5.16",
104
106
  "@storybook/vue": "6.5.16",
107
+ "@storybook/vue3": "6.5.16",
105
108
  "@vue/compat": "^3.2.40",
106
109
  "@vue/compiler-sfc": "^3.2.40",
107
110
  "@vue/test-utils": "1.3.0",
@@ -114,7 +117,6 @@
114
117
  "babel-plugin-require-context-hook": "^1.0.0",
115
118
  "babel-preset-vue": "^2.0.2",
116
119
  "bootstrap": "4.6.2",
117
- "bootstrap-vue-vue3": "npm:bootstrap-vue@2.23.1",
118
120
  "cypress": "^11.2.0",
119
121
  "emoji-regex": "^10.0.0",
120
122
  "eslint": "8.36.0",
@@ -130,6 +132,7 @@
130
132
  "jest-environment-jsdom": "29.5.0",
131
133
  "markdownlint-cli": "^0.29.0",
132
134
  "mockdate": "^2.0.5",
135
+ "module-alias": "^2.2.2",
133
136
  "npm-run-all": "^4.1.5",
134
137
  "pikaday": "^1.8.0",
135
138
  "plop": "^2.5.4",
@@ -156,6 +159,7 @@
156
159
  "stylelint-prettier": "2.0.0",
157
160
  "vue": "2.7.14",
158
161
  "vue-loader": "^15.8.3",
162
+ "vue-loader-vue3": "npm:vue-loader@17",
159
163
  "vue-template-compiler": "2.7.14",
160
164
  "vue-test-utils-compat": "^0.0.10",
161
165
  "webpack": "^5.9.0"
@@ -1,5 +1,6 @@
1
- import { GlAlert, GlToggle } from '../../../index';
1
+ import GlToggle from '../toggle/toggle.vue';
2
2
  import { alertVariantOptions } from '../../../utils/constants';
3
+ import GlAlert from './alert.vue';
3
4
  import readme from './alert.md';
4
5
 
5
6
  const template = `
@@ -1,7 +1,7 @@
1
1
  import Vue from 'vue';
2
- import { GlAvatar } from '../../../index';
3
2
  import { GlTooltipDirective } from '../../../directives/tooltip';
4
3
  import { avatarSizeOptions, avatarShapeOptions, tooltipPlacements } from '../../../utils/constants';
4
+ import GlAvatar from './avatar.vue';
5
5
  import readme from './avatar.md';
6
6
 
7
7
  Vue.directive('gl-tooltip', GlTooltipDirective);
@@ -1,8 +1,10 @@
1
1
  import Vue from 'vue';
2
- import { GlAvatarLabeled, GlBadge, GlButton } from '../../../index';
2
+ import GlBadge from '../badge/badge.vue';
3
+ import GlButton from '../button/button.vue';
3
4
  import { GlTooltipDirective } from '../../../directives/tooltip';
4
5
  import { avatarSizeOptions, avatarShapeOptions, tooltipPlacements } from '../../../utils/constants';
5
6
  import avatarPath from '../../../../static/img/avatar.png';
7
+ import GlAvatarLabeled from './avatar_labeled.vue';
6
8
  import readme from './avatar_labeled.md';
7
9
 
8
10
  Vue.directive('gl-tooltip', GlTooltipDirective);
@@ -1,6 +1,8 @@
1
- import { GlAvatarLink, GlAvatar, GlAvatarLabeled } from '../../../index';
1
+ import GlAvatar from '../avatar/avatar.vue';
2
+ import GlAvatarLabeled from '../avatar_labeled/avatar_labeled.vue';
2
3
  import { avatarSizeOptions, avatarShapeOptions } from '../../../utils/constants';
3
4
  import avatarPath from '../../../../static/img/avatar.png';
5
+ import GlAvatarLink from './avatar_link.vue';
4
6
  import readme from './avatar_link.md';
5
7
 
6
8
  const components = { GlAvatarLink, GlAvatar, GlAvatarLabeled };
@@ -1,5 +1,8 @@
1
- import { GlAvatarsInline, GlAvatar, GlAvatarLink, GlTooltipDirective } from '../../../index';
1
+ import GlAvatar from '../avatar/avatar.vue';
2
+ import GlAvatarLink from '../avatar_link/avatar_link.vue';
3
+ import { GlTooltipDirective } from '../../../directives/tooltip';
2
4
  import { avatarsInlineSizeOptions } from '../../../utils/constants';
5
+ import GlAvatarsInline from './avatars_inline.vue';
3
6
  import readme from './avatars_inline.md';
4
7
 
5
8
  const defaultAvatars = [
@@ -1,11 +1,11 @@
1
1
  import iconSpriteInfo from '@gitlab/svgs/dist/icons.json';
2
- import { GlBadge } from '../../../index';
3
2
  import {
4
3
  badgeSizeOptions,
5
4
  badgeVariantOptions,
6
5
  badgeIconSizeOptions,
7
6
  } from '../../../utils/constants';
8
7
  import { disableControls } from '../../../utils/stories_utils';
8
+ import GlBadge from './badge.vue';
9
9
  import readme from './badge.md';
10
10
 
11
11
  const template = `
@@ -1,7 +1,8 @@
1
1
  import clusterPopoverSvg from '@gitlab/svgs/dist/illustrations/cluster_popover.svg';
2
2
  import serviceDeskCalloutSvg from '@gitlab/svgs/dist/illustrations/service_desk_callout.svg';
3
- import { GlBanner, GlButton } from '../../../index';
3
+ import GlButton from '../button/button.vue';
4
4
  import { bannerVariants } from '../../../utils/constants';
5
+ import GlBanner from './banner.vue';
5
6
  import readme from './banner.md';
6
7
 
7
8
  const template = `
@@ -1,5 +1,5 @@
1
- import { GlBreadcrumb } from '../../../index';
2
1
  import avatarPath from '../../../../static/img/avatar.png';
2
+ import GlBreadcrumb from './breadcrumb.vue';
3
3
  import readme from './breadcrumb.md';
4
4
 
5
5
  const template = `
@@ -1,6 +1,6 @@
1
1
  import iconSpriteInfo from '@gitlab/svgs/dist/icons.json';
2
- import { GlBroadcastMessage } from '../../../index';
3
2
  import { colorThemes } from '../../../utils/constants';
3
+ import GlBroadcastMessage from './broadcast_message.vue';
4
4
  import { TYPE_LIST, TYPE_NOTIFICATION } from './constants';
5
5
  import readme from './broadcast_message.md';
6
6
 
@@ -1,12 +1,7 @@
1
- import {
2
- GlButton,
3
- GlButtonGroup,
4
- GlBadge,
5
- GlDropdown,
6
- GlDropdownItem,
7
- GlSorting,
8
- GlSortingItem,
9
- } from '../../../index';
1
+ import GlDropdown from '../dropdown/dropdown.vue';
2
+ import GlDropdownItem from '../dropdown/dropdown_item.vue';
3
+ import GlSorting from '../sorting/sorting.vue';
4
+ import GlSortingItem from '../sorting/sorting_item.vue';
10
5
  import {
11
6
  buttonCategoryOptions,
12
7
  buttonVariantOptions,
@@ -14,6 +9,9 @@ import {
14
9
  buttonSizeOptions,
15
10
  targetOptions,
16
11
  } from '../../../utils/constants';
12
+ import GlBadge from '../badge/badge.vue';
13
+ import GlButtonGroup from '../button_group/button_group.vue';
14
+ import GlButton from './button.vue';
17
15
  import readme from './button.md';
18
16
 
19
17
  const components = { GlButton };
@@ -1,4 +1,7 @@
1
- import { GlButton, GlButtonGroup, GlDropdown, GlDropdownItem } from '../../../index';
1
+ import GlButton from '../button/button.vue';
2
+ import GlDropdown from '../dropdown/dropdown.vue';
3
+ import GlDropdownItem from '../dropdown/dropdown_item.vue';
4
+ import GlButtonGroup from './button_group.vue';
2
5
  import readme from './button_group.md';
3
6
 
4
7
  const generateProps = ({ vertical = false } = {}) => ({ vertical });
@@ -1,4 +1,6 @@
1
- import { GlButton, GlCard, GlCollapse } from '../../../index';
1
+ import GlButton from '../button/button.vue';
2
+ import GlCard from '../card/card.vue';
3
+ import GlCollapse from './collapse.vue';
2
4
  import readme from './collapse.md';
3
5
 
4
6
  const generateProps = ({ visible = false } = {}) => ({ visible });
@@ -1,7 +1,8 @@
1
- import { GlFormGroup, GlDatepicker } from '../../../index';
1
+ import GlFormGroup from '../form/form_group/form_group.vue';
2
2
  import { disableControls } from '../../../utils/stories_utils';
3
3
  import { useFakeDate } from '../../../utils/use_fake_date';
4
4
  import { makeContainer } from '../../../utils/story_decorators/container';
5
+ import GlDatepicker from './datepicker.vue';
5
6
  import readme from './datepicker.md';
6
7
 
7
8
  const defaults = {
@@ -1,5 +1,7 @@
1
- import { GlDrawer, GlButton, GlMarkdown } from '../../../index';
1
+ import GlButton from '../button/button.vue';
2
+ import GlMarkdown from '../markdown/markdown.vue';
2
3
  import { drawerVariants } from '../../../utils/constants';
4
+ import GlDrawer from './drawer.vue';
3
5
  import readme from './drawer.md';
4
6
 
5
7
  const components = { GlDrawer, GlButton, GlMarkdown };
@@ -1,21 +1,19 @@
1
1
  import iconSpriteInfo from '@gitlab/svgs/dist/icons.json';
2
- import {
3
- GlAvatar,
4
- GlIcon,
5
- GlDropdown,
6
- GlDropdownDivider,
7
- GlDropdownSectionHeader,
8
- GlDropdownItem,
9
- GlDropdownText,
10
- GlDropdownForm,
11
- GlButton,
12
- GlSearchBoxByType,
13
- } from '../../../index';
2
+ import GlAvatar from '../avatar/avatar.vue';
3
+ import GlIcon from '../icon/icon.vue';
4
+ import GlButton from '../button/button.vue';
5
+ import GlSearchBoxByType from '../search_box_by_type/search_box_by_type.vue';
14
6
  import {
15
7
  buttonCategoryOptions,
16
8
  buttonSizeOptions,
17
9
  dropdownVariantOptions,
18
10
  } from '../../../utils/constants';
11
+ import GlDropdownDivider from './dropdown_divider.vue';
12
+ import GlDropdownSectionHeader from './dropdown_section_header.vue';
13
+ import GlDropdownItem from './dropdown_item.vue';
14
+ import GlDropdownText from './dropdown_text.vue';
15
+ import GlDropdownForm from './dropdown_form.vue';
16
+ import GlDropdown from './dropdown.vue';
19
17
  import readme from './dropdown.md';
20
18
 
21
19
  const components = {
@@ -1,6 +1,6 @@
1
1
  import iconSpriteInfo from '@gitlab/svgs/dist/icons.json';
2
- import { GlDropdownItem } from '../../../index';
3
2
  import { variantCssColorMap } from '../../../utils/constants';
3
+ import GlDropdownItem from './dropdown_item.vue';
4
4
  import readme from './dropdown_item.md';
5
5
 
6
6
  const components = {
@@ -1,18 +1,16 @@
1
- import {
2
- GlFilteredSearch,
3
- GlFilteredSearchToken,
4
- GlFilteredSearchSuggestion,
5
- GlFilteredSearchSuggestionList,
6
- GlFilteredSearchTerm,
7
- GlFilteredSearchTokenSegment,
8
- GlLoadingIcon,
9
- GlIcon,
10
- GlToken,
11
- GlAvatar,
12
- GlDropdownDivider,
13
- } from '../../../index';
1
+ import GlLoadingIcon from '../loading_icon/loading_icon.vue';
2
+ import GlIcon from '../icon/icon.vue';
3
+ import GlToken from '../token/token.vue';
4
+ import GlAvatar from '../avatar/avatar.vue';
5
+ import GlDropdownDivider from '../dropdown/dropdown_divider.vue';
14
6
  import { setStoryTimeout } from '../../../utils/test_utils';
15
7
  import { makeContainer } from '../../../utils/story_decorators/container';
8
+ import GlFilteredSearchTokenSegment from './filtered_search_token_segment.vue';
9
+ import GlFilteredSearchTerm from './filtered_search_term.vue';
10
+ import GlFilteredSearchSuggestionList from './filtered_search_suggestion_list.vue';
11
+ import GlFilteredSearchSuggestion from './filtered_search_suggestion.vue';
12
+ import GlFilteredSearchToken from './filtered_search_token.vue';
13
+ import GlFilteredSearch from './filtered_search.vue';
16
14
  import readme from './filtered_search.md';
17
15
 
18
16
  const fakeUsers = [
@@ -41,6 +39,7 @@ const fakeLabels = [
41
39
 
42
40
  const UserToken = {
43
41
  name: 'UserToken',
42
+ __v_skip: true /* temporary workaround for @vue/compat */,
44
43
  components: { GlFilteredSearchToken, GlFilteredSearchSuggestion, GlLoadingIcon, GlAvatar },
45
44
  props: ['value', 'active'],
46
45
  inheritAttrs: false,
@@ -118,6 +117,7 @@ const UserToken = {
118
117
 
119
118
  const MilestoneToken = {
120
119
  name: 'MilestoneToken',
120
+ __v_skip: true /* temporary workaround for @vue/compat */,
121
121
  components: { GlFilteredSearchToken, GlFilteredSearchSuggestion, GlLoadingIcon },
122
122
  props: ['value', 'active'],
123
123
  inheritAttrs: false,
@@ -179,6 +179,7 @@ const MilestoneToken = {
179
179
 
180
180
  const LabelToken = {
181
181
  name: 'LabelToken',
182
+ __v_skip: true /* temporary workaround for @vue/compat */,
182
183
  components: {
183
184
  GlFilteredSearchToken,
184
185
  GlFilteredSearchSuggestion,
@@ -426,6 +427,7 @@ export const WithFriendlyText = () => ({
426
427
 
427
428
  export const WithMultiSelect = () => {
428
429
  const MultiUserToken = {
430
+ __v_skip: true /* temporary workaround for @vue/compat */,
429
431
  props: ['value', 'active', 'config'],
430
432
  components: {
431
433
  GlFilteredSearchToken,
@@ -1,4 +1,4 @@
1
- import { GlFilteredSearchSuggestion } from '../../../index';
1
+ import GlFilteredSearchSuggestion from './filtered_search_suggestion.vue';
2
2
  import readme from './filtered_search_suggestion.md';
3
3
 
4
4
  const noop = () => {};
@@ -1,4 +1,5 @@
1
- import { GlFilteredSearchSuggestionList, GlFilteredSearchSuggestion } from '../../../index';
1
+ import GlFilteredSearchSuggestionList from './filtered_search_suggestion_list.vue';
2
+ import GlFilteredSearchSuggestion from './filtered_search_suggestion.vue';
2
3
  import { provide } from './common_story_options';
3
4
  import readme from './filtered_search_suggestion_list.md';
4
5
 
@@ -1,6 +1,6 @@
1
1
  import PortalVue from 'portal-vue';
2
2
  import Vue from 'vue';
3
- import { GlIcon } from '../../../index';
3
+ import GlIcon from '../icon/icon.vue';
4
4
  import { provide } from './common_story_options';
5
5
  import GlFilteredSearchSuggestion from './filtered_search_suggestion.vue';
6
6
  import readme from './filtered_search_token.md';
@@ -1,6 +1,6 @@
1
1
  import PortalVue from 'portal-vue';
2
2
  import Vue from 'vue';
3
- import { GlFilteredSearchSuggestion } from '../../../index';
3
+ import GlFilteredSearchSuggestion from './filtered_search_suggestion.vue';
4
4
  import { provide } from './common_story_options';
5
5
  import readme from './filtered_search_token_segment.md';
6
6
  import GlFilteredSearchTokenSegment from './filtered_search_token_segment.vue';
@@ -388,6 +388,7 @@ export default {
388
388
  v-bind="searchInputAttributes"
389
389
  v-model="inputValue"
390
390
  class="gl-filtered-search-token-segment-input"
391
+ data-testid="filtered-search-token-segment-input"
391
392
  :aria-label="label"
392
393
  :readonly="viewOnly"
393
394
  @keydown="handleInputKeydown"
@@ -1,13 +1,11 @@
1
- import {
2
- GlForm,
3
- GlFormGroup,
4
- GlFormInput,
5
- GlFormSelect,
6
- GlFormCheckbox,
7
- GlFormCheckboxGroup,
8
- GlButton,
9
- } from '../../../index';
1
+ import GlButton from '../button/button.vue';
10
2
  import { setStoryTimeout } from '../../../utils/test_utils';
3
+ import GlFormCheckboxGroup from './form_checkbox/form_checkbox_group.vue';
4
+ import GlForm from './form.vue';
5
+ import GlFormGroup from './form_group/form_group.vue';
6
+ import GlFormInput from './form_input/form_input.vue';
7
+ import GlFormSelect from './form_select/form_select.vue';
8
+ import GlFormCheckbox from './form_checkbox/form_checkbox.vue';
11
9
  import readme from './form.md';
12
10
 
13
11
  export const Default = (args) => ({
@@ -1,4 +1,5 @@
1
- import { GlFormCheckbox, GlFormCheckboxGroup } from '../../../../index';
1
+ import GlFormCheckbox from './form_checkbox.vue';
2
+ import GlFormCheckboxGroup from './form_checkbox_group.vue';
2
3
  import readme from './form_checkbox.md';
3
4
 
4
5
  const components = {
@@ -1,5 +1,7 @@
1
- import { GlFormGroup, GlFormInput, GlFormTextarea } from '../../../../index';
1
+ import GlFormInput from '../form_input/form_input.vue';
2
+ import GlFormTextarea from '../form_textarea/form_textarea.vue';
2
3
  import { disableControls } from '../../../../utils/stories_utils';
4
+ import GlFormGroup from './form_group.vue';
3
5
  import readme from './form_group.md';
4
6
 
5
7
  const components = {
@@ -1,5 +1,5 @@
1
- import { GlFormInput } from '../../../../index';
2
1
  import { formInputSizes } from '../../../../utils/constants';
2
+ import GlFormInput from './form_input.vue';
3
3
  import readme from './form_input.md';
4
4
 
5
5
  const template = `
@@ -1,5 +1,6 @@
1
- import { GlFormInputGroup, GlInputGroupText } from '../../../../index';
1
+ import GlInputGroupText from '../input_group_text/input_group_text.vue';
2
2
  import { disableControls } from '../../../../utils/stories_utils';
3
+ import GlFormInputGroup from './form_input_group.vue';
3
4
  import readme from './form_input_group.md';
4
5
 
5
6
  const template = `
@@ -1,4 +1,4 @@
1
- import { GlFormRadio } from '../../../../index';
1
+ import GlFormRadio from './form_radio.vue';
2
2
  import readme from './form_radio.md';
3
3
 
4
4
  const defaultOptions = [
@@ -1,4 +1,5 @@
1
- import { GlFormRadioGroup, GlFormRadio } from '../../../../index';
1
+ import GlFormRadio from '../form_radio/form_radio.vue';
2
+ import GlFormRadioGroup from './form_radio_group.vue';
2
3
  import readme from './form_radio_group.md';
3
4
 
4
5
  const defaultOptions = [
@@ -1,5 +1,5 @@
1
- import { GlFormSelect } from '../../../../index';
2
1
  import { formStateOptions, formInputSizes } from '../../../../utils/constants';
2
+ import GlFormSelect from './form_select.vue';
3
3
  import { formSelectOptions } from './constants';
4
4
  import readme from './form_select.md';
5
5
 
@@ -8,7 +8,7 @@ const data = () => ({
8
8
  });
9
9
 
10
10
  const template = `
11
- <gl-form-select
11
+ <gl-form-select
12
12
  v-model="selected"
13
13
  :size="size"
14
14
  :disabled="disabled"
@@ -1,4 +1,4 @@
1
- import { GlFormTextarea } from '../../../../index';
1
+ import GlFormTextarea from './form_textarea.vue';
2
2
  import readme from './form_textarea.md';
3
3
 
4
4
  const template = `
@@ -1,7 +1,7 @@
1
1
  import iconSpriteInfo from '@gitlab/svgs/dist/icons.json';
2
- import { GlIcon } from '../../../index';
3
2
  import { iconSizeOptions } from '../../../utils/constants';
4
3
  import { disableControls } from '../../../utils/stories_utils';
4
+ import GlIcon from './icon.vue';
5
5
  import readme from './icon.md';
6
6
 
7
7
  const components = {
@@ -1,5 +1,6 @@
1
1
  import { setStoryTimeout } from '../../../utils/test_utils';
2
- import { GlInfiniteScroll, GlLoadingIcon } from '../../../index';
2
+ import GlLoadingIcon from '../loading_icon/loading_icon.vue';
3
+ import GlInfiniteScroll from './infinite_scroll.vue';
3
4
  import readme from './infinite_scroll.md';
4
5
 
5
6
  const ITEMS_BATCH_SIZE = 20;
@@ -1,5 +1,5 @@
1
- import { GlLabel } from '../../../index';
2
1
  import { labelSizeOptions, tooltipPlacements } from '../../../utils/constants';
2
+ import GlLabel from './label.vue';
3
3
  import readme from './label.md';
4
4
 
5
5
  const template = `
@@ -1,5 +1,5 @@
1
- import { GlLink } from '../../../index';
2
1
  import { targetOptions } from '../../../utils/constants';
2
+ import GlLink from './link.vue';
3
3
  import readme from './link.md';
4
4
 
5
5
  const generateProps = ({ href = '#', target = null } = {}) => ({
@@ -1,5 +1,5 @@
1
- import { GlLoadingIcon } from '../../../index';
2
1
  import { viewModeOptions, loadingIconSizes } from '../../../utils/constants';
2
+ import GlLoadingIcon from './loading_icon.vue';
3
3
  import readme from './loading_icon.md';
4
4
 
5
5
  const template = `
@@ -1,5 +1,7 @@
1
- import { GlModal, GlModalDirective, GlButton } from '../../../index';
1
+ import { GlModalDirective } from '../../../directives/modal';
2
+ import GlButton from '../button/button.vue';
2
3
  import { variantOptionsWithNoDefault } from '../../../utils/constants';
4
+ import GlModal from './modal.vue';
3
5
  import readme from './modal.md';
4
6
 
5
7
  const generateTemplate = ({ props = {}, slots = {} } = {}) => {
@@ -1,11 +1,9 @@
1
- import {
2
- GlNav,
3
- GlNavItem,
4
- GlNavItemDropdown,
5
- GlDropdownItem,
6
- GlDropdownDivider,
7
- GlIcon,
8
- } from '../../../index';
1
+ import GlDropdownItem from '../dropdown/dropdown_item.vue';
2
+ import GlDropdownDivider from '../dropdown/dropdown_divider.vue';
3
+ import GlIcon from '../icon/icon.vue';
4
+ import GlNavItemDropdown from './nav_item_dropdown.vue';
5
+ import GlNavItem from './nav_item.vue';
6
+ import GlNav from './nav.vue';
9
7
  import readme from './nav.md';
10
8
 
11
9
  export const Default = (_args, { argTypes }) => ({
@@ -1,5 +1,5 @@
1
1
  import { BNavbarBrand } from 'bootstrap-vue';
2
- import { GlNavbar } from '../../../index';
2
+ import GlNavbar from './navbar.vue';
3
3
  import readme from './navbar.md';
4
4
 
5
5
  const Template = (args, { argTypes }) => ({
@@ -35,5 +35,15 @@
35
35
  .gl-new-dropdown-inner {
36
36
  max-height: none;
37
37
  }
38
+
39
+ .gl-new-dropdown-item-content {
40
+ &:disabled,
41
+ &[disabled] {
42
+ @include gl-text-gray-500;
43
+ cursor: not-allowed;
44
+ background: none;
45
+ text-decoration: none;
46
+ }
47
+ }
38
48
  }
39
49
  }
@@ -4,18 +4,16 @@ import {
4
4
  buttonVariantOptions,
5
5
  dropdownPlacements,
6
6
  } from '../../../../utils/constants';
7
- import {
8
- GlDisclosureDropdown,
9
- GlBadge,
10
- GlDisclosureDropdownGroup,
11
- GlDisclosureDropdownItem,
12
- GlToggle,
13
- GlAvatar,
14
- GlModal,
15
- GlIcon,
16
- GlTooltip,
17
- } from '../../../../index';
7
+ import GlBadge from '../../badge/badge.vue';
8
+ import GlToggle from '../../toggle/toggle.vue';
9
+ import GlAvatar from '../../avatar/avatar.vue';
10
+ import GlModal from '../../modal/modal.vue';
11
+ import GlIcon from '../../icon/icon.vue';
12
+ import GlTooltip from '../../tooltip/tooltip.vue';
18
13
  import { makeContainer } from '../../../../utils/story_decorators/container';
14
+ import GlDisclosureDropdown from './disclosure_dropdown.vue';
15
+ import GlDisclosureDropdownItem from './disclosure_dropdown_item.vue';
16
+ import GlDisclosureDropdownGroup from './disclosure_dropdown_group.vue';
19
17
  import readme from './disclosure_dropdown.md';
20
18
  import {
21
19
  mockItems,