@koobiq/components 17.0.0-rc.3 → 17.0.0-rc.5
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/alert/_alert-theme.scss +16 -28
- package/alert/alert.component.scss +48 -134
- package/code-block/_code-block-theme.scss +23 -1
- package/code-block/actionbar.component.scss +2 -2
- package/code-block/code-block.component.d.ts +12 -4
- package/code-block/code-block.scss +36 -9
- package/core/option/_option-action-theme.scss +6 -8
- package/core/styles/_variables.scss +1 -1
- package/core/styles/common/_tokens.scss +28 -0
- package/core/styles/theming/_components-theming.scss +21 -2
- package/core/styles/theming/_theming.scss +3 -6
- package/esm2022/alert/alert.component.mjs +2 -2
- package/esm2022/code-block/actionbar.component.mjs +2 -2
- package/esm2022/code-block/code-block.component.mjs +58 -14
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
- package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
- package/esm2022/select/select.component.mjs +33 -6
- package/esm2022/splitter/splitter.component.mjs +36 -16
- package/esm2022/table/table.component.mjs +29 -6
- package/esm2022/table/table.module.mjs +14 -6
- package/esm2022/textarea/textarea.component.mjs +9 -7
- package/esm2022/toast/toast-container.component.mjs +2 -2
- package/esm2022/toast/toast.component.mjs +4 -4
- package/esm2022/toast/toast.service.mjs +2 -2
- package/esm2022/toast/toast.type.mjs +3 -1
- package/fesm2022/koobiq-components-alert.mjs +2 -2
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +57 -14
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +1 -1
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +2 -2
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +33 -6
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +35 -15
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +41 -10
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +8 -6
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +8 -6
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/icon/_icon-item-theme.scss +6 -0
- package/icon/_icon-theme.scss +5 -0
- package/input/_input-theme.scss +4 -0
- package/link/_link-theme.scss +4 -2
- package/navbar/vertical-navbar.scss +1 -0
- package/package.json +7 -7
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/schematics/ng-add/index.js +5 -5
- package/select/select.component.d.ts +5 -1
- package/splitter/splitter.component.d.ts +10 -5
- package/table/_table-theme.scss +10 -10
- package/table/table.component.d.ts +8 -1
- package/table/table.module.d.ts +1 -1
- package/table/table.scss +39 -40
- package/toast/_toast-theme.scss +10 -5
- package/toast/toast-container.component.scss +4 -1
- package/toast/toast.component.scss +22 -17
- package/toast/toast.type.d.ts +2 -0
package/alert/_alert-theme.scss
CHANGED
|
@@ -1,84 +1,72 @@
|
|
|
1
1
|
@use 'sass:meta';
|
|
2
2
|
@use 'sass:map';
|
|
3
3
|
|
|
4
|
+
@use '../core/styles/common/tokens' as *;
|
|
4
5
|
@use '../core/styles/typography/typography-utils' as *;
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
@mixin kbq-alert
|
|
8
|
-
|
|
8
|
+
@mixin kbq-alert($component, $style-name, $color-name) {
|
|
9
|
+
$style: map.get($component, $style-name);
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
color: map.get($style, title);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.kbq-alert__text {
|
|
15
|
-
color: map.get($style, text);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@mixin kbq-alert-colored($style) {
|
|
20
|
-
background: map.get($style, background);
|
|
11
|
+
background: cssVar('alert-light-#{$style-name}-#{$color-name}-container-background');
|
|
21
12
|
|
|
22
13
|
.kbq-alert__title {
|
|
23
|
-
color:
|
|
14
|
+
color: cssVar('alert-light-#{$style-name}-#{$color-name}-container-title');
|
|
24
15
|
}
|
|
25
16
|
|
|
26
17
|
.kbq-alert__text {
|
|
27
|
-
color:
|
|
18
|
+
color: cssVar('alert-light-#{$style-name}-#{$color-name}-container-text');
|
|
28
19
|
}
|
|
29
20
|
}
|
|
30
21
|
|
|
31
22
|
@mixin kbq-alert-theme($theme) {
|
|
32
23
|
$alert: map.get(map.get($theme, components), alert);
|
|
33
24
|
|
|
34
|
-
$default: map.get($alert, default);
|
|
35
|
-
$colored: map.get($alert, colored);
|
|
36
|
-
|
|
37
25
|
.kbq-alert__close:focus {
|
|
38
26
|
outline: none;
|
|
39
27
|
}
|
|
40
28
|
|
|
41
29
|
.kbq-alert.kbq-alert_default {
|
|
42
30
|
&.kbq-alert_contrast {
|
|
43
|
-
@include kbq-alert
|
|
31
|
+
@include kbq-alert($alert, default, contrast);
|
|
44
32
|
}
|
|
45
33
|
|
|
46
34
|
&.kbq-alert_error {
|
|
47
|
-
@include kbq-alert
|
|
35
|
+
@include kbq-alert($alert, default, error);
|
|
48
36
|
}
|
|
49
37
|
|
|
50
38
|
&.kbq-alert_warning {
|
|
51
|
-
@include kbq-alert
|
|
39
|
+
@include kbq-alert($alert, default, warning);
|
|
52
40
|
}
|
|
53
41
|
|
|
54
42
|
&.kbq-alert_success {
|
|
55
|
-
@include kbq-alert
|
|
43
|
+
@include kbq-alert($alert, default, success);
|
|
56
44
|
}
|
|
57
45
|
|
|
58
46
|
&.kbq-alert_theme {
|
|
59
|
-
@include kbq-alert
|
|
47
|
+
@include kbq-alert($alert, default, theme);
|
|
60
48
|
}
|
|
61
49
|
}
|
|
62
50
|
|
|
63
51
|
.kbq-alert.kbq-alert_colored {
|
|
64
52
|
&.kbq-alert_contrast {
|
|
65
|
-
@include kbq-alert
|
|
53
|
+
@include kbq-alert($alert, colored, contrast);
|
|
66
54
|
}
|
|
67
55
|
|
|
68
56
|
&.kbq-alert_error {
|
|
69
|
-
@include kbq-alert
|
|
57
|
+
@include kbq-alert($alert, colored, error);
|
|
70
58
|
}
|
|
71
59
|
|
|
72
60
|
&.kbq-alert_warning {
|
|
73
|
-
@include kbq-alert
|
|
61
|
+
@include kbq-alert($alert, colored, warning);
|
|
74
62
|
}
|
|
75
63
|
|
|
76
64
|
&.kbq-alert_success {
|
|
77
|
-
@include kbq-alert
|
|
65
|
+
@include kbq-alert($alert, colored, success);
|
|
78
66
|
}
|
|
79
67
|
|
|
80
68
|
&.kbq-alert_theme {
|
|
81
|
-
@include kbq-alert
|
|
69
|
+
@include kbq-alert($alert, colored, theme);
|
|
82
70
|
}
|
|
83
71
|
}
|
|
84
72
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
@use 'sass:meta';
|
|
2
2
|
@use 'sass:map';
|
|
3
3
|
|
|
4
|
-
@use '../core/styles/tokens'
|
|
4
|
+
@use '../core/styles/common/tokens' as *;
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
$tokens: meta.module-variables(tokens) !default;
|
|
@@ -9,10 +9,10 @@ $tokens: meta.module-variables(tokens) !default;
|
|
|
9
9
|
.kbq-alert {
|
|
10
10
|
display: flex;
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
box-sizing: border-box;
|
|
13
13
|
|
|
14
14
|
& .kbq-alert__content_title {
|
|
15
|
-
margin-bottom:
|
|
15
|
+
margin-bottom: cssVar(size-xxs);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -25,182 +25,96 @@ $tokens: meta.module-variables(tokens) !default;
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
.kbq-alert.kbq-alert_normal {
|
|
28
|
-
border-radius:
|
|
29
|
-
--kbq-alert-size-normal-container-border-radius,
|
|
30
|
-
map.get($tokens, alert-size-normal-container-border-radius)
|
|
31
|
-
);
|
|
28
|
+
border-radius: cssVar(alert-size-normal-container-border-radius);
|
|
32
29
|
|
|
33
30
|
padding:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
)
|
|
38
|
-
var(
|
|
39
|
-
--kbq-alert-size-normal-container-padding-right,
|
|
40
|
-
map.get($tokens, alert-size-normal-container-padding-right)
|
|
41
|
-
)
|
|
42
|
-
var(
|
|
43
|
-
--kbq-alert-size-normal-container-padding-bottom,
|
|
44
|
-
map.get($tokens, alert-size-normal-container-padding-bottom)
|
|
45
|
-
)
|
|
46
|
-
var(
|
|
47
|
-
--kbq-alert-size-normal-container-padding-left,
|
|
48
|
-
map.get($tokens, alert-size-normal-container-padding-left)
|
|
49
|
-
);
|
|
31
|
+
cssVar(alert-size-normal-container-padding-top)
|
|
32
|
+
cssVar(alert-size-normal-container-padding-right)
|
|
33
|
+
cssVar(alert-size-normal-container-padding-bottom)
|
|
34
|
+
cssVar(alert-size-normal-container-padding-left);
|
|
50
35
|
|
|
51
36
|
& .kbq-alert__icon {
|
|
52
37
|
margin:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
38
|
+
cssVar(alert-size-normal-icon-margin-top)
|
|
39
|
+
cssVar(alert-size-normal-icon-margin-right)
|
|
40
|
+
cssVar(alert-size-normal-icon-margin-bottom)
|
|
41
|
+
cssVar(alert-size-normal-icon-margin-left);
|
|
57
42
|
|
|
58
43
|
&.kbq-alert__icon_title .kbq-icon {
|
|
59
|
-
margin-top:
|
|
60
|
-
--kbq-alert-size-normal-icon-margin-addon-title,
|
|
61
|
-
map.get($tokens, alert-size-normal-icon-margin-addon-title)
|
|
62
|
-
);
|
|
44
|
+
margin-top: cssVar(alert-size-normal-icon-margin-addon-title);
|
|
63
45
|
}
|
|
46
|
+
|
|
47
|
+
display: inline-flex;
|
|
48
|
+
align-self: flex-start;
|
|
64
49
|
}
|
|
65
50
|
|
|
66
51
|
& .kbq-alert__content {
|
|
67
52
|
padding:
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
)
|
|
72
|
-
var(
|
|
73
|
-
--kbq-alert-size-normal-content-padding-right,
|
|
74
|
-
map.get($tokens, alert-size-normal-content-padding-right)
|
|
75
|
-
)
|
|
76
|
-
var(
|
|
77
|
-
--kbq-alert-size-normal-content-padding-bottom,
|
|
78
|
-
map.get($tokens, alert-size-normal-content-padding-bottom)
|
|
79
|
-
)
|
|
80
|
-
var(
|
|
81
|
-
--kbq-alert-size-normal-content-padding-left,
|
|
82
|
-
map.get($tokens, alert-size-normal-content-padding-left)
|
|
83
|
-
);
|
|
53
|
+
cssVar(alert-size-normal-content-padding-top)
|
|
54
|
+
cssVar(alert-size-normal-content-padding-right)
|
|
55
|
+
cssVar(alert-size-normal-content-padding-bottom)
|
|
56
|
+
cssVar(alert-size-normal-content-padding-left);
|
|
84
57
|
}
|
|
85
58
|
|
|
86
59
|
& .kbq-alert__title {
|
|
87
|
-
margin-bottom:
|
|
88
|
-
--kbq-alert-size-normal-title-margin-bottom,
|
|
89
|
-
map.get($tokens, alert-size-normal-title-margin-bottom)
|
|
90
|
-
);
|
|
60
|
+
margin-bottom: cssVar(alert-size-normal-title-margin-bottom);
|
|
91
61
|
}
|
|
92
62
|
|
|
93
63
|
& .kbq-alert__button-stack {
|
|
94
|
-
padding-top:
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
);
|
|
98
|
-
|
|
99
|
-
padding-bottom: var(
|
|
100
|
-
--kbq-alert-size-normal-button-stack-padding-bottom,
|
|
101
|
-
map.get($tokens, alert-size-normal-button-stack-padding-bottom)
|
|
102
|
-
);
|
|
64
|
+
padding-top: cssVar(alert-size-normal-button-stack-padding-top);
|
|
65
|
+
|
|
66
|
+
padding-bottom: cssVar(alert-size-normal-button-stack-padding-bottom);
|
|
103
67
|
}
|
|
104
68
|
|
|
105
69
|
& .kbq-alert__close-button {
|
|
106
|
-
margin-top:
|
|
107
|
-
|
|
108
|
-
map.get($tokens, alert-size-normal-close-button-margin-top)
|
|
109
|
-
);
|
|
110
|
-
|
|
111
|
-
margin-left: var(
|
|
112
|
-
--kbq-alert-size-normal-close-button-margin-left,
|
|
113
|
-
map.get($tokens, alert-size-normal-close-button-margin-left)
|
|
114
|
-
);
|
|
70
|
+
margin-top: cssVar(alert-size-normal-close-button-margin-top);
|
|
71
|
+
margin-left: cssVar(alert-size-normal-close-button-margin-left);
|
|
115
72
|
}
|
|
116
73
|
}
|
|
117
74
|
|
|
118
75
|
.kbq-alert.kbq-alert_compact {
|
|
119
|
-
border-radius:
|
|
120
|
-
--kbq-alert-size-compact-container-border-radius,
|
|
121
|
-
map.get($tokens, alert-size-compact-container-border-radius)
|
|
122
|
-
);
|
|
76
|
+
border-radius: cssVar(alert-size-compact-container-border-radius);
|
|
123
77
|
|
|
124
78
|
padding:
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
)
|
|
129
|
-
var(
|
|
130
|
-
--kbq-alert-size-compact-container-padding-right,
|
|
131
|
-
map.get($tokens, alert-size-compact-container-padding-right)
|
|
132
|
-
)
|
|
133
|
-
var(
|
|
134
|
-
--kbq-alert-size-compact-container-padding-bottom,
|
|
135
|
-
map.get($tokens, alert-size-compact-container-padding-bottom)
|
|
136
|
-
)
|
|
137
|
-
var(
|
|
138
|
-
--kbq-alert-size-compact-container-padding-left,
|
|
139
|
-
map.get($tokens, alert-size-compact-container-padding-left)
|
|
140
|
-
);
|
|
79
|
+
cssVar(alert-size-compact-container-padding-top)
|
|
80
|
+
cssVar(alert-size-compact-container-padding-right)
|
|
81
|
+
cssVar(alert-size-compact-container-padding-bottom)
|
|
82
|
+
cssVar(alert-size-compact-container-padding-left);
|
|
141
83
|
|
|
142
84
|
& .kbq-alert__icon {
|
|
143
|
-
margin-top:
|
|
85
|
+
margin-top: cssVar(alert-size-compact-icon-margin-top);
|
|
144
86
|
|
|
145
|
-
margin-right:
|
|
146
|
-
var(--kbq-alert-size-compact-icon-margin-right, map.get($tokens, alert-size-compact-icon-margin-right));
|
|
87
|
+
margin-right: cssVar(alert-size-compact-icon-margin-right);
|
|
147
88
|
|
|
148
89
|
&.kbq-alert__icon_title .kbq-icon {
|
|
149
|
-
margin-top:
|
|
150
|
-
--kbq-alert-size-compact-icon-margin-addon-title,
|
|
151
|
-
map.get($tokens, alert-size-compact-icon-margin-addon-title)
|
|
152
|
-
);
|
|
90
|
+
margin-top: cssVar(alert-size-compact-icon-margin-addon-title);
|
|
153
91
|
}
|
|
92
|
+
|
|
93
|
+
display: inline-flex;
|
|
94
|
+
align-self: flex-start;
|
|
154
95
|
}
|
|
155
96
|
|
|
156
97
|
& .kbq-alert__content {
|
|
157
98
|
padding:
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
)
|
|
162
|
-
var(
|
|
163
|
-
--kbq-alert-size-compact-content-padding-right,
|
|
164
|
-
map.get($tokens, alert-size-compact-content-padding-right)
|
|
165
|
-
)
|
|
166
|
-
var(
|
|
167
|
-
--kbq-alert-size-compact-content-padding-bottom,
|
|
168
|
-
map.get($tokens, alert-size-compact-content-padding-bottom)
|
|
169
|
-
)
|
|
170
|
-
var(
|
|
171
|
-
--kbq-alert-size-compact-content-padding-left,
|
|
172
|
-
map.get($tokens, alert-size-compact-content-padding-left)
|
|
173
|
-
);
|
|
99
|
+
cssVar(alert-size-compact-content-padding-top)
|
|
100
|
+
cssVar(alert-size-compact-content-padding-right)
|
|
101
|
+
cssVar(alert-size-compact-content-padding-bottom)
|
|
102
|
+
cssVar(alert-size-compact-content-padding-left);
|
|
174
103
|
}
|
|
175
104
|
|
|
176
105
|
& .kbq-alert__title {
|
|
177
|
-
margin-bottom:
|
|
178
|
-
--kbq-alert-size-compact-title-margin-bottom,
|
|
179
|
-
map.get($tokens, alert-size-compact-title-margin-bottom)
|
|
180
|
-
);
|
|
106
|
+
margin-bottom: cssVar(alert-size-compact-title-margin-bottom);
|
|
181
107
|
}
|
|
182
108
|
|
|
183
109
|
& .kbq-alert__button-stack {
|
|
184
|
-
padding-top:
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
);
|
|
188
|
-
|
|
189
|
-
padding-bottom: var(
|
|
190
|
-
--kbq-alert-size-compact-button-stack-padding-bottom,
|
|
191
|
-
map.get($tokens, alert-size-compact-button-stack-padding-bottom)
|
|
192
|
-
);
|
|
110
|
+
padding-top: cssVar(alert-size-compact-button-stack-padding-top);
|
|
111
|
+
|
|
112
|
+
padding-bottom: cssVar(alert-size-compact-button-stack-padding-bottom);
|
|
193
113
|
}
|
|
194
114
|
|
|
195
115
|
& .kbq-alert__close-button {
|
|
196
|
-
margin-top:
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
);
|
|
200
|
-
|
|
201
|
-
margin-left: var(
|
|
202
|
-
--kbq-alert-size-compact-close-button-margin-left,
|
|
203
|
-
map.get($tokens, alert-size-compact-close-button-margin-left)
|
|
204
|
-
);
|
|
116
|
+
margin-top: cssVar(alert-size-compact-close-button-margin-top);
|
|
117
|
+
|
|
118
|
+
margin-left: cssVar(alert-size-compact-close-button-margin-left);
|
|
205
119
|
}
|
|
206
120
|
}
|
|
@@ -11,12 +11,22 @@
|
|
|
11
11
|
$actionbar: map.get($style, actionbar);
|
|
12
12
|
$collapse: map.get($style, collapse);
|
|
13
13
|
|
|
14
|
-
border-color: map.get($container, border);
|
|
15
14
|
background: map.get($container, background);
|
|
16
15
|
|
|
17
16
|
& .kbq-tab-header {
|
|
18
17
|
$header: map.get($style, header);
|
|
19
18
|
background: map.get($header, background) !important;
|
|
19
|
+
border-color: map.get($container, border);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.kbq-tab-body__wrapper {
|
|
23
|
+
border-color: map.get($container, border);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&:not(.kbq-code-block_no-header) {
|
|
27
|
+
.kbq-tab-body__wrapper {
|
|
28
|
+
border-top-color: transparent;
|
|
29
|
+
}
|
|
20
30
|
}
|
|
21
31
|
|
|
22
32
|
& .kbq-code-block-actionbar {
|
|
@@ -335,6 +345,18 @@
|
|
|
335
345
|
@include kbq-code-block-style(map.get($code-block, filled));
|
|
336
346
|
}
|
|
337
347
|
|
|
348
|
+
.kbq-tab-group.kbq-focused {
|
|
349
|
+
// paint focus border from the top since because of border constraints
|
|
350
|
+
.kbq-tab-header {
|
|
351
|
+
box-shadow: 0 3px 0 -1px map.get(map.get($theme, states), focused-color);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
.kbq-tab-body__wrapper {
|
|
355
|
+
border-color: map.get(map.get($theme, states), focused-color);
|
|
356
|
+
box-shadow: inset 0 0 0 1px map.get(map.get($theme, states), focused-color);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
338
360
|
.kbq-tab-header {
|
|
339
361
|
& .kbq-tab-label.kbq-tab-label_horizontal,
|
|
340
362
|
& .kbq-tab-header__pagination {
|
|
@@ -16,7 +16,7 @@ $tokens: meta.module-variables(tokens) !default;
|
|
|
16
16
|
top: -1px;
|
|
17
17
|
right: 0;
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
margin:
|
|
20
20
|
var(
|
|
21
21
|
--kbq-code-block-size-actionbar-padding-vertical,
|
|
22
22
|
map.get($tokens, code-block-size-actionbar-padding-vertical)
|
|
@@ -38,7 +38,7 @@ $tokens: meta.module-variables(tokens) !default;
|
|
|
38
38
|
--kbq-code-block-size-actionbar-fade-gradient-width,
|
|
39
39
|
map.get($tokens, code-block-size-actionbar-fade-gradient-width)
|
|
40
40
|
);
|
|
41
|
-
height:
|
|
41
|
+
height: 32px;
|
|
42
42
|
|
|
43
43
|
margin-top: calc(
|
|
44
44
|
var(
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Clipboard } from '@angular/cdk/clipboard';
|
|
2
|
-
import { InjectionToken, ElementRef, ChangeDetectorRef, OnDestroy, Renderer2 } from '@angular/core';
|
|
2
|
+
import { InjectionToken, ElementRef, ChangeDetectorRef, OnDestroy, Renderer2, AfterViewInit } from '@angular/core';
|
|
3
3
|
import { KbqTabChangeEvent, KbqTabGroup } from '@koobiq/components/tabs';
|
|
4
4
|
import { Subject } from 'rxjs';
|
|
5
5
|
import { KbqCodeBlockConfiguration, KbqCodeFile } from './code-block.types';
|
|
6
|
+
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare const COPIED_MESSAGE_TOOLTIP_TIMEOUT = 100;
|
|
8
9
|
export declare const DEFAULT_EXTENSION = "txt";
|
|
@@ -35,11 +36,12 @@ export declare const KBQ_CODE_BLOCK_DEFAULT_CONFIGURATION: {
|
|
|
35
36
|
viewLessText: string;
|
|
36
37
|
openExternalSystemTooltip: string;
|
|
37
38
|
};
|
|
38
|
-
export declare class KbqCodeBlockComponent implements OnDestroy {
|
|
39
|
+
export declare class KbqCodeBlockComponent implements AfterViewInit, OnDestroy {
|
|
39
40
|
private elementRef;
|
|
40
41
|
private changeDetectorRef;
|
|
41
42
|
private clipboard;
|
|
42
43
|
private renderer;
|
|
44
|
+
private focusMonitor;
|
|
43
45
|
config: KbqCodeBlockConfiguration;
|
|
44
46
|
tabGroup: KbqTabGroup;
|
|
45
47
|
lineNumbers: boolean;
|
|
@@ -54,10 +56,14 @@ export declare class KbqCodeBlockComponent implements OnDestroy {
|
|
|
54
56
|
viewAll: boolean;
|
|
55
57
|
multiLine: boolean;
|
|
56
58
|
isTopOverflow: boolean;
|
|
59
|
+
hasFocus: boolean;
|
|
57
60
|
readonly resizeStream: Subject<Event>;
|
|
61
|
+
readonly currentCodeBlock: Subject<HTMLElement>;
|
|
58
62
|
private readonly resizeDebounceInterval;
|
|
59
63
|
private resizeSubscription;
|
|
60
|
-
|
|
64
|
+
private codeBlockSubscription;
|
|
65
|
+
constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, clipboard: Clipboard, renderer: Renderer2, focusMonitor: FocusMonitor, config: KbqCodeBlockConfiguration);
|
|
66
|
+
ngAfterViewInit(): void;
|
|
61
67
|
ngOnDestroy(): void;
|
|
62
68
|
updateHeader: () => void;
|
|
63
69
|
toggleSoftWrap(): void;
|
|
@@ -70,8 +76,10 @@ export declare class KbqCodeBlockComponent implements OnDestroy {
|
|
|
70
76
|
onSelectTab($event: KbqTabChangeEvent): void;
|
|
71
77
|
checkOverflow(currentCodeContentElement: HTMLElement): void;
|
|
72
78
|
onShowMoreClick(currentCodeContentElement: HTMLPreElement): void;
|
|
79
|
+
canShowFocus(currentCodeContent: HTMLPreElement): boolean;
|
|
73
80
|
private updateMultiline;
|
|
74
81
|
private getFullFileName;
|
|
75
|
-
|
|
82
|
+
onEnter(currentCodeBlock: HTMLPreElement): void;
|
|
83
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqCodeBlockComponent, [null, null, null, null, null, { optional: true; }]>;
|
|
76
84
|
static ɵcmp: i0.ɵɵComponentDeclaration<KbqCodeBlockComponent, "kbq-code-block", ["kbqCodeBlock"], { "lineNumbers": { "alias": "lineNumbers"; "required": false; }; "codeFiles": { "alias": "codeFiles"; "required": false; }; "filled": { "alias": "filled"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "softWrap": { "alias": "softWrap"; "required": false; }; }, {}, never, never, false, never>;
|
|
77
85
|
}
|
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
$tokens: meta.module-variables(tokens) !default;
|
|
6
6
|
|
|
7
|
+
$border-radius: var(
|
|
8
|
+
--kbq-code-block-size-container-border-radius, map.get($tokens, code-block-size-container-border-radius)
|
|
9
|
+
);
|
|
10
|
+
$border-width: var(
|
|
11
|
+
--kbq-code-block-size-container-border-width, map.get($tokens, code-block-size-container-border-width)
|
|
12
|
+
);
|
|
7
13
|
|
|
8
14
|
/* stylelint-disable no-descending-specificity */
|
|
9
15
|
.kbq-code-block {
|
|
@@ -18,13 +24,8 @@ $tokens: meta.module-variables(tokens) !default;
|
|
|
18
24
|
-moz-hyphens: none;
|
|
19
25
|
-webkit-hyphens: none;
|
|
20
26
|
|
|
21
|
-
border-
|
|
22
|
-
|
|
23
|
-
);
|
|
24
|
-
border-style: solid;
|
|
25
|
-
border-radius: var(
|
|
26
|
-
--kbq-code-block-size-container-border-radius, map.get($tokens, code-block-size-container-border-radius)
|
|
27
|
-
);
|
|
27
|
+
border-radius: $border-radius;
|
|
28
|
+
border-width: 0;
|
|
28
29
|
|
|
29
30
|
.kbq-tab-header {
|
|
30
31
|
// 4 buttons + margin
|
|
@@ -46,6 +47,10 @@ $tokens: meta.module-variables(tokens) !default;
|
|
|
46
47
|
--kbq-code-block-size-header-padding-left,
|
|
47
48
|
map.get($tokens, code-block-size-header-padding-left)
|
|
48
49
|
);
|
|
50
|
+
|
|
51
|
+
border-width: $border-width $border-width 0 $border-width;
|
|
52
|
+
border-style: solid;
|
|
53
|
+
border-radius: $border-radius $border-radius 0 0;
|
|
49
54
|
}
|
|
50
55
|
|
|
51
56
|
.kbq-code-block__code {
|
|
@@ -66,6 +71,12 @@ $tokens: meta.module-variables(tokens) !default;
|
|
|
66
71
|
--kbq-code-block-size-with-header-content-padding-horizontal,
|
|
67
72
|
map.get($tokens, code-block-size-with-header-content-padding-horizontal)
|
|
68
73
|
);
|
|
74
|
+
|
|
75
|
+
border-radius: $border-radius;
|
|
76
|
+
|
|
77
|
+
&:focus-visible {
|
|
78
|
+
outline: none;
|
|
79
|
+
}
|
|
69
80
|
}
|
|
70
81
|
|
|
71
82
|
.hljs-ln-numbers {
|
|
@@ -92,11 +103,22 @@ $tokens: meta.module-variables(tokens) !default;
|
|
|
92
103
|
}
|
|
93
104
|
}
|
|
94
105
|
|
|
106
|
+
&:not(.kbq-code-block_no-header) {
|
|
107
|
+
.kbq-tab-body__wrapper {
|
|
108
|
+
border-top-width: 0;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
95
112
|
&.kbq-code-block_no-header {
|
|
96
113
|
.kbq-tab-header {
|
|
97
114
|
display: none;
|
|
98
115
|
}
|
|
99
116
|
|
|
117
|
+
.kbq-tab-body__wrapper {
|
|
118
|
+
border-width: $border-width;
|
|
119
|
+
border-radius: $border-radius;
|
|
120
|
+
}
|
|
121
|
+
|
|
100
122
|
.kbq-code-block__code {
|
|
101
123
|
position: relative;
|
|
102
124
|
|
|
@@ -134,6 +156,10 @@ $tokens: meta.module-variables(tokens) !default;
|
|
|
134
156
|
.kbq-tab-body__wrapper {
|
|
135
157
|
flex-direction: column;
|
|
136
158
|
position: unset;
|
|
159
|
+
|
|
160
|
+
border-width: $border-width;
|
|
161
|
+
border-style: solid;
|
|
162
|
+
border-radius: 0 0 $border-radius $border-radius;
|
|
137
163
|
}
|
|
138
164
|
|
|
139
165
|
.kbq-tab-body.kbq-tab-body__active {
|
|
@@ -176,10 +202,11 @@ $tokens: meta.module-variables(tokens) !default;
|
|
|
176
202
|
justify-content: center;
|
|
177
203
|
overflow: hidden;
|
|
178
204
|
|
|
179
|
-
width: 100
|
|
205
|
+
width: calc(100% - $border-width * 2);
|
|
180
206
|
|
|
181
207
|
position: absolute;
|
|
182
|
-
bottom:
|
|
208
|
+
bottom: $border-width;
|
|
209
|
+
border-radius: $border-radius;
|
|
183
210
|
|
|
184
211
|
&.kbq-code-block__show-more_collapsed {
|
|
185
212
|
padding-top: var(
|
|
@@ -8,9 +8,7 @@
|
|
|
8
8
|
$foreground: map.get($theme, foreground);
|
|
9
9
|
$background: map.get($theme, background);
|
|
10
10
|
|
|
11
|
-
$
|
|
12
|
-
|
|
13
|
-
$is-dark: map.get($theme, is-dark);
|
|
11
|
+
$states: map.get($theme, states);
|
|
14
12
|
|
|
15
13
|
.kbq-option-action {
|
|
16
14
|
&.cdk-keyboard-focused {
|
|
@@ -20,22 +18,22 @@
|
|
|
20
18
|
&:active,
|
|
21
19
|
&.kbq-pressed {
|
|
22
20
|
& .kbq-icon {
|
|
23
|
-
color:
|
|
21
|
+
color: map.get(map.get($states, icon), contrast-fade);
|
|
24
22
|
}
|
|
25
23
|
|
|
26
|
-
background-color:
|
|
24
|
+
background-color: map.get($background, transparent);
|
|
27
25
|
}
|
|
28
26
|
|
|
29
27
|
&:hover .kbq-icon {
|
|
30
|
-
color:
|
|
28
|
+
color: map.get(map.get($states, icon), contrast-fade-hover);
|
|
31
29
|
}
|
|
32
30
|
|
|
33
31
|
&.kbq-disabled {
|
|
34
32
|
& .kbq-icon {
|
|
35
|
-
color:
|
|
33
|
+
color: map.get(map.get($states, icon), disabled);
|
|
36
34
|
}
|
|
37
35
|
|
|
38
|
-
background-color: transparent;
|
|
36
|
+
background-color: map.get($background, transparent);
|
|
39
37
|
}
|
|
40
38
|
}
|
|
41
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
@use 'sass:meta';
|
|
3
|
+
@use 'sass:string';
|
|
4
|
+
@use 'sass:list';
|
|
5
|
+
|
|
6
|
+
@use '../tokens';
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
$tokens: meta.module-variables(tokens) !default;
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@function cssVar($name) {
|
|
13
|
+
@if string.index($name, light-) {
|
|
14
|
+
$short-name: '';
|
|
15
|
+
|
|
16
|
+
@each $part in string.split($name, '-light') {
|
|
17
|
+
$short-name: $short-name + $part;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@return var(--kbq-#{$short-name}, map.get($tokens, $name));
|
|
21
|
+
} @else {
|
|
22
|
+
@return var(--kbq-#{$name}, map.get($tokens, $name));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@function getToken($name) {
|
|
27
|
+
@return map.get($tokens, $name);
|
|
28
|
+
}
|