@gitlab/ui 96.3.0 → 97.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/dist/components/base/alert/alert.js +1 -1
- package/dist/components/base/avatar/avatar.js +4 -4
- package/dist/components/base/datepicker/datepicker.js +1 -1
- package/dist/components/base/drawer/drawer.js +1 -1
- package/dist/components/base/form/form_input/form_input.js +3 -3
- package/dist/components/base/form/form_select/form_select.js +3 -3
- package/dist/components/base/progress_bar/progress_bar.js +47 -5
- package/dist/components/base/toast/toast.js +1 -1
- package/dist/components/base/toggle/toggle.js +1 -1
- package/dist/components/base/token/token.js +1 -1
- package/dist/components/base/token_selector/token_selector.js +17 -7
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/tailwind.css.map +1 -1
- package/dist/tokens/build/js/tokens.dark.js +2 -1
- package/dist/tokens/build/js/tokens.js +2 -1
- package/dist/tokens/css/tokens.css +1 -0
- package/dist/tokens/css/tokens.dark.css +1 -0
- package/dist/tokens/js/tokens.dark.js +1 -0
- package/dist/tokens/js/tokens.js +1 -0
- package/dist/tokens/json/tokens.dark.json +35 -0
- package/dist/tokens/json/tokens.json +35 -0
- package/dist/tokens/scss/_tokens.dark.scss +1 -0
- package/dist/tokens/scss/_tokens.scss +1 -0
- package/dist/tokens/scss/_tokens_custom_properties.scss +1 -0
- package/dist/utils/number_utils.js +9 -1
- package/dist/vendor/bootstrap-vue/src/constants/components.js +1 -3
- package/dist/vendor/bootstrap-vue/src/index.js +0 -2
- package/package.json +7 -7
- package/src/components/base/alert/alert.vue +1 -1
- package/src/components/base/avatar/avatar.vue +4 -4
- package/src/components/base/datepicker/datepicker.vue +1 -1
- package/src/components/base/drawer/drawer.vue +1 -1
- package/src/components/base/form/form_input/form_input.scss +1 -2
- package/src/components/base/form/form_input/form_input.vue +3 -3
- package/src/components/base/form/form_select/form_select.vue +3 -3
- package/src/components/base/modal/modal.scss +1 -2
- package/src/components/base/progress_bar/progress_bar.md +25 -0
- package/src/components/base/progress_bar/progress_bar.scss +11 -0
- package/src/components/base/progress_bar/progress_bar.vue +54 -5
- package/src/components/base/toast/toast.js +1 -1
- package/src/components/base/toggle/toggle.scss +28 -7
- package/src/components/base/toggle/toggle.vue +1 -0
- package/src/components/base/token/token.vue +1 -1
- package/src/components/base/token_selector/token_selector.scss +8 -3
- package/src/components/base/token_selector/token_selector.vue +17 -9
- package/src/tokens/build/css/tokens.css +1 -0
- package/src/tokens/build/css/tokens.dark.css +1 -0
- package/src/tokens/build/js/tokens.dark.js +1 -0
- package/src/tokens/build/js/tokens.js +1 -0
- package/src/tokens/build/json/tokens.dark.json +35 -0
- package/src/tokens/build/json/tokens.json +35 -0
- package/src/tokens/build/scss/_tokens.dark.scss +1 -0
- package/src/tokens/build/scss/_tokens.scss +1 -0
- package/src/tokens/build/scss/_tokens_custom_properties.scss +1 -0
- package/src/tokens/contextual/token-selector.tokens.json +20 -0
- package/src/utils/number_utils.js +7 -0
- package/src/vendor/bootstrap-vue/package.json +3 -42
- package/src/vendor/bootstrap-vue/src/components/badge/README.md +2 -2
- package/src/vendor/bootstrap-vue/src/components/breadcrumb/README.md +2 -2
- package/src/vendor/bootstrap-vue/src/components/button/README.md +7 -9
- package/src/vendor/bootstrap-vue/src/components/button-group/README.md +0 -5
- package/src/vendor/bootstrap-vue/src/components/collapse/README.md +2 -2
- package/src/vendor/bootstrap-vue/src/components/dropdown/README.md +5 -5
- package/src/vendor/bootstrap-vue/src/components/form/README.md +21 -26
- package/src/vendor/bootstrap-vue/src/components/form-checkbox/README.md +6 -6
- package/src/vendor/bootstrap-vue/src/components/form-group/README.md +6 -4
- package/src/vendor/bootstrap-vue/src/components/form-input/README.md +4 -4
- package/src/vendor/bootstrap-vue/src/components/form-radio/README.md +1 -1
- package/src/vendor/bootstrap-vue/src/components/index.d.ts +0 -1
- package/src/vendor/bootstrap-vue/src/components/input-group/README.md +4 -9
- package/src/vendor/bootstrap-vue/src/components/layout/README.md +3 -3
- package/src/vendor/bootstrap-vue/src/components/link/README.md +1 -1
- package/src/vendor/bootstrap-vue/src/components/modal/README.md +2 -2
- package/src/vendor/bootstrap-vue/src/components/nav/README.md +13 -14
- package/src/vendor/bootstrap-vue/src/components/navbar/README.md +5 -6
- package/src/vendor/bootstrap-vue/src/components/popover/README.md +4 -4
- package/src/vendor/bootstrap-vue/src/components/table/README.md +5 -5
- package/src/vendor/bootstrap-vue/src/components/tabs/README.md +2 -2
- package/src/vendor/bootstrap-vue/src/components/toast/README.md +5 -5
- package/src/vendor/bootstrap-vue/src/components/tooltip/README.md +4 -4
- package/src/vendor/bootstrap-vue/src/constants/components.js +0 -2
- package/src/vendor/bootstrap-vue/src/directives/toggle/README.md +5 -6
- package/src/vendor/bootstrap-vue/src/directives/tooltip/README.md +2 -2
- package/src/vendor/bootstrap-vue/src/index.js +0 -4
- package/dist/vendor/bootstrap-vue/src/components/progress/index.js +0 -2
- package/dist/vendor/bootstrap-vue/src/components/progress/progress-bar.js +0 -128
- package/dist/vendor/bootstrap-vue/src/components/progress/progress.js +0 -56
- package/src/vendor/bootstrap-vue/nuxt/index.js +0 -164
- package/src/vendor/bootstrap-vue/nuxt/plugin.template.js +0 -29
- package/src/vendor/bootstrap-vue/src/components/progress/MODIFICATIONS.md +0 -23
- package/src/vendor/bootstrap-vue/src/components/progress/README.md +0 -363
- package/src/vendor/bootstrap-vue/src/components/progress/index.d.ts +0 -10
- package/src/vendor/bootstrap-vue/src/components/progress/index.js +0 -4
- package/src/vendor/bootstrap-vue/src/components/progress/package.json +0 -109
- package/src/vendor/bootstrap-vue/src/components/progress/progress-bar.js +0 -133
- package/src/vendor/bootstrap-vue/src/components/progress/progress-bar.spec.js +0 -270
- package/src/vendor/bootstrap-vue/src/components/progress/progress.js +0 -57
- package/src/vendor/bootstrap-vue/src/components/progress/progress.spec.js +0 -71
|
@@ -691,6 +691,7 @@ $gl-toggle-switch-icon-color-checked-hover: var(--gl-toggle-switch-icon-color-ch
|
|
|
691
691
|
$gl-toggle-switch-icon-color-checked-focus: var(--gl-toggle-switch-icon-color-checked-focus);
|
|
692
692
|
$gl-toggle-switch-icon-color-checked-active: var(--gl-toggle-switch-icon-color-checked-active);
|
|
693
693
|
$gl-toggle-switch-icon-color-disabled: var(--gl-toggle-switch-icon-color-disabled);
|
|
694
|
+
$gl-token-selector-token-container-token-background-color-focus: var(--gl-token-selector-token-container-token-background-color-focus);
|
|
694
695
|
$gl-token-foreground-color: var(--gl-token-foreground-color);
|
|
695
696
|
$gl-token-background-color: var(--gl-token-background-color);
|
|
696
697
|
$gl-control-background-color-default: var(--gl-control-background-color-default);
|
|
@@ -121,4 +121,12 @@ const formatNumberToLocale = function (value) {
|
|
|
121
121
|
return new Intl.NumberFormat(locales, options).format(value);
|
|
122
122
|
};
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
// Converts a value (string, number, etc.) to a number
|
|
125
|
+
// Taken from bootstrap-vue
|
|
126
|
+
const toFloat = function (value) {
|
|
127
|
+
let defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;
|
|
128
|
+
const float = parseFloat(value);
|
|
129
|
+
return Number.isNaN(float) ? defaultValue : float;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
export { addition, average, engineeringNotation, formatNumberToLocale, modulo, sum, toFloat };
|
|
@@ -44,8 +44,6 @@ const NAME_NAVBAR_BRAND = 'BNavbarBrand';
|
|
|
44
44
|
const NAME_NAV_ITEM = 'BNavItem';
|
|
45
45
|
const NAME_NAV_ITEM_DROPDOWN = 'BNavItemDropdown';
|
|
46
46
|
const NAME_POPOVER = 'BPopover';
|
|
47
|
-
const NAME_PROGRESS = 'BProgress';
|
|
48
|
-
const NAME_PROGRESS_BAR = 'BProgressBar';
|
|
49
47
|
const NAME_TAB = 'BTab';
|
|
50
48
|
const NAME_TABLE = 'BTable';
|
|
51
49
|
const NAME_TABLE_CELL = 'BTableCell';
|
|
@@ -76,4 +74,4 @@ const NAME_TRANSITION = 'BVTransition';
|
|
|
76
74
|
const NAME_TRANSPORTER = 'BVTransporter';
|
|
77
75
|
const NAME_TRANSPORTER_TARGET = 'BVTransporterTarget';
|
|
78
76
|
|
|
79
|
-
export { NAME_BADGE, NAME_BREADCRUMB, NAME_BREADCRUMB_ITEM, NAME_BREADCRUMB_LINK, NAME_BUTTON, NAME_BUTTON_CLOSE, NAME_BUTTON_GROUP, NAME_COL, NAME_COLLAPSE, NAME_COLLAPSE_HELPER, NAME_DROPDOWN, NAME_DROPDOWN_DIVIDER, NAME_DROPDOWN_FORM, NAME_DROPDOWN_GROUP, NAME_DROPDOWN_HEADER, NAME_DROPDOWN_ITEM, NAME_DROPDOWN_ITEM_BUTTON, NAME_DROPDOWN_TEXT, NAME_FORM, NAME_FORM_BUTTON_LABEL_CONTROL, NAME_FORM_CHECKBOX, NAME_FORM_CHECKBOX_GROUP, NAME_FORM_GROUP, NAME_FORM_INPUT, NAME_FORM_INVALID_FEEDBACK, NAME_FORM_RADIO, NAME_FORM_RADIO_GROUP, NAME_FORM_RATING_STAR, NAME_FORM_ROW, NAME_FORM_SELECT, NAME_FORM_SELECT_OPTION, NAME_FORM_SELECT_OPTION_GROUP, NAME_FORM_TEXT, NAME_FORM_TEXTAREA, NAME_FORM_VALID_FEEDBACK, NAME_INPUT_GROUP, NAME_INPUT_GROUP_ADDON, NAME_INPUT_GROUP_APPEND, NAME_INPUT_GROUP_PREPEND, NAME_INPUT_GROUP_TEXT, NAME_LINK, NAME_MODAL, NAME_NAV, NAME_NAVBAR, NAME_NAVBAR_BRAND, NAME_NAV_ITEM, NAME_NAV_ITEM_DROPDOWN, NAME_POPOVER, NAME_POPOVER_HELPER, NAME_POPOVER_TEMPLATE, NAME_POPPER,
|
|
77
|
+
export { NAME_BADGE, NAME_BREADCRUMB, NAME_BREADCRUMB_ITEM, NAME_BREADCRUMB_LINK, NAME_BUTTON, NAME_BUTTON_CLOSE, NAME_BUTTON_GROUP, NAME_COL, NAME_COLLAPSE, NAME_COLLAPSE_HELPER, NAME_DROPDOWN, NAME_DROPDOWN_DIVIDER, NAME_DROPDOWN_FORM, NAME_DROPDOWN_GROUP, NAME_DROPDOWN_HEADER, NAME_DROPDOWN_ITEM, NAME_DROPDOWN_ITEM_BUTTON, NAME_DROPDOWN_TEXT, NAME_FORM, NAME_FORM_BUTTON_LABEL_CONTROL, NAME_FORM_CHECKBOX, NAME_FORM_CHECKBOX_GROUP, NAME_FORM_GROUP, NAME_FORM_INPUT, NAME_FORM_INVALID_FEEDBACK, NAME_FORM_RADIO, NAME_FORM_RADIO_GROUP, NAME_FORM_RATING_STAR, NAME_FORM_ROW, NAME_FORM_SELECT, NAME_FORM_SELECT_OPTION, NAME_FORM_SELECT_OPTION_GROUP, NAME_FORM_TEXT, NAME_FORM_TEXTAREA, NAME_FORM_VALID_FEEDBACK, NAME_INPUT_GROUP, NAME_INPUT_GROUP_ADDON, NAME_INPUT_GROUP_APPEND, NAME_INPUT_GROUP_PREPEND, NAME_INPUT_GROUP_TEXT, NAME_LINK, NAME_MODAL, NAME_NAV, NAME_NAVBAR, NAME_NAVBAR_BRAND, NAME_NAV_ITEM, NAME_NAV_ITEM_DROPDOWN, NAME_POPOVER, NAME_POPOVER_HELPER, NAME_POPOVER_TEMPLATE, NAME_POPPER, NAME_TAB, NAME_TABLE, NAME_TABLE_CELL, NAME_TABLE_LITE, NAME_TABLE_SIMPLE, NAME_TABS, NAME_TAB_BUTTON_HELPER, NAME_TBODY, NAME_TFOOT, NAME_TH, NAME_THEAD, NAME_TOAST, NAME_TOASTER, NAME_TOAST_POP, NAME_TOOLTIP, NAME_TOOLTIP_HELPER, NAME_TOOLTIP_TEMPLATE, NAME_TR, NAME_TRANSITION, NAME_TRANSPORTER, NAME_TRANSPORTER_TARGET };
|
|
@@ -46,8 +46,6 @@ export { BNavItemDropdown } from './components/nav/nav-item-dropdown';
|
|
|
46
46
|
export { BNavbar } from './components/navbar/navbar';
|
|
47
47
|
export { BNavbarBrand } from './components/navbar/navbar-brand';
|
|
48
48
|
export { BPopover } from './components/popover/popover';
|
|
49
|
-
export { BProgress } from './components/progress/progress';
|
|
50
|
-
export { BProgressBar } from './components/progress/progress-bar';
|
|
51
49
|
export { BTable } from './components/table/table';
|
|
52
50
|
export { BTableLite } from './components/table/table-lite';
|
|
53
51
|
export { BTableSimple } from './components/table/table-simple';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gitlab/ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "97.1.0",
|
|
4
4
|
"description": "GitLab UI Components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -107,13 +107,13 @@
|
|
|
107
107
|
},
|
|
108
108
|
"devDependencies": {
|
|
109
109
|
"@arkweid/lefthook": "0.7.7",
|
|
110
|
-
"@babel/core": "^7.25.
|
|
110
|
+
"@babel/core": "^7.25.8",
|
|
111
111
|
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
|
|
112
112
|
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
|
|
113
|
-
"@babel/preset-env": "^7.25.
|
|
113
|
+
"@babel/preset-env": "^7.25.8",
|
|
114
114
|
"@babel/preset-react": "^7.25.7",
|
|
115
115
|
"@cypress/grep": "^4.0.1",
|
|
116
|
-
"@gitlab/eslint-plugin": "20.
|
|
116
|
+
"@gitlab/eslint-plugin": "20.4.1",
|
|
117
117
|
"@gitlab/fonts": "^1.3.0",
|
|
118
118
|
"@gitlab/stylelint-config": "6.2.2",
|
|
119
119
|
"@gitlab/svgs": "3.117.0",
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
"esbuild": "^0.18.0",
|
|
158
158
|
"eslint": "8.57.1",
|
|
159
159
|
"eslint-import-resolver-jest": "3.0.2",
|
|
160
|
-
"eslint-plugin-cypress": "3.
|
|
160
|
+
"eslint-plugin-cypress": "3.6.0",
|
|
161
161
|
"eslint-plugin-storybook": "0.9.0",
|
|
162
162
|
"gitlab-api-async-iterator": "^1.3.1",
|
|
163
163
|
"glob": "10.3.3",
|
|
@@ -174,8 +174,8 @@
|
|
|
174
174
|
"module-alias": "^2.2.2",
|
|
175
175
|
"npm-run-all": "^4.1.5",
|
|
176
176
|
"pikaday": "^1.8.0",
|
|
177
|
-
"playwright": "^1.
|
|
178
|
-
"playwright-core": "^1.
|
|
177
|
+
"playwright": "^1.48.0",
|
|
178
|
+
"playwright-core": "^1.48.0",
|
|
179
179
|
"plop": "^2.5.4",
|
|
180
180
|
"postcss": "8.4.28",
|
|
181
181
|
"postcss-loader": "^7.0.2",
|
|
@@ -156,7 +156,7 @@ export default {
|
|
|
156
156
|
}, []);
|
|
157
157
|
},
|
|
158
158
|
variantClass() {
|
|
159
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
159
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
160
160
|
return `gl-alert-${this.variant}`;
|
|
161
161
|
},
|
|
162
162
|
},
|
|
@@ -72,17 +72,17 @@ export default {
|
|
|
72
72
|
computed: {
|
|
73
73
|
sizeClasses() {
|
|
74
74
|
if (isNumber(this.size)) {
|
|
75
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
75
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
76
76
|
return `gl-avatar-s${this.size}`;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
const { default: defaultSize, ...nonDefaultSizes } = this.size;
|
|
80
80
|
|
|
81
81
|
return [
|
|
82
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
82
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
83
83
|
`gl-avatar-s${defaultSize || avatarSizeOptions[1]}`,
|
|
84
84
|
...Object.entries(nonDefaultSizes).map(
|
|
85
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
85
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
86
86
|
([breakpoint, size]) => `gl-${breakpoint}-avatar-s${size}`
|
|
87
87
|
),
|
|
88
88
|
];
|
|
@@ -96,7 +96,7 @@ export default {
|
|
|
96
96
|
* Gets the remainder after dividing the 'entityId' by the number of available backgrounds.
|
|
97
97
|
*/
|
|
98
98
|
const type = (this.entityId % IDENTICON_BG_COUNT) + 1;
|
|
99
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
99
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
100
100
|
return `gl-avatar-identicon-bg${type}`;
|
|
101
101
|
},
|
|
102
102
|
identiconText() {
|
|
@@ -245,7 +245,7 @@ export default {
|
|
|
245
245
|
'gl-datepicker',
|
|
246
246
|
'd-inline-block',
|
|
247
247
|
'gl-w-full',
|
|
248
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
248
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
249
249
|
`gl-form-input-${this.computedWidth}`,
|
|
250
250
|
];
|
|
251
251
|
},
|
|
@@ -62,7 +62,7 @@ export default {
|
|
|
62
62
|
return Boolean(this.$slots.footer);
|
|
63
63
|
},
|
|
64
64
|
variantClass() {
|
|
65
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
65
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
66
66
|
return `gl-drawer-${this.variant}`;
|
|
67
67
|
},
|
|
68
68
|
},
|
|
@@ -21,8 +21,7 @@
|
|
|
21
21
|
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-control-border-color-hover);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
&:read-only
|
|
25
|
-
&:not(:disabled):not(.form-control-plaintext):not([type='color']):read-only {
|
|
24
|
+
&:not(.gl-form-input-not-readonly):not(:disabled):not(.form-control-plaintext):not([type='color']):read-only {
|
|
26
25
|
background: var(--gl-control-background-color-readonly);
|
|
27
26
|
box-shadow: none;
|
|
28
27
|
}
|
|
@@ -42,16 +42,16 @@ export default {
|
|
|
42
42
|
const { default: defaultWidth, ...nonDefaultWidths } = this.width;
|
|
43
43
|
|
|
44
44
|
return [
|
|
45
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
45
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
46
46
|
...(defaultWidth ? [`gl-form-input-${defaultWidth}`] : []),
|
|
47
47
|
...Object.entries(nonDefaultWidths).map(
|
|
48
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
48
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
49
49
|
([breakpoint, width]) => `gl-${breakpoint}-form-input-${width}`
|
|
50
50
|
),
|
|
51
51
|
];
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
54
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
55
55
|
return [`gl-form-input-${this.width}`];
|
|
56
56
|
},
|
|
57
57
|
listeners() {
|
|
@@ -34,16 +34,16 @@ export default {
|
|
|
34
34
|
const { default: defaultWidth, ...nonDefaultWidths } = this.width;
|
|
35
35
|
|
|
36
36
|
return [
|
|
37
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
37
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
38
38
|
...(defaultWidth ? [`gl-form-select-${defaultWidth}`] : []),
|
|
39
39
|
...Object.entries(nonDefaultWidths).map(
|
|
40
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
40
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
41
41
|
([breakpoint, width]) => `gl-${breakpoint}-form-select-${width}`
|
|
42
42
|
),
|
|
43
43
|
];
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
46
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
47
47
|
return [`gl-form-select-${this.width}`];
|
|
48
48
|
},
|
|
49
49
|
},
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// variables
|
|
2
2
|
$modal-body-height: 80px;
|
|
3
3
|
$modal-body-line-height: 1.5;
|
|
4
|
-
$modal-box-shadow: 0 4px 16px $t-gray-a-24;
|
|
5
4
|
|
|
6
5
|
// mixins
|
|
7
6
|
@mixin gl-tmp-modal-btn-group-ml {
|
|
@@ -38,7 +37,7 @@ body.modal-open {
|
|
|
38
37
|
.modal-content {
|
|
39
38
|
@apply gl-rounded-base;
|
|
40
39
|
@apply gl-border-0;
|
|
41
|
-
|
|
40
|
+
@apply gl-shadow-lg;
|
|
42
41
|
background-color: var(--gl-background-color-overlap);
|
|
43
42
|
color: var(--gl-text-color-default);
|
|
44
43
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
The progress bar component can be used to show an amount of progress.
|
|
2
|
+
It comes in 4 variants and supports setting a custom maximum and height.
|
|
3
|
+
|
|
4
|
+
## Value
|
|
5
|
+
|
|
6
|
+
The `value` prop can be a Number or String. If not given, it will default to `0`.
|
|
7
|
+
|
|
8
|
+
## Variants
|
|
9
|
+
|
|
10
|
+
The following variants are available:
|
|
11
|
+
|
|
12
|
+
1. 'primary' (default)
|
|
13
|
+
2. 'success'
|
|
14
|
+
3. 'warning'
|
|
15
|
+
4. 'danger'
|
|
16
|
+
|
|
17
|
+
## Maximum
|
|
18
|
+
|
|
19
|
+
A custom maximum can be set with the `max` prop. If not given, it will default to `100`.
|
|
20
|
+
|
|
21
|
+
## Width and Height
|
|
22
|
+
|
|
23
|
+
The `GlProgressBar` will always expand to the maximum width of its parent container.
|
|
24
|
+
The height can be controlled with the `height` prop. The value should be a standard
|
|
25
|
+
CSS dimension (`px`, `rem`, `em`, etc.) and given as a String, e.g. `'20px'`.
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
.gl-progress-bar {
|
|
2
2
|
background-color: var(--gl-progress-bar-track-color);
|
|
3
|
+
|
|
4
|
+
.gl-progress {
|
|
5
|
+
@apply gl-flex-col;
|
|
6
|
+
@apply gl-justify-center;
|
|
7
|
+
@apply gl-w-full;
|
|
8
|
+
@apply gl-overflow-hidden;
|
|
9
|
+
@apply gl-text-center;
|
|
10
|
+
@apply gl-whitespace-nowrap;
|
|
11
|
+
transition: transform 0.6s $gl-easing-out-cubic;
|
|
12
|
+
transform-origin: left;
|
|
13
|
+
}
|
|
3
14
|
|
|
4
15
|
.bg-primary {
|
|
5
16
|
background-color: var(--gl-progress-bar-indicator-color-default) !important;
|
|
@@ -1,15 +1,64 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
import {
|
|
2
|
+
import { progressBarVariantOptions } from '../../../utils/constants';
|
|
3
|
+
import { toFloat } from '../../../utils/number_utils';
|
|
3
4
|
|
|
4
5
|
export default {
|
|
5
6
|
name: 'GlProgressBar',
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
props: {
|
|
8
|
+
value: {
|
|
9
|
+
type: [Number, String],
|
|
10
|
+
required: false,
|
|
11
|
+
default: 0,
|
|
12
|
+
},
|
|
13
|
+
variant: {
|
|
14
|
+
type: String,
|
|
15
|
+
required: false,
|
|
16
|
+
default: 'primary',
|
|
17
|
+
validator: (value) => Object.keys(progressBarVariantOptions).includes(value),
|
|
18
|
+
},
|
|
19
|
+
max: {
|
|
20
|
+
type: [Number, String],
|
|
21
|
+
required: false,
|
|
22
|
+
default: 100,
|
|
23
|
+
},
|
|
24
|
+
height: {
|
|
25
|
+
type: String,
|
|
26
|
+
required: false,
|
|
27
|
+
default: null,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
computed: {
|
|
31
|
+
progressHeight() {
|
|
32
|
+
return { height: this.height };
|
|
33
|
+
},
|
|
34
|
+
computedValue() {
|
|
35
|
+
return toFloat(this.value, 0);
|
|
36
|
+
},
|
|
37
|
+
computedMax() {
|
|
38
|
+
const max = toFloat(this.max, 100);
|
|
39
|
+
return max > 0 ? max : 100;
|
|
40
|
+
},
|
|
41
|
+
progressBarStyles() {
|
|
42
|
+
return {
|
|
43
|
+
transform: `scaleX(${this.computedValue / this.computedMax})`,
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
classes() {
|
|
47
|
+
return ['gl-progress', `bg-${this.variant}`];
|
|
48
|
+
},
|
|
8
49
|
},
|
|
9
|
-
inheritAttrs: false,
|
|
10
50
|
};
|
|
11
51
|
</script>
|
|
12
52
|
|
|
13
53
|
<template>
|
|
14
|
-
<
|
|
54
|
+
<div class="gl-progress-bar progress" :style="progressHeight">
|
|
55
|
+
<div
|
|
56
|
+
:class="classes"
|
|
57
|
+
:style="progressBarStyles"
|
|
58
|
+
role="progressbar"
|
|
59
|
+
aria-valuemin="0"
|
|
60
|
+
:aria-valuemax="String(computedMax)"
|
|
61
|
+
:aria-valuenow="computedValue"
|
|
62
|
+
></div>
|
|
63
|
+
</div>
|
|
15
64
|
</template>
|
|
@@ -44,7 +44,7 @@ function renderTitle(h, toast, options) {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
function showToast(message, options = {}) {
|
|
47
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
47
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
48
48
|
const id = `gl-toast-${toastsCount}`;
|
|
49
49
|
toastsCount += 1;
|
|
50
50
|
const hide = () => {
|
|
@@ -70,12 +70,16 @@ $toggle-height: 2.5 * $grid-size;
|
|
|
70
70
|
position: relative;
|
|
71
71
|
width: $toggle-width;
|
|
72
72
|
height: $toggle-height;
|
|
73
|
-
@apply gl-outline-none;
|
|
74
73
|
user-select: none;
|
|
74
|
+
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-strong-neutral-border-color-default);
|
|
75
75
|
@apply gl-rounded-pill;
|
|
76
76
|
@apply gl-duration-slow;
|
|
77
77
|
@apply gl-leading-normal;
|
|
78
78
|
|
|
79
|
+
@media (forced-colors: active) {
|
|
80
|
+
border: 1px solid;
|
|
81
|
+
}
|
|
82
|
+
|
|
79
83
|
&::selection,
|
|
80
84
|
&::before::selection,
|
|
81
85
|
&::after::selection {
|
|
@@ -85,22 +89,22 @@ $toggle-height: 2.5 * $grid-size;
|
|
|
85
89
|
&:hover {
|
|
86
90
|
color: var(--gl-toggle-switch-icon-color-unchecked-hover);
|
|
87
91
|
background-color: var(--gl-action-strong-neutral-background-color-hover);
|
|
92
|
+
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-strong-neutral-border-color-hover);
|
|
88
93
|
}
|
|
89
94
|
|
|
90
95
|
&:focus {
|
|
91
96
|
color: var(--gl-toggle-switch-icon-color-unchecked-focus);
|
|
92
97
|
background-color: var(--gl-action-strong-neutral-background-color-focus);
|
|
98
|
+
@include gl-focus($color: var(--gl-action-strong-neutral-border-color-focus), $important: true);
|
|
93
99
|
}
|
|
94
100
|
|
|
95
101
|
&:active {
|
|
96
102
|
color: var(--gl-toggle-switch-icon-color-unchecked-active);
|
|
97
103
|
background-color: var(--gl-action-strong-neutral-background-color-active);
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
&:focus:active {
|
|
103
|
-
@apply gl-focus;
|
|
104
|
+
@include gl-focus(
|
|
105
|
+
$color: var(--gl-action-strong-neutral-border-color-active),
|
|
106
|
+
$important: true
|
|
107
|
+
);
|
|
104
108
|
}
|
|
105
109
|
|
|
106
110
|
.toggle-loading {
|
|
@@ -141,20 +145,30 @@ $toggle-height: 2.5 * $grid-size;
|
|
|
141
145
|
&.is-checked {
|
|
142
146
|
color: var(--gl-toggle-switch-icon-color-checked-default);
|
|
143
147
|
background-color: var(--gl-action-strong-confirm-background-color-default);
|
|
148
|
+
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-strong-confirm-border-color-default);
|
|
144
149
|
|
|
145
150
|
&:hover {
|
|
146
151
|
color: var(--gl-toggle-switch-icon-color-checked-hover);
|
|
147
152
|
background-color: var(--gl-action-strong-confirm-background-color-hover);
|
|
153
|
+
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-strong-confirm-border-color-hover);
|
|
148
154
|
}
|
|
149
155
|
|
|
150
156
|
&:focus {
|
|
151
157
|
color: var(--gl-toggle-switch-icon-color-checked-focus);
|
|
152
158
|
background-color: var(--gl-action-strong-confirm-background-color-focus);
|
|
159
|
+
@include gl-focus(
|
|
160
|
+
$color: var(--gl-action-strong-confirm-border-color-focus),
|
|
161
|
+
$important: true
|
|
162
|
+
);
|
|
153
163
|
}
|
|
154
164
|
|
|
155
165
|
&:active {
|
|
156
166
|
color: var(--gl-toggle-switch-icon-color-checked-active);
|
|
157
167
|
background-color: var(--gl-action-strong-confirm-background-color-active);
|
|
168
|
+
@include gl-focus(
|
|
169
|
+
$color: var(--gl-action-strong-confirm-border-color-active),
|
|
170
|
+
$important: true
|
|
171
|
+
);
|
|
158
172
|
}
|
|
159
173
|
|
|
160
174
|
.toggle-icon {
|
|
@@ -168,10 +182,17 @@ $toggle-height: 2.5 * $grid-size;
|
|
|
168
182
|
@apply gl-cursor-not-allowed;
|
|
169
183
|
color: var(--gl-action-disabled-background-color);
|
|
170
184
|
background-color: var(--gl-action-disabled-background-color);
|
|
185
|
+
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-disabled-border-color);
|
|
171
186
|
|
|
172
187
|
.toggle-icon {
|
|
173
188
|
color: var(--gl-action-disabled-background-color);
|
|
174
189
|
background-color: var(--gl-action-disabled-foreground-color);
|
|
175
190
|
}
|
|
191
|
+
|
|
192
|
+
&:active,
|
|
193
|
+
&:focus,
|
|
194
|
+
&:focus:active {
|
|
195
|
+
@include gl-focus($color: var(--gl-action-disabled-border-color), $important: true);
|
|
196
|
+
}
|
|
176
197
|
}
|
|
177
198
|
}
|
|
@@ -35,7 +35,7 @@ export default {
|
|
|
35
35
|
},
|
|
36
36
|
computed: {
|
|
37
37
|
variantClass() {
|
|
38
|
-
// eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
|
|
38
|
+
// eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
|
|
39
39
|
return `gl-token-${this.variant}-variant`;
|
|
40
40
|
},
|
|
41
41
|
viewOnlyClass() {
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
// This is overridden in the `gitlab-org/gitlab` codebase so we need to increase specificity using `gl-token-selector`
|
|
2
2
|
.gl-token-selector {
|
|
3
3
|
&.gl-token-selector-focus-glow {
|
|
4
|
-
@include gl-focus($color:
|
|
4
|
+
@include gl-focus($color: var(--gl-control-border-color-focus), $important: true);
|
|
5
5
|
|
|
6
6
|
&.is-invalid {
|
|
7
|
-
@include gl-focus($color:
|
|
7
|
+
@include gl-focus($color: var(--gl-control-border-color-error), $important: true);
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
+
|
|
11
|
+
&.gl-token-selector-view-only {
|
|
12
|
+
background: var(--gl-control-background-color-readonly) !important;
|
|
13
|
+
box-shadow: none !important;
|
|
14
|
+
}
|
|
10
15
|
}
|
|
11
16
|
|
|
12
17
|
.gl-token-selector-token-container:focus .gl-token {
|
|
13
|
-
|
|
18
|
+
background-color: var(--gl-token-selector-token-container-token-background-color-focus);
|
|
14
19
|
}
|
|
15
20
|
|
|
16
21
|
.gl-token-selector-input {
|
|
@@ -187,13 +187,14 @@ export default {
|
|
|
187
187
|
return false;
|
|
188
188
|
},
|
|
189
189
|
stateClass() {
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
switch (this.state) {
|
|
191
|
+
case true:
|
|
192
|
+
return 'is-valid';
|
|
193
|
+
case false:
|
|
194
|
+
return 'is-invalid';
|
|
195
|
+
default:
|
|
196
|
+
return '';
|
|
192
197
|
}
|
|
193
|
-
|
|
194
|
-
return this.state
|
|
195
|
-
? 'is-valid !gl-shadow-inner-1-gray-400'
|
|
196
|
-
: 'is-invalid !gl-shadow-inner-1-red-500';
|
|
197
198
|
},
|
|
198
199
|
hasSelectedTokens() {
|
|
199
200
|
return this.selectedTokens.length > 0;
|
|
@@ -387,8 +388,15 @@ export default {
|
|
|
387
388
|
<div>
|
|
388
389
|
<div
|
|
389
390
|
ref="container"
|
|
390
|
-
class="gl-token-selector gl-form-input form-
|
|
391
|
-
:class="[
|
|
391
|
+
class="gl-token-selector gl-form-input gl-form-input-not-readonly form-control gl-flex !gl-cursor-text gl-items-center !gl-px-3 !gl-py-2"
|
|
392
|
+
:class="[
|
|
393
|
+
{
|
|
394
|
+
'gl-token-selector-focus-glow': inputFocused,
|
|
395
|
+
'gl-token-selector-view-only': viewOnly,
|
|
396
|
+
},
|
|
397
|
+
containerClass,
|
|
398
|
+
stateClass,
|
|
399
|
+
]"
|
|
392
400
|
@click="handleContainerClick"
|
|
393
401
|
>
|
|
394
402
|
<!-- @slot Optional content to display a placeholder when tokens list is empty
|
|
@@ -417,7 +425,7 @@ export default {
|
|
|
417
425
|
<input
|
|
418
426
|
ref="textInput"
|
|
419
427
|
type="text"
|
|
420
|
-
class="gl-token-selector-input gl-h-auto gl-w-4/10 gl-grow gl-border-none gl-bg-transparent gl-px-1 gl-font-regular gl-text-base gl-leading-normal gl-text-
|
|
428
|
+
class="gl-token-selector-input gl-h-auto gl-w-4/10 gl-grow gl-border-none gl-bg-transparent gl-px-1 gl-font-regular gl-text-base gl-leading-normal gl-text-default gl-outline-none"
|
|
421
429
|
:value="inputText"
|
|
422
430
|
:autocomplete="autocomplete"
|
|
423
431
|
:aria-labelledby="ariaLabelledby"
|
|
@@ -498,6 +498,7 @@
|
|
|
498
498
|
--gl-control-background-color-disabled: var(--gl-color-neutral-10); /* Used for disabled form control (checkbox, input, radio button, textarea) background. */
|
|
499
499
|
--gl-control-background-color-default: var(--gl-color-neutral-0); /* Used for form control (input, radio button, checkbox, textarea) default background. */
|
|
500
500
|
--gl-token-background-color: var(--gl-color-neutral-100); /* Used for the token background color. */
|
|
501
|
+
--gl-token-selector-token-container-token-background-color-focus: var(--gl-color-neutral-300); /* Used for the background color of a token in a token-selector when it's token-container is in the focus state. */
|
|
501
502
|
--gl-tab-selected-indicator-color-default: var(--gl-color-blue-500); /* Used for the selected indicator of a tab. */
|
|
502
503
|
--gl-spinner-segment-color-light: var(--gl-color-neutral-200); /* Used for the animated segment of a loading spinner on a dark background. */
|
|
503
504
|
--gl-spinner-segment-color-default: var(--gl-color-neutral-700); /* Used for the animated segment of a loading spinner. */
|
|
@@ -498,6 +498,7 @@
|
|
|
498
498
|
--gl-control-background-color-disabled: var(--gl-color-alpha-light-4); /* Used for disabled form control (checkbox, input, radio button, textarea) background. */
|
|
499
499
|
--gl-control-background-color-default: var(--gl-color-alpha-dark-40); /* Used for form control (input, radio button, checkbox, textarea) default background. */
|
|
500
500
|
--gl-token-background-color: var(--gl-color-neutral-800); /* Used for the token background color. */
|
|
501
|
+
--gl-token-selector-token-container-token-background-color-focus: var(--gl-color-neutral-600); /* Used for the background color of a token in a token-selector when it's token-container is in the focus state. */
|
|
501
502
|
--gl-tab-selected-indicator-color-default: var(--gl-color-blue-400); /* Used for the selected indicator of a tab. */
|
|
502
503
|
--gl-spinner-segment-color-light: var(--gl-color-neutral-200); /* Used for the animated segment of a loading spinner on a dark background. */
|
|
503
504
|
--gl-spinner-segment-color-default: var(--gl-color-neutral-200); /* Used for the animated segment of a loading spinner. */
|
|
@@ -691,6 +691,7 @@ export const GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_HOVER = '#63a6e9'; // Used for
|
|
|
691
691
|
export const GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_FOCUS = '#63a6e9'; // Used for the icon color of a checked toggle switch in the focus state.
|
|
692
692
|
export const GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_ACTIVE = '#9dc7f1'; // Used for the icon color of a checked toggle switch in the active state.
|
|
693
693
|
export const GL_TOGGLE_SWITCH_ICON_COLOR_DISABLED = '#28272d'; // Used for the icon color of a disabled toggle switch.
|
|
694
|
+
export const GL_TOKEN_SELECTOR_TOKEN_CONTAINER_TOKEN_BACKGROUND_COLOR_FOCUS = '#626168'; // Used for the background color of a token in a token-selector when it's token-container is in the focus state.
|
|
694
695
|
export const GL_TOKEN_FOREGROUND_COLOR = '#ececef'; // Used for the token foreground color.
|
|
695
696
|
export const GL_TOKEN_BACKGROUND_COLOR = '#3a383f'; // Used for the token background color.
|
|
696
697
|
export const GL_CONTROL_BACKGROUND_COLOR_DEFAULT = 'rgba(05, 05, 06, 0.4)'; // Used for form control (input, radio button, checkbox, textarea) default background.
|
|
@@ -691,6 +691,7 @@ export const GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_HOVER = '#1068bf'; // Used for
|
|
|
691
691
|
export const GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_FOCUS = '#1068bf'; // Used for the icon color of a checked toggle switch in the focus state.
|
|
692
692
|
export const GL_TOGGLE_SWITCH_ICON_COLOR_CHECKED_ACTIVE = '#0b5cad'; // Used for the icon color of a checked toggle switch in the active state.
|
|
693
693
|
export const GL_TOGGLE_SWITCH_ICON_COLOR_DISABLED = '#ececef'; // Used for the icon color of a disabled toggle switch.
|
|
694
|
+
export const GL_TOKEN_SELECTOR_TOKEN_CONTAINER_TOKEN_BACKGROUND_COLOR_FOCUS = '#a4a3a8'; // Used for the background color of a token in a token-selector when it's token-container is in the focus state.
|
|
694
695
|
export const GL_TOKEN_FOREGROUND_COLOR = '#3a383f'; // Used for the token foreground color.
|
|
695
696
|
export const GL_TOKEN_BACKGROUND_COLOR = '#dcdcde'; // Used for the token background color.
|
|
696
697
|
export const GL_CONTROL_BACKGROUND_COLOR_DEFAULT = '#fff'; // Used for form control (input, radio button, checkbox, textarea) default background.
|
|
@@ -15349,6 +15349,41 @@
|
|
|
15349
15349
|
}
|
|
15350
15350
|
}
|
|
15351
15351
|
},
|
|
15352
|
+
"token-selector": {
|
|
15353
|
+
"token-container": {
|
|
15354
|
+
"token": {
|
|
15355
|
+
"background": {
|
|
15356
|
+
"color": {
|
|
15357
|
+
"focus": {
|
|
15358
|
+
"value": "#626168",
|
|
15359
|
+
"$type": "color",
|
|
15360
|
+
"comment": "Used for the background color of a token in a token-selector when it's token-container is in the focus state.",
|
|
15361
|
+
"filePath": "src/tokens/contextual/token-selector.tokens.json",
|
|
15362
|
+
"isSource": true,
|
|
15363
|
+
"original": {
|
|
15364
|
+
"value": {
|
|
15365
|
+
"default": "{color.neutral.300}",
|
|
15366
|
+
"dark": "{color.neutral.600}"
|
|
15367
|
+
},
|
|
15368
|
+
"$type": "color",
|
|
15369
|
+
"comment": "Used for the background color of a token in a token-selector when it's token-container is in the focus state."
|
|
15370
|
+
},
|
|
15371
|
+
"name": "TOKEN_SELECTOR_TOKEN_CONTAINER_TOKEN_BACKGROUND_COLOR_FOCUS",
|
|
15372
|
+
"attributes": {},
|
|
15373
|
+
"path": [
|
|
15374
|
+
"token-selector",
|
|
15375
|
+
"token-container",
|
|
15376
|
+
"token",
|
|
15377
|
+
"background",
|
|
15378
|
+
"color",
|
|
15379
|
+
"focus"
|
|
15380
|
+
]
|
|
15381
|
+
}
|
|
15382
|
+
}
|
|
15383
|
+
}
|
|
15384
|
+
}
|
|
15385
|
+
}
|
|
15386
|
+
},
|
|
15352
15387
|
"token": {
|
|
15353
15388
|
"foreground": {
|
|
15354
15389
|
"color": {
|