@gitlab/ui 134.9.0 → 135.0.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/dist/components/base/animated_icon/base_animated_icon.js +3 -0
- package/dist/components/base/color_mode_toggle/color_mode_toggle.js +11 -1
- package/dist/components/base/filtered_search/filtered_search.js +9 -0
- package/dist/components/base/filtered_search/filtered_search_suggestion.js +3 -0
- package/dist/components/base/filtered_search/filtered_search_term.js +9 -0
- package/dist/components/base/filtered_search/filtered_search_token.js +15 -0
- package/dist/components/base/filtered_search/filtered_search_token_segment.js +27 -0
- package/dist/components/base/form/form_combobox/form_combobox.js +18 -0
- package/dist/components/base/form/form_date/form_date.js +18 -0
- package/dist/components/base/form/form_fields/form_field_validator.js +9 -0
- package/dist/components/base/form/form_fields/form_fields_loop.js +3 -0
- package/dist/components/base/markdown/markdown.js +3 -0
- package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +54 -0
- package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +3 -0
- package/dist/components/base/new_dropdowns/listbox/listbox.js +3 -0
- package/dist/components/base/new_dropdowns/listbox/listbox_group.js +6 -0
- package/dist/components/base/new_dropdowns/listbox/listbox_item.js +15 -0
- package/dist/components/base/search_box_by_click/search_box_by_click.js +6 -0
- package/dist/components/base/segmented_control/segmented_control.js +6 -0
- package/dist/components/base/table_lite/table_lite.js +9 -0
- package/dist/components/base/tabs/tab/tab.js +3 -0
- package/dist/components/base/tabs/tabs/tabs.js +21 -0
- package/dist/components/base/toast/toast.js +12 -0
- package/dist/components/base/toggle/toggle.js +3 -0
- package/dist/components/base/token_selector/token_container.js +12 -0
- package/dist/components/base/token_selector/token_selector_dropdown.js +27 -0
- package/dist/components/charts/area/area.js +36 -0
- package/dist/components/charts/bar/bar.js +15 -0
- package/dist/components/charts/chart/chart.js +7 -1
- package/dist/components/charts/column/column.js +24 -0
- package/dist/components/charts/discrete_scatter/discrete_scatter.js +21 -0
- package/dist/components/charts/gauge/gauge.js +21 -0
- package/dist/components/charts/heatmap/heatmap.js +33 -0
- package/dist/components/charts/legend/legend.js +15 -0
- package/dist/components/charts/line/line.js +33 -0
- package/dist/components/charts/series_label/series_label.js +6 -0
- package/dist/components/charts/shared/tooltip/tooltip.js +6 -0
- package/dist/components/charts/shared/tooltip/tooltip_default_format/tooltip_default_format.js +3 -0
- package/dist/components/charts/single_stat/single_stat.js +30 -0
- package/dist/components/charts/stacked_column/stacked_column.js +55 -0
- package/dist/components/regions/empty_state/empty_state.js +3 -0
- package/dist/components/shared_components/clear_icon_button/clear_icon_button.js +6 -0
- package/dist/components/shared_components/close_button/close_button.js +3 -0
- package/dist/components/utilities/animated_number/animated_number.js +9 -0
- package/dist/components/utilities/intersperse/intersperse.js +6 -0
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/tokens/tokens_story.js +3 -0
- package/package.json +4 -3
- package/src/components/base/animated_icon/base_animated_icon.vue +3 -0
- package/src/components/base/color_mode_toggle/color_mode_toggle.vue +11 -0
- package/src/components/base/filtered_search/filtered_search.vue +9 -0
- package/src/components/base/filtered_search/filtered_search_suggestion.vue +3 -0
- package/src/components/base/filtered_search/filtered_search_term.vue +9 -0
- package/src/components/base/filtered_search/filtered_search_token.vue +15 -0
- package/src/components/base/filtered_search/filtered_search_token_segment.vue +27 -0
- package/src/components/base/form/form_combobox/form_combobox.vue +18 -0
- package/src/components/base/form/form_date/form_date.vue +18 -0
- package/src/components/base/form/form_fields/form_field_validator.vue +9 -0
- package/src/components/base/form/form_fields/form_fields_loop.vue +3 -0
- package/src/components/base/icon/icon.figma.batch.ts +26 -0
- package/src/components/base/markdown/markdown.vue +3 -0
- package/src/components/base/new_dropdowns/base_dropdown/base_dropdown.vue +54 -0
- package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.vue +3 -0
- package/src/components/base/new_dropdowns/listbox/listbox.vue +3 -0
- package/src/components/base/new_dropdowns/listbox/listbox_group.vue +6 -0
- package/src/components/base/new_dropdowns/listbox/listbox_item.vue +15 -0
- package/src/components/base/pagination/pagination.scss +1 -0
- package/src/components/base/search_box_by_click/search_box_by_click.vue +6 -0
- package/src/components/base/segmented_control/segmented_control.vue +6 -0
- package/src/components/base/table_lite/table_lite.vue +9 -0
- package/src/components/base/tabs/tab/tab.vue +3 -0
- package/src/components/base/tabs/tabs/tabs.vue +21 -0
- package/src/components/base/toast/toast.vue +12 -0
- package/src/components/base/toggle/toggle.vue +3 -0
- package/src/components/base/token_selector/token_container.vue +12 -0
- package/src/components/base/token_selector/token_selector_dropdown.vue +27 -0
- package/src/components/charts/area/area.vue +36 -0
- package/src/components/charts/bar/bar.vue +15 -0
- package/src/components/charts/chart/chart.vue +7 -1
- package/src/components/charts/column/column.vue +24 -0
- package/src/components/charts/discrete_scatter/discrete_scatter.vue +21 -0
- package/src/components/charts/gauge/gauge.vue +21 -0
- package/src/components/charts/heatmap/heatmap.vue +33 -0
- package/src/components/charts/legend/legend.vue +15 -0
- package/src/components/charts/line/line.vue +33 -0
- package/src/components/charts/series_label/series_label.vue +6 -0
- package/src/components/charts/shared/tooltip/tooltip.vue +6 -0
- package/src/components/charts/shared/tooltip/tooltip_default_format/tooltip_default_format.vue +3 -0
- package/src/components/charts/single_stat/single_stat.vue +30 -0
- package/src/components/charts/stacked_column/stacked_column.vue +55 -0
- package/src/components/regions/empty_state/empty_state.vue +3 -0
- package/src/components/shared_components/clear_icon_button/clear_icon_button.vue +6 -0
- package/src/components/shared_components/close_button/close_button.vue +3 -0
- package/src/components/utilities/animated_number/animated_number.vue +9 -0
- package/src/components/utilities/intersperse/intersperse.vue +6 -0
- package/src/tokens/build/figma/mode.dark.json +34 -17
- package/src/tokens/build/figma/mode.json +34 -17
- package/src/tokens/build/json/tokens.dark.json +68 -34
- package/src/tokens/build/json/tokens.json +68 -34
- package/src/tokens/contextual/toggle.tokens.json +34 -17
- package/src/tokens/tokens_story.vue +3 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gitlab/ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "135.0.0",
|
|
4
4
|
"description": "GitLab UI Components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"src/vendor/bootstrap-vue/src/**/*.{js,scss}",
|
|
30
30
|
"src/vendor/bootstrap/scss/**/*.scss",
|
|
31
31
|
"!*.figma.{js,ts}",
|
|
32
|
+
"!*.figma.batch.json",
|
|
32
33
|
"!*.stories.js",
|
|
33
34
|
"!*.snap",
|
|
34
35
|
"!*.spec.{js,scss}"
|
|
@@ -92,7 +93,7 @@
|
|
|
92
93
|
"chokidar": "^4.0.3",
|
|
93
94
|
"sane": "^5.0.1",
|
|
94
95
|
"jackspeak": "2.3.6",
|
|
95
|
-
"postcss": "8.5.
|
|
96
|
+
"postcss": "8.5.16",
|
|
96
97
|
"json5": "2.2.3",
|
|
97
98
|
"rollup-plugin-vue/@vue/component-compiler/postcss-modules-sync/generic-names/loader-utils": "3.3.1"
|
|
98
99
|
},
|
|
@@ -157,7 +158,7 @@
|
|
|
157
158
|
"pikaday": "^1.8.0",
|
|
158
159
|
"playwright": "^1.61.1",
|
|
159
160
|
"playwright-core": "^1.61.1",
|
|
160
|
-
"postcss": "8.5.
|
|
161
|
+
"postcss": "8.5.16",
|
|
161
162
|
"postcss-loader": "8.2.1",
|
|
162
163
|
"postcss-scss": "4.0.9",
|
|
163
164
|
"react": "18.3.1",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import { translate } from '../../../utils/i18n';
|
|
3
|
+
import { buttonSizeOptions } from '../../../utils/constants';
|
|
3
4
|
import GlButton from '../button/button.vue';
|
|
4
5
|
|
|
5
6
|
export default {
|
|
@@ -16,6 +17,15 @@ export default {
|
|
|
16
17
|
required: false,
|
|
17
18
|
default: false,
|
|
18
19
|
},
|
|
20
|
+
/**
|
|
21
|
+
* Specify the size of the button.
|
|
22
|
+
*/
|
|
23
|
+
size: {
|
|
24
|
+
type: String,
|
|
25
|
+
required: false,
|
|
26
|
+
default: 'medium',
|
|
27
|
+
validator: (value) => Object.keys(buttonSizeOptions).includes(value),
|
|
28
|
+
},
|
|
19
29
|
/**
|
|
20
30
|
* The label when in dark mode. Screen-reader only.
|
|
21
31
|
*/
|
|
@@ -59,6 +69,7 @@ export default {
|
|
|
59
69
|
:aria-label="ariaLabel"
|
|
60
70
|
class="btn-icon"
|
|
61
71
|
category="tertiary"
|
|
72
|
+
:size="size"
|
|
62
73
|
:icon="iconName"
|
|
63
74
|
@click="handleClick"
|
|
64
75
|
/>
|
|
@@ -94,11 +94,17 @@ export default {
|
|
|
94
94
|
required: false,
|
|
95
95
|
default: 'Search',
|
|
96
96
|
},
|
|
97
|
+
/**
|
|
98
|
+
* Title text for the clear button.
|
|
99
|
+
*/
|
|
97
100
|
clearButtonTitle: {
|
|
98
101
|
type: String,
|
|
99
102
|
required: false,
|
|
100
103
|
default: 'Clear',
|
|
101
104
|
},
|
|
105
|
+
/**
|
|
106
|
+
* Array of history items to display in the search.
|
|
107
|
+
*/
|
|
102
108
|
historyItems: {
|
|
103
109
|
type: Array,
|
|
104
110
|
required: false,
|
|
@@ -137,6 +143,9 @@ export default {
|
|
|
137
143
|
required: false,
|
|
138
144
|
default: () => ({}),
|
|
139
145
|
},
|
|
146
|
+
/**
|
|
147
|
+
* When true, renders the filtered search in a non-interactive view-only mode.
|
|
148
|
+
*/
|
|
140
149
|
viewOnly: {
|
|
141
150
|
type: Boolean,
|
|
142
151
|
required: false,
|
|
@@ -43,6 +43,9 @@ export default {
|
|
|
43
43
|
required: false,
|
|
44
44
|
default: () => ({ data: '' }),
|
|
45
45
|
},
|
|
46
|
+
/**
|
|
47
|
+
* Placeholder text for the search input.
|
|
48
|
+
*/
|
|
46
49
|
placeholder: {
|
|
47
50
|
type: String,
|
|
48
51
|
required: false,
|
|
@@ -72,6 +75,9 @@ export default {
|
|
|
72
75
|
required: false,
|
|
73
76
|
default: () => [],
|
|
74
77
|
},
|
|
78
|
+
/**
|
|
79
|
+
* Position of the cursor in the input.
|
|
80
|
+
*/
|
|
75
81
|
cursorPosition: {
|
|
76
82
|
type: String,
|
|
77
83
|
required: false,
|
|
@@ -86,6 +92,9 @@ export default {
|
|
|
86
92
|
required: false,
|
|
87
93
|
default: termTokenDefinition.title,
|
|
88
94
|
},
|
|
95
|
+
/**
|
|
96
|
+
* When true, renders in a non-interactive view-only mode.
|
|
97
|
+
*/
|
|
89
98
|
viewOnly: {
|
|
90
99
|
type: Boolean,
|
|
91
100
|
required: false,
|
|
@@ -25,6 +25,9 @@ export default {
|
|
|
25
25
|
},
|
|
26
26
|
inheritAttrs: false,
|
|
27
27
|
props: {
|
|
28
|
+
/**
|
|
29
|
+
* Array of available token definitions.
|
|
30
|
+
*/
|
|
28
31
|
availableTokens: {
|
|
29
32
|
type: Array,
|
|
30
33
|
required: false,
|
|
@@ -46,6 +49,9 @@ export default {
|
|
|
46
49
|
required: false,
|
|
47
50
|
default: false,
|
|
48
51
|
},
|
|
52
|
+
/**
|
|
53
|
+
* Array of pre-selected multi-select values.
|
|
54
|
+
*/
|
|
49
55
|
multiSelectValues: {
|
|
50
56
|
type: Array,
|
|
51
57
|
required: false,
|
|
@@ -67,17 +73,26 @@ export default {
|
|
|
67
73
|
required: false,
|
|
68
74
|
default: false,
|
|
69
75
|
},
|
|
76
|
+
/**
|
|
77
|
+
* Position of the cursor in the input.
|
|
78
|
+
*/
|
|
70
79
|
cursorPosition: {
|
|
71
80
|
type: String,
|
|
72
81
|
required: false,
|
|
73
82
|
default: 'end',
|
|
74
83
|
validator: (value) => ['start', 'end'].includes(value),
|
|
75
84
|
},
|
|
85
|
+
/**
|
|
86
|
+
* When true, renders in a non-interactive view-only mode.
|
|
87
|
+
*/
|
|
76
88
|
viewOnly: {
|
|
77
89
|
type: Boolean,
|
|
78
90
|
required: false,
|
|
79
91
|
default: false,
|
|
80
92
|
},
|
|
93
|
+
/**
|
|
94
|
+
* Attributes to bind to the input element of the data segment.
|
|
95
|
+
*/
|
|
81
96
|
dataSegmentInputAttributes: {
|
|
82
97
|
type: Object,
|
|
83
98
|
required: false,
|
|
@@ -70,31 +70,49 @@ export default {
|
|
|
70
70
|
required: false,
|
|
71
71
|
default: false,
|
|
72
72
|
},
|
|
73
|
+
/**
|
|
74
|
+
* Whether this segment represents a search term.
|
|
75
|
+
*/
|
|
73
76
|
isTerm: {
|
|
74
77
|
type: Boolean,
|
|
75
78
|
required: false,
|
|
76
79
|
default: false,
|
|
77
80
|
},
|
|
81
|
+
/**
|
|
82
|
+
* Label text for the segment.
|
|
83
|
+
*/
|
|
78
84
|
label: {
|
|
79
85
|
type: String,
|
|
80
86
|
required: false,
|
|
81
87
|
default: 'Search',
|
|
82
88
|
},
|
|
89
|
+
/**
|
|
90
|
+
* When true, enables multi-select mode.
|
|
91
|
+
*/
|
|
83
92
|
multiSelect: {
|
|
84
93
|
type: Boolean,
|
|
85
94
|
required: false,
|
|
86
95
|
default: false,
|
|
87
96
|
},
|
|
97
|
+
/**
|
|
98
|
+
* Array of selectable options.
|
|
99
|
+
*/
|
|
88
100
|
options: {
|
|
89
101
|
type: Array,
|
|
90
102
|
required: false,
|
|
91
103
|
default: () => null,
|
|
92
104
|
},
|
|
105
|
+
/**
|
|
106
|
+
* The field name used for option display text.
|
|
107
|
+
*/
|
|
93
108
|
optionTextField: {
|
|
94
109
|
type: String,
|
|
95
110
|
required: false,
|
|
96
111
|
default: 'title',
|
|
97
112
|
},
|
|
113
|
+
/**
|
|
114
|
+
* Custom keydown event handler function.
|
|
115
|
+
*/
|
|
98
116
|
customInputKeydownHandler: {
|
|
99
117
|
type: Function,
|
|
100
118
|
required: false,
|
|
@@ -123,17 +141,26 @@ export default {
|
|
|
123
141
|
required: false,
|
|
124
142
|
default: false,
|
|
125
143
|
},
|
|
144
|
+
/**
|
|
145
|
+
* The current value of the segment.
|
|
146
|
+
*/
|
|
126
147
|
currentValue: {
|
|
127
148
|
type: Array,
|
|
128
149
|
required: false,
|
|
129
150
|
default: () => [],
|
|
130
151
|
},
|
|
152
|
+
/**
|
|
153
|
+
* Position of the cursor in the input.
|
|
154
|
+
*/
|
|
131
155
|
cursorPosition: {
|
|
132
156
|
type: String,
|
|
133
157
|
required: false,
|
|
134
158
|
default: 'end',
|
|
135
159
|
validator: (value) => ['start', 'end'].includes(value),
|
|
136
160
|
},
|
|
161
|
+
/**
|
|
162
|
+
* When true, renders in a non-interactive view-only mode.
|
|
163
|
+
*/
|
|
137
164
|
viewOnly: {
|
|
138
165
|
type: Boolean,
|
|
139
166
|
required: false,
|
|
@@ -19,15 +19,24 @@ export default {
|
|
|
19
19
|
event: 'input',
|
|
20
20
|
},
|
|
21
21
|
props: {
|
|
22
|
+
/**
|
|
23
|
+
* Text for the combobox label.
|
|
24
|
+
*/
|
|
22
25
|
labelText: {
|
|
23
26
|
type: String,
|
|
24
27
|
required: true,
|
|
25
28
|
},
|
|
29
|
+
/**
|
|
30
|
+
* When true, visually hides the label while keeping it accessible to screen readers.
|
|
31
|
+
*/
|
|
26
32
|
labelSrOnly: {
|
|
27
33
|
type: Boolean,
|
|
28
34
|
required: false,
|
|
29
35
|
default: false,
|
|
30
36
|
},
|
|
37
|
+
/**
|
|
38
|
+
* Array of tokens displayed in the combobox.
|
|
39
|
+
*/
|
|
31
40
|
tokenList: {
|
|
32
41
|
type: Array,
|
|
33
42
|
required: true,
|
|
@@ -40,15 +49,24 @@ export default {
|
|
|
40
49
|
required: false,
|
|
41
50
|
default: () => [],
|
|
42
51
|
},
|
|
52
|
+
/**
|
|
53
|
+
* The current value of the combobox.
|
|
54
|
+
*/
|
|
43
55
|
value: {
|
|
44
56
|
type: [String, Object],
|
|
45
57
|
required: true,
|
|
46
58
|
},
|
|
59
|
+
/**
|
|
60
|
+
* The attribute name used to match values against options.
|
|
61
|
+
*/
|
|
47
62
|
matchValueToAttr: {
|
|
48
63
|
type: String,
|
|
49
64
|
required: false,
|
|
50
65
|
default: undefined,
|
|
51
66
|
},
|
|
67
|
+
/**
|
|
68
|
+
* When true, automatically focuses the combobox on mount.
|
|
69
|
+
*/
|
|
52
70
|
autofocus: {
|
|
53
71
|
type: Boolean,
|
|
54
72
|
required: false,
|
|
@@ -13,31 +13,49 @@ export default {
|
|
|
13
13
|
prop: 'value',
|
|
14
14
|
},
|
|
15
15
|
props: {
|
|
16
|
+
/**
|
|
17
|
+
* Unique identifier for the date input.
|
|
18
|
+
*/
|
|
16
19
|
id: {
|
|
17
20
|
type: String,
|
|
18
21
|
required: false,
|
|
19
22
|
default: null,
|
|
20
23
|
},
|
|
24
|
+
/**
|
|
25
|
+
* Minimum allowed date value.
|
|
26
|
+
*/
|
|
21
27
|
min: {
|
|
22
28
|
type: String,
|
|
23
29
|
required: false,
|
|
24
30
|
default: null,
|
|
25
31
|
},
|
|
32
|
+
/**
|
|
33
|
+
* Maximum allowed date value.
|
|
34
|
+
*/
|
|
26
35
|
max: {
|
|
27
36
|
type: String,
|
|
28
37
|
required: false,
|
|
29
38
|
default: null,
|
|
30
39
|
},
|
|
40
|
+
/**
|
|
41
|
+
* Error message displayed when the value is below the minimum.
|
|
42
|
+
*/
|
|
31
43
|
minInvalidFeedback: {
|
|
32
44
|
type: String,
|
|
33
45
|
required: false,
|
|
34
46
|
default: 'Must be after minimum date.',
|
|
35
47
|
},
|
|
48
|
+
/**
|
|
49
|
+
* Error message displayed when the value exceeds the maximum.
|
|
50
|
+
*/
|
|
36
51
|
maxInvalidFeedback: {
|
|
37
52
|
type: String,
|
|
38
53
|
required: false,
|
|
39
54
|
default: 'Must be before maximum date.',
|
|
40
55
|
},
|
|
56
|
+
/**
|
|
57
|
+
* The current value of the date picker.
|
|
58
|
+
*/
|
|
41
59
|
value: {
|
|
42
60
|
type: String,
|
|
43
61
|
required: false,
|
|
@@ -12,16 +12,25 @@
|
|
|
12
12
|
export default {
|
|
13
13
|
name: 'GlFormFieldValidator',
|
|
14
14
|
props: {
|
|
15
|
+
/**
|
|
16
|
+
* The value to validate.
|
|
17
|
+
*/
|
|
15
18
|
value: {
|
|
16
19
|
required: true,
|
|
17
20
|
// ESLint requires "validator" or "type". Any kind of value is valid.
|
|
18
21
|
validator: () => true,
|
|
19
22
|
},
|
|
23
|
+
/**
|
|
24
|
+
* Array of validation functions or rules.
|
|
25
|
+
*/
|
|
20
26
|
validators: {
|
|
21
27
|
type: Array,
|
|
22
28
|
required: false,
|
|
23
29
|
default: () => [],
|
|
24
30
|
},
|
|
31
|
+
/**
|
|
32
|
+
* When true, triggers validation.
|
|
33
|
+
*/
|
|
25
34
|
shouldValidate: {
|
|
26
35
|
type: Boolean,
|
|
27
36
|
required: false,
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import figma from 'figma';
|
|
2
|
+
|
|
3
|
+
// Shared Code Connect template for every icon in the GitLab Product Icons
|
|
4
|
+
// library. One entry per icon is supplied by icon.figma.batch.json; the icon's
|
|
5
|
+
// name is exposed via figma.batch.name.
|
|
6
|
+
//
|
|
7
|
+
// Some icons are framed at a non-default size in Figma (e.g. the 12px trend,
|
|
8
|
+
// severity, and status icons). Those entries carry a `size` field in the batch
|
|
9
|
+
// JSON, which is rendered as `:size="12"`. Icons without a `size` field use the
|
|
10
|
+
// GlIcon default (16) and render no size attribute.
|
|
11
|
+
//
|
|
12
|
+
// `metadata.props.name` lets consuming components (badge, button, etc.) read
|
|
13
|
+
// the chosen icon's name through
|
|
14
|
+
// `instance.getInstanceSwap(prop).executeTemplate().metadata.props.name`,
|
|
15
|
+
// which is how we eventually replace the icon="REPLACE" placeholders.
|
|
16
|
+
const sizeAttr = figma.batch.size ? ` :size="${figma.batch.size}"` : '';
|
|
17
|
+
|
|
18
|
+
export default {
|
|
19
|
+
id: figma.batch.id,
|
|
20
|
+
imports: ["import { GlIcon } from '@gitlab/ui'"],
|
|
21
|
+
example: figma.code`<gl-icon name="${figma.batch.name}"${sizeAttr} />`,
|
|
22
|
+
metadata: {
|
|
23
|
+
nestable: true,
|
|
24
|
+
props: { name: figma.batch.name },
|
|
25
|
+
},
|
|
26
|
+
};
|
|
@@ -61,59 +61,92 @@ export default {
|
|
|
61
61
|
},
|
|
62
62
|
},
|
|
63
63
|
props: {
|
|
64
|
+
/**
|
|
65
|
+
* Text displayed on the dropdown toggle button.
|
|
66
|
+
*/
|
|
64
67
|
toggleText: {
|
|
65
68
|
type: String,
|
|
66
69
|
required: false,
|
|
67
70
|
default: '',
|
|
68
71
|
},
|
|
72
|
+
/**
|
|
73
|
+
* When true, visually hides the toggle text while keeping it accessible to screen readers.
|
|
74
|
+
*/
|
|
69
75
|
textSrOnly: {
|
|
70
76
|
type: Boolean,
|
|
71
77
|
required: false,
|
|
72
78
|
default: false,
|
|
73
79
|
},
|
|
80
|
+
/**
|
|
81
|
+
* When true, renders the dropdown at 100% width of its parent container.
|
|
82
|
+
*/
|
|
74
83
|
block: {
|
|
75
84
|
type: Boolean,
|
|
76
85
|
required: false,
|
|
77
86
|
default: false,
|
|
78
87
|
},
|
|
88
|
+
/**
|
|
89
|
+
* Visual category of the dropdown toggle button.
|
|
90
|
+
*/
|
|
79
91
|
category: {
|
|
80
92
|
type: String,
|
|
81
93
|
required: false,
|
|
82
94
|
default: buttonCategoryOptions.primary,
|
|
83
95
|
validator: (value) => Object.keys(buttonCategoryOptions).includes(value),
|
|
84
96
|
},
|
|
97
|
+
/**
|
|
98
|
+
* Visual variant of the dropdown toggle button.
|
|
99
|
+
*/
|
|
85
100
|
variant: {
|
|
86
101
|
type: String,
|
|
87
102
|
required: false,
|
|
88
103
|
default: dropdownVariantOptions.default,
|
|
89
104
|
validator: (value) => Object.keys(dropdownVariantOptions).includes(value),
|
|
90
105
|
},
|
|
106
|
+
/**
|
|
107
|
+
* Size of the dropdown toggle button.
|
|
108
|
+
*/
|
|
91
109
|
size: {
|
|
92
110
|
type: String,
|
|
93
111
|
required: false,
|
|
94
112
|
default: 'medium',
|
|
95
113
|
validator: (value) => Object.keys(buttonSizeOptions).includes(value),
|
|
96
114
|
},
|
|
115
|
+
/**
|
|
116
|
+
* Name of the icon to display in the toggle button.
|
|
117
|
+
*/
|
|
97
118
|
icon: {
|
|
98
119
|
type: String,
|
|
99
120
|
required: false,
|
|
100
121
|
default: '',
|
|
101
122
|
},
|
|
123
|
+
/**
|
|
124
|
+
* When true, disables the dropdown.
|
|
125
|
+
*/
|
|
102
126
|
disabled: {
|
|
103
127
|
type: Boolean,
|
|
104
128
|
required: false,
|
|
105
129
|
default: false,
|
|
106
130
|
},
|
|
131
|
+
/**
|
|
132
|
+
* When true, shows a loading state on the toggle button.
|
|
133
|
+
*/
|
|
107
134
|
loading: {
|
|
108
135
|
type: Boolean,
|
|
109
136
|
required: false,
|
|
110
137
|
default: false,
|
|
111
138
|
},
|
|
139
|
+
/**
|
|
140
|
+
* Additional CSS classes to apply to the toggle element.
|
|
141
|
+
*/
|
|
112
142
|
toggleClass: {
|
|
113
143
|
type: [String, Array, Object],
|
|
114
144
|
required: false,
|
|
115
145
|
default: null,
|
|
116
146
|
},
|
|
147
|
+
/**
|
|
148
|
+
* When true, hides the caret icon on the toggle button.
|
|
149
|
+
*/
|
|
117
150
|
noCaret: {
|
|
118
151
|
type: Boolean,
|
|
119
152
|
required: false,
|
|
@@ -127,6 +160,9 @@ export default {
|
|
|
127
160
|
required: false,
|
|
128
161
|
default: null,
|
|
129
162
|
},
|
|
163
|
+
/**
|
|
164
|
+
* Placement for the dropdown menu.
|
|
165
|
+
*/
|
|
130
166
|
placement: {
|
|
131
167
|
type: String,
|
|
132
168
|
required: false,
|
|
@@ -143,6 +179,9 @@ export default {
|
|
|
143
179
|
},
|
|
144
180
|
},
|
|
145
181
|
// ARIA props
|
|
182
|
+
/**
|
|
183
|
+
* ARIA haspopup attribute value for accessibility.
|
|
184
|
+
*/
|
|
146
185
|
ariaHaspopup: {
|
|
147
186
|
type: [String, Boolean],
|
|
148
187
|
required: false,
|
|
@@ -151,21 +190,33 @@ export default {
|
|
|
151
190
|
return ['menu', 'listbox', 'tree', 'grid', 'dialog', true, false].includes(value);
|
|
152
191
|
},
|
|
153
192
|
},
|
|
193
|
+
/**
|
|
194
|
+
* ID of the currently active item for accessibility.
|
|
195
|
+
*/
|
|
154
196
|
activeItemId: {
|
|
155
197
|
type: String,
|
|
156
198
|
required: false,
|
|
157
199
|
default: undefined,
|
|
158
200
|
},
|
|
201
|
+
/**
|
|
202
|
+
* When true, indicates the dropdown has an external label for accessibility.
|
|
203
|
+
*/
|
|
159
204
|
hasExternalLabel: {
|
|
160
205
|
type: Boolean,
|
|
161
206
|
required: false,
|
|
162
207
|
default: false,
|
|
163
208
|
},
|
|
209
|
+
/**
|
|
210
|
+
* When true, renders a searchable listbox.
|
|
211
|
+
*/
|
|
164
212
|
hasSearchableListbox: {
|
|
165
213
|
type: Boolean,
|
|
166
214
|
required: false,
|
|
167
215
|
default: false,
|
|
168
216
|
},
|
|
217
|
+
/**
|
|
218
|
+
* When true, renders as a disclosure dropdown.
|
|
219
|
+
*/
|
|
169
220
|
isDisclosure: {
|
|
170
221
|
type: Boolean,
|
|
171
222
|
required: false,
|
|
@@ -212,6 +263,9 @@ export default {
|
|
|
212
263
|
required: false,
|
|
213
264
|
default: () => ({ mainAxis: DEFAULT_OFFSET }),
|
|
214
265
|
},
|
|
266
|
+
/**
|
|
267
|
+
* When true, allows the dropdown to take the full width available.
|
|
268
|
+
*/
|
|
215
269
|
fluidWidth: {
|
|
216
270
|
type: Boolean,
|
|
217
271
|
required: false,
|
|
@@ -4,10 +4,16 @@ import { uniqueId } from 'lodash-es';
|
|
|
4
4
|
export default {
|
|
5
5
|
name: 'GlListboxGroup',
|
|
6
6
|
props: {
|
|
7
|
+
/**
|
|
8
|
+
* The display name of the listbox group.
|
|
9
|
+
*/
|
|
7
10
|
name: {
|
|
8
11
|
type: String,
|
|
9
12
|
required: true,
|
|
10
13
|
},
|
|
14
|
+
/**
|
|
15
|
+
* When true, visually hides the group name while keeping it accessible to screen readers.
|
|
16
|
+
*/
|
|
11
17
|
textSrOnly: {
|
|
12
18
|
type: Boolean,
|
|
13
19
|
required: false,
|
|
@@ -9,26 +9,41 @@ export default {
|
|
|
9
9
|
GlIcon,
|
|
10
10
|
},
|
|
11
11
|
props: {
|
|
12
|
+
/**
|
|
13
|
+
* When true, marks the item as selected.
|
|
14
|
+
*/
|
|
12
15
|
isSelected: {
|
|
13
16
|
type: Boolean,
|
|
14
17
|
default: false,
|
|
15
18
|
required: false,
|
|
16
19
|
},
|
|
20
|
+
/**
|
|
21
|
+
* When true, marks the item as focused.
|
|
22
|
+
*/
|
|
17
23
|
isFocused: {
|
|
18
24
|
type: Boolean,
|
|
19
25
|
default: false,
|
|
20
26
|
required: false,
|
|
21
27
|
},
|
|
28
|
+
/**
|
|
29
|
+
* When true, centers the check icon.
|
|
30
|
+
*/
|
|
22
31
|
isCheckCentered: {
|
|
23
32
|
type: Boolean,
|
|
24
33
|
required: false,
|
|
25
34
|
default: false,
|
|
26
35
|
},
|
|
36
|
+
/**
|
|
37
|
+
* When true, highlights the item.
|
|
38
|
+
*/
|
|
27
39
|
isHighlighted: {
|
|
28
40
|
type: Boolean,
|
|
29
41
|
default: false,
|
|
30
42
|
required: false,
|
|
31
43
|
},
|
|
44
|
+
/**
|
|
45
|
+
* When true, disables the item.
|
|
46
|
+
*/
|
|
32
47
|
isDisabled: {
|
|
33
48
|
type: Boolean,
|
|
34
49
|
default: false,
|